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

Back to eFEX documentation
ttc_parity.vhd
Go to the documentation of this file.
1 
8 
9 LIBRARY ieee;
10 USE ieee.std_logic_1164.all;
11 
13 ENTITY ttc_parity IS
14 GENERIC (
15  SEED: STD_LOGIC := '1'); -- default is odd parity
16 PORT (
17  ttc_data: IN STD_LOGIC_VECTOR(31 DOWNTO 0);
18  parity12: OUT STD_LOGIC;
19  parity32: OUT STD_LOGIC);
20 END ttc_parity;
21 
23 ARCHITECTURE rtl OF ttc_parity IS
24  SIGNAL parity_calc: STD_LOGIC_VECTOR(31 DOWNTO 0);
25  SIGNAL parity_merge: STD_LOGIC_VECTOR(7 DOWNTO 0);
26 BEGIN
27 
28 -- Generate even parity over each individual nibble
29  parity_nibble: for j in 0 to 7 generate
30  parity_calc(j*4) <= ttc_data(j*4);
31  parity_bit: for i in 1 to 3 generate
32  parity_calc((j*4)+i) <= parity_calc((j*4)+i-1) XOR ttc_data((j*4)+i);
33  end generate parity_bit;
34  end generate parity_nibble;
35 
36 -- Merge nibble parities (even/odd based on SEED)
37  parity_merge(0) <= parity_calc(3) XOR SEED;
38  parity_accumulate: for j in 1 to 7 generate
39  parity_merge(j) <= parity_calc((j*4)+3) XOR parity_merge(j-1);
40  end generate parity_accumulate;
41 
42  parity12 <= parity_merge(2); -- BCN
43  parity32 <= parity_merge(7); -- L1ID
44 
45 END rtl;
generate parity for data going from Control FPGA to Processors
Definition: ttc_parity.vhd:23
generate parity for data going from Control FPGA to Processors
Definition: ttc_parity.vhd:13