Home> >

003_outdistance : OutDistance Operation

003_outdistance : OutDistance Operation

003_outdistance : OutDistance Operation

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

This example will demonstrate how the Guardian DRC tool can be used to measure the OutDistance (spacing) of layout objects.

1. Preliminary steps

To run this example, open a Guardian DRC session and choose
File->Open
to load the project
“drc_ex09.eld”
. Then open the top cell
drc_ex09
using the
Cell->Open…
menu.

2. OutDistance command for error detection

DRC rules that require a spacing measurement can be implemented using the
OutDistance
command. Metal, contact and via spacing are all examples of common rules that use an
OutDistance
command.

OutDistance
is used to measure the admissible outer distance for regions from one single layer or a pair of different layers.

This statement has two forms of the syntax (a one-layer form and a two-layer form).

 The one-layer form syntax for this rule is:
   OutDistance: Layer= < input layer identifier >,
                Value= < value >, Type= < check type >,
                LayerR= < result layer identifier >,
                Options= (list of check options),
                ID= < error identifier >;
 The two-layer form syntax is:
   OutDistance: Layer1= < input layer identifier1 >,
                Layer2= < input layer identifier2 >,
                Value= < value >, Type= < check type >,
                LayerR1= < result layer identifier1 >,
                LayerR2= < result layer identifier2 >,
                Options = (list of check options),
                ID = < error identifier >;

in which:

  • Layer
    is the single layer name being measured
  • Layer1
    is the first layer name being measured
  • Layer2
    is the second layer name being measured
  • Value
    is the value in um of the measurement
  • Type
    can be greater than, less than, (>, <, ==, !=, …)
  • LayerR
    is the layer name in which the geometries of layer in violation of the rule would be saved
  • LayerR1
    is the layer name in which the geometries of layer1 in violation of the rule would be saved
  • LayerR2
    is the layer name in which the geometries of layer2 in violation of the rule would be saved
  • Options
    is the list of additional option to the check
  • ID
    is the error message that would be displayed and listed in the log when the error occurs

An example of the syntax used to implement this command is shown in
Figure 1
.

Some additional commands can be used to increase the selectivity of the check being performed. The option
T
, if enabled, would treat touching polygons as an error.

More options can be used. A detailed description of all options can be found in the
Guardian DRC user manual
section
2.3.9.1: Common Syntax: Parameters and Options.
Section 2.3.9.3 describes the OutDistance command. The user manual
“guardian_users1.pdf”
can be found in
lib/expert/4.14.0.R/docs/
in your installation area.

It is to be noted that some options are not allowed for certain DRC checks. For the “OutDistance” operation, the options: D and U (
Acute adjacency
and
Obtuse adjacency
) are not allowed.

3. Experimenting with the OutDistance command

Once all the example files have been downloaded and the preliminary steps described in 1.0 are completed,
complete the following steps:

  • Choose
    Verification->DRC->DRC Script panel
    . In this new window, choose
    File->Open…
    and select
    “outdistance_01.dsf”.
  • Press
    DRC->Run
  • To inspect the errors, choose
    Verification->DRC->Errors->Load errors…
    you should get a window as shown in
    Figure 2.
  • Select the last check and press the
    Load
    button located at the bottom of the window. Then choose
    Verification->DRC->Errors->First error
    to display the error in the layout, as shown in
    Figure 3
    .
  • To unload the error choose
    Verification->DRC->Errors->Unload errors
    .
  • Repeat the load error process for the first error listed in the Load error window.
    The error should display a field poly to active error.

Note that these two
toolbars
can be used to access the DRC menu command. To turn the visibility of the toolbar ON and OFF, choose
View->Toolbars
and select
DRC
and
DRC error inspection.

To understand the effect of the
T
option, open the second DRC script
“outdistance_02.dsf”
and run it on the same layout cell. You should now see DRC errors caused by the poly gate extension touching the active area, as shown in
Figure 5
. These false errors were filtered by the
T
option in the first DRC deck.

Guardian DRC can also be launched from within the Expert layout editor. Within an Expert
session follow the steps described in 1.0 to open the eld file. Then choose
Verification->DRC->DRC Script panel.
In this new window, choose
File->Open…
and select desired DRC script. The rest of the steps are identical to the Guardian DRC flow.

Output Results

Load_error_fig2.png
Outdistance_error_fig3.png
Outdistance_error_fig5.png
syntax_fig1.png
toolbar_fig4.png

Input Files

outdistance_01.dsf

//****************************************************************//
//         Example DRC rule for OUTDISTANCE check operation       //
//****************************************************************//

// Layers mapping definition section
Layers:
  act		( 43, 0	/* mapped */)
, po1           ( 46, 0	/* mapped */)
, m1            ( 49, 0	/* mapped */)
;

Merge_input: on;

//3.2  Minimum field poly spacing to active
Logicform: &f_po1=po1.DIF.act;
OutDistance: Layer1=&f_po1, Layer2=act, Limits<1 , ID="3.5  Minimum field POLY to ACTIVE";

//7.2 Metal1 minimum spacing
OutDistance: Layer = m1, Limits<0.65  , Options=(N), ID= "7.2  Metal1 Minimum spacing is 0.65um";


// END of DRC check

outdistance_02.dsf

//****************************************************************//
//         Example DRC rule for OUTDISTANCE check operation       //
//****************************************************************//

// Layers mapping definition section
Layers:
  cnt		( 25, 0	/* mapped */)
, act		( 43, 0	/* mapped */)
, pps		( 44, 0	/* mapped */)
, nps		( 45, 0	/* mapped */)
, po1           ( 46, 0	/* mapped */)
, m1            ( 49, 0	/* mapped */)
, vi1           ( 50, 0	/* mapped */)
, m2            ( 51, 0	/* mapped */)
;

Merge_input: on;

//        Rules for POLY
//3.2  Minimum field poly spacing to active
Logicform: &f_po1=po1.DIF.act;
OutDistance: Layer1=&f_po1, Layer2=act, Limits<1 , Options=(T),
 ID="3.5  Minimum field POLY to ACTIVE";


//         Rules for METAL1
//7.2  Minimum spacing
OutDistance: Layer = m1, Limits<0.65  , Options=(N), ID= "7.2  Metal1 Minimum spacing is 0.65um";


// END of DRC check

Related Articles