Line 9... |
Line 9... |
|
|
-- Component Declaration for the Unit Under Test (UUT)
|
-- Component Declaration for the Unit Under Test (UUT)
|
|
|
component blockram
|
component blockram
|
port(
|
port(
|
Address: in std_logic_vector(7 downto 0); --memory address
|
Address: in std_logic_vector(11 downto 0); --memory address
|
WriteEnable: in std_logic; --write or read
|
WriteEnable: in std_logic_vector(1 downto 0); --write or read
|
Enable: in std_logic;
|
Enable: in std_logic;
|
Clock: in std_logic;
|
Clock: in std_logic;
|
DataIn: in std_logic_vector(15 downto 0);
|
DataIn: in std_logic_vector(15 downto 0);
|
DataOut: out std_logic_vector(15 downto 0)
|
DataOut: out std_logic_vector(15 downto 0)
|
);
|
);
|
end component;
|
end component;
|
|
|
|
|
--Inputs
|
--Inputs
|
signal Address: std_logic_vector(7 downto 0) := (others => '0');
|
signal Address: std_logic_vector(11 downto 0) := (others => '0');
|
signal WriteEnable: std_logic := '0';
|
signal WriteEnable: std_logic_vector(1 downto 0) := (others => '0');
|
signal DataIn: std_logic_vector(15 downto 0) := (others => '0');
|
signal DataIn: std_logic_vector(15 downto 0) := (others => '0');
|
signal Enable: std_logic := '0';
|
signal Enable: std_logic := '0';
|
|
|
--Outputs
|
--Outputs
|
signal DataOut: std_logic_vector(15 downto 0);
|
signal DataOut: std_logic_vector(15 downto 0);
|
Line 64... |
Line 64... |
wait for 100 ns;
|
wait for 100 ns;
|
|
|
wait for clock_period*10;
|
wait for clock_period*10;
|
|
|
--case 1
|
--case 1
|
WriteEnable <= '0';
|
WriteEnable(0) <= '0';
|
|
WriteEnable(1) <= '0';
|
wait for 10 ns;
|
wait for 10 ns;
|
Address <= x"01";
|
Address <= x"001";
|
DataIn <= "1000000000001000";
|
DataIn <= "1000000000001000";
|
WriteEnable <= '1';
|
WriteEnable(0) <= '1';
|
|
WriteEnable(1) <= '1';
|
wait for 10 ns;
|
wait for 10 ns;
|
WriteEnable <= '0';
|
WriteEnable(0) <= '0';
|
|
WriteEnable(1) <= '0';
|
wait for 10 ns;
|
wait for 10 ns;
|
assert (DataOut="1000000000001000") report "Storage error case 1" severity error;
|
assert (DataOut="1000000000001000") report "Storage error case 1" severity error;
|
|
|
--case 2
|
--case 2
|
Address <= x"33";
|
Address <= x"033";
|
DataIn <= "1000000000001100";
|
DataIn <= "1000000000001100";
|
WriteEnable <= '1';
|
WriteEnable(0) <= '1';
|
|
WriteEnable(1) <= '1';
|
wait for 10 ns;
|
wait for 10 ns;
|
WriteEnable <= '0';
|
WriteEnable(0) <= '0';
|
|
WriteEnable(1) <= '0';
|
wait for 10 ns;
|
wait for 10 ns;
|
assert (DataOut="1000000000001100") report "memory selection error case 2" severity error;
|
assert (DataOut="1000000000001100") report "memory selection error case 2" severity error;
|
|
|
-- case 3
|
-- case 3
|
Address <= x"01";
|
Address <= x"001";
|
wait for 10 ns;
|
wait for 10 ns;
|
assert (DataOut="1000000000001000") report "memory retention error case 3" severity error;
|
assert (DataOut="1000000000001000") report "memory retention error case 3" severity error;
|
|
|
|
|
--case 5
|
--case 5
|