# How do I model a resistor array in SPICE?

I am currently building a library of SPICE simulation models that is going to include resistor arrays.

These arrays exhibits both absolute tolerances and relative tolerances. Usually, the relative characteristics are better than the absolute characteristics. For example, the 4 resistors of the LT5400 from Linear have an absolute tolerance of +/-7.5% and a relative tolerance of +/-0.010%. Same story for the temperature drift : they have an absolute drift of 25ppm/K and a ratio temperature drift of 0,2ppm/K.

I would like to model these arrays in order to estimate the impact of temperature drift and component tolerances on my signal acquisition chain. For this purpose, I already found those two links that are useful for discrete components : Simulating component tolerances and Estimating temperature drift effects. However, they won't help me on how to model relative tolerances and relative drifts.

• How can I take into account in my SPICE model both absolute tolerances and relative tolerances of resistor arrays ?

PS: there is a model of the LT5400 in LTSpice, but I have not found a way to access the source model. Thus, I have no idea how to use it in monte-carlo analysis or temperature stepping.

• Why do you have these concerns only about array resistors, and not about every other resistor in your design? Feb 22, 2019 at 16:31
• Actually, my signal acquisition chain uses only resistor arrays for thermal stability and repeatability. However, I would like to quantify these performances and gain stability versus the quality grade of my arrays. Feb 22, 2019 at 17:01

Unless I musunderstood your question, you have the answers in the links you gave: simply make your resistors, each and everyone, with parameters enclosed in curly braces, {mc(1,0.1)}, bogus example. For temperature, simply add it after the value:

R1 pin1 pin2 {mc(1,0.1)} temp={mc(25,0.2)}

Don't forget that the temperature is not dynamic, it is not a function of time. So your array would look something like this:

R1 pin1 pin2 {mc(1,0.1)} temp={mc(25,0.1)}
R2 pin3 pin4 {mc(10k,0.001)} temp={mc(27,0.2)}
R3 pin5 pin6 {mc(2.7k,0.05)} temp={mc(-100,0.001)}
...


Or simply make the temperatures the same, {temp}, and add .param temp=mc(27,0.1), for example. That would make them all dependent on the same temperature.

• Thanks for the input. However, this does not modelize the relative variations of resistor values within the array. Each individual resistor has a "random" value that is dependant on other resistor's value. After thinking about it twice, it would be like having correlated random variables. But I like your idea of having a "monte-carlo'ed" parameter. I think it's worth exploring this idea to get my job done. Feb 25, 2019 at 7:42