The
control input for each register gate comes from
the watcher of the next or downstream register.
When the next register has received and stored
a DATA wave front playing through the combinational
circuit, it sends back a DATA acknowledge (DACK)
that says, "I have received and stored the
DATA wave front and now you can send the NULL
wave front". This is conveyed by transitioning
the control line value to NULL. But the watcher
transitions its result to DATA when it sees a
complete data set so an inverter is needed. The
same is true for the reception of the NULL wave
front. When the watcher sees all NULL values it
transitions its result value to NULL. This means,
"I have received and stored the NULL wave
front and now you can send a DATA wave front".
But to authorize a DATA wave front the control
value must be DATA, so again the signal must be
inverted.
The control line requests the sending of a DATA
wave front or a NULL wave front. The register
gates are feedback hysteresis gates that enforce
the completeness of input for both DATA and NULL.
To pass DATA values, both inputs of a gate must
be DATA. Therefore a DATA wave front cannot pass
the register gates until the control line is DATA,
or in other words until the next register has
requested the data to be passed. When the control
line becomes DATA, the DATA values presented to
the register gates will be passed and as long
as the control line remains DATA the data will
be stored by the register gates. When a complete
DATA set has been passed and stored by the register
gates the watcher gate will detect the complete
DATA set and transition the control line to the
previous register to NULL, indicating that it
has received and stored a DATA wave front and
the previous register can pass a NULL wave front.
Because of the hysteresis behavior of the register
gates, they will not pass a NULL wave front until
both inputs are NULL. So when the NULL wave front
arrives at the register gates and the control
line becomes NULL, the NULL values will be passed
and stored as long as the control line is remains
NULL. After the NULL values are passed and stored,
the watcher will detect the all NULL value set
and transition the control line to the previous
register to DATA indicating that it has received
and stored the NULL wave front and the previous
register can pass a DATA wave front.
The behavior of the asynchronous register is detailed
in Figures 21a, 21b, 21c and 21d.
Figure 21a. Asynchronous register behavior. |