From 2fdf937259ae03d968bdad75f7c00c3858f581b3 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Thu, 29 Nov 2018 17:08:05 -0800 Subject: [PATCH] Assignment LUT inputs from fastest down --- xc7/cells.cc | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/xc7/cells.cc b/xc7/cells.cc index e1588516..5d9df55a 100644 --- a/xc7/cells.cc +++ b/xc7/cells.cc @@ -259,17 +259,18 @@ std::unique_ptr create_xc7_cell(Context *ctx, IdString type, std::stri void lut_to_lc(const Context *ctx, CellInfo *lut, CellInfo *lc, bool no_dff) { lc->params[ctx->id("INIT")] = lut->params[ctx->id("INIT")]; - replace_port(lut, ctx->id("I0"), lc, id_I1); - if (get_net_or_empty(lut, id_I1)) - replace_port(lut, id_I1, lc, id_I2); - if (get_net_or_empty(lut, id_I2)) - replace_port(lut, id_I2, lc, id_I3); - if (get_net_or_empty(lut, id_I3)) - replace_port(lut, id_I3, lc, id_I4); - if (get_net_or_empty(lut, id_I4)) - replace_port(lut, id_I4, lc, id_I5); + int i = 6; if (get_net_or_empty(lut, id_I5)) - replace_port(lut, id_I5, lc, id_I6); + replace_port(lut, id_I5, lc, ctx->id("I" + std::to_string(i--))); + if (get_net_or_empty(lut, id_I4)) + replace_port(lut, id_I4, lc, ctx->id("I" + std::to_string(i--))); + if (get_net_or_empty(lut, id_I3)) + replace_port(lut, id_I3, lc, ctx->id("I" + std::to_string(i--))); + if (get_net_or_empty(lut, id_I2)) + replace_port(lut, id_I2, lc, ctx->id("I" + std::to_string(i--))); + if (get_net_or_empty(lut, id_I1)) + replace_port(lut, id_I1, lc, ctx->id("I" + std::to_string(i--))); + replace_port(lut, ctx->id("I0"), lc, ctx->id("I" + std::to_string(i--))); if (no_dff) { replace_port(lut, id_O, lc, id_O); lc->params[ctx->id("DFF_ENABLE")] = "0";