class Scheduler extends LazyLogging
The scheduler holds the assignment statements of the entire circuit. Clocks introduce a level of complexity, in that when they flip registers who use those clocks must copy there inputs to their outputs. Also since registers are triggered by the derived highest level clock that can be found, child clocks must be separately driven. This is what the triggeredUnassigns are for.
- Source
- Scheduler.scala
Linear Supertypes
Type Hierarchy
Ordering
- Alphabetic
- By Inheritance
Inherited
- Scheduler
- LazyLogging
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
-
new
Scheduler(symbolTable: SymbolTable)
- symbolTable
symbol table is used to find orphans
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addAssigner(symbol: Symbol, assigner: Assigner, triggerOption: Option[Symbol] = None, excludeFromCombinational: Boolean = false): Unit
- def addUnassigner(symbol: Symbol, assigner: Assigner): Unit
- val allUnassigners: ArrayBuffer[Assigner]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- val clockAssigners: ArrayBuffer[Assigner]
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- var combinationalAssigns: ArrayBuffer[Assigner]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
executeCombinationalAssigns(): Unit
updates signals that depend on inputs
-
def
executeOrphanedAssigns(): Unit
updates signals that depend on inputs
-
def
executeTriggeredAssigns(trigger: Symbol): Unit
updates signals that depend on inputs
-
def
executeTriggeredUnassigns(trigger: Symbol): Unit
this is like executeTriggeredAssigns but is a hack to propagate clock down signals to child clocks
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def getAllAssigners: Seq[Assigner]
- def getAssignerInfo(symbolName: String): Info
- def getAssignerInfo(symbol: Symbol): Info
- def getAssigners(symbols: Seq[Symbol]): Seq[Assigner]
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hasAssigner(symbol: Symbol): Boolean
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def inputChildrenAssigners(): Seq[Assigner]
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isTrigger(symbol: Symbol): Boolean
-
val
logger: Logger
- Definition Classes
- LazyLogging
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def organizeAssigners(): Unit
- val orphanedAssigns: ArrayBuffer[Assigner]
- val registerClocks: HashSet[Symbol]
-
def
render(engine: ExecutionEngine): String
Render the assigners managed by this scheduler
- def setLeanMode(setLean: Boolean): Unit
- def setOrphanedAssigners(assigners: Seq[Assigner]): Unit
- def setVerboseAssign(isVerbose: Boolean): Unit
-
def
sortInputSensitiveAssigns(): Unit
de-duplicates and sorts assignments that depend on top level inputs.
- val symbolTable: SymbolTable
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- val triggeredAssigns: HashMap[Symbol, ArrayBuffer[Assigner]]
- val triggeredUnassigns: HashMap[Symbol, ArrayBuffer[Assigner]]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )