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

Subversion Repositories tinycpu

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

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

Rev 8 Rev 9
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

powered by: WebSVN 2.1.0

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