__ses_find_eline_index()
authoryu.dongliang <18588496441@163.com>
Mon, 30 Oct 2023 02:34:39 +0000 (10:34 +0800)
committeryu.dongliang <18588496441@163.com>
Mon, 30 Oct 2023 02:34:39 +0000 (10:34 +0800)
ses_layout.c

index 2dedeb1bf5c6fd602cb3aa36ac170b5b365996b8..4bf6b1de8cf990f58dab12d84e914e134d2c4721 100644 (file)
@@ -230,7 +230,7 @@ next:
                el->c_pins = el->n_pins;
                el->id     = i;
 
-               scf_logd("line i: %ld, %p, el->flags: %#lx\n", i, el, el->flags);
+               scf_loge("line i: %ld, %p, el->flags: %#lx\n", i, el, el->flags);
 
                for (j = 0; j + 1 < el->n_pins; j += 2) {
 
@@ -240,9 +240,9 @@ next:
                        p->lid   = i;
                        p->c_lid = i;
 
-                       scf_logd("pin j: %ld, c%ldp%ld\n", j, el->pins[j], el->pins[j + 1]);
+                       scf_logi("pin j: %ld, c%ldp%ld\n", j, el->pins[j], el->pins[j + 1]);
                }
-//             printf("\n");
+               printf("\n");
 
                i++;
        }
@@ -250,11 +250,28 @@ next:
        return 0;
 }
 
+static inline int __ses_find_eline_index(ScfEfunction* f, uint64_t lid)
+{
+       ScfEline* el;
+       size_t    j;
+
+       for (j = 0; j < f->n_elines; j++) {
+               el        = f->elines[j];
+
+               if (el->id == lid)
+                       break;
+       }
+       assert(j < f->n_elines);
+
+       return j;
+}
+
 int ses_lines_same_components(ScfEfunction* f)
 {
        ScfEline* tmp;
        ScfEline* el0;
        ScfEline* el1;
+       ScfEline* el2;
        ScfEconn* ec;
 
        size_t i;
@@ -330,7 +347,6 @@ int ses_lines_same_components(ScfEfunction* f)
        if (f->n_elines <= 2)
                return 0;
 
-       size_t k;
        size_t m;
        size_t n;
 
@@ -344,13 +360,8 @@ int ses_lines_same_components(ScfEfunction* f)
        for (i = 0; i < el0->n_conns && i < 2; i++) {
                ec =        el0->conns[i];
 
-               for (j = 0; j < f->n_elines; j++) {
-                       el1       = f->elines[j];
-
-                       if (el1->id == ec->lid)
-                               break;
-               }
-               assert(j < f->n_elines);
+               j   = __ses_find_eline_index(f, ec->lid);
+               el1 = f->elines[j];
 
                n = m + (i << 1) - 1;
 
@@ -370,13 +381,8 @@ int ses_lines_same_components(ScfEfunction* f)
                for (i = 0; i < el0->n_conns; i++) {
                        ec =        el0->conns[i];
 
-                       for (j = 0; j < f->n_elines; j++) {
-                               el1       = f->elines[j];
-
-                               if (el1->id == ec->lid)
-                                       break;
-                       }
-                       assert(j < f->n_elines);
+                       j   = __ses_find_eline_index(f, ec->lid);
+                       el1 = f->elines[j];
 
                        if (0 == el1->n_lines)
                                break;
@@ -401,13 +407,8 @@ int ses_lines_same_components(ScfEfunction* f)
                for (i = 0; i < el0->n_conns; i++) {
                        ec =        el0->conns[i];
 
-                       for (j = 0; j < f->n_elines; j++) {
-                               el1       = f->elines[j];
-
-                               if (el1->id == ec->lid)
-                                       break;
-                       }
-                       assert(j < f->n_elines);
+                       j   = __ses_find_eline_index(f, ec->lid);
+                       el1 = f->elines[j];
 
                        if (0 == el1->n_lines)
                                break;
@@ -427,13 +428,14 @@ int ses_lines_same_components(ScfEfunction* f)
 
                el0->n_lines = 0;
 
-               scf_logd("el0: %ld, n_conns: %ld, n_pins: %ld, flags: %#lx\n", el0->id, el0->n_conns, el0->n_pins, el0->flags);
+               scf_logw("el0: %ld, n_conns: %ld, n_pins: %ld, flags: %#lx\n", el0->id, el0->n_conns, el0->n_pins, el0->flags);
 
                for (j = 0; j < el0->n_conns; j++) {
                        ec        = el0->conns[j];
 
-                       scf_logd("j: %ld, lid: %ld, n_cids: %ld, cid[0]: %ld\n", j, ec->lid, ec->n_cids, ec->cids[0]);
+                       scf_logi("j: %ld, lid: %ld, n_cids: %ld, cid[0]: %ld\n", j, ec->lid, ec->n_cids, ec->cids[0]);
                }
+               printf("\n");
        }
 #endif
 
@@ -1213,7 +1215,7 @@ int ses_layout_board(ScfEboard* b)
                        return ret;
                }
 
-               ses_steps_analyse(f, 5, 1);
+//             ses_steps_analyse(f, 5, 1);
 
                x = f->x;
                y = f->y;