Product Documentation
OpenAccess oaScan User Guide
Product Version 22.60-p022, January 2023

1


Using oaScan

oaScan is an unlicensed application that scans the contents of a library, checks for inconsistencies in the OpenAccess design, technology, and DMData databases, and optionally repair the inconsistencies and save the databases.

Inconsistencies are more common with older versions of OpenAccess, such as those released earlier than April 2008. oaScan can be used to upgrade inconsistent data to current quality standards and is maintained on an ongoing basis so that OpenAccess users can continuously monitor the integrity of their data.

Recommended Methodology

Cadence recommends that you

Some users might want to run oaScan from the Virtuoso design environment itself. Although this is not a recommended approach, a sample SKILL script for running oaScan from Virtuoso can also be found on Cadence Online Support.

oaScan Setup

oaScan is supplied with a wrapper script that can be called from

 oa_home/bin/oaScan

No additional setup or configuration is necessary if oaScan is started using the wrapper script. See Appendix B, “Running OpenAccess Executables Standalone,” for additional information about configuring your environment to use the oaScan wrapper script.

How oaScan Locates Libraries

The oaScan application does not use the cds.lib library definitions file to locate libraries. By default, oaScan scans a specified library located in the current working directory, but you can use the -libPath option to specify the full path to a library directory.

oaScan does not open reference libraries, and therefore, does not bind reference libraries. If a database in a specified library references a database in another library, the referenced library is not scanned. Reference libraries can be scanned separately in any order. oaScan also does not bind technology databases nor incremental technology database references. Databases are processed one at a time. When processing is complete, the database is purged from memory and the next is opened. This keeps the oaScan virtual memory footprint as small as possible.

oaScan verifies that the library directory contains a .oalib file. This prevents processing directories as cellviews if an incorrect directory is specified in error. oaScan has legacy support for directories that do not contain a .oalib file. To enable legacy support, specify the -forceLibPath option. See the oaScan options in the Usage Quick Reference section for more information.

Usage Quick Reference

oaScan runs from a terminal command line. The command line prototype for running oaScan is:

 oaScan -lib libraryName [ options ... ]

Where libraryName is the name of the library to check.

oaScan Arguments

The -lib option is mandatory. All other arguments are optional.

-lib libraryName

Name of the library to scan.

If -libPath is not specified, oaScan attempts to open the library at ./libraryName.

-libPath path

Complete path to the library directory.

If not specified, oaScan tries to open the library at ./libraryName/.

This option does not replace -lib. Both -lib and this option are required if the library is not contained in the current directory.

-cell cellName

Name of the cell to process.

If not specified, all of the cells in the library are processed.

-view viewName

Name of the view to process under the cell specified by the -cell option or for all the cells in the library if -cell is not specified.

If not specified, all views of the cell or cells are processed.

-viewType viewType

  

Scans only databases of the specified view type.

Valid view types are: maskLayout, netlist, oaHierDesign, schematic, schematicSymbol

If not specified, databases of all view types are processed.

-dbType databaseType

  

Scans only databases of this database type. Valid types are:

  • Design: Layout, schematic, symbol, and abstract database files
  • Tech: Technology databases
  • DMData: data.dm files

If not specified, databases of all types are processed.

-dataModel version

  

OpenAccess data model to be considered by oaScan while processing databases. If this option is not used, data model 6 is used by default.

You can open and scan data model 5 or a lower version of the database when data model 5 is used with this option. oaScan saves such databases as data model 5 or lower after repair.

If a database is data model 6 and oaScan is using data model 5, the database is scanned if the data model policies of the database allow access, otherwise oaScan skips the processing of the database.

-repair

Repairs the inconsistencies found (both Errors and Warnings) and saves the updated database. If not specified, databases are only scanned for inconsistencies.

To repair inconsistencies, you must have write access to the library. It is good practice to retain a separate copy of the original library until the scan and repair process is complete.

-fixWarnings

This argument is deprecated. -repair now repairs issues of severity Warning.

-verbose

Logs oaScan progress showing a summary for all processed designs instead of only those that have non-empty scan results.

-forceLibPath

Enables use of a library directory that does not contain a .oalib file.

