admsva/bsim6.va, workaround adms issue, (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.

Note, in bsim6.va
 the matrix slot [temp-node][temp-node] would need to be populated
   with the `gth' term. (see mdump)
 with the original expression this term disappeared.
This commit is contained in:
rlar 2018-03-16 21:26:58 +01:00 committed by Holger Vogt
parent ae478c35ce
commit 3804072584
1 changed files with 3 additions and 2 deletions

View File

@ -4475,10 +4475,11 @@ end
`ifdef __SHMOD__
if (SHMOD !=0 && RTH0 > 0) begin
if (RDSMOD != 2) begin
Pwr(t) <+ -(devsign * sigvds * ids * V(`IntrinsicDrain, `IntrinsicSource) + V(d,`IntrinsicDrain) * V(d,`IntrinsicDrain) / Rdrain + V(s,`IntrinsicSource) * V(s,`IntrinsicSource) / Rsource) + ddt(delTemp1 * cth) + delTemp1 * gth;
Pwr(t) <+ -(devsign * sigvds * ids * V(`IntrinsicDrain, `IntrinsicSource) + V(d,`IntrinsicDrain) * V(d,`IntrinsicDrain) / Rdrain + V(s,`IntrinsicSource) * V(s,`IntrinsicSource) / Rsource) + delTemp1 * gth;
end else begin
Pwr(t) <+ -(devsign * sigvds * ids * V(`IntrinsicDrain, `IntrinsicSource)) + ddt(delTemp1 * cth) + delTemp1 * gth;
Pwr(t) <+ -(devsign * sigvds * ids * V(`IntrinsicDrain, `IntrinsicSource)) + delTemp1 * gth;
end
Pwr(t) <+ ddt(delTemp1 * cth);
end
`endif