# Capacitance of MOS cap in spice

1. Feb 13, 2014

### Lanot

Hi guys,

I'm trying to obtain the CxV curve from moscap in SPICE (hspice).
Note that I'm not talking about the sum of the capacitances from the mos transistor, but the transistor behaving as a capacitor.
Is there an easy way to do this?

2. Feb 13, 2014

### meBigGuy

How about a resistor connected to the moscap, Resistor driven by small AC voltage superimposed on DC, measure AC current through resistor while sweeping DC.

3. Feb 14, 2014

### Lanot

Do you mean a DC sweep like this?

Vin vin 0 AC 1 SIN (0 1 0.159)
R1 vin v2 1k
M1 0 v2 0 0 nmos l=1 w=10
.DC SWEEP vin -1 3 1m
.end

The current is zero though.

4. Feb 14, 2014

### meBigGuy

Put an AC source in series with the DC source. Then, the AC current will depend on the capacitance value.

5. Feb 14, 2014

### Lanot

Nothing changed.

Vin vin 0
Vac vin vr1 AC 1 SIN (0 1 0.159)

R1 vr1 v2 1k
M1 0 v2 0 0 nmos l=1 w=10

.DC SWEEP vin -1 3 1m
.end

6. Feb 14, 2014

### meBigGuy

Why would there be zero AC current through a capacitor? Set the AC frequency to 100MHz. set the R to a higher value also. Replace the MOSCAP with a Capacitor. Play around with it a bit and figure it out.

7. Feb 15, 2014

### Lanot

Unfortunately, I couldn't replicate this experiment. I don't know what's the problem.
I was able to obtain an estimate of the MOS capacitance with a .op simulation (cgtot parameter), for low frequencies.
The only thing that is missing is the high frequency behavior of the moscap.

8. Feb 15, 2014

### meBigGuy

I don't see how .op provides any useful information.

Can you just replace the MOS with a capacitor and measure AC current. Then you know the sim is working.

9. Feb 15, 2014

### Lanot

I forgot to tell. I tested the circuit with a capacitor, and the current is zero.

10. Feb 15, 2014

### meBigGuy

Then you are doing something very wrong. If you can't see the AC current through a simple cap then you are looking in the wrong place. Can you see the AC voltage across the cap?

11. Feb 16, 2014

### Lanot

No, I can't. Isn't it because it's a DC sweep analysis?

The code is as follow:

Vin vin 0 DC 1
Vin vin 0
Vac vin vr1 AC 1 SIN (0 1 100MEG)

R1 vr1 v2 100k
M1 0 v2 0 0 nmos l=1 w=10

.DC SWEEP vin -1 3 1m
.end

12. Feb 17, 2014

### meBigGuy

sorry
Do a .tran
Then,
Do a .TRAN with a piecewise linear DC source and constant AC source.
I don't use spice much. I'm surprised no one else pointed out the issue. I actually didn't know you can't measure AC during a DC sweep.

13. Feb 19, 2014

### Lanot

Sorry for the delay. Now I can see the transient response. But the curve doesn't seem right I guess.

The code is:
Vin vin 0 DC 0 pulse=(0 1.2 0 50n 0 0 0 0 51n)
Vac vin vr1 AC 0 SIN (0 10m 100MEG)
R1 vr1 v2 100k
M1 0 v2 0 0 nmos l=1 w=10
.TRAN 1p 50n
.end

The response is as follows:

14. Feb 21, 2014

### analogdesign

The easiest way to do this is with a transient analysis and a pulse so your input should be fine. Remember in the time domain that I = C dV/dT or C = I / (dV/dT). So divide the measured current with the voltage slope and that is your capacitance. You should do it with a rising and falling pulse and average the value you calculate.

AC analysis is also possible and may be more useful if you're using the MOSCAP as a decoupling device (so you mostly care about the capacitance around a small operating region.