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 generic (
2 CLOCK_FREQ : FREQ;
3 ADD_INPUT_SYNCHRONIZERS : boolean := TRUE;
4 ENABLE_TACHO : boolean := FALSE
5 );
6 port (
7 -- Global Control
8 Clock : in std_logic;
9 Reset : in std_logic;
10
11 -- Fan Control derived from internal System Health Monitor
12 Fan_PWM : out std_logic;
13
14 -- Decoding of Speed Sensor (Requires ENABLE_TACHO)
15 Fan_Tacho : in std_logic := 'X';
16 TachoFrequency : out std_logic_vector(15 downto 0)
17 );
18end entity;