mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-29 17:30:09 +02:00
Main issue: universal DRC scheme and rectangle filtering/opposite filtering/shielding. The space function required some enhancements to accomodate symmetric interactions. Now there are symmetric edge pairs. Space initially runs twofold (primary to foreign) but produces symmetric edge pairs. These are filtered later unless converted before.
46 lines
1.4 KiB
Plaintext
46 lines
1.4 KiB
Plaintext
|
|
source $drc_test_source
|
|
target $drc_test_target
|
|
|
|
if $drc_test_deep
|
|
deep
|
|
threads(0) # easier to debug
|
|
end
|
|
|
|
l1 = input(1, 0)
|
|
l2 = input(2, 0)
|
|
l3 = input(3, 0)
|
|
|
|
l1.output(1, 0)
|
|
l2.output(2, 0)
|
|
l3.output(3, 0)
|
|
|
|
# conversions
|
|
l1.drc((space(projection) < 1.0).polygons).output(100, 0)
|
|
l1.drc((space(projection) < 1.0).edges).output(101, 0)
|
|
l1.drc((space(projection) < 1.0).first_edges).output(102, 0)
|
|
l1.drc((space(projection) < 1.0).second_edges).output(103, 0)
|
|
l1.drc((sep(l2, projection) < 1.0).first_edges).output(104, 0)
|
|
l1.drc((sep(l2, projection) < 1.0).second_edges).output(105, 0)
|
|
|
|
l2.drc(primary.edges).output(110, 0)
|
|
l2.drc(primary.edges.extended_in(0.1)).output(111, 0)
|
|
l2.drc(primary.edges.extended_out(0.1)).output(112, 0)
|
|
|
|
# edge/polygon booleans
|
|
l1.drc(primary.edges - secondary(l2)).output(120, 0)
|
|
l1.drc(primary.edges & secondary(l2)).output(121, 0)
|
|
|
|
# edge booleans
|
|
l1.drc(primary.edges - (primary & secondary(l2)).edges).output(130, 0)
|
|
l1.drc(primary.edges & (primary & secondary(l2)).edges).output(131, 0)
|
|
|
|
# start_segments
|
|
l1.drc(primary.edges.start_segments(1.0)).output(140, 0)
|
|
l1.drc(primary.edges.start_segments(0.0, 0.5)).output(141, 0)
|
|
l1.drc(primary.edges.end_segments(1.0)).output(142, 0)
|
|
l1.drc(primary.edges.end_segments(1.0, 0.5)).output(143, 0)
|
|
l1.drc(primary.edges.centers(1.0)).output(144, 0)
|
|
l1.drc(primary.edges.centers(1.0, 0.5)).output(145, 0)
|
|
|