final Reg changes
This commit is contained in:
@ -355,59 +355,59 @@ class Control(implicit conf: RocketConfiguration) extends Module
|
||||
val id_waddr = Mux(id_sel_wa === WA_RA, RA, io.dpath.inst(31,27));
|
||||
val id_load_use = Bool();
|
||||
|
||||
val ex_reg_xcpt_interrupt = RegReset(Bool(false))
|
||||
val ex_reg_valid = RegReset(Bool(false))
|
||||
val ex_reg_eret = RegReset(Bool(false))
|
||||
val ex_reg_wen = RegReset(Bool(false))
|
||||
val ex_reg_fp_wen = RegReset(Bool(false))
|
||||
val ex_reg_flush_inst = RegReset(Bool(false))
|
||||
val ex_reg_jalr = RegReset(Bool(false))
|
||||
val ex_reg_btb_hit = RegReset(Bool(false))
|
||||
val ex_reg_div_mul_val = RegReset(Bool(false))
|
||||
val ex_reg_mem_val = RegReset(Bool(false))
|
||||
val ex_reg_xcpt = RegReset(Bool(false))
|
||||
val ex_reg_fp_val = RegReset(Bool(false))
|
||||
val ex_reg_vec_val = RegReset(Bool(false))
|
||||
val ex_reg_replay_next = RegReset(Bool(false))
|
||||
val ex_reg_load_use = RegReset(Bool(false))
|
||||
val ex_reg_pcr = RegReset(PCR.N)
|
||||
val ex_reg_br_type = RegReset(BR_N)
|
||||
val ex_reg_xcpt_interrupt = Reg(init=Bool(false))
|
||||
val ex_reg_valid = Reg(init=Bool(false))
|
||||
val ex_reg_eret = Reg(init=Bool(false))
|
||||
val ex_reg_wen = Reg(init=Bool(false))
|
||||
val ex_reg_fp_wen = Reg(init=Bool(false))
|
||||
val ex_reg_flush_inst = Reg(init=Bool(false))
|
||||
val ex_reg_jalr = Reg(init=Bool(false))
|
||||
val ex_reg_btb_hit = Reg(init=Bool(false))
|
||||
val ex_reg_div_mul_val = Reg(init=Bool(false))
|
||||
val ex_reg_mem_val = Reg(init=Bool(false))
|
||||
val ex_reg_xcpt = Reg(init=Bool(false))
|
||||
val ex_reg_fp_val = Reg(init=Bool(false))
|
||||
val ex_reg_vec_val = Reg(init=Bool(false))
|
||||
val ex_reg_replay_next = Reg(init=Bool(false))
|
||||
val ex_reg_load_use = Reg(init=Bool(false))
|
||||
val ex_reg_pcr = Reg(init=PCR.N)
|
||||
val ex_reg_br_type = Reg(init=BR_N)
|
||||
val ex_reg_mem_cmd = Reg(Bits())
|
||||
val ex_reg_mem_type = Reg(Bits())
|
||||
val ex_reg_cause = Reg(UInt())
|
||||
|
||||
val mem_reg_xcpt_interrupt = RegReset(Bool(false))
|
||||
val mem_reg_valid = RegReset(Bool(false))
|
||||
val mem_reg_eret = RegReset(Bool(false))
|
||||
val mem_reg_wen = RegReset(Bool(false))
|
||||
val mem_reg_fp_wen = RegReset(Bool(false))
|
||||
val mem_reg_flush_inst = RegReset(Bool(false))
|
||||
val mem_reg_div_mul_val = RegReset(Bool(false))
|
||||
val mem_reg_mem_val = RegReset(Bool(false))
|
||||
val mem_reg_xcpt = RegReset(Bool(false))
|
||||
val mem_reg_fp_val = RegReset(Bool(false))
|
||||
val mem_reg_vec_val = RegReset(Bool(false))
|
||||
val mem_reg_replay = RegReset(Bool(false))
|
||||
val mem_reg_replay_next = RegReset(Bool(false))
|
||||
val mem_reg_pcr = RegReset(PCR.N)
|
||||
val mem_reg_xcpt_interrupt = Reg(init=Bool(false))
|
||||
val mem_reg_valid = Reg(init=Bool(false))
|
||||
val mem_reg_eret = Reg(init=Bool(false))
|
||||
val mem_reg_wen = Reg(init=Bool(false))
|
||||
val mem_reg_fp_wen = Reg(init=Bool(false))
|
||||
val mem_reg_flush_inst = Reg(init=Bool(false))
|
||||
val mem_reg_div_mul_val = Reg(init=Bool(false))
|
||||
val mem_reg_mem_val = Reg(init=Bool(false))
|
||||
val mem_reg_xcpt = Reg(init=Bool(false))
|
||||
val mem_reg_fp_val = Reg(init=Bool(false))
|
||||
val mem_reg_vec_val = Reg(init=Bool(false))
|
||||
val mem_reg_replay = Reg(init=Bool(false))
|
||||
val mem_reg_replay_next = Reg(init=Bool(false))
|
||||
val mem_reg_pcr = Reg(init=PCR.N)
|
||||
val mem_reg_cause = Reg(UInt())
|
||||
val mem_reg_slow_bypass = Reg(Bool())
|
||||
|
||||
val wb_reg_valid = RegReset(Bool(false))
|
||||
val wb_reg_pcr = RegReset(PCR.N)
|
||||
val wb_reg_wen = RegReset(Bool(false))
|
||||
val wb_reg_fp_wen = RegReset(Bool(false))
|
||||
val wb_reg_flush_inst = RegReset(Bool(false))
|
||||
val wb_reg_mem_val = RegReset(Bool(false))
|
||||
val wb_reg_eret = RegReset(Bool(false))
|
||||
val wb_reg_xcpt = RegReset(Bool(false))
|
||||
val wb_reg_replay = RegReset(Bool(false))
|
||||
val wb_reg_valid = Reg(init=Bool(false))
|
||||
val wb_reg_pcr = Reg(init=PCR.N)
|
||||
val wb_reg_wen = Reg(init=Bool(false))
|
||||
val wb_reg_fp_wen = Reg(init=Bool(false))
|
||||
val wb_reg_flush_inst = Reg(init=Bool(false))
|
||||
val wb_reg_mem_val = Reg(init=Bool(false))
|
||||
val wb_reg_eret = Reg(init=Bool(false))
|
||||
val wb_reg_xcpt = Reg(init=Bool(false))
|
||||
val wb_reg_replay = Reg(init=Bool(false))
|
||||
val wb_reg_cause = Reg(UInt())
|
||||
val wb_reg_fp_val = RegReset(Bool(false))
|
||||
val wb_reg_div_mul_val = RegReset(Bool(false))
|
||||
val wb_reg_fp_val = Reg(init=Bool(false))
|
||||
val wb_reg_div_mul_val = Reg(init=Bool(false))
|
||||
|
||||
val take_pc = Bool()
|
||||
val pc_taken = RegUpdate(take_pc, Bool(false))
|
||||
val pc_taken = Reg(next=take_pc, init=Bool(false))
|
||||
val take_pc_wb = Bool()
|
||||
val ctrl_killd = Bool()
|
||||
val ctrl_killx = Bool()
|
||||
@ -611,17 +611,17 @@ class Control(implicit conf: RocketConfiguration) extends Module
|
||||
|
||||
class Scoreboard(n: Int)
|
||||
{
|
||||
val r = RegReset(Bits(0, n))
|
||||
var next = r
|
||||
val r = Reg(init=Bits(0, n))
|
||||
var _next = r
|
||||
var ens = Bool(false)
|
||||
def apply(addr: UInt) = r(addr)
|
||||
def set(en: Bool, addr: UInt): Unit = update(en, next | mask(en, addr))
|
||||
def clear(en: Bool, addr: UInt): Unit = update(en, next & ~mask(en, addr))
|
||||
def set(en: Bool, addr: UInt): Unit = update(en, _next | mask(en, addr))
|
||||
def clear(en: Bool, addr: UInt): Unit = update(en, _next & ~mask(en, addr))
|
||||
private def mask(en: Bool, addr: UInt) = Mux(en, UInt(1) << addr, UInt(0))
|
||||
private def update(en: Bool, update: UInt) = {
|
||||
next = update
|
||||
_next = update
|
||||
ens = ens || en
|
||||
when (ens) { r := next }
|
||||
when (ens) { r := _next }
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user