diff options
author | David Shah <dave@ds0.me> | 2018-11-09 18:18:50 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2018-11-15 11:30:27 +0000 |
commit | 0eba7d9789b0e9fa10c33349928608f59dbf9488 (patch) | |
tree | b344c42fe2676fe1ed810ae24b1fe1fba7ad03aa /ecp5 | |
parent | bc022173f01794ea67809f2d7cdc54c3c3d6696f (diff) | |
download | nextpnr-0eba7d9789b0e9fa10c33349928608f59dbf9488.tar.gz nextpnr-0eba7d9789b0e9fa10c33349928608f59dbf9488.tar.bz2 nextpnr-0eba7d9789b0e9fa10c33349928608f59dbf9488.zip |
ecp5: EXTREFB fixes
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5')
-rw-r--r-- | ecp5/globals.cc | 2 | ||||
-rw-r--r-- | ecp5/pack.cc | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ecp5/globals.cc b/ecp5/globals.cc index 75535dfe..c6cc7e57 100644 --- a/ecp5/globals.cc +++ b/ecp5/globals.cc @@ -379,6 +379,8 @@ class Ecp5GlobalRouter for (auto user : net->users) { if (user.port == id_CLKFB) { keep_users.push_back(user); + } else if (net->driver.cell->type == id_EXTREFB && user.cell->type == id_DCCA) { + keep_users.push_back(user); } else { glbnet->users.push_back(user); user.cell->ports.at(user.port).net = glbnet.get(); diff --git a/ecp5/pack.cc b/ecp5/pack.cc index fdf04d4e..82e2888a 100644 --- a/ecp5/pack.cc +++ b/ecp5/pack.cc @@ -1118,7 +1118,9 @@ class Ecp5Packer if (refo == nullptr) log_error("EXTREFB REFCLKO must not be unconnected\n"); for (auto user : refo->users) { - if (user.cell->type != id_DCUA || (dcu != nullptr && dcu != user.cell)) + if (user.cell->type != id_DCUA) + continue; + if (dcu != nullptr && dcu != user.cell) log_error("EXTREFB REFCLKO must only drive a single DCUA\n"); dcu = user.cell; } |