Abstract:
A method and apparatus for a circuit physically realizing a time domain boundary buffer circuit for coupling an asynchronous sequential state machine controller to an asynchronous bus interface is described. A time domain boundary bridge latch circuit comprising a latch coupled to an asynchronous input, a delay element, and further coupled to a signal from the asynchronous sequential machine so that the signal from the asynchronous bus may be reliably captured is coupled to an input of the asynchronous sequential machine. The circuitry is designed to enable the asynchronous sequential machine to sample the asynchronous input as rapidly as possible without metastability errors. A second embodiment is disclosed for coupling an asynchronous sequential machine to a plurality of data bits on an asynchronous bus interface. Additional embodiments and applications are also disclosed.

Description:
RELATED APPLICATIONS 
     This application relates to co-pending U.S. patent application Ser. No. 07/945,771, entitled &#34;Time Domain Boundary Bridge Method and Apparatus&#34;, TI-17200, filed Sep. 16, 1992; and to U.S. patent application Ser. No. 07/945,547, entitled &#34;Time Domain Boundary Buffer Method and Apparatus&#34;, TI-17201, filed Sep. 16, 1992. 
     FIELD OF THE INVENTION 
     This invention relates generally to a method and apparatus for improved circuity used in coupling asynchronous sequential machine circuitry to an asynchronous bus or signal, or to an unrelated time domain bus or signal, having one or more bits for use by the asynchronous sequential machine circuitry, wherein it is desirable that the detection of the asynchronous data signals occur without requiring that the signals have a specified duration or that the transmitting device be compelled to send the data by a manual handshake with the receiving device. The improved method and apparatus of the invention allows reliable operation of an asynchronous sequential machine coupled to such an unrelated time domain signal while achieving maximum throughput rates. The method and apparatus disclosed is applicable to circuits, integrated circuits and systems wherein observation, capture or detection of asynchronous data bus signals into an asynchronous sequential machine controller is required. 
     BACKGROUND OF THE INVENTION 
     Without limiting the scope of the invention, its background is described in connection with an asynchronous sequential machine controller circuit coupled to an asynchronous bus interface. 
     In systems using an asynchronous bus to couple devices, or in coupling two devices clocked on unrelated clock time domains, the receiving device must be able to reliably receive data from the asynchronous bus and capture data from it without missing the next data word to be sent on the bus. As the fastest possible response is desired in order to enable the bus to send additional data words as rapidly as possible, it would be advantageous to use an asynchronous sequential machine as the control logic coupled to the bus. The asynchronous sequential machine can respond to changes on the bus interface as rapidly as the switching speed of the logic gates used allows, unlike sequential machine based controllers, which can only transition from state to state at clock cycle boundaries. However, coupling external asynchronous signals to an asynchronous sequential controller creates reliability problems, because the asynchronous controller may transition from state to state on an invalid or transitioning input, creating a metastability condition or erroneous state in the receiving device. 
     Heretofore, in the design of asynchronous bus coupling circuitry, the typical approach to these problems was to design the asynchronous sequential machine with protective &#34;go/no-go&#34; constructs or extra states to prevent the machine from incorrectly operating on an input signal which is in transition. Alternatively, the receiving device can handshake with the sending device so that no action is taken by either device during a time when the other device has signals in transition, and the transmitting device only changes the signals on the bus when compelled to do so by the asynchronous sequential machine. Both of these solutions require additional states or bus signals, and result in a less than optimum throughput rate on the asynchronous bus interface as well as additional hardware in the form of extra channels on the bus. 
     A need for a method and apparatus for coupling asynchronous data bus signals to the inputs of an asynchronous sequential machine, without requiting additional handshaking signals or unduly restricting the duration of such signals or events on the asynchronous bus, and using an easily implemented solution, thus exists. Accordingly, improvements which overcome any or all of these problems are presently desirable. 
     SUMMARY OF THE INVENTION 
     Generally, and in one form of the invention, a circuit is described which implements a time domain boundary bridge circuit for asynchronous machine inputs in a standard digital logic process. In the preferred embodiment of the invention, one or more data signals on the asynchronous bus are latched into a time domain boundary bridge circuit on a signal provided by the asynchronous sequential machine; the signals are held in a register for the time required to insure the register is not in a metastable condition, and then the asynchronous sequential machine receives the latched signal and can act on the latched signal without the risk of an error due to a metastable input. The time domain boundary bridge circuit comprises a flip flop or a latch which samples the incoming data signal on the rising edge of an output from the asynchronous sequential machine. After raising this signal, the machine transitions to a state where it waits for a delayed version of the latched incoming signal. The delay is provided by a delay element specifically implemented to delay the incoming signal for exactly the time known to correspond to the time required to insure the flip-flop or latch is not in a metastable condition. Once the delayed signal reaches the sequential machine, the machine can sample the latched input signal at the output of the flip-flop and transition to the next appropriate state. This solution provides the faster possible error-free transition following an event on the asynchronous bus with a minimal amount of hardware. 
     A second embodiment is described for systems where multiple bits of data are transmitted on the asynchronous bus and are to be sampled by the sequential machine of the receiving circuit. In this embodiment an enable or strobe signal sent by the transmitting device on the asynchronous bus is latched into the time domain boundary bridge circuit of the first embodiment, and the asynchronous sequential machine only samples the data once the enable or strobed signal has been latched and held for the metastability delay of the sampling latch. Thus the asynchronous sequential machine never samples data bits in transition on the asynchronous bus interface, and no errors will occur due to metastability associated with transitioning input signals. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings: 
     FIG. 1 depicts the time domain boundary bridge latch circuit of the invention; 
     FIG. 2 depicts the state transitions of an asynchronous sequential machine utilizing the time domain boundary bridge circuit of the invention; 
     FIG. 3 depicts a block diagram of the asynchronous sequential machine coupled to an asynchronous uncompelled input by use of the time domain boundary bridge latch circuit; 
     FIG. 4 depicts an alternative embodiment comprising an asynchronous bus interface having multiple data bits accompanied by an enable or strobe signal, an asynchronous sequential machine sampling said data bits, and a time domain boundary bridge latch circuit operating with the asynchronous sequential machine to prevent metastability problems in sampling the data bits; 
     FIG. 5 depicts an integrated circuit incorporating the asynchronous sequential machine having the time domain boundary bridge latch circuit of the invention, the invention coupling a logic block containing user specified application logic to an asynchronous bus interface. 
     Corresponding numerals and symbols in the different figures refer to corresponding parts unless otherwise indicated. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     In designing circuitry to monitor and control asynchronous bus interfaces, it is desirable to use asynchronous sequential machines for the bus coupling control logic circuitry. This is so because an asynchronous sequential machine can respond to events on the asynchronous bus in the amount of time required for the logic within the machine t o settle into a new state, and is not restricted to a particular clock rate. In contrast, a traditional synchronous state machine will only be able to transition to a new state in response to an event on the bus at the next clock edge, and thus is slower in responding and therefore provides a less than maximum throughput rate. 
     However, care must be taken in coupling an unclocked asynchronous sequential machine to uncompelled or externally driven asynchronous input signals, as the sequential machine will transition to a new state as soon as the monitored signal begins changing. Since the signal is transmitted by external logic operating in an unrelated time domain and without any compulsion from the receiving device, the incoming signal may change at any time. This can lead to errors in transitions of states of the asynchronous sequential machine due to the monitoring of signals in transition, commonly referred to as metastability errors. Even if the incoming signal is fed to a latch or register, the signal may change value just as it is latched, and the output of the latch may go into a mestastable condition for some time. Coupling this latched signal to an input of an asynchronous sequential machine will therefore also lead to metastability errors. 
     FIG. 1 depicts the time domain boundary bridge latch circuit of the invention comprising an input; &#34;sig&#34; from the asynchronous bus interface, a latch 1 coupled to the input &#34;sig&#34; and being clocked by a signal &#34;latch&#34;, an output &#34;sigx&#34; being a latched version of the input &#34;sig&#34;, and an output &#34;Delay&#34; being a version of the signal &#34;latch&#34; after it is delayed by the delay element 3. 
     In operation, an asynchronous sequential machine will transition to a state wherein it is ready to sample for the next input to occur on the input &#34;sig&#34;, which is asynchronous to the local time domain. Because the input &#34;sig&#34; may transition at any point, it is essential to the proper operation of the asynchronous sequential machine that the input &#34;sig&#34; not be sampled while it transitions, but only after it has reached a steady value. The invention herein requires that the asynchronous sequential machine provide the signal labeled &#34;latch&#34; in the drawing, which will clock latch 1 and thereby sample the input signal &#34;sig&#34;. 
     Since it is known that the input &#34;sig&#34; may have been in transition when the signal &#34;latch&#34; is driven, the delay element 3 is used to create a second signal &#34;delay&#34;. The amount of delay created by delay element 3 is determined by the designer from a study of the particular characteristics of the physical process being used to implement latch 1, so that the delay time provided by delay element 3 is slightly greater than the maximum time it requires the output of latch 1 to settle when a transitioning input is latched at the D input. This delay, hereinafter referred to as the metastability delay, is the amount of time which must pass before it can be said that the output of latch 1 is stable, and therefore valid for use as an input. 
     The output of the delay element, labeled &#34;delay&#34;, is input to the asynchronous sequential machine and the machine is designed so that the output of the latch 1 , signal &#34;sigx&#34;, is not sampled by the asynchronous sequential machine until signal &#34;delay&#34; reaches a logic high state. In this manner the asynchronous sequential machine may be coupled to the incoming signal &#34;sig&#34; without creating a metastability hazard. 
     FIG. 2 depicts a state diagram of the particular states of the asynchronous sequential machine logic when it is desired to sample an asynchronous bus input signal. State 5 is the state the machine is in when it is desirable to sample the incoming asynchronous signal from the bus interface. In state 7, the machine asserts the &#34;latch&#34; signal and remains in the state 7 until the &#34;delay&#34; signal reaches a logic high. On detecting the &#34;delay&#34; signal attaining a logic high, the asynchronous sequential machine may transition to either one of the two states 9 and 11 depending on the value of the latched signal &#34;sigx&#34;. 
     FIG. 3 depicts a block diagram of the asynchronous sequential machine coupled to the time domain boundary bridge latch circuit of the invention for receiving an asynchronous input. Asynchronous bus interface 13 is coupled to time domain boundary bridge latch circuit 15, which is likewise coupled to asynchronous sequential machine 17. Note that the &#34;latch&#34; signal referred to in describing the elements of FIGS. 1 and 2 is an output of the asynchronous sequential machine. By controlling this signal the sequential machine is designed not to sample the incoming uncompelled input signal unless the machine is in an appropriate state. This allows the user to determine exactly when the incoming signal is to be sampled and prevents metastability errors caused by sampling of a signal in transition. 
     FIG. 4 depicts an alternative embodiment in an application where the asynchronous sequential machine is coupled to multiple data bits on an asynchronous bus interface. Asynchronous bus interface 21 is coupled to asynchronous sequential machine 23 and time domain boundary bridge circuit comprised of latch* 25 and delay element 27. 
     In operation, asynchronous sequential machine logic 23 is sampling a multiple data bit bus labeled &#34;sig(n:0)&#34; which may transition at any time. This situation presents an additional requirement on the transmitting device, because the receiving device must only sample the multiple bit bus at times when all of the bits are stable, i.e. when the data word on the bus is valid. In the figure, the transmitting device indicates this to the receiving device by asserting the &#34;stable&#34; signal to the receiving device. 
     The time domain boundary bridge circuit comprised of latch 25 and delay element 23 is coupled to the &#34;stable&#34; input signal, while the data bus bits are coupled directly to the inputs of asynchronous sequential machine 23. When the asynchronous sequential machine reaches a state wherein it is supposed to sample the data on the bus, the machine will assert the &#34;latch&#34; output as before. Once the &#34;latch&#34; output is asserted, the machine waits until the delayed version of &#34;latch&#34;, the &#34;latchd&#34; input, reaches a logic high. At this point, the machine can transition to a state to receive the data if a valid &#34;lstable&#34; signal is detected, or back to the original sample data state if no valid &#34;lstable&#34; signal is present. 
     Note that by latching only the &#34;stable&#34; signal from the bus interface, a single latch is all that is required to reliably sample five or more bits from the bus interface, in this example the &#34;stable&#34; input and the four bit data bus &#34;sig&#34;. However, this implementation requires that the asynchronous bus not remove the data within the metastable delay time of latch 21, after the &#34;enable&#34; signal is asserted. If the particular bus interface is such that this requirement cannot be met, each bit on the bus being sampled by the asynchronous sequential machine will require its own latch which will capture the bits, but only a single &#34;delay&#34; signal and corresponding delay element is required. 
     FIG. 5 depicts an IC 31 incorporating the asynchronous sequential machine of the invention 33 and the time domain boundary bridge circuitry 35, and further depicts user specified logic circuitry 37 coupled to the invention. In operation the time domain boundary bridge and the asynchronous sequential machine circuitry of the invention enables the user to couple any user specified logic, which can be but is not restricted to ROM, RAM, EPROM, microprocessor logic, microcontrollers, or any other ASIC or user programmable application logic, to an asynchronous bus interface for data transfers. 
     While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the appended claims encompass any such modifications or embodiments.