OpenCores
URL https://opencores.org/ocsvn/tinycpu/tinycpu/trunk

Subversion Repositories tinycpu

[/] [tinycpu/] [trunk/] [testbench/] [blockram_tb.vhd] - Diff between revs 9 and 10

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 9 Rev 10
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(11 downto 0); --memory address
      Address: in std_logic_vector(7 downto 0); --memory address
      WriteEnable: in std_logic_vector(1 downto 0); --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(11 downto 0) := (others => '0');
  signal Address: std_logic_vector(7 downto 0) := (others => '0');
  signal WriteEnable: std_logic_vector(1 downto 0) := (others => '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
Line 67... Line 67...
 
 
    --case 1
    --case 1
    WriteEnable(0) <= '0';
    WriteEnable(0) <= '0';
    WriteEnable(1) <= '0';
    WriteEnable(1) <= '0';
    wait for 10 ns;
    wait for 10 ns;
    Address <= x"001";
    Address <= x"01";
    DataIn <= "1000000000001000";
    DataIn <= "1000000000001000";
    WriteEnable(0) <= '1';
    WriteEnable(0) <= '1';
    WriteEnable(1) <= '1';
    WriteEnable(1) <= '1';
    wait for 10 ns;
    wait for 10 ns;
    WriteEnable(0) <= '0';
    WriteEnable(0) <= '0';
    WriteEnable(1) <= '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"033";
    Address <= x"33";
    DataIn <= "1000000000001100";
    DataIn <= "1000000000001100";
    WriteEnable(0) <= '1';
    WriteEnable(0) <= '1';
    WriteEnable(1) <= '1';
    WriteEnable(1) <= '1';
    wait for 10 ns;
    wait for 10 ns;
    WriteEnable(0) <= '0';
    WriteEnable(0) <= '0';
    WriteEnable(1) <= '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"001";
    Address <= x"01";
    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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.