Add InternalCellChecker support for $specify2 and $specify3
authorClifford Wolf <clifford@clifford.at>
Mon, 22 Apr 2019 07:26:20 +0000 (09:26 +0200)
committerClifford Wolf <clifford@clifford.at>
Tue, 23 Apr 2019 19:36:59 +0000 (21:36 +0200)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
kernel/rtlil.cc

index 7d5334eb15d0c7c9f44509ab678e851235082db3..9e06b8323ebeafe7749418c3ba54a1d3e3dd008f 100644 (file)
@@ -1194,13 +1194,27 @@ namespace {
                                return;
                        }
 
-                       if (cell->type == "$specify2") {
-                               // FIXME
-                               return;
-                       }
-
-                       if (cell->type == "$specify3") {
-                               // FIXME
+                       if (cell->type.in("$specify2", "$specify3")) {
+                               param_bool("\\FULL");
+                               param_bool("\\SRC_DST_PEN");
+                               param_bool("\\SRC_DST_POL");
+                               param("\\T_RISE_MIN");
+                               param("\\T_RISE_AVG");
+                               param("\\T_RISE_MAX");
+                               param("\\T_FALL_MIN");
+                               param("\\T_FALL_AVG");
+                               param("\\T_FALL_MAX");
+                               port("\\EN", 1);
+                               port("\\SRC", param("\\SRC_WIDTH"));
+                               port("\\DST", param("\\DST_WIDTH"));
+                               if (cell->type == "$specify3") {
+                                       param_bool("\\EDGE_EN");
+                                       param_bool("\\EDGE_POL");
+                                       param_bool("\\DAT_DST_PEN");
+                                       param_bool("\\DAT_DST_POL");
+                                       port("\\DAT", param("\\DST_WIDTH"));
+                               }
+                               check_expected();
                                return;
                        }