R
rick
Guest
I am trying to create a pCell that will instantiates devices from the
PDK. I have the cell together
but the devices wont resize, cant change the parameters. Solution ID:
11178170 on sourceLink
states that this problem can happen if there is a datatype mismatch
which there is.
The dataTypes of the devices in the PDK has its parameters set as
floats. But the code wants strings.
I had this working on a different PDK where both were strings and it
works but when migrating the
code to a different PDK, it not longer works. I tried changing it to
strings but it then no longer compiles.
Here is the error:
e *Error* dbCreateParamInst: Invalid float - "1.00u"
\e *Error* load: error while loading file - "./pCells/mypart.il"
pCell source code:
dbCreateParamInst(cv tranId
"ntranr" 0:0 "MY" 1 list(
list("w" "string" sprintf(nil "%.2fu" nw))
list("l" "string" sprintf(nil "%.2fu" nl))
list("fingers" "string" sprintf(nil "%d" nf))
pcDefinePCell(
list(ddGetObj("rickPcell") "mypart" "layout")
(
(nw float 1.0)
(nl float 0.13)
(nf int 1)
(pw float 1.0)
(pl float 0.13)
(pf int 1)
)
InstantMyPart(pcCellView nw nl nf pw pl pf)
---------------------------------------------------------------------------------------------------------
parameter dump of the device
\i cv=dbOpenCellView("tsmc13rf" "nmos1v" "layout")
\t db:375117868
\i cv~>parameters~>value~>name
\t ("tapCntRows" "tapExtension" "rightTap" "leftTap" "bottomTap"
\t "topTap" "tap" "rightAbut" "leftAbut" "sdMtlWidth"
\t "mtlCvg" "switchSD" "connectSD" "minGateMetal" "connectGates"
\t "fingers" "l" "fw" "dnwell"
\i cv~>parameters~>value~>valueType
\t ("int" "string" "boolean" "boolean" "boolean"
\t "boolean" "string" "int" "int" "float"
\t "string" "boolean" "string" "boolean" "string"
\t "float" "float" "float" "boolean"
I cant change the PDK so what is correct method of instantiating a
device with type float?
PDK. I have the cell together
but the devices wont resize, cant change the parameters. Solution ID:
11178170 on sourceLink
states that this problem can happen if there is a datatype mismatch
which there is.
The dataTypes of the devices in the PDK has its parameters set as
floats. But the code wants strings.
I had this working on a different PDK where both were strings and it
works but when migrating the
code to a different PDK, it not longer works. I tried changing it to
strings but it then no longer compiles.
Here is the error:
e *Error* dbCreateParamInst: Invalid float - "1.00u"
\e *Error* load: error while loading file - "./pCells/mypart.il"
pCell source code:
dbCreateParamInst(cv tranId
"ntranr" 0:0 "MY" 1 list(
list("w" "string" sprintf(nil "%.2fu" nw))
list("l" "string" sprintf(nil "%.2fu" nl))
list("fingers" "string" sprintf(nil "%d" nf))
pcDefinePCell(
list(ddGetObj("rickPcell") "mypart" "layout")
(
(nw float 1.0)
(nl float 0.13)
(nf int 1)
(pw float 1.0)
(pl float 0.13)
(pf int 1)
)
InstantMyPart(pcCellView nw nl nf pw pl pf)
---------------------------------------------------------------------------------------------------------
parameter dump of the device
\i cv=dbOpenCellView("tsmc13rf" "nmos1v" "layout")
\t db:375117868
\i cv~>parameters~>value~>name
\t ("tapCntRows" "tapExtension" "rightTap" "leftTap" "bottomTap"
\t "topTap" "tap" "rightAbut" "leftAbut" "sdMtlWidth"
\t "mtlCvg" "switchSD" "connectSD" "minGateMetal" "connectGates"
\t "fingers" "l" "fw" "dnwell"
\i cv~>parameters~>value~>valueType
\t ("int" "string" "boolean" "boolean" "boolean"
\t "boolean" "string" "int" "int" "float"
\t "string" "boolean" "string" "boolean" "string"
\t "float" "float" "float" "boolean"
I cant change the PDK so what is correct method of instantiating a
device with type float?