Almost every design-kit that I have had the "pleasure" of working with has
had the limitation of not being able to annotate DC levels at some device
pins. Especially the transistors where some sort of sub-curcuit structure
often is used to include various parasitics.
Now then .. what would be the clever way (read minimum effort) to solve this
??
Best,
Jan
You have modify your cell CDF if you want to annotate
DC OP information to a cell which is modelled as a subcircuit
use the SKILL command
cdfDump( t_libName
t_fileName
[?cellName t_cellName]
[?level s_level]
[?edit b_edit]
)
to dump your cell CDF in a file.
and if modified use
load( t_fileName )
to load it again.
Depending on your simulator modify your CDF this way
e.g. for spectre direct and assumed 'mcore' is the core
transistor of your subcircuit.
cdfId->simInfo->spectre = '( nil
componentName nmos_rf
propMapping nil
namePrefix ""
otherParameters (model)
instParameters (nr)
termOrder (D G S B)
termMapping (nil D \:d G \:g S \:s B \:b)
opParamExprList (
("cdg" "OP(mappedRoot(\".mcore\") \"cdg\")")
("cgb" "OP(mappedRoot(\".mcore\") \"cgb\")")
("ids" "OP(mappedRoot(\".mcore\") \"ids\")")
("vgs" "OP(mappedRoot(\".mcore\") \"vgs\")")
("vds" "OP(mappedRoot(\".mcore\") \"vds\")")
("vbs" "OP(mappedRoot(\".mcore\") \"vbs\")")
("vth" "OP(mappedRoot(\".mcore\") \"vth\")")
("vdsat" "OP(mappedRoot(\".mcore\") \"vdsat\")")
("gm" "OP(mappedRoot(\".mcore\") \"gm\")")
("gds" "OP(mappedRoot(\".mcore\") \"gds\")")
("gmbs" "OP(mappedRoot(\".mcore\") \"gmbs\")")
("betaeff" "OP(mappedRoot(\".mcore\") \"betaeff\")")
("cjd" "OP(mappedRoot(\".mcore\") \"cjd\")")
("cjs" "OP(mappedRoot(\".mcore\") \"cjs\")")
("cgg" "OP(mappedRoot(\".mcore\") \"cgg\")")
("cgd" "OP(mappedRoot(\".mcore\") \"cgd\")")
("cgs" "OP(mappedRoot(\".mcore\") \"cgs\")")
("gmoverid" "OP(mappedRoot(\".mcore\") \"gmoverid\")")
("cbg" "OP(mappedRoot(\".mcore\") \"cbg\")")
("cdd" "OP(mappedRoot(\".mcore\") \"cdd\")")
("cds" "OP(mappedRoot(\".mcore\") \"cds\")")
("cdb" "OP(mappedRoot(\".mcore\") \"cds\")")
("csg" "OP(mappedRoot(\".mcore\") \"csg\")")
("csd" "OP(mappedRoot(\".mcore\") \"csd\")")
("css" "OP(mappedRoot(\".mcore\") \"css\")")
("csb" "OP(mappedRoot(\".mcore\") \"csb\")")
("pwr" "OP(mappedRoot(\".mcore\") \"pwr\")")
("cbd" "OP(mappedRoot(\".mcore\") \"cbd\")")
("cbs" "OP(mappedRoot(\".mcore\") \"cbs\")")
("cbb" "OP(mappedRoot(\".mcore\") \"cbb\")")
("ron" "OP(mappedRoot(\".mcore\") \"ron\")")
("id" "OP(mappedRoot(\".mcore\") \"id\")")
("ibulk" "OP(mappedRoot(\".mcore\") \"ibulk\")")
("reversed" "OP(mappedRoot(\".mcore\") \"reversed\")")
("region" "OP(mappedRoot(\".mcore\") \"region\")")
("type" "OP(mappedRoot(\".mcore\") \"type\")"))
)
;;; Properties
cdfId->formInitProc = "netSetFormInitProc"
cdfId->doneProc = "netSetDoneProc"
cdfId->buttonFieldWidth = 340
cdfId->fieldHeight = 35
cdfId->fieldWidth = 350
cdfId->promptWidth = 175
cdfId->paramLabelSet = "-model l w"
cdfId->opPointLabelSet = "id gm gds vdsat vds vth cgd rg"
cdfId->modelLabelSet = "vto kp gamma"
cdfSaveCDF( cdfId )
For the CDF prooerties the 'opPointLabelSet' defines the defaults.
BTW. this is explained in cdsdoc
Component Description Format User Guide,
Product Version 4.4.6
Appendix B,
Accessing Subcircuit Model Parameter and Operating Point Information
Regards Bernd
Thank you very much for your reply. I found the document you mentioned just
yesterday .. but Im sure that your reply will help me get through things
quicker .. thanks once again :-)
Best,
Jan
"Bernd Fischer" <bernd....@xignal.de> wrote in message
news:3E510F7F...@xignal.de...