MICROCHIP UG0877 SLVS-EC Receiver for PolarFire FPGA User Guide

June 10, 2024
MICROCHIP

MICROCHIP UG0877 SLVS-EC Receiver for Polar Fire FPGA User Guide
MICROCHIP UG0877 SLVS-EC Receiver for Polar Fire
FPGA

Revision History

The revision history describes the changes that were implemented in the document. The changes are listed by revision, starting with the current publication.

Revision 4.0
The following is a summary of the changes made in revision 4.0 of this document.

  • Replaced Figure 2, page 2, Figure 3, page 3, Figure 8, page 6, and Figure 9, page 7.
  • Removed section Transmit PLL, page 4.
  • Updated Table 1, page 3, Table 3, page 7, Table 4, page 7, and Table 5, page 8.
  • Updated section PLL for Pixel Clock Generation, page 4.
  • Updated section Configuration Parameters, page 7.

Revision 3.0
The following is a summary of the changes made in revision 3.0 of this document.

  • SLVS-EC IP, page 2
  • Table 3 on page 7

Revision 2.0
The following is a summary of the changes made in revision 2.0 of this document.

  • SLVS-EC IP, page 2
  • Transceiver Configuration, page 3
  • Table 3 on page 7

Revision 1.0
Revision 1.0 was the first publication of this document

SLVS-EC IP

SLVS-EC is Sony’s high-speed interface for next-generation high-resolution CMOS image sensors. This standard is tolerant of lane-to-lane skew because of embedded clock technology. It makes a board-level design easy in terms of high-speed and long-distance transmission. SLVS-EC Rx IP core provides SLVS-EC interface for PolarFire FPGA to receive image sensor data. The IP supports speed up to 4.752 Gbps. The IP core supports two, four, and eight lanes for RAW 8, RAW 10, and RAW 12 configurations. The following figure shows the system diagram for the SLVS-EC camera solution.

Figure 1 • SLVS-EC IP Block Diagram

Diagram

Polar Fire® transceiver is used as the PHY interface for the SLVS-EC sensor since the SLVS-EC interface uses embedded clock technology. It also uses 8b10b encoding, which can be recovered using the PolarFire transceiver. PolarFire FPGA has up to 24 low-power 12.7 Gbps transceiver lanes. These transceiver lanes can be configured as the SLVS-EC PHY receiver lanes. As shown in the preceding figure, the transceiver outputs are connected to SLVS-EC Rx IP core.

SLVS-EC Receiver Solution
The following figure shows the Libero SoC software top level design implementation of SLVS-EC IP and the required components for the SLVS-EC receiver solution.

Figure 2 • SLVS-EC IP SmartDesign

Smart Design

Transceiver Configuration
The following figure shows the transceiver interface configuration.

Figure 3 • Transceiver Interface Configurator
Configurator

The Transceiver can be configured to either two or four lanes. Also, the speed of the transceiver can be set at the “Transceiver data rate”. SLVS-EC interface supports two baud rates as listed in following table.

Table 1 • SLVS-EC Baud Rate

Baud Grade Baud Rate in Mbps
1 1188
2 2376
3 4752

PLL for Pixel Clock Generation
A PLL is required to generate pixel clock from the Transceiver generated Fabric clock that is, LANE0_RX_CLOCK. Following is the formula to generate pixel clock.
Pixel clock = (LANE0_RX_CLOCK * 8)/DATA_WIDTH
Configure the PF_CCC for RAW 8 as shown in the following figure.

Figure 4 • Clock Conditioning Circuitry

Clock Conditioning Circuitry

Design Description
The following figure shows the SLVS-EC Frame Format structure.

Figure 5 • SLVS-EC Frame Format Structure

Frame Format Structure

The Packet header contains information about the frame start and end signals along with the Valid lines. PHY control codes are added above the packet header to form the SLVS-EC packet. The following table lists the different PHY control codes used in the SLVS-EC protocol.

Table 2 • PHY Control Code

