Updated doc.

This commit is contained in:
Matthias Koefferlein 2021-07-29 23:13:26 +02:00
parent 0f09dfe8eb
commit beb168508e
4 changed files with 109 additions and 8 deletions

View File

@ -55,6 +55,24 @@ See <a href="/about/lvs_ref_netter.xml#compare">Netter#compare</a> for a descrip
<p> <p>
See <a href="/about/lvs_ref_netter.xml#consider_net_names">Netter#consider_net_names</a> for a description of that function. See <a href="/about/lvs_ref_netter.xml#consider_net_names">Netter#consider_net_names</a> for a description of that function.
</p> </p>
<a name="disable_parameter"/><h2>"disable_parameter" - Specifies whether to disable a parameter from a given device class for netlisting and default compare</h2>
<keyword name="disable_parameter"/>
<p>Usage:</p>
<ul>
<li><tt>disable_parameter(device_class_name, parameter_name)</tt></li>
</ul>
<p>
See <a href="/about/lvs_ref_netter.xml#disable_parameter">Netter#disable_parameter</a> for a description of that function.
</p>
<a name="enable_parameter"/><h2>"enable_parameter" - Specifies whether to enable a parameter from a given device class for netlisting and default compare</h2>
<keyword name="enable_parameter"/>
<p>Usage:</p>
<ul>
<li><tt>enable_parameter(device_class_name, parameter_name)</tt></li>
</ul>
<p>
See <a href="/about/lvs_ref_netter.xml#enable_parameter">Netter#enable_parameter</a> for a description of that function.
</p>
<a name="equivalent_pins"/><h2>"equivalent_pins" - Marks pins as equivalent</h2> <a name="equivalent_pins"/><h2>"equivalent_pins" - Marks pins as equivalent</h2>
<keyword name="equivalent_pins"/> <keyword name="equivalent_pins"/>
<p>Usage:</p> <p>Usage:</p>
@ -64,6 +82,15 @@ See <a href="/about/lvs_ref_netter.xml#consider_net_names">Netter#consider_net_n
<p> <p>
See <a href="/about/lvs_ref_netter.xml#equivalent_pins">Netter#equivalent_pins</a> for a description of that function. See <a href="/about/lvs_ref_netter.xml#equivalent_pins">Netter#equivalent_pins</a> for a description of that function.
</p> </p>
<a name="ignore_parameter"/><h2>"ignore_parameter" - Specifies whether to ignore a parameter from a given device class for the compare</h2>
<keyword name="ignore_parameter"/>
<p>Usage:</p>
<ul>
<li><tt>ignore_parameter(device_class_name, parameter_name)</tt></li>
</ul>
<p>
See <a href="/about/lvs_ref_netter.xml#ignore_parameter">Netter#ignore_parameter</a> for a description of that function.
</p>
<a name="join_symmetric_nets"/><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"/> <keyword name="join_symmetric_nets"/>
<p>Usage:</p> <p>Usage:</p>

View File

@ -127,6 +127,38 @@ will employ net names to resolve ambiguities. If set to false,
ambiguities will be resolved based on the topology alone. Topology ambiguities will be resolved based on the topology alone. Topology
resolution is more expensive. resolution is more expensive.
</p> </p>
<a name="disable_parameter"/><h2>"disable_parameter" - Indicates whether to disable a specific parameter for a given device</h2>
<keyword name="disable_parameter"/>
<p>Usage:</p>
<ul>
<li><tt>disable_parameter(device_class_name, parameter_name)</tt></li>
</ul>
<p>
Disabling a parameter is the inverse of <a href="#enable_parameter">enable_parameter</a>. Disabling a parameter will
reset the "primary" flag of the parameter. This has several effects - e.g. the parameter will not be
used in device compare during netlist matching by default.
</p><p>
This is not a strong concept but rather
a hint for the system. Disabling a parameter for netlist compare without side effects
is possible with the <a href="#ignore_parameter">ignore_parameter</a> function. In the same way, <a href="#tolerance">tolerance</a> will enable a parameter for
netlist compare regardless of the "primary" status of the parameter.
</p>
<a name="enable_parameter"/><h2>"enable_parameter" - Indicates whether to enable a specific parameter for a given device</h2>
<keyword name="enable_parameter"/>
<p>Usage:</p>
<ul>
<li><tt>enable_parameter(device_class_name, parameter_name)</tt></li>
</ul>
<p>
The parameter is made "primary" which enables further applications - e.g. it is netlisted
for some elements which normally would not print that parameter, and the parameter
is compared in the default device compare scheme during netlist matching.
</p><p>
Enabling a parameter is rather a hint for the system and the effects can be controlled
by other means, so this is not a strong concept. For example, once a <a href="#tolerance">tolerance</a> is
specified for a parameter, the "primary" flag of the parameter is not considered anymore.
The inverse the this function is <a href="#disable_parameter">disable_parameter</a>.
</p>
<a name="equivalent_pins"/><h2>"equivalent_pins" - Marks pins as equivalent</h2> <a name="equivalent_pins"/><h2>"equivalent_pins" - Marks pins as equivalent</h2>
<keyword name="equivalent_pins"/> <keyword name="equivalent_pins"/>
<p>Usage:</p> <p>Usage:</p>
@ -154,6 +186,20 @@ case pin names for SPICE netlists.
</p><p> </p><p>
Use this method andwhere in the script before the <a href="#compare">compare</a> call. Use this method andwhere in the script before the <a href="#compare">compare</a> call.
</p> </p>
<a name="ignore_parameter"/><h2>"ignore_parameter" - Skip a specific parameter for a given device class name during device compare</h2>
<keyword name="ignore_parameter"/>
<p>Usage:</p>
<ul>
<li><tt>ignore_parameter(device_class_name, parameter_name)</tt></li>
</ul>
<p>
Use this function is ignore a parameter for a particular device class during the netlist compare.
Some parameters - for example "L" and "W" parameters of the resistor device - are "secondary" parameters
which are not ignored by default. Using "ignore_parameter" on such devices does not have an effect.
</p><p>
"ignore_parameter" and "tolerance" only have an effect with the default device comparer. Using a custom device comparer
will override the definitions by "ignore_parameter" or "tolerance".
</p>
<a name="join_symmetric_nets"/><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"/> <keyword name="join_symmetric_nets"/>
<p>Usage:</p> <p>Usage:</p>
@ -395,5 +441,14 @@ Tolerances can be given in absolute units or relative or both.
The relative tolerance is given as a factor, so 0.1 is a 10% tolerance. The relative tolerance is given as a factor, so 0.1 is a 10% tolerance.
Absolute and relative tolerances add, so specifying both allows for a larger Absolute and relative tolerances add, so specifying both allows for a larger
deviation. deviation.
</p><p>
Some device parameters - like the resistor's "L" and "W" parameters - are not compared by default.
These are "secondary" device parameters. Using a tolerance on such parameters will make these parameters
being compared even if they are secondary ones.
</p><p>
A function is skip a parameter during the device compare is "ignore_parameter".
</p><p>
"tolerance" and "ignore_parameter" only have an effect with the default device comparer. Using a custom device comparer
will override the definitions by "ignore_parameter" or "tolerance".
</p> </p>
</doc> </doc>

View File

@ -208,7 +208,7 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)</pre>
<h2>Ignoring parameters</h2> <h2>Ignoring parameters</h2>
<p> <p>
Some device parameters can be ignore in the compare. It is possible to ignore certain parameters from certain devices in the netlist compare.
For example, if you don't want to compare the "L" parameter of the "NMOS" devices, use this statement: For example, if you don't want to compare the "L" parameter of the "NMOS" devices, use this statement:
</p> </p>
@ -220,8 +220,8 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)</pre>
<p> <p>
By default, only "primary" parameters are compared. For a resistor for example, "R" is a primary parameter, the other ones By default, only "primary" parameters are compared. For a resistor for example, "R" is a primary parameter, the other ones
like "L", "W", "A" and "P" are not. Using "tolerance" will implicitly enable a parameter while "ignore_parameter" will disable like "L", "W", "A" and "P" are not. Using "tolerance" will implicitly enable a parameter - even if it is not a primary one - while "ignore_parameter" will disable
it for compare. a parameter for compare - even if it is a primary one.
</p> </p>
<h2>Enabling and disabling parameters</h2> <h2>Enabling and disabling parameters</h2>
@ -235,7 +235,7 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)</pre>
<pre>enable_parameter("RES", "L")</pre> <pre>enable_parameter("RES", "L")</pre>
<p> <p>
This has two effects: first, the "L" parameter is written into the Spice output netlist and second, it is compare against This has two effects: first, the "L" parameter is written into the Spice output netlist and in addition it is compared against
the schematic "L" parameter. the schematic "L" parameter.
</p> </p>
@ -246,7 +246,7 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)</pre>
<pre>disable_parameter("RES", "R")</pre> <pre>disable_parameter("RES", "R")</pre>
<p> <p>
This behavior is overridden by a "tolerance" or "ignore_parameter" specification for that parameter or if a customer This behavior is overridden by a "tolerance" or "ignore_parameter" specification for that parameter or if a custom
device comparer is installed. Netlisting is affected only for the elementary devices (R, C and L) and any Spice writer device comparer is installed. Netlisting is affected only for the elementary devices (R, C and L) and any Spice writer
delegate can choose to ignore the primary flag. A custom device comparer may also ignore this flag. delegate can choose to ignore the primary flag. A custom device comparer may also ignore this flag.
So after all, enabling or disabling a parameter is not a strong concept but rather a hint. So after all, enabling or disabling a parameter is not a strong concept but rather a hint.

