EDIS:
Guide 
FAQ 
New 
Search 
Bibliography 
Index 
Feedback
mxnDecision Call
Informal
An mxnDecision Call
(m>0, n>0) has
m+n input terminals
a_i (0<=i<m) and
b_j (0<=j<n),
and mn+1 output terminals
c and d_i_j.
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.
The environment must guarantee mutual exclusion of the a_iinputs
and also of the b_j inputs.
Schematic diagram
for a mxnDecision Call:
[ZoomFIG]
Parameterized definitions are not possible in VERDECT,
but this sketch gives the general idea:
Specification in Verdect:
define DCALL[m,n]( a0?, ..., a(m1)?, b0?, ..., b(n1)?,
c!, c(0,0)!, ..., c(m1,n1)! ) =
pref *[ (a0?  ...  a(m1)?); c! ]
 pref *[ (a0?  b0?); d0!
 ...
 (a(i)?  b(j)?; d(i,j)!
 ...
 (a(m1)?  b(n1)?; d(m1,n1)!
]
end
Also available through this link
The specification of the case m,n=3 is as follows:
Specification in DI Algebra.
.
(Not available for general m and n.)
XDI Report.
The roles of subscripts i can be permuted and, independently also the
roles of subscripts j can be permuted, provided that the
d_i_j outputs are permuted accordingly.
The mxnDecision Call satisfies Rules Y' and Z^out, but not
Z^inp (choice between a_i inputs, and also between b_j
inputs).
DI Decompositions

An mxnDecision Call with m=k and n=1
is a kCall.

An mxnDecision Call with m,n=2 is
a Decision Call.

An mxnDecision Call can be implemented with
m Forks,
a kMerge with k=m, and
an mxnDecisionWait
(equ):
[ZoomFIG]

An mxnDecision Call with m=k+k'
can be implemented with
an mxnDecision Call with m=k and
an mxnDecision Call with m=k'+1
(equ):
[ZoomFIG]

An mxnDecision Call with n=k+k'
can be implemented with
an mxnDecision Call with n=k+1
and an mxnDecision Call with n=k'
(equ):
[ZoomFIG]
Note the orientation of the
an mxnDecision Call with m,n=n',m
on the right. Using
an mxnDecision Call with m,n=m,n'
instead does not work (deadlock): INCORRECT
[ZoomFIG]

Observe that a Decision Call
can be implemented with one
Latch one
Merge, and two Forks.
By suitably combining this implementation
with scheme 4 and 5 above, one can obtain implementations of
mxnDecision Calls,
for arbitrary m,n>1, in terms of (m1)(n1)
Decision Calls, (m1)(n1)
Merges,
and 2(m1)(n1) Forks.
The resulting implementation does depend on how schemes 4 and 5
are applied. This is readily verified by considering the two
decompositions of
an mxnDecision Call with m,n=3'
into four Decision Calls.
Using Boolean Gates
No information available
Using Transistors
No information available
No information available
[Dickson74]
[Dickson74]
Last modified at Fri Nov 20 10:11:40 1998
Encyclopaedia of DelayInsensitive Systems
Copyright © 19951998
Tom Verhoeff /
Tom.Verhoeff@acm.org