diff --git a/scripts/extract_doc.rb b/scripts/extract_doc.rb
index e57c82c88..8d8789958 100755
--- a/scripts/extract_doc.rb
+++ b/scripts/extract_doc.rb
@@ -72,6 +72,8 @@ class DocItem
end
end
+ self.name || raise("Doc block without name")
+
para && @paragraphs.push(para)
end
@@ -247,16 +249,25 @@ collector = Collector::new
File.open($infile, "r") do |file|
block = nil
+ line = 0
file.each_line do |l|
- l = unescape(l)
- if l =~ /^\s*#\s*#{$key}/
- block = []
- elsif l =~ /^\s*#\s*(.*)\s*$/
- block && block.push($1)
- elsif l =~ /^\s*$/
- block && collector.add_block(block)
- block = nil
+
+ line += 1
+
+ begin
+ l = unescape(l)
+ if l =~ /^\s*#\s*#{$key}/
+ block = []
+ elsif l =~ /^\s*#\s*(.*)\s*$/
+ block && block.push($1)
+ elsif l =~ /^\s*$/
+ block && collector.add_block(block)
+ block = nil
+ end
+ rescue => ex
+ puts "ERROR in line #{line}:\n" + ex.to_s
+ exit 1
end
end
diff --git a/src/db/db/gsiDeclDbLayoutToNetlist.cc b/src/db/db/gsiDeclDbLayoutToNetlist.cc
index 3968293ea..3de03e304 100644
--- a/src/db/db/gsiDeclDbLayoutToNetlist.cc
+++ b/src/db/db/gsiDeclDbLayoutToNetlist.cc
@@ -420,7 +420,7 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
"@brief Reads the extracted netlist from the file.\n"
"This method employs the native format of KLayout.\n"
) +
- gsi::method_ext ("antenna_check", &antenna_check, gsi::arg ("gate"), gsi::arg ("metal"), gsi::arg ("ratio"), gsi::arg ("diodes", std::vector ()),
+ gsi::method_ext ("antenna_check", &antenna_check, gsi::arg ("gate"), gsi::arg ("metal"), gsi::arg ("ratio"), gsi::arg ("diodes", std::vector (), "[]"),
"@brief Runs an antenna check on the extracted clusters\n"
"\n"
"The antenna check will traverse all clusters and run an antenna check\n"
@@ -437,7 +437,7 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
"l2n.extract_netlist\n"
"# check for antenna ratio 10.0 of metal vs. poly:\n"
"errors = l2n.antenna(poly, metal, 10.0)\n"
- "@endcode\n"
+ "@/code\n"
"\n"
"You can include diodes which rectify the antenna effect. "
"Provide recognition layers for theses diodes and include them "
@@ -449,7 +449,7 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
"errors = l2n.antenna(poly, metal, 10.0, [ diode_layer1 ])\n"
"# include diode_layer1 and diode_layer2:"
"errors = l2n.antenna(poly, metal, 10.0, [ diode_layer1, diode_layer2 ])\n"
- "@endcode\n"
+ "@/code\n"
"\n"
"Diodes can be configured to partially reduce the antenna effect depending "
"on their area. This will make the diode_layer1 increase the ratio by 50.0 "
@@ -459,7 +459,7 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
"...\n"
"# diode_layer1 increases the ratio by 50 per sqaure micrometer area:\n"
"errors = l2n.antenna(poly, metal, 10.0 [ [ diode_layer, 50.0 ] ])\n"
- "@endcode\n"
+ "@/code\n"
),
"@brief A generic framework for extracting netlists from layouts\n"
"\n"
@@ -496,11 +496,16 @@ Class decl_dbLayoutToNetlist ("db", "LayoutToNetlist",
" The produced netlist is available with \\netlist. The Shapes of a\n"
" specific net are available with \\shapes_of_net. \\probe_net allows\n"
" finding a net by probing a specific location.\n"
- "@li\n"
+ "@/li\n"
+ "@/ul\n"
"\n"
- "Another use model is using the extractor with an existing \\DeepShapeStore object "
- "or even flat data. In this case, the preparation step is importing by "
- "taking existing region data using the \\register method.\n"
+ "You can also use the extractor with an existing \\DeepShapeStore object "
+ "or even flat data. In this case, preparation means importing existing regions "
+ "with the \\register method.\n"
+ "If you want to use the \\LayoutToNetlist object with flat data, use the "
+ "'LayoutToNetlist(topcell, dbu)' constructor. If you want to use it with "
+ "hierarchical data and an existing DeepShapeStore object, use the "
+ "'LayoutToNetlist(dss)' constructor.\n"
"\n"
"This class has been introduced in version 0.26."
);
diff --git a/src/drc/drc/built-in-macros/drc.lym b/src/drc/drc/built-in-macros/drc.lym
index 212403920..b0032387c 100644
--- a/src/drc/drc/built-in-macros/drc.lym
+++ b/src/drc/drc/built-in-macros/drc.lym
@@ -3596,7 +3596,6 @@ CODE
# The netter object
# %DRC%
-
# @scope
# @name Netter
# @brief DRC Reference: Netter object
@@ -3608,7 +3607,7 @@ CODE
#
# An individual netter object can be created, if the netter results
# need to be kept for multiple extractions. If you really need
- # a Netter object, use the global \\netter function:
+ # a Netter object, use the global \netter function:
#
# @code
# # create a new Netter object:
@@ -3649,7 +3648,12 @@ CODE
#
# # this will remove all connections made
# clear_connections
+ # ...
# @/code
+ #
+ # Further functionality of the Netter object:
+ #
+ # More methods will be added in the future to support network-related features.
class DRCNetter
diff --git a/src/lay/lay/doc/about/drc_ref.xml b/src/lay/lay/doc/about/drc_ref.xml
index d78407e3e..a4a9cf55f 100644
--- a/src/lay/lay/doc/about/drc_ref.xml
+++ b/src/lay/lay/doc/about/drc_ref.xml
@@ -1,7 +1,7 @@
-
+
@@ -9,6 +9,7 @@
+
diff --git a/src/lay/lay/doc/about/drc_ref_global.xml b/src/lay/lay/doc/about/drc_ref_global.xml
index 145019e06..6a6d6a5b7 100644
--- a/src/lay/lay/doc/about/drc_ref_global.xml
+++ b/src/lay/lay/doc/about/drc_ref_global.xml
@@ -1,7 +1,7 @@
-
+
@@ -13,6 +13,15 @@ Most of them are convenience functions that basically act on some default object
or provide function-like alternatives for the methods.
+"antenna_check" - Performs an antenna check
+
+Usage:
+
+- antenna_check(gate, metal, ratio, [ diode_specs ... ])
+
+
+See Netter#antenna_check for a description of that function
+
"box" - Creates a box object
Usage:
@@ -42,6 +51,15 @@ cell("MACRO")
l1 = input(1, 0)
+"clear_connections" - Clears all connections stored so far
+
+Usage:
+
+
+See Netter#clear_connections for a description of that function
+
"clip" - Specifies clipped input on the default source
Usage:
@@ -60,6 +78,15 @@ clip(0.mm, 0.mm, 0.5.mm, 0.6.mm)
l1 = input(1, 0)
+"connect" - Specifies a connection between two layers
+
+Usage:
+
+
+See Netter#connect for a description of that function.
+
"dbu" - Gets or sets the database unit to use
Usage:
@@ -79,6 +106,26 @@ for two layouts (i.e. take the largest common denominator).
When the database unit is set, it must be set at the beginning
of the script and before any operation that uses it.
+"deep" - Enters deep (hierarchical) mode
+
+Usage:
+
+
+In deep mode, the operations will be performed in a hierarchical fashion.
+Sometimes this reduces the time and memory required for an operation, but this
+will also add some overhead for the hierarchical analysis.
+
+"deepness" is a property of layers. Layers created with "input" while in
+deep mode carry hierarchy. Operations involving such layers at the only
+or the first argument are carried out in hierarchical mode.
+
+Hierarchical mode has some more implications, like "merged_semantics" being
+implied always. Sometimes cell variants will be created.
+
+Deep mode can be cancelled with tiles or flat.
+
"edge" - Creates an edge object
Usage:
@@ -146,6 +193,12 @@ In non-verbose more, nothing is printed.
See Source#input for a description of that function.
+"is_deep?" - Returns true, if in deep mode
+
+Usage:
+
"is_tiled?" - Returns true, if in tiled mode
Usage:
@@ -228,6 +281,15 @@ verbose mode is enabled.
After using that method, the log output is sent to the
given file instead of the logger window or the terminal.
+"netter" - Creates a new netter object
+
+Usage:
+
+
+See Netter for more details
+
"no_borders" - Reset the tile borders
Usage:
@@ -459,7 +521,9 @@ predict.
In tiling mode, the memory requirements are usually smaller (depending on the
choice of the tile size) and multi-CPU support is enabled (see threads).
-To disable tiling mode use flat.
+To disable tiling mode use flat or deep.
+
+Tiling mode will disable deep mode (see deep).
"verbose" - Sets or resets verbose mode
diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml
index 9d3ad68de..e6639416a 100644
--- a/src/lay/lay/doc/about/drc_ref_layer.xml
+++ b/src/lay/lay/doc/about/drc_ref_layer.xml
@@ -1,7 +1,7 @@
-
+
@@ -225,7 +225,7 @@ deliver objects that can be converted into polygons. Such objects are of class <
This method produces markers on the corners of the polygons. An angle criterion can be given which
selects corners based on the angle of the connecting edges. Positive angles indicate a left turn
-while negative angles indicate a right turn. Since polygons are oriented clockwise, postive angles
+while negative angles indicate a right turn. Since polygons are oriented clockwise, positive angles
indicate concave corners while negative ones indicate convex corners.
The markers generated can be point-like edges or small 2x2 DBU boxes. The latter is the default.
@@ -584,6 +584,18 @@ The following images show the effect of the extents method:
Applies to edge pair collections only.
Returns the first edges of the edge pairs in the collection.
+"flatten" - Flattens the layer
+
+Usage:
+
+
+If the layer already is a flat one, this method does nothing.
+If the layer is a hierarchical layer (an original layer or
+a derived layer in deep mode), this method will convert it
+to a flat collection of polygons, edges or edge pairs.
+
"holes" - Selects all polygon holes from the input
Usage:
@@ -759,6 +771,12 @@ is composed of multiple pieces, this method will not return true.
See clean for a discussion of the clean state.
+"is_deep?" - Returns true, if the layer is a deep (hierarchical) layer
+
+Usage:
+
"is_empty?" - Returns true, if the layer is empty
Usage:
diff --git a/src/lay/lay/doc/about/drc_ref_netter.xml b/src/lay/lay/doc/about/drc_ref_netter.xml
new file mode 100644
index 000000000..cd82c10aa
--- /dev/null
+++ b/src/lay/lay/doc/about/drc_ref_netter.xml
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+DRC Reference: Netter object
+
+
+The Netter object provides services related to network extraction
+from a layout. The relevant methods of this object are available
+as global functions too where they act on a default incarnation
+of the netter. Usually it's not required to instantiate a Netter
+object, but it serves as a container for this functionality.
+
+An individual netter object can be created, if the netter results
+need to be kept for multiple extractions. If you really need
+a Netter object, use the global netter function:
+
+
+# create a new Netter object:
+nx = netter
+nx.connect(poly, contact)
+...
+
+
+Network formation:
+
+A basic Service the Netter object provides is the formation of
+connected networks of conductive shapes. To do so, the Netter
+must be given a connection specification. This happens by calling
+"connect" with two polygon layers. The Netter will then regard all
+overlaps of shapes on these layers as connections between the
+respective materials. Networks are the basis for netlist extraction,
+network geometry deduction and the antenna check.
+
+Connections can be cleared with "clear_connections". If not,
+connections add atop of the already defined ones. Here is an
+example for the antenna check:
+
+
+# build connction of poly+gate to metal1
+connect(gate, poly)
+connect(poly, contact)
+connect(contact, metal1)
+
+# runs an antenna check for metal1 with a ratio of 50
+m1_antenna_errors = antenna_check(gate, metal1, 50.0)
+
+# add connections to metal2
+connect(metal1, via1)
+connect(via1, metal2)
+
+# runs an antenna check for metal2 with a ratio of 70.0
+m2_antenna_errors = antenna_check(gate, metal2, 70.0)
+
+# this will remove all connections made
+clear_connections
+...
+
+
+Further functionality of the Netter object:
+
+More methods will be added in the future to support network-related features.
+
+
+"antenna_check" - Performs an antenna check
+
+Usage:
+
+- antenna_check(gate, metal, ratio, [ diode_specs ... ])
+
+
+The antenna check is used to avoid plasma induced damage. Physically,
+the damage happes if during the manufacturing of a metal layer with
+plasma etching charge accumulates on the metal islands. On reaching a
+certain threshold, this charge may discarge over gate oxide attached of
+devices attached to such metal areas hence damaging it.
+
+Antenna checks are performed by collecting all connected nets up to
+a certain metal layer and then computing the area of all metal shapes
+and all connected gates of a certain kind (e.g. thin and thick oxide gates).
+The ratio of metal area divided by the gate area must not exceed a certain
+threshold.
+
+A simple antenna check is this:
+
+
+poly = ... # poly layer
+diff = ... # diffusion layer
+contact = ... # contact layer
+metal1 = ... # metal layer
+
+# compute gate area
+gate = poly & diff
+
+# note that gate and poly have to be included - gate is
+# a subset of poly, but forms the sensitive area
+connect(gate, poly)
+connect(poly, contact)
+connect(contact, metal1)
+errors = antenna_check(gate, metal1, 50.0)
+
+
+Plasma induced damage can be rectified by including diodes
+which create a safe current path for discharging the metal
+islands. Such diodes can be identified with a recognition layer
+(usually the diffusion area of a certain kind). You can include
+such diode recognition layers in the antenna check. If a connection
+is detected to a diode, the respective network is skipped:
+
+
+...
+diode = ... # diode recognition layer
+
+connect(diode, contact)
+errors = antenna_check(gate, metal1, 50.0, diode)
+
+
+You can also make diode connections decreases the
+sensitivity of the antenna check depending on the size
+of the diode. The following specification makes
+diode connections increase the ratio threshold by
+10 per square micrometer of diode area:
+
+
+...
+diode = ... # diode recognition layer
+
+connect(diode, contact)
+# each square micrometer of diode area connected to a network
+# will add 10 to the ratio:
+errors = antenna_check(gate, metal1, 50.0, [ diode, 10.0 ])
+
+
+Multiple diode specifications are allowed. Just add them
+to the antenna_check call.
+
+The error shapes produced by the antenna check are a copy
+of the metal shapes on the metal layers of each network
+violating the antenna rule.
+
+"clear_connections" - Clears all connections stored so far
+
+Usage:
+
+
+See connect for more details.
+
+"connect" - Specifies a connection between two layers
+
+Usage:
+
+
+a and b must be polygon layers. After calling this function, the
+Netter regards all overlapping or touching shapes on these layers
+to form an electrical connection between the materials formed by
+these layers. This also implies intra-layer connections: shapes
+on these layers touching or overlapping other shapes on these
+layers will form bigger, electrically connected areas.
+
+Multiple connect calls must be made to form larger connectivity
+stacks across multiple layers. Such stacks may include forks and
+joins.
+
+Connections are accumulated. The connections defined so far
+can be cleared with clear_connections.
+
+
diff --git a/src/lay/lay/doc/about/drc_ref_source.xml b/src/lay/lay/doc/about/drc_ref_source.xml
index fd0266638..360e61ec2 100644
--- a/src/lay/lay/doc/about/drc_ref_source.xml
+++ b/src/lay/lay/doc/about/drc_ref_source.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/src/lay/lay/doc/images/drc_and1.png b/src/lay/lay/doc/images/drc_and1.png
index 9ea749e22..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_and1.png and b/src/lay/lay/doc/images/drc_and1.png differ
diff --git a/src/lay/lay/doc/images/drc_and2.png b/src/lay/lay/doc/images/drc_and2.png
index 87bd69131..1795d38c3 100644
Binary files a/src/lay/lay/doc/images/drc_and2.png and b/src/lay/lay/doc/images/drc_and2.png differ
diff --git a/src/lay/lay/doc/images/drc_and3.png b/src/lay/lay/doc/images/drc_and3.png
index ccb06bbc0..1795d38c3 100644
Binary files a/src/lay/lay/doc/images/drc_and3.png and b/src/lay/lay/doc/images/drc_and3.png differ
diff --git a/src/lay/lay/doc/images/drc_centers1.png b/src/lay/lay/doc/images/drc_centers1.png
index 4237e55f9..f08a8d4d6 100644
Binary files a/src/lay/lay/doc/images/drc_centers1.png and b/src/lay/lay/doc/images/drc_centers1.png differ
diff --git a/src/lay/lay/doc/images/drc_centers2.png b/src/lay/lay/doc/images/drc_centers2.png
index 07d6244de..f08a8d4d6 100644
Binary files a/src/lay/lay/doc/images/drc_centers2.png and b/src/lay/lay/doc/images/drc_centers2.png differ
diff --git a/src/lay/lay/doc/images/drc_corners1.png b/src/lay/lay/doc/images/drc_corners1.png
index 52a4e8f4d..71f72a435 100644
Binary files a/src/lay/lay/doc/images/drc_corners1.png and b/src/lay/lay/doc/images/drc_corners1.png differ
diff --git a/src/lay/lay/doc/images/drc_corners2.png b/src/lay/lay/doc/images/drc_corners2.png
index bad8c9dcb..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_corners2.png and b/src/lay/lay/doc/images/drc_corners2.png differ
diff --git a/src/lay/lay/doc/images/drc_corners3.png b/src/lay/lay/doc/images/drc_corners3.png
index 061cdf486..71f72a435 100644
Binary files a/src/lay/lay/doc/images/drc_corners3.png and b/src/lay/lay/doc/images/drc_corners3.png differ
diff --git a/src/lay/lay/doc/images/drc_enc1.png b/src/lay/lay/doc/images/drc_enc1.png
index cbf117d95..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_enc1.png and b/src/lay/lay/doc/images/drc_enc1.png differ
diff --git a/src/lay/lay/doc/images/drc_enc2.png b/src/lay/lay/doc/images/drc_enc2.png
index 7b00902c5..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_enc2.png and b/src/lay/lay/doc/images/drc_enc2.png differ
diff --git a/src/lay/lay/doc/images/drc_end_segments1.png b/src/lay/lay/doc/images/drc_end_segments1.png
index bfac5785d..f08a8d4d6 100644
Binary files a/src/lay/lay/doc/images/drc_end_segments1.png and b/src/lay/lay/doc/images/drc_end_segments1.png differ
diff --git a/src/lay/lay/doc/images/drc_end_segments2.png b/src/lay/lay/doc/images/drc_end_segments2.png
index f3e0abb21..f08a8d4d6 100644
Binary files a/src/lay/lay/doc/images/drc_end_segments2.png and b/src/lay/lay/doc/images/drc_end_segments2.png differ
diff --git a/src/lay/lay/doc/images/drc_extended1.png b/src/lay/lay/doc/images/drc_extended1.png
index c919d576f..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extended1.png and b/src/lay/lay/doc/images/drc_extended1.png differ
diff --git a/src/lay/lay/doc/images/drc_extended2.png b/src/lay/lay/doc/images/drc_extended2.png
index 1bb227e9a..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extended2.png and b/src/lay/lay/doc/images/drc_extended2.png differ
diff --git a/src/lay/lay/doc/images/drc_extended3.png b/src/lay/lay/doc/images/drc_extended3.png
index 6f3983891..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extended3.png and b/src/lay/lay/doc/images/drc_extended3.png differ
diff --git a/src/lay/lay/doc/images/drc_extended4.png b/src/lay/lay/doc/images/drc_extended4.png
index bfe992ca1..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extended4.png and b/src/lay/lay/doc/images/drc_extended4.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs1.png b/src/lay/lay/doc/images/drc_extent_refs1.png
index 072bdc417..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs1.png and b/src/lay/lay/doc/images/drc_extent_refs1.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs10.png b/src/lay/lay/doc/images/drc_extent_refs10.png
index 517188045..9ebfe37a3 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs10.png and b/src/lay/lay/doc/images/drc_extent_refs10.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs11.png b/src/lay/lay/doc/images/drc_extent_refs11.png
index 1fd5f3fed..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs11.png and b/src/lay/lay/doc/images/drc_extent_refs11.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs12.png b/src/lay/lay/doc/images/drc_extent_refs12.png
index 18b60de9e..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs12.png and b/src/lay/lay/doc/images/drc_extent_refs12.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs13.png b/src/lay/lay/doc/images/drc_extent_refs13.png
index 20009cf24..567c78fe5 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs13.png and b/src/lay/lay/doc/images/drc_extent_refs13.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs20.png b/src/lay/lay/doc/images/drc_extent_refs20.png
index a96e78264..1edb560b0 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs20.png and b/src/lay/lay/doc/images/drc_extent_refs20.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs21.png b/src/lay/lay/doc/images/drc_extent_refs21.png
index 98fb1e73b..1edb560b0 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs21.png and b/src/lay/lay/doc/images/drc_extent_refs21.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs22.png b/src/lay/lay/doc/images/drc_extent_refs22.png
index f91892d44..183567078 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs22.png and b/src/lay/lay/doc/images/drc_extent_refs22.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs23.png b/src/lay/lay/doc/images/drc_extent_refs23.png
index 13dfdf121..5497e24f0 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs23.png and b/src/lay/lay/doc/images/drc_extent_refs23.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs24.png b/src/lay/lay/doc/images/drc_extent_refs24.png
index e6432eee9..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs24.png and b/src/lay/lay/doc/images/drc_extent_refs24.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs25.png b/src/lay/lay/doc/images/drc_extent_refs25.png
index e5222b8f1..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs25.png and b/src/lay/lay/doc/images/drc_extent_refs25.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs26.png b/src/lay/lay/doc/images/drc_extent_refs26.png
index dbe8ed39a..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs26.png and b/src/lay/lay/doc/images/drc_extent_refs26.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs27.png b/src/lay/lay/doc/images/drc_extent_refs27.png
index 6d7a1a4fe..5497e24f0 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs27.png and b/src/lay/lay/doc/images/drc_extent_refs27.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs30.png b/src/lay/lay/doc/images/drc_extent_refs30.png
index 2890ce143..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs30.png and b/src/lay/lay/doc/images/drc_extent_refs30.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs31.png b/src/lay/lay/doc/images/drc_extent_refs31.png
index e3c48d877..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs31.png and b/src/lay/lay/doc/images/drc_extent_refs31.png differ
diff --git a/src/lay/lay/doc/images/drc_extents1.png b/src/lay/lay/doc/images/drc_extents1.png
index fba7447aa..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_extents1.png and b/src/lay/lay/doc/images/drc_extents1.png differ
diff --git a/src/lay/lay/doc/images/drc_extents2.png b/src/lay/lay/doc/images/drc_extents2.png
index e42d9e5d3..183567078 100644
Binary files a/src/lay/lay/doc/images/drc_extents2.png and b/src/lay/lay/doc/images/drc_extents2.png differ
diff --git a/src/lay/lay/doc/images/drc_holes.png b/src/lay/lay/doc/images/drc_holes.png
index e3f08ddff..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_holes.png and b/src/lay/lay/doc/images/drc_holes.png differ
diff --git a/src/lay/lay/doc/images/drc_hulls.png b/src/lay/lay/doc/images/drc_hulls.png
index cb2e7d726..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_hulls.png and b/src/lay/lay/doc/images/drc_hulls.png differ
diff --git a/src/lay/lay/doc/images/drc_in.png b/src/lay/lay/doc/images/drc_in.png
index 958166227..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_in.png and b/src/lay/lay/doc/images/drc_in.png differ
diff --git a/src/lay/lay/doc/images/drc_inside.png b/src/lay/lay/doc/images/drc_inside.png
index f7066b7ae..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_inside.png and b/src/lay/lay/doc/images/drc_inside.png differ
diff --git a/src/lay/lay/doc/images/drc_inside_part.png b/src/lay/lay/doc/images/drc_inside_part.png
index dcd45b3bc..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_inside_part.png and b/src/lay/lay/doc/images/drc_inside_part.png differ
diff --git a/src/lay/lay/doc/images/drc_interacting.png b/src/lay/lay/doc/images/drc_interacting.png
index 78e8bc476..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_interacting.png and b/src/lay/lay/doc/images/drc_interacting.png differ
diff --git a/src/lay/lay/doc/images/drc_join1.png b/src/lay/lay/doc/images/drc_join1.png
index f2a722e8d..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_join1.png and b/src/lay/lay/doc/images/drc_join1.png differ
diff --git a/src/lay/lay/doc/images/drc_join2.png b/src/lay/lay/doc/images/drc_join2.png
index 6f25d45dc..e7916b61b 100644
Binary files a/src/lay/lay/doc/images/drc_join2.png and b/src/lay/lay/doc/images/drc_join2.png differ
diff --git a/src/lay/lay/doc/images/drc_merged1.png b/src/lay/lay/doc/images/drc_merged1.png
index 1005e3d30..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_merged1.png and b/src/lay/lay/doc/images/drc_merged1.png differ
diff --git a/src/lay/lay/doc/images/drc_merged2.png b/src/lay/lay/doc/images/drc_merged2.png
index e60fb3060..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_merged2.png and b/src/lay/lay/doc/images/drc_merged2.png differ
diff --git a/src/lay/lay/doc/images/drc_merged3.png b/src/lay/lay/doc/images/drc_merged3.png
index 5e2590ecb..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_merged3.png and b/src/lay/lay/doc/images/drc_merged3.png differ
diff --git a/src/lay/lay/doc/images/drc_merged4.png b/src/lay/lay/doc/images/drc_merged4.png
index 8a0207a0c..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_merged4.png and b/src/lay/lay/doc/images/drc_merged4.png differ
diff --git a/src/lay/lay/doc/images/drc_middle1.png b/src/lay/lay/doc/images/drc_middle1.png
index 7ac5afbd7..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_middle1.png and b/src/lay/lay/doc/images/drc_middle1.png differ
diff --git a/src/lay/lay/doc/images/drc_moved1.png b/src/lay/lay/doc/images/drc_moved1.png
index 7536a9088..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_moved1.png and b/src/lay/lay/doc/images/drc_moved1.png differ
diff --git a/src/lay/lay/doc/images/drc_not1.png b/src/lay/lay/doc/images/drc_not1.png
index 3f6bd28d1..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_not1.png and b/src/lay/lay/doc/images/drc_not1.png differ
diff --git a/src/lay/lay/doc/images/drc_not2.png b/src/lay/lay/doc/images/drc_not2.png
index ae43ae1a5..1795d38c3 100644
Binary files a/src/lay/lay/doc/images/drc_not2.png and b/src/lay/lay/doc/images/drc_not2.png differ
diff --git a/src/lay/lay/doc/images/drc_not3.png b/src/lay/lay/doc/images/drc_not3.png
index 6b4ef3e90..1795d38c3 100644
Binary files a/src/lay/lay/doc/images/drc_not3.png and b/src/lay/lay/doc/images/drc_not3.png differ
diff --git a/src/lay/lay/doc/images/drc_not_in.png b/src/lay/lay/doc/images/drc_not_in.png
index d1829a7be..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_not_in.png and b/src/lay/lay/doc/images/drc_not_in.png differ
diff --git a/src/lay/lay/doc/images/drc_not_inside.png b/src/lay/lay/doc/images/drc_not_inside.png
index ed735fdf2..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_not_inside.png and b/src/lay/lay/doc/images/drc_not_inside.png differ
diff --git a/src/lay/lay/doc/images/drc_not_interacting.png b/src/lay/lay/doc/images/drc_not_interacting.png
index 97ee23413..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_not_interacting.png and b/src/lay/lay/doc/images/drc_not_interacting.png differ
diff --git a/src/lay/lay/doc/images/drc_not_outside.png b/src/lay/lay/doc/images/drc_not_outside.png
index d46555108..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_not_outside.png and b/src/lay/lay/doc/images/drc_not_outside.png differ
diff --git a/src/lay/lay/doc/images/drc_not_overlapping.png b/src/lay/lay/doc/images/drc_not_overlapping.png
index 95b70cf05..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_not_overlapping.png and b/src/lay/lay/doc/images/drc_not_overlapping.png differ
diff --git a/src/lay/lay/doc/images/drc_or1.png b/src/lay/lay/doc/images/drc_or1.png
index 4a3f4fe30..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_or1.png and b/src/lay/lay/doc/images/drc_or1.png differ
diff --git a/src/lay/lay/doc/images/drc_or2.png b/src/lay/lay/doc/images/drc_or2.png
index 58d0456dc..e7916b61b 100644
Binary files a/src/lay/lay/doc/images/drc_or2.png and b/src/lay/lay/doc/images/drc_or2.png differ
diff --git a/src/lay/lay/doc/images/drc_outside.png b/src/lay/lay/doc/images/drc_outside.png
index 15aa2a81e..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_outside.png and b/src/lay/lay/doc/images/drc_outside.png differ
diff --git a/src/lay/lay/doc/images/drc_outside_part.png b/src/lay/lay/doc/images/drc_outside_part.png
index efe5a56a2..1795d38c3 100644
Binary files a/src/lay/lay/doc/images/drc_outside_part.png and b/src/lay/lay/doc/images/drc_outside_part.png differ
diff --git a/src/lay/lay/doc/images/drc_overlap1.png b/src/lay/lay/doc/images/drc_overlap1.png
index dcb26b5ae..2b5c608f3 100644
Binary files a/src/lay/lay/doc/images/drc_overlap1.png and b/src/lay/lay/doc/images/drc_overlap1.png differ
diff --git a/src/lay/lay/doc/images/drc_overlap2.png b/src/lay/lay/doc/images/drc_overlap2.png
index 337826a7e..2b5c608f3 100644
Binary files a/src/lay/lay/doc/images/drc_overlap2.png and b/src/lay/lay/doc/images/drc_overlap2.png differ
diff --git a/src/lay/lay/doc/images/drc_overlapping.png b/src/lay/lay/doc/images/drc_overlapping.png
index c645a190f..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_overlapping.png and b/src/lay/lay/doc/images/drc_overlapping.png differ
diff --git a/src/lay/lay/doc/images/drc_raw1.png b/src/lay/lay/doc/images/drc_raw1.png
index cf881ed93..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_raw1.png and b/src/lay/lay/doc/images/drc_raw1.png differ
diff --git a/src/lay/lay/doc/images/drc_raw2.png b/src/lay/lay/doc/images/drc_raw2.png
index d0730e934..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_raw2.png and b/src/lay/lay/doc/images/drc_raw2.png differ
diff --git a/src/lay/lay/doc/images/drc_raw3.png b/src/lay/lay/doc/images/drc_raw3.png
index ba85651f4..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_raw3.png and b/src/lay/lay/doc/images/drc_raw3.png differ
diff --git a/src/lay/lay/doc/images/drc_rotated1.png b/src/lay/lay/doc/images/drc_rotated1.png
index ab74db467..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_rotated1.png and b/src/lay/lay/doc/images/drc_rotated1.png differ
diff --git a/src/lay/lay/doc/images/drc_rounded_corners.png b/src/lay/lay/doc/images/drc_rounded_corners.png
index 02e694e19..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_rounded_corners.png and b/src/lay/lay/doc/images/drc_rounded_corners.png differ
diff --git a/src/lay/lay/doc/images/drc_scaled1.png b/src/lay/lay/doc/images/drc_scaled1.png
index 5e9030c59..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_scaled1.png and b/src/lay/lay/doc/images/drc_scaled1.png differ
diff --git a/src/lay/lay/doc/images/drc_separation1.png b/src/lay/lay/doc/images/drc_separation1.png
index b958deeb1..2b5c608f3 100644
Binary files a/src/lay/lay/doc/images/drc_separation1.png and b/src/lay/lay/doc/images/drc_separation1.png differ
diff --git a/src/lay/lay/doc/images/drc_sized1.png b/src/lay/lay/doc/images/drc_sized1.png
index ec34fef66..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_sized1.png and b/src/lay/lay/doc/images/drc_sized1.png differ
diff --git a/src/lay/lay/doc/images/drc_sized2.png b/src/lay/lay/doc/images/drc_sized2.png
index 2949de1b1..459dc44ae 100644
Binary files a/src/lay/lay/doc/images/drc_sized2.png and b/src/lay/lay/doc/images/drc_sized2.png differ
diff --git a/src/lay/lay/doc/images/drc_sized3.png b/src/lay/lay/doc/images/drc_sized3.png
index 61a4b8ca7..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_sized3.png and b/src/lay/lay/doc/images/drc_sized3.png differ
diff --git a/src/lay/lay/doc/images/drc_sized4.png b/src/lay/lay/doc/images/drc_sized4.png
index e96e99747..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_sized4.png and b/src/lay/lay/doc/images/drc_sized4.png differ
diff --git a/src/lay/lay/doc/images/drc_sized5.png b/src/lay/lay/doc/images/drc_sized5.png
index 89d97d50e..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_sized5.png and b/src/lay/lay/doc/images/drc_sized5.png differ
diff --git a/src/lay/lay/doc/images/drc_sized6.png b/src/lay/lay/doc/images/drc_sized6.png
index f045511c0..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_sized6.png and b/src/lay/lay/doc/images/drc_sized6.png differ
diff --git a/src/lay/lay/doc/images/drc_space1.png b/src/lay/lay/doc/images/drc_space1.png
index 8f91261fb..2b5c608f3 100644
Binary files a/src/lay/lay/doc/images/drc_space1.png and b/src/lay/lay/doc/images/drc_space1.png differ
diff --git a/src/lay/lay/doc/images/drc_space2.png b/src/lay/lay/doc/images/drc_space2.png
index df7dd0b40..2b5c608f3 100644
Binary files a/src/lay/lay/doc/images/drc_space2.png and b/src/lay/lay/doc/images/drc_space2.png differ
diff --git a/src/lay/lay/doc/images/drc_space3.png b/src/lay/lay/doc/images/drc_space3.png
index eabee35ee..2b5c608f3 100644
Binary files a/src/lay/lay/doc/images/drc_space3.png and b/src/lay/lay/doc/images/drc_space3.png differ
diff --git a/src/lay/lay/doc/images/drc_start_segments1.png b/src/lay/lay/doc/images/drc_start_segments1.png
index 3644f360d..f08a8d4d6 100644
Binary files a/src/lay/lay/doc/images/drc_start_segments1.png and b/src/lay/lay/doc/images/drc_start_segments1.png differ
diff --git a/src/lay/lay/doc/images/drc_start_segments2.png b/src/lay/lay/doc/images/drc_start_segments2.png
index 800ec51dc..f08a8d4d6 100644
Binary files a/src/lay/lay/doc/images/drc_start_segments2.png and b/src/lay/lay/doc/images/drc_start_segments2.png differ
diff --git a/src/lay/lay/doc/images/drc_transformed1.png b/src/lay/lay/doc/images/drc_transformed1.png
index ee33932d0..7606481f3 100644
Binary files a/src/lay/lay/doc/images/drc_transformed1.png and b/src/lay/lay/doc/images/drc_transformed1.png differ
diff --git a/src/lay/lay/doc/images/drc_width1.png b/src/lay/lay/doc/images/drc_width1.png
index b14ce9ddf..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_width1.png and b/src/lay/lay/doc/images/drc_width1.png differ
diff --git a/src/lay/lay/doc/images/drc_width2.png b/src/lay/lay/doc/images/drc_width2.png
index c9503e182..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_width2.png and b/src/lay/lay/doc/images/drc_width2.png differ
diff --git a/src/lay/lay/doc/images/drc_width3.png b/src/lay/lay/doc/images/drc_width3.png
index 23287c77d..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_width3.png and b/src/lay/lay/doc/images/drc_width3.png differ
diff --git a/src/lay/lay/doc/images/drc_width4.png b/src/lay/lay/doc/images/drc_width4.png
index 1e706274f..396ef0f0b 100644
Binary files a/src/lay/lay/doc/images/drc_width4.png and b/src/lay/lay/doc/images/drc_width4.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle1.png b/src/lay/lay/doc/images/drc_with_angle1.png
index 22dbcf75e..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle1.png and b/src/lay/lay/doc/images/drc_with_angle1.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle2.png b/src/lay/lay/doc/images/drc_with_angle2.png
index 8ccd9ec0c..e7916b61b 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle2.png and b/src/lay/lay/doc/images/drc_with_angle2.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle3.png b/src/lay/lay/doc/images/drc_with_angle3.png
index 26ed55013..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle3.png and b/src/lay/lay/doc/images/drc_with_angle3.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle4.png b/src/lay/lay/doc/images/drc_with_angle4.png
index 9d938f550..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle4.png and b/src/lay/lay/doc/images/drc_with_angle4.png differ
diff --git a/src/lay/lay/doc/images/drc_xor1.png b/src/lay/lay/doc/images/drc_xor1.png
index 16191d3ca..119065429 100644
Binary files a/src/lay/lay/doc/images/drc_xor1.png and b/src/lay/lay/doc/images/drc_xor1.png differ
diff --git a/src/lay/lay/doc/images/drc_xor2.png b/src/lay/lay/doc/images/drc_xor2.png
index 2dd68bc8c..e7916b61b 100644
Binary files a/src/lay/lay/doc/images/drc_xor2.png and b/src/lay/lay/doc/images/drc_xor2.png differ
diff --git a/src/lay/lay/layHelpResources.qrc b/src/lay/lay/layHelpResources.qrc
index 33ed75312..8e74b2904 100644
--- a/src/lay/lay/layHelpResources.qrc
+++ b/src/lay/lay/layHelpResources.qrc
@@ -134,6 +134,7 @@
doc/about/drc_ref_layer.xml
doc/about/drc_ref_source.xml
doc/about/drc_ref_global.xml
+ doc/about/drc_ref_netter.xml
doc/about/packages.xml