Tue Jan 28 08:59:45 EST 2020

Syncrhonization example

Ok so there is a catch: this cross-coupling introduces a loop, and I
don't think I have a way to decouple it.

This is why I couldn't just write it down.  The idea has a flaw.

Interesting.  Why is there this limitation?

So it seems that if I implement this using a delay in the feedback
path, it will be straightforward to do.  Otherwise it is a recursion
scheme that is not currently possible, and requires a new language

Maybe not.  What is necessary is the "open" version of the two
transition functions.  They should be merged into a single function
and then closed over feedback registers.

I'm too dumb for this shit rn.

Note that there will be no loops: it is only because there is an
apparent delay between rdy and ack.  Maybe the trick is to expose
these two signals (ready in next) and then close them explicitly?

This is the same thing that happened for memory reads.  And indeed!
this is also a read/write pair!

EDIT: Ok was able to code it up.  Now create a test.

EDIT: Ok have test, but things aren't correct yet.  This is again an
off-by-one thing that is hard to see.  Thinks like that are just
horrible to get right!  Almost there, just too stupid atm.