Instantiating the UHD-SDI Wrappers

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

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

There are two main UHD-SDI wrappers in this application note, the SDI Wrapper Support (kugth_uhdsdi_wrapper_support.v) and SDI Wrapper (kugth_uhdsdi_wrapper.v), shown in Figure 1. The SDI Wrapper Support is needed when QPLL0 and/or QPLL1 is/are used by the SDI Wrapper and is instantiated once per quad only.

The SDI Wrapper Support and/or SDI Wrapper need to be instantiated and interconnected in your design. It is possible to implement the SDI interface without the SDI wrapper supplied with this application note, but the wrapper simplifies things because it interconnects the SMPTE UHD-SDI Core, Control Module, and one channel of GT Wizard IP. If the wrapper is not used, you must make all of these connections. There are alternative SDI wrapper files called kugth_uhdsdi_<line rate>_norxedh_wrapper.v that should be used when the UHD-SDI core is generated without the RX EDH processor.

There are 24 wrappers included in the reference design. Instantiation and usage depend entirely upon the UHD-SDI core configuration. SDI 4-Channel Wrapper per quad:

  • kugth_uhdsdi_12g_16s_4ch_wrapper.v
  • kugth_uhdsdi_12g_16s_norxedh_4ch_wrapper.v
  • kugth_uhdsdi_12g_8s_4ch_wrapper.v (used in the reference design)
  • kugth_uhdsdi_12g_8s_norxedh_4ch_wrapper.v
  • kugth_uhdsdi_6g_4ch_wrapper.v
  • kugth_uhdsdi_6g_norxedh_4ch_wrapper.v
  • kugth_uhdsdi_3g_4ch_wrapper.v
  • kugth_uhdsdi_3g_norxedh_4ch_wrapper.v SDI Wrapper Support
  • kugth_uhdsdi_12g_16s_wrapper_support.v
  • kugth_uhdsdi_12g_16s_norxedh_wrapper_support.v
  • kugth_uhdsdi_12g_8s_wrapper_support.v (used in the reference design)
  • kugth_uhdsdi_12g_8s_norxedh_wrapper_support.v
  • kugth_uhdsdi_6g_wrapper_support.v
  • kugth_uhdsdi_6g_norxedh_wrapper_support.v
  • kugth_uhdsdi_3g_wrapper_support.v
  • kugth_uhdsdi_3g_norxedh_wrapper_support.v SDI Wrapper
  • ugth_uhdsdi_12g_16s_wrapper.v
  • kugth_uhdsdi_12g_16s_norxedh_wrapper.v
  • kugth_uhdsdi_12g_8s_wrapper.v (used in the reference design)
  • kugth_uhdsdi_12g_8s_norxedh_wrapper.v
  • kugth_uhdsdi_6g_wrapper.v
  • kugth_uhdsdi_6g_norxedh_wrapper.v
  • kugth_uhdsdi_3g_wrapper.v
  • kugth_uhdsdi_3g_norxedh_wrapper.v

In addition to the UHD-SDI core, the SDI Wrapper instantiates the following files:

  • kugth_uhdsdi_control.v
  • kugth_uhdsdi_drp_control.v
  • kugth_uhdsdi_drp_control_fsm.v
  • kugth_uhdsdi_rx_control.v
  • kugth_uhdsdi_tx_control.v
  • sync_block.v
  • uhdsdi_rate_detect.v
  • bs_flex_v_1.vhd
  • nidru_20_v_7.vhd
  • nidru_20_wrapper.vhd
  • dru_sim.v
Important: The SDI Wrapper contains an instance of the SMPTE UHD-SDI core. The SDI Wrapper must be edited so that the name given to the UHD-SDI core when it is generated is used where the core is instanced in the SDI wrapper. This can be avoided by using the component name v_smpte_uhdsdi_rxtx when generating the SMPTE UHD-SDI core.
Note: The SDI Wrapper may contain multiple instances of GTH Wizard IP for multiple SDI channel designs. Specific GTH Wizard IP is targeted by the use of XY_SITE generic in the SDI Wrapper and is used in the Verilog generate statement. The SDI Wrapper must be edited to handle each channel instance.
Note: *kugth_uhdsdi_<line rate>_wrapper_support.*v contains a GTHE3 COMMON instance. The value must be edited according to the value generated by GTH Wizard IP.