aboutsummaryrefslogtreecommitdiffstats
path: root/ice40
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-11-18 15:07:19 +0000
committerDavid Shah <dave@ds0.me>2019-12-27 10:44:30 +0000
commit28279b18fe219c182a97efa992f022c8d243ae28 (patch)
tree25c92ed0d9afdb3d62044d08c07604a32a008908 /ice40
parentc9a0033c5c7d5bfcf75df3afb0f877e61a1d0df5 (diff)
downloadnextpnr-28279b18fe219c182a97efa992f022c8d243ae28.tar.gz
nextpnr-28279b18fe219c182a97efa992f022c8d243ae28.tar.bz2
nextpnr-28279b18fe219c182a97efa992f022c8d243ae28.zip
frontend/generic: Fix regressions
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ice40')
-rw-r--r--ice40/pack.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/ice40/pack.cc b/ice40/pack.cc
index 90c6de31..cb430eb9 100644
--- a/ice40/pack.cc
+++ b/ice40/pack.cc
@@ -527,7 +527,9 @@ static void pack_io(Context *ctx)
std::copy(ci->attrs.begin(), ci->attrs.end(), std::inserter(sb->attrs, sb->attrs.begin()));
} else if (is_sb_io(ctx, ci) || is_sb_gb_io(ctx, ci)) {
NetInfo *net = ci->ports.at(ctx->id("PACKAGE_PIN")).net;
- if ((net != nullptr) && (net->users.size() > 1))
+ if ((net != nullptr) && ((net->users.size() > 2) ||
+ (net->driver.cell != nullptr &&
+ net->driver.cell->type == ctx->id("$nextpnr_obuf") && net->users.size() > 1)))
log_error("PACKAGE_PIN of %s '%s' connected to more than a single top level IO.\n", ci->type.c_str(ctx),
ci->name.c_str(ctx));
}