HOME       UP       PREV       NEXT (Beyond Pure RTL: Behavioural descriptions of hardware.)  

Higher-level: Behavioural or Declarative ?

There are two primary, high-level entry styles we can consider (in practice use a blend of them ?):

There are also purely generative approaches, like the Lava and Chisel hardware construction languages (HCLs), that just 'print out' a circuit diagram. These cannot handle data-dependent IF statements. »Lava Compiler (Singh)

Using a parallel set of guarded atomic actions is pure RTL: which is declarative (since no threads).

(The core of Bluespec RTL is declarative and much nicer to use than pure RTL. It has a scheduler (cf DBMS query planner), a behavioural-sub language for when imperative is best, and an advanced generative elaborator that is functional language.)

All higher-level styles are amenabale to automatic datapath and schedule generation, including re-encoding and re-pipelining to meet timing closure and power budgets.

Classical HLS converts a behavioural thread to a static schedule (fixed at compile time).


7: (C) 2008-17, DJ Greaves, University of Cambridge, Computer Laboratory.