tmp
authoryu.dongliang <18588496441@163.com>
Tue, 10 Oct 2023 14:03:30 +0000 (22:03 +0800)
committeryu.dongliang <18588496441@163.com>
Tue, 10 Oct 2023 14:03:30 +0000 (22:03 +0800)
ses_step_jr.c
ses_step_topo.c
ses_step_va_diode.c
ses_step_va_transistor.c

index e88c28cda928cfa949963a75ee6e4f055fc0e356..612d91a8e42b1aa29d713c1146d17b2d12fd4786 100644 (file)
@@ -8,8 +8,14 @@ void __ses_path_pr(ScfEfunction* f, ses_path_t* path, int i, int j, ScfEpin* cp1
        ScfEcomponent* c0 = f->components[p0->cid];
        ScfEcomponent* c1 = f->components[p1->cid];
 
-       if (SCF_EDA_Transistor == c1->type && SCF_EDA_Transistor_E == p1->id && cp1 != p1)
-               p1 = path->pins->data[j - 1];
+       if (SCF_EDA_Transistor == c1->type) {
+
+               if (SCF_EDA_Transistor_E == p1->id) {
+                       if (cp1 != p1)
+                               p1 = path->pins->data[j - 1];
+               } else
+                       p1 = path->pins->data[j - 1];
+       }
 
        if (SCF_EDA_Transistor == c0->type) {
                if (i > 0) {
index 6f68509a12960e206caedd0ea32f34132c1a9d20..d54c1464dfcea963f1c1ccd98761617ae82de928 100644 (file)
@@ -284,6 +284,7 @@ static int _topo_handler(ScfEfunction* f, int64_t ns, int64_t count, ses_ctx_t*
                        p         = c->pins[j];
                        p->vflag  = 0;
                        p->pflag  = 0;
+                       p->dr     = 0;
                }
        }
 
index 58fd699f473c2534a87025af3ec70e8764e88e77..76f994a376247d6c282a32826dd59b996fe6dcbe 100644 (file)
@@ -18,6 +18,8 @@ void __ses_path_split_i(ScfEfunction* f, ses_path_t* path, int i, int j, double
 
        __ses_path_pr(f, path, i, j, NULL, &r, &jr);
 
+       scf_logd("c%ldp%ld--c%ldp%ld, r: %lg\n", p0->cid, p0->id, p1->cid, p1->id, r);
+
        int k;
        for (k    = 0; k < path->childs->size; k++) {
                child =        path->childs->data[k];
@@ -86,7 +88,8 @@ void __ses_path_dr(ScfEpin* p0, ScfEpin* p1, ScfEpin* p)
 
        ses_ui_r(&p->dr, &p->jdr, v, jv, p->a, p->ja);
 
-       scf_logd("c%ldp%ld, v: %lg, r: %lg, p->a: %lg, p->dr: %lg\n", p->cid, p->id, v, r, p->a, p->dr);
+       scf_logw("c%ldp%ld, v: %lg, r: %lg, p1->sr: %lg, p0->sr: %lg, p->a: %lg, p->dr: %lg\n",
+                       p->cid, p->id, v, r, p1->sr, p0->sr, p->a, p->dr);
 
        p->dr  -= r;
        p->jdr -= jr;
index a74b9ca1fad8b8ada5d05048d6519f9a351d7ebc..a2213b46e2d5accdda6945048208d91581d05722 100644 (file)
@@ -99,6 +99,9 @@ static int __ses_path_va_transistor(ScfEfunction* f, ses_path_t* path)
                        p0->ja = el->ja;
                }
 
+               scf_logi("i: %d, c%ldp%ld-c%ldp%ld, pc->v: %lg, pc->a: %lg, p->a: %lg\n",
+                               i, p0->cid, p0->id, pc->cid, pc->id, pc->v, pc->a, p->a);
+
                __ses_path_dr(p, p1, pc);
 
                scf_loge("i: %d, c%ldp%ld--c%ldp%ld, v: %lg, pc->v: %lg, pc->a: %lg, pr: %lg, sr: %lg, pc->dr: %lg\n",