34 use IEEE.STD_LOGIC_1164.
all;
37 use ipbus_lib.ipbus.
all;
39 library TOB_rdout_lib;
41 use TOB_rdout_lib.ipbus_decode_efex_raw_readout.
all;
106 signal ipbw : ipb_wbus_array(N_SLAVES-1 downto 0);
107 signal ipbr, ipbr_d : ipb_rbus_array(N_SLAVES-1 downto 0);
109 signal RAW_FIFO_pFULL_THRESH_ASSERT_i : std_logic_vector (31 downto 0);
110 signal RAW_FIFO_pFULL_THRESH_NEGATE_i : std_logic_vector (31 downto 0);
112 signal BCN_FIFO_pFULL_THRESH_assert_i : std_logic_vector (31 downto 0);
113 signal BCN_FIFO_pFULL_THRESH_negate_i : std_logic_vector (31 downto 0);
115 signal Link_output_FIFO_pFULL_THRESH_ASSERT_i : std_logic_vector (31 downto 0);
116 signal Link_output_FIFO_pFULL_THRESH_NEGATE_i : std_logic_vector (31 downto 0);
118 signal RAW_FIFO_FULL_THRESH_ASSERT_i : std_logic_vector (31 downto 0);
119 signal RAW_FIFO_FULL_THRESH_NEGATE_i : std_logic_vector (31 downto 0);
120 signal BCN_FIFO_RAW_rd_data_count_i : std_logic_vector (31 downto 0);
121 signal raw_busy_thresh_assert_i : STD_LOGIC_VECTOR(31 downto 0);
122 signal raw_busy_thresh_negate_i : STD_LOGIC_VECTOR(31 downto 0);
124 signal RAW_Link_output_FIFO_rd_data_count_i : std_logic_vector (31 downto 0);
125 signal RAW_data_FIFO_flags_i : std_logic_vector (31 downto 0);
126 signal RAW_FIFO_data_count_i : std_logic_vector (31 downto 0);
127 signal SPY_mem_wr_addr_i : std_logic_vector (31 downto 0);
128 signal RAW_WR_ADDR_OFFSET_REG_i : std_logic_vector (31 downto 0);
129 signal link_error_flags_1 : std_logic_vector (31 downto 0);
130 signal link_error_flags_2 : std_logic_vector (31 downto 0);
171 RAW_rdout_fabric :
entity ipbus_lib.ipbus_fabric_sel
172 generic map(NSLV => N_SLAVES,
173 SEL_WIDTH => ipbus_sel_width
)
177 sel => ipbus_sel_efex_raw_readout
(ipb_in.ipb_addr
),
178 ipb_to_slaves => ipbw,
179 ipb_from_slaves => ipbr
186 U1_RAW_FIFO_pFULL_THRESH_ASSERT :
entity ipbus_lib.ipbus_ctrlreg_v
187 generic map(N_CTRL =>
1, N_STAT =>
0)
191 ipbus_in => ipbw
(N_SLV_RAW_FIFO_PROG_FULL_THRESH_ASSERT
),
192 ipbus_out => ipbr
(N_SLV_RAW_FIFO_PROG_FULL_THRESH_ASSERT
),
193 d =>
(others =>
(others => '0'
)),
194 q
(0) => RAW_FIFO_pFULL_THRESH_ASSERT_i,
195 ctrl_default
(0) => X"00000180",
198 U2_RAW_FIFO_pFULL_THRESH_NEGATE :
entity ipbus_lib.ipbus_ctrlreg_v
199 generic map(N_CTRL =>
1, N_STAT =>
0)
203 ipbus_in => ipbw
(N_SLV_RAW_FIFO_PROG_FULL_THRESH_NEGATE
),
204 ipbus_out => ipbr
(N_SLV_RAW_FIFO_PROG_FULL_THRESH_NEGATE
),
205 d =>
(others =>
(others => '0'
)),
206 q
(0) => RAW_FIFO_pFULL_THRESH_NEGATE_i,
207 ctrl_default
(0) => X"00000100",
211 U3_RAW_BUSY_THRESH_ASSERT :
entity ipbus_lib.ipbus_ctrlreg_v
218 ipbus_in => ipbw
(N_SLV_RAW_BUSY_THRESH_ASSERT
),
219 ipbus_out => ipbr
(N_SLV_RAW_BUSY_THRESH_ASSERT
),
220 d =>
(others=>
(others=> '0'
)),
221 ctrl_default
(0) => X"00000160",
222 q
(0) =>
(raw_busy_thresh_assert_i
),
227 U3_RAW_BUSY_THRESH_NEGATE :
entity ipbus_lib.ipbus_ctrlreg_v
234 ipbus_in => ipbw
(N_SLV_RAW_BUSY_THRESH_NEGATE
),
235 ipbus_out => ipbr
(N_SLV_RAW_BUSY_THRESH_NEGATE
),
236 d =>
(others=>
(others=> '0'
)),
237 ctrl_default
(0) => X"00000100",
238 q
(0) =>
(raw_busy_thresh_negate_i
),
242 U5_BCN_FIFO_pFULL_THRESH_assert :
entity ipbus_lib.ipbus_ctrlreg_v
243 generic map(N_CTRL =>
1, N_STAT =>
0)
247 ipbus_in => ipbw
(N_SLV_BCN_FIFO_PROG_FULL_THRESH_ASSERT
),
248 ipbus_out => ipbr
(N_SLV_BCN_FIFO_PROG_FULL_THRESH_ASSERT
),
249 d =>
(others =>
(others => '0'
)),
250 q
(0) => BCN_FIFO_pFULL_THRESH_assert_i,
251 ctrl_default
(0) => X"00000180",
254 U6_BCN_FIFO_pFULL_THRESH_negate :
entity ipbus_lib.ipbus_ctrlreg_v
255 generic map(N_CTRL =>
1, N_STAT =>
0)
259 ipbus_in => ipbw
(N_SLV_BCN_FIFO_PROG_FULL_THRESH_NEGATE
),
260 ipbus_out => ipbr
(N_SLV_BCN_FIFO_PROG_FULL_THRESH_NEGATE
),
261 d =>
(others =>
(others => '0'
)),
262 q
(0) => BCN_FIFO_pFULL_THRESH_negate_i,
263 ctrl_default
(0) => X"00000100",
267 U6_BCN_FIFO_RAW_rd_data_count :
entity ipbus_lib.ipbus_ctrlreg_v
268 generic map(N_CTRL =>
0, N_STAT =>
1)
272 ipbus_in => ipbw
(N_SLV_BCN_FIFO_RAW_RD_DATA_COUNT
),
273 ipbus_out => ipbr
(N_SLV_BCN_FIFO_RAW_RD_DATA_COUNT
),
274 d
(0) => BCN_FIFO_RAW_rd_data_count_i,
278 U7_Link_output_FIFO_pFULL_THRESH_ASSERT :
entity ipbus_lib.ipbus_ctrlreg_v
279 generic map(N_CTRL =>
1, N_STAT =>
0)
283 ipbus_in => ipbw
(N_SLV_LINK_OUTPUT_FIFO_PROG_FULL_THRESH_ASSERT
),
284 ipbus_out => ipbr
(N_SLV_LINK_OUTPUT_FIFO_PROG_FULL_THRESH_ASSERT
),
285 d =>
(others =>
(others => '0'
)),
286 q
(0) => Link_output_FIFO_pFULL_THRESH_ASSERT_i,
287 ctrl_default
(0) => X"00001800",
290 U8_Link_output_FIFO_pFULL_THRESH_NEGATE :
entity ipbus_lib.ipbus_ctrlreg_v
291 generic map(N_CTRL =>
1, N_STAT =>
0)
295 ipbus_in => ipbw
(N_SLV_LINK_OUTPUT_FIFO_PROG_FULL_THRESH_NEGATE
),
296 ipbus_out => ipbr
(N_SLV_LINK_OUTPUT_FIFO_PROG_FULL_THRESH_NEGATE
),
297 d =>
(others =>
(others => '0'
)),
298 q
(0) => Link_output_FIFO_pFULL_THRESH_NEGATE_i,
299 ctrl_default
(0) => X"00001000",
306 U9_Link_output_FIFO_RD_DATA_COUNT :
entity ipbus_lib.ipbus_ctrlreg_v
307 generic map(N_CTRL =>
0, N_STAT =>
1)
311 ipbus_in => ipbw
(N_SLV_LINK_OUTPUT_FIFO_RD_DATA_COUNT
),
312 ipbus_out => ipbr
(N_SLV_LINK_OUTPUT_FIFO_RD_DATA_COUNT
),
313 d
(0) => RAW_Link_output_FIFO_rd_data_count_i,
317 U9A_RAW_FIFO_FULL_THRESH_ASSERT :
entity ipbus_lib.ipbus_ctrlreg_v
318 generic map(N_CTRL =>
1, N_STAT =>
0)
322 ipbus_in => ipbw
(N_SLV_RAW_FIFO_FULL_THRESH_ASSERT
),
323 ipbus_out => ipbr
(N_SLV_RAW_FIFO_FULL_THRESH_ASSERT
),
324 q
(0) => RAW_FIFO_FULL_THRESH_ASSERT_i,
325 d =>
(others =>
(others => '0'
)),
326 ctrl_default
(0) => X"000001A0",
329 U9B_RAW_FIFO_FULL_THRESH_NEGATE :
entity ipbus_lib.ipbus_ctrlreg_v
330 generic map(N_CTRL =>
1, N_STAT =>
0)
334 ipbus_in => ipbw
(N_SLV_RAW_FIFO_FULL_THRESH_NEGATE
),
335 ipbus_out => ipbr
(N_SLV_RAW_FIFO_FULL_THRESH_NEGATE
),
336 q
(0) => RAW_FIFO_FULL_THRESH_NEGATE_i,
337 d =>
(others =>
(others => '0'
)),
338 ctrl_default
(0) => X"00000100",
341 U9C_RAW_FIFO_data_count :
entity ipbus_lib.ipbus_ctrlreg_v
342 generic map(N_CTRL =>
0, N_STAT =>
1)
346 ipbus_in => ipbw
(N_SLV_RAW_FIFO_DATA_COUNT
),
347 ipbus_out => ipbr
(N_SLV_RAW_FIFO_DATA_COUNT
),
348 d
(0) => RAW_FIFO_data_count_i,
352 U11_RAW_frame_count :
entity ipbus_lib.ipbus_ctrlreg_v
353 generic map(N_CTRL =>
0, N_STAT =>
1)
357 ipbus_in => ipbw
(N_SLV_RAW_FRAME_COUNT
),
358 ipbus_out => ipbr
(N_SLV_RAW_FRAME_COUNT
),
363 U12_RAW_data_FIFO_flags :
entity ipbus_lib.ipbus_ctrlreg_v
364 generic map(N_CTRL =>
0, N_STAT =>
1)
368 ipbus_in => ipbw
(N_SLV_RAW_DATA_FIFO_FLAGS
),
369 ipbus_out => ipbr
(N_SLV_RAW_DATA_FIFO_FLAGS
),
370 d
(0) => RAW_data_FIFO_flags_i,
374 U13_SPY_mem_wr_addr :
entity ipbus_lib.ipbus_ctrlreg_v
375 generic map(N_CTRL =>
0, N_STAT =>
1)
379 ipbus_in => ipbw
(N_SLV_SPY_MEM_WR_ADDR
),
380 ipbus_out => ipbr
(N_SLV_SPY_MEM_WR_ADDR
),
381 d
(0) => SPY_mem_wr_addr_i,
385 U15_RAW_WR_ADDR_OFFSET_REG :
entity ipbus_lib.ipbus_ctrlreg_v
386 generic map(N_CTRL =>
1, N_STAT =>
0)
390 ipbus_in => ipbw
(N_SLV_RAW_WR_ADDR_OFFSET_REG
),
391 ipbus_out => ipbr
(N_SLV_RAW_WR_ADDR_OFFSET_REG
),
392 q
(0) => RAW_WR_ADDR_OFFSET_REG_i,
393 d =>
(others =>
(others => '0'
)),
396 U16_FIFO_LINK_ERRORS :
entity ipbus_lib.ipbus_ctrlreg_v
397 generic map(N_CTRL =>
0, N_STAT =>
2)
401 ipbus_in => ipbw
(N_SLV_FIFO_LINK_ERRORS
),
402 ipbus_out => ipbr
(N_SLV_FIFO_LINK_ERRORS
),
403 d
(0) => link_error_flags_1,
404 d
(1) => link_error_flags_2,
408 U17_raw_fsm_monitor :
entity ipbus_lib.ipbus_ctrlreg_v
409 generic map(N_CTRL =>
0, N_STAT =>
1)
413 ipbus_in => ipbw
(N_SLV_RAW_FSM_MONITOR
),
414 ipbus_out => ipbr
(N_SLV_RAW_FSM_MONITOR
),
RAW calorimeter data readout slave registers.
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.
out IPb_out ipb_rbus
IPBus output bus going from slaves to master.
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 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 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.