; ============================================================================
; Copyright (C) 1986 by Xerox Corporation. All rights reserved.
; Written by Mark Ross December 5, 1986 3:06:26 pm PST
;
; The design rules contained herein are proprietary and confidential. Any
; release of these rules without the written consent of Xerox Corporation is prohibited.
;
; Command file for 2 micron design rules.
; This file assumes that the mebes file which is read in has been biased with the
; skews shown below (numbers are given in microns per side):
;
; nwell -0.5
; diff +0.75
; field --
; poly +0.25
; nimp +0.5
; pimp --
; contact -0.25
; met1 +0.5
; via --
; met2 +0.5
; pad1 --
; pad2 --
;
; ============================================================================
; ============================================================================
; The stuff for the description block goes here. I won't specify it now.
; ============================================================================
*DESCRIPTION
PRIMARY = IFU
SYSTEM = MEBES
SYSOUT = CIF
*END
; ============================================================================
; Specify the input layers coming from the tape.
; ============================================================================
*Input-Layer
nwell = CNW
nwcont = CNWC
pwcont = CPWC
ndiff = CND
pdiff = CPD
poly = CP
contact = CC
met1 = CM
via = CC2
met2 = CM2
butting = CB
pad = CG
*END
; ============================================================================
; Actual DRC follows:
; ============================================================================
*Operation
; Create all of the right "things" from the mask data
OR nwcont pwcont cdiff
OR pdiff ndiff sdiff
OR cdiff sdiff diff
AND poly ndiff ntrans
AND poly pdiff ptrans
OR ptrans ntrans trans
; Generate necessary layers
AND poly contact polcont
AND diff contact dcont
AND pdiff contact pdcont
AND ndiff contact ndcont
; Checks (listed in order of VTI design rules)
; **** Tub Rules ****
WIDTH nwell LT 4 OUTPUT errw1 1 ; VTIRule 6.1.1 (4)
EXT[h] nwell LT 12 OUTPUT errw2 1 ; VTIRule 6.1.2 (12)
; **** Diffusion Rules ****
WIDTH diff LT 2 OUTPUT errd1 2 ; VTIRule 6.3.1 (2)
INT poly diff LT 3 OUTPUT errd2 2 ; VTIRule 6.3.2 (3)
EXT[h] diff LT 3.5 OUTPUT errd3 2 ; VTIRule 6.3.3 (3.5)
EXT[o] pdiff ndiff LT 3.5 OUTPUT errd4 2 ; VTIRule 6.3.4 (3.5)
ENC[to] pdiff nwell LT 5 OUTPUT errd5 2 ; VTIRule 6.3.5 (5)
ENC ndiff nwell LT 3 OUTPUT errd6 2 ; VTIRule 6.3.6 (3)
EXT ndiff nwell LT 7 outpout errd7 2 ; VTIRule 6.3.7 (7)
WIDTH nplug LT 1 OUTPUT errd8 2 ; VTIRule 6.3.8 (1)
EXT[t] pplug nwell LT 5 OUTPUT errd9 2 ; VTIRule 6.3.9 (5)
EXT[t] pplug nplug LT 4 OUTPUT errd10 2 ; VTIRule 6.3.10 (4)
EXT psource nsource LT 12 OUTPUT errd11 2 ; VTIRule 6.3.12 (2)
ENC trans diff LT 3 OUTPUT errd12 2 ; VTIRule 6.3.18 (3)
; **** Poly Rules ****
WIDTH poly LT 2 OUTPUT errp1 3 ; VTIRule 6.4.1 (2)
EXT[h] poly LT 2.5 OUTPUT errp2 3 ; VTIRule 6.4.3 (2.5)
ENC trans poly LT 2 OUTPUT errp3 3 ; VTIRule 6.4.4 (2)
EXT[t] poly diff LT 1 OUTPUT errp4 3 ; VTIRule 6.4.5 (1)
; **** Contact Rules ****
WIDTH contact LT 2 OUTPUT errc1 4 ; VTIRule 6.5.1.1 (2)
EXT[h] contact LT 3 OUTPUT errc2 4 ; VTIRule 6.5.1.3 (3)
ENC[to] contact poly LT 1 OUTPUT errc3 4 ; VTIRule 6.5.1.4 (1)
ENC[to] contact diff LT 1 OUTPUT errc4 4 ; VTIRule 6.5.1.5 (1)
EXT[t] dcont trans LT 1.5 OUTPUT errc5 4 ; VTIRule 6.5.1.6 (1.5)
EXT[t] polcont diff LT 2 OUTPUT errc6 4 ; VTIRule 6.5.1.7 (2)
ENC contact met1 LT 1 OUTPUT errc7 4 ; VTIRule 6.5.1.8 (1)
EXT[to] ntrans pdiff LT 3 OUTPUT errc8 4 ; VTIRule 6.5.2.3 (3)
EXT[to] ptrans ndiff LT 3 OUTPUT errc9 4 ; VTIRule 6.5.2.3 (3)
; Hacked way of doing butting contacts (when no butting layer is present)
ENC pdcont dcont LT 3 OUTPUT errc10 4 ; must have (3)um of ndiff cont AND
ENC ndcont dcont LT 3 OUTPUT errc11 4 ; (3)um of pdiff
; **** Met1 Rules ****
WIDTH met1 LT 2 OUTPUT err1m1 5 ; VTIRule 6.6.1 (2)
EXT[h] met1 LT 3 OUTPUT err1m2 5 ; VTIRule 6.6.2 (3)
; **** Via Rules ****
WIDTH via LT 2 OUTPUT errv1 6 ; VTIRule 6.7.2 (2)
EXT[h] via LT 4 OUTPUT errv2 6 ; VTIRule 6.7.4 (4)
ENC[to] via met1 LT 1 OUTPUT errv3 6 ; VTIRule 6.7.5 (1)
ENC[to] via met2 LT 1 OUTPUT errv4 6 ; VTIRule 6.7.5 (1)
EXT via poly LT 2 OUTPUT errv5 6 ; VTIRule 6.7.6 (2)
ENC[to] via poly LT 3 OUTPUT errv6 6 ; VTIRule 6.7.7 (3)
EXT[to] via dcont LT 2 OUTPUT errv7 6 ; VTIRule 6.7.8 (2)
EXT[to] via polcont LT 3 OUTPUT errv8 6 ; VTIRule 6.7.9 (3)
; **** Met2 Rules ****
WIDTH met2 LT 3 OUTPUT err2m1 7 ; VTIRule 6.8.1 (3)
EXT[h] met2 LT 4 OUTPUT err2m2 7 ; VTIRule 6.8.2 (4)
; **** Misc. Checks ****
AND ntrans newll junk1 OUTPUT errmisc1 8 ; Check for bad ntrans
NOT ptrans nwell junk2 OUTPUT errmisc2 8 ; Check for bad ptrans
; EXT nplug ptrans range 80 10000 OUTPUT errsc3 8 ; Checks for well plugs
; EXT pplug ntrans range 200 10000 OUTPUT errsc3 8 ; Checks for substrate taps
*END