To create the in-memory design, the Vivado Design Suite uses the
following process to combine the netlist files, constraint files, and the target part
information:
- Assembles the netlist.
The netlist is assembled from multiple sources if needed. Designs can consist of a mix of structural Verilog, EDIF, and Vivado IP.
Important: NGC format files are not supported in the Vivado Design Suite for UltraScaleā¢ devices. It is recommended that you regenerate the IP using the Vivado Design Suite IP customization tools with native output products. Alternatively, you can use the convert_ngc Tcl utility to convert NGC files to EDIF or Verilog formats. However, Xilinx recommends using native Vivado IP rather than XST-generated NGC format files going forward. - Transforms legacy netlist primitives to the currently supported subset of Unisim
primitives.Tip: Use
report_transformed_primitives
to generate a list of transformed cells. - Processes constraints from XDC files.
These constraints include both timing constraints and physical constraints such as package pin assignments and Pblocks for floorplanning.
Important: Review critical warnings that identify failed constraints. Constraints might be placed on design objects that have been optimized or no longer exist. The Tcl command 'write_xdc -constraints INVALID
' also captures invalid XDC constraints. - Builds placement macros.
The Vivado tools create placement macros of cells, based on their connectivity or placement constraints to simplify placement.
Examples of placement macros include:
- An XDC-based macro.
- A relatively placed macro (RPM).Note: RPMs are placed as a group rather than as individual cells.
- A long carry chain that needs to be placed in multiple CLBs.Note: The primitives making up the carry chains must belong to a single macro to ensure that downstream placement aligns it into vertical slices.