OpenCores
URL https://opencores.org/ocsvn/udp_ip_stack/udp_ip_stack/trunk

Subversion Repositories udp_ip_stack

[/] [udp_ip_stack/] [trunk/] [bench/] [vhdl/] [arp_tb.vhd] - Diff between revs 2 and 4

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 2 Rev 4
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Company: 
-- Company: 
-- Engineer:
-- Engineer:
--
--
-- Create Date:   12:35:50 05/31/2011
-- Create Date:   12:35:50 05/31/2011
-- Design Name:   
-- Design Name:   
-- Module Name:   C:/Users/pjf/Documents/projects/fpga/xilinx/Network/arp1/arp_tb.vhd
-- Module Name:   C:/Users/pjf/Documents/projects/fpga/xilinx/Network/arp1/arp_tb.vhd
-- Project Name:  arp1
-- Project Name:  arp1
-- Target Device:  
-- Target Device:  
-- Tool versions:  
-- Tool versions:  
-- Description:   
-- Description:   
-- 
-- 
-- VHDL Test Bench Created by ISE for module: arp
-- VHDL Test Bench Created by ISE for module: arp
-- 
-- 
-- Dependencies:
-- Dependencies:
-- 
-- 
-- Revision:
-- Revision:
-- Revision 0.01 - File Created
-- Revision 0.01 - File Created
-- Additional Comments:
-- Additional Comments:
--
--
-- Notes: 
-- Notes: 
-- This testbench has been automatically generated using types std_logic and
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test.  Xilinx recommends
-- std_logic_vector for the ports of the unit under test.  Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation 
-- to guarantee that the testbench will bind correctly to the post-implementation 
-- simulation model.
-- simulation model.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
LIBRARY ieee;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
USE ieee.numeric_std.ALL;
use work.arp_types.all;
use work.arp_types.all;
 
 
ENTITY arp_tb IS
ENTITY arp_tb IS
END arp_tb;
END arp_tb;
 
 
ARCHITECTURE behavior OF arp_tb IS
ARCHITECTURE behavior OF arp_tb IS
 
 
    -- Component Declaration for the Unit Under Test (UUT)
    -- Component Declaration for the Unit Under Test (UUT)
 
 
    COMPONENT arp
    COMPONENT arp
    PORT(
    PORT(
                        -- lookup request signals
                        -- lookup request signals
                        arp_req_req                     : in arp_req_req_type;
                        arp_req_req                     : in arp_req_req_type;
                        arp_req_rslt            : out arp_req_rslt_type;
                        arp_req_rslt            : out arp_req_rslt_type;
                        -- MAC layer RX signals
                        -- MAC layer RX signals
                        data_in_clk             : in  STD_LOGIC;
                        data_in_clk             : in  STD_LOGIC;
                        reset                           : in  STD_LOGIC;
                        reset                           : in  STD_LOGIC;
                        data_in                                 : in  STD_LOGIC_VECTOR (7 downto 0);             -- ethernet frame (from dst mac addr through to last byte of frame)
                        data_in                                 : in  STD_LOGIC_VECTOR (7 downto 0);             -- ethernet frame (from dst mac addr through to last byte of frame)
                        data_in_valid           : in  STD_LOGIC;                                                                        -- indicates data_in valid on clock
                        data_in_valid           : in  STD_LOGIC;                                                                        -- indicates data_in valid on clock
                        data_in_last            : in  STD_LOGIC;                                                                        -- indicates last data in frame
                        data_in_last            : in  STD_LOGIC;                                                                        -- indicates last data in frame
                        -- MAC layer TX signals
                        -- MAC layer TX signals
                        mac_tx_req                      : out std_logic;                                                                        -- indicates that ip wants access to channel (stays up for as long as tx)
                        mac_tx_req                      : out std_logic;                                                                        -- indicates that ip wants access to channel (stays up for as long as tx)
                        mac_tx_granted          : in std_logic;                                                                 -- indicates that access to channel has been granted            
                        mac_tx_granted          : in std_logic;                                                                 -- indicates that access to channel has been granted            
                        data_out_clk            : in std_logic;
                        data_out_clk            : in std_logic;
                        data_out_ready          : in std_logic;                                                                 -- indicates system ready to consume data
                        data_out_ready          : in std_logic;                                                                 -- indicates system ready to consume data
                        data_out_valid          : out std_logic;                                                                        -- indicates data out is valid
                        data_out_valid          : out std_logic;                                                                        -- indicates data out is valid
 
                        data_out_first          : out std_logic;                                                                        -- with data out valid indicates the first byte of a frame
                        data_out_last           : out std_logic;                                                                        -- with data out valid indicates the last byte of a frame
                        data_out_last           : out std_logic;                                                                        -- with data out valid indicates the last byte of a frame
                        data_out                                : out std_logic_vector (7 downto 0);             -- ethernet frame (from dst mac addr through to last byte of frame)
                        data_out                                : out std_logic_vector (7 downto 0);             -- ethernet frame (from dst mac addr through to last byte of frame)
                        -- system signals
                        -- system signals
                        our_mac_address         : in STD_LOGIC_VECTOR (47 downto 0);
                        our_mac_address         : in STD_LOGIC_VECTOR (47 downto 0);
                        our_ip_address  : in STD_LOGIC_VECTOR (31 downto 0);
                        our_ip_address  : in STD_LOGIC_VECTOR (31 downto 0);
                        req_count                       : out STD_LOGIC_VECTOR(7 downto 0)                       -- count of arp pkts received
                        req_count                       : out STD_LOGIC_VECTOR(7 downto 0)                       -- count of arp pkts received
        );
        );
    END COMPONENT;
    END COMPONENT;
 
 
 
 
   --Inputs
   --Inputs
   signal clk                                   : std_logic := '0';
   signal clk                                   : std_logic := '0';
   signal reset                                 : std_logic := '0';
   signal reset                                 : std_logic := '0';
   signal data_in                       : std_logic_vector(7 downto 0) := (others => '0');
   signal data_in                       : std_logic_vector(7 downto 0) := (others => '0');
   signal data_in_valid         : std_logic := '0';
   signal data_in_valid         : std_logic := '0';
   signal data_in_last          : std_logic := '0';
   signal data_in_last          : std_logic := '0';
   signal our_mac_address       : std_logic_vector(47 downto 0) := (others => '0');
   signal our_mac_address       : std_logic_vector(47 downto 0) := (others => '0');
   signal our_ip_address        : std_logic_vector(31 downto 0) := (others => '0');
   signal our_ip_address        : std_logic_vector(31 downto 0) := (others => '0');
        signal data_out_ready   : std_logic;
        signal data_out_ready   : std_logic;
        signal data_out_valid   : std_logic;
        signal data_out_valid   : std_logic;
 
        signal data_out_first   : std_logic;
        signal data_out_last            : std_logic;
        signal data_out_last            : std_logic;
        signal data_out                 : std_logic_vector (7 downto 0);
        signal data_out                 : std_logic_vector (7 downto 0);
        signal req_count                        : STD_LOGIC_VECTOR(7 downto 0);
        signal req_count                        : STD_LOGIC_VECTOR(7 downto 0);
        signal arp_req_req              : arp_req_req_type;
        signal arp_req_req              : arp_req_req_type;
        signal arp_req_rslt             : arp_req_rslt_type;
        signal arp_req_rslt             : arp_req_rslt_type;
        signal mac_tx_req                       : std_logic;
        signal mac_tx_req                       : std_logic;
        signal mac_tx_granted   : std_logic;
        signal mac_tx_granted   : std_logic;
 
 
 
 
   -- Clock period definitions
   -- Clock period definitions
   constant clk_period : time := 8 ns;
   constant clk_period : time := 8 ns;
 
 
