• 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. Custom IC Design
  3. significant digits in ADE assembler output expressions

Stats

  • Replies 5
  • Subscribers 131
  • Views 669
  • Members are here 0

significant digits in ADE assembler output expressions

an wx
an wx 10 days ago

hi all, I'm drawing spectrums in ADE Assembler when I encountered a problem. I want to calculate FFT with start/stop time at 1989.955ns/22469.955ns. In Calculator and in "Measurement"-"Spectrum" panel, I can enter the specific start/stop time and draw the spectrum as expected; however, as I send the expression to ADE, the stop time becomes 2.246996E-6, resulting in large spectrum leakage. If I set start and stop time to1989.950ns/22469.950ns so that no truncation occurs, the spectrum is normal. So it seems that the values are automatically rounded to 6 decimal places in ADE assembler output? How can I solve it?

  • Cancel
  • Sign in to reply
Parents
  • Andrew Beckett
    Andrew Beckett 10 days ago

    You can control the output precision either using Options->Output Formatting or per-output using this column:

    I'm slightly surprised though that if you have expressions used in other expressions as dependencies, then I wouldn't expect the truncation to have occurred (It's really just a display thing). Maybe it's become a fixed number at some point - it's not entirely clear what your setup looks like.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • an wx
    an wx 10 days ago in reply to Andrew Beckett

    Thanks for your reply, Andrew. Perhaps I haven't made myself clear enough. I mean that the values in the expression itself, instead of the values of the expressions' results, has been truncated. It seems that the 'Digits' column or Output Formatting only applies to the latter one.

    below is how I set up my expressions:

    First I plot spectrum using "Measurements"-"Spectrum" in ViVa. Then I select the spectrum waveform and send it to Calculator, where I got the expression "db20(dft((VT("/VXP") - VT("/VXN"))  1.989955e-06 22.469955u 1024 "Rectangular" 0 0 1))". The start and stop time is exactly what I want.

    Then, I select the spectrum waveform and send it to ADE. In ADE I found that the expression has become "db20(dft((VT("/VXP") - VT("/VXN")) 1.989955e-06 2.246996e-05 1024 "Rectangular" 0 0 1))". The stop time is now 2.246996e-05 (22.46996u instead of 22.469955u). I try to set stop time to 2.2469955e-05 manually, but it just doesn't work. I believe it isn't just a display thing, since as I re-evaluated the results in ADE, I do see spectrum leakage (which indicates that the FFT time window has changed).

    Something's wrong when I tried to upload screenshots :( I hope my descriptions are clear enough.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 7 days ago in reply to an wx

    I can reproduce the problem. I found a workaround which preserves the precision of the numbers with 8 significant digits but it's not robust - and I don't think it is a clean way of doing this. I'll file a CCR to try to address this properly.

    The best solution for now is to ensure that you have variables (design variables for example) instead of the literal numbers in the expression. For example, if I use:

    (note I have changed the literal numbers to be VAR() expressions) then it works reliably. I used the same variables in the transient analysis too to ensure that the simulator strobes at the same times as the dft is sampling at (skipstart, strobeperiod and strobeoutput). I'll try appending that separately.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 7 days ago in reply to Andrew Beckett

    Oh, I can't upload the picture (same problem you had). I set (on the tran options form):

    skipstart : tsampstart
    sprobeperiod: tstep
    strobeoutput: all

    (the last just means you get all the points, not just those where the simulator has strobed at). This tends to reduce the numerical noise floor of the DFT (unnecessary if the sample points are fully settled and don't need to interpolate).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 7 days ago in reply to Andrew Beckett

    Oh, I can't upload the picture (same problem you had). I set (on the tran options form):

    skipstart : tsampstart
    sprobeperiod: tstep
    strobeoutput: all

    (the last just means you get all the points, not just those where the simulator has strobed at). This tends to reduce the numerical noise floor of the DFT (unnecessary if the sample points are fully settled and don't need to interpolate).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data

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.

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

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