diff options
Diffstat (limited to 'Windows/spice/examples/transient-noise/noi-ring51-demo.cir')
-rw-r--r-- | Windows/spice/examples/transient-noise/noi-ring51-demo.cir | 51 |
1 files changed, 41 insertions, 10 deletions
diff --git a/Windows/spice/examples/transient-noise/noi-ring51-demo.cir b/Windows/spice/examples/transient-noise/noi-ring51-demo.cir index 8bc6f6ed..50d54eb4 100644 --- a/Windows/spice/examples/transient-noise/noi-ring51-demo.cir +++ b/Windows/spice/examples/transient-noise/noi-ring51-demo.cir @@ -1,5 +1,6 @@ * 51 stage Ring-Osc. BSIM3, transient noise -* will need 45 min on a i7 860 with 4 threads +* will need 90 sec on a i7 860 with 4 threads +* for better noise analysis simulation time may be made larger than 200n * closes the loop between inverters xinv1 and xinv5 vin in out dc 0.5 pulse 0.5 0 0.1n 5n 1 1 1 @@ -15,16 +16,19 @@ vpe well 0 2.2 xiinv2 dd ss sub well out25 out50 inv253 xiinv1 dd ss sub well in out25 inv253 -*very noisy inverter -xiinv5 dd ss sub well out50 out inv1_2 +*three very noisy inverters +xiinv51 dd ss sub well out50 out51 inv1_2 +xiinv52 dd ss sub well out51 out52 inv1_2 +xiinv53 dd ss sub well out52 out inv1_2 + *output amplifier -xiinv11 dd ss sub well out25 bufout inv1 +xiinv11 dd ss sub well out25 bufout inv2 cout bufout ss 0.2pF .option itl1=500 gmin=1e-15 itl4=10 noacct * .dc vdd 0 2 0.01 -.tran 0.01n 500n +.tran 8p 200n .save in bufout v(t1) @@ -38,21 +42,48 @@ unset ngdebug * first run save bufout $ needed for restricting memory usage rusage -tran 8p 10000n +run +rusage +plot bufout xlimit 90n 95n +linearize +fft bufout +echo start noise in plot $curplot +echo + +* next run +* reset +save bufout +* original noise parameters 0.05 8p 1.0 0.001 +alter @v.xiinv51.vn1[trnoise] = [ 0 0 0 0 ] $ no noise +alter @v.xiinv52.vn1[trnoise] = [ 0 0 0 0 ] $ no noise +alter @v.xiinv53.vn1[trnoise] = [ 0 0 0 0 ] $ no noise + +run rusage plot bufout xlimit 90n 95n linearize fft bufout +echo no noise in plot $curplot +echo + * next run -reset +* reset save bufout -alter @v.xiinv5.vn1[trnoise] = [ 0 0 0 0 ] $ no noise -tran 8p 10000n +alter @v.xiinv51.vn1[trnoise] = [ 0.1 8p 1.5 0.002 ] $ more noise +alter @v.xiinv52.vn1[trnoise] = [ 0.1 8p 1.5 0.002 ] $ more noise +alter @v.xiinv53.vn1[trnoise] = [ 0.1 8p 1.5 0.002 ] $ more noise + +run rusage plot bufout xlimit 90n 95n linearize fft bufout -plot mag(bufout) mag(sp2.bufout) xlimit 0 2G ylimit 1e-11 0.1 ylog +echo more noise in plot $curplot +echo + +set color0=white +set color1=black +plot mag(sp6.bufout) mag(sp2.bufout) mag(sp4.bufout) xlimit 0 2G ylimit 1e-7 1 ylog .endc |