A SCAD machine consists of the following components:
Record Field | Description |
|
|
|
|
Full Usage:
MemData
Field type: int[]
|
|
|
|
|
|
|
Instance member | Description |
|
checks whether an address can be added to an input buffer
|
|
checks whether an address can be added to an output buffer
|
Full Usage:
this.canEnqValInp (src, tgt)
Parameters:
int * addressBuf
tgt : address
Returns: bool
|
checks whether a value can be added to an input buffer
|
Full Usage:
this.canEnqValOut (arg1, numCopies)
Parameters:
address
numCopies : int
Returns: bool
|
checks whether nc copies of a value can be added to an output buffer
|
Full Usage:
this.canFireInp adrU
Parameters:
int
Returns: bool
|
check whether unit adrU can be fired
|
Full Usage:
this.canFireOut adrU
Parameters:
int
Returns: bool
|
check whether the output buffer of unit adrU can send out a value
|
|
check whether instruction mv can be issued
|
|
add an address to an input buffer if possible |
|
add an address to an output buffer if possible |
|
add a value v to input buffer tgt that shall be sent from buffer src
|
|
add a value to an output buffer |
Full Usage:
this.fireInp adrU
Parameters:
int
Returns: bool
|
Fire a functional unit if possible, i.e., if the input buffer is not empty and all fields in the head's fields are defined. A successful firing is reported as return value.
|
Full Usage:
this.fireOut adrU
Parameters:
int
Returns: bool
|
Fire an output buffer if possible, i.e., sending some produced value to an input buffer of some other functional unit. An output buffer can be fired iff is not empty, all fields in the head's fields are defined, and there is enough space in the input buffer where the value should be sent to. A successful firing is reported as return value.
|
|
issues a move instruction if possible, and reports potential success
|
|
print the buffer entries to output stream
|
|
write the buffer entries as html table to output stream
|