|
|
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.numeric_std.all;
-
- --+ including vhdl 2008 libraries
- --+ These lines can be commented out when using
- --+ a simulator with built-in VHDL 2008 support
- --library ieee_proposed;
- -- use ieee_proposed.standard_additions.all;
- -- use ieee_proposed.std_logic_1164_additions.all;
- -- use ieee_proposed.numeric_std_additions.all;
-
- library osvvm;
- use osvvm.RandomPkg.all;
-
- library libvhdl;
- use libvhdl.DictP.all;
-
-
-
- entity DictT is
- end entity DictT;
-
-
-
- architecture sim of DictT is
-
-
- type t_scoreboard is array (natural range <>) of std_logic_vector(7 downto 0);
-
- shared variable sv_dict : t_dict;
-
-
- begin
-
-
- DictInitP : process is
- begin
- sv_dict.init(false);
- wait;
- end process DictInitP;
-
-
- DictTestP : process is
- variable v_key : string(1 to 4);
- variable v_random : RandomPType;
- variable v_input : std_logic_vector(7 downto 0);
- variable v_output : std_logic_vector(7 downto 0);
- variable v_scoreboard : t_scoreboard(0 to 256);
- begin
- v_random.InitSeed(v_random'instance_name);
-
- -- check initial emptiness
- assert sv_dict.size = 0
- report "ERROR: Dict should be empty"
- severity failure;
-
- -- fill dictionary and check count
- report "INFO: Test : Fill dictionary";
- for i in 0 to 255 loop
- v_input := v_random.RandSlv(8);
- sv_dict.set(integer'image(i), v_input);
- v_scoreboard(i) := v_input;
- assert sv_dict.size = i+1
- report "ERROR: Dict should have " & to_string(i+1) & " entries"
- severity failure;
- end loop;
- report "INFO: Test successful";
-
- -- read all entries and check for correct data
- report "INFO: Test : Read dictionary";
- for i in 0 to 255 loop
- sv_dict.get(integer'image(i), v_output);
- assert v_output = v_scoreboard(i)
- report "ERROR: Got 0x" & to_hstring(v_output) & ", expected 0x" & to_hstring(v_scoreboard(i))
- severity failure;
- end loop;
- report "INFO: Test successful";
-
- report "INFO: t_dict test finished successfully";
- wait;
- end process DictTestP;
-
-
- end architecture sim;
|