mirror of https://github.com/KLayout/klayout.git
WIP: better reproducablility for .lvsdb layer names, updated tests.
This commit is contained in:
parent
993ef78575
commit
95a1e38fe3
|
|
@ -67,6 +67,7 @@ module DRC
|
|||
@netlisted = false
|
||||
@connect_implicit = []
|
||||
@l2n = nil
|
||||
@lnum = 0
|
||||
end
|
||||
|
||||
# %DRC%
|
||||
|
|
@ -404,9 +405,10 @@ module DRC
|
|||
ensure_data
|
||||
|
||||
@layers[id] = data
|
||||
@lnum += 1
|
||||
|
||||
# every layer gets registered and intra-layer connections are made
|
||||
@l2n.register(data, "l" + id.to_s)
|
||||
@l2n.register(data, "l" + @lnum.to_s)
|
||||
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -10,33 +10,33 @@ layout(
|
|||
|
||||
# Mask layers
|
||||
layer(l3 'NWELL (1/0)')
|
||||
layer(l8 'POLY (5/0)')
|
||||
layer(l9 'CONTACT (6/0)')
|
||||
layer(l10 'METAL1 (7/0)')
|
||||
layer(l11 'METAL1_LABEL (7/1)')
|
||||
layer(l12 'VIA1 (8/0)')
|
||||
layer(l13 'METAL2 (9/0)')
|
||||
layer(l14 'METAL2_LABEL (9/1)')
|
||||
layer(l15)
|
||||
layer(l23)
|
||||
layer(l31)
|
||||
layer(l4 'POLY (5/0)')
|
||||
layer(l8 'CONTACT (6/0)')
|
||||
layer(l9 'METAL1 (7/0)')
|
||||
layer(l10 'METAL1_LABEL (7/1)')
|
||||
layer(l11 'VIA1 (8/0)')
|
||||
layer(l12 'METAL2 (9/0)')
|
||||
layer(l13 'METAL2_LABEL (9/1)')
|
||||
layer(l7)
|
||||
layer(l1)
|
||||
layer(l5)
|
||||
|
||||
# Mask layer connectivity
|
||||
connect(l3 l3)
|
||||
connect(l8 l8 l9)
|
||||
connect(l9 l8 l9 l10 l23 l31)
|
||||
connect(l10 l9 l10 l11 l12)
|
||||
connect(l11 l10 l11)
|
||||
connect(l12 l10 l12 l13)
|
||||
connect(l13 l12 l13 l14)
|
||||
connect(l14 l13 l14)
|
||||
connect(l15 l15)
|
||||
connect(l23 l9 l23)
|
||||
connect(l31 l9 l31)
|
||||
connect(l4 l4 l8)
|
||||
connect(l8 l4 l8 l9 l1 l5)
|
||||
connect(l9 l8 l9 l10 l11)
|
||||
connect(l10 l9 l10)
|
||||
connect(l11 l9 l11 l12)
|
||||
connect(l12 l11 l12 l13)
|
||||
connect(l13 l12 l13)
|
||||
connect(l7 l7)
|
||||
connect(l1 l8 l1)
|
||||
connect(l5 l8 l5)
|
||||
|
||||
# Global nets and connectivity
|
||||
global(l3 NWELL)
|
||||
global(l15 SUBSTRATE)
|
||||
global(l7 SUBSTRATE)
|
||||
|
||||
# Device class section
|
||||
class(PMOS MOS4)
|
||||
|
|
@ -46,13 +46,13 @@ layout(
|
|||
# Device abstracts list the pin shapes of the devices.
|
||||
device(D$PMOS PMOS
|
||||
terminal(S
|
||||
rect(l23 (-575 -750) (450 1500))
|
||||
rect(l1 (-575 -750) (450 1500))
|
||||
)
|
||||
terminal(G
|
||||
rect(l8 (-125 -750) (250 1500))
|
||||
rect(l4 (-125 -750) (250 1500))
|
||||
)
|
||||
terminal(D
|
||||
rect(l23 (125 -750) (450 1500))
|
||||
rect(l1 (125 -750) (450 1500))
|
||||
)
|
||||
terminal(B
|
||||
rect(l3 (-125 -750) (250 1500))
|
||||
|
|
@ -60,16 +60,16 @@ layout(
|
|||
)
|
||||
device(D$NMOS NMOS
|
||||
terminal(S
|
||||
rect(l31 (-575 -450) (450 900))
|
||||
rect(l5 (-575 -450) (450 900))
|
||||
)
|
||||
terminal(G
|
||||
rect(l8 (-125 -450) (250 900))
|
||||
rect(l4 (-125 -450) (250 900))
|
||||
)
|
||||
terminal(D
|
||||
rect(l31 (125 -450) (450 900))
|
||||
rect(l5 (125 -450) (450 900))
|
||||
)
|
||||
terminal(B
|
||||
rect(l15 (-125 -450) (250 900))
|
||||
rect(l7 (-125 -450) (250 900))
|
||||
)
|
||||
)
|
||||
|
||||
|
|
@ -79,48 +79,48 @@ layout(
|
|||
|
||||
# Nets with their geometries
|
||||
net(1 name(IN)
|
||||
rect(l8 (900 50) (250 1050))
|
||||
rect(l8 (-250 0) (250 3100))
|
||||
rect(l8 (-250 0) (250 1650))
|
||||
rect(l8 (-800 -3100) (550 400))
|
||||
rect(l9 (-450 -300) (200 200))
|
||||
rect(l10 (-300 -300) (400 400))
|
||||
rect(l11 (-201 -201) (2 2))
|
||||
rect(l4 (900 50) (250 1050))
|
||||
rect(l4 (-250 0) (250 3100))
|
||||
rect(l4 (-250 0) (250 1650))
|
||||
rect(l4 (-800 -3100) (550 400))
|
||||
rect(l8 (-450 -300) (200 200))
|
||||
rect(l9 (-300 -300) (400 400))
|
||||
rect(l10 (-201 -201) (2 2))
|
||||
)
|
||||
net(2 name(VSS)
|
||||
rect(l9 (550 300) (200 200))
|
||||
rect(l9 (-200 300) (200 200))
|
||||
rect(l10 (-250 -950) (300 1050))
|
||||
rect(l12 (-250 -950) (200 200))
|
||||
rect(l12 (-200 300) (200 200))
|
||||
rect(l13 (-750 -850) (2000 1000))
|
||||
rect(l14 (-101 -851) (2 2))
|
||||
rect(l31 (-1451 49) (450 900))
|
||||
rect(l8 (550 300) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l9 (-250 -950) (300 1050))
|
||||
rect(l11 (-250 -950) (200 200))
|
||||
rect(l11 (-200 300) (200 200))
|
||||
rect(l12 (-750 -850) (2000 1000))
|
||||
rect(l13 (-101 -851) (2 2))
|
||||
rect(l5 (-1451 49) (450 900))
|
||||
)
|
||||
net(3 name(VDD)
|
||||
rect(l9 (550 4350) (200 200))
|
||||
rect(l9 (-200 300) (200 200))
|
||||
rect(l9 (-200 300) (200 200))
|
||||
rect(l10 (-250 -1300) (300 1600))
|
||||
rect(l12 (-250 -800) (200 200))
|
||||
rect(l12 (-200 300) (200 200))
|
||||
rect(l13 (-750 -850) (2000 1000))
|
||||
rect(l14 (-151 -851) (2 2))
|
||||
rect(l23 (-1401 -851) (450 1500))
|
||||
rect(l8 (550 4350) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l9 (-250 -1300) (300 1600))
|
||||
rect(l11 (-250 -800) (200 200))
|
||||
rect(l11 (-200 300) (200 200))
|
||||
rect(l12 (-750 -850) (2000 1000))
|
||||
rect(l13 (-151 -851) (2 2))
|
||||
rect(l1 (-1401 -851) (450 1500))
|
||||
)
|
||||
net(4 name(OUT)
|
||||
rect(l9 (1300 4350) (200 200))
|
||||
rect(l9 (-200 300) (200 200))
|
||||
rect(l9 (-200 300) (200 200))
|
||||
rect(l9 (-200 -5250) (200 200))
|
||||
rect(l9 (-200 300) (200 200))
|
||||
rect(l10 (-250 3250) (300 1400))
|
||||
rect(l10 (-300 -4600) (300 3200))
|
||||
rect(l10 (-300 -2900) (450 400))
|
||||
rect(l10 (-450 -1550) (300 850))
|
||||
rect(l11 (-51 499) (2 2))
|
||||
rect(l23 (-351 2649) (450 1500))
|
||||
rect(l31 (-450 -5500) (450 900))
|
||||
rect(l8 (1300 4350) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (-200 -5250) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l9 (-250 3250) (300 1400))
|
||||
rect(l9 (-300 -4600) (300 3200))
|
||||
rect(l9 (-300 -2900) (450 400))
|
||||
rect(l9 (-450 -1550) (300 850))
|
||||
rect(l10 (-51 499) (2 2))
|
||||
rect(l1 (-351 2649) (450 1500))
|
||||
rect(l5 (-450 -5500) (450 900))
|
||||
)
|
||||
net(5 name(NWELL)
|
||||
rect(l3 (0 2950) (2000 3200))
|
||||
|
|
|
|||
|
|
@ -9,38 +9,38 @@ layout(
|
|||
# This section lists the mask layers (drawing or derived) and their connections.
|
||||
|
||||
# Mask layers
|
||||
layer(l103 'NWELL (1/0)')
|
||||
layer(l108 'POLY (5/0)')
|
||||
layer(l109 'CONTACT (6/0)')
|
||||
layer(l110 'METAL1 (7/0)')
|
||||
layer(l111 'METAL1_LABEL (7/1)')
|
||||
layer(l112 'VIA1 (8/0)')
|
||||
layer(l113 'METAL2 (9/0)')
|
||||
layer(l114 'METAL2_LABEL (9/1)')
|
||||
layer(l115)
|
||||
layer(l123)
|
||||
layer(l125)
|
||||
layer(l133)
|
||||
layer(l135)
|
||||
layer(l3 'NWELL (1/0)')
|
||||
layer(l4 'POLY (5/0)')
|
||||
layer(l8 'CONTACT (6/0)')
|
||||
layer(l11 'METAL1 (7/0)')
|
||||
layer(l12 'METAL1_LABEL (7/1)')
|
||||
layer(l13 'VIA1 (8/0)')
|
||||
layer(l14 'METAL2 (9/0)')
|
||||
layer(l15 'METAL2_LABEL (9/1)')
|
||||
layer(l7)
|
||||
layer(l1)
|
||||
layer(l9)
|
||||
layer(l5)
|
||||
layer(l10)
|
||||
|
||||
# Mask layer connectivity
|
||||
connect(l103 l103 l125)
|
||||
connect(l108 l108 l109)
|
||||
connect(l109 l108 l109 l110 l123 l125 l133 l135)
|
||||
connect(l110 l109 l110 l111 l112)
|
||||
connect(l111 l110 l111)
|
||||
connect(l112 l110 l112 l113)
|
||||
connect(l113 l112 l113 l114)
|
||||
connect(l114 l113 l114)
|
||||
connect(l115 l115)
|
||||
connect(l123 l109 l123)
|
||||
connect(l125 l103 l109 l125)
|
||||
connect(l133 l109 l133)
|
||||
connect(l135 l109 l135)
|
||||
connect(l3 l3 l9)
|
||||
connect(l4 l4 l8)
|
||||
connect(l8 l4 l8 l11 l1 l9 l5 l10)
|
||||
connect(l11 l8 l11 l12 l13)
|
||||
connect(l12 l11 l12)
|
||||
connect(l13 l11 l13 l14)
|
||||
connect(l14 l13 l14 l15)
|
||||
connect(l15 l14 l15)
|
||||
connect(l7 l7)
|
||||
connect(l1 l8 l1)
|
||||
connect(l9 l3 l8 l9)
|
||||
connect(l5 l8 l5)
|
||||
connect(l10 l8 l10)
|
||||
|
||||
# Global nets and connectivity
|
||||
global(l115 SUBSTRATE)
|
||||
global(l135 SUBSTRATE)
|
||||
global(l7 SUBSTRATE)
|
||||
global(l10 SUBSTRATE)
|
||||
|
||||
# Device class section
|
||||
class(PMOS MOS4)
|
||||
|
|
@ -50,30 +50,30 @@ layout(
|
|||
# Device abstracts list the pin shapes of the devices.
|
||||
device(D$PMOS PMOS
|
||||
terminal(S
|
||||
rect(l123 (-575 -750) (450 1500))
|
||||
rect(l1 (-575 -750) (450 1500))
|
||||
)
|
||||
terminal(G
|
||||
rect(l108 (-125 -750) (250 1500))
|
||||
rect(l4 (-125 -750) (250 1500))
|
||||
)
|
||||
terminal(D
|
||||
rect(l123 (125 -750) (450 1500))
|
||||
rect(l1 (125 -750) (450 1500))
|
||||
)
|
||||
terminal(B
|
||||
rect(l103 (-125 -750) (250 1500))
|
||||
rect(l3 (-125 -750) (250 1500))
|
||||
)
|
||||
)
|
||||
device(D$NMOS NMOS
|
||||
terminal(S
|
||||
rect(l133 (-575 -450) (450 900))
|
||||
rect(l5 (-575 -450) (450 900))
|
||||
)
|
||||
terminal(G
|
||||
rect(l108 (-125 -450) (250 900))
|
||||
rect(l4 (-125 -450) (250 900))
|
||||
)
|
||||
terminal(D
|
||||
rect(l133 (125 -450) (450 900))
|
||||
rect(l5 (125 -450) (450 900))
|
||||
)
|
||||
terminal(B
|
||||
rect(l115 (-125 -450) (250 900))
|
||||
rect(l7 (-125 -450) (250 900))
|
||||
)
|
||||
)
|
||||
|
||||
|
|
@ -83,61 +83,61 @@ layout(
|
|||
|
||||
# Nets with their geometries
|
||||
net(1 name(IN)
|
||||
rect(l108 (900 50) (250 1050))
|
||||
rect(l108 (-250 0) (250 3100))
|
||||
rect(l108 (-250 0) (250 1650))
|
||||
rect(l108 (-800 -3100) (550 400))
|
||||
rect(l109 (-450 -300) (200 200))
|
||||
rect(l110 (-300 -300) (400 400))
|
||||
rect(l111 (-201 -201) (2 2))
|
||||
rect(l4 (900 50) (250 1050))
|
||||
rect(l4 (-250 0) (250 3100))
|
||||
rect(l4 (-250 0) (250 1650))
|
||||
rect(l4 (-800 -3100) (550 400))
|
||||
rect(l8 (-450 -300) (200 200))
|
||||
rect(l11 (-300 -300) (400 400))
|
||||
rect(l12 (-201 -201) (2 2))
|
||||
)
|
||||
net(2 name(VDD)
|
||||
rect(l103 (0 2950) (3000 3200))
|
||||
rect(l109 (-2450 -1800) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l109 (1400 -800) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l110 (-1850 -1200) (300 1600))
|
||||
rect(l110 (1300 -1200) (300 1200))
|
||||
rect(l112 (-1850 -800) (200 200))
|
||||
rect(l112 (-200 300) (200 200))
|
||||
rect(l112 (1400 -700) (200 200))
|
||||
rect(l112 (-200 300) (200 200))
|
||||
rect(l113 (-2350 -850) (3000 1000))
|
||||
rect(l114 (-151 -851) (2 2))
|
||||
rect(l123 (-2401 -851) (450 1500))
|
||||
rect(l125 (1050 -1200) (600 1200))
|
||||
rect(l3 (0 2950) (3000 3200))
|
||||
rect(l8 (-2450 -1800) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (1400 -800) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l11 (-1850 -1200) (300 1600))
|
||||
rect(l11 (1300 -1200) (300 1200))
|
||||
rect(l13 (-1850 -800) (200 200))
|
||||
rect(l13 (-200 300) (200 200))
|
||||
rect(l13 (1400 -700) (200 200))
|
||||
rect(l13 (-200 300) (200 200))
|
||||
rect(l14 (-2350 -850) (3000 1000))
|
||||
rect(l15 (-151 -851) (2 2))
|
||||
rect(l1 (-2401 -851) (450 1500))
|
||||
rect(l9 (1050 -1200) (600 1200))
|
||||
)
|
||||
net(3 name(OUT)
|
||||
rect(l109 (1300 4350) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l109 (-200 -5250) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l110 (-250 3250) (300 1400))
|
||||
rect(l110 (-300 -4600) (300 3200))
|
||||
rect(l110 (-300 -2900) (450 400))
|
||||
rect(l110 (-450 -1550) (300 850))
|
||||
rect(l111 (-51 499) (2 2))
|
||||
rect(l123 (-351 2649) (450 1500))
|
||||
rect(l133 (-450 -5500) (450 900))
|
||||
rect(l8 (1300 4350) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (-200 -5250) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l11 (-250 3250) (300 1400))
|
||||
rect(l11 (-300 -4600) (300 3200))
|
||||
rect(l11 (-300 -2900) (450 400))
|
||||
rect(l11 (-450 -1550) (300 850))
|
||||
rect(l12 (-51 499) (2 2))
|
||||
rect(l1 (-351 2649) (450 1500))
|
||||
rect(l5 (-450 -5500) (450 900))
|
||||
)
|
||||
net(4 name(VSS)
|
||||
rect(l109 (550 300) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l109 (1400 -550) (200 200))
|
||||
rect(l109 (-200 300) (200 200))
|
||||
rect(l110 (-1850 -1100) (300 1050))
|
||||
rect(l110 (1300 -1050) (300 1200))
|
||||
rect(l112 (-1850 -1100) (200 200))
|
||||
rect(l112 (-200 300) (200 200))
|
||||
rect(l112 (1400 -700) (200 200))
|
||||
rect(l112 (-200 300) (200 200))
|
||||
rect(l113 (-2350 -850) (3000 1000))
|
||||
rect(l114 (-151 -851) (2 2))
|
||||
rect(l133 (-2401 49) (450 900))
|
||||
rect(l135 (1050 -900) (600 1200))
|
||||
rect(l8 (550 300) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l8 (1400 -550) (200 200))
|
||||
rect(l8 (-200 300) (200 200))
|
||||
rect(l11 (-1850 -1100) (300 1050))
|
||||
rect(l11 (1300 -1050) (300 1200))
|
||||
rect(l13 (-1850 -1100) (200 200))
|
||||
rect(l13 (-200 300) (200 200))
|
||||
rect(l13 (1400 -700) (200 200))
|
||||
rect(l13 (-200 300) (200 200))
|
||||
rect(l14 (-2350 -850) (3000 1000))
|
||||
rect(l15 (-151 -851) (2 2))
|
||||
rect(l5 (-2401 49) (450 900))
|
||||
rect(l10 (1050 -900) (600 1200))
|
||||
)
|
||||
|
||||
# Devices and their connections
|
||||
|
|
|
|||
|
|
@ -839,10 +839,10 @@ match_devices $3 $3
|
|||
match_devices $4 $4
|
||||
end_circuit NAND NAND MATCH
|
||||
begin_circuit TOP TOP
|
||||
match_nets OUT OUT
|
||||
match_nets INT INT
|
||||
match_nets IN2 IN2
|
||||
match_nets INT INT
|
||||
match_nets IN1 IN1
|
||||
match_nets OUT OUT
|
||||
match_nets VDD VDD
|
||||
match_nets VSS VSS
|
||||
match_pins $0 $0
|
||||
|
|
@ -883,10 +883,10 @@ match_devices $3 $3
|
|||
match_devices $4 $4
|
||||
end_circuit NAND NAND MATCH
|
||||
begin_circuit TOP TOP
|
||||
match_nets OUT OUT
|
||||
match_nets INT INT
|
||||
match_nets IN2 IN2
|
||||
match_nets INT INT
|
||||
match_nets IN1 IN1
|
||||
match_nets OUT OUT
|
||||
match_nets VDD VDD
|
||||
match_nets VSS VSS
|
||||
match_pins $0 $0
|
||||
|
|
|
|||
Loading…
Reference in New Issue