xilinx: consider DSP48E1.ADREG
authorEddie Hung <eddie@fpgeh.com>
Wed, 4 Mar 2020 20:04:02 +0000 (12:04 -0800)
committerEddie Hung <eddie@fpgeh.com>
Wed, 4 Mar 2020 20:04:02 +0000 (12:04 -0800)
techlibs/xilinx/abc9_map.v
techlibs/xilinx/abc9_model.v
techlibs/xilinx/abc9_unmap.v
techlibs/xilinx/cells_sim.v

index 81bcc8ac989a2d11f7f0ab2871859a3c9e009d42..81f8a1d425ef123637d740748a62aec4e25721ea 100644 (file)
@@ -772,6 +772,7 @@ module DSP48E1 (
         .RSTP(RSTP)
     );
     $__ABC9_DSP48E1 #(
+        .ADREG(ADREG),
         .AREG(AREG),
         .BREG(BREG),
         .CREG(CREG),
index 333ac17c0fdc5c934494db80542d1ec2c54146a3..2d109ef8afe2cf4100aa57206e8213273eae4a47 100644 (file)
@@ -107,6 +107,7 @@ module $__ABC9_DSP48E1 (
     output [47:0] P,
     output [47:0] PCOUT
 );
+    parameter integer ADREG = 1;
     parameter integer AREG = 1;
     parameter integer BREG = 1;
     parameter integer CREG = 1;
@@ -176,7 +177,7 @@ module $__ABC9_DSP48E1 (
 
     // Identical comb delays to DSP48E1 in cells_sim.v
     generate
-        if (PREG == 0 && MREG == 0 && AREG == 0)
+        if (PREG == 0 && MREG == 0 && AREG == 0 && ADREG == 0)
             specify
                 ($A *> P) =      \A.P.comb ();
                 ($A *> PCOUT) =  \A.PCOUT.comb ();
@@ -194,7 +195,7 @@ module $__ABC9_DSP48E1 (
                 ($C *> PCOUT) =  \C.PCOUT.comb ();
             endspecify
 
-        if (PREG == 0 && MREG == 0 && DREG == 0)
+        if (PREG == 0 && MREG == 0 && ADREG == 0 && DREG == 0)
             specify
                 ($D *> P) =      \D.P.comb ();
                 ($D *> PCOUT) =  \D.PCOUT.comb ();
index b8d0c4dc0c67119621ceb899d968d0fec7c95a69..5604ceb0a5dcd83da651bcfe5ecead9585c27ba0 100644 (file)
@@ -47,6 +47,7 @@ module $__ABC9_DSP48E1(
     output [47:0] P,
     output [47:0] PCOUT
 );
+    parameter integer ADREG = 1;
     parameter integer AREG = 1;
     parameter integer BREG = 1;
     parameter integer CREG = 1;
index b76055b8427c69e17714b270644d1f1b8f999d7d..63223afbf48abe0fc9bac948a3f33032455ca4c8 100644 (file)
@@ -3231,7 +3231,7 @@ module DSP48E1 (
     endfunction
 
     generate
-        if (PREG == 0 && MREG == 0 && AREG == 0)
+        if (PREG == 0 && MREG == 0 && AREG == 0 && ADREG == 0)
             specify
                 (A *> P) =      \A.P.comb ();
                 (A *> PCOUT) =  \A.PCOUT.comb ();
@@ -3264,7 +3264,7 @@ module DSP48E1 (
                 $setup(C, negedge CLK &&&  IS_CLK_INVERTED, \C.required () );
             endspecify
 
-        if (PREG == 0 && MREG == 0 && DREG == 0)
+        if (PREG == 0 && MREG == 0 && ADREG == 0 && DREG == 0)
             specify
                 (D *> P) =      \D.P.comb ();
                 (D *> PCOUT) =  \D.PCOUT.comb ();
@@ -3286,7 +3286,7 @@ module DSP48E1 (
                 $setup(PCIN, negedge CLK &&&  IS_CLK_INVERTED, USE_PATTERN_DETECT != "NO_PATDET" ? 1315 : 1025);
             endspecify
 
-        if (PREG || AREG || BREG || CREG || DREG || MREG)
+        if (PREG || AREG || ADREG || BREG || CREG || DREG || MREG)
             specify
                 if (!IS_CLK_INVERTED && CEP) (posedge CLK => (P : 48'bx)) = \P.arrival () ;
                 if ( IS_CLK_INVERTED && CEP) (negedge CLK => (P : 48'bx)) = \P.arrival () ;