Return to zero is an asynchronous 4-Phase signaling protocol using request and acknowledge signals. It is used to transfer data electronicly from a source to a destination using a asynchronous communication channel. To initiate a data transfer the request line is asserted. One the target recieves the request it can assert the acknowledge. This inturn allows the request to disassert and once the acknowledge is released the request can innicheate another cycle.

       _____
Req___/     \_______
          _____
Ack______/     \____

The protocol can be used to implement bundled data or delay insensitive K of N data encoded designs. (including dual-rail / 1 of 2 and 1 of 4).

Bundled data designs can transmit the data in different stable areas of the handshake. The early protocol assumes stable data while the request signal is high. The late protocol assumes data is stable while the ackowledge signal is high. The broad protocol ensures data is stable from the first transition (R+) till the last (A-)

       _____
Req___/     \_______
          _____
Ack______/     \____
      |Early| 
         |Late |
      | Broad  |
K of N designs encode the data on the request signal. Dual-rail is the simplest method of transporting information in a delay insensitive manner. The request line is split into two parts: Req0 and Req1. Both request lines are acknowledged using the Ack signal. To transmit a 0 the request asserted on Req0. Alternatively to transmit a 1 a cycle is conducted using Req1.
       _____                    
Req0__/     \___________________
                   _____        
Req1______________/     \_______
          _____       _____     
Ack______/     \_____/     \____
All K of N return to zero protocols use the early protocol as the data is encoded on the request signal.