P
paul
Guest
This code works fine for cds v5.10.41 but not for cds v6.1.0EA
This code creates a pcell and builds a mosaic consisiting of this pcell
and inserts it into an cellview.
The parameters (w/h) of the pcell can be changed using the property
form (q) in both cds-versions. In cds 6.1 its not possible to change
the parameters of the pcell using this SKILL code. How can this be
done?
pcDefinePCell(
list( ddGetObj("demo") "ask" "layout")
(
(layer "met1")
(width 3.0)
(length 6.0)
) ; end or pcell parameters
let(
() ; no local variables in this example
rodCreateRect(
?name "minMetal"
?width width
?layer layer
?length length
) ; end of rodCreateRect
) ; end of let
) ; end pcDefineP
cv = geGetEditCellView()
master = dbOpenCellViewByType("eltic" "ask" "layout")
mosaic = dbCreateSimpleMosaic(cv master nil 0:0 "R0" 3 2 6 6)
; read
printf("before %L\n" car(mosaic->instanceList)->length )
printf("before %L\n" car(mosaic->instanceList)->width )
; default params evaluate to nil - this is ok.
; change prop using two different methods:
car(mosaic->instanceList)->length = 1.54
widthProp = dbCreateProp(car(mosaic->instanceList) "width" "float"
2.21)
; read again using two different methods:
printf("after %L\n" car(mosaic->instanceList)->length )
printf("after %L\n" dbSearchPropByName(car(mosaic->instanceList)
"width")->value )
/*
expected output: (works properly in cds 5.10.41)
before nil
before nil
after 1.54
after 2.21
output with cds 6.1.0EA (doenst work):
before 6.0
before 3.0
after 6.0
after 3.0
default values are read, but cannot be changed using SKILL
*/
This code creates a pcell and builds a mosaic consisiting of this pcell
and inserts it into an cellview.
The parameters (w/h) of the pcell can be changed using the property
form (q) in both cds-versions. In cds 6.1 its not possible to change
the parameters of the pcell using this SKILL code. How can this be
done?
pcDefinePCell(
list( ddGetObj("demo") "ask" "layout")
(
(layer "met1")
(width 3.0)
(length 6.0)
) ; end or pcell parameters
let(
() ; no local variables in this example
rodCreateRect(
?name "minMetal"
?width width
?layer layer
?length length
) ; end of rodCreateRect
) ; end of let
) ; end pcDefineP
cv = geGetEditCellView()
master = dbOpenCellViewByType("eltic" "ask" "layout")
mosaic = dbCreateSimpleMosaic(cv master nil 0:0 "R0" 3 2 6 6)
; read
printf("before %L\n" car(mosaic->instanceList)->length )
printf("before %L\n" car(mosaic->instanceList)->width )
; default params evaluate to nil - this is ok.
; change prop using two different methods:
car(mosaic->instanceList)->length = 1.54
widthProp = dbCreateProp(car(mosaic->instanceList) "width" "float"
2.21)
; read again using two different methods:
printf("after %L\n" car(mosaic->instanceList)->length )
printf("after %L\n" dbSearchPropByName(car(mosaic->instanceList)
"width")->value )
/*
expected output: (works properly in cds 5.10.41)
before nil
before nil
after 1.54
after 2.21
output with cds 6.1.0EA (doenst work):
before 6.0
before 3.0
after 6.0
after 3.0
default values are read, but cannot be changed using SKILL
*/