epfl-archive/cs208-ca/vhdl/ROM.vhd.bak

49 lines
961 B
VHDL
Raw Normal View History

2022-04-07 18:43:21 +02:00
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity ROM is
port(
clk : in std_logic;
cs : in std_logic;
read : in std_logic;
address : in std_logic_vector(9 downto 0);
rddata : out std_logic_vector(31 downto 0)
);
end ROM;
architecture synth of ROM is
signal reg_read : std_logic;
signal reg_data : std_logic_vector(31 downto 0);
component ROM_Block
port(
address : IN STD_LOGIC_VECTOR (9 DOWNTO 0);
clock : IN STD_LOGIC := '1';
q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0)
);
end component;
begin
-- romblock
romblock : ROM_Block port map(
address => address,
clock => clk,
q => reg_data
);
-- registers
process(clk)
begin
if (rising_edge(clk) and cs = '1' and read = '1') then
rddata <= reg_data;
end if;
end process;
end synth;