From 6c3011d513c035bd58825420467aa0dfeaf266dc Mon Sep 17 00:00:00 2001 From: Henry Cook Date: Thu, 23 Feb 2017 11:48:49 -0800 Subject: [PATCH] periphery: make external interrupts a UInt rather than a Vec[Bool] --- src/main/scala/rocketchip/Periphery.scala | 6 ++++-- src/main/scala/rocketchip/TestHarness.scala | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/scala/rocketchip/Periphery.scala b/src/main/scala/rocketchip/Periphery.scala index 0181cf62..b504839f 100644 --- a/src/main/scala/rocketchip/Periphery.scala +++ b/src/main/scala/rocketchip/Periphery.scala @@ -48,7 +48,8 @@ trait HasPeripheryParameters { trait PeripheryExtInterrupts { this: TopNetwork => - val extInterrupts = IntBlindInputNode(p(NExtTopInterrupts)) + val nExtInterrupts = p(NExtTopInterrupts) + val extInterrupts = IntInternalInputNode(nExtInterrupts) val extInterruptXing = LazyModule(new IntXing) intBus.intnode := extInterruptXing.intnode @@ -59,7 +60,7 @@ trait PeripheryExtInterruptsBundle { this: TopNetworkBundle { val outer: PeripheryExtInterrupts } => - val interrupts = outer.extInterrupts.bundleIn + val interrupts = UInt(INPUT, width = outer.nExtInterrupts) } trait PeripheryExtInterruptsModule { @@ -67,6 +68,7 @@ trait PeripheryExtInterruptsModule { val outer: PeripheryExtInterrupts val io: PeripheryExtInterruptsBundle } => + outer.extInterrupts.bundleIn(0).zipWithIndex.foreach { case(o, i) => o := io.interrupts(i) } } ///// diff --git a/src/main/scala/rocketchip/TestHarness.scala b/src/main/scala/rocketchip/TestHarness.scala index f9569534..ab7126b4 100644 --- a/src/main/scala/rocketchip/TestHarness.scala +++ b/src/main/scala/rocketchip/TestHarness.scala @@ -15,8 +15,7 @@ class TestHarness()(implicit p: Parameters) extends Module { } val dut = Module(LazyModule(new ExampleRocketTop).module) - for (int <- dut.io.interrupts(0)) - int := Bool(false) + dut.io.interrupts := UInt(0) val channels = p(coreplex.BankedL2Config).nMemoryChannels if (channels > 0) Module(LazyModule(new SimAXIMem(channels)).module).io.axi4 <> dut.io.mem_axi4