The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> Circuit Simulators >> How to simulate this circuit in Spectre??? https://designers-guide.org/forum/YaBB.pl?num=1240322183 Message started by Yutao Liu on Apr 21st, 2009, 6:56am |
Title: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 21st, 2009, 6:56am Hello everyone, I want to observe gm of a nmos with a constant drain current but different vds. The drain of nmos is connected with a current source and its source is connected to ground. How should I connect the gate of the nmos, when the drain current is constant but the vds is varying? This circuit can be simulated in Hspice with a negative feedback, making use of amplifier, as descried in UC Berkeley EE240. However, the circuit can't work at Spectre due to problem of convergence. Could anybody help? Thanks! |
Title: Re: How to simulate this circuit in Spectre??? Post by sheldon on Apr 21st, 2009, 7:41am Yutao, The testbench setup is discussed in the append http://www.cadence.com/Community/blogs/rf/archive/2008/08/09/simulating-mos-transistor-ft.aspx?postID=10665 The application is testing MOS transistor ft but the testbench can also be used for the application you are describing. Best Regards, Sheldon |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 22nd, 2009, 2:29am Thank you, sheldon. However, the picture in the website is not clear. could you send me a netlist of that testbench? Thanks a lot! |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 26th, 2009, 8:26pm sheldon wrote on Apr 21st, 2009, 7:41am:
hi, Sheldon. I have tried the testbench you recommended, however the result seems inconsistent with prediction. And I found that the drain current of the MOSFET did change when sweeping vds, which seems deviate my requirement obviously.Did you try that testbench? Why the drain current would change? And I change the testbench a little (as shown below), and the result seems more reasonable. Is my testbench feasible to simulate what I want? What's your opinion? Thanks! |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 27th, 2009, 3:35am Yutao Liu wrote on Apr 26th, 2009, 8:26pm:
How is your result reasonable ? :-* Instance "G0" which is VCCS has no meaning at all because control voltage of "G0" is always zero. And both "I0" and "V3" also have no meaning at all. Your circuit is no more than NMOS FET where Source is ground, Drain is 1.0V and Gate is opened. Previously you said "I'm a student for analog/RF circuit design". :D http://www.designers-guide.org/Forum/YaBB.pl?num=1235705814/6#6 What on earth are you learning ? Are you surely learning analog/RF circuit design ? :-? What you want to do is setting Gate voltage automatically to give target value as Source current at Vds=constant ? If so, remove "I0" and replace "G0" with combinations of ideal OP-Amp, CCVS controled by current flowing through "V3" and reference voltage. I think test bench which sheldon showed also can work for this purpose. Maybe CCCS is used in this test bench. http://www.cadence.com/Community/blogs/rf/archive/2008/08/09/simulating-mos-transistor-ft.aspx?postID=10665 However I think current monitor should be inserted to drain(collector) not source(emitter). |
Title: Re: How to simulate this circuit in Spectre??? Post by subgold on Apr 27th, 2009, 1:38pm pancho_hideboo wrote on Apr 27th, 2009, 3:35am:
i think what yutao wants is not setting Gate voltage automatically to give target value as Source current at Vds=constant , but setting Vds to automatically give target Vgs at Ids=constant . i think the straightforward way is to connect source to ground, drain to a constant idc, put the drain voltage and a ref voltage to the inputs of an ideal opamp, connect the opamp output to the gate. |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 27th, 2009, 6:56pm subgold wrote on Apr 27th, 2009, 1:38pm:
Thanks for your reply! I am really a student studying analog/RF design, although I am not so familiar with analog design as you. What subgold said above is what i want to obtain. I want to use gm/Id methodology to design my circuit. And according to the notes from EE240 UC berkeley, I have to choose a appropriate channel length of MOS for a given gain first. So, I want to know the intrinsic gain(gm*ro) of MOS with different channel length when sweeping vds under a constant Ids. I had tried the method mentioned by subgold in Spectre for several times, and I used VCVS as the ideal opamp, with the gain of 100. However, the simulator warned that Vgs and Vds exceeded the breakdown voltage, and the simulation result shown below. Is the gain of the ideal opamp set too high? Or is there any mistakes I have made? |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 27th, 2009, 9:43pm Yutao Liu wrote on Apr 27th, 2009, 6:56pm:
Yutao Liu wrote on Apr 27th, 2009, 6:56pm:
You don't seem to understand DC characteristics of MOSFET. Drain current of MOSFET, Ids is dependent on both Vgs and Vds. So Ids=Ids(Vgs, Vds). What you want to do is setting gate bias Vgs automatically for swept Vds under keeping Ids as constant value. Testbench which sheldon showed is attractive because it doesn't require ideal-opamp. Yutao Liu wrote on Apr 27th, 2009, 6:56pm:
|
Title: Re: How to simulate this circuit in Spectre??? Post by subgold on Apr 28th, 2009, 3:01am Yutao Liu wrote on Apr 27th, 2009, 6:56pm:
somehow i didn't notice sheldon's post at the first place, now i see it, and i agree with pancho_hideboo that it is quite simple and nice. you may also try that out. anyway, i dont see why the bench using opamp feedback fails. 100 gain is not high at all (or did you mean 100db?) please post ur schematic and result waveforms (not only the gm curve you posted) so that others can check if there is any mistake. |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 28th, 2009, 7:08am subgold wrote on Apr 28th, 2009, 3:01am:
Hi, subgold and pancho_hideboo, thanks for your suggestion and patient. Both of you really have taught me a lot. I tried the testbench Sheldon introduced, both schematic and result waveforms are shown below. I am sure that the schematic is totally the same as that in http://www.cadence.com/Community/blogs/rf/archive/2008/07/16/measuring-transistor-ft.aspx?postID=10226 And I do the DC analysis with sweeping vds from 0 to 3.2 V, plotting the operation points as shown below. However, I doubt the result because the drain current linearly increase in the range between 0 and 800pA, while I want the drain current keeps constant. Did I do something wrong during simulating? Thank you so much!!! Best regards! Yutao |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 28th, 2009, 8:10am Yutao Liu wrote on Apr 28th, 2009, 7:08am:
Show me Id-Vds characteristics of "n18" with L and W of your setting for various Vgs. For example, Vgs ; start=0.0, stop=0.8, step=0.1 Vds ; start=0.0, stop=3.2, step=0.01 |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 28th, 2009, 7:25pm pancho_hideboo wrote on Apr 28th, 2009, 8:10am:
hi pancho_hideboo, following is the id-Vds characteristics of "n18". |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 28th, 2009, 7:52pm Yutao Liu wrote on Apr 28th, 2009, 7:25pm:
Increase W. Show me your netlists with model file of "n18". |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 28th, 2009, 8:24pm pancho_hideboo wrote on Apr 28th, 2009, 7:52pm:
thank you so much, pancho_hideboo! I also tried Ids=40uA and increase the W, but the Ids current still increases linearly. attach is the netlists and the model of n18. Thanks for your help again. |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 28th, 2009, 9:09pm Yutao Liu wrote on Apr 28th, 2009, 8:24pm:
As I said to you repeatedly, no one except for you knows your specific situations. What sizes on earth did you use as W and L for "n18" ? >:( Show me complete netlists. e.g. "input.scs" if you use Cadence Spectre from ADE. |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 29th, 2009, 1:10am pancho_hideboo wrote on Apr 28th, 2009, 9:09pm:
I am sorry for my mistake. :-[ input.rar is the input.scs file for my simulation. And "op2 .scs" file listed inside is used to store the operating points while sweeping vds. There is only one statement in "op2.scs", which is "save NM1:oppoint". I hope information attached this time would be complete. best regards |
Title: Re: How to simulate this circuit in Spectre??? Post by subgold on Apr 29th, 2009, 1:30am Yutao Liu wrote on Apr 29th, 2009, 12:33am:
first thing to try, do not define w and l as variable. specify them directly in the transistor property in the schematic. |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 29th, 2009, 1:38am Yutao Liu wrote on Apr 29th, 2009, 1:10am:
Are they all zero ? Quote:
|
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 29th, 2009, 1:53am subgold wrote on Apr 29th, 2009, 1:30am:
Thanks for subgold's suggestion. I did this change before I change the w and l as variable. But the result did not change. And when I run the simulation, the simulator warned me that "Vgs has exceeded the oxide breakdown voltage" Dose this warning matter? If so, how should I change my simulation? |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 29th, 2009, 2:07am pancho_hideboo wrote on Apr 29th, 2009, 1:38am:
Oh, god! i forget to show you those datum again! Please forgive me! Yes, those datum are all zero. Please try this model file (attached) where all those datum have been set zero. Thanks a lot. |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 29th, 2009, 4:31am Attached is a method I suggested in http://www.designers-guide.org/Forum/YaBB.pl?num=1240322183/4#4 Your NMOS FET is connected to nodes, "d", "g", "s" and "GND". From practical point of view, a method subgold suggested is more good because input signals of OPAmp is very small in my method. Indeed I don't use any of the followings. - Testbench which sheldon showed - my suggestion - subgold suggestion I use Agilent ADSsim(RFDE) for device characterizations. Here I invoke optimizer with parametric sweep. [Parametric Sweep of vds] [Optimization of vgs for target Ids under vds] [Final Analysis such as DCOP, SP, AC, Noise under seached bias conditions, vgs, vds, Ids] The followings are non parametric sweep case. http://www.designers-guide.org/Forum/YaBB.pl?num=1212376329/3#3 http://www.designers-guide.org/Forum/YaBB.pl?num=1203057659/7#7 As you said to us, testbench which sheldon showed don't seem to work correctly. Later I will investigate causes. |
Title: Re: How to simulate this circuit in Spectre??? Post by subgold on Apr 29th, 2009, 6:36am Yutao Liu wrote on Apr 29th, 2009, 1:53am:
i think the warning is exactly the problem. since your netlist looks fine, i think it is purely a simulator related problem, because everyting is ideal here, the cccs is also modeled as an ideal current source, which has very high impedance (seems to be 10^12ohm). therefore, with the current of the ideal current source, your gate voltage goes crazy and the correct dc operation points are never obtained. try to clamp a diode there, with anode connected to the gate, and cathode connected to the max. allowed voltage (vdd), and see if it works. |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 29th, 2009, 9:19pm This is a method which subgold suggested. Here I used Cadence Spectre. |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on Apr 29th, 2009, 10:07pm This is a result of Agilent ADSsim. |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on Apr 30th, 2009, 1:46am pancho_hideboo wrote on Apr 29th, 2009, 9:19pm:
Thanks for pancho_hideboo's reply. The simulation results exactly meet what i want. But I don't quite understand why the opamp in ahdlLib is able to achieve the result while the vcvs in analogLib fails, since both of them are used to make the drain voltage keep tracked with "Vds" while sweeping, and to stabilize the gate voltage? What 's the difference between them? Best regards! |
Title: Re: How to simulate this circuit in Spectre??? Post by sheldon on Apr 30th, 2009, 5:31am Yutao, If you want measure gm, why don't you limit the sweep range to bias conditions where the device is in saturation? You are forcing the Vds to be perfectly 0, vds=0, at the same time you are forcing the transistor to conduct a finite current, ibias=40u. This condition is not physical so the model and the testbench react non-physically. If you sweep the Vds from 3.2V to 0V, you will see that the Vgs becomes large as the Vds approaches 0 and that the curve starts to break up at about Vd,sat. The op-amp model clamps at the supply voltage so that the results look better. Also you will need to use a different testbench to measure rds when Vds < Vds,sat. Best Regards, Sheldon |
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on May 1st, 2009, 4:51am A method which subgold suggested is unreasonable for low Vds region. A method which my suggested is more reasonable for low Vds region. Indeed I don't use any of the followings. - Testbench which sheldon showed - my suggestion - subgold suggestion I use Agilent ADSsim(RFDE) for device characterizations. Here I invoke optimizer with parametric sweep. Attached figure is an example I'm using for device characterization, here I use SP-Analysis as FinalAnalysis of Optimizer. [Parametric Sweep of Idrain ; Sweep2] [Parametric Sweep of Vds ; Sweep1] [Optimization of Vgs for target Idrain under Vds ; Optim1 with DC1] [SP Analysis as Final Analysis under seached bias conditions, Vgs, Vds, Idrain ; SP1] This result is also reasonable for low Vds region. |
Title: Re: How to simulate this circuit in Spectre??? Post by sheldon on May 1st, 2009, 6:12am Yutao, I am curious about your original testbench. I was looking at the EE240 website lecture on MOS transistors and found the references on these pages. Was this your original testbench the circuit described on page 14? https://www.eecs.berkeley.edu/~boser/courses/240_2004_sp/index.html Best Regards, Sheldon |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on May 1st, 2009, 6:47am sheldon wrote on May 1st, 2009, 6:12am:
Sheldon, Not on page 14, but on page 33 instead. And my reference is http://bwrc.eecs.berkeley.edu/classes/icdesign/ee240_s09/lectures/Lecture04_MOS_Small_Sig_2up.pdf on page 10. I used the vcvs as the feedback opamp in spectre, and I failed. I think the testbench that pancho_hideboo provided is feasible and the result looks the same as that on the notes. But I still don't understand what difference between opamp in ahdlLib and vcvs in analogLib makes the simulation result different, even if I read your reply. Could you explain more clearly, please? Best regards, Yutao |
Title: Re: How to simulate this circuit in Spectre??? Post by Yutao Liu on May 1st, 2009, 7:05am pancho_hideboo wrote on Apr 29th, 2009, 9:19pm:
Pancho_hideboo, thanks for your work. I think your testbench is feasible and the result looks reliable. I have tried your testbench in spectre, the result looks the same as yours basically, but discontinuity exist when vds is in low region, as shown below. My schematic and the setting of the opamp is totally the same as you described above. Do you have any idea what makes the discontinuity? Thanks. Best regards yutao
|
Title: Re: How to simulate this circuit in Spectre??? Post by pancho_hideboo on May 1st, 2009, 8:14am Yutao Liu wrote on Apr 30th, 2009, 1:46am:
Apparently you were trying to flow Idrain=200uA without confirming Id-Vds characteristics of "n18" with L=0.35um and W=1.0um. It is very common rule to confirm Id-Vds characteristics of DUT before forced biasing. Warning you saw, "Vgs has exceeded the oxide breakdown voltage" was quite natural result of your thoughtlessness. If your trial was actual measurements, MOSFET might be broken. Learn measurements using actual instruments. Not "EDA Tool Play". A method which subgold suggested is unreasonable for low Vds region. Compare results of (1) with results of (2) and (3). (1) subgold suggestion(Id is forced, Vds is monitored) (2) my suggestion(Vds is forced, Id is monitored) (3) Bias condition searching using Optimizer of Agilent ADSsim(Vds is forced, Id is monitored) Yutao Liu wrote on Apr 30th, 2009, 1:46am:
Yutao Liu wrote on May 1st, 2009, 7:05am:
this result is quite natural in condition of "Id is forced, Vds is monitored". |
Title: Re: How to simulate this circuit in Spectre??? Post by sheldon on May 1st, 2009, 8:55am Yutao, If you look at the testbenches the sweep is 0.2V to 3.5V. Again, you can not force a constant current through a transistor when Vds=0. Also the block in the Berkeley testbench is the diffamp from ahdlLib, set the gain=100 as shown in the attachment. Hope this helps, Sheldon |
Title: Re: How to simulate this circuit in Spectre??? Post by sheldon on May 1st, 2009, 8:56am oops, the testbench |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |