D
dcreddy1980
Guest
Не знам къде съм сгрешил в следния код, когато се симулира
код ... аз съм се RWD <= "ÛÛÛÛÛÛ" в Waveform резултати ....
SRAM лице е
порт (CADDR: в std_logic_vector (3 downto 0);
RADDR: в std_logic_vector (6 downto 0);
RWD: Inout std_logic_vector (15 downto 0);
BNKSEL: в std_logic;
RDCAS: в std_logic;
WRCAS: в std_logic;
DTRDY: Няма std_logic);
края SRAM;
архитектура поведението на SRAM е
започвам
процес (BNKSEL, RDCAS, WRCAS, CADDR, RADDR, RWD)
подтип ПТУ е std_logic_vector (15 downto 0);
тип memory_array е Array (число от 0 до 127, число от 0 до
15 );--- 128 редове и колони 16
променлива Mem: memory_array;
започвам
IF (BNKSEL'event и BNKSEL = '1 '), тогава
IF (RDCAS = '1 '), тогава
RWD <= кор (conv_integer (грозен (CADDR)), conv_integer (грозен (RADDR)));
DTRDY <= '1 ';
крайна сметка, ако;
IF (WRCAS = '1 '), тогава
кор (conv_integer (грозен (CADDR)), conv_integer (грозен (RADDR))): =
RWD;
DTRDY <= '0 ';
крайна сметка, ако;
крайна сметка, ако;
край процес;
края поведение;TESTBENCH:
------------
лице е tb_SRAM
края tb_SRAM;
архитектура на tb_SRAM е TB
компонент SRAM
порт (CADDR: в std_logic_vector (3 downto 0);
RADDR: в std_logic_vector (6 downto 0);
RWD: Inout std_logic_vector (15 downto 0);
BNKSEL: в std_logic;
RDCAS: в std_logic;
WRCAS: в std_logic;
DTRDY: Няма std_logic);
края компонент;
RDCAS сигнал, WRCAS, DTRDY, BNKSEL: std_logic;
сигнал CADDR: std_logic_vector (6 downto 0);
сигнал RADDR: std_logic_vector (3 downto 0);
сигнал RWD: std_logic_vector (15 downto 0);
започвам
Uut: SRAM пристанище карта (CADDR, RADDR, RWD, BNKSEL, RDCAS, WRCAS, DTRDY);
CADDR <= "0010010";
RADDR <= "0010";
RWD <= "0001000100010001";
BNKSEL <= '0 ', '1', след 8 NS, '0 ', след 16 NS, '1', след 24 NS, '0 ', след 30
NS;
RDCAS <= '0 ', '1' след 26 NS, '0 ', след 34 NS;
WRCAS <= '0 ', '1' след 10-NS, '0 'след 18 NS;
края TB;
код ... аз съм се RWD <= "ÛÛÛÛÛÛ" в Waveform резултати ....
SRAM лице е
порт (CADDR: в std_logic_vector (3 downto 0);
RADDR: в std_logic_vector (6 downto 0);
RWD: Inout std_logic_vector (15 downto 0);
BNKSEL: в std_logic;
RDCAS: в std_logic;
WRCAS: в std_logic;
DTRDY: Няма std_logic);
края SRAM;
архитектура поведението на SRAM е
започвам
процес (BNKSEL, RDCAS, WRCAS, CADDR, RADDR, RWD)
подтип ПТУ е std_logic_vector (15 downto 0);
тип memory_array е Array (число от 0 до 127, число от 0 до
15 );--- 128 редове и колони 16
променлива Mem: memory_array;
започвам
IF (BNKSEL'event и BNKSEL = '1 '), тогава
IF (RDCAS = '1 '), тогава
RWD <= кор (conv_integer (грозен (CADDR)), conv_integer (грозен (RADDR)));
DTRDY <= '1 ';
крайна сметка, ако;
IF (WRCAS = '1 '), тогава
кор (conv_integer (грозен (CADDR)), conv_integer (грозен (RADDR))): =
RWD;
DTRDY <= '0 ';
крайна сметка, ако;
крайна сметка, ако;
край процес;
края поведение;TESTBENCH:
------------
лице е tb_SRAM
края tb_SRAM;
архитектура на tb_SRAM е TB
компонент SRAM
порт (CADDR: в std_logic_vector (3 downto 0);
RADDR: в std_logic_vector (6 downto 0);
RWD: Inout std_logic_vector (15 downto 0);
BNKSEL: в std_logic;
RDCAS: в std_logic;
WRCAS: в std_logic;
DTRDY: Няма std_logic);
края компонент;
RDCAS сигнал, WRCAS, DTRDY, BNKSEL: std_logic;
сигнал CADDR: std_logic_vector (6 downto 0);
сигнал RADDR: std_logic_vector (3 downto 0);
сигнал RWD: std_logic_vector (15 downto 0);
започвам
Uut: SRAM пристанище карта (CADDR, RADDR, RWD, BNKSEL, RDCAS, WRCAS, DTRDY);
CADDR <= "0010010";
RADDR <= "0010";
RWD <= "0001000100010001";
BNKSEL <= '0 ', '1', след 8 NS, '0 ', след 16 NS, '1', след 24 NS, '0 ', след 30
NS;
RDCAS <= '0 ', '1' след 26 NS, '0 ', след 34 NS;
WRCAS <= '0 ', '1' след 10-NS, '0 'след 18 NS;
края TB;