![]() |
eFEX firmware
1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards
|
Core of the electromagnetic algorithm. More...
Processes | |
| CONDITIONS | ( CLK200 ) |
Components | |
| Mult | |
Signals | |
| ParJet | AlgoParameters ( 2 downto 0 ) |
| ParFrac | AlgoParameters ( 2 downto 0 ) |
| LSF_Data | DataWords ( 3 downto 0 ) |
| LSF_DataUp | DataWords ( 3 downto 0 ) |
| LSF_DataDown | DataWords ( 3 downto 0 ) |
| LSF_Seed | std_logic_vector ( 1 downto 0 ) |
| LSF_UpNotDown | std_logic |
| SF_sum | DataWords ( 8 downto 0 ) |
| SF_of | std_logic_vector ( 8 downto 0 ) |
| ConditionThr | DataWord |
| EnergyThr | DataWord |
| ConditionThr_d | DataWord |
| EnergyThr_d | DataWord |
| SF_IsMax | std_logic |
| IM_Energy_L1 | DataWords ( 9 downto 0 ) |
| IM_Energy_L2 | DataWords ( 9 downto 0 ) |
| IM_Energy_L0 | DataWords ( 5 downto 0 ) |
| IM_Energy_L3 | DataWords ( 5 downto 0 ) |
| IM_Energy_HAD | DataWords ( 5 downto 0 ) |
| IM_JetCoreData | DataWords ( 5 downto 0 ) |
| IM_JetEnvData | DataWords ( 11 downto 0 ) |
| MA_EnergySum | DataWord |
| MA_EnergyOverflow | std_logic |
| MA_JetEnvSum | DataWord |
| MA_JetEnvOverflow | std_logic |
| MA_JetCoreOverflow | std_logic |
| MA_JetCoreSum | DataWord |
| MA_FracEnvSum | DataWord |
| MA_FracEnvOverflow | std_logic |
| MA_FracCoreOverflow | std_logic |
| MA_FracCoreSum | DataWord |
| MU_JetEnvOverflows | std_logic_vector ( IN_ParJet ' high downto 0 ) |
| MU_JetEnvMult | DataWords ( IN_ParJet ' high downto 0 ) |
| MU_FracEnvOverflows | std_logic_vector ( IN_ParFrac ' high downto 0 ) |
| MU_FracEnvMult | DataWords ( IN_ParFrac ' high downto 0 ) |
| Delayed | std_logic_vector ( 3 downto 0 ) |
| DL_Seed | std_logic_vector ( 1 downto 0 ) |
| DL_UpNotDown | std_logic |
| DL_IsMax | std_logic |
| DL_Overflows | std_logic_vector ( 1 downto 0 ) |
| DL_JetEnvOverflow | std_logic |
| DL_FracEnvOverflow | std_logic |
| TOBEnergy | DataWord |
| TOBEnergyOverflow | std_logic |
| JetCondition | std_logic_vector ( 1 downto 0 ) |
| FracCondition | std_logic_vector ( 1 downto 0 ) |
| max_enable | std_logic |
Instantiations | |
| little_seed_finder | LittleSeedFinder <Entity LittleSeedFinder> |
| input_multiplexer | tauInputMultiplexer <Entity tauInputMultiplexer> |
| energy_adder | MultiAdder <Entity MultiAdder> |
| seed_finder_adder | MultiAdder <Entity MultiAdder> |
| tau_seed_finder | TauSeedFinder <Entity TauSeedFinder> |
| multi_adder_jet_env | MultiAdder <Entity MultiAdder> |
| multi_adder_jet_core | MultiAdder <Entity MultiAdder> |
| multi_adder_frac_env | MultiAdder <Entity MultiAdder> |
| multi_adder_frac_core | MultiAdder <Entity MultiAdder> |
| jet_multiplier | MultiMultiplier <Entity MultiMultiplier> |
| condition_threshold_delay | Delay <Entity Delay> |
| frac_multiplier | MultiMultiplier <Entity MultiMultiplier> |
| energy_threshold_delay | Delay <Entity Delay> |
| tau_seed_delay | GeneralDelay <Entity GeneralDelay> |
| little_seed_delay | GeneralDelay <Entity GeneralDelay> |
| overflow_delay | GeneralDelay <Entity GeneralDelay> |
Core of the electromagnetic algorithm.
The total latency of this block is 10 clock cycles, this is a table representing the timing:
| clock cycle | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| RAM address | 0 | 1 | 2 | 3 | 4 | 0 | 1 | 2 | 3 | 4 | 0 |
| seed finder | X | X | |||||||||
| In mux | X | X | |||||||||
| Adders env | X | X | X | X | |||||||
| Addders core | X | X | X | X | X | X | X | ||||
| Multipliers | X | X | X | ||||||||
| Seed delay | X | X | X | X | X | X | X | X | X | ||
| TOB energy | X | X | |||||||||
| Threshold delay | X | X | X | ||||||||
| Conditions | X | X | |||||||||
| Dead Mat. Corr. | X | ||||||||||
| DMC delay | X | X |
At clock cycle 0 the data is provided to the algorithm.
At clock cycle 1, the seed is ready and so is the data coming out of the input multiplexer, which is provided to the adders.
At clock cycle 5, the envoronment sums are ready and fed into the multipliers.
At clock cycle 8, all the sums and the multiplications are done and the valued are fed into the conditions
At clock cycle 8 also the energy threshold is applied.
At clock cycle 10 the TOBs are formed with the conditions bits and the Energy
The parameters used to evaluate the conditions are read from the RAM at clock cycle 0 or 5 (the RAM address goes form 0 to 4).
A delay of 2 clock cycles is used to pipeline the correct value for Dead Materal Correction (DMC) parameters that are read at clock cycle 2, i.e. when data is provided to the adders.
A delay of 3 clock cycles is used to delay the energy thresholds which are read at clock cycle 8, i.e. when the conditions are evaluated.
Definition at line 33 of file AlgoCore_tau.vhd.
1.9.1