diff options
author | gatecat <gatecat@ds0.me> | 2021-12-14 19:27:20 +0000 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2021-12-14 19:27:20 +0000 |
commit | a946ed0206cda29ce1bfe7f5a09f1b5e3d21794d (patch) | |
tree | ddfc2c7888d4be2d027022adf37f979384dc9640 | |
parent | 256134d6158b59831462f26f0011627eda10beb2 (diff) | |
download | nextpnr-a946ed0206cda29ce1bfe7f5a09f1b5e3d21794d.tar.gz nextpnr-a946ed0206cda29ce1bfe7f5a09f1b5e3d21794d.tar.bz2 nextpnr-a946ed0206cda29ce1bfe7f5a09f1b5e3d21794d.zip |
ice40: Pack LUT at start of carry chain if there is 1 candidate
Signed-off-by: gatecat <gatecat@ds0.me>
-rw-r--r-- | ice40/pack.cc | 2 |
1 files changed, 2 insertions, 0 deletions
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<CellInfo> created_lc = |