fix(dcache): 解决写请求发生了两次的问题
This commit is contained in:
parent
ff56c013ef
commit
9524ee9919
|
@ -122,7 +122,7 @@ class DCache(implicit config: CpuConfig) extends Module {
|
|||
}
|
||||
when(io.axi.b.valid) {
|
||||
acc_err := io.axi.b.resp =/= RESP_OKEY.U
|
||||
status := s_idle
|
||||
status := s_save
|
||||
}
|
||||
}
|
||||
is(s_save) {
|
||||
|
|
|
@ -10,7 +10,7 @@ class AtomAlu extends Module {
|
|||
val io = IO(new Bundle {
|
||||
val in = Input(new Bundle {
|
||||
val rdata = Input(UInt(XLEN.W)) // load data
|
||||
val wdata = Input(UInt(XLEN.W)) // reg data
|
||||
val src2 = Input(UInt(XLEN.W)) // reg data
|
||||
val info = new InstInfo()
|
||||
})
|
||||
val out = Output(new Bundle {
|
||||
|
@ -19,7 +19,7 @@ class AtomAlu extends Module {
|
|||
})
|
||||
|
||||
val src1 = io.in.rdata
|
||||
val src2 = io.in.wdata
|
||||
val src2 = io.in.src2
|
||||
val op = io.in.info.op
|
||||
val is_sub = !LSUOpType.isAdd(op)
|
||||
val sum = (src1 +& (src2 ^ Fill(XLEN, is_sub))) + is_sub
|
||||
|
|
|
@ -92,7 +92,7 @@ class DataMemoryAccess(implicit val config: CpuConfig) extends Module {
|
|||
val atomMemReg = Reg(UInt(XLEN.W))
|
||||
val atomRegReg = Reg(UInt(XLEN.W))
|
||||
atomAlu.in.rdata := atomMemReg
|
||||
atomAlu.in.wdata := io.dataMemory.out.wdata
|
||||
atomAlu.in.src2 := src2
|
||||
atomAlu.in.info := io.memoryUnit.in.info
|
||||
|
||||
val scInvalid = (src1 =/= lrAddr || !lr) && scReq
|
||||
|
|
Loading…
Reference in New Issue