IMC DONE
This commit is contained in:
parent
fd0f716798
commit
5875b0bcad
19446
el2_ifu_mem_ctl.fir
19446
el2_ifu_mem_ctl.fir
File diff suppressed because it is too large
Load Diff
8120
el2_ifu_mem_ctl.v
8120
el2_ifu_mem_ctl.v
File diff suppressed because it is too large
Load Diff
|
@ -129,6 +129,8 @@ class mem_ctl_bundle extends Bundle with el2_lib{
|
||||||
val valids = Output(UInt())
|
val valids = Output(UInt())
|
||||||
val tagv_mb_in = Output(UInt())
|
val tagv_mb_in = Output(UInt())
|
||||||
val test = Output(UInt())
|
val test = Output(UInt())
|
||||||
|
val test_way_status_out = Output(UInt())
|
||||||
|
val test_way_status_clken = Output(UInt())
|
||||||
}
|
}
|
||||||
class el2_ifu_mem_ctl extends Module with el2_lib {
|
class el2_ifu_mem_ctl extends Module with el2_lib {
|
||||||
val io = IO(new mem_ctl_bundle)
|
val io = IO(new mem_ctl_bundle)
|
||||||
|
@ -724,7 +726,11 @@ class el2_ifu_mem_ctl extends Module with el2_lib {
|
||||||
val way_status_out = Wire(Vec(ICACHE_TAG_DEPTH, UInt(ICACHE_STATUS_BITS.W)))
|
val way_status_out = Wire(Vec(ICACHE_TAG_DEPTH, UInt(ICACHE_STATUS_BITS.W)))
|
||||||
for (i <- 0 until ICACHE_TAG_DEPTH / 8; j <- 0 until 8)
|
for (i <- 0 until ICACHE_TAG_DEPTH / 8; j <- 0 until 8)
|
||||||
way_status_out((8 * i) + j) := RegEnable(way_status_new_ff, 0.U, ((ifu_status_wr_addr_ff(2,0)===j.U) & way_status_wr_en_ff) & way_status_clken(i))
|
way_status_out((8 * i) + j) := RegEnable(way_status_new_ff, 0.U, ((ifu_status_wr_addr_ff(2,0)===j.U) & way_status_wr_en_ff) & way_status_clken(i))
|
||||||
way_status := (0 until ICACHE_TAG_DEPTH).map(i => Fill(ICACHE_INDEX_HI - ICACHE_TAG_INDEX_LO, ifu_ic_rw_int_addr_ff === i.U) & way_status_out(i)).reverse.reduce(Cat(_, _))
|
val test_way_status_out = (0 until ICACHE_TAG_DEPTH).map(i=>way_status_out(i).asUInt).reverse.reduce(Cat(_,_))
|
||||||
|
io.test_way_status_out := test_way_status_out
|
||||||
|
val test_way_status_clken = (0 until ICACHE_TAG_DEPTH/8).map(i=>way_status_clken(i).asUInt()).reverse.reduce(Cat(_,_))
|
||||||
|
io.test_way_status_clken := test_way_status_clken
|
||||||
|
way_status := (0 until ICACHE_TAG_DEPTH).map(i => Fill(ICACHE_INDEX_HI - ICACHE_TAG_INDEX_LO, ifu_ic_rw_int_addr_ff === i.U) & way_status_out(i)).reverse.reduce(Cat(_, _))
|
||||||
val ifu_ic_rw_int_addr_w_debug = Mux((io.ic_debug_rd_en | io.ic_debug_wr_en) & io.ic_debug_tag_array,
|
val ifu_ic_rw_int_addr_w_debug = Mux((io.ic_debug_rd_en | io.ic_debug_wr_en) & io.ic_debug_tag_array,
|
||||||
io.ic_debug_addr(ICACHE_INDEX_HI - 3, ICACHE_TAG_INDEX_LO - 3), ifu_ic_rw_int_addr(ICACHE_INDEX_HI - 1, ICACHE_TAG_INDEX_LO - 1))
|
io.ic_debug_addr(ICACHE_INDEX_HI - 3, ICACHE_TAG_INDEX_LO - 3), ifu_ic_rw_int_addr(ICACHE_INDEX_HI - 1, ICACHE_TAG_INDEX_LO - 1))
|
||||||
ifu_ic_rw_int_addr_ff := withClock(io.free_clk) {
|
ifu_ic_rw_int_addr_ff := withClock(io.free_clk) {
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue