D
dcreddy1980
Guest
No sé que hice mal en el código siguiente, cuando me simular el
código ... estoy RWD conseguir <= "UUUUUU" en los resultados de forma de onda ....
SRAM entidad es
(puerto caddr: in std_logic_vector (3 downto 0);
RAddr: in std_logic_vector (6 downto 0);
RWD: inout std_logic_vector (15 downto 0);
BNKSEL: in std_logic;
RDCAS: in std_logic;
WRCAS: in std_logic;
DTRDY: out std_logic);
SRAM final;
el comportamiento de la arquitectura de SRAM es
empezar
proceso (BNKSEL, RDCAS, WRCAS, caddr, rAddr, RWD)
tmp subtipo es std_logic_vector (15 downto 0);
memory_array tipo es array (rango entero de 0 a 127, el rango entero de 0 a
15 );--- 128 filas y 16 columnas
MEM variable: memory_array;
empezar
if (BNKSEL'event y BNKSEL = '1 ') entonces
if (RDCAS = '1 ') entonces
RWD <= mem (conv_integer (sin signo (caddr)), conv_integer (sin signo (rAddr)));
DTRDY <= '1 ';
END IF;
if (WRCAS = '1 ') entonces
MEM (conv_integer (sin signo (caddr)), conv_integer (sin signo (rAddr))): =
RWD;
DTRDY <= '0 ';
END IF;
END IF;
proceso de finalización;
el comportamiento final;Banco de pruebas:
------------
entidad tb_SRAM es
final tb_SRAM;
TB es la arquitectura de tb_SRAM
componente de SRAM
(puerto caddr: in std_logic_vector (3 downto 0);
RAddr: in std_logic_vector (6 downto 0);
RWD: inout std_logic_vector (15 downto 0);
BNKSEL: in std_logic;
RDCAS: in std_logic;
WRCAS: in std_logic;
DTRDY: out std_logic);
componente final;
RDCAS señal, WRCAS, DTRDY, BNKSEL: std_logic;
caddr señal: std_logic_vector (6 downto 0);
rAddr señal: std_logic_vector (3 downto 0);
señal de RWD: std_logic_vector (15 downto 0);
empezar
ESP: Mapa puerto SRAM (caddr, rAddr, RWD, BNKSEL, RDCAS, WRCAS, DTRDY);
Caddr <= "0010010";
RAddr <= "0010";
RWD <= "0001000100010001";
BNKSEL <= '0 ', '1' después de 8 ns, '0 ', después de 16 ns, '1' después de 24 ns, '0 'después de 30
ns;
RDCAS <= '0 ', '1', después de 26 ns, '0 ', después de 34 ns;
WRCAS <= '0 ', '1' después de 10 ns, '0 'después de 18 ns;
tb final;
código ... estoy RWD conseguir <= "UUUUUU" en los resultados de forma de onda ....
SRAM entidad es
(puerto caddr: in std_logic_vector (3 downto 0);
RAddr: in std_logic_vector (6 downto 0);
RWD: inout std_logic_vector (15 downto 0);
BNKSEL: in std_logic;
RDCAS: in std_logic;
WRCAS: in std_logic;
DTRDY: out std_logic);
SRAM final;
el comportamiento de la arquitectura de SRAM es
empezar
proceso (BNKSEL, RDCAS, WRCAS, caddr, rAddr, RWD)
tmp subtipo es std_logic_vector (15 downto 0);
memory_array tipo es array (rango entero de 0 a 127, el rango entero de 0 a
15 );--- 128 filas y 16 columnas
MEM variable: memory_array;
empezar
if (BNKSEL'event y BNKSEL = '1 ') entonces
if (RDCAS = '1 ') entonces
RWD <= mem (conv_integer (sin signo (caddr)), conv_integer (sin signo (rAddr)));
DTRDY <= '1 ';
END IF;
if (WRCAS = '1 ') entonces
MEM (conv_integer (sin signo (caddr)), conv_integer (sin signo (rAddr))): =
RWD;
DTRDY <= '0 ';
END IF;
END IF;
proceso de finalización;
el comportamiento final;Banco de pruebas:
------------
entidad tb_SRAM es
final tb_SRAM;
TB es la arquitectura de tb_SRAM
componente de SRAM
(puerto caddr: in std_logic_vector (3 downto 0);
RAddr: in std_logic_vector (6 downto 0);
RWD: inout std_logic_vector (15 downto 0);
BNKSEL: in std_logic;
RDCAS: in std_logic;
WRCAS: in std_logic;
DTRDY: out std_logic);
componente final;
RDCAS señal, WRCAS, DTRDY, BNKSEL: std_logic;
caddr señal: std_logic_vector (6 downto 0);
rAddr señal: std_logic_vector (3 downto 0);
señal de RWD: std_logic_vector (15 downto 0);
empezar
ESP: Mapa puerto SRAM (caddr, rAddr, RWD, BNKSEL, RDCAS, WRCAS, DTRDY);
Caddr <= "0010010";
RAddr <= "0010";
RWD <= "0001000100010001";
BNKSEL <= '0 ', '1' después de 8 ns, '0 ', después de 16 ns, '1' después de 24 ns, '0 'después de 30
ns;
RDCAS <= '0 ', '1', después de 26 ns, '0 ', después de 34 ns;
WRCAS <= '0 ', '1' después de 10 ns, '0 'después de 18 ns;
tb final;