class Interface extends Bundle
system verilog interface
Example
case class MyIf(width: Int = 8) extends SVIF with IMasterSlave { val wParam = addGeneric("WIDTH", width, default = "8") val a = Bits(width bits) tieGeneric(a, wParam) val b = Bool() val c = SInt(8 bits) override def asMaster = mst @modport def mst = { out(a, b, c) } @modport def slv = { in(a, b, c) } }
- Alphabetic
- By Inheritance
- Interface
- Bundle
- ValCallbackRec
- ValCallback
- MultiData
- Data
- InComponent
- OverridedEqualsHashCode
- SpinalTagReady
- Assignable
- NameableByComponent
- Nameable
- OwnableRef
- ContextUser
- ScalaLocated
- GlobalDataUser
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Interface()
Type Members
- abstract type RefOwnerType
- Definition Classes
- OwnableRef
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ##(right: Data): Bits
Concatenation between two data
Concatenation between two data
- Definition Classes
- Data
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def #*(count: Int): Bits
- Definition Classes
- Data
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val IFGeneric: LinkedHashMap[(Data, String), String]
- val _spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def addAttribute(attribute: Attribute): Interface.this.type
- Definition Classes
- Data → SpinalTagReady
- def addAttribute(name: String, value: Int): Interface.this.type
- Definition Classes
- SpinalTagReady
- def addAttribute(name: String, value: String): Interface.this.type
- Definition Classes
- SpinalTagReady
- def addAttribute(name: String): Interface.this.type
- Definition Classes
- SpinalTagReady
- def addGeneric(name: String, that: Any, default: String = null): String
- def addParameter(name: String, that: Any, default: String = null): String
- def addTag[T <: SpinalTag](spinalTag: T): Interface.this.type
- Definition Classes
- MultiData → SpinalTagReady
- def addTags(h: SpinalTag, tail: SpinalTag*): Interface.this.type
- Definition Classes
- SpinalTagReady
- def addTags[T <: SpinalTag](tags: Iterable[T]): Interface.this.type
- Definition Classes
- SpinalTagReady
- def allModPort: List[String]
- def allowDirectionLessIo(): Interface.this.type
Allow a Data of an io Bundle to be directionless
Allow a Data of an io Bundle to be directionless
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/iobundle.html
- Definition Classes
- Data
- def allowOverride(): Interface.this.type
Allow a Data to be overriden
Allow a Data to be overriden
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/assignment_overlap.html
- Definition Classes
- Data
- def allowPartialyAssigned(): Interface.this.type
Allow a register to be partially assigned
Allow a register to be partially assigned
- Definition Classes
- Data
- def allowPruning(): Interface.this.type
- Definition Classes
- Data
- def allowSimplifyIt(): Interface.this.type
- Definition Classes
- Data
- def allowUnsetRegToAvoidLatch(): Interface.this.type
Allow a register to have only an init (no assignments)
Allow a register to have only an init (no assignments)
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/unassigned_register.html#register-with-only-init
- Definition Classes
- Data
- def as[T <: Data](dataType: HardType[T]): T
- Definition Classes
- Data
- def asBits: Bits
Cast data to Bits
- def asData: Data
- Definition Classes
- Data
- def asInOut(): Interface.this.type
set a data as inout
- def asInput(): Interface.this.type
Set a data as input
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def asOutput(): Interface.this.type
Set a data as output
- def assignAllByName(that: Bundle): Unit
Assign the bundle with an other bundle by name
Assign the bundle with an other bundle by name
- Definition Classes
- Bundle
- def assignDontCare(): Interface.this.type
- Definition Classes
- Data
- def assignDontCareToUnasigned(): Interface.this.type
- Definition Classes
- Data
- def assignFormalRandom(kind: RandomExpKind): Unit
- final def assignFrom(that: AnyRef, target: AnyRef = this)(implicit loc: Location): Unit
- Definition Classes
- Data
- def assignFromBits(bits: Bits, hi: Int, lo: Int): Unit
- def assignFromBits(bits: Bits): Unit
- def assignFromBits(bits: Bits, offset: Int, bitCount: BitCount): Unit
- Definition Classes
- Data
- def assignFromImpl(that: AnyRef, target: AnyRef, kind: AnyRef)(implicit loc: Location): Unit
- Attributes
- protected
- Definition Classes
- Bundle → Assignable
- def assignSomeByName(that: Bundle): Unit
Assign all possible signal fo the bundle with an other bundle by name
Assign all possible signal fo the bundle with an other bundle by name
- Definition Classes
- Bundle
- def assignUnassignedByName(that: MultiData): Unit
- Definition Classes
- MultiData
- def bundleAssign(that: Bundle)(f: (Data, Data) => Unit): Unit
- Definition Classes
- Bundle
- def callModPort(s: String): Unit
- def checkDir(that: Bundle): Boolean
for interface find modport
for interface find modport
- Definition Classes
- Bundle
- def checkModport(): List[String]
- def clearAll(): Interface.this.type
- Definition Classes
- Data
- def clone(): Interface
- def component: Component
- Definition Classes
- ContextUser
- final def compositAssignFrom(that: AnyRef, target: AnyRef, kind: AnyRef)(implicit loc: Location): Unit
- Definition Classes
- Assignable
- val compositeAssign: Assignable
- Definition Classes
- Assignable
- def copyDirectionOfImpl(that: Data): Interface.this.type
- var definitionName: String
- def dirString(): String
- Definition Classes
- Data
- def dontSimplifyIt(): Interface.this.type
- Definition Classes
- Data
- def elements: ArrayBuffer[(String, Data)]
- var elementsCache: ArrayBuffer[(String, Data)]
- Definition Classes
- Bundle
- def elementsString: String
- Definition Classes
- MultiData
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(obj: Any): Boolean
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
- def existsTag(cond: (SpinalTag) => Boolean): Boolean
- Definition Classes
- SpinalTagReady
- def filterTag(cond: (SpinalTag) => Boolean): Iterable[SpinalTag]
- Definition Classes
- SpinalTagReady
- def find(name: String): Data
- Definition Classes
- MultiData
- def findTag(cond: (SpinalTag) => Boolean): Option[SpinalTag]
- Definition Classes
- SpinalTagReady
- def flatten: Seq[BaseType]
- def flattenForeach(body: (BaseType) => Unit): Unit
- def flattenLocalName: Seq[String]
- def flip(): Interface.this.type
flip the direction of the data
- def foreachReflectableNameables(doThat: (Any) => Unit): Unit
- Definition Classes
- Nameable
- def foreachTag(body: (SpinalTag) => Unit): Unit
- Definition Classes
- SpinalTagReady
- def freeze(): Interface.this.type
- val genericElements: ArrayBuffer[(String, Any, String)]
- def getAheadValue(): Interface.this.type
- Definition Classes
- Data
- def getBitsWidth: Int
Return the width of the data
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def getComponent(): Component
- Definition Classes
- Data → InComponent → NameableByComponent
- def getComponents(): Seq[Component]
Get current component with all parents
Get current component with all parents
- Definition Classes
- InComponent
- def getDirection: IODirection
- Definition Classes
- Data
- def getDisplayName(): String
- Definition Classes
- Nameable
- def getInstanceCounter: Int
- Definition Classes
- ContextUser
- def getMode: Byte
- Attributes
- protected
- Definition Classes
- Nameable
- def getMuxType[T <: Data](list: TraversableOnce[T]): HardType[T]
- Definition Classes
- Data
- def getName(default: String): String
- Definition Classes
- NameableByComponent → Nameable
- def getName(): String
- Definition Classes
- NameableByComponent → Nameable
- def getPartialName(): String
- Definition Classes
- Nameable
- def getPath(from: Component, to: Component): Seq[Component]
- Definition Classes
- NameableByComponent
- def getRealSource: Any
- Definition Classes
- Assignable
- def getRealSourceNoRec: Any
- Definition Classes
- Data → Assignable
- def getRefOwnersChain(): List[Any]
- Definition Classes
- OwnableRef
- def getRootParent: Data
- Definition Classes
- Data
- def getRtlPath(separator: String = "/"): String
- Definition Classes
- Data
- def getScalaLocationLong: String
- Definition Classes
- ScalaLocated
- def getScalaLocationShort: String
- Definition Classes
- ScalaLocated
- def getScalaTrace(): Throwable
- Definition Classes
- ScalaLocated
- def getTag[T <: SpinalTag](clazz: Class[T]): Option[T]
- Definition Classes
- SpinalTagReady
- def getTags(): LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def getTypeString: String
- Definition Classes
- Bundle
- def getZero: Interface.this.type
Create a data set to 0
- val globalData: GlobalData
- Definition Classes
- GlobalDataUser
- var hardtype: HardType[_]
- Definition Classes
- Bundle
- def hasTag[T <: SpinalTag](clazz: Class[T]): Boolean
- Definition Classes
- SpinalTagReady
- def hasTag(spinalTag: SpinalTag): Boolean
- Definition Classes
- SpinalTagReady
- def hashCode(): Int
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
- final def initFrom(that: AnyRef, target: AnyRef = this): Unit
- Definition Classes
- Data
- def instanceAttributes(language: Language): Iterable[Attribute]
- Definition Classes
- SpinalTagReady
- def instanceAttributes: Iterable[Attribute]
- Definition Classes
- SpinalTagReady
- def isAnalog: Boolean
- Definition Classes
- Data
- def isComb: Boolean
- Definition Classes
- Data
- def isCompletelyUnnamed: Boolean
- Definition Classes
- Nameable
- def isDirectionLess: Boolean
- Definition Classes
- Data
- def isEmptyOfTag: Boolean
- Definition Classes
- SpinalTagReady
- def isInOut: Boolean
- Definition Classes
- Data
- def isInput: Boolean
- Definition Classes
- Data
- def isInputOrInOut: Boolean
- Definition Classes
- Data
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isNamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
- def isOutput: Boolean
- Definition Classes
- Data
- def isOutputOrInOut: Boolean
- Definition Classes
- Data
- def isPriorityApplicable(namePriority: Byte): Boolean
- Definition Classes
- Nameable
- def isReg: Boolean
- Definition Classes
- Data
- def isRegOnAssign: Boolean
- Definition Classes
- Data
- def isUnnamed: Boolean
- Definition Classes
- Nameable
- val name: String
- Definition Classes
- Nameable
- val nameableRef: Nameable
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noBackendCombMerge(): Interface.this.type
Put the combinatorial logic driving this signal in a separate process
Put the combinatorial logic driving this signal in a separate process
- Definition Classes
- Data
- def noCombLoopCheck(): Interface.this.type
Disable combinatorial loop checking for this Data
Disable combinatorial loop checking for this Data
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/combinatorial_loop.html
- Definition Classes
- Data
- def notSVIF(): Unit
- def notSVIFthisLevel(): Unit
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def onEachAttributes(doIt: (Attribute) => Unit): Unit
- Definition Classes
- SpinalTagReady
- def overrideLocalName(name: String): Interface.this.type
- Definition Classes
- Nameable
- val parent: Data
- Definition Classes
- Data
- val parentScope: ScopeStatement
- Definition Classes
- ContextUser
- def pull(propagateName: Boolean): Interface.this.type
- Definition Classes
- Data
- def pull(): Interface.this.type
Pull a signal to the top level (use for debugging)
Pull a signal to the top level (use for debugging)
- Definition Classes
- Data
- def purify(): Interface.this.type
- Definition Classes
- Data
- def randBoot(u: Unit): Interface.this.type
Useful for register that doesn't need a reset value in RTL, but need a random value for simulation (avoid x-propagation)
Useful for register that doesn't need a reset value in RTL, but need a random value for simulation (avoid x-propagation)
- Definition Classes
- Data
- val refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
- def reflectNames(): Unit
- Definition Classes
- Nameable
- def removeAssignments(data: Boolean = true, init: Boolean = true, initial: Boolean = true): Interface.this.type
- Definition Classes
- Data
- def removeDataAssignments(): Interface.this.type
- Definition Classes
- Data
- def removeInitAssignments(): Interface.this.type
- Definition Classes
- Data
- def removeTag(spinalTag: SpinalTag): Interface.this.type
- Definition Classes
- SpinalTagReady
- def removeTags(tags: Iterable[SpinalTag]): Interface.this.type
- Definition Classes
- SpinalTagReady
- def resized: Interface.this.type
Resized data regarding target
Resized data regarding target
- Definition Classes
- Data
- def rootIF(): Interface
root interface
root interface
- Definition Classes
- Data
- def rootIFList(): List[Interface]
- Definition Classes
- Data
- def rootIFrec(now: Data, lastRoot: List[Interface]): List[Interface]
- Definition Classes
- Data
- val scalaTrace: Throwable
- Definition Classes
- ScalaLocated
- def setAll(): Interface.this.type
- Definition Classes
- Data
- def setAsAnalog(): Interface.this.type
- Definition Classes
- Data
- def setAsComb(): Interface.this.type
Set baseType to Combinatorial
- def setAsDirectionLess(): Interface.this.type
remove the direction (in,out,inout) to a data
- def setAsReg(): Interface.this.type
Set baseType to reg
- def setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): Interface.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): Interface.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, postfix: String): Interface.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, namePriority: Byte): Interface.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, weak: Boolean): Interface.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable): Interface.this.type
- Definition Classes
- Nameable
- def setDefinitionName(name: String): Interface.this.type
Set the definition name of the component
- def setLambdaName(isNameBody: => Boolean)(nameGen: => String): Interface.this.type
- Definition Classes
- Nameable
- def setName(name: String, namePriority: Byte): Interface.this.type
- Definition Classes
- Nameable
- def setName(name: String, weak: Boolean): Interface.this.type
- Definition Classes
- Nameable
- def setName(name: String): Interface.this.type
- Definition Classes
- Nameable
- def setNameAsWeak(): Interface.this.type
- Definition Classes
- Nameable
- def setOutputAsReg(): Interface.this.type
Recursively set baseType to reg only for output
Recursively set baseType to reg only for output
- Definition Classes
- Data
- def setPartialName(name: String, namePriority: Byte, owner: Any): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String, namePriority: Byte): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String, weak: Boolean): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String, namePriority: Byte): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String, weak: Boolean): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String): Interface.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable): Interface.this.type
- Definition Classes
- Nameable
- def setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
- def setScalaLocated(source: ScalaLocated): Interface.this.type
- Definition Classes
- ScalaLocated
- def setWeakName(name: String): Interface.this.type
- Definition Classes
- Nameable
- def spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- var thisIsNotSVIF: Boolean
- def tieGeneric[T <: BitVector](signal: T, generic: String): LinkedHashMap[BitVector, String]
- def tieIFParameter[T <: Interface](signal: T, signalParam: String, inputParam: String): LinkedHashMap[(Data, String), String]
- def tieParameter[T <: BitVector](signal: T, parameter: String): LinkedHashMap[BitVector, String]
- def toIo(): Interface.this.type
- Definition Classes
- Data
- def toMuxInput[T <: Data](muxOutput: T): T
- Definition Classes
- Data
- def toString(): String
- def unfreeze(): Interface.this.type
- def unsetName(): Interface.this.type
- Definition Classes
- Nameable
- def valCallback[T](ref: T, name: String): T
- Definition Classes
- ValCallbackRec → ValCallback
- def valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
- Definition Classes
- ValCallbackRec
- def valCallbackRec(ref: Any, name: String): Unit
- Definition Classes
- Interface → Bundle → ValCallbackRec
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- val widthGeneric: LinkedHashMap[BitVector, String]
- def wrapNext(): Interface.this.type
- Definition Classes
- Data
- def zipByName(that: MultiData, rec: ArrayBuffer[(BaseType, BaseType)] = ArrayBuffer()): ArrayBuffer[(BaseType, BaseType)]
- Definition Classes
- MultiData
Deprecated Value Members
- def asDirectionLess(): Interface.this.type
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
(Since version ???) use setAsDirectionLess instead
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def genIf(cond: Boolean): Interface.this.type
Generate this if condition is true
Generate this if condition is true
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
does not work with <>, use 'someBool generate Type()' or 'if(condition) Type() else null' instead