Issie logo Issie

FastSimulation Type

Record fields

Record Field Description

ClockTick

Full Usage: ClockTick

Field type: int
Modifiers: mutable

last step number (starting from 0) which is simulated.

Field type: int

Design

Full Usage: Design

Field type: SimulatedDesign

The design this was built from - its sheets, their components and connections, and the instance queries answered by walking them. The size of the design rather than of the expansion, and the only part of a simulation a renderer needs when the simulating is happening in another process.

Field type: SimulatedDesign

Drivers

Full Usage: Drivers

Field type: Driver option array

Each driver represents one output with its data

Field type: Driver option array

FClockedComps

Full Usage: FClockedComps

Field type: FastComponent array

clocked components

Field type: FastComponent array

FCompsByIndex

Full Usage: FCompsByIndex

Field type: FastComponent array

Fast components: this array is longer than FOrderedComps because it contains IOlabel components that are redundant in the simulation. It doe snot contain custom Components Every component of the build at its own index - what a FastCompIndex indexes, and what the links between components are expressed in. Ordinary and custom alike, in the order the flatten created them, so walking it walks memory forwards.

Field type: FastComponent array

FConstantComps

Full Usage: FConstantComps

Field type: FastComponent array

constants

Field type: FastComponent array

FCustomOutputCompLookup

Full Usage: FCustomOutputCompLookup

Field type: Map<(FComponentId * OutputPortNumber), FastCompIndex>

look up from output port of custom component to the relevant Output component

Field type: Map<(FComponentId * OutputPortNumber), FastCompIndex>

FGlobalInputComps

Full Usage: FGlobalInputComps

Field type: FastComponent array

top-level inputs to the simulation

Field type: FastComponent array

FIOActive

Full Usage: FIOActive

Field type: Map<(ComponentLabel * ComponentId list), FastComponent>
Modifiers: mutable

Which component of each IOLabel group the build elected to drive it. A label key, not a component one - the only thing in the simulator keyed by anything other than ComponentId, FComponentId or FastCompIndex, and deliberately so. The components of an IOLabel group SHARE a label and are one net: what has to be looked up is the net, in one instance, and only then which component of it carries the data. So the key is (the label, the access path of the instance), and the value is the answer.

Field type: Map<(ComponentLabel * ComponentId list), FastComponent>

FIOLinks

Full Usage: FIOLinks

Field type: ((FastComponent * InputPortNumber) * FastComponent) list
Modifiers: mutable

list of deferred links driven from inactive IOlabls - at end of linkage the corresponding active IOLabel can be substituted as driver an dthe link made

Field type: ((FastComponent * InputPortNumber) * FastComponent) list

FIndexOf

Full Usage: FIndexOf

Field type: Map<FComponentId, FastCompIndex>

Where a design-time name sits in that array - the ONE map a built simulation keeps, and the only way in from outside. A saved wave selection, a RAM the user picked, a component clicked on the canvas: all of them arrive as a name, resolve here once, and everything after that is an index.

Field type: Map<FComponentId, FastCompIndex>

FOrderedComps

Full Usage: FOrderedComps

Field type: FastComponent array

Components that will be reduced in order allowing sequential reduction to implement simulation

Field type: FastComponent array

MaxArraySize

Full Usage: MaxArraySize

Field type: int

Maximum size of simulation arrays - after which they form a circular buffer

Field type: int

NumStepArrays

Full Usage: NumStepArrays

Field type: int

Total number of step arrays (= drivers)

Field type: int

StepCost

Full Usage: StepCost

Field type: StepCost

What one clock cycle of this design costs in step arrays. Worked out before the arrays were allocated, by FastCreate.stepCostOfGraph, and kept so that the waveform simulator's configuration can say what a given number of cycles would come to.

Field type: StepCost

WaveIndex

Full Usage: WaveIndex

Field type: WaveIndexT array

Each wave index represents one component port with associated driver and data

Field type: WaveIndexT array

Instance members

Instance member Description

this.ComponentAt

Full Usage: this.ComponentAt

Parameters:
Returns: FastComponent

Any component of the build, ordinary or custom. This used to be a third map, WaveComps, holding the union of the two - built by folding one into the other after every build, which on a design of 120,000 components is a copy of all of them for a lookup that is two tries. It was also the only reason a wave viewer needed a structure the wave tables built, so removing it is what lets the same code answer from a build made without them. The component at one index of this build. Not valid across builds: an index names a slot in the store that made it, which is why what OUTLIVES a build is the design-time name.

fci : FastCompIndex
Returns: FastComponent

this.ComponentOf

Full Usage: this.ComponentOf

Parameters:
Returns: FastComponent option
fId : FComponentId
Returns: FastComponent option

this.ComponentsById

Full Usage: this.ComponentsById

Returns: Map<string, Map<ComponentId, Component>>
Returns: Map<string, Map<ComponentId, Component>>

this.ConnectionsByPort

Full Usage: this.ConnectionsByPort

Returns: Map<SheetPort, Connection list>
Returns: Map<SheetPort, Connection list>

this.FastComponentOf

Full Usage: this.FastComponentOf

Parameters:
Returns: FastComponent

The same, for a caller that knows the component is there and says so - the callers that used to index WaveComps directly. Raises naming the id when it is not, which is what indexing a map did.

fId : FComponentId
Returns: FastComponent

this.SimulatedCanvasState

Full Usage: this.SimulatedCanvasState

Returns: LoadedComponent list

The design-sized fields, under the names they had when they were fields of this record. They read through to `Design`, which is where they live now - so that the design can be held, and asked, without a simulation to hang it on.

Returns: LoadedComponent list

this.SimulatedTopSheet

Full Usage: this.SimulatedTopSheet

Returns: string
Returns: string

this.getSheetNameOfInstance instance

Full Usage: this.getSheetNameOfInstance instance

Parameters:
Returns: string

The design-time name of the sheet an instance is of: what the user called it, and what they see in the Sheets menu. An instance is a path; this says which sheet it is a copy of.

instance : InstancePath
Returns: string

this.parentCustomOf instance

Full Usage: this.parentCustomOf instance

Parameters:
Returns: Component option

The custom component an instance is the innards of, or None for the top sheet.

instance : InstancePath
Returns: Component option

Type something to start searching.