Parallel expression without threads is also possible: use a collection of state machines or BlueSpec rules.
Examples:
rule allocate (!allocated);
allocated <= True;
owner <= currentRequestor;
endrule;
Every operation has a guard predicate: says when it CAN be run
Operations have the expectation they WILL be run (fairness).
Scheduling decisions can span various power/performance issues without recoding.
| 9: (C) 2008-13, DJ Greaves, University of Cambridge, Computer Laboratory. |