LSU Decode added
This commit is contained in:
parent
5f5f691ec1
commit
6b768acbc7
4595
quasar_wrapper.fir
4595
quasar_wrapper.fir
File diff suppressed because it is too large
Load Diff
2132
quasar_wrapper.v
2132
quasar_wrapper.v
File diff suppressed because it is too large
Load Diff
|
@ -617,8 +617,8 @@ class dec_decode_ctl extends Module with lib with RequireAsyncReset{
|
||||||
i0_d_c.load := i0_dp.load & i0_legal_decode_d
|
i0_d_c.load := i0_dp.load & i0_legal_decode_d
|
||||||
i0_d_c.alu := i0_dp.alu & i0_legal_decode_d
|
i0_d_c.alu := i0_dp.alu & i0_legal_decode_d
|
||||||
|
|
||||||
val i0_x_c = withClock(io.active_clk){RegEnable(i0_d_c,0.U.asTypeOf(i0_d_c), i0_x_ctl_en.asBool)}
|
val i0_x_c = withClock(io.active_clk){RegEnable(i0_d_c, i0_x_ctl_en.asBool)}
|
||||||
val i0_r_c = withClock(io.active_clk){RegEnable(i0_x_c,0.U.asTypeOf(i0_x_c), i0_r_ctl_en.asBool)}
|
val i0_r_c = withClock(io.active_clk){RegEnable(i0_x_c, i0_r_ctl_en.asBool)}
|
||||||
i0_pipe_en := Cat(io.dec_aln.dec_i0_decode_d,withClock(io.active_clk){RegNext(i0_pipe_en(3,1), init=0.U)})
|
i0_pipe_en := Cat(io.dec_aln.dec_i0_decode_d,withClock(io.active_clk){RegNext(i0_pipe_en(3,1), init=0.U)})
|
||||||
|
|
||||||
i0_x_ctl_en := (i0_pipe_en(3,2).orR | io.clk_override)
|
i0_x_ctl_en := (i0_pipe_en(3,2).orR | io.clk_override)
|
||||||
|
|
|
@ -2126,7 +2126,7 @@ miccme_ce_req := (("hffffffff".U(32.W) << miccmect(31,27)) & Cat(0.U(5.W), miccm
|
||||||
val dicad1_raw = WireInit(UInt(7.W),0.U)
|
val dicad1_raw = WireInit(UInt(7.W),0.U)
|
||||||
val wr_dicad1_r = io.allow_dbg_halt_csr_write & io.dec_csr_wen_r_mod & (io.dec_csr_wraddr_r(11,0) === DICAD1)
|
val wr_dicad1_r = io.allow_dbg_halt_csr_write & io.dec_csr_wen_r_mod & (io.dec_csr_wraddr_r(11,0) === DICAD1)
|
||||||
|
|
||||||
val dicad1_ns = Mux(wr_dicad1_r.asBool, io.dec_csr_wrdata_r(6,0), io.ifu_ic_debug_rd_data(70,64))
|
val dicad1_ns = Mux(wr_dicad1_r.asBool, io.dec_csr_wrdata_r, io.ifu_ic_debug_rd_data(70,64))
|
||||||
|
|
||||||
dicad1_raw := withClock(io.active_clk){RegEnable(dicad1_ns,0.U,(wr_dicad1_r | io.ifu_ic_debug_rd_data_valid).asBool)}
|
dicad1_raw := withClock(io.active_clk){RegEnable(dicad1_ns,0.U,(wr_dicad1_r | io.ifu_ic_debug_rd_data_valid).asBool)}
|
||||||
dicad1 := Cat(0.U(25.W), dicad1_raw)
|
dicad1 := Cat(0.U(25.W), dicad1_raw)
|
||||||
|
@ -2498,7 +2498,7 @@ for(i <- 0 until 4) {io.trigger_pkt_any(i).tdata2 := mtdata2_t(i)}
|
||||||
io.csr_pkt.csr_misa.asBool -> 0x40001104.U(32.W),
|
io.csr_pkt.csr_misa.asBool -> 0x40001104.U(32.W),
|
||||||
io.csr_pkt.csr_mvendorid.asBool -> 0x00000045.U(32.W),
|
io.csr_pkt.csr_mvendorid.asBool -> 0x00000045.U(32.W),
|
||||||
io.csr_pkt.csr_marchid.asBool -> 0x00000010.U(32.W),
|
io.csr_pkt.csr_marchid.asBool -> 0x00000010.U(32.W),
|
||||||
io.csr_pkt.csr_mimpid.asBool -> 0x1.U(32.W),
|
io.csr_pkt.csr_mimpid.asBool -> 0x2.U(32.W),
|
||||||
io.csr_pkt.csr_mhartid.asBool -> Cat(io.core_id,0.U(4.W)),
|
io.csr_pkt.csr_mhartid.asBool -> Cat(io.core_id,0.U(4.W)),
|
||||||
io.csr_pkt.csr_mstatus.asBool -> Cat(0.U(19.W), 3.U(2.W), 0.U(3.W), io.mstatus(1), 0.U(3.W), io.mstatus(0), 0.U(3.W)),
|
io.csr_pkt.csr_mstatus.asBool -> Cat(0.U(19.W), 3.U(2.W), 0.U(3.W), io.mstatus(1), 0.U(3.W), io.mstatus(0), 0.U(3.W)),
|
||||||
io.csr_pkt.csr_mtvec.asBool -> Cat(io.mtvec(30,1), 0.U(1.W), io.mtvec(0)),
|
io.csr_pkt.csr_mtvec.asBool -> Cat(io.mtvec(30,1), 0.U(1.W), io.mtvec(0)),
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue