Merge branch 'mp_eb_dev' into feature/auto_release_insert
This commit is contained in:
@@ -1060,10 +1060,10 @@ trait InterfaceWdt{ this: InterfaceBase =>
|
||||
for( i <- 0 until 18 ){
|
||||
cReg.wdtTarCnt(i) :=
|
||||
Cat(
|
||||
RegEnable( dataw, 0.U(8.W), isEnW & addrw === ( "h40b".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, 0.U(8.W), isEnW & addrw === ( "h40a".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, 0.U(8.W), isEnW & addrw === ( "h409".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, 0.U(8.W), isEnW & addrw === ( "h408".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, "hFF".U(8.W), isEnW & addrw === ( "h40b".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, "hFF".U(8.W), isEnW & addrw === ( "h40a".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, "hFF".U(8.W), isEnW & addrw === ( "h409".U (16.W) + (4*i).U ) ),
|
||||
RegEnable( dataw, "hFF".U(8.W), isEnW & addrw === ( "h408".U (16.W) + (4*i).U ) ),
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1201,7 +1201,7 @@ trait InterfaceSystem{ this: InterfaceBase =>
|
||||
(io.intMstTrig(1) & cReg.intEnable(1)) | //主站接收完成
|
||||
(isLocalSyncInt & cReg.intEnable(2)) | //主站发送周期到了
|
||||
(isLatchEvent & cReg.intEnable(3)) | //latch Event
|
||||
(~RegNext(isWdtTrigAndEnable, false.B) & isWdtTrigAndEnable & cReg.intEnable(4)) | //主站接收看门狗溢出
|
||||
(isWdtTrigAndEnable & 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
|
||||
isMstRecCRCErr | //override //主站状态下19为上行crc接收错误 //不会同时发生
|
||||
|
||||
@@ -380,10 +380,10 @@ trait ShinTopSlave{ this: ShinTopBase =>
|
||||
|
||||
slaveParser.io.intHWClr(0) := interface.io.intHWTrig(0) & interface.io.intHWClr(0)
|
||||
slaveParser.io.intHWClr(1) := interface.io.intHWTrig(1) & interface.io.intHWClr(1)
|
||||
downCDRIn.reset := reset.asBool | ( interface.io.intHWTrig(0) & interface.io.intHWClr(0) )
|
||||
upCDRIn.reset := reset.asBool | ( interface.io.intHWTrig(1) & interface.io.intHWClr(1) )
|
||||
downCDROut.reset := reset.asBool | ( interface.io.intHWTrig(0) & interface.io.intHWClr(0) )
|
||||
upCDROut.reset := reset.asBool | ( interface.io.intHWTrig(1) & interface.io.intHWClr(1) )
|
||||
downCDRIn.reset := reset.asBool | RegNext( interface.io.intHWTrig(0) & interface.io.intHWClr(0) )
|
||||
upCDRIn.reset := reset.asBool | RegNext( interface.io.intHWTrig(1) & interface.io.intHWClr(1) )
|
||||
downCDROut.reset := reset.asBool | RegNext( interface.io.intHWTrig(0) & interface.io.intHWClr(0) )
|
||||
upCDROut.reset := reset.asBool | RegNext( interface.io.intHWTrig(1) & interface.io.intHWClr(1) )
|
||||
|
||||
interface.io.lvds <> slaveParser.io.lvds
|
||||
|
||||
@@ -422,7 +422,7 @@ trait ShinTopWatchDog{ this: ShinTopBase =>
|
||||
for( i <- 0 until 16 ){
|
||||
when( isWdtSMEnable(i) & (wdtSMCnt(i) < interface.io.cReg.wdtTarCnt(i+1)) ){
|
||||
wdtSMCnt(i) := wdtSMCnt(i) + 1.U
|
||||
} .elsewhen( ~isWdtSMEnable(i) ){
|
||||
} .elsewhen( ~isWdtSMEnable(i) || (wdtSMCnt(i) >= interface.io.cReg.wdtTarCnt(i+1)) ){
|
||||
wdtSMCnt(i) := 0.U
|
||||
}
|
||||
|
||||
@@ -446,7 +446,7 @@ trait ShinTopWatchDog{ this: ShinTopBase =>
|
||||
|
||||
when( isWdtRec2RtnEnable & (wdtRec2RtnCnt < interface.io.cReg.wdtTarCnt(0)) ){
|
||||
wdtRec2RtnCnt := wdtRec2RtnCnt + 1.U
|
||||
} .elsewhen( ~isWdtRec2RtnEnable ){
|
||||
} .elsewhen( ~isWdtRec2RtnEnable || (wdtRec2RtnCnt >= interface.io.cReg.wdtTarCnt(0)) ){
|
||||
wdtRec2RtnCnt := 0.U
|
||||
}
|
||||
|
||||
@@ -460,8 +460,9 @@ trait ShinTopWatchDog{ this: ShinTopBase =>
|
||||
when( interface.io.cReg.wdtEnable.extract(17) & (wdtRec2RecCnt < interface.io.cReg.wdtTarCnt(17)) ){
|
||||
wdtRec2RecCnt := wdtRec2RecCnt + 1.U
|
||||
} .elsewhen(
|
||||
~interface.io.cReg.wdtEnable.extract(17) |
|
||||
downCDRIn.io.axis.fire
|
||||
~interface.io.cReg.wdtEnable.extract(17) ||
|
||||
downCDRIn.io.axis.fire ||
|
||||
(wdtRec2RecCnt >= interface.io.cReg.wdtTarCnt(17))
|
||||
){
|
||||
wdtRec2RecCnt := 0.U
|
||||
}
|
||||
|
||||
@@ -991,11 +991,11 @@ with SlaveParserProbe{
|
||||
io.intHWTrig(0) := downRecParser.io.isError
|
||||
io.intHWTrig(1) := upRecParser.io.isError
|
||||
|
||||
downRecParser.reset := reset.asBool | (downRecParser.io.isError & io.intHWClr(0))
|
||||
downSendGen.reset := reset.asBool | (downRecParser.io.isError & io.intHWClr(0))
|
||||
downRecParser.reset := reset.asBool | RegNext(downRecParser.io.isError & io.intHWClr(0))
|
||||
downSendGen.reset := reset.asBool | RegNext(downRecParser.io.isError & io.intHWClr(0))
|
||||
|
||||
upRecParser.reset := reset.asBool | (upRecParser.io.isError & io.intHWClr(1))
|
||||
upSendGen.reset := reset.asBool | (upRecParser.io.isError & io.intHWClr(1))
|
||||
upRecParser.reset := reset.asBool | RegNext(upRecParser.io.isError & io.intHWClr(1))
|
||||
upSendGen.reset := reset.asBool | RegNext(upRecParser.io.isError & io.intHWClr(1))
|
||||
|
||||
io.downRecStat := downRecParser.io.stat
|
||||
io.upRecStat := upRecParser.io.stat
|
||||
|
||||
@@ -44,7 +44,7 @@ module ShinTopSpiTb(
|
||||
`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master
|
||||
`define SPI_CSN_NUM (`ALL_DEV_NUM * 3)
|
||||
|
||||
`define HW_SERIAL 0 //(48'h4c5850303031)
|
||||
`define HW_SERIAL 0 //48'h31303050584c //(48'h4c5850303031)
|
||||
`define IQSPI_PINS(N) (`N*4+3):(`N*4)
|
||||
`define EQSPI_PINS(N) ((`N + `ALL_DEV_NUM)*4+3):((`N + `ALL_DEV_NUM)*4)
|
||||
`define IQSPI_MISO(N) qspi_miso[`IQSPI_PINS(`N)]
|
||||
|
||||
@@ -73,8 +73,8 @@ if __name__ == '__main__':
|
||||
|
||||
|
||||
|
||||
#add_tc_2_runlist(watchdog.tc1())
|
||||
#add_tc_2_runlist(watchdog.tc2())
|
||||
add_tc_2_runlist(watchdog.tc1())
|
||||
add_tc_2_runlist(watchdog.tc2())
|
||||
|
||||
add_tc_2_runlist(mac.tc1())
|
||||
add_tc_2_runlist(mac.tc2())
|
||||
|
||||
@@ -64,7 +64,7 @@ def watchdog_test_sm_wr_timeout(tc_id, wd_id):
|
||||
+genIFRwDataCode(2, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(3, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(4, 0x074, False, 0x04)
|
||||
+"#560000\n"
|
||||
+"#700000\n"
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genIFRwDataCode(1, 0x400, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
16'h0404 8'h00 16'h0004 8'h02 8'h00 8'h00 8'h00
|
||||
16'h040c 8'h00 16'h0004 8'h10 8'h00 8'h00 8'h00
|
||||
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h0400 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0400 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0302 8'h00 16'h0002 8'h66 8'h00
|
||||
16'h0306 8'h00 16'h0002 8'h66 8'h00
|
||||
16'h1000 8'h00 16'h0066 8'h06 8'h20 8'h00 8'h00 8'h00 8'h00 8'h03 8'h02 8'he0 8'h02 8'h80 8'h00 8'h00 8'h00 8'h00 8'h04 8'h08 8'h00 8'h10 8'h50 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
|
||||
16'h0020 8'h00 16'h0001 8'h01
|
||||
16'h0800 8'h01 16'h0066 8'h06 8'h20 8'h00 8'h04 8'h00 8'h00 8'h03 8'h02 8'he0 8'h02 8'h80 8'h00 8'h00 8'h04 8'h00 8'h04 8'h08 8'h00 8'h10 8'h50 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
|
||||
16'h0800 8'h01 16'h0080 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx 8'hxx
|
||||
16'h0074 8'h01 16'h0004 8'h03 8'h00 8'h06 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h10 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h0f 8'h00
|
||||
16'h0400 8'h01 16'h0004 8'h02 8'h00 8'h00 8'h00
|
||||
Reference in New Issue
Block a user