VHDL Grundkonstrukt
[calu.git] / cpu / src / mem_pkg.vhd
1 library IEEE;
2
3 use IEEE.std_logic_1164.all;
4 use IEEE.numeric_std.all;
5
6 package mem_pkg is
7
8         component r_w_ram is
9         generic (
10                                 ADDR_WIDTH : integer range 1 to integer'high;
11                                 DATA_WIDTH : integer range 1 to integer'high
12                         );
13         port(
14                 --System inputs
15                         clk : in std_logic;
16                 --Input
17                         wr_addr, rd_addr : in std_logic_vector(ADDR_WIDTH-1 downto 0);
18                         
19                         wr_en : in std_logic;
20                         data_in : in std_logic_vector(DATA_WIDTH-1 downto 0);
21                         
22                 --Output
23                         data_out: out std_logic_vector(DATA_WIDTH-1 downto 0)
24                 );
25         end component r_w_ram;
26         
27         component r2_w_ram is
28         generic (
29                                 ADDR_WIDTH : integer range 1 to integer'high;
30                                 DATA_WIDTH : integer range 1 to integer'high
31                         );
32         port(
33                 --System inputs
34                         clk : in std_logic;
35                 --Input
36                         wr_addr, rd_addr1, rd_addr2 : in std_logic_vector(ADDR_WIDTH-1 downto 0);
37                         
38                         wr_en : in std_logic;
39                         data_in : in std_logic_vector(DATA_WIDTH-1 downto 0);
40                         
41                 --Output
42                         data_out1, data_out2: out std_logic_vector(DATA_WIDTH-1 downto 0)
43                 );
44         end component r2_w_ram;
45         
46         component rw2_ram is
47         generic (
48                                 ADDR_WIDTH : integer range 1 to integer'high;
49                                 DATA_WIDTH : integer range 1 to integer'high
50                         );
51         port(
52                 --System inputs
53                         clk : in std_logic;
54                 --Input
55                         wr_addr, rd_addr1, rd_addr2 : in std_logic_vector(ADDR_WIDTH-1 downto 0);
56                         
57                         wr_en : in std_logic;
58                         data_in : in std_logic_vector(DATA_WIDTH-1 downto 0);
59                         
60                 --Output
61                         out1, out2: out std_logic_vector(DATA_WIDTH-1 downto 0)
62                 );
63         end component rw2_ram;
64         
65         component rw_ram is
66         generic (
67                                 ADDR_WIDTH : integer range 1 to integer'high;
68                                 DATA_WIDTH : integer range 1 to integer'high
69                         );
70         port(
71                 --System inputs
72                         clk : in std_logic;
73                 --Input
74                         wr_addr, rd_addr1, rd_addr2 : in std_logic_vector(ADDR_WIDTH-1 downto 0);
75                         
76                         wr_en : in std_logic;
77                         data_in : in std_logic_vector(DATA_WIDTH-1 downto 0);
78                         
79                 --Output
80                         out1, out2: out std_logic_vector(DATA_WIDTH-1 downto 0)
81                 );
82         end component rw_ram;
83
84 end package mem_pkg;