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 |
|
|
Full Usage:
Active
Field type: bool
Modifiers: mutable |
|
|
|
|
|
|
|
Full Usage:
CustomOutPort
Field type: int
Modifiers: mutable |
|
|
|
Full Usage:
FLabel
Field type: string
|
|
|
|
Full Usage:
FullName
Field type: string
|
|
|
|
|
|
|
|
Full Usage:
NumMissingInputValues
Field type: int
Modifiers: mutable |
|
|
This instance's outgoing links, by output port number, already resolved to store indices - so linking neither looks a design id up nor walks a map. Build scaffolding: linkFastComponents drops it, along with the two fields below, once it has used them, so that a built simulation does not carry a link table per component for the rest of its life.
|
|
|
|
|
|
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.
|
|
|
|
|
Full Usage:
Touched
Field type: bool
Modifiers: mutable |
|
Full Usage:
UseBigInt
Field type: bool
Modifiers: mutable |
|
Full Usage:
VerilogComponentName
Field type: string
Modifiers: mutable |
|
Full Usage:
VerilogOutputName
Field type: string array
Modifiers: mutable |
|
|
|
|
|
Instance members
| Instance member | Description |
Full Usage:
this.GetInputBigInt
Parameters:
int
arg1 : InputPortNumber
Returns: bigint
Modifiers: inline |
|
Full Usage:
this.GetInputFData
Parameters:
int
arg1 : InputPortNumber
Returns: FData
Modifiers: inline |
|
Full Usage:
this.GetInputUInt32
Parameters:
int
arg1 : InputPortNumber
Returns: uint32
Modifiers: inline |
|
|
|
Full Usage:
this.InputWidth
Parameters:
int
Returns: int
Modifiers: inline |
|
|
WHICH INSTANCE of a sheet this component sits in. The access path is the identity, and always was: a dotted upper-cased path of custom component LABELS used to be stored beside it, computed from exactly this and from nothing else. That string had to be unique, which cost a collision hack for the case of a custom component labelled with the top sheet's own name, and it read as a sheet name without being one. The path is unique by construction, needs no casing, and cannot be mistaken for a name. Labels are for showing the user, and are worked out where they are shown.
|
Full Usage:
this.OutputWidth
Parameters:
int
Returns: int
Modifiers: inline |
|
Full Usage:
this.PutOutputBigInt
Parameters:
int
arg1 : OutputPortNumber
dat : bigint
Modifiers: inline |
|
Full Usage:
this.PutOutputFData
Parameters:
int
arg1 : OutputPortNumber
dat : FData
Modifiers: inline |
|
Full Usage:
this.PutOutputUInt32
Parameters:
int
arg1 : OutputPortNumber
dat : uint32
Modifiers: inline |
|
Full Usage:
this.ShortId
Returns: string
|