WIP: doc update.

This commit is contained in:
Matthias Koefferlein 2019-07-05 17:48:23 +02:00
parent 153bfa9c52
commit fade779238
3 changed files with 113 additions and 5 deletions

View File

@ -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"/>
-->

View File

@ -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 &gt;= 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 &lt;= 0.1fF:
</p>
<pre>max_caps(1e-16)</pre>
</doc>

View File

@ -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/>