If not specified, oaScan issues an error if you specify a library directory that does not contain a .oalib file.

-noWarnings

Suppresses the output of warning messages in scan mode. This option cannot be used with -repair.

-libLevelOnly

Processes only files contained in the library directory. You cannot specify -libLevelOnly and -cellLevelOnly together.

When specified on its own, all database files at the library level are processed (for example, tech.db and data.dm).

To limit the process to just the technology database or just the library-level data.dm, specify the following:

-libLevelOnly -dbType Tech

-libLevelOnly -dbType DMData

-cellLevelOnly

Processes only cell-level files, such as data.dm without descending into any cellviews.

-cellLevelOnly requires -cell to be specified. You cannot specify -cellLevelOnly together with either
-libLevelOnly or -viewType.

-ignoreFile fileName

  

Skips the cells or cellviews specified in the given text file. Each line of the text file is of the format "cellName [viewName]".

-reportFreeSpace size

  

List files where fragmented free space is more than the specified size in MB.

-recoveryFiles

Scans any auto-save and critical-save recovery database files that exist for the design.

This argument applies only for designs of type Design.

-logFile fileName

The name of the log file.

If not specified, output is saved in a file called oaScan.log.

-templateFile

A file containing other oaScan options. You can specify a template file instead of entering a string of options on the command line.

-h | -help

Prints to the terminal the oaScan command line syntax and options.

-v | -version

Prints to the terminal the oaScan version information.

Checking and Repairing Inconsistencies

oaScan processes design, technology, and DMData databases to detect, report, and repair inconsistencies. Messages are written to a log file to report the types of inconsistencies or conditions found during processing. The messages describe the actions taken or the actions needed to repair the data. Appendix A, “Log File Messages” lists the messages that can be written to the log file.

To check for inconsistencies in the design, technology, and DMData databases, and to repair the inconsistencies that are found, follow these steps:

  1. Check the library using scan mode by omitting the -repair option.
    This step requires only read access to the library. After completing the scan, search the log files for lines containing the words ERROR SCAN. Such lines indicate inconsistencies in a cellview that need to be repaired.
    Other issues found in scan-only mode produce messages that begin with the word ERROR, but do not contain the word SCAN. Such issues indicate problems reading cellviews or other processing issues that need to be addressed before the scan results can be considered complete.
    Data inconsistencies of lesser severity are indicated by lines with the words WARNING SCAN. Repairing such issues is optional, but highly recommended.
  2. If inconsistencies are found and reported in the log file, ensure that the library has write-access, and run oaScan with the -repair option. -repair repairs both Errors and Warnings.
    It is good practice to retain a copy of the original library until the scan and repair process is completed.
  3. Sometimes, messages that start with the word PATCHED are reported in the log file in scan and repair mode. If such messages are reported, further steps are required to complete the repair. See Appendix A, “Log File Messages” for detailed instructions.
    If messages that start with the word ERROR are reported in the log file in scan and repair mode, work with your Cadence representative to report this to Cadence.

Return Values

oaScan uses a return value to communicate to the calling process the result of the operation. A return value of 0 means that no errors were encountered, and a nonzero value means that errors were encountered. Interpretation of the return values depends on the mode in which oaScan ran. A nonzero return value has different meanings dependent on whether oaScan is used in repair mode. The following table explains the meanings of the return values dependent on the mode of operation.

Mode Return Value Interpretation

Scan only

0

No errors were encountered and no data inconsistencies detected. Inconsistencies of severity WARNING may have been detected.

nonzero

Either inconsistencies were detected or errors encountered. Errors and inconsistencies are reported in the log file. Lines in the log file that begin with ERROR SCAN indicate that data inconsistencies were detected. Lines that begin with ERROR, but without the word SCAN, indicate that a problem occurred while running oaScan.

Scan and repair

0

No errors were encountered, and any necessary repairs were successful. Some repairs might be patch repairs, which require further user action. Check the log file for lines that begin with the word PATCHED REPAIR, note the message ID, and see Appendix A for instructions.

nonzero

Errors were detected and reported in the log file with lines that begin with the word ERROR.


Return to top
 ⠀
X