D
NBSIM Transistor CDF SKILL Description
Dumping the CDF description of the nbsim cell in the analogLib library produces the following:
/****************************************************/
LIBRARY = "analogLib"
CELL = "nbsim"
/****************************************************/
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 "model"
?prompt "Model name"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('model)"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "bn"
?prompt "Bulk node connection"
?defValue "S"
?type "string"
?display "artParameterInToolDisplay('bn)"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "m"
?prompt "Multiplier"
?defValue "1"
?type "string"
?display "artParameterInToolDisplay('m)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "w"
?prompt "Width"
?units "lengthMetric"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('w)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "l"
?prompt "Length"
?units "lengthMetric"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('l)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "ad"
?prompt "Drain diffusion area"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('ad)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "as"
?prompt "Source diffusion area"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('as)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "pd"
?prompt "Drain diffusion periphery"
?units "lengthMetric"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('pd)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "ps"
?prompt "Source diffusion periphery"
?units "lengthMetric"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('ps)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "nrd"
?prompt "Drain diffusion res squares"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('nrd)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "nrs"
?prompt "Source diffusion res squares"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('nrs)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "ld"
?prompt "Drain diffusion length"
?units "lengthMetric"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('ld)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "ls"
?prompt "Source diffusion length"
?units "lengthMetric"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('ls)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "off"
?prompt "Device initially off"
?type "boolean"
?display "artParameterInToolDisplay('off)"
)
cdfCreateParam( cdfId
?name "Vds"
?prompt "Drain source initial voltage"
?units "voltage"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('Vds)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "Vgs"
?prompt "Gate source initial voltage"
?units "voltage"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('Vgs)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "Vbs"
?prompt "Bulk source initial voltage"
?units "voltage"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('Vbs)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "trise"
?prompt "Temp rise from ambient"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('trise)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "region"
?prompt "Estimated operating region"
?defValue "triode"
?choices '("off" "triode" "sat" "subth")
?type "cyclic"
?display "artParameterInToolDisplay('region)"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "rdc"
?prompt "Additional drain resistance"
?units "current"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('rdc)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "rsc"
?prompt "Additional source resistance"
?units "current"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('rsc)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "dtemp"
?prompt "Temperature difference"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('dtemp)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name "geo"
?prompt "Source/drain selector"
?defValue ""
?type "string"
?display "artParameterInToolDisplay('geo)"
?parseAsNumber "yes"
?parseAsCEL "yes"
)
;;; Simulator Information
cdfId->simInfo = list( nil )
cdfId->simInfo->auCdl = '( nil
netlistProcedure ansCdlCompPrim
instParameters (m L W)
componentName nbsim
termOrder (D G S progn(bn))
propMapping (nil L l W w)
namePrefix "M"
modelName "NM"
)
cdfId->simInfo->auLvs = '( nil
propMapping nil
netlistProcedure ansLvsCompPrim
instParameters (m l w)
componentName nbsim
termOrder (D G S progn(bn))
deviceTerminals "D G S B"
permuteRule "(p D S)"
namePrefix "Q"
)
cdfId->simInfo->cdsSpice = '( nil
netlistProcedure ansSpiceDevPrim
instParameters (m w l ad as pd ps nrd nrs ld ls off vds vgs vbs)
otherParameters (model bn)
componentName bsim
termOrder (D G S progn(bn))
propMapping (nil vds Vds vgs Vgs vbs Vbs)
namePrefix "S"
current port
dcSens t
acSens t
)
cdfId->simInfo->hspiceS = '( nil
netlistProcedure ansSpiceDevPrim
instParameters (l w ad as pd ps nrd nrs rdc rsc off Vds Vgs Vbs dtemp
geo m)
otherParameters (bn model)
componentName hnmos
termOrder (D G S progn(bn))
propMapping (nil vds Vds vgs Vgs vbs Vbs)
namePrefix "M"
current port
dcSens t
acSens t
)
cdfId->simInfo->spectre = '( nil
propMapping nil
otherParameters (bn model)
instParameters (w l as ad ps pd nrd nrs ld ls m trise
region)
termOrder (D G S progn(bn))
termMapping (nil D d G g S s B b)
)
cdfId->simInfo->spectreS = '( nil
propMapping nil
netlistProcedure ansSpectreSDevPrim
otherParameters (bn model region)
instParameters (w l as ad ps pd nrd nrs ld ls m trise)
termOrder (D G S progn(bn))
termMapping (nil D d G g S s B b)
namePrefix "S"
componentName bsim1
current port
)
;;; Properties
cdfId->formInitProc = ""
cdfId->doneProc = ""
cdfId->buttonFieldWidth = 340
cdfId->fieldHeight = 35
cdfId->fieldWidth = 350
cdfId->promptWidth = 175
cdfId->modelLabelSet = "vfb phi eta"
cdfId->opPointLabelSet = "id vgs vds"
cdfId->paramLabelSet = "-model l w"
cdfSaveCDF( cdfId )
)
Return to top