Difference between revisions of "220-A2.1"

From Microlab Classes
Jump to navigation Jump to search
Line 47: Line 47:
 
We will use SPICE to simulate the effects of process variations by allowing us to add small random changes in the sheet resistance or capacitance density of our devices. We can add random mismatch between devices by introducing small random changes to the device dimensions. We can also get a large number of samples by running the simulations repetitively using these modified device and process parameters. This is called '''Monte Carlo Analysis'''.
 
We will use SPICE to simulate the effects of process variations by allowing us to add small random changes in the sheet resistance or capacitance density of our devices. We can add random mismatch between devices by introducing small random changes to the device dimensions. We can also get a large number of samples by running the simulations repetitively using these modified device and process parameters. This is called '''Monte Carlo Analysis'''.
  
In ngspice, inside the <source>.control</source> block, we can define a Gaussian random number generator as:
+
In ngspice, inside the <source enclose="none">.control</source> block, we can define a Gaussian random number generator as:
  
 
<source lang="bash">
 
<source lang="bash">
 
define gauss(nom, var, sig) (nom + nom*var/sig * sgauss(0))
 
define gauss(nom, var, sig) (nom + nom*var/sig * sgauss(0))
<source lang="bash">
+
</source>

Revision as of 14:00, 22 September 2020

Activity: Integrated Resistors and Capacitors

  • Instructions: This activity is structured as a tutorial with a design problem at the end. Should you have any questions, clarifications, or issues, please contact your instructor as soon as possible.
  • At the end of this activity, the student should be able to:
  1. Understand and observe the effects of the fabrication process on passive RC circuits.

Reading Assignment

Go over the Phillip Allen's excellent slides on resistors and inductors and capacitors. Focus on the non-idealities of integrated resistors and capacitors, and how designers can work around these non-idealities to create reliable circuits.

Modeling Integrated RC Circuits

In order to model and simulate integrated resistors and capacitors, we can create semiconductor resistor models in SPICE that contains the sheet resistance of the layer, and the temperature coefficient. Consider an n-type polysilicon resistor, with , and at a nominal temperature, . Let us create a resistor model rpoly_n:

.model rpoly_n R rsh=100 tc1=-800u tnom=27C

Instantiating a resistor using the rpoly_n model, with the appropriate width and length, as:

R1	in out		rpoly_n w=2u l=20u

We can also create a MOM capacitor model, and a metal-to-substrate capacitor model using:

.model cmom C cj=50m tc1=30u tnom=27C 
.model cmsub C cj=30m tc1=25u tnom=27C

Where cmom is the model name of the capacitor, cj is the capacitance density in Farads per square meter, tc1 is the first order temperature coefficient, and tnom is the nominal temperature. We can then create a subcircuit cm, so every time we instantiate cm, we are including the bottom-plate capacitance in addition to the main capacitance.

.subckt cm  top bottom sub  w=1000u l=2000u
C1		top bottom	cmom w={w} l={l}
Csub	bottom sub	cmsub w={w} l={l}
.ends

Activity 1: Resistor Temperature Correction

It is interesting to note that the sign of the temperature coefficient of polysilicon resistors is opposite of the polysilicon resistors. Thus, it is possible to cancel the first order temperature dependence if we replace a single resistor, with a polysilicon resistor, , in series with a polysilicon resistor, , where .

Verify your results using SPICE for .

Submission

Submit a 1-page report showing your calculations, and a plot of the temperature characteristics of your compound resistor.

Effects of Process Variations

We will use SPICE to simulate the effects of process variations by allowing us to add small random changes in the sheet resistance or capacitance density of our devices. We can add random mismatch between devices by introducing small random changes to the device dimensions. We can also get a large number of samples by running the simulations repetitively using these modified device and process parameters. This is called Monte Carlo Analysis.

In ngspice, inside the .control block, we can define a Gaussian random number generator as:

define gauss(nom, var, sig) (nom + nom*var/sig * sgauss(0))