新增16,17,18,19号中断
This commit is contained in:
@@ -177,6 +177,7 @@ class InterfaceIO extends Bundle{
|
|||||||
val intHWTrig = Input(Vec(2, Bool()))
|
val intHWTrig = Input(Vec(2, Bool()))
|
||||||
val intHWClr = Output(Vec(2, Bool()))
|
val intHWClr = Output(Vec(2, Bool()))
|
||||||
val intSlvTrig = Input(Vec(8, Bool()))
|
val intSlvTrig = Input(Vec(8, Bool()))
|
||||||
|
val intTransEnd = Input(Vec(4,Bool()))
|
||||||
|
|
||||||
val interrupt = Output(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) ){
|
when( io.intHWTrig(0) ){
|
||||||
intStatus(29) := true.B
|
intStatus(29) := true.B
|
||||||
@@ -1040,6 +1048,7 @@ trait InterfaceSystem{ this: InterfaceBase =>
|
|||||||
false.B | //主站发送周期到了
|
false.B | //主站发送周期到了
|
||||||
(~RegNext(io.wdtTrigger.reduce(_|_), false.B) & io.wdtTrigger.reduce(_|_) & cReg.intEnable(4)) | //主站接收看门狗溢出
|
(~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 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(0) | //下行接收硬件错误
|
||||||
io.intHWTrig(1) //上行接收硬件错误
|
io.intHWTrig(1) //上行接收硬件错误
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ abstract class ShinTopBase extends Module{
|
|||||||
|
|
||||||
interface.io.latchPin := io.latchPin
|
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.ledTest := RegNext( Cat(slaveParser.io.intHWTrig(0), slaveParser.io.intHWTrig(1)) )
|
||||||
|
|
||||||
io.isSoftReset := interface.io.isSoftReset
|
io.isSoftReset := interface.io.isSoftReset
|
||||||
|
|||||||
Reference in New Issue
Block a user