10 USE ieee.std_logic_1164.
all;
17 fifo_valid : in std_logic;
18 fifo_last : in std_logic;
19 fifo_error : in std_logic;
20 fifo_reset : out std_logic
27 signal fifo_reset_sig: std_logic;
31 fifo_reset <= fifo_reset_sig;
33 fifo_reset_block:
process(clk)
35 Variable stretch: std_logic_vector(7 downto 0) := (Others => '1');
37 Variable armed : std_logic := '0';
39 if rising_edge(clk) then
42 stretch := (Others => '1');
45 elsif (fifo_error = '1') then
46 stretch := (Others => '1');
49 elsif (fifo_valid = '1') and (fifo_last = '1') and (armed = '1') then
50 stretch := (Others => '0');
52 elsif (fifo_valid = '1') and (armed = '1') then
53 stretch := (Others => '1');
55 stretch := stretch(6 downto 0) & "0";
58 if (fifo_reset_sig = '0') then
61 fifo_reset_sig <= stretch(7)
67 end process fifo_reset_block;
Assert reset on error in FIFO and hold until end of incoming packet...
Assert reset on error in FIFO and hold until end of incoming packet...