AR# 396: EDIF2XNF 5.x: Error 3, port name not found on external library primitive for cell
AR# 396
|
EDIF2XNF 5.x: Error 3, port name not found on external library primitive for cell
説明
Keywords: edif2xnf, xact, error, port, cell
Urgency: Standard
General Description:
In some cases, EDIF2XNF 5.x may issue an error similar to the following:
Error: 3 port name I1 not found on external library primitive for cell OR2
When EDIF2XNF is executed, it looks for information about Xilinx primitives in the $LCA/data directory. If the obsolete libraries are installed, you will see edif2000, edif3000, and edif4000 directories under $LCA/data. With the Unified Libraries, you will see another set of similarly named directories underneath $LCA/data/unified.
In these directories are .eds files that describe the correct pinout of the Xilinx primitives. If the ports, or pinout, of the symbol on the schematic sheet do not match the ports shown in the .eds file for the corresponding primitive, the above error will occur. By default, EDIF2XNF looks in the $LCA/data (obsolete) directory for the appropriate device family (e.g., $LCA/data/edif4000) unless given the -l option (automatically inferred by Men2XNF8).
This error message has several causes and solutions.
ソリューション
1
A Mentor gen_lib part was inadvertently included in the schematic. EDIF2XNF is trying to match the ports on the gen_lib part with the ports from the Xilinx library, which are incompatible.
The design must be modified so that all of its components come from the same library. You can check library usage with the "listref" command in Unix (a Mentor-supplied program) or with the Report -> Show References -> For Design selection in PLD_DMgr. Any references to the old library will show up, for example, as $LCA/lib4k (XC4000 design); while references to the Unified library will show up, for example, as $LCA/xc4000.
2
You are using Unified Libraries, and are running EDIF2XNF without the -l option. As stated above, EDIF2XNF by default looks in the $LCA/data directory, which corresponds to the obsolete libraries, for .eds files. Either add the following to your command line:
edif2xnf -l $LCA/data/unified/edif4000 (XC4000 target, for example)
or run Men2XNF8, which automatically infers the necessity for the -l option.
3
You have mixed Unified and obsolete libraries. Men2XNF8, if it sees a single Unified Library component, assumes that the entire design was drawn with Unified Libraries. If there are any obsolete library parts in the design, EDIF2XNF (with the -l option) will try to crossmatch an obsolete library part with a Unified Library port description, the two of which will be incompatible. Even when running EDIF2XNF separately without the -l option, you will get a similar situation as in case #2, where the program tries to crossmatch a Unified library part with an obsolete library port description.
The design must be modified so that all of its components come from the same library. You can check library usage with the "listref" command in Unix (a Mentor-supplied program) or with the Report -> Show References -> For Design selection in PLD_DMgr. Any references to the old library will show up, for example, as $LCA/lib4k (XC4000 design); while references to the Unified library will show up, for example, as $LCA/xc4000.