2 Replies Latest reply on Dec 3, 2008 12:50 PM by weston_beal

    The two things that I wish were never invented in SPICE


      There are two things in SPICE that I wish were never invented by the

      authors of the language:


      1)  .global nodename

      2)  .option scale = value


      These two commands can actually be very useful and convenient

      for circuit designers, who tend to work on one buffer at the time,

      because they can reduce the amount of typing necessary for writing

      netlists and/or models, improving productivity.


      However, these commands can cause a lot of problems when two

      different designs, having conflicting global nodes and/or scaling

      coefficients must be simulated together in the same simulation.

      This would usually happen in Signal/Power Integrity (SI/PI) simulations

      when the engineer is trying to design a system which obviously

      involves more than simulating just one buffer at the time.


      In my experience, SPICE models are most often written primarily

      for circuit designers, and the SI/PI people are not considered in this

      process.  When the design of a buffer is done, the models are just

      handed over to the SI/PI engineers, and that's when the problems

      usually begin.  To make things worse, by this time circuit designers

      are quite often done with the project and are reluctant to go back to

      make modifications to the SPICE models on the request of the SI/PI



      So my recommendation is to STAY AWAY FROM these two features

      of SPICE to save a lot of trouble down the road.


        • 1. Re: The two things that I wish were never invented in SPICE

          Yes! Spot On!  You don't need to leave the functional modeling space and move to the Signal Integrity space before the misuse of the global command bites you!


          I was sitting here thinking about how to "hack my design" to overcome a lack of forethought, strongly considering my occasional misuse of the global command when I read your post. You talked me out of it!

          • 2. Re: The two things that I wish were never invented in SPICE


            At least with the .global command, the end user can edit the files (assuming nonencrypted files) and after much tribulation can get files that work together.



            If you have one buffer model that used scale=1u and another buffer model that didn't use scaling, then you're pretty well stuck. I got in that situation some years ago and attempted to find complete documentation on what model parameters are affected by the scale option. I couldn't even find where it was documented to that detail, so trying to edit the models, even with a script, was impossible.



            Whenever I talk to people about SPICE models, I try to always throw in the counsel to NEVER use scale option, and RUN AWAY from .global statements. Please!