Home> >

005_select_overlap : Select Operation With OVERLAP Option

005_select_overlap : Select Operation With OVERLAP Option

005_select_overlap : Select Operation With OVERLAP Option

Minimum Required Version
: Expert 4.14.0.R, Guardian 4.14.0.R

Guardian DRC contains a SELECT statement that can be used to identify layout objects for a particular design rule check.
The SELECT statement has many different forms; each signified by a different relational options. In this example,
the OVERLAP relational option is demonstrated with the SELECT operation.

Loading the Example Circuit and DRC Script

Open Expert, load the example circuit in the Expert project select_overlap.eld, and open the sample layout cell named
DFF.
This sample layout contains a D-Flip Flop circuit which will be used to show the operation of the SELECT command
with the OVERLAP option. Next, the DRC script containing the appropriate rule set must be loaded by selecting
the Expert menu
Verification->DRC->DRC Script Panel.
From the script panel, select
File->Open
and browse to the DRC rule set for this example, named
select_overlap.dsf.

Syntax

The syntax for the SELECT command with relation=OVERLAP can be seen in the example DRC script and
is also reproduced below:

   SELECT: Relation=OVERLAP,
          [Options=([[Touch-][,C][,NOT]
                    [,Nodes < range >]
                    [,Shapes < range >]),]
           Layer1=< layer1 identifier >,
           Layer2=< layer2 identifier >,
           LayerR=< result layer identifier >;
 

This command creates shapes on LayerR of Layer1 that overlap a region from Layer2. The
Touch-
option can be used to exclude selection in the case where the shapes only touch externally. Using the options
Nodes
or
Shapes
with a specified range will only select Layer1 shapes that match that range condition. For example:
Options=(Shapes > 2)
will select any Layer1 region that overlaps more than 2 Layer2 regions. Another option setting shown above is
Options=(C)
, in which the selection operation will be based on electrical connectivity information. Using
Options=(NOT)
will perform the selection operation if the conditions of the select command are not met.

In this example the SELECT command with relation=OVERLAP is used to check for a DRC rule that specifies that CONTACT
and VIA geometries cannot overlap. The scratch layer “cont_via_olap” is generated using the SELECT command, and
is flagged as an error in the error database by using the
COPY
command, which will copy the “cont_via_olap” shapes to
ID=”text”
, which contains the rule name or description.

The “cont_via_olap” scratch layer is written back to the layout in this example deck. To prevent any scratch
layers from being written to the layout, the command:

update_layout:new=yes;

can be changed to

update_layout:new=no.

DRC Output

To run the example DRC script, select the menu item
DRC->Run
from the DRC script panel with the
select_overlap.dsf
script loaded. Once the DRC is complete, return to the Expert window containing the layout and select
Verification->DRC->Errors->Load Errors.
This will open the error window containing all errors found by the DRC script. As seen in
Figure1
, there are two errors for CONTACT overlapping VIA.

By selecting the first error and clicking on the “Load” button in the error window and selecting the Expert menu item
Verification->DRC->Errors->First Error
the layout view will be taken to the first violation as seen in
Figure2
, which shows a CONTACT shape and VIA shape partially overlapping each other. Selecting
Verification->DRC->Errors->Next Error
will move the layout view to the second violation as seen in
Figure3.
In this case, the CONTACT shape and VIA shape are coincident with each other.

Output Results

cont_via_olap1.png
cont_via_olap2.png
errors.png

Input Files

select_overlap.dsf

/////////////////////////////////////
//       EXAMPLE DRC SCRIPT        //
/////////////////////////////////////
Layers:
    CONTACT		(25, 0)
,   N_WELL		(42, 0)
,   ACTIVE		(43, 0)
,   P_PLUS_SELECT	(44, 0)
,   N_PLUS_SELECT	(45, 0)
,   POLY		(46, 0)
,   METAL1		(49, 0)
,   VIA			(50, 0)
,   METAL2		(51, 0)
;
update_layout:new=yes;


//Create "cont_via_olap" layer
Select: Relation=OVERLAP, Layer1=CONTACT, Layer2=VIA, LayerR=cont_via_olap;

//Flag error for any contact and via overalp
Copy: Layer=cont_via_olap, ID="Contact and Via may not overlap";

Related Articles