18 use IEEE.STD_LOGIC_1164.
ALL;
19 use IEEE.NUMERIC_STD.
ALL;
21 library TOB_rdout_lib;
54 signal CLK_280M_i : std_logic ;
55 signal RST_i : std_logic ;
56 signal L1A_in_1 : std_logic ;
57 signal FIFO_wr_en_i : std_logic := '0' ;
58 signal FIFO_wr_en_tmp : std_logic := '0' ;
59 signal DRP_rd_en_i : std_logic ;
60 signal en_error_valid_i : std_logic ;
61 signal DPR_rd_addr_i : STD_LOGIC_VECTOR (9 downto 0);
62 signal DPR_wr_addr_i : STD_LOGIC_VECTOR (9 downto 0);
74 SIGNAL current_state : STATE_TYPE;
75 signal count : integer range 0 to 8;
78 attribute keep : string ;
79 attribute max_fanout : integer;
80 attribute keep of FIFO_wr_en_i : signal is "true" ;
81 attribute max_fanout of FIFO_wr_en_i : signal is 30;
82 attribute keep of DRP_rd_en_i : signal is "true" ;
83 attribute max_fanout of DRP_rd_en_i : signal is 30;
84 attribute keep of DPR_rd_addr_i : signal is "true" ;
85 attribute max_fanout of DPR_rd_addr_i : signal is 30;
86 attribute keep of DPR_wr_addr_i : signal is "true" ;
87 attribute max_fanout of DPR_wr_addr_i : signal is 10;
119 DPR_wr_addr_i <= std_logic_vector ( unsigned(pre_ld_wr_addr) + unsigned(DPR_rd_addr_i) ) ;
123 U3_rd_fsm :
process (CLK_280M_i)
126 if CLK_280M_i'event and CLK_280M_i = '1' then
129 FIFO_wr_en_i <= '0' ;
131 en_error_valid_i <= '0';
133 current_state <= idle ;
136 CASE current_state is
141 en_error_valid_i <= '0';
143 if L1A_in_1 = '1' then
144 current_state <= rd_mem ;
146 current_state <= idle ;
152 current_state <= wait_1 ;
158 en_error_valid_i <= '1';
159 current_state <= ser_1 ;
164 en_error_valid_i <= '0';
170 current_state <= ser_1 ;
172 en_error_valid_i <= '0';
173 if L1A_in_1 = '1' then
177 current_state <= wait_1 ;
179 current_state <= idle ;
181 FIFO_wr_en_i <= '1' ;
Transfer calorimeter data from Circular DPRAM to de-randomisation FIFO.
Transfer calorimeter data from Circular DPRAM to de-randomisation FIFO.
out DPR_wr_addr STD_LOGIC_VECTOR( 9 downto 0)
DPRAM write address.
out DPR_rd_addr STD_LOGIC_VECTOR( 9 downto 0)
DPRAM read address.
out DRP_rd_en STD_LOGIC
DPRAM read enable.
out FIFO_wr_en STD_LOGIC
FIFO write enable.
in L1A_in STD_LOGIC
TTC L1A input.
out raw_data_dpram_fsm STD_LOGIC_VECTOR( 7 downto 0)
Monitor state machine status register.
out en_error_valid STD_LOGIC
Enable capture of error flags from last RAW word.
in pre_ld_wr_addr STD_LOGIC_VECTOR( 9 downto 0)
latency offset for DPRAM wr address
in RST STD_LOGIC
Reset input.
in CLK_280M STD_LOGIC
Clock 280 MHz.