1*04665835SMaxpicca-Lipackage cache 2*04665835SMaxpicca-Li 3*04665835SMaxpicca-Liimport chisel3._ 4*04665835SMaxpicca-Liimport chiseltest._ 5*04665835SMaxpicca-Liimport org.scalatest.flatspec.AnyFlatSpec 6*04665835SMaxpicca-Liimport top.DefaultConfig 7*04665835SMaxpicca-Liimport xiangshan.cache.wpu.DCacheWpuWrapper 8*04665835SMaxpicca-Liimport xiangshan.{XSCoreParamsKey, XSTileKey} 9*04665835SMaxpicca-Li 10*04665835SMaxpicca-Liclass WpuBasicTest extends AnyFlatSpec with ChiselScalatestTester { 11*04665835SMaxpicca-Li behavior of "DCacheWPU" 12*04665835SMaxpicca-Li it should ("run") in { 13*04665835SMaxpicca-Li val defaultConfig = (new DefaultConfig) 14*04665835SMaxpicca-Li implicit val config = defaultConfig.alterPartial({ 15*04665835SMaxpicca-Li case XSCoreParamsKey => defaultConfig(XSTileKey).head.copy() 16*04665835SMaxpicca-Li }) 17*04665835SMaxpicca-Li println("========== Test the correctness of syntactic and datapath ==========") 18*04665835SMaxpicca-Li test(new DCacheWpuWrapper()) { c => 19*04665835SMaxpicca-Li println("========== in test ==========") 20*04665835SMaxpicca-Li // s0 21*04665835SMaxpicca-Li c.io.req(0).bits.vaddr.poke(0.U) 22*04665835SMaxpicca-Li c.io.req(0).bits.replayCarry.valid.poke(false.B) 23*04665835SMaxpicca-Li c.io.req(0).bits.replayCarry.real_way_en.poke(0.U) 24*04665835SMaxpicca-Li c.io.req(0).valid.poke(true.B) 25*04665835SMaxpicca-Li c.clock.step() 26*04665835SMaxpicca-Li // s1 27*04665835SMaxpicca-Li c.io.lookup_upd(0).valid.poke(true.B) 28*04665835SMaxpicca-Li c.io.lookup_upd(0).bits.s1_real_way_en.poke("b00010000".U) 29*04665835SMaxpicca-Li c.io.req(0).bits.vaddr.poke(0.U) 30*04665835SMaxpicca-Li c.io.req(0).bits.replayCarry.valid.poke(false.B) 31*04665835SMaxpicca-Li c.io.req(0).bits.replayCarry.real_way_en.poke(0.U) 32*04665835SMaxpicca-Li c.io.req(0).valid.poke(true.B) 33*04665835SMaxpicca-Li println("output value1 : " + c.io.resp(0).bits.s0_pred_way_en.peek().litValue) 34*04665835SMaxpicca-Li c.clock.step() 35*04665835SMaxpicca-Li println("output value2 : " + c.io.resp(0).bits.s0_pred_way_en.peek().litValue) 36*04665835SMaxpicca-Li } 37*04665835SMaxpicca-Li println("========== end test ==========") 38*04665835SMaxpicca-Li } 39*04665835SMaxpicca-Li 40*04665835SMaxpicca-Li} 41