PHY Control Code 8b10b Symbol Combination
Start Code K.28.5 – K.27.7 – K.28.2 – K.27.7
End Code K.28.5 – K.29.7 – K.30.7 – K.29.7
Pad Code K.23.7 – K.28.4 – K.28.6 – K.28.3
Sync Code K.28.5 – D.10.5 – D.10.5 – D.10.5
Idle Code D.00.0 – D.00.0 – D.00.0 – D.00.0

SLVS-EC RX IP Core
This section describes the hardware implementation details of SLVS-EC Receiver IP. The following figure shows the Sony SLVS-EC receiver solution that contains the Polar Fire SLVS-EC RX IP. This IP is used in conjunction with the Polar Fire transceiver interface block. The following figure shows the internal blocks of the SLVS-EC Rx IP.

Figure 6 • Internal Blocks of the SLVS-EC RX IP

Internal Blocks

aligner
This module receives the data from the PolarFire transceiver blocks and aligns to the sync code. This module looks for the sync code in the bytes received from the transceiver and locks to the byte boundary.

slvsec_phy_rx
This module receives the data from the aligner and decodes the incoming SLVS PHY packets. This module passes through the synchronization sequence and then, generates the pkt_en signal starting from Start code and ends at the end code. It also removes the PAD code from the data packets and sends the data to the next module that is slvsrx_decoder.

slvsrx_decoder
This module receives the data from the slvsec_phy_rx module and extracts the pixel data from the payload. This module extracts four pixels per clock per lane and sends to the output. It generates the line valid signal for the active lines validating the active video data. It also generates the Frame valid signal by looking at the frame start and frame end bits in the packet header of the SLVS-EC packets

FSM with Data Decoding States
The following figure shows the FSM for SLVS-EC RX IP.

Figure 7 • FSM for SLVS-EC RX IP

DIAGRAM

SLVS-EC Receiver IP Configuration
The following figure shows the SLVS-EC receiver IP configurator.

Figure 8 • SLVS-EC Receiver IP Configurator

Configurator

Configuration Parameters
The following table lists the description of the configuration parameters used in the hardware implementation of SLVS-EC receiver IP block. These are generic parameters and can vary based on the application requirements.

Table 3 • Configuration Parameters

Name Description
DATA_WIDTH Input pixel data width. Supports RAW 8, RAW 10, and RAW 12.
LANE_WIDTH Number of SLVS-EC lanes. Supports two, four, and eight lanes.
BUFF_DEPTH Depth of the buffer. Number of active pixels in active video line.

Buffer depth can be calculated by using the following equation:
BUFF_DEPTH = Ceil ((Horizontal Resolution RAW width) / (32 Lane width))
Example: RAW width = 8, Lane width = 4, and Horizontal Resolution = 1920 pixels
BUFF_DEPTH = Ceil ((1920 8)/ (32 4)) = 120

Inputs and Outputs
The following table lists the input and output ports of the SLVS-EC RX IP configuration parameters

Table 4 • Input and Output Ports

Signal Name Direction Width Description
LANE#_RX_CLK Input 1 Recovered clock from the transceiver for that

particular Lane
LANE#_RX_READY| Input| 1| Data ready signal for Lane
LANE#_RX_VALID| Input| 1| Data Valid signal for Lane
LANE#_RX_DATA| Input| 32| Lane recovered data from transceiver
LINE_VALID_O| Output| 1| Data valid signal for active pixels in a line
FRAME_VALID_O| Output| 1| Valid signal for Active lines in a frame
DATA_OUT_O| Output| DATA_WIDTHLANE_WIDTH4| Pixel data output

Timing Diagram
The following figure shows the SLVS-EC IP timing diagram.

Figure 9 • SLVS-EC IP Timing Diagram

Timing Diagram

Resource Utilization
The following table shows the resource utilization of a sample SLVS-EC Receiver Core implemented in a PolarFire FPGA (MPF300TS-1FCG1152I package), for RAW 8 and four lanes and 1920 horizontal resolution configuration.

Table 5 • Resource Utilization

Element Usage
DFFs 3001
4-input LUTs 1826
LSRAMs 16

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals