Product Documentation
Virtuoso Design Rule Driven Editing User Guide
Product Version IC23.1, September 2023

1


Design Rule Driven Editing

The Design Rule Driven (DRD) editing tool provides real-time dynamic DRC feedback to facilitate correct-by-construction layout design.You can use DRD editing to significantly reduce the number of design rule check (DRC) violations during layout editing. However, the features provided through DRD are not a replacement for physical verification tools such as Pegasus or PVS.

DRD checks the layout against design rules defined as constraints. For a list of constraints supported by DRD editing, see DRD Constraints Support.

This chapter contains the following topics:

Turning on DRD Editing

You can turn on DRD editing by using the icons available on the Options toolbar in Virtuoso or from the DRC Options Form form.

The figure below shows the icons for the three DRD editing modes in the OFF and ON states. By default, DRD editing is OFF.

Setting Up DRC Options

The DRC Options form allows you to set up the options that are checked by DRD during layout editing. To open the DRC Options form, do one of the following.

Sign-Off Settings

DRD Configuration File

The DRC Options form lets you save and load its settings by using a configuration file. You can work with this file by using the fields near the lower edge of the DRC Options form.

To specify a configuration file, type its name and path in the Configuration file field or use the browse button to locate and select an existing file. Ensure that you have write permissions to the path and file.

To save the current settings in the DRC Options form to the specified configuration file, click the Save To button.

To load settings from the specified configuration file into the DRC Options form, click the Load From button.

Specifying Options on the DRC Toolbar

You can access the DRC options using the icons available on the DRC toolbar in Virtuoso.

You can use the DRC toolbar to select the scope of DRC checking, to run the DRD checker, to select a snapshot to run the sign-off DRC, to run sign-off checker, and to open the DRC Options form to update the settings.

DRD Operating Modes

DRD flags violations dynamically when you create or edit shapes, such as paths, pathSegs, pins, rectangles, polygons, and multi-part paths, and instances, in the following three operating modes:

For better usability, interactive checking is disabled when cursor movements are very fast or while editing designs zoomed out to a high level.

You can use DRD in the following combinations:

To change the mode, use one of the following options:

Using Enforce Mode

In Enforce mode, the pointer is constrained or halted when a spacing violation occurs.

The following figure shows an example of a violation created in Enforce mode.

For information about the constraints supported in Enforce mode, see DRD Constraints Support.

Using Notify Mode

In Notify mode, the tool provides visual feedback (text, edges, halos, or arrows) when the specified design check rules are violated. However, the pointer is not constrained or halted, allowing you to create objects with design violations. If you create an object with design violations, the visual feedback about the violation disappears. To retain an indication of the design violation, you can turn on Post Edit mode. See,Using Post Edit Mode.

The following figure shows an ex vample of a violation created in Notify mode.

You can enable Enforce and Notify modes together to use their combined behavior. For example, in the figure below, spacing constraints are enforced and the other constraints are notified.

Using Post Edit Mode

In Post Edit mode, DRD displays violation markers if creating or modifying an object in the layout results in design rule violations.

Post edit markers are displayed when data is modified, including any modification caused by a command run in the CIW; by user SKILL functions that create, modify, or delete data; and when using batch processing tools, such as the Virtuoso Custom Placer or the Virtuoso Custom Router. The following figure shows examples of post edit markers.

The Post Edit and Batch modes can be slow when too many rules are being checked in a large design. You can use Ctrl+c to interrupt the checking process. Markers found before the process is interrupted are generated.

In Post Edit mode, an incremental check is performed on an area based on the objects that are edited. For example, if you stretch a segment on the Metal1 layer, DRD verifies the change and updates the markers related to Metal1. Existing markers that are not related to the object being edited are not deleted.

You can view, analyze, and filter post edit markers on the DRC/DFM tab of the Annotation Browser. The markers are persistent objects that can be saved. See, Annotation Browser in Virtuoso Layout Suite XL User Guide.

You can search for, explain, and delete markers by using the commands on the Verify – Markers menu. See Markers in Virtuoso Layout Suite XL User Guide.

Behavior of Post Edit Mode when Editing in Place

To display post edit markers when editing in place, ensure that you do the following:

  1. In the DRC Options form:
    1. On the Interactive tab, choose Hierarchy Range as current to bottom.
    2. Select the Post Edit – Enabled check box.
  2. In the Annotation Browser, select Scope as Top Cellview Only or Top Cellview To Depth.

