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
sealed trait ConnectPlaceholder

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Show all
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, tags: DFTags, elaborationOptions: ElaborationOptions) 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 DFConstInt32

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object DFDecimal

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DFDecimal.type
abstract class DFDesign extends DomainContainer[DF], Design

Attributes

Supertypes
trait Design
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
abstract class DFDomain extends DomainContainer[DF]

Attributes

Supertypes
trait Selectable
trait Selectable
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
sealed abstract class DFEncoding extends Enum

Attributes

Companion
object
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes
trait Auto
class Grey
class OneHot
class StartAt[V]
class Default
class Manual[W]
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 REG_DIN[T]
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 DFVal[T, M]
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
final class DFVal[+T <: DFTypeAny, +M <: ModifierAny](val irValue: DFVal | DFError) extends AnyVal, DFMember[DFVal], Selectable

Attributes

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

Attributes

Companion
class
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
trait Design extends HasClsMetaArgs

Attributes

Companion
object
Supertypes
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
Known subtypes
class MetaDesign[D]
class DFDesign
class EDDesign
class EDBlackBox
class RTDesign
object Design

Attributes

Companion
trait
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 DomainContainer[D <: DomainType](domainType: D)

Attributes

Supertypes
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Known subtypes
class DFDesign
class DFDomain
class EDDesign
class EDBlackBox
class EDDomain
class RTDesign
class RTDomain
Show all
opaque object DomainType

Attributes

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

Attributes

Companion
object
Supertypes
class EDDesign
trait Design
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 extends DomainContainer[ED], Design

Attributes

Supertypes
trait Design
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
Known subtypes
class EDBlackBox
abstract class EDDomain extends DomainContainer[ED]

Attributes

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

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Freq.type
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
Known subtypes
object IN
object INOUT
object OUT
object VAR
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
final class REG_DIN[T <: DFTypeAny](val irValue: REG_DIN[T]) extends AnyVal

Attributes

Supertypes
class AnyVal
trait Matchable
class Any
abstract class RTDesign(cfg: RTDomainCfg) extends RTDomainContainer, Design

Attributes

Supertypes
trait Design
trait HasClsMetaArgs
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
Self type
abstract class RTDomain(cfg: RTDomainCfg) extends RTDomainContainer

Attributes

Supertypes
trait Selectable
trait Selectable
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
Known subtypes
Self type
object RTDomainCfg

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
abstract class RTDomainContainer(cfg: RTDomainCfg) extends DomainContainer[RT]

Attributes

Supertypes
trait HasDFC
trait OnCreateEvents
class Object
trait Matchable
class Any
Show all
Known subtypes
class RTDesign
class RTDomain
object Rate

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Rate.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
Known subtypes
trait Compare[T, V, Op, C]
trait TC[T, R]
object Time

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Time.type
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 `r__OPEN`

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
`r__OPEN`.type

Types

infix type <>[T, M] = T match { case Int => IsConst[T] match { case true => ComposedModifier[T, M] case false => DFInt32 <> M } case DFConstInt32 | Sig => ComposedModifier[T, 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]
opaque type DomainType
type FieldsOrTuple = Fields | NonEmptyTuple
opaque type Freq
type IntP = Int | DFConstInt32 | Sig
opaque type IntParam[V <: IntP]
type JUSTVAL[T] = T <> VAL
type ModifierAny = Modifier[Any, Any, Any, Any]
type NOTCONST = Any
type Period = Time
opaque type RTDomainCfg
type Rate = Freq | Period
type RstCfg = RstCfg
opaque type Time
infix type X[T, M] = M match { case ComposedModifier[d, m] => DFVector[Of[T], Tuple1[d]] <> m case Any => 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]]
transparent inline def dfc(using d: DFC): d.type
def exitWithError(msg: String)(using DFC): Nothing
def trydf[T <: DFTypeAny](block: => T)(using DFC, CTName): T
def trydf[V <: DFValAny](block: => V)(using DFC, CTName): V
def trydf(block: => Unit)(using DFC, CTName): Unit
def trydf[V <: DFOwnerAny](block: => V)(using DFC, CTName): V
def trydfSpecific[T](block: => T)(finale: DFError => T)(using dfc: DFC, ctName: CTName): T

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]
val OPEN: Exact[`r__OPEN`.type]

Givens

Givens

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

Extensions

Extensions

extension (dfType: DFType)
def dropUnreachableRefs(allowDesignParamRefs: Boolean)(using dfc: DFC): DFType
def dropUnreachableRefs(using DFC): DFType
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 widthInt(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 (intParamRef: IntParamRef)
def dropUnreachableRef(allowDesignParamRefs: Boolean)(using dfc: DFC): IntParamRef
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 (rate: Rate)
def asIR: Rate
extension [T](t: T)(using tc: TC[T])
def dfType(using DFC): tc.Type
extension [T](t: T)(using tc: TC[T])
def widthInt(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