International Journal of Reconfigurable Computing / 2009 / Article / Alg 2 / Research Article
Experiencing a Problem-Based Learning Approach for Teaching Reconfigurable Architecture Design Algorithm 2 Typical code example for a compute node (terminal macro procedure): in a clock cycle, in parallel, inputs are received, result is computed, and output is sent.
macro proc computeUnit (functionChan, inChan, outChan)
variables
signed 13 vIn [
];
inputs
signed 14 result;
output
unsigned char functionSymbol;
receiving the function symbol
functionChan ? functionSymbol;
initialization of the pipeline
not shown here (just comments)
receiving first input value set
then, in parallel :
receiving second input value set
computing first result
infinite loop
While (1)
par
doing in parallel in one clock cycle
receiving input values
par(
=0;
2
++)
inChan[
] ? vIn[
];
computing result
switch(functionSymbol)
ADD
case
: result = vIn[
]+vIn[
]; break;
MIN
case
: result = vIn[
]
vIn[
] ? vIn[
] : vIn[
]; break;
MAX
case
: result = vIn[
]
vIn[
] ? vIn[
]:vIn[
]; break; default : delay; break;
sending result
outChan ! result;