next_first_fifo_read <= not dat_fifo_finished(next_dat_fifo_number);
end if;
end if;
- next_ipu_dataready_i <= (dat_fifo_valid_read or (ipu_dataready_i and not IPU_READ_IN)) and not suppress_output;
+ next_ipu_dataready_i <= (dat_fifo_valid_read or (ipu_dataready_i and not IPU_READ_IN));
next_ipu_data_i <= DAT_DATA_IN(dat_fifo_number*32+31 downto dat_fifo_number*32);
when END_READOUT =>
gen_fifo_read : for i in 0 to DATA_INTERFACE_NUMBER-1 generate
--Read signal for data fifos
- dat_fifo_read(i) <= dat_fifo_select(i) and ((IPU_READ_IN and (ipu_dataready_i or suppress_output)) or first_fifo_read) and not dat_fifo_finished(i);
+ dat_fifo_read(i) <= dat_fifo_select(i) and ((IPU_READ_IN and (ipu_dataready_i)) or first_fifo_read) and not dat_fifo_finished(i);
--Count words read from data fifos
---------------------------------------------------------------------------
-- Connection to IPU Handler
---------------------------------------------------------------------------
- IPU_DATAREADY_OUT <= ipu_dataready_i;
+ IPU_DATAREADY_OUT <= ipu_dataready_i and not suppress_output when current_state /= SEND_DHDR else ipu_dataready_i;
IPU_DATA_OUT <= ipu_data_i;
IPU_LENGTH_OUT <= ipu_length_i;
IPU_ERROR_PATTERN_OUT <= ipu_error_pattern_i;
signal timer : unsigned(31 downto 0) := (others => '0');
signal event : unsigned(15 downto 0) := (others => '0');
+ signal eventvec : std_logic_vector(15 downto 0) := (others => '0');
signal readoutevent : unsigned(15 downto 0) := (others => '0');
begin
);
+
proc_clk : process
begin
wait for 5 ns;
wait;
end process;
+eventvec <= std_logic_vector(event);
+
proc_media_interface : process
begin
med_stat_op <= (others => '0');
med_packet_num_in <= c_F0;
med_dataready_in <= '1';
wait until falling_edge(clk);
- med_data_in <= x"10CD";
+ med_data_in <= x"10CD" or x"0"&"000"&eventvec(0)&x"00";
med_packet_num_in <= c_F1;
med_dataready_in <= '1';
wait until falling_edge(clk);
signal state_bits : std_logic_vector(2 downto 0);
signal dhdr_counter : std_logic_vector(1 downto 0);
signal first_ipu_read : std_logic;
- signal ipu_read_before : std_logic;
+ signal ipu_read_before : std_logic := '0';
signal second_word_waiting : std_logic;
signal last_second_word_waiting : std_logic;
signal make_compare : std_logic;