LVS: allow missing device classes in reference schematic

Reasoning: some devices may simply not be used in the
reference schematic.
This commit is contained in:
Matthias Koefferlein 2019-08-19 22:26:50 +02:00
parent fa4da4ba0b
commit 207e44837c
4 changed files with 534 additions and 505 deletions

View File

@ -285,9 +285,13 @@ module LVS
( nl_a, nl_b ) = _ensure_two_netlists ( nl_a, nl_b ) = _ensure_two_netlists
dc_a = a && (nl_a.device_class_by_name(a) || raise("Not a valid device class in extracted netlist: #{a}")) dc_a = a && (nl_a.device_class_by_name(a) || raise("Not a valid device class in extracted netlist: #{a}"))
dc_b = b && (nl_b.device_class_by_name(b) || raise("Not a valid device class in reference netlist: #{b}")) dc_b = b && nl_b.device_class_by_name(b)
# NOTE: a device class is allowed to be missing in the reference netlist because the
# device may simply not be used there.
if dc_b
@comparer.same_device_classes(dc_a, dc_b) @comparer.same_device_classes(dc_a, dc_b)
end
end end

View File

@ -21,6 +21,7 @@ contact = input(8, 0)
metal1 = input(9, 0) metal1 = input(9, 0)
via1 = input(10, 0) via1 = input(10, 0)
metal2 = input(11, 0) metal2 = input(11, 0)
thickox = input(12, 0)
# Bulk layer for terminal provisioning # Bulk layer for terminal provisioning
@ -30,24 +31,42 @@ bulk = polygon_layer
active_in_nwell = active & nwell active_in_nwell = active & nwell
pactive = active_in_nwell & pplus pactive = active_in_nwell & pplus
pgate = pactive & poly pactive_hv = pactive & thickox
psd = pactive - pgate pgate_hv = pactive_hv & poly
psd_hv = pactive_hv - pgate_hv
pactive_lv = pactive - thickox
pgate_lv = pactive_lv & poly
psd_lv = pactive_lv - pgate_lv
psd = pactive - poly
ntie = active_in_nwell & nplus ntie = active_in_nwell & nplus
active_outside_nwell = active - nwell active_outside_nwell = active - nwell
nactive = active_outside_nwell & nplus nactive = active_outside_nwell & nplus
ngate = nactive & poly nactive_hv = nactive & thickox
nsd = nactive - ngate ngate_hv = nactive_hv & poly
nsd_hv = nactive_hv - ngate_hv
nactive_lv = nactive - thickox
ngate_lv = nactive_lv & poly
nsd_lv = nactive_lv - ngate_lv
nsd = nactive - poly
ptie = active_outside_nwell & pplus ptie = active_outside_nwell & pplus
# Device extraction # Device extraction
# PMOS transistor device extraction # PMOS transistor device extraction
extract_devices(mos4("PM"), { "SD" => psd, "G" => pgate, "W" => nwell, extract_devices(mos4("PM"), { "SD" => psd_lv, "G" => pgate_lv, "W" => nwell,
"tS" => psd, "tD" => psd, "tG" => poly, "tW" => nwell }) "tS" => psd, "tD" => psd, "tG" => poly, "tW" => nwell })
# NMOS transistor device extraction # NMOS transistor device extraction
extract_devices(mos4("NM"), { "SD" => nsd, "G" => ngate, "W" => bulk, extract_devices(mos4("NM"), { "SD" => nsd_lv, "G" => ngate_lv, "W" => bulk,
"tS" => nsd, "tD" => nsd, "tG" => poly, "tW" => bulk })
# PMOS transistor device extraction (HV)
extract_devices(mos4("PMHV"), { "SD" => psd_hv, "G" => pgate_hv, "W" => nwell,
"tS" => psd, "tD" => psd, "tG" => poly, "tW" => nwell })
# NMOS transistor device extraction (HV)
extract_devices(mos4("NMHV"), { "SD" => nsd_hv, "G" => ngate_hv, "W" => bulk,
"tS" => nsd, "tD" => nsd, "tG" => poly, "tW" => bulk }) "tS" => nsd, "tD" => nsd, "tG" => poly, "tW" => bulk })
# Define connectivity for netlist extraction # Define connectivity for netlist extraction
@ -73,6 +92,8 @@ netlist.simplify
same_device_classes("PM", "PMOS") same_device_classes("PM", "PMOS")
same_device_classes("NM", "NMOS") same_device_classes("NM", "NMOS")
same_device_classes("PMHV", "PMOSHV")
same_device_classes("NMHV", "NMOSHV")
compare compare

View File

