mirror of https://github.com/KLayout/klayout.git
Added inverter test layout
This commit is contained in:
parent
3c4c1b9c4f
commit
9f26553d4b
|
|
@ -13,13 +13,16 @@
|
|||
<topics>
|
||||
<topic href="/manual/lvs_overview.xml"/>
|
||||
<topic href="/manual/lvs_intro.xml"/>
|
||||
|
||||
<!--
|
||||
<topic href="/manual/lvs_hierarchy.xml"/>
|
||||
<topic href="/manual/lvs_devices.xml"/>
|
||||
<topic href="/manual/lvs_connect.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"/>
|
||||
<topuresic href="/manual/lvs_browser.xml"/>
|
||||
-->
|
||||
</topics>
|
||||
|
||||
<p>A reference for the functions and objects available for LVS scripts can be found here: <link href="/about/lvs_ref.xml"/>.</p>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@
|
|||
<doc>
|
||||
|
||||
<title>Layout vs. Schematic (LVS) Overview</title>
|
||||
<keyword name="DRC"/>
|
||||
<keyword name="LVS"/>
|
||||
<keyword name="LVS scripts"/>
|
||||
|
||||
<h2-index/>
|
||||
|
||||
|
|
@ -39,8 +40,11 @@
|
|||
In fact, LVS is an add-on to DRC scripts. All DRC functions are available within LVS
|
||||
scripts. Netlist extraction is performed in the DRC framework which was given the ability
|
||||
to recognize devices and connections and turn them into a netlist. Although DRC does not
|
||||
really benefit from these extension, they are still useful for implementing Antenna checks
|
||||
for example.
|
||||
really benefit from these extensions, they are still useful for implementing Antenna checks
|
||||
for example.
|
||||
As it happens, the majority of features required for LVS is documented in the
|
||||
<link href="/about/drc_ref.xml"/>, while the few add-ons required specifically for LVS
|
||||
are documented in <link href="/about/lvs_ref.xml"/>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
@ -88,22 +92,131 @@
|
|||
and diodes.
|
||||
</li>
|
||||
<li><b>Flexible I/O:</b> Netlists are KLayout object trees and their components (nets, devices,
|
||||
circuits, subcircuits ...) are fully mapped to script objects.
|
||||
circuits, subcircuits ...) are fully mapped to script objects (for the main class see
|
||||
<class_doc href="Netlist"/> in the API documentation).
|
||||
Netlists can therefore be analyzed and manipulated within LVS scripts or in other
|
||||
contexts. It is possible to fully script readers and writers for custom formats.
|
||||
contexts. It should be possible to fully script readers and writers for custom formats.
|
||||
Netlists plus the corresponding layout elements (sometimes called "annotated layout") can
|
||||
be persisted in a KLayout-specific yet open format. SPICE format is available to read and
|
||||
be persisted in a KLayout-specific, yet open format. SPICE format is available to read and
|
||||
write pure netlist information. The SPICE reader and writer is customizable
|
||||
through delegate classes which allow tailoring of the way devices are read and written.
|
||||
</li>
|
||||
<li><b>User interface integration:</b> KLayout offers a browser for the netlist
|
||||
extraction results and LVS reports (cross-reference, errors).
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Terminology</h2>
|
||||
|
||||
|
||||
<p>
|
||||
KLayout employs a specific terminology which is explained here:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><b>Circuit:</b> A graph of connected elements as there are: devices, pins
|
||||
and subcircuits. The nodes of the graph are the nets connecting at least two
|
||||
elements.
|
||||
If derived from a layout, a circuit corresponds to
|
||||
a specific layout cell.
|
||||
</li>
|
||||
<li><b>Abstract circuits:</b> Abstract circuits are circuits which are
|
||||
cleared from their inner structure. Such circuits don't have nets and define
|
||||
pins only. Abstract circuits are basically "black boxes" and LVS is required
|
||||
to consider their inner structure as "don't care". Abstract circuits are useful
|
||||
to reduce the netlist complexity by taking out big IP blocks verified separately
|
||||
(e.g. RAM blocks).
|
||||
</li>
|
||||
<li><b>Pin:</b> A point at which a circuit makes a connection to the outside.
|
||||
Circuits can embed other circuits as "subcircuits". Nets connecting to the
|
||||
pins of these subcircuits will propagate into the subcircuit and connect
|
||||
further elements there. Pins are usually attached to one net - in some cases,
|
||||
pins can be unattached (circuits abstracts).
|
||||
Pins can be named. Upon extraction, the pin name
|
||||
is derived from the name of the net attached to the pin.
|
||||
</li>
|
||||
<li><b>Subcircuit:</b> A circuit embedded into another circuit. One circuit
|
||||
can be used multiple times, hence many subcircuits can reference the same
|
||||
circuit. If derived from a layout, a subcircuit corresponds to a specific
|
||||
cell instance.
|
||||
</li>
|
||||
<li><b>Device:</b> A device is a n-terminal entity describing an atomic functional
|
||||
unit. Devices are passive devices (resistors, capacitors) or active devices
|
||||
such as transistors.
|
||||
</li>
|
||||
<li><b>Device class:</b> A device class is a type of device. Device classes
|
||||
are of a certain kind and there can be multiple classes per type. For example
|
||||
for MOS transistors, the kind is "MOS4" (a four-terminal MOS transistor) and
|
||||
there is usually "NMOS" and "PMOS" classes at least in a CMOS process.
|
||||
A device class typically corresponds to a model in SPICE.
|
||||
</li>
|
||||
<li><b>Device extraction:</b> Device extraction is the process of detecting
|
||||
devices and forming links between conductive areas and the device bodies. These
|
||||
links will eventually form the device terminals.
|
||||
</li>
|
||||
<li><b>Device combination:</b> Device combination is the process of forming
|
||||
single devices from combinations of multiple devices of the same class.
|
||||
For example, serial resistors
|
||||
can be combined into one. More importantly, parallel MOS transistors
|
||||
("fingered" transistors) are combined into a single device.
|
||||
Device combination is a step explicitly requested in the LVS script.
|
||||
</li>
|
||||
<li><b>Terminal:</b> A "terminal" is a pin of a device. Terminals are typically
|
||||
named after their function (e.g. "G" for the gate of a MOS transistor).
|
||||
</li>
|
||||
<li><b>Connectivity:</b> The connectivity is a description of conductive regions
|
||||
in the technology stack. A layer has intra-layer and intra-layer connectivity:
|
||||
"Intra-layer connectivity" means that polygons on the same layer touching other
|
||||
polygons form a connected - i.e. conductive - region. "Inter-layer connectivity" means
|
||||
that two layers form a connection where their polygons overlap. The sum of these
|
||||
rules forms the "connectivity graph".
|
||||
</li>
|
||||
<li><b>Netlist:</b> A hierarchical structure of circuits and subcircuits.
|
||||
A netlist typically has a top circuit from which other circuits are called
|
||||
through subcircuits.
|
||||
</li>
|
||||
<li><b>Extracted netlist:</b> The extracted netlist is the netlist derived
|
||||
from the layout. Sometimes, "extracted netlist" describes the netlist enriched
|
||||
with parasitic elements such as resistors and capacitors derived from the
|
||||
wire geometries. In the context of KLayout's LVS, "extracted netlist" is the
|
||||
pure connectivity without parasitic elements.
|
||||
</li>
|
||||
<li><b>Schematic:</b> The "schematic" is a netlist taken as reference for LVS.
|
||||
The "schematic" is thought of the "drawn" netlist that is turned into a layout
|
||||
by the physical implementation process. In LVS, the layout is turned back into
|
||||
the "extracted netlist" which is compared to the schematic.
|
||||
</li>
|
||||
<li><b>Annotated layout, Net geometry:</b> The collection of polygons belonging to the
|
||||
individual nets. Each net inside a circuit is represented by a bunch of polygons
|
||||
representing the original wire geometry and the device terminals.
|
||||
As nets can propagate to subcircuits through pins, nets and therefore annotated
|
||||
layout carries a per-net hierarchy. The per-net hierarchy consists of the
|
||||
subcircuits attached to one net and the nets within these subcircuits that
|
||||
connect to the outer net. Subcircuits can instantiate other subcircuits, so the
|
||||
hierarchy may extend over many levels.
|
||||
</li>
|
||||
<li><b>Layout to netlist database (L2N DB):</b> This is a data structure combining the
|
||||
information from the extracted netlist and the annotated layout into a single
|
||||
entity. The L2N database can be used to visualize nets, probe nets from known locations
|
||||
and perform other analysis and manipulation steps. An API for handling L2N databases
|
||||
is available.
|
||||
</li>
|
||||
<li><b>Cross reference:</b> The cross reference is a list of matching objects
|
||||
from the two netlists involved in a LVS netlist compare ("pairing"). The cross-reference also
|
||||
lists non-matching items and inexact pairs. "Inexact pairs" are pairs of objects which do
|
||||
not match precisely, but still are likely to be paired. The cross reference also
|
||||
keeps track of the compare status - i.e. whether the netlists match and if not, where
|
||||
a mismatch originates from.
|
||||
</li>
|
||||
<li><b>LVS database:</b> The "LVS database" is the combination of L2N database, the schematic
|
||||
netlist and the cross-reference. It's a complete image of the LVS results.
|
||||
An API is available to access the elements of the LVS database.
|
||||
</li>
|
||||
<li><b>Labels:</b> "Labels" are text objects drawn in a layout to mark certain locations
|
||||
on certain layers with a text. Typically, labels are used to assign net names - if included
|
||||
in the connectivity, nets formed from such labels get a name according to the text string
|
||||
of the label.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</doc>
|
||||
|
||||
|
|
|
|||
|
|
@ -169,6 +169,15 @@
|
|||
<file alias="drc.xml">doc/manual/drc.xml</file>
|
||||
<file alias="drc_basic.xml">doc/manual/drc_basic.xml</file>
|
||||
<file alias="drc_runsets.xml">doc/manual/drc_runsets.xml</file>
|
||||
<file alias="lvs.xml">doc/manual/lvs.xml</file>
|
||||
<file alias="lvs_overview.xml">doc/manual/lvs_overview.xml</file>
|
||||
<file alias="lvs_intro.xml">doc/manual/lvs_intro.xml</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_transistors.png">doc/manual/inv_transistors.png</file>
|
||||
<file alias="inv_with_diodes.png">doc/manual/inv_with_diodes.png</file>
|
||||
<file alias="inv_schematic.png">doc/manual/inv_schematic.png</file>
|
||||
<file alias="inv_schematic2.png">doc/manual/inv_schematic2.png</file>
|
||||
<file alias="edit_mode.xml">doc/manual/edit_mode.xml</file>
|
||||
<file alias="editor_advanced.xml">doc/manual/editor_advanced.xml</file>
|
||||
<file alias="editor_basics.xml">doc/manual/editor_basics.xml</file>
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue