Features

Implementing SMPTE SDI Interfaces with UltraScale GTH Transceivers Application Note (XAPP1248)

Document ID
XAPP1248
Release Date
2023-11-08
Revision
v1.6 English

The SMPTE UHD-SDI LogiCORE IP Product Guide (PG205) lists all the features of the UHD-SDI core and SMPTE standards supported by the core, and also includes timing diagrams that show the input and output timing of the core in the various SDI modes.

This application note uses the term elementary data streams to refer to an SDI data stream that is not multiplexed. For example, an HD-SDI signal consists of two elementary data streams, usually referred to as the Y and C data streams, that are multiplexed together onto the virtual 10-bit HD-SDI interface. Likewise, a 3G-SDI level A signal also consists of two elementary data streams, called data stream 1 and data stream 2, that are multiplexed together onto the 10-bit virtual 3G-SDI interface. However, a 3G-SDI level B-DS signal consists of four elementary data streams, a Y and a C data stream for each of the HD-SDI signals that are aggregated together onto the 3G-SDI level B interface. These four elementary streams get interleaved in a 4-way multiplex onto the 10-bit virtual 3G-SDI interface. With the introduction of 6G-SDI and 12G-SDI, up to 16 elementary data streams may be interleaved onto a single SDI interface. These data streams are labeled ds1 through ds16 in this application note and in the port names of the UHD-SDI core and the UHD-SDI wrapper.

The UHD-SDI core transmitter only accepts and the receiver only outputs elementary, non-multiplexed, data streams on the respective data stream inputs and outputs. The multiplexing and de-multiplexing of data streams occurs internally in the UHD-SDI core and does not need to be addressed outside of the core, with the exception of SD-SDI. The ST 259 SD-SDI standard defines a single data stream that carries both the Y and C components. This is considered to be an elementary data stream by the UHD-SDI core because multiple end active video (EAV) and start active video (SAV) are not interleaved.

The UHD-SDI core does not map between native video formats and elementary data streams. The user application must perform any necessary mapping of video to elementary data streams prior to providing those streams to the UHD-SDI transmitter and must reconstruct the video image from the elementary streams output by the UHD-SDI receiver. No mapping is necessary for all video formats on SD-SDI and single-link HD-SDI, and for 1080p 50, 59.94, and 60 Hz 4:2:2 YCBCR 10-bit video on 3G-SDI level A because there is a one-to-one correspondence between the data streams of these formats and the elementary data streams into and out of the UHD-SDI core. This is also true for 3G-SDI level B-DS, the dual stream mode where two HD-SDI video formats are aggregated onto a single 3G-SDI interface. For dual-link HD-SDI, 3G-SDI level B-DL, multi-link 3G-SDI, 6G-SDI, and 12G-SDI, mapping of the video formats to and from elementary data streams is required, and is not done in the UHD-SDI core.

For 6G-SDI, the UHD-SDI core supports up to eight elementary data streams. For 12G-SDI, the UHD-SDI core supports up to 16 elementary data streams. In the SMPTE 6G-SDI and 12G-SDI mapping documents, the term data streams refers to both multiplexed and non-multiplexed (elementary) data streams. Care must be used when interpreting these documents to determine how many elementary data streams are used by each mapping method. Depending on the data format being transported, either four or eight elementary data streams are interleaved together on a 6G-SDI interface, and either eight or sixteen elementary data streams are interleaved together on a 12G-SDI interface. The 16-way interleave only occurs in dual-link 12G-SDI. The UHD-SDI TX must be told how many streams are active on its input using the port called tx_mux_pattern. The UHD-SDI RX automatically determines how many elementary data streams are present in the incoming SDI signal, demultiplexes the data stream appropriately, and indicates on the rx_active_streams port how many elementary data streams are present in the incoming signal.