move icache invalidate out of request bundle
This commit is contained in:
@ -35,7 +35,6 @@ class ioCtrlDpath extends Bundle()
|
||||
val mem_wen = Bool(OUTPUT);
|
||||
val wb_wen = Bool(OUTPUT);
|
||||
val wb_valid = Bool(OUTPUT)
|
||||
val flush_inst = Bool(OUTPUT);
|
||||
val ex_mem_type = Bits(OUTPUT, 3)
|
||||
// exception handling
|
||||
val exception = Bool(OUTPUT);
|
||||
@ -391,7 +390,6 @@ class Control(implicit conf: RocketConfiguration) extends Component
|
||||
val mem_reg_cause = Reg(){UFix()}
|
||||
val mem_reg_mem_type = Reg(){Bits()}
|
||||
|
||||
|
||||
val wb_reg_valid = Reg(resetVal = Bool(false))
|
||||
val wb_reg_pcr = Reg(resetVal = PCR_N)
|
||||
val wb_reg_wen = Reg(resetVal = Bool(false))
|
||||
@ -407,6 +405,7 @@ class Control(implicit conf: RocketConfiguration) extends Component
|
||||
val wb_reg_div_mul_val = Reg(resetVal = Bool(false))
|
||||
|
||||
val take_pc = Bool()
|
||||
val pc_taken = Reg(take_pc, resetVal = Bool(false))
|
||||
val take_pc_wb = Bool()
|
||||
val ctrl_killd = Bool()
|
||||
val ctrl_killx = Bool()
|
||||
@ -739,9 +738,8 @@ class Control(implicit conf: RocketConfiguration) extends Component
|
||||
ctrl_killd := !io.imem.resp.valid || take_pc || ctrl_stalld || id_interrupt
|
||||
|
||||
io.dpath.killd := take_pc || ctrl_stalld && !id_interrupt
|
||||
io.dpath.flush_inst := wb_reg_flush_inst;
|
||||
io.imem.resp.ready := take_pc || !ctrl_stalld
|
||||
io.imem.req.bits.invalidate := wb_reg_flush_inst
|
||||
io.imem.resp.ready := pc_taken || !ctrl_stalld
|
||||
io.imem.invalidate := wb_reg_flush_inst
|
||||
|
||||
io.dpath.mem_load := mem_reg_mem_val && mem_reg_wen
|
||||
io.dpath.ren2 := id_renx2.toBool;
|
||||
|
Reference in New Issue
Block a user