mirror of https://github.com/KLayout/klayout.git
MERGE: documentation enhancements for LVS/DRC
This commit is contained in:
parent
a47932a79e
commit
666cdeadc5
|
|
@ -160,9 +160,9 @@ HEAD
|
|||
item.name || raise("Missing @name for item #{item_key}")
|
||||
item.brief || raise("Missing @brief for item #{item_key}")
|
||||
|
||||
doc += "<a name=\"" + escape(self.mod, item.name) + "\"/>"
|
||||
doc += "<h2>\"" + escape(self.mod, item.name) + "\" - " + escape(self.mod, item.brief) + "</h2>\n"
|
||||
doc += "<keyword name=\"" + escape(self.mod, item.name) + "\"/>\n"
|
||||
doc += "<a name=\"" + escape(self.mod, item.name) + "\"/>"
|
||||
if ! item.synopsis.empty?
|
||||
doc += "<p>Usage:</p>\n"
|
||||
doc += "<ul>\n"
|
||||
|
|
|
|||
|
|
@ -421,13 +421,31 @@ Class<db::NetlistDeviceExtractorMOS3Transistor> decl_NetlistDeviceExtractorMOS3T
|
|||
"conductive layer.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassMOS3Transistor.\n"
|
||||
"The extractor extracts the six parameters of this class: L, W, AS, AD, PS and PD.\n"
|
||||
"\n"
|
||||
"In strict mode, the device recognition layer names are 'S' (source), 'D' (drain) and 'G' (gate).\n"
|
||||
"Otherwise, they are 'SD' (source/drain) and 'G' (gate).\n"
|
||||
"The terminal output layer names are 'tS' (source), 'tG' (gate) and 'tD' (drain).\n"
|
||||
"The extractor delivers six parameters:\n"
|
||||
"\n"
|
||||
"The diffusion area is distributed on the number of gates connecting to\n"
|
||||
"@ul\n"
|
||||
"@li 'L' - the gate length in micrometer units @/li\n"
|
||||
"@li 'W' - the gate width in micrometer units @/li\n"
|
||||
"@li 'AS' and 'AD' - the source and drain region areas in square micrometers @/li\n"
|
||||
"@li 'PS' and 'PD' - the source and drain region perimeters in micrometer units @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layer names are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li In strict mode: 'S' (source), 'D' (drain) and 'G' (gate). @/li\n"
|
||||
"@li In non-strict mode: 'SD' (source and drain) and 'G' (gate). @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The terminals are output on these layers:\n"
|
||||
"@ul\n"
|
||||
"@li 'tS' - source. Default output is 'S' (strict mode) or 'SD' (otherwise). @/li\n"
|
||||
"@li 'tD' - drain. Default output is 'D' (strict mode) or 'SD' (otherwise). @/li\n"
|
||||
"@li 'tG' - gate. Default output is 'G'. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The source/drain (diffusion) area is distributed on the number of gates connecting to\n"
|
||||
"the particular source or drain area.\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
|
|
@ -451,12 +469,23 @@ Class<db::NetlistDeviceExtractorMOS4Transistor> decl_NetlistDeviceExtractorMOS4T
|
|||
"It is based on the \\DeviceExtractorMOS3Transistor class with the extension of a bulk terminal "
|
||||
"and corresponding bulk terminal output (annotation) layer.\n"
|
||||
"\n"
|
||||
"The bulk terminal layer ('tB') can be an empty layer representing the substrate.\n"
|
||||
"In this use mode the bulk terminal shapes will be produced on the 'tB' layer. This\n"
|
||||
"layer then needs to be connected to a global net to establish the net connection.\n"
|
||||
"The parameters of a MOS4 device are the same than for MOS3 devices. For the device "
|
||||
"layers the bulk layer is added.\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'B' (bulk) - currently this layer is not used and can be empty. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The bulk terminals are output on this layer:\n"
|
||||
"@ul\n"
|
||||
"@li 'tB' - bulk terminal (a copy of the gate shape). Default output is 'B'. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The bulk terminal layer can be empty. In this case, it needs \n"
|
||||
"to be connected to a global net to establish the net connection.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassMOS4Transistor.\n"
|
||||
"The "
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
"\n"
|
||||
|
|
@ -487,10 +516,25 @@ Class<db::NetlistDeviceExtractorResistor> decl_NetlistDeviceExtractorResistor (d
|
|||
"'R = L / W * sheet_rho'.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassResistor.\n"
|
||||
"The extractor extracts the three parameters of this class: R, A and P.\n"
|
||||
"The extractor produces three parameters:\n"
|
||||
"\n"
|
||||
"The device recognition layer names are 'R' (resistor) and 'C' (contacts).\n"
|
||||
"The terminal output layer names are 'tA' (terminal A) and 'tB' (terminal B).\n"
|
||||
"@ul\n"
|
||||
"@li 'R' - the resistance in Ohm @/li\n"
|
||||
"@li 'A' - the resistor's area in square micrometer units @/li\n"
|
||||
"@li 'P' - the resistor's perimeter in micrometer units @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layer names are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'R' - resistor path. This is the geometry that defines the resistor's current path. @/li\n"
|
||||
"@li 'C' - contacts. These areas form the contact regions at the ends of the resistor path. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The terminals are output on these layers:\n"
|
||||
"@ul\n"
|
||||
"@li 'tA', 'tB' - the two terminals of the resistor. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
|
|
@ -512,16 +556,30 @@ Class<db::NetlistDeviceExtractorResistorWithBulk> decl_NetlistDeviceExtractorRes
|
|||
"This class supplies the generic extractor for a resistor device including a bulk terminal.\n"
|
||||
"The device is defined the same way than devices are defined for \\DeviceExtractorResistor.\n"
|
||||
"\n"
|
||||
"In addition, a bulk terminal layer must be provided.\n"
|
||||
"The bulk terminal layer can be an empty layer representing the substrate.\n"
|
||||
"In this use mode the bulk terminal shapes will be produced on the 'tW' layer. This\n"
|
||||
"layer then needs to be connected to a global net to establish the net connection.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassResistorWithBulk.\n"
|
||||
"The extractor extracts the three parameters of this class: R, A and P.\n"
|
||||
"The extractor produces three parameters:\n"
|
||||
"\n"
|
||||
"The device recognition layer names are 'R' (resistor), 'C' (contacts) and 'W' (well, bulk).\n"
|
||||
"The terminal output layer names are 'tA' (terminal A), 'tB' (terminal B) and 'tW' (well, bulk).\n"
|
||||
"@ul\n"
|
||||
"@li 'R' - the resistance in Ohm @/li\n"
|
||||
"@li 'A' - the resistor's area in square micrometer units @/li\n"
|
||||
"@li 'P' - the resistor's perimeter in micrometer units @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layer names are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'R' - resistor path. This is the geometry that defines the resistor's current path. @/li\n"
|
||||
"@li 'C' - contacts. These areas form the contact regions at the ends of the resistor path. @/li\n"
|
||||
"@li 'W' - well, bulk. Currently this layer is ignored for the extraction and can be empty. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The terminals are output on these layers:\n"
|
||||
"@ul\n"
|
||||
"@li 'tA', 'tB' - the two terminals of the resistor. @/li\n"
|
||||
"@li 'tW' - the bulk terminal (copy of the resistor area). @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The bulk terminal layer can be an empty layer representing the substrate. In this case, it needs to be connected globally.\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
|
|
@ -545,11 +603,28 @@ Class<db::NetlistDeviceExtractorCapacitor> decl_NetlistDeviceExtractorCapacitor
|
|||
"The capacitance is computed from the overlapping area of the plates "
|
||||
"using 'C = A * area_cap' (area_cap is the capacitance per square micrometer area).\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassCapacitor.\n"
|
||||
"The extractor extracts the three parameters of this class: C, A and P.\n"
|
||||
"Although 'area_cap' can be given in any unit, Farad should be preferred as this is the "
|
||||
"convention used for output into a netlist.\n"
|
||||
"\n"
|
||||
"The device recognition layer names are 'P1' (plate 1) and 'P2' (plate 2).\n"
|
||||
"The terminal output layer names are 'tA' (terminal A) and 'tB' (terminal B).\n"
|
||||
"The device class produced by this extractor is \\DeviceClassCapacitor.\n"
|
||||
"The extractor produces three parameters:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'C' - the capacitance @/li\n"
|
||||
"@li 'A' - the capacitor's area in square micrometer units @/li\n"
|
||||
"@li 'P' - the capacitor's perimeter in micrometer units @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layer names are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'P1', 'P2' - the two plates. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The terminals are output on these layers:\n"
|
||||
"@ul\n"
|
||||
"@li 'tA', 'tB' - the two terminals. Defaults to 'P1' and 'P2'. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
|
|
@ -571,16 +646,29 @@ Class<db::NetlistDeviceExtractorCapacitorWithBulk> decl_NetlistDeviceExtractorCa
|
|||
"This class supplies the generic extractor for a capacitor device including a bulk terminal.\n"
|
||||
"The device is defined the same way than devices are defined for \\DeviceExtractorCapacitor.\n"
|
||||
"\n"
|
||||
"In addition, a bulk terminal layer must be provided.\n"
|
||||
"The bulk terminal layer can be an empty layer representing the substrate.\n"
|
||||
"In this use mode the bulk terminal shapes will be produced on the 'tW' layer. This\n"
|
||||
"layer then needs to be connected to a global net to establish the net connection.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassCapacitorWithBulk.\n"
|
||||
"The extractor extracts the three parameters of this class: C, A and P.\n"
|
||||
"The extractor produces three parameters:\n"
|
||||
"\n"
|
||||
"The device recognition layer names are 'P1' (plate 1), 'P2' (plate 2) and 'W' (well, bulk).\n"
|
||||
"The terminal output layer names are 'tA' (terminal A), 'tB' (terminal B) and 'tW' (well, bulk).\n"
|
||||
"@ul\n"
|
||||
"@li 'C' - the capacitance @/li\n"
|
||||
"@li 'A' - the capacitor's area in square micrometer units @/li\n"
|
||||
"@li 'P' - the capacitor's perimeter in micrometer units @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layer names are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'P1', 'P2' - the two plates. @/li\n"
|
||||
"@li 'W' - well, bulk. Currently this layer is ignored for the extraction and can be empty. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The terminals are output on these layers:\n"
|
||||
"@ul\n"
|
||||
"@li 'tA', 'tB' - the two terminals. Defaults to 'P1' and 'P2'. @/li\n"
|
||||
"@li 'tW' - the bulk terminal (copy of the resistor area). @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The bulk terminal layer can be an empty layer representing the substrate. In this case, it needs to be connected globally.\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
|
|
@ -612,10 +700,28 @@ Class<db::NetlistDeviceExtractorBJT3Transistor> decl_dbNetlistDeviceExtractorBJT
|
|||
"to form the net connection.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is \\DeviceClassBJT3Transistor.\n"
|
||||
"The extractor extracts the two parameters of this class: AE and PE.\n"
|
||||
"The extractor delivers these parameters:\n"
|
||||
"\n"
|
||||
"The device recognition layer names are 'C' (collector), 'B' (base) and 'E' (emitter).\n"
|
||||
"The terminal output layer names are 'tC' (collector), 'tB' (base) and 'tE' (emitter).\n"
|
||||
"@ul\n"
|
||||
"@li 'AE', 'AB' and 'AC' - the emitter, base and collector areas in square micrometer units @/li\n"
|
||||
"@li 'PE', 'PB' and 'PC' - the emitter, base and collector perimeters in micrometer units @/li\n"
|
||||
"@li 'NE' - emitter count (initially 1 but increases when devices are combined) @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layer names are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'E' - emitter. @/li\n"
|
||||
"@li 'B' - base. @/li\n"
|
||||
"@li 'C' - collector. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The terminals are output on these layers:\n"
|
||||
"@ul\n"
|
||||
"@li 'tE' - emitter. Default output is 'E'. @/li\n"
|
||||
"@li 'tB' - base. Default output is 'B'. @/li\n"
|
||||
"@li 'tC' - collector. Default output is 'C'. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
|
|
@ -638,6 +744,13 @@ Class<db::NetlistDeviceExtractorBJT4Transistor> decl_NetlistDeviceExtractorBJT4T
|
|||
"It is based on the \\DeviceExtractorBJT3Transistor class with the extension of a substrate terminal "
|
||||
"and corresponding substrate terminal output (annotation) layer.\n"
|
||||
"\n"
|
||||
"Two new layers are introduced:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'S' - the bulk (substrate) layer. Currently this layer is ignored and can be empty. @/li"
|
||||
"@li 'tS' - the bulk terminal output layer (defaults to 'S'). @/li"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The bulk terminal layer ('tS') can be an empty layer representing the wafer substrate.\n"
|
||||
"In this use mode the substrate terminal shapes will be produced on the 'tS' layer. This\n"
|
||||
"layer then needs to be connected to a global net to establish the net connection.\n"
|
||||
|
|
@ -666,13 +779,29 @@ Class<db::NetlistDeviceExtractorDiode> decl_NetlistDeviceExtractorDiode (decl_db
|
|||
"the diode. The p-type layer forms the anode, the n-type layer\n"
|
||||
"the cathode.\n"
|
||||
"\n"
|
||||
"The device class produced by this extractor is DeviceClassDiode.\n"
|
||||
"The extractor extracts the two parameters of this class: A and P.\n"
|
||||
"A is the area of the overlap area and P is the perimeter.\n"
|
||||
"The device class produced by this extractor is \\DeviceClassDiode.\n"
|
||||
"The extractor extracts the two parameters of this class:\n"
|
||||
"\n"
|
||||
"The layers are \"P\" and \"N\" for the p and n region respectively.\n"
|
||||
"The terminal output layers are \"tA\" and \"tC\" for anode and \n"
|
||||
"cathode respectively.\n"
|
||||
"@ul\n"
|
||||
"@li 'A' - the diode area in square micrometer units. @/li\n"
|
||||
"@li 'P' - the diode perimeter in micrometer units. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The device layers are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'P' - the p doped area. @/li\n"
|
||||
"@li 'N' - the n doped area. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"The diode region is defined by the overlap of p and n regions.\n"
|
||||
"\n"
|
||||
"The terminal output layers are:\n"
|
||||
"\n"
|
||||
"@ul\n"
|
||||
"@li 'tA' - anode. Defaults to 'P'. @/li\n"
|
||||
"@li 'tC' - cathode. Defaults to 'N'. @/li\n"
|
||||
"@/ul\n"
|
||||
"\n"
|
||||
"This class is a closed one and methods cannot be reimplemented. To reimplement "
|
||||
"specific methods, see \\DeviceExtractor.\n"
|
||||
|
|
|
|||
|
|
@ -147,7 +147,10 @@ module DRC
|
|||
# @name mos3
|
||||
# @synopsis mos3(name)
|
||||
# Use this class with \extract_devices to specify extraction of a
|
||||
# three-terminal MOS transistor
|
||||
# three-terminal MOS transistor.
|
||||
#
|
||||
# See RBA::DeviceExtractorMOS3Transistor for more details
|
||||
# about this extractor (non-strict mode applies for 'mos3').
|
||||
|
||||
def mos3(name)
|
||||
RBA::DeviceExtractorMOS3Transistor::new(name)
|
||||
|
|
@ -158,7 +161,10 @@ module DRC
|
|||
# @name mos4
|
||||
# @synopsis mos4(name)
|
||||
# Use this class with \extract_devices to specify extraction of a
|
||||
# four-terminal MOS transistor
|
||||
# four-terminal MOS transistor.
|
||||
#
|
||||
# See RBA::DeviceExtractorMOS4Transistor for more details
|
||||
# about this extractor (non-strict mode applies for 'mos4').
|
||||
|
||||
def mos4(name)
|
||||
RBA::DeviceExtractorMOS4Transistor::new(name)
|
||||
|
|
@ -172,6 +178,9 @@ module DRC
|
|||
# three-terminal DMOS transistor. A DMOS transistor is essentially
|
||||
# the same than a MOS transistor, but source and drain are
|
||||
# separated.
|
||||
#
|
||||
# See RBA::DeviceExtractorMOS3Transistor for more details
|
||||
# about this extractor (strict mode applies for 'dmos3').
|
||||
|
||||
def dmos3(name)
|
||||
RBA::DeviceExtractorMOS3Transistor::new(name, true)
|
||||
|
|
@ -185,6 +194,9 @@ module DRC
|
|||
# four-terminal DMOS transistor. A DMOS transistor is essentially
|
||||
# the same than a MOS transistor, but source and drain are
|
||||
# separated.
|
||||
#
|
||||
# See RBA::DeviceExtractorMOS4Transistor for more details
|
||||
# about this extractor (strict mode applies for 'dmos4').
|
||||
|
||||
def dmos4(name)
|
||||
RBA::DeviceExtractorMOS4Transistor::new(name, true)
|
||||
|
|
@ -196,6 +208,9 @@ module DRC
|
|||
# @synopsis bjt3(name)
|
||||
# Use this class with \extract_devices to specify extraction of a
|
||||
# bipolar junction transistor
|
||||
#
|
||||
# See RBA::DeviceExtractorBJT3Transistor for more details
|
||||
# about this extractor.
|
||||
|
||||
def bjt3(name)
|
||||
RBA::DeviceExtractorBJT3Transistor::new(name)
|
||||
|
|
@ -207,6 +222,9 @@ module DRC
|
|||
# @synopsis bjt4(name)
|
||||
# Use this class with \extract_devices to specify extraction of a
|
||||
# bipolar junction transistor with a substrate terminal
|
||||
#
|
||||
# See RBA::DeviceExtractorBJT4Transistor for more details
|
||||
# about this extractor.
|
||||
|
||||
def bjt4(name)
|
||||
RBA::DeviceExtractorBJT4Transistor::new(name)
|
||||
|
|
@ -218,6 +236,9 @@ module DRC
|
|||
# @synopsis diode(name)
|
||||
# Use this class with \extract_devices to specify extraction of a
|
||||
# planar diode
|
||||
#
|
||||
# See RBA::DeviceExtractorDiode for more details
|
||||
# about this extractor.
|
||||
|
||||
def diode(name)
|
||||
RBA::DeviceExtractorDiode::new(name)
|
||||
|
|
@ -228,7 +249,12 @@ module DRC
|
|||
# @name resistor
|
||||
# @synopsis resistor(name, sheet_rho)
|
||||
# Use this class with \extract_devices to specify extraction of a resistor.
|
||||
# The sheet_rho value is the sheet resistance in ohms/square.
|
||||
#
|
||||
# The sheet_rho value is the sheet resistance in ohms/square. It is used
|
||||
# to compute the resistance from the geometry.
|
||||
#
|
||||
# See RBA::DeviceExtractorResistor for more details
|
||||
# about this extractor.
|
||||
|
||||
def resistor(name, sheet_rho)
|
||||
RBA::DeviceExtractorResistor::new(name, sheet_rho)
|
||||
|
|
@ -241,6 +267,9 @@ module DRC
|
|||
# Use this class with \extract_devices to specify extraction of a resistor
|
||||
# with a bulk terminal.
|
||||
# The sheet_rho value is the sheet resistance in ohms/square.
|
||||
#
|
||||
# See RBA::DeviceExtractorResistorWithBulk for more details
|
||||
# about this extractor.
|
||||
|
||||
def resistor_with_bulk(name, sheet_rho)
|
||||
RBA::DeviceExtractorResistorWithBulk::new(name, sheet_rho)
|
||||
|
|
@ -252,6 +281,9 @@ module DRC
|
|||
# @synopsis capacitor(name, area_cap)
|
||||
# Use this class with \extract_devices to specify extraction of a capacitor.
|
||||
# The area_cap argument is the capacitance in Farad per square micrometer.
|
||||
#
|
||||
# See RBA::DeviceExtractorCapacitor for more details
|
||||
# about this extractor.
|
||||
|
||||
def capacitor(name, area_cap)
|
||||
RBA::DeviceExtractorCapacitor::new(name, area_cap)
|
||||
|
|
@ -264,6 +296,9 @@ module DRC
|
|||
# Use this class with \extract_devices to specify extraction of a capacitor
|
||||
# with a bulk terminal.
|
||||
# The area_cap argument is the capacitance in Farad per square micrometer.
|
||||
#
|
||||
# See RBA::DeviceExtractorCapacitorWithBulk for more details
|
||||
# about this extractor.
|
||||
|
||||
def capacitor_with_bulk(name, area_cap)
|
||||
RBA::DeviceExtractorCapacitorWithBulk::new(name, area_cap)
|
||||
|
|
|
|||
|
|
@ -135,11 +135,27 @@ module DRC
|
|||
# class object and the new extractor's name is given.
|
||||
#
|
||||
# The device extractor is either an instance of one of the predefined extractor
|
||||
# classes (e.g. obtained from the utility methods such as \mos4) or a custom class.
|
||||
# classes (e.g. obtained from the utility methods such as \global#mos4) or a custom class.
|
||||
# It provides the
|
||||
# algorithms for deriving the device parameters from the device geometry. It needs
|
||||
# several device recognition layers which are passed in the layer hash.
|
||||
#
|
||||
# Predefined device extractors are:
|
||||
#
|
||||
# @ul
|
||||
# @li \global#mos3 - A three-terminal MOS transistor @/li
|
||||
# @li \global#mos4 - A four-terminal MOS transistor @/li
|
||||
# @li \global#dmos3 - A three-terminal MOS asymmetric transistor @/li
|
||||
# @li \global#dmos4 - A four-terminal MOS asymmetric transistor @/li
|
||||
# @li \global#bjt3 - A three-terminal bipolar transistor @/li
|
||||
# @li \global#bjt4 - A four-terminal bipolar transistor @/li
|
||||
# @li \global#diode - A planar diode @/li
|
||||
# @li \global#resistor - A resistor @/li
|
||||
# @li \global#resistor_with_bulk - A resistor with a separate bulk terminal @/li
|
||||
# @li \global#capacitor - A capacitor @/li
|
||||
# @li \global#capacitor_with_bulk - A capacitor with a separate bulk terminal @/li
|
||||
# @/ul
|
||||
#
|
||||
# Each device class (e.g. n-MOS/p-MOS or high Vt/low Vt) needs it's own instance
|
||||
# of device extractor. The device extractor beside the algorithm and specific
|
||||
# extraction settings defines the name of the device to be built.
|
||||
|
|
|
|||
|
|
@ -13,38 +13,44 @@ Most of them are convenience functions that basically act on some default object
|
|||
or provide function-like alternatives for the methods.
|
||||
</p>
|
||||
<h2-index/>
|
||||
<h2>"antenna_check" - Performs an antenna check</h2>
|
||||
<a name="antenna_check"/><h2>"antenna_check" - Performs an antenna check</h2>
|
||||
<keyword name="antenna_check"/>
|
||||
<a name="antenna_check"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>antenna_check(gate, metal, ratio, [ diode_specs ... ])</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#antenna_check">Netter#antenna_check</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"bjt3" - Supplies the BJT3 transistor extractor class</h2>
|
||||
<a name="bjt3"/><h2>"bjt3" - Supplies the BJT3 transistor extractor class</h2>
|
||||
<keyword name="bjt3"/>
|
||||
<a name="bjt3"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>bjt3(name)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
|
||||
bipolar junction transistor
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorBJT3Transistor">DeviceExtractorBJT3Transistor</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"bjt4" - Supplies the BJT4 transistor extractor class</h2>
|
||||
<a name="bjt4"/><h2>"bjt4" - Supplies the BJT4 transistor extractor class</h2>
|
||||
<keyword name="bjt4"/>
|
||||
<a name="bjt4"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>bjt4(name)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
|
||||
bipolar junction transistor with a substrate terminal
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorBJT4Transistor">DeviceExtractorBJT4Transistor</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"box" - Creates a box object</h2>
|
||||
<a name="box"/><h2>"box" - Creates a box object</h2>
|
||||
<keyword name="box"/>
|
||||
<a name="box"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>box(...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -52,19 +58,22 @@ bipolar junction transistor with a substrate terminal
|
|||
This function creates a box object. The arguments are the same than for the
|
||||
<class_doc href="DBox">DBox</class_doc> constructors.
|
||||
</p>
|
||||
<h2>"capacitor" - Supplies the capacitor extractor class</h2>
|
||||
<a name="capacitor"/><h2>"capacitor" - Supplies the capacitor extractor class</h2>
|
||||
<keyword name="capacitor"/>
|
||||
<a name="capacitor"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>capacitor(name, area_cap)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a capacitor.
|
||||
The area_cap argument is the capacitance in Farad per square micrometer.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorCapacitor">DeviceExtractorCapacitor</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"capacitor_with_bulk" - Supplies the capacitor extractor class that includes a bulk terminal</h2>
|
||||
<a name="capacitor_with_bulk"/><h2>"capacitor_with_bulk" - Supplies the capacitor extractor class that includes a bulk terminal</h2>
|
||||
<keyword name="capacitor_with_bulk"/>
|
||||
<a name="capacitor_with_bulk"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>capacitor_with_bulk(name, area_cap)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -72,10 +81,13 @@ The area_cap argument is the capacitance in Farad per square micrometer.
|
|||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a capacitor
|
||||
with a bulk terminal.
|
||||
The area_cap argument is the capacitance in Farad per square micrometer.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorCapacitorWithBulk">DeviceExtractorCapacitorWithBulk</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"cell" - Selects a cell for input on the default source</h2>
|
||||
<a name="cell"/><h2>"cell" - Selects a cell for input on the default source</h2>
|
||||
<keyword name="cell"/>
|
||||
<a name="cell"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>cell(args)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -92,9 +104,9 @@ cell("MACRO")
|
|||
l1 = input(1, 0)
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"cheat" - Hierarchy cheats</h2>
|
||||
<a name="cheat"/><h2>"cheat" - Hierarchy cheats</h2>
|
||||
<keyword name="cheat"/>
|
||||
<a name="cheat"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>cheat(args) { block }</tt></li>
|
||||
</ul>
|
||||
|
|
@ -184,18 +196,18 @@ cheat("UNIT_CELL{1,2}") { ... }
|
|||
For LVS applications, it's usually sufficient to cheat in the device extraction step.
|
||||
Cheats have been introduced in version 0.26.1.
|
||||
</p>
|
||||
<h2>"clear_connections" - Clears all connections stored so far</h2>
|
||||
<a name="clear_connections"/><h2>"clear_connections" - Clears all connections stored so far</h2>
|
||||
<keyword name="clear_connections"/>
|
||||
<a name="clear_connections"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>clear_connections</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#clear_connections">Netter#clear_connections</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"clip" - Specifies clipped input on the default source</h2>
|
||||
<a name="clip"/><h2>"clip" - Specifies clipped input on the default source</h2>
|
||||
<keyword name="clip"/>
|
||||
<a name="clip"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>clip(args)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -211,36 +223,36 @@ clip(0.mm, 0.mm, 0.5.mm, 0.6.mm)
|
|||
l1 = input(1, 0)
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"connect" - Specifies a connection between two layers</h2>
|
||||
<a name="connect"/><h2>"connect" - Specifies a connection between two layers</h2>
|
||||
<keyword name="connect"/>
|
||||
<a name="connect"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect(a, b)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#connect">Netter#connect</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"connect_global" - Specifies a connection to a global net</h2>
|
||||
<a name="connect_global"/><h2>"connect_global" - Specifies a connection to a global net</h2>
|
||||
<keyword name="connect_global"/>
|
||||
<a name="connect_global"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect_global(l, name)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#connect_global">Netter#connect_global</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"connect_implicit" - Specifies a label pattern for implicit net connections</h2>
|
||||
<a name="connect_implicit"/><h2>"connect_implicit" - Specifies a label pattern for implicit net connections</h2>
|
||||
<keyword name="connect_implicit"/>
|
||||
<a name="connect_implicit"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect_implicit(label_pattern)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#connect_implicit">Netter#connect_implicit</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"dbu" - Gets or sets the database unit to use</h2>
|
||||
<a name="dbu"/><h2>"dbu" - Gets or sets the database unit to use</h2>
|
||||
<keyword name="dbu"/>
|
||||
<a name="dbu"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>dbu(dbu)</tt></li>
|
||||
<li><tt>dbu</tt></li>
|
||||
|
|
@ -257,9 +269,9 @@ for two layouts (i.e. take the largest common denominator).
|
|||
When the database unit is set, it must be set at the beginning
|
||||
of the script and before any operation that uses it.
|
||||
</p>
|
||||
<h2>"deep" - Enters deep (hierarchical) mode</h2>
|
||||
<a name="deep"/><h2>"deep" - Enters deep (hierarchical) mode</h2>
|
||||
<keyword name="deep"/>
|
||||
<a name="deep"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>deep</tt></li>
|
||||
</ul>
|
||||
|
|
@ -277,28 +289,31 @@ implied always. Sometimes cell variants will be created.
|
|||
</p><p>
|
||||
Deep mode can be cancelled with <a href="#tiles">tiles</a> or <a href="#flat">flat</a>.
|
||||
</p>
|
||||
<h2>"device_scaling" - Specifies a dimension scale factor for the geometrical device properties</h2>
|
||||
<a name="device_scaling"/><h2>"device_scaling" - Specifies a dimension scale factor for the geometrical device properties</h2>
|
||||
<keyword name="device_scaling"/>
|
||||
<a name="device_scaling"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>device_scaling(factor)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#device_scaling">Netter#device_scaling</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"diode" - Supplies the diode extractor class</h2>
|
||||
<a name="diode"/><h2>"diode" - Supplies the diode extractor class</h2>
|
||||
<keyword name="diode"/>
|
||||
<a name="diode"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>diode(name)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
|
||||
planar diode
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorDiode">DeviceExtractorDiode</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"dmos3" - Supplies the DMOS3 transistor extractor class</h2>
|
||||
<a name="dmos3"/><h2>"dmos3" - Supplies the DMOS3 transistor extractor class</h2>
|
||||
<keyword name="dmos3"/>
|
||||
<a name="dmos3"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>dmos3(name)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -307,10 +322,13 @@ Use this class with <a href="#extract_devices">extract_devices</a> to specify ex
|
|||
three-terminal DMOS transistor. A DMOS transistor is essentially
|
||||
the same than a MOS transistor, but source and drain are
|
||||
separated.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorMOS3Transistor">DeviceExtractorMOS3Transistor</class_doc> for more details
|
||||
about this extractor (strict mode applies for 'dmos3').
|
||||
</p>
|
||||
<h2>"dmos4" - Supplies the MOS4 transistor extractor class</h2>
|
||||
<a name="dmos4"/><h2>"dmos4" - Supplies the MOS4 transistor extractor class</h2>
|
||||
<keyword name="dmos4"/>
|
||||
<a name="dmos4"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>dmos4(name)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -319,10 +337,13 @@ Use this class with <a href="#extract_devices">extract_devices</a> to specify ex
|
|||
four-terminal DMOS transistor. A DMOS transistor is essentially
|
||||
the same than a MOS transistor, but source and drain are
|
||||
separated.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorMOS4Transistor">DeviceExtractorMOS4Transistor</class_doc> for more details
|
||||
about this extractor (strict mode applies for 'dmos4').
|
||||
</p>
|
||||
<h2>"edge" - Creates an edge object</h2>
|
||||
<a name="edge"/><h2>"edge" - Creates an edge object</h2>
|
||||
<keyword name="edge"/>
|
||||
<a name="edge"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>edge(...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -330,9 +351,9 @@ separated.
|
|||
This function creates an edge object. The arguments are the same than for the
|
||||
<class_doc href="DEdge">DEdge</class_doc> constructors.
|
||||
</p>
|
||||
<h2>"edge_layer" - Creates an empty edge layer</h2>
|
||||
<a name="edge_layer"/><h2>"edge_layer" - Creates an empty edge layer</h2>
|
||||
<keyword name="edge_layer"/>
|
||||
<a name="edge_layer"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>edge_layer</tt></li>
|
||||
</ul>
|
||||
|
|
@ -340,27 +361,27 @@ This function creates an edge object. The arguments are the same than for the
|
|||
The intention of that method is to create an empty layer which can be
|
||||
filled with edge objects using <a href="/about/drc_ref_layer.xml#insert">Layer#insert</a>.
|
||||
</p>
|
||||
<h2>"error" - Prints an error</h2>
|
||||
<a name="error"/><h2>"error" - Prints an error</h2>
|
||||
<keyword name="error"/>
|
||||
<a name="error"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>error(message)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Similar to <a href="#log">log</a>, but the message is printed formatted as an error
|
||||
</p>
|
||||
<h2>"extent" - Creates a new layer with the bounding box of the default source</h2>
|
||||
<a name="extent"/><h2>"extent" - Creates a new layer with the bounding box of the default source</h2>
|
||||
<keyword name="extent"/>
|
||||
<a name="extent"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>extent</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_source.xml#extent">Source#extent</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"extract_devices" - Extracts devices for a given device extractor and device layer selection</h2>
|
||||
<a name="extract_devices"/><h2>"extract_devices" - Extracts devices for a given device extractor and device layer selection</h2>
|
||||
<keyword name="extract_devices"/>
|
||||
<a name="extract_devices"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>extract_devices(extractor, layer_hash)</tt></li>
|
||||
<li><tt>extract_devices(extractor_class, name, layer_hash)</tt></li>
|
||||
|
|
@ -368,18 +389,18 @@ See <a href="/about/drc_ref_source.xml#extent">Source#extent</a> for a descripti
|
|||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#extract_devices">Netter#extract_devices</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"flat" - Disables tiling mode</h2>
|
||||
<a name="flat"/><h2>"flat" - Disables tiling mode</h2>
|
||||
<keyword name="flat"/>
|
||||
<a name="flat"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>flat</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Disables tiling mode. Tiling mode can be enabled again with <a href="#tiles">tiles</a> later.
|
||||
</p>
|
||||
<h2>"info" - Outputs as message to the logger window</h2>
|
||||
<a name="info"/><h2>"info" - Outputs as message to the logger window</h2>
|
||||
<keyword name="info"/>
|
||||
<a name="info"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>info(message)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -388,9 +409,9 @@ Prints the message to the log window in verbose mode.
|
|||
In non-verbose more, nothing is printed.
|
||||
<a href="#log">log</a> is a function that always prints a message.
|
||||
</p>
|
||||
<h2>"input" - Fetches the shapes from the specified input from the default source</h2>
|
||||
<a name="input"/><h2>"input" - Fetches the shapes from the specified input from the default source</h2>
|
||||
<keyword name="input"/>
|
||||
<a name="input"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>input(args)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -399,48 +420,48 @@ See <a href="/about/drc_ref_source.xml#input">Source#input</a> for a description
|
|||
polygons and labels. See <a href="#polygons">polygons</a> and <a href="#labels">labels</a> for more specific versions of
|
||||
this method.
|
||||
</p>
|
||||
<h2>"is_deep?" - Returns true, if in deep mode</h2>
|
||||
<a name="is_deep?"/><h2>"is_deep?" - Returns true, if in deep mode</h2>
|
||||
<keyword name="is_deep?"/>
|
||||
<a name="is_deep?"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>is_deep?</tt></li>
|
||||
</ul>
|
||||
<h2>"is_tiled?" - Returns true, if in tiled mode</h2>
|
||||
<a name="is_tiled?"/><h2>"is_tiled?" - Returns true, if in tiled mode</h2>
|
||||
<keyword name="is_tiled?"/>
|
||||
<a name="is_tiled?"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>is_tiled?</tt></li>
|
||||
</ul>
|
||||
<h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object for the default <a href="#Netter">Netter</a></h2>
|
||||
<a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object for the default <a href="#Netter">Netter</a></h2>
|
||||
<keyword name="l2n_data"/>
|
||||
<a name="l2n_data"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>l2n_data</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml#l2n_data">Netter#l2n_data</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"labels" - Gets the labels (text) from an original layer</h2>
|
||||
<a name="labels"/><h2>"labels" - Gets the labels (text) from an original layer</h2>
|
||||
<keyword name="labels"/>
|
||||
<a name="labels"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>labels</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_source.xml#labels">Source#labels</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"layers" - Gets the layers contained in the default source</h2>
|
||||
<a name="layers"/><h2>"layers" - Gets the layers contained in the default source</h2>
|
||||
<keyword name="layers"/>
|
||||
<a name="layers"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>layers</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_source.xml#layers">Source#layers</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"layout" - Specifies an additional layout for the input source.</h2>
|
||||
<a name="layout"/><h2>"layout" - Specifies an additional layout for the input source.</h2>
|
||||
<keyword name="layout"/>
|
||||
<a name="layout"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>layout</tt></li>
|
||||
<li><tt>layout(what)</tt></li>
|
||||
|
|
@ -475,9 +496,9 @@ l2 = layout("second_layout.gds")
|
|||
</p><p>
|
||||
For further methods on the source object see <a href="#Source">Source</a>.
|
||||
</p>
|
||||
<h2>"log" - Outputs as message to the logger window</h2>
|
||||
<a name="log"/><h2>"log" - Outputs as message to the logger window</h2>
|
||||
<keyword name="log"/>
|
||||
<a name="log"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>log(message)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -486,9 +507,9 @@ Prints the message to the log window.
|
|||
<a href="#info">info</a> is a function that prints a message only if
|
||||
verbose mode is enabled.
|
||||
</p>
|
||||
<h2>"log_file" - Specify the log file where to send to log to</h2>
|
||||
<a name="log_file"/><h2>"log_file" - Specify the log file where to send to log to</h2>
|
||||
<keyword name="log_file"/>
|
||||
<a name="log_file"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>log_file(filename)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -496,9 +517,9 @@ verbose mode is enabled.
|
|||
After using that method, the log output is sent to the
|
||||
given file instead of the logger window or the terminal.
|
||||
</p>
|
||||
<h2>"make_layer" - Creates an empty polygon layer based on the hierarchical scheme selected</h2>
|
||||
<a name="make_layer"/><h2>"make_layer" - Creates an empty polygon layer based on the hierarchical scheme selected</h2>
|
||||
<keyword name="make_layer"/>
|
||||
<a name="make_layer"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>make_layer</tt></li>
|
||||
</ul>
|
||||
|
|
@ -514,63 +535,69 @@ delivered by <a href="#polygon_layer">polygon_layer</a> is not.
|
|||
On the other hand, a layer created by the <a href="#make_layer">make_layer</a> method is not intended to be
|
||||
filled with <a href="/about/drc_ref_layer.xml#insert">Layer#insert</a>.
|
||||
</p>
|
||||
<h2>"mos3" - Supplies the MOS3 transistor extractor class</h2>
|
||||
<a name="mos3"/><h2>"mos3" - Supplies the MOS3 transistor extractor class</h2>
|
||||
<keyword name="mos3"/>
|
||||
<a name="mos3"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>mos3(name)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
|
||||
three-terminal MOS transistor
|
||||
three-terminal MOS transistor.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorMOS3Transistor">DeviceExtractorMOS3Transistor</class_doc> for more details
|
||||
about this extractor (non-strict mode applies for 'mos3').
|
||||
</p>
|
||||
<h2>"mos4" - Supplies the MOS4 transistor extractor class</h2>
|
||||
<a name="mos4"/><h2>"mos4" - Supplies the MOS4 transistor extractor class</h2>
|
||||
<keyword name="mos4"/>
|
||||
<a name="mos4"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>mos4(name)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a
|
||||
four-terminal MOS transistor
|
||||
four-terminal MOS transistor.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorMOS4Transistor">DeviceExtractorMOS4Transistor</class_doc> for more details
|
||||
about this extractor (non-strict mode applies for 'mos4').
|
||||
</p>
|
||||
<h2>"netlist" - Obtains the extracted netlist from the default <a href="#Netter">Netter</a></h2>
|
||||
<a name="netlist"/><h2>"netlist" - Obtains the extracted netlist from the default <a href="#Netter">Netter</a></h2>
|
||||
<keyword name="netlist"/>
|
||||
<a name="netlist"/><p>
|
||||
<p>
|
||||
The netlist is a <class_doc href="Netlist">Netlist</class_doc> object. If no netlist is extracted
|
||||
yet, this method will trigger the extraction process.
|
||||
See <a href="/about/drc_ref_netter.xml#netlist">Netter#netlist</a> for a description of this function.
|
||||
</p>
|
||||
<h2>"netter" - Creates a new netter object</h2>
|
||||
<a name="netter"/><h2>"netter" - Creates a new netter object</h2>
|
||||
<keyword name="netter"/>
|
||||
<a name="netter"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>netter</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_netter.xml">Netter</a> for more details
|
||||
</p>
|
||||
<h2>"no_borders" - Reset the tile borders</h2>
|
||||
<a name="no_borders"/><h2>"no_borders" - Reset the tile borders</h2>
|
||||
<keyword name="no_borders"/>
|
||||
<a name="no_borders"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>no_borders</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Resets the tile borders - see <a href="#tile_borders">tile_borders</a> for a description of tile borders.
|
||||
</p>
|
||||
<h2>"output" - Outputs a layer to the report database or output layout</h2>
|
||||
<a name="output"/><h2>"output" - Outputs a layer to the report database or output layout</h2>
|
||||
<keyword name="output"/>
|
||||
<a name="output"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>output(layer, args)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This function is equivalent to "layer.output(args)". See <a href="/about/drc_ref_layer.xml#output">Layer#output</a> for details about this function.
|
||||
</p>
|
||||
<h2>"output_cell" - Specifies a target cell, but does not change the target layout</h2>
|
||||
<a name="output_cell"/><h2>"output_cell" - Specifies a target cell, but does not change the target layout</h2>
|
||||
<keyword name="output_cell"/>
|
||||
<a name="output_cell"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>output_cell(cellname)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -579,9 +606,9 @@ This method switches output to the specified cell, but does not
|
|||
change the target layout nor does it switch the output channel to
|
||||
layout if is report database.
|
||||
</p>
|
||||
<h2>"p" - Creates a point object</h2>
|
||||
<a name="p"/><h2>"p" - Creates a point object</h2>
|
||||
<keyword name="p"/>
|
||||
<a name="p"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>p(x, y)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -594,9 +621,9 @@ x = polygon_layer
|
|||
x.insert(polygon([ p(0, 0), p(16.0, 0), p(8.0, 8.0) ]))
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"path" - Creates a path object</h2>
|
||||
<a name="path"/><h2>"path" - Creates a path object</h2>
|
||||
<keyword name="path"/>
|
||||
<a name="path"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>path(...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -604,9 +631,9 @@ x.insert(polygon([ p(0, 0), p(16.0, 0), p(8.0, 8.0) ]))
|
|||
This function creates a path object. The arguments are the same than for the
|
||||
<class_doc href="DPath">DPath</class_doc> constructors.
|
||||
</p>
|
||||
<h2>"polygon" - Creates a polygon object</h2>
|
||||
<a name="polygon"/><h2>"polygon" - Creates a polygon object</h2>
|
||||
<keyword name="polygon"/>
|
||||
<a name="polygon"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>polygon(...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -614,9 +641,9 @@ This function creates a path object. The arguments are the same than for the
|
|||
This function creates a polygon object. The arguments are the same than for the
|
||||
<class_doc href="DPolygon">DPolygon</class_doc> constructors.
|
||||
</p>
|
||||
<h2>"polygon_layer" - Creates an empty polygon layer</h2>
|
||||
<a name="polygon_layer"/><h2>"polygon_layer" - Creates an empty polygon layer</h2>
|
||||
<keyword name="polygon_layer"/>
|
||||
<a name="polygon_layer"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>polygon_layer</tt></li>
|
||||
</ul>
|
||||
|
|
@ -626,18 +653,18 @@ filled with polygon-like objects using <a href="/about/drc_ref_layer.xml#insert"
|
|||
A similar method which creates a hierarchical layer in deep mode is
|
||||
<a href="#make_layer">make_layer</a>. This other layer is better suited for use with device extraction.
|
||||
</p>
|
||||
<h2>"polygons" - Fetches the polygons (or shapes that can be converted to polygons) from the specified input from the default source</h2>
|
||||
<a name="polygons"/><h2>"polygons" - Fetches the polygons (or shapes that can be converted to polygons) from the specified input from the default source</h2>
|
||||
<keyword name="polygons"/>
|
||||
<a name="polygons"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>polygons(args)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_source.xml#polygons">Source#polygons</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"report" - Specifies a report database for output</h2>
|
||||
<a name="report"/><h2>"report" - Specifies a report database for output</h2>
|
||||
<keyword name="report"/>
|
||||
<a name="report"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>report(description [, filename [, cellname ] ])</tt></li>
|
||||
</ul>
|
||||
|
|
@ -658,9 +685,9 @@ By default this is the cell name of the default source. If there
|
|||
is no source layout you'll need to give the cell name in the
|
||||
third parameter.
|
||||
</p>
|
||||
<h2>"report_netlist" - Specifies an extracted netlist report for output</h2>
|
||||
<a name="report_netlist"/><h2>"report_netlist" - Specifies an extracted netlist report for output</h2>
|
||||
<keyword name="report_netlist"/>
|
||||
<a name="report_netlist"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>report_netlist([ filename [, long ] ])</tt></li>
|
||||
</ul>
|
||||
|
|
@ -675,19 +702,24 @@ will also be written to the given file.
|
|||
If a file name is given and "long" is true, a verbose
|
||||
version of the L2N DB format will be used.
|
||||
</p>
|
||||
<h2>"resistor" - Supplies the resistor extractor class</h2>
|
||||
<a name="resistor"/><h2>"resistor" - Supplies the resistor extractor class</h2>
|
||||
<keyword name="resistor"/>
|
||||
<a name="resistor"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>resistor(name, sheet_rho)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a resistor.
|
||||
The sheet_rho value is the sheet resistance in ohms/square.
|
||||
</p><p>
|
||||
The sheet_rho value is the sheet resistance in ohms/square. It is used
|
||||
to compute the resistance from the geometry.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorResistor">DeviceExtractorResistor</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"resistor_with_bulk" - Supplies the resistor extractor class that includes a bulk terminal</h2>
|
||||
<a name="resistor_with_bulk"/><h2>"resistor_with_bulk" - Supplies the resistor extractor class that includes a bulk terminal</h2>
|
||||
<keyword name="resistor_with_bulk"/>
|
||||
<a name="resistor_with_bulk"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>resistor_with_bulk(name, sheet_rho)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -695,28 +727,31 @@ The sheet_rho value is the sheet resistance in ohms/square.
|
|||
Use this class with <a href="#extract_devices">extract_devices</a> to specify extraction of a resistor
|
||||
with a bulk terminal.
|
||||
The sheet_rho value is the sheet resistance in ohms/square.
|
||||
</p><p>
|
||||
See <class_doc href="DeviceExtractorResistorWithBulk">DeviceExtractorResistorWithBulk</class_doc> for more details
|
||||
about this extractor.
|
||||
</p>
|
||||
<h2>"select" - Specifies cell filters on the default source</h2>
|
||||
<a name="select"/><h2>"select" - Specifies cell filters on the default source</h2>
|
||||
<keyword name="select"/>
|
||||
<a name="select"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>select(args)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/drc_ref_source.xml#select">Source#select</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"silent" - Resets verbose mode</h2>
|
||||
<a name="silent"/><h2>"silent" - Resets verbose mode</h2>
|
||||
<keyword name="silent"/>
|
||||
<a name="silent"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>silent</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This function is equivalent to "verbose(false)" (see <a href="#verbose">verbose</a>)
|
||||
</p>
|
||||
<h2>"source" - Specifies a source layout</h2>
|
||||
<a name="source"/><h2>"source" - Specifies a source layout</h2>
|
||||
<keyword name="source"/>
|
||||
<a name="source"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source</tt></li>
|
||||
<li><tt>source(what)</tt></li>
|
||||
|
|
@ -751,9 +786,9 @@ l2 = layout("second_layout.gds")
|
|||
</p><p>
|
||||
For further methods on the source object see <a href="#Source">Source</a>.
|
||||
</p>
|
||||
<h2>"target" - Specify the target layout</h2>
|
||||
<a name="target"/><h2>"target" - Specify the target layout</h2>
|
||||
<keyword name="target"/>
|
||||
<a name="target"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>target(what [, cellname])</tt></li>
|
||||
</ul>
|
||||
|
|
@ -778,9 +813,9 @@ Except if the argument is a <class_doc href="Cell">Cell</class_doc> object, a ce
|
|||
stating the cell name under which the results are saved. If no cellname is
|
||||
specified, either the current cell or "TOP" is used.
|
||||
</p>
|
||||
<h2>"target_netlist" - With this statement, an extracted netlist is finally written to a file</h2>
|
||||
<a name="target_netlist"/><h2>"target_netlist" - With this statement, an extracted netlist is finally written to a file</h2>
|
||||
<keyword name="target_netlist"/>
|
||||
<a name="target_netlist"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>target_netlist(filename [, format [, comment ] ])</tt></li>
|
||||
</ul>
|
||||
|
|
@ -794,9 +829,9 @@ The format parameter specifies the writer to use. You can use nil
|
|||
to use the standard format or produce a SPICE writer with <a href="#write_spice">write_spice</a>.
|
||||
See <a href="#write_spice">write_spice</a> for more details.
|
||||
</p>
|
||||
<h2>"threads" - Specifies the number of CPU cores to use in tiling mode</h2>
|
||||
<a name="threads"/><h2>"threads" - Specifies the number of CPU cores to use in tiling mode</h2>
|
||||
<keyword name="threads"/>
|
||||
<a name="threads"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>threads(n)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -805,9 +840,9 @@ If using threads, tiles are distributed on multiple CPU cores for
|
|||
parallelization. Still, all tiles must be processed before the
|
||||
operation proceeds with the next statement.
|
||||
</p>
|
||||
<h2>"tile_borders" - Specifies a minimum tile border</h2>
|
||||
<a name="tile_borders"/><h2>"tile_borders" - Specifies a minimum tile border</h2>
|
||||
<keyword name="tile_borders"/>
|
||||
<a name="tile_borders"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>tile_border(b)</tt></li>
|
||||
<li><tt>tile_border(bx, by)</tt></li>
|
||||
|
|
@ -826,9 +861,9 @@ given range, although not necessarily all.
|
|||
</p><p>
|
||||
To reset the tile borders, use <a href="#no_borders">no_borders</a> or "tile_borders(nil)".
|
||||
</p>
|
||||
<h2>"tiles" - Specifies tiling</h2>
|
||||
<a name="tiles"/><h2>"tiles" - Specifies tiling</h2>
|
||||
<keyword name="tiles"/>
|
||||
<a name="tiles"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>tiles(t)</tt></li>
|
||||
<li><tt>tiles(w, h)</tt></li>
|
||||
|
|
@ -851,9 +886,9 @@ To disable tiling mode use <a href="#flat">flat</a> or <a href="#deep">deep</a>.
|
|||
</p><p>
|
||||
Tiling mode will disable deep mode (see <a href="#deep">deep</a>).
|
||||
</p>
|
||||
<h2>"verbose" - Sets or resets verbose mode</h2>
|
||||
<a name="verbose"/><h2>"verbose" - Sets or resets verbose mode</h2>
|
||||
<keyword name="verbose"/>
|
||||
<a name="verbose"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>verbose</tt></li>
|
||||
<li><tt>verbose(m)</tt></li>
|
||||
|
|
@ -861,18 +896,18 @@ Tiling mode will disable deep mode (see <a href="#deep">deep</a>).
|
|||
<p>
|
||||
In verbose mode, more output is generated in the log file
|
||||
</p>
|
||||
<h2>"verbose?" - Returns true, if verbose mode is enabled</h2>
|
||||
<a name="verbose?"/><h2>"verbose?" - Returns true, if verbose mode is enabled</h2>
|
||||
<keyword name="verbose?"/>
|
||||
<a name="verbose?"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>verbose?</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
In verbose mode, more output is generated in the log file
|
||||
</p>
|
||||
<h2>"write_spice" - Defines SPICE output format (with options)</h2>
|
||||
<a name="write_spice"/><h2>"write_spice" - Defines SPICE output format (with options)</h2>
|
||||
<keyword name="write_spice"/>
|
||||
<a name="write_spice"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>write_spice([ use_net_names [, with_comments ] ])</tt></li>
|
||||
</ul>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -61,9 +61,9 @@ Further functionality of the Netter object:
|
|||
More methods will be added in the future to support network-related features.
|
||||
</p>
|
||||
<h2-index/>
|
||||
<h2>"antenna_check" - Performs an antenna check</h2>
|
||||
<a name="antenna_check"/><h2>"antenna_check" - Performs an antenna check</h2>
|
||||
<keyword name="antenna_check"/>
|
||||
<a name="antenna_check"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>antenna_check(gate, metal, ratio, [ diode_specs ... ])</tt></li>
|
||||
</ul>
|
||||
|
|
@ -137,18 +137,18 @@ The error shapes produced by the antenna check are copies
|
|||
of the metal shapes on the metal layers of each network
|
||||
violating the antenna rule.
|
||||
</p>
|
||||
<h2>"clear_connections" - Clears all connections stored so far</h2>
|
||||
<a name="clear_connections"/><h2>"clear_connections" - Clears all connections stored so far</h2>
|
||||
<keyword name="clear_connections"/>
|
||||
<a name="clear_connections"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>clear_connections</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="#connect">connect</a> for more details.
|
||||
</p>
|
||||
<h2>"connect" - Specifies a connection between two layers</h2>
|
||||
<a name="connect"/><h2>"connect" - Specifies a connection between two layers</h2>
|
||||
<keyword name="connect"/>
|
||||
<a name="connect"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect(a, b)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -167,9 +167,9 @@ joins.
|
|||
Connections are accumulated. The connections defined so far
|
||||
can be cleared with <a href="#clear_connections">clear_connections</a>.
|
||||
</p>
|
||||
<h2>"connect_global" - Connects a layer with a global net</h2>
|
||||
<a name="connect_global"/><h2>"connect_global" - Connects a layer with a global net</h2>
|
||||
<keyword name="connect_global"/>
|
||||
<a name="connect_global"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect_global(l, name)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -179,9 +179,9 @@ Global nets are common to all cells. Global nets automatically connect to parent
|
|||
cells throughs implied pins. An example is the substrate (bulk) net which connects
|
||||
to shapes belonging to tie-down diodes.
|
||||
</p>
|
||||
<h2>"connect_implicit" - Specifies a search pattern for labels which create implicit net connections</h2>
|
||||
<a name="connect_implicit"/><h2>"connect_implicit" - Specifies a search pattern for labels which create implicit net connections</h2>
|
||||
<keyword name="connect_implicit"/>
|
||||
<a name="connect_implicit"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>connect_implicit(label_pattern)</tt></li>
|
||||
<li><tt>connect_implicit(cell_pattern, label_pattern)</tt></li>
|
||||
|
|
@ -205,9 +205,9 @@ combined.
|
|||
The implicit connections are applied on the next net extraction and cleared
|
||||
on "clear_connections".
|
||||
</p>
|
||||
<h2>"device_scaling" - Specifies a dimension scale factor for the geometrical device properties</h2>
|
||||
<a name="device_scaling"/><h2>"device_scaling" - Specifies a dimension scale factor for the geometrical device properties</h2>
|
||||
<keyword name="device_scaling"/>
|
||||
<a name="device_scaling"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>device_scaling(factor)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -216,9 +216,9 @@ Specifying a factor of 2 will make all devices being extracted as if the
|
|||
geometries were two times larger. This feature is useful when the drawn layout
|
||||
does not correspond to the physical dimensions.
|
||||
</p>
|
||||
<h2>"extract_devices" - Extracts devices based on the given extractor class, name and device layer selection</h2>
|
||||
<a name="extract_devices"/><h2>"extract_devices" - Extracts devices based on the given extractor class, name and device layer selection</h2>
|
||||
<keyword name="extract_devices"/>
|
||||
<a name="extract_devices"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>extract_devices(extractor, layer_hash)</tt></li>
|
||||
<li><tt>extract_devices(extractor_class, name, layer_hash)</tt></li>
|
||||
|
|
@ -229,11 +229,27 @@ form, the extractor object is given. In the second form, the extractor's
|
|||
class object and the new extractor's name is given.
|
||||
</p><p>
|
||||
The device extractor is either an instance of one of the predefined extractor
|
||||
classes (e.g. obtained from the utility methods such as <a href="#mos4">mos4</a>) or a custom class.
|
||||
classes (e.g. obtained from the utility methods such as <a href="/about/drc_ref_global.xml#mos4">global#mos4</a>) or a custom class.
|
||||
It provides the
|
||||
algorithms for deriving the device parameters from the device geometry. It needs
|
||||
several device recognition layers which are passed in the layer hash.
|
||||
</p><p>
|
||||
Predefined device extractors are:
|
||||
</p><p>
|
||||
<ul>
|
||||
<li><a href="/about/drc_ref_global.xml#mos3">global#mos3</a> - A three-terminal MOS transistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#mos4">global#mos4</a> - A four-terminal MOS transistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#dmos3">global#dmos3</a> - A three-terminal MOS asymmetric transistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#dmos4">global#dmos4</a> - A four-terminal MOS asymmetric transistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bjt3">global#bjt3</a> - A three-terminal bipolar transistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#bjt4">global#bjt4</a> - A four-terminal bipolar transistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#diode">global#diode</a> - A planar diode </li>
|
||||
<li><a href="/about/drc_ref_global.xml#resistor">global#resistor</a> - A resistor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#resistor_with_bulk">global#resistor_with_bulk</a> - A resistor with a separate bulk terminal </li>
|
||||
<li><a href="/about/drc_ref_global.xml#capacitor">global#capacitor</a> - A capacitor </li>
|
||||
<li><a href="/about/drc_ref_global.xml#capacitor_with_bulk">global#capacitor_with_bulk</a> - A capacitor with a separate bulk terminal </li>
|
||||
</ul>
|
||||
</p><p>
|
||||
Each device class (e.g. n-MOS/p-MOS or high Vt/low Vt) needs it's own instance
|
||||
of device extractor. The device extractor beside the algorithm and specific
|
||||
extraction settings defines the name of the device to be built.
|
||||
|
|
@ -256,9 +272,9 @@ gate = nactive & poly # gate area
|
|||
extract_devices(mos4("NMOS4"), { :SD => nsd, :G => gate, :P => poly, :W => bulk })
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object</h2>
|
||||
<a name="l2n_data"/><h2>"l2n_data" - Gets the internal <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object</h2>
|
||||
<keyword name="l2n_data"/>
|
||||
<a name="l2n_data"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>l2n_data</tt></li>
|
||||
</ul>
|
||||
|
|
@ -266,9 +282,9 @@ extract_devices(mos4("NMOS4"), { :SD => nsd, :G => gate, :P => poly, :W
|
|||
The <class_doc href="LayoutToNetlist">LayoutToNetlist</class_doc> object provides access to the internal details of
|
||||
the netter object.
|
||||
</p>
|
||||
<h2>"netlist" - Gets the extracted netlist or triggers extraction if not done yet</h2>
|
||||
<a name="netlist"/><h2>"netlist" - Gets the extracted netlist or triggers extraction if not done yet</h2>
|
||||
<keyword name="netlist"/>
|
||||
<a name="netlist"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>netlist</tt></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ A source specifies where to take layout from. That includes the actual layout,
|
|||
the top cell and options such as clip/query boxes, cell filters etc.
|
||||
</p>
|
||||
<h2-index/>
|
||||
<h2>"cell" - Specifies input from a specific cell</h2>
|
||||
<a name="cell"/><h2>"cell" - Specifies input from a specific cell</h2>
|
||||
<keyword name="cell"/>
|
||||
<a name="cell"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.cell(name)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -23,21 +23,21 @@ the top cell and options such as clip/query boxes, cell filters etc.
|
|||
This method will create a new source that delivers shapes from the
|
||||
specified cell.
|
||||
</p>
|
||||
<h2>"cell_name" - Returns the name of the currently selected cell</h2>
|
||||
<a name="cell_name"/><h2>"cell_name" - Returns the name of the currently selected cell</h2>
|
||||
<keyword name="cell_name"/>
|
||||
<a name="cell_name"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>cell_name</tt></li>
|
||||
</ul>
|
||||
<h2>"cell_obj" - Returns the <class_doc href="Cell">Cell</class_doc> object of the currently selected cell</h2>
|
||||
<a name="cell_obj"/><h2>"cell_obj" - Returns the <class_doc href="Cell">Cell</class_doc> object of the currently selected cell</h2>
|
||||
<keyword name="cell_obj"/>
|
||||
<a name="cell_obj"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>cell_obj</tt></li>
|
||||
</ul>
|
||||
<h2>"clip" - Specifies clipped input</h2>
|
||||
<a name="clip"/><h2>"clip" - Specifies clipped input</h2>
|
||||
<keyword name="clip"/>
|
||||
<a name="clip"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.clip(box)</tt></li>
|
||||
<li><tt>source.clip(p1, p2)</tt></li>
|
||||
|
|
@ -54,9 +54,9 @@ This method will create a new source which delivers the shapes
|
|||
from that region clipped to the rectangle. A method doing the
|
||||
same but without clipping is <a href="#touching">touching</a> or <a href="#overlapping">overlapping</a>.
|
||||
</p>
|
||||
<h2>"extent" - Returns a layer with the bounding box of the selected layout</h2>
|
||||
<a name="extent"/><h2>"extent" - Returns a layer with the bounding box of the selected layout</h2>
|
||||
<keyword name="extent"/>
|
||||
<a name="extent"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.extent</tt></li>
|
||||
</ul>
|
||||
|
|
@ -67,9 +67,9 @@ The extent function is useful to invert a layer:
|
|||
inverse_1 = extent.sized(100.0) - input(1, 0)
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"input" - Specifies input from a source</h2>
|
||||
<a name="input"/><h2>"input" - Specifies input from a source</h2>
|
||||
<keyword name="input"/>
|
||||
<a name="input"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.input(layer)</tt></li>
|
||||
<li><tt>source.input(layer, datatype)</tt></li>
|
||||
|
|
@ -108,9 +108,9 @@ only. If you only want to see texts, use <a href="#labels">labels</a> to create
|
|||
</p><p>
|
||||
Use the global version of "input" without a source object to address the default source.
|
||||
</p>
|
||||
<h2>"labels" - Gets the labels (texts) from an input layer</h2>
|
||||
<a name="labels"/><h2>"labels" - Gets the labels (texts) from an input layer</h2>
|
||||
<keyword name="labels"/>
|
||||
<a name="labels"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.labels(layer)</tt></li>
|
||||
<li><tt>source.labels(layer, datatype)</tt></li>
|
||||
|
|
@ -125,9 +125,9 @@ layer.
|
|||
</p><p>
|
||||
Use the global version of "labels" without a source object to address the default source.
|
||||
</p>
|
||||
<h2>"layers" - Gets the layers the source contains</h2>
|
||||
<a name="layers"/><h2>"layers" - Gets the layers the source contains</h2>
|
||||
<keyword name="layers"/>
|
||||
<a name="layers"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.layers</tt></li>
|
||||
</ul>
|
||||
|
|
@ -149,24 +149,24 @@ clip_box.insert(box(0.um, -4.um, 4.um, 0.um))
|
|||
layers.each { |l| (input(l) & clip_box).output(l) }
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"layout" - Returns the <class_doc href="Layout">Layout</class_doc> object associated with this source</h2>
|
||||
<a name="layout"/><h2>"layout" - Returns the <class_doc href="Layout">Layout</class_doc> object associated with this source</h2>
|
||||
<keyword name="layout"/>
|
||||
<a name="layout"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>layout</tt></li>
|
||||
</ul>
|
||||
<h2>"make_layer" - Creates an empty polygon layer based on the hierarchy of the layout</h2>
|
||||
<a name="make_layer"/><h2>"make_layer" - Creates an empty polygon layer based on the hierarchy of the layout</h2>
|
||||
<keyword name="make_layer"/>
|
||||
<a name="make_layer"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>make_layer</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
This method delivers a new empty original layer.
|
||||
</p>
|
||||
<h2>"overlapping" - Specifies input selected from a region in overlapping mode</h2>
|
||||
<a name="overlapping"/><h2>"overlapping" - Specifies input selected from a region in overlapping mode</h2>
|
||||
<keyword name="overlapping"/>
|
||||
<a name="overlapping"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.overlapping(...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -180,15 +180,15 @@ the specified rectangle.
|
|||
<a href="#touching">touching</a> is a similar method which delivers shapes touching
|
||||
the search region with their bounding box (without the requirement to overlap)
|
||||
</p>
|
||||
<h2>"path" - Gets the path of the corresponding layout file or nil if there is no path</h2>
|
||||
<a name="path"/><h2>"path" - Gets the path of the corresponding layout file or nil if there is no path</h2>
|
||||
<keyword name="path"/>
|
||||
<a name="path"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>path</tt></li>
|
||||
</ul>
|
||||
<h2>"polygons" - Gets the polygon shapes (or shapes that can be converted polygons) from an input layer</h2>
|
||||
<a name="polygons"/><h2>"polygons" - Gets the polygon shapes (or shapes that can be converted polygons) from an input layer</h2>
|
||||
<keyword name="polygons"/>
|
||||
<a name="polygons"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.polygons(layer)</tt></li>
|
||||
<li><tt>source.polygons(layer, datatype)</tt></li>
|
||||
|
|
@ -204,9 +204,9 @@ This method is identical to <a href="#input">input</a> with respect to the optio
|
|||
</p><p>
|
||||
Use the global version of "polygons" without a source object to address the default source.
|
||||
</p>
|
||||
<h2>"select" - Adds cell name expressions to the cell filters</h2>
|
||||
<a name="select"/><h2>"select" - Adds cell name expressions to the cell filters</h2>
|
||||
<keyword name="select"/>
|
||||
<a name="select"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.select(filter1, filter2, ...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -249,9 +249,9 @@ l1 = layout_with_selection.input(1, 0)
|
|||
...
|
||||
</pre>
|
||||
</p>
|
||||
<h2>"touching" - Specifies input selected from a region in touching mode</h2>
|
||||
<a name="touching"/><h2>"touching" - Specifies input selected from a region in touching mode</h2>
|
||||
<keyword name="touching"/>
|
||||
<a name="touching"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>source.touching(box)</tt></li>
|
||||
<li><tt>source.touching(p1, p2)</tt></li>
|
||||
|
|
|
|||
|
|
@ -19,90 +19,90 @@ layers or specification of the layout source.
|
|||
For more details about the DRC functions see <a href="/about/drc_ref_global.xml">DRC::global</a>.
|
||||
</p>
|
||||
<h2-index/>
|
||||
<h2>"align" - Aligns the extracted netlist vs. the schematic by flattening circuits where required</h2>
|
||||
<a name="align"/><h2>"align" - Aligns the extracted netlist vs. the schematic by flattening circuits where required</h2>
|
||||
<keyword name="align"/>
|
||||
<a name="align"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>align</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#align">Netter#align</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"compare" - Compares the extracted netlist vs. the schematic</h2>
|
||||
<a name="compare"/><h2>"compare" - Compares the extracted netlist vs. the schematic</h2>
|
||||
<keyword name="compare"/>
|
||||
<a name="compare"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>compare</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#compare">Netter#compare</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"equivalent_pins" - Marks pins as equivalent</h2>
|
||||
<a name="equivalent_pins"/><h2>"equivalent_pins" - Marks pins as equivalent</h2>
|
||||
<keyword name="equivalent_pins"/>
|
||||
<a name="equivalent_pins"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>equivalent_pins(circuit, pins ...)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#equivalent_pins">Netter#equivalent_pins</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist</h2>
|
||||
<a name="join_symmetric_nets"/><h2>"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist</h2>
|
||||
<keyword name="join_symmetric_nets"/>
|
||||
<a name="join_symmetric_nets"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>join_symmetric_nets(circuit_filter)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#join_symmetric_nets">Netter#join_symmetric_nets</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"max_branch_complexity" - Configures the maximum branch complexity for ambiguous net matching</h2>
|
||||
<a name="max_branch_complexity"/><h2>"max_branch_complexity" - Configures the maximum branch complexity for ambiguous net matching</h2>
|
||||
<keyword name="max_branch_complexity"/>
|
||||
<a name="max_branch_complexity"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>max_branch_complexity(n)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#max_branch_complexity">Netter#max_branch_complexity</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"max_depth" - Configures the maximum search depth for net match deduction</h2>
|
||||
<a name="max_depth"/><h2>"max_depth" - Configures the maximum search depth for net match deduction</h2>
|
||||
<keyword name="max_depth"/>
|
||||
<a name="max_depth"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>max_depth(n)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#max_depth">Netter#max_depth</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"max_res" - Ignores resistors with a resistance above a certain value</h2>
|
||||
<a name="max_res"/><h2>"max_res" - Ignores resistors with a resistance above a certain value</h2>
|
||||
<keyword name="max_res"/>
|
||||
<a name="max_res"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>max_res(threshold)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#max_res">Netter#max_res</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"min_caps" - Ignores capacitors with a capacitance below a certain value</h2>
|
||||
<a name="min_caps"/><h2>"min_caps" - Ignores capacitors with a capacitance below a certain value</h2>
|
||||
<keyword name="min_caps"/>
|
||||
<a name="min_caps"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>min_caps(threshold)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#min_caps">Netter#min_caps</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"netter" - Creates a new netter object</h2>
|
||||
<a name="netter"/><h2>"netter" - Creates a new netter object</h2>
|
||||
<keyword name="netter"/>
|
||||
<a name="netter"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>netter</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml">Netter</a> for more details
|
||||
</p>
|
||||
<h2>"report_lvs" - Specifies an LVS report for output</h2>
|
||||
<a name="report_lvs"/><h2>"report_lvs" - Specifies an LVS report for output</h2>
|
||||
<keyword name="report_lvs"/>
|
||||
<a name="report_lvs"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>report_lvs([ filename [, long ] ])</tt></li>
|
||||
</ul>
|
||||
|
|
@ -121,27 +121,27 @@ extracted netlist.
|
|||
</p><p>
|
||||
report_lvs is only effective if a comparison step is included.
|
||||
</p>
|
||||
<h2>"same_circuits" - Establishes an equivalence between the circuits</h2>
|
||||
<a name="same_circuits"/><h2>"same_circuits" - Establishes an equivalence between the circuits</h2>
|
||||
<keyword name="same_circuits"/>
|
||||
<a name="same_circuits"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>same_circuits(circuit_a, circuit_b)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#same_circuits">Netter#same_circuits</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"same_device_classes" - Establishes an equivalence between the device_classes</h2>
|
||||
<a name="same_device_classes"/><h2>"same_device_classes" - Establishes an equivalence between the device_classes</h2>
|
||||
<keyword name="same_device_classes"/>
|
||||
<a name="same_device_classes"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>same_device_classes(class_a, class_b)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#same_device_classes">Netter#same_device_classes</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"same_nets" - Establishes an equivalence between the nets</h2>
|
||||
<a name="same_nets"/><h2>"same_nets" - Establishes an equivalence between the nets</h2>
|
||||
<keyword name="same_nets"/>
|
||||
<a name="same_nets"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>same_nets(circuit, net_a, net_b)</tt></li>
|
||||
<li><tt>same_nets(circuit_a, net_a, circuit_b, net_b)</tt></li>
|
||||
|
|
@ -149,9 +149,9 @@ See <a href="/about/lvs_ref_netter.xml#same_device_classes">Netter#same_device_c
|
|||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#same_nets">Netter#same_nets</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"schematic" - Reads the reference netlist</h2>
|
||||
<a name="schematic"/><h2>"schematic" - Reads the reference netlist</h2>
|
||||
<keyword name="schematic"/>
|
||||
<a name="schematic"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>schematic(filename)</tt></li>
|
||||
<li><tt>schematic(filename, reader)</tt></li>
|
||||
|
|
@ -160,9 +160,9 @@ See <a href="/about/lvs_ref_netter.xml#same_nets">Netter#same_nets</a> for a des
|
|||
<p>
|
||||
See <a href="/about/lvs_ref_netter.xml#schematic">Netter#schematic</a> for a description of that function.
|
||||
</p>
|
||||
<h2>"tolerance" - Specifies compare tolerances for certain device parameters</h2>
|
||||
<a name="tolerance"/><h2>"tolerance" - Specifies compare tolerances for certain device parameters</h2>
|
||||
<keyword name="tolerance"/>
|
||||
<a name="tolerance"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>tolerance(device_class_name, parameter_name, absolute_tolerance [, relative_tolerance])</tt></li>
|
||||
<li><tt>tolerance(device_class_name, parameter_name [, :absolute => absolute_tolerance] [, :relative => relative_tolerance])</tt></li>
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ end
|
|||
</pre>
|
||||
</p>
|
||||
<h2-index/>
|
||||
<h2>"align" - Aligns the extracted netlist vs. the schematic</h2>
|
||||
<a name="align"/><h2>"align" - Aligns the extracted netlist vs. the schematic</h2>
|
||||
<keyword name="align"/>
|
||||
<a name="align"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>align</tt></li>
|
||||
</ul>
|
||||
|
|
@ -68,9 +68,9 @@ are other (explicit) ways to flatten circuits.
|
|||
Please note that flattening circuits has some side effects such
|
||||
as loss of details in the cross reference and net layout.
|
||||
</p>
|
||||
<h2>"compare" - Compares the extracted netlist vs. the schematic</h2>
|
||||
<a name="compare"/><h2>"compare" - Compares the extracted netlist vs. the schematic</h2>
|
||||
<keyword name="compare"/>
|
||||
<a name="compare"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>compare</tt></li>
|
||||
</ul>
|
||||
|
|
@ -85,9 +85,9 @@ corresponding circuits: the unpaired circuit will be flattened then.
|
|||
This method will return true, if the netlists are equivalent and false
|
||||
otherwise.
|
||||
</p>
|
||||
<h2>"equivalent_pins" - Marks pins as equivalent</h2>
|
||||
<a name="equivalent_pins"/><h2>"equivalent_pins" - Marks pins as equivalent</h2>
|
||||
<keyword name="equivalent_pins"/>
|
||||
<a name="equivalent_pins"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>equivalent_pins(circuit, pin ...)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -110,9 +110,9 @@ If the netlist provides named pins, names can be used instead of numbers.
|
|||
Before this method can be used, a schematic netlist needs to be loaded with
|
||||
<a href="#schematic">schematic</a>.
|
||||
</p>
|
||||
<h2>"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist</h2>
|
||||
<a name="join_symmetric_nets"/><h2>"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist</h2>
|
||||
<keyword name="join_symmetric_nets"/>
|
||||
<a name="join_symmetric_nets"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>join_symmetric_nets(circuit_filter)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -133,9 +133,9 @@ those circuits for which this feature is required.
|
|||
For the symmetry detection, the specified constraints (e.g. tolerances,
|
||||
device filters etc.) apply.
|
||||
</p>
|
||||
<h2>"lvs_data" - Gets the internal <class_doc href="LayoutVsSchematic">LayoutVsSchematic</class_doc> object</h2>
|
||||
<a name="lvs_data"/><h2>"lvs_data" - Gets the internal <class_doc href="LayoutVsSchematic">LayoutVsSchematic</class_doc> object</h2>
|
||||
<keyword name="lvs_data"/>
|
||||
<a name="lvs_data"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>lvs_data</tt></li>
|
||||
</ul>
|
||||
|
|
@ -143,9 +143,29 @@ device filters etc.) apply.
|
|||
The <class_doc href="LayoutVsSchematic">LayoutVsSchematic</class_doc> object provides access to the internal details of
|
||||
the netter object.
|
||||
</p>
|
||||
<h2>"max_depth" - Configures the maximum search depth for net match deduction</h2>
|
||||
<a name="max_branch_complexity"/><h2>"max_branch_complexity" - Configures the maximum branch complexity for ambiguous net matching</h2>
|
||||
<keyword name="max_branch_complexity"/>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>max_branch_complexity(n)</tt></li>
|
||||
</ul>
|
||||
<p>
|
||||
The netlist compare algorithm is basically a backtracing algorithm.
|
||||
With ambiguous nets, the algorithm picks possible net pairs and
|
||||
tries whether they will make a good match. Following the deduction
|
||||
path for this nets may lead to further branches if more ambiguous
|
||||
nets are encountered. To avoid combinational explosion, the maximum
|
||||
branch complexity is limited to the value configured with this
|
||||
function. The default value is 500 which means not more than
|
||||
500 combinations are tried for a single seed pair. For networks
|
||||
with inherent ambiguity such as decoders, the complexity
|
||||
can be increased at the expense of potentially larger runtimes.
|
||||
The runtime penality is roughly proportional to the branch
|
||||
complexity.
|
||||
</p>
|
||||
<a name="max_depth"/><h2>"max_depth" - Configures the maximum search depth for net match deduction</h2>
|
||||
<keyword name="max_depth"/>
|
||||
<a name="max_depth"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>max_depth(n)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -160,9 +180,9 @@ pursues this "deduction path" in greater depth while with
|
|||
smaller values, the algorithm prefers picking nets in a random fashion
|
||||
as the seeds for this deduction path. The default value is 8.
|
||||
</p>
|
||||
<h2>"max_res" - Ignores resistors with a resistance above a certain value</h2>
|
||||
<a name="max_res"/><h2>"max_res" - Ignores resistors with a resistance above a certain value</h2>
|
||||
<keyword name="max_res"/>
|
||||
<a name="max_res"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>max_res(threshold)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -170,9 +190,9 @@ as the seeds for this deduction path. The default value is 8.
|
|||
After using this method, the netlist compare will ignore resistor devices
|
||||
with a resistance value above the given threshold (in Farad).
|
||||
</p>
|
||||
<h2>"min_caps" - Ignores capacitors with a capacitance below a certain value</h2>
|
||||
<a name="min_caps"/><h2>"min_caps" - Ignores capacitors with a capacitance below a certain value</h2>
|
||||
<keyword name="min_caps"/>
|
||||
<a name="min_caps"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>min_caps(threshold)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -180,9 +200,9 @@ with a resistance value above the given threshold (in Farad).
|
|||
After using this method, the netlist compare will ignore capacitance devices
|
||||
with a capacitance values below the given threshold (in Farad).
|
||||
</p>
|
||||
<h2>"same_circuits" - Establishes an equivalence between the circuits</h2>
|
||||
<a name="same_circuits"/><h2>"same_circuits" - Establishes an equivalence between the circuits</h2>
|
||||
<keyword name="same_circuits"/>
|
||||
<a name="same_circuits"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>same_circuits(circuit_a, circuit_b)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -197,9 +217,9 @@ other circuit is mapped to "nothing", i.e. ignored.
|
|||
Before this method can be used, a schematic netlist needs to be loaded with
|
||||
<a href="#schematic">schematic</a>.
|
||||
</p>
|
||||
<h2>"same_device_classes" - Establishes an equivalence between the device classes</h2>
|
||||
<a name="same_device_classes"/><h2>"same_device_classes" - Establishes an equivalence between the device classes</h2>
|
||||
<keyword name="same_device_classes"/>
|
||||
<a name="same_device_classes"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>same_device_classes(class_a, class_b)</tt></li>
|
||||
</ul>
|
||||
|
|
@ -215,9 +235,9 @@ other device class is mapped to "nothing", i.e. ignored.
|
|||
Before this method can be used, a schematic netlist needs to be loaded with
|
||||
<a href="#schematic">schematic</a>.
|
||||
</p>
|
||||
<h2>"same_nets" - Establishes an equivalence between the nets</h2>
|
||||
<a name="same_nets"/><h2>"same_nets" - Establishes an equivalence between the nets</h2>
|
||||
<keyword name="same_nets"/>
|
||||
<a name="same_nets"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>same_nets(circuit, net_a, net_b)</tt></li>
|
||||
<li><tt>same_nets(circuit_a, net_a, circuit_b, net_b)</tt></li>
|
||||
|
|
@ -237,9 +257,9 @@ resolve otherwise.
|
|||
Before this method can be used, a schematic netlist needs to be loaded with
|
||||
<a href="#schematic">schematic</a>.
|
||||
</p>
|
||||
<h2>"schematic" - Gets, sets or reads the reference netlist</h2>
|
||||
<a name="schematic"/><h2>"schematic" - Gets, sets or reads the reference netlist</h2>
|
||||
<keyword name="schematic"/>
|
||||
<a name="schematic"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>schematic(filename)</tt></li>
|
||||
<li><tt>schematic(filename, reader)</tt></li>
|
||||
|
|
@ -257,9 +277,9 @@ If no reader is provided, Spice format will be assumed. The reader object is a
|
|||
Alternatively, a <class_doc href="Netlist">Netlist</class_doc> object can be given which is obtained from any other
|
||||
source.
|
||||
</p>
|
||||
<h2>"tolerance" - Specifies compare tolerances for certain device parameters</h2>
|
||||
<a name="tolerance"/><h2>"tolerance" - Specifies compare tolerances for certain device parameters</h2>
|
||||
<keyword name="tolerance"/>
|
||||
<a name="tolerance"/><p>Usage:</p>
|
||||
<p>Usage:</p>
|
||||
<ul>
|
||||
<li><tt>tolerance(device_class_name, parameter_name, absolute_tolerance [, relative_tolerance])</tt></li>
|
||||
<li><tt>tolerance(device_class_name, parameter_name [, :absolute => absolute_tolerance] [, :relative => relative_tolerance])</tt></li>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
<pre>sheet_rho = 0.5
|
||||
model_name = "RES"
|
||||
extract_devices(resistor(model_name, sheet_rho), { "R" => res_layer, "C" => cap_layer })</pre>
|
||||
extract_devices(resistor(model_name, sheet_rho), { "R" => res_layer, "C" => contact_layer })</pre>
|
||||
|
||||
<p>
|
||||
The plain resistor offers two terminals which it outputs on "tA" and "tB" terminal layers.
|
||||
|
|
@ -62,6 +62,13 @@ extract_devices(resistor(model_name, sheet_rho), { "R" => res_layer, "C" => cap_
|
|||
<img src="/manual/res_ex_tw.png"/>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Note:</b> The resistance computation is based on a simple approximation. It computes the number
|
||||
of squares by tracing the perimeter of the "R" polygon. The perimeter length is separated
|
||||
in parts where the perimeter touches the "C" layer and parts where it does not. The number
|
||||
of squares is computed from the non-touching length divided by the touching length.
|
||||
</p>
|
||||
|
||||
<h2>Capacitor extractors (<a href="/about/drc_ref_global.xml#capacitor">capacitor</a>
|
||||
and <a href="/about/drc_ref_global.xml#capacitor_with_bulk">capacitor_with_bulk</a>)</h2>
|
||||
|
||||
|
|
@ -119,11 +126,6 @@ extract_devices(capacitor(model_name, area_cap), { "P1" => metal1, "P2" => metal
|
|||
<img src="/manual/diode_ex_layout.png"/>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The extractor will compute the capacitance from the area of the
|
||||
overlap and the capacitance per area (F/µm²) value.
|
||||
</p>
|
||||
|
||||
<pre>model_name = "DIODE"
|
||||
extract_devices(diode(model_name), { "P" => pplus, "N" => nwell })</pre>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue