Files
eb001/src/main/scala/backBoard/LocalRegisters.scala

36 lines
888 B
Scala
Raw Normal View History

package BACK
2023-07-24 19:31:32 +08:00
import chisel3._
import chisel3.util._
trait LocalRegisters { this: BackBoardSlvBase =>
2023-07-24 19:31:32 +08:00
val digitalDir = RegInit(0.U(32.W))
val digitalOut = RegInit(0.U(32.W))
val digitalIn = WireDefault(0.U(32.W))
2023-07-24 19:31:32 +08:00
registersRD := Mux1H(Seq(
(upStreamReq.io.latDat.bits.register === 0.U) -> digitalDir,
(upStreamReq.io.latDat.bits.register === 1.U) -> digitalIn,
))
2023-07-24 19:31:32 +08:00
when( upStreamReq.io.latDat.fire & upStreamReq.io.latDat.bits.address(5,1) === io.localHost & upStreamReq.io.latDat.bits.address.extract(0) === 1.U ){
when(upStreamReq.io.latDat.bits.register === 0.U){
digitalDir := upStreamReq.io.latDat.bits.data
}
when(upStreamReq.io.latDat.bits.register === 1.U){
digitalOut := upStreamReq.io.latDat.bits.data
}
}
2023-07-24 19:31:32 +08:00
2023-08-01 15:50:53 +08:00
val led = IO(Output(UInt(3.W)))
val sw = IO( Input(UInt(1.W)))
led := digitalOut(2,0)
digitalIn := sw
2023-07-24 19:31:32 +08:00
}