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:
parent
ae478c35ce
commit
3804072584
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue