The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> RF Simulators >> bdasim vs spectre https://designers-guide.org/forum/YaBB.pl?num=1264764783 Message started by Mayank on Jan 29th, 2010, 3:33am |
Title: bdasim vs spectre Post by Mayank on Jan 29th, 2010, 3:33am Hi, I am simulating a PLL for transient noise -- with verilogA model of white noise source & supply inductances. To my surprise, For the SAME NETLIST, Spectre is running much faster than BDA AFS. My Observations -- 1. Spectre is taking time-steps in a few hundreds of femto-seconds, while BDA in a few tens of femto-seconds....[ makes spectre around 10x faster --- yeah, i checked all settings are same -- SAME NETLIST ] 2. Transient results are matching from both spectre and bda, but bda is lagging behind. Wasn't BDA AFS supposed to be much faster than Spectre ?? Any Ideas as to why is this happening ? -- Mayank.. |
Title: Re: bdasim vs spectre Post by pancho_hideboo on Jan 29th, 2010, 3:47am Show me your verilogA model of white noise source. Generate white noise by combination of "analogLib/res" and "analogLib/vcvs" instead of your custom verilog-A module. |
Title: Re: bdasim vs spectre Post by Mayank on Jan 29th, 2010, 4:22am Here, the verilogA model goes like this :---- Code:
Will this cause it to become slow ?? -- Mayank. |
Title: Re: bdasim vs spectre Post by pancho_hideboo on Feb 1st, 2010, 2:57am Mayank wrote on Jan 29th, 2010, 4:22am:
Anyway generate white noise by combination of "analogLib/res" and "analogLib/vcvs" instead of your custom verilog-A module. |
Title: Re: bdasim vs spectre Post by rf-design on Feb 1st, 2010, 6:27pm A quick guess: Could be the accuracy setting being different interpreted in both simulators. Spectre have a general accuracy modifier with settings [conservative,moderate,liberal] which overwrite analog simulator settings. |
Title: Re: bdasim vs spectre Post by Mayank on Feb 1st, 2010, 9:18pm Thanx rf-design, Quote:
-- mayank. |
Title: Re: bdasim vs spectre Post by Andrew Beckett on Feb 2nd, 2010, 11:16am With the accuracy settings at default, and just overriding the errpreset to conservative, you are tightening reltol by a factor of 10 (see "spectre -h tran"). It's not guaranteed that AFS will be faster than spectre! It may be that spectre's VerilogA implementation is more robust (it will certainly be more mature) or maybe just more forgiving. To be fair though, your model is causing the simulator(s) to have to try to place a timestep precisely every 1/update_freq. You may be better off using bound_step instead as this gives the simulator more freedom - I assume you don't particularly need the updates to be precisely regular? Regards, Andrew. |
Title: Re: bdasim vs spectre Post by Mayank on Feb 3rd, 2010, 5:55am Hi, @ Andrew : Quote:
Quote:
i will try with bound_step, will have to read more of verilogA though. @ Pancho : Quote:
-- thanx, Mayank. |
Title: Re: bdasim vs spectre Post by pancho_hideboo on Feb 3rd, 2010, 6:06am Mayank wrote on Feb 3rd, 2010, 5:55am:
With your implementation of noise by Verilog-A, behavior between "update_per" could be different between simulators you use. Confirm PSD of your Verilog-A Module alone. Anyway generate white noise by combination of "analogLib/res" and "analogLib/vcvs" instead of your custom verilog-A module. If you use white noise by combination of "analogLib/res" and "analogLib/vcvs", you can control fmax for noise correctly by transient noise analysis parameter. Compare time domain waveform and PSD with your Verilog-A Module in normal transient analysis. |
Title: Re: bdasim vs spectre Post by michael chapman on Feb 4th, 2010, 7:04am Hello Mayank I am the applications engineering manager for BDA in Europe. Please feel free to contact BDA for support in cases like this. You will find the support numbers for your region on the BDA website under "contact us" at www.berkeley-da.com. If you are based in India, please contact the UK office. You should consistantly get 5X to 10X faster runtimes with AFS compared to Spectre for circuits > 1000 elements and with a reasonably long runtime. If you are not achieving this, I would be pleased to help out. I suspect, as others have pointed out, that the problem is the VerilogA code. I suggest using a resistor to generate the white noise instead of the VerilogA module. You will need to turn on transient noise analysis using noisefmax=50G option on the tran analysis line. Failing this, please do as Andrew suggests and use $bound_step to give the time-stepper algorithm more freedom. in response to user "rf-design"'s comment, setting errpreset=conservative in AFS has essentially the same effect in AFS as it does in Spectre. Regards Michael Chapman |
Title: Re: bdasim vs spectre Post by pancho_hideboo on Feb 4th, 2010, 7:19am michael chapman wrote on Feb 4th, 2010, 7:04am:
If we use $bound_step in addition to "@(timer(0, update_per)) begin ~ end", $bound_step rather limits freedom of simulator regarding the time-stepper algorithm. http://www.designers-guide.org/Forum/YaBB.pl?num=1260585749 |
Title: Re: bdasim vs spectre Post by michael chapman on Feb 4th, 2010, 7:55am Pancho, Thank you for the correction. Michael |
Title: Re: bdasim vs spectre Post by Mayank on Feb 4th, 2010, 9:53pm Hi all, @ Michael : Quote:
2 doubts :--- 1> When BDA generates the psf, it generates period jitter, period jitter_flicker, and period jitter_white under the pnoise-SummaryStatistics.Pnoise section. May i know what formula does bdasim use to compute these values ??? 2> Do the PPV values under the section pnoise-NoiseSourceIntensityNoiseSensitivityandProduct.pnoise indicate ISFs [ impulse sensitivity functions ] at these nodes ?? regards, Mayank. |
Title: Re: bdasim vs spectre Post by Andrew Beckett on Feb 5th, 2010, 2:15am My point about using $bound_step rather than @timer was that bound_step allows the simulator to place a timestep where it wants, provided that it is no further away than a certain amount of time - it limits the maxstep (dynamically) - at least that's what it does in spectre - Pancho Hideboo's reference was to another post which was discussing the behaviour in hspice. With @timer, the simulator has to solve precisely at the time specified - that can sometimes be more work for the simulator, and can result in more timesteps. (imagine that the simulator needed to take a timestep between two @timer events, for various reasons, then limiting the bound step would take fewer timesteps than having also to have an event at a regular timestep). Still, this is unlikely to make a massive difference with spectre, but maybe other simulators are more sensitive. You may also want to try APS. From MMSIM72, you can just use "spectre -aps" to run in APS mode - see http://www.cadence.com/products/cic/accelerated_parallel/pages/default.aspx. MMSIM72 has further performance improvements in APS, so if you're going to take a look, I'd advise using MMSIM72. Also, talk to local support (Cadence has customer support in India, of course). Regards, Andrew. |
Title: Re: bdasim vs spectre Post by pancho_hideboo on Feb 5th, 2010, 7:17am Mayank wrote on Feb 4th, 2010, 9:53pm:
What feature do you love in BDA's AFS ? Mayank wrote on Feb 4th, 2010, 9:53pm:
http://www.berkeley-da.com/prod/prod01_analog_fs_a.htm If not so, try to use it. You will get more speed up, although I feel BDA's AFS is very far faster than Cadence Spectre even in single threaded operation. Currently almost all vendor's simulators which are high price have multi-threaded capability. Even Agilent ADSsim have Multi-Threaded Harmonic Balance. http://www.designers-guide.org/Forum/YaBB.pl?num=1184691133 Also see the threads after the following. http://www.designers-guide.org/Forum/YaBB.pl?num=1183646486/5#5 |
Title: Re: bdasim vs spectre Post by pancho_hideboo on Feb 5th, 2010, 8:07am Andrew Beckett wrote on Feb 5th, 2010, 2:15am:
http://www.designers-guide.org/Forum/YaBB.pl?num=1260585749/5#5 Here I compared time step behavior of HSPICE and Cadence Spectre when "$bound_step" are used in addition to "@(timer)". |
Title: Re: bdasim vs spectre Post by michael chapman on Feb 5th, 2010, 8:47am Hi Mayank, You wrote :- Quote:
I don't understand this either. PSS does not converge (shooting method) until the tstab initial stabilization transient run is complete. Quote:
Please contact me directly and we can discuss. I suggest that you use nutbin output format when running PSS/PNoise. If you do this then you will get separate plots of phase noise (white) and phase noise (white + flicker). These outputs are not available in psfbin format. Use BDA's Wavecrave waveform tool to view BDA's nutbin format. Quote:
Yes, they do. Regards Michael |
Title: Re: bdasim vs spectre Post by Andrew Beckett on Feb 6th, 2010, 6:44am Pancho Hideboo, I understand the confusion now. I was talking about using bound_step instead of @timer, whereas you were talking about using it as well as @timer. If using it instead of, the simulator has more freedom. Regards, Andrew. |
Title: Re: bdasim vs spectre Post by Andrew Beckett on Feb 6th, 2010, 6:51am Andrew Beckett wrote on Feb 5th, 2010, 2:15am:
Had a bit of a brain blip earlier. That should have been spectre +aps not -aps. Regards, Andrew. |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |