Design Exchange Format (DEF) is an open specification for representing the physical layout of an integrated circuit in the ASCII format. It represents a netlist, component placements and routing information. However, it does not contain any information on the used components. For this type of information DEF is normally used in conjunction with LEF. The connection of a large number of components is the main focus of the design of the DEF file format. Therefore, it is less suitable for non standard integrated circuits like Monolithic Microwave Integrated Circuits (MMIC) where placement, surrounding components and connecting shape and length are the most important design tasks.
The DEF file format is strongly connected with the LEF file format. Both files are needed for the correct display of a physical design.
To display a DEF file, please open the corresponding LEF file first and then import/attach/update the DEF file. Only opening a DEF file with information on the referred cells may result in the incorrect placement of cells because the binding box of the placed cell is required for a correct placement. If no LEF file is opened before the DEF file then refered cell information is read from existing cells or from OpenAccess libraries set as defExtraLibs (see scripting class setup for details). The netlist is loaded anyway. The DEF file format must be used together with the LEF file format to integrate an external routing tool into the LayoutEditor. The DEF file format only knows layernames. By opening a DEF file, the LayoutEditor analyses the used layers. If a used layername already exists in the current setup, this layer is used. Otherwise the first unused layer is renamed.
The netlist and the design of the current display cell is exported. Referred cells need to have a device name set to be exported. Only shapes on technology layers will be exported. Shapes on all other layers will be ignored. The DEF export/import can be used to integrate an external routing tool into the LayoutEditor.
A lot of information is contained within a complete DEF file; a GDS (the form of representation used by the LayoutEditor) cannot store all of this information. The additional and optional information of a DEF file can be set by an macro script. Please see the API documentation of the class setup for details.