[Consider merging] Some refactoring of L2N and LVSDB readers for more future compatibility

This commit is contained in:
Matthias Koefferlein
2022-08-07 00:24:05 +02:00
parent 9d36b3c71a
commit 0083021220
12 changed files with 2651 additions and 177 deletions
+452
View File
@@ -0,0 +1,452 @@
#%l2n-klayout
W(RINGO)
U(0.001)
L($3)
L($9)
L($4)
L($5)
L($6)
L($10)
L($7)
L($8)
L($11)
L($1)
L($2)
C($3 $3 $9 $5)
C($9 $3)
C($4 $4 $6 $1 $2)
C($5 $3 $5 $6)
C($6 $4 $5 $6 $10 $7)
C($10 $6)
C($7 $6 $7 $8)
C($8 $7 $8 $11)
C($11 $8)
C($1 $4 $1)
C($2 $4 $2)
D(D$PMOS PMOS
kk(1 "hello" jj(1 5 7)) # invalid
T(S
R($1 -650 -475 -125 475)
)
T(G
R($3 -125 -475 125 475)
)
kk # invalid
T(D
R($1 125 -475 675 475)
)
kk ( 1 "hello" jj 2.5 * (1 5 "hello") ) # invalid
)
D(D$PMOS$1 PMOS
T(S
R($1 -675 -475 -125 475)
)
T(G
R($3 -125 -475 125 475)
)
T(D
R($1 125 -475 650 475)
)
)
D(D$NMOS NMOS
T(S
R($2 -650 -475 -125 475)
)
T(G
R($3 -125 -475 125 475)
)
T(D
R($2 125 -475 675 475)
)
)
D(D$NMOS$1 NMOS
T(S
R($2 -675 -475 -125 475)
)
T(G
R($3 -125 -475 125 475)
)
T(D
R($2 125 -475 650 475)
)
)
X(INV2
kk # invalid
N(1 I(NIN)
kk # invalid
R($3 -525 -250 -275 2250)
R($3 -1700 1620 -400 1980)
R($3 -525 -800 -275 800)
R($3 -525 2000 -275 3600)
R($9 -801 1799 -799 1801)
R($5 -1630 1690 -1410 1910)
kk # invalid
)
N(2
R($3 275 -250 525 2250)
R($3 220 820 580 1180)
R($3 275 2000 525 3600)
R($3 275 -800 525 800)
R($4 -910 2490 -690 2710)
R($4 -910 2890 -690 3110)
R($4 -910 -310 -690 -90)
R($4 -910 90 -690 310)
R($5 290 890 510 1110)
R($6 -800 820 580 1180)
R($6 -980 -420 -620 2420)
R($6 -980 2420 -620 3180)
R($6 -980 -380 -620 380)
R($1 -1050 2325 -525 3275)
R($2 -1050 -475 -525 475)
)
N(3 I(NOUT)
R($4 690 2890 910 3110)
R($4 690 2490 910 2710)
R($4 690 90 910 310)
R($4 690 -310 910 -90)
Q($6 800 20 * 380 940 * * 1620 620 * * 2420 980 * * 1980 1300 * * 20)
R($6 620 2420 980 3180)
R($6 620 -380 980 380)
R($10 799 1799 801 1801)
R($1 525 2325 1050 3275)
R($2 525 -475 1050 475)
)
kk # invalid
N(4
R($4 -110 -310 110 -90)
R($4 -110 90 110 310)
R($4 -110 90 110 310)
R($4 -110 -310 110 -90)
R($6 -180 -380 180 380)
R($6 -180 -380 180 380)
R($7 -125 -325 125 -75)
R($7 -125 75 125 325)
R($8 -1400 -450 1400 450)
R($2 -275 -475 275 475)
)
N(5
R($4 -110 2490 110 2710)
R($4 -110 2890 110 3110)
R($4 -110 2890 110 3110)
R($4 -110 2490 110 2710)
R($6 -180 2420 180 3180)
R($6 -180 2420 180 3180)
R($7 -125 2475 125 2725)
R($7 -125 2875 125 3125)
R($8 -1400 2350 1400 3250)
R($1 -275 2325 275 3275)
)
kk # invalid
P(1 I(IN))
P(2)
P(3 I(OUT) kk)
P(4)
P(5)
D(1 D$PMOS
Y(-400 2800)
E(L 0.25)
E(W 0.95)
E(AS 0.49875)
E(AD 0.26125)
E(PS 2.95)
E(PD 1.5)
T(S 2)
T(G 1)
T(D 5)
kk # invalid
)
D(2 D$PMOS$1
Y(400 2800)
E(L 0.25)
E(W 0.95)
E(AS 0.26125)
E(AD 0.49875)
E(PS 1.5)
E(PD 2.95)
T(S 5)
T(G 2)
T(D 3)
)
D(3 D$NMOS
Y(-400 0)
E(L 0.25)
E(W 0.95)
E(AS 0.49875)
E(AD 0.26125)
E(PS 2.95)
E(PD 1.5)
T(S 2)
T(G 1)
T(D 4)
)
D(4 D$NMOS$1
Y(400 0)
E(L 0.25)
E(W 0.95)
E(AS 0.26125)
E(AD 0.49875)
E(PS 1.5)
E(PD 2.95)
T(S 4)
T(G 2)
T(D 3)
)
)
X(RINGO
N(1 I(FB)
kk # invalid
R($4 22850 2490 23070 2710)
R($4 22850 2890 23070 3110)
R($4 22850 -310 23070 -90)
R($4 22850 90 23070 310)
R($6 -1700 1620 -1340 1980)
R($7 -1645 1675 -1395 1925)
R($7 22835 1675 23085 1925)
R($8 -1720 1600 23160 2000)
R($11 -1 1799 1 1801)
)
N(2 I(VSS)
R($4 2530 -310 2750 -90)
R($4 2530 90 2750 310)
R($4 2530 90 2750 310)
R($4 2530 -310 2750 -90)
R($4 -110 -310 110 -90)
R($4 -110 90 110 310)
R($4 -110 90 110 310)
R($4 -110 -310 110 -90)
R($4 5170 -310 5390 -90)
R($4 5170 90 5390 310)
R($4 5170 90 5390 310)
R($4 5170 -310 5390 -90)
R($4 7810 -310 8030 -90)
R($4 7810 90 8030 310)
R($4 7810 90 8030 310)
R($4 7810 -310 8030 -90)
R($4 10450 -310 10670 -90)
R($4 10450 90 10670 310)
R($4 10450 90 10670 310)
R($4 10450 -310 10670 -90)
R($4 13090 -310 13310 -90)
R($4 13090 90 13310 310)
R($4 13090 90 13310 310)
R($4 13090 -310 13310 -90)
R($4 15730 -310 15950 -90)
R($4 15730 90 15950 310)
R($4 15730 90 15950 310)
R($4 15730 -310 15950 -90)
R($4 18370 -310 18590 -90)
R($4 18370 90 18590 310)
R($4 18370 90 18590 310)
R($4 18370 -310 18590 -90)
R($4 21010 -310 21230 -90)
R($4 21010 90 21230 310)
R($4 21010 90 21230 310)
R($4 21010 -310 21230 -90)
R($4 23650 -310 23870 -90)
R($4 23650 90 23870 310)
R($4 23650 90 23870 310)
R($4 23650 -310 23870 -90)
R($6 2460 -380 2820 380)
R($6 2460 -380 2820 380)
R($6 -180 -380 180 380)
R($6 -180 -380 180 380)
R($6 5100 -380 5460 380)
R($6 5100 -380 5460 380)
R($6 7740 -380 8100 380)
R($6 7740 -380 8100 380)
R($6 10380 -380 10740 380)
R($6 10380 -380 10740 380)
R($6 13020 -380 13380 380)
R($6 13020 -380 13380 380)
R($6 15660 -380 16020 380)
R($6 15660 -380 16020 380)
R($6 18300 -380 18660 380)
R($6 18300 -380 18660 380)
R($6 20940 -380 21300 380)
kk # invalid
R($6 20940 -380 21300 380)
R($6 23580 -380 23940 380)
R($6 23580 -380 23940 380)
R($11 -1 -1 1 1)
)
N(3 I(VDD)
R($4 2530 2490 2750 2710)
R($4 2530 2890 2750 3110)
R($4 2530 2890 2750 3110)
R($4 2530 2490 2750 2710)
R($4 -110 2490 110 2710)
R($4 -110 2890 110 3110)
R($4 -110 2890 110 3110)
R($4 -110 2490 110 2710)
R($4 5170 2490 5390 2710)
R($4 5170 2890 5390 3110)
R($4 5170 2890 5390 3110)
R($4 5170 2490 5390 2710)
R($4 7810 2490 8030 2710)
R($4 7810 2890 8030 3110)
R($4 7810 2890 8030 3110)
R($4 7810 2490 8030 2710)
R($4 10450 2490 10670 2710)
R($4 10450 2890 10670 3110)
R($4 10450 2890 10670 3110)
R($4 10450 2490 10670 2710)
R($4 13090 2490 13310 2710)
R($4 13090 2890 13310 3110)
R($4 13090 2890 13310 3110)
R($4 13090 2490 13310 2710)
R($4 15730 2490 15950 2710)
R($4 15730 2890 15950 3110)
R($4 15730 2890 15950 3110)
R($4 15730 2490 15950 2710)
R($4 18370 2490 18590 2710)
R($4 18370 2890 18590 3110)
R($4 18370 2890 18590 3110)
R($4 18370 2490 18590 2710)
R($4 21010 2490 21230 2710)
R($4 21010 2890 21230 3110)
R($4 21010 2890 21230 3110)
R($4 21010 2490 21230 2710)
R($4 23650 2490 23870 2710)
R($4 23650 2890 23870 3110)
R($4 23650 2890 23870 3110)
R($4 23650 2490 23870 2710)
R($6 2460 2420 2820 3180)
R($6 2460 2420 2820 3180)
R($6 -180 2420 180 3180)
R($6 -180 2420 180 3180)
R($6 5100 2420 5460 3180)
R($6 5100 2420 5460 3180)
R($6 7740 2420 8100 3180)
R($6 7740 2420 8100 3180)
R($6 10380 2420 10740 3180)
R($6 10380 2420 10740 3180)
R($6 13020 2420 13380 3180)
R($6 13020 2420 13380 3180)
R($6 15660 2420 16020 3180)
R($6 15660 2420 16020 3180)
R($6 18300 2420 18660 3180)
R($6 18300 2420 18660 3180)
R($6 20940 2420 21300 3180)
R($6 20940 2420 21300 3180)
R($6 23580 2420 23940 3180)
R($6 23580 2420 23940 3180)
R($11 -1 2799 1 2801)
)
N(4
R($4 690 2890 910 3110)
R($4 690 2490 910 2710)
R($4 690 90 910 310)
R($4 690 -310 910 -90)
)
N(5
R($4 21810 2890 22030 3110)
R($4 21810 2490 22030 2710)
R($4 21810 90 22030 310)
R($4 21810 -310 22030 -90)
)
N(6
R($4 19170 2890 19390 3110)
R($4 19170 2490 19390 2710)
R($4 19170 90 19390 310)
R($4 19170 -310 19390 -90)
)
N(7
R($4 16530 2890 16750 3110)
R($4 16530 2490 16750 2710)
R($4 16530 90 16750 310)
R($4 16530 -310 16750 -90)
)
N(8
R($4 13890 2890 14110 3110)
R($4 13890 2490 14110 2710)
R($4 13890 90 14110 310)
R($4 13890 -310 14110 -90)
)
N(9
R($4 11250 2890 11470 3110)
R($4 11250 2490 11470 2710)
R($4 11250 90 11470 310)
R($4 11250 -310 11470 -90)
)
N(10
R($4 8610 2890 8830 3110)
R($4 8610 2490 8830 2710)
R($4 8610 90 8830 310)
R($4 8610 -310 8830 -90)
)
N(11
R($4 5970 2890 6190 3110)
R($4 5970 2490 6190 2710)
R($4 5970 90 6190 310)
R($4 5970 -310 6190 -90)
)
N(12
R($4 3330 2890 3550 3110)
R($4 3330 2490 3550 2710)
R($4 3330 90 3550 310)
R($4 3330 -310 3550 -90)
kk # invalid
)
X(1 INV2 Y(23760 0)
kk # invalid
P(0 5)
P(1 1)
P(3 2)
P(4 3)
kk # invalid
)
X(2 INV2 Y(0 0)
P(0 1)
P(2 4)
P(3 2)
P(4 3)
)
X(3 INV2 Y(2640 0)
P(0 4)
P(2 12)
P(3 2)
P(4 3)
)
X(4 INV2 Y(5280 0)
P(0 12)
P(2 11)
P(3 2)
P(4 3)
)
X(5 INV2 Y(7920 0)
P(0 11)
P(2 10)
P(3 2)
P(4 3)
)
X(6 INV2 Y(10560 0)
P(0 10)
P(2 9)
P(3 2)
P(4 3)
)
X(7 INV2 Y(13200 0)
P(0 9)
P(2 8)
P(3 2)
P(4 3)
)
X(8 INV2 Y(15840 0)
P(0 8)
P(2 7)
P(3 2)
P(4 3)
)
X(9 INV2 Y(18480 0)
P(0 7)
P(2 6)
P(3 2)
P(4 3)
)
X(10 INV2 Y(21120 0)
P(0 6)
P(2 5)
P(3 2)
P(4 3)
)
)
+487
View File
@@ -0,0 +1,487 @@
#%l2n-klayout
top(RINGO)
unit(0.001)
# Layer section
# This section lists the mask layers (drawing or derived) and their connections.
# Mask layers
layer($3)
layer($9)
layer($4)
layer($5)
layer($6)
layer($10)
layer($7)
layer($8)
layer($11)
layer($1)
layer($2)
# Mask layer connectivity
connect($3 $3 $9 $5)
connect($9 $3)
connect($4 $4 $6 $1 $2)
connect($5 $3 $5 $6)
connect($6 $4 $5 $6 $10 $7)
connect($10 $6)
connect($7 $6 $7 $8)
connect($8 $7 $8 $11)
connect($11 $8)
connect($1 $4 $1)
connect($2 $4 $2)
# Device class section
class(PMOS ''
param(L 1 0)
param(W 1 0)
param(AS 1 0)
param(AD 1 0)
param(PS 1 0)
param(PD 1 0)
terminal(S)
terminal(G)
terminal(D)
)
class(NMOS ''
param(L 1 0)
param(W 1 0)
param(AS 1 0)
param(AD 1 0)
param(PS 1 0)
param(PD 1 0)
terminal(S)
terminal(G)
terminal(D)
)
# Device abstracts section
# Device abstracts list the pin shapes of the devices.
device(D$PMOS PMOS
terminal(S
rect($1 (-650 -475) (525 950))
)
terminal(G
rect($3 (-125 -475) (250 950))
)
terminal(D
rect($1 (125 -475) (550 950))
)
)
device(D$PMOS$1 PMOS
terminal(S
rect($1 (-675 -475) (550 950))
)
terminal(G
rect($3 (-125 -475) (250 950))
)
terminal(D
rect($1 (125 -475) (525 950))
)
)
device(D$NMOS NMOS
terminal(S
rect($2 (-650 -475) (525 950))
)
terminal(G
rect($3 (-125 -475) (250 950))
)
terminal(D
rect($2 (125 -475) (550 950))
)
)
device(D$NMOS$1 NMOS
terminal(S
rect($2 (-675 -475) (550 950))
)
terminal(G
rect($3 (-125 -475) (250 950))
)
terminal(D
rect($2 (125 -475) (525 950))
)
)
# Circuit section
# Circuits are the hierarchical building blocks of the netlist.
circuit(INV2
# Nets with their geometries
net(1 name(NIN)
rect($3 (-525 -250) (250 2500))
rect($3 (-1425 -630) (1300 360))
rect($3 (-125 -2780) (250 1600))
rect($3 (-250 1200) (250 1600))
rect($9 (-526 -1801) (2 2))
rect($5 (-831 -111) (220 220))
)
net(2
rect($3 (275 -250) (250 2500))
rect($3 (-305 -1430) (360 360))
rect($3 (-305 820) (250 1600))
rect($3 (-250 -4400) (250 1600))
rect($4 (-1435 1690) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -3420) (220 220))
rect($4 (-220 180) (220 220))
rect($5 (980 580) (220 220))
rect($6 (-1310 -290) (1380 360))
rect($6 (-1560 -1600) (360 2840))
rect($6 (-360 0) (360 760))
rect($6 (-360 -3560) (360 760))
rect($1 (-430 1945) (525 950))
rect($2 (-525 -3750) (525 950))
)
net(3 name(NOUT)
rect($4 (690 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
polygon($6 (-110 110) (0 360) (140 0) (0 1240) (-320 0) (0 800) (360 0) (0 -440) (320 0) (0 -1960))
rect($6 (-680 2400) (360 760))
rect($6 (-360 -3560) (360 760))
rect($10 (-181 1419) (2 2))
rect($1 (-276 524) (525 950))
rect($2 (-525 -3750) (525 950))
)
net(4
rect($4 (-110 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($6 (-290 -290) (360 760))
rect($6 (-360 -760) (360 760))
rect($7 (-305 -705) (250 250))
rect($7 (-250 150) (250 250))
rect($8 (-1525 -775) (2800 900))
rect($2 (-1675 -925) (550 950))
)
net(5
rect($4 (-110 2490) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($6 (-290 -290) (360 760))
rect($6 (-360 -760) (360 760))
rect($7 (-305 -705) (250 250))
rect($7 (-250 150) (250 250))
rect($8 (-1525 -775) (2800 900))
rect($1 (-1675 -925) (550 950))
)
# Outgoing pins and their connections to nets
pin(1 name(IN))
pin(2)
pin(3 name(OUT))
pin(4)
pin(5)
# Devices and their connections
device(1 D$PMOS
location(-400 2800)
param(L 0.25)
param(W 0.95)
param(AS 0.49875)
param(AD 0.26125)
param(PS 2.95)
param(PD 1.5)
terminal(S 2)
terminal(G 1)
terminal(D 5)
)
device(2 D$PMOS$1
location(400 2800)
param(L 0.25)
param(W 0.95)
param(AS 0.26125)
param(AD 0.49875)
param(PS 1.5)
param(PD 2.95)
terminal(S 5)
terminal(G 2)
terminal(D 3)
)
device(3 D$NMOS
location(-400 0)
param(L 0.25)
param(W 0.95)
param(AS 0.49875)
param(AD 0.26125)
param(PS 2.95)
param(PD 1.5)
terminal(S 2)
terminal(G 1)
terminal(D 4)
)
device(4 D$NMOS$1
location(400 0)
param(L 0.25)
param(W 0.95)
param(AS 0.26125)
param(AD 0.49875)
param(PS 1.5)
param(PD 2.95)
terminal(S 4)
terminal(G 2)
terminal(D 3)
)
)
circuit(RINGO
# Nets with their geometries
net(1 name(FB)
rect($4 (22850 2490) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -3420) (220 220))
rect($4 (-220 180) (220 220))
rect($6 (-24770 1310) (360 360))
rect($7 (-305 -305) (250 250))
rect($7 (24230 -250) (250 250))
rect($8 (-24805 -325) (24880 400))
rect($11 (-23161 -201) (2 2))
)
net(2 name(VSS)
rect($4 (2530 -310) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-2860 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (5060 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($6 (-21410 -290) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (-3000 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (4920 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($11 (-23941 -381) (2 2))
)
net(3 name(VDD)
rect($4 (2530 2490) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-2860 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (5060 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (2420 -220) (220 220))
rect($4 (-220 180) (220 220))
rect($4 (-220 -220) (220 220))
rect($4 (-220 -620) (220 220))
rect($6 (-21410 -290) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (-3000 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (4920 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($6 (2280 -760) (360 760))
rect($6 (-360 -760) (360 760))
rect($11 (-23941 -381) (2 2))
)
net(4
rect($4 (690 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(5
rect($4 (21810 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(6
rect($4 (19170 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(7
rect($4 (16530 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(8
rect($4 (13890 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(9
rect($4 (11250 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(10
rect($4 (8610 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(11
rect($4 (5970 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
net(12
rect($4 (3330 2890) (220 220))
rect($4 (-220 -620) (220 220))
rect($4 (-220 -2620) (220 220))
rect($4 (-220 -620) (220 220))
)
# Subcircuits and their connections
circuit(1 INV2 location(23760 0)
pin(0 5)
pin(1 1)
pin(3 2)
pin(4 3)
)
circuit(2 INV2 location(0 0)
pin(0 1)
pin(2 4)
pin(3 2)
pin(4 3)
)
circuit(3 INV2 location(2640 0)
pin(0 4)
pin(2 12)
pin(3 2)
pin(4 3)
)
circuit(4 INV2 location(5280 0)
pin(0 12)
pin(2 11)
pin(3 2)
pin(4 3)
)
circuit(5 INV2 location(7920 0)
pin(0 11)
pin(2 10)
pin(3 2)
pin(4 3)
)
circuit(6 INV2 location(10560 0)
pin(0 10)
pin(2 9)
pin(3 2)
pin(4 3)
)
circuit(7 INV2 location(13200 0)
pin(0 9)
pin(2 8)
pin(3 2)
pin(4 3)
)
circuit(8 INV2 location(15840 0)
pin(0 8)
pin(2 7)
pin(3 2)
pin(4 3)
)
circuit(9 INV2 location(18480 0)
pin(0 7)
pin(2 6)
pin(3 2)
pin(4 3)
)
circuit(10 INV2 location(21120 0)
pin(0 6)
pin(2 5)
pin(3 2)
pin(4 3)
)
)
+687
View File
@@ -0,0 +1,687 @@
#%lvsdb-klayout
# Layout
layout(
top(RINGO)
unit(0.001)
# Layer section
# This section lists the mask layers (drawing or derived) and their connections.
# Mask layers
layer(bulk)
layer(nwell '1/0')
layer(poly '3/0')
layer(poly_lbl '3/1')
layer(diff_cont '4/0')
layer(poly_cont '5/0')
layer(metal1 '6/0')
layer(metal1_lbl '6/1')
layer(via1 '7/0')
layer(metal2 '8/0')
layer(metal2_lbl '8/1')
layer(ntie)
layer(psd)
layer(ptie)
layer(nsd)
# Mask layer connectivity
connect(nwell nwell ntie)
connect(poly poly poly_lbl poly_cont)
connect(poly_lbl poly)
connect(diff_cont diff_cont metal1 ntie psd ptie nsd)
connect(poly_cont poly poly_cont metal1)
connect(metal1 diff_cont poly_cont metal1 metal1_lbl via1)
connect(metal1_lbl metal1)
connect(via1 metal1 via1 metal2)
connect(metal2 via1 metal2 metal2_lbl)
connect(metal2_lbl metal2)
connect(ntie nwell diff_cont ntie)
connect(psd diff_cont psd)
connect(ptie diff_cont ptie)
connect(nsd diff_cont nsd)
# Global nets and connectivity
global(bulk BULK)
global(ptie BULK)
# Device class section
class(PMOS MOS4)
class(NMOS MOS4)
# Device abstracts section
# Device abstracts list the pin shapes of the devices.
device(D$PMOS PMOS
terminal(S
rect(psd (-650 -875) (525 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(psd (125 -875) (550 1750))
)
terminal(B
rect(nwell (-125 -875) (250 1750))
)
kk # invalid
)
device(D$PMOS$1 PMOS
terminal(S
rect(psd (-675 -875) (550 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(psd (125 -875) (525 1750))
)
terminal(B
rect(nwell (-125 -875) (250 1750))
)
)
device(D$NMOS NMOS
terminal(S
rect(nsd (-650 -875) (525 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(nsd (125 -875) (550 1750))
)
terminal(B
rect(bulk (-125 -875) (250 1750))
)
)
device(D$NMOS$1 NMOS
terminal(S
rect(nsd (-675 -875) (550 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(nsd (125 -875) (525 1750))
)
terminal(B
rect(bulk (-125 -875) (250 1750))
)
)
# Circuit section
# Circuits are the hierarchical building blocks of the netlist.
circuit(INV2
# Circuit boundary
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
kk # invalid
net(1
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
)
net(2 name(IN)
rect(poly (-525 -250) (250 2500))
rect(poly (-1425 -630) (2100 360))
rect(poly (-125 -2230) (250 2500))
rect(poly (-1050 -3850) (250 2400))
rect(poly (550 1200) (250 2400))
rect(poly (-250 -6000) (250 2400))
rect(poly (-1050 1200) (250 2400))
rect(poly_lbl (-525 -2600) (0 0))
rect(poly_cont (-830 -110) (220 220))
)
net(3 name(OUT)
rect(diff_cont (-910 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (1380 3380) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -3820) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-1820 3380) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(metal1 (1310 -3710) (360 2220))
rect(metal1 (-1900 -800) (2220 360))
rect(metal1 (-2280 -2400) (360 2840))
rect(metal1 (-360 -3600) (360 1560))
rect(metal1 (1240 2040) (360 1560))
rect(metal1 (-360 -5160) (360 1560))
rect(metal1 (-1960 2040) (360 1560))
rect(metal1_lbl (1420 -2180) (0 0))
rect(psd (-275 525) (525 1750))
rect(psd (-2100 -1750) (525 1750))
rect(nsd (1050 -5350) (525 1750))
rect(nsd (-2100 -1750) (525 1750))
)
net(4 name(VSS)
rect(diff_cont (-110 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 980) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(metal1 (-290 -290) (360 1560))
rect(metal1 (-360 -1560) (360 1560))
rect(via1 (-305 -705) (250 250))
rect(via1 (-250 150) (250 250))
rect(via1 (-250 -1450) (250 250))
rect(via1 (-250 150) (250 250))
rect(metal2 (-1525 -775) (2800 1700))
rect(metal2_lbl (-160 -540) (0 0))
rect(nsd (-1515 -1185) (550 1750))
)
net(5 name(VDD)
rect(diff_cont (-110 2490) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -1420) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(metal1 (-290 -1490) (360 1560))
rect(metal1 (-360 -1560) (360 1560))
rect(via1 (-305 -1505) (250 250))
rect(via1 (-250 150) (250 250))
rect(via1 (-250 150) (250 250))
rect(via1 (-250 150) (250 250))
rect(metal2 (-1525 -1575) (2800 1700))
rect(metal2_lbl (-150 -1250) (0 0))
rect(psd (-1525 -475) (550 1750))
)
net(6 name(BULK)
rect(diff_cont (-110 -2160) (220 220))
rect(ptie (-510 -450) (800 680))
)
kk # invalid
# Outgoing pins and their connections to nets
pin(1)
pin(2 name(IN))
pin(3 name(OUT))
pin(4 name(VSS))
kk(1 jj(17 2.5 "hello")) # invalid
pin(5 name(VDD))
pin(6 name(BULK))
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
connect(1 G G)
connect(0 D D)
connect(1 D S)
connect(0 B B)
connect(1 B B)
kk # invalid
location(-400 3200)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 5)
terminal(B 1)
kk # invalid
)
device(3 D$NMOS
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
connect(1 G G)
connect(0 D D)
connect(1 D S)
connect(0 B B)
connect(1 B B)
location(-400 -400)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 4)
terminal(B 6)
)
kk # invalid
)
circuit(INV2PAIR
# Circuit boundary
rect((0 -1640) (5740 7820))
# Nets with their geometries
kk # invalid
net(1 name(BULK))
net(2)
net(3)
net(4)
net(5)
net(6)
net(7)
# Outgoing pins and their connections to nets
pin(1 name(BULK))
pin(2)
pin(3)
pin(4)
pin(5)
pin(6)
pin(7)
# Subcircuits and their connections
circuit(1 INV2 location(1700 800)
pin(0 7)
pin(1 5)
pin(2 4)
pin(3 3)
pin(4 2)
pin(5 1)
)
circuit(2 INV2 location(4340 800)
pin(0 7)
pin(1 4)
pin(2 6)
pin(3 3)
pin(4 2)
pin(5 1)
)
)
circuit(RINGO
# Circuit boundary
rect((-1720 -2440) (26880 7820))
# Nets with their geometries
kk # invalid
net(1 name(FB)
rect(metal1 (-1700 1620) (360 360))
rect(via1 (-305 -305) (250 250))
rect(via1 (23190 -250) (250 250))
rect(metal2 (-23765 -325) (23840 400))
rect(metal2_lbl (-22120 -200) (0 0))
)
net(2 name(OSC)
rect(via1 (24435 1675) (250 250))
rect(metal2 (-325 -325) (400 400))
rect(metal2_lbl (-200 -200) (0 0))
)
net(3 name(VDD)
rect(metal1 (-180 3900) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 -2220) (0 0))
)
net(4 name(VSS)
rect(metal1 (-180 -2220) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
net(5)
net(6)
net(7)
net(8)
net(9)
net(10)
net(11)
net(12)
# Outgoing pins and their connections to nets
pin(1 name(FB))
pin(2 name(OSC))
pin(3 name(VDD))
pin(4 name(VSS))
# Subcircuits and their connections
circuit(1 INV2PAIR location(19420 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 1)
pin(4 10)
pin(5 2)
pin(6 3)
)
circuit(2 INV2PAIR location(-1700 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 8)
pin(4 1)
pin(5 9)
pin(6 3)
)
circuit(3 INV2PAIR location(3580 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 7)
pin(4 9)
pin(5 12)
pin(6 3)
)
circuit(4 INV2PAIR location(8860 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 6)
pin(4 12)
pin(5 11)
pin(6 3)
)
circuit(5 INV2PAIR location(14140 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 5)
pin(4 11)
pin(5 10)
pin(6 3)
)
)
)
# Reference netlist
reference(
# Device class section
class(PMOS MOS4)
class(NMOS MOS4)
kk # invalid
# Circuit section
# Circuits are the hierarchical building blocks of the netlist.
circuit(INV2
# Nets
kk # invalid
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('5'))
net(6 name('6'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
pin(5 name('5'))
pin(6 name('6'))
# Devices and their connections
device(1 PMOS
name($1)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 5)
terminal(B 1)
)
device(2 NMOS
name($3)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 4)
terminal(B 6)
)
)
circuit(INV2PAIR
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('5'))
net(6 name('6'))
net(7 name('7'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
pin(5 name('5'))
pin(6 name('6'))
pin(7 name('7'))
# Subcircuits and their connections
circuit(1 INV2 name($2)
pin(0 7)
pin(1 4)
pin(2 6)
pin(3 3)
pin(4 2)
pin(5 1)
)
)
circuit(RINGO
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('6'))
net(6 name('5'))
net(7 name('101'))
net(8 name('8'))
net(9 name('102'))
net(10 name('7'))
net(11 name('103'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
# Subcircuits and their connections
circuit(1 INV2PAIR name($1)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 1)
pin(4 5)
pin(5 2)
pin(6 3)
)
circuit(2 INV2PAIR name($2)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 1)
pin(4 1)
pin(5 6)
pin(6 3)
)
circuit(3 INV2PAIR name($3)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 7)
pin(4 6)
pin(5 8)
pin(6 3)
)
circuit(4 INV2PAIR name($4)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 9)
pin(4 8)
pin(5 10)
pin(6 3)
)
circuit(5 INV2PAIR name($5)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 11)
pin(4 10)
pin(5 5)
pin(6 3)
)
)
circuit(INV2PAIRX
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('5'))
net(6 name('6'))
net(7 name('7'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
pin(5 name('5'))
pin(6 name('6'))
pin(7 name('7'))
# Subcircuits and their connections
circuit(1 INV2 name($2)
pin(0 7)
pin(1 4)
pin(2 6)
pin(3 3)
pin(4 2)
pin(5 1)
)
)
)
# Cross reference
xref(
circuit(() INV2PAIRX mismatch
kk( jj("hello" W) jj("world!" E) ) # invalid
xref(
)
)
circuit(INV2 INV2 match
xref(
kk # invalid
net(1 1 match)
net(6 6 match)
net(2 2 match)
net(3 3 match)
net(5 5 match)
net(4 4 match)
pin(0 0 match)
pin(5 5 match)
pin(1 1 match)
pin(2 2 match)
pin(4 4 match)
pin(3 3 match)
device(3 2 match)
device(1 1 match)
kk # invalid
)
)
circuit(INV2PAIR INV2PAIR nomatch
xref(
net(2 2 mismatch)
net(3 3 mismatch)
net(4 4 mismatch)
net(5 5 mismatch)
net(6 6 match)
net(7 7 mismatch)
net(1 1 mismatch)
pin(1 1 match)
pin(2 2 match)
pin(3 3 match)
pin(4 4 match)
pin(5 5 match)
pin(6 6 match)
pin(0 0 match)
circuit(1 () mismatch)
circuit(2 1 match)
)
)
circuit(RINGO RINGO nomatch
xref(
net(8 () mismatch kk kk kk )
net(7 7 match)
net(6 9 match)
net(5 11 match)
net(9 6 match)
net(10 5 match)
net(11 10 match)
net(12 8 match)
net(1 1 mismatch)
net(2 2 match)
net(3 3 match)
net(4 4 match)
pin(0 0 match)
pin(1 1 match kk)
pin(2 2 match)
pin(3 3 match)
circuit(() 2 mismatch kk)
circuit(2 () mismatch)
circuit(1 1 match)
circuit(3 3 match)
circuit(4 4 match)
circuit(5 5 match)
)
)
)
+673
View File
@@ -0,0 +1,673 @@
#%lvsdb-klayout
# Layout
layout(
top(RINGO)
unit(0.001)
# Layer section
# This section lists the mask layers (drawing or derived) and their connections.
# Mask layers
layer(bulk)
layer(nwell '1/0')
layer(poly '3/0')
layer(poly_lbl '3/1')
layer(diff_cont '4/0')
layer(poly_cont '5/0')
layer(metal1 '6/0')
layer(metal1_lbl '6/1')
layer(via1 '7/0')
layer(metal2 '8/0')
layer(metal2_lbl '8/1')
layer(ntie)
layer(psd)
layer(ptie)
layer(nsd)
# Mask layer connectivity
connect(nwell nwell ntie)
connect(poly poly poly_lbl poly_cont)
connect(poly_lbl poly)
connect(diff_cont diff_cont metal1 ntie psd ptie nsd)
connect(poly_cont poly poly_cont metal1)
connect(metal1 diff_cont poly_cont metal1 metal1_lbl via1)
connect(metal1_lbl metal1)
connect(via1 metal1 via1 metal2)
connect(metal2 via1 metal2 metal2_lbl)
connect(metal2_lbl metal2)
connect(ntie nwell diff_cont ntie)
connect(psd diff_cont psd)
connect(ptie diff_cont ptie)
connect(nsd diff_cont nsd)
# Global nets and connectivity
global(bulk BULK)
global(ptie BULK)
# Device class section
class(PMOS MOS4)
class(NMOS MOS4)
# Device abstracts section
# Device abstracts list the pin shapes of the devices.
device(D$PMOS PMOS
terminal(S
rect(psd (-650 -875) (525 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(psd (125 -875) (550 1750))
)
terminal(B
rect(nwell (-125 -875) (250 1750))
)
)
device(D$PMOS$1 PMOS
terminal(S
rect(psd (-675 -875) (550 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(psd (125 -875) (525 1750))
)
terminal(B
rect(nwell (-125 -875) (250 1750))
)
)
device(D$NMOS NMOS
terminal(S
rect(nsd (-650 -875) (525 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(nsd (125 -875) (550 1750))
)
terminal(B
rect(bulk (-125 -875) (250 1750))
)
)
device(D$NMOS$1 NMOS
terminal(S
rect(nsd (-675 -875) (550 1750))
)
terminal(G
rect(poly (-125 -875) (250 1750))
)
terminal(D
rect(nsd (125 -875) (525 1750))
)
terminal(B
rect(bulk (-125 -875) (250 1750))
)
)
# Circuit section
# Circuits are the hierarchical building blocks of the netlist.
circuit(INV2
# Circuit boundary
rect((-1700 -2440) (3100 7820))
# Nets with their geometries
net(1
rect(nwell (-1400 1800) (2800 3580))
rect(diff_cont (-1510 -650) (220 220))
rect(ntie (-510 -450) (800 680))
)
net(2 name(IN)
rect(poly (-525 -250) (250 2500))
rect(poly (-1425 -630) (2100 360))
rect(poly (-125 -2230) (250 2500))
rect(poly (-1050 -3850) (250 2400))
rect(poly (550 1200) (250 2400))
rect(poly (-250 -6000) (250 2400))
rect(poly (-1050 1200) (250 2400))
rect(poly_lbl (-525 -2600) (0 0))
rect(poly_cont (-830 -110) (220 220))
)
net(3 name(OUT)
rect(diff_cont (-910 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (1380 3380) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -3820) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-1820 3380) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(metal1 (1310 -3710) (360 2220))
rect(metal1 (-1900 -800) (2220 360))
rect(metal1 (-2280 -2400) (360 2840))
rect(metal1 (-360 -3600) (360 1560))
rect(metal1 (1240 2040) (360 1560))
rect(metal1 (-360 -5160) (360 1560))
rect(metal1 (-1960 2040) (360 1560))
rect(metal1_lbl (1420 -2180) (0 0))
rect(psd (-275 525) (525 1750))
rect(psd (-2100 -1750) (525 1750))
rect(nsd (1050 -5350) (525 1750))
rect(nsd (-2100 -1750) (525 1750))
)
net(4 name(VSS)
rect(diff_cont (-110 90) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 980) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(diff_cont (-220 -620) (220 220))
rect(metal1 (-290 -290) (360 1560))
rect(metal1 (-360 -1560) (360 1560))
rect(via1 (-305 -705) (250 250))
rect(via1 (-250 150) (250 250))
rect(via1 (-250 -1450) (250 250))
rect(via1 (-250 150) (250 250))
rect(metal2 (-1525 -775) (2800 1700))
rect(metal2_lbl (-160 -540) (0 0))
rect(nsd (-1515 -1185) (550 1750))
)
net(5 name(VDD)
rect(diff_cont (-110 2490) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 -1420) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(diff_cont (-220 180) (220 220))
rect(metal1 (-290 -1490) (360 1560))
rect(metal1 (-360 -1560) (360 1560))
rect(via1 (-305 -1505) (250 250))
rect(via1 (-250 150) (250 250))
rect(via1 (-250 150) (250 250))
rect(via1 (-250 150) (250 250))
rect(metal2 (-1525 -1575) (2800 1700))
rect(metal2_lbl (-150 -1250) (0 0))
rect(psd (-1525 -475) (550 1750))
)
net(6 name(BULK)
rect(diff_cont (-110 -2160) (220 220))
rect(ptie (-510 -450) (800 680))
)
# Outgoing pins and their connections to nets
pin(1)
pin(2 name(IN))
pin(3 name(OUT))
pin(4 name(VSS))
pin(5 name(VDD))
pin(6 name(BULK))
# Devices and their connections
device(1 D$PMOS
device(D$PMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
connect(1 G G)
connect(0 D D)
connect(1 D S)
connect(0 B B)
connect(1 B B)
location(-400 3200)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 5)
terminal(B 1)
)
device(2 D$NMOS
device(D$NMOS$1 location(800 0))
connect(0 S S)
connect(1 S D)
connect(0 G G)
connect(1 G G)
connect(0 D D)
connect(1 D S)
connect(0 B B)
connect(1 B B)
location(-400 -400)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 4)
terminal(B 6)
)
)
circuit(INV2PAIR
# Circuit boundary
rect((0 -1640) (5740 7820))
# Nets with their geometries
net(1 name(BULK))
net(2)
net(3)
net(4)
net(5)
net(6)
net(7)
# Outgoing pins and their connections to nets
pin(1 name(BULK))
pin(2)
pin(3)
pin(4)
pin(5)
pin(6)
pin(7)
# Subcircuits and their connections
circuit(1 INV2 location(1700 800)
pin(0 7)
pin(1 5)
pin(2 4)
pin(3 3)
pin(4 2)
pin(5 1)
)
circuit(2 INV2 location(4340 800)
pin(0 7)
pin(1 4)
pin(2 6)
pin(3 3)
pin(4 2)
pin(5 1)
)
)
circuit(RINGO
# Circuit boundary
rect((-1720 -2440) (26880 7820))
# Nets with their geometries
net(1 name(FB)
rect(metal1 (-1700 1620) (360 360))
rect(via1 (-305 -305) (250 250))
rect(via1 (23190 -250) (250 250))
rect(metal2 (-23765 -325) (23840 400))
rect(metal2_lbl (-22120 -200) (0 0))
)
net(2 name(OSC)
rect(via1 (24435 1675) (250 250))
rect(metal2 (-325 -325) (400 400))
rect(metal2_lbl (-200 -200) (0 0))
)
net(3 name(VDD)
rect(metal1 (-180 3900) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 -2220) (0 0))
)
net(4 name(VSS)
rect(metal1 (-180 -2220) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal1 (2280 -1120) (360 1120))
rect(metal2_lbl (-23940 1100) (0 0))
)
net(5)
net(6)
net(7)
net(8)
net(9)
net(10)
net(11)
net(12)
# Outgoing pins and their connections to nets
pin(1 name(FB))
pin(2 name(OSC))
pin(3 name(VDD))
pin(4 name(VSS))
# Subcircuits and their connections
circuit(1 INV2PAIR location(19420 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 1)
pin(4 10)
pin(5 2)
pin(6 3)
)
circuit(2 INV2PAIR location(-1700 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 8)
pin(4 1)
pin(5 9)
pin(6 3)
)
circuit(3 INV2PAIR location(3580 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 7)
pin(4 9)
pin(5 12)
pin(6 3)
)
circuit(4 INV2PAIR location(8860 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 6)
pin(4 12)
pin(5 11)
pin(6 3)
)
circuit(5 INV2PAIR location(14140 -800)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 5)
pin(4 11)
pin(5 10)
pin(6 3)
)
)
)
# Reference netlist
reference(
# Device class section
class(PMOS MOS4)
class(NMOS MOS4)
# Circuit section
# Circuits are the hierarchical building blocks of the netlist.
circuit(INV2
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('5'))
net(6 name('6'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
pin(5 name('5'))
pin(6 name('6'))
# Devices and their connections
device(1 PMOS
name($1)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 5)
terminal(B 1)
)
device(2 NMOS
name($3)
param(L 0.25)
param(W 3.5)
param(AS 1.4)
param(AD 1.4)
param(PS 6.85)
param(PD 6.85)
terminal(S 3)
terminal(G 2)
terminal(D 4)
terminal(B 6)
)
)
circuit(INV2PAIR
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('5'))
net(6 name('6'))
net(7 name('7'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
pin(5 name('5'))
pin(6 name('6'))
pin(7 name('7'))
# Subcircuits and their connections
circuit(1 INV2 name($2)
pin(0 7)
pin(1 4)
pin(2 6)
pin(3 3)
pin(4 2)
pin(5 1)
)
)
circuit(RINGO
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('6'))
net(6 name('5'))
net(7 name('101'))
net(8 name('8'))
net(9 name('102'))
net(10 name('7'))
net(11 name('103'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
# Subcircuits and their connections
circuit(1 INV2PAIR name($1)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 1)
pin(4 5)
pin(5 2)
pin(6 3)
)
circuit(2 INV2PAIR name($2)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 1)
pin(4 1)
pin(5 6)
pin(6 3)
)
circuit(3 INV2PAIR name($3)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 7)
pin(4 6)
pin(5 8)
pin(6 3)
)
circuit(4 INV2PAIR name($4)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 9)
pin(4 8)
pin(5 10)
pin(6 3)
)
circuit(5 INV2PAIR name($5)
pin(0 4)
pin(1 3)
pin(2 4)
pin(3 11)
pin(4 10)
pin(5 5)
pin(6 3)
)
)
circuit(INV2PAIRX
# Nets
net(1 name('1'))
net(2 name('2'))
net(3 name('3'))
net(4 name('4'))
net(5 name('5'))
net(6 name('6'))
net(7 name('7'))
# Outgoing pins and their connections to nets
pin(1 name('1'))
pin(2 name('2'))
pin(3 name('3'))
pin(4 name('4'))
pin(5 name('5'))
pin(6 name('6'))
pin(7 name('7'))
# Subcircuits and their connections
circuit(1 INV2 name($2)
pin(0 7)
pin(1 4)
pin(2 6)
pin(3 3)
pin(4 2)
pin(5 1)
)
)
)
# Cross reference
xref(
circuit(() INV2PAIRX mismatch
xref(
)
)
circuit(INV2 INV2 match
xref(
net(1 1 match)
net(6 6 match)
net(2 2 match)
net(3 3 match)
net(5 5 match)
net(4 4 match)
pin(0 0 match)
pin(5 5 match)
pin(1 1 match)
pin(2 2 match)
pin(4 4 match)
pin(3 3 match)
device(2 2 match)
device(1 1 match)
)
)
circuit(INV2PAIR INV2PAIR nomatch
xref(
net(2 2 mismatch)
net(3 3 mismatch)
net(4 4 mismatch)
net(5 5 mismatch)
net(6 6 match)
net(7 7 mismatch)
net(1 1 mismatch)
pin(1 1 match)
pin(2 2 match)
pin(3 3 match)
pin(4 4 match)
pin(5 5 match)
pin(6 6 match)
pin(0 0 match)
circuit(1 () mismatch)
circuit(2 1 match)
)
)
circuit(RINGO RINGO nomatch
xref(
net(8 () mismatch)
net(7 7 match)
net(6 9 match)
net(5 11 match)
net(9 6 match)
net(10 5 match)
net(11 10 match)
net(12 8 match)
net(1 1 mismatch)
net(2 2 match)
net(3 3 match)
net(4 4 match)
pin(0 0 match)
pin(1 1 match)
pin(2 2 match)
pin(3 3 match)
circuit(() 2 mismatch)
circuit(2 () mismatch)
circuit(1 1 match)
circuit(3 3 match)
circuit(4 4 match)
circuit(5 5 match)
)
)
)