ISimulator Type
A simulator, wherever it runs. Every member is asynchronous because one implementation is a separate process. An in-renderer implementation returns already-resolved promises, which costs a microtask and buys one code path in the caller. Not yet here, and deliberately: reading a RAM's contents, which needs a row type that is declared in the waveform UI and has to move first; and the simulation errors a build can return, which are threaded through as they are today.
Instance members
| Instance member | Description |
Full Usage:
this.Build
Parameters:
LoadedComponent list
top : SheetName
arraySize : int
Returns: Promise<Result<unit, SimulationError>>
Modifiers: abstract |
Build a simulation of `top` from `design`, sized for `arraySize` cycles - or keep the one already built if it is of the same thing. The implementation KEEPS `design`. Instance enumeration is answered from it, which is what lets the renderer stop building a simulation of its own: which instances exist is a design-time fact, and only widths and data need the elaborated one.
|
|
|
Full Usage:
this.HandlesFor
Parameters:
SignalId list
Returns: Promise<(SignalId * SignalHandle * int) list>
Modifiers: abstract |
Turn stable signal names into this build's read handles, with each signal's width. A signal named on an INPUT port resolves to the handle of the OUTPUT driving it: a net has one driver, and it is the driver that has data. Doing that here rather than in the caller is what lets a remote simulator answer at all, since the mapping needs the elaborated simulation.
|
Full Usage:
this.InstancesInside
Parameters:
InstancePath
sheet : SheetName
Returns: Promise<SimInstance list>
Modifiers: abstract |
|
Full Usage:
this.PortsOfCanvasComp
Parameters:
ComponentId
Returns: Promise<SimPort list * int>
Modifiers: abstract |
|
Full Usage:
this.PortsOfInstances
Parameters:
InstancePath list
Returns: Promise<Map<InstancePath, SimPort list>>
Modifiers: abstract |
|
Full Usage:
this.ReadPoint
Parameters:
SignalHandle
cycle : int
Returns: Promise<Result<unit, string>>
Modifiers: abstract |
|
|
|
Full Usage:
this.ReadWindow
Parameters:
SignalHandle list
window : Window
cursorCycle : int
Returns: Promise<Result<unit, string>>
Modifiers: abstract |
|
|
|
|
|
Full Usage:
this.SetInput
Parameters:
ComponentId
value : bigint
cycle : int
Returns: Promise<Result<unit, string>>
Modifiers: abstract |
|
Full Usage:
this.SheetOfInstance
Parameters:
InstancePath
Returns: Promise<SheetName option>
Modifiers: abstract |
|
|
|