-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdrc_rules.drc
More file actions
45 lines (39 loc) · 1.59 KB
/
Copy pathdrc_rules.drc
File metadata and controls
45 lines (39 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# =============================================================================
# drc_rules.drc
# SKY130 DRC rule deck for KLayout (alternate format)
# =============================================================================
#
# Usage:
# klayout -b -r drc_rules.drc -rd input=layout.gds -rd output=results.xml
#
# This file checks the same 4 rules as drc_rules.lydrc using a slightly
# different syntax style. Either file can be used with run_drc.py.
# =============================================================================
# --- Load input layout and open report database ---
source($input)
report("SKY130 Mini DRC Report", $output)
# --- SKY130 layer definitions ------------------------------------------------
li1 = input(67, 20) # local interconnect
nwell = input(64, 20) # nwell
nsdm = input(93, 44) # n+ source/drain implant
mcon = input(67, 44) # metal contact
# --- Rule 1: li1 minimum width = 0.17 um ------------------------------------
li1.width(0.17.um).output(
"LI.W.1",
"li1 minimum width violation: width < 0.17 um"
)
# --- Rule 2: li1 minimum spacing = 0.17 um ----------------------------------
li1.space(0.17.um).output(
"LI.S.1",
"li1 minimum spacing violation: spacing < 0.17 um"
)
# --- Rule 3: nwell must enclose nsdm by 0.125 um ----------------------------
nsdm.enclosed(nwell, 0.125.um).output(
"NW.ENC.1",
"nwell enclosure violation: nwell enclosure of nsdm < 0.125 um"
)
# --- Rule 4: mcon minimum area = 0.2025 um^2 --------------------------------
mcon.with_area(0.0.um2, 0.2025.um2).output(
"MCON.A.1",
"mcon minimum area violation: area < 0.2025 um^2"
)