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

Non-Receptive Mixer

Specifications

Informal

A (non-arbitrating, blocking) Non-Receptive Mixer has three 2-phase handshake ports, two passive and one active. The handshakes on the passive ports are `multiplexed' over the active port. That is, when the environment requests on exactly one of the passive ports, the Non-Receptive Mixer then requests on the active port, and when the active port receives an acknowledge, the passive port that received the original request is also acknowledged.

In contrast to the Mixer, the environment of a Non-Receptive Mixer must guarantee mutual exclusion of the requests on the passive ports. Therefore, a Non-Receptive Mixer is not a handshake component.

XDI

Schematic diagram for a Non-Receptive Mixer:

[Zoom|FIG]

XDI state graph for a Non-Receptive Mixer:

[Zoom|FIG]

Specification in XDI model.

Verdect

Specification in Verdect:


define NMIX( ar?, aa!, br?, ba!, cr!, ca? ) =
       pref *[ ar?; cr!; ca?; aa! | br?; cr!; ca?; ba! ]
end
Also available through this link

DI Algebra

Specification in DI Algebra:

NAME = "NR-Mixer"
I = { r0, r1, a }
O = { a0, a1, r }

MX = [ r0? -> r!; M0 
     , r1? -> r!; M1
     ]
M0 = [ r1? -> CHAOS
     , a?  -> a0!; MX
     ]
M1 = [ r0? -> CHAOS
     , a?  -> a1!; MX
     ]
  
[{r0},{a0}]
[{r1},{a1}]
[{r},{a}]
Also available through this link

Properties

XDI Report.

The roles of ports a and b can be interchanged:
NMIX(a, b; c) = NMIX(b, a; c)

Implementations

DI Decompositions

  1. A Non-Receptive Mixer can be implemented by a Call (not equ), and consequently with two Forks, a Merge and a Latch:


    [Zoom|FIG]
    The Ludwig verification script of this implementation.

Using Boolean Gates

No information available

Using Transistors

No information available

Generalizations

The Non-Receptive Mixer can be generalized to a k-Call, which multiplexes k passive ports (with mutually exlusive requests) onto one active port. A Non-Receptive Mixer is a Non-Receptive 2-Mixer.

Miscellaneous

The Non-Receptive Mixer is said to be blocking because a request on a passive port is only acknowledged after a handshake has been completed on the active port. A Nonblocking non-receptive Mixer can also be specified, but it is not a very useful component, as it can only be used once.

References


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