Line 16... |
Line 16... |
-- Revision 0.01 - File Created
|
-- Revision 0.01 - File Created
|
-- Additional Comments:
|
-- Additional Comments:
|
--
|
--
|
----------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------
|
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_SYNC is
|
entity arp_SYNC is
|
Port (
|
port (
|
-- REQ to TX
|
-- REQ to TX
|
arp_nwk_req : in arp_nwk_request_t; -- request for a translation from IP to MAC
|
arp_nwk_req : in arp_nwk_request_t; -- request for a translation from IP to MAC
|
send_who_has : out std_logic;
|
send_who_has : out std_logic;
|
ip_entry : out STD_LOGIC_VECTOR (31 downto 0);
|
ip_entry : out std_logic_vector (31 downto 0);
|
-- RX to TX
|
-- RX to TX
|
recv_who_has : in std_logic; -- this is for us, we will respond
|
recv_who_has : in std_logic; -- this is for us, we will respond
|
arp_entry_for_who_has : in arp_entry_t;
|
arp_entry_for_who_has : in arp_entry_t;
|
send_I_have : out std_logic;
|
send_I_have : out std_logic;
|
arp_entry : out arp_entry_t;
|
arp_entry : out arp_entry_t;
|
Line 48... |
Line 48... |
type sync_state_t is (IDLE,HOLD1, HOLD2);
|
type sync_state_t is (IDLE,HOLD1, HOLD2);
|
|
|
-- state registers
|
-- state registers
|
signal ip_entry_state : sync_state_t;
|
signal ip_entry_state : sync_state_t;
|
signal arp_entry_state : sync_state_t;
|
signal arp_entry_state : sync_state_t;
|
signal ip_entry_reg : STD_LOGIC_VECTOR (31 downto 0);
|
signal ip_entry_reg : std_logic_vector (31 downto 0);
|
signal arp_entry_reg : arp_entry_t;
|
signal arp_entry_reg : arp_entry_t;
|
|
|
-- synchronisation registers
|
-- synchronisation registers
|
signal send_who_has_r1 : std_logic;
|
signal send_who_has_r1 : std_logic;
|
signal send_who_has_r2 : std_logic;
|
signal send_who_has_r2 : std_logic;
|