The Custom Property Filter Setup panel is presented in response to pressing the Setup button in the Per-Cell Objects page of the Compare Layouts panel. The Compare Layouts panel is obtained from the Compare Layouts button in the Convert Menu.
This panel allows the user to set up the custom property filter strings for the cell, cell instances, and objects, for both electrical and physical mode comparisons. These filtering definitions are applied when layout comparison is being performed from the Compare Layouts panel in Per-Cell Objects mode, with the Property Filtering menu set to Custom and property checking enabled. The filtering also applies when using the !compare command, when neither of the -f or -g options is given, and the -u option is given and property checking is enabled.
The six entry areas correspond to six variables, which can (equivalently) be set directly. These variables are
PhysPrpFltCell
PhysPrpFltInst
PhysPrpFltObj
ElecPrpFltCell
ElecPrpFltInst
ElecPrpFltObj
If the entry area is empty, the corresponding variable is unset, and the default filtering will be applied. Otherwise, the string determines the filtering applied.
The strings consist of space and/or comma-separated lists of numbers or equivalent names. The names are simply mnemonics to the electrical properties, and are:
name value model 1 value 2 param 3 other 4 nophys 5 virtual 6 bnode 9 node 10 name 11 labloc 12 mut 13 newmut 14 branch 15 labrf 16 mutlrf 17 symblc 18 nodmap 19
Use of numbers and equivalent names is arbitrary and they can be mixed. Names will be recognized if at least the leading two characters are given, with enough additional characters so as to uniquely prefix one of the names in the list above. Names that are not recognized are silently ignored.
Specifying a list as described indicates that only the listed properties will be considered. However, it is possible to invert this logic.
If the first character in the string is `s', and the second character is not `y' (to avoid a clash with ``symblc''), then the properties in the list that follows will be skipped, i.e., only properties not in the list will be considered. If the leading `s' is recognized as the ``skip'' indicator, all alphabetic characters up to the first delimiter or number will be stripped before parsing the list.
The recognition of names and the skip indicator are case-insensitive.
For example, the following specifications are all equivalent:
s1,2,3
skip1,2,3
skip,1,2,3
skip 1 2 3
skip,model,value,param
An empty entry area will trigger default filtering and is not an empty filter (blocking all). To provide an empty list, which blocks all properties from comparison, simply insert a character that is not recognized as a property number or `s'. Just about anything will do, one choice would be `-'. This will have the intended effect of setting up a filter with no elements, which will not match any values.
There is one more subtlety that may be encountered. In graphical mode, it is not possible to set the variables as booleans, i.e., to nothing. The graphical system will immediately unset the variable if this is attempted. However, in non-graphics mode, this won't happen, and the variables will take the null assignment. In this case, the corresponding filter will block all, rather than reverting to the default filter.