In some cases, a user code might have commonly-used Xilinx IP instantiated within their RTL. The Reference RTL Module feature allows inferencing the XCI (.xci) files for IP embedded within the RTL code.
While a majority of the IP are supported for inferencing, there a few IP that are not supported to be inferenced within the RTL flow. The unsupported IP are, as follows:
- Those with processor data
- Those that support elaboration (HIP)
- Those that support AppCore
- HLS based
- The
IPDEF
propertyipcomp
includes the string “xilinx_anylanguagehls”
- The
- Do not have RTL enabled
- The
IPDEF
propertydesign_tool_contexts
does not include “HDL”
- The
- Hard-coded VLNV list:
- mig_7series
- selectio_wiz
- microblaze_mcs
- ddr*
- zynq_ultra_ps_e
- axi_crossbar
- ibert_ultrascale_gth
- ibert_ultrascale_gty
- gtwizard
- microblaze
If an IP from the above list happens to be instantiated within the RTL code, then the Add Module command will fail with the following error:
ERROR: [filemgmt 56-181] Reference '<targetName> contains sub-design file '<xciFile>'. This sub-design is not allowed in the reference due to following reason(s): The <vlnv> core does not support module reference.
As an example, the code snippet, shown in the following figure, shows that an ILA was instantiated within the RTL code.
The ILA IP has been configured and added to the project, shown below:
This RTL can then be added to the block design as an RTL module. It looks like the following figure.