aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2018-11-11 10:22:57 +0000
committerDavid Shah <dave@ds0.me>2018-11-15 11:30:27 +0000
commit084f9cf63f148a8af991c5827a25d239709ff0e6 (patch)
tree2dc44fdf72917a06f3ca45b138d4474fe1fd6b59 /ecp5
parent0eba7d9789b0e9fa10c33349928608f59dbf9488 (diff)
downloadnextpnr-084f9cf63f148a8af991c5827a25d239709ff0e6.tar.gz
nextpnr-084f9cf63f148a8af991c5827a25d239709ff0e6.tar.bz2
nextpnr-084f9cf63f148a8af991c5827a25d239709ff0e6.zip
ecp5: DCU clocking fixes
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5')
-rw-r--r--ecp5/globals.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/ecp5/globals.cc b/ecp5/globals.cc
index c6cc7e57..66c62024 100644
--- a/ecp5/globals.cc
+++ b/ecp5/globals.cc
@@ -55,6 +55,9 @@ class Ecp5GlobalRouter
{
if (user.cell->type == id_TRELLIS_SLICE && (user.port == id_CLK || user.port == id_WCK))
return true;
+ if (user.cell->type == id_DCUA && (user.port == id_CH0_FF_RXI_CLK || user.port == id_CH1_FF_RXI_CLK ||
+ user.port == id_CH0_FF_TXI_CLK || user.port == id_CH1_FF_TXI_CLK))
+ return true;
return false;
}
@@ -65,8 +68,11 @@ class Ecp5GlobalRouter
NetInfo *ni = net.second.get();
clockCount[ni->name] = 0;
for (const auto &user : ni->users) {
- if (is_clock_port(user))
+ if (is_clock_port(user)) {
clockCount[ni->name]++;
+ if (user.cell->type == id_DCUA)
+ clockCount[ni->name] += 100;
+ }
}
// log_info("clkcount %s: %d\n", ni->name.c_str(ctx),clockCount[ni->name]);
}
@@ -379,7 +385,7 @@ 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) {
+ } else if (net->driver.cell->type == id_EXTREFB && user.cell->type == id_DCUA) {
keep_users.push_back(user);
} else {
glbnet->users.push_back(user);