mirror of https://github.com/KLayout/klayout.git
Doc updates
This commit is contained in:
parent
8051bef9ac
commit
ec88362eca
|
|
@ -1125,7 +1125,7 @@ CODE
|
|||
# %DRC%
|
||||
# @name first_edges
|
||||
# @brief Returns the first edges of edge pairs
|
||||
# @synopsis expression.extents([ enlargement ])
|
||||
# @synopsis expression.first_edges
|
||||
#
|
||||
# This method acts on edge pair expressions and returns the first edges of the
|
||||
# edge pairs delivered by the expression.
|
||||
|
|
@ -1133,7 +1133,7 @@ CODE
|
|||
# %DRC%
|
||||
# @name second_edges
|
||||
# @brief Returns the second edges of edge pairs
|
||||
# @synopsis expression.extents([ enlargement ])
|
||||
# @synopsis expression.second_edges
|
||||
#
|
||||
# This method acts on edge pair expressions and returns the second edges of the
|
||||
# edge pairs delivered by the expression.
|
||||
|
|
@ -1294,6 +1294,86 @@ CODE
|
|||
end
|
||||
end
|
||||
|
||||
# %DRC%
|
||||
# @name covering
|
||||
# @brief Selects shapes entirely covering other shapes
|
||||
# @synopsis expression.covering(other) (optionally in conditions)
|
||||
# @synopsis covering(other) (optionally in conditions)
|
||||
#
|
||||
# This method represents the selector of primary shapes
|
||||
# which entirely cover shapes from the other layer. This version can be put into
|
||||
# a condition indicating how many shapes of the other layer need to be covered.
|
||||
# Use this variant within \DRC# expressions (also see \Layer#drc).
|
||||
#
|
||||
# For example, the following statement selects all input shapes which entirely
|
||||
# cover shapes from the "other" layer:
|
||||
#
|
||||
# @code
|
||||
# out = in.drc(covering(other))
|
||||
# @/code
|
||||
#
|
||||
# This example selects all input shapes which entire cover shapes from
|
||||
# the other layer and there are more than two shapes from "other" inside
|
||||
# primary shapes:
|
||||
#
|
||||
# @code
|
||||
# out = in.drc(covering(other) > 2)
|
||||
# @/code
|
||||
|
||||
# %DRC%
|
||||
# @name interacting
|
||||
# @brief Selects shapes interacting with other shapes
|
||||
# @synopsis expression.interacting(other) (optionally in conditions)
|
||||
# @synopsis interacting(other) (optionally in conditions)
|
||||
#
|
||||
# See \covering for a description of the use cases for this function.
|
||||
# When using "interacting", shapes are selected when the interact (overlap, touch)
|
||||
# shapes from the other layer.
|
||||
#
|
||||
# When using this method with a count, the operation may not render
|
||||
# the correct results if the other input is not merged. By nature of the
|
||||
# generic DRC feature, only those shapes that interact with the primary shape
|
||||
# will be selected. If the other input is split into multiple polygons,
|
||||
# not all components may be captured and the computed interaction count
|
||||
# may be incorrect.
|
||||
|
||||
# %DRC%
|
||||
# @name overlapping
|
||||
# @brief Selects shapes overlapping with other shapes
|
||||
# @synopsis expression.overlapping(other) (optionally in conditions)
|
||||
# @synopsis overlapping(other) (optionally in conditions)
|
||||
#
|
||||
# See \covering for a description of the use cases for this function.
|
||||
# When using "overlapping", shapes are selected when the overlap
|
||||
# shapes from the other layer.
|
||||
#
|
||||
# When using this method with a count, the operation may not render
|
||||
# the correct results if the other input is not merged. By nature of the
|
||||
# generic DRC feature, only those shapes that interact with the primary shape
|
||||
# will be selected. If the other input is split into multiple polygons,
|
||||
# not all components may be captured and the computed interaction count
|
||||
# may be incorrect.
|
||||
|
||||
# %DRC%
|
||||
# @name inside
|
||||
# @brief Selects shapes entirely inside other shapes
|
||||
# @synopsis expression.inside(other)
|
||||
# @synopsis inside(other)
|
||||
#
|
||||
# This method represents the selector of primary shapes
|
||||
# which are entirely inside shapes from the other layer.
|
||||
# Use this variant within \DRC# expressions (also see \Layer#drc).
|
||||
|
||||
# %DRC%
|
||||
# @name outside
|
||||
# @brief Selects shapes entirely outside other shapes
|
||||
# @synopsis expression.outside(other)
|
||||
# @synopsis outside(other)
|
||||
#
|
||||
# This method represents the selector of primary shapes
|
||||
# which are entirely outside shapes from the other layer.
|
||||
# Use this variant within \DRC# expressions (also see \Layer#drc).
|
||||
|
||||
%w(covering overlapping interacting).each do |f|
|
||||
eval <<"CODE"
|
||||
def #{f}(other)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ module DRC
|
|||
# @brief Provides a generic DRC function for use with \DRC# expressions
|
||||
# @synopsis layer.drc(expression)
|
||||
#
|
||||
# This method implement the universal DRC which offers enhanced abilities,
|
||||
# This method implements the universal DRC which offers enhanced abilities,
|
||||
# improved performance in some applications and better readability.
|
||||
#
|
||||
# The key concept for this method are DRC expressions. DRC expressions
|
||||
|
|
@ -56,7 +56,7 @@ module DRC
|
|||
# @h3 Checks @/h3
|
||||
#
|
||||
# Here is an example for a generic DRC operation which performs a width
|
||||
# check for less than 0.5.um on the primary shapes. It uses the \global#width operator:
|
||||
# check for less than 0.5.um on the primary shapes. It uses the "\global#width" operator:
|
||||
#
|
||||
# @code
|
||||
# out = in.drc(width < 0.5.um)
|
||||
|
|
@ -72,8 +72,8 @@ module DRC
|
|||
# out = in.drc(0.2.um < width < 0.5.um)
|
||||
# @/code
|
||||
#
|
||||
# To specify the second input for a two-layer check, specify it in brackets in
|
||||
# the check function. This example shows how to use a two-layer separation check (\global#separation):
|
||||
# To specify the second input for a two-layer check, add it to
|
||||
# the check function. This example shows how to use a two-layer separation check ("\global#separation"):
|
||||
#
|
||||
# @code
|
||||
# l1 = input(1, 0)
|
||||
|
|
@ -83,11 +83,11 @@ module DRC
|
|||
#
|
||||
# The second input of this check function can be a computed expression. In this
|
||||
# case the local loop will first evaluate the expression for the second input and
|
||||
# then use the result for second input in the check. Note that this computation is
|
||||
# then use the result as second input in the check. Note that this computation is
|
||||
# performed locally and separately for each primary and its context.
|
||||
#
|
||||
# Options for the checks are also specified inside the brackets. For example,
|
||||
# to specify projection metrics ("projection") for width use:
|
||||
# to select projection metrics ("projection") for the "width" check use:
|
||||
#
|
||||
# @code
|
||||
# out = in.drc(width(projection) < 0.5.um)
|
||||
|
|
@ -129,11 +129,11 @@ module DRC
|
|||
# methods are provided:
|
||||
#
|
||||
# @ul
|
||||
# @li \DRC#polygons: converts edge pairs to polygons @/li
|
||||
# @li \DRC#extended, \DRC#extended_in, \DRC#extended_out: converts edges to polygons @/li
|
||||
# @li \DRC#first_edges, \DRC#second_edges: extracts edges from edge pairs @/li
|
||||
# @li \DRC#edges: decomposes edge pairs and polygons into edges @/li
|
||||
# @li \DRC#corners: can extract corners from polygons @/li
|
||||
# @li "\DRC#polygons": converts edge pairs to polygons @/li
|
||||
# @li "\DRC#extended", "\DRC#extended_in", "\DRC#extended_out": converts edges to polygons @/li
|
||||
# @li "\DRC#first_edges", \DRC#second_edges": extracts edges from edge pairs @/li
|
||||
# @li "\DRC#edges": decomposes edge pairs and polygons into edges @/li
|
||||
# @li "\DRC#corners": can extract corners from polygons @/li
|
||||
# @/ul
|
||||
#
|
||||
# The following example decomposes the primary polygons into edges:
|
||||
|
|
@ -174,8 +174,8 @@ module DRC
|
|||
#
|
||||
# @ul
|
||||
# @li Edge vs. edge and edge vs. polygon booleans @/li
|
||||
# @li Edge vs. polygon interactions (\DRC#interacting, \DRC#overlapping) @/li
|
||||
# @li Edge sampling (\DRC#start_segments, \DRC#centers, \DRC#end_segments) @/li
|
||||
# @li Edge vs. polygon interactions ("\DRC#interacting", "\DRC#overlapping") @/li
|
||||
# @li Edge sampling ("\DRC#start_segments", "\DRC#centers", "\DRC#end_segments") @/li
|
||||
# @/ul
|
||||
#
|
||||
# @h3 Filters @/h3
|
||||
|
|
@ -384,7 +384,7 @@ module DRC
|
|||
# writing DRC expressions, are more efficient and open new opportunities. DRC
|
||||
# development is likely to focus on this scheme in the future.
|
||||
#
|
||||
# More formal details about the bits and pieces can be found in the \DRC# class documentation.
|
||||
# More formal details about the bits and pieces can be found in the "\DRC" class documentation.
|
||||
|
||||
def drc(op)
|
||||
@engine._context("drc") do
|
||||
|
|
@ -901,77 +901,55 @@ CODE
|
|||
# %DRC%
|
||||
# @name covering
|
||||
# @brief Selects shapes entirely covering other shapes
|
||||
# @synopsis covering(other) (in conditions)
|
||||
# @synopsis covering(other) (optionally in condition)
|
||||
#
|
||||
# This method represents the selector of primary shapes
|
||||
# This operator represents the selector of primary shapes
|
||||
# which entirely cover shapes from the other layer. This version can be put into
|
||||
# a condition indicating how many shapes of the other layer need to be covered.
|
||||
# Use this variant within \DRC# expressions (also see \Layer#drc).
|
||||
#
|
||||
# For example, the following statement selects all input shapes which entirely
|
||||
# cover shapes from the "other" layer:
|
||||
#
|
||||
# @code
|
||||
# out = in.drc(covering(other))
|
||||
# @/code
|
||||
#
|
||||
# This example selects all input shapes which entire cover shapes from
|
||||
# the other layer and there are more than two shapes from "other" inside
|
||||
# primary shapes:
|
||||
#
|
||||
# @code
|
||||
# out = in.drc(covering(other) > 2)
|
||||
# @/code
|
||||
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
|
||||
# as method to an expression. See there for more details: \DRC#covering.
|
||||
|
||||
# %DRC%
|
||||
# @name interacting
|
||||
# @brief Selects shapes interacting with other shapes
|
||||
# @synopsis interacting(other) (in conditions)
|
||||
# @synopsis interacting(other) (optionally in condition)
|
||||
#
|
||||
# See \covering for a description of the use cases for this function.
|
||||
# When using "interacting", shapes are selected when the interact (overlap, touch)
|
||||
# shapes from the other layer.
|
||||
#
|
||||
# When using this method with a count, the operation may not render
|
||||
# the correct results if the other input is not merged. By nature of the
|
||||
# generic DRC feature, only those shapes that interact with the primary shape
|
||||
# will be selected. If the other input is split into multiple polygons,
|
||||
# not all components may be captured and the computed interaction count
|
||||
# may be incorrect.
|
||||
# This operator represents the selector of primary shapes
|
||||
# which interact with shapes from the other layer. This version can be put into
|
||||
# a condition indicating how many shapes of the other layer need to be covered.
|
||||
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
|
||||
# as method to an expression. See there for more details: \DRC#interacting.
|
||||
|
||||
# %DRC%
|
||||
# @name overlapping
|
||||
# @brief Selects shapes overlapping with other shapes
|
||||
# @synopsis overlapping(other) (in conditions)
|
||||
# @synopsis overlapping(other) (optionally in condition)
|
||||
#
|
||||
# See \covering for a description of the use cases for this function.
|
||||
# When using "overlapping", shapes are selected when the overlap
|
||||
# shapes from the other layer.
|
||||
#
|
||||
# When using this method with a count, the operation may not render
|
||||
# the correct results if the other input is not merged. By nature of the
|
||||
# generic DRC feature, only those shapes that interact with the primary shape
|
||||
# will be selected. If the other input is split into multiple polygons,
|
||||
# not all components may be captured and the computed interaction count
|
||||
# may be incorrect.
|
||||
# This operator represents the selector of primary shapes
|
||||
# which overlap shapes from the other layer. This version can be put into
|
||||
# a condition indicating how many shapes of the other layer need to be covered.
|
||||
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
|
||||
# as method to an expression. See there for more details: \DRC#overlapping.
|
||||
|
||||
# %DRC%
|
||||
# @name inside
|
||||
# @brief Selects shapes entirely inside other shapes
|
||||
# @synopsis inside(other)
|
||||
#
|
||||
# This method represents the selector of primary shapes
|
||||
# which are entirely inside shapes from the other layer.
|
||||
# Use this variant within \DRC# expressions (also see \Layer#drc).
|
||||
# This operator represents the selector of primary shapes
|
||||
# which are inside shapes from the other layer.
|
||||
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
|
||||
# as method to an expression. See there for more details: \DRC#inside.
|
||||
|
||||
# %DRC%
|
||||
# @name outside
|
||||
# @brief Selects shapes entirely outside other shapes
|
||||
# @synopsis outside(other)
|
||||
#
|
||||
# This method represents the selector of primary shapes
|
||||
# which are entirely outside shapes from the other layer.
|
||||
# Use this variant within \DRC# expressions (also see \Layer#drc).
|
||||
# This operator represents the selector of primary shapes
|
||||
# which are outside shapes from the other layer.
|
||||
# Use this operator within \DRC# expressions (also see \Layer#drc). If can be used
|
||||
# as method to an expression. See there for more details: \DRC#outside.
|
||||
|
||||
%w(
|
||||
covering
|
||||
|
|
|
|||
|
|
@ -420,6 +420,34 @@ out = in.drc(if_any(corners.count == 3))
|
|||
Note "if_any" which selects the primary shape if the argument evaluates to a non-empty
|
||||
result. Without "if_any" three corners are returned for each triangle.
|
||||
</p>
|
||||
<a name="covering"/><h2>"covering" - Selects shapes entirely covering other shapes</h2>
|
||||
<keyword name="covering"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.covering(other) (optionally in conditions)</tt></li>
|
||||
<li><tt>covering(other) (optionally in conditions)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method represents the selector of primary shapes
|
||||
which entirely cover shapes from the other layer. This version can be put into
|
||||
a condition indicating how many shapes of the other layer need to be covered.
|
||||
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
|
||||
</p><p>
|
||||
For example, the following statement selects all input shapes which entirely
|
||||
cover shapes from the "other" layer:
|
||||
</p><p>
|
||||
<pre>
|
||||
out = in.drc(covering(other))
|
||||
</pre>
|
||||
</p><p>
|
||||
This example selects all input shapes which entire cover shapes from
|
||||
the other layer and there are more than two shapes from "other" inside
|
||||
primary shapes:
|
||||
</p><p>
|
||||
<pre>
|
||||
out = in.drc(covering(other) > 2)
|
||||
</pre>
|
||||
</p>
|
||||
<a name="edges"/><h2>"edges" - Converts the input shapes into edges</h2>
|
||||
<keyword name="edges"/>
|
||||
<p>Usage:</p>
|
||||
|
|
@ -521,7 +549,7 @@ The plain function is equivalent to "primary.extents".
|
|||
<keyword name="first_edges"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.extents([ enlargement ])</tt></li>
|
||||
<li><tt>expression.first_edges</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method acts on edge pair expressions and returns the first edges of the
|
||||
|
|
@ -562,6 +590,37 @@ out = in.drc(hulls)
|
|||
out = in.drc(primary.hulls) # equivalent
|
||||
</pre>
|
||||
</p>
|
||||
<a name="inside"/><h2>"inside" - Selects shapes entirely inside other shapes</h2>
|
||||
<keyword name="inside"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.inside(other)</tt></li>
|
||||
<li><tt>inside(other)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method represents the selector of primary shapes
|
||||
which are entirely inside shapes from the other layer.
|
||||
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
|
||||
</p>
|
||||
<a name="interacting"/><h2>"interacting" - Selects shapes interacting with other shapes</h2>
|
||||
<keyword name="interacting"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.interacting(other) (optionally in conditions)</tt></li>
|
||||
<li><tt>interacting(other) (optionally in conditions)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="#covering">covering</a> for a description of the use cases for this function.
|
||||
When using "interacting", shapes are selected when the interact (overlap, touch)
|
||||
shapes from the other layer.
|
||||
</p><p>
|
||||
When using this method with a count, the operation may not render
|
||||
the correct results if the other input is not merged. By nature of the
|
||||
generic DRC feature, only those shapes that interact with the primary shape
|
||||
will be selected. If the other input is split into multiple polygons,
|
||||
not all components may be captured and the computed interaction count
|
||||
may be incorrect.
|
||||
</p>
|
||||
<a name="length"/><h2>"length" - Selects edges based on their length</h2>
|
||||
<keyword name="length"/>
|
||||
<p>Usage:</p>
|
||||
|
|
@ -639,6 +698,37 @@ wrap count rule in place.
|
|||
This operation can be used as a plain function in which case it acts on primary
|
||||
shapes or can be used as method on another DRC expression.
|
||||
</p>
|
||||
<a name="outside"/><h2>"outside" - Selects shapes entirely outside other shapes</h2>
|
||||
<keyword name="outside"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.outside(other)</tt></li>
|
||||
<li><tt>outside(other)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method represents the selector of primary shapes
|
||||
which are entirely outside shapes from the other layer.
|
||||
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
|
||||
</p>
|
||||
<a name="overlapping"/><h2>"overlapping" - Selects shapes overlapping with other shapes</h2>
|
||||
<keyword name="overlapping"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.overlapping(other) (optionally in conditions)</tt></li>
|
||||
<li><tt>overlapping(other) (optionally in conditions)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="#covering">covering</a> for a description of the use cases for this function.
|
||||
When using "overlapping", shapes are selected when the overlap
|
||||
shapes from the other layer.
|
||||
</p><p>
|
||||
When using this method with a count, the operation may not render
|
||||
the correct results if the other input is not merged. By nature of the
|
||||
generic DRC feature, only those shapes that interact with the primary shape
|
||||
will be selected. If the other input is split into multiple polygons,
|
||||
not all components may be captured and the computed interaction count
|
||||
may be incorrect.
|
||||
</p>
|
||||
<a name="perimeter"/><h2>"perimeter" - Selects the input polygon if the perimeter is meeting the condition</h2>
|
||||
<keyword name="perimeter"/>
|
||||
<p>Usage:</p>
|
||||
|
|
@ -780,7 +870,7 @@ The plain function is equivalent to "primary.rounded_corners".
|
|||
<keyword name="second_edges"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>expression.extents([ enlargement ])</tt></li>
|
||||
<li><tt>expression.second_edges</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method acts on edge pair expressions and returns the second edges of the
|
||||
|
|
|
|||
|
|
@ -355,28 +355,14 @@ applied to coners meeting a particular angle constraint.
|
|||
<keyword name="covering"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>covering(other) (in conditions)</tt></li>
|
||||
<li><tt>covering(other) (optionally in condition)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method represents the selector of primary shapes
|
||||
This operator represents the selector of primary shapes
|
||||
which entirely cover shapes from the other layer. This version can be put into
|
||||
a condition indicating how many shapes of the other layer need to be covered.
|
||||
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
|
||||
</p><p>
|
||||
For example, the following statement selects all input shapes which entirely
|
||||
cover shapes from the "other" layer:
|
||||
</p><p>
|
||||
<pre>
|
||||
out = in.drc(covering(other))
|
||||
</pre>
|
||||
</p><p>
|
||||
This example selects all input shapes which entire cover shapes from
|
||||
the other layer and there are more than two shapes from "other" inside
|
||||
primary shapes:
|
||||
</p><p>
|
||||
<pre>
|
||||
out = in.drc(covering(other) > 2)
|
||||
</pre>
|
||||
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#covering">DRC#covering</a>.
|
||||
</p>
|
||||
<a name="dbu"/><h2>"dbu" - Gets or sets the database unit to use</h2>
|
||||
<keyword name="dbu"/>
|
||||
|
|
@ -750,27 +736,23 @@ this method.
|
|||
<li><tt>inside(other)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method represents the selector of primary shapes
|
||||
which are entirely inside shapes from the other layer.
|
||||
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
|
||||
This operator represents the selector of primary shapes
|
||||
which are inside shapes from the other layer.
|
||||
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#inside">DRC#inside</a>.
|
||||
</p>
|
||||
<a name="interacting"/><h2>"interacting" - Selects shapes interacting with other shapes</h2>
|
||||
<keyword name="interacting"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>interacting(other) (in conditions)</tt></li>
|
||||
<li><tt>interacting(other) (optionally in condition)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="#covering">covering</a> for a description of the use cases for this function.
|
||||
When using "interacting", shapes are selected when the interact (overlap, touch)
|
||||
shapes from the other layer.
|
||||
</p><p>
|
||||
When using this method with a count, the operation may not render
|
||||
the correct results if the other input is not merged. By nature of the
|
||||
generic DRC feature, only those shapes that interact with the primary shape
|
||||
will be selected. If the other input is split into multiple polygons,
|
||||
not all components may be captured and the computed interaction count
|
||||
may be incorrect.
|
||||
This operator represents the selector of primary shapes
|
||||
which interact with shapes from the other layer. This version can be put into
|
||||
a condition indicating how many shapes of the other layer need to be covered.
|
||||
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#interacting">DRC#interacting</a>.
|
||||
</p>
|
||||
<a name="is_deep?"/><h2>"is_deep?" - Returns true, if in deep mode</h2>
|
||||
<keyword name="is_deep?"/>
|
||||
|
|
@ -1059,9 +1041,10 @@ layout if is report database.
|
|||
<li><tt>outside(other)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method represents the selector of primary shapes
|
||||
which are entirely outside shapes from the other layer.
|
||||
Use this variant within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>).
|
||||
This operator represents the selector of primary shapes
|
||||
which are outside shapes from the other layer.
|
||||
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#outside">DRC#outside</a>.
|
||||
</p>
|
||||
<a name="overlap"/><h2>"overlap" - Performs an overlap check</h2>
|
||||
<keyword name="overlap"/>
|
||||
|
|
@ -1078,19 +1061,14 @@ function provides a two-layer check. See there for details how to use this funct
|
|||
<keyword name="overlapping"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>overlapping(other) (in conditions)</tt></li>
|
||||
<li><tt>overlapping(other) (optionally in condition)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="#covering">covering</a> for a description of the use cases for this function.
|
||||
When using "overlapping", shapes are selected when the overlap
|
||||
shapes from the other layer.
|
||||
</p><p>
|
||||
When using this method with a count, the operation may not render
|
||||
the correct results if the other input is not merged. By nature of the
|
||||
generic DRC feature, only those shapes that interact with the primary shape
|
||||
will be selected. If the other input is split into multiple polygons,
|
||||
not all components may be captured and the computed interaction count
|
||||
may be incorrect.
|
||||
This operator represents the selector of primary shapes
|
||||
which overlap shapes from the other layer. This version can be put into
|
||||
a condition indicating how many shapes of the other layer need to be covered.
|
||||
Use this operator within <a href="/about/drc_ref_drc.xml">DRC</a> expressions (also see <a href="/about/drc_ref_layer.xml#drc">Layer#drc</a>). If can be used
|
||||
as method to an expression. See there for more details: <a href="/about/drc_ref_drc.xml#overlapping">DRC#overlapping</a>.
|
||||
</p>
|
||||
<a name="p"/><h2>"p" - Creates a point object</h2>
|
||||
<keyword name="p"/>
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ of the layer's data.
|
|||
<li><tt>layer.drc(expression)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method implement the universal DRC which offers enhanced abilities,
|
||||
This method implements the universal DRC which offers enhanced abilities,
|
||||
improved performance in some applications and better readability.
|
||||
</p><p>
|
||||
The key concept for this method are DRC expressions. DRC expressions
|
||||
|
|
@ -370,7 +370,7 @@ using measurement operations like "area" on secondary polygons.
|
|||
<h3>Checks </h3>
|
||||
</p><p>
|
||||
Here is an example for a generic DRC operation which performs a width
|
||||
check for less than 0.5.um on the primary shapes. It uses the <a href="/about/drc_ref_global.xml#width">width</a> operator:
|
||||
check for less than 0.5.um on the primary shapes. It uses the "<a href="/about/drc_ref_global.xml#width">width</a>" operator:
|
||||
</p><p>
|
||||
<pre>
|
||||
out = in.drc(width < 0.5.um)
|
||||
|
|
@ -386,8 +386,8 @@ out = in.drc(width != 0.5.um)
|
|||
out = in.drc(0.2.um < width < 0.5.um)
|
||||
</pre>
|
||||
</p><p>
|
||||
To specify the second input for a two-layer check, specify it in brackets in
|
||||
the check function. This example shows how to use a two-layer separation check (<a href="/about/drc_ref_global.xml#separation">separation</a>):
|
||||
To specify the second input for a two-layer check, add it to
|
||||
the check function. This example shows how to use a two-layer separation check ("<a href="/about/drc_ref_global.xml#separation">separation</a>"):
|
||||
</p><p>
|
||||
<pre>
|
||||
l1 = input(1, 0)
|
||||
|
|
@ -397,11 +397,11 @@ out = l1.drc(separation(l2) < 0.5.um)
|
|||
</p><p>
|
||||
The second input of this check function can be a computed expression. In this
|
||||
case the local loop will first evaluate the expression for the second input and
|
||||
then use the result for second input in the check. Note that this computation is
|
||||
then use the result as second input in the check. Note that this computation is
|
||||
performed locally and separately for each primary and its context.
|
||||
</p><p>
|
||||
Options for the checks are also specified inside the brackets. For example,
|
||||
to specify projection metrics ("projection") for width use:
|
||||
to select projection metrics ("projection") for the "width" check use:
|
||||
</p><p>
|
||||
<pre>
|
||||
out = in.drc(width(projection) < 0.5.um)
|
||||
|
|
@ -442,11 +442,11 @@ For the conversion of edges, edge pairs and polygons into other types, these
|
|||
methods are provided:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li><a href="/about/drc_ref_drc.xml#polygons:">DRC#polygons:</a> converts edge pairs to polygons </li>
|
||||
<li><a href="/about/drc_ref_drc.xml#extended">DRC#extended</a>, <a href="/about/drc_ref_drc.xml#extended_in">DRC#extended_in</a>, <a href="/about/drc_ref_drc.xml#extended_out:">DRC#extended_out:</a> converts edges to polygons </li>
|
||||
<li><a href="/about/drc_ref_drc.xml#first_edges">DRC#first_edges</a>, <a href="/about/drc_ref_drc.xml#second_edges:">DRC#second_edges:</a> extracts edges from edge pairs </li>
|
||||
<li><a href="/about/drc_ref_drc.xml#edges:">DRC#edges:</a> decomposes edge pairs and polygons into edges </li>
|
||||
<li><a href="/about/drc_ref_drc.xml#corners:">DRC#corners:</a> can extract corners from polygons </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#polygons">DRC#polygons</a>": converts edge pairs to polygons </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#extended">DRC#extended</a>", "<a href="/about/drc_ref_drc.xml#extended_in">DRC#extended_in</a>", "<a href="/about/drc_ref_drc.xml#extended_out">DRC#extended_out</a>": converts edges to polygons </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#first_edges">DRC#first_edges</a>", <a href="/about/drc_ref_drc.xml#second_edges">DRC#second_edges</a>": extracts edges from edge pairs </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#edges">DRC#edges</a>": decomposes edge pairs and polygons into edges </li>
|
||||
<li>"<a href="/about/drc_ref_drc.xml#corners">DRC#corners</a>": can extract corners from polygons </li>
|
||||
</ul>
|
||||
</p><p>
|
||||
The following example decomposes the primary polygons into edges:
|
||||
|
|
@ -487,8 +487,8 @@ The "drc" framework supports the following edge and edge/polygon operations:
|
|||
</p><p>
|
||||
<ul>
|
||||
<li>Edge vs. edge and edge vs. polygon booleans </li>
|
||||
<li>Edge vs. polygon interactions (<a href="/about/drc_ref_drc.xml#interacting">DRC#interacting</a>, <a href="/about/drc_ref_drc.xml#overlapping">DRC#overlapping</a>) </li>
|
||||
<li>Edge sampling (<a href="/about/drc_ref_drc.xml#start_segments">DRC#start_segments</a>, <a href="/about/drc_ref_drc.xml#centers">DRC#centers</a>, <a href="/about/drc_ref_drc.xml#end_segments">DRC#end_segments</a>) </li>
|
||||
<li>Edge vs. polygon interactions ("<a href="/about/drc_ref_drc.xml#interacting">DRC#interacting</a>", "<a href="/about/drc_ref_drc.xml#overlapping">DRC#overlapping</a>") </li>
|
||||
<li>Edge sampling ("<a href="/about/drc_ref_drc.xml#start_segments">DRC#start_segments</a>", "<a href="/about/drc_ref_drc.xml#centers">DRC#centers</a>", "<a href="/about/drc_ref_drc.xml#end_segments">DRC#end_segments</a>") </li>
|
||||
</ul>
|
||||
</p><p>
|
||||
<h3>Filters </h3>
|
||||
|
|
@ -697,7 +697,7 @@ DRC expressions are quite rich and powerful. They provide a more intuitive way o
|
|||
writing DRC expressions, are more efficient and open new opportunities. DRC
|
||||
development is likely to focus on this scheme in the future.
|
||||
</p><p>
|
||||
More formal details about the bits and pieces can be found in the <a href="/about/drc_ref_drc.xml">DRC</a> class documentation.
|
||||
More formal details about the bits and pieces can be found in the "<a href="#DRC">DRC</a>" class documentation.
|
||||
</p>
|
||||
<a name="dup"/><h2>"dup" - Duplicates a layer</h2>
|
||||
<keyword name="dup"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue