新增16,17,18,19号中断

This commit is contained in:
Ruige Lee
2025-08-04 15:05:47 +08:00
parent 5bf5c2f7f8
commit 94ca611765
2 changed files with 14 additions and 0 deletions

View File

@@ -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) //上行接收硬件错误