aboutsummaryrefslogtreecommitdiffstats
path: root/machxo2/pack.cc
diff options
context:
space:
mode:
authorWilliam D. Jones <thor0505@comcast.net>2021-06-30 15:23:09 -0400
committerWilliam D. Jones <thor0505@comcast.net>2021-07-01 09:59:53 -0400
commit41d09f71871184aabbd7495a485e257fc0450d40 (patch)
treea57e46a0fcbcd4bb90551100fe32bbdbcecec0c0 /machxo2/pack.cc
parente625876949795ea3c0bc9b3071cbb45451cc1a16 (diff)
downloadnextpnr-41d09f71871184aabbd7495a485e257fc0450d40.tar.gz
nextpnr-41d09f71871184aabbd7495a485e257fc0450d40.tar.bz2
nextpnr-41d09f71871184aabbd7495a485e257fc0450d40.zip
machxo2: Fix packing for directly-connected DFFs.
Diffstat (limited to 'machxo2/pack.cc')
-rw-r--r--machxo2/pack.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/machxo2/pack.cc b/machxo2/pack.cc
index a8a2a671..66d2d411 100644
--- a/machxo2/pack.cc
+++ b/machxo2/pack.cc
@@ -62,7 +62,7 @@ static void pack_lut_lutffs(Context *ctx)
// Locations don't match, can't pack
} else {
lut_to_lc(ctx, ci, packed.get(), false);
- dff_to_lc(ctx, dff, packed.get(), false);
+ dff_to_lc(ctx, dff, packed.get(), LutType::Normal);
if (dff_bel != dff->attrs.end())
packed->attrs[ctx->id("BEL")] = dff_bel->second;
packed_cells.insert(dff->name);
@@ -105,7 +105,9 @@ static void pack_remaining_ffs(Context *ctx)
packed->attrs[attr.first] = attr.second;
auto dff_bel = ci->attrs.find(ctx->id("BEL"));
- dff_to_lc(ctx, ci, packed.get(), false);
+
+ dff_to_lc(ctx, ci, packed.get(), LutType::None);
+
if (dff_bel != ci->attrs.end())
packed->attrs[ctx->id("BEL")] = dff_bel->second;
packed_cells.insert(ci->name);
@@ -146,7 +148,7 @@ static void set_net_constant(Context *ctx, NetInfo *orig, NetInfo *constnet, boo
for (auto &attr : uc->attrs)
lc->attrs[attr.first] = attr.second;
- dff_to_lc(ctx, uc, lc.get(), true);
+ dff_to_lc(ctx, uc, lc.get(), LutType::PassThru);
packed_cells.insert(uc->name);
lc->ports[id_A0].net = constnet;