From b3bdf5eca6ac8ba075dd33da03932aaad06da65d Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Tue, 10 Oct 2017 19:49:19 -0700 Subject: [PATCH] RegField: default argument for .bytes --- src/main/scala/devices/tilelink/Clint.scala | 4 ++-- src/main/scala/regmapper/RegField.scala | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/scala/devices/tilelink/Clint.scala b/src/main/scala/devices/tilelink/Clint.scala index 4f6f9726..0f80640b 100644 --- a/src/main/scala/devices/tilelink/Clint.scala +++ b/src/main/scala/devices/tilelink/Clint.scala @@ -82,8 +82,8 @@ class CoreplexLocalInterrupter(params: ClintParams)(implicit p: Parameters) exte node.regmap( 0 -> ipi.map(r => RegField(ipiWidth, r)), - timecmpOffset(0) -> timecmp.flatMap(r => RegField.bytes(r, timeWidth/8)), - timeOffset -> RegField.bytes(time, timeWidth/8)) + timecmpOffset(0) -> timecmp.flatMap(RegField.bytes(_)), + timeOffset -> RegField.bytes(time)) } } diff --git a/src/main/scala/regmapper/RegField.scala b/src/main/scala/regmapper/RegField.scala index 356c1849..3cf0caa8 100644 --- a/src/main/scala/regmapper/RegField.scala +++ b/src/main/scala/regmapper/RegField.scala @@ -122,6 +122,12 @@ object RegField when (valid) { bytes(i) := data } Bool(true) }))}} + + def bytes(reg: UInt): Seq[RegField] = { + val width = reg.getWidth + require (width % 8 == 0, s"RegField.bytes must be called on byte-sized reg, not ${width} bits") + bytes(reg, width/8) + } } trait HasRegMap