From beb168508e39407911f469b379de85067fafcea4 Mon Sep 17 00:00:00 2001
From: Matthias Koefferlein
See Netter#consider_net_names for a description of that function.
Usage:
+See Netter#disable_parameter for a description of that function.
+ Usage:
+See Netter#enable_parameter for a description of that function.
+ Usage:
See Netter#equivalent_pins for a description of that function.
Usage:
+See Netter#ignore_parameter for a description of that function.
+ Usage:"disable_parameter" - Specifies whether to disable a parameter from a given device class for netlisting and default compare
+
+
+"enable_parameter" - Specifies whether to enable a parameter from a given device class for netlisting and default compare
+
+
+"equivalent_pins" - Marks pins as equivalent
"ignore_parameter" - Specifies whether to ignore a parameter from a given device class for the compare
+
+
+"join_symmetric_nets" - Joins symmetric nets of selected circuits on the extracted netlist
Usage:
++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. +
+Usage:
++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. +
+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. +
Usage:
@@ -154,6 +186,20 @@ case pin names for SPICE netlists.Use this method andwhere in the script before the compare call.
+Usage:
++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". +
Usage:
@@ -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. Absolute and relative tolerances add, so specifying both allows for a larger 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".
diff --git a/src/lay/lay/doc/manual/lvs_compare.xml b/src/lay/lay/doc/manual/lvs_compare.xml index 280d7aa68..5593ddddc 100644 --- a/src/lay/lay/doc/manual/lvs_compare.xml +++ b/src/lay/lay/doc/manual/lvs_compare.xml @@ -208,7 +208,7 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)- 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:
@@ -220,8 +220,8 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)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 - it for compare. + 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 + a parameter for compare - even if it is a primary one.
enable_parameter("RES", "L")
- 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.
@@ -246,7 +246,7 @@ tolerance("NMOS", "L", :absolute => 0.05, :relative => 0.01)disable_parameter("RES", "R")
- 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 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. diff --git a/src/lvs/lvs/built-in-macros/_lvs_netter.rb b/src/lvs/lvs/built-in-macros/_lvs_netter.rb index 8e44426c4..c5fc9b3f3 100644 --- a/src/lvs/lvs/built-in-macros/_lvs_netter.rb +++ b/src/lvs/lvs/built-in-macros/_lvs_netter.rb @@ -110,6 +110,15 @@ module LVS # 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 # 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) @@ -166,8 +175,15 @@ module LVS # %LVS% # @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) + # + # 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) @@ -202,8 +218,9 @@ module LVS # @brief Indicates whether to enable a specific parameter for a given device # @synopsis enable_parameter(device_class_name, parameter_name) # 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. + # # 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. @@ -215,7 +232,9 @@ module LVS # @synopsis disable_parameter(device_class_name, parameter_name) # 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 + # 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.