Chisel3: Don't mix Mux types
This commit is contained in:
parent
3233867390
commit
a78e28523c
@ -229,11 +229,11 @@ class Datapath extends CoreModule
|
|||||||
val mem_br_target = mem_reg_pc.toSInt +
|
val mem_br_target = mem_reg_pc.toSInt +
|
||||||
Mux(io.ctrl.mem_ctrl.branch && io.ctrl.mem_br_taken, imm(IMM_SB, mem_reg_inst),
|
Mux(io.ctrl.mem_ctrl.branch && io.ctrl.mem_br_taken, imm(IMM_SB, mem_reg_inst),
|
||||||
Mux(io.ctrl.mem_ctrl.jal, imm(IMM_UJ, mem_reg_inst), SInt(4)))
|
Mux(io.ctrl.mem_ctrl.jal, imm(IMM_UJ, mem_reg_inst), SInt(4)))
|
||||||
val mem_npc = (Mux(io.ctrl.mem_ctrl.jalr, Cat(vaSign(mem_reg_wdata, mem_reg_wdata), mem_reg_wdata(vaddrBits-1,0)), mem_br_target) & SInt(-2)).toUInt
|
val mem_npc = (Mux(io.ctrl.mem_ctrl.jalr, Cat(vaSign(mem_reg_wdata, mem_reg_wdata), mem_reg_wdata(vaddrBits-1,0)).toSInt, mem_br_target) & SInt(-2)).toUInt
|
||||||
io.ctrl.mem_misprediction := mem_npc != ex_reg_pc || !io.ctrl.ex_valid
|
io.ctrl.mem_misprediction := mem_npc != ex_reg_pc || !io.ctrl.ex_valid
|
||||||
io.ctrl.mem_npc_misaligned := mem_npc(1)
|
io.ctrl.mem_npc_misaligned := mem_npc(1)
|
||||||
io.ctrl.mem_rs1_ra := mem_reg_inst(19,15) === 1
|
io.ctrl.mem_rs1_ra := mem_reg_inst(19,15) === 1
|
||||||
val mem_int_wdata = Mux(io.ctrl.mem_ctrl.jalr, mem_br_target, mem_reg_wdata).toUInt
|
val mem_int_wdata = Mux(io.ctrl.mem_ctrl.jalr, mem_br_target, mem_reg_wdata.toSInt).toUInt
|
||||||
|
|
||||||
// writeback stage
|
// writeback stage
|
||||||
when (!mem_reg_kill) {
|
when (!mem_reg_kill) {
|
||||||
|
Loading…
Reference in New Issue
Block a user