diff options
author | David Shah <dave@ds0.me> | 2019-01-27 14:43:10 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-01-27 14:43:10 +0000 |
commit | f4d8a25fb74a15da76359c5737098a7fd83e193c (patch) | |
tree | 6ceec312199a1a6d578692400ce2417ae26041b1 | |
parent | dbaae51159dcf09a22f0f31153bd7b3d21dc71b3 (diff) | |
download | nextpnr-f4d8a25fb74a15da76359c5737098a7fd83e193c.tar.gz nextpnr-f4d8a25fb74a15da76359c5737098a7fd83e193c.tar.bz2 nextpnr-f4d8a25fb74a15da76359c5737098a7fd83e193c.zip |
ice40: Add budget override for CO->I3 path
Signed-off-by: David Shah <dave@ds0.me>
-rw-r--r-- | ice40/arch.cc | 23 |
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; } |