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

Subversion Repositories uos_processor

[/] [vhdl/] [ram.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 droggen
LIBRARY ieee;
2
USE ieee.std_logic_1164.ALL;
3
USE ieee.numeric_std.ALL;
4
 
5
ENTITY ram IS
6
        generic(N : integer);
7
   PORT
8
   (
9
      clk: IN   std_logic;
10
      address:  IN   STD_LOGIC_VECTOR(N-1 downto 0);
11
                data:  IN   STD_LOGIC_VECTOR(7 downto 0);
12
      we:    IN   std_logic;
13
      q:     OUT  STD_LOGIC_VECTOR(7 DOWNTO 0)
14
   );
15
END ram;
16
 
17
 
18
ARCHITECTURE rtl OF ram IS
19
   TYPE mem IS ARRAY(0 TO 2**N-1) OF std_logic_vector(7 DOWNTO 0);
20
   SIGNAL ram_block : mem := (
21
 
22
-- Put the initial content of the memory here. Note: provide exactly 32 bytes
23
                                                                                        X"00", X"00",
24
                                                                                        X"00", X"00",
25
                                                                                        X"00", X"00",
26
                                                                                        X"00", X"00",
27
                                                                                        X"00", X"00",
28
                                                                                        X"00", X"00",
29
                                                                                        X"00", X"00",
30
                                                                                        X"00", X"00",
31
                                                                                        X"00", X"00",
32
                                                                                        X"00", X"00",
33
                                                                                        X"00", X"00",
34
                                                                                        X"00", X"00",
35
                                                                                        X"00", X"00",
36
                                                                                        X"00", X"00",
37
                                                                                        X"00", X"00",
38
                                                                                        X"00", X"00"
39
                                                                                );
40
 
41
BEGIN
42
   PROCESS(clk)
43
   BEGIN
44
      IF rising_edge(clk) THEN
45
         IF we = '1' THEN
46
            ram_block(to_integer(unsigned(address))) <= data;
47
         END IF;
48
      END IF;
49
   END PROCESS;
50
        q <= ram_block(to_integer(unsigned(address)));
51
END rtl;
52
 

powered by: WebSVN 2.1.0

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