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

Subversion Repositories mblite

[/] [mblite/] [tags/] [1.0/] [hw/] [core/] [gprf.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 takar
----------------------------------------------------------------------------------------------
2
--
3
--      Input file         : gprf.vhd
4
--      Design name        : gprf
5
--      Author             : Tamar Kranenburg
6
--      Company            : Delft University of Technology
7
--                         : Faculty EEMCS, Department ME&CE
8
--                         : Systems and Circuits group
9
--
10
--      Description        : The general purpose register infers memory blocks to implement
11
--                           the register file. All outputs are registered, possibly by using
12
--                           registered memory elements.
13
--
14
----------------------------------------------------------------------------------------------
15
 
16
LIBRARY ieee;
17
USE ieee.std_logic_1164.ALL;
18
USE ieee.std_logic_unsigned.ALL;
19
 
20
LIBRARY mblite;
21
USE mblite.config_Pkg.ALL;
22
USE mblite.core_Pkg.ALL;
23
USE mblite.std_Pkg.ALL;
24
 
25
ENTITY gprf IS PORT
26
(
27
    gprf_o : OUT gprf_out_type;
28
    gprf_i : IN gprf_in_type;
29
    ena_i  : IN std_ulogic;
30
    clk_i  : IN std_ulogic
31
);
32
END gprf;
33
 
34
-- This architecture is the default implementation. It
35
-- consists of three dual port memories. Other
36
-- architectures can be added while configurations can
37
-- control the implemented architecture.
38
ARCHITECTURE arch OF gprf IS
39
BEGIN
40
    a : dsram GENERIC MAP
41
    (
42
        WIDTH   => CFG_DMEM_WIDTH,
43
        SIZE    => CFG_GPRF_SIZE
44
    )
45
    PORT MAP
46
    (
47
        dat_o   => gprf_o.dat_a_o,
48
        adr_i   => gprf_i.adr_a_i,
49
        ena_i   => ena_i,
50
        dat_w_i => gprf_i.dat_w_i,
51
        adr_w_i => gprf_i.adr_w_i,
52
        wre_i   => gprf_i.wre_i,
53
        clk_i   => clk_i
54
    );
55
 
56
    b : dsram GENERIC MAP
57
    (
58
        WIDTH   => CFG_DMEM_WIDTH,
59
        SIZE    => CFG_GPRF_SIZE
60
    )
61
    PORT MAP
62
    (
63
        dat_o   => gprf_o.dat_b_o,
64
        adr_i   => gprf_i.adr_b_i,
65
        ena_i   => ena_i,
66
        dat_w_i => gprf_i.dat_w_i,
67
        adr_w_i => gprf_i.adr_w_i,
68
        wre_i   => gprf_i.wre_i,
69
        clk_i   => clk_i
70
    );
71
 
72
    d : dsram GENERIC MAP
73
    (
74
        WIDTH   => CFG_DMEM_WIDTH,
75
        SIZE    => CFG_GPRF_SIZE
76
    )
77
    PORT MAP
78
    (
79
        dat_o   => gprf_o.dat_d_o,
80
        adr_i   => gprf_i.adr_d_i,
81
        ena_i   => ena_i,
82
        dat_w_i => gprf_i.dat_w_i,
83
        adr_w_i => gprf_i.adr_w_i,
84
        wre_i   => gprf_i.wre_i,
85
        clk_i   => clk_i
86
    );
87
END arch;

powered by: WebSVN 2.1.0

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