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