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