// Disconnect the A-input if MREG is enabled, since
// combinatorial path is broken
if (AREG == 0 && MREG == 0 && PREG == 0)
- assign iA = A;
+ assign iA = A, pA = 1'bx;
else
\$__ABC_DSP48E1_REG rA (.I(A), .O(iA), .Q(pA));
if (BREG == 0 && MREG == 0 && PREG == 0)
- assign iB = B;
+ assign iB = B, pB = 1'bx;
else
\$__ABC_DSP48E1_REG rB (.I(B), .O(iB), .Q(pB));
if (CREG == 0 && PREG == 0)
- assign iC = C;
+ assign iC = C, pC = 1'bx;
else
\$__ABC_DSP48E1_REG rC (.I(C), .O(iC), .Q(pC));
if (DREG == 0)
assign iD = D;
else if (techmap_guard)
$error("Invalid DSP48E1 configuration: DREG enabled but USE_DPORT == \"FALSE\"");
+ assign pD = 1'bx;
if (ADREG == 1 && techmap_guard)
- $error("Invalid DSP48E1 configuration: ADREG enabled but USE_DPORT == \"FALSE\"");
+ $error("Invalid DSP48E1 configuration: ADREG enabled but USE_DPORT == \"FALSE\"");
+ assign pAD = 1'bx;
if (PREG == 0) begin
+ assign pP = 1'bx;
if (MREG == 1)
\$__ABC_DSP48E1_REG rM (.Q(pM));
+ else
+ assign pM = 1'bx;
end
- else
+ else begin
\$__ABC_DSP48E1_REG rP (.Q(pP));
+ assign pM = 1'bx;
+ end
\$__ABC_DSP48E1_MULT_P_MUX muxP (
.Aq(pA), .Bq(pB), .Cq(pC), .Dq(pD), .ADq(pAD), .Mq(pM), .P(oP), .Pq(pP), .O(P)
// Disconnect the A-input if MREG is enabled, since
// combinatorial path is broken
if (AREG == 0 && ADREG == 0 && MREG == 0 && PREG == 0)
- assign iA = A;
+ assign iA = A, pA = 1'bx;
else
\$__ABC_DSP48E1_REG rA (.I(A), .O(iA), .Q(pA));
if (BREG == 0 && MREG == 0 && PREG == 0)
- assign iB = B;
+ assign iB = B, pB = 1'bx;
else
\$__ABC_DSP48E1_REG rB (.I(B), .O(iB), .Q(pB));
if (CREG == 0 && PREG == 0)
- assign iC = C;
+ assign iC = C, pC = 1'bx;
else
\$__ABC_DSP48E1_REG rC (.I(C), .O(iC), .Q(pC));
if (DREG == 0 && ADREG == 0)
- assign iD = D;
+ assign iD = D, pD = 1'bx;
else
\$__ABC_DSP48E1_REG rD (.I(D), .O(iD), .Q(pD));
if (PREG == 0) begin
if (MREG == 1)
\$__ABC_DSP48E1_REG rM (.Q(pM));
- else if (ADREG == 1)
- \$__ABC_DSP48E1_REG rAD (.Q(pAD));
+ else begin
+ assign pM = 1'bx;
+ if (ADREG == 1)
+ \$__ABC_DSP48E1_REG rAD (.Q(pAD));
+ else
+ assign pAD = 1'bx;
+ end
end
else
\$__ABC_DSP48E1_REG rP (.Q(pP));
// Disconnect the A-input if MREG is enabled, since
// combinatorial path is broken
if (AREG == 0 && PREG == 0)
- assign iA = A;
+ assign iA = A, pA = 1'bx;
else
\$__ABC_DSP48E1_REG rA (.I(A), .O(iA), .Q(pA));
if (BREG == 0 && PREG == 0)
- assign iB = B;
+ assign iB = B, pB = 1'bx;
else
\$__ABC_DSP48E1_REG rB (.I(B), .O(iB), .Q(pB));
if (CREG == 0 && PREG == 0)
- assign iC = C;
+ assign iC = C, pC = 1'bx;
else
\$__ABC_DSP48E1_REG rC (.I(C), .O(iC), .Q(pC));
if (MREG == 1 && techmap_guard)
- $error("Invalid DSP48E1 configuration: MREG enabled but USE_MULT == \"NONE\"");
+ $error("Invalid DSP48E1 configuration: MREG enabled but USE_MULT == \"NONE\"");
+ assign pM = 1'bx;
if (DREG == 1 && techmap_guard)
$error("Invalid DSP48E1 configuration: DREG enabled but USE_DPORT == \"FALSE\"");
+ assign pD = 1'bx;
if (ADREG == 1 && techmap_guard)
$error("Invalid DSP48E1 configuration: ADREG enabled but USE_DPORT == \"FALSE\"");
+ assign pAD = 1'bx;
if (PREG == 1)
\$__ABC_DSP48E1_REG rP (.Q(pP));
+ else
+ assign pP = 1'bx;
\$__ABC_DSP48E1_P_MUX muxP (
.Aq(pA), .Bq(pB), .Cq(pC), .Dq(pD), .ADq(pAD), .Mq(pM), .P(oP), .Pq(pP), .O(P)