BEGIN
BEGIN
 
 
        -- Instantiate the Unit Under Test (UUT)
        -- Instantiate the Unit Under Test (UUT)
   uut: arp PORT MAP (
   uut: arp PORT MAP (
                        -- lookup request mappings
                        -- lookup request mappings
                         arp_req_req            => arp_req_req,
                         arp_req_req            => arp_req_req,
                         arp_req_rslt           => arp_req_rslt,
                         arp_req_rslt           => arp_req_rslt,
                        -- rx mappings
                        -- rx mappings
          data_in_clk           => clk,
          data_in_clk           => clk,
          reset                                 => reset,
          reset                                 => reset,
          data_in                       => data_in,
          data_in                       => data_in,
          data_in_valid         => data_in_valid,
          data_in_valid         => data_in_valid,
          data_in_last          => data_in_last,
          data_in_last          => data_in_last,
                         -- tx mappings
                         -- tx mappings
                         mac_tx_req                     => mac_tx_req,
                         mac_tx_req                     => mac_tx_req,
                         mac_tx_granted => mac_tx_granted,
                         mac_tx_granted => mac_tx_granted,
                         data_out_clk           => clk,
                         data_out_clk           => clk,
                         data_out_ready         => data_out_ready,
                         data_out_ready         => data_out_ready,
                         data_out_valid         => data_out_valid,
                         data_out_valid         => data_out_valid,
 
                         data_out_first => data_out_first,
                         data_out_last          => data_out_last,
                         data_out_last          => data_out_last,
                         data_out                       => data_out,
                         data_out                       => data_out,
                         -- system mappings
                         -- system mappings
          our_mac_address       => our_mac_address,
          our_mac_address       => our_mac_address,
          our_ip_address        => our_ip_address,
          our_ip_address        => our_ip_address,
                         req_count                      => req_count
                         req_count                      => req_count
        );
        );
 
 
   -- Clock process definitions
   -- Clock process definitions
   clk_process :process
   clk_process :process
   begin
   begin
                clk <= '0';
                clk <= '0';
                wait for clk_period/2;
                wait for clk_period/2;
                clk <= '1';
                clk <= '1';
                wait for clk_period/2;
                wait for clk_period/2;
   end process;
   end process;
 
 
 
 
   -- Stimulus process
   -- Stimulus process
   stim_proc: process
   stim_proc: process
   begin
   begin
      -- hold reset state for 100 ns.
      -- hold reset state for 100 ns.
      wait for 100 ns;
      wait for 100 ns;
 
 
                our_ip_address <= x"c0a80509";          -- 192.168.5.9
                our_ip_address <= x"c0a80509";          -- 192.168.5.9
                our_mac_address <= x"002320212223";
                our_mac_address <= x"002320212223";
                mac_tx_granted <= '1'; -- FIXME 0
                mac_tx_granted <= '1'; -- FIXME 0
 
 
                reset <= '1';
                reset <= '1';
      wait for clk_period*10;
      wait for clk_period*10;
                reset <= '0';
                reset <= '0';
      wait for clk_period*5;
      wait for clk_period*5;
 
 
                assert mac_tx_req = '0'                                  report "mac_tx_req asserted on reset";
                assert mac_tx_req = '0'                                  report "mac_tx_req asserted on reset";
 
 
      -- insert stimulus here
      -- insert stimulus here
                arp_req_req.lookup_req <= '0';
                arp_req_req.lookup_req <= '0';
                arp_req_req.ip <= (others => '0');
                arp_req_req.ip <= (others => '0');
                data_out_ready <= '1';
                data_out_ready <= '1';
 
 
                report "T1:  Send an ARP request: who has 192.168.5.8? Tell 192.168.5.1";
                report "T1:  Send an ARP request: who has 192.168.5.8? Tell 192.168.5.1";
                data_in_valid <= '1';
                data_in_valid <= '1';
                -- dst MAC (bc)
                -- dst MAC (bc)
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                -- src MAC
                -- src MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                -- type
                -- type
                data_in <= x"08"; wait for clk_period;
                data_in <= x"08"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                -- HW type
                -- HW type
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Protocol type
                -- Protocol type
                data_in <= x"08"; wait for clk_period;
                data_in <= x"08"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                -- HW size
                -- HW size
                data_in <= x"06"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                -- protocol size
                -- protocol size
                data_in <= x"04"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                -- Opcode
                -- Opcode
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Sender MAC
                -- Sender MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                -- Sender IP
                -- Sender IP
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Target MAC
                -- Target MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                -- Target IP
                -- Target IP
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"09"; wait for clk_period;
                data_in <= x"09"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in_last <= '1';
                data_in_last <= '1';
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in_last <= '0';
                data_in_last <= '0';
                data_in_valid <= '0';
                data_in_valid <= '0';
 
 
                -- check tx arbitration signals
                -- check tx arbitration signals
 
 
                assert mac_tx_req = '1'                                 report "T1: mac_tx_req not set";
                assert mac_tx_req = '1'                                 report "T1: mac_tx_req not set";
 
 
                -- ready to tx
                -- ready to tx
                data_out_ready <= '1';
                data_out_ready <= '1';
                mac_tx_granted <= '1';
                mac_tx_granted <= '1';
                wait for clk_period*10;
                wait for clk_period*10;
                data_out_ready <= '0';
                data_out_ready <= '0';
                wait for clk_period*2;
                wait for clk_period*2;
                data_out_ready <= '1';
                data_out_ready <= '1';
                wait for clk_period*50;
                wait for clk_period*50;
 
 
                report "T2: Send another ARP request: who has 192.168.5.8? Tell 192.168.5.1, holding off transmitter";
                report "T2: Send another ARP request: who has 192.168.5.8? Tell 192.168.5.1, holding off transmitter";
                data_out_ready <= '0';
                data_out_ready <= '0';
                data_in_valid <= '1';
                data_in_valid <= '1';
                -- dst MAC (bc)
                -- dst MAC (bc)
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                -- src MAC
                -- src MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                -- type
                -- type
                data_in <= x"08"; wait for clk_period;
                data_in <= x"08"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                -- HW type
                -- HW type
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Protocol type
                -- Protocol type
                data_in <= x"08"; wait for clk_period;
                data_in <= x"08"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                -- HW size
                -- HW size
                data_in <= x"06"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                -- protocol size
                -- protocol size
                data_in <= x"04"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                -- Opcode
                -- Opcode
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Sender MAC
                -- Sender MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"18"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"29"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"26"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                data_in <= x"7c"; wait for clk_period;
                -- Sender IP
                -- Sender IP
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Target MAC
                -- Target MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                -- Target IP
                -- Target IP
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"09"; wait for clk_period;
                data_in <= x"09"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in_last <= '1';
                data_in_last <= '1';
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in_last <= '0';
                data_in_last <= '0';
                data_in_valid <= '0';
                data_in_valid <= '0';
 
 
                -- ready to tx
                -- ready to tx
                wait for clk_period*10;
                wait for clk_period*10;
                data_out_ready <= '1';
                data_out_ready <= '1';
 
 
                wait for clk_period*50;
                wait for clk_period*50;
 
 
                -- Send a request for the IP that is already cached
                -- Send a request for the IP that is already cached
                arp_req_req.ip <= x"c0a80501";
                arp_req_req.ip <= x"c0a80501";
                arp_req_req.lookup_req <= '1';
                arp_req_req.lookup_req <= '1';
                wait for clk_period;
                wait for clk_period;
                arp_req_req.lookup_req <= '0';
                arp_req_req.lookup_req <= '0';
 
 
                wait for clk_period*50;
                wait for clk_period*50;
 
 
                -- Send a request for the IP that is not cached
                -- Send a request for the IP that is not cached
                arp_req_req.ip <= x"c0a80503";
                arp_req_req.ip <= x"c0a80503";
                arp_req_req.lookup_req <= '1';
                arp_req_req.lookup_req <= '1';
                wait for clk_period;
                wait for clk_period;
                arp_req_req.lookup_req <= '0';
                arp_req_req.lookup_req <= '0';
                wait for clk_period*80;
                wait for clk_period*80;
                -- Send the reply
                -- Send the reply
                data_out_ready <= '1';
                data_out_ready <= '1';
 
 
                report "T3: Send an ARP reply: 192.168.5.3 has mac 02:12:03:23:04:54";
                report "T3: Send an ARP reply: 192.168.5.3 has mac 02:12:03:23:04:54";
                data_in_valid <= '1';
                data_in_valid <= '1';
                -- dst MAC (bc)
                -- dst MAC (bc)
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                data_in <= x"ff"; wait for clk_period;
                -- src MAC
                -- src MAC
                data_in <= x"02"; wait for clk_period;
                data_in <= x"02"; wait for clk_period;
                data_in <= x"12"; wait for clk_period;
                data_in <= x"12"; wait for clk_period;
                data_in <= x"03"; wait for clk_period;
                data_in <= x"03"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                data_in <= x"54"; wait for clk_period;
                data_in <= x"54"; wait for clk_period;
                -- type
                -- type
                data_in <= x"08"; wait for clk_period;
                data_in <= x"08"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                -- HW type
                -- HW type
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                data_in <= x"01"; wait for clk_period;
                -- Protocol type
                -- Protocol type
                data_in <= x"08"; wait for clk_period;
                data_in <= x"08"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                -- HW size
                -- HW size
                data_in <= x"06"; wait for clk_period;
                data_in <= x"06"; wait for clk_period;
                -- protocol size
                -- protocol size
                data_in <= x"04"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                -- Opcode
                -- Opcode
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"02"; wait for clk_period;
                data_in <= x"02"; wait for clk_period;
                -- Sender MAC
                -- Sender MAC
                data_in <= x"02"; wait for clk_period;
                data_in <= x"02"; wait for clk_period;
                data_in <= x"12"; wait for clk_period;
                data_in <= x"12"; wait for clk_period;
                data_in <= x"03"; wait for clk_period;
                data_in <= x"03"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                data_in <= x"04"; wait for clk_period;
                data_in <= x"54"; wait for clk_period;
                data_in <= x"54"; wait for clk_period;
                -- Sender IP
                -- Sender IP
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"03"; wait for clk_period;
                data_in <= x"03"; wait for clk_period;
                -- Target MAC
                -- Target MAC
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"20"; wait for clk_period;
                data_in <= x"20"; wait for clk_period;
                data_in <= x"21"; wait for clk_period;
                data_in <= x"21"; wait for clk_period;
                data_in <= x"22"; wait for clk_period;
                data_in <= x"22"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                data_in <= x"23"; wait for clk_period;
                -- Target IP
                -- Target IP
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"c0"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"a8"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"05"; wait for clk_period;
                data_in <= x"09"; wait for clk_period;
                data_in <= x"09"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in_last <= '1';
                data_in_last <= '1';
                data_in <= x"00"; wait for clk_period;
                data_in <= x"00"; wait for clk_period;
                data_in_last <= '0';
                data_in_last <= '0';
                data_in_valid <= '0';
                data_in_valid <= '0';
 
 
                report "--- end of tests ---";
                report "--- end of tests ---";
      wait;
      wait;
   end process;
   end process;
 
 
END;
END;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.