Product Documentation
Virtuoso Layout Suite XL: Connectivity Driven Editing User Guide
Product Version IC23.1, November 2023

Match and Fix Flow

The Match and Fix Flow uses a layout pattern and an associated fixing rule that is defined in the rule deck to determine any inconsistencies that need to be fixed before the design is manufactured.

A layout pattern can be described as a layout area that is defined using one or many layers, as shown in the figure below:

The “space” area is inferred as the region within the bounding box that is not designated as “key” or “don’t care”.

A region of the target search layout is reported as “matching” the pattern if the following conditions are fulfilled:

  1. The “key” area is fully covered by the layout geometry
  2. The “space” area is fully uncovered

The list of layout patterns to be used for matching and the list of associated fixing rules are contained within a rule deck.

Therefore, a rule deck comprises the following:

The format for writing a rule deck is XML and the syntax is as shown below:

<?xml version="1.0" ?>
<MatchAndFixRules version="0.1">
<!-- Pattern definitions section -->
<!-- Match and fix rule definitions section -->
</MatchAndFixRules>
Cadence recommends that you consult with your foundry for availability of a compatible rule deck to run the Match and Fix flow.

Pattern Definition

A single-layer layout pattern can be described in the rule deck as shown below:

0 <!-- Single layer Pattern -->
1 <Pattern name="single_pattern1" version="v2">
2 <Source type="oasis">
3 <File name="pattern/ single_pattern1.oas" />
4 <BBoxPurpose>5000</BBoxPurpose>
5 <Purposes type="key">10</Purposes> <!-- Key Purpose -->
6 <Purposes type="dc">50</Purposes> <!-- Don’t care Purpose -->
7 </Source>
8 <Description>
9 Necking Pattern 1
10 </Description>
11 <Severity>1</Severity>
12 <FilteringRule type="CatenaDRC" name="minSpaceRule">
13 <DRCRuleValue type="UserUnits">90 nm</DRCRuleValue>
14 </FilteringRule>
15 </Pattern>

The description of each line in the pattern definition is given in the table below.

Line # Description

1

Pattern name (mandatory). Engine version (optional; default is v2).

2

Pattern source type (mandatory). Pattern source can be either “oasis” or “gdsii”.

3

Source file name (mandatory).

4

Bounding box purpose (mandatory).

5 – 6

Purpose mapping for “key” and “don’t care” areas.

  • “Key” purpose is mandatory
  • “Don’t care” purpose is optional

8 – 10

Detailed description (optional).

11

Severity of the pattern (optional).

12 – 14

Filtering rule (optional).

The Filtering rule is used by the Match and Fix flow to filter out and return only matching regions that also fail the given rule. Currently, the following filtering rules are supported:

Let us now consider a sample pattern definition in the rule deck for a multi-layer layout pattern.

1 <!—Multi Layer Pattern -->
2 <Pattern name="multi_pattern2" version="v2">
3 <Source type="gdsii">
4 <File name="pattern/ multi_pattern2.gds2" />
5 <BBoxPurpose>5000</BBoxPurpose>
6 <PatternLayer name="custom_M02">
7 <Purposes type="key">20</Purposes>
8 <Purposes type="dc">50</Purposes>
9 </PatternLayer>
10 <PatternLayer name="custom_M03">
11 <Purposes type="key">30</Purposes>
12 </PatternLayer>
13 </Source>
14 <Description>
Multi layer pattern 1
15 </Description>
16 <Severity>1</Severity>
17 <FilteringRule type="CatenaDRC" name="minSpaceRule">
18 <DRCRuleValue type="UserUnits">90 nm</DRCRuleValue>
19 </FilteringRule>
20 </Pattern>

Notice that the lines 6-9 and 10-13 illustrate how the individual layers of a two-layer pattern can be specified.

Related Topics

Match and Fix Rule Definition


Return to top
 ⠀
X