From c88578e2c51400c07fbff02129924f1afcfd08dc Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Wed, 22 Aug 2018 22:38:34 +0200 Subject: [PATCH] noise value is 0 for time == zero. Only when time changes from time == 0 to time > 0, the 1/f noise data are generated once per voltage instance with 1/f noise requested. --- src/spicelib/devices/vsrc/vsrcload.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/spicelib/devices/vsrc/vsrcload.c b/src/spicelib/devices/vsrc/vsrcload.c index 72bed3deb..f71bc5c43 100644 --- a/src/spicelib/devices/vsrc/vsrcload.c +++ b/src/spicelib/devices/vsrc/vsrcload.c @@ -349,12 +349,18 @@ VNoi3 3 0 DC 0 TRNOISE(0 0 0 0 15m 22u 50u) : generate RTS noise double TS = state -> TS; double RTSAM = state->RTSAM; - /* reset top (hack for repeated tran commands) */ - if (time == 0) - state->top = 0; + /* reset top (hack for repeated tran commands) + when there is the jump from time=0 to time>0 */ + if (time == 0.0) + state->timezero = TRUE; + else + if (state->timezero) { + state->top = 0; + state->timezero = FALSE; + } - /* no noise */ - if(TS == 0.0) { + /* no noise or time == 0 */ + if(TS == 0.0 || time == 0.0) { value = 0.0; } else {