View File

@ -110,6 +110,15 @@ module LVS
# The relative tolerance is given as a factor, so 0.1 is a 10% tolerance. # The relative tolerance is given as a factor, so 0.1 is a 10% tolerance.
# Absolute and relative tolerances add, so specifying both allows for a larger # Absolute and relative tolerances add, so specifying both allows for a larger
# deviation. # deviation.
#
# Some device parameters - like the resistor's "L" and "W" parameters - are not compared by default.
# These are "secondary" device parameters. Using a tolerance on such parameters will make these parameters
# being compared even if they are secondary ones.
#
# A function is skip a parameter during the device compare is "ignore_parameter".
#
# "tolerance" and "ignore_parameter" only have an effect with the default device comparer. Using a custom device comparer
# will override the definitions by "ignore_parameter" or "tolerance".
def tolerance(device_class_name, parameter_name, *args) def tolerance(device_class_name, parameter_name, *args)
@ -166,8 +175,15 @@ module LVS
# %LVS% # %LVS%
# @name ignore_parameter # @name ignore_parameter
# @brief Indicates whether not to compare a specific parameter for a given device class name # @brief Skip a specific parameter for a given device class name during device compare
# @synopsis ignore_parameter(device_class_name, parameter_name) # @synopsis ignore_parameter(device_class_name, parameter_name)
#
# Use this function is ignore a parameter for a particular device class during the netlist compare.
# Some parameters - for example "L" and "W" parameters of the resistor device - are "secondary" parameters
# which are not ignored by default. Using "ignore_parameter" on such devices does not have an effect.
#
# "ignore_parameter" and "tolerance" only have an effect with the default device comparer. Using a custom device comparer
# will override the definitions by "ignore_parameter" or "tolerance".
def ignore_parameter(device_class_name, parameter_name) def ignore_parameter(device_class_name, parameter_name)
@ -202,8 +218,9 @@ module LVS
# @brief Indicates whether to enable a specific parameter for a given device # @brief Indicates whether to enable a specific parameter for a given device
# @synopsis enable_parameter(device_class_name, parameter_name) # @synopsis enable_parameter(device_class_name, parameter_name)
# The parameter is made "primary" which enables further applications - e.g. it is netlisted # The parameter is made "primary" which enables further applications - e.g. it is netlisted
# for some elements which normally would suppress additional parameters and the parameter # for some elements which normally would not print that parameter, and the parameter
# is compared in the default device compare scheme during netlist matching. # is compared in the default device compare scheme during netlist matching.
#
# Enabling a parameter is rather a hint for the system and the effects can be controlled # Enabling a parameter is rather a hint for the system and the effects can be controlled
# by other means, so this is not a strong concept. For example, once a \tolerance is # by other means, so this is not a strong concept. For example, once a \tolerance is
# specified for a parameter, the "primary" flag of the parameter is not considered anymore. # specified for a parameter, the "primary" flag of the parameter is not considered anymore.
@ -215,7 +232,9 @@ module LVS
# @synopsis disable_parameter(device_class_name, parameter_name) # @synopsis disable_parameter(device_class_name, parameter_name)
# Disabling a parameter is the inverse of \enable_parameter. Disabling a parameter will # Disabling a parameter is the inverse of \enable_parameter. Disabling a parameter will
# reset the "primary" flag of the parameter. This has several effects - e.g. the parameter will not be # reset the "primary" flag of the parameter. This has several effects - e.g. the parameter will not be
# used in device compare during netlist matching by default. This is not a strong concept but rather # used in device compare during netlist matching by default.
#
# This is not a strong concept but rather
# a hint for the system. Disabling a parameter for netlist compare without side effects # a hint for the system. Disabling a parameter for netlist compare without side effects
# is possible with the \ignore_parameter function. In the same way, \tolerance will enable a parameter for # is possible with the \ignore_parameter function. In the same way, \tolerance will enable a parameter for
# netlist compare regardless of the "primary" status of the parameter. # netlist compare regardless of the "primary" status of the parameter.