From 94871f92a394651061194ba354d3cf90b1c0a71f Mon Sep 17 00:00:00 2001 From: dwarning Date: Tue, 23 Sep 2025 18:19:01 +0200 Subject: [PATCH] count level=3 model poly and metal capacitance in charge calculation normal operation --- src/spicelib/devices/dio/dioacld.c | 1 - src/spicelib/devices/dio/dioload.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/spicelib/devices/dio/dioacld.c b/src/spicelib/devices/dio/dioacld.c index f44c4d639..5708ec1f8 100644 --- a/src/spicelib/devices/dio/dioacld.c +++ b/src/spicelib/devices/dio/dioacld.c @@ -79,7 +79,6 @@ DIOacLoad(GENmodel *inModel, CKTcircuit *ckt) xceq = *(ckt->CKTstate0 + here->DIOsrcapCurrent) * ckt->CKTomega; *(here->DIOqpQpPtr + 1) += xceq; - } } } diff --git a/src/spicelib/devices/dio/dioload.c b/src/spicelib/devices/dio/dioload.c index f6a870efd..1d9ba391a 100644 --- a/src/spicelib/devices/dio/dioload.c +++ b/src/spicelib/devices/dio/dioload.c @@ -484,7 +484,7 @@ next1: /* no soft recovery model (default model allows TT=0, removes diffusion charge) */ diffcharge = here->DIOtTransitTime*cd; *(ckt->CKTstate0 + here->DIOcapCharge) = - diffcharge + deplcharge + deplchargeSW; + diffcharge + deplcharge + deplchargeSW + (here->DIOcmetal + here->DIOcpoly)*vd; diffcap = here->DIOtTransitTime*gd; capd = diffcap + deplcap + deplcapSW + here->DIOcmetal + here->DIOcpoly;