eFEX firmware  1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards

Back to eFEX documentation
TauConditionsFrac.vhd
1 library IEEE;
2 use IEEE.STD_LOGIC_1164.all;
3 use IEEE.NUMERIC_STD.all;
4 
5 library work;
6 use work.DataTypes.all;
7 
9  port (
10  CLK : in std_logic;
11  IN_TOBEnergy : in DataWord;
12  IN_TOBEnergyOverflow : in std_logic;
13  IN_FracEnvSumOverflow : in std_logic;
14  IN_FracCoreSumOverflow : in std_logic;
15  IN_FracCoreSum : in DataWord;
16  IN_FracEnvMult : in DataWords(2 downto 0);
17  IN_FracEnvMultOverflows : in std_logic_vector(2 downto 0);
18  IN_Frac_ET_Thr : in DataWord;
19  OUT_FracCondition : out std_logic_vector (1 downto 0)
20  );
22 
23 architecture Behavioral of TauConditionsFrac is
24 begin
25  CONDITIONS : process (CLK)
26  variable FracShifted : DataWord;
27  begin
28  if rising_edge(CLK) then
29  FracShifted := BitLeftShift(IN_FracCoreSum, 3);
30  OUT_FracCondition <= EvaluateCondition (
31  Pass_overflow => IN_FracCoreSumOverflow,
32  Fail_overflow => IN_FracEnvSumOverflow,
33  E_threshold => IN_Frac_ET_Thr,
34  Total_Energy => IN_TOBEnergy,
35  Total_Energy_of => IN_TOBEnergyOverflow,
36  Condition_Energy => FracShifted,
37  Thresholds => IN_FracEnvMult,
38  Thresholds_overflows => IN_FracEnvMultOverflows);
39  end if;
40  end process;
41 end Behavioral;
42 
in CLK std_logic
200 MHz clock