mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-30 09:49:21 +02:00
LayoutToNetlist enhancements in the area of the dumper.
This commit is contained in:
Vendored
+477
@@ -0,0 +1,477 @@
|
||||
# General section
|
||||
# Lists general definitions.
|
||||
|
||||
top(RINGO)
|
||||
unit(0.001)
|
||||
|
||||
# Layer section
|
||||
# This section lists the mask layers (drawing or derived) and their connections.
|
||||
|
||||
# Mask layers
|
||||
layer(poly)
|
||||
layer(poly_lbl)
|
||||
layer(diff_cont)
|
||||
layer(poly_cont)
|
||||
layer(metal1)
|
||||
layer(metal1_lbl)
|
||||
layer(via1)
|
||||
layer(metal2)
|
||||
layer(metal2_lbl)
|
||||
layer(psd)
|
||||
layer(nsd)
|
||||
|
||||
# Mask layer connectivity
|
||||
connect(poly poly poly_lbl poly_cont)
|
||||
connect(poly_lbl poly)
|
||||
connect(diff_cont diff_cont metal1 psd 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(psd diff_cont psd)
|
||||
connect(nsd diff_cont nsd)
|
||||
|
||||
# Device abstracts section
|
||||
# Device abstracts list the pin shapes of the devices.
|
||||
device(D$PMOS PMOS
|
||||
terminal(S
|
||||
rect(poly -125 -475 125 475)
|
||||
)
|
||||
terminal(G
|
||||
rect(psd -650 -475 -125 475)
|
||||
)
|
||||
terminal(D
|
||||
rect(psd 125 -475 675 475)
|
||||
)
|
||||
)
|
||||
device(D$PMOS$1 PMOS
|
||||
terminal(S
|
||||
rect(poly -125 -475 125 475)
|
||||
)
|
||||
terminal(G
|
||||
rect(psd -675 -475 -125 475)
|
||||
)
|
||||
terminal(D
|
||||
rect(psd 125 -475 650 475)
|
||||
)
|
||||
)
|
||||
device(D$NMOS NMOS
|
||||
terminal(S
|
||||
rect(poly -125 -475 125 475)
|
||||
)
|
||||
terminal(G
|
||||
rect(nsd -650 -475 -125 475)
|
||||
)
|
||||
terminal(D
|
||||
rect(nsd 125 -475 675 475)
|
||||
)
|
||||
)
|
||||
device(D$NMOS$1 NMOS
|
||||
terminal(S
|
||||
rect(poly -125 -475 125 475)
|
||||
)
|
||||
terminal(G
|
||||
rect(nsd -675 -475 -125 475)
|
||||
)
|
||||
terminal(D
|
||||
rect(nsd 125 -475 650 475)
|
||||
)
|
||||
)
|
||||
|
||||
# Circuit section
|
||||
# Circuits are the hierarchical building blocks of the netlist.
|
||||
|
||||
# Circuit RINGO
|
||||
circuit(RINGO
|
||||
|
||||
# Nets with their geometries
|
||||
net(FB
|
||||
rect(diff_cont 22850 2490 23070 2710)
|
||||
rect(diff_cont 22850 2890 23070 3110)
|
||||
rect(diff_cont 22850 -310 23070 -90)
|
||||
rect(diff_cont 22850 90 23070 310)
|
||||
rect(metal1 -1700 1620 -1340 1980)
|
||||
rect(via1 -1645 1675 -1395 1925)
|
||||
rect(via1 22835 1675 23085 1925)
|
||||
rect(metal2 -1720 1600 23160 2000)
|
||||
rect(metal2_lbl -1 1799 1 1801)
|
||||
)
|
||||
net(VSS
|
||||
rect(diff_cont 2530 -310 2750 -90)
|
||||
rect(diff_cont 2530 90 2750 310)
|
||||
rect(diff_cont 2530 90 2750 310)
|
||||
rect(diff_cont 2530 -310 2750 -90)
|
||||
rect(diff_cont -110 -310 110 -90)
|
||||
rect(diff_cont -110 90 110 310)
|
||||
rect(diff_cont -110 90 110 310)
|
||||
rect(diff_cont -110 -310 110 -90)
|
||||
rect(diff_cont 5170 -310 5390 -90)
|
||||
rect(diff_cont 5170 90 5390 310)
|
||||
rect(diff_cont 5170 90 5390 310)
|
||||
rect(diff_cont 5170 -310 5390 -90)
|
||||
rect(diff_cont 7810 -310 8030 -90)
|
||||
rect(diff_cont 7810 90 8030 310)
|
||||
rect(diff_cont 7810 90 8030 310)
|
||||
rect(diff_cont 7810 -310 8030 -90)
|
||||
rect(diff_cont 10450 -310 10670 -90)
|
||||
rect(diff_cont 10450 90 10670 310)
|
||||
rect(diff_cont 10450 90 10670 310)
|
||||
rect(diff_cont 10450 -310 10670 -90)
|
||||
rect(diff_cont 13090 -310 13310 -90)
|
||||
rect(diff_cont 13090 90 13310 310)
|
||||
rect(diff_cont 13090 90 13310 310)
|
||||
rect(diff_cont 13090 -310 13310 -90)
|
||||
rect(diff_cont 15730 -310 15950 -90)
|
||||
rect(diff_cont 15730 90 15950 310)
|
||||
rect(diff_cont 15730 90 15950 310)
|
||||
rect(diff_cont 15730 -310 15950 -90)
|
||||
rect(diff_cont 18370 -310 18590 -90)
|
||||
rect(diff_cont 18370 90 18590 310)
|
||||
rect(diff_cont 18370 90 18590 310)
|
||||
rect(diff_cont 18370 -310 18590 -90)
|
||||
rect(diff_cont 21010 -310 21230 -90)
|
||||
rect(diff_cont 21010 90 21230 310)
|
||||
rect(diff_cont 21010 90 21230 310)
|
||||
rect(diff_cont 21010 -310 21230 -90)
|
||||
rect(diff_cont 23650 -310 23870 -90)
|
||||
rect(diff_cont 23650 90 23870 310)
|
||||
rect(diff_cont 23650 90 23870 310)
|
||||
rect(diff_cont 23650 -310 23870 -90)
|
||||
rect(metal1 2460 -380 2820 380)
|
||||
rect(metal1 2460 -380 2820 380)
|
||||
rect(metal1 -180 -380 180 380)
|
||||
rect(metal1 -180 -380 180 380)
|
||||
rect(metal1 5100 -380 5460 380)
|
||||
rect(metal1 5100 -380 5460 380)
|
||||
rect(metal1 7740 -380 8100 380)
|
||||
rect(metal1 7740 -380 8100 380)
|
||||
rect(metal1 10380 -380 10740 380)
|
||||
rect(metal1 10380 -380 10740 380)
|
||||
rect(metal1 13020 -380 13380 380)
|
||||
rect(metal1 13020 -380 13380 380)
|
||||
rect(metal1 15660 -380 16020 380)
|
||||
rect(metal1 15660 -380 16020 380)
|
||||
rect(metal1 18300 -380 18660 380)
|
||||
rect(metal1 18300 -380 18660 380)
|
||||
rect(metal1 20940 -380 21300 380)
|
||||
rect(metal1 20940 -380 21300 380)
|
||||
rect(metal1 23580 -380 23940 380)
|
||||
rect(metal1 23580 -380 23940 380)
|
||||
rect(metal2_lbl -1 -1 1 1)
|
||||
)
|
||||
net(VDD
|
||||
rect(diff_cont 2530 2490 2750 2710)
|
||||
rect(diff_cont 2530 2890 2750 3110)
|
||||
rect(diff_cont 2530 2890 2750 3110)
|
||||
rect(diff_cont 2530 2490 2750 2710)
|
||||
rect(diff_cont -110 2490 110 2710)
|
||||
rect(diff_cont -110 2890 110 3110)
|
||||
rect(diff_cont -110 2890 110 3110)
|
||||
rect(diff_cont -110 2490 110 2710)
|
||||
rect(diff_cont 5170 2490 5390 2710)
|
||||
rect(diff_cont 5170 2890 5390 3110)
|
||||
rect(diff_cont 5170 2890 5390 3110)
|
||||
rect(diff_cont 5170 2490 5390 2710)
|
||||
rect(diff_cont 7810 2490 8030 2710)
|
||||
rect(diff_cont 7810 2890 8030 3110)
|
||||
rect(diff_cont 7810 2890 8030 3110)
|
||||
rect(diff_cont 7810 2490 8030 2710)
|
||||
rect(diff_cont 10450 2490 10670 2710)
|
||||
rect(diff_cont 10450 2890 10670 3110)
|
||||
rect(diff_cont 10450 2890 10670 3110)
|
||||
rect(diff_cont 10450 2490 10670 2710)
|
||||
rect(diff_cont 13090 2490 13310 2710)
|
||||
rect(diff_cont 13090 2890 13310 3110)
|
||||
rect(diff_cont 13090 2890 13310 3110)
|
||||
rect(diff_cont 13090 2490 13310 2710)
|
||||
rect(diff_cont 15730 2490 15950 2710)
|
||||
rect(diff_cont 15730 2890 15950 3110)
|
||||
rect(diff_cont 15730 2890 15950 3110)
|
||||
rect(diff_cont 15730 2490 15950 2710)
|
||||
rect(diff_cont 18370 2490 18590 2710)
|
||||
rect(diff_cont 18370 2890 18590 3110)
|
||||
rect(diff_cont 18370 2890 18590 3110)
|
||||
rect(diff_cont 18370 2490 18590 2710)
|
||||
rect(diff_cont 21010 2490 21230 2710)
|
||||
rect(diff_cont 21010 2890 21230 3110)
|
||||
rect(diff_cont 21010 2890 21230 3110)
|
||||
rect(diff_cont 21010 2490 21230 2710)
|
||||
rect(diff_cont 23650 2490 23870 2710)
|
||||
rect(diff_cont 23650 2890 23870 3110)
|
||||
rect(diff_cont 23650 2890 23870 3110)
|
||||
rect(diff_cont 23650 2490 23870 2710)
|
||||
rect(metal1 2460 2420 2820 3180)
|
||||
rect(metal1 2460 2420 2820 3180)
|
||||
rect(metal1 -180 2420 180 3180)
|
||||
rect(metal1 -180 2420 180 3180)
|
||||
rect(metal1 5100 2420 5460 3180)
|
||||
rect(metal1 5100 2420 5460 3180)
|
||||
rect(metal1 7740 2420 8100 3180)
|
||||
rect(metal1 7740 2420 8100 3180)
|
||||
rect(metal1 10380 2420 10740 3180)
|
||||
rect(metal1 10380 2420 10740 3180)
|
||||
rect(metal1 13020 2420 13380 3180)
|
||||
rect(metal1 13020 2420 13380 3180)
|
||||
rect(metal1 15660 2420 16020 3180)
|
||||
rect(metal1 15660 2420 16020 3180)
|
||||
rect(metal1 18300 2420 18660 3180)
|
||||
rect(metal1 18300 2420 18660 3180)
|
||||
rect(metal1 20940 2420 21300 3180)
|
||||
rect(metal1 20940 2420 21300 3180)
|
||||
rect(metal1 23580 2420 23940 3180)
|
||||
rect(metal1 23580 2420 23940 3180)
|
||||
rect(metal2_lbl -1 2799 1 2801)
|
||||
)
|
||||
net($I19
|
||||
rect(diff_cont 690 2890 910 3110)
|
||||
rect(diff_cont 690 2490 910 2710)
|
||||
rect(diff_cont 690 90 910 310)
|
||||
rect(diff_cont 690 -310 910 -90)
|
||||
)
|
||||
net($I8
|
||||
rect(diff_cont 21810 2890 22030 3110)
|
||||
rect(diff_cont 21810 2490 22030 2710)
|
||||
rect(diff_cont 21810 90 22030 310)
|
||||
rect(diff_cont 21810 -310 22030 -90)
|
||||
)
|
||||
net($I7
|
||||
rect(diff_cont 19170 2890 19390 3110)
|
||||
rect(diff_cont 19170 2490 19390 2710)
|
||||
rect(diff_cont 19170 90 19390 310)
|
||||
rect(diff_cont 19170 -310 19390 -90)
|
||||
)
|
||||
net($I6
|
||||
rect(diff_cont 16530 2890 16750 3110)
|
||||
rect(diff_cont 16530 2490 16750 2710)
|
||||
rect(diff_cont 16530 90 16750 310)
|
||||
rect(diff_cont 16530 -310 16750 -90)
|
||||
)
|
||||
net($I5
|
||||
rect(diff_cont 13890 2890 14110 3110)
|
||||
rect(diff_cont 13890 2490 14110 2710)
|
||||
rect(diff_cont 13890 90 14110 310)
|
||||
rect(diff_cont 13890 -310 14110 -90)
|
||||
)
|
||||
net($I4
|
||||
rect(diff_cont 11250 2890 11470 3110)
|
||||
rect(diff_cont 11250 2490 11470 2710)
|
||||
rect(diff_cont 11250 90 11470 310)
|
||||
rect(diff_cont 11250 -310 11470 -90)
|
||||
)
|
||||
net($I3
|
||||
rect(diff_cont 8610 2890 8830 3110)
|
||||
rect(diff_cont 8610 2490 8830 2710)
|
||||
rect(diff_cont 8610 90 8830 310)
|
||||
rect(diff_cont 8610 -310 8830 -90)
|
||||
)
|
||||
net($I2
|
||||
rect(diff_cont 5970 2890 6190 3110)
|
||||
rect(diff_cont 5970 2490 6190 2710)
|
||||
rect(diff_cont 5970 90 6190 310)
|
||||
rect(diff_cont 5970 -310 6190 -90)
|
||||
)
|
||||
net($I1
|
||||
rect(diff_cont 3330 2890 3550 3110)
|
||||
rect(diff_cont 3330 2490 3550 2710)
|
||||
rect(diff_cont 3330 90 3550 310)
|
||||
rect(diff_cont 3330 -310 3550 -90)
|
||||
)
|
||||
|
||||
# Subcircuits and their connections
|
||||
subcircuit($1 location(23760 0)
|
||||
pin(IN $I8)
|
||||
pin($1 FB)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($2 location(0 0)
|
||||
pin(IN FB)
|
||||
pin(OUT $I19)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($3 location(2640 0)
|
||||
pin(IN $I19)
|
||||
pin(OUT $I1)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($4 location(5280 0)
|
||||
pin(IN $I1)
|
||||
pin(OUT $I2)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($5 location(7920 0)
|
||||
pin(IN $I2)
|
||||
pin(OUT $I3)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($6 location(10560 0)
|
||||
pin(IN $I3)
|
||||
pin(OUT $I4)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($7 location(13200 0)
|
||||
pin(IN $I4)
|
||||
pin(OUT $I5)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($8 location(15840 0)
|
||||
pin(IN $I5)
|
||||
pin(OUT $I6)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($9 location(18480 0)
|
||||
pin(IN $I6)
|
||||
pin(OUT $I7)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
subcircuit($10 location(21120 0)
|
||||
pin(IN $I7)
|
||||
pin(OUT $I8)
|
||||
pin($3 VSS)
|
||||
pin($4 VDD)
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
# Circuit INV2
|
||||
circuit(INV2
|
||||
|
||||
# Nets with their geometries
|
||||
net(IN
|
||||
rect(poly -525 -250 -275 2250)
|
||||
rect(poly -1700 1620 -400 1980)
|
||||
rect(poly -525 -800 -275 800)
|
||||
rect(poly -525 -475 -275 475)
|
||||
rect(poly -525 2000 -275 3600)
|
||||
rect(poly -525 2325 -275 3275)
|
||||
rect(poly_lbl -801 1799 -799 1801)
|
||||
rect(poly_cont -1630 1690 -1410 1910)
|
||||
)
|
||||
net($2
|
||||
rect(poly 275 -250 525 2250)
|
||||
rect(poly 220 820 580 1180)
|
||||
rect(poly 275 2000 525 3600)
|
||||
rect(poly 275 2325 525 3275)
|
||||
rect(poly 275 -800 525 800)
|
||||
rect(poly 275 -475 525 475)
|
||||
rect(diff_cont -910 2490 -690 2710)
|
||||
rect(diff_cont -910 2890 -690 3110)
|
||||
rect(diff_cont -910 -310 -690 -90)
|
||||
rect(diff_cont -910 90 -690 310)
|
||||
rect(poly_cont 290 890 510 1110)
|
||||
rect(metal1 -800 820 580 1180)
|
||||
rect(metal1 -980 -420 -620 2420)
|
||||
rect(metal1 -980 2420 -620 3180)
|
||||
rect(metal1 -980 -380 -620 380)
|
||||
rect(psd -1050 2325 -525 3275)
|
||||
rect(psd -1050 2325 -525 3275)
|
||||
rect(nsd -1050 -475 -525 475)
|
||||
rect(nsd -1050 -475 -525 475)
|
||||
)
|
||||
net(OUT
|
||||
rect(diff_cont 690 2890 910 3110)
|
||||
rect(diff_cont 690 2490 910 2710)
|
||||
rect(diff_cont 690 90 910 310)
|
||||
rect(diff_cont 690 -310 910 -90)
|
||||
polygon(metal1 800 20 800 380 940 380 940 1620 620 1620 620 2420 980 2420 980 1980 1300 1980 1300 20)
|
||||
rect(metal1 620 2420 980 3180)
|
||||
rect(metal1 620 -380 980 380)
|
||||
rect(metal1_lbl 799 1799 801 1801)
|
||||
rect(psd 525 2325 1050 3275)
|
||||
rect(psd 525 2325 1050 3275)
|
||||
rect(nsd 525 -475 1050 475)
|
||||
rect(nsd 525 -475 1050 475)
|
||||
)
|
||||
net($4
|
||||
rect(diff_cont -110 -310 110 -90)
|
||||
rect(diff_cont -110 90 110 310)
|
||||
rect(diff_cont -110 90 110 310)
|
||||
rect(diff_cont -110 -310 110 -90)
|
||||
rect(metal1 -180 -380 180 380)
|
||||
rect(metal1 -180 -380 180 380)
|
||||
rect(via1 -125 -325 125 -75)
|
||||
rect(via1 -125 75 125 325)
|
||||
rect(metal2 -1400 -450 1400 450)
|
||||
rect(nsd -275 -475 275 475)
|
||||
rect(nsd -275 -475 275 475)
|
||||
rect(nsd -275 -475 275 475)
|
||||
)
|
||||
net($5
|
||||
rect(diff_cont -110 2490 110 2710)
|
||||
rect(diff_cont -110 2890 110 3110)
|
||||
rect(diff_cont -110 2890 110 3110)
|
||||
rect(diff_cont -110 2490 110 2710)
|
||||
rect(metal1 -180 2420 180 3180)
|
||||
rect(metal1 -180 2420 180 3180)
|
||||
rect(via1 -125 2475 125 2725)
|
||||
rect(via1 -125 2875 125 3125)
|
||||
rect(metal2 -1400 2350 1400 3250)
|
||||
rect(psd -275 2325 275 3275)
|
||||
rect(psd -275 2325 275 3275)
|
||||
rect(psd -275 2325 275 3275)
|
||||
)
|
||||
|
||||
# Outgoing pins and their connections to nets
|
||||
pin(IN IN)
|
||||
pin($1 $2)
|
||||
pin(OUT OUT)
|
||||
pin($3 $4)
|
||||
pin($4 $5)
|
||||
|
||||
# Devices and their connections
|
||||
device($1 PMOS
|
||||
location(-400 2800)
|
||||
abstract(D$PMOS)
|
||||
param(L 0.25)
|
||||
param(W 0.95)
|
||||
param(AS 0.49875)
|
||||
param(AD 0.26125)
|
||||
terminal(S $2)
|
||||
terminal(G IN)
|
||||
terminal(D $5)
|
||||
)
|
||||
device($2 PMOS
|
||||
location(400 2800)
|
||||
abstract(D$PMOS$1)
|
||||
param(L 0.25)
|
||||
param(W 0.95)
|
||||
param(AS 0.26125)
|
||||
param(AD 0.49875)
|
||||
terminal(S $5)
|
||||
terminal(G $2)
|
||||
terminal(D OUT)
|
||||
)
|
||||
device($3 NMOS
|
||||
location(-400 0)
|
||||
abstract(D$NMOS)
|
||||
param(L 0.25)
|
||||
param(W 0.95)
|
||||
param(AS 0.49875)
|
||||
param(AD 0.26125)
|
||||
terminal(S $2)
|
||||
terminal(G IN)
|
||||
terminal(D $4)
|
||||
)
|
||||
device($4 NMOS
|
||||
location(400 0)
|
||||
abstract(D$NMOS$1)
|
||||
param(L 0.25)
|
||||
param(W 0.95)
|
||||
param(AS 0.26125)
|
||||
param(AD 0.49875)
|
||||
terminal(S $4)
|
||||
terminal(G $2)
|
||||
terminal(D OUT)
|
||||
)
|
||||
|
||||
)
|
||||
Reference in New Issue
Block a user