verilog: add sv_maps iterators
[ghdl-vlg.git] / testsuite / synth / issue412 / tb_my_fifo.vhdl
blob8f3def0dee9a8a9a1de8d38a8fda26732397d7a1
1 library ieee;
2 use ieee.std_logic_1164.all;
4 entity tb_my_FIFO is
5 end;
7 architecture behav of tb_my_fifo is
8   signal clk       : std_ulogic;
9   signal rst       : std_ulogic;
10   signal data_in   : std_logic_vector(7 downto 0);
11   signal valid_in  : std_ulogic;
12   signal ready_out : std_ulogic;
13   signal data_out  : std_logic_vector(7 downto 0);
14   signal valid_out : std_ulogic;
15   signal ready_in  : std_ulogic;
16 begin
17   inst_my_FIFO: entity work.my_FIFO
18     port map (
19       clk       => clk,
20       rst       => rst,
21       data_in   => data_in,
22       valid_in  => valid_in,
23       ready_out => ready_out,
24       data_out  => data_out,
25       valid_out => valid_out,
26       ready_in  => ready_in);
28   process
29     procedure pulse is
30     begin
31       clk <= '0';
32       wait for 5 ns;
33       clk <= '1';
34       wait for 5 ns;
35     end pulse;
36   begin
37     rst <= '1';
38     valid_in <= '0';
39     ready_in <= '0';
40     pulse;
42     rst <= '0';
43     pulse;
45     assert valid_out = '0' severity failure;
46     assert ready_out = '1' severity failure;
48     data_in <= x"d5";
49     valid_in <= '1';
50     pulse;
52     valid_in <= '0';
54     --  Need a second cycle to see the data on the outputs.
55     pulse;
56     assert valid_out = '1' severity failure;
57     assert data_out = x"d5" severity failure;
59     ready_in <= '1';
60     pulse;
61     assert valid_out = '0' severity failure;
63     ready_in <= '0';
64     wait;
65   end process;
66 end behav;