操作类型使用1号寄存器标示,然后使用io触发
This commit is contained in:
@@ -56,6 +56,8 @@ class BackBoardMstBase extends Module{ //10M
|
||||
val ctrlSynch = RegInit( false.B )
|
||||
val ctrlInit = RegInit( false.B )
|
||||
|
||||
val ctrlFun = RegInit(0.U(8.W))
|
||||
|
||||
val slvNum = RegInit(0.U(6.W))
|
||||
val slvOffLine = RegInit(0.U(6.W))
|
||||
val linkNum = RegInit(0.U(7.W))
|
||||
@@ -139,15 +141,7 @@ trait BackBoardMstFSMC{ this: BackBoardMstBase =>
|
||||
statusSynch ,
|
||||
statusInit
|
||||
),
|
||||
( activeAddr === 1.U) ->
|
||||
Cat(
|
||||
ctrlTransmit,
|
||||
0.U(1.W),
|
||||
0.U(1.W),
|
||||
0.U(1.W),
|
||||
ctrlSynch,
|
||||
ctrlInit
|
||||
),
|
||||
( activeAddr === 1.U) -> ctrlFun,
|
||||
( activeAddr === 2.U) -> slvNum,
|
||||
( activeAddr === 3.U) -> slvOffLine,
|
||||
( activeAddr === 4.U) -> testReg,
|
||||
@@ -173,9 +167,22 @@ trait BackBoardMstFSMC{ this: BackBoardMstBase =>
|
||||
|
||||
//10M
|
||||
when(~RegNext( io.testIO, false.B ) & io.testIO){
|
||||
when( ctrlFun === 0.U ){
|
||||
statusInit := false.B
|
||||
ctrlInit := true.B
|
||||
}
|
||||
|
||||
when( ctrlFun === 1.U ){
|
||||
statusSynch := false.B
|
||||
ctrlSynch := true.B
|
||||
}
|
||||
|
||||
when( ctrlFun === 5.U ){
|
||||
ctrlTransmit := true.B
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
when( isAckReady ){
|
||||
isAckReady := false.B
|
||||
@@ -198,16 +205,7 @@ trait BackBoardMstFSMC{ this: BackBoardMstBase =>
|
||||
|
||||
|
||||
when( wrRegAddr === 1.U ){
|
||||
// ctrlTransmit := wrRegData.extract(5)
|
||||
|
||||
ctrlSynch := wrRegData.extract(1)
|
||||
|
||||
when( wrRegData.extract(0) ){
|
||||
ctrlInit := true.B
|
||||
statusSynch := false.B
|
||||
statusInit := false.B
|
||||
}
|
||||
|
||||
ctrlFun := wrRegData
|
||||
}
|
||||
|
||||
when( wrRegAddr === 2.U ){
|
||||
|
||||
Reference in New Issue
Block a user