__ses_layout_path2()
authoryu.dongliang <18588496441@163.com>
Wed, 8 Nov 2023 13:35:33 +0000 (21:35 +0800)
committeryu.dongliang <18588496441@163.com>
Wed, 8 Nov 2023 13:35:33 +0000 (21:35 +0800)
ses_layout.c

index f126ef578d9e8d70f06c81d72647efe2209bf1b7..cb5137163b7871f8b68ba302b4c9244d2f9c622b 100644 (file)
@@ -526,26 +526,30 @@ static void __ses_layout_path2(ScfEfunction* f, ses_path_t* path, ses_path_t* ba
                        f->elines[n]->vflag = 1;
 
                        eline_mov_before(f, __n, n);
-               }
-#if 0
-               c  = f->components[p->cid];
+#if 1
+                       c  = f->components[p->cid];
 
-               if (SCF_EDA_NPN == c->type && SCF_EDA_NPN_C == p->id) {
-                       pe = c->pins[SCF_EDA_NPN_E];
-                       pb = c->pins[SCF_EDA_NPN_B];
+                       if (SCF_EDA_NPN == c->type && SCF_EDA_NPN_C == p->id) {
+                               pe = c->pins[SCF_EDA_NPN_E];
+                               pb = c->pins[SCF_EDA_NPN_B];
 
-                       intptr_t ie = __ses_find_eline_index(f, pe->lid);
-                       intptr_t ib = __ses_find_eline_index(f, pb->lid);
+                               intptr_t ie = __ses_find_eline_index(f, pe->lid);
+                               intptr_t ib = __ses_find_eline_index(f, pb->lid);
 
-                       eline_mov_after(f, __n, ib);
+                               if (!f->elines[ib]->vflag) {
+                                       f->elines[ib]->vflag = 1;
 
-                       ie = __ses_find_eline_index(f, pe->lid);
-                       ib = __ses_find_eline_index(f, pb->lid);
-                       n  = __ses_find_eline_index(f, p->lid);
+                                       eline_mov_after(f, __n, ib);
 
-                       scf_loge("**************** c%ldp%ld, ic: %ld, ib: %ld, ie: %ld\n", p->cid, p->id, n, ib, ie);
-               }
+                                       ie = __ses_find_eline_index(f, pe->lid);
+                                       ib = __ses_find_eline_index(f, pb->lid);
+                                       n  = __ses_find_eline_index(f, p->lid);
+
+                                       scf_loge("**************** c%ldp%ld, ic: %ld, ib: %ld, ie: %ld\n", p->cid, p->id, n, ib, ie);
+                               }
+                       }
 #endif
+               }
        }
 //     printf("\n");
 }