removed AddressSpaceConstants, CacheConstants, and TileLinkSizeConstants
This commit is contained in:
@ -3,10 +3,9 @@ package rocket
|
||||
import Chisel._
|
||||
import Util._
|
||||
import Node._
|
||||
import uncore.constants.AddressConstants._
|
||||
|
||||
case class BTBConfig(entries: Int, nras: Int = 0) {
|
||||
val matchBits = PGIDX_BITS
|
||||
case class BTBConfig(as: uncore.AddressSpaceConfiguration, entries: Int, nras: Int = 0) {
|
||||
val matchBits = as.pgIdxBits
|
||||
val pages0 = 1 max log2Up(entries) // is this sensible?
|
||||
val pages = (pages0+1)/2*2 // control logic assumes 2 divides pages
|
||||
val opaqueBits = log2Up(entries)
|
||||
@ -56,9 +55,9 @@ class BHT(implicit conf: BTBConfig) {
|
||||
|
||||
class BTBUpdate(implicit conf: BTBConfig) extends Bundle {
|
||||
val prediction = Valid(new BTBResp)
|
||||
val pc = UInt(width = VADDR_BITS)
|
||||
val target = UInt(width = VADDR_BITS)
|
||||
val returnAddr = UInt(width = VADDR_BITS)
|
||||
val pc = UInt(width = conf.as.vaddrBits)
|
||||
val target = UInt(width = conf.as.vaddrBits)
|
||||
val returnAddr = UInt(width = conf.as.vaddrBits)
|
||||
val taken = Bool()
|
||||
val isJump = Bool()
|
||||
val isCall = Bool()
|
||||
@ -70,7 +69,7 @@ class BTBUpdate(implicit conf: BTBConfig) extends Bundle {
|
||||
|
||||
class BTBResp(implicit conf: BTBConfig) extends Bundle {
|
||||
val taken = Bool()
|
||||
val target = UInt(width = VADDR_BITS)
|
||||
val target = UInt(width = conf.as.vaddrBits)
|
||||
val entry = UInt(width = conf.opaqueBits)
|
||||
val bht = new BHTResp
|
||||
|
||||
@ -80,7 +79,7 @@ class BTBResp(implicit conf: BTBConfig) extends Bundle {
|
||||
// fully-associative branch target buffer
|
||||
class BTB(implicit conf: BTBConfig) extends Module {
|
||||
val io = new Bundle {
|
||||
val req = UInt(INPUT, VADDR_BITS)
|
||||
val req = UInt(INPUT, conf.as.vaddrBits)
|
||||
val resp = Valid(new BTBResp)
|
||||
val update = Valid(new BTBUpdate).flip
|
||||
val invalidate = Bool(INPUT)
|
||||
@ -91,7 +90,7 @@ class BTB(implicit conf: BTBConfig) extends Module {
|
||||
val idxPages = Vec.fill(conf.entries){Reg(UInt(width=log2Up(conf.pages)))}
|
||||
val tgts = Vec.fill(conf.entries){Reg(UInt(width=conf.matchBits))}
|
||||
val tgtPages = Vec.fill(conf.entries){Reg(UInt(width=log2Up(conf.pages)))}
|
||||
val pages = Vec.fill(conf.pages){Reg(UInt(width=VADDR_BITS-conf.matchBits))}
|
||||
val pages = Vec.fill(conf.pages){Reg(UInt(width=conf.as.vaddrBits-conf.matchBits))}
|
||||
val pageValid = Vec.fill(conf.pages){Reg(init=Bool(false))}
|
||||
val idxPagesOH = idxPages.map(UIntToOH(_)(conf.pages-1,0))
|
||||
val tgtPagesOH = tgtPages.map(UIntToOH(_)(conf.pages-1,0))
|
||||
|
Reference in New Issue
Block a user