CDF/pcell problems cadence 6.1

P

Paul Shepherd

Guest
I am trying to build an extremely simple PDK and have run into an
issue which might be a bug. I'm looking for some feedback to figure
out if I have overlooked something.

I have built a graphical PCell for an NFET which has parameters
"width", "length", and "fingers". I have tested this on it's own, and
it works fine. Now I am creating a symbol and CDF data so that later I
will be able to run LVS checks and simulations. When I attempt to
instantiate the layout PCell, or edit the parameters in properties of
the symbol or layout PCell, the parameters always return to their
default values. The callback script is working, but something else is
forcing things to always be return to the default value whenever I hit
"OK" or "Apply".

Example of the skill code dumped for "w" parameter:
cdfCreateParam( cdfId
?name "w"
?prompt "w"
?units "lengthMetric"
?defValue "4u"
?type "string"
?use "t"
?display "t"
?editable "t"
?callback "cdfgData->width->value =
cdfParseFloatString( cdfgData->w->value )/1e-6"
?dontSave "nil"
?parseAsNumber "yes"
?parseAsCEL "yes"
)

Properties dumped from the CDF edit dialog:
cdfId->formInitProc = ""
cdfId->doneProc = ""
cdfId->buttonFieldWidth = 340
cdfId->fieldHeight = 35
cdfId->fieldWidth = 350
cdfId->promptWidth = 175
cdfId->instNameType = "schematic"
cdfId->instDisplayMode = "cellName"
cdfId->netNameType = "schematic"
cdfId->termSimType = "DC"
cdfId->termDisplayMode = "none"
cdfId->paramSimType = "DC"
cdfId->paramEvaluate = "t nil nil nil nil"
cdfId->paramDisplayMode = "parameter"
cdfId->paramLabelSet = "w l Fingers"
cdfSaveCDF( cdfId )


Thanks in advance!
 
Paul Shepherd wrote, on 12/20/10 22:07:
I am trying to build an extremely simple PDK and have run into an
issue which might be a bug. I'm looking for some feedback to figure
out if I have overlooked something.

I have built a graphical PCell for an NFET which has parameters
"width", "length", and "fingers". I have tested this on it's own, and
it works fine. Now I am creating a symbol and CDF data so that later I
will be able to run LVS checks and simulations. When I attempt to
instantiate the layout PCell, or edit the parameters in properties of
the symbol or layout PCell, the parameters always return to their
default values. The callback script is working, but something else is
forcing things to always be return to the default value whenever I hit
"OK" or "Apply".

Example of the skill code dumped for "w" parameter:
cdfCreateParam( cdfId
?name "w"
?prompt "w"
?units "lengthMetric"
?defValue "4u"
?type "string"
?use "t"
?display "t"
?editable "t"
?callback "cdfgData->width->value =
cdfParseFloatString( cdfgData->w->value )/1e-6"
?dontSave "nil"
?parseAsNumber "yes"
?parseAsCEL "yes"
)

Properties dumped from the CDF edit dialog:
cdfId->formInitProc = ""
cdfId->doneProc = ""
cdfId->buttonFieldWidth = 340
cdfId->fieldHeight = 35
cdfId->fieldWidth = 350
cdfId->promptWidth = 175
cdfId->instNameType = "schematic"
cdfId->instDisplayMode = "cellName"
cdfId->netNameType = "schematic"
cdfId->termSimType = "DC"
cdfId->termDisplayMode = "none"
cdfId->paramSimType = "DC"
cdfId->paramEvaluate = "t nil nil nil nil"
cdfId->paramDisplayMode = "parameter"
cdfId->paramLabelSet = "w l Fingers"
cdfSaveCDF( cdfId )


Thanks in advance!
Hi Paul,

I think I'd have to see the complete example - rather hard to tell from just the
above. Either can you post it, or contact http://support.cadence.com and log a
service request with Cadence?

Regards,

Andrew.
 
Thanks Andrew, here is the complete output:


