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

Subversion Repositories diogenes

[/] [diogenes/] [trunk/] [vhdl/] [cpu/] [regfile.vhd] - Blame information for rev 236

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 154 fellnhofer
----------------------------------------------------------------------------------
2
-- Company: 
3
-- Engineer: 
4
-- 
5
-- Create Date:    11:44:27 02/19/2007 
6
-- Design Name: 
7
-- Module Name:    regfile - Behavioral 
8
-- Project Name: 
9
-- Target Devices: 
10
-- Tool versions: 
11
-- Description: 
12
--
13
-- Dependencies: 
14
--
15
-- Revision: 
16
-- Revision 0.01 - File Created
17
-- Additional Comments: 
18
--
19
----------------------------------------------------------------------------------
20
library IEEE;
21
use IEEE.STD_LOGIC_1164.ALL;
22
use IEEE.STD_LOGIC_ARITH.ALL;
23
use IEEE.STD_LOGIC_UNSIGNED.ALL;
24
 
25
use work.types.all;
26
 
27
---- Uncomment the following library declaration if instantiating
28
---- any Xilinx primitives in this code.
29
--library UNISIM;
30
--use UNISIM.VComponents.all;
31
 
32
entity regfile is
33
    Port ( addr1 : in  STD_LOGIC_VECTOR (4 downto 0);
34
           addr2 : in  STD_LOGIC_VECTOR (4 downto 0);
35
           dout1 : out  STD_LOGIC_VECTOR (31 downto 0);
36
           dout2 : out  STD_LOGIC_VECTOR (31 downto 0);
37
           addrw : in  STD_LOGIC_VECTOR (4 downto 0);
38
           din : in  STD_LOGIC_VECTOR (31 downto 0);
39
           clk : in  STD_LOGIC;
40
           reset : in  STD_LOGIC);
41
end regfile;
42
 
43
architecture Behavioral of regfile is
44
 
45
component dist_mem
46
        port (
47
        a: IN std_logic_VECTOR(4 downto 0);
48
        d: IN std_logic_VECTOR(31 downto 0);
49
        dpra: IN std_logic_VECTOR(4 downto 0);
50
        clk: IN std_logic;
51
        we: IN std_logic;
52
        spo: OUT std_logic_VECTOR(31 downto 0);
53
        dpo: OUT std_logic_VECTOR(31 downto 0));
54
end component;
55
 
56
signal out1: std_logic_VECTOR(31 downto 0);
57
signal out2: std_logic_VECTOR(31 downto 0);
58
 
59
--signal qin: std_logic_VECTOR(31 downto 0);
60
 
61
 
62
begin
63
 
64
        reg1: dist_mem
65
        port map (
66
        a => addrw,
67
        d => din,
68
        dpra => addr1,
69
        clk => clk,
70
        we => '1',
71
--      spo: OUT std_logic_VECTOR(31 downto 0);
72
        dpo => out1);
73
 
74
        reg2: dist_mem
75
        port map (
76
        a => addrw,
77
        d => din,
78
        dpra => addr2,
79
        clk => clk,
80
        we => '1',
81
--      spo: OUT std_logic_VECTOR(31 downto 0);
82
        dpo => out2);
83
 
84
 
85
--      reg2: regmem
86
--      port map (
87
--      addra => addr2,
88
--      addrb => addrw,
89
--      clka => clk,
90
--      clkb => clk,
91
--      dinb => din,
92
--      douta => out2,
93
--      web => '1');
94
 
95
        dout1 <= din when addr1 = addrw else out1;
96
        dout2 <= din when addr2 = addrw else out2;
97
 
98
end Behavioral;
99
 

powered by: WebSVN 2.1.0

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