Sat Nov 30 16:02:47 EST 2019

Sequential programs are the norm

Why would I ever need sequential code if I have unlimited dataflow?
Is it possible to express a state machine as pure dataflow, and then
add specification for the dataflow?

The problem is with loops.  You almost always want sequential
processing of data stored in a memory because the access to that
memory is going to be sequential.

So the idea is this: the default is sequential programs.  What they
run on doesn't really matter.  Some form of datapath and control
logic.  A lot of freedom there that does not really matter much.
Parallel dataflow is actually very rare and only needed for the most
low level components such as e.g. bus interfaces.  All the other logic
will simplest to express as sequential code.

So to write state machines on an FPGA, write evertything as code, and
when it gets too inefficient, create a low level state machine.