mirror of
https://github.com/KLayout/klayout.git
synced 2026-09-07 11:31:08 +02:00
Added LVS tests, updated doc.
This commit is contained in:
@@ -236,13 +236,7 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)</pre>
|
||||
|
||||
<p>
|
||||
This has two effects: first, the "L" parameter is written into the Spice output netlist and second, it is compare against
|
||||
the schematic "L" parameter, provided that one is given in the netlist. No compare happens if no "L" parameter is present in the
|
||||
netlist.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This behavior is overridden by a "tolerance" or "ignore_parameter" specification for that parameter or if a customer
|
||||
device comparer is installed.
|
||||
the schematic "L" parameter.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -252,8 +246,10 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)</pre>
|
||||
<pre>disable_parameter("RES", "R")</pre>
|
||||
|
||||
<p>
|
||||
As this will make the parameter to disappear from the netlist, it's often more useful to use "ignore_parameter" instead
|
||||
which has the same effect on the compare step, but will keep it in the netlist.
|
||||
This behavior is overridden by a "tolerance" or "ignore_parameter" specification for that parameter or if a customer
|
||||
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.
|
||||
So after all, enabling or disabling a parameter is not a strong concept but rather a hint.
|
||||
</p>
|
||||
|
||||
<h2>Pin swapping</h2>
|
||||
|
||||
@@ -191,13 +191,13 @@ module LVS
|
||||
|
||||
# %LVS%
|
||||
# @name enable_parameter
|
||||
# @brief Specifies whether to enable a parameter from a given device class for the netlisting and default compare
|
||||
# @brief Specifies whether to enable a parameter from a given device class for netlisting and default compare
|
||||
# @synopsis enable_parameter(device_class_name, parameter_name)
|
||||
# See \Netter#enable_parameter for a description of that function.
|
||||
|
||||
# %LVS%
|
||||
# @name disable_parameter
|
||||
# @brief Specifies whether to disable a parameter from a given device class for the netlisting and default compare
|
||||
# @brief Specifies whether to disable a parameter from a given device class for netlisting and default compare
|
||||
# @synopsis disable_parameter(device_class_name, parameter_name)
|
||||
# See \Netter#disable_parameter for a description of that function.
|
||||
|
||||
|
||||
@@ -201,18 +201,24 @@ module LVS
|
||||
# @name enable_parameter
|
||||
# @brief Indicates whether to enable a specific parameter for a given device
|
||||
# @synopsis enable_parameter(device_class_name, parameter_name)
|
||||
# Enabling a parameter has two effects: first the parameter is netlisted and second
|
||||
# the parameter is compared in the netlist compare - provided it is given in the schematic.
|
||||
# Setting a tolerance or using a custom device comparer will override the last rule.
|
||||
# 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
|
||||
# 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
|
||||
# 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.
|
||||
# The inverse the this function is \disable_parameter.
|
||||
|
||||
# %LVS%
|
||||
# @name disable_parameter
|
||||
# @brief Indicates whether to disable a specific parameter for a given device
|
||||
# @synopsis disable_parameter(device_class_name, parameter_name)
|
||||
# Disabling a parameter has two effects: first the parameter is not netlisted and second
|
||||
# the parameter is compared in the netlist compare - provided it is given in the schematic.
|
||||
# Setting a tolerance or using a custom device comparer will override the last rule.
|
||||
# To disable a parameter for compare only, \ignore_parameter can be used.
|
||||
# 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
|
||||
# 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
|
||||
# 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.
|
||||
|
||||
[ :enable_parameter, :disable_parameter ].each do |mn|
|
||||
eval <<"CODE"
|
||||
|
||||
@@ -261,3 +261,10 @@ TEST(28_BlackBoxDevicesWithBlank)
|
||||
run_test (_this, "bbdevices5b", "bbdevices5.gds");
|
||||
run_test (_this, "bbdevices6b", "bbdevices6.gds");
|
||||
}
|
||||
|
||||
TEST(29_DeviceCombineAndTolerances)
|
||||
{
|
||||
run_test (_this, "res_combine1", "res_combine.gds");
|
||||
run_test (_this, "res_combine2", "res_combine.gds");
|
||||
run_test (_this, "res_combine3", "res_combine.gds");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user