transistor
authoryu.dongliang <18588496441@163.com>
Tue, 25 Jul 2023 15:52:41 +0000 (23:52 +0800)
committeryu.dongliang <18588496441@163.com>
Tue, 25 Jul 2023 15:52:41 +0000 (23:52 +0800)
ses_step_topo.c

index a26dfb3a455bb78061395aed83eba8d26298937a..5b509d12c8cff5b0eaec71e7d21204685e129c0c 100644 (file)
@@ -31,7 +31,9 @@ static int __dfs_path(ScfEfunction* f, ScfEcomponent* rc, ScfEpin* rp, ses_ctx_t
 
        if (scf_vector_add(path, rp) < 0)
                return -ENOMEM;
-       rp->vflag = 1;
+
+       if (SCF_EDA_Transistor != rc->type || SCF_EDA_Transistor_E != rp->id)
+               rp->vflag = 1;
 
        scf_logi("c%ld_p%ld, l%ld\n", rc->id, rp->id, rp->lid);
 
@@ -57,7 +59,9 @@ static int __dfs_path(ScfEfunction* f, ScfEcomponent* rc, ScfEpin* rp, ses_ctx_t
 
                if (scf_vector_add(path, np) < 0)
                        return -ENOMEM;
-               np->vflag = 1;
+
+               if (SCF_EDA_Transistor != rc->type || SCF_EDA_Transistor_E != np->id)
+                       np->vflag = 1;
 
                if (SCF_EDA_PIN_NEG & el->flags) {
                        scf_loge("neg l%ld\n\n", el->id);
@@ -78,7 +82,9 @@ static int __dfs_path(ScfEfunction* f, ScfEcomponent* rc, ScfEpin* rp, ses_ctx_t
 
                        if (p->vflag)
                                continue;
-                       p->vflag = 1;
+
+                       if (SCF_EDA_Transistor != c->type || SCF_EDA_Transistor_E != p->id)
+                               p->vflag = 1;
 
                        ret = __dfs_path(f, c, p, ctx, ppath);
                        if (ret < 0)