![]() |
|
![]() |
|
Answers Database
EDIF2XNF error 6, "module.eds" not found in directory: possible causes
Record #762
Product Family: Software INTERFACE: bad_module PINS: (list of pins) BODY PROPERTIES: (list) INTERFACE MODEL ENTRIES: Model Entry Type Model Info (list) Note that there may be more than one INTERFACE line; the interface we care about is the one named in the DEFAULT INTERFACE field. A registration model entry looks like this: 0 mgc_symbol Path: $my_design/bad_module/bad_module Labels: 'default_sym' Status: Valid for interface; Valid for property In a correct component interface, there should also be an entry of type "mgc_schematic"; if this does not exist, then the component does not know what schematic represents it, so it is written out as a primitive. To correct the component interface in this example: > register_model $my_design/bad_module/schematic mgc_schematic (The "register_model" command may be abbreviated "rm".) If you type "view" again in CIB, you should see the following new model entry: 1 mgc_schematic Path: $my_design/bad_module/schematic Labels: '$schematic' 'schematic' 'default' Status: NOT valid for interface; NOT valid for property (The "NOT valid" status is not important.) Save this interface, then exit CIB: > save > quit Reprocess the schematic through Men2XNF8. Solution 6: You have attempted to retarget a design to a device family different from the one associated with the library used to build the design. One example where this may happen is if you have built a design using XC4000 components, but specify and XC4000E part on the men2xnf8 command line: Error: 6 EDIF data "ofd.eds" not found in directory "/usr/xact/data/unified/edif4000e" The problem is that certain parts are primitives in the schematic library with which the design was built, but are macros in the library associated with the device you are trying to target. In this example, OFD is a primitive in the XC4000 library but is a macro in the XC4000E library (since it has underneath it the clock-enabled OFDX). In this example, here is what happens. ENWrite (Mentor's EDIF netlister) looks at the XC4000 version of OFD in the schematic. This component has attached to it a COMP=OFD property, which tells ENWrite that this component is a primitive and should be written as such in the EDIF file. EDIF2XNF then takes this primitive description and looks for the corresponding ofd.eds file in the $LCA/data/unified/edif4000e directory, which contains EDIF descriptions for primitives. Since OFD is not a primitive in the XC4000E family, the ofd.eds file does not exist in the directory, which brings about error 6. The correct OFD from the XC4000E library has no COMP=OFD property on it, since the COMP property in XACT is reserved for primitives. Therefore, if the correct XC4000E component had been used, ENWrite would have written out the hierarchy below OFD. Then, EDIF2XNF would have never seen the OFD "primitive" and would have never tried to look for a non-existent ofd.eds file in the XC4000E data directory. The proper way to retarget a design to a new device family is to first use the Convert Design utility in PLD_DA before running the implementation flow. Convert Design replaces the library components in a schematic or set of schematics so that they come from the proper library. For instructions on how to use Convert Design, see Solution 798, "Retargeting a design in Mentor Design Architect (Convert Design)." Solution 7: The design uses Unified libraries, and the -l option has not been specified on the EDIF2XNF command line. This typically happens when you write your own Mentor-to-Xilinx translation script, instead of running Men2XNF8. EDIF2XNF, by default, tries to get .eds EDIF descriptions from the obsolete-library area, $LCA/data/edif____, as opposed to the Unified area, $LCA/data/unified/edif____. Therefore, if you are using Unified components and omit the -l option in EDIF2XNF, you will may get an error similar to the following: Error: 6 EDIF data "fdce.eds" not found in directory "/usr/xact/data/edif4000" Note that the "unified" subdirectory is missing. To fix this problem, simply add the -l option to the EDIF2XNF command line, specifying the entire path to the Unified area. For example, with XC4000 designs, the option would read: edif2xnf -l $LCA/data/unified/edif4000 ... Solution 8: The component is indeed a primitive (e.g., AND2), but the corresponding and2.eds file is missing from the $LCA/data/unified/edif4000 directory. (There are also directories edif2000, edif3000, etc.) Reinstall the Mentor Interface (DS344) to correct this. Solution 9: The design has a mixture of obsolete and Unified library components. The component in question exists in one library but not the other. All Xilinx components in a design must use one library or the other. Solution 10: The top-level XNF viewpoint has been corrupted. (This viewpoint, called "xnf", can be found in the component directory.) Delete the XNF viewpoint (see (Xilinx Solution 766) for instructions) and try again. End of Record #762 - Last Modified: 05/19/99 15:02 |
| For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips! |