tests/regression/misc, check resistor flicker noise
This commit is contained in:
parent
4c503c1e47
commit
e0126a4947
|
|
@ -1,7 +1,7 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
|
||||
TESTS = bugs-1.cir bugs-2.cir dollar-1.cir empty-1.cir resume-1.cir log-functions-1.cir alter-vec.cir
|
||||
TESTS = bugs-1.cir bugs-2.cir dollar-1.cir empty-1.cir resume-1.cir log-functions-1.cir alter-vec.cir test-noise-2.cir test-noise-3.cir
|
||||
|
||||
TESTS_ENVIRONMENT = ngspice_vpath=$(srcdir) $(SHELL) $(top_srcdir)/tests/bin/check.sh $(top_builddir)/src/ngspice
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
Paolo's carbon resistor noise (Motchenbacher p. 290)
|
||||
* (exec-spice "ngspice %s" t)
|
||||
*
|
||||
* check whether resistor flicker noise behaves as expected
|
||||
|
||||
.temp 25
|
||||
|
||||
i1 1 0 dc 1e-3
|
||||
r1 1 2 1k rmodel l=1u w=10u
|
||||
v1 2 0 dc 0 ac 1
|
||||
|
||||
.model rmodel r tc1=0.01 kf=100e-18 af=1.1
|
||||
+ dlr=0.01u dw=0.01u
|
||||
+ tnom=25
|
||||
|
||||
.control
|
||||
|
||||
* output noise in v/sqrt(Hz)
|
||||
compose wanted_onoise values 2.2637m 1.7981m 1.4283m 1.1345m 901.2011u 715.8494u 568.6194u 451.6705u 358.7746u 284.9848u 226.3715u
|
||||
|
||||
* equivalent input noise in v/sqrt(Hz)
|
||||
* extern_onoise / H
|
||||
let wanted_inoise = wanted_onoise
|
||||
|
||||
noise v(1) v1 dec 5 1k 100k
|
||||
|
||||
setplot noise2
|
||||
*print all
|
||||
|
||||
setplot noise1
|
||||
*print onoise_spectrum wanted_onoise
|
||||
*print inoise_spectrum wanted_inoise
|
||||
|
||||
let inoise_relerr = vecmax(abs(inoise_spectrum / wanted_inoise - 1))
|
||||
let onoise_relerr = vecmax(abs(onoise_spectrum / wanted_onoise - 1))
|
||||
|
||||
echo "Note: relative inoise_relerr = $&inoise_relerr"
|
||||
echo "Note: relative onoise_relerr = $&onoise_relerr"
|
||||
|
||||
if inoise_relerr > 1e-4 or onoise_relerr > 1e-4
|
||||
echo "ERROR: test failed"
|
||||
quit 1
|
||||
else
|
||||
echo "INFO: success"
|
||||
quit 0
|
||||
end
|
||||
|
||||
.endc
|
||||
.end
|
||||
|
|
@ -0,0 +1 @@
|
|||
INFO: success
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
compare a m=2 resistor with two parallel instances
|
||||
* The expectation is identical inoise and onoise
|
||||
* (exec-spice "ngspice %s" t)
|
||||
|
||||
.temp 25
|
||||
|
||||
i1 1 0 dc 10ma ac=1
|
||||
r1 1 0 100 rmodel l=1u w=10u m=2
|
||||
|
||||
i2 2 0 dc 10mA ac=1
|
||||
r2a 2 0 100 rmodel l=1u w=10u
|
||||
r2b 2 0 100 rmodel l=1u w=10u
|
||||
|
||||
.model rmodel r kf=100e-18 af=1.1
|
||||
+ dlr=0.01u dw=0.01u
|
||||
|
||||
.control
|
||||
|
||||
noise v(1) i1 dec 5 1k 100k
|
||||
print all
|
||||
|
||||
noise v(2) i2 dec 5 1k 100k
|
||||
print all
|
||||
|
||||
let relerr = noise4.onoise_total / noise2.onoise_total - 1
|
||||
|
||||
echo "Note: relative relerr = $&relerr"
|
||||
|
||||
if abs(relerr) > 1e-6
|
||||
echo "ERROR: test failed"
|
||||
quit 1
|
||||
else
|
||||
echo "INFO: success"
|
||||
quit 0
|
||||
end
|
||||
|
||||
.endc
|
||||
.end
|
||||
|
|
@ -0,0 +1 @@
|
|||
INFO: success
|
||||
Loading…
Reference in New Issue