Implemented #482: updated documentation.

This commit is contained in:
Matthias Koefferlein 2020-02-27 14:34:16 +01:00
parent 75e936bd64
commit 4cfe6ba2b9
3 changed files with 47 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -175,6 +175,52 @@ schematic.blank_circuit("CIRCUIT_NAME")</pre>
sets a flag (<class_doc href="Circuit#dont_purge"/>) which prevents purging of abstract
circuits.</p>
<h2>Joining of symmetric nodes</h2>
<p>
Sometimes it is possible to omit connections in the layout because these
will not carry any current. This might simplify the layout and allow denser
packing, but finally there is a mismatch between schematic and layout.
In general, connections can be omitted if they would connect symmetric
nodes. When symmetric nodes are swapped, the circuit will not change.
Hence they will always carry the same potential (at least in theory)
and a connection between them will not carry any current. So it can
be omitted.
</p>
<p>
The following picture describes such a situation known as "split gate configuration".
In this case, the N1 and N2 are identical: swapping them will not change the circuit's
topology. Hence, they will carry the same potential and the red connection is not required physically.
But without such a connection, the parallel transistors (top pair and bottom pair) will not be recognized
as parallel and the pairs will not be joined into one each:
</p>
<p>
<img src="lvs_symm_nodes.png"/>
</p>
<p>
KLayout provides a feature which will add such connections after extraction
of the netlist:
</p>
<pre>join_symmetric_nets("NAND2")</pre>
<p>
This function will analyze the circuit "NAND2" in the extracted netlist and connect all symmetric
nodes within it. If this function is called before "combine_devices" (e.g. through
"netlist.simplify"), this connection is already present then and parallel devices
will be recognized and combined.
</p>
<p>
The argument to "join_symmetric_nets" is a glob-style pattern. "*" will analyze and
modify all circuits, but at the price of potentially introducing unwanted connections.
Hence the recommendation is to use this feature on circuits which are known to
need it.
</p>
<h2>Purging (elimination of redundancy)</h2>
<p>

View File

@ -181,6 +181,7 @@
<file alias="lvs_io.xml">doc/manual/lvs_io.xml</file>
<file alias="lvs_compare.xml">doc/manual/lvs_compare.xml</file>
<file alias="lvs_tweaks.xml">doc/manual/lvs_tweaks.xml</file>
<file alias="lvs_symm_nodes.png">doc/manual/lvs_symm_nodes.png</file>
<file alias="lvs_connect.xml">doc/manual/lvs_connect.xml</file>
<file alias="inv.png">doc/manual/inv.png</file>
<file alias="inv_no_transistors.png">doc/manual/inv_no_transistors.png</file>