• 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. Measure DNL/INL in ADE-XL

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 125
  • Views 8792
  • 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

Measure DNL/INL in ADE-XL

migrg
migrg over 8 years ago

Hi, I am trying to characterize a DAC design and I need to measure these parameters for my design. The way I'm doing it is by sweeping all the input digital codes in a transient simulation. I can use the INL/DNL functions included in the calculator and this works relatively well:

dnl(VT("/OUT") 5e-09 ?mode "auto" ?crossType "rising" ?delay 0.0 ?method "end" ?units "abs" ?nbsamples nil)

but the problem is that the value at time 0 seems to be always 1LSB. When I do optimization or monte-carlo, I want to look at a single number so I'm trying to measure the min or max value of the DNL/INL (using ymin/ymax) to assess the worst-case. Then this 'wrong' value at 0 makes that very hard. I tried setting up a delay inside these functions but the result was the same. 

Any help would be appreciated!

  • Cancel
Parents
  • migrg
    migrg over 8 years ago
    I'll share my workaround: first sample the waveform with the same interval you want to use in the DNL function, but skip the first sample. In my case is every 5ns, and my sampling starts at 5n:

    dnl(sample(VT("/VOUT") 5e-09 5e-06 "linear" 5e-09) 5e-09 ?mode "auto" ?crossType "rising" ?delay 0.0 ?method "end" ?units "abs" ?nbsamples nil)

    this produces the right behavior. Not sure why the DNL function doesn't work directly or what I was missing there.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • migrg
    migrg over 8 years ago
    I'll share my workaround: first sample the waveform with the same interval you want to use in the DNL function, but skip the first sample. In my case is every 5ns, and my sampling starts at 5n:

    dnl(sample(VT("/VOUT") 5e-09 5e-06 "linear" 5e-09) 5e-09 ?mode "auto" ?crossType "rising" ?delay 0.0 ?method "end" ?units "abs" ?nbsamples nil)

    this produces the right behavior. Not sure why the DNL function doesn't work directly or what I was missing there.
    • Cancel
    • Vote Up 0 Vote Down
    • 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.

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

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