From 26dd0af657a37584506f41746cdd5b2eeb43d969 Mon Sep 17 00:00:00 2001 From: Shreesha Srinath Date: Wed, 2 Aug 2017 18:11:05 -0700 Subject: [PATCH] mockaon: Adds logic to detect external rtc toggles --- src/main/scala/devices/mockaon/MockAONPeriphery.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/scala/devices/mockaon/MockAONPeriphery.scala b/src/main/scala/devices/mockaon/MockAONPeriphery.scala index 8b6303e..3f0d326 100644 --- a/src/main/scala/devices/mockaon/MockAONPeriphery.scala +++ b/src/main/scala/devices/mockaon/MockAONPeriphery.scala @@ -42,7 +42,12 @@ trait HasPeripheryMockAONModuleImp extends LazyMultiIOModuleImp with HasPeripher outer.aon.module.clock := Bool(false).asClock outer.aon.module.reset := Bool(true) - outer.clint.module.io.rtcTick := outer.aon.module.io.rtc.asUInt.toBool + // Synchronize the external toggle into the clint + val rtc_sync = ShiftRegister(outer.aon.module.io.rtc.asUInt.toBool, 3) + val rtc_last = Reg(init = Bool(false), next=rtc_sync) + val rtc_tick = Reg(init = Bool(false), next=(rtc_sync & (~rtc_last))) + + outer.clint.module.io.rtcTick := rtc_tick outer.aon.module.io.ndreset := outer.debug.module.io.ctrl.ndreset }