class VexiiRiscvProbe extends AnyRef
VexiiRiscvProbe can be used in a simulation to probe the activities of VexiiRiscv and notifies a list of TraceBackend with what happened (ex commit, memory load, memory store, trap, ...)
There is a few usefull backends : - RVLS to check that the simulated VexiiRiscv CPU is doing things right - A file backend, to keep a text file trace of what happened (instead of having to look into a waveform)
It also keep a trace of various performance metrics, as the IPC, branch miss rate, ...
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- VexiiRiscvProbe
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- new VexiiRiscvProbe(cpu: VexiiRiscv, kb: Option[Backend], withRvls: Boolean = true)
Type Members
Value Members
- def add(tracer: TraceBackend): VexiiRiscvProbe.this.type
- def autoRegions(): Unit
- val autoStoreBroadcast: Boolean
- var backends: ArrayBuffer[TraceBackend]
- def checkBroadcasts(): Unit
- def checkCommits(): Unit
- var checkLiveness: Boolean
- def checkPipelines(): Unit
- def checkTraps(): Unit
- def clearStats(): Unit
- def close(): Unit
- val commitsCallbacks: ArrayBuffer[(Int, Long) ⇒ Unit]
- var cycle: Long
- val decodeIdWidth: Int
- val disass: Long
- var enabled: Boolean
- val fetchIdWidth: Int
- val floatOr: Long
- def flush(): Unit
- def get[T](e: Element[T]): T
- def getStats(): String
- val harts: Array[HartCtx]
- val hartsCount: Int
- val hartsIds: Seq[Int]
- val lsuClpb: Option[LsuCachelessBus]
- val microOpIdMask: Int
- val microOpIdWidth: Int
- def pcExtends(pc: Long): Long
- val pendingIo: Queue[ProbeTraceIo]
- val proxies: Proxies
- val sizeMask: Array[Long]
- var statsCycleOffset: Long
- var trace: Boolean
- val wbp: Logic
- val withFetch: Boolean
- var withRvls: Boolean
- val xlen: Int
- def xlenExtends(value: Long): Long