The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 16th, 2024, 9:04am
Pages: 1
Send Topic Print
verilogA module vs. analoglib module (Read 6112 times)
xiey
New Member
*
Offline



Posts: 1
oregon
verilogA module vs. analoglib module
May 14th, 2008, 1:40am
 
I am now simulating Continuous-time Delta-Sigma Modulator at the behavioral level using Spectre in Cadence.

One modulator uses modules built with verilogA language, and the loop filter is realized with Laplace Transform Filter (laplace_nd).
Another modulator uses SVCVS instance in Cadence analoglib to realize the same loop filter.
Except loop filter realization, other parts of the modulator(quantizer, dac) are exactly the same. And the simulation settings are the same.

But I got quite different results when simulating both modulator. When doing FFT of both outputs, the first one achieves ideal SNR, while the second one has large distortion. Only if I increase the reltol from 1e-3 to 1e-9 for the second one, it can achieve ideal SNR.

(Even for a simple first-order integrator--1/s case, I also observe differences between verilogA module and SVCVS module under the same simulation option settings, which include max_time_step, reltol, vabstol, iabstol. For example, given an impulse as input, the integrator output is a step, but the final value of this step is different when using verilogA or SVCVS to realize 1/s)

For both modulator, they are realized at the same behavirol level, i.e. the loop filters are realized by plugging in transfer function's coefficients. Why the simulation results turn to be so different? Are they using different engines to solve differential equations?

Thank you very much!
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1999
Massachusetts, USA
Re: verilogA module vs. analoglib module
Reply #1 - May 15th, 2008, 8:55am
 
The SVCVS has a larger distortion??

I might have explained the opposite result by saying the arguments to your laplace_nd function are poorly scaled.  I guess the same thing could happen with an SVCVS.

A reltol of 1e-9 is not a good idea, given that double-precision only has 15 digits of accuracy.

Did you check the number of timepoints?  Perhaps the second one takes too big of steps, or they're not aligned well with the FFT sample points; I don't know what control Spectre gives you on timesteps for the purposes of FFT.
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
sheldon
Community Fellow
*****
Offline



Posts: 751

Re: verilogA module vs. analoglib module
Reply #2 - May 15th, 2008, 6:57pm
 
Greetings,

  Spectre can stop at the time required for the FFT to eliminate
interpolation error, use skipstart and strobeperiod to control the
time stepping.

                                                           Best Regards,

                                                               Sheldon
Back to top
 
 
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.