3
Executing Diva Verification Using SKILL Commands
In addition to using menu commands as described in Chapter 14, “Verify Menu Commands,” you can use SKILL commands and UNIX commands to run Diva verification. You use SKILL commands in the Cadence design framework II environment. When using UNIX commands, you are running Diva in batch mode. This chapter describes the commands, shows you the syntax for each command, and provides examples.
ivConcICe
ivConcICe( ?cell ?resModelData ?capModelData [?ConcICeName] [?coupling] [?accuracy] ) => t / nil
Description
Starts the ConcICe RC network reduction section of the layout verification program. Each of the arguments is a keyword preceded by a question mark (?). You must give each keyword a value, as indicated below. The ?cell, ?resModelData, and ?capModelData keywords are required, the other keywords are optional.
Arguments
Object ID of the cell to be processed.
When using the command from the CIW, you can specify the object ID as
When using the command in the no-graph mode, you can specify the object ID as
?cell dbOpenCellViewByType( "libname" "cellname" "view" nil "r" )
a A quoted string with the names of the cellviews to be recognized as resistors and the name of the property on each cellview which holds the resistance value. The cellview name and property name must exist in pairs with spaces between the cellview and property names. If all cellview and property information is based on parasitic extraction performed by Diva verification, the string can be specified by referencing the extracted view property resModelData as
?resModelData cell~>resModelData
You can specify the string directly as
?resModelData "pres r presistor res"
A quoted string with the names of the cellviews to be recognized as capacitors and the name of the property on each cellview which holds the capacitance value. The cellview name and property name must exist in pairs with spaces between the cellview and property names. If all cellview and property information is based on parasitic extraction performed by Diva verification, the string can be specified by referencing the extracted view property capModelData as
?capModelData cell~>capModelData
You can specify the string directly as
?capModelData "pcap c pcapacitor cap"
A quoted string which is the name of the cell view for the concICe view. The default name is "concice".
Set to a number which is the scale factor to be applied to the value of coupling capacitors. The default value is 1.
Set to a fixed point number, greater than zero, which is the level of accuracy desired in the resulting RC chains. The default value is 2.
Values Returned
Examples
The following example runs an RC reduction on the current cellview.
cell = geGetEditCellView()
ivConcICe( ?cell cell ?res cell~>resModelData ?capModelData
cell~>capModelData ?ConcICeName "concice" ?coupling 0.95
?accuracy 3 )
This example illustrates how the values of the options can be preset in symbols.
cell = geGetEditCellView()
rd = cell~>resModelData
cd = cell~>capModelData
name = "concice"
cf = 0.95
acc = 3
ivConcICe( ?cell cell ?res rd ?capModelData cd ?ConcICeName name
?coupling cf ?accuracy acc )
ivCreatePCells
ivCreatePCells( filename ) => t/nil
Description
This command creates parameterized versions of existing cells for the display of devices created by the device extraction commands.
Prerequisites
The technology file for the library to which the original cells belong must contain a definition of the view name being created with any desired view type. This definition must have the same value of DBUPerUU as other view names having layout view types.
Arguments
Name of a file containing the list of cells to be processed.
The contents of the file consist of one line for each cell to be processed. The format of that line is as follows:
libName cellName viewName-in viewName-out magnification
Values Returned
Examples
The following is an example of the command.
ivCreatePCells( cell_file )
The following is an example of the contents of the file.
mylib nfet symbol ivpcell 5
mylib pfet symbol ivpcell 5
mylib njfet symbol ivpcell 1
mylib resistor symbol ivpcell 1
ivDRC
ivDRC( ?cell [?area] [?echo] [?edb] [?full] [?hier] [?optimize] [?imm] [?inc] [?join] [?limitRule] [?limitRun] [?rsf] [?rulesFromUnix] [?rulesLibName] [?rulesFilePath [?set] ) => t / nil
Description
Starts the DRC section of the layout verification program. Each of the arguments is a keyword preceded by a question mark (?). You must give each keyword a value or a symbolic name set to the value.The ?cell argument is required; the other arguments are optional.
Arguments
Object ID of the cell to be processed. The cell must be opened in append mode.
When using the command from the CIW, you can specify the object ID as
When using the command in the no-graph mode, you can specify the object ID as
?cell dbOpenCellViewByType( "libname" "cellname" "view" nil "a" )
Echoes the rules as they are executed when set to t. The default is nil.
Name of the directory to be used as an ivEDB error database. Markers will be written to this database instead of the marker layer. The default value nil disables use of the IVEDB error database.
Analyzes the complete design when set to t. Set to nil to perform an incremental analysis and check only those areas that have changed since the last DRC run. The default is nil.
Performs a hierarchical analysis when set to t. Set to nil to perform a flat analysis. The default is nil.
Specifies a limit of n error markers are to be generated by any rule during the run. The rule will terminate early and processing will continue with the next rule in the rule deck. This is treated as a special form of abnormal termination.
Specifies a limit of n error markers are to be generated during the run. The run will terminate without finishing the rules in the rule deck. This is treated as a special form of abnormal termination.
Applies pattern recognition optimization to the hierarchical analysis when set to t. This option only applies if ?hier is set to t. The default is t.
Controls the treatment of missing masters wheile reading the design data. Set to t, missing masters will be reported and ignored. Set to nil, missing masters will be reported and the run aborted after all missing masters are reported. The default is nil.
Set to a fixed point number to determine the cell inclusion-exclusion limit. The default is 1,000.
Merges nets having the same name into a single net during connectivity analysis when set to t. Set to nil to prevent this merging. A warning message is displayed if two or more nets have the same name when set to the default nil.
Sets the names of the switches to be used in the conditional rules execution. If you set two or more switches, you must enclose the list in quotation marks with a space between the switch names. You must also put a space between the keyword and the opening quote. If this option is not used, no user-defined switches are set.
?set "docap"
?set "docap dores"
Name of the file containing run-specific commands. The default does not use a run-specific file.
Defines the area of the circuit to be processed by DRC. The area can be one or more rectangles with rectangular holes in them. This option takes precedence over a verifyArea command in the run-specific command file. You specify the area by using two pairs of x and y coordinates, enclosed in parentheses, that define the bottom left and top right of a rectangular area. You must put a colon between the x and y and at least one space between each pair of coordinates. For example
?area list( 10:100 5000:2500 )
You can get further syntax details from the DRC run-specific command verifyArea, which has the same format as this option. The checking halo around the area can be set to zero using the drcZeroHalo command in the run-specific file or the .cdsinit file. This option is disabled when running in hierarchical or incremental modes. For more information on zero halo, see the “Area Halo Processing”.
If you set this option to t, the program gets the DRC rules from a text file defined by the ?rulesFilePath option. If you do not define this option, or if you set it to nil, the program gets the DRC rules from the library. The ?rulesFilePath and ?rulesLibName options determine the library name and the rules file name.
If you specify this option and do not set the ?rulesFromUnix option to t, the program gets the rules from the library name defined by this option. If you do not specify this option, or if you set it to " ", and do not set the ?rulesFromUnix option, the program gets the rules from the library containing the top level cellview.
If you use this option and set the ?rulesFromUnix option to t, this option defines the name of the rules file within the Unix environment. If you use this option and do not set the ?rulesFromUnix option to t, this option defines the name of the rules file relative to the library. If you do not use this option, or if you set it to " ", the program uses the default rules name of the divaDRC.rul. To have the program get the default rules from the library you specify, you must put the rules at the library directory level.
Values Returned
Examples
The following example runs full DRC on the design in the active window and echoes the rules to the CIW.
ivDRC( ?cell geGetWindowCellView( ) ?echo t ?full t )
This example runs incremental DRC with the do_drc_connect switch to include optional rules and also uses the commands in the myrules run-specific file.
ivDRC( ?cell geGetWindowCellView( ) ?set "do_drc_connect"
?rsf "myrules" )
This example runs hierarchical DRC, uses an inclusion value of 3, enables joinable nets, and calls commands from a run-specific command file.
ivDRC( ?cell dbOpenCellViewByType( "testLib"
"myCircuit" "layout" nil "a" ) ?hier t ?inc 3 ?join t
?rsf "chip.data" )
This example shows how the values of the options can be preset in symbols.
e = t
h = nil
ivDRC( ?cell geGetWindowCellView( ) ?hier h ?echo e )
ivERC
ivERC( runDir libName cellName viewName netlist jobPriority rulesFromUnix rulesLibName rulesFilePath machine ) => t / nil
Description
Starts the ERC program of the layout verification system. All arguments are required.
Arguments
Name of the directory that you want to contain the ERC run information. If this directory does not exist, it is created and its contents are initialized with the values defined in this command. If the directory does exist, its contents are overwritten with the values defined in this command.
The name is a text string in double quotation marks. It must be either a full path name preceded by a slash (/) or a name relative to the current working directory.
A text string in quotation marks that defines the library name containing the cellview to be checked.
A text string in quotation marks that defines the cell name of the cellview to be checked.
A text string in quotation marks that defines the view name of the cellview to be checked.
Set this option to t to generate a new netlist for the cell. Otherwise, the existing netlist in the run directory is used.
An integer from 0 to 20 that defines the priority of the ERC job. The highest priority is 0.
Set this option to t to get the ERC rules from a text file defined by the rulesFilePath argument.
If you do not specify this option, or if you set it to nil, the program gets the ERC rules from the library. The rulesLibName and rulesFilePath determine the library name and rules file name.
If you set rulesFromUnix to nil, the program gets the rules from the library defined by this argument, which is a text string enclosed in quotation marks.
A text string enclosed in quotation marks defining the file name or file path name of the rules file. If you set rulesFromUnix to t, this name is relative to the UNIX file system. If you set rulesFromUnix to nil, this name is relative to the library name.
A text string in quotation marks defining the name of the remote machine that is running ERC. Set this value to nil if you are running ERC locally.
Values Returned
Example
The following example runs ERC on the fflatch extracted cellview in the library mylib. The run directory is ercrun. A new netlist is created before checking. The job priority is set to 3, and the rules file divaERC.rul is obtained from the library mylib.
ivERC( "/usr/me/mydata/ercrun" "fflatch" "extracted"
"mylib" t 3 nil "mylib" "divaERC.rul" nil )
ivExtract
ivExtract( ?cell [?echo] [?edb] [?excellName] [?extractedName] [?full] [?hier] [?imm] [?inc] [?join] [?limitRule] [?limitRun] [?macro] [?rsf] [?rulesFromUnix] [?rulesFilePath] [?rulesLibName] [?set] ) => t / nil
Description
Invokes the Extraction section of the layout verification program. The ?cell argument is required; the other arguments are optional.
Arguments
Object ID of the cell to be processed. The cell must be opened in append mode.
When using the command from the CIW, you can specify the object ID as
When using the command in the no-graph mode, you can specify the object ID as
?cell dbOpenCellViewByType("libname" "cellname" "view" nil "a")
Echoes the rules as they are executed when set to t.
Name of the directory to be used as an ivEDB error database. Markers will be written to this database instead of the marker layer. The default value nil disables use of the IVEDB error database.
Performs a macro cell extraction. Set to nil for a normal extraction when set to t.
Performs hierarchical analysis when set to t. Set to nil for a flat analysis.
Specifies a limit of n error markers are to be generated by any rule during the run. The rule will terminate early and processing will continue with the next rule in the rule deck. This is treated as a special form of abnormal termination.
Specifies a limit of n error markers are to be generated during the run. The run will terminate without finishing the rules in the rule deck. This is treated as a special form of abnormal termination.
This option is only meaningful during hierarchical analysis.
Analyzes all cells throughout the hierarchy when set to t. Set to nil, to analyze only those cells that have changed since the last extraction.
For flat extraction, the mode of execution is as if ?full is set to t, even if it is actually set to nil.
Controls the treatment of missing masters wheile reading the design data. Set to t, missing masters will be reported and ignored. Set to nil, missing masters will be reported and the run aborted after all missing masters are reported. The default is nil.
Set to a fixed point number, to determine the cell inclusion/exclusion limit. The default value is 1,000.
Merges nets having the same name into a single net during connectivity analysis when set to t. Set to nil, to prevent his merging. A warning message is issued if two or more nets have the same name.
Sets the names of the switches to be used in the conditional rules execution. You can set one or more switches. If you set two or more switches you must enclose them in quotation marks and put a space between the keyword and the opening quote.
?set "docap"
?set "docap dores"
If you do not use this option, no switches are set.
Name of the file containing run-specific commands.
If you set this option to t, the program gets the extract rules from a text file defined by the rulesFilePath argument.
If you do not specify this option, or if you set it to nil, the program gets the extract rules from the library. The ?rulesLibName and ?rulesFilePath arguments determine the library name and rules file name.
If you use this option and you do not set the ?rulesFromUnix to t, the program gets the rules from the library name defined by this option.
If you do not use this option or set it to " ", and you do not set the ?rulesFromUnix option, the program gets the rules from the default technology library.
If you use this option and set the ?rulesFromUnix option to t, this option defines the name of the rules file within the UNIX environment.
If you use this option and do not set the ?rulesFromUnix option to t, this option defines the name of the rules file relative to the library.
If you do not use this option, or set it to " ", the program uses the default rules name of the divaDRC.run.
To have the program use the default rules from the default library, you must place them at the same location as the techfile.cds file.
If the default rules are to be accessed from the library you specify, they will be assumed to be at the library directory level.
The name of the cell view for the extracted view. The default name is extracted.
The name of the cell view for the excell view. The default name is excell.
Values Returned
Examples
The following example runs an extraction on the current cellview.
ivExtract( ?cell geGetEditCellView( ) )
This example runs a macro extraction on a cellview in a library, which can be open or closed.
ivExtract( ?cell dbOpenCellViewByType( "testLib"
"testCell layout")?macro t )
This example runs a full hierarchical extraction on the current cellview and echoes the commands to the CIW.
ivExtract( ?cell geGetWindowCellView( ) ?echo t ?hier t
?full t )
This example runs a hierarchical extraction incrementally, has an inclusion value of 3, enables joinable nets, and uses commands from the run-specific file, chip.data.
ivExtract( ?cell dbOpenCellViewByType( "testLib"
"myCircuit layout" "a" )?hier t ?inc 3 ?join t
?rsf "chip.data" )
This example runs an incremental flat extraction on the current cellview only if the switch parasitics evaluates to true and uses commands from the run-specific file myrules.
ivExtract( ?cell geGetWindowCellView( ) ?set parasitics
?rsf "myrules" )
This example illustrates how the values of the options can be preset in symbols.
e = t
h = nil
ivExtract( ?cell geGetWindowCellView( ) ?hier h ?echo e )
ivLVS
ivLVS( runDir layoutLibName layoutCellName layoutViewName netlistLayout schematicLibName schematicCellName schematicViewName netlistSchematic deviceFixing noRewire termCorr useFileCorr corrFile xref jobPriority rulesFromUnix rulesLibName rulesFilePath machine switches runInBg ) => t / nil
Description
Invokes the Layout Versus Schematic (LVS) Comparison program of the layout verification system. All arguments are required.
Arguments
Name of the directory into which you want to put the LVS run information. If this directory does not exist, Diva verification creates it and initializes the contents with the values defined in this command. If the directory does exist, Diva overwrites its contents with the values defined in this command.
The name is a text string in double quotation marks. It must be either a full path name preceded by a slash (/), or a name relative to the current working directory.
A text string in quotation marks that defines the library name containing the extracted cellview to be compared.
A text string in quotation marks that defines the cell name of the extracted cellview to be compared.layoutViewName A text string in quotation marks that defines the view name of the extracted cellview to be compared.
Generates a new netlist for the layout when set to t. Otherwise, the program uses the existing layout netlist in the run directory.
A text string in quotation marks that defines the library name containing the schematic cellview to be compared.
A text string in quotation marks that defines the cell name of the schematic cellview to be compared.
A text string in quotation marks that defines the view name of the schematic cellview to be compared.
Generates a new netlist for the schematic when set to t. Otherwise, the existing schematic netlist in the run directory is used.
Applies device fixing when set to t.
Does not do automatic rewiring when set to t.
Applies terminal correspondence when set to t.
Uses a file of correspondence points when set to t.
A text string in quotation marks that defines the name of the file of correspondence points requested by the useFileCorr keyword. If you do not need a correspondence point file, you must enter an empty string (" ").
Generates a layout to schematic correspondence text file when set to t. The name given to this file is xref.out.
An integer from 0 to 20 that defines the priority of the LVS job. The highest priority is 0.
Set this option to t to get the LVS rules from a text file defined by the rulesFilePath argument.
If you do not specify this option, or if you set it to nil, the program gets the LVS rules from the library. The rulesLibName and rulesFilePath arguments determine the library name and rules file name.
If you set rulesFromUnix to nil, the program gets the rules from the library defined by this argument, which is a text string enclosed in quotation marks.
A text string enclosed in quotation marks which defines the file name or file path name of the rules file. If you set the rulesFromUnix argument to t, this name is relative to the UNIX file system. If you set rulesFromUnix to nil, this name is relative to the library name.
A text string in quotation marks defining the name of the remote machine that is running LVS. Set this value to nil if you are running LVS locally.
A text string in quotation marks containing one or more switch names, separated by spaces. The LVS rule deck can use the avSwitch() procedure to check for a switch being set to implement conditional compilation of rules. Defaults to an empty string.
A Boolean value which indicates if ivLVS should wait for the LVS job to complete before returning. A value of t means not to wait. A value of nil means ivLVS will wait until the LVS job completes before returning. The default is t.
The SKILL variable _ivLvsJobsRunning can be used instead of runInBg to wait for the LVS job to complete. The variable is the number of LVS jobs currently running.
Values Returned
ivVerify
ivVerify ( function [cell] [view] [-lib library] [-dir directory_name] [-rsf run_specific_rules_name] [-set switch_name] ... [-full] [-hier] [-echo] [-edb directory_name] [-limitRule n] [-limitRun n] [-macro] [-optimize] [-imm] [-inc] [-join] [-area] [-z] [-rl rules_lib_name] [-rf rules_file_name] [-ru unix_file_path] [-extracted] [-excell] ) => t / nil
Description
Runs DRC and extraction from the UNIX environment.
For all optional arguments, you must use a keyword preceded by a minus. You can abbreviate all the keywords to the first letter.
Arguments
Name of the cell to be processed. Do not use with restart.
Name of the cellview to be processed. Do not use with restart.
Name of the library of the cell to be processed (top level). If you don’t specify a library, the system uses the first cellview it finds that matches the specified name by scanning all libraries specified in the cds.lib file.
Used with restart to specify the name of the checkpoint directory.
Name of the file that contains run-specific commands. If you do not use this option, no run-specific file is used.
List of switches to be used in the conditional rules execution. You must enclose two or more switches in quotation marks and put a space between the keyword and the opening quote.
You must use this option if you have not used the drc? and extract? commands in the verification rules. Otherwise, no switches are set. If you have used drc? and extract?, you do not need this option.
Specifies that full analysis is to be performed for DRC. If you do not use this keyword, the program performs incremental analysis, and checks only those areas that changed since the last DRC run.
For extraction, this optional keyword is only meaningful during hierarchical analysis. If used, all cells throughout the hierarchy are analyzed. If not, only those cells that have changed since the last extraction are analyzed.
For flat extraction, a full analysis is always performed.
Performs hierarchical analysis. If not used, flat analysis is performed.
Echoes commands as they are executed when set to t.
Name of the directory to be used as an ivEDB error database. Markers will be written to this database instead of the marker layer.
Specifies a limit of n error markers are to be generated by any rule during the run. The rule will terminate early and processing will continue with the next rule in the rule deck. This is treated as a special form of abnormal termination.
Specifies a limit of n error markers are to be generated during the run. The run will terminate without finishing the rules in the rule deck. This is treated as a special form of abnormal termination.
Performs macro cell extraction. If not preset, normal extraction is performed.
Applies pattern recognition optimization to the hierarchical analysis. This option only applies if the keyword -hier is defined.
Directs Diva to report and ignore missing masters while reading the design data. Normally, Diva reports all missing masters and aborts if there are any.
A fixed point number that defines the cell inclusion-exclusion value. If not defined, the value is defaulted to zero.
Merges nets with the same name into a single net during connectivity analysis. If this option is not used, a warning message is generated when two or more nets have the same name.
Definition of a rectangular area of the circuit to be processed. The definition has this form
The definition is enclosed in quotation marks and consists of the list procedure with two pairs of coordinates in parentheses. Each value in the coordinate pairs is separated by a colon, and the two pairs are separated by a space.
The first coordinate pair defines the lower left corner of the area to be processed, and the second coordinate pair defines the upper right corner of the area to be processed.
Sets the halo to be used in area processing to zero. The halo is the distance added around the checking area to ensure all interactions and relationships that could affect the data in the area are included.
The halo distance normally used is dependent on the dimensions in the rules file and the conjuncted relationships between rules. For some rule sets, the halo can be very large and have a serious impact on run time.
This option can cause true violations to be missed and should only be used with discretion.
This option is disabled when running in hierarchical or incremental modes, and is overwritten by the drcZeroHalo command in the run-specific file.
The name of the library from which the rules are read.
If you do not use this option and you use the -rf option, the program gets the rules from the default technology library.
The path name of the rules file in the library.
The rules file can be referenced in a library only from the library directory itself, the cell directory, or the view directory.
If you do not use this option and you define the library by the -rl option, the default rules file name of divaDRC.run or divaEXT.run are referenced from the library directory level.
If you do not use this option and you also do not use the -rl and -ru options, the program gets the rules from the default rules file name in the default technology library at the location of the techfile.cds file.
The path name of the rules file to be read from the UNIX environment.
This option is not valid in conjuction with the -rl and -rf options.
The name of the cell view for the extracted view. The default name is extracted.
The name of the cell view for the excell view. The default name is excell.
Values Returned
Examples
The following are examples of the ivVerify command.
ivVerify drc mycell layout -lib mylib -echo -full -join
Runs full flat DRC on mycell layout in the library mylib. Echoes all Diva verification commands to the CIW and enables joinable nets.
ivVerify extract mycell layout -lib mylib -macro rsf myrules
Runs a macro Extraction on a design, using commands in the run-specific file myrules.
ivVerify extract mycell layout -inc 3 -set "dores docap"
Runs an incremental flat Extraction on the design, using an inclusion value of 3 only after evaluation of switches dores and docap.
Return to top