Enhanced LVS with 'join_symmetric_nets'. Updated doc. Added test.
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
@ -151,7 +151,7 @@ l1and2, l1minus2 = cheat("UNIT_CELL) do
|
|||
end
|
||||
</pre>
|
||||
</p><p>
|
||||
(Technically, the check code block is a Ruby Proc and cannot create variables
|
||||
(Technically, the cheat code block is a Ruby Proc and cannot create variables
|
||||
outside it's scope. Hence the results of this code block have to be passed
|
||||
through the "cheat" method).
|
||||
</p><p>
|
||||
|
|
@ -234,7 +234,6 @@ See <a href="/about/drc_ref_netter.xml#connect_global">Netter#connect_global</a>
|
|||
<a name="connect_implicit"/><p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect_implicit(label_pattern)</tt></li>
|
||||
<li><tt>connect_implicit(cell_pattern, label_pattern)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#connect_implicit">Netter#connect_implicit</a> for a description of that function.
|
||||
|
|
@ -769,7 +768,7 @@ a new target will be set up.
|
|||
</p><p>
|
||||
<ul>
|
||||
<li>A string "@n" (n is an integer) specifying output to a layout in the current panel </li>
|
||||
<li>A string "@+" specifying output to a new layout in the current panel</li>
|
||||
<li>A string "@+" specifying output to a new layout in the current panel </li>
|
||||
<li>A layout filename </li>
|
||||
<li>A <class_doc href="Layout">Layout</class_doc> object </li>
|
||||
<li>A <class_doc href="Cell">Cell</class_doc> object </li>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
@ -751,6 +751,19 @@ The following image shows the effect of the "interacting" method (input1: red, i
|
|||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
<h2>"intersections" - Returns the intersection points of intersecting edge segments for two edge collections</h2>
|
||||
<keyword name="intersections"/>
|
||||
<a name="intersections"/><p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>layer.intersections(edges)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This operation is similar to the "&" operator, but it does also report intersection points
|
||||
between non-colinear, but intersection edges. Such points are reported as point-like,
|
||||
degenerated edge objects.
|
||||
</p><p>
|
||||
This method is available for edge layers. The argument must be an edge layer.
|
||||
</p>
|
||||
<h2>"is_box?" - Returns true, if the region contains a single box</h2>
|
||||
<keyword name="is_box?"/>
|
||||
<a name="is_box?"/><p>Usage:</p>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
@ -187,17 +187,17 @@ to shapes belonging to tie-down diodes.
|
|||
<li><tt>connect_implicit(cell_pattern, label_pattern)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use the first version of this method to supply label strings which create implicit net connections
|
||||
on the top level circuit. This feature is useful to connect identically labelled nets
|
||||
Use this method to supply label strings which create implicit net connections
|
||||
on the top level circuit in the first version. This feature is useful to connect identically labelled nets
|
||||
while a component isn't integrated yet. If the component is integrated, nets may be connected
|
||||
on a higher hierarchy level - e.g. by a power mesh. Inside the component this net consists
|
||||
of individual islands. To properly perform netlist extraction and comparison, these islands
|
||||
need to be connected even though there isn't a physical connection. "connect_implicit" can
|
||||
achieve this if these islands are labelled with the same text on the top level of the
|
||||
achive this if these islands are labelled with the same text on the top level of the
|
||||
component.
|
||||
</p><p>
|
||||
In the second version, the pattern can be specified for a cell range (given by a cell glob-style
|
||||
name pattern or a single cell name). These pattern are applied to non-top cells. An unspecific pattern
|
||||
In the second version, the pattern can be specified for a cell range (given by a cell name pattern or a
|
||||
single cell name). These pattern are applied to non-top cells. The unspecific pattern
|
||||
has priority over the cell-specific ones. As the cell selector is a pattern itself, a
|
||||
single cell may fall into more than one category. In this case, the label filters are
|
||||
combined.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
@ -46,6 +46,15 @@ See <a href="/about/lvs_ref_netter.xml#compare">Netter#compare</a> for a descrip
|
|||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#equivalent_pins">Netter#equivalent_pins</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist</h2>
|
||||
<keyword name="join_symmetric_nets"/>
|
||||
<a name="join_symmetric_nets"/><p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>join_symmetric_nets(circuit_filter)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#join_symmetric_nets">Netter#join_symmetric_nets</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"max_branch_complexity" - Configures the maximum branch complexity for ambiguous net matching</h2>
|
||||
<keyword name="max_branch_complexity"/>
|
||||
<a name="max_branch_complexity"/><p>Usage:</p>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE language SYSTEM "klayout_doc.dtd">
|
||||
|
||||
<!-- generated by /home/matthias/klayout/dvb/scripts/extract_doc.rb -->
|
||||
<!-- generated by /home/matthias/klayout/master/scripts/extract_doc.rb -->
|
||||
<!-- DO NOT EDIT! -->
|
||||
|
||||
<doc>
|
||||
|
|
@ -110,6 +110,29 @@ If the netlist provides named pins, names can be used instead of numbers.
|
|||
Before this method can be used, a schematic netlist needs to be loaded with
|
||||
<a href="#schematic">schematic</a>.
|
||||
</p>
|
||||
<h2>"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist</h2>
|
||||
<keyword name="join_symmetric_nets"/>
|
||||
<a name="join_symmetric_nets"/><p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>join_symmetric_nets(circuit_filter)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Nets are symmetrical if swapping them would not modify the circuit.
|
||||
Hence they will carry the same potential and can be connected (joined).
|
||||
This will simplify the circuit and can be applied before device combination
|
||||
(e.g. through "netlist.simplify") to render a schematic-equivalent netlist in some
|
||||
cases where symmetric nodes are split (i.e. "split gate" configuration).
|
||||
</p><p>
|
||||
This method operates on the extracted netlist (layout). The circuit filter
|
||||
specifies the circuits to which to apply this operation. The filter is a
|
||||
glob-style pattern. Using "*" for all circuits is possible, but it's
|
||||
discouraged currenty until the reliability of the symmetry detection
|
||||
algorithm is established. Currently it is recommended to apply it only to
|
||||
those circuits for which this feature is required.
|
||||
</p><p>
|
||||
For the symmetry detection, the specified constraints (e.g. tolerances,
|
||||
device filters etc.) apply.
|
||||
</p>
|
||||
<h2>"lvs_data" - Gets the internal <class_doc href="LayoutVsSchematic">LayoutVsSchematic</class_doc> object</h2>
|
||||
<keyword name="lvs_data"/>
|
||||
<a name="lvs_data"/><p>Usage:</p>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.7 KiB |
|
|
@ -94,6 +94,12 @@ module LVS
|
|||
# @synopsis compare
|
||||
# See \Netter#compare for a description of that function.
|
||||
|
||||
# %LVS%
|
||||
# @name join_symmetric_nets
|
||||
# @brief Joins symmetric nets of selected circuits on the extracted netlist
|
||||
# @synopsis join_symmetric_nets(circuit_filter)
|
||||
# See \Netter#join_symmetric_nets for a description of that function.
|
||||
|
||||
# %LVS%
|
||||
# @name align
|
||||
# @brief Aligns the extracted netlist vs. the schematic by flattening circuits where required
|
||||
|
|
@ -149,7 +155,7 @@ module LVS
|
|||
# @synopsis max_depth(n)
|
||||
# See \Netter#max_depth for a description of that function.
|
||||
|
||||
%w(schematic compare align same_nets same_circuits same_device_classes equivalent_pins min_caps max_res max_depth max_branch_complexity).each do |f|
|
||||
%w(schematic compare join_symmetric_nets align same_nets same_circuits same_device_classes equivalent_pins min_caps max_res max_depth max_branch_complexity).each do |f|
|
||||
eval <<"CODE"
|
||||
def #{f}(*args)
|
||||
_netter.#{f}(*args)
|
||||
|
|
|
|||