09-09-2021 03:20 AM
Hi. I have a problem in getting 10G PCS/PMA (BASE-R mode ) resetdone_out high permanently. My FPGA part number is xcku040-sfva784-1-i and here is my issue:
I have a board that its 10G PCS/PMA should work only in RX mode (there is no reverse path). So, whenever I connect the fiber to the corresponding SFP+ (which is connected to my 10G PCS/PMA) and there is traffic on that link, the resetdone_out goes high and low and thus, the core status doesn't change from 8'h00. Immediately after stopping the traffic on the traffic generator, resetdone_out is locked to 1 and the core status is 8'h01. I need to lock the core whenever I connect the fiber (regardless of having traffic on the link or not).
My IP core is in mode "Include Shared Logic in core" and its data width is 64bits. My transceiver location is X0Y2 (AD1, AD2, AE3, AE4 ports), transceiver refclk is refclk1 and its reference clock frequency is 156.25MHz (AB6 (P) and AB5 (N) ports). Its DRP clocking frequency is 100MHz (R23 (P) and P23 (N) ports). I've also disabled the MDIO Management, Exclude RX Elastic Buffer, and Additional transceiver control and status ports.
I've connected the module inputs like this:
reset, sim_speedup_control, tx_fault, configuration_vector: 0
pma_pmd_type: 0b110 (as my SFP+ is an LR one)
Can I do anything to avoid this problem? I'll be so appreciated if I can get my answer soon. Thanks a lot.
09-13-2021 07:54 PM - edited 09-13-2021 07:54 PM
Do you mean
1. If there's data transmission, resetdone is toggling?
2. If there's no data, resetdone is good?
3. If you don't send data from the link partner until resetdone/core_status are good, does it work? When you send data, resetdone will be toggling again?
09-14-2021 12:04 AM
1. If there is a data transmission with rate of >= 75% of 10Gbps and then I connect the cable (as I've said before), the resetdone_out goes from 1 to 0 always and does not lock to 1. Also, core_status is 8'h00. If the data transmission rate is lower than 75%, there is no problem (even with 74.999% it works correctly). My link partner is from a Xena device. So I can send data with very precise percentages of 10Gbps traffic. It has 2 SFP+ 10G ports which I've connected together. But one of them sends data to my device too. Its block diagram is like this:
Xena_port_1.tx -> Xena_port_2.rx
Xena_port_2.tx -> splitter (10%: splitter_1 and 90%: splitter_2)
splitter_1 -> Xena_port_1.rx
splitter_2 -> my_device_port (which only receives data)
It doesn't matter which port of my splitter is connected to my device (90% or 10%). In both cases the problem exists (I say it because I doubted the receive power of the fiber. But that wasn't the case).
2. If I connect the cable and meanwhile, there is no data on the link, resetdone_out is locked to 1 and also, core_status is 8'h01 (never goes to 0).
3. If I don't send data from the link partner until resetdone/core_status are good, after that, both lock to 1 and 8h'01 (never goes to 0) respectively.
It seems that only at this state there is a problem. And, that's my use case
09-14-2021 02:04 AM
So can you send data after the link is up? The link up including block_lock high, no local/remote fault.
The IDLE between data packets are useful to set up the link. Normally, according to IEEE spec, when the end receives local fault, it should send remote fault, when it receives remote fault, it should send IDLE. Or just keep sending IDLE can make the link to up first.
And then start your data transmission.
09-14-2021 05:47 AM
Yes. But data sending leads to bad packets in 10G Ethernet MAC which is connected to corresponding 10G PCS/PMA.
OK. How can I stop or slow-down the traffic to my device so that I can get resetdone_out locked? Is there any way to do that? Because my device is only in receive mode and cannot send any data. As I've seen the 75% rate of 10Gbps as cutoff, there should be a way for rates more than 75% of 10Gbps. I think I should to some sort of isolation in this IP core. However, I don't know how because there is nothing related in its datasheet pdf file. I'll appreciate it if you help me to do so.