Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!wuarchive!usc!ucsd!helios.ee.lbl.gov!pasteur!comet.Berkeley.EDU!wbaker From: wbaker@comet.Berkeley.EDU (Wendell Craig Baker) Newsgroups: comp.lsi.cad Subject: Re: questions on EDIF semantics Keywords: EDIF semantics Message-ID: <26885@pasteur.Berkeley.EDU> Date: 9 Aug 90 17:18:26 GMT References: <539@al.ele.tue.nl> Sender: news@pasteur.Berkeley.EDU Reply-To: wbaker@comet.Berkeley.EDU (Wendell Craig Baker) Lines: 204 X-Local-Date: 9 Aug 90 10:18:26 PDT The following are some answers to your questions regarding EDIF 2 0 0. They are based on the experience of writing a toolkit for building EDIF 2 0 0 translators; a description of this system and its availability are described below. 1. Re: miNoMax Yes, there is no way to reference the minimum, nominal or maximum values from within the framework of EDIF 2 0 0; these values may be stored in variables (constants, parameters, variables), but there is no way to reference their member values (as there is for pointValues via xCoord and yCoord). 2. Re: parameter valueNames and the use of assign It is my understanding that the valueName defined by a parameter is readonly, as is the valueName defined by a constant. The only valueName which can be used in a destructive assignment operation are the valueNames defined with a variable. Yes, the assignment of (parameterAssign A (miNoMax -1)) equivalent to the following: (parameterAssign A (miNoMax (mnm (undefined) -1 (undefined))) 3. Re: scaling Yes, scaling between libraries is not consistent and can cause integer values to become floating-point values. The same occurs with points which must fall on the integer grid, and after scaling them may not necessarily do so. Currently my view is that this is an inconsistency in the EDIF 2 0 0 specificiation, and thus it is the user's call (opinion) as to whether the values are (a) truncated to the nearest integer coordinate, (b) the values are promoted to floating-point wherever possible or (c) the operation is invalid in the first place. Unit of course, does not affect boolean or string types; it does affect pt types because they are implicitly DISTANCE units. 4. Re: nets and subnets Yes, the subnets can be discarded because they only refine the connectivity definition that has been established in the net's single joined construct. The subnets are typically used to represent routing and as such connect between the ports referenced in the joined statement and the TIE instances that may be instantiated in the net body. I hope this helps a bit; if its useful, you may want to check out edifLint on the toolkit distribution You may also find that it is useful to obtain certain of the EDIF committee's publication regarding netlist and schematics representation in EDIF 2 0 0. I do not recall the exact titles at this point. The User's group address is as follows: EDIF User's Group P.O. Box 25542 Tempe AZ 85285-5542 In addition Prof Hilary Kahn runs a question-and-answer service for authoritative answers to such questions. The service can be reached at edif-support@ux.cs.man.ac.uk Wendell C. Baker Berkeley CAD Group U. C. Berkeley Berkeley CA 94720 wbaker@comet.berkeley.edu Ordering Info: ----------------------------------------------------------------------- You can get the tape from the Industrial Liason Program Office for $250.00 shipping and handling at the following address: Industrial Liason Program Office 479 Cory Hall Electronics Research Laboratory, University of California, Berkeley Berkeley CA, 94720 ATTN: Cindy Manly If you have access to ftp, then the tape is free (you just get to suck it over by yourself) and you hae to remember to print out the docs yourself too. The usual anonymous ftp rules: Name: comet.berkeley.edu Address: 128.32.132.34 /EDIFWorld89.ps |-Release_7.5-f14-hlnk-nexc.tar.Z (Release 7.5 for SysV/HPUX etc) |-Release_7.6-notes-reversed.ps |-Release_7.6-notes.ps |-Release_7.6.tar.Z (Release 7.6 for others) edif-|-agreement-reversed.ps |-agreement.ps |-agreement.tex |-assurance-reversed.ps |-assurance.ps |-assurance.tex |-blurb \blurb+ftp <------- this file Other Ports -------------------------------------------------------------------- I have ports of the system for SysV and Apollo machines as well The file Release_7.5-f14-hlnk-nexc.tar.Z in the ftp directory is the port of Release_7.6.tar.Z suitable for use on SysV/HPUX/AIX. The system has been ported to other Non-Unix machines such as VMS and various mainframe architectures; these latter being a nontrivial effort on the part of the individuals involved, but it was accomplished. The ILP blurb -------------------------------------------------------------- EDIF 2 0 0 Release 7.6 ----------- The major feature of this new release of the Berkeley EDIF 2 0 0 Software is the implementation of the CAD Framework Initiative (CFI) Scalar Netlist Interface for 1990 as was demonstrated at the 27th Design Automation Conference in Orlando Florida. Through the use of this interface it is possible to make any CFI-compliant program read EDIF 2 0 0 as input with no modification to the program. That is, any program, using the CFI-defined interface can directly read data from an edifFile through the use of this new package. In addition to this new feature, there are numerous bug fixes and portability enhancements that have been contributed by users of the toolkit. The Berkeley EDIF 2 0 0 Software is an environment for managing EDIF 2 0 0. The system is a translator-building toolkit that provides all facilities necessary for building a translator to or from EDIF 2 0 0. Using the toolkit, it is possible to construct any translator; the translator-writer should only have to provide access to the source or target data format. The toolkit uses an efficient in-core data structure specifically designed to store the EDIF syntax. This data structure is called the EDIF Heap. The EDIF Heap supports the storage of the EDIF syntax as well as providing a compiler-like symbol-table data structure. Lisp memory management systems have been extensively investigated. Because there are many similarities between Lisp and EDIF, the results from this work has been used to advantage of in the implementation of the EDIF Heap. For example the scheme known as ``typed pages'' is used in the EDIF Heap to simulate a tagged architecture. Further, the Lisp symbol-table data structure, called the ``environment'' has been extended for use in the EDIF Heap. In Lisp, the environment need only support two name spaces; in EDIF 2 0 0, there are seventeen name spaces. The toolkit consists of a storage manager for the EDIF Heap which provides automatic allocation and garbage-collection services. Also provided are routines converting the EDIF Heap structures to and from their printed form. These routines perform reading and printing of the EDIF syntax. Other routines provide the services of macro-expansion, expression-evaluation and statement-execution. The goal of the EDIF 2 0 0 software is to provide an environment that will support the manipulation of EDIF in a straightforward manner and also to provide a system with which it is easy to build translators. translators to and from EDIF. In addition to the new CFI Scalar Netlist Interface, Release 7.6 also contains EDIF-manipulating programs such as the ``edb'', the EDIF debugger, and ``edifdiff'' which compares two edifFiles independent of how they were formatted. In addition, Release 7.6 supports all edifLevels and all keywordLevels. The set of tools in the EDIF 2 0 0 tools are translators to and from CIF, OCT, an ``linter'' for syntax and semantics checking, an ``EDIF debugger'' which has much of the flavor of a C source-code debugger, a PostScript plotter, and two EDIF manipulation programs designed to perform such operations as macro expansion, parameterized-design instantiation and a host of other operations. The toolkit provides a simple programming paradigm and users are encouraged to use the system to build translators to and from their own databases. Hardware/Operating System Requirements: DEC VAX and DECstation running Ultrix 2.2, 2.4, 3.0, 3.1, and 4.0; 4.2BSD and 4.3BSD UNIX; Sun OS 3.2, 3.5, 4.0, and 4.1; Sony NeWS; 4.3BSD Utah for the HP; and Apollo 10.1 and 10.2, Sequent DYNIX as well as many others. The system has been ported to SystemV, HPUX 5.5 and 6.5, Apollo 9.7 and 10.0.1, the MacIntosh and VMS. The authors should be contacted directly for concerning the availability for these systems. Versions Available: UNIX only Distribution Media: 9-track, 1600 BPI, 2400-ft. magnetic tape Source Code: Yes Object Code: No Programming Language: The system is written in the C language and is compatible with both ANSI C and the Portable C Compiler