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

Back to eFEX documentation
readout_ipb_slave.vhd
Go to the documentation of this file.
1 
43 
44 
45 library IEEE;
46 use IEEE.STD_LOGIC_1164.ALL;
47 
48 library ipbus_lib;
49 use ipbus_lib.ipbus.all;
50 
51 library TOB_rdout_lib;
52 use TOB_rdout_lib.data_type_pkg.all;
53 use TOB_rdout_lib.TOB_rdout_ip_pkg.all;
54 use TOB_rdout_lib.ipbus_decode_efex_readout.all; -- decoder package
55 
58  Port (
60  ipb_rst : in std_logic ;
62  ipb_clk : in std_logic ;
64  IPb_in : in ipb_wbus; -- The signals going from master to slaves
66  IPb_out : out ipb_rbus; -- The signals going from slaves to master
68  L1A_ID_Event : in STD_LOGIC_VECTOR (31 downto 0);
70  L1A_ID : in STD_LOGIC_VECTOR (31 downto 0);
72  BCN_in : in STD_LOGIC_VECTOR (11 downto 0);
74  TOB_WR_ADDR_OFFSET : out STD_LOGIC_VECTOR (8 downto 0);
76  XTOB_EG_WR_ADDR_OFFSET : out STD_LOGIC_VECTOR (8 downto 0);
78  XTOB_TAU_WR_ADDR_OFFSET : out STD_LOGIC_VECTOR (8 downto 0);
80  TOB_SLICES_TO_RD : out STD_LOGIC_VECTOR (2 downto 0);
82  trigger_slice : out STD_LOGIC_VECTOR(3 downto 0) ;
84  TOB_FIFO_pFULL_THRESH_ASSERT : out STD_LOGIC_VECTOR (8 downto 0);
86  TOB_FIFO_pFULL_THRESH_NEGATE : out STD_LOGIC_VECTOR (8 downto 0);
88  TOB_FIFO_DATA_COUNT : in STD_LOGIC_VECTOR (31 downto 0);
90  tob_busy_thresh_assert : out STD_LOGIC_VECTOR (8 downto 0); -- TOBs FIFO
92  tob_busy_thresh_negate : out STD_LOGIC_VECTOR (8 downto 0); -- TOBs FIFO
94  XTOB_EG_FIFO_pFULL_THRESH_ASSERT : out STD_LOGIC_VECTOR (8 downto 0);
96  XTOB_EG_FIFO_pFULL_THRESH_NEGATE : out STD_LOGIC_VECTOR (8 downto 0);
98  XTOB_EG_FIFO_DATA_COUNT : in STD_LOGIC_VECTOR (31 downto 0);
100  XTOB_TAU_FIFO_pFULL_THRESH_ASSERT : out STD_LOGIC_VECTOR (8 downto 0);
102  XTOB_TAU_FIFO_pFULL_THRESH_NEGATE : out STD_LOGIC_VECTOR (8 downto 0);
104  XTOB_TAU_FIFO_DATA_COUNT : in STD_LOGIC_VECTOR (31 downto 0);
106  TOB_Link_output_FIFO_pFULL_THRESH_ASSERT : out STD_LOGIC_VECTOR (12 downto 0);
108  TOB_Link_output_FIFO_pFULL_THRESH_NEGATE : out STD_LOGIC_VECTOR (12 downto 0);
110  TOB_LINK_OUTPUT_FIFO_RD_DATA_COUNT : in STD_LOGIC_VECTOR (31 downto 0);
112  TOB_data_FIFO_flags : in STD_LOGIC_VECTOR (31 downto 0);
114  RAW_WR_ADDR_OFFSET : out STD_LOGIC_VECTOR (9 downto 0);
116  RAW_FIFO_pFULL_THRESH_ASSERT : out STD_LOGIC_VECTOR (8 downto 0);
118  RAW_FIFO_pFULL_THRESH_NEGATE : out STD_LOGIC_VECTOR (8 downto 0);
120  raw_busy_thresh_assert : out STD_LOGIC_VECTOR (8 downto 0); -- TOBs FIFO
122  raw_busy_thresh_negate : out STD_LOGIC_VECTOR (8 downto 0); -- TOBs FIFO
124  BCN_FIFO_TOB_pFULL_THRESH_assert : out STD_LOGIC_VECTOR (8 downto 0);
126  BCN_FIFO_TOB_pFULL_THRESH_negate : out STD_LOGIC_VECTOR (8 downto 0);
128  BCN_FIFO_TOB_rd_data_count : in STD_LOGIC_VECTOR (31 downto 0); -- occupancy of BCN & L1A FIFO for TOB Readout
130  BCN_FIFO_RAW_pFULL_THRESH_assert : out STD_LOGIC_VECTOR (8 downto 0);
132  BCN_FIFO_RAW_pFULL_THRESH_negate : out STD_LOGIC_VECTOR (8 downto 0);
134  BCN_FIFO_RAW_rd_data_count : in STD_LOGIC_VECTOR (31 downto 0); -- occupancy of BCN & L1A FIFO for RAW Readout
136  Link_output_FIFO_RAW_rd_data_count : in STD_LOGIC_VECTOR (31 downto 0); -- occupancy of RAW output link MGT FIFO
138  Link_output_FIFO_RAW_pfull_thresh_assert : out STD_LOGIC_VECTOR (12 downto 0); -- Link_output_FIFO prog_full
140  Link_output_FIFO_RAW_pfull_thresh_negate : out STD_LOGIC_VECTOR (12 downto 0); -- Link_output_FIFO prog_full
142  RAW_FIFO_FULL_THRESH_ASSERT : out STD_LOGIC_VECTOR(8 downto 0);
144  RAW_FIFO_FULL_THRESH_NEGATE : out STD_LOGIC_VECTOR(8 downto 0);
146  RAW_FIFO_data_count : in STD_LOGIC_VECTOR(31 downto 0);
148  RAW_frame_count : in STD_LOGIC_VECTOR (31 downto 0);
150  RAW_data_FIFO_flags : in STD_LOGIC_VECTOR (31 downto 0);
152  SPY_TOB_mem_wr_addr : in STD_LOGIC_VECTOR (10 downto 0);
154  ipbus_out_tob_dpram : out ipb_wbus; -- signal going to TOB SPY DPRAM
156  ipbus_in_tob_dpram : in ipb_rbus; -- signal coming from TOB SPY DPRAM
158  RDOUT_PULSE_REG : out STD_LOGIC_VECTOR (31 downto 0);
160  SPY_RAW_mem_wr_addr : in STD_LOGIC_VECTOR (10 downto 0);
162  ipbus_out_raw_dpram : out ipb_wbus; -- signal going to RAW SPY DPRAM
164  ipbus_in_raw_dpram : in ipb_rbus; -- signal coming from RAW SPY DPRAM
166  TEST_CONTROL_REG : out STD_LOGIC_VECTOR (31 downto 0);
168  link_error_flags : in STD_LOGIC_VECTOR (53 downto 0);
170  busy_raw_counter : in STD_LOGIC_VECTOR (31 downto 0);
172  busy_tob_counter : in STD_LOGIC_VECTOR (31 downto 0) ;
174  busy_raw_duration_counter : in STD_LOGIC_VECTOR (31 downto 0);
176  busy_tob_duration_counter : in STD_LOGIC_VECTOR (31 downto 0) ;
178  ECR_debug_counter : in STD_LOGIC_VECTOR (31 downto 0);
180  L1A_debug_counter : in STD_LOGIC_VECTOR (31 downto 0);
182  real_time_40m_counter : in STD_LOGIC_VECTOR (31 downto 0);
184  tob_double_word_counter : in STD_LOGIC_VECTOR (31 downto 0);
186  raw_fsm_monitor : out std_logic_vector (31 downto 0);
188  tob_fsm_monitor : out std_logic_vector (39 downto 0);
190  ttc_err_history_debug : in std_logic_vector(31 downto 0);
192  l1a_id_good_debug : in std_logic_vector(31 downto 0);
194  l1a_id_err_debug : in std_logic_vector(31 downto 0);
196  l1a_id_expected_debug : in std_logic_vector(31 downto 0);
198  bcn_err_expected_debug : in std_logic_vector(31 downto 0);
200  l1id_parity_err_cntr_debug : in std_logic_vector(31 downto 0);
202  l1id_mismatch_cntr_debug : in std_logic_vector(31 downto 0);
204  bcn_parity_err_cntr_debug : in std_logic_vector(31 downto 0);
206  bcn_mismatch_cntr_debug : in std_logic_vector(31 downto 0)
207  );
209 
211 architecture Behavioral of readout_ipb_slave is
212  signal ipbw: ipb_wbus_array(N_SLAVES - 1 downto 0);
213  signal ipbr, ipbr_d: ipb_rbus_array(N_SLAVES-1 downto 0);
214 
215  signal RDOUT_PULSE_REG_i : STD_LOGIC_VECTOR (31 downto 0);
216  signal rst_pulse_reg_i : STD_LOGIC := '0';
217  signal rst_pulse_reg_ii : STD_LOGIC;
218  signal IPbw_in_i : ipb_wbus; -- The signals going from master to slaves
219  signal IPbr_out_i : ipb_rbus; -- The signals going from slaves to master
220  signal TEST_CONTROL_REG_i : STD_LOGIC_VECTOR (31 downto 0);
221  signal rst_ECR_dbg_cntr_i : STD_LOGIC := '0' ;
222  signal rst_L1A_dbg_cntr_i : STD_LOGIC := '0' ;
223 
224  signal ipbus_out_raw_dpram_i : ipb_wbus; -- signal going to RAW SPY DPRAM
225  signal ipbus_in_raw_dpram_i : ipb_rbus; -- signal coming from RAW SPY DPRAM
226  signal ipbus_out_tob_dpram_i : ipb_wbus; -- signal going to TOB SPY DPRAM
227  signal ipbus_in_tob_dpram_i : ipb_rbus; -- signal coming from TOB SPY DPRAM
228 
229 begin
230 
231  -- outputs
232  ipb_out <= IPbr_out_i ;
233  RDOUT_PULSE_REG <= RDOUT_PULSE_REG_i ;
234  TEST_CONTROL_REG <= TEST_CONTROL_REG_i ;
235 
236  ipbus_out_raw_dpram <= ipbus_out_raw_dpram_i ; -- signal going to RAW SPY DPRAM
237  ipbus_in_raw_dpram_i <= ipbus_in_raw_dpram ; -- signal coming from RAW SPY DPRAM
238 
239  ipbus_out_tob_dpram <= ipbus_out_tob_dpram_i ; -- signal going to TOB SPY DPRAM
240  ipbus_in_tob_dpram_i <= ipbus_in_tob_dpram ; -- signal coming from TOB SPY DPRAM
241 
242 -- The IPBus bus fabric, which also has address select logic and data multiplexers.
243 -- This version selects the addressed slave depending on the state of incoming control lines.
244 
245 U1_rdout_fabric: entity ipbus_lib.ipbus_fabric_sel
246  generic map(NSLV => N_SLAVES,
247  SEL_WIDTH => ipbus_sel_width)
248  port map(
249  ipb_in => ipb_in,
250  ipb_out => IPbr_out_i,
251  sel => ipbus_sel_efex_readout(ipb_in.ipb_addr),
252  ipb_to_slaves => ipbw,
253  ipb_from_slaves => ipbr
254  );
255 
256 -- This is 32b register, which is read/written through the IPBus.
257 
258 U2_Test_Cntl_Reg : entity ipbus_lib.ipbus_ctrlreg_v
259  generic map (
260  N_CTRL => 1, --number of control reg
261  N_STAT => 0) --number of status reg
262  port map (
263  clk => ipb_clk,
264  reset => ipb_rst,
265  ipbus_in => ipbw(N_SLV_TEST_CONTROL_REG),
266  ipbus_out => ipbr(N_SLV_TEST_CONTROL_REG),
267  d => (others=> (others=> '0')),
268  ctrl_default(0) => (others=> '0'), -- optional port for non-zero default value
269  q(0) => (TEST_CONTROL_REG_i),
270  stb => open
271  );
272 
273 -- This is 32b register, which is read/written through the IPBus.
274 -- This is a Pulse Register and automatically resets to ZERO after one clock cycle.
275 
276 U3_pulsed_register : entity ipbus_lib.ipbus_ctrlreg_v
277  generic map (
278  N_CTRL => 1, --number of control reg
279  N_STAT => 0) --number of status reg
280  port map (
281  clk => ipb_clk,
282  reset => rst_pulse_reg_ii, -- ipb_rst,
283  ipbus_in => ipbw(N_SLV_RDOUT_PULSE_REG),
284  ipbus_out => ipbr(N_SLV_RDOUT_PULSE_REG),
285  d => (others=> (others=> '0')),
286  q(0) => (RDOUT_PULSE_REG_i),
287  stb => open
288  );
289 
290  rst_pulse_reg_ii <= rst_pulse_reg_i OR ipb_rst;
291 
292 
293 U3_top_level_counters : entity ipbus_lib.ipbus_ctrlreg_v
294  generic map (
295  N_CTRL => 0, --number of control reg
296  N_STAT => 8) --number of status reg
297  port map (
298  clk => ipb_clk,
299  reset => ipb_rst,
300  ipbus_in => ipbw(N_SLV_TOP_LEVEL_COUNTERS),
301  ipbus_out => ipbr(N_SLV_TOP_LEVEL_COUNTERS),
302  d(0) => busy_raw_counter,
303  d(1) => busy_tob_counter,
306  d(4) => ECR_debug_counter,
307  d(5) => L1A_debug_counter,
308  d(6) => real_time_40m_counter,
309  d(7) => tob_double_word_counter,
310  q => open,
311  stb => open
312  );
313 
314 
315 U3_ttc_parity_L1A_BCN : entity ipbus_lib.ipbus_ctrlreg_v
316  generic map (
317  N_CTRL => 0, --number of control reg
318  N_STAT => 9) --number of status reg
319  port map (
320  clk => ipb_clk,
321  reset => ipb_rst,
322  ipbus_in => ipbw(N_SLV_TTC_PARITY_L1A_BCN),
323  ipbus_out => ipbr(N_SLV_TTC_PARITY_L1A_BCN),
324  d(0) => ttc_err_history_debug,
325  d(1) => l1a_id_good_debug,
326  d(2) => l1a_id_err_debug,
327  d(3) => l1a_id_expected_debug,
328  d(4) => bcn_err_expected_debug,
330  d(6) => l1id_mismatch_cntr_debug,
332  d(8) => bcn_mismatch_cntr_debug,
333  q => open,
334  stb => open
335  );
336 
337 
338 U4_rst_pulse_reg : process (ipb_clk) -- this generates the reset for pulsed register.
339  begin
340  if rising_edge(ipb_clk) then
341  if RDOUT_PULSE_REG_i /= X"00000000" then
342  rst_pulse_reg_i <= '1';
343  else
344  rst_pulse_reg_i <= '0';
345  end if;
346  end if;
347 end process;
348 
349 
350 -- TOB/XTOB data readout slave registers
351 U4_TOB_slave: entity TOB_rdout_lib.slave_TOB_readout
352  port map(
353  ipb_clk => ipb_clk,
354  ipb_rst => ipb_rst,
355  ipb_in => ipbw(N_SLV_TOB),
356  ipb_out => ipbr(N_SLV_TOB),
358  L1A_ID => L1A_ID,
359  BCN_in => BCN_in,
383  SPY_TOB_mem_wr_addr => SPY_TOB_mem_wr_addr , -- TOB/XTOB data SPY memory wr addr pointer
384  ipbus_out_tob_dpram => ipbus_out_tob_dpram_i , -- o/p signal going to TOB SPY DPRAM
385  ipbus_in_tob_dpram => ipbus_in_tob_dpram_i, -- i/p signal coming from TOB SPY DPRAM
387  );
388 
389 -- Calorimeter RAW data readout slave registers
390 U5_RAW_slave: entity TOB_rdout_lib.slave_RAW_readout
391  port map(
392  ipb_clk => ipb_clk,
393  ipb_rst => ipb_rst,
394  ipb_in => ipbw(N_SLV_RAW),
395  ipb_out => ipbr(N_SLV_RAW),
399 
413  SPY_RAW_mem_wr_addr => SPY_RAW_mem_wr_addr , -- RAW calo data SPY memory wr addr pointer
414  ipbus_out_raw_dpram => ipbus_out_raw_dpram_i , -- o/p signal going to RAW SPY DPRAM
415  ipbus_in_raw_dpram => ipbus_in_raw_dpram_i, -- i/p signal coming from RAW SPY DPRAM
416  link_error_flags => link_error_flags , -- 54-b error flags from the Error Flag FIFO to IPBUS register
418 
419  );
420 
421 
422 end Behavioral;
IPBUS readout slave definitions of registers used in the Top Level Readout Block.
IPBUS readout slave definitions of registers used in the Top Level Readout Block.
in RAW_data_FIFO_flags STD_LOGIC_VECTOR( 31 downto 0)
Full and Empty flags for all FIFOs in the RAW Readout Logic.
in ipbus_in_tob_dpram ipb_rbus
IPBus access bus signal coming from TOB SPY DPRAM.
out TOB_Link_output_FIFO_pFULL_THRESH_NEGATE STD_LOGIC_VECTOR( 12 downto 0)
Prog Full flag negate threshold for Link Output FIFO of TOBs Readout.
out RAW_FIFO_FULL_THRESH_ASSERT STD_LOGIC_VECTOR( 8 downto 0)
Full flag assert threshold for de-randomisation FIFO of RAW Data Readout.
out raw_fsm_monitor std_logic_vector( 31 downto 0)
Monitor RAW Readout state machines.
out TOB_WR_ADDR_OFFSET STD_LOGIC_VECTOR( 8 downto 0)
Write Address Offset for TOB circular DPRAM.
out trigger_slice STD_LOGIC_VECTOR( 3 downto 0)
Trigger slice number - on L1A.
in BCN_FIFO_RAW_rd_data_count STD_LOGIC_VECTOR( 31 downto 0)
BCN & L1A FIFO occupancy for RAW Readout.
in ipb_rst std_logic
IPBus Reset input.
out TOB_SLICES_TO_RD STD_LOGIC_VECTOR( 2 downto 0)
Number of cosecutive Slices to read from TOBs circular DPRAM.
in SPY_RAW_mem_wr_addr STD_LOGIC_VECTOR( 10 downto 0)
Current write address of RAW SPY Memory - used for IPBus access and to calculate occupancy.
in busy_tob_duration_counter STD_LOGIC_VECTOR( 31 downto 0)
Busy counter for TOB BUSY duration.
in tob_double_word_counter STD_LOGIC_VECTOR( 31 downto 0)
Number of identical TOB double words counter.
out TEST_CONTROL_REG STD_LOGIC_VECTOR( 31 downto 0)
Test Control Register at Top Level Readout Firmware.
in bcn_mismatch_cntr_debug std_logic_vector( 31 downto 0)
Mismatch error count on BCN.
out tob_busy_thresh_assert STD_LOGIC_VECTOR( 8 downto 0)
sorted TOB BUSY flag threshold assert
out BCN_FIFO_RAW_pFULL_THRESH_assert STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag assert threshold for TTC FIFO.
in RAW_FIFO_data_count STD_LOGIC_VECTOR( 31 downto 0)
Occupancy level ofde-randomisation FIFO of RAW Data Readout.
in TOB_data_FIFO_flags STD_LOGIC_VECTOR( 31 downto 0)
Full and Empty flags for all FIFOs in the TOBs Readout Logic.
out raw_busy_thresh_assert STD_LOGIC_VECTOR( 8 downto 0)
raw BUSY flag threshold assert
in busy_raw_counter STD_LOGIC_VECTOR( 31 downto 0)
Busy counter for RAW data buffers.
out XTOB_TAU_WR_ADDR_OFFSET STD_LOGIC_VECTOR( 8 downto 0)
Write Address Offset for XTOB tau circular DPRAM.
out BCN_FIFO_RAW_pFULL_THRESH_negate STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag negate threshold for TTC FIFO.
in l1id_parity_err_cntr_debug std_logic_vector( 31 downto 0)
Parity error count on L1A.
out tob_fsm_monitor std_logic_vector( 39 downto 0)
Monitor TOB Readout state machines.
out XTOB_TAU_FIFO_pFULL_THRESH_ASSERT STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag assert threshold for de-randomisation FIFO of XTOBs tau Readout.
out RDOUT_PULSE_REG STD_LOGIC_VECTOR( 31 downto 0)
Control Pulse Register for RAW Readout, all values are set to ZERO following a write to this register...
in XTOB_TAU_FIFO_DATA_COUNT STD_LOGIC_VECTOR( 31 downto 0)
Occupancy level of de-randomisation FIFO of XTOBs tau Readout.
out IPb_out ipb_rbus
IPBus output bus going from slaves to master.
out RAW_FIFO_pFULL_THRESH_ASSERT STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag assert threshold for de-randomisation FIFO of RAW Data Readout.
out BCN_FIFO_TOB_pFULL_THRESH_negate STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag negate threshold for TTC FIFO.
out BCN_FIFO_TOB_pFULL_THRESH_assert STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag assert threshold for TTC FIFO.
in RAW_frame_count STD_LOGIC_VECTOR( 31 downto 0)
Number of complete RAW Frames in Link Output FIFO to be transmitted to cFPGA.
in ttc_err_history_debug std_logic_vector( 31 downto 0)
History of last 8 TTC errors.
in SPY_TOB_mem_wr_addr STD_LOGIC_VECTOR( 10 downto 0)
Current write address of TOBs SPY Memory - used for IPBus access and to calculate occupancy.
out RAW_FIFO_pFULL_THRESH_NEGATE STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag negate threshold for de-randomisation FIFO of RAW Data Readout.
in L1A_ID STD_LOGIC_VECTOR( 31 downto 0)
8b Extended L1A ID + 24b L1A ID of L1A counter
out XTOB_EG_WR_ADDR_OFFSET STD_LOGIC_VECTOR( 8 downto 0)
Write Address Offset for XTOB e/g circular DPRAM.
out raw_busy_thresh_negate STD_LOGIC_VECTOR( 8 downto 0)
raw BUSY flag threshold de-assert
in l1a_id_err_debug std_logic_vector( 31 downto 0)
Shows last corrupt L1A ID.
in bcn_err_expected_debug std_logic_vector( 31 downto 0)
Error, bad BCN and expected BCN on BCN error.
in IPb_in ipb_wbus
IPBus input bus going from master to slaves.
in link_error_flags STD_LOGIC_VECTOR( 53 downto 0)
54-b error flags from the Error Flag FIFO to IPBUS register
in ipb_clk std_logic
IPBus Clock input.
in XTOB_EG_FIFO_DATA_COUNT STD_LOGIC_VECTOR( 31 downto 0)
Occupancy level of de-randomisation FIFO of XTOBs e/g Readout.
out XTOB_TAU_FIFO_pFULL_THRESH_NEGATE STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag negate threshold for de-randomisation FIFO of XTOBs tau Readout.
in l1a_id_good_debug std_logic_vector( 31 downto 0)
Shows last good L1A ID.
in TOB_FIFO_DATA_COUNT STD_LOGIC_VECTOR( 31 downto 0)
Occupancy level of de-randomisation FIFO of TOBs Readout.
out RAW_FIFO_FULL_THRESH_NEGATE STD_LOGIC_VECTOR( 8 downto 0)
Full flag negate threshold for de-randomisation FIFO of RAW Data Readout.
in busy_tob_counter STD_LOGIC_VECTOR( 31 downto 0)
Busy counter for TOB data buffers.
in real_time_40m_counter STD_LOGIC_VECTOR( 31 downto 0)
Real time 40MHz counter, counting number of 40MHz ticks.
out ipbus_out_tob_dpram ipb_wbus
IPBus access bus signal going to TOB SPY DPRAM.
in busy_raw_duration_counter STD_LOGIC_VECTOR( 31 downto 0)
Busy counter for RAW BUSY Duration.
in L1A_ID_Event STD_LOGIC_VECTOR( 31 downto 0)
8b Ext L1A ID from TTC input + 24b L1A ID of counter from TTC FIFO - inserted in the event header
in Link_output_FIFO_RAW_rd_data_count STD_LOGIC_VECTOR( 31 downto 0)
Occupancy level of Link Output FIFO of RAW Data Readout.
in BCN_FIFO_TOB_rd_data_count STD_LOGIC_VECTOR( 31 downto 0)
BCN & L1A FIFO occupancy for TOB Readout.
in bcn_parity_err_cntr_debug std_logic_vector( 31 downto 0)
Parity error count on BCN.
out Link_output_FIFO_RAW_pfull_thresh_assert STD_LOGIC_VECTOR( 12 downto 0)
Prog Full flag assert threshold for Link Output FIFO of RAW Data Readout.
out RAW_WR_ADDR_OFFSET STD_LOGIC_VECTOR( 9 downto 0)
Write Address Offset for RAW circular DPRAM.
out tob_busy_thresh_negate STD_LOGIC_VECTOR( 8 downto 0)
sorted TOB BUSY flag threshold de-assert
in l1a_id_expected_debug std_logic_vector( 31 downto 0)
Shows last expected L1A ID on error.
out TOB_FIFO_pFULL_THRESH_NEGATE STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag negate threshold for de-randomisation FIFO of TOBs Readout.
out Link_output_FIFO_RAW_pfull_thresh_negate STD_LOGIC_VECTOR( 12 downto 0)
Prog Full flag negate threshold for Link Output FIFO of RAW Data Readout.
out TOB_FIFO_pFULL_THRESH_ASSERT STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag assert threshold for de-randomisation FIFO of TOBs Readout.
out XTOB_EG_FIFO_pFULL_THRESH_ASSERT STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag assert threshold for de-randomisation FIFO of XTOBs e/g Readout.
in l1id_mismatch_cntr_debug std_logic_vector( 31 downto 0)
Mismatch error count on L1A.
out TOB_Link_output_FIFO_pFULL_THRESH_ASSERT STD_LOGIC_VECTOR( 12 downto 0)
Prog Full flag assert threshold for Link Output FIFO of TOBs Readout.
out ipbus_out_raw_dpram ipb_wbus
IPBus access bus signal going to RAW SPY DPRAM.
in TOB_LINK_OUTPUT_FIFO_RD_DATA_COUNT STD_LOGIC_VECTOR( 31 downto 0)
Occupancy level of Link Output FIFO of TOBs Readout.
in ipbus_in_raw_dpram ipb_rbus
IPBus access bus signal coming from RAW SPY DPRAM.
in BCN_in STD_LOGIC_VECTOR( 11 downto 0)
Bunch Crossing Number.
in L1A_debug_counter STD_LOGIC_VECTOR( 31 downto 0)
L1A_debug_counter.
in ECR_debug_counter STD_LOGIC_VECTOR( 31 downto 0)
ECR_debug_counter.
out XTOB_EG_FIFO_pFULL_THRESH_NEGATE STD_LOGIC_VECTOR( 8 downto 0)
Prog Full flag negate threshold for de-randomisation FIFO of XTOBs e/g Readout.
RAW calorimeter data readout slave registers.
in BCN_FIFO_RAW_rd_data_count STD_LOGIC_VECTOR( 31 downto 0)
BCN & L1A FIFO occupancy for RAW Readout.
in RAW_FIFO_data_count std_logic_vector( 31 downto 0)
Derandomisation FIFO FIFO occupancy data count.
out Link_output_FIFO_pFULL_THRESH_ASSERT std_logic_vector( 12 downto 0)
Link output FIFO (before MGT) partial full flag assert threshold.
in ipb_rst std_logic
IPBus Reset input.
out RAW_WR_ADDR_OFFSET std_logic_vector( 9 downto 0)
The write address offset pre load for RAW data Circular DRPAM.
out raw_busy_thresh_assert STD_LOGIC_VECTOR( 8 downto 0)
raw BUSY flag threshold assert
out Link_output_FIFO_pFULL_THRESH_NEGATE std_logic_vector( 12 downto 0)
Link output FIFO (before MGT) partial full flag negate threshold.
in Link_output_FIFO_rd_data_count std_logic_vector( 31 downto 0)
Link output FIFO (before MGT) occupancy data count.
out raw_busy_thresh_negate STD_LOGIC_VECTOR( 8 downto 0)
raw BUSY flag threshold de-assert
in RAW_data_FIFO_flags std_logic_vector( 31 downto 0)
Read only register containing all Empty pFull and Full of RAW data block.
in RAW_frame_count std_logic_vector( 31 downto 0)
numer of frames in the link output FIFO to be transmitted to MGT & Control FPGA
in link_error_flags STD_LOGIC_VECTOR( 53 downto 0)
54-b error flags from the Error Flag FIFO to IPBUS register
in ipb_clk std_logic
IPBus Clock input.
in SPY_RAW_mem_wr_addr std_logic_vector( 10 downto 0)
RAW SPY Memory write address (read only register)
out RAW_FIFO_FULL_THRESH_NEGATE std_logic_vector( 8 downto 0)
36b derandomisation FIFO full flag negate threshold
out RAW_FIFO_pFULL_THRESH_ASSERT std_logic_vector( 8 downto 0)
Derandomisation FIFO partial full flag assert threshold.
out BCN_FIFO_pFULL_THRESH_negate std_logic_vector( 8 downto 0)
BCN FIFO partial full flag negate threshold.
out BCN_FIFO_pFULL_THRESH_assert std_logic_vector( 8 downto 0)
BCN FIFO partial full flag assert threshold.
out ipbus_out_raw_dpram ipb_wbus
IPBus signal going to RAW SPY DPRAM.
out RAW_FIFO_FULL_THRESH_ASSERT std_logic_vector( 8 downto 0)
Derandomisation FIFO full flag assert threshold.
out RAW_FIFO_pFULL_THRESH_NEGATE std_logic_vector( 8 downto 0)
36b derandomisation FIFO partial full flag negate threshold
in ipbus_in_raw_dpram ipb_rbus
IPBus signal coming from RAW SPY DPRAM.
in raw_fsm_monitor std_logic_vector( 31 downto 0)
Monitor RAW Readout state machines.
TOB/XTOB data readout slave registers.
in ipbus_in_tob_dpram ipb_rbus
IPBus signal coming from TOB/XTOB SPY DPRAM.
out TOB_WR_ADDR_OFFSET std_logic_vector( 8 downto 0)
The write address offset pre load for TOB Circular DRPAM.
in TOB_LINK_OUTPUT_FIFO_RD_DATA_COUNT std_logic_vector( 31 downto 0)
Link output FIFO (before MGT) occupancy data count.
out trigger_slice STD_LOGIC_VECTOR( 3 downto 0)
Trigger slice number - on L1A.
out TOB_SLICES_TO_RD std_logic_vector( 2 downto 0)
number of DRP locations (Slices) to read 1 to 5
in ipb_rst std_logic
IPBus Reset input.
out TOB_Link_output_FIFO_pFULL_THRESH_ASSERT std_logic_vector( 12 downto 0)
Link output FIFO (before MGT) partial full flag assert threshold.
out tob_busy_thresh_assert STD_LOGIC_VECTOR( 8 downto 0)
sorted TOB BUSY flag threshold assert
out XTOB_TAU_WR_ADDR_OFFSET std_logic_vector( 8 downto 0)
The write address offset pre load for XTOB tau Circular DRPAM.
in XTOB_EG_FIFO_DATA_COUNT std_logic_vector( 31 downto 0)
XTOB e/g Derandomisation FIFO FIFO occupancy data count.
out TOB_FIFO_pFULL_THRESH_NEGATE std_logic_vector( 8 downto 0)
TOB Derandomisation FIFO partial full flag negate threshold.
out XTOB_EG_FIFO_pFULL_THRESH_NEGATE std_logic_vector( 8 downto 0)
XTOB e/g Derandomisation FIFO partial full flag negate threshold.
out XTOB_EG_FIFO_pFULL_THRESH_ASSERT std_logic_vector( 8 downto 0)
XTOB e/g Derandomisation FIFO partial full flag assert threshold.
out XTOB_TAU_FIFO_pFULL_THRESH_ASSERT std_logic_vector( 8 downto 0)
XTOB tau Derandomisation FIFO partial full flag assert threshold.
out TOB_Link_output_FIFO_pFULL_THRESH_NEGATE std_logic_vector( 12 downto 0)
Link output FIFO (before MGT) partial full flag negate threshold.
in L1A_ID std_logic_vector( 31 downto 0)
8b Extended L1A ID + 24b L1A ID of counter
out XTOB_TAU_FIFO_pFULL_THRESH_NEGATE std_logic_vector( 8 downto 0)
XTOB tau Derandomisation FIFO partial full flag negate threshold.
in TOB_FIFO_DATA_COUNT std_logic_vector( 31 downto 0)
TOB Derandomisation FIFO FIFO occupancy data count.
in ipb_clk std_logic
IPBus Clock input.
in XTOB_TAU_FIFO_DATA_COUNT std_logic_vector( 31 downto 0)
XTOB tau Derandomisation FIFO FIFO occupancy data count.
in SPY_TOB_mem_wr_addr std_logic_vector( 10 downto 0)
TOB/XTOB SPY Memory write address (read only register)
out ipbus_out_tob_dpram ipb_wbus
IPBus signal going to TOB/XTOB SPY DPRAM.
out TOB_FIFO_pFULL_THRESH_ASSERT std_logic_vector( 8 downto 0)
TOB Derandomisation FIFO partial full flag assert threshold.
in tob_fsm_monitor std_logic_vector( 39 downto 0)
Monitor TOB Readout state machines.
in BCN_FIFO_TOB_rd_data_count STD_LOGIC_VECTOR( 31 downto 0)
BCN & L1A FIFO occupancy for TOB Readout.
out tob_busy_thresh_negate STD_LOGIC_VECTOR( 8 downto 0)
sorted TOB BUSY flag threshold de-assert
in TOB_data_FIFO_flags std_logic_vector( 31 downto 0)
Read only register containing all Empty pFull and Full of TOB/XTOB data block.
out XTOB_EG_WR_ADDR_OFFSET std_logic_vector( 8 downto 0)
The write address offset pre load for XTOB e/g Circular DRPAM.
in L1A_ID_Event std_logic_vector( 31 downto 0)
8b Ext L1A ID from TTC input + 24b L1A ID of counter from TTC FIFO - inserted in the event header
out BCN_FIFO_pFULL_THRESH_negate std_logic_vector( 8 downto 0)
BCN FIFO partial full flag negate threshold.
out BCN_FIFO_pFULL_THRESH_assert std_logic_vector( 8 downto 0)
BCN FIFO partial full flag assert threshold.
in BCN_in std_logic_vector( 11 downto 0)
Bunch Crossing number input.