]> rtime.felk.cvut.cz Git - fpga/uart.git/blob - tb/tb_baud_gen.vhd
Baud generator ClockEnable added.
[fpga/uart.git] / tb / tb_baud_gen.vhd
1 library ieee;
2 use ieee.std_logic_1164.all;
3 use ieee.std_logic_arith.all;
4 use ieee.std_logic_unsigned.all;
5
6 entity tb_baud_gen is
7 end tb_baud_gen;
8
9
10 architecture testbench of tb_baud_gen is
11
12   component baud_gen is
13     port (
14       clk      : in  std_logic;
15       ce       : in  std_logic;
16       reset    : in  std_logic;
17       scale    : in  std_logic_vector (15 downto 0);
18       clk_baud : out std_logic
19     );
20   end component;
21   
22   signal clk   : std_logic;
23   signal ce    : std_logic;
24   signal reset : std_logic;
25   
26   constant period : time := 2 us;
27   constant offset : time := 2 us;
28   
29   signal scale    : std_logic_vector (15 downto 0);
30   signal clk_baud : std_logic;
31
32 --------------------------------------------------------------------------------
33   
34 begin
35   UUT : baud_gen port map (
36     clk      => clk,
37     ce       => ce,
38     reset    => reset,
39     scale    => scale,
40     clk_baud => clk_baud
41   );
42
43   process
44   begin
45     clk <= '0';
46     wait for offset;
47     
48     loop
49       clk <= '1';
50       wait for period/2;
51       clk <= '0';
52       wait for period/2;
53     end loop;
54   end process;
55
56
57   process
58   begin
59     reset <= '0';
60     ce    <= '0';
61     
62     wait for 1.2 * period;
63     reset <= '1';
64     wait for 3 * period;
65     reset <= '0';
66
67     wait for 2 * period;
68     ce <= '1';
69     wait for 7 * period;
70     ce <= '0';
71
72     wait;
73   end process;
74
75
76   process
77   begin
78     scale <= X"0000";
79   
80     wait until reset = '0' and clk = '1';
81     wait for 0.1 * period;
82     
83     wait;
84   end process;
85   
86 end testbench;
87