aboutsummaryrefslogtreecommitdiffstats
path: root/ice40
diff options
context:
space:
mode:
Diffstat (limited to 'ice40')
-rw-r--r--ice40/arch.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/ice40/arch.cc b/ice40/arch.cc
index 04c70e94..46faafc4 100644
--- a/ice40/arch.cc
+++ b/ice40/arch.cc
@@ -621,6 +621,29 @@ bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay
}
}
return true;
+ } else if (driver.port == id_COUT && sink.port == id_I3) {
+ bool same_y = driver.cell->constr_abs_z && driver.cell->constr_z < 7;
+ switch (args.type) {
+#ifndef ICE40_HX1K_ONLY
+ case ArchArgs::HX8K:
+#endif
+ case ArchArgs::HX1K:
+ budget = same_y ? 260 : 560;
+ break;
+#ifndef ICE40_HX1K_ONLY
+ case ArchArgs::LP384:
+ case ArchArgs::LP1K:
+ case ArchArgs::LP8K:
+ budget = same_y ? 380 : 670;
+ break;
+ case ArchArgs::UP5K:
+ budget = same_y ? 660 : 1220;
+ break;
+#endif
+ default:
+ log_error("Unsupported iCE40 chip type.\n");
+ }
+ return true;
}
return false;
}