rigel icon indicating copy to clipboard operation
rigel copied to clipboard

remove nil->Handshake(A)

Open jameshegarty opened this issue 7 years ago • 1 comments

nil->Handshake(A) (source) modules don't make sense in the context of SDF. We need to have one single source, or else SDF doesn't guarantee pipeline will work. With N sources, each could produce a different number of tokens total, but we have no way of checking/annotating this.

Things like constSeq, posSeq should take a HandshakeTrigger->Handshake(A), and we can use the new globals to drive them without it being inconvenient.

Additionally: if we want to introduce taps into handshake pipelines, we need to have a liftConst module of type HandshakeTrigger->Handshake(A), which only fires a set number of constants out. If it fires out arbitrary constants, taps will get messed up between frames!

jameshegarty avatar Dec 02 '17 05:12 jameshegarty

What about the top level module, which may be driven by a global signal (like frame_start)? This would then need to be a module of type nil->Handshake(A). How else should this be dealt with?

jameshegarty avatar Jan 09 '18 01:01 jameshegarty