@@ -27,6 +27,12 @@ architecture a of tb_uart is
2727 constant slave_uart : uart_slave_t := new_uart_slave(data_length => 8 );
2828 constant slave_stream : stream_slave_t := as_stream(slave_uart);
2929
30+ -- parity related VCs
31+ constant master_uart_p : uart_master_t := new_uart_master;
32+ constant master_stream_p : stream_master_t := as_stream(master_uart);
33+
34+ constant slave_uart_p : uart_slave_t := new_uart_slave(data_length => 8 );
35+ constant slave_stream_p : stream_slave_t := as_stream(slave_uart);
3036 signal chan : std_logic ;
3137begin
3238
8389 test_baud_rate(2000 );
8490 test_baud_rate(7000 );
8591 test_baud_rate(200000 );
92+ elsif run(" test_parity_odd" ) then
93+ set_parity(net, master_uart_p, 1 );
94+ set_parity(net, slave_uart_p, 1 );
95+
96+ for i in 0 to 7 loop
97+ push_stream(net, master_stream_p,
98+ std_logic_vector (to_unsigned (i+ 1 , data'length )));
99+ pop_stream(net, slave_stream_p, data);
100+ check_equal(data, std_logic_vector (to_unsigned (i+ 1 , data'length )), " pop stream data" );
101+ end loop ;
102+
103+ elsif run(" test_parity_even" ) then
104+ set_parity(net, master_uart_p, 2 );
105+ set_parity(net, slave_uart_p, 2 );
106+
107+ for i in 0 to 7 loop
108+ push_stream(net, master_stream_p,
109+ std_logic_vector (to_unsigned (i+ 1 , data'length )));
110+ pop_stream(net, slave_stream_p, data);
111+ check_equal(data, std_logic_vector (to_unsigned (i+ 1 , data'length )), " pop stream data" );
112+ end loop ;
113+
86114 end if ;
87115
88116 test_runner_cleanup(runner);
0 commit comments