Known Problems and Solutions in Virtuoso Design Rule Driven Editing
This document describes the known issues with Virtuoso® Design Rule Driven Editing and suggests the workarounds for these issues. Each issue is identified by a Cadence Change Request (CCR) number.
Related Topics
CCR 2215672: DRD Post Edit stops checking when the number of shapes exceeds the maximum allowed
In the Post-Edit mode, when the number of shapes exceeds the maximum allowed, which is 4000, DRD stops checking and displays a message. The limit cannot be changed.
CCR 1235370: Markers created on top are not in sync with the EIP cell if you return without saving
Description: When you use Edit In Place to descend into a cell, Post-Edit mode in DRD and Virtuoso IPVS checks the area of change around the instance of the cell and places any violation markers in the parent cell even if the violation is entirely between shapes in the lower level cell. If you return to the parent cell but discard the changes you made while editing in place, the violation markers shown for the parent cell may no longer be correct.
Solution: To display the correct violations, re-check the area around the instance you descended into. If you are editing in place in order to explore what-if scenarios with no intention of keeping the changes, turn off Post-Edit mode to prevent the ghost markers that remain after you discard the edits.
CCR 1175254: DRD reports false centerToCenter minCutClassSpacing violations in some cases
Description: DRD reports false centerToCenter minCutClassSpacing violations when the technology file contains two minCutClassSpacing constraints with the following characteristics:
-
One
minCutClassSpacingconstraint is defined for one parallel run length (PRL) range (Example:'paraOverlapparameter is set to-1, which is for cuts that have a negative PRL) and is specified with thecenterToCenterparameter. -
Another
minCutClassSpacingconstraint is defined for another PRL range (Example:'paraOverlapparameter set to0.001, which is for cuts that have a positive PRL), but is not specified with thecenterToCenterparameter.
This is because DRD interprets both minCutClassSpacing constraints as centerToCenter and checks for centerToCenter even when the PRL between the two shapes in the layout is positive, causing false minCutClassSpacing violations to be reported in the layout.
Solution: Do the following in your technology file:
-
For the same cut layer, add a third
minCutClassSpacingconstraint with the'paraOverlapparameter set to0. The other parameters of this newly addedminCutClassSpacingconstraint can be the same as those of theminCutClassSpacingconstraint with'paraOverlap=-1. - Load and save your technology file.
CCR 1122625: DRD Post-Edit does not report violations for allowedSpacingRanges constraints defined in an AND constraint group
Description: In the technology file, if you define allowedSpacingRanges constraints for a layer in an AND constraint group, DRD Post-Edit does not report violations related to these constraints.
Solution: To enable DRD Post-Edit to report allowedSpacingRanges violations if they occur, do one of the following:
- Enable DRD Notify while editing the layout, or run DRD in Batch-Check mode (choose Verify – Design) on the layout after completing your edits.
-
In the technology file, add a
minSpacingconstraint definition for the same layer for which you have defined theallowedSpacingRangesconstraints. The definitions are shown in the following example:( "myConstraintGroup" nil nil 'and
spacings(
( allowedSpacingRanges "Active" 'vertical 'stepSize 0.02 (">= 0.04") )
( allowedSpacingRanges "Active" 'horizontal (">= 0.08") )
( minSpacing "Active" 0.04 )
) ;spacings
) ;myConstraintGroup
CCR 1045350: DRD does not report the required overlap value for minDirectionalOverlap violations
Description: The minDirectionalOverlap constraint specifies the required overlap in the given direction between two shapes on two different layers. DRD Post-Edit and DRD Batch-Check (choose Verify – Design in Virtuoso) modes report violations created by this constraint in the form of violation markers in the layout canvas, with corresponding entries in the Annotation Browser. However, the text descriptions of these markers do not report the required overlap value (a value of 0 is reported instead of the expected overlap value).
Solution: As a workaround, to determine the value of the required directional overlap between two overlapping shapes on two different layers, refer either to the foundry's Design Rule Manual (DRM) or to the Virtuoso Technology File associated with the process. You can use the value thus obtained to fix DRC violations by adjusting the overlap between shapes at locations where DRD reports minDirectionalOverlap violations.
CCR 1043998: DRD Post-Edit is not flagging allowedSpacingRanges violation in the hierarchical view
Description: DRD Notify and DRD Post-Edit do not flag allowedSpacingRanges constraint violations until you run the Verify – Design command on the shapes that are placed close to each other.
Solution: As a workaround, run the Verify – Design command after you edit a shape.
CCR 1043375: DRD inspection area is not covering the minClusterDistance
Description: DRD Notify or DRD Post-Edit do not flag minClusterDistance constraint violations until you run the Verify – Design command on the shapes that are placed close to each other.
Solution: As a workaround, run the Verify – Design command after editing a shape.
CCR 1042866: DRD Notify does not report minNeighboringShapesSpacing violations
Description: DRD supports the minNeighboringShapesSpacing constraint in Post-Edit and Batch-Check modes. However, it does not support this constraint in the Notify mode.
Solution: Before editing your layout, select Post-Edit and the corresponding Spacing check box in the DRD Options form. Alternatively, in the Batch Checker form (choose Verify – Design to open this form), select the Spacing check box in the Virtuoso DRD group box and run DRD in Batch-Check mode on your design.
CCR 1042403: DRD postedit is flagging minSideSpacing violation for the rectilinear shapes
Description: DRD post-edit is flagging minSideSpacing constraint violations for shapes that are not rectangular if the shortSideToLongside parameter is specified.
Solution: There is no workaround available.
CCR 1038130: DRD Notify and Post-Edit not reporting minSideSpacing violations
Description: The minSideSpacing constraint specifies the required minimum clearance (spacing) between two shapes on two different layers for the specified edge (short or long edge). Currently, Notify and Post-Edit modes do not report violations of this constraint. However, you can run DRD in Batch-Check (choose Verify – Design) mode to locate these violations.
Solution: As a workaround, you can run DRD in Batch-Check mode to locate minSideSpacing constraint violations.
CCR 1032580: Issues with DRD post-edit check for minNeighboringShapesClearance rule
Description: The minNeighboringShapesSpacing constraint specifies the minimum spacing between two shapes on the specified layer when neighboring shapes are present on another layer. Currently, the DRD Notify and DRD Post-Edit modes are not reporting violations of this constraint in the layout. However, you can run DRD in Batch-Check (choose Verify – Design) mode to locate these violations.
Solution: As a workaround, you can run DRD in Batch-Check mode to locate minNeighboringShapesSpacing constraint violations.
CCR 1009703: DRD does not report violations between shapes drawn on user-defined purposes CCR 1000182: Checker does not check the spacing between Poly:drawing and Poly:dummy
Description: DRD does not report violations between shapes drawn on layers with user-defined purposes. The following example from a technology file illustrates this limitation:
techPurposes(
;( PurposeName Purpose# Abbreviation [Attributes] )
;User-Defined Purposes
( purp1 13 pp1 )
);
techLayerPurposePriorities(
;( LayerName Purpose )
( Metal1 purp1 )
);
( minSpacing "Metal1" 0.05 'ref "M1.SP.1" 'description "Minimum M1 Space" )
where, purp1 is the user-defined purpose and Metal1:purp1 is the LPP. A minimum spacing constraint is defined for Metal1.
In the layout, if you move the shapes on LPPs Metal1:drawing and Metal1:purp1 closer to each other, DRD reports minSpacing violations between the Metal1:drawing shapes, but not between the Metal1:purp1 shapes.
Solution: As a workaround, add an attribute in the technology file definition of the user-defined purpose.
In the following example, the attribute is 'sigType:
techPurposes(
;User-Defined Purposes
;( PurposeName Purpose# Abbreviation [Attributes] )
( purp1 13 pp1 'sigType "signal" )
);
CCR 985745: Saving a technology file for the first time while Post-Edit mode and extractor are ON in Virtuoso XL might cause post-edit checking
Description: Saving a technology file for the first time in a Virtuoso session while Post-Edit mode and the extractor are enabled can cause Post-Edit checks to be performed on the areas where the extractor made reassignments. If your design contains markers, such as from a batch check run earlier, these markers may get replaced with the results of the new Post-Edit check.
Solution: Run DRD in Batch-Check mode again if any markers are overwritten.
CCR 843336: DRD performance problem — many violations, no Ctrl+c
Description: DRD is an interactive feature. Depending on the type of editing operation being performed and the number of layout objects being affected by the editing operation, DRD editing checks can become runtime or memory intensive, or both.
Solution: The default settings and behaviors listed below are provided to help increase performance:
|
Continue performing DRD checking when Maximum Shape Limit is reached |
|||
In DRD Post-Edit and Batch-Check modes, press Ctrl+c to interrupt operation. Any markers found up to that point are generated. The following message is displayed in the CIW and log file:
*WARNING* Checking was interrupted; results are incomplete.
Ctrl+c is not recognized in a replay file. To use Ctrl+c in a replay file, set the drd_ctrlc_during_replay shell environment variable. It can be set before or during a Virtuoso session.For Enforce and Notify modes, use the following shell environment variables to redefine the default threshold:
-
DRD_MAX_DYN_SHAPES: If not defined, the default is 1000 dynamic shapes. -
DRD_MAX_STATIC_SHAPES: If not defined, the default is 5000 static shapes.
For Post-Edit and Batch-Check modes, use the following shell environment variables to redefine the default threshold:
In Enforce, Notify, and Post-Edit modes, DRD stops performing a check if the limit set on the maximum number of shapes is reached. In Batch-Check mode, DRD continues to perform a check even after the limit is reached and the following message is displayed:
*WARNING* (LE-103865): For Verify Design checking, the maximum number of shapes specified (100000) for creating the DRD database has been reached.
If DRD continues to perform the check, the following message is displayed:
*WARNING* (LE-103874): DRD checking results may not be complete or correct as performed on the incomplete DRD database.
If DRD stops performing the check, the following message is displayed:
*WARNING* (LE-103875): No DRD checking is performed on the incomplete DRD database.
To force checking to continue even after the limit is reached:
-
In Enforce and Notify modes, set the
drd_check_incompleteshell environment variable. -
In Post-edit mode, set
drd_check_incomplete_posteditthe shell environment variable.
The shell environment variables can be set, modified, or unset before or during a Virtuoso session.
setShellEnvVar("envVarName=envVarValue") and unsetShellEnvVar("envVarName") commands in the CIW to set and unset the shell environment variable, respectively.CCR 221291, 140821: Stretch using stretch handle causes DRD feedback before violation occurs
Description: If you are stretching MOS devices with the stretch handles on the side opposite to the object that is in violation, warnings are displayed before the violation threshold is reached.
Solution: Using the stretch handles on the opposite side of MOS devices is not recommended when DRD is enabled.
CCR 155184: DRD enforce mode allows shorts to create with maintain connection on
Description: Pins are prevented from creating shorts when they are moved to overlap pins on different nets, but the path that is moved along with the pin is not prevented from creating a short if it overlaps a pin or path on a different net.
Solution: Do not use Enforce mode with maintain connections on.
CCR 102889: DRD has problems with commands starting in one window and ending the commands in another window
Description: When you copy objects across cellviews, post-edit markers flag violations, but other DRD editing graphics, such as arrows and halos, do not display.
Solution: Set post-edit markers to on to flag violations.
Return to top