Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Regarding Node capacitance in spectre

Status
Not open for further replies.

iamxo

Full Member level 4
Joined
Mar 22, 2006
Messages
225
Helped
16
Reputation
32
Reaction score
4
Trophy points
1,298
Location
Southeast Asia
Activity points
2,493
spectre progn

Hi, all.

In spectre, we can get the node capacitance of the circuit. But these node caps only include the gate caps, excluding the junction caps.

Does anybody know how to get the junction caps in spectre? i am not meaning just one transitor, I mean the node connected to every relevant transitor (especially to transistor source or drain).

Thanks ~~
 

add the relevant transistor capcacitors at a node.
Any advanced method?
 

isn't it part of the bsim model? you are then able to see those values when you do po or opt for the specific device.
 

Teddy said:
isn't it part of the bsim model? you are then able to see those values when you do po or opt for the specific device.

what you mention is the cap of only one mos. I want to know the node cap which may be connected to thousands of transistors.

Does spectre support this? Any good methods?
 

Spectre does not support this, I guess what you need to do is to add some skill code to it. It would give you a list of cells that you can operate on through a foreach code. A quick-and-dirty solution is found below, call with (jjxFindTermsOnNet (hiGetCurrentWindow)->cellView "SOMENETNAME")

Notice that it has some flaws:
1) if you have used the hierarchy editor the hierarchy is not necessarily defined by schematic (see function when pushing into subcells.
2) Iterated instances are reported as e.g. <9:0> in the list returned from the function. You will have to add another function to handle the list and break up into <9> ... <0> etc. Don't forget to do this for e.g. /I0<3:0>/M32<9:0> -> 40 transistors.
3) Split buses are not treated correctly. See the first member expression. If there are split buses in the schematic, the number of transistor will be over-estimated.

All of 1 to 3 can be solved quite "easily", one just have to give it some more time and see if it is needed or not for the current design you are simulating.

(defun jjxFindTermsOnNet (cell netName @optional
(termList nil)
(hierString "") )
(let ( (netIds nil )
( LISTOFTRANSISTORS (list "pch_33" "nch_33") ) )

(setq netIds (setof x cell->nets (member netName x->sigNames)))

(foreach netId netIds
(foreach term netId->allInstTerms
(if (member term->inst->cellName LISTOFTRANSISTORS)
(progn

(printf "%s/%s/%s \n"
hierString
term->inst->name
term->name)
(setq termList
(append termList

(list
(strcat
hierString "/"
term->inst->name "/"
term->name)))) )
(progn
(setq newCellId
(dbOpenCellViewByType
term->inst->libName
term->inst->cellName
"schematic" "" "r"))
;; Should not necessarily be the schematic view.
;; Pick up from hierarchy editor !!!!
(if newCellId
(setq termList
(append
termList
(jjxFindTermsOnNet
newCellId
term->name
nil
(strcat hierString "/"
term->inst->name ))))))))))
termList )
 

I am sorry but I donot really catch your idea clearly.
it confused me, :cry:
However, thank you for your kind help.
 

Hi

Connect port with large impedance (50MOhm for ex) to interesting node.
Start SP at interesting freq. Then Cnode=imag(Y11)/2/pi/freq
You can connect port via large capacitance also.

Regards.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top