mirror of https://github.com/KLayout/klayout.git
WIP: doc update.
This commit is contained in:
parent
153bfa9c52
commit
fade779238
|
|
@ -18,11 +18,11 @@
|
|||
<topic href="/manual/lvs_device_extractors.xml"/>
|
||||
<topic href="/manual/lvs_io.xml"/>
|
||||
<topic href="/manual/lvs_connect.xml"/>
|
||||
<topic href="/manual/lvs_compare.xml"/>
|
||||
|
||||
<!--
|
||||
<topic href="/manual/lvs_hierarchy.xml"/>
|
||||
<topic href="/manual/lvs_reference.xml"/>
|
||||
<topic href="/manual/lvs_compare.xml"/>
|
||||
<topic href="/manual/lvs_tweaks.xml"/>
|
||||
<topic href="/manual/lvs_browser.xml"/>
|
||||
-->
|
||||
|
|
|
|||
|
|
@ -3,13 +3,121 @@
|
|||
|
||||
<doc>
|
||||
|
||||
<title>LVS Connectivity</title>
|
||||
<title>LVS Compare</title>
|
||||
<keyword name="LVS"/>
|
||||
<keyword name="LVS Connectivity"/>
|
||||
<keyword name="LVS Compare"/>
|
||||
|
||||
<h2-index/>
|
||||
|
||||
<p>
|
||||
The actual compare step is rather simple. Provided you have set up the extraction
|
||||
(<a href="/about/drc_ref_global.xml#extract_devices">extract_devices</a>), the
|
||||
connectivity (<a href="/about/drc_ref_global.xml#connect">connect</a>,
|
||||
<a href="/about/drc_ref_global.xml#connect_global">connect_global</a>,
|
||||
<a href="/about/drc_ref_global.xml#connect_implicit">connect_implicit</a>) and
|
||||
provided a reference netlist (<a href="/about/drc_ref_global.xml#schematic">schematic</a>),
|
||||
this function will perform the actual compare:
|
||||
</p>
|
||||
|
||||
<pre>compare</pre>
|
||||
|
||||
<p>
|
||||
This method (<a href="/about/lvs_ref_global.xml#compare">compare</a>
|
||||
will extract the netlist (if not already done) and compare it against
|
||||
the schematic. It returns true on success and false otherwise, in case
|
||||
you like to take specific actions on success or failure.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The compare step can configured by providing hints.
|
||||
</p>
|
||||
|
||||
<h2>Net equivalence hint</h2>
|
||||
|
||||
<p>
|
||||
It can be useful to declare two nets as identical, at least for debugging.
|
||||
The compare algorithm will then be able to deduce the real causes for mismatches.
|
||||
It is helpful for example to provide equivalence for the power nets, because
|
||||
netlist compare fails will often cause the power nets no to be mapped. This in
|
||||
turn prevents matching of other, good parts of the circuit. To supply a
|
||||
power net equivalence for "VDD" within a circuit (e.g. "LOGIC"), use this statement:
|
||||
</p>
|
||||
|
||||
<pre>same_nets("LOGIC", "VDD", "VDD:P")</pre>
|
||||
|
||||
<p>
|
||||
In this example it is assumed that the power net is labelled "VDD" in the
|
||||
layout and called "VDD:P" in the schematic. Don't leave this statement in
|
||||
the script for final verification as it may mask real errors.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For more information about "same_nets" see <a href="/about/lvs_ref_global.xml#same_nets">same_nets</a>.
|
||||
</p>
|
||||
|
||||
<h2>Circuit equivalence hint</h2>
|
||||
|
||||
<p>
|
||||
By default, circuits with the same name are considered equivalent. If this is not the
|
||||
case, equivalence can be established using the <a href="/about/lvs_ref_global.xml#same_circuits">same_circuit</a>
|
||||
function:
|
||||
</p>
|
||||
|
||||
<pre>same_circuits("CIRCUIT_IN_LAYOUT", "CIRCUIT_IN_SCHEMATIC")</pre>
|
||||
|
||||
<h2>Device class equivalence hint</h2>
|
||||
|
||||
<p>
|
||||
By default, device classes with the same name are considered equivalent. If this is not the
|
||||
case, equivalence can be established using the <a href="/about/lvs_ref_global.xml#same_device_classes">same_device_classes</a>
|
||||
function:
|
||||
</p>
|
||||
|
||||
<pre>same_device_classes("PMOS_IN_LAYOUT", "PMOS_IN_SCHEMATIC")
|
||||
same_device_classes("NMOS_IN_LAYOUT", "NMOS_IN_SCHEMATIC")</pre>
|
||||
|
||||
<h2>Pin swapping</h2>
|
||||
|
||||
<p>
|
||||
Pin swapping can be useful in cases, where a logic element has logically equivalent, but
|
||||
physically different inputs. This is the case for example for a CMOS NAND gate where the
|
||||
logic inputs are equivalent in function, but not in the circuit and physical implementation.
|
||||
For such circuits, the compare function needs to be given a degree of freedom and
|
||||
be allowed to swap the inputs. This is achieved with the
|
||||
<a href="/about/lvs_ref_global.xml#equivalent_pins">equivalent_pins</a>
|
||||
function:
|
||||
</p>
|
||||
|
||||
<pre>equivalent_pins("NAND_GATE", "A", "B")</pre>
|
||||
|
||||
<p>
|
||||
The first argument is the name of the circuit in the layout netlist. You can
|
||||
only specify equivalence in layout, not in the reference schematic.
|
||||
Multiple pins can be listed after the circuit name. All of them will be
|
||||
considered equivalent.
|
||||
</p>
|
||||
|
||||
<h2>Capacitor and resistor elimination</h2>
|
||||
|
||||
<p>
|
||||
This feature allows eliminating "open" resistors and capacitors.
|
||||
Serial resistors cannot be elimiated currently (shorted).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To eliminate all resistors with a resistance value above a certain threshold, use the
|
||||
<a href="/about/lvs_ref_global.xml#max_res">max_res</a> function. This will
|
||||
eliminate all resistors with a value >= 1kOhm:
|
||||
</p>
|
||||
|
||||
<pre>max_res(1000)</pre>
|
||||
|
||||
<p>
|
||||
To eliminate all capacitors with a capacitance value below a certain threshold, use the
|
||||
<a href="/about/lvs_ref_global.xml#max_caps">max_caps</a> function. This will
|
||||
eliminate all capacitances with a value <= 0.1fF:
|
||||
</p>
|
||||
|
||||
<pre>max_caps(1e-16)</pre>
|
||||
|
||||
</doc>
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
<doc>
|
||||
|
||||
<title>LVS Connectivity</title>
|
||||
<title>LVS Tweaks</title>
|
||||
<keyword name="LVS"/>
|
||||
<keyword name="LVS Connectivity"/>
|
||||
<keyword name="LVS Tweaks"/>
|
||||
|
||||
<h2-index/>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue