Issie logo Issie

ArrayElaborate Module

Types and nested modules

Type/Module Description

Constants

CopyPortNames

The port labels an array copy is SHOWN with, by the copy's component id. Display only. A Custom component's port labels are what wire it to its sheet's Input and Output components, so they cannot carry anything but the body's; these go on the design's copy of the component, which is what names ports in the waveform selector. See wrapperOf.copyPortNames.

Functions and values

Function or value Description

bodyCanvasOf (arg1, arg2)

Full Usage: bodyCanvasOf (arg1, arg2)

Parameters:
Returns: CanvasState

The array design sheet as ONE copy: an ordinary sheet. Every component keeps its id and its ports, so the connections are untouched and the sheet's parameter slots - keyed by component id, and matching an IO slot by kind rather than by label - apply to the body exactly as they applied to the sheet.

arg0 : Component list
arg1 : Connection list
Returns: CanvasState

bodyNameOf sheetName

Full Usage: bodyNameOf sheetName

Parameters:
    sheetName : string

Returns: string

The name of the sheet holding one copy of an array design sheet.

sheetName : string
Returns: string

expandArraySheets ldcs

Full Usage: expandArraySheets ldcs

Parameters:
Returns: LoadedComponent list * (string * ArrayProblem) list * CopyPortNames

Every array design sheet replaced by the two ordinary sheets it expands to, and everything that is wrong with any of them - each problem paired with the sheet it is about, so that a caller can tell which of them the design being simulated actually depends on. After this the simulator has never seen an array sheet: BusOut, MuxOut, JoinOut and JoinIn are gone from every canvas, and what is left is custom components, wires and the two array glue types. That is why the evaluators, the truth table and the dependency machinery need no part in this, and why the wave selector shows the copies without being told about arrays.

ldcs : LoadedComponent list
Returns: LoadedComponent list * (string * ArrayProblem) list * CopyPortNames

Type something to start searching.