From 94ca6117651d3edc917f8b009d6d6c929c252d17 Mon Sep 17 00:00:00 2001 From: Ruige Lee Date: Mon, 4 Aug 2025 15:05:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E16=EF=BC=8C17=EF=BC=8C18?= =?UTF-8?q?=EF=BC=8C19=E5=8F=B7=E4=B8=AD=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/scala/backBoard/shin/Interface.scala | 9 +++++++++ src/main/scala/backBoard/shin/ShinTop.scala | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/src/main/scala/backBoard/shin/Interface.scala b/src/main/scala/backBoard/shin/Interface.scala index 5da20b6..220265b 100644 --- a/src/main/scala/backBoard/shin/Interface.scala +++ b/src/main/scala/backBoard/shin/Interface.scala @@ -177,6 +177,7 @@ class InterfaceIO extends Bundle{ val intHWTrig = Input(Vec(2, Bool())) val intHWClr = Output(Vec(2, Bool())) val intSlvTrig = Input(Vec(8, Bool())) + val intTransEnd = Input(Vec(4,Bool())) val interrupt = Output(Bool()) @@ -1002,6 +1003,13 @@ trait InterfaceSystem{ this: InterfaceBase => } } + //传输完成请求 16,17,18,19 + for( i <- 0 until 4 ){ + when( io.intTransEnd(i) ){ + intStatus(16+i) := true.B + } + } + //下行接收硬件错误 when( io.intHWTrig(0) ){ intStatus(29) := true.B @@ -1040,6 +1048,7 @@ trait InterfaceSystem{ this: InterfaceBase => false.B | //主站发送周期到了 (~RegNext(io.wdtTrigger.reduce(_|_), false.B) & io.wdtTrigger.reduce(_|_) & cReg.intEnable(4)) | //主站接收看门狗溢出 (0 until 8).map{ i => io.intSlvTrig(i) & cReg.intEnable(8+i)}.reduce(_|_) | //从站SM请求 + (0 until 4).map{ i => io.intTransEnd(i) & cReg.intEnable(16+i)}.reduce(_|_) | //传输完成请求 16,17,18,19 io.intHWTrig(0) | //下行接收硬件错误 io.intHWTrig(1) //上行接收硬件错误 diff --git a/src/main/scala/backBoard/shin/ShinTop.scala b/src/main/scala/backBoard/shin/ShinTop.scala index 1c4228b..b9fb1ec 100644 --- a/src/main/scala/backBoard/shin/ShinTop.scala +++ b/src/main/scala/backBoard/shin/ShinTop.scala @@ -51,6 +51,11 @@ abstract class ShinTopBase extends Module{ interface.io.latchPin := io.latchPin + interface.io.intTransEnd(0) := downCDRIn.io.axis.fire & downCDRIn.io.axis.bits.tlast + interface.io.intTransEnd(1) := downCDROut.io.axis.fire & downCDROut.io.axis.bits.tlast + interface.io.intTransEnd(2) := upCDRIn.io.axis.fire & upCDRIn.io.axis.bits.tlast + interface.io.intTransEnd(3) := upCDROut.io.axis.fire & upCDROut.io.axis.bits.tlast + io.ledTest := RegNext( Cat(slaveParser.io.intHWTrig(0), slaveParser.io.intHWTrig(1)) ) io.isSoftReset := interface.io.isSoftReset