Turning a 4 terminal MOSFET into a 3 terminal

Discussion in 'Cadence' started by Jake, Jul 2, 2010.

  1. Jake

    Jake Guest

    Hello,

    In my design, in all of the various devices, the bulk node is tied to
    the supply, and I'd like to, instead of using the PDK's 4 terminal
    devices, use a hacked up version of the 3 terminal device that's
    located in the analogLib library. So I tried copying that symbol over
    to a different library, and then associating the CDF of the 4 terminal
    device over to the 3 terminal symbol. Of course, I then have to
    change how the netlisting works in the various tools (Spectre, et
    al.). What is the syntax for always tying the bulk node to a global
    value (gnd!, vdd!) via the CDF?

    Thanks,
    Jake
     
    Jake, Jul 2, 2010
    #1
  2. Jake wrote, on 07/02/10 18:15:
    Hi Jake,

    Why don't you make the three terminal device have an inherited connection for
    the fourth terminal. If you leave it alone, it will be global, but this gives
    you the ability to override it with a netSet if needed?

    If you look at nmos (say) in analogLib, and then look in the spectre view,
    you'll see there's a fourth terminal "B" which has a netExpression on it to
    define the property name and default value for the terminal connection.

    The spectre simInfo in the CDF for nmos will show you it netlisting as D G S B
    just as it does for a four terminal device.

    Best Regards,

    Andrew.
     
    Andrew Beckett, Jul 12, 2010
    #2
  3. Jake

    Jake Guest

    Hi Andrew,

    So I'm looking at the CDF for the 3 terminal nmos that is located in
    analogLib. I see that the bulk node is tied to the source node
    through inheritance. This is close to what I want, but instead, I'd
    always like the bulk of the nmos to be tied to GND and the bulk of the
    pmos to be tied to VDD. In the example of the nmos from analogLib, it
    looks like there is a parameter "bn", which I assume just stands for
    bulk node. Would I replace the S that is listed in that field with
    GND for my own device?

    Thanks,
    Jake
     
    Jake, Jul 13, 2010
    #3
  4. Jake wrote, on 07/13/10 13:34:
    Hi Jake,

    I guess you're looking at the spectreS, hspiceS (and maybe auCdl) simInfo
    entries in the CDF. Instead, take a look at the spectre and hspiceD simInfo. The
    spectreS and hspiceS interfaces are obsolete (end-of-lifed) in IC5141, and no
    longer exist in IC61X.

    These (the spectre/hspiceD simInfo) list "D G S B" as the terminal order. If you
    look at the spectre view or hspiceD view, you'll see that there's a B pin. If
    you select that pin and look at the properties, you'll see it has a Net
    Expression (as I said earlier) with:
    Property Name: bulk_n
    Default Net: gnd!

    If you want this to work with auCdl too, make the auCdl view a copy of the
    spectre or hspiceD view, and change the termOrder in the auCdl simInfo to be "D
    G S B".

    The "bn" property (and "progn(bn)" in the termOrder) is a hangover from an older
    (and now obsolete) way of doing terminal inheritance.

    Best Regards,

    Andrew.
     
    Andrew Beckett, Jul 13, 2010
    #4
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.