Product Documentation
Virtuoso Schematic Editor SKILL Functions Reference
Product Version IC23.1, November 2023

lmDefViewProp

lmDefViewProp( 
[ t_cellName ] 
[ t_viewName ] 
( t_propertyName t_propertyValuet_propertyName t_propertyValue )
) 

Description

Adds properties to the specified cellview. To add properties, add the specified properties to the original property list and save the new file.

Variables

The replaceViewProp global variable controls the property adding mode. The default value, nil, means the mode is appending. If you set replaceViewProp to t, the mode is replacement. replaceViewProp is automatically set to nil when running lmDefCell and is reset to the original value when finished.

Arguments

t_cellName

Optional only when lmDefViewProp is used in lmDefCell. The first name (not a property name) in the argument list is treated as the cell name.

t_viewName

Default: symbol

t_propertyName

Any SKILL symbol (entifier) or string.

t_propertyValue

Any SKILL expression that returns proper values. The syntax is as follows:

propertyValue := simpleValue
(
simpleValue [( range )]) |
time(
TimeValue [(range)]) |
filename(
filenameValue ) |
ilExpr(
string ) |
nlpExpr(
string ) |
proplist(
propertyList )
propertyList := propertyPair propertyList |
propertyPair propertyPair := propertyName =
propertyValue
range := enumeration | lowerBound upperBound
enumeration := stringEnumeration | string
lowerBound := simpleValue | TimeValue | nil
upperBound :=
simpleValue | TimeValue | nil
simpleValue :=
integer | floatingPointNumber | string
BooleanValue := yes | true | t | no | false | nil
TimeValue :=
string
filenameValue := string

time

Indicates the property type is time. If the type of a property is time, TimeValue should contain the date, time, and year. For example, the property

lastChanged = time("Jan 20 8:17:56 2000")

is a valid expression. Only the first three characters are needed to specify the month.

filename

Indicates the property type is a filename. If the property type is filename, filenameValue should be a string indicating the filename. For example, the property

myFile = filename("magic.c")

is a valid expression.

ilExpr

Indicates the property type is a SKILL expression. This type of property should have a valid SKILL expression.

nlpExpr

Indicates the property type is a Netlist Processor (NLP) expression. This type of property is used mainly by the NLP in generating a netlist. Refer to the Open Simulation System (OSS) Reference Manual for details about NLP.

proplist

Indicates the property type is a property list. In the database, a property list can be specified as the value of a property. That is, a property list can contain other property lists to form a hierarchical property list.

range

The values of range must be enclosed in parentheses. If nil is specified for a lower or upper bound in a range, it is unbounded. If a range is an enumeration type, each value in the range should be a string (a name in quotation marks).

Example

lmDefViewProp( and2 symbol
"instance#" = 1
snapSpacing = 4
screenGrSpacing = 20
screenGrMultiple = 5
drawGr? = yes
drawAxes? = no
userUnits = "userUnits"
"graphicsEditorUnits per userUnit" = 1
newFont2 = time("Mar 19 14:38:57 2000")
lastChecked = time("Nov 27 14:30:57 1999")
tr = 2.0 * basic_process_time
tf = 0.5 * lmGetValue(tr)
; properties for simulation (a hierarchical propertylist
logic = proplist(
Input_Pin_List = nlpExpr("[|A] [|B]")
Pin_Net_Map = nlpExpr("\\n$ 1 [|Y]=Y [|A]=A [|B]=B")
; the value of Pin_Net_map is nlpExpr("\n$ 1
; [|Y]=Y [|A]=A [|B]=b")
; the first "\" is used to quote the second for parsing
NLPElementPostamble = nlpExpr("[@logic_AND_Image]")
)
; property with name="speed", value=10, type=integer,
; lower-bound=8 and upper-bound=12
speed = (10 (8 12))
; property with name="file", value="property.c", type=filename
file = filename("property.c")
)

Puts a list of properties into the symbol view of the cell and2. Before you run this function, you should define the variable basic_process_time. The lmGetValue function is a predefined function for getting the value of a named property.

ten = 10                        ; define variable ten
unit = 1n ; define variable unit
lmDefViewProp( and2 "cmos_sch" ; cmos_sch is double quoted because
; the non-alphanumeric character
; "." is in the name
a = 10
b = (ten (8 12))
c = (10)
d = (ten (8 nil))
e = 2*unit
f = (2n (1n 4n))
g = (2n)
h = (2*unit (nil 4*unit))
i = yes ; yes, true, and t are entical
j = true
k = t
l = no ; no, false, and nil are entical
m = false
n = nil
o = yes
p = "test"
q = ("test" ("try" "test" "experiment"))
r = ("test")
s = ("test" ("test" "try" "debug"))
"t" = filename("print.c") ; name t is double quoted
; to distinguish it from
; SKILL keyword t
u = filename("print.c") ; do not specify a range
; for filename
v = time("Apr 1 12:00:00 2000")
w = time("Apr 1 12:00:00 2000" ("Mar 1 12:00:00 2000"
"May 1 12:00:00 2000"))
x = time("Apr 1 12:00:00 2000")
y = time("Apr 1 12:00:00 2000" (nil "May 1 12:00:00 2000")
z = proplist( ; hierarchical property list
aa = 1
bb = 1.1
cc = proplist(
aaa = 2
bbb = 2.2
)
)
)

Property specification for the cmos_sch view of the cell and2.


Return to top
 ⠀
X