- layout
- layout(what)
@@ -475,9 +496,9 @@ l2 = layout("second_layout.gds")
For further methods on the source object see Source.
-"log" - Outputs as message to the logger window
+"log" - Outputs as message to the logger window
-Usage:
+Usage:
@@ -486,9 +507,9 @@ Prints the message to the log window.
info is a function that prints a message only if
verbose mode is enabled.
-"log_file" - Specify the log file where to send to log to
+"log_file" - Specify the log file where to send to log to
-Usage:
+Usage:
@@ -496,9 +517,9 @@ 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.
-"make_layer" - Creates an empty polygon layer based on the hierarchical scheme selected
+"make_layer" - Creates an empty polygon layer based on the hierarchical scheme selected
-Usage:
+Usage:
@@ -514,63 +535,69 @@ delivered by polygon_layer is not.
On the other hand, a layer created by the make_layer method is not intended to be
filled with Layer#insert.
-"mos3" - Supplies the MOS3 transistor extractor class
+"mos3" - Supplies the MOS3 transistor extractor class
-Usage:
+Usage:
Use this class with extract_devices to specify extraction of a
-three-terminal MOS transistor
+three-terminal MOS transistor.
+
+See DeviceExtractorMOS3Transistor for more details
+about this extractor (non-strict mode applies for 'mos3').
-"mos4" - Supplies the MOS4 transistor extractor class
+"mos4" - Supplies the MOS4 transistor extractor class
-Usage:
+Usage:
Use this class with extract_devices to specify extraction of a
-four-terminal MOS transistor
+four-terminal MOS transistor.
+
+See DeviceExtractorMOS4Transistor for more details
+about this extractor (non-strict mode applies for 'mos4').
-"netlist" - Obtains the extracted netlist from the default Netter
+"netlist" - Obtains the extracted netlist from the default Netter
-
+
The netlist is a Netlist object. If no netlist is extracted
yet, this method will trigger the extraction process.
See Netter#netlist for a description of this function.
-"netter" - Creates a new netter object
+"netter" - Creates a new netter object
-Usage:
+Usage:
See Netter for more details
-"no_borders" - Reset the tile borders
+"no_borders" - Reset the tile borders
-Usage:
+Usage:
Resets the tile borders - see tile_borders for a description of tile borders.
-"output" - Outputs a layer to the report database or output layout
+"output" - Outputs a layer to the report database or output layout
-Usage:
+Usage:
This function is equivalent to "layer.output(args)". See Layer#output for details about this function.
-"output_cell" - Specifies a target cell, but does not change the target layout
+"output_cell" - Specifies a target cell, but does not change the target layout
-Usage:
+Usage:
@@ -579,9 +606,9 @@ This method switches output to the specified cell, but does not
change the target layout nor does it switch the output channel to
layout if is report database.
-"p" - Creates a point object
+"p" - Creates a point object
-Usage:
+Usage:
@@ -594,9 +621,9 @@ x = polygon_layer
x.insert(polygon([ p(0, 0), p(16.0, 0), p(8.0, 8.0) ]))
-"path" - Creates a path object
+"path" - Creates a path object
-Usage:
+Usage:
@@ -604,9 +631,9 @@ x.insert(polygon([ p(0, 0), p(16.0, 0), p(8.0, 8.0) ]))
This function creates a path object. The arguments are the same than for the
DPath constructors.
-"polygon" - Creates a polygon object
+"polygon" - Creates a polygon object
-Usage:
+Usage:
@@ -614,9 +641,9 @@ This function creates a path object. The arguments are the same than for the
This function creates a polygon object. The arguments are the same than for the
DPolygon constructors.
-"polygon_layer" - Creates an empty polygon layer
+"polygon_layer" - Creates an empty polygon layer
-Usage:
+Usage:
@@ -626,18 +653,18 @@ filled with polygon-like objects using make_layer. This other layer is better suited for use with device extraction.
-"polygons" - Fetches the polygons (or shapes that can be converted to polygons) from the specified input from the default source
+"polygons" - Fetches the polygons (or shapes that can be converted to polygons) from the specified input from the default source
-Usage:
+Usage:
See Source#polygons for a description of that function.
-"report" - Specifies a report database for output
+"report" - Specifies a report database for output
-Usage:
+Usage:
- report(description [, filename [, cellname ] ])
@@ -658,9 +685,9 @@ By default this is the cell name of the default source. If there
is no source layout you'll need to give the cell name in the
third parameter.
-"report_netlist" - Specifies an extracted netlist report for output
+"report_netlist" - Specifies an extracted netlist report for output
-Usage:
+Usage:
- report_netlist([ filename [, long ] ])
@@ -675,19 +702,24 @@ will also be written to the given file.
If a file name is given and "long" is true, a verbose
version of the L2N DB format will be used.
-"resistor" - Supplies the resistor extractor class
+"resistor" - Supplies the resistor extractor class
-Usage:
+Usage:
- resistor(name, sheet_rho)
Use this class with extract_devices to specify extraction of a resistor.
-The sheet_rho value is the sheet resistance in ohms/square.
+
+The sheet_rho value is the sheet resistance in ohms/square. It is used
+to compute the resistance from the geometry.
+
+See DeviceExtractorResistor for more details
+about this extractor.
-"resistor_with_bulk" - Supplies the resistor extractor class that includes a bulk terminal
+"resistor_with_bulk" - Supplies the resistor extractor class that includes a bulk terminal
-Usage:
+Usage:
- resistor_with_bulk(name, sheet_rho)
@@ -695,28 +727,31 @@ The sheet_rho value is the sheet resistance in ohms/square.
Use this class with extract_devices to specify extraction of a resistor
with a bulk terminal.
The sheet_rho value is the sheet resistance in ohms/square.
+
+See DeviceExtractorResistorWithBulk for more details
+about this extractor.
-"select" - Specifies cell filters on the default source
+"select" - Specifies cell filters on the default source
-Usage:
+Usage:
See Source#select for a description of that function.
-"silent" - Resets verbose mode
+"silent" - Resets verbose mode
-Usage:
+Usage:
This function is equivalent to "verbose(false)" (see verbose)
-"source" - Specifies a source layout
+"source" - Specifies a source layout
-Usage:
+Usage:
- source
- source(what)
@@ -751,9 +786,9 @@ l2 = layout("second_layout.gds")
For further methods on the source object see Source.
-"target" - Specify the target layout
+"target" - Specify the target layout
-Usage:
+Usage:
- target(what [, cellname])
@@ -778,9 +813,9 @@ Except if the argument is a Cell object, a ce
stating the cell name under which the results are saved. If no cellname is
specified, either the current cell or "TOP" is used.
-"target_netlist" - With this statement, an extracted netlist is finally written to a file
+"target_netlist" - With this statement, an extracted netlist is finally written to a file
-Usage:
+Usage:
- target_netlist(filename [, format [, comment ] ])
@@ -794,9 +829,9 @@ The format parameter specifies the writer to use. You can use nil
to use the standard format or produce a SPICE writer with write_spice.
See write_spice for more details.
-"threads" - Specifies the number of CPU cores to use in tiling mode
+"threads" - Specifies the number of CPU cores to use in tiling mode
-Usage:
+Usage:
@@ -805,9 +840,9 @@ If using threads, tiles are distributed on multiple CPU cores for
parallelization. Still, all tiles must be processed before the
operation proceeds with the next statement.
-"tile_borders" - Specifies a minimum tile border
+"tile_borders" - Specifies a minimum tile border
-Usage:
+Usage:
- tile_border(b)
- tile_border(bx, by)
@@ -826,9 +861,9 @@ given range, although not necessarily all.
To reset the tile borders, use no_borders or "tile_borders(nil)".
-"tiles" - Specifies tiling
+"tiles" - Specifies tiling
-Usage:
+Usage:
- tiles(t)
- tiles(w, h)
@@ -851,9 +886,9 @@ To disable tiling mode use flat or deep.
Tiling mode will disable deep mode (see deep).
-"verbose" - Sets or resets verbose mode
+"verbose" - Sets or resets verbose mode
-Usage:
+Usage:
- verbose
- verbose(m)
@@ -861,18 +896,18 @@ Tiling mode will disable deep mode (see deep).
In verbose mode, more output is generated in the log file
-"verbose?" - Returns true, if verbose mode is enabled
+"verbose?" - Returns true, if verbose mode is enabled
-Usage:
+Usage:
In verbose mode, more output is generated in the log file
-"write_spice" - Defines SPICE output format (with options)
+"write_spice" - Defines SPICE output format (with options)
-Usage:
+Usage:
- write_spice([ use_net_names [, with_comments ] ])
diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml
index faa14fb73..d7287b733 100644
--- a/src/lay/lay/doc/about/drc_ref_layer.xml
+++ b/src/lay/lay/doc/about/drc_ref_layer.xml
@@ -11,9 +11,9 @@
The layer object represents a collection of polygons, edges or edge pairs.
-"&" - Boolean AND operation
+"&" - Boolean AND operation
-Usage:
+Usage:
@@ -23,9 +23,9 @@ The method computes a boolean AND between self and other.
This method is available for polygon and edge layers. An alias
is "and". See there for a description of the function.
-"+" - Join layers
+"+" - Join layers
-Usage:
+Usage:
@@ -36,9 +36,9 @@ The "+" operator is an alias for the join method.
This method is available for polygon, edge and edge pair layers. An alias
is "join". See there for a description of the function.
-"-" - Boolean NOT operation
+"-" - Boolean NOT operation
-Usage:
+Usage:
@@ -48,9 +48,9 @@ The method computes a boolean NOT between self and other.
This method is available for polygon and edge layers. An alias
is "not". See there for a description of the function.
-"^" - Boolean XOR operation
+"^" - Boolean XOR operation
-Usage:
+Usage:
@@ -60,9 +60,9 @@ The method computes a boolean XOR between self and other.
This method is available for polygon and edge layers. An alias
is "xor". See there for a description of the function.
-"and" - Boolean AND operation
+"and" - Boolean AND operation
-Usage:
+Usage:
@@ -86,9 +86,9 @@ on polygons and edges (layer1: red, layer2: blue):
-"area" - Returns the total area of the polygons in the region
+"area" - Returns the total area of the polygons in the region
-Usage:
+Usage:
@@ -101,9 +101,9 @@ polygons are not counted twice.
The returned value gives the area in square micrometer units.
-"bbox" - Returns the overall bounding box of the layer
+"bbox" - Returns the overall bounding box of the layer
-Usage:
+Usage:
@@ -111,9 +111,9 @@ The returned value gives the area in square micrometer units.
The return value is a DBox object giving the bounding box in
micrometer units.
-"centers" - Returns the center parts of the edges
+"centers" - Returns the center parts of the edges
-Usage:
+Usage:
- layer.centers(length)
- layer.centers(length, fraction)
@@ -132,9 +132,9 @@ The following images show the effect of the method:
-"clean" - Marks a layer as clean
+"clean" - Marks a layer as clean
-Usage:
+Usage:
@@ -148,9 +148,9 @@ Clean state is the default.
See raw for some remarks about how this state is
propagated.
-"collect" - Transforms a layer
+"collect" - Transforms a layer
-Usage:
+Usage:
- layer.collect { |object| ... }
@@ -182,9 +182,9 @@ t = DCplxTrans(1.0, 45.0, false,
-"collect_to_edge_pairs" - Transforms a layer into edge pair objects
+"collect_to_edge_pairs" - Transforms a layer into edge pair objects
-Usage:
+Usage:
- layer.collect { |object| ... }
@@ -192,9 +192,9 @@ new_layer = layer.collect { |polygon| polygon.transformed(t) }
This method is similar to collect, but creates an edge pair layer. It expects the block to
deliver EdgePair, DEdgePair or EdgePairs objects.
-"collect_to_edges" - Transforms a layer into edge objects
+"collect_to_edges" - Transforms a layer into edge objects
-Usage:
+Usage:
- layer.collect { |object| ... }
@@ -203,9 +203,9 @@ This method is similar to collect, but creates an edge la
deliver objects that can be converted into edges. If polygon-like objects are returned, their
contours will be turned into edge sequences.
-"collect_to_region" - Transforms a layer into polygon objects
+"collect_to_region" - Transforms a layer into polygon objects
-Usage:
+Usage:
- layer.collect { |object| ... }
@@ -214,9 +214,9 @@ This method is similar to collect, but creates a polygon
deliver objects that can be converted into polygons. Such objects are of class DPolygon,
DBox, DPath, Polygon, Path, Box and Region.
-"corners" - Selects corners of polygons
+"corners" - Selects corners of polygons
-Usage:
+Usage:
- layer.corners([ options ])
- layer.corners(angle, [ options ])
@@ -247,9 +247,9 @@ The following images show the effect of this method:
-"data" - Gets the low-level data object
+"data" - Gets the low-level data object
-Usage:
+Usage:
@@ -259,9 +259,9 @@ representing the underlying RBA object for the data.
Access to these objects is provided to support low-level iteration and manipulation
of the layer's data.
-"dup" - Duplicates a layer
+"dup" - Duplicates a layer
-Usage:
+Usage:
@@ -276,9 +276,9 @@ layer. Using the dup method will avoid that.
However, dup will double the memory required to hold the data
and performing the deep copy may be expensive in terms of CPU time.
-"each" - Iterates over the objects from the layer
+"each" - Iterates over the objects from the layer
-Usage:
+Usage:
- layer.each { |object| ... }
@@ -289,15 +289,15 @@ layer type, these objects are of DPolygon
Because this method executes inside the interpreter, it's inherently slow. Tiling does not
apply to this method.
-"edge_pairs?" - Returns true, if the layer is an edge pair collection
+"edge_pairs?" - Returns true, if the layer is an edge pair collection
-Usage:
+Usage:
-"edges" - Decomposes the layer into single edges
+"edges" - Decomposes the layer into single edges
-
+
Edge pair collections are decomposed into the individual edges that make up
the edge pairs. Polygon layers are decomposed into the edges making up the
polygons. This method returns an edge layer but will not modify the layer it
@@ -306,24 +306,24 @@ is called on.
Merged semantics applies, i.e. the result reflects merged polygons rather than
individual ones unless raw mode is chosen.
-"edges?" - Returns true, if the layer is an edge layer
+"edges?" - Returns true, if the layer is an edge layer
-Usage:
+Usage:
-"enc" - An alias for "enclosing"
+"enc" - An alias for "enclosing"
-Usage:
+Usage:
- layer.enc(value [, options])
See enclosing for a description of that method
-"enclosing" - An enclosing check
+"enclosing" - An enclosing check
-Usage:
+Usage:
- layer.enclosing(other_layer, value [, options])
@@ -354,9 +354,9 @@ The following images show the effect of two enclosing checks (red: input1, blue:
-"end_segments" - Returns the part at the end of each edge
+"end_segments" - Returns the part at the end of each edge
-Usage:
+Usage:
- layer.end_segments(length)
- layer.end_segments(length, fraction)
@@ -388,9 +388,9 @@ The following images show the effect of the method:
-"extended" - Returns polygons describing an area along the edges of the input
+"extended" - Returns polygons describing an area along the edges of the input
-Usage:
+Usage:
- layer.extended([:begin => b,] [:end => e,] [:out => o,] [:in => i], [:joined => true])
- layer.extended(b, e, o, i)
@@ -423,9 +423,9 @@ The following images show the effects of some parameters:
-"extended_in" - Returns polygons describing an area along the edges of the input
+"extended_in" - Returns polygons describing an area along the edges of the input
-Usage:
+Usage:
@@ -437,9 +437,9 @@ This method is basically equivalent to the extended meth
"extended(0, 0, 0, dist)".
A version extending to the outside is extended_out.
-"extended_out" - Returns polygons describing an area along the edges of the input
+"extended_out" - Returns polygons describing an area along the edges of the input
-Usage:
+Usage:
@@ -451,9 +451,9 @@ This method is basically equivalent to the extended meth
"extended(0, 0, dist, 0)".
A version extending to the inside is extended_in.
-"extent_refs" - Returns partial references to the boundings boxes of the polygons
+"extent_refs" - Returns partial references to the boundings boxes of the polygons
-Usage:
+Usage:
- layer.extent_refs(fx, fy [, options ])
- layer.extent_refs(fx1, fy1, fx2, fx2 [, options ])
@@ -547,9 +547,9 @@ The following table shows a few applications:
-"extents" - Returns the bounding box of each input object
+"extents" - Returns the bounding box of each input object
-Usage:
+Usage:
- layer.extents([ enlargement ])
@@ -574,9 +574,9 @@ The following images show the effect of the extents method:
-"first_edges" - Returns the first edges of an edge pair collection
+"first_edges" - Returns the first edges of an edge pair collection
-Usage:
+Usage:
@@ -584,9 +584,9 @@ 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
+"flatten" - Flattens the layer
-Usage:
+Usage:
@@ -596,9 +596,9 @@ 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
+"holes" - Selects all polygon holes from the input
-Usage:
+Usage:
@@ -616,9 +616,9 @@ The following image shows the effects of the holes method:
-"hulls" - Selects all polygon hulls from the input
+"hulls" - Selects all polygon hulls from the input
-Usage:
+Usage:
@@ -636,9 +636,9 @@ The following image shows the effects of the hulls method:
-"in" - Selects shapes or regions of self which are contained in the other layer
+"in" - Selects shapes or regions of self which are contained in the other layer
-Usage:
+Usage:
@@ -661,9 +661,9 @@ The following image shows the effect of the "in" method (input1: red, input2: bl
-"insert" - Inserts one or many objects into the layer
+"insert" - Inserts one or many objects into the layer
-Usage:
+Usage:
- insert(object, object ...)
@@ -683,9 +683,9 @@ pl = polygon_layer
pl.insert(box(0.0, 0.0, 100.0, 200.0)
-"inside" - Selects shapes or regions of self which are inside the other region
+"inside" - Selects shapes or regions of self which are inside the other region
-Usage:
+Usage:
@@ -708,9 +708,9 @@ The following image shows the effect of the "inside" method (input1: red, input2
-"inside_part" - Returns the parts of the edges inside the given region
+"inside_part" - Returns the parts of the edges inside the given region
-Usage:
+Usage:
- layer.inside_part(region)
@@ -727,9 +727,9 @@ This method is available for edge layers. The argument must be a polygon layer.
-"interacting" - Selects shapes or regions of self which touch or overlap shapes from the other region
+"interacting" - Selects shapes or regions of self which touch or overlap shapes from the other region
-Usage:
+Usage:
@@ -751,9 +751,9 @@ The following image shows the effect of the "interacting" method (input1: red, i
-"intersections" - Returns the intersection points of intersecting edge segments for two edge collections
+"intersections" - Returns the intersection points of intersecting edge segments for two edge collections
-Usage:
+Usage:
- layer.intersections(edges)
@@ -764,9 +764,9 @@ degenerated edge objects.
This method is available for edge layers. The argument must be an edge layer.
-"is_box?" - Returns true, if the region contains a single box
+"is_box?" - Returns true, if the region contains a single box
-Usage:
+Usage:
@@ -775,30 +775,30 @@ The method returns true, if the region consists of a single box
only. Merged semantics does not apply - if the region forms a box which
is composed of multiple pieces, this method will not return true.
-"is_clean?" - Returns true, if the layer is clean state
+"is_clean?" - Returns true, if the layer is clean state
-Usage:
+Usage:
See clean for a discussion of the clean state.
-"is_deep?" - Returns true, if the layer is a deep (hierarchical) layer
+"is_deep?" - Returns true, if the layer is a deep (hierarchical) layer
-Usage:
+Usage:
-"is_empty?" - Returns true, if the layer is empty
+"is_empty?" - Returns true, if the layer is empty
-Usage:
+Usage:
-"is_merged?" - Returns true, if the polygons of the layer are merged
+"is_merged?" - Returns true, if the polygons of the layer are merged
-Usage:
+Usage:
@@ -809,27 +809,27 @@ In clean mode, this is ensured implicitly. In raw mode (see raw
merging can be achieved by using the merge method. is_merged?
tells, whether calling merge is necessary.
-"is_raw?" - Returns true, if the layer is raw state
+"is_raw?" - Returns true, if the layer is raw state
-Usage:
+Usage:
See clean for a discussion of the raw state.
-"iso" - An alias for "isolated"
+"iso" - An alias for "isolated"
-Usage:
+Usage:
- layer.iso(value [, options])
See isolated for a description of that method
-"isolated" - An isolation check
+"isolated" - An isolation check
-Usage:
+Usage:
- layer.isolated(value [, options])
@@ -847,9 +847,9 @@ The following image shows the effect of the isolated check:
-"join" - Joins the layer with another layer
+"join" - Joins the layer with another layer
-Usage:
+Usage:
@@ -869,9 +869,9 @@ on polygons and edges (layer1: red, layer2: blue):
-"length" - Returns the total length of the edges in the edge layer
+"length" - Returns the total length of the edges in the edge layer
-Usage:
+Usage:
@@ -882,9 +882,9 @@ i.e. before computing the length, the edges are merged unless
raw mode is chosen (see raw). Hence in clean mode (see clean), overlapping
edges are not counted twice.
-"merge" - Merges the layer (modifies the layer)
+"merge" - Merges the layer (modifies the layer)
-Usage:
+Usage:
- layer.merge([overlap_count])
@@ -892,9 +892,9 @@ edges are not counted twice.
Like merged, but modifies the input and returns a reference to the
new layer.
-"merged" - Returns the merged layer
+"merged" - Returns the merged layer
-Usage:
+Usage:
- layer.merged([overlap_count])
@@ -923,9 +923,9 @@ The following images show the effect of various forms of the "merged" method:
-"middle" - Returns the center points of the bounding boxes of the polygons
+"middle" - Returns the center points of the bounding boxes of the polygons
-Usage:
+Usage:
- layer.middle([ options ])
@@ -949,9 +949,9 @@ The following image shows the effect of this method
-"move" - Moves (shifts, translates) a layer (modifies the layer)
+"move" - Moves (shifts, translates) a layer (modifies the layer)
-Usage:
+Usage:
@@ -962,9 +962,9 @@ upon is modified and the modified version is returned for further processing.
Shift distances can be given as floating-point values (in micron) or integer values (in
database units). To explicitly specify the unit, use the unit denominators.
-"moved" - Moves (shifts, translates) a layer
+"moved" - Moves (shifts, translates) a layer
-Usage:
+Usage:
@@ -983,9 +983,9 @@ The following images shows the effect of the "moved" method:
-"non_rectangles" - Selects all polygons from the input which are not rectangles
+"non_rectangles" - Selects all polygons from the input which are not rectangles
-Usage:
+Usage:
@@ -993,9 +993,9 @@ The following images shows the effect of the "moved" method:
This method is available for polygon layers. By default "merged" semantics applies,
i.e. all polygons are merged before non-rectangles are selected (see clean and raw).
-"non_rectilinear" - Selects all non-rectilinear polygons from the input
+"non_rectilinear" - Selects all non-rectilinear polygons from the input
-Usage:
+Usage:
@@ -1003,9 +1003,9 @@ i.e. all polygons are merged before non-rectangles are selected (see clean and raw).
-"non_strict" - Marks a layer for non-strict handling
+"non_strict" - Marks a layer for non-strict handling
-Usage:
+Usage:
@@ -1014,9 +1014,9 @@ See strict for details about this option.
This feature has been introduced in version 0.23.2.
-"not" - Boolean NOT operation
+"not" - Boolean NOT operation
-Usage:
+Usage:
@@ -1040,9 +1040,9 @@ on polygons and edges (layer1: red, layer2: blue):
-"not_in" - Selects shapes or regions of self which are not contained in the other layer
+"not_in" - Selects shapes or regions of self which are not contained in the other layer
-Usage:
+Usage:
@@ -1065,9 +1065,9 @@ The following image shows the effect of the "not_in" method (input1: red, input2
-"not_inside" - Selects shapes or regions of self which are not inside the other region
+"not_inside" - Selects shapes or regions of self which are not inside the other region
-Usage:
+Usage:
@@ -1090,9 +1090,9 @@ The following image shows the effect of the "not_inside" method (input1: red, in
-"not_interacting" - Selects shapes or regions of self which do not touch or overlap shapes from the other region
+"not_interacting" - Selects shapes or regions of self which do not touch or overlap shapes from the other region
-Usage:
+Usage:
- layer.not_interacting(other)
@@ -1114,9 +1114,9 @@ The following image shows the effect of the "not_interacting" method (input1: re
-"not_outside" - Selects shapes or regions of self which are not outside the other region
+"not_outside" - Selects shapes or regions of self which are not outside the other region
-Usage:
+Usage:
@@ -1139,9 +1139,9 @@ The following image shows the effect of the "not_outside" method (input1: red, i
-"not_overlapping" - Selects shapes or regions of self which do not overlap shapes from the other region
+"not_overlapping" - Selects shapes or regions of self which do not overlap shapes from the other region
-Usage:
+Usage:
- layer.not_overlapping(other)
@@ -1158,9 +1158,9 @@ with respect to other edges or polygons.
It returns a new layer containing the selected shapes. A version which modifies self
is select_not_overlapping.
-"notch" - An intra-region spacing check
+"notch" - An intra-region spacing check
-Usage:
+Usage:
- layer.notch(value [, options])
@@ -1178,9 +1178,9 @@ The following image shows the effect of the notch check:
-"odd_polygons" - Checks for odd polygons (self-overlapping, non-orientable)
+"odd_polygons" - Checks for odd polygons (self-overlapping, non-orientable)
-Usage:
+Usage:
@@ -1188,9 +1188,9 @@ The following image shows the effect of the notch check:
Returns the parts of the polygons which are not orientable (i.e. "8" configuration) or self-overlapping.
Merged semantics does not apply for this method. Always the raw polygons are taken (see raw).
-"ongrid" - Checks for on-grid vertices
+"ongrid" - Checks for on-grid vertices
-Usage:
+Usage:
- layer.ongrid(g)
- layer.ongrid(gx, gy)
@@ -1203,9 +1203,9 @@ When setting the grid to 0, no grid check is performed in that specific directio
This method requires a polygon layer. Merged semantics applies (see raw and clean).
-"or" - Boolean OR operation
+"or" - Boolean OR operation
-Usage:
+Usage:
@@ -1225,9 +1225,9 @@ on polygons and edges (layer1: red, layer2: blue):
-"output" - Outputs the content of the layer
+"output" - Outputs the content of the layer
-Usage:
+Usage:
@@ -1245,9 +1245,9 @@ a single LayerInfo object.
See global#report and global#target on how to configure output to a target layout
or report database.
-"outside" - Selects shapes or regions of self which are outside the other region
+"outside" - Selects shapes or regions of self which are outside the other region
-Usage:
+Usage:
@@ -1270,9 +1270,9 @@ The following image shows the effect of the "outside" method (input1: red, input
-"outside_part" - Returns the parts of the edges outside the given region
+"outside_part" - Returns the parts of the edges outside the given region
-Usage:
+Usage:
- layer.outside_part(region)
@@ -1289,9 +1289,9 @@ This method is available for edge layers. The argument must be a polygon layer.
-"overlap" - An overlap check
+"overlap" - An overlap check
-Usage:
+Usage:
- layer.overlap(other_layer, value [, options])
@@ -1327,9 +1327,9 @@ The following images show the effect of the overlap check (layer1: red, layer2:
-"overlapping" - Selects shapes or regions of self which overlap shapes from the other region
+"overlapping" - Selects shapes or regions of self which overlap shapes from the other region
-Usage:
+Usage:
@@ -1351,9 +1351,9 @@ The following image shows the effect of the "overlapping" method:
-"perimeter" - Returns the total perimeter of the polygons in the region
+"perimeter" - Returns the total perimeter of the polygons in the region
-Usage:
+Usage:
@@ -1365,9 +1365,9 @@ raw mode is chosen (see raw).
The returned value gives the perimeter in micrometer units.
-"polygons" - Returns polygons from edge pairs
+"polygons" - Returns polygons from edge pairs
-Usage:
+Usage:
- layer.polygons([ enlargement ])
@@ -1379,15 +1379,15 @@ edges etc.) an enlargement parameter can be specified which will make the
resulting polygon somewhat larger than the original edge pair. If the enlargement
parameter is 0, special edge pairs with an area of 0 will be dropped.
-"polygons?" - Returns true, if the layer is a polygon layer
+"polygons?" - Returns true, if the layer is a polygon layer
-Usage:
+Usage:
-"pull_inside" - Selects shapes or regions of other which are inside polygons from the this region
+"pull_inside" - Selects shapes or regions of other which are inside polygons from the this region
-Usage:
+Usage:
@@ -1402,9 +1402,9 @@ provides a way to pull shapes from other to the hierarchy to self.
This method is available for polygon layers. Other needs to be a polygon layer too.
-"pull_interacting" - Selects shapes or edges of other which touch or overlap shapes from the this region
+"pull_interacting" - Selects shapes or edges of other which touch or overlap shapes from the this region
-Usage:
+Usage:
- layer.pull_interacting(other)
@@ -1422,9 +1422,9 @@ This method will neither modify self nor other.
This method is available for polygon layers. Other can be an edge or polygon layer.
Edges or polygons can be selected with respect to polygons of self.
-"pull_overlapping" - Selects shapes or regions of other which overlap shapes from the this region
+"pull_overlapping" - Selects shapes or regions of other which overlap shapes from the this region
-Usage:
+Usage:
- layer.pull_overlapping(other)
@@ -1439,9 +1439,9 @@ provides a way to pull shapes from other to the hierarchy to self.
This method is available for polygon layers. Other needs to be a polygon layer too.
-"raw" - Marks a layer as raw
+"raw" - Marks a layer as raw
-Usage:
+Usage:
@@ -1466,9 +1466,9 @@ l.raw
To avoid that, use the dup method to create a real (deep) copy.
-"rectangles" - Selects all rectangle polygons from the input
+"rectangles" - Selects all rectangle polygons from the input
-Usage:
+Usage:
@@ -1477,9 +1477,9 @@ This method is available for polygon layers. By default "merged" semantics appli
i.e. all polygons are merged before rectangles are selected (see clean and raw).
non_rectangles will select all non-rectangles.
-"rectilinear" - Selects all rectilinear polygons from the input
+"rectilinear" - Selects all rectilinear polygons from the input
-Usage:
+Usage:
@@ -1488,9 +1488,9 @@ This method is available for polygon layers. By default "merged" semantics appli
i.e. all polygons are merged before rectilinear polygons are selected (see clean and raw).
non_rectilinear will select all non-rectangles.
-"rotate" - Rotates a layer (modifies the layer)
+"rotate" - Rotates a layer (modifies the layer)
-Usage:
+Usage:
@@ -1498,9 +1498,9 @@ i.e. all polygons are merged before rectilinear polygons are selected (see
-"rotated" - Rotates a layer
+"rotated" - Rotates a layer
-Usage:
+Usage:
@@ -1516,9 +1516,9 @@ The following image shows the effect of the "rotated" method:
-"rounded_corners" - Applies corner rounding to each corner of the polygon
+"rounded_corners" - Applies corner rounding to each corner of the polygon
-Usage:
+Usage:
- layer.rounded_corners(inner, outer, n)
@@ -1545,9 +1545,9 @@ a larger radius.
-"scale" - Scales a layer (modifies the layer)
+"scale" - Scales a layer (modifies the layer)
-Usage:
+Usage:
@@ -1556,9 +1556,9 @@ Scales the input. After scaling, features have a f times
bigger dimension. The layer that this method is called upon is modified and
the modified version is returned for further processing.
-"scaled" - Scales a layer
+"scaled" - Scales a layer
-Usage:
+Usage:
@@ -1574,9 +1574,9 @@ The following images shows the effect of the "scaled" method:
-"second_edges" - Returns the second edges of an edge pair collection
+"second_edges" - Returns the second edges of an edge pair collection
-Usage:
+Usage:
@@ -1584,9 +1584,9 @@ The following images shows the effect of the "scaled" method:
Applies to edge pair collections only.
Returns the second edges of the edge pairs in the collection.
-"select" - Selects edges, edge pairs or polygons based on evaluation of a block
+"select" - Selects edges, edge pairs or polygons based on evaluation of a block
-Usage:
+Usage:
- layer.select { |object| ... }
@@ -1604,9 +1604,9 @@ Here is a (slow) equivalent of the area selection method:
new_layer = layer.select { |polygon| polygon.area >= 10.0 }
-"select_inside" - Selects shapes or regions of self which are inside the other region
+"select_inside" - Selects shapes or regions of self which are inside the other region
-Usage:
+Usage:
- layer.select_inside(other)
@@ -1621,9 +1621,9 @@ is inside.
This method is available for polygon layers.
-"select_interacting" - Selects shapes or regions of self which touch or overlap shapes from the other region
+"select_interacting" - Selects shapes or regions of self which touch or overlap shapes from the other region
-Usage:
+Usage:
- layer.select_interacting(other)
@@ -1637,9 +1637,9 @@ is interacting.
This method is available for polygon and edge layers. Edges can be selected
with respect to other edges or polygons.
-"select_not_inside" - Selects shapes or regions of self which are not inside the other region
+"select_not_inside" - Selects shapes or regions of self which are not inside the other region
-Usage:
+Usage:
- layer.select_not_inside(other)
@@ -1654,9 +1654,9 @@ is not_inside.
This method is available for polygon layers.
-"select_not_interacting" - Selects shapes or regions of self which do not touch or overlap shapes from the other region
+"select_not_interacting" - Selects shapes or regions of self which do not touch or overlap shapes from the other region
-Usage:
+Usage:
- layer.select_interacting(other)
@@ -1670,9 +1670,9 @@ is not_interacting.
This method is available for polygon and edge layers. Edges can be selected
with respect to other edges or polygons.
-"select_not_outside" - Selects shapes or regions of self which are not outside the other region
+"select_not_outside" - Selects shapes or regions of self which are not outside the other region
-Usage:
+Usage:
- layer.select_not_outside(other)
@@ -1687,9 +1687,9 @@ is not_outside.
This method is available for polygon layers.
-"select_not_overlapping" - Selects shapes or regions of self which do not overlap shapes from the other region
+"select_not_overlapping" - Selects shapes or regions of self which do not overlap shapes from the other region
-Usage:
+Usage:
- layer.select_not_overlapping(other)
@@ -1703,9 +1703,9 @@ is not_overlapping.
This method is available for polygon and edge layers. Edges can be selected
with respect to other edges or polygons.
-"select_outside" - Selects shapes or regions of self which are outside the other region
+"select_outside" - Selects shapes or regions of self which are outside the other region
-Usage:
+Usage:
- layer.select_outside(other)
@@ -1720,9 +1720,9 @@ is outside.
This method is available for polygon layers.
-"select_overlapping" - Selects shapes or regions of self which overlap shapes from the other region
+"select_overlapping" - Selects shapes or regions of self which overlap shapes from the other region
-Usage:
+Usage:
- layer.select_overlapping(other)
@@ -1736,18 +1736,18 @@ is overlapping.
This method is available for polygon and edge layers. Edges can be selected
with respect to other edges or polygons.
-"sep" - An alias for "separation"
+"sep" - An alias for "separation"
-Usage:
+Usage:
- layer.sep(value [, options])
See separation for a description of that method
-"separation" - A two-layer spacing check
+"separation" - A two-layer spacing check
-Usage:
+Usage:
- layer.separation(other_layer, value [, options])
@@ -1774,9 +1774,9 @@ The following image shows the effect of the separation check (layer1: red, layer
-"size" - Polygon sizing (per-edge biasing, modifies the layer)
+"size" - Polygon sizing (per-edge biasing, modifies the layer)
-Usage:
+Usage:
- layer.size(d [, mode])
- layer.size(dx, dy [, mode]))
@@ -1785,9 +1785,9 @@ The following image shows the effect of the separation check (layer1: red, layer
See sized. The size method basically does the same but modifies the layer
it is called on. The input layer is returned and available for further processing.
-"sized" - Polygon sizing (per-edge biasing)
+"sized" - Polygon sizing (per-edge biasing)
-Usage:
+Usage:
sheet_rho = 0.5
model_name = "RES"
-extract_devices(resistor(model_name, sheet_rho), { "R" => res_layer, "C" => cap_layer })
+extract_devices(resistor(model_name, sheet_rho), { "R" => res_layer, "C" => contact_layer })
The plain resistor offers two terminals which it outputs on "tA" and "tB" terminal layers.
@@ -62,6 +62,13 @@ extract_devices(resistor(model_name, sheet_rho), { "R" => res_layer, "C" => cap_
+
+ Note: The resistance computation is based on a simple approximation. It computes the number
+ of squares by tracing the perimeter of the "R" polygon. The perimeter length is separated
+ in parts where the perimeter touches the "C" layer and parts where it does not. The number
+ of squares is computed from the non-touching length divided by the touching length.
+
+
@@ -119,11 +126,6 @@ extract_devices(capacitor(model_name, area_cap), { "P1" => metal1, "P2" => metal
-
- The extractor will compute the capacitance from the area of the
- overlap and the capacitance per area (F/µm²) value.
-
-
model_name = "DIODE"
extract_devices(diode(model_name), { "P" => pplus, "N" => nwell })