now, 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;