c

vexiiriscv.execute

CsrRamPlugin

class CsrRamPlugin extends FiberPlugin with CsrRamService with InitService

Implement a RAM and provide an API (CsrRamService) that allows other plugins to : - Staticaly allocate memory space - Map the allocated memory space on the CPU CSR instruction - Create new read/write access ports to the memory.

This plugin is used mostly to implement large CSR as mepc, mtval, aswell as for implementing the performance counters

Linear Supertypes
InitService, CsrRamService, FiberPlugin, Hostable, Area, OverridedEqualsHashCode, ValCallbackRec, ValCallback, NameableByComponent, Nameable, ContextUser, ScalaLocated, GlobalDataUser, OwnableRef, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CsrRamPlugin
  2. InitService
  3. CsrRamService
  4. FiberPlugin
  5. Hostable
  6. Area
  7. OverridedEqualsHashCode
  8. ValCallbackRec
  9. ValCallback
  10. NameableByComponent
  11. Nameable
  12. ContextUser
  13. ScalaLocated
  14. GlobalDataUser
  15. OwnableRef
  16. AnyRef
  17. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CsrRamPlugin()

Type Members

  1. abstract type RefOwnerType
    Definition Classes
    OwnableRef
  2. case class Mapping(csrFilter: Any, alloc: CsrRamAllocation, offset: Int) extends Product with Serializable
    Definition Classes
    CsrRamService

