Do not drop async control signals in abc_map.v
authorEddie Hung <eddie@fpgeh.com>
Wed, 20 Nov 2019 00:57:07 +0000 (16:57 -0800)
committerEddie Hung <eddie@fpgeh.com>
Wed, 20 Nov 2019 00:57:07 +0000 (16:57 -0800)
techlibs/xilinx/abc9_map.v

index 95546db3729f07b651696d792bdb9b02e2519e4d..fc224e8329efb193c71a2c9549b0926020757a96 100644 (file)
@@ -120,10 +120,11 @@ module FDCE (output reg Q, input C, CE, D, CLR);
     .IS_D_INVERTED(IS_D_INVERTED),
     .IS_CLR_INVERTED(IS_CLR_INVERTED)
   ) _TECHMAP_REPLACE_ (
-    .D(D), .Q($nextQ),  .C(C), .CE(CE), .CLR(IS_CLR_INVERTED)
+    .D(D), .Q($nextQ),  .C(C), .CE(CE), .CLR(CLR)
                                          // ^^^ Note that async
-                                         //     control is disabled
-                                         //     here but captured by
+                                         //     control is not directly
+                                         //     supported by abc9 but its
+                                         //     behaviour is captured by
                                          //     $__ABC9_ASYNC below
   );
   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($abc9_currQ));
@@ -142,10 +143,11 @@ module FDCE_1 (output reg Q, input C, CE, D, CLR);
   FDCE_1 #(
     .INIT(INIT)
   ) _TECHMAP_REPLACE_ (
-    .D(D), .Q($nextQ), .C(C), .CE(CE), .CLR(1'b0)
+    .D(D), .Q($nextQ), .C(C), .CE(CE), .CLR(CLR)
                                          // ^^^ Note that async
-                                         //     control is disabled
-                                         //     here but captured by
+                                         //     control is not directly
+                                         //     supported by abc9 but its
+                                         //     behaviour is captured by
                                          //     $__ABC9_ASYNC below
   );
   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($abc9_currQ));
@@ -169,10 +171,11 @@ module FDPE (output reg Q, input C, CE, D, PRE);
     .IS_D_INVERTED(IS_D_INVERTED),
     .IS_PRE_INVERTED(IS_PRE_INVERTED),
   ) _TECHMAP_REPLACE_ (
-    .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(IS_PRE_INVERTED)
+    .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(PRE)
                                          // ^^^ Note that async
-                                         //     control is disabled
-                                         //     here but captured by
+                                         //     control is not directly
+                                         //     supported by abc9 but its
+                                         //     behaviour is captured by
                                          //     $__ABC9_ASYNC below
   );
   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($abc9_currQ));
@@ -189,10 +192,11 @@ module FDPE_1 (output reg Q, input C, CE, D, PRE);
   FDPE_1 #(
     .INIT(INIT)
   ) _TECHMAP_REPLACE_ (
-    .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(1'b0)
+    .D(D), .Q($nextQ), .C(C), .CE(CE), .PRE(PRE)
                                          // ^^^ Note that async
-                                         //     control is disabled
-                                         //     here but captured by
+                                         //     control is not directly
+                                         //     supported by abc9 but its
+                                         //     behaviour is captured by
                                          //     $__ABC9_ASYNC below
   );
   \$__ABC9_FF_ abc_dff (.D($nextQ), .Q($abc9_currQ));