diff --git a/src/drc/drc/built-in-macros/_drc_engine.rb b/src/drc/drc/built-in-macros/_drc_engine.rb index 5855454fd..7ffcc1b28 100644 --- a/src/drc/drc/built-in-macros/_drc_engine.rb +++ b/src/drc/drc/built-in-macros/_drc_engine.rb @@ -1325,6 +1325,7 @@ CODE # @name connect_implicit # @brief Specifies a label pattern for implicit net connections # @synopsis connect_implicit(label_pattern) + # @synopsis connect_implicit(cell_pattern, label_pattern) # See \Netter#connect_implicit for a description of that function. # %DRC% diff --git a/src/lay/lay/doc/about/drc_ref_global.xml b/src/lay/lay/doc/about/drc_ref_global.xml index e299fce86..7e4be95ba 100644 --- a/src/lay/lay/doc/about/drc_ref_global.xml +++ b/src/lay/lay/doc/about/drc_ref_global.xml @@ -246,6 +246,7 @@ See Netter#connect_global
Usage:
See Netter#connect_implicit for a description of that function. diff --git a/src/lay/lay/doc/about/lvs_ref_netter.xml b/src/lay/lay/doc/about/lvs_ref_netter.xml index d3a7923e0..1d39215a6 100644 --- a/src/lay/lay/doc/about/lvs_ref_netter.xml +++ b/src/lay/lay/doc/about/lvs_ref_netter.xml @@ -229,11 +229,26 @@ Device classes are also known as "models". By default, device classes are identified by name. If names are different, this method allows establishing an explicit correspondence.
-One of the device classes may be nil. In this case, the corresponding -other device class is mapped to "nothing", i.e. ignored. -
Before this method can be used, a schematic netlist needs to be loaded with schematic. +
+One of the device classes may be "nil". In this case, the corresponding +other device class is mapped to "nothing", i.e. ignored. +
+A device class on one side can be mapped to multiple other device +classes on the other side by using this function multiple times, e.g. +
+
+same_device_classes("POLYRES", "RES")
+same_device_classes("WELLRES", "RES")
+
++will match both "POLYRES" and "WELLRES" on the layout side to "RES" on the +schematic side. +
+Once a device class is mentioned with "same_device_classes", matching by +name is disabled for this class. So after using 'same_device_classes("A", "B")' +"A" is no longer equivalent to "A" on the other side.
same_device_classes("PMOS_IN_LAYOUT", "PMOS_IN_SCHEMATIC")
same_device_classes("NMOS_IN_LAYOUT", "NMOS_IN_SCHEMATIC")
+ + This method can be used also multiple times to establish a many-to-many + equivalence: +
+ +same_device_classes("POLYRES", "RES")
+same_device_classes("WELLRES", "RES")
+
+ + If one target is "nil", the corresponding devices are basically ignored: +
+ +# ignores "POLYRES" devices:
+same_device_classes("POLYRES", nil)
+
diff --git a/src/lvs/lvs/built-in-macros/_lvs_netter.rb b/src/lvs/lvs/built-in-macros/_lvs_netter.rb index de7548b9f..28d2ae487 100644 --- a/src/lvs/lvs/built-in-macros/_lvs_netter.rb +++ b/src/lvs/lvs/built-in-macros/_lvs_netter.rb @@ -410,11 +410,26 @@ module LVS # By default, device classes are identified by name. If names are different, this # method allows establishing an explicit correspondence. # - # One of the device classes may be nil. In this case, the corresponding - # other device class is mapped to "nothing", i.e. ignored. - # # Before this method can be used, a schematic netlist needs to be loaded with # \schematic. + # + # One of the device classes may be "nil". In this case, the corresponding + # other device class is mapped to "nothing", i.e. ignored. + # + # A device class on one side can be mapped to multiple other device + # classes on the other side by using this function multiple times, e.g. + # + # @code + # same_device_classes("POLYRES", "RES") + # same_device_classes("WELLRES", "RES") + # @/code + # + # will match both "POLYRES" and "WELLRES" on the layout side to "RES" on the + # schematic side. + # + # Once a device class is mentioned with "same_device_classes", matching by + # name is disabled for this class. So after using 'same_device_classes("A", "B")' + # "A" is no longer equivalent to "A" on the other side. def same_device_classes(a, b)