dfhdl.core

package dfhdl.core

Members list

Type members

Classlikes

object Arg

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Arg.type
sealed trait Args

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Args1[T1]
trait Args2[T1, T2]
trait Args3[T1, T2, T3]
trait Args4[T1, T2, T3, T4]
trait NoArgs
sealed trait Args1[T1] extends Args

Attributes

Supertypes
trait Args
class Object
trait Matchable
class Any
sealed trait Args2[T1, T2] extends Args

Attributes

Supertypes
trait Args
class Object
trait Matchable
class Any
sealed trait Args3[T1, T2, T3] extends Args

Attributes

Supertypes
trait Args
class Object
trait Matchable
class Any
sealed trait Args4[T1, T2, T3, T4] extends Args

Attributes

Supertypes
trait Args
class Object
trait Matchable
class Any
sealed trait Bubble

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Bubble
object Bubble extends Bubble

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
trait Bubble
class Object
trait Matchable
class Any
Show all
Self type
Bubble.type
object ClkCfg

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
ClkCfg.type
class Conditional[T](arg: => T, cond: => Boolean)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Conditional

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
object DFBits

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFBits.type
object DFBoolOrBit

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
final case class DFC(nameOpt: Option[String], position: Position, docOpt: Option[String], annotations: List[HWAnnotation], mutableDB: MutableDB, defaultDir: Int) extends MetaContext

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
trait MetaContext
class Object
trait Matchable
class Any
Show all
object DFC

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
DFC.type
object DFDecimal

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFDecimal.type
abstract class DFDesign

Attributes

Supertypes
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
abstract class DFDomain

Attributes

Supertypes
trait Selectable
trait Selectable
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
sealed abstract class DFEncoding()

Attributes

Companion
object
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
trait DFVal[Nothing, Nothing]
trait Selectable
trait DFMember[DFVal]
class Object
trait Matchable
class Any
Show all
object DFEncoding

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
DFEncoding.type
object DFEnum

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFEnum.type
sealed abstract class DFError(val dfMsg: String) extends Exception

Attributes

Companion
object
Supertypes
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
Known subtypes
class Basic
class Derived
object FakeEnum
object DFError

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
DFError.type
object DFIf

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFIf.type
object DFMatch

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFMatch.type
trait DFMember[+T <: DFMember]()

Attributes

Companion
object
Supertypes
class Any
Known subtypes
class DFNet
class DFOwner[T]
class Timer
object DFMember

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
DFMember.type
final class DFNet(val irValue: DFNet | DFError) extends AnyVal, DFMember[DFNet]

Attributes

Companion
object
Supertypes
trait DFMember[DFNet]
class AnyVal
trait Matchable
class Any
object DFNet

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
DFNet.type
object DFOpaque

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFOpaque.type
final class DFOwner[+T <: DFOwner](val irValue: T | DFError) extends AnyVal, DFMember[T]

Attributes

Companion
object
Supertypes
trait DFMember[T]
class AnyVal
trait Matchable
class Any
object DFOwner

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
DFOwner.type
object DFPortOps

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFPortOps.type
sealed trait DFRET()

Attributes

Supertypes
class Object
trait Matchable
class Any
object DFSInt

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFSInt.type
object DFStruct

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFStruct.type
object DFTuple

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFTuple.type
final class DFType[+T <: DFType, +A <: Args](val value: T | DFError) extends AnyVal

Attributes

Companion
object
Supertypes
class AnyVal
trait Matchable
class Any
object DFType

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
DFType.type
object DFUInt

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFUInt.type
object DFUnitVal

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFUnitVal.type
trait DFVal[+T <: DFTypeAny, +M <: ModifierAny]()

Attributes

Companion
object
Supertypes
trait Selectable
trait DFMember[DFVal]
class Any
object DFVal

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
DFVal.type
object DFVarOps

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFVarOps.type
object DFVector

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFVector.type
object DFXInt

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFXInt.type
object Design

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Design.type

Attributes

Supertypes
class Object
trait Matchable
class Any
object Domain

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Domain.type
abstract class EDBlackBox(verilogSrc: Source, vhdlSrc: Source) extends EDDesign

Attributes

Companion
object
Supertypes
class EDDesign
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
object EDBlackBox

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
EDBlackBox.type
abstract class EDDesign

Attributes

Supertypes
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
Known subtypes
class EDBlackBox
abstract class EDDomain

Attributes

Supertypes
trait Selectable
trait Selectable
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
trait HasDFC

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed trait ISCONST[T <: Boolean]

Attributes

Supertypes
class Object
trait Matchable
class Any
object IntP

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
IntP.type
object IntParam

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
IntParam.type
class Logger

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed class Modifier[+A, +C, +I, +P](val value: Modifier)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Modifier

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Modifier.type
final class MutableDB()

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed trait NoArgs extends Args

Attributes

Supertypes
trait Args
class Object
trait Matchable
class Any
object Process

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Process.type
abstract class RTDesign(cfg: RTDomainCfg)

Attributes

Supertypes
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
abstract class RTDomain(cfg: RTDomainCfg)

Attributes

Supertypes
trait Selectable
trait Selectable
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
object RTDomainCfg

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object RstCfg

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
RstCfg.type
final class SameElementsVector[T](val value: T)

A unconstrained-width literal vector of a given bit value

A unconstrained-width literal vector of a given bit value

Attributes

Note

Some vector operations are not possible with this literal. E.g., x ++ all(0) is forbidden because concatenation cannot infer the output width from this operation.

Example
 val x = DFBits(8) init all(0)
 x := all(1)
Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
trait ShowType[T]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object ShowType

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
ShowType.type
trait TCConv[T <: DFTypeAny, V, O]()

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed class Timer extends DFMember[Timer]

Attributes

Companion
object
Supertypes
trait DFMember[Timer]
class Object
trait Matchable
class Any
object Timer

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Timer.type
sealed trait VAL

Attributes

Supertypes
class Object
trait Matchable
class Any
trait VarsTuple[T <: NonEmptyTuple]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object VarsTuple

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
VarsTuple.type
object Wait

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Wait.type
trait Width[T]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Width

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Width.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object `__OPEN`

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
`__OPEN`.type
object hw

contains all the dfhdl hardware annotations

contains all the dfhdl hardware annotations

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
hw.type

Types

infix type <>[T <: Supported, M] = T match { case Int => IsConst[T] match { case true => ComposedModifier[T, M] case false => DFInt32 <> M } case Any => M match { case DFRET => DFC ?=> DFValOf[Of[T]] case VAL => DFValOf[Of[T]] case CONST => DFConstOf[Of[T]] } }
type BitNum = 0 | 1
type BitOrBool = BitNum | Boolean
type CONST = ISCONST[true]
type ClkCfg = ClkCfg
type DFBit = DFType[DFBit.type, NoArgs]
type DFBits[W <: IntP] = DFType[DFBits, Args1[W]]
type DFBool = DFType[DFBool.type, NoArgs]
type DFBoolOrBit = DFType[DFBoolOrBit, NoArgs]
type DFConstOf[+T <: DFTypeAny] = DFVal[T, CONST]
type DFDecimal[S <: Boolean, W <: IntP, F <: Int, N <: NativeType] = DFType[DFDecimal, Args4[S, W, F, N]]
type DFEnum[E <: DFEncoding] = DFType[DFEnum, Args1[E]]
type DFInt32 = DFType[DFDecimal, Args4[true, 32, 0, Int32]]
type DFMemberAny = DFMember[DFMember]
type DFNothing = DFType[DFNothing, NoArgs]
type DFOpaque[+TFE <: Abstract] = DFType[DFOpaque, Args1[TFE]]
type DFOwnerAny = DFOwner[DFOwner]
type DFSInt[W <: IntP] = DFXInt[true, W, BitAccurate]
type DFStruct[+F <: FieldsOrTuple] = DFType[DFStruct, Args1[F]]
type DFTuple[+T <: NonEmptyTuple] = DFStruct[T]
type DFTypeAny = DFType[DFType, Args]
type DFUInt[W <: IntP] = DFXInt[false, W, BitAccurate]
type DFUnit = DFType[DFUnit, NoArgs]
type DFValOf[+T <: DFTypeAny] = DFVal[T, ModifierAny]
type DFValTP[+T <: DFTypeAny, +P] = DFVal[T, Modifier[Any, Any, Any, P]]
type DFVarOf[+T <: DFTypeAny] = DFVal[T, Mutable]
type DFVector[+T <: DFTypeAny, +D <: NonEmptyTuple] = DFType[DFVector, Args2[T, D]]
type DFXInt[S <: Boolean, W <: IntP, N <: NativeType] = DFDecimal[S, W, 0, N]
type FieldsOrTuple = Fields | NonEmptyTuple
type IntP = Int | DFConstInt32 | Sig
opaque type IntParam[V <: IntP]
type JUSTVAL[T <: Supported] = T <> VAL
type ModifierAny = Modifier[Any, Any, Any, Any]
type NOTCONST = Any
type RTDomainCfg = RTDomainCfg
type RstCfg = RstCfg
infix type X[T <: Supported, M] = M match { case ComposedModifier[d, m] => DFVector[Of[T], Tuple1[d]] <> m case Int & Singleton => DFVector[Of[T], Tuple1[M]] }

