The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> Circuit Simulators >> How can I do this with Spectre? https://designers-guide.org/forum/YaBB.pl?num=1079491622 Message started by sutapanaki on Mar 16th, 2004, 6:47pm |
Title: How can I do this with Spectre? Post by sutapanaki on Mar 16th, 2004, 6:47pm Hi, I have to issues with IC5. In the order of priority: 1)Can someone please explain how to PLOT transistor intrinsic parameters (like gm, gds, Csb,...) using Cadence Spectre - Analog Artist? I assume that since the tool calculates these things for the operating point it should also be able to plot them as a function of time or temperature or something else. For example, if a circuit exhibits non-linear behavior, it changes operating point and hence the values of the small signal parameters (gm, gds...)also change as the circuit functions. I'd like to be able to plot these things. I have used before Eldo and there it is possible to plot basically everything you can print, especially the parameters mentioned above. I assume there should be such a possibility with Analog artist as well. 2) As you have already guessed I'm a bit new to IC5. Actually I use it on Red Hat 8.0 with 24 bit color scheme. First I tried at work IC 5.0 and what I noticed was that in the waveform viewer the cursors A & B were not following the mouse movements at all. Then it was upgraded to IC 5.033 and there the cursors behaved better but still their movement was kind of slower than the mouse - they didn't track quite well. Is this a known problem or it is just my setup? Is there anyway to fix it? I didn't notice such a problem if I use wavescan, but I'm not used to it. What is the difference between wavescan and the normal waveform viewer? Thanks in advance |
Title: Re: How can I do this with Spectre? Post by Andrew Beckett on Mar 16th, 2004, 9:35pm This post looks exactly the same as a question on comp.cad.cadence a few days ago, which I answered a couple of days ago. To quote that: Quote:
That post was acknowledged by somebody called sminchev@yahoo.com (Svilen) - perhaps that wasn't you but somebody posting on your behalf? |
Title: Re: How can I do this with Spectre? Post by sutapanaki on Mar 17th, 2004, 10:57am No, it was me. I just posted here and there, since I was desperate to find a solution. Everyone who might be interested in this matter can go to the above news group for a good and helpful answer. |
Title: Re: How can I do this with Spectre? Post by Rajarshi Paul on Nov 1st, 2004, 9:23am U can use the calculator of the Affirma Circuit Design Env and then select "opt". This allows you to choose the transistor whose gm other parameters you want to know and then you can find the value. |
Title: Re: How can I do this with Spectre? Post by Marc Murphy on Sep 7th, 2005, 9:27am Hi guys, I know how to plot the operating point parameters with HSPICE (LV, LX in Ch4 of the manual), and have tried the instructions posted here. All I get when I try to plot is a single value. For instance, I do a DC sweep of Vgs and want to observe how gm changes. The save command added to my netlist (input.scs) doesn't seem to make any difference. :( Are there any other things that may prevent multiple operating point values from being plotted? If I run a parametric sweep and plot OP("/M0" "vth"), this will work, but its slow and I am under the impression that you can save all the operating points and plot them when a DC sweep is performed. |
Title: Re: How can I do this with Spectre? Post by mwmurphy on Sep 7th, 2005, 9:52am One other point which might matter is that my MOSFET models actually encapsulate a MOSFET model plus diodes. If I try to do a component parameter sweep with l (the length), it tells me that 'l' is not a valid parameter. Anyhow, I suppose you can set the length as a design variable and sweep that. The real problem is that the tool doesn't seem to save multiple operating points. Here is the save.scs file I include (via the definition files blank in Analog Artist): save M3:all M0:all And the simulator reports this: Warning from spectre during initial setup. `m3' is not a device or subcircuit instance name. Ignoring invalid item `m3:all' in save statement. `m0' is not a device or subcircuit instance name. Ignoring invalid item `m0:all' in save statement. If it helps, here is the Spectre netlist I am using: // Generated for: spectre // Generated on: Sep 7 13:21:22 2005 // Design library name: avlsi // Design cell name: char_mos // Design view name: schematic simulator lang=spectre global 0 include "models" include "/export/home/mmurp/cmos90nm/save.scs" parameters ln=2*0.1 // Library name: avlsi // Cell name: char_mos // View name: schematic M3 (net015 net020 0 0) psvt w=28*0.12 l=2*0.1 nfing=1 mult=1 srcefirst=1 \ mismatch=1 V4 (0 net020) vsource dc=330.0m type=dc V5 (0 net015) vsource dc=100.0m type=dc V1 (net1 0) vsource dc=380.0m type=dc V0 (net8 0) vsource dc=100.0m type=dc M0 (net8 net1 0 0) nsvt w=12*0.12 l=ln nfing=1 mult=1 srcefirst=1 \ mismatch=1 simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \ tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \ digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \ sensfile="../psf/sens.output" dcOp dc write="spectre.dc" save=all print=yes check=yes maxiters=150 \ maxsteps=10000 annotate=status dcOpInfo info what=oppoint where=rawfile dc dc param=ln start=0.1 stop=2 save=all print=yes check=yes \ oppoint=rawfile maxiters=150 maxsteps=10000 annotate=status modelParameter info what=models where=rawfile element info what=inst where=rawfile outputParameter info what=output where=rawfile designParamVals info what=parameters where=rawfile saveOptions options save=allpub subcktprobelvl=2 |
Title: Re: How can I do this with Spectre? Post by Andrew Beckett on Sep 7th, 2005, 4:12pm Marc, If the model is not an inline subckt, you would need to do: save M3.Mx:all M0.Mx:all where Mx is the instance name of the mosfet within the subckt model (the "encapsulated" model that you are talking about). That's why you're getting the warnings... it doesn't know which primitive device you're talking about. Andrew. |
Title: Re: How can I do this with Spectre? Post by Marc Murphy on Sep 7th, 2005, 4:38pm Thanks Andrew! I thought I had tried that but my mind is a tad burnt right now. I'll check it out again tomorrow. I've been wondering about the parameter plotting for a little while and usually just turned to HSPICE. That's not so efficient though! Cheers, Marc |
Title: Re: How can I do this with Spectre? Post by Marc Murphy on Sep 7th, 2005, 4:41pm One other question...it seems like a pain to put in save commands for each MOSFET. I noticed there is a save all option if you go to analog artist's analysis menu->dc->options. Is this the same thing? I guess I'll find out soon enough. |
Title: Re: How can I do this with Spectre? Post by Andrew Beckett on Sep 7th, 2005, 10:18pm It's not the same thing. What is needed is the ability to use wildcards and hierarchical scoping in the save command - there's an enhancement request for this - hopefully it will get added at some point. For now you have to do a save for each device. Most of the time you only want to look at gm etc for a small number of devices (during a dc sweep or transient anyway). Another approach is to use a transient analysis and then use the infotimes option on the transient to specify times during the transient to do an info analysis to save the operating point. These can then be backannotated to the schematic in the same way as a normal DC operating point. Regards, Andrew. |
Title: Re: How can I do this with Spectre? Post by mwmurphy on Sep 8th, 2005, 11:24am Hi again, I used M0.m1:all to get to the mosfet, and then to plot, I used the calculator, and enter OP("/M0" "vth") but it still only plots one value as I sweep the transistor length. So, this isn't good. BUT, I can go in the results browser, go to the psf stuff, and plot vth for M1 and it looks OK. So, for completeness, I'd like to figure out why the first method I described doesn't work if anyone has a clue. Thanks!!! |
Title: Re: How can I do this with Spectre? Post by Andrew Beckett on Sep 8th, 2005, 3:02pm Marc, Why would you expect OP("/M0" "vth") to work when: a) the results are not under M0, but M0.m1 - how would ADE be expected to know that there's an extra level of hierarchy in the results, and know what the component name is? b) you're using the OP function (which is for DC operating point results, not for DC sweeps)? Using the results browser is the correct way to get this. It can also be done with pv("M0.m1" "vth" ?result 'dc ) (I think... I've not tested, and so this is a bit of a guess). Regards, Andrew. |
Title: Re: How can I do this with Spectre? Post by mwmurphy on Sep 8th, 2005, 3:25pm I see. I read to use the OP thing somewhere else on the web. I guess not everything on the Internet is true. ;) Anyhow, thanks!!! :) |
Title: Re: How can I do this with Spectre? Post by jbdavid on Oct 17th, 2005, 2:00am if you use the "inline subckt" to define that model, It would be true again.. (I just did this for several subcircuits my designers use.. ) Jonathan |
Title: Re: How can I do this with Spectre? Post by zubazdo on Jun 1st, 2010, 3:29am Hi, I am doing transient analysis for different corners altogether 30. I am using multiple infotimes to get operation point of mosfets at different time instants. The thing is that it doesn't print the operation point, instead just gives OPT("/I0/I73/MN11" "??") = ? The other strange thing is that it doesn't ask the time of infotimes. Can anybody help? Thanks in advance |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |