blob: 91d35fb456d64a3ea45c6386328722d15f0713ba [file] [log] [blame]
////////////////////////////////////////////////////////////
// DEFINE BOOLEAN LAYERS
////////////////////////////////////////////////////////////
LAYOUT USE DATABASE PRECISION YES
layer pwell 41
layer nwell 42
layer active 43
layer poly 46
layer nimplant 45
layer pimplant 44
layer contact 25
layer active_contact 48
layer poly_contact 47
layer metal1 49
layer via1 50
layer metal2 51
layer via2 61
layer metal3 62
layer glass 52
layer pad 26
//Enabling incremental connectivity for antenna rule checks
DRC Incremental Connect Yes
well = nwell OR pwell
gate = poly AND active
implant = nimplant OR pimplant
fieldpoly = poly NOT active
contactenc1 = active OR poly
contactenc = contactenc1 AND metal1
diode = contact AND active
act_poly = interact poly active
GROUP mask_check
//Well.2 Well.4
Poly.1 Poly.2 Poly.3 Poly.4 Poly.5
Active.1 Active.2 // Active.3
Contact.1 Contact.2 Contact.3 Contact.4
Contact.5 Contact.6 Metal1.1 Metal1.2 Metal1.3
//Well.1 {
//@Nwell and Pwell must not overlap
//AND nwell pwell
//}
//Well.2 {
//@Min spacing of pwell to nwell = 0.00
//EXTERNAL nwell pwell < 0.00
//}
//Well.4 {
//@Min width of nwell = 3.6
//INTERNAL nwell < 3.6
//}
Poly.1 {
@Min width of poly = 0.6
INTERNAL poly < 0.6
}
Poly.2 {
@Min spacing of gate poly = 0.9
EXTERNAL gate < 0.9
}
Poly.3 {
@Min extension of poly past active = 0.6
ENCLOSURE active poly < 0.6
}
Poly.4 {
@Minimum active enclosure of gate =0.6
ENCLOSURE poly active < 0.6
}
Poly.5 {
@Minimum spacing of poly to active = 0.3
EXTERNAL act_poly active < 0.3
}
Active.1 {
@Minimum width of active = 0.9
INTERNAL active < 0.9
}
Active.2 {
@Minimum spacing of active areas = 0.9
EXTERNAL active < 0.9
}
//Active.3 {
//@Minimum well enclosure of active = 1.8
//ENCLOSURE active well < 1.8
//}
Contact.1 {
@Minimum width of contact = 0.6
INTERNAL contact < 0.6
}
Contact.2 {
@Minimum spacing of contact = 0.9
EXTERNAL contact < 0.9
}
Contact.3 {
@Contact must be inside metal1 and active or poly
NOT contact contactenc
}
Contact.4 {
@Minimum active enclosure of contact = 0.3
ENCLOSURE contact active < 0.3
}
Contact.5 {
@Minimum poly enclosure of contact = 0.3
ENCLOSURE contact poly < 0.3
}
Contact.6 {
@Minimum spacing of contact to poly = 0.6
EXTERNAL poly contact < 0.6
}
Metal1.1 {
@Minimum width of metal1 = 0.9
INTERNAL metal1 < 0.9
}
Metal1.2 {
@Minimum spacing of metal1 = 0.9
EXTERNAL metal1 < 0.9
}
Metal1.3 {
@Metal1 must extend past contact by 0.3 on two opposite sides
RECTANGLE ENCLOSURE contact metal1
GOOD 0.00 0.3 OPPOSITE 0.00 0.3 OPPOSITE
}
Metal1.4 {
@Metal1 must extend past via1 by 0.3 on two opposite sides
RECTANGLE ENCLOSURE via1 metal1
GOOD 0.00 0.3 OPPOSITE 0.00 0.3 OPPOSITE
}
Via1.1 {
@Minimum width of via1 = 0.6
INTERNAL via1 < 0.6
}
Via1.2 {
@Minimum spacing of via1 = 0.6
EXTERNAL via1 < 0.6
}
Via1.3 {
@Via1 must be inside metal1
NOT via1 metal1
}
Metal2.1 {
@Minimum width of metal2 = 0.9
INTERNAL metal2 < 0.9
}
Metal2.2 {
@Minimum spacing of metal2 = 0.9
EXTERNAL metal2 < 0.9
}
Metal2.3 {
@Metal2 must extend past via1 by 0.3 on two opposite sides
RECTANGLE ENCLOSURE via1 metal2
GOOD 0.00 0.3 OPPOSITE 0.00 0.3 OPPOSITE
}
Metal2.4 {
@Metal2 must extend past via2 by 0.3 on two opposite sides
RECTANGLE ENCLOSURE via2 metal2
GOOD 0.00 0.3 OPPOSITE 0.00 0.3 OPPOSITE
}
Via2.1 {
@Minimum width of via2 = 0.6
INTERNAL via2 < 0.6
}
Via2.2 {
@Minimum spacing of via2 = 0.9
EXTERNAL via2 < 0.9
}
Via2.3 {
@Via2 must be inside metal2
NOT via2 metal2
}
Via2.4 {
@Via2 must be inside metal3
NOT via2 metal3
}
Metal3.1 {
@Minimum width of metal3 = 1.5
INTERNAL metal3 < 1.5
}
Metal3.2 {
@Minimum spacing of metal3 = 0.9
EXTERNAL metal3 < 0.9
}
Metal3.3 {
@Metal3 must extend past via2 by 0.6 on two opposite sides
RECTANGLE ENCLOSURE via2 metal3
GOOD 0.00 0.6 OPPOSITE 0.00 0.6 OPPOSITE
}