06-15-2020 09:28 AM
The ERNIC IP core apparently checks tuser when tlast is high on the input AXI-Stream (rx_pk_hndler_s_axis). If tuser is low, the input packet is flagged with a Frame Check Sequence (FCS) error and dropped. This is not documented in pg332.
This can be observed In the simulated design.
1) Enable error buffer by setting bit 5 of the configuration register
0x20000 per pg332
32'h50060000 in XRNIC_Reg_Config.vh in the example design
2) Set the xrnic_inst rx_pkt_hndler_s_axis_tuser input to 1'b0 in the top level module.
In simulation the incoming message is flagged with error status 32'h8000_000 indicating FCS error.
The problem is that the cmac_usplus core (when using the AXIS interface) has the opposite polarity on tuser. Per pg203, rx_axis_tuser is high when indicating an error.
Simple work around is to invert the tuser signal between the CMAC axis_rx port and the ERNIC rx_pkt_hndler_s_axis port.
07-22-2020 12:11 PM
Thanks for that. I was facing the same issue. ERNIC IP User Guide does not specify how it uses the tuser signal.