trait ScalaBlackBox extends AnyRef
This is the template for writing Scala functions that implement the behaviour of a black box. Implementing classes should add internal variables to hold any state information.
- Alphabetic
- By Inheritance
- ScalaBlackBox
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def getOutput(inputValues: Seq[BigInt], tpe: Type, outputName: String = ""): BigInt
getOutput is called to determine the value for the named output at the current state of the system.
getOutput is called to determine the value for the named output at the current state of the system. The proper way to do this is to not use the inputValues. Instead useinputChanged to supply a black box with its inputs.
- inputValues
This is a list of BigInt values that are in the same order as the outputDependencies lists them
- tpe
The concrete type of this output
- outputName
The name of this output
- returns
Computed current concrete value for the name output
- abstract def name: String
- abstract def outputDependencies(outputName: String): Seq[String]
returns a list of names of inputs that this output depends on.
returns a list of names of inputs that this output depends on.
- outputName
the output whose dependencies are being described
- Note
The order of this list will determine the order of the inputValues argument to the getOutput method
Concrete 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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clockChange(transition: Transition, clockName: String = ""): Unit
Called whenever the cycle command of the engine is called.
Called whenever the cycle command of the engine is called.
- clockName
name of the clock, only need if there are multiple clocks
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def completeName(componentName: String): String
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finish(): Unit
Called by TreadleTester#finish override this method to perform any cleanup necessary
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def getDependencies: Seq[(String, Set[String])]
returns a list of dependencies between ports.
returns a list of dependencies between ports.
- Note
There is one bit of hand-waving magic to make black boxes work when they have internal state. In order to satisfy the single pass assignment to every wire, black boxes with state must specify that their inputs depend on their outputs, in order to get the correct topological sort. See the AsyncResetBlackBox test to see an example of how this was done.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def inputChanged(name: String, value: BigInt): Unit
This method will be called for each input symbol of the black box.
This method will be called for each input symbol of the black box. This method should be overridden
- name
the name of the input to this black box
- value
the latest value computed for this input. It may not be different than the current value
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def setParams(params: Seq[Param]): Unit
Add any parameters to the black box implementation
- def setPlusArgs(plusArgs: Seq[PlusArg]): Unit
allows blackbox to see if any plus args on command line are targeted at it
allows blackbox to see if any plus args on command line are targeted at it
- plusArgs
list of args
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated