Expose VL through Csr. Change-Id: I21b74e9b68c6617c5d70ebd54e0901e693ac8a21
diff --git a/hdl/chisel/src/kelvin/scalar/Csr.scala b/hdl/chisel/src/kelvin/scalar/Csr.scala index 80a4f26..f702a97 100644 --- a/hdl/chisel/src/kelvin/scalar/Csr.scala +++ b/hdl/chisel/src/kelvin/scalar/Csr.scala
@@ -21,6 +21,7 @@ class CsrRvvIO(p: Parameters) extends Bundle { // To Csr from RvvCore val vstart = Input(UInt(log2Ceil(p.rvvVlen).W)) + val vl = Input(UInt(log2Ceil(p.rvvVlen).W)) val vxrm = Input(UInt(2.W)) val vxsat = Input(Bool()) // From Csr to RvvCore @@ -72,6 +73,7 @@ val MINSTRET = Value(0xB02.U(12.W)) val MCYCLEH = Value(0xB80.U(12.W)) val MINSTRETH = Value(0xB82.U(12.W)) + val VL = Value(0xC20.U(12.W)) val VLENB = Value(0xC22.U(12.W)) val MVENDORID = Value(0xF11.U(12.W)) val MARCHID = Value(0xF12.U(12.W)) @@ -299,6 +301,7 @@ val frmEn = csr_address === CsrAddress.FRM val fcsrEn = csr_address === CsrAddress.FCSR val vstartEn = Option.when(p.enableRvv) { csr_address === CsrAddress.VSTART } + val vlEn = Option.when(p.enableRvv) { csr_address === CsrAddress.VL } val vxrmEn = Option.when(p.enableRvv) { csr_address === CsrAddress.VXRM } val vxsatEn = Option.when(p.enableRvv) { csr_address === CsrAddress.VXSAT } val mstatusEn = csr_address === CsrAddress.MSTATUS @@ -409,6 +412,7 @@ Option.when(p.enableRvv) { Seq( vstartEn.get -> io.rvv.get.vstart, + vlEn.get -> io.rvv.get.vl, vxrmEn.get -> io.rvv.get.vxrm, vxsatEn.get -> io.rvv.get.vxsat, vlenbEn.get -> 16.U(32.W), // Vector length in Bytes
diff --git a/hdl/chisel/src/kelvin/scalar/SCore.scala b/hdl/chisel/src/kelvin/scalar/SCore.scala index 7a46f36..86c6299 100644 --- a/hdl/chisel/src/kelvin/scalar/SCore.scala +++ b/hdl/chisel/src/kelvin/scalar/SCore.scala
@@ -432,6 +432,7 @@ io.rvvcore.get.csr.vxrm_write <> csr.io.rvv.get.vxrm_write io.rvvcore.get.csr.vxsat_write <> csr.io.rvv.get.vxsat_write csr.io.rvv.get.vstart := io.rvvcore.get.csr.vstart + csr.io.rvv.get.vl := io.rvvcore.get.configState.bits.vl csr.io.rvv.get.vxrm := io.rvvcore.get.csr.vxrm csr.io.rvv.get.vxsat := io.rvvcore.get.csr.vxsat }