Sun Jan 26 05:52:47 EST 2020

Tie breaking allows use of sequential select

This is a new idea: mimick the behavior of select in hardware, which
requires tie breaking when events arrive at the same time.

Assuming it is best to do only one event at a time.  If not, split it
up into two different machines.

When all transition functions are pure, they can be implemented either
as single-cycle, or using a programmable datapath.

So the core ideas are:

- use CSP style rendez-vous with tie-breaking select

- implementation of transition functions can then be decoupled

In othe words: CSP-style rendez-vous allows for machine
synchronization, effectively removing real-time from the picture: we
can reason at the event level.  So DECOUPLE TIME FIRST.

Once time is decoupled, transition functions can be implemented in a
single cycle, or can be done over many cycles.  This essentially
isolates the problem of function computation.

I am going to need a compiler and a universal state machine language.