xilinx: consider DSP48E1.ADREG

This commit is contained in:
Eddie Hung 2020-03-04 12:04:02 -08:00
parent 512596760b
commit 7b543fdb0c
4 changed files with 8 additions and 5 deletions

View File

@ -772,6 +772,7 @@ module DSP48E1 (
.RSTP(RSTP) .RSTP(RSTP)
); );
$__ABC9_DSP48E1 #( $__ABC9_DSP48E1 #(
.ADREG(ADREG),
.AREG(AREG), .AREG(AREG),
.BREG(BREG), .BREG(BREG),
.CREG(CREG), .CREG(CREG),

View File

@ -107,6 +107,7 @@ module $__ABC9_DSP48E1 (
output [47:0] P, output [47:0] P,
output [47:0] PCOUT output [47:0] PCOUT
); );
parameter integer ADREG = 1;
parameter integer AREG = 1; parameter integer AREG = 1;
parameter integer BREG = 1; parameter integer BREG = 1;
parameter integer CREG = 1; parameter integer CREG = 1;
@ -176,7 +177,7 @@ module $__ABC9_DSP48E1 (
// Identical comb delays to DSP48E1 in cells_sim.v // Identical comb delays to DSP48E1 in cells_sim.v
generate generate
if (PREG == 0 && MREG == 0 && AREG == 0) if (PREG == 0 && MREG == 0 && AREG == 0 && ADREG == 0)
specify specify
($A *> P) = \A.P.comb (); ($A *> P) = \A.P.comb ();
($A *> PCOUT) = \A.PCOUT.comb (); ($A *> PCOUT) = \A.PCOUT.comb ();
@ -194,7 +195,7 @@ module $__ABC9_DSP48E1 (
($C *> PCOUT) = \C.PCOUT.comb (); ($C *> PCOUT) = \C.PCOUT.comb ();
endspecify endspecify
if (PREG == 0 && MREG == 0 && DREG == 0) if (PREG == 0 && MREG == 0 && ADREG == 0 && DREG == 0)
specify specify
($D *> P) = \D.P.comb (); ($D *> P) = \D.P.comb ();
($D *> PCOUT) = \D.PCOUT.comb (); ($D *> PCOUT) = \D.PCOUT.comb ();

View File

@ -47,6 +47,7 @@ module $__ABC9_DSP48E1(
output [47:0] P, output [47:0] P,
output [47:0] PCOUT output [47:0] PCOUT
); );
parameter integer ADREG = 1;
parameter integer AREG = 1; parameter integer AREG = 1;
parameter integer BREG = 1; parameter integer BREG = 1;
parameter integer CREG = 1; parameter integer CREG = 1;

View File

@ -3231,7 +3231,7 @@ module DSP48E1 (
endfunction endfunction
generate generate
if (PREG == 0 && MREG == 0 && AREG == 0) if (PREG == 0 && MREG == 0 && AREG == 0 && ADREG == 0)
specify specify
(A *> P) = \A.P.comb (); (A *> P) = \A.P.comb ();
(A *> PCOUT) = \A.PCOUT.comb (); (A *> PCOUT) = \A.PCOUT.comb ();
@ -3264,7 +3264,7 @@ module DSP48E1 (
$setup(C, negedge CLK &&& IS_CLK_INVERTED, \C.required () ); $setup(C, negedge CLK &&& IS_CLK_INVERTED, \C.required () );
endspecify endspecify
if (PREG == 0 && MREG == 0 && DREG == 0) if (PREG == 0 && MREG == 0 && ADREG == 0 && DREG == 0)
specify specify
(D *> P) = \D.P.comb (); (D *> P) = \D.P.comb ();
(D *> PCOUT) = \D.PCOUT.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); $setup(PCIN, negedge CLK &&& IS_CLK_INVERTED, USE_PATTERN_DETECT != "NO_PATDET" ? 1315 : 1025);
endspecify endspecify
if (PREG || AREG || BREG || CREG || DREG || MREG) if (PREG || AREG || ADREG || BREG || CREG || DREG || MREG)
specify specify
if (!IS_CLK_INVERTED && CEP) (posedge CLK => (P : 48'bx)) = \P.arrival () ; if (!IS_CLK_INVERTED && CEP) (posedge CLK => (P : 48'bx)) = \P.arrival () ;
if ( IS_CLK_INVERTED && CEP) (negedge CLK => (P : 48'bx)) = \P.arrival () ; if ( IS_CLK_INVERTED && CEP) (negedge CLK => (P : 48'bx)) = \P.arrival () ;