05-21-2021 02:41 AM
I'm trying to make 2 40G/50G Ethernet Subsystems communicate with auto-negotiation. Here is a schematic of the circuit in vivado :
It's two 40G/50G Ethernet Subsystems with the first connected to AXI4-Stream VIPs and the second with a loopback on the AXI4-Stream side. The two are connected with gt_rx and gt_tx.
So far I've managed to send and receive a stream WITHOUT auto-negotiation but when I enable it it doesn't work.
Here is the code I use to configure the IPs with AXI Lite :
With read_reg and write_reg reading and writing in the AXI Lite register space :
(I've set the seed value to have autone_bypass = 0 and autoneg_enable = 1)
As I have 2 AXI Lite VIPs (one for each IP), the intfce selects which one to use.
The norm I want to use is 40Gbase KR4.
I've read the clause 73 of the IEEE 802.3 but I'm not sure now how to configure the Auto-negotiation. Is there a state machine to implement in addition to the IP ? What base link codeword should I use (in an_loc_np_data) ? My attempts have been unsuccessful so far.
Thank you for your time
05-24-2021 04:51 AM
Thank you for your response.
I already use “Use Precompiled IP simulation libraries” and “-d SIM_SPEED_UP”.
I don't get "an_good_check" but i do get the two pulses "tx_disable" and "an_rxcdrhold" switches to 1 after my registers configuration.
I've noticed that there seems to be a difference in the clause 73 and the 40G/50G Ethernet Subsystem manual :
802.3 Clause 73 page 509 :
And we can see in page 48 of the Ethernet manual :
The bit 13 is Remote Fault in the first and Message Protocol bit in the second. Is it expected ?
05-24-2021 07:48 PM
The 1st is for the base page coding while the 2nd is next page data (*_np_data)
In the 1st screenshot, it says that next page coding is defined in 73.7.7
05-24-2021 07:50 PM
Please make sure that 2 endpoinds have the different AN seed value.
The nonce_seed[7:0] input must be set to a unique value for
every instance of the auto-negotiator. The AN IP will not function if the nonce_seed is set
to 0. This is important in order to guarantee that no deadlocks occur at power-up. If two link
partners connected together attempt to auto-negotiate with their nonce_seed[7:0] inputs
set to the same value, the auto-negotiation fails continuously.
05-25-2021 01:36 AM - edited 05-25-2021 01:43 AM
So where can I specify the base page in the IP ? Is it auto-generated ?
The 2 IPs have a different seed (I put 0x5 (IP 0) and 0xD (IP 1) in the CONFIGURATION_AN_CONTROL_REG1 of the IPs)
05-25-2021 02:10 AM
Ok I did not understand that. So the Base Page is generated with the configuration ports/registers.
Now the problem is that the configuration I gave in the first message doesn't seem to complete the auto-negotiation. Is there an error somewhere ? How much simulation time the auto-negotiation takes with SIM_SPEEDUP ? Are there signals that I can see to monitor the conduct of the AN ?
05-25-2021 07:36 PM
1. Try to interconnect 2 Ethernet IP cores with AN enabled and the different seeds in simulation first. Can they complete AN?
2. Add all the AN related signals into the waveform and upload it to have a check.
05-25-2021 07:43 PM
06-11-2021 12:43 AM
I've followed the instructions in your document ANLT_example. I interconnected 2 IPs (l_ethernet_4_exdes) starting with the example design (4) with ctl_autoneg_bypass = 1, it passes the test successfully (so the connections are good).
However, when I activate autonegotiation (ctl_autoneg_bypass = 0, ctl_autoneg_enable = 1, DIFFERENT ctl_an_nonce_seed in the two IPs), I get the following waveforms and the test fails :
(these are for the first IP)
Here is the code I modified in the example design :
(I can't send the files itself because I use a remote connection)
Where is the issue ? I've followed each instruction in your document and it still doesn't work. I don't know why I still get X in the lane 0 of the Ethernet subsystem when I activate autonegotiation.
06-14-2021 08:21 PM
Deselect "Use Precompiled IP simulation libraries"?
And add "-d SIM_SPEED_UP" vlog option?
I just created a 40G/50G example. AN/LT can work in simulation.
Please upload your IP core .xci file.
06-15-2021 12:57 AM
I already use SIM_SPEED_UP and I already deselected "Use Precompiled IP simulation libraries" :
I can't send you de .xci because I use a remote, protected connection. But it's just the configuration used by the example design "l_ethernet_4" (40G with just auto-negotiation) so you should be able to find it in the example designs.
I would be interested in your 40G/50G AN/LT project, can you send it here ?
Have a good day