Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Annotate DC problems with sub-circuit devices

164 views
Skip to first unread message

Jan Mikkelsen

unread,
Feb 17, 2003, 9:47:58 AM2/17/03
to
Hi,

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


Bernd Fischer

unread,
Feb 17, 2003, 11:36:15 AM2/17/03
to
Hi,

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

Jan Mikkelsen

unread,
Feb 18, 2003, 2:39:09 AM2/18/03
to
Hi 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...

0 new messages