RX PPI |
- Synchronizes all D-PHY data lanes to a single clock domain (rx_word_clk_hs_d0).
- Processes lanes de-skew if more than one data lane is in use.
- For easier packet processing downstream, it generates start-of-packet (SOP) and end-of-packet (EOP) markers for each received packet.
|
Descrambling |
- Recovers the original CSI-2 data stream by reversing the CSI-2 LFSR scrambling on the video long packets.
- Present when scrambling/descrambling is enabled when configuring the IP.
|
Lane Management |
- Performs lane merging function which collects incoming bytes from N number of D-PHY lanes and consolidates them into complete packets to pass on to subsequent low level protocol layers.
|
Error Correction Code (ECC) checking |
- Generates a new ECC for the received packet header or short packet, computes the syndrome using the new ECC and the received ECC, decodes the syndrome to find if a single bit error has occurred, and if so, corrects it.
- If more than one bit error occurs, an uncorrectable error occurs, and an error flag is asserted in the control and status register).
|
Depacketizer |
- Extracts Packet Header, Packet Footer, HS-trail and all short packets.
- Generates important markers such as start of frame (SOF), interlaced, even field or line, data type, and Virtual Channel identifier for downstream modules.
|
CRC and Error checking |
- Calculates the checksum of the payload data of every long packet to detect possible errors in transmission.
- The IP compares the calculated checksum against the received 16-bit cyclic redundancy check (CRC) checksum from the packet footer. The IP flags an error for a mismatch.
- The error detect submodule also detects frame synchronization error when a frame end (FE) is not paired with a frame start (FS) on the same virtual channel.
|
Byte-to-Pixel Converter |
- The video payload data from the depacketizer is unpacked based on the video data type information. The pixel output is based on the requested number of pixels in parallel.
- An asynchronous FIFO buffer transfers the byte-based video payload data from rx_word_clk_hs_d0 clock domain to axi4s_clk clock domain. Ensure that you select axi4s_clk so that the output bandwidth is greater than the link bandwidth rather than the underlying video data rate, as the bandwidth peaks at the MIPI line rate.
|
Clocked Video to AXI converter |
- Converts clocked video data from the MIPI CSI-2 RX submodule to AXI4-Stream video data.
- Resolution detection submodule retrieves the video attributes such as number of pixels per line, number of video lines per field, number of bits per symbol, color space, and interlaced or progressive at the control and status registers.
- Stable bit is generated once video line with consistent width and height is detected. Until the input is stable, the IP produces no output video. This takes five video frames.
- A video line buffer is present to accommodate temporary throttling on output video interface. Configure the buffer depth in the GUI to hold at least two video lines of data.
- The scheduler ensures that the outgoing AXI4-Stream video data adheres to Intel FPGA Streaming Video (Full variant) video protocol.
|
Aux Output |
- Buffers the MIPI packets and transfers to axi4s_clk.
- Present when Passthrough mode is on when generating the IP only.
|
Control and status Register |
- MIPI CSI-2 receiver and Clocked Video to AXI converter each have their own registers.
- A control MUX resides at the higher layer to multiplex the control operation between both control and status registers.
- The MSBs of the address select between accessing the MIPI CSI-2 receiver and Clocked Video to AXI converter registers.
|