mirror of https://github.com/YosysHQ/yosys.git
xilinx: consider DSP48E1.ADREG
This commit is contained in:
parent
512596760b
commit
7b543fdb0c
|
@ -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),
|
||||||
|
|
|
@ -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 ();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 () ;
|
||||||
|
|
Loading…
Reference in New Issue