OpenAccess to LEF Translator (oa2lef)

The OpenAccess to LEF Translator reads the technology file and designs from the OpenAccess database and produces a LEF format file. OpenAccess to LEF is available from the command line through the executable oa2lef.ex. You must provide an OpenAccess library and specify a name for the output LEF file in order to begin a translation.

Command Syntax

To run oa2lef, enter the following:

oa2lef -lef file -lib library  [Optional Arguments]
 

Use the -help or -h argument to display command-line help. The command-line arguments are described in the following table.

Required Arguments
-lef file Specifies the name of the output LEF file.
-lib library Specifies the input OpenAccess database library name. The OpenAccess database library contains the technology database and the designs represented in the technology. The library must be defined in the library definition file. The designs in this library are translated to the output LEF file.
Optional Arguments
-cells cells Space-separated list of cells to translate.
-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 oa2lef.log.
-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.
-noTech Specifies that the technology information is not output.
-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. You can browse the list of error and warning messages to determine which you want to suppress.
-templateFile file

Specifies a file containing arguments to oa2lef. 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

# oa2lef command line arguments

logFile        myoa2lef.log
noTech
noWarnings     "50015 50016"
-v Prints tool, format, and library version information.
-ver version Specifies the LEF version to write, which can be 5.3, 5.4, 5.5, 5.6, or 5.7. The default version is 5.6.

Note: If an OpenAccess database uses dataModel 1, and contains LEF version 5.7 properties, translating the database to version 5.7 produces a LEF file in the 5.7 format but with the version 5.7 syntax expressed as properties. Translating the same (dataModel 1) database to LEF version 5.6 or earlier causes a loss of the LEF 5.7 data.
-version Prints tool and format version information.
-views views Space-separated list of views to translate. Only the first view name for a particular cell is used; all others are ignored. For example:

Cell A contains view vA vB
Cell B contains view vB
Argument: -views vA vB
Output: cellA/vA cellB/ vB

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.


The following is an example of oa2lef command line syntax:

    oa2lef -lef ac36.lef -lib ac36 -cells A B -views vA vB -noTech -ver 5.4

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 LEF namespace.

Error and Warning Message Format

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. The message text can be further divided into three parts. The first part indicates what caused the message, the second indicates the consequence of the problem or condition, and the third part suggests an action you can take to remedy the problem or condition.

In addition to the three standard elements, messages can also include two optional elements. An optional filename and optional line number element are included, when available, to more precisely identify the source of a problem or condition within the source data file. When present in an error or warning message, the filename and line number correspond to the location of the last line parsed for the object, and therefore, the cause of the error or warning can occur on a line preceding the indicated line number. 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