Turning a 4 terminal MOSFET into a 3 terminal

J

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 wrote, on 07/02/10 18:15:
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
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.
 
Jake wrote, on 07/13/10 13:34:
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
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.
 
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
 

Welcome to EDABoard.com

Sponsor

Back
Top