diff --git a/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd b/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd index 7c4e0d8f7686ea3a1cb76d937840c32ecd95fce7..2f443c90cc2964521e3422a6f6a9fc335a58edfb 100644 --- a/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd +++ b/libraries/io/eth/tb/vhdl/tb_eth_tester_pkg.vhd @@ -38,9 +38,30 @@ PACKAGE tb_eth_tester_pkg is CONSTANT c_eth_tester_ip_dst_addr : STD_LOGIC_VECTOR(31 DOWNTO 0) := x"0A6300FE"; -- 0A6300FE = '10.99.0.254' = DOP36-enp2s0 CONSTANT c_eth_tester_udp_dst_port : STD_LOGIC_VECTOR(15 DOWNTO 0) := TO_UVEC(6001, 16); -- 0x1771 = 6001 + -- Map global node index on UniBoard2 to node MAC address and node IP address + FUNCTION func_eth_tester_gn_index_to_mac_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR; + FUNCTION func_eth_tester_gn_index_to_ip_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR; + END tb_eth_tester_pkg; PACKAGE BODY tb_eth_tester_pkg IS + + FUNCTION func_eth_tester_gn_index_to_mac_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR IS + CONSTANT c_unb_nr : NATURAL := gn_index / 4; -- 4 PN per Uniboard2 + CONSTANT c_node_nr : NATURAL := gn_index MOD 4; + CONSTANT c_mac_15_0 : STD_LOGIC_VECTOR(15 DOWNTO 0) := TO_UVEC(c_unb_nr, 8) & TO_UVEC(c_node_nr, 8); + BEGIN + RETURN c_mac_15_0; + END func_eth_tester_gn_index_to_mac_15_0; + + FUNCTION func_eth_tester_gn_index_to_ip_15_0(gn_index : NATURAL) RETURN STD_LOGIC_VECTOR IS + CONSTANT c_unb_nr : NATURAL := gn_index / 4; -- 4 PN per Uniboard2 + CONSTANT c_node_nr : NATURAL := gn_index MOD 4; + CONSTANT c_ip_15_0 : STD_LOGIC_VECTOR(15 DOWNTO 0) := TO_UVEC(c_unb_nr, 8) & TO_UVEC(c_node_nr+1, 8); -- +1 to avoid IP = *.*.*.0 + BEGIN + RETURN c_ip_15_0; + END func_eth_tester_gn_index_to_ip_15_0; + END tb_eth_tester_pkg;