PoC.io.FanControl
This module generates a PWM signal for a 3-pin (transistor controlled) or
4-pin fan header. The FPGAs temperature is read from device specific system
monitors (normal, user temperature, over temperature).
For example the Xilinx System Monitors are configured as follows:
| /-----\
Temp_ov on=80 | - - - - - - /-------/ \
| / | \
Temp_ov off=60 | - - - - - / - - - - | - - - - \----\
| / | \
| / | | \
Temp_us on=35 | - /---/ | | \
Temp_us off=30 | - / - -|- - - - - - | - - - - - - -|- \------\
| / | | | \
----------------|--------|------------|--------------|----------|---------
pwm = | min | medium | max | medium | min
Entity Declaration:
1 ADD_INPUT_SYNCHRONIZERS : boolean := TRUE;
2 ENABLE_TACHO : boolean := FALSE
3 );
4 port (
5 -- Global Control
6 Clock : in std_logic;
7 Reset : in std_logic;
8
9 -- Fan Control derived from internal System Health Monitor
10 Fan_PWM : out std_logic;
11
12 -- Decoding of Speed Sensor (Requires ENABLE_TACHO)
13 Fan_Tacho : in std_logic := 'X';
14 TachoFrequency : out std_logic_vector(15 downto 0)
15 );
16end entity;
17
18
19architecture rtl of io_FanControl is