From a946ed0206cda29ce1bfe7f5a09f1b5e3d21794d Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 14 Dec 2021 19:27:20 +0000 Subject: [PATCH] ice40: Pack LUT at start of carry chain if there is 1 candidate Signed-off-by: gatecat --- ice40/pack.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ice40/pack.cc b/ice40/pack.cc index 0db78992..921e73e0 100644 --- a/ice40/pack.cc +++ b/ice40/pack.cc @@ -203,6 +203,8 @@ static void pack_carries(Context *ctx) CellInfo *carry_lc = nullptr; if (carry_ci_lc && carry_lcs.find(carry_ci_lc->name) != carry_lcs.end()) { carry_lc = carry_ci_lc; + } else if (ci_const && carry_lcs.size() == 1) { + carry_lc = ctx->cells.at(*(carry_lcs.begin())).get(); } else { // No LC to pack into matching I0/I1, insert a new one std::unique_ptr created_lc =