MockAON: Accept the non-debug interrupt as an input to overall reset.
[sifive-blocks.git] / src / main / scala / devices / mockaon / MockAONWrapper.scala
index 15d755d7afc5d8fa0337e0e71e8576601fac2a01..099dba77e3c762aa06a7a9fe9d6fc40427706ebc 100644 (file)
@@ -27,11 +27,11 @@ class MockAONWrapperBundle extends Bundle {
   val rsts = new MockAONMOffRstIO()
 }
 
-class MockAONWrapper(c: MockAONConfig)(implicit val p: Parameters) extends LazyModule {
+class MockAONWrapper(w: Int, c: MockAONParams)(implicit p: Parameters) extends LazyModule {
 
   val node = TLAsyncInputNode()
   val intnode = IntOutputNode()
-  val aon = LazyModule (new MockAON(c)(p))
+  val aon = LazyModule(new TLMockAON(w, c))
 
   // We only need to isolate the signals
   // coming from MOFF to AON,
@@ -56,6 +56,7 @@ class MockAONWrapper(c: MockAONConfig)(implicit val p: Parameters) extends LazyM
       val in = node.bundleIn
       val ip = intnode.bundleOut
       val rtc  = Clock(OUTPUT)
+      val ndreset = Bool(INPUT)
     }
 
     val aon_io = aon.module.io
@@ -99,7 +100,7 @@ class MockAONWrapper(c: MockAONConfig)(implicit val p: Parameters) extends LazyM
     val lfclk = aon_io.lfclk
 
     val aonrst_catch = Module (new ResetCatchAndSync(3))
-    aonrst_catch.reset := erst | aon_io.wdog_rst
+    aonrst_catch.reset := erst | aon_io.wdog_rst | io.ndreset
     aonrst_catch.clock := lfclk
     aon.module.reset := aonrst_catch.io.sync_reset