quasar/src/main/scala/lib/el2_lib.scala

26 lines
705 B
Scala
Raw Normal View History

2020-09-07 16:25:23 +08:00
package lib
2020-09-07 16:27:29 +08:00
import chisel3._
trait param {
val BTB_ADDR_HI = 9
val BTB_ADDR_LO = 2
val BTB_BTAG_SIZE = 5
val BTB_INDEX1_HI = 9
val BTB_INDEX1_LO = 2
val BTB_INDEX2_HI = 17
val BTB_INDEX2_LO = 10
val BTB_INDEX3_HI = 25
val BTB_INDEX3_LO = 18
}
trait el2_lib extends param{
def el2_btb_tag_hash(pc : UInt) =
(VecInit.tabulate(3)(i => pc(BTB_ADDR_HI+((i+1)*(BTB_BTAG_SIZE)),BTB_ADDR_HI+(i*BTB_BTAG_SIZE)+1))).reduce(_^_)
def el2_btb_tag_hash_fold(pc : UInt) =
pc(BTB_ADDR_HI+(2*BTB_BTAG_SIZE),BTB_ADDR_HI+BTB_BTAG_SIZE+1)^pc(BTB_ADDR_HI+BTB_BTAG_SIZE,BTB_ADDR_HI+1)
2020-09-07 16:25:23 +08:00
2020-09-07 16:27:29 +08:00
def el2_btb_addr_hash(pc : UInt) : UInt = 0.U
// def el2_btb_ghr_hash
2020-09-07 16:25:23 +08:00
}