MIPI DSI TX Controller - 2.3 English

MIPI DSI Transmitter Subsystem LogiCORE IP Product Guide (PG238)

Document ID
Release Date
2.3 English

The MIPI DSI TX Controller core consists of multiple layers defined in the MIPI DSI TX 1.3 specification, such as the lane management layer, low-level protocol, and pixel-to-byte conversion.

The DSI TX Controller core receives a stream of image data through an input stream interface. Based on the targeted display peripheral supported resolution and timing requirements, the controller must be programmed with the required timing values. The controller then generates packets fulfilling the required video timing markers based on different video transmit mode sequences. In addition, the core supports sending short command packets during BLLP periods of video frames and also supports sending long or short command packets when configured in the command mode. Sub-block details of the MIPI DSI TX Controller are shown in the following figure.

Figure 1. Sub-blocks

The features of this core include:

  • 1 to 4 Lane support with a data rate of 2500 Mbps per lane, for UltraScale+ only: Allows more bandwidth than that provided by one lane. If you are trying to avoid high clock rates, the subsystem can expand the data path to multiple lanes and obtain approximately linear increases in peak bus bandwidth.
  • Generates PPI transfers towards DPHY with continuous clock.
  • ECC and CRC calculation based on the algorithm specified in DSI Specification: The correct interpretation of the data identifier and word count values is vital to the packet structure. ECC is calculated over the packet header.

    To detect possible errors in transmission, a checksum is calculated over each data packet. The checksum is realized as a 16-bit CRC. The generator polynomial is x16+x12+x5+x0.

    The CRC is computed only for the pixel bytes. The CRC fields for all other long packets are filled with 0x0000.

  • Command Queue, data queue, and command generation logic for non-video packets: To send non-video packets to display peripheral, a command queue is implemented to store the required command packets to be sent (For example, Color mode on-off, Shutdown peripheral command, and so on). When in video mode, the controller finds enough time-slot available during the video blanking periods, these short commands are sent over the DSI link. When in command mode, the controller sends only the commands long/short programmed through the register. Video data is not sent in this mode.
  • All three video modes supported (Non-burst with sync pulses, Non-burst with sync events, Burst mode)
  • Pixel to byte Conversion: The input video stream is expected to be compliant with AXI4-Stream Video IP and System Design Guide (UG934) recommendations. Based on data type, the incoming pixel stream is converted to byte stream to match with the DSI requirements detailed in sec 8.8 of the MIPI Alliance Standard for DSI specification.

    RGB component ordering, packed, unpacked mechanisms differ between AXI4-Stream Video IP and System Design Guide (UG934) and DSI Specification. Refer to AXI4-Stream Video IP and System Design Guide (UG934) and DSI specifications for better understanding on component ordering, packed, unpacked styles, and so on.

    The following figures illustrate the incoming pixel stream ordering on a AXI4-Streamvideo interface for different data types and pixels per clock combinations.

    Figure 2. Single Pixel RGB888

    Figure 3. Dual Pixels RGB888

    Figure 4. Quad Pixels RGB888

    Figure 5. Single Pixel RGB666 (Loosely, Packed)

    Figure 6. Dual Pixels RGB666 (Loosely, Packed)

    Figure 7. Quad Pixels RGB666 (Loosely, Packed)

    Figure 8. Single Pixel RGB565

    Figure 9. Dual Pixels RGB565

    Figure 10. Quad Pixels RGB565

    Figure 11. Single Pixel Compressed

    Figure 12. Dual Pixel Compressed

    Figure 13. Quad Pixel Compressed

  • Register programmable EoTp generation support.
  • Interrupt generation to indicate detection of underrun condition during pixel transfer and unsupported data types detected in the command queue.
  • One horizontal scanline of active pixels is transferred as one single DSI packet.
  • All mandatory uncompressed pixel formats 16 bpp (RGB565), 18 bpp (RGB666 packed), 18 bpp (RGB666 loosely packed), and 24 bpp (RGB888) are supported.
  • Core accepts compressed data type from GUI selection, where you are expected to pump in the compressed data. Core passes those streams of data without any conversion.