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]
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:
- Take SDI NI-DRU and put it into another Vivado project that will be used to create the OOC module.
Create a new wrapper for the NI-DRU called nidru_20_sdi_wrapper.vhd.
Create a new top level for the NI-DRU called nidru_20_v6_0_wrapper.vhd which instantiates the nidru_20_sdi_wrapper.vhd.
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.
Right click on the new nidru_20_sdi_wrapper.vhd in the Design Sources window and select "Set as Out-of-Context for Synthesis":
Right Click on the nidru_20_sdi_wrapper.vhd in the Design Runs window and select "Synthesis Run Properties".
Set "-flatten_hierachy" to none.
Right Click on the nidru_20_sdi_wrapper.vhd in the Design Runs window and select "Launch Next Step: synth_design".
Add the new nidru_20_v_6_wrapper.vhd and the nidru_20_sdi_wrapper.dcp files to the project.
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.