mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-29 01:14:35 +02:00
Merge pull request #2089 from KLayout/bugfix/issue-2087
Bugfix/issue 2087
This commit is contained in:
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
+58
@@ -0,0 +1,58 @@
|
||||
|
||||
source($drc_test_source)
|
||||
target($drc_test_target)
|
||||
|
||||
verbose
|
||||
|
||||
ncpu = 4
|
||||
|
||||
chip = input(189, 4)
|
||||
chip.output(189, 4)
|
||||
|
||||
# NOTE: this must not happen in tiled mode as the sealring
|
||||
# is only visible as a whole in flat mode
|
||||
sealring = source.cell("sealring")
|
||||
|
||||
metal1_seal = sealring.input(8, 0)
|
||||
metal1_seal_inner = metal1_seal.holes
|
||||
# NOTE: metal1_seal_outer is empty if there is no sealring ->
|
||||
# the full chip will be filled
|
||||
metal1_seal_outer = chip.interacting(metal1_seal_inner) - metal1_seal_inner
|
||||
|
||||
# Everything else can be done in tiled mode
|
||||
|
||||
tiles(500)
|
||||
tile_borders(2.0)
|
||||
threads(ncpu)
|
||||
|
||||
metal1 = input(8, 0)
|
||||
metal1.output(8, 0)
|
||||
metal1_fill = input(8, 22)
|
||||
metal1_nofill = input(8, 23) + metal1_seal_outer
|
||||
|
||||
metal1_dist = 0.42
|
||||
min_space_to_fill = 1.0
|
||||
|
||||
pattern = fill_pattern("METAL1_FILL1")
|
||||
pattern.shape(8, 22, box(0.0, 0.0, 5.0, 5.0))
|
||||
pattern.dim(5.0, 5.0)
|
||||
pattern.margin(metal1_dist, metal1_dist)
|
||||
|
||||
to_fill = chip - metal1_nofill - metal1
|
||||
|
||||
to_fill = to_fill.fill_with_left(pattern, hstep(7.0, 0), vstep(1.5, 7.0), multi_origin)
|
||||
|
||||
pattern = fill_pattern("METAL1_FILL2")
|
||||
pattern.shape(8, 22, box(0.0, 0.0, 2.0, 2.0))
|
||||
pattern.dim(2.0, 2.0)
|
||||
pattern.margin(metal1_dist, metal1_dist)
|
||||
|
||||
to_fill = to_fill.fill_with_left(pattern, hstep(2.42, 0), vstep(0.65, 2.42), multi_origin)
|
||||
|
||||
pattern = fill_pattern("METAL1_FILL3")
|
||||
pattern.shape(8, 22, box(0.0, 0.0, 1.2, 1.2))
|
||||
pattern.dim(1.2, 1.2)
|
||||
pattern.margin(metal1_dist, metal1_dist)
|
||||
|
||||
to_fill = to_fill.fill_with_left(pattern, hstep(1.62, 0), vstep(0.3, 1.62), multi_origin)
|
||||
|
||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Vendored
+4
@@ -14,18 +14,22 @@ f2 = extent - l1.sized(1.0)
|
||||
p1 = fill_pattern("PAT1").shape(100, 0, box(0, 0, 1.um, 1.um)).origin(-0.5.um, -0.5.um)
|
||||
p2 = fill_pattern("PAT2").shape(100, 1, box(0, 0, 1.um, 1.um)).origin(-0.5.um, -0.5.um)
|
||||
p3 = fill_pattern("PAT3").shape(100, 2, box(0, 0, 1.um, 1.um)).shape(1000, 0, box(-0.5.um, -0.5.um, 1.5.um, 1.5.um))
|
||||
p4 = fill_pattern("PAT4").shape(100, 3, box(0, 0, 1.um, 1.um)).dim(1.um, 1.um).margin(2.um, 4.um)
|
||||
|
||||
p11 = fill_pattern("PAT11").shape(101, 0, box(0, 0, 1.um, 1.um)).origin(-0.5.um, -0.5.um)
|
||||
p12 = fill_pattern("PAT12").shape(101, 1, box(0, 0, 1.um, 1.um)).origin(-0.5.um, -0.5.um)
|
||||
p13 = fill_pattern("PAT13").shape(101, 2, box(0, 0, 1.um, 1.um)).shape(1000, 0, box(-0.5.um, -0.5.um, 1.5.um, 1.5.um))
|
||||
p14 = fill_pattern("PAT14").shape(101, 3, box(0, 0, 1.um, 1.um)).dim(1.um, 1.um).margin(2.um, 4.um)
|
||||
|
||||
f1.fill(p1, hstep(2.0, 1.0), vstep(-1.0, 2.0))
|
||||
f1.fill(p2, hstep(2.0, 1.0), vstep(-1.0, 2.0), auto_origin)
|
||||
f1.fill(p3)
|
||||
f1.fill(p4, hstep(2.0, 0), vstep(0, 2.0))
|
||||
|
||||
f2.fill(p11, hstep(2.0, 1.0), vstep(-1.0, 2.0))
|
||||
f2.fill(p12, hstep(2.0, 1.0), vstep(-1.0, 2.0), auto_origin)
|
||||
f2.fill(p13)
|
||||
f2.fill(p14, hstep(2.0, 0), vstep(0, 2.0))
|
||||
|
||||
l1.output(1, 0)
|
||||
f1.output(10, 0)
|
||||
|
||||
Vendored
+5
-1
@@ -11,8 +11,12 @@ l1 = input(1, 0)
|
||||
f1 = l1
|
||||
|
||||
p1 = fill_pattern("PAT1").shape(100, 0, box(0, 0, 1.um, 1.um)).origin(-0.5.um, -0.5.um)
|
||||
p2 = fill_pattern("PAT1").shape(100, 1, box(0, 0, 1.um, 1.um)).dim(1.um, 1.um)
|
||||
p3 = fill_pattern("PAT1").shape(100, 2, box(0, 0, 1.um, 1.um)).dim(1.um, 1.um).margin(1.um, 2.um)
|
||||
|
||||
f1.fill_with_left(p1, hstep(2.0, 1.0), vstep(-1.0, 2.0)).output(100, 0)
|
||||
f1.fill_with_left(p1, hstep(2.0, 1.0), vstep(-1.0, 2.0)).output(101, 0)
|
||||
f1.fill_with_left(p2, hstep(2.0, 1.0), vstep(-1.0, 2.0)).output(101, 1)
|
||||
f1.fill_with_left(p3, hstep(2.0, 1.0), vstep(-1.0, 2.0)).output(101, 2)
|
||||
|
||||
l1.output(1, 0)
|
||||
f1.output(10, 0)
|
||||
|
||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Reference in New Issue
Block a user