I haven't seen a standard format anywhere, either. However, as others have mentioned, netlist formats are very simple and usually text-based, and thus trivial to translate between various forms. A netlist is simply a list of nets (wires), with a list of ports (pins of components) that attach on each wire. Although the details differ, it's all a variation of the same theme. In the past I've written several scripts in Perl and Python that easily manipulate netlists. As a matter of fact, netlist files are a great exercise in beginner-level text processing.
Honestly, if you really want a netlist format that will in practice work with just about any tool, you have just two serious choices:. VHDL.
Verilog Yes, these are full-blown hardware description languages, and using them as a netlist format could be considered overkill. However, it is very easy, and if a tool spits out simple, structural VHDL or Verilog, you can be quite confident that you'll be able to pull the design back into just about any other EDA tool.
As a side benefit, most other netlist formats (e.g. EDIF) need to have an externally defined set of primitives - either something vendor specific, or something like LPM. With VHDL and Verilog, the lowest level leaves (primitives) can just be whatever you want (e.g. Synthesizable RTL code, simulation models, black boxes, etc). However, if you absolutely must have an actual netlist format, I second the suggestion to use the gnetlist format, which can then be converted to many other formats.
What is an EDIF file? Every day thousands of users submit information to us about which programs they use to open specific types of files.
While we do not yet have a description of the EDIF file format and what it is normally used for, we do know which programs are known to open these files. See the list of programs recommended by our users below.
We are constantly working on adding more file type descriptions to the site - the current count exceeds thousand by far, and more information about EDIF files will hopefully be added soon. What is a file extension? A file extension is the characters after the last dot in a file name. For example, in the file name 'winmail.dat', the file extension is 'dat'.
It helps Windows select the right program to open the file. We help you open your file We have a huge database of file extensions (file types) with detailed descriptions. We hand pick programs that we know can open or otherwise handle each specific type of file. Original downloads only All software listed on file.org is hosted and delivered directly by the manufacturers. We do not host downloads on our own, but point you to the newest, original downloads.
B.3 Electronic Design Interchange Format (EDIF) Next: Up: Previous:. This description of EDIF format is taken from Appendix D of Computer Aids for VLSI Design by Steven M.
The Electronic Design Interchange Format (EDIF) is a recent effort at capturing all aspects of VLSI design in a single representation. This is useful not only as a communications medium to manufacturing equipment, but also as an interchange format between CAD systems, since none of the high-level information is lost. EDIF is designed to be both easy to read by humans and easy to parse by machines.
EDIF files resemble the LISP programming language because of the use of prefix notation enclosed in parentheses. For example, the CIF polygon: P 100 100 150 200 200 100; look like this in EDIF: (polygon (point 100 100) (point 150 200) (point 200 100)) All EDIF statements consist of an open parenthesis, a keyword, some parameters, and a close parenthesis. The parameters can be other statements, which is what gives EDIF structure. Actually, an EDIF file contains only one statement: (edif parameters) where parameters are the described circuit.
Not only does EDIF resemble LISP, but in its highest level it contains all of LISP and is an extension of this highly expressive language. However, in the interest of making parsing simple, there are three levels of EDIF, and lower levels are less powerful. Level 1, the intermediate level, allows variables to be used and cell definitions to be parameterized. EDIF level 0 has no programmability and requires constants in all statements. A LISP preprocessor can translate from EDIF levels 1 or 2 down to level 0, and any given level of EDIF can be read by a parser of a higher level. Since level 0 is all that is necessary for most interchange and all manufacturing specification, only that level will be discussed here. Also, some of the EDIF constructs that deal with simulation, routing, behavior, and other unusual specifications will not be covered in detail.
An EDIF file contains a set of libraries, each containing a set of cells. Each cell can be described with one or more views that show the cell in the form of a schematic, layout, behavioral specification, document, and more. Each view has both an interface and contents so that it is cleanly defined and can be linked to other views with a view map. Libraries may also contain technology information so that defaults can be given for behavior, graphics, and other attributes.
File Layout
The overall structure of an EDIF file looks like this: (edif name (status information) (design where-to-find-them) (external reference-libraries) (library name (technology defaults) (cell name (viewmap map) (view type name (interface external) (contents internal) ) ) ) ) The status statement is used to track design progress and contains author names, modification dates, and program versions. Additional status statements may appear in each library, cell, and view.
The design statement indicates where a completed design may be found by pointing to the top cell of a hierarchical description. The external statement names libraries that will be used but are not listed in this EDIF file. The library, cell, and view blocks can be repeated as necessary.
There is also a comment statement that can be placed at the end of most blocks to add readability to the file. Here is an example of an EDIF file that further illustrates the outer level: (edif my-design (status (edifversion 1 0 0) (ediflevel 0) (written (timestamp 2004 4 1 11 16 6) (accounting author 'Rainer Minixhofer') (accounting location 'Vienna') (accounting program 'Virtuoso') (comment 'timestamp contains year, month, day, hour,') (comment ' minute, and second') ) ) (design test-chip (qualify test-library top-cell) (comment 'look for top-cell in test-library') ) (external pad-library pla-library) (library test-library (technology 0.35-micron-CMOS. ) (cell top-cell (viewmap. ) (view masklayout real-geometry (interface. ) ) (view schematic more-abstract (interface.
) ) ) ) ) The written part of a status block may be repeated to show all authors and update events. Also note that the qualify statement which names a cell in a particular library, is generally useful and can appear anywhere that an isolated name may be ambiguous or undefined. In the following sections, more information is given to describe the contents, interface, viewmap, and technology blocks. The contents of a cell may be represented in a number of different ways depending on the type of data. Each representation is a different view, and multiple views can be used to define a circuit fully.
EDIF accepts seven different view types: netlist for pure topology as is required by simulators, schematic for connected logic symbols, symbolic for more abstract connection designs, mask layout for the geometry of chip and board fabrication, behavior for functional description, document for general textual description, and stranger for any information that cannot fit into the other six view types. The statements allowed in the contents section vary with the view type (see Fig.
File Format Excel
The netlist, schematic, and symbolic views are essentially the same, because they describe circuit topology. The allowable statements in these views are the declarations define, unused, global, rename, and instance; the routing specifications joined, mustjoin, and criticalsignal; and the timing specifications required and measured.
Ati mobility radeon x1600 windows 7 drivers. Schematic and symbolic views also allow the annotate and wire statements. The mask-layout view allows all of the declarations, some of the routing constructs, and the figuregroup statement for actual graphics. The behavior view allows only a few declarations and the logicmodel statement.
The document view allows only the instance and section constructs. Finally, the stranger view allows everything but supports nothing. It should be avoided whenever possible. Table B.5: Interface statements allowed in EDIF.
Netlist Schematic Symbolic Mask Layout Behavior Stranger define X X X X X X rename X X X X X X unused X X X X X X portimplementation X X X X X X body X X X X X X joined X X X X X X mustjoin X X X X X X weakjoined X X X X X X permutable X X X X X X timing X X X X X X simulate X X X X X X arrayrelatedinfo X X X The first interface statement to be discussed is portimplementation, which describes the ports and their associated components, graphics, timing, and other properties. Although ports can be declared with the define statement, portimplementation allows more information to be included in the declaration. The format is: (portimplementation portname figuregroups instances properties) where the portname is the name of the port as it will be used in supercells. The figuregroups describe any graphics attached to the port, the instances specify any subcells that describe the port, and the properties may indicate power-consumption ratings. Ports that are further described by instances of other cells do not need figuregroups to define them, so much of the portimplementation statement is optional. The body statement is used to describe the external or interfaced aspect of a cell. In mask-layout views, this can describe a protection frame for design-rule checking and compaction.
In other views it is simply used to give an external appearance to instances of the cell. The format is: (body figuregroups instances) where instances are subcells that can be used to describe the body. The arrayrelatedinfo statement which is used in gate-array specification, is allowed only in symbolic, mask-layout, and stranger views. This can be used to declare the background array: (arrayrelatedinfo basearray (socket info)) or the individual cells: (arrayrelatedinfo arraysite (plug info)) or macros of cells: (arrayrelatedinfo arraymacro (plug info)) These statements define a grid that can be connected in a rigid manner, specified by the plugs and sockets. Sockets define permissible connection options and plugs make these connections to give precise gate-array interface. The final interface section constructs, which will not be described in detail, are timing and simulate. The timing statement gives port delays for various transitions, and gives stability requirements for the signal values.
The simulate statement lists test data and expected results. To relate different views, a viewmap section can exist in each cell, which associates ports from different interface sections or instances from different contents sections. Port mapping is done with: (portmap ports) where the list of ports is of the form: (qualify viewname portname) Thus to equate port C of the mask-layout view with port D of the schematic view, the map would look like this: (viewmap (portmap (qualify real-geometry C) (qualify more-abstract D) ) ) Note that the viewname is the declared name given to the view. To relate instances of a cell in different views, the same format applies except that a many-to-one mapping is allowed.
For example, (instancemap (qualify real-geometry pullup pulldown) (qualify more-abstract inverter) ) will map both the pullup and the pulldown in the mask-layout view to the inverter in the schematic view. The technology section provides a background of information for the description of a library. Defaults can be set for other statements in the library, such as the figuregroup. Also, the real units of distance, time, power, and so on can be established. The technology section has the following format: (technology name defines renames figuregroupdefaults numberdefinitions gridmaps simulation ) where name is an identifier for this technology. A set of define statements can be used to declare default figuregroups for various signal types and rename statements can be used to establish name bindings in the library.
The figuregroupdefault statement takes a name and a list of pathtype, width, color, fillpattern, and borderpattern constructs to establish the defaults for subsequent figuregroup statements in the library. The numberdefinition statement is important because it sets the scale of all EDIF units as follows: (numberdefinition SI (scale distance edif real) (scale time edif real) (scale capacitance edif real) (scale current edif real) (scale resistance edif real) (scale voltage edif real) (scale temperature edif real) ) The name SI is a standard that should always appear unless an alternate set of unit values is being declared. Any of the scale clauses may be used to declare the number of units in the EDIF file that correspond with real units. Real units for distance are in meters, which means that the clause: (scale distance 1000000 1) causes one million EDIF units to be a meter (or one EDIF unit to be a micron).
The real-time unit is the second, capacitance is in farads, current is in amperes, resistance is in ohms, voltage is in volts, and temperature is in degrees celsius. The gridmap clause of the technology section can be used to declare nonuniform scaling in the x and y axes. For example, (gridmap 3 4) will set the x units to be three times the numberdefinition distance and the y coordinates to be four times that amount. This nonuniform scaling of all coordinates has limited application. A final use of the technology section is for simulation defaults.
As with all other simulation constructs, these will not be discussed here. Next: Up: Previous: R. Minixhofer: Integrating Technology Simulation into the Semiconductor Manufacturing Environment.
. The documentation area is where you can find extensive, versioned information about our software online, for free. View the schedule and register for training events all around the world and online. Browse our vast library of free design content including components, templates and reference designs. Attend a live webinar online or get instant access to our on demand series of webinars.
Get your questions answered with our variety of direct support and self-service options. Stay up to date with the latest technology and industry trends with our complete collection of technical white papers. Quick and to-the-point video tutorials to get you started with Altium Designer. The Netlist Outputs category of the OutputJob Editor allows you to create the following Output Generators:.
Cadnetix. Calay. EDIF for PCB. EESof.
Intergraph. Mentor BoardStation. MultiWire. OrCad/PCB2.
PADS. Pcad for PCB. PCAD. PCADnlt. Protel2. Protel. Racal.
RINF. SciCards.
SIMetrix. SIMPLIS.
Tango. Telesis. Verilog File. VHDL File. Wirelist.
XSpice Configuring Assembly Drawing Output Generators Depending on the specific output type, options may be available for you to configure the associated output generator, providing more control over the generated output. Where configuration options are available, they can be accessed in one of the following ways:. Selecting the required Output Generator and choosing the Configure command from the Edit menu. Right-clicking on the required Output Generator and choosing the Configure command from the pop-up menu that appears. Selecting the required Output Generator and using the keyboard shortcut, Alt + Enter. Double-clicking directly within the row for the required Output Generator.
File Format Example
If multiple output generators are selected, the configuration dialog will appear for the output generator that was selected last. Different output generators have unique dialogs to configure precisely what gets generated when the output is run.
Generating Netlist Output directly from the Project Netlist Output can also be generated directly from your project. To generate a Netlist for the Project, navigate to Design » Netlist for Project. Alternatively, if you wish to generate a Netlist for your active document, navigate to Design » Netlist for Document.
Comments are closed.
|