1*844fba5bSXuan Hupackage xiangshan.backend.fu.NewCSR 2*844fba5bSXuan Hu 3*844fba5bSXuan Huimport chisel3._ 4*844fba5bSXuan Hu 5*844fba5bSXuan Huimport java.util.Properties 6*844fba5bSXuan Hu 7*844fba5bSXuan Huclass CommitIDModule(shaWidth: Int) extends Module { 8*844fba5bSXuan Hu val io = IO(new Bundle { 9*844fba5bSXuan Hu val commitID = Output(UInt(shaWidth.W)) 10*844fba5bSXuan Hu val dirty = Output(Bool()) 11*844fba5bSXuan Hu }) 12*844fba5bSXuan Hu 13*844fba5bSXuan Hu val props = new Properties() 14*844fba5bSXuan Hu props.load((os.resource / "gitStatus").getInputStream) 15*844fba5bSXuan Hu 16*844fba5bSXuan Hu val sha = props.get("SHA").asInstanceOf[String].take(shaWidth / 4) 17*844fba5bSXuan Hu val dirty = props.get("dirty").asInstanceOf[String].toInt 18*844fba5bSXuan Hu 19*844fba5bSXuan Hu println(s"[CommitIDModule] SHA=$sha") 20*844fba5bSXuan Hu println(s"[CommitIDModule] dirty=$dirty") 21*844fba5bSXuan Hu 22*844fba5bSXuan Hu io.commitID := BigInt(sha, 16).U(shaWidth.W) 23*844fba5bSXuan Hu io.dirty := dirty.U 24*844fba5bSXuan Hu} 25