EDIS: Guide | FAQ | New | Search | Bibliography | Index | Feedback

Forked Join



A Forked Join has two input terminals and two output terminals. It waits until input signals on both input terminals arrive, after which it produces signals on both output terminals. The environment may supply one new input after it has seen at least one output; it may supply two inputs once it has seen both outputs.


Schematic diagram for a Forked Join:


XDI state graph for a Forked Join:


Specification in XDI model.


Specification in Verdect:

define FJOIN( a?, b?, c!, d! ) =
       pref *[ (a? || b) ; (c! || d!) ]
Also available through this link

DI Algebra

Specification in DI Algebra:

FJ = a?; b?; c!; d!; FJ
Also available through this link


XDI Report.

The roles of input a and b can be interchanged, as can the roles of outputs c and d:
FJ(a, b; c, d) =
FJ(a, b; d, c) =
FJ(b, a; c, d) =
FJ(b, a; d, c)

The Forked Join satisfies Rules Y' and Zout, but not Zin because there is an input choice in states 4 and 5.


DI Decompositions

  1. A Forked Join can be implemented by a Join and a Fork:


    The Ludwig verification script of this implementation.

Using Boolean Gates

No information available

Using Transistors

No information available


No information available


No information available


Last modified at Fri Nov 20 10:11:39 1998
Encyclopaedia of Delay-Insensitive Systems
Copyright © 1995-1998 Tom Verhoeff / Tom.Verhoeff@acm.org