aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-02-09 19:27:52 +0000
committerDavid Shah <dave@ds0.me>2019-02-09 19:27:52 +0000
commit054be887aeb7cc4dee1c7191adeff87fda3f1fb3 (patch)
tree028d9a81e13afc63e00d4c1343c167c9b61f620e
parenta520b38424531e83ef47d2c37aab17a2bc764765 (diff)
downloadnextpnr-054be887aeb7cc4dee1c7191adeff87fda3f1fb3.tar.gz
nextpnr-054be887aeb7cc4dee1c7191adeff87fda3f1fb3.tar.bz2
nextpnr-054be887aeb7cc4dee1c7191adeff87fda3f1fb3.zip
ice40: PLLs can't conflict with themselves
Fixes error building testcase from #145 Signed-off-by: David Shah <dave@ds0.me>
-rw-r--r--ice40/pack.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/ice40/pack.cc b/ice40/pack.cc
index 6b3ddefc..c22c4e8c 100644
--- a/ice40/pack.cc
+++ b/ice40/pack.cc
@@ -770,6 +770,8 @@ static void place_plls(Context *ctx)
io_cell->name.c_str(ctx));
if (pll_used_bels.count(found_bel)) {
CellInfo *conflict_cell = pll_used_bels.at(found_bel);
+ if (conflict_cell == ci)
+ continue;
log_error("PLL '%s' PACKAGEPIN forces it to BEL %s but BEL is already assigned to PLL '%s'\n",
ci->name.c_str(ctx), ctx->getBelName(found_bel).c_str(ctx), conflict_cell->name.c_str(ctx));
}