• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Mixed-Signal Design
  3. spectre solver for veriloga

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 64
  • Views 16440
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

spectre solver for veriloga

Yuanqi
Yuanqi over 7 years ago

Hi,

I'm currently experiencing something doesn't match my understanding:

There is a PWL signal (from vpwl) followed by a low-pass filter written in Veriloga, but the filtered waveform will vary depending on the accuracy setting, such as reltol, relref etc. This is what surprised me a lot since I thought a Veriloga model are simply mathematical equations, which don't require the solver to guess and fit the next point and hence should be consistent cross all accuracy settings. 

Could you please let me know how is the Spectre working with Veriloga?

Cheers,

Yuanqi

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Yuanqi,

    Your question is too open-ended. Of course, results certainly can be affected by the accuracy settings - that's why they are there. However, it depends on how significant those differences are.

    Verilog-A can have both procedural statements as well as creating equations to be solved like other circuitry - without knowing more details on the input signal, what the Verilog-A model looks like, and the differences you are seeing in the results, it's really hard to guess what might be wrong (or even if it's wrong at all).

    If you can't share that information here, please work with customer support.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Yuanqi
    Yuanqi over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    The Veriloga model is a simple laplace function as below:

    analog begin

    vin = V(inp,inm);

    vout1 = laplace_nd(vin*pow(10,dc_gain/20),{1.592e43},{1.592e43,3.247e38,3.311e33,2.191e28,1.025e23,3.468e17,8.298e11,1.288e6,1});

    V(out) <+ vout1;

    end

    And that's why I can't understand why accuracy setting could affect the results.

    I plan to sit down and debug with Marcel when he visits us next time.

    Cheers,

    Yuanqi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Yuanqi

    Hi Yuanqi,

    One thought that occurred to me - how many points are in the PWL file, and is it a representation of a (say) pulse train - i.e. with discrete points with sharp transitions, or is it a representation of a smooth waveform? If it's a discrete (pulse train) type waveform, and there are more than 20 points, then you may need to set allbrkpts=yes on the source (on the analogLib vsource, there's a parameter labelled "Breakpoints" which has a cyclic choice of "yes" or "no").

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Yuanqi
    Yuanqi over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    It's indeed a pulse train and more than thousands of points, we used vpwlf before but doesn't have this allbrkpts option. I will try with vsource again, before that may I ask what does this "Breakpoints" mean and what will the solver do for different settings?

    Cheers,

    Yuanqi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Yuanqi

    Hi Yuanqi,

    For pulse sources and PWL sources with fewer than 20 points, a "breakpoint" is added at each point in the file. This tells the simulator that there's (potentially) a discontinuity at that point and so it forces the simulator to solve at the timepoint and also take care around the transition. Without breakpoints, it may miss some detail on the transitions if they are discontinuous (in this case it would be the derivative that's discontinuous, not the value). So it would be a good idea to turn on breakpoints in this case - the accuracy settings could be causing it to miss detail on the input waveform, and hence that could affect the filtered result.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Yuanqi
    Yuanqi over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    I have tried with the breakpoint option, but only got even worse results. However if we specifically add more points in PWL file to make the transition time (e.g. 0v-3.3v) from 20ns to 3ns, we can get the results we want. Should the "Breakpoint" option force the simulator transient faster?

    Cheers,

    Yuanqi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Yuanqi
    Yuanqi over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    I have tried with the breakpoint option, but only got even worse results. However if we specifically add more points in PWL file to make the transition time (e.g. 0v-3.3v) from 20ns to 3ns, we can get the results we want. Should the "Breakpoint" option force the simulator transient faster?

    Cheers,

    Yuanqi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Yuanqi

    Yuanqi,

    We'd have to see the example to understand what's going on - my suggestion of breakpoints was only a guess, so it's likely to be something more subtle than that. The point of using breakpoints on a large PWL file is to improve the accuracy of the simulation, not to make it faster. Clearly that's not happening in this case - so it must be something else.

    Best to contact customer support as I mentioned earlier (no need to wait for one of the team to visit you - this is what customer support is for!)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information