To understand how Post Edit mode works when editing in place, consider the following example in which an instance and three shapes are placed at the top level.

Next, select the instance and choose EditHierarchyEdit In Place and edit a shape inside the cell.

To view the post edit markers, choose Scope as Top Cellview Only in the Annotation Browser, as shown below. Select a marker in the Annotation Browser to highlight it in the canvas.

Notice that the markers displayed in the Annotation Browser are dimmed. This is because all markers are created at the top level. Consequently, you cannot select a marker by clicking it in the canvas while Edit-In-Place is active.

Related Environment Variables

The following environment variables control the behavior of Post Edit mode when editing in place:

Example of Violations Created in All Instances of a Cell

The following figure illustrates the results of editing a shape in a cell with the drdPostEditEIPAllInstances environment variable set to t. You can see below two instances of the same cell, Inst A and Inst B. When a shape in Inst A is edited in place, it creates violations in both instances of the cell, as shown.

Ignoring Violations inside Instances

When Hierarchy Range is set as current to bottom, current to stop level, or current to user level, DRD in all modes reports DRC violations between a hierarchical object, such as an instance, and other hierarchical or top-level objects, such as wires, rectangles, and vias. However, in Enforce, Notify, and Post Edit modes, DRD does not report violations that may exist inside a hierarchical object if the shapes that cause violations are drawn on physical layers. This is because the drdEditIgnoreIntraInstanceChecks environment variable is by default set to t.

In Batch mode, when Hierarchy Range is set as current to bottom, current to stop level, or current to user level, DRD reports all violations that exist inside a hierarchical object, even when drdEditIgnoreIntraInstanceChecks is set to t.

DRC violations involving derived layers found inside an instance being created, moved, copied, or stretched are reported in Enforce, Notify, and Post Edit modes.

Severity of DRD Markers

The severity type for DRD markers is Error. The severity for DRD markers is displayed in the Annotation Browser in the Severity column, as shown.

To display the Severity column, right-click a column header in the Annotation Browser and choose ColumnsSeverity.

Selecting Constraints for Verification

You can use the Filters tab of the DRC Options form to choose the constraints that you want to check for violations. The filter feature is available at both the constraint category and individual constraint levels.

To select a constraint for design verification, do one of the following:

To control the checking of constraints for a category or a individual constraint, select or deselect the check box against it.

To enable or disable the checking of all the constraint categories at one go, click the S column header next to Constraint Category.

To enable or disable the checking of all the selected constraints at one go, click the column headers that indicate the different supported modes. The E, N, PE, and B columns indicate the Enforce, Notify, Post Edit, and Batch modes, respectively.

Selecting Layers for Verification

The Filters tab of the DRC Options form lets you choose the layers that you want to check for violations. When you filter the layers, only those violations that involve shapes on the selected layers are displayed. You can select the layers from the three layer categories provided, that is, Routing, Device, and Derived. The filter feature is available at both the layer category and individual layer levels.

If you select the Palette check box, the layer filter options are disabled. In this case, you can control the checking of layers based on the layer visibility in Palette.

To select a layer for design verification, do one of the following:

To enable or disable the checking of shapes and objects on a layer or layer category, select or deselect the check box against it.

To enable or disable the checking of all the three layer categories at one go, click the S column header next to Layer Category.

To enable or disable the checking of all the selected layers at one go, click the S column header next to Layer.

Managing Interactive Display Options

The various Display options available on the Interactive tab work with DRD Enforce and DRD Notify modes:

To enable an option, ensure that the corresponding check box is selected and specify the required value.

Viewing Sign-off Violations in the Annotation Browser

Sign-off violations are displayed in the Annotation Browser in the Signoff DRC tab of the Annotation Browser.

You can view the cells and their violations in the Annotation Browser. You can select the scope to display markers by selecting the options in the Scope field. You can also zoom to the selected marker. In the browser pane, you can specify the highlight state and color used to draw markers in the design.

Performing Color Checks

The MPT Checks options available on the Interactive and Batch tabs enable you to perform color checks on a Multi-Patterning Technology (MPT) design with DRD. These checks are divided into the following two categories:

Color Constraints Checks

The MPT Checks drop-down menu lets you perform the checks for color constraints in different DRD modes. This drop-down list provides the following four options:

While checking color constraints, you can select the Consider Gray Shapes check box to report violations for all gray shapes. This option is available only in the MPT Checks On and MPT Checks Only modes.

Color-Related Flow Checks

The color-related flow checks are described below. These checks are independent of the MPT Checks drop-down menu settings.

Using the Annotation Browser to View Color Check Violations

Color violations are displayed in the Annotation Browser under tool category drdEdit.

Viewing Color Shorts

The Annotation Browser lists the color shorts between shapes on different masks under diffMaskShortNotAllowed.

Viewing Uncolored Shapes

The Annotation Browser lists the uncolored (gray) shapes drawn on layers that support multiple masks under uncolored.

Viewing Color-Unlocked Shapes

The Annotation Browser lists the color-unlocked shapes on a layer under unLocked.

See Virtuoso Multi-Patterning Technology User Guide.

Related Environment Variables

The following environment variables can be used to set various color-related options in DRD:

DRD Editing and Blockage Objects

A blockage object is a polygonal object that outlines illegal placement and/or routing areas for applicable types of objects in a given cellview. For example, a routing blockage is defined as an area where no interconnect objects may be placed on the specified layer.

If an interconnect object (path, via, or other basic shape) is created or edited on a layer to overlap blockage of the same layer, DRD editing violations are reported depending on the DRD editing settings (display of graphical feedback in Notify and Post Edit modes or adjustment of the interactive drag point in Enforce mode). The violation text message is “<type> blockage”, where “type” is one of the blockage types: routing, placement, wiring, fill, slot, pin, and placement halo. DRD editing does not consider blockage types “feedthru” and “screen”.

When a blockage object is near, contained within, or overlapping an interconnect object (path, via or other basic shape), violations are flagged only with post edit markers. DRD does not attempt to interactively flag with warnings (in Notify mode), nor attempt to adjust the drag point, nor move the non-blockage objects already placed (in Enforce mode). For example, if a path exists, and a routing blockage is created to overlap it, the violations are flagged with post edit markers by DRD editing if enabled.

When you use the Create, Move, Copy, Stretch or other edit commands on a blockage object, the markers are also only post edit if enabled. However, when you create design objects, all the three DRD modes are applied based on DRD editing settings.

Using DRD Editing in VLS XL and VLS EXL

The VLS EXL environments are connectivity and constraint driven, where the design is checked for short and open violations and for speciality routing constraints. DRD connectivity awareness is driven by the layout extractor. We therefore recommend that you run extraction when initially loading the design. The DRD modes use the XL extractor to assign connectivity to unassigned shapes when Create Wire, Stretch, Reshape, and Point to Point commands are run. To extract the design, choose Connectivity – Update – Extract Layout.

See Connectivity Extraction and Extract Layout in Virtuoso Layout Suite XL User Guide.

When DRD Enforce mode is enabled, assisted routing commands, such as point-to-point routing, guided routing, and finish wire, create routing after validating the commands based on the design rule checks.

See Using Assisted Routing Commands in Virtuoso Interactive and Assisted Routing User Guide.

Batch-Check Mode

You can run DRD in Batch mode either on the entire design or on a specified area in the design. This feature is available only in VLS EXL modes.

To run DRD in Batch mode, do one of the following.

For information about running DRD in Batch mode on read-only cellviews, see drdBatchCheck and drdEditEnableBatchCheckOnReadOnlyDesign.

Verifying Selected Objects

After selecting one or more objects in the layout, you can run a DRD check to verify if DRC violations exist between the selected objects and between the selected and the neighboring objects.

To verify selected objects, select one or more objects in the layout and choose VerifySelection. You can verify up to 25 objects at a time.

This capability is available only in VLS EXL modes.

The figure below shows the violations that exist between the selected objects and their neighboring objects.

Choose EditUndo if you need to remove the violation markers found by VerifySelection.

You can also verify objects by using the drdVerifySelSet SKILL function.

Verifying Nets

The Verify DRC command enables you to check for DRC violations on a net or a set of nets. All shapes for the selected nets under the current hierarchy are checked for violations. To check for violations between the shapes on the selected nets and the shapes down the hierarchy, you can change the Hierarchy Range appropriately on the Batch tab of the DRC Options form.

The Verify DRC command is independent of the Scope options specified in the DRC Options form. That is, it is run for the selected nets on the entire cellview.

To run Verify DRC on a net, do the following:

You can view, analyze, and filter the violation markers of net verification on the DRC/DFM tab of the Annotation Browser.

For a quick overview of the feature, see Verifying Nets in DRD.

Return to top
 ⠀
X