AR# 66691

LogiCORE Video PHY Controller v2.0 - Why do I get a critical warning about parts of the NI-DRU being redefined when using UHD-SDI XAPPs and the HDMI RX Subsystem with the Video PHY Controller in the same design?

Description

Why do I get a critical warning about parts of the NI-DRU being redefined when using UHD-SDI XAPPs and the HDMI RX Subsystem with the Video PHY Controller in the same design?

CRITICAL WARNING: [Synth 8-2488] overwriting existing primary unit dru [/xapp1248/srcs/dru/nidru_20_v_6.vhd:82]
CRITICAL WARNING: [Synth 8-2489] overwriting existing secondary unit behavior [/xapp1248/srcs/dru/bs_flex_v_1.vhd:50]
CRITICAL WARNING: [Synth 8-2488] overwriting existing primary unit control [/xapp1248/srcs/dru/bs_flex_v_1.vhd:244]
CRITICAL WARNING: [Synth 8-2488] overwriting existing primary unit rotwdt [/xapp1248/srcs/dru/bs_flex_v_1.vhd:361]

Solution

This is a known issue in the Video PHY Controller for HDMI RX Subsystem Applications, which is due to the UHD-SDI XAPPs (XAPP1248 and XAPP1249) using a different version of the NI-DRU.

The following steps walk through how to wrap the NI-DRU from the UHD-SDI XAPPS and synthesize it using the Vivado OOC flow so that it can be included in a project that also contains the HDMI Rx Subsystem using the Video PHY Controller.

Steps to use SDI NI-DRU together with HDMI using the OOC flow:

  1. Take SDI NI-DRU and put it into another Vivado project that will be used to create the OOC module.
    • bs_flex_v_1.vhd
    • nidru_20_v_6.vhd
    • nidru_20_wrapper.vhd
  2. Create a new wrapper for the NI-DRU called nidru_20_sdi_wrapper.vhd.
  3. Create a new top level for the NI-DRU called nidru_20_v6_0_wrapper.vhd which instantiates the nidru_20_sdi_wrapper.vhd.
  4. Make sure all of the Generics are defined in the file nidru_20_sdi_wrapper.vhd as you cannot use generics in an OOC module.
  5. Right click on the new nidru_20_sdi_wrapper.vhd in the Design Sources window and select "Set as Out-of-Context for Synthesis":



  6. Click OK.
  7. Right Click on the nidru_20_sdi_wrapper.vhd in the Design Runs window and select "Synthesis Run Properties".



  8. Set "-flatten_hierachy" to none.
  9. Right Click on the nidru_20_sdi_wrapper.vhd in the Design Runs window and select "Launch Next Step: synth_design".
  10. Add the new nidru_20_v_6_wrapper.vhd and the nidru_20_sdi_wrapper.dcp files to the project.
  11. Update any calls in the UDH-SDI core from nidru_20_wrapper to nidru_20_v_6_wrapper and run Synthesis.

 

Also you can download the attached Vivado 2015.4 project that shows the synthesis of the OOC project. This example is based on XAPP1248 UHD-SDI on UltraScale GTH and XAPP1275 HDMI on UltraScale GTH.

Attachments

Associated Attachments

Name File Size File Type
sdi_nidru_ooc_flow_example_2015_4.zip 588 KB ZIP

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
57842 LogiCORE Video PHY Controller - Release Notes and Known Issues for Vivado 2015.4 and newer tool versions N/A N/A
AR# 66691
Date 04/19/2016
Status Active
Type General Article
IP