• 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. Spectre PSS simulation for sigma-delta modulator and verilogA...

Stats

  • Replies 1
  • Subscribers 130
  • Views 43
  • Members are here 0

Spectre PSS simulation for sigma-delta modulator and verilogA model

StephanWeber
StephanWeber 5 hours ago

Hi,

fora  sigma-delta modulator I made a verilogA model, and in transient simulation the results are very nice. However, I believe for a stable Vin PSS should be able to calculate the steady-state with good accuracy, and in PSS setup I can also apply nice sweeps. 

As usual, I run into the issue of hidden state, so I add the ignore hidden state command before the module definition.

Now PSS runs, but it looks bad, although I made tstab very large!

Next I found out that ffund = 1MHz = fclk is (of course) to high, e.g. my modulator use DEM with 7 periods, so I went for ffund=1M/7, but that causes sometimes convergence issues AND the results are still often bad for most inputs.

Is there a way to improve, e.g. to tell Spectre about which variables in the VA module should be taken into account as state? Or should I go with other PSS settings? I decided for 7 harmonics & shooting (all other at default).

Bye Stephan 

  • Cancel
  • Sign in to reply
Parents
  • Andrew Beckett
    Andrew Beckett 3 hours ago

    Stephan,

    For PSS to be successful, the circuit must be truly periodic. Nearly always a sigma-delta is not periodic (at least not at any useful period - in fact you usually go out of your way to ensure that the design is not periodic to avoid tones appearing in the output). 

    Secondly, trying to fool the simulator into not having hidden state variables when those variables actually contain state is an act of folly. It's an effective way of ensuring you get the wrong answer. There are cases where it's OK to add the instrument_module attribute (typically when the module is a signal source, or a monitor that doesn't affect the signal behaviour), or to use the per-variable ignore_state attribute when (say) a variable is only used for debug messages and doesn't alter the behaviour. This is described quite clearly in Ken Kundert's app note: https://designers-guide.org/analysis/hidden-state.pdf . That app note also explains strategies for creating hidden-state free models for registers etc (it's not that easy to do this in most cases).

    This is not a matter of fiddling around with PSS settings. It's really whether what you're doing makes sense...

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 3 hours ago

    Stephan,

    For PSS to be successful, the circuit must be truly periodic. Nearly always a sigma-delta is not periodic (at least not at any useful period - in fact you usually go out of your way to ensure that the design is not periodic to avoid tones appearing in the output). 

    Secondly, trying to fool the simulator into not having hidden state variables when those variables actually contain state is an act of folly. It's an effective way of ensuring you get the wrong answer. There are cases where it's OK to add the instrument_module attribute (typically when the module is a signal source, or a monitor that doesn't affect the signal behaviour), or to use the per-variable ignore_state attribute when (say) a variable is only used for debug messages and doesn't alter the behaviour. This is described quite clearly in Ken Kundert's app note: https://designers-guide.org/analysis/hidden-state.pdf . That app note also explains strategies for creating hidden-state free models for registers etc (it's not that easy to do this in most cases).

    This is not a matter of fiddling around with PSS settings. It's really whether what you're doing makes sense...

    Regards,

    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