When a k-Sequencer receives signals on b and more than one a_i, it produces a signal on exactly one of the c_i-outputs (the others are delayed till the next b input arrives). The specification leaves the choice open. Often there is a fairness requirement on this choice: if a choice situation arises `infinitely often' then both outputs are chosen `infinitely often'.
Each pair of terminals (a_i, c_i) can be viewed as one passive 2-phase handshake port. A k-Sequencer `sequences' handshakes on its handshake ports in syncrhony with signals on the b input. The b input is also referred to as next input.
Specification in Verdect:
define S( a0?, .., a(k-1)?, b?, c0!,.., c(k-1)! ) = pref *[ a0?; c0! ] || ... || pref *[ a(k-1)?; c(k-1)! ] || pref *[ b?; (c0! | ... | c(k-1)! ) ] endAlso available through this link
Specification in DI Algebra:
I = { a0, .. ,a(k-1)?, b? } O = { c0!, .. , c(k-1)! } S_k = b?; [ a0? -> c0!; S_k, ... , a(k-1)? -> c(k-1)!; S_k ]Also available through this link.
Specification in DI Algebra:
# Generated by expexp.pl NAME ="S" I = { a0?, b?, a1?, a2? } O = { c0!, c1!, c2! } S_3 = b?;[ a0? -> c0!;S_3 , a1? -> c1!;S_3 , a2? -> c2!;S_3 ]Also available through this link.
The roles of subscripts i can be permuted (on a and c simultaneously).
The k-Sequencer satisfies Rules Y' and Z^in, but not Z^out (choice between c outputs).
No information available
No information available
No information available
Section 6.2.6 of [Ebergen89] presents decomposition 4 (without k-mixers, RGDA Arbiters, or Non-Receptive Mixers as stepping stones).