This solution uses CME's latest low-power series FPGA HR03 as the platform to implement 8/10b SerDes interface, including SERDES transceiver unit, and realizes SERDES CDR (Clock Data Recovery) through a fully digital method to complete 100~200Mhz inter-board SERDES single-channel communication. This SERDES interface solution has the characteristics of low cost, high flexibility and short R&D cycle.
1Hardware interface:
The hardware interface is shown in the figure, which mainly includes sending and receiving modules.
The transmitting module includes an 8b/10b encoder, a serial-to-serial converter, a phase-locked loop (PLL) frequency synthesizer and a transmitter, and the receiving module includes an 8b/10b decoder, a comma detector, a serial-to-parallel converter, a clock data recovery (CDR) and a receiver.
The 8b/10b encoder is used to map the byte signal sent from the upper layer protocol chip into a DC balanced 10-bit 8b/10b code. The parallel-to-serial conversion is used to serialize the 10-bit encoding result. The high-speed, low-jitter clock required for the parallel-to-serial conversion is provided by the phase-locked loop. The transmitter is used to convert the high-speed serial code stream at the CMOS level into a differential signal with strong noise resistance, and send it to the receiver via the backplane connection or optical fiber channel.
At the receiving end, the receiver restores the received low-swing differential signal to a CMOS-level serial signal. The CDR extracts the clock information from the serial signal to complete the optimal sampling of the serial data. The serial-to-parallel conversion uses the clock recovered by the CDR to convert the serial signal into 10-bit parallel data. The comma detector detects special comma characters and adjusts the word boundary. The parallel data with correct word boundary is decoded by 8b/10b, restored to a byte signal, and transmitted to the upper-layer protocol chip to complete the entire information transmission process.
In the actual design, the CDR part is completed by pure logic circuits and is the core part of the design. The implementation scheme of digital CDR in HR03 will be introduced below.
2-Digital CDR:
The CDR module recovers the embedded clock from the data, and then the receiver performs data bit alignment according to the recovered clock and word alignment through comma. Finally, the data is decoded into 8b/10b for system use.
This solution adopts the same frequency multi-phase clock sampling method. The specific implementation process uses PLL to generate 4 clocks with the same clock frequency and a phase difference of 90 degrees, namely clk0, clk90, clk180, and clk270. These four clock outputs are completely synchronized. The data is sampled using 4 clocks to obtain a 4x oversampling effect. The specific implementation process is shown in the figure below:
During data clock recovery, the incoming data is input into four flip-flops respectively and sampled using four different phases. Care should be taken to ensure that the delay from the input pin to the four flip-flops is basically consistent.
The trigger of the first column of triggers is triggered by the rising edge of the clock CLK0, CLK90, CLK180, and CLK270 respectively. In this way, four data sampling points can be obtained. In this way, the original clock cycle is divided into four separate 90-degree areas. If the system clock is 200MHz, the circuit shown in the figure above is equivalent to generating a sampling rate of 800MHz.
The output sampled data has metastability problem only through the first-order trigger, so the sampling point needs to be further processed. Here, the four sampling points can be further triggered to eliminate the metastability problem, so that the sampling point can be moved to the next same clock domain. Usually, the removal of metastability needs to go through two or three levels of processing, which makes there will be invalid data before the valid data is output. In the first stage of data sampling, the circuit detects the transmission of data on the data line. When data transmission is detected, the validity of the transmitted data is confirmed. After confirming that the data is valid, a high level is output to indicate that data is transmitted at the sampling point.
Because there are four outputs in the end, a multiplexer is needed to select the data. The correspondence between the transmitted data and the sampling clock is shown in the figure above. The correspondence is divided into four cases, each of which corresponds to an optimal sampling clock. The system determines which clock is the best sampling clock by judging the data edge position information, and uses the multiplexer to select the data bit from the selected clock domain. For example, if the detection circuit determines that the data sampled from clock domain A is valid, the data sampled in clock domain A will be output through the output terminal.
3 Conclusion:
Through the CDR circuit of pure digital circuit, without the support of hard core, the interface design of SERDES on FPGA was completed, and through experimental transmission test, 100~200Mbps data transmission can be completed on HR03 FPGA.
Previous article:Discussion on the design of anti-reverse connection protection circuit
Next article:Realizing high-end product design with embedded component technology
- Popular Resources
- Popular amplifiers
- MathWorks and NXP Collaborate to Launch Model-Based Design Toolbox for Battery Management Systems
- STMicroelectronics' advanced galvanically isolated gate driver STGAP3S provides flexible protection for IGBTs and SiC MOSFETs
- New diaphragm-free solid-state lithium battery technology is launched: the distance between the positive and negative electrodes is less than 0.000001 meters
- [“Source” Observe the Autumn Series] Application and testing of the next generation of semiconductor gallium oxide device photodetectors
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- Will GaN replace SiC? PI's disruptive 1700V InnoMux2 is here to demonstrate
- From Isolation to the Third and a Half Generation: Understanding Naxinwei's Gate Driver IC in One Article
- The appeal of 48 V technology: importance, benefits and key factors in system-level applications
- Important breakthrough in recycling of used lithium-ion batteries
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- Digital Modulation Series: Basic Theory of IQ Modulation
- Season 1 has passed, are Season 3 and 4 far away?
- Share: Power analyzer directly connected to CAN network
- A collection of fast charging reference designs. See if there is anything you are interested in?
- [RVB2601 Creative Application Development] Yoc creates a task to display the IP address and signal strength
- How does a drone know its position? How accurate is its hovering?
- EEWORLD University Hall -- Animation analysis of the working principles of various motors
- Xunwei-iMX6ULL development board--C program calls shell
- MSP430F5529 Beginner Programming Example - Button Lighting
- Pull-up and pull-down issues on SWCLK and SWDIO.