issie


SimulationRunner

Namespace: global

Functions and values

Function or valueDescription
diffReducerInputsOrOutputs newIO oldIO
Signature: newIO:Map<'a,WireData> -> oldIO:Map<'a,WireData> -> Map<'a,WireData>
Type parameters: 'a

Function to determine what reducer inputs or outputs have changed.

extractIncompleteSimulationIOs(...)
Signature: simulationIOs:SimulationIO list -> graph:SimulationGraph -> (SimulationIO * WireData) list

Simlar to extractSimulationIOs, but do not fail if a bit is not set, just ignore it.

extractSimulationIOs simulationIOs graph
Signature: simulationIOs:SimulationIO list -> graph:SimulationGraph -> (SimulationIO * WireData) list

Given a list of IO nodes (i.e. Inputs or outputs) extract their value. If they dont all have a value, an error is thrown.

feedClockTick(graph)
Signature: graph:SimulationGraph -> SimulationGraph

Send one global clock tick to all clocked components, and return the updated simulationGraph.

feedSimulationInput(...)
Signature: graph:SimulationGraph -> inputId:ComponentId -> wireData:WireData -> SimulationGraph

Feed zero to a simulation input. This function is supposed to be used with Components of type Input.

getSimulationIOs(components)
Signature: components:Component list -> SimulationIO list * SimulationIO list

Get ComponentIds, ComponentLabels and wire widths of all input and output nodes.

getSimulationIOsFromGraph(graph)
Signature: graph:SimulationGraph -> SimulationIO list * SimulationIO list

Get ComponentIds, ComponentLabels and wire widths of all input and output nodes in a simulationGraph.

InitialiseGraphWithZeros inputIds graph
Signature: inputIds:SimulationIO list -> graph:SimulationGraph -> SimulationGraph

Feed zeros to all simulation inputs, and feed a single clock tick. This way all combinational logic has been touched once and had produced its outputs.