topo
authoryu.dongliang <18588496441@163.com>
Wed, 18 Oct 2023 05:40:14 +0000 (13:40 +0800)
committeryu.dongliang <18588496441@163.com>
Wed, 18 Oct 2023 05:40:14 +0000 (13:40 +0800)
ses_step_simplify.c
ses_step_topo.c

index 07b80db2f502d6a20880dba041f4a0ce02e7d30a..faa31b51ac5f0bb6fda564cb3b8fa83d8ba17feb 100644 (file)
@@ -76,6 +76,8 @@ static int _simplify_draw(ScfEfunction* f, uint32_t bx, uint32_t by, uint32_t bw
                                && SCF_EDA_Status_OFF == c->status)
                        continue;
 
+               cairo_set_line_width(cr, 2);
+
                uint8_t text[64];
                snprintf(text, sizeof(text) - 1, "%ld", c->id);
 
index 98a3b86e49936a9e377c9a00fa35addad0657183..2cb0dd679d91b487f98ecb77ce4a133f3037b955 100644 (file)
@@ -42,6 +42,9 @@ int __dfs_path(ScfEfunction* f, ScfEcomponent* rc, ScfEpin* rp, scf_vector_t* __
                if (np->vflag)
                        continue;
 
+               if (SCF_EDA_Transistor == rc->type && SCF_EDA_Transistor_E != np->id)
+                       continue;
+
                scf_logi("c%ld_p%ld, l%ld, vflag: %d, pflag: %d\n", np->cid, np->id, np->lid, np->vflag, np->pflag);
 
                el = f->elines[np->lid];
@@ -270,6 +273,22 @@ static int topo_epin_cmp(const void* v0, const void* v1, void* arg)
        return 0;
 }
 
+static int _topo_print(scf_vector_t* paths)
+{
+       ses_path_t* path;
+
+       int i;
+       for (i = 0; i < paths->size; i++) {
+               path      = paths->data[i];
+
+               scf_logi("i: %d, path->type: %d\n", i, path->type);
+
+               ses_path_print(path);
+
+               printf("\n");
+       }
+}
+
 static int _topo_handler(ScfEfunction* f, int64_t ns, int64_t count, ses_ctx_t* ctx)
 {
        ses_path_t*      path;
@@ -362,21 +381,13 @@ static int _topo_handler(ScfEfunction* f, int64_t ns, int64_t count, ses_ctx_t*
                }
        }
 
+//     _topo_print(ctx->paths);
+
        int ret = _topo_layers(ctx->paths, B);
        if (ret < 0)
                return ret;
 
-#if 1
-       for (i = 0; i < ctx->paths->size; i++) {
-               path      = ctx->paths->data[i];
-
-               scf_logi("i: %ld, path->type: %d\n", i, path->type);
-
-               ses_path_print(path);
-
-               printf("\n");
-       }
-#endif
+       _topo_print(ctx->paths);
        return 0;
 }