out16代码
This commit is contained in:
@@ -224,8 +224,44 @@ with BackBoardSlvIn{
|
||||
|
||||
|
||||
|
||||
trait BackBoardSlvOut16{ this: BackBoardSlvLocal =>
|
||||
|
||||
val outReg = RegInit(0.U(16.W))
|
||||
val chsWire = Wire( Vec(16, UInt(2.W)) )
|
||||
|
||||
val mthodReg = RegInit(0.U(16.W))
|
||||
val valueReg = RegInit(0.U(16.W))
|
||||
|
||||
val outPin = Wire(UInt(16.W))
|
||||
|
||||
outPin :=
|
||||
Mux(statusPR === 3.U, outReg, (mthodReg & valueReg) | (~mthodReg & outReg))
|
||||
|
||||
}
|
||||
|
||||
|
||||
class DOut16 extends BackBoardSlvLocal
|
||||
with BackBoardSlvStatusPR
|
||||
with BackBoardSlvOut16{
|
||||
val out = IO(Output(UInt(16.W)))
|
||||
|
||||
when( isCrcPass & downRegTemp(0)(3,0) === 0.U ){
|
||||
outReg := Cat(downRegTemp(3), downRegTemp(2))
|
||||
}
|
||||
when( isCrcPass & downRegTemp(0)(3,0) === 1.U ){
|
||||
mthodReg := Cat(downRegTemp(3), downRegTemp(2))
|
||||
valueReg := Cat(downRegTemp(5), downRegTemp(4))
|
||||
}
|
||||
|
||||
when( statusPage === 0.U ){
|
||||
upReg(4) := Cat( ( 3 to 0 by -1).map{ i => chsWire(i) } )
|
||||
upReg(5) := Cat( ( 7 to 4 by -1).map{ i => chsWire(i) } )
|
||||
upReg(6) := Cat( ( 11 to 8 by -1).map{ i => chsWire(i) } )
|
||||
upReg(7) := Cat( ( 15 to 12 by -1).map{ i => chsWire(i) } )
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// class BackBoardSlvOut16 extends BackBoardSlvLocal{
|
||||
// val in = IO(Input(UInt(32.W)))
|
||||
|
||||
Reference in New Issue
Block a user