HOME
UP
  PREV
NEXT (Join Calculus)
HLS Expression forms: Behavioural using a Thread or Threads
We
express the algorithm and steps to be performed as an executable program
- using an imperative program (containing loops and assigments), or
- a functional program (where control flow is less-explicit).
Either way, the tool chain may:
- re-order the operations while preserving semantics, and/or
- re-encode the state and modify memory layouts.
Examples:
- Hardware Construction Languages (Lava, Chisel 2.0),
- Synopsys Behavioural Compiler for RTL (now defunct),
- Classical HLS: C-to-Gates : C-To-Verilog, SystemCrafter, LegUp, Catapult,
- Bluespec's Imerative (FSM) sublanguage,
- Handel-C (based on OCCAM),
- Object oriented: Liquid Metal (Lime Language, IBM), Kiwi (Univ Cambridge/Microsoft),
- Using Join Patterns or other parallel process algebra (C-omega).
The Kiwi, C-omega and Handel-C approaches start with parallel programs and exploit
the scheduler non-determinacy to allow variations in implementation.