Chisel3 compatibility fixes
This commit is contained in:
@ -21,7 +21,7 @@ class FrontendReq extends CoreBundle {
|
||||
|
||||
class FrontendResp extends CoreBundle {
|
||||
val pc = UInt(width = vaddrBitsExtended) // ID stage PC
|
||||
val data = Vec.fill(coreFetchWidth) (Bits(width = coreInstBits))
|
||||
val data = Vec(Bits(width = coreInstBits), coreFetchWidth)
|
||||
val mask = Bits(width = coreFetchWidth)
|
||||
val xcpt_if = Bool()
|
||||
}
|
||||
@ -196,12 +196,11 @@ class ICache extends FrontendModule
|
||||
|
||||
val repl_way = if (isDM) UInt(0) else LFSR16(s2_miss)(log2Up(nWays)-1,0)
|
||||
val entagbits = code.width(tagBits)
|
||||
val tag_array = SeqMem(Bits(width = entagbits*nWays), nSets)
|
||||
val tag_array = SeqMem(Vec(Bits(width = entagbits), nWays), nSets)
|
||||
val tag_rdata = tag_array.read(s0_pgoff(untagBits-1,blockOffBits), !refill_done && s0_valid)
|
||||
when (refill_done) {
|
||||
val wmask = FillInterleaved(entagbits, if (isDM) Bits(1) else UIntToOH(repl_way))
|
||||
val tag = code.encode(s2_tag).toUInt
|
||||
tag_array.write(s2_idx, Fill(nWays, tag), wmask)
|
||||
tag_array.write(s2_idx, Vec.fill(nWays)(tag), Vec.tabulate(nWays)(repl_way === _))
|
||||
}
|
||||
|
||||
val vb_array = Reg(init=Bits(0, nSets*nWays))
|
||||
@ -225,7 +224,7 @@ class ICache extends FrontendModule
|
||||
val s2_vb = Reg(Bool())
|
||||
val s2_tag_disparity = Reg(Bool())
|
||||
val s2_tag_match = Reg(Bool())
|
||||
val tag_out = tag_rdata(entagbits*(i+1)-1, entagbits*i)
|
||||
val tag_out = tag_rdata(i)
|
||||
when (s1_valid && rdy && !stall) {
|
||||
s2_vb := s1_vb
|
||||
s2_tag_disparity := code.decode(tag_out).error
|
||||
|
Reference in New Issue
Block a user