/****************************************************/
LIBRARY = XXXXXXXX
CELL = "NMOSenh"
/****************************************************/

let( ( libId cellId cdfId )
unless( cellId = ddGetObj( LIBRARY CELL )
error( "Could not get cell %s." CELL )
)
when( cdfId = cdfGetBaseCellCDF( cellId )
cdfDeleteCDF( cdfId )
)
cdfId = cdfCreateBaseCellCDF( cellId )

;;; Parameters
cdfCreateParam( cdfId
?name "w"
?prompt "w"
?units "lengthMetric"
?defValue "4u"
?type "string"
?use "t"
?display "t"
?editable "t"
?callback "cdfgData->width->value =
cdfParseFloatString( cdfgData->w->value )/1e-6"
?dontSave "nil"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "l"
?prompt "l"
?units "lengthMetric"
?defValue "2u"
?type "string"
?use "t"
?display "t"
?editable "t"
?callback "cdfgData->length->value =
cdfParseFloatString( cdfgData->l->value )/1e-6"
?dontSave "nil"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "width"
?prompt "PCell width"
?defValue 4.0
?type "float"
?display "t"
?dontSave "nil"
?storeDefault "yes"
)
cdfCreateParam( cdfId
?name "length"
?prompt "PCell length"
?defValue 2.0
?type "float"
?display "t"
?dontSave "nil"
?storeDefault "yes"
)
cdfCreateParam( cdfId
?name "fingers"
?prompt "fingers"
?defValue 1
?type "int"
?use "t"
?display "t"
?editable "t"
?dontSave "nil"
?storeDefault "yes"
)

;;; Simulator Information
cdfId->simInfo = list( nil )
cdfId->simInfo->ams = '( nil
isPrimitive nil
extraTerminals nil
propMapping nil
termMapping nil
termOrder nil
componentName nil
excludeParameters nil
arrayParameters nil
stringParameters nil
referenceParameters nil
enumParameters nil
instParameters nil
otherParameters nil
netlistProcedure nil
)
cdfId->simInfo->auCdl = '( nil
dollarEqualParams nil
dollarParams nil
modelName ""
namePrefix ""
propMapping nil
termOrder nil
componentName nil
instParameters nil
otherParameters nil
netlistProcedure nil
)
cdfId->simInfo->auLvs = '( nil
namePrefix ""
permuteRule ""
propMapping nil
deviceTerminals ""
termOrder nil
componentName nil
instParameters nil
otherParameters nil
netlistProcedure nil
)
cdfId->simInfo->hspiceD = '( nil
optParamExprList nil
propMapping nil
termMapping nil
termOrder nil
namePrefix ""
componentName nil
instParameters nil
otherParameters nil
netlistProcedure nil
)
cdfId->simInfo->spectre = '( nil
modelParamExprList nil
optParamExprList nil
opParamExprList nil
stringParameters nil
propMapping nil
termMapping nil
termOrder nil
componentName nil
instParameters nil
otherParameters nil
netlistProcedure nil
)

;;; Properties
cdfId->formInitProc = ""
cdfId->doneProc = ""
cdfId->buttonFieldWidth = 340
cdfId->fieldHeight = 35
cdfId->fieldWidth = 350
cdfId->promptWidth = 175
cdfId->instNameType = "schematic"
cdfId->instDisplayMode = "cellName"
cdfId->netNameType = "schematic"
cdfId->termSimType = "DC"
cdfId->termDisplayMode = "none"
cdfId->paramSimType = "DC"
cdfId->paramEvaluate = "t nil nil nil nil"
cdfId->paramDisplayMode = "parameter"
cdfId->paramLabelSet = "w l Fingers"
cdfSaveCDF( cdfId )
)
 
Paul Shepherd wrote, on 12/30/10 17:29:
Thanks Andrew, here is the complete output:
Paul,

I can't see any good reason why this should happen. I think I'd need to see the
pcell too, and know exactly what version you're using, and so on.

Regards,

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top