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

Subversion Repositories uos_processor

[/] [vhdl/] [ram.vhd] - Rev 2

Compare with Previous | Blame | View Log

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
 
ENTITY ram IS
	generic(N : integer);
   PORT
   (
      clk: IN   std_logic;
      address:  IN   STD_LOGIC_VECTOR(N-1 downto 0);
		data:  IN   STD_LOGIC_VECTOR(7 downto 0);
      we:    IN   std_logic;
      q:     OUT  STD_LOGIC_VECTOR(7 DOWNTO 0)
   );
END ram;
 
 
ARCHITECTURE rtl OF ram IS
   TYPE mem IS ARRAY(0 TO 2**N-1) OF std_logic_vector(7 DOWNTO 0);
   SIGNAL ram_block : mem := (	
 
-- Put the initial content of the memory here. Note: provide exactly 32 bytes
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00",
											X"00", X"00"
										);
 
BEGIN
   PROCESS(clk)
   BEGIN
      IF rising_edge(clk) THEN
         IF we = '1' THEN
            ram_block(to_integer(unsigned(address))) <= data;
         END IF;
      END IF;
   END PROCESS;
	q <= ram_block(to_integer(unsigned(address)));
END rtl;
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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