• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Why gm is not zero even when iDS is a constant DC current...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 126
  • Views 17877
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why gm is not zero even when iDS is a constant DC current?

BaaB
BaaB over 9 years ago

I am trying to plot transconductance gm of M0 in the picture below. However, what I am supprised here is why gm is not zero when iDS is a constant DC current (1uA).

gm = diDS/dvGS

So according to this, gm should be zero when iDS is a constant.

As seen from the picture below, gm is not zero.

Could anyone explain why and how gm is calculated by the simulator?

Thank you.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    This is because gm is a parameter for the small signal model of the transistor - so effectively it's what the small signal dId/dVgs would be at that bias point. It's computed in a DC analysis (in your case you've swept the voltage, but it could just be a DC operating point). It would be completely useless if it was based on the actual change of current at a fixed bias point (since that would always be zero).

    This is pretty clear in numerous text books - I pulled one off the shelf at home (most of my electronics texts are in my work office) - Analog Integrated Circuit Design by David A. Johns, Ken Martin (Wiley, 1997, ISBN 0-471-14448-7) and in the first chapter on Integrated Circuit Devices and Modelling, section 1.2, MOS Transistors in the subsection headed Small-Signal Modelling in the Active Region it shows various alternative formulations based on the operating point, including a form that is dependent upon Id. So I suggest you read the literature on this. The point of knowing the gm is to know what the transconductance at a particular bias point would be if you were to apply a changing (small signal) current through the drain, or to apply a varying Vgs and then the current through the drain varies too. It's a number to feed into the small signal model of the transistor, not something that is measured from a large signal sweep that you were doing (essentially you're plotting the small-signal gm found at each discrete value of the DC sweep).

    There is some coverage of this in the Virtuoso® Simulator Components and Device Models Reference manual in the documentation, but I think a basic book talking about how transistors work covers this more simply (bear in mind that most texts use a much simplified model compared with real life modern transistor models which are highly complex).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 9 years ago

    Thank you very much for the help.
    I think I misunderstood how transconductance is calculated by DC analysis.
    I thought that firstly it would plot large signal iD = f(vGS, vDS, vBS) and then derivative the curve, evaluate the value of the derivatived function at operating point to get gm.
    For transconductance formula, I think this is what you referred to.
    I am familiar with these formulations too.

    I would like to see the formula for gm in Virtuoso® Simulator Components and Device Models Reference. (cdnshelp)
    I tried to find it there but couldn't locate it. There is a transconductance parameter formula but it is a totally different parameter.
    If possible, could you tell me where in the manual should I find it?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    I had a quick look (it's the weekend so I didn't have time to spend too long looking at it) - there isn't much on exactly how gm is formulated. In the operating point parameters section of bsim4, for example, it references equation 12-32 (in the chapter on common mosfet equations) which just shows the derivative equation. Precisely how it's computed is probably dependent upon the model implementation, but it's equivalent to the derivative. You could potentially download the bsim4 source code (if it's bsim4) from Berkeley and take a look (I've looked at the code in the past, but I'll leave this as an exercise for you - I can't promise that the code is identical to our implementation because it's probably been optimised). I'm really not sure it matters that much though. The point is, it gives you the number that you can use in your calculations.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • awesome1
    awesome1 over 9 years ago

    Your test circuit is not correct.  

    As others have said, the transconductance (gm) is a small-signal parameter that is extracted at any operating point.

    gm should not be zero under constant DC bias--in fact, DC bias is needed to extract gm.

    You should do a small-signal extraction of parameters. There are several ways to do that.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 9 years ago

    Thanks.
    I have just download the latest release BSIM4.8.0 from the site. However, the code is hard to understand as there is almost no comments there.
    For gm, I see only one related info from "b4.c" file:
    OP( "gm", BSIM4_GM, IF_REAL, "Gm")
    In the file "b4acld.c" also has "gmi" which is intrinsic transconductance.
    I think that it is same as "gm" but I am not sure.

    if (here->BSIM4acnqsMod)
    { T0 = omega * here->BSIM4taunet;
    T1 = T0 * T0;
    T2 = 1.0 / (1.0 + T1);
    T3 = T0 * T2;

    gmr = here->BSIM4gm * T2;
    gmbsr = here->BSIM4gmbs * T2;
    gdsr = here->BSIM4gds * T2;

    gmi = -here->BSIM4gm * T3;
    gmbsi = -here->BSIM4gmbs * T3;
    gdsi = -here->BSIM4gds * T3;

    I am curious to know why DC analysis can calculate gm which is equal to did/dvgs by  another method (not derivative).
    Is there a name for this method?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    You're looking in the wrong place. Look in b4ld.c and search for "Gm" (particularly "Gm ="). There are comments in here (not lots, but enough to give a clue). This also has some of the calculations of the derivatives too (it's far too much to work through all the details on a Saturday evening, especially when you really don't need to know this in order to design or to use a simulator...)

    The b4acld.c file is (I think, from a 30 second scan) simply setting up the data for the small signal model, not computing the small signal parameters. The b4ld.c is doing all the real calculations.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 9 years ago

    Could you help me with this if you know about this and when you have time?

    From b4ld.c file of latest BSIM4 version this is the code section for calculating gm:

    Ids = Idsa * T0;  

    Gm = T0 * dIdsa_dVg - Idsa * (dVdseff_dVg + T9 * dVASCBE_dVg) / VASCBE;
    Gds = T0 * dIdsa_dVd + Idsa * (1.0 - dVdseff_dVd - T9 * dVASCBE_dVd) / VASCBE;
    Gmb = T0 * dIdsa_dVb - Idsa* (dVdseff_dVb + T9 * dVASCBE_dVb) / VASCBE;


    tmp1 = Gds + Gm * dVgsteff_dVd;
    tmp2 = Gmb + Gm * dVgsteff_dVb;
    tmp3 = Gm;

    Gm = (Ids * dVdseff_dVg + Vdseff * tmp3) * dVgsteff_dVg;

    The first yellow line is Gm that is equal to derivative of Ids with respect to Vgs. I already checked and understood how to derive this result.

    However, I couldn't follow why Gm is calculated as the second yellow line?

    Where does this equation come from?

    Also, if I am not mistaken the dimensions are inconsistent here.

    The left hand side of the equation Gm has unit of current over voltage while the right hand side has unit of current.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    No, I will not have the time to sit and wade through Berkeley's BSIM code to answer this. Unfortunately I have enough real-world design/tool problems to worry about and can't allocate time to look at this. Please contact the Berkeley BSIM group (particularly since you're from a University) if you want more information about the specifics of their model implementation.

    Sorry if that's a bit blunt, but given my limited bandwidth (especially this month), I've already gone beyond what help I can afford to offer on this.

    Kindest Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • BaaB
    BaaB over 9 years ago
    Thank you. I appreciate your help. I am not particularly interested in this but as you may see in my other thread transconductance gm obtained from DC operating point and derivative are quite different.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information