• 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. Macromodel option

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 7617
  • 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

Macromodel option

sidm
sidm over 2 years ago

Hello 

I am trying to understand what does setting the Macromodel option to "yes" do in general ? I have observed and read in the Spectre Circuit Simulator User Guide that -

" Occasionally, the Spectre circuit simulator is slower when it finds ringing or oscillation that goes unnoticed by SPICE. This can be improved by setting the macromodels option to yes" 

Any insights on this will be helpful. 

regards

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    I'd leave it alone. From Ken Kundert's book A Designer's Guide to SPICE and Spectre (hard to obtain now - it came out in 1995), Ken says in A.3.1.7 Macromodels:

    Over the years Spectre has been tuned to run quickly on real circuits. These optimisations have the side effect of causing Spectre to run more slowly on circuits that deviate greatly from the norms of physical circuits. In particular, Spectre performs poorly with some macro-models. Setting this flag makes Spectre more tolerant of the aberrant behaviour exhibited by these macro models. With macromodels set, Spectre becomes more determined to efficiently pass through the abrupt discontinuities exhibited by some macromodels and uses local error criteria to allow huge voltage and currents at a subset of the nodes.

    By default macromodels=no because otherwise Spectre runs more slowly on most circuits, but enabling it may cause Spectre to run much quicker on circuits that exhibit non-physical behavior.

    The reasons why I suggest avoiding it are:

    1. When this was added, it was quite commonplace to use a combination of ideal components, controlled sources, and even active devices with simplified models to try to fit and model circuit behaviour - so called "macromodels". In Spectre, nowadays, that is unusual - you would use behavioural models instead using Verilog-A for example which has more direct control and more appropriate ways of writing models.
    2. There have been many, many years of optimisation of the simulator technology since then and I can't recall a case of where I've needed to use this; I rather doubt it's useful on modern circuits given other improvements in the simulation technology.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sidm
    sidm over 2 years ago in reply to Andrew Beckett

    thanks 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