Line 4... |
Line 4... |
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- File : Rx_tb.vhd
|
-- File : Rx_tb.vhd
|
-- Author : Jamil Khatib (khatib@ieee.org)
|
-- Author : Jamil Khatib (khatib@ieee.org)
|
-- Organization: OpenIPCore Project
|
-- Organization: OpenIPCore Project
|
-- Created : 2000/12/30
|
-- Created : 2000/12/30
|
-- Last update : 2000/12/30
|
-- Last update: 2001/01/12
|
-- Platform :
|
-- Platform :
|
-- Simulators : Modelsim 5.3XE/Windows98
|
-- Simulators : Modelsim 5.3XE/Windows98
|
-- Synthesizers:
|
-- Synthesizers:
|
-- Target :
|
-- Target :
|
-- Dependency : ieee.std_logic_1164
|
-- Dependency : ieee.std_logic_1164
|
Line 31... |
Line 31... |
-- Modifier : Jamil Khatib (khatib@ieee.org)
|
-- Modifier : Jamil Khatib (khatib@ieee.org)
|
-- Desccription : Created
|
-- Desccription : Created
|
-- ToOptimize : Add an input procedure to insert data pattern
|
-- ToOptimize : Add an input procedure to insert data pattern
|
-- Bugs :
|
-- Bugs :
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
|
-- Revisions :
|
|
-- Revision Number : 2
|
|
-- Version : 0.2
|
|
-- Date : 12 Jan 2001
|
|
-- Modifier : Jamil Khatib (khatib@ieee.org)
|
|
-- Desccription : Rx Enable and delayed Read tests are added
|
|
-- ToOptimize : Add an input procedure to insert data pattern
|
|
-- Bugs :
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
Line 66... |
Line 75... |
Rxclk_i <= not Rxclk_i after 20 ns;
|
Rxclk_i <= not Rxclk_i after 20 ns;
|
|
|
rst_i <= '0',
|
rst_i <= '0',
|
'1' after 30 ns;
|
'1' after 30 ns;
|
|
|
RxEn_i <= '1';
|
RxEn_i <= '1',
|
|
'0' after 960 ns,
|
|
'1' after 1280 ns;
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- purpose: Generate data
|
|
-- type : sequential
|
|
-- inputs :
|
|
-- outputs:
|
|
-- send_data_proc : process
|
|
-- begin -- process send_data_proc
|
|
--RxEn_i <= '1';
|
|
-- Rx_i <= '0';
|
|
-- wait until rst_i = '1';
|
|
|
|
|
|
-- for i in 0 to DataStreem'length -1 loop
|
|
-- wait until Rxclk_i = '0';
|
|
-- Rx_i <= DataStreem(i);
|
|
|
|
|
|
-- end loop; -- i
|
|
-- end process send_data_proc;
|
|
|
|
-- purpose: Serial interface stimulus
|
-- purpose: Serial interface stimulus
|
-- type : sequential
|
-- type : sequential
|
-- inputs :
|
-- inputs :
|
-- outputs:
|
-- outputs:
|
Line 116... |
Line 109... |
-- outputs:
|
-- outputs:
|
backend_proc : process(rdy_i)
|
backend_proc : process(rdy_i)
|
variable counter : integer := 0; -- Counter
|
variable counter : integer := 0; -- Counter
|
begin -- process backend_proc
|
begin -- process backend_proc
|
if rdy_i = '1' then
|
if rdy_i = '1' then
|
if counter mod 2 = 0 then
|
-- Counter is used to generate Readbyte signal at different delays
|
|
if not((counter > 20) and (counter < 40)) then
|
Readbyte_i <= '1' after 60 ns;
|
Readbyte_i <= '1' after 60 ns;
|
else
|
elsif(counter mod 2 = 0) then
|
|
-- data bits will be lost in this case
|
Readbyte_i <= '1' after 350 ns;
|
Readbyte_i <= '1' after 350 ns;
|
|
else
|
|
Readbyte_i <= '1' after 60 ns;
|
end if;
|
end if;
|
counter := counter+1;
|
counter := counter+1;
|
else
|
else
|
Readbyte_i <= '0';
|
Readbyte_i <= '0';
|
end if;
|
end if;
|