Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎10-29-2018

Targeted Ethernet Messages Not Making it Out of TEMAC Core



I am using a Kintex-7 and I am having issues receiving node specific messages from the Xilinx Tri Mode Ethernet MAC (TEMAC) core. Broadcast messages work perfectly. This is only an issue on hardware; when I try simulating both broadcast and node specific message work properly.


The way my design works is by taking the Xilinx example design for the TEMAC core and adding some higher level logic to support ARP, ping (ICMP), and UDP messages. I am monitoring the rgmii data lines going into the TEMAC core as well as statistics and data signal coming out of the core. More specifically I am monitoring: "rgmii_rxc" "rgmii_rx_ctl", and "rgmii_rxd" going into the core and "rx_axis_mac_tuser", "rx_axis_mac_tvalid", "rx_axis_mac_tlast", "rx_axis_mac_tdata", "rx_statistics_vector", and "rx_statistics_valid" coming out of the core.


On hardware, when a broadcast message comes i see the statistics_vector incrementing and the statistics_valid signal pulse high at the end on the message. I also see the rx_axis_mac_tdata updating with the new message and the rx_axis_mac_tvalid and rx_axis_mac_tlast signals pulsing after the statistic_valid signal. However, went a targeted message comes in I only see the statics_vector incrementing and the statistics_valid signal pulsing high at the end of the incoming message. I don't see any activity on the data lines coming out of the TEMAC core.


I have looked at the UDP messages going to the FPGA via Wireshark and I can confirm that the MAC and IP addresses are correct, the checksums are correct, and the message matches perfectly with the data on the rgmii data lines (with the exception of the data being nibble swapped which is normal).


Because I was getting these types of results, I decided to manually force promiscuous mode to be enabled despite it being a default value according to the documentation on the Xilinx TEMAC core. I did this by editing the “temac_rgmii_mdio_axi_lite_sm.vhd” file from the Xilinx example design; I added a state to the “axi_state” signal and I use the “axi_wr_data” signal to write x"80000000" at “addr” “CONFIG_ADDR_CTRL_ADD”. Despite this effort I am still seeing the same results when I run my code on hardware where node specific messages are vanishing inside of the TEMAC core.


If anyone can help me out I would greatly appreciate it. Thanks in advanced!

0 Kudos
1 Reply
Registered: ‎11-09-2017



Seems that you are implementing on board, do you have ILA captures.


Kindly share them both broadcast and targeted message.


Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful.
0 Kudos