AR# 15936: 5.1i Project Navigator - The "Retain Hierarchy" property has no effect on NGD2VER or NGD2VHDL processes
5.1i Project Navigator - The "Retain Hierarchy" property has no effect on NGD2VER or NGD2VHDL processes
The "Retain Hierarchy" option in the "Generate Post Place and Route Simulation Model" properties window seems to have no effect. Although the option is selected, the netlister still issues the following message:
"Design does not contain hierarchical blocks with KEEP_HIERARCHY property. Hierarchy will not be retained."
When I inspect the command line log, the netlister command line does NOT include the "-r" option.
This is true for the following processes:
Generate Post-Place and Route Simulation Model
Generate Post-MAP Simulation Model
Generate Post-Translate Simulation Model
In the 5.1i software, preserving hierarchy is not based on the use of the "-r" switch but on the presence of the KEEP_HIERARCHY property within the design. Therefore, the preservation of hierarchy by NGD2VER/NGD2VHDL is based on design content (is data-driven). The expected behavior is listed below.
1. If the design contains the KEEP_HIERARCHY constraint:
The output netlist from netlist writers preserves hierarchy for blocks that contain the KEEP_HIERARCHY constraint, and the remainder of the design is flattened. If the GUI "Retain Hierarchy" switch is set to FALSE, the design is flattened and a warning message is issued. If "Retain Hierarchy" is set to FALSE, the "-fn" switch (for NGD2VER, NGD2VHDL) or "-n" switch (for NGD2EDIF) is used.
2. If the design does NOT contain the KEEP_HIERARCHY constraint:
The VHDL and Verilog netlists are flattened, but the EDIF netlist is not. (This is consistent with the default behavior in the 4.2i software.) In this case, a change in the GUI "Retain Hierarchy" switch from FALSE to TRUE has no effect.
You must to use the KEEP_HIERARCHY property in your design if you wish for the hierarchy to be preserved through the Xilinx implementation tools (NGDBuild, MAP, etc.) and the resulting simulation netlist.