mirror of https://github.com/KLayout/klayout.git
Implemented #482: updated documentation.
This commit is contained in:
parent
75e936bd64
commit
4cfe6ba2b9
Binary file not shown.
|
After Width: | Height: | Size: 9.0 KiB |
|
|
@ -175,6 +175,52 @@ schematic.blank_circuit("CIRCUIT_NAME")</pre>
|
||||||
sets a flag (<class_doc href="Circuit#dont_purge"/>) which prevents purging of abstract
|
sets a flag (<class_doc href="Circuit#dont_purge"/>) which prevents purging of abstract
|
||||||
circuits.</p>
|
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>
|
<h2>Purging (elimination of redundancy)</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,7 @@
|
||||||
<file alias="lvs_io.xml">doc/manual/lvs_io.xml</file>
|
<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_compare.xml">doc/manual/lvs_compare.xml</file>
|
||||||
<file alias="lvs_tweaks.xml">doc/manual/lvs_tweaks.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="lvs_connect.xml">doc/manual/lvs_connect.xml</file>
|
||||||
<file alias="inv.png">doc/manual/inv.png</file>
|
<file alias="inv.png">doc/manual/inv.png</file>
|
||||||
<file alias="inv_no_transistors.png">doc/manual/inv_no_transistors.png</file>
|
<file alias="inv_no_transistors.png">doc/manual/inv_no_transistors.png</file>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue