WaveSimSelect Module
Functions and values
| Function or value | Description |
Full Usage:
cap sheet
Parameters:
string
Returns: string
|
|
Full Usage:
caseCompAndPortName name
Parameters:
string
Returns: string
|
|
Full Usage:
compWavesToOffer model compId
Parameters:
Model
compId : ComponentId
Returns: Wave list
|
|
Full Usage:
defaultSelectedWaves fs allWaves
Parameters:
FastSimulation
allWaves : Map<WaveIndexT, Wave>
Returns: WaveIndexT list
|
The waves to show when a wave simulation starts with nothing chosen. An empty viewer is never what the user wants: it makes the first thing they see after pressing Start a sentence telling them to press a different button. First choice is the simulated top sheet's own ports - inputs, then outputs, then Viewers. They are the signals every design has and the ones a beginner came to look at. An access path is empty exactly for components that are not inside any custom component instance, which is how "on the top sheet" is decided. A top sheet can have no ports at all: a whole CPU is often a ROM, a RAM and a couple of subsystem instances, wired to each other and to nothing outside. The `3cpu` demo's `eep1` is exactly that. Falling back to Viewers **anywhere in the design** answers it, because a Viewer is placed for one reason only - somebody wanted to watch that net - so wherever they are, they are the signals the author of the design thought were worth looking at.
|
Full Usage:
enclosingInstance accessPath
Parameters:
ComponentId list
Returns: FComponentId option
|
|
Full Usage:
getInputName withComp comp port
Parameters:
bool
comp : FastComponent
port : InputPortNumber
Returns: string
|
|
Full Usage:
getInputPortName compType port
Parameters:
ComponentType
port : InputPortNumber
Returns: string
|
|
Full Usage:
getName index fastSim
Parameters:
WaveIndexT
fastSim : FastSimulation
Returns: string
|
|
Full Usage:
getOutputName withComp comp port fastSim
Parameters:
bool
comp : FastComponent
port : OutputPortNumber
fastSim : FastSimulation
Returns: string
|
|
Full Usage:
getOutputPortName compType port
Parameters:
ComponentType
port : OutputPortNumber
Returns: string
|
|
Full Usage:
makeWave ws fastSim wi
Parameters:
WaveSimModel
fastSim : FastSimulation
wi : WaveIndexT
Returns: Wave
|
|
Full Usage:
nameWithSheet fastSim dispName waveIndex
Parameters:
FastSimulation
dispName : string
waveIndex : WaveIndexT
Returns: string
|
sheet.component.port, which is what a waveform is called. The SHEET is named, not the instance of it: which instance a waveform belongs to is said by where its row sits in the selector and by the combo box beside it, so a name carrying the instance as well said the same thing twice - and said it as a path of labels nobody asked to read. Where that leaves two waveforms with one name, the viewer disambiguates them on hover.
|
Full Usage:
probeLabelForWire fs cycle radix wireModel cid
Parameters:
FastSimulation
cycle : int
radix : NumberBase
wireModel : Model
cid : ConnectionId
Returns: string option
|
What to write beside the cursor for the wire it is resting on: the signal's name and its value at `cycle`. None when the simulation cannot answer - the wire is on a sheet it holds more than one copy of, carries no wave of its own, or has not been simulated as far as this cycle. getName, not nameWithSheet: the waveform viewer prefixes the sheet because its rows are drawn away from the design and come from all over it, so a bare "Q" there could be any of them. Here the label is on the wire, on the sheet the user is looking at, and the sheet name is the one thing the position already says. It is also the longest part of the name, on a label that has to fit beside the pointer without covering the circuit.
|
Full Usage:
selectCompWavesModal wsModel dispatch
Parameters:
WaveSimModel
dispatch : Msg -> unit
Returns: ReactElement
|
|
Full Usage:
selectRamButton wsModel dispatch
Parameters:
WaveSimModel
dispatch : Msg -> unit
Returns: ReactElement
|
|
Full Usage:
selectRamModal wsModel dispatch
Parameters:
WaveSimModel
dispatch : Msg -> unit
Returns: ReactElement
|
|
Full Usage:
selectWavesButton wsModel dispatch
Parameters:
WaveSimModel
dispatch : Msg -> unit
Returns: ReactElement
|
|
Full Usage:
toggleRamSelection (arg1, arg2) ramLabel dispatch
Parameters:
ComponentId
arg1 : ComponentId list
ramLabel : string
dispatch : Msg -> 'a
Returns: 'a
|
|
Full Usage:
waveIndexOfWire fs wireModel cid
Parameters:
FastSimulation
wireModel : Model
cid : ConnectionId
Returns: WaveIndexT option
|
The signal a wire of the open sheet carries, as an index into a simulation's waves. A wire is driven by one output port, so the wire's value is that port's. Which copy of the port depends on how many times the open sheet is instantiated in the design being simulated: with more than one there is no single answer, so none is given - the same rule wavesOfComponent applies to the schematic's right-click menu.
|
Full Usage:
waveValueAt fs cycle radix wi
Parameters:
FastSimulation
cycle : int
radix : NumberBase
wi : WaveIndexT
Returns: string option
|
The value of one wave at one cycle, written as the waveform viewer's value column writes it. The step index wraps: the step simulator uses its data arrays as a circular buffer, so a long step simulation is holding only the last MaxArraySize cycles. The waveform simulator does not wrap - its array is sized for the whole run - so there the modulo does nothing.
|
Full Usage:
wavesOfComponent fs allWaves compId
Parameters:
FastSimulation
allWaves : Map<WaveIndexT, Wave>
compId : ComponentId
Returns: Wave list * int
|
|
Full Usage:
withDefaultSelectionIfEmpty fs wsModel
Parameters:
FastSimulation
wsModel : WaveSimModel
Returns: WaveSimModel
|