From 67bfafd0dfa14272290f4b9b9772b1e87e5c74a5 Mon Sep 17 00:00:00 2001 From: RuigeLee Date: Thu, 23 May 2024 13:44:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=86=99=E5=85=A5SRAM?= =?UTF-8?q?=E4=BA=89=E5=A4=BA=E4=BA=86SRAM=E6=8E=A7=E5=88=B6=E6=9D=83?= =?UTF-8?q?=EF=BC=9ACRC=E6=93=8D=E4=BD=9C=E5=B9=B6=E5=85=A5=E4=BC=A0?= =?UTF-8?q?=E8=BE=93=EF=BC=8CCDR=E9=94=99=E8=AF=AF=E4=BB=85=E7=94=A8?= =?UTF-8?q?=E4=B8=8A=E5=8D=87=E6=B2=BF=E8=A7=A6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/scala/backBoard/BackBoardMst.scala | 59 ++++++++++++--------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/src/main/scala/backBoard/BackBoardMst.scala b/src/main/scala/backBoard/BackBoardMst.scala index 5c481f4..88aaf44 100644 --- a/src/main/scala/backBoard/BackBoardMst.scala +++ b/src/main/scala/backBoard/BackBoardMst.scala @@ -438,17 +438,23 @@ trait BackBoardMstLVDSTransmit{ this: BackBoardMstLVDSBase => when( io.lvdsMst.upstream_crc_valid ){ stateCur := 7.U - //statusTransmit - mirrorReg.io.addrB := STATUSTRANSADDR - mirrorReg.io.datawB := 1.U - mirrorReg.io.enwB := true.B - - ctrlTransmit := false.B - interrupt := true.B + when( io.lvdsMst.upstream_crc_err ){ + mirrorReg.io.addrB := STATUSCRCERRADDR + mirrorReg.io.datawB := 1.U + mirrorReg.io.enwB := true.B + } } - } .elsewhen( stateCur === 7.U ){ - // stateCur := 8.U + stateCur := 8.U + + //statusTransmit + mirrorReg.io.addrB := STATUSTRANSADDR + mirrorReg.io.datawB := 1.U + mirrorReg.io.enwB := true.B + + ctrlTransmit := false.B + interrupt := true.B + }.elsewhen( stateCur === 8.U ){ } .otherwise{ @@ -523,17 +529,25 @@ trait BackBoardMstLVDSUnicast{ this: BackBoardMstLVDSBase => when( io.lvdsMst.upstream_crc_valid ){ stateCur := 7.U - //statusUnicast - mirrorReg.io.addrB := STATUSUNICASTADDR - mirrorReg.io.datawB := 1.U - mirrorReg.io.enwB := true.B + when( io.lvdsMst.upstream_crc_err ){ + mirrorReg.io.addrB := STATUSCRCERRADDR + mirrorReg.io.datawB := 1.U + mirrorReg.io.enwB := true.B + } - ctrlUnicast := false.B - interrupt := true.B } + } .elsewhen( stateCur === 7.U ){ + stateCur := 8.U - } .elsewhen( stateCur === 7.U ){ - // stateCur := 8.U + //statusUnicast + mirrorReg.io.addrB := STATUSUNICASTADDR + mirrorReg.io.datawB := 1.U + mirrorReg.io.enwB := true.B + + ctrlUnicast := false.B + interrupt := true.B + + } .elsewhen( stateCur === 8.U ){ } .otherwise{ @@ -581,21 +595,14 @@ trait BackBoardMstLVDSError{ this: BackBoardMstLVDSBase => - - when( io.lvdsMst.upstream_cdr_err ){ + val shiftCDRErr = ShiftRegisters( io.lvdsMst.upstream_cdr_err, 2, false.B, true.B ) + when( ~shiftCDRErr(0) & io.lvdsMst.upstream_cdr_err ){ mirrorReg.io.addrB := STATUSCDRERRADDR mirrorReg.io.datawB := 1.U mirrorReg.io.enwB := true.B interrupt := true.B } - when( io.lvdsMst.upstream_crc_valid & io.lvdsMst.upstream_crc_err ){ - mirrorReg.io.addrB := STATUSCRCERRADDR - mirrorReg.io.datawB := 1.U - mirrorReg.io.enwB := true.B - interrupt := true.B - } - } class BackBoardMst extends BackBoardMstLVDSBase