From db9f43f57683f365e5810cc4177027d1d561502a Mon Sep 17 00:00:00 2001
From: Matthias Koefferlein
Date: Wed, 16 Sep 2020 23:45:26 +0200
Subject: [PATCH] Updated DRC doc and enhanced generation of DRC doc somewhat
(bigger images, no exaes etc.)
---
scripts/create_drc_samples.rb | 35 +++++++++-
scripts/klayoutrc_drc_samples | 2 +-
src/drc/drc/built-in-macros/_drc_engine.rb | 8 +++
src/drc/drc/built-in-macros/_drc_layer.rb | 34 +++++++++-
src/drc/drc/built-in-macros/_drc_tags.rb | 10 +++
src/lay/lay/doc/about/drc_ref_layer.xml | 14 ++++
src/lay/lay/doc/images/drc_and1.png | Bin 5105 -> 7844 bytes
src/lay/lay/doc/images/drc_and2.png | Bin 6059 -> 8724 bytes
src/lay/lay/doc/images/drc_and3.png | Bin 6247 -> 8963 bytes
src/lay/lay/doc/images/drc_centers1.png | Bin 5207 -> 6877 bytes
src/lay/lay/doc/images/drc_centers2.png | Bin 5165 -> 6855 bytes
src/lay/lay/doc/images/drc_corners1.png | Bin 5223 -> 7823 bytes
src/lay/lay/doc/images/drc_corners2.png | Bin 5103 -> 7635 bytes
src/lay/lay/doc/images/drc_corners3.png | Bin 5321 -> 7893 bytes
src/lay/lay/doc/images/drc_enc1.png | Bin 5790 -> 8707 bytes
src/lay/lay/doc/images/drc_enc2.png | Bin 5897 -> 8781 bytes
src/lay/lay/doc/images/drc_end_segments1.png | Bin 5116 -> 6900 bytes
src/lay/lay/doc/images/drc_end_segments2.png | Bin 5209 -> 7006 bytes
src/lay/lay/doc/images/drc_extended1.png | Bin 4949 -> 6731 bytes
src/lay/lay/doc/images/drc_extended2.png | Bin 5132 -> 7137 bytes
src/lay/lay/doc/images/drc_extended3.png | Bin 5278 -> 7187 bytes
src/lay/lay/doc/images/drc_extended4.png | Bin 5110 -> 6922 bytes
src/lay/lay/doc/images/drc_extent_refs1.png | Bin 4637 -> 6382 bytes
src/lay/lay/doc/images/drc_extent_refs10.png | Bin 4627 -> 6398 bytes
src/lay/lay/doc/images/drc_extent_refs11.png | Bin 4585 -> 6372 bytes
src/lay/lay/doc/images/drc_extent_refs12.png | Bin 4905 -> 6615 bytes
src/lay/lay/doc/images/drc_extent_refs13.png | Bin 4660 -> 6635 bytes
src/lay/lay/doc/images/drc_extent_refs20.png | Bin 4733 -> 6488 bytes
src/lay/lay/doc/images/drc_extent_refs21.png | Bin 4749 -> 6537 bytes
src/lay/lay/doc/images/drc_extent_refs22.png | Bin 4748 -> 6498 bytes
src/lay/lay/doc/images/drc_extent_refs23.png | Bin 4733 -> 6481 bytes
src/lay/lay/doc/images/drc_extent_refs24.png | Bin 4669 -> 6425 bytes
src/lay/lay/doc/images/drc_extent_refs25.png | Bin 4703 -> 6435 bytes
src/lay/lay/doc/images/drc_extent_refs26.png | Bin 4733 -> 6479 bytes
src/lay/lay/doc/images/drc_extent_refs27.png | Bin 4734 -> 6482 bytes
src/lay/lay/doc/images/drc_extent_refs30.png | Bin 4744 -> 6517 bytes
src/lay/lay/doc/images/drc_extent_refs31.png | Bin 4716 -> 6778 bytes
src/lay/lay/doc/images/drc_extents1.png | Bin 4678 -> 6234 bytes
src/lay/lay/doc/images/drc_extents2.png | Bin 5693 -> 8239 bytes
src/lay/lay/doc/images/drc_holes.png | Bin 4945 -> 7159 bytes
src/lay/lay/doc/images/drc_hulls.png | Bin 4669 -> 6310 bytes
src/lay/lay/doc/images/drc_in.png | Bin 4782 -> 7187 bytes
src/lay/lay/doc/images/drc_inside.png | Bin 5199 -> 8230 bytes
src/lay/lay/doc/images/drc_inside_part.png | Bin 6039 -> 8670 bytes
src/lay/lay/doc/images/drc_interacting.png | Bin 5407 -> 8120 bytes
src/lay/lay/doc/images/drc_join1.png | Bin 5089 -> 7364 bytes
src/lay/lay/doc/images/drc_join2.png | Bin 6798 -> 9789 bytes
src/lay/lay/doc/images/drc_merged1.png | Bin 4711 -> 6650 bytes
src/lay/lay/doc/images/drc_merged2.png | Bin 4783 -> 6710 bytes
src/lay/lay/doc/images/drc_merged3.png | Bin 5558 -> 7914 bytes
src/lay/lay/doc/images/drc_merged4.png | Bin 5491 -> 7832 bytes
src/lay/lay/doc/images/drc_middle1.png | Bin 4435 -> 6212 bytes
src/lay/lay/doc/images/drc_moved1.png | Bin 5192 -> 7341 bytes
src/lay/lay/doc/images/drc_not1.png | Bin 5485 -> 8016 bytes
src/lay/lay/doc/images/drc_not2.png | Bin 6749 -> 9566 bytes
src/lay/lay/doc/images/drc_not3.png | Bin 6181 -> 8822 bytes
src/lay/lay/doc/images/drc_not_in.png | Bin 5045 -> 7200 bytes
src/lay/lay/doc/images/drc_not_inside.png | Bin 5501 -> 8057 bytes
.../lay/doc/images/drc_not_interacting.png | Bin 6136 -> 8698 bytes
src/lay/lay/doc/images/drc_not_outside.png | Bin 5096 -> 7984 bytes
.../lay/doc/images/drc_not_overlapping.png | Bin 6195 -> 8587 bytes
src/lay/lay/doc/images/drc_or1.png | Bin 5218 -> 7409 bytes
src/lay/lay/doc/images/drc_or2.png | Bin 6775 -> 9776 bytes
src/lay/lay/doc/images/drc_outside.png | Bin 6036 -> 8488 bytes
src/lay/lay/doc/images/drc_outside_part.png | Bin 6399 -> 9115 bytes
src/lay/lay/doc/images/drc_overlap1.png | Bin 6316 -> 9376 bytes
src/lay/lay/doc/images/drc_overlap2.png | Bin 6324 -> 9386 bytes
src/lay/lay/doc/images/drc_overlapping.png | Bin 5143 -> 7991 bytes
src/lay/lay/doc/images/drc_raw1.png | Bin 6124 -> 8934 bytes
src/lay/lay/doc/images/drc_raw2.png | Bin 6803 -> 9153 bytes
src/lay/lay/doc/images/drc_raw3.png | Bin 6203 -> 7980 bytes
src/lay/lay/doc/images/drc_rotated1.png | Bin 6976 -> 9245 bytes
.../lay/doc/images/drc_rounded_corners.png | Bin 5653 -> 8171 bytes
src/lay/lay/doc/images/drc_scaled1.png | Bin 5182 -> 7551 bytes
src/lay/lay/doc/images/drc_separation1.png | Bin 6129 -> 8437 bytes
src/lay/lay/doc/images/drc_sized1.png | Bin 4384 -> 5762 bytes
src/lay/lay/doc/images/drc_sized2.png | Bin 4531 -> 5886 bytes
src/lay/lay/doc/images/drc_sized3.png | Bin 4663 -> 6022 bytes
src/lay/lay/doc/images/drc_sized4.png | Bin 4634 -> 5965 bytes
src/lay/lay/doc/images/drc_sized5.png | Bin 4580 -> 5944 bytes
src/lay/lay/doc/images/drc_sized6.png | Bin 4679 -> 6031 bytes
src/lay/lay/doc/images/drc_space1.png | Bin 5489 -> 7285 bytes
src/lay/lay/doc/images/drc_space2.png | Bin 5193 -> 7218 bytes
src/lay/lay/doc/images/drc_space3.png | Bin 5425 -> 7259 bytes
.../lay/doc/images/drc_start_segments1.png | Bin 5139 -> 6960 bytes
.../lay/doc/images/drc_start_segments2.png | Bin 5302 -> 7121 bytes
src/lay/lay/doc/images/drc_textpoly1.png | Bin 4114 -> 5631 bytes
src/lay/lay/doc/images/drc_textpoly2.png | Bin 4097 -> 5600 bytes
src/lay/lay/doc/images/drc_texts1.png | Bin 3059 -> 4128 bytes
src/lay/lay/doc/images/drc_texts2.png | Bin 3142 -> 4161 bytes
src/lay/lay/doc/images/drc_transformed1.png | Bin 5869 -> 8155 bytes
src/lay/lay/doc/images/drc_width1.png | Bin 5031 -> 7081 bytes
src/lay/lay/doc/images/drc_width2.png | Bin 4843 -> 6877 bytes
src/lay/lay/doc/images/drc_width3.png | Bin 5027 -> 7122 bytes
src/lay/lay/doc/images/drc_width4.png | Bin 5382 -> 7692 bytes
src/lay/lay/doc/images/drc_with_angle1.png | Bin 5889 -> 7955 bytes
src/lay/lay/doc/images/drc_with_angle2.png | Bin 6257 -> 8139 bytes
src/lay/lay/doc/images/drc_with_angle3.png | Bin 5580 -> 7449 bytes
src/lay/lay/doc/images/drc_with_angle4.png | Bin 5606 -> 7688 bytes
src/lay/lay/doc/images/drc_xor1.png | Bin 5163 -> 7689 bytes
src/lay/lay/doc/images/drc_xor2.png | Bin 6863 -> 9845 bytes
src/lay/lay/doc/manual/drc_runsets.xml | 60 ++++++++++++++++++
src/lay/lay/layDRCLVSHelpResources.qrc | 4 ++
103 files changed, 162 insertions(+), 5 deletions(-)
diff --git a/scripts/create_drc_samples.rb b/scripts/create_drc_samples.rb
index b8ea6665a..fbf37b8b5 100644
--- a/scripts/create_drc_samples.rb
+++ b/scripts/create_drc_samples.rb
@@ -102,7 +102,7 @@ def run_demo(gen, cmd, out)
gen.produce(cell.shapes(l1), cell.shapes(l2))
- view.zoom_box(RBA::DBox::new(-2.0, -1.0, 8.0, 9.0))
+ view.zoom_box(RBA::DBox::new(-2.0, -2.0, 8.0, 9.0))
view.max_hier
t = RBA::Text::new(cmd, -1500, 8500)
@@ -144,7 +144,7 @@ SCRIPT
end
view.update_content
- view.save_image(res_path + "/" + img_path + "/" + out, 400, 400)
+ view.save_image(res_path + "/" + img_path + "/" + out, 500, 500)
puts "---> written #{res_path}/#{img_path}/#{out}"
@@ -709,5 +709,36 @@ run_demo gen, "labels & input2", "drc_textpoly1.png"
run_demo gen, "labels - input2", "drc_textpoly2.png"
+class Gen
+ def produce(s1, s2)
+ s1.insert(RBA::Polygon::new(RBA::Box::new(0, 0, 6000, 2000)))
+ s2.insert(RBA::Polygon::new(RBA::Box::new(3500, 3000, 6000, 4000)))
+ s2.insert(RBA::Polygon::new(RBA::Box::new(0, 5000, 2500, 7000)))
+ s2.insert(RBA::Polygon::new(RBA::Box::new(3500, 5000, 6000, 7000)))
+ end
+end
+
+gen = Gen::new
+
+run_demo gen, "input1.separation(input2, 3.5.um, projection, \n shielded)", "drc_shielded1.png"
+run_demo gen, "input1.separation(input2, 3.5.um, projection, \n transparent)", "drc_shielded2.png"
+
+
+class Gen
+ def produce(s1, s2)
+ s1.insert(RBA::Polygon::new(RBA::Box::new(0, 0, 2500, 2000)))
+ s1.insert(RBA::Polygon::new(RBA::Box::new(3500, 0, 6000, 2000)))
+ s2.insert(RBA::Polygon::new(RBA::Box::new(3500, 0, 6000, 2000)))
+ s2.insert(RBA::Polygon::new(RBA::Box::new(0, 5000, 2500, 7000)))
+ s2.insert(RBA::Polygon::new(RBA::Box::new(3500, 5000, 6000, 7000)))
+ end
+end
+
+gen = Gen::new
+
+run_demo gen, "input1.separation(input2, 3.5.um, projection, \n shielded)", "drc_shielded3.png"
+run_demo gen, "input1.separation(input2, 3.5.um, projection, \n transparent)", "drc_shielded4.png"
+
+
QRCGenerator::instance.finish
diff --git a/scripts/klayoutrc_drc_samples b/scripts/klayoutrc_drc_samples
index e00122048..4bdf2fb62 100644
--- a/scripts/klayoutrc_drc_samples
+++ b/scripts/klayoutrc_drc_samples
@@ -102,7 +102,7 @@
#404040
0.1
true
- lines
+ invisible
dots
tenths-dotted-lines
true
diff --git a/src/drc/drc/built-in-macros/_drc_engine.rb b/src/drc/drc/built-in-macros/_drc_engine.rb
index c575b7577..ed44c0a24 100644
--- a/src/drc/drc/built-in-macros/_drc_engine.rb
+++ b/src/drc/drc/built-in-macros/_drc_engine.rb
@@ -83,6 +83,14 @@ module DRC
DRCSizingMode::new(4)
end
+ def shielded
+ DRCShielded::new(true)
+ end
+
+ def transparent
+ DRCShielded::new(false)
+ end
+
def projection_limits(*args)
DRCProjectionLimits::new(*args)
end
diff --git a/src/drc/drc/built-in-macros/_drc_layer.rb b/src/drc/drc/built-in-macros/_drc_layer.rb
index 161d9f897..1c1b4ba49 100644
--- a/src/drc/drc/built-in-macros/_drc_layer.rb
+++ b/src/drc/drc/built-in-macros/_drc_layer.rb
@@ -2471,6 +2471,8 @@ CODE
# @li @b projection_limits(min, max) or projection_limits(min .. max) @/b:
# this option makes the check only consider edge pairs whose projected length on
# each other is more or equal than min and less than max @/li
+ # @li @b transparent @/b: performs the check without shielding (polygon layers only) @/li
+ # @li @b shielded @/b: performs the check with shielding (polygon layers only) @/li
# @/ul
#
# Note that without the angle_limit, acute corners will always be reported, since two
@@ -2508,6 +2510,18 @@ CODE
# @td @img(/images/drc_width4.png) @/td
# @/tr
# @/table
+ #
+ # "shielding" is a concept where an internal or external distance is measured only
+ # if the opposite edge is not blocked by other edges between. Shielded mode makes
+ # a difference if very large distances are to be checked and the minimum distance
+ # is much smaller: in this case, a large distance violation may be blocked by features
+ # located between the edges which are checked. With shielding, large distance violations
+ # are not reported in this case. Shielding is also effective at zero distance which has
+ # an adverse effect: Consider a case, where one layer A is a subset of another layer B. If
+ # you try to check the distance between features of B vs. A, you cannot use shielding,
+ # because B features which are identical to A features will shield those entirely.
+ #
+ # Shielding is enabled by default, but can be switched off with the "transparent" option.
# %DRC%
# @name space
@@ -2685,6 +2699,7 @@ CODE
alim = nil
whole_edges = false
other = nil
+ shielded = nil
n = 1
args.each do |a|
@@ -2699,6 +2714,8 @@ CODE
elsif a.is_a?(DRCProjectionLimits)
minp = @engine._prep_value(a.min)
maxp = @engine._prep_value(a.max)
+ elsif a.is_a?(DRCShielded)
+ shielded = a.value
elsif a.is_a?(Float) || a.is_a?(1.class)
value && raise("Value already specified")
value = @engine._prep_value(a)
@@ -2711,6 +2728,15 @@ CODE
if !value
raise("#{f}: A check value must be specified")
end
+
+ args = [ value, whole_edges, metrics, alim, minp, maxp ]
+ if shielded != nil
+ if self.data.is_a?(RBA::Region)
+ args << shielded
+ else
+ raise("#{f}: shielding can only be used for polygon layers")
+ end
+ end
border = (metrics == RBA::Region::Square ? value * 1.5 : value)
@@ -2718,13 +2744,13 @@ CODE
if other
raise("No other layer must be specified for single-layer checks (i.e. width)")
end
- DRCLayer::new(@engine, @engine._tcmd(self.data, border, RBA::EdgePairs, :#{f}_check, value, whole_edges, metrics, alim, minp, maxp))
+ DRCLayer::new(@engine, @engine._tcmd(self.data, border, RBA::EdgePairs, :#{f}_check, *args))
else
if !other
raise("The other layer must be specified for two-layer checks (i.e. overlap)")
end
requires_same_type(other, "#{f}")
- DRCLayer::new(@engine, @engine._tcmd(self.data, border, RBA::EdgePairs, :#{f}_check, other.data, value, whole_edges, metrics, alim, minp, maxp))
+ DRCLayer::new(@engine, @engine._tcmd(self.data, border, RBA::EdgePairs, :#{f}_check, other.data, *args))
end
end
@@ -3177,6 +3203,10 @@ CODE
@data
end
+ def data=(d)
+ @data = d
+ end
+
def requires_region(f)
self.data.is_a?(RBA::Region) || raise("#{f}: Requires a polygon layer")
end
diff --git a/src/drc/drc/built-in-macros/_drc_tags.rb b/src/drc/drc/built-in-macros/_drc_tags.rb
index 4cbe21533..30f460f2f 100644
--- a/src/drc/drc/built-in-macros/_drc_tags.rb
+++ b/src/drc/drc/built-in-macros/_drc_tags.rb
@@ -126,5 +126,15 @@ module DRC
end
end
+ # A wrapper for specifying shielded mode
+ class DRCShielded
+ def initialize(f)
+ @value = f
+ end
+ def value
+ @value
+ end
+ end
+
end
diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml
index fe5f8f27c..96e0a164f 100644
--- a/src/lay/lay/doc/about/drc_ref_layer.xml
+++ b/src/lay/lay/doc/about/drc_ref_layer.xml
@@ -2176,6 +2176,8 @@ make the check only consider edges enclosing angles of less than 45 degree. projection_limits(min, max) or projection_limits(min .. max) :
this option makes the check only consider edge pairs whose projected length on
each other is more or equal than min and less than max
+transparent : performs the check without shielding (polygon layers only)
+shielded : performs the check with shielding (polygon layers only)
Note that without the angle_limit, acute corners will always be reported, since two
@@ -2213,6 +2215,18 @@ The following images show the effect of various forms of the width check:
 |
+
+"shielding" is a concept where an internal or external distance is measured only
+if the opposite edge is not blocked by other edges between. Shielded mode makes
+a difference if very large distances are to be checked and the minimum distance
+is much smaller: in this case, a large distance violation may be blocked by features
+located between the edges which are checked. With shielding, large distance violations
+are not reported in this case. Shielding is also effective at zero distance which has
+an adverse effect: Consider a case, where one layer A is a subset of another layer B. If
+you try to check the distance between features of B vs. A, you cannot use shielding,
+because B features which are indentical to A features will shield those entirely.
+
+Shielding is enabled by default, but can be switched off with the "transparent" option.
"with_angle" - Selects edges by their angle
diff --git a/src/lay/lay/doc/images/drc_and1.png b/src/lay/lay/doc/images/drc_and1.png
index a0c7364764bef7fe9a9b7526ccc25c3b4a36c3be..8f480bfe7e51066118f15198d22272ea81c43057 100644
GIT binary patch
literal 7844
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
literal 6059
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
S;=um{0K4xTZ7Qw(lK%&WdK$9;
diff --git a/src/lay/lay/doc/images/drc_centers1.png b/src/lay/lay/doc/images/drc_centers1.png
index 9f731821069d3d268670f743ed7f3b812315fb22..909553ab4a5cfa26cd4b5144b0f8cdb7ffc08167 100644
GIT binary patch
literal 6877
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
literal 5207
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
literal 5165
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