从机掉线处理
This commit is contained in:
@@ -517,31 +517,55 @@ trait BackBoardMstLVDSUnicast{ this: BackBoardMstLVDSBase =>
|
|||||||
|
|
||||||
|
|
||||||
trait BackBoardMstLVDSError{ this: BackBoardMstLVDSBase =>
|
trait BackBoardMstLVDSError{ this: BackBoardMstLVDSBase =>
|
||||||
when( lvdsMst.io.closed_loop_err ){
|
val shiftClosedLoopErr = ShiftRegisters( lvdsMst.io.closed_loop_err | lvdsMst.io.upstream_cdr_err, 6, false.B, true.B )
|
||||||
|
when( ~shiftClosedLoopErr(0) & lvdsMst.io.closed_loop_err ){
|
||||||
|
|
||||||
//slvOffLine := lvdsMst.io.link_err_location(5,0)
|
//slvOffLine := lvdsMst.io.link_err_location(5,0)
|
||||||
mirrorReg.io.addrB := 3.U
|
mirrorReg.io.addrB := 3.U
|
||||||
mirrorReg.io.datawB := lvdsMst.io.link_err_location(5,0)
|
mirrorReg.io.datawB := lvdsMst.io.link_err_location(5,0)
|
||||||
mirrorReg.io.enwB := true.B
|
mirrorReg.io.enwB := true.B
|
||||||
|
|
||||||
} .elsewhen( RegNext(lvdsMst.io.closed_loop_err, false.B)){
|
|
||||||
|
|
||||||
|
} .elsewhen( ~shiftClosedLoopErr(1) & shiftClosedLoopErr(0) ){
|
||||||
//statusLinkErr := true.B
|
//statusLinkErr := true.B
|
||||||
mirrorReg.io.addrB := 10.U
|
mirrorReg.io.addrB := 10.U
|
||||||
mirrorReg.io.datawB := 1.U
|
mirrorReg.io.datawB := 1.U
|
||||||
mirrorReg.io.enwB := true.B
|
mirrorReg.io.enwB := true.B
|
||||||
|
|
||||||
interrupt := true.B
|
} .elsewhen( ~shiftClosedLoopErr(2) & shiftClosedLoopErr(1) ){
|
||||||
}
|
mirrorReg.io.addrB := 8.U
|
||||||
|
|
||||||
when( lvdsMst.io.upstream_cdr_err ){
|
|
||||||
// statusCDRErr := true.B
|
|
||||||
mirrorReg.io.addrB := 11.U
|
|
||||||
mirrorReg.io.datawB := 1.U
|
mirrorReg.io.datawB := 1.U
|
||||||
mirrorReg.io.enwB := true.B
|
mirrorReg.io.enwB := true.B
|
||||||
|
|
||||||
|
ctrlSynch := false.B
|
||||||
|
|
||||||
|
} .elsewhen( ~shiftClosedLoopErr(3) & shiftClosedLoopErr(2) ){
|
||||||
|
mirrorReg.io.addrB := 9.U
|
||||||
|
mirrorReg.io.datawB := 1.U
|
||||||
|
mirrorReg.io.enwB := true.B
|
||||||
|
|
||||||
|
ctrlTransmit := false.B
|
||||||
|
|
||||||
|
} .elsewhen( ~shiftClosedLoopErr(4) & shiftClosedLoopErr(3) ){
|
||||||
|
mirrorReg.io.addrB := 13.U
|
||||||
|
mirrorReg.io.datawB := 1.U
|
||||||
|
mirrorReg.io.enwB := true.B
|
||||||
|
|
||||||
|
ctrlUnicast := false.B
|
||||||
|
} .elsewhen( ~shiftClosedLoopErr(5) & shiftClosedLoopErr(4) ){
|
||||||
interrupt := true.B
|
interrupt := true.B
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// when( lvdsMst.io.upstream_cdr_err ){
|
||||||
|
// // statusCDRErr := true.B
|
||||||
|
// mirrorReg.io.addrB := 11.U
|
||||||
|
// mirrorReg.io.datawB := 1.U
|
||||||
|
// mirrorReg.io.enwB := true.B
|
||||||
|
// interrupt := true.B
|
||||||
|
// }
|
||||||
|
|
||||||
when( lvdsMst.io.upstream_crc_valid & lvdsMst.io.upstream_crc_err ){
|
when( lvdsMst.io.upstream_crc_valid & lvdsMst.io.upstream_crc_err ){
|
||||||
// statusCRCErr := true.B
|
// statusCRCErr := true.B
|
||||||
mirrorReg.io.addrB := 12.U
|
mirrorReg.io.addrB := 12.U
|
||||||
|
|||||||
Reference in New Issue
Block a user