Value members

Concrete methods

def DFValConversionMacro[T <: DFTypeAny, P, R](from: Expr[R])(using Quotes, Type[T], Type[P], Type[R]): Expr[DFValTP[T, P]]
def dfc(using DFC): DFC
def exitWithError(msg: String): Nothing
def trydf[T <: DFTypeAny](block: => T)(using dfc: DFC, ctName: CTName): T
def trydf[V <: DFValAny](block: => V)(using dfc: DFC, ctName: CTName): V
def trydf(block: => Unit)(using dfc: DFC, ctName: CTName): Unit

Concrete fields

final val ?: Bubble.type
final lazy val DFBit: DFBit
final lazy val DFBool: DFBool
final val DFInt32: DFInt32
val DFNothing: DFType[DFNothing, NoArgs]
val DFUnit: DFType[DFUnit, NoArgs]
final val DerivedCfg: DerivedCfg.type
val OPEN: Exact[`__OPEN`.type]

Givens

Givens

given canEqualNothingL: CanEqual[Nothing, Any]
given canEqualNothingR: CanEqual[Any, Nothing]

Extensions

Extensions

extension [V <: DFVal](dfVal: V)
inline def asConstOf[T <: DFTypeAny]: DFConstOf[T]
inline def asDclAny: DFDclAny
inline def asVal[T <: DFTypeAny, M <: ModifierAny]: DFVal[T, M]
inline def asValAny: DFValAny
inline def asValOf[T <: DFTypeAny]: DFValOf[T]
inline def asValTP[T <: DFTypeAny, P]: DFValTP[T, P]
inline def asVarAny: DFVarAny
inline def asVarOf[T <: DFTypeAny]: DFVarOf[T]
extension (dfVal: DFValAny)
inline def asConstOf[T <: DFTypeAny]: DFConstOf[T]
inline def asDclAny: DFDclAny
inline def asVal[T <: DFTypeAny, M <: ModifierAny]: DFVal[T, M]
inline def asValOf[T <: DFTypeAny]: DFValOf[T]
inline def asValTP[T <: DFTypeAny, P]: DFValTP[T, P]
inline def asVarAny: DFVarAny
inline def asVarOf[T <: DFTypeAny]: DFVarOf[T]
extension [T <: DFTypeAny, M <: ModifierAny](dfVal: DFVal[T, M])
def width(using dfc: DFC, w: Width[T]): Inlined[w.OutI]
def widthIntParam(using dfc: DFC, w: Width[T]): IntParam[w.Out]
extension [T <: DFTypeAny, M <: ModifierAny](dfVal: DFVal[T, M])
def dfType: T
extension [T <: DFTypeAny](dfVar: DFValOf[T])
def assign[R <: DFTypeAny](rhs: DFValOf[R])(using DFC): Unit
def nbassign[R <: DFTypeAny](rhs: DFValOf[R])(using DFC): Unit
extension (intParamRef: IntParamRef)
def get(using dfc: DFC): IntParam[Int]
extension [T <: DFTypeAny](lhs: DFValOf[T])
def connect[R <: DFTypeAny](rhs: DFValOf[R])(using DFC): Unit
extension [M <: DFMember](member: M)
def ref(using DFC, ClassTag[M]): OneWay[M]
def refTW[O <: DFMember](using dfc: DFC, m: ClassTag[M], o: ClassTag[O]): TwoWay[M, O]
extension [M <: DFMember](member: M)
def addMember(using DFC): M
def removeTagOf[CT <: DFTag : ClassTag](implicit evidence$1: ClassTag[CT], dfc: DFC): M
def replaceMemberWith(updated: M)(using DFC): M
extension [T <: DFOwner](owner: DFOwner[T])
def ref(using ClassTag[T], DFC): OneWay[T]
extension [T](t: T)(using tc: TC[T])
def dfType(using DFC): tc.Type
extension [T](t: T)(using tc: TC[T])
def width(using dfc: DFC, w: Width[tc.Type]): Inlined[w.OutI]
def widthIntParam(using dfc: DFC, w: Width[tc.Type]): IntParam[w.Out]
extension (using quotes: Quotes)(term: quotes.reflect.Term)
def checkConst: Boolean
extension [T](using quotes: Quotes)(tpe: quotes.reflect.TypeRepr)
def showDFType: String
def showDFVal: String
def showModifier: String
def showTuple(showf: quotes.reflect.TypeRepr => String): List[String]
def showType: String
extension (using quotes: Quotes)(tpe: quotes.reflect.TypeRepr)
def isConstTpe: quotes.reflect.TypeRepr