5
\$\begingroup\$

I have recently become fascinated by asynchronous CPUs, which have no central clock and each module instead sends a signal, when their data has been processed. However, I have been wondering how such modules actually know when their output is ready and stable?

In the following example of an asynchronous sequential circuit, some modules communicate using a simple handshake protocol as follows:

  1. A module is triggered by a READY signal from a previous module.
  2. The module then starts manipulating the input data.
  3. The RECEIVED signal is sent to the previous module, when the input has been read and can be modified by the prevous module.
  4. When the output is updated and stable, a READY signal is sent to the next module.
  5. When the RECEIVED signal is sent as a reply, the process starts over.

schematic

simulate this circuit – Schematic created using CircuitLab

  • Is it possible to send a READY signal when the output of a module is stable, without specifically timing the propagation delay of the module circuit?
    • If not, what would be the simplest way of delaying a READY signal based on a circuit's worst case propagation delay?
\$\endgroup\$
1
\$\begingroup\$

Is it possible to send a READY signal when the output of a module is stable, without specifically timing the propagation delay of the module circuit?

No.

If not, what would be the simplest way of delaying a READY signal based on a circuit's worst case propagation delay?

For each module, you have a matched delay line made up of a series of AND gates setup as buffers.

See images below:

enter image description here

enter image description here

enter image description here

\$\endgroup\$
1
\$\begingroup\$

No central clock does not mean no clock at all. M1 and M2 do not need to know at which speed each runs; they must know what each other are doing, and have protocol between them defined. What they both must do is to ensure they pass data from each other properly, and it must happen in synchronized way for consistent data transfer.

In your diagram you depicted very high level request / acknowledge transfer system; in real implementation it may be more complex than that, and may include clocks between the devices.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.