diff options
author | Dan Callaghan <dcallagh@google.com> | 2022-02-10 15:48:06 +1100 |
---|---|---|
committer | Dan Callaghan <dcallagh@google.com> | 2022-02-10 15:48:06 +1100 |
commit | 5c300933609b5213322e271a4e745e2d4a101b31 (patch) | |
tree | ab29034939397edc2c4a10e7f955c947064cb51a | |
parent | 74c99f9195eeb47d106ca74b7abb894cfd47cc03 (diff) | |
download | nextpnr-5c300933609b5213322e271a4e745e2d4a101b31.tar.gz nextpnr-5c300933609b5213322e271a4e745e2d4a101b31.tar.bz2 nextpnr-5c300933609b5213322e271a4e745e2d4a101b31.zip |
nexus: reduce OSCA worst case to 7%
The current version of Crosslink-NX Family Data Sheet lists the high
frequency oscillator maximum frequency as 481.5MHz (that is, 7% higher
than its nominal 450MHz):
https://www.latticesemi.com/-/media/LatticeSemi/Documents/DataSheets/CrossLink/FPGA-DS-02049-1-2-1-CrossLink-NX-Family.ashx?document_id=52780
Older documents listed a wider frequency range but ±7% is the range for
production parts.
-rw-r--r-- | nexus/pack.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/nexus/pack.cc b/nexus/pack.cc index 5e9da304..81a729b1 100644 --- a/nexus/pack.cc +++ b/nexus/pack.cc @@ -1987,7 +1987,7 @@ struct NexusPacker copy_constraint(ci, id_CLKI, id_CLKO, 1); } else if (ci->type == id_OSC_CORE) { int div = int_or_default(ci->params, ctx->id("HF_CLK_DIV"), 128); - const float tol = 1.15f; // OSCA has +/-15% frequency tolerance, assume the worst case. + const float tol = 1.07f; // OSCA has +/-7% frequency tolerance, assume the worst case. set_period(ci, id_HFCLKOUT, delay_t((1.0e6 / 450) * (div + 1) / tol)); set_period(ci, id_LFCLKOUT, delay_t((1.0e3 / 10) / tol)); } else if (ci->type == id_PLL_CORE) { |