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 = | 
