lili94
Newbie level 4
Hi everyone,
I have a question about hspice. I want to simulate a basic ring oscillator with variation block & Monte Carlo simulation in hspice, & this is my code:
But when I get the results, measures for every index of monte carlo is same, all of them are same. What's my mistake???
I have a question about hspice. I want to simulate a basic ring oscillator with variation block & Monte Carlo simulation in hspice, & this is my code:
Code:
*CMOS Ring Oscillator
V1 vdd 0 0.9V
V2 vss 0 0V
.subckt inv vdd vss in out
Mp1 vdd in out vdd pmos l=0.35u w=20.0u
Mn1 vss in out vss nmos l=0.35u w=10.0u
Cload out vss 100f
.ends
*5 stage ring
x1 vdd vss 1 2 inv
x2 vdd vss 2 3 inv
x3 vdd vss 3 4 inv
x4 vdd vss 4 5 inv
x5 vdd vss 5 1 inv
* Beta Version
* PTM 22nm NMOS
.model nmos nmos level = 54
* PTM 22nm PMOS
.model pmos pmos level = 54
.Variation
.Global_Variation
Parameter var=N() Y='0.8 + 0.6 * var' Z='0.5 + 0.6 * var'
Nmos nch
+ tox =Perturb('Z')
+ leff=Perturb('Y')
+ vth0=Perturb('-6.2E-12*Y')
Pmos pch
+ tox =Perturb('0.9*Z')
+ leff=Perturb('0.81*Y')
+ vth0=Perturb('-6.2E-12*Y')
.End_Global_Variation
.Local_Variation
Parameter var=N() Y='0.7 + 0.6 * var' Z='0.5 + 0.6 * var'
Nmos nch
+ tox =Perturb('Z')
+ leff=Perturb('Y')
+ vth0=Perturb('-6.2E-12*Y')
Pmos pch
+ tox =Perturb('0.9*Z')
+ leff=Perturb('0.81*Y')
+ vth0=Perturb('-6.2E-12*Y')
.End_Local_Variation
.End_Variation
.TRAN 20p 1n sweep monte=10
.print v(1) v(2) v(3) v(4)
.Measeure
.end
But when I get the results, measures for every index of monte carlo is same, all of them are same. What's my mistake???