From ada0405970b29b88155ea9eb70f8c975dd15a318 Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 17 Mar 2018 20:10:18 +0100 Subject: [PATCH] bsimbulk.va, adms workaround, beware of `<+ ddt(...)' if there is a ddt() expression in the rhs lhs <+ rhs then adms might not set the matrix correctly. It seems to work though, if ddt() is the only expression in rhs. --- src/spicelib/devices/adms/bsimbulk/admsva/bsimbulk.va | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/spicelib/devices/adms/bsimbulk/admsva/bsimbulk.va b/src/spicelib/devices/adms/bsimbulk/admsva/bsimbulk.va index babe2adf7..591daff4b 100644 --- a/src/spicelib/devices/adms/bsimbulk/admsva/bsimbulk.va +++ b/src/spicelib/devices/adms/bsimbulk/admsva/bsimbulk.va @@ -4358,10 +4358,11 @@ analog begin end if ((SHMOD != 0) && (RTH0 > 0.0)) begin if (RDSMOD != 2) begin - Pwr(t) <+ -(devsign * sigvds * ids * V(di, si) + V(d,di) * V(d,di) / Rdrain + V(s,si) * V(s,si) / Rsource) + ddt(delTemp1 * cth) + delTemp1 * gth; + Pwr(t) <+ -(devsign * sigvds * ids * V(di, si) + V(d,di) * V(d,di) / Rdrain + V(s,si) * V(s,si) / Rsource) + delTemp1 * gth; end else begin - Pwr(t) <+ -(devsign * sigvds * ids * V(di, si)) + ddt(delTemp1 * cth) + delTemp1 * gth; + Pwr(t) <+ -(devsign * sigvds * ids * V(di, si)) + delTemp1 * gth; end + Pwr(t) <+ ddt(delTemp1 * cth); end else begin Temp(t) <+ 0.0; end