While implementing XNF or EDIF netlists exported from a third party entry tool such as Orcad, Protel, or Synplicity, you may encounter "unexpanded" warnings and errors during NGDBUILD or MAP.
These errors make reference to non-primitive macro symbols from Xilinx libraries.
WARNING:basnu:93 - logical block "inst_name" of type "M2_1" is unexpanded. Logical Design DRC complete with 1 warning(s).
ERROR:basnu:93 - logical block "inst_anme" of type "M2_1" is unexpanded. Errors detected in general drc.
The reason this occurs is because some third party XNF/EDIF netlist writers will only expand the design down to the macro-level and not down to the primitive level. M1 expects the input design to be expanded down to the primitive level. It is up to the third party vendor to supply netlists (either EDIF or XNF format) for the user to complete the implementation. The needed macro netlists tend to be grouped together in one directory.
1. The first step in resolving this issue is locating the directory which contains netlists for Xilinx macro library symbols. -Search your local drives for the netlists. - For example, if you encountered a problem expanding a module of type "M2_1," search your drives for "M2_1.*"
If you cannot find this directory, please contact the third party vendor.
- The default install location for OrCad macro netlist files is: CAPTURE\LIBRARY\XIL_M1\<device family>
2. When you have located the directory where the macro netlists reside, you must reference them in your implementation. For this, there are two options.
A. Source this library directory for NGDBUILD. To do this, add the following switch to the NGDBUILD command line. -sd X:\<path_to_netlist_directory>
If we are using Design Manager, there are two methods.
i. 1. Before implementation, go to the Implementation Options Template. Design->Options->Edit Options... 2. Select the "Translate" interface tab. 3. Under the Macro Search Path, enter the full path to the library directory. The "Browse" button can help. 3. Re-run the implementation.
ii. Alternatively, the specific command can be entered using the Template Manager as described in (Xilinx Solution 1227).
B. Also, instead of specifying a source directory, you can place the required netlists into one directory and run the implementation from this directory. This can be accomplished by copying the macro netlists to the current project directory.