Forum Discussion
Deshi_Intel
Regular Contributor
6 years agoHi Mark,
Are you trying to confuse yourself and me ? :)
Let's revisit the basic again. Below statement is TRUE regardless of whether there is data traffic or not
- Configuring transceiver to 10Gbps means that on board transceiver channel will be sending data at 10Gbps (this is purely based on the clock speed to output the data at desired data rate)
- Intel FPGA transceiver channel has a PMA_PCS width serializer/de-serialzer factor that convert the serial data into parallel data and vice versa
- The required FPGA core clock frequency to successfully transfer the data over the transceiver channel = transceiver data rate / (PMA_PCS width)
- example 1, XCVR data rate = 10Gbps, (PMA_PCS width) = 32, required FPGA core clock = 10Gbps/32 = 312.5MHz
- example 2, XCVR data rate = 10Gbps, (PMA_PCS width) = 64, required FPGA core clock = 10Gbps/32 = 156.25MHz
- This formula has nothing to do with how many data bit that user is trying to send through the transceiver channel.
The transceiver channel is just a physical medium to pass through the data at some desired speed. It doesn't process or manipulate the data. That's the job of user core logic design
- what does the transceiver do if I were only sending 2 frames of 20 bits ?
- Remember, the transceiver doesn't process the data, it's just a physical medium. User logic design is the one that control/process the data
- Imagine transceiver is just like a "road" while data is just like a "car" and the car must drive at speed of 100km/hr on the road
- For instance : yesterday 100 car pass through the road at speed of 100km/hr
- Today we only have 20 car pass through the road at speed of 100km/hr
- Can you tell me what's the road going to do to the 20 car ? This is the part that you confused me :)
- How do I choose what frequency to clock the 20 parallel lines into the transceiver at ?
- Once user configured the transceiver to certain data rate, you just need to follow below formula. This formula doesn't concern user sent how many bits over the transceiver channel
- FPGA core clock frequency = transceiver data rate / (PMA_PCS width)
- What does the transmitted signal look like in between frames ?
- Which particular transceiver signal that you are referring to ?
- If it's data bus then should be zero when there is no data traffic on it
Some of the important notes :
- Transceiver RX channel PMA has a design block called CDR. This CDR will loose lock and caused the transceiver channel link down if there is no data flow for sometime. That's why most of the industry protocol has design requirement to send dummy "IDLE" data traffic when it's not transferring meaningful payload data to keep the transceiver channel alive
- Honestly speaking, unlikely you are able to close FPGA core logic design timing at 500MHz using Cyclone 10 GX FPGA. Pls consider to increase the PMA/PCS width setting to reduce the required FPGA core clock frequency
- Lastly, I encourage you to run NativePHY IP simulation to better understand the transceiver architecture and expected behaviour.
Thanks.
Regards,
dlim