From f387634a4128762c698fe79dde6e723ca2d3f817 Mon Sep 17 00:00:00 2001 From: David Biancolin Date: Mon, 2 Nov 2020 10:38:37 -0800 Subject: [PATCH] [clocking] Bound SimplePllConfiguration by maximum reference freq --- .../src/main/scala/clocking/DividerOnlyClockGenerator.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/generators/chipyard/src/main/scala/clocking/DividerOnlyClockGenerator.scala b/generators/chipyard/src/main/scala/clocking/DividerOnlyClockGenerator.scala index fb816c35..bbf05f38 100644 --- a/generators/chipyard/src/main/scala/clocking/DividerOnlyClockGenerator.scala +++ b/generators/chipyard/src/main/scala/clocking/DividerOnlyClockGenerator.scala @@ -16,12 +16,13 @@ import scala.collection.immutable.ListMap object FrequencyUtils { def computeReferenceFrequencyMHz( requestedOutputs: Seq[ClockParameters], - maximumAllowableDivisor: Int = 0xFFFF): ClockParameters = { + maximumAllowableFreqMHz: Double = 8000.0): ClockParameters = { require(requestedOutputs.nonEmpty) require(!requestedOutputs.contains(0.0)) val freqs = requestedOutputs.map(f => BigInt(Math.round(f.freqMHz * 1000 * 1000))) val refFreq = freqs.reduce((a, b) => a * b / a.gcd(b)).toDouble / (1000 * 1000) - assert((refFreq / freqs.min.toDouble) < maximumAllowableDivisor.toDouble) + assert(refFreq < maximumAllowableFreqMHz, + s"Reference frequency ${refFreq} exceeds maximum allowable value of ${maximumAllowableFreqMHz} MHz") ClockParameters(refFreq) } }