Value Members

  1. val _context: Capture
    Definition Classes
    Area
  2. def addService[T](that: T): T
    Definition Classes
    FiberPlugin
  3. val allocations: ArrayBuffer[CsrRamAllocation]
    Definition Classes
    CsrRamService
  4. val api: Handle[Area { ... /* 2 definitions in type refinement */ }]
  5. def awaitBuild(): Unit
    Definition Classes
    FiberPlugin
  6. def awaitMapping(): Unit
    Definition Classes
    CsrRamPluginCsrRamService
  7. def buildBefore(l: ⇒ Lock): Unit
    Definition Classes
    FiberPlugin
  8. var buildCount: Int
    Definition Classes
    FiberPlugin
  9. def childNamePriority: Byte
    Definition Classes
    Area
  10. def component: Component
    Definition Classes
    ContextUser
  11. val csrLock: Retainer
    Definition Classes
    CsrRamService
  12. val csrMapper: Handle[Area { ... /* 14 definitions in type refinement */ }]
  13. val csrMappings: ArrayBuffer[Mapping]
    Definition Classes
    CsrRamService
  14. def during: AnyRef { ... /* 2 definitions in type refinement */ }
    Definition Classes
    FiberPlugin
  15. def equals(obj: Any): Boolean
    Definition Classes
    OverridedEqualsHashCode → AnyRef → Any
  16. def foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
    Definition Classes
    Nameable
  17. def getDisplayName(): String
    Definition Classes
    Nameable
  18. def getInstanceCounter: Int
    Definition Classes
    ContextUser
  19. def getName(default: String): String
    Definition Classes
    NameableByComponent → Nameable
  20. def getName(): String
    Definition Classes
    NameableByComponent → Nameable
  21. def getPartialName(): String
    Definition Classes
    Nameable
  22. def getPath(from: Component, to: Component): Seq[Component]
    Definition Classes
    NameableByComponent
  23. def getRefOwnersChain(): List[Any]
    Definition Classes
    OwnableRef
  24. def getScalaLocationLong: String
    Definition Classes
    ScalaLocated
  25. def getScalaLocationShort: String
    Definition Classes
    ScalaLocated
  26. def getScalaTrace(): Throwable
    Definition Classes
    ScalaLocated
  27. val globalData: GlobalData
    Definition Classes
    GlobalDataUser
  28. def hashCode(): Int
    Definition Classes
    OverridedEqualsHashCode → AnyRef → Any
  29. def holdCsrRead(): Unit
    Definition Classes
    CsrRamPluginCsrRamService
  30. def holdCsrWrite(): Unit
    Definition Classes
    CsrRamPluginCsrRamService
  31. var host: PluginHost
    Definition Classes
    FiberPlugin
  32. val hostLock: Lock
    Definition Classes
    FiberPlugin
  33. def initHold(): Bool
    Definition Classes
    CsrRamPluginInitService
  34. def isCompletelyUnnamed: Boolean
    Definition Classes
    Nameable
  35. final def isNamed: Boolean
    Definition Classes
    Nameable
  36. def isPriorityApplicable(namePriority: Byte): Boolean
    Definition Classes
    Nameable
  37. def isUnnamed: Boolean
    Definition Classes
    NameableByComponent → Nameable
  38. val lockables: LinkedHashSet[() ⇒ Lock]
    Definition Classes
    FiberPlugin
  39. val logic: Handle[Area { ... /* 7 definitions in type refinement */ }]
  40. val name: String
    Definition Classes
    Nameable
  41. def overrideLocalName(name: String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  42. val parentScope: ScopeStatement
    Definition Classes
    ContextUser
  43. var pluginEnabled: Boolean
    Definition Classes
    FiberPlugin
  44. def portAddressWidth: Int
    Definition Classes
    CsrRamPluginCsrRamService
  45. val portLock: Retainer
    Definition Classes
    CsrRamService
  46. def ramAllocate(entries: Int = 1): CsrRamAllocation
    Definition Classes
    CsrRamService
  47. def ramReadPort(priority: Int): Handle[CsrRamRead]
    Definition Classes
    CsrRamService
  48. def ramWritePort(priority: Int): Handle[CsrRamWrite]
    Definition Classes
    CsrRamService
  49. def readWriteRam(filters: Any, alloc: CsrRamAllocation, offset: Int): CsrRamAllocation
    Definition Classes
    CsrRamService
  50. def readWriteRam(filters: Int): CsrRamAllocation
    Definition Classes
    CsrRamService
  51. val reads: ArrayBuffer[Handle[CsrRamRead]]
    Definition Classes
    CsrRamService
  52. val refOwner: RefOwnerType
    Definition Classes
    OwnableRef
    Annotations
    @DontName()
  53. def reflectNames(): Unit
    Definition Classes
    Nameable
  54. def retains(head: Any, tail: Any*): RetainerGroup
    Definition Classes
    FiberPlugin
  55. def retains(that: Seq[Any]): RetainerGroup
    Definition Classes
    FiberPlugin
  56. def rework[T](body: ⇒ T): T
    Definition Classes
    Area
  57. val scalaTrace: Throwable
    Definition Classes
    ScalaLocated
  58. def setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  59. def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  60. def setCompositeName(nameable: Nameable, postfix: String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  61. def setCompositeName(nameable: Nameable, namePriority: Byte): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  62. def setCompositeName(nameable: Nameable, weak: Boolean): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  63. def setCompositeName(nameable: Nameable): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  64. def setHost(h: PluginHost): Unit
    Definition Classes
    FiberPlugin → Hostable
  65. def setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  66. def setName(name: String, namePriority: Byte): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  67. def setName(name: String, weak: Boolean): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  68. def setName(name: String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  69. def setNameAsWeak(): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  70. def setPartialName(name: String, namePriority: Byte, owner: Any): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  71. def setPartialName(name: String, namePriority: Byte): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  72. def setPartialName(name: String, weak: Boolean): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  73. def setPartialName(owner: Nameable, name: String, namePriority: Byte): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  74. def setPartialName(owner: Nameable, name: String, weak: Boolean): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  75. def setPartialName(name: String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  76. def setPartialName(owner: Nameable, name: String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  77. def setPartialName(owner: Nameable): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  78. def setRefOwner(that: Any): Unit
    Definition Classes
    OwnableRef
  79. def setScalaLocated(source: ScalaLocated): CsrRamPlugin.this.type
    Definition Classes
    ScalaLocated
  80. def setWeakName(name: String): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  81. val setup: Handle[Area { ... /* 5 definitions in type refinement */ }]
  82. def setupRetain(l: ⇒ Lock): Unit
    Definition Classes
    FiberPlugin
  83. val subservices: ArrayBuffer[Any]
    Definition Classes
    FiberPlugin
  84. def toString(): String
    Definition Classes
    Area → Nameable → AnyRef → Any
  85. def unsetName(): CsrRamPlugin.this.type
    Definition Classes
    Nameable
  86. def valCallback[T](ref: T, name: String): T
    Definition Classes
    ValCallbackRec → ValCallback
  87. def valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
    Definition Classes
    ValCallbackRec
  88. def valCallbackRec(obj: Any, name: String): Unit
    Definition Classes
    Area → ValCallbackRec
  89. def withPrefix(prefix: String): FiberPlugin
    Definition Classes
    FiberPlugin
  90. val writes: ArrayBuffer[Handle[CsrRamWrite]]
    Definition Classes
    CsrRamService