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

Subversion Repositories xucpu

[/] [xucpu/] [trunk/] [src/] [components/] [BRAM/] [tb_generic_ram.vhdl] - Diff between revs 17 and 20

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

Rev 17 Rev 20
Line 18... Line 18...
 
 
 
 
LIBRARY ieee;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
USE ieee.numeric_std.ALL;
USE work.ram_parts.ALL;
USE work.RAM.ALL;
 
 
-- Test bench for instatiating a memory and initialising
-- Test bench for instatiating a memory and initialising
-- it from a file.
-- it from a file.
 
 
ENTITY tb_generic_ram IS
ENTITY tb_generic_ram IS
END ENTITY tb_generic_ram;
END ENTITY tb_generic_ram;
 
 
ARCHITECTURE Structural OF tb_generic_ram IS
ARCHITECTURE Structural OF tb_generic_ram IS
 
 
  CONSTANT w_addr : INTEGER := 12;
  CONSTANT w_addr : INTEGER := 15;
 
 
  SIGNAL clock  : STD_LOGIC                             := '0';
  SIGNAL clock  : STD_LOGIC                             := '0';
  SIGNAL we     : STD_LOGIC                             := '0';
  SIGNAL we     : STD_LOGIC                             := '0';
  SIGNAL data_a : STD_LOGIC_VECTOR(w_addr - 1 DOWNTO 0) := (OTHERS => '0');
  SIGNAL data_a : STD_LOGIC_VECTOR(w_addr - 1 DOWNTO 0) := (OTHERS => '0');
  SIGNAL inst_a : STD_LOGIC_VECTOR(w_addr - 1 DOWNTO 0);
  SIGNAL inst_a : STD_LOGIC_VECTOR(w_addr - 1 DOWNTO 0);
Line 42... Line 42...
 
 
  SIGNAL ctr_a : NATURAL RANGE 0 TO (2**w_addr - 1);
  SIGNAL ctr_a : NATURAL RANGE 0 TO (2**w_addr - 1);
 
 
BEGIN  -- ARCHITECTURE Structural
BEGIN  -- ARCHITECTURE Structural
 
 
  RAM1 : RAM_GENERIC
  RAM1 : memory
    GENERIC MAP (
    GENERIC MAP (
      filename => "test_data.txt",
      filename => "test_data.txt",
      w_addr   => 12)
      w_addr   => w_addr)
    PORT MAP (
    PORT MAP (
      clk => clock,
      clk => clock,
      we  => we,
      we  => we,
      a1  => data_a,
      a1  => data_a,
      a2  => inst_a,
      a2  => inst_a,
Line 58... Line 58...
      q2  => inst_o);
      q2  => inst_o);
 
 
  CTR1 : PROCESS (clock) IS
  CTR1 : PROCESS (clock) IS
  BEGIN  -- PROCESS CTR1
  BEGIN  -- PROCESS CTR1
    IF rising_edge(clock) THEN          -- rising clock edge
    IF rising_edge(clock) THEN          -- rising clock edge
      IF ctr_a = 4095 THEN
      IF ctr_a = (2**w_addr) - 1 THEN
        ctr_a <= 0;
        ctr_a <= 0;
      ELSE
      ELSE
        ctr_a <= ctr_a + 1;
        ctr_a <= ctr_a + 1;
      END IF;
      END IF;
    END IF;
    END IF;

powered by: WebSVN 2.1.0

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