|
|
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.numeric_std.all;
-
-
-
- entity QueueT is
- end entity QueueT;
-
-
-
- architecture sim of QueueT is
-
-
- shared variable sv_simple_queue : work.QueueP.t_simple_queue;
- shared variable sv_list_queue : work.QueueP.t_list_queue;
-
-
- begin
-
-
- SimpleQueueTestP : process is
- variable v_data : std_logic_vector(63 downto 0);
- begin
- -- check initial emptiness
- assert sv_simple_queue.is_empty
- report "ERROR: queue should be empty!"
- severity failure;
- for i in 0 to 63 loop
- sv_simple_queue.push(std_logic_vector(to_unsigned(i, 64)));
- end loop;
- -- check that it's full
- assert sv_simple_queue.is_full
- report "ERROR: queue should be full!"
- severity failure;
- -- empty the queue
- for i in 0 to 63 loop
- sv_simple_queue.pop(v_data);
- assert v_data = std_logic_vector(to_unsigned(i, 64))
- report "ERROR: read data should be " & integer'image(i) &
- " instead of " & integer'image(to_integer(unsigned(v_data)))
- severity failure;
- end loop;
- -- check emptiness
- assert sv_simple_queue.is_empty
- report "ERROR: queue should be empty!"
- severity failure;
- report "INFO: t_simple_queue test finished successfully";
- wait;
- end process SimpleQueueTestP;
-
-
- ListQueueTestP : process is
- variable v_data : std_logic_vector(63 downto 0);
- begin
- -- check initial emptiness
- assert sv_list_queue.is_empty
- report "ERROR: queue should be empty!"
- severity failure;
- for i in 0 to 63 loop
- sv_list_queue.push(std_logic_vector(to_unsigned(i, 64)));
- end loop;
- -- check that it's full
- assert sv_list_queue.is_full
- report "ERROR: queue should be full!"
- severity failure;
- -- empty the queue
- for i in 0 to 63 loop
- sv_list_queue.pop(v_data);
- assert v_data = std_logic_vector(to_unsigned(i, 64))
- report "ERROR: read data should be " & integer'image(i) &
- " instead of " & integer'image(to_integer(unsigned(v_data)))
- severity failure;
- end loop;
- -- check emptiness
- assert sv_list_queue.is_empty
- report "ERROR: queue should be empty!"
- severity failure;
- report "INFO: t_list_queue test finished successfully";
- wait;
- end process ListQueueTestP;
-
-
- end architecture sim;
|