tmp
authoryu.dongliang <18588496441@163.com>
Sun, 16 Jul 2023 12:33:25 +0000 (20:33 +0800)
committeryu.dongliang <18588496441@163.com>
Sun, 16 Jul 2023 12:33:25 +0000 (20:33 +0800)
ses_layout.c

index 769ead35cc22b6c2f5ebbdd1b9321c918d8ee40a..793b32bbc257e9f073580b8820e7846c9974b956 100644 (file)
@@ -424,13 +424,13 @@ int ses_layout_function(ScfEfunction* f, int d)
                                p0 = c0->pins[el0->pins[m + 1]];
                                p1 = c0->pins[el1->pins[n + 1]];
 
-                               p0->x = el0->lines[0]->x1 + j * d + rand() % 10;
-                               p1->x = el1->lines[0]->x1 + j * d + rand() % 10;
+                               p0->x = el0->lines[0]->x1 + j * d;
+                               p1->x = el1->lines[0]->x1 + j * d;
                                p0->y = el0->lines[0]->y0;
                                p1->y = el1->lines[0]->y0;
 
-                               el0->lines[0]->x1 += j * d + 10;
-                               el1->lines[0]->x1 += j * d + 10;
+                               el0->lines[0]->x1 += j * d;
+                               el1->lines[0]->x1 += j * d;
 
                                if (f->w < el0->lines[0]->x1 - f->x)
                                        f->w = el0->lines[0]->x1 - f->x;
@@ -455,10 +455,10 @@ int ses_layout_function(ScfEfunction* f, int d)
 
                        if (0 == p0->x) {
 
-                               p0->x = el0->lines[0]->x1 + d + rand() % 10;
+                               p0->x = el0->lines[0]->x1 + d;
                                p0->y = el0->lines[0]->y1;
 
-                               el0->lines[0]->x1 += d + 10;
+                               el0->lines[0]->x1 += d;
 
                                if (f->w < el0->lines[0]->x1 - f->x)
                                        f->w = el0->lines[0]->x1 - f->x;
@@ -660,6 +660,11 @@ next:
 
                c0->x = cx / c0->n_pins;
                c0->y = cy / c0->n_pins;
+
+               if (2 == c0->n_pins) {
+                       c0->pins[0]->x = c0->x;
+                       c0->pins[1]->x = c0->x;
+               }
        }
 
        for (i = 0; i < f->n_elines; i++) {