Line 11... |
Line 11... |
-- the register file. All outputs are registered, possibly by using
|
-- the register file. All outputs are registered, possibly by using
|
-- registered memory elements.
|
-- registered memory elements.
|
--
|
--
|
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
|
|
LIBRARY ieee;
|
library ieee;
|
USE ieee.std_logic_1164.ALL;
|
use ieee.std_logic_1164.all;
|
USE ieee.std_logic_unsigned.ALL;
|
use ieee.std_logic_unsigned.all;
|
|
|
LIBRARY mblite;
|
library mblite;
|
USE mblite.config_Pkg.ALL;
|
use mblite.config_Pkg.all;
|
USE mblite.core_Pkg.ALL;
|
use mblite.core_Pkg.all;
|
USE mblite.std_Pkg.ALL;
|
use mblite.std_Pkg.all;
|
|
|
ENTITY gprf IS PORT
|
entity gprf is port
|
(
|
(
|
gprf_o : OUT gprf_out_type;
|
gprf_o : out gprf_out_type;
|
gprf_i : IN gprf_in_type;
|
gprf_i : in gprf_in_type;
|
ena_i : IN std_logic;
|
ena_i : in std_logic;
|
clk_i : IN std_logic
|
clk_i : in std_logic
|
);
|
);
|
END gprf;
|
end gprf;
|
|
|
-- This architecture is the default implementation. It
|
-- This architecture is the default implementation. It
|
-- consists of three dual port memories. Other
|
-- consists of three dual port memories. Other
|
-- architectures can be added while configurations can
|
-- architectures can be added while configurations can
|
-- control the implemented architecture.
|
-- control the implemented architecture.
|
ARCHITECTURE arch OF gprf IS
|
architecture arch of gprf is
|
BEGIN
|
begin
|
a : dsram GENERIC MAP
|
a : dsram generic map
|
(
|
(
|
WIDTH => CFG_DMEM_WIDTH,
|
WIDTH => CFG_DMEM_WIDTH,
|
SIZE => CFG_GPRF_SIZE
|
SIZE => CFG_GPRF_SIZE
|
)
|
)
|
PORT MAP
|
port map
|
(
|
(
|
dat_o => gprf_o.dat_a_o,
|
dat_o => gprf_o.dat_a_o,
|
adr_i => gprf_i.adr_a_i,
|
adr_i => gprf_i.adr_a_i,
|
ena_i => ena_i,
|
ena_i => ena_i,
|
dat_w_i => gprf_i.dat_w_i,
|
dat_w_i => gprf_i.dat_w_i,
|
adr_w_i => gprf_i.adr_w_i,
|
adr_w_i => gprf_i.adr_w_i,
|
wre_i => gprf_i.wre_i,
|
wre_i => gprf_i.wre_i,
|
clk_i => clk_i
|
clk_i => clk_i
|
);
|
);
|
|
|
b : dsram GENERIC MAP
|
b : dsram generic map
|
(
|
(
|
WIDTH => CFG_DMEM_WIDTH,
|
WIDTH => CFG_DMEM_WIDTH,
|
SIZE => CFG_GPRF_SIZE
|
SIZE => CFG_GPRF_SIZE
|
)
|
)
|
PORT MAP
|
port map
|
(
|
(
|
dat_o => gprf_o.dat_b_o,
|
dat_o => gprf_o.dat_b_o,
|
adr_i => gprf_i.adr_b_i,
|
adr_i => gprf_i.adr_b_i,
|
ena_i => ena_i,
|
ena_i => ena_i,
|
dat_w_i => gprf_i.dat_w_i,
|
dat_w_i => gprf_i.dat_w_i,
|
adr_w_i => gprf_i.adr_w_i,
|
adr_w_i => gprf_i.adr_w_i,
|
wre_i => gprf_i.wre_i,
|
wre_i => gprf_i.wre_i,
|
clk_i => clk_i
|
clk_i => clk_i
|
);
|
);
|
|
|
d : dsram GENERIC MAP
|
d : dsram generic map
|
(
|
(
|
WIDTH => CFG_DMEM_WIDTH,
|
WIDTH => CFG_DMEM_WIDTH,
|
SIZE => CFG_GPRF_SIZE
|
SIZE => CFG_GPRF_SIZE
|
)
|
)
|
PORT MAP
|
port map
|
(
|
(
|
dat_o => gprf_o.dat_d_o,
|
dat_o => gprf_o.dat_d_o,
|
adr_i => gprf_i.adr_d_i,
|
adr_i => gprf_i.adr_d_i,
|
ena_i => ena_i,
|
ena_i => ena_i,
|
dat_w_i => gprf_i.dat_w_i,
|
dat_w_i => gprf_i.dat_w_i,
|
adr_w_i => gprf_i.adr_w_i,
|
adr_w_i => gprf_i.adr_w_i,
|
wre_i => gprf_i.wre_i,
|
wre_i => gprf_i.wre_i,
|
clk_i => clk_i
|
clk_i => clk_i
|
);
|
);
|
END arch;
|
end arch;
|
|
|
No newline at end of file
|
No newline at end of file
|