Fix DSP48E1 sim
authorEddie Hung <eddie@fpgeh.com>
Tue, 7 Jan 2020 00:45:29 +0000 (16:45 -0800)
committerEddie Hung <eddie@fpgeh.com>
Tue, 7 Jan 2020 00:45:29 +0000 (16:45 -0800)
techlibs/xilinx/cells_sim.v

index 1cd4d2f30bfd6a61fae1d5b3bfea8050c77805f1..70ab1f2934b08f428747a28b54569712b2118107 100644 (file)
@@ -2388,8 +2388,8 @@ module DSP48E1 (
                     if (CEB2) Br2 <= Br1;
                 end
         end else if (BREG == 1) begin
-            //initial Br1 = 25'b0;
-            initial Br2 = 25'b0;
+            //initial Br1 = 18'b0;
+            initial Br2 = 18'b0;
             always @(posedge CLK)
                 if (RSTB) begin
                     Br1 <= 18'b0;
@@ -2436,7 +2436,7 @@ module DSP48E1 (
     endgenerate
 
     // A/D input selection and pre-adder
-    wire signed [29:0] Ar12_muxed = INMODEr[0] ? Ar1 : Ar2;
+    wire signed [24:0] Ar12_muxed = INMODEr[0] ? Ar1 : Ar2;
     wire signed [24:0] Ar12_gated = INMODEr[1] ? 25'b0 : Ar12_muxed;
     wire signed [24:0] Dr_gated   = INMODEr[2] ? Dr : 25'b0;
     wire signed [24:0] AD_result  = INMODEr[3] ? (Dr_gated - Ar12_gated) : (Dr_gated + Ar12_gated);