1 ----------------------------------------------------------------------------------
8 ----------------------------------------------------------------------------------
10 use IEEE.STD_LOGIC_1164.
ALL;
11 use IEEE.NUMERIC_STD.
ALL;
12 use IEEE.STD_LOGIC_UNSIGNED.
ALL;
13 use IEEE.STD_LOGIC_ARITH.CONV_STD_LOGIC_VECTOR;
23 datai : in arr_4Xword(max_jems-1 downto 0);
47 -- signal declarations
51 signal datai_r : arr_4Xword(max_jems-1 downto 0);
65 signal datai_corr : arr_4Xword(max_jems-1 downto 0);
66 signal calc_par : calc_parity_type(max_jems-1 downto 0);
67 signal par_err : calc_parity_type(max_jems-1 downto 0);
79 signal BCID_r : (11 downto 0);
87 --first register all data locally, and everything except data_i doublr reg
88 --data_i_r will have parity error added synchroneously below
91 if rising_edge(clk) then
116 par_err_i: for i in 0 to max_jems-1 generate
117 par_err_j: for j in 0 to 3 generate
133 if rising_edge(clk) then
143 calc_par_cbla_mux0 : parity_gen -- parity calc. (cbla,mux0)
154 calc_par_cbla_mux1 : parity_gen -- parity calc. (cbla,mux1)
163 -- overflow bit added by Pawel Plucinski 2015-08-21
164 calc_par_cblb_mux0 : parity_gen -- parity calc. (cblb,mux0)
177 -- overflow bit added by Pawel Plucinski 2015-08-21
178 calc_par_cblb_mux1 : parity_gen -- parity calc. (cblb,mux1)
191 if rising_edge(clk) then
204 gen_daq_data: for i_source in 0 to max_jems-1 generate
206 end generate gen_daq_data;
256 -- 0 - sum ex ; 1 - sum ey, 2 - sum et
257 -- 3 - res sum ex ; 4 - res sum ey, 5 - res sum et
275 -- energy extra and results
arr_ctr_15bit (5 downto 0) energy_total_rr
std_logic par_err_cbla_mux0
out data_in_daqarr_96 (19 downto 0)
std_logic_vector (26 * 4 - 1 downto 0) energy_remote_r)
std_logic_vector (23 downto 0) energy_extra0_rr
std_logic par_calc_cbla_mux1
out BCID_delayedstd_logic_vector (11 downto 0)
std_logic_vector (5 downto 0) energy_ovflw_r
in energy_extra1std_logic_vector (23 downto 0)
std_logic_vector (26 * 4 - 1 downto 0) energy_local_rr)
in energy_extra0std_logic_vector (23 downto 0)
in BCID_instd_logic_vector (11 downto 0)
parity_gen calc_par_icalc_par_i
arr_4Xword (max_jems - 1 downto 0) datai_r
arr_ctr_15bit (5 downto 0) energy_total_r
std_logic par_calc_cbla_mux0
std_logic_vector (26 * 4 - 1 downto 0) energy_remote_rr)
std_logic_vector (23 downto 0) energy_extra0_r
std_logic_vector (23 downto 0) energy_extra1_r
std_logic par_calc_cblb_mux0
std_logic par_calc_cblb_mux1
in energy_localstd_logic_vector (26 * 4 - 1 downto 0)
std_logic_vector (5 downto 0) energy_ovflw_rr
in energy_totalarr_ctr_15bit (5 downto 0)
in energy_ovflwstd_logic_vector (5 downto 0)
std_logic_vector (11 downto 0) BCID_r
calc_parity_type (max_jems - 1 downto 0) par_err
calc_parity_type (max_jems - 1 downto 0) calc_par
std_logic par_err_cbla_mux1
in dataiarr_4Xword (max_jems - 1 downto 0)
std_logic_vector (23 downto 0) energy_extra1_rr
std_logic par_err_cblb_mux1
in energy_remotestd_logic_vector (26 * 4 - 1 downto 0)
std_logic_vector (26 * 4 - 1 downto 0) energy_local_r)
in dinstd_logic_vector (width - 1 downto 0)
std_logic par_err_cblb_mux0
arr_4Xword (max_jems - 1 downto 0) datai_corr