Added LVS tests, updated doc.

This commit is contained in:
Matthias Koefferlein
2021-07-29 22:56:11 +02:00
parent 9543cea952
commit 0f09dfe8eb
15 changed files with 948 additions and 18 deletions
+5 -9
View File
@@ -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>
+2 -2
View File
@@ -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.
+13 -7
View File
@@ -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"
+7
View File
@@ -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");
}