OpenAccess to SPEF Translator (oa2spef)


oa2spef is the standard translator implementation that extracts parasitic information from an OpenAccess database and creates a SPEF file. The translator runs from the command line and includes options to control how the parasitic information is extracted. This translator extracts detailed parasitic information for nets that are connected to terms in a block. It extracts reduced parasitic information for nets that are connected to instTerms only.

If you want information about using the spef2oa translator for annotating an OpenAccess database with SPEF data, see SPEF to OpenAccess Translator (spef2oa). If you want information about how SPEF data maps to the OpenAccess database, see Mapping SPEF to OpenAccess.

oa2spef Command Syntax

The oa2spef command syntax is:

    oa2spef -lib <library name> -cell <cell name> -view <view name> [Optional Arguments]

If you start the translator with the -help or -h argument, command line help displays. The command line arguments, and the command line help for those arguments, are described in the following table.

Required Arguments
-lib <library> Specifies the source library. For information about how the translator finds a library using the library definitions file, see How Translators Use Libraries.
-cell <name> Specifies the name of the cell to translate.
-view <name> Specifies the view name.
-ap <analysisPoint> |
-min <analysisPoint>
-typ <analysisPoint>
-max <analysisPoint>
Identifies either a single analysis point or the three min, typ, and max analysis points.
-spef <file> Names the SPEF output file.
Optional Arguments
-capUnit PF | FF Sets the unit for capacitance.
-compress Writes the SPEF file in compressed gzip format.
-detailedOnly Writes detailed parasitics only.
-help | -h Displays usage information.
-libDefFile filename Specifies the lib.defs file to load. The path to the lib.defs file can be a full or relative path. If this option is omitted, the default search mechanism of the DM system is used to find and load the lib.defs file.
-logFile file Specifies the log filename. If this option is omitted, the log filename defaults to oa2spef.log.
-nameMap Writes name map table.
-noInfo msgIds Suppresses the specified INFO messages. msgIds is a quoted, space separated list of numbers. Each number in the list represents the numerical portion of the ID for the message you want to suppress. None of the numbers in the list may be zero. Suppressed messages do not appear on the terminal or in the log file.
-noWarning msgIds Suppresses the specified WARNING messages. msgIds is a quoted, space separated list of numbers. Each number in the list represents the numerical portion of the ID for the message you want to suppress. None of the numbers in the list may be zero. Suppressed messages do not appear on the terminal or in the log file and are not included in the total of WARNING messages displayed in the summary.
-reducedOnly Writes reduced parasitics only.
-resUnit OHM | KOHM Sets the unit for resistance.
-templateFile <file>

Specifies a file containing arguments to oa2spef. You can specify a template file instead of entering a string of arguments on the command line.

If you specify a template file, arguments on the command line have precedence over arguments specified in the file. So, if the same argument exists in the template file and in the command line, the translator uses the argument on the command line.

Specify arguments in a template file as follows:

  • Enter arguments in the template file without a dash (-) before the argument.
  • Enter each argument and value pair on a single line.
  • Separate the argument from its value using a space or a tab.
  • Designate comment lines with a # sign as the first character in the line.

Sample Template File

# oa2spef command line arguments

logFile        myoa2spef.log
detailedOnly
resUnit        KOHM
indUnit        UH
-timeUnit PS | NS Sets the unit for time.
-indUnit HENRY | MH | UH Sets the unit for inductance.
-v Prints tool, format, and library version information.
-version Prints tool and format version information.

The -lib, -cell, -view, and -spef arguments, and at least one analysis point argument, are required. All other arguments are optional.

Note: Command line arguments specifying library, cell, and view names are interpreted according to the Native name space. See Native Name Space in the Name Mapping article of the Programmers Guide for details about the native name space.

Specifying Analysis Points

At least a single analysis point must be specified, or three analysis points can be specified, in order to read the parasitic information stored in a database. In a design, these analysis points are identified by name. You must include at least one analysis point by using the -ap argument. You specify all three by using the -min, -typ, and -max arguments. When all three analysis points are specified, the SPEF file will contain triplet values. If the analysis points you specify do not exist in the database, the translator cannot extract the parasitic data and exits with an error.

Using detailedOnly and reducedOnly Options

If the -detailedOnly argument is specified, oa2spef writes detailed parasitic information only. If the -reducedOnly argument is specified, the translator writes reduced parasitic information only. If neither argument is specified, all available parasitic information is written to the SPEF file.

Using Time, Resistance, Capacitance, and Inductance Unit Options

You can specify the time, resistance, capacitance, and inductance units that are used in the SPEF file. If you do not specify these units, defaults are used. The oa2spef default units are listed in the following table.

Parameter Default unit
time PS (picosecond)
resistance OHM
capacitance PF (picoFarad)
inductance H (Henry)

timeUnit

The -timeUnit argument specifies either PS for picosecond or NS for nanosecond. If you do not specify the time unit, the default unit is picosecond.

resUnit

The -resUnit argument specifies the unit for resistance. You can specify the unit as OHM or KOHM for kilOhm. If you do not specify a resistance unit, the default unit is OHM.

capUnit

The -capUnit argument specifies the unit for capacitance. You can specify the unit as PF for picoFarad or FF for femtoFarad. If you do not specify a capacitance unit, the default unit is picoFarad.

indUnit

The -indUnit argument speciies the unit for inductance. You can specify the unit as H or as MH for milliHenry, or as UH for microHenry. The default unit for inductance is Henry.

Handling Library Definitions File Errors

If your library definitions file has errors, or any of the referenced libraries cannot be opened, either an error message is generated and translation halted or, if the library is not required to complete the translation, translation proceeds without an error or warning. For more information about this behavior, see the Handling Errors in lib.defs Files section in the Programmers Guide chapter How Translators Use Libraries.

How the Translator Uses Namespaces

A namespace is a set of rules that define the legal characters and determine how names are interpretted. This translator uses the oaNative namespace to interpret library, cell, and view names in the command line. Other names that refer to name-mapped OpenAccess objects, such as net and module names, use the SPEF namespace.

Error and Warning Messages

Translators emit messages that report translation progress, report warnings about unusual data or conditions, or report problems with files or data that caused partial or complete translation failure. These messages are written to a log file so you can review translation status, identify error and warning conditions, and consider whether additional actions are needed.

OpenAccess translators use a standard message format to ensure comprehensive and consistent messaging. This message format consists of three elements, which are: message type keyword, message prefix, and message text.

In addition to the three standard elements, messages can also include two optional elements. An optional filename/line number element is included, when available, to more precisely identify the source of a problem or condition within the source data file. A context string is another optional element that is included, when available, to identify the type of data object that caused the message to be emitted. The following example shows a typical error message that includes the optional filename and line number element.

    ERROR: (OALEFDEF-50004): file.lef(123): A cell was not specified. Translation was terminated. 
    You must specify a cell.

One benefit of this message format is that it allows you to sort, filter, and examine only those types of messages that interest you. The keyword at the start of each message is either ERROR or WARNING and is always all uppercase. The message prefix identifies the translator family and the specific message source within the translator. The message prefix is a stable value that will not change between versions even when the message text gets updated. This makes it suitable for routine sorting and filtering.

If you seek assistance for resolving an issue related to a translator error or warning message, be sure to retain the message type keyword (ERROR or WARNING), and retain the message prefix to identify the translator family and the message source. Also make note of the filename/line number and context information if these are included in the message.

 

Return to top of page