Network Wizard for VHDL Test Benches
nw_ethernet_pkg Package Body Reference
Package >> nw_ethernet_pkg

Functions

t_slv_arr   f_eth_create_pkt ( header: in t_ethernet_header , payload: in t_slv_arr )
natural   f_eth_create_pkt_len ( header: in t_ethernet_header , payload: in t_slv_arr )
 Create ethernet packet.
t_ethernet_header   f_eth_get_header ( eth_pkt: in t_slv_arr )
 Return length of ethernet packet.
t_slv_arr   f_eth_get_payload ( eth_pkt: in t_slv_arr )
 Get ethernet header.
natural   f_eth_get_payload_len ( eth_pkt: in t_slv_arr )
 Get ethernet payload.
boolean   f_eth_crc_ok ( eth_pkt: in t_slv_arr )
 Get ethernet payload length.
t_slv_arr   f_eth_mac_2_slv_arr ( mac: in string( 1 to 17) )
 Check CRC.

Member Function Documentation

◆ f_eth_create_pkt_len()

natural f_eth_create_pkt_len (   header in t_ethernet_header ,
  payload in t_slv_arr  
)
Function

Create ethernet packet.

Parameters
headerEthernet header
payloadEthernet payload
Returns
Ethernet packet (8bit array)

Create ethernet packet. Payload must be 8bit data array. Padding is added to achieve minimum frame size of 64 bytes. 4-byte FCS is added to the end of the packet. For VLAN tagging: Set header.vlan_tag.tpid = C_ET_VLAN.

Example use

v_eth_header := C_DEFAULT_ETH_HEADER;
v_packet_8bit := f_eth_create_pkt(v_eth_header, payload);
v_pkt_256bit := f_repack(f_concat(C_ETH_PREAMBLE, v_packet_8bit), 256); -- add preamble and repack to 256bit word size

◆ f_eth_get_header()

t_ethernet_header f_eth_get_header (   eth_pkt in t_slv_arr  
)
Function

Return length of ethernet packet.

Parameters
headerEthernet header
payloadEthernet payload
Returns
Length of ethernet packet

Return the length of the created ethernet packet.

Example use

v_len := f_eth_create_pkt_len(v_eth_header, payload);
v_pkt_8bit(0 to v_len - 1) := f_eth_create_pkt(v_eth_header, payload);

◆ f_eth_get_payload()

t_slv_arr f_eth_get_payload (   eth_pkt in t_slv_arr  
)
Function

Get ethernet header.

Parameters
eth_pktEthernet packet (8bit)
Returns
Ethernet header

Extract ethernet header from ethernet packet. Assumes that first byte in packet is first byte after start frame delimiter.

Example use

v_eth_header := f_eth_get_header(data_array_8bit);

◆ f_eth_get_payload_len()

natural f_eth_get_payload_len (   eth_pkt in t_slv_arr  
)
Function

Get ethernet payload.

Parameters
eth_pktEthernet packet (8bit)
Returns
Ethernet payload

Extract ethernet payload from ethernet packet. Assumes that first byte in packet is first byte after start frame delimiter.

Example use

v_len := f_eth_get_payload_len(data_array_8bit); -- determine size of payload
v_payload(0 to v_len - 1) := f_eth_get_payload(data_array_8bit);

◆ f_eth_crc_ok()

boolean f_eth_crc_ok (   eth_pkt in t_slv_arr  
)
Function

Get ethernet payload length.

Parameters
eth_pktEthernet packet (8bit)
Returns
Ethernet payload length

Get ethernet payload length from ethernet packet. Assumes that first byte in packet is first byte after start frame delimiter.

Example use

v_len := f_eth_get_payload_len(data_array_8bit); -- determine size of payload

◆ f_eth_mac_2_slv_arr()

t_slv_arr f_eth_mac_2_slv_arr (   mac in string( 1 to 17 )  
)
Function

Check CRC.

Parameters
eth_pktEthernet packet (8bit)
Returns
CRC is OK (True), or not (False)

Check CRC of ethernet packet. Assumes that first byte in packet is first byte after start frame delimiter and the FCS are the last four bytes.

Example use

v_check := f_eth_crc_ok(data_array_8bit);

The documentation for this class was generated from the following file: