fix icache ram depth; new chisel
This commit is contained in:
parent
f3bb02b2ea
commit
ad713a5d83
@ -94,15 +94,15 @@ class rocketICache(sets: Int, assoc: Int) extends Component {
|
|||||||
for (i <- 0 until assoc)
|
for (i <- 0 until assoc)
|
||||||
{
|
{
|
||||||
val repl_me = (repl_way === UFix(i))
|
val repl_me = (repl_way === UFix(i))
|
||||||
val tag_array = Mem(lines){ Bits(width=tagmsb-taglsb+1) }
|
val tag_array = Mem(sets){ r_cpu_miss_tag }
|
||||||
tag_array.setReadLatency(1);
|
tag_array.setReadLatency(1);
|
||||||
tag_array.setTarget('inst);
|
tag_array.setTarget('inst);
|
||||||
val tag_rdata = tag_array.rw(tag_addr, r_cpu_miss_tag, tag_we && repl_me);
|
val tag_rdata = tag_array.rw(tag_addr, r_cpu_miss_tag, tag_we && repl_me);
|
||||||
|
|
||||||
// valid bit array
|
// valid bit array
|
||||||
val vb_array = Reg(resetVal = Bits(0, lines));
|
val vb_array = Reg(resetVal = Bits(0, sets));
|
||||||
when (io.cpu.invalidate) {
|
when (io.cpu.invalidate) {
|
||||||
vb_array := Bits(0,lines);
|
vb_array := Bits(0,sets);
|
||||||
}
|
}
|
||||||
.elsewhen (tag_we && repl_me) {
|
.elsewhen (tag_we && repl_me) {
|
||||||
vb_array := vb_array.bitSet(r_cpu_req_idx(indexmsb,indexlsb).toUFix, UFix(1,1));
|
vb_array := vb_array.bitSet(r_cpu_req_idx(indexmsb,indexlsb).toUFix, UFix(1,1));
|
||||||
@ -112,7 +112,7 @@ class rocketICache(sets: Int, assoc: Int) extends Component {
|
|||||||
val hit = valid && (tag_rdata === r_cpu_hit_addr(tagmsb,taglsb))
|
val hit = valid && (tag_rdata === r_cpu_hit_addr(tagmsb,taglsb))
|
||||||
|
|
||||||
// data array
|
// data array
|
||||||
val data_array = Mem(lines*REFILL_CYCLES){ Bits(width = MEM_DATA_BITS) }
|
val data_array = Mem(sets*REFILL_CYCLES){ io.mem.resp_data }
|
||||||
data_array.setReadLatency(1);
|
data_array.setReadLatency(1);
|
||||||
data_array.setTarget('inst);
|
data_array.setTarget('inst);
|
||||||
val data_out = data_array.rw(data_addr, io.mem.resp_data, io.mem.resp_val && repl_me)
|
val data_out = data_array.rw(data_addr, io.mem.resp_data, io.mem.resp_val && repl_me)
|
||||||
|
Loading…
Reference in New Issue
Block a user