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.
This is a list of BigInt values that are in the same order as the outputDependencies lists them
The concrete type of this output
The name of this output
Computed current concrete value for the name output
returns a list of names of inputs that this output depends on.
returns a list of names of inputs that this output depends on.
the output whose dependencies are being described
The order of this list will determine the order of the inputValues argument to the getOutput method
Called whenever the cycle command of the engine is called.
Called whenever the cycle command of the engine is called.
name of the clock, only need if there are multiple clocks
returns a list of dependencies between ports.
returns a list of dependencies between ports.
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.
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
the name of the input to this black box
the latest value computed for this input. It may not be different than the current value
Add any parameters to the black box implementation
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.