Jake
Guest
Fri Jul 02, 2010 8:15 pm
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
Andrew Beckett
Guest
Mon Jul 12, 2010 5:35 pm
Jake wrote, on 07/02/10 18:15:
Quote:
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.
Andrew Beckett
Guest
Tue Jul 13, 2010 3:07 pm
Jake wrote, on 07/13/10 13:34:
Quote:
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.
Jake
Guest
Tue Jul 13, 2010 3:34 pm
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