scf_eda.proto
authoryu.dongliang <18588496441@163.com>
Tue, 18 Jul 2023 07:04:31 +0000 (15:04 +0800)
committeryu.dongliang <18588496441@163.com>
Tue, 18 Jul 2023 07:04:31 +0000 (15:04 +0800)
scf_eda.pb-c.c
scf_eda.pb-c.h
scf_eda.proto
ses_core.h

index 1ccc9321eff56d19aec6e28360c04442d2600e87..f8da1c4ea23fa63545d3095a6d96ecd1ccd1e979 100644 (file)
@@ -655,7 +655,7 @@ const ProtobufCMessageDescriptor scf_eline__descriptor =
   (ProtobufCMessageInit) scf_eline__init,
   NULL,NULL,NULL    /* reserved[123] */
 };
-static const ProtobufCFieldDescriptor scf_ecomponent__field_descriptors[8] =
+static const ProtobufCFieldDescriptor scf_ecomponent__field_descriptors[9] =
 {
   {
     "id",
@@ -753,6 +753,18 @@ static const ProtobufCFieldDescriptor scf_ecomponent__field_descriptors[8] =
     0,             /* flags */
     0,NULL,NULL    /* reserved1,reserved2, etc */
   },
+  {
+    "vflag",
+    9,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BOOL,
+    0,   /* quantifier_offset */
+    offsetof(ScfEcomponent, vflag),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
 };
 static const unsigned scf_ecomponent__field_indices_by_name[] = {
   2,   /* field[2] = dfo */
@@ -760,6 +772,7 @@ static const unsigned scf_ecomponent__field_indices_by_name[] = {
   0,   /* field[0] = id */
   3,   /* field[3] = pins */
   1,   /* field[1] = type */
+  8,   /* field[8] = vflag */
   6,   /* field[6] = w */
   4,   /* field[4] = x */
   5,   /* field[5] = y */
@@ -767,7 +780,7 @@ static const unsigned scf_ecomponent__field_indices_by_name[] = {
 static const ProtobufCIntRange scf_ecomponent__number_ranges[1 + 1] =
 {
   { 1, 0 },
-  { 0, 8 }
+  { 0, 9 }
 };
 const ProtobufCMessageDescriptor scf_ecomponent__descriptor =
 {
@@ -777,7 +790,7 @@ const ProtobufCMessageDescriptor scf_ecomponent__descriptor =
   "ScfEcomponent",
   "",
   sizeof(ScfEcomponent),
-  8,
+  9,
   scf_ecomponent__field_descriptors,
   scf_ecomponent__field_indices_by_name,
   1,  scf_ecomponent__number_ranges,
index 9d24182ec7e407384c5cda2f9eb650c2045eae0a..8347fb4375a272fa62aca4eb248c1759ca422a3d 100644 (file)
@@ -101,10 +101,11 @@ struct  _ScfEcomponent
   int32_t y;
   int32_t w;
   int32_t h;
+  protobuf_c_boolean vflag;
 };
 #define SCF_ECOMPONENT__INIT \
  { PROTOBUF_C_MESSAGE_INIT (&scf_ecomponent__descriptor) \
-    , 0, 0, 0, 0,NULL, 0, 0, 0, 0 }
+    , 0, 0, 0, 0,NULL, 0, 0, 0, 0, 0 }
 
 
 struct  _ScfEfunction
index 95970566987c456bc4512e5d26dd3486ac7435ab..07f4d95990a3e75cccd8e538124f9e23a52bca2c 100644 (file)
@@ -38,15 +38,16 @@ message scf_eline
 
 message scf_ecomponent
 {
-       required uint64    id   = 1;
-       required uint64    type = 2;
-       required int64     dfo  = 3;
-       repeated scf_epin  pins = 4;
+       required uint64    id    = 1;
+       required uint64    type  = 2;
+       required int64     dfo   = 3;
+       repeated scf_epin  pins  = 4;
 
-       required int32     x    = 5;
-       required int32     y    = 6;
-       required int32     w    = 7;
-       required int32     h    = 8;
+       required int32     x     = 5;
+       required int32     y     = 6;
+       required int32     w     = 7;
+       required int32     h     = 8;
+       required bool      vflag = 9;
 }
 
 message scf_efunction
index c2f54c8bff217f71e74b2b1f357e9c997a6b5d2e..7a33ef4da88aee1428effe7832552706252475ac 100644 (file)
@@ -4,6 +4,32 @@
 #include"scf_eda_pb.h"
 #include"scf_vector.h"
 
-int ses_layout_board(ScfEboard* b);
+typedef struct ses_loop_s    ses_loop_t;
+typedef struct ses_edge_s    ses_edge_t;
+typedef struct ses_pin_s     ses_pin_t;
+
+struct ses_edge_s
+{
+       ScfEcomponent* c0;
+       ScfEpin*       p0;
+
+       ScfEcomponent* c1;
+       ScfEpin*       p1;
+};
+
+struct ses_pin_s
+{
+       ScfEcomponent* c;
+       ScfEpin*       p;
+};
+
+struct ses_loop_s
+{
+       scf_vector_t*  pins;
+};
+
+int ses_layout_board (ScfEboard*    b);
+
+int ses_loop_function(ScfEfunction* f, scf_vector_t* loops);
 
 #endif