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

Decision Call

Specifications

Informal

A (non-arbitrating, blocking) Decision Call has four input terminals (a0, a1, b0, b1) and five output terminals (c, d00, d01, d10, d11). A signal appearing on either of the a_i terminals will cause a signal to be produced at terminal c. The combination of a signal at terminal a_i and terminal b_j will cause a signal to be produced at terminal d_i_j. It does not matter which of the two input signals arrives first.

The environment of a Decision Call must guarantee mutual exclusion of the signals on a0 and a1, and also on b0 and b1. The a_i and c signals alternate, the a_i and d_i_j signals alternate, and the b_j and d_i_j signals alternate.

XDI

Schematic diagram for a Decision Call:


[Zoom|FIG]

XDI state graph for a Decision Call:(to be editted)


[Zoom|FIG]

Specification in XDI model.

Verdect

Specification in Verdect:

define DCALL( a0?, d00!, d01!, a1?, d10!, d11!, c!, b0?, b1? ) =
       pref *[ (a0? | a1?); c! ]
    || pref *[ (a0? || b0?); d00!
             | (a0? || b1?); d01!
             | (a1? || b0?); d10!
             | (a1? || b1?); d11!
             ]
end
Also available through this link

DI Algebra

Specification in DI Algebra.


An alternative specification, making use of so-called alternations, is also given:

Specification in DI Algebra:

NAME = "Decision-Call"
I = { a0?, a1?, b0?, b1? }
O = { c!, d00!, d01!, d10!, d11! }

D = [ a0? -> c!;[b0? -> d00!;D, b1? -> d01!;D]
    , a1? -> c!;[b0? -> d10!;D, b1? -> d11!;D]
    ]
[{a0,a1},{c}]
[{a0,a1},{d00,d01,d10,d11}]
[{b0,b1},{d00,d01,d10,d11}]
Also available through this link

.
This comparison shows that the two specifications are equivalent.

Properties

XDI Report.

The roles of subscripts 0 and 1 can be interchanged, independently on both a and b, provided that the d outputs are permuted accordingly:
...

Implementations

DI Decompositions

  1. A Decision Call can be implemented with two < sysref id="fork" context="p"/>, a Merge and a Decision-Wait (equ):


    [Zoom|FIG]

    The AND/IF network description of this implementation.
    The Ludwig verification script of this implementation.

Using Boolean Gates

No information available

Using Transistors

No information available

Generalizations

The Decision Call can be generalized to an mxn-Decision Call, which merges and combines m (mutually exlusive) inputs with n (mutually exclusive) inputs. A Decision Call is a 2x2-Decision Call.

Miscellaneous

In [Ornstein67, p. 348], a Decision Call is referred to as `Decision Call Unit'.

In [Dickson74, p. 46], a Decision Call is referred to as `CALL Element'. The informal specification there says:

  1. A signal appearing at any one of the initiation terminals [a_i in our description] will cause a signal to be produced at the DO terminal [c in our description].

  2. The combination of a signal at one of the initiation terminals (Im) [a_i in our description] and a signal at one of the return terminals (Rn) [b_j in our description] will cause a signal to be produced at the completion terminal corresponding to the combination (Cmn) [d_i_j in our description]. It does not matter which of the two incoming signals arrives first.
Note the last sentence, which specifically distinguishes the Decision Call from the nr-data-demux, which requires that the environment refrains from inputting on any b_j until output c has been produced.

It is, however, not clear from the description in [Dickson74, p. 46] when `new' input signals can be offered. In particular, it is not clear whether a new input signal on b_j must await the `preceding' output signal c.

References

[Dickson74, p. 46]
[Ornstein67, p. 348]


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