From 84195d28bb9894a039dda01d506a5a3a952084e1 Mon Sep 17 00:00:00 2001 From: David Biancolin Date: Wed, 23 Sep 2020 15:29:52 -0700 Subject: [PATCH] [clocks] Don't override existing take frequency if present. --- .../src/main/scala/clocking/ClockGroupNamePrefixer.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/generators/chipyard/src/main/scala/clocking/ClockGroupNamePrefixer.scala b/generators/chipyard/src/main/scala/clocking/ClockGroupNamePrefixer.scala index bf756003..a5618c2d 100644 --- a/generators/chipyard/src/main/scala/clocking/ClockGroupNamePrefixer.scala +++ b/generators/chipyard/src/main/scala/clocking/ClockGroupNamePrefixer.scala @@ -57,7 +57,12 @@ object ClockGroupFrequencySpecifier { val clockFreq = assigners.foldLeft(defaultFreq)( (currentFreq, candidateFunc) => candidateFunc(clock.name.get).getOrElse(currentFreq)) - clock.copy(take = clock.take.map(_.copy(freqMHz = clockFreq)).orElse(Some(ClockParameters(clockFreq)))) + clock.copy(take = clock.take match { + case Some(cp) => + println(s"Clock ${clock.name.get}: using diplomatically specified frequency of ${cp.freqMHz}.") + Some(cp) + case None => Some(ClockParameters(clockFreq)) + }) } LazyModule(new ClockGroupParameterModifier(sinkFn = { s => s.copy(members = s.members.map(lookupFrequencyForName)) })).node