ice40: Pack LUT at start of carry chain if there is 1 candidate

Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
gatecat 2021-12-14 19:27:20 +00:00
parent 256134d615
commit a946ed0206

View File

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