Review Article
Formal ESL Synthesis for Control-Intensive Applications
Algorithm 1
Pseudocode of the PARCS scheduling algorithm.
(1) start with the initial schedule (including the special external port operations) | (2) Current PARCS state | (3) Get the 1st state and make it the current state | (4) Get the next state | (5) Examine the next state’s operations to find out if there are any dependencies | with the current state | (6) If there are no dependencies then absorb the next state’s operations into the | current PARCS state; If there are dependencies then finalize the so far | absorbed operations into the current PARCS state, store the current PARCS | state, PARCS state PARCS state; make next state the current state; | store the new state’s operations into the current PARCS state | (7) If next state is of conditional type (it is enabled by guarding conditions) then | call the conditional (true/false branch) processing predicates, else continue | (8) If there are more states to process then go to step 4, otherwise finalize the so | far operations of the current PARCS state and terminate |
|