This is an old revision of the document!

The dataflow sublanguage

The dataflow sublanguage provides a convenient short-hand when designing asynchronous circuits using pipelined asynchronous circuits. The dataflow language operates exclusively on channels, and treats channels as variables to specify the dataflow computation.

chan(int) a, b, c;

dataflow {
   a + b -> c

This corresponds to an adder, with inputs on channels a and b and the output on channel c. There is an implicit assumption that the design is pipelined, and corresponds to the following CHP program:

*[ a?x,b?y;c!(x+y) ]