@ -10,49 +10,51 @@ layout(
# Mask layers # Mask layers
layer(l3 '1/0') layer(l3 '1/0')
layer(l4 '5/0') layer(l5 '5/0')
layer(l8 '8/0') layer(l14 '8/0')
layer(l11 '9/0') layer(l17 '9/0')
layer(l12 '10/0') layer(l18 '10/0')
layer(l13 '11/0') layer(l19 '11/0')
layer(l7) layer(l8)
layer(l2) layer(l4)
layer(l15)
layer(l9) layer(l9)
layer(l6) layer(l16)
layer(l10)
# Mask layer connectivity # Mask layer connectivity
connect(l3 l3 l9) connect(l3 l3 l15)
connect(l4 l4 l8) connect(l5 l5 l14)
connect(l8 l4 l8 l11 l2 l9 l6 l10) connect(l14 l5 l14 l17 l4 l15 l9 l16)
connect(l11 l8 l11 l12) connect(l17 l14 l17 l18)
connect(l12 l11 l12 l13) connect(l18 l17 l18 l19)
connect(l13 l12 l13) connect(l19 l18 l19)
connect(l7 l7) connect(l8 l8)
connect(l2 l8 l2) connect(l4 l14 l4)
connect(l9 l3 l8 l9) connect(l15 l3 l14 l15)
connect(l6 l8 l6) connect(l9 l14 l9)
connect(l10 l8 l10) connect(l16 l14 l16)
# Global nets and connectivity # Global nets and connectivity
global(l7 SUBSTRATE) global(l8 SUBSTRATE)
global(l10 SUBSTRATE) global(l16 SUBSTRATE)
# Device class section # Device class section
class(PM MOS4) class(PM MOS4)
class(NM MOS4) class(NM MOS4)
class(PMHV MOS4)
class(NMHV MOS4)
# Device abstracts section # Device abstracts section
# Device abstracts list the pin shapes of the devices. # Device abstracts list the pin shapes of the devices.
device(D$PM PM device(D$PM PM
terminal(S terminal(S
rect(l2 (-550 -750) (425 1500)) rect(l4 (-550 -750) (425 1500))
) )
terminal(G terminal(G
rect(l4 (-125 -750) (250 1500)) rect(l5 (-125 -750) (250 1500))
) )
terminal(D terminal(D
rect(l2 (125 -750) (450 1500)) rect(l4 (125 -750) (450 1500))
) )
terminal(B terminal(B
rect(l3 (-125 -750) (250 1500)) rect(l3 (-125 -750) (250 1500))
@ -60,13 +62,13 @@ layout(
) )
device(D$PM$1 PM device(D$PM$1 PM
terminal(S terminal(S
rect(l2 (-575 -750) (450 1500)) rect(l4 (-575 -750) (450 1500))
) )
terminal(G terminal(G
rect(l4 (-125 -750) (250 1500)) rect(l5 (-125 -750) (250 1500))
) )
terminal(D terminal(D
rect(l2 (125 -750) (425 1500)) rect(l4 (125 -750) (425 1500))
) )
terminal(B terminal(B
rect(l3 (-125 -750) (250 1500)) rect(l3 (-125 -750) (250 1500))
@ -74,13 +76,13 @@ layout(
) )
device(D$PM$2 PM device(D$PM$2 PM
terminal(S terminal(S
rect(l2 (-550 -750) (425 1500)) rect(l4 (-550 -750) (425 1500))
) )
terminal(G terminal(G
rect(l4 (-125 -750) (250 1500)) rect(l5 (-125 -750) (250 1500))
) )
terminal(D terminal(D
rect(l2 (125 -750) (425 1500)) rect(l4 (125 -750) (425 1500))
) )
terminal(B terminal(B
rect(l3 (-125 -750) (250 1500)) rect(l3 (-125 -750) (250 1500))
@ -88,44 +90,44 @@ layout(
) )
device(D$NM NM device(D$NM NM
terminal(S terminal(S
rect(l6 (-550 -475) (425 950)) rect(l9 (-550 -475) (425 950))
) )
terminal(G terminal(G
rect(l4 (-125 -475) (250 950)) rect(l5 (-125 -475) (250 950))
) )
terminal(D terminal(D
rect(l6 (125 -475) (450 950)) rect(l9 (125 -475) (450 950))
) )
terminal(B terminal(B
rect(l7 (-125 -475) (250 950)) rect(l8 (-125 -475) (250 950))
) )
) )
device(D$NM$1 NM device(D$NM$1 NM
terminal(S terminal(S
rect(l6 (-575 -475) (450 950)) rect(l9 (-575 -475) (450 950))
) )
terminal(G terminal(G
rect(l4 (-125 -475) (250 950)) rect(l5 (-125 -475) (250 950))
) )
terminal(D terminal(D
rect(l6 (125 -475) (425 950)) rect(l9 (125 -475) (425 950))
) )
terminal(B terminal(B
rect(l7 (-125 -475) (250 950)) rect(l8 (-125 -475) (250 950))
) )
) )
device(D$NM$2 NM device(D$NM$2 NM
terminal(S terminal(S
rect(l6 (-550 -475) (425 950)) rect(l9 (-550 -475) (425 950))
) )
terminal(G terminal(G
rect(l4 (-125 -475) (250 950)) rect(l5 (-125 -475) (250 950))
) )
terminal(D terminal(D
rect(l6 (125 -475) (425 950)) rect(l9 (125 -475) (425 950))
) )
terminal(B terminal(B
rect(l7 (-125 -475) (250 950)) rect(l8 (-125 -475) (250 950))
) )
) )
@ -138,70 +140,70 @@ layout(
# Nets with their geometries # Nets with their geometries
net(1 name(VDD) net(1 name(VDD)
rect(l8 (1110 5160) (180 180)) rect(l14 (1110 5160) (180 180))
rect(l8 (-180 920) (180 180)) rect(l14 (-180 920) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l11 (-240 -790) (300 1700)) rect(l17 (-240 -790) (300 1700))
rect(l11 (-1350 0) (2400 800)) rect(l17 (-1350 0) (2400 800))
rect(l11 (-1151 -401) (2 2)) rect(l17 (-1151 -401) (2 2))
rect(l2 (-276 -2151) (425 1500)) rect(l4 (-276 -2151) (425 1500))
rect(l2 (-400 -1500) (425 1500)) rect(l4 (-400 -1500) (425 1500))
) )
net(2 name(OUT) net(2 name(OUT)
rect(l8 (1810 1770) (180 180)) rect(l14 (1810 1770) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (-1580 3760) (180 180)) rect(l14 (-1580 3760) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (1220 920) (180 180)) rect(l14 (1220 920) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
polygon(l11 (-240 -4180) (0 1390) (490 0) (0 -300) (-190 0) (0 -1090)) polygon(l17 (-240 -4180) (0 1390) (490 0) (0 -300) (-190 0) (0 -1090))
rect(l11 (-110 1390) (300 1400)) rect(l17 (-110 1390) (300 1400))
polygon(l11 (-1890 0) (0 600) (300 0) (0 -300) (1590 0) (0 -300)) polygon(l17 (-1890 0) (0 600) (300 0) (0 -300) (1590 0) (0 -300))
rect(l11 (-141 -501) (2 2)) rect(l17 (-141 -501) (2 2))
rect(l11 (-1751 1099) (300 1400)) rect(l17 (-1751 1099) (300 1400))
rect(l11 (1100 -1700) (300 300)) rect(l17 (1100 -1700) (300 300))
rect(l11 (-300 0) (300 1400)) rect(l17 (-300 0) (300 1400))
rect(l2 (-1750 -1450) (425 1500)) rect(l4 (-1750 -1450) (425 1500))
rect(l2 (950 -1500) (425 1500)) rect(l4 (950 -1500) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(3 name(VSS) net(3 name(VSS)
rect(l8 (410 1770) (180 180)) rect(l14 (410 1770) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-240 -1300) (300 1360)) rect(l17 (-240 -1300) (300 1360))
rect(l11 (-650 -2160) (2400 800)) rect(l17 (-650 -2160) (2400 800))
rect(l11 (-1151 -401) (2 2)) rect(l17 (-1151 -401) (2 2))
rect(l6 (-951 859) (425 950)) rect(l9 (-951 859) (425 950))
) )
net(4 net(4
rect(l3 (-100 4500) (2600 3500)) rect(l3 (-100 4500) (2600 3500))
) )
net(5 name(B) net(5 name(B)
rect(l4 (1425 2860) (250 1940)) rect(l5 (1425 2860) (250 1940))
rect(l4 (-345 -950) (300 300)) rect(l5 (-345 -950) (300 300))
rect(l4 (-205 650) (250 2000)) rect(l5 (-205 650) (250 2000))
rect(l4 (-250 -2000) (250 2000)) rect(l5 (-250 -2000) (250 2000))
rect(l4 (-250 -5390) (250 1450)) rect(l5 (-250 -5390) (250 1450))
rect(l8 (-285 1050) (180 180)) rect(l14 (-285 1050) (180 180))
rect(l11 (-71 -91) (2 2)) rect(l17 (-71 -91) (2 2))
rect(l11 (-171 -151) (300 300)) rect(l17 (-171 -151) (300 300))
) )
net(6 name(A) net(6 name(A)
rect(l4 (725 2860) (250 1940)) rect(l5 (725 2860) (250 1940))
rect(l4 (-325 -1850) (300 300)) rect(l5 (-325 -1850) (300 300))
rect(l4 (-225 1550) (250 2000)) rect(l5 (-225 1550) (250 2000))
rect(l4 (-250 -2000) (250 2000)) rect(l5 (-250 -2000) (250 2000))
rect(l4 (-250 -5390) (250 1450)) rect(l5 (-250 -5390) (250 1450))
rect(l8 (-265 150) (180 180)) rect(l14 (-265 150) (180 180))
rect(l11 (-91 -91) (2 2)) rect(l17 (-91 -91) (2 2))
rect(l11 (-151 -151) (300 300)) rect(l17 (-151 -151) (300 300))
) )
net(7 name(SUBSTRATE)) net(7 name(SUBSTRATE))
net(8 net(8
rect(l6 (975 1660) (425 950)) rect(l9 (975 1660) (425 950))
rect(l6 (-400 -950) (425 950)) rect(l9 (-400 -950) (425 950))
) )
# Outgoing pins and their connections to nets # Outgoing pins and their connections to nets
@ -275,46 +277,46 @@ layout(
# Nets with their geometries # Nets with their geometries
net(1 name(VDD) net(1 name(VDD)
rect(l8 (410 6260) (180 180)) rect(l14 (410 6260) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l11 (-240 -240) (300 1400)) rect(l17 (-240 -240) (300 1400))
rect(l11 (-650 300) (1800 800)) rect(l17 (-650 300) (1800 800))
rect(l11 (-1450 -1100) (300 300)) rect(l17 (-1450 -1100) (300 300))
rect(l11 (299 399) (2 2)) rect(l17 (299 399) (2 2))
rect(l2 (-651 -2151) (425 1500)) rect(l4 (-651 -2151) (425 1500))
) )
net(2 name(OUT) net(2 name(OUT)
rect(l8 (1110 5160) (180 180)) rect(l14 (1110 5160) (180 180))
rect(l8 (-180 920) (180 180)) rect(l14 (-180 920) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (-180 -4120) (180 180)) rect(l14 (-180 -4120) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-240 -790) (300 4790)) rect(l17 (-240 -790) (300 4790))
rect(l11 (-151 -2501) (2 2)) rect(l17 (-151 -2501) (2 2))
rect(l2 (-226 1049) (425 1500)) rect(l4 (-226 1049) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(3 name(VSS) net(3 name(VSS)
rect(l8 (410 1770) (180 180)) rect(l14 (410 1770) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-240 -1300) (300 1360)) rect(l17 (-240 -1300) (300 1360))
rect(l11 (-650 -2160) (1800 800)) rect(l17 (-650 -2160) (1800 800))
rect(l11 (-851 -401) (2 2)) rect(l17 (-851 -401) (2 2))
rect(l6 (-651 859) (425 950)) rect(l9 (-651 859) (425 950))
) )
net(4 net(4
rect(l3 (-100 4500) (2000 3500)) rect(l3 (-100 4500) (2000 3500))
) )
net(5 name(IN) net(5 name(IN)
rect(l4 (725 2860) (250 1940)) rect(l5 (725 2860) (250 1940))
rect(l4 (-525 -1850) (300 300)) rect(l5 (-525 -1850) (300 300))
rect(l4 (-25 1550) (250 2000)) rect(l5 (-25 1550) (250 2000))
rect(l4 (-250 -2000) (250 2000)) rect(l5 (-250 -2000) (250 2000))
rect(l4 (-250 -5390) (250 1450)) rect(l5 (-250 -5390) (250 1450))
rect(l8 (-465 150) (180 180)) rect(l14 (-465 150) (180 180))
rect(l11 (-91 -91) (2 2)) rect(l17 (-91 -91) (2 2))
rect(l11 (-151 -151) (300 300)) rect(l17 (-151 -151) (300 300))
) )
net(6 name(SUBSTRATE)) net(6 name(SUBSTRATE))
@ -362,162 +364,162 @@ layout(
# Nets with their geometries # Nets with their geometries
net(1 net(1
rect(l8 (4710 3010) (180 180)) rect(l14 (4710 3010) (180 180))
rect(l11 (-850 -240) (610 300)) rect(l17 (-850 -240) (610 300))
rect(l2 (-2550 1800) (425 1500)) rect(l4 (-2550 1800) (425 1500))
rect(l2 (950 -1500) (425 1500)) rect(l4 (950 -1500) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(2 net(2
rect(l8 (6510 3010) (180 180)) rect(l14 (6510 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(3 net(3
rect(l8 (8310 3010) (180 180)) rect(l14 (8310 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(4 net(4
rect(l8 (10110 3010) (180 180)) rect(l14 (10110 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(5 net(5
rect(l8 (11910 3010) (180 180)) rect(l14 (11910 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(6 net(6
rect(l8 (13710 3010) (180 180)) rect(l14 (13710 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(7 net(7
rect(l8 (15510 3010) (180 180)) rect(l14 (15510 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(8 net(8
rect(l8 (17310 3010) (180 180)) rect(l14 (17310 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(9 net(9
rect(l8 (19110 3010) (180 180)) rect(l14 (19110 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(10 net(10
rect(l8 (20910 3010) (180 180)) rect(l14 (20910 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(11 name(FB) net(11 name(FB)
rect(l8 (22710 3010) (180 180)) rect(l14 (22710 3010) (180 180))
rect(l8 (-19700 720) (180 180)) rect(l14 (-19700 720) (180 180))
rect(l11 (18380 -1140) (900 300)) rect(l17 (18380 -1140) (900 300))
rect(l11 (-19530 590) (320 320)) rect(l17 (-19530 590) (320 320))
rect(l11 (17820 -320) (320 320)) rect(l17 (17820 -320) (320 320))
rect(l12 (-18400 -260) (200 200)) rect(l18 (-18400 -260) (200 200))
rect(l12 (17940 -200) (200 200)) rect(l18 (17940 -200) (200 200))
rect(l13 (-18040 -300) (17740 400)) rect(l19 (-18040 -300) (17740 400))
rect(l13 (-17921 -201) (2 2)) rect(l19 (-17921 -201) (2 2))
rect(l13 (-221 -201) (400 400)) rect(l19 (-221 -201) (400 400))
rect(l13 (17740 -400) (400 400)) rect(l19 (17740 -400) (400 400))
rect(l2 (-245 850) (425 1500)) rect(l4 (-245 850) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(12 name(VDD) net(12 name(VDD)
rect(l3 (500 4500) (1400 3500)) rect(l3 (500 4500) (1400 3500))
rect(l3 (-1900 -3500) (600 3500)) rect(l3 (-1900 -3500) (600 3500))
rect(l3 (23300 -3500) (1400 3500)) rect(l3 (23300 -3500) (1400 3500))
rect(l3 (-100 -3500) (600 3500)) rect(l3 (-100 -3500) (600 3500))
rect(l8 (-24690 -1240) (180 180)) rect(l14 (-24690 -1240) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (23220 370) (180 180)) rect(l14 (23220 370) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l11 (-21741 859) (2 2)) rect(l17 (-21741 859) (2 2))
rect(l11 (-2351 -451) (1200 800)) rect(l17 (-2351 -451) (1200 800))
rect(l11 (-750 -1450) (300 1400)) rect(l17 (-750 -1450) (300 1400))
rect(l11 (-101 -351) (2 2)) rect(l17 (-101 -351) (2 2))
rect(l11 (-1251 -401) (600 800)) rect(l17 (-1251 -401) (600 800))
rect(l11 (23400 -800) (1200 800)) rect(l17 (23400 -800) (1200 800))
rect(l11 (-750 -1450) (300 1400)) rect(l17 (-750 -1450) (300 1400))
rect(l11 (-101 -351) (2 2)) rect(l17 (-101 -351) (2 2))
rect(l11 (549 -401) (600 800)) rect(l17 (549 -401) (600 800))
rect(l2 (-23025 -2550) (425 1500)) rect(l4 (-23025 -2550) (425 1500))
rect(l2 (-400 -1500) (425 1500)) rect(l4 (-400 -1500) (425 1500))
rect(l2 (1275 -1500) (425 1500)) rect(l4 (1275 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l9 (-21975 -450) (500 1500)) rect(l15 (-21975 -450) (500 1500))
rect(l9 (22900 -1500) (500 1500)) rect(l15 (22900 -1500) (500 1500))
) )
net(13 name(OUT) net(13 name(OUT)
rect(l11 (23440 3840) (320 320)) rect(l17 (23440 3840) (320 320))
rect(l12 (-260 -260) (200 200)) rect(l18 (-260 -260) (200 200))
rect(l13 (-101 -101) (2 2)) rect(l19 (-101 -101) (2 2))
rect(l13 (-201 -201) (400 400)) rect(l19 (-201 -201) (400 400))
rect(l2 (-625 850) (425 1500)) rect(l4 (-625 850) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(14 name(ENABLE) net(14 name(ENABLE)
rect(l8 (2510 3010) (180 180)) rect(l14 (2510 3010) (180 180))
rect(l11 (-250 -250) (320 320)) rect(l17 (-250 -250) (320 320))
rect(l12 (-260 -260) (200 200)) rect(l18 (-260 -260) (200 200))
rect(l13 (-101 -101) (2 2)) rect(l19 (-101 -101) (2 2))
rect(l13 (-201 -201) (400 400)) rect(l19 (-201 -201) (400 400))
) )
net(15 name(VSS) net(15 name(VSS)
rect(l8 (1110 1610) (180 180)) rect(l14 (1110 1610) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (23220 370) (180 180)) rect(l14 (23220 370) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-21741 -391) (2 2)) rect(l17 (-21741 -391) (2 2))
rect(l11 (-1901 -401) (300 1400)) rect(l17 (-1901 -401) (300 1400))
rect(l11 (-750 -1450) (1200 800)) rect(l17 (-750 -1450) (1200 800))
rect(l11 (-551 -401) (2 2)) rect(l17 (-551 -401) (2 2))
rect(l11 (-1251 -401) (600 800)) rect(l17 (-1251 -401) (600 800))
rect(l11 (23850 -750) (300 1400)) rect(l17 (23850 -750) (300 1400))
rect(l11 (-750 -1450) (1200 800)) rect(l17 (-750 -1450) (1200 800))
rect(l11 (-551 -401) (2 2)) rect(l17 (-551 -401) (2 2))
rect(l11 (549 -401) (600 800)) rect(l17 (549 -401) (600 800))
rect(l6 (-23700 460) (425 950)) rect(l9 (-23700 460) (425 950))
rect(l6 (1975 -950) (425 950)) rect(l9 (1975 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l10 (-21975 -2210) (500 1500)) rect(l16 (-21975 -2210) (500 1500))
rect(l10 (22900 -1500) (500 1500)) rect(l16 (22900 -1500) (500 1500))
) )
# Outgoing pins and their connections to nets # Outgoing pins and their connections to nets

View File

@ -10,49 +10,51 @@ layout(
# Mask layers # Mask layers
layer(l3 '1/0') layer(l3 '1/0')
layer(l4 '5/0') layer(l5 '5/0')
layer(l8 '8/0') layer(l14 '8/0')
layer(l11 '9/0') layer(l17 '9/0')
layer(l12 '10/0') layer(l18 '10/0')
layer(l13 '11/0') layer(l19 '11/0')
layer(l7) layer(l8)
layer(l2) layer(l4)
layer(l15)
layer(l9) layer(l9)
layer(l6) layer(l16)
layer(l10)
# Mask layer connectivity # Mask layer connectivity
connect(l3 l3 l9) connect(l3 l3 l15)
connect(l4 l4 l8) connect(l5 l5 l14)
connect(l8 l4 l8 l11 l2 l9 l6 l10) connect(l14 l5 l14 l17 l4 l15 l9 l16)
connect(l11 l8 l11 l12) connect(l17 l14 l17 l18)
connect(l12 l11 l12 l13) connect(l18 l17 l18 l19)
connect(l13 l12 l13) connect(l19 l18 l19)
connect(l7 l7) connect(l8 l8)
connect(l2 l8 l2) connect(l4 l14 l4)
connect(l9 l3 l8 l9) connect(l15 l3 l14 l15)
connect(l6 l8 l6) connect(l9 l14 l9)
connect(l10 l8 l10) connect(l16 l14 l16)
# Global nets and connectivity # Global nets and connectivity
global(l7 SUBSTRATE) global(l8 SUBSTRATE)
global(l10 SUBSTRATE) global(l16 SUBSTRATE)
# Device class section # Device class section
class(PM MOS4) class(PM MOS4)
class(NM MOS4) class(NM MOS4)
class(PMHV MOS4)
class(NMHV MOS4)
# Device abstracts section # Device abstracts section
# Device abstracts list the pin shapes of the devices. # Device abstracts list the pin shapes of the devices.
device(D$PM PM device(D$PM PM
terminal(S terminal(S
rect(l2 (-550 -750) (425 1500)) rect(l4 (-550 -750) (425 1500))
) )
terminal(G terminal(G
rect(l4 (-125 -750) (250 1500)) rect(l5 (-125 -750) (250 1500))
) )
terminal(D terminal(D
rect(l2 (125 -750) (450 1500)) rect(l4 (125 -750) (450 1500))
) )
terminal(B terminal(B
rect(l3 (-125 -750) (250 1500)) rect(l3 (-125 -750) (250 1500))
@ -60,13 +62,13 @@ layout(
) )
device(D$PM$1 PM device(D$PM$1 PM
terminal(S terminal(S
rect(l2 (-575 -750) (450 1500)) rect(l4 (-575 -750) (450 1500))
) )
terminal(G terminal(G
rect(l4 (-125 -750) (250 1500)) rect(l5 (-125 -750) (250 1500))
) )
terminal(D terminal(D
rect(l2 (125 -750) (425 1500)) rect(l4 (125 -750) (425 1500))
) )
terminal(B terminal(B
rect(l3 (-125 -750) (250 1500)) rect(l3 (-125 -750) (250 1500))
@ -74,13 +76,13 @@ layout(
) )
device(D$PM$2 PM device(D$PM$2 PM
terminal(S terminal(S
rect(l2 (-550 -750) (425 1500)) rect(l4 (-550 -750) (425 1500))
) )
terminal(G terminal(G
rect(l4 (-125 -750) (250 1500)) rect(l5 (-125 -750) (250 1500))
) )
terminal(D terminal(D
rect(l2 (125 -750) (425 1500)) rect(l4 (125 -750) (425 1500))
) )
terminal(B terminal(B
rect(l3 (-125 -750) (250 1500)) rect(l3 (-125 -750) (250 1500))
@ -88,44 +90,44 @@ layout(
) )
device(D$NM NM device(D$NM NM
terminal(S terminal(S
rect(l6 (-550 -475) (425 950)) rect(l9 (-550 -475) (425 950))
) )
terminal(G terminal(G
rect(l4 (-125 -475) (250 950)) rect(l5 (-125 -475) (250 950))
) )
terminal(D terminal(D
rect(l6 (125 -475) (450 950)) rect(l9 (125 -475) (450 950))
) )
terminal(B terminal(B
rect(l7 (-125 -475) (250 950)) rect(l8 (-125 -475) (250 950))
) )
) )
device(D$NM$1 NM device(D$NM$1 NM
terminal(S terminal(S
rect(l6 (-575 -475) (450 950)) rect(l9 (-575 -475) (450 950))
) )
terminal(G terminal(G
rect(l4 (-125 -475) (250 950)) rect(l5 (-125 -475) (250 950))
) )
terminal(D terminal(D
rect(l6 (125 -475) (425 950)) rect(l9 (125 -475) (425 950))
) )
terminal(B terminal(B
rect(l7 (-125 -475) (250 950)) rect(l8 (-125 -475) (250 950))
) )
) )
device(D$NM$2 NM device(D$NM$2 NM
terminal(S terminal(S
rect(l6 (-550 -475) (425 950)) rect(l9 (-550 -475) (425 950))
) )
terminal(G terminal(G
rect(l4 (-125 -475) (250 950)) rect(l5 (-125 -475) (250 950))
) )
terminal(D terminal(D
rect(l6 (125 -475) (425 950)) rect(l9 (125 -475) (425 950))
) )
terminal(B terminal(B
rect(l7 (-125 -475) (250 950)) rect(l8 (-125 -475) (250 950))
) )
) )
@ -138,70 +140,70 @@ layout(
# Nets with their geometries # Nets with their geometries
net(1 name(VDD) net(1 name(VDD)
rect(l8 (1110 5160) (180 180)) rect(l14 (1110 5160) (180 180))
rect(l8 (-180 920) (180 180)) rect(l14 (-180 920) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l11 (-240 -790) (300 1700)) rect(l17 (-240 -790) (300 1700))
rect(l11 (-1350 0) (2400 800)) rect(l17 (-1350 0) (2400 800))
rect(l11 (-1151 -401) (2 2)) rect(l17 (-1151 -401) (2 2))
rect(l2 (-276 -2151) (425 1500)) rect(l4 (-276 -2151) (425 1500))
rect(l2 (-400 -1500) (425 1500)) rect(l4 (-400 -1500) (425 1500))
) )
net(2 name(OUT) net(2 name(OUT)
rect(l8 (1810 1770) (180 180)) rect(l14 (1810 1770) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (-1580 3760) (180 180)) rect(l14 (-1580 3760) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (1220 920) (180 180)) rect(l14 (1220 920) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
polygon(l11 (-240 -4180) (0 1390) (490 0) (0 -300) (-190 0) (0 -1090)) polygon(l17 (-240 -4180) (0 1390) (490 0) (0 -300) (-190 0) (0 -1090))
rect(l11 (-110 1390) (300 1400)) rect(l17 (-110 1390) (300 1400))
polygon(l11 (-1890 0) (0 600) (300 0) (0 -300) (1590 0) (0 -300)) polygon(l17 (-1890 0) (0 600) (300 0) (0 -300) (1590 0) (0 -300))
rect(l11 (-141 -501) (2 2)) rect(l17 (-141 -501) (2 2))
rect(l11 (-1751 1099) (300 1400)) rect(l17 (-1751 1099) (300 1400))
rect(l11 (1100 -1700) (300 300)) rect(l17 (1100 -1700) (300 300))
rect(l11 (-300 0) (300 1400)) rect(l17 (-300 0) (300 1400))
rect(l2 (-375 -1450) (425 1500)) rect(l4 (-375 -1450) (425 1500))
rect(l2 (-1800 -1500) (425 1500)) rect(l4 (-1800 -1500) (425 1500))
rect(l6 (950 -4890) (425 950)) rect(l9 (950 -4890) (425 950))
) )
net(3 name(VSS) net(3 name(VSS)
rect(l8 (410 1770) (180 180)) rect(l14 (410 1770) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-240 -1300) (300 1360)) rect(l17 (-240 -1300) (300 1360))
rect(l11 (-650 -2160) (2400 800)) rect(l17 (-650 -2160) (2400 800))
rect(l11 (-1151 -401) (2 2)) rect(l17 (-1151 -401) (2 2))
rect(l6 (-951 859) (425 950)) rect(l9 (-951 859) (425 950))
) )
net(4 net(4
rect(l3 (-100 4500) (2600 3500)) rect(l3 (-100 4500) (2600 3500))
) )
net(5 name(B) net(5 name(B)
rect(l4 (1425 2860) (250 1940)) rect(l5 (1425 2860) (250 1940))
rect(l4 (-345 -950) (300 300)) rect(l5 (-345 -950) (300 300))
rect(l4 (-205 650) (250 2000)) rect(l5 (-205 650) (250 2000))
rect(l4 (-250 -2000) (250 2000)) rect(l5 (-250 -2000) (250 2000))
rect(l4 (-250 -5390) (250 1450)) rect(l5 (-250 -5390) (250 1450))
rect(l8 (-285 1050) (180 180)) rect(l14 (-285 1050) (180 180))
rect(l11 (-71 -91) (2 2)) rect(l17 (-71 -91) (2 2))
rect(l11 (-171 -151) (300 300)) rect(l17 (-171 -151) (300 300))
) )
net(6 name(A) net(6 name(A)
rect(l4 (725 2860) (250 1940)) rect(l5 (725 2860) (250 1940))
rect(l4 (-325 -1850) (300 300)) rect(l5 (-325 -1850) (300 300))
rect(l4 (-225 1550) (250 2000)) rect(l5 (-225 1550) (250 2000))
rect(l4 (-250 -2000) (250 2000)) rect(l5 (-250 -2000) (250 2000))
rect(l4 (-250 -5390) (250 1450)) rect(l5 (-250 -5390) (250 1450))
rect(l8 (-265 150) (180 180)) rect(l14 (-265 150) (180 180))
rect(l11 (-91 -91) (2 2)) rect(l17 (-91 -91) (2 2))
rect(l11 (-151 -151) (300 300)) rect(l17 (-151 -151) (300 300))
) )
net(7 name(SUBSTRATE)) net(7 name(SUBSTRATE))
net(8 net(8
rect(l6 (975 1660) (425 950)) rect(l9 (975 1660) (425 950))
rect(l6 (-400 -950) (425 950)) rect(l9 (-400 -950) (425 950))
) )
# Outgoing pins and their connections to nets # Outgoing pins and their connections to nets
@ -275,46 +277,46 @@ layout(
# Nets with their geometries # Nets with their geometries
net(1 name(VDD) net(1 name(VDD)
rect(l8 (410 6260) (180 180)) rect(l14 (410 6260) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l11 (-240 -240) (300 1400)) rect(l17 (-240 -240) (300 1400))
rect(l11 (-650 300) (1800 800)) rect(l17 (-650 300) (1800 800))
rect(l11 (-1450 -1100) (300 300)) rect(l17 (-1450 -1100) (300 300))
rect(l11 (299 399) (2 2)) rect(l17 (299 399) (2 2))
rect(l2 (-651 -2151) (425 1500)) rect(l4 (-651 -2151) (425 1500))
) )
net(2 name(OUT) net(2 name(OUT)
rect(l8 (1110 5160) (180 180)) rect(l14 (1110 5160) (180 180))
rect(l8 (-180 920) (180 180)) rect(l14 (-180 920) (180 180))
rect(l8 (-180 -730) (180 180)) rect(l14 (-180 -730) (180 180))
rect(l8 (-180 -4120) (180 180)) rect(l14 (-180 -4120) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-240 -790) (300 4790)) rect(l17 (-240 -790) (300 4790))
rect(l11 (-151 -2501) (2 2)) rect(l17 (-151 -2501) (2 2))
rect(l2 (-226 1049) (425 1500)) rect(l4 (-226 1049) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(3 name(VSS) net(3 name(VSS)
rect(l8 (410 1770) (180 180)) rect(l14 (410 1770) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-240 -1300) (300 1360)) rect(l17 (-240 -1300) (300 1360))
rect(l11 (-650 -2160) (1800 800)) rect(l17 (-650 -2160) (1800 800))
rect(l11 (-851 -401) (2 2)) rect(l17 (-851 -401) (2 2))
rect(l6 (-651 859) (425 950)) rect(l9 (-651 859) (425 950))
) )
net(4 net(4
rect(l3 (-100 4500) (2000 3500)) rect(l3 (-100 4500) (2000 3500))
) )
net(5 name(IN) net(5 name(IN)
rect(l4 (725 2860) (250 1940)) rect(l5 (725 2860) (250 1940))
rect(l4 (-525 -1850) (300 300)) rect(l5 (-525 -1850) (300 300))
rect(l4 (-25 1550) (250 2000)) rect(l5 (-25 1550) (250 2000))
rect(l4 (-250 -2000) (250 2000)) rect(l5 (-250 -2000) (250 2000))
rect(l4 (-250 -5390) (250 1450)) rect(l5 (-250 -5390) (250 1450))
rect(l8 (-465 150) (180 180)) rect(l14 (-465 150) (180 180))
rect(l11 (-91 -91) (2 2)) rect(l17 (-91 -91) (2 2))
rect(l11 (-151 -151) (300 300)) rect(l17 (-151 -151) (300 300))
) )
net(6 name(SUBSTRATE)) net(6 name(SUBSTRATE))
@ -362,162 +364,162 @@ layout(
# Nets with their geometries # Nets with their geometries
net(1 net(1
rect(l8 (4710 3010) (180 180)) rect(l14 (4710 3010) (180 180))
rect(l11 (-850 -240) (610 300)) rect(l17 (-850 -240) (610 300))
rect(l2 (-1175 1800) (425 1500)) rect(l4 (-1175 1800) (425 1500))
rect(l2 (-1800 -1500) (425 1500)) rect(l4 (-1800 -1500) (425 1500))
rect(l6 (950 -4890) (425 950)) rect(l9 (950 -4890) (425 950))
) )
net(2 net(2
rect(l8 (6510 3010) (180 180)) rect(l14 (6510 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(3 net(3
rect(l8 (8310 3010) (180 180)) rect(l14 (8310 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(4 net(4
rect(l8 (10110 3010) (180 180)) rect(l14 (10110 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(5 net(5
rect(l8 (11910 3010) (180 180)) rect(l14 (11910 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(6 net(6
rect(l8 (13710 3010) (180 180)) rect(l14 (13710 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(7 net(7
rect(l8 (15510 3010) (180 180)) rect(l14 (15510 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(8 net(8
rect(l8 (17310 3010) (180 180)) rect(l14 (17310 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(9 net(9
rect(l8 (19110 3010) (180 180)) rect(l14 (19110 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(10 net(10
rect(l8 (20910 3010) (180 180)) rect(l14 (20910 3010) (180 180))
rect(l11 (-1140 -240) (900 300)) rect(l17 (-1140 -240) (900 300))
rect(l2 (-1275 1800) (425 1500)) rect(l4 (-1275 1800) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(11 name(FB) net(11 name(FB)
rect(l8 (22710 3010) (180 180)) rect(l14 (22710 3010) (180 180))
rect(l8 (-19700 720) (180 180)) rect(l14 (-19700 720) (180 180))
rect(l11 (18380 -1140) (900 300)) rect(l17 (18380 -1140) (900 300))
rect(l11 (-19530 590) (320 320)) rect(l17 (-19530 590) (320 320))
rect(l11 (17820 -320) (320 320)) rect(l17 (17820 -320) (320 320))
rect(l12 (-18400 -260) (200 200)) rect(l18 (-18400 -260) (200 200))
rect(l12 (17940 -200) (200 200)) rect(l18 (17940 -200) (200 200))
rect(l13 (-18040 -300) (17740 400)) rect(l19 (-18040 -300) (17740 400))
rect(l13 (-17921 -201) (2 2)) rect(l19 (-17921 -201) (2 2))
rect(l13 (-221 -201) (400 400)) rect(l19 (-221 -201) (400 400))
rect(l13 (17740 -400) (400 400)) rect(l19 (17740 -400) (400 400))
rect(l2 (-245 850) (425 1500)) rect(l4 (-245 850) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(12 name(VDD) net(12 name(VDD)
rect(l3 (500 4500) (1400 3500)) rect(l3 (500 4500) (1400 3500))
rect(l3 (-1900 -3500) (600 3500)) rect(l3 (-1900 -3500) (600 3500))
rect(l3 (23300 -3500) (1400 3500)) rect(l3 (23300 -3500) (1400 3500))
rect(l3 (-100 -3500) (600 3500)) rect(l3 (-100 -3500) (600 3500))
rect(l8 (-24690 -1240) (180 180)) rect(l14 (-24690 -1240) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (23220 370) (180 180)) rect(l14 (23220 370) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l11 (-21741 859) (2 2)) rect(l17 (-21741 859) (2 2))
rect(l11 (-2351 -451) (1200 800)) rect(l17 (-2351 -451) (1200 800))
rect(l11 (-750 -1450) (300 1400)) rect(l17 (-750 -1450) (300 1400))
rect(l11 (-101 -351) (2 2)) rect(l17 (-101 -351) (2 2))
rect(l11 (-1251 -401) (600 800)) rect(l17 (-1251 -401) (600 800))
rect(l11 (23400 -800) (1200 800)) rect(l17 (23400 -800) (1200 800))
rect(l11 (-750 -1450) (300 1400)) rect(l17 (-750 -1450) (300 1400))
rect(l11 (-101 -351) (2 2)) rect(l17 (-101 -351) (2 2))
rect(l11 (549 -401) (600 800)) rect(l17 (549 -401) (600 800))
rect(l2 (-23025 -2550) (425 1500)) rect(l4 (-23025 -2550) (425 1500))
rect(l2 (-400 -1500) (425 1500)) rect(l4 (-400 -1500) (425 1500))
rect(l2 (1275 -1500) (425 1500)) rect(l4 (1275 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l2 (1375 -1500) (425 1500)) rect(l4 (1375 -1500) (425 1500))
rect(l9 (-21975 -450) (500 1500)) rect(l15 (-21975 -450) (500 1500))
rect(l9 (22900 -1500) (500 1500)) rect(l15 (22900 -1500) (500 1500))
) )
net(13 name(OUT) net(13 name(OUT)
rect(l11 (23440 3840) (320 320)) rect(l17 (23440 3840) (320 320))
rect(l12 (-260 -260) (200 200)) rect(l18 (-260 -260) (200 200))
rect(l13 (-101 -101) (2 2)) rect(l19 (-101 -101) (2 2))
rect(l13 (-201 -201) (400 400)) rect(l19 (-201 -201) (400 400))
rect(l2 (-625 850) (425 1500)) rect(l4 (-625 850) (425 1500))
rect(l6 (-425 -4890) (425 950)) rect(l9 (-425 -4890) (425 950))
) )
net(14 name(ENABLE) net(14 name(ENABLE)
rect(l8 (2510 3010) (180 180)) rect(l14 (2510 3010) (180 180))
rect(l11 (-250 -250) (320 320)) rect(l17 (-250 -250) (320 320))
rect(l12 (-260 -260) (200 200)) rect(l18 (-260 -260) (200 200))
rect(l13 (-101 -101) (2 2)) rect(l19 (-101 -101) (2 2))
rect(l13 (-201 -201) (400 400)) rect(l19 (-201 -201) (400 400))
) )
net(15 name(VSS) net(15 name(VSS)
rect(l8 (1110 1610) (180 180)) rect(l14 (1110 1610) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l8 (23220 370) (180 180)) rect(l14 (23220 370) (180 180))
rect(l8 (-180 -1280) (180 180)) rect(l14 (-180 -1280) (180 180))
rect(l8 (-180 370) (180 180)) rect(l14 (-180 370) (180 180))
rect(l11 (-21741 -391) (2 2)) rect(l17 (-21741 -391) (2 2))
rect(l11 (-1901 -401) (300 1400)) rect(l17 (-1901 -401) (300 1400))
rect(l11 (-750 -1450) (1200 800)) rect(l17 (-750 -1450) (1200 800))
rect(l11 (-551 -401) (2 2)) rect(l17 (-551 -401) (2 2))
rect(l11 (-1251 -401) (600 800)) rect(l17 (-1251 -401) (600 800))
rect(l11 (23850 -750) (300 1400)) rect(l17 (23850 -750) (300 1400))
rect(l11 (-750 -1450) (1200 800)) rect(l17 (-750 -1450) (1200 800))
rect(l11 (-551 -401) (2 2)) rect(l17 (-551 -401) (2 2))
rect(l11 (549 -401) (600 800)) rect(l17 (549 -401) (600 800))
rect(l6 (-23700 460) (425 950)) rect(l9 (-23700 460) (425 950))
rect(l6 (1975 -950) (425 950)) rect(l9 (1975 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l6 (1375 -950) (425 950)) rect(l9 (1375 -950) (425 950))
rect(l10 (-21975 -2210) (500 1500)) rect(l16 (-21975 -2210) (500 1500))
rect(l10 (22900 -1500) (500 1500)) rect(l16 (22900 -1500) (500 1500))
) )
# Outgoing pins and their connections to nets # Outgoing pins and their connections to nets