Forum Discussion

SKon1's avatar
SKon1
Icon for Occasional Contributor rankOccasional Contributor
5 years ago

TSE - PCS only internal loopback problem

Hello,

I'm using the TSE core in a PCS only configuration on an Arria V FPGA.

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_ethernet.pdf

Data is being sent from my logic to the IP core over the "gmii_tx_d" bus while "gmii_tx_en" is high.

After power-up -I turn on the internal loopback function of the IP using the following commands :

Write 0x0009 to register IF_Mode (address 0x14 - page 100 in the user guide ) :

Sets the SGMII_SPEED to 1G

Sets the SGMII_ENA to '1'.

Write 0xC140 to register IF_Mode ( address 0x00 - page 95 in the user guide ) :

Sets SPEED_SELECTION to 1G

Sets the SGMII_ENA to '1'.

Sets LOOPBACK to '1'.

Sets RESET to '1'.

In Signal Tap I'm seeing something strange.

On the Tx side ( gmii_tx_d ) - my logic CONSISTENTLY sends an Ethernet Packet that's starting with 7 bytes of 0x55 ( this is the standard Ethernet Preamble ).

On the Rx side ( gmii_rx_d ) - roughly 50% of the time I'm receiving a 7 byte ( 0x55 ) preamble as I should. But the other 50% I'm getting only 6 bytes of 0x55 back - I.E: one 0x55 is missing.

Notes:

1. I have 2 Signal Tap instances. One driven by the IP's "tx_clk" to capture "gmii_tx_d" and another driven by the IP's "rx_clk" to capture "gmii_rx_d".

2. The design doesn't have timing violations.

Attached is a Signal Tap waveform showcasing an error event where I received only 6 bytes of 0x55 back instead of the expected 7.

What causes the missing 0x55 byte some of the time ?

6 Replies