pgssDRC
pgssDRC(
d_cellviewID
t_rulesFile
t_layerMap
t_objectMap
l_options
g_function
)
=> t / nil
Description
Launches Pegasus DRC and processes the generated shapes in accordance with the specified function. The pgssDRC SKILL function needs Pegasus license.
Arguments
|
d_cellviewID
|
Specifies the cellview to process. This must be of type maskLayout. It cannot be a Pcell variant.
|
|
t_rulesFile
|
Specifies the path to the Pegasus rules file.
|
|
t_layerMap
|
Specifies the path to the layer map file. If no layer map file is specified, that is, if it is specified as an empty string (""), the layer map file in the cell's technology library is used.
|
|
t_objectMap
|
Specifies the path to the object map file. If no object map file is specified, that is, if it is specified as an empty string (""), the object map file from the cell's technology library is used. To avoid using the default object map file, set the value to "/dev/null".
|
|
l_options
|
Specifies a disembodied property list of control option. Options specified here override what is set in the rules file. Supported values are:
control->area = list( x1:y1 x2:y2 )
control->enableColoring = t/nil
control->abortOnLayoutError = t/nil
control->excludeCells "lib1/cell1/view1 ... "
control->excludeCells "opclib/*/layout ... "
control->ruleSet = list( "rule1" "rule2" ... )
Wildcard characters are allowed in excludeCells as shown in the fifth example above. This will exclude every cell from the opclib library.
Rules listed in ruleSet must exist in the rule deck.
|
|
g_function
|
Specifies a function object which is applied to each shape one at a time. It can be a procedure name, like 'proc (note the leading quote), or a lambda value.
The procedure must take one argument which is a disembodied property list with the following members:
shape->edges = list( list(x1:y1 x2:y2) ... ) if it is an edge
shape->points = list( x1:y1 x2:y2 ... ) if it is a polygon
shape->caption
shape->checkName
|
|
|
Returned shapes are either a list of edges or a list of points based on how the rules are written. A rule does not require a caption, so you need to make sure it exists before using it.
If the function returns the symbol 'stop, Pegasus exits and no more shapes are generated. Any other value means continue processing.
|
Value Returned
|
t
|
No operational errors occur and Pegasus DRC was launched successfully.
|
|
nil
|
Pegasus DRC failed to launch due to some error. For example, it might be that the rules failed to compile.
|
Examples
Run Pegasus and dump the shapes to the CIW.
pgssDRC( cellView "rules.pvl" "rule_layer.map" "" nil lambda( (shape) println(shape) t) )
Related Topics
pvsApplyDRC
Return to top