Header menu logo issie

FastComponent Type

FastComponent represents a physical component in a simulation. Because sheets can be instantiated in multiple places a given sheet component can have multiple FastComponents in the simulation. Arrays on FastComponent are filled up with simulation data per clock step as a clocked simulation progresses. Equality is by reference: a FastComponent is a mutable object with an identity, holding step arrays that can run to megabytes, so comparing two of them field by field would be both meaningless and ruinous. It also carries its own reducers, which are functions and so have no structural equality at all.

Record fields

Record Field Description

AccessPath

Full Usage: AccessPath

Field type: ComponentId list

Path from thsi component to root of simulation, if it is in a subsheet.

Field type: ComponentId list

Active

Full Usage: Active

Field type: bool
Modifiers: mutable
Field type: bool

BigIntState

Full Usage: BigIntState

Field type: BigIntState option
Modifiers: mutable

components that may have variable inputs and output widths use this instead of UseBigInt to determine the correct array.

Field type: BigIntState option

DrivenComponents

Full Usage: DrivenComponents

Field type: FastComponent list
Modifiers: mutable
Field type: FastComponent list

FLabel

Full Usage: FLabel

Field type: string

label of component

Field type: string

FType

Full Usage: FType

Field type: ComponentType

convenience access to the Type of the underlying component

Field type: ComponentType

FullName

Full Usage: FullName

Field type: string

for human use: long name of component

Field type: string

InputDrivers

Full Usage: InputDrivers

Field type: (FComponentId * OutputPortNumber) option array

info on where the drivers are for each input

Field type: (FComponentId * OutputPortNumber) option array

InputLinks

Full Usage: InputLinks

Field type: IOArray array

Input data - this an array of fxed links to the relevant driver output data arrays

Field type: IOArray array

NumMissingInputValues

Full Usage: NumMissingInputValues

Field type: int
Modifiers: mutable
Field type: int

Outputs

Full Usage: Outputs

Field type: IOArray array

the output data for this component (this gets linked to all the conmponents driven

Field type: IOArray array

ReduceClocked

Full Usage: ReduceClocked

Field type: StepIndex -> unit
Modifiers: mutable
Field type: StepIndex -> unit

ReduceComb

Full Usage: ReduceComb

Field type: StepIndex -> unit
Modifiers: mutable

This component's reducer, bound to this component, as a combinational and as a clocked reduction. Installed once by installReducers when the simulation is built, so that the loop calls the component's own code instead of dispatching on FType for every component of every step. Only the hybrid components (asynchronous RAM) differ between the two.

Field type: StepIndex -> unit

SheetName

Full Usage: SheetName

Field type: string list

The component's full path in the simulation: the LABELS of the custom component instances it sits within, from the root of the simulation, followed by its own label. All upper-cased. Built by GatherData.getFullSimPath. Despite the name these are component labels, NOT sheet names - a component on the top sheet has a single-element path holding its own label. For sheets use SimSheetName (the sheet this component is in) or SimSheetNamePath (that sheet's path from the root). SubSheet below drops the last element to give just the enclosing instances.

Field type: string list

SimComponent

Full Usage: SimComponent

Field type: SimulationComponent

the legacy SimulationConmponent from which this FastComponent is generated.

Field type: SimulationComponent

SimSheetName

Full Usage: SimSheetName

Field type: string

Which INSTANCE of a sheet the component is in, as the dotted path of custom component labels down to it, upper-cased - so it is unique, because a label is unique on the canvas it is drawn on. The top sheet is the one instance with no such path, and is named by its sheet instead. Not a sheet name and not meant to be read: for the sheet's own name use getSheetNameOfInstance. Built in FastCreate.createInitFastCompPhase.

Field type: string

SimSheetNamePath

Full Usage: SimSheetNamePath

Field type: string list

SimSheetNamePath is the access path to the root of the simulation mapped to SimSheetNames of custom components The last element is the SimSheetName of the sheet the component is in. It is used by the Wave Selector to determine which waves are subsheets of a given Wave.SheetId.

Field type: string list

State

Full Usage: State

Field type: StepArray<SimulationComponentState> option

Used only by clocked components, contains an array of the component state in every clock cycle. Filled as simulation progresses.

Field type: StepArray<SimulationComponentState> option

Touched

Full Usage: Touched

Field type: bool
Modifiers: mutable
Field type: bool

UseBigInt

Full Usage: UseBigInt

Field type: bool
Modifiers: mutable

Most components have all bus inputs and outputs the same width. This gives the default array field to use - BigIntStep or UInt32Step - in IOArray.

Field type: bool

VerilogComponentName

Full Usage: VerilogComponentName

Field type: string
Modifiers: mutable
Field type: string

VerilogOutputName

Full Usage: VerilogOutputName

Field type: string array
Modifiers: mutable
Field type: string array

cId

Full Usage: cId

Field type: ComponentId

allows access to the underlying component

Field type: ComponentId

fId

Full Usage: fId

Field type: FComponentId

contains component path to root of simulation - unique

Field type: FComponentId

Instance members

Instance member Description

this.GetInputBigInt

Full Usage: this.GetInputBigInt

Parameters:
Returns: bigint
Modifiers: inline

Get the BigInt data array for a given input

epoch : int
arg1 : InputPortNumber
Returns: bigint

this.GetInputFData

Full Usage: this.GetInputFData

Parameters:
Returns: FData
Modifiers: inline

Get the FData array for a given input

epoch : int
arg1 : InputPortNumber
Returns: FData

this.GetInputUInt32

Full Usage: this.GetInputUInt32

Parameters:
Returns: uint32
Modifiers: inline

Get the uint32 data array for a given input

epoch : int
arg1 : InputPortNumber
Returns: uint32

this.Id

Full Usage: this.Id

Returns: ComponentId
Modifiers: inline
Returns: ComponentId

this.InputWidth

Full Usage: this.InputWidth

Parameters:
    n : int

Returns: int
Modifiers: inline

Number of component inputs

n : int
Returns: int

this.OutputWidth

Full Usage: this.OutputWidth

Parameters:
    n : int

Returns: int
Modifiers: inline

Number of component outputs

n : int
Returns: int

this.PutOutputBigInt

Full Usage: this.PutOutputBigInt

Parameters:
Modifiers: inline

write data to the BigIntStep output array for the given time step (epoch) and output (n)

epoch : int
arg1 : OutputPortNumber
dat : bigint

this.PutOutputFData

Full Usage: this.PutOutputFData

Parameters:
Modifiers: inline

write data to the FData output array for the given time step (epoch) and output (n)

epoch : int
arg1 : OutputPortNumber
dat : FData

this.PutOutputUInt32

Full Usage: this.PutOutputUInt32

Parameters:
Modifiers: inline

write data to the Unint32Step output array for the given time step (epoch) and output (n)

epoch : int
arg1 : OutputPortNumber
dat : uint32

this.ShortId

Full Usage: this.ShortId

Returns: string

for debugging - get a short usually unique truncation of the fId

Returns: string

this.SubSheet

Full Usage: this.SubSheet

Returns: string list
Modifiers: inline

The labels of the custom component instances this component sits within, outermost first. Empty for a component on the sheet being simulated. This is SheetName without the component's own label, so like it these are component labels, not sheet names.

Returns: string list

Type something to start searching.