This chapter contains information about the following topics.
INPUT LEF can add new data to the current database, providing an incremental LEF capability. Although it is possible to put an entire LEF library in one file, some systems require that you put certain data in separate files.
This feature also is useful, for example, when combined with the INPUT GDSII command, to extract geometric data from a GDSII-format file and add the data to the database.
When using INPUT LEF on a database that has been modified previously, save the previous version before invoking INPUT LEF. This provides a backup in case the library information has problems and the database gets corrupted or lost.
|
|
The original LEF file, created with FINPUT LEF (or with INPUT LEF when no database is loaded), must contain all the layers. |
INPUT LEF can add the following objects to the database:
If geometries have not been specified for an existing via, INPUT LEF can add layers and associated rectangle geometries. If not specified previously for a macro, INPUT LEF can add the following:
|
FOREIGN statement |
If not previously specified for an existing macro pin, INPUT LEF can add the following:
The database created by INPUT LEF can contain a partial library. Run VERIFY LIBRARY before proceeding.
If new geometries are added to a routed database, run VERIFY GEOMETRY and VERIFY CONNECTIVITY to identify new violations.
|
|
When defining a pin with no port geometries with the intent of incrementally adding them, do not include an empty PORT statement as shown below. |
The error checking utilities have the following syntax:
&CREATEFILE &fileAlias =
{ stringExpression
| stringIF-ELSEexpression } ;
&MESSAGE
{&fileAlias | &MSGWINDOW} = message;
&WARNING
{&fileAlias | &MSGWINDOW} = message ;
&ERROR
{&fileAlias | &MSGWINDOW} = message ;
&FATALERROR
{&fileAlias | &MSGWINDOW} = message;
message =
{ &fileAlias | stringExpression
| stringIF-ELSEexpression
| stringIFexpression }
The &CREATEFILE utility first assigns a token (&fileAlias) to represent a named file. The file name is derived from a previously defined string, a quoted string, or an IF-ELSE expression that evaluates to a string. The following example illustrates these three cases.
&CREATEFILE creates an empty file with the given name and opens the file. If the token is already bound to another open file, a warning is issued, the file is closed, and the new file is opened. If the file already exists, the version number is incremented.
The &CLOSEFILE utility closes the file bound to a given token; &OPENFILE opens the file bound to a given token. &CLOSEFILE and &OPENFILE control the number of open files. Each operating system has a limit for the number of open files. Therefore, &CLOSEFILE might be needed to free up extra file descriptors.
Files are closed in the following ways.
|
If &CREATEFILE is invoked with a token that is already bound to an open file, that file is closed before opening the new file. |
The &MESSAGE utility appends text to the file represented by the &fileAlias token, or to the message window if &MSGWINDOW is specified.
&MSGWINDOW is a special file alias that is not created, opened, or closed. The assigned expression (right side of the statement) can be one of the following:
Must correspond to a valid file that has been successfully opened. The contents of the file are appended to the target file (or message window).
Either a string or a string token.
For example:
String IF-ELSE expressions evaluate a Boolean expression and then branch to string values, for example:
As shown in this example, IF-ELSE expressions can be nested.
A string IF expression is an IF-ELSE expression without the ELSE phrase. The Boolean expression is evaluated, and if true, the THEN string is sent to the target file; if false, no string is sent, for example,
&MESSAGE &mesgs =
IF ( &&buf = "INV_BIG" )
THEN "INV_BIG buffers" ;
Neither the file alias token nor &MSGWINDOW can be part of the assigned expression.
If a fatal error is detected, input is aborted after the scanning phase.
The &WARNING, &ERROR, and &FATALERROR utilities use the same syntax as the &MESSAGE utility. These utilities can send message strings to files and to the message window in the same manner as &MESSAGE. In addition, when the assigned expression is a string IF expression, or a string IF-ELSE expression, then the associated counter (warnings, errors, or fatal errors) is incremented by 1 if any IF condition evaluates to true.