diff options
Diffstat (limited to 'techlibs/intel_alm/common')
| -rw-r--r-- | techlibs/intel_alm/common/alm_sim.v | 6 | ||||
| -rw-r--r-- | techlibs/intel_alm/common/arith_alm_map.v | 2 | 
2 files changed, 5 insertions, 3 deletions
diff --git a/techlibs/intel_alm/common/alm_sim.v b/techlibs/intel_alm/common/alm_sim.v index 906a95b0b..6e70be865 100644 --- a/techlibs/intel_alm/common/alm_sim.v +++ b/techlibs/intel_alm/common/alm_sim.v @@ -230,8 +230,10 @@ assign Q = ~A;  endmodule -(* abc9_box, lib_whitebox *) -module MISTRAL_ALUT_ARITH(input A, B, C, D0, D1, (* abc9_carry *) input CI, output SO, (* abc9_carry *) output CO); +// Despite the abc9_carry attributes, this doesn't seem to stop ABC9 adding illegal fanout to the carry chain that nextpnr cannot handle. +// So we treat it as a total blackbox from ABC9's perspective for now. +// (* abc9_box, lib_whitebox *) +module MISTRAL_ALUT_ARITH(input A, B, C, D0, D1, /* (* abc9_carry *) */ input CI, output SO, /* (* abc9_carry *) */ output CO);  parameter LUT0 = 16'h0000;  parameter LUT1 = 16'h0000; diff --git a/techlibs/intel_alm/common/arith_alm_map.v b/techlibs/intel_alm/common/arith_alm_map.v index 8515eeb56..7cbf02e9c 100644 --- a/techlibs/intel_alm/common/arith_alm_map.v +++ b/techlibs/intel_alm/common/arith_alm_map.v @@ -34,7 +34,7 @@ wire [Y_WIDTH:0] ALM_CARRY;  // Start of carry chain  generate -    if (_TECHMAP_CONSTMSK_CI_ == 1) begin +    if (_TECHMAP_CONSTMSK_CI_ == 1 && _TECHMAP_CONSTVAL_CI_ == 1'b0) begin          assign ALM_CARRY[0] = _TECHMAP_CONSTVAL_CI_;      end else begin          MISTRAL_ALUT_ARITH #(  | 
