Forum Discussion
Altera_Forum
Honored Contributor
10 years agoROM and RAM connection
Hello, Im trying to connect ROM with RAM blocks,for this Im write top level entity and connected output of ROM with RAM This is code for ROM LIBRARY ieee; USE ieee.std_logic_1164.all;
...
Altera_Forum
Honored Contributor
10 years agonow, I competed this code
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all ;
entity ROMRAM is
generic(
DATA_WIDTHi : integer := 8;
ADDR_WIDTHi : integer := 8);
port (
CLOC: IN std_logic;
ADD: IN integer range 0 to 511;
--data_a : in std_logic_vector(DATA_WIDTHi-1 downto 0);
--data_b : in std_logic_vector(DATA_WIDTHi-1 downto 0);
--data_a_i : out integer range 0 to 255;
--data_b_q : out integer range 0 to 255;
--clk : in std_logic;
we_ai : in std_logic;
addr_ai : in std_logic_vector(ADDR_WIDTHi-1 downto 0);
q_ai : out std_logic_vector(DATA_WIDTHi-1 downto 0);
we_bq : in std_logic;
addr_bq : in std_logic_vector(ADDR_WIDTHi-1 downto 0);
q_bq : out std_logic_vector(DATA_WIDTHi-1 downto 0));
end ROMRAM;
architecture rtl of ROMRAM is
--- Component decalarartion
Component sync_rom is
port(
clock: IN std_logic;
address: IN integer range 0 to 511;
data_a_i: OUT integer range 0 to 255;
data_b_q: OUT integer range 0 to 255
);
end component;
Component dp_ram_rbw_scl is
generic (
DATA_WIDTH : integer := 8;
ADDR_WIDTH : integer := 8
);
port(
clk : in std_logic;
we_a : in std_logic;
addr_a : in std_logic_vector(ADDR_WIDTH-1 downto 0) ;
data_a : in std_logic_vector(DATA_WIDTH-1 downto 0) ;
q_a : out std_logic_vector(DATA_WIDTH-1 downto 0);
we_b : in std_logic;
addr_b : in std_logic_vector(ADDR_WIDTH-1 downto 0) ;
data_b : in std_logic_vector(DATA_WIDTH-1 downto 0) ;
q_b : out std_logic_vector(DATA_WIDTH-1 downto 0)
);
end component;
for all : sync_rom use entity work.sync_rom(rtl);
for all : dp_ram_rbw_scl use entity work.dp_ram_rbw_scl(rtl);
Signal data_a_i_i: integer range 0 to 255;--interanal signals
signal dt_ai: std_logic_vector(7 downto 0);
Signal data_b_q_i: integer range 0 to 255;--interanal signals
signal dt_bq: std_logic_vector(7 downto 0);
begin
-- Component Instantiation
C1: sync_rom Port map (
clock => CLOC,
address =>ADD,
data_a_i =>data_a_i_i,
data_b_q =>data_b_q_i
);
C2: dp_ram_rbw_scl
Port map (
clk=>CLOC,
we_a=>we_ai,
addr_a=>addr_ai,
data_a =>dt_ai,
q_a=>q_ai,
we_b=>we_bq,
addr_b=>addr_bq,
data_b =>dt_bq,
q_b=>q_bq
);
dt_ai<=std_logic_vector(to_unsigned(data_a_i_i,dt_ai'length));
dt_bq<=std_logic_vector(to_unsigned(data_b_q_i,dt_bq'length));
--data_a_i<= to_integer(unsigned(data_a));
--data_b_q<= to_integer(unsigned(data_b));
--data_a_i <= std_logic_vector(to_unsigned(data_a_i,data_a'length));
--data_a=> data_a_i_i
end rtl;