Claims
- 1. An interface for use between an asynchronous domain and a synchronous domain, the asynchronous domain being characterized by transmission of data in accordance with an asynchronous handshake protocol, the synchronous domain being characterized by transmission of data in accordance with transitions of a clock signal, the interface comprising a datapath operable to transfer a data token between the domains, the interface further comprising control circuitry operable to enable transfer of the data token via the datapath in response to at least one transition of the clock signal and at least one completion to of the asynchronous handshake protocol.
- 2. The interface of claim 1 wherein the datapath is operable to transfer the data token from the asynchronous domain to the synchronous domain, and the at least one completion of the asynchronous handshake protocol corresponds to the data token.
- 3. The interface of claim 2 wherein the data token comprises a plurality of parallel bits, and the at least one completion of the asynchronous handshake protocol comprises completion of the asynchronous handshake protocol for each of the bits.
- 4. The interface of claim 3 wherein the datapath comprises a buffer which is operable to store a plurality of data tokens including the data token, and a plurality of datapath transfer units which are operable to transfer the bits of the data token from the buffer to the synchronous domain in response to the transition of the clock signal and a transfer signal generated by the control circuitry in response to a synchronous handshake with the synchronous domain and completion of the asynchronous handshake protocol for all of the bits.
- 5. The interface of claim 4 wherein the buffer comprises a multi-stage, asynchronous, first-in-first-out (FIFO) buffer, each successive stage of which is operable to receive and transfer all of the bits of the data token in accordance with the asynchronous handshake protocol.
- 6. The interface of claim 4 wherein each datapath transfer unit comprises a latch which is operable to latch a respective bit of the data token into the synchronous domain after the transition of the clock signal and before a next transition of the clock signal.
- 7. The interface of claim 4 further comprising broadcasting circuitry which is operable to provide the transfer signal to each of the datapath transfer units.
- 8. The interface of claim 7 wherein the transfer signal comprises a token, and the broadcasting circuitry comprises a pipelined tree structure for distributing the token.
- 9. The interface of claim 8 wherein the pipelined tree structure comprises a plurality of Mueller C-elements.
- 10. The interface of claim 4 wherein the control circuitry comprises a pipelined completion stage for facilitating generation of the transfer signal.
- 11. The interface of claim 3 wherein each of the bits is encoded using 1ofN encoding where N is greater than or equal to one.
- 12. The interface of claim 2 wherein the synchronous domain requires a data transfer to comprise a block of consecutive data, the datapath further being operable to accumulate data tokens generated in the asynchronous domain to form the block of consecutive data, each data token comprising a plurality of bits, and wherein the control circuitry is operable to facilitate transfer of the accumulated data tokens to the synchronous domain via the datapath in response to a synchronous handshake with the synchronous domain and consecutive transitions of the clock signal, and after completion of the asynchronous handshake protocol for each of the bits of each of the data tokens.
- 13. An integrated circuit comprising the interface of claim 1.
- 14. The integrated circuit of claim 13 wherein the integrated circuit comprises a CMOS integrated circuit.
- 15. The integrated circuit of claim 13 wherein the integrated circuit comprises a system-on-a-chip which includes both the asynchronous and synchronous domains.
- 16. The interface of claim 1 wherein the datapath is operable to transfer the data token from the synchronous domain to the asynchronous domain, and the at least one completion of the asynchronous handshake protocol corresponds to a previously transferred data token.
- 17. The interface of claim 16 wherein each of the data token and the previously transferred data token comprises a plurality of parallel bits, and the at least one completion of the asynchronous handshake protocol comprises completion of the asynchronous handshake protocol for each of the bits of the previously transferred data token.
- 18. The interface of claim 17 wherein the datapath comprises a buffer which is operable to store a plurality of data tokens including the previously stored data token, and a plurality of datapath transfer units which are operable to transfer the bits of the data token from the synchronous domain to the buffer in accordance with the asynchronous handshake protocol and a transfer signal generated by the control circuitry in response to completion of a synchronous handshake with the synchronous domain and the asynchronous handshake protocol for all of the bits of the previously stored data token.
- 19. The interface of claim 18 wherein the buffer comprises a multi-stage, asynchronous, first-in-first-out (FIFO) buffer, each successive stage of which is operable to receive and transfer all of the bits of the data token in accordance with the asynchronous handshake protocol.
- 20. The interface of claim 18 wherein each datapath transfer unit comprises a latch which is operable to transfer a respective bit of the data token into the buffer on the transition of the clock signal.
- 21. The interface of claim 18 further comprising broadcasting circuitry which is operable to provide the transfer signal to each of the datapath transfer units.
- 22. The interface of claim 21 wherein the transfer signal comprises a token, and the broadcasting circuitry comprises a pipelined tree structure for distributing the transfer token.
- 23. The interface of claim 18 wherein the control circuitry comprises a pipelined completion stage for facilitating generation of the transfer signal.
- 24. The interface of claim 23 wherein the transfer signal comprises a transfer token, the control circuitry further comprising a transfer token buffer which is operable to store a plurality of transfer tokens each corresponding to completion of the asynchronous handshake protocol for a corresponding data token.
- 25. The interface of claim 17 wherein each of the bits is encoded using 1ofN encoding where N is greater than or equal to one.
- 26. The interface of claim 16 wherein the synchronous domain requires a data transfer to comprise a block of consecutive data, the control circuitry further being operable to facilitate transfer of a plurality of data tokens as the block of consecutive data to the asynchronous domain via the datapath in response to a synchronous handshake with the synchronous domain, consecutive transitions of the clock signal, and an enable signal generated in accordance with the asynchronous handshake protocol and indicating that the asynchronous domain has sufficient memory to receive the plurality of data tokens.
- 27. The interface of claim 1 wherein the control circuitry is operable to enable transfer of the data token on both positive and negative transitions of the clock signal.
- 28. The interface of claim 1 wherein the control circuitry is operable to enable transfer of the data token on only one of positive and negative transitions of the clock signal.
- 29. The interface of claim 1 wherein the control circuitry is operable to enable transfer of the data token only upon completion of a synchronous handshake with the synchronous domain.
- 30. The interface of claim 29 wherein the datapath is operable to transfer the data token from the asynchronous domain to the synchronous domain, the synchronous handshake comprising a first signal from the control circuitry indicating the data token is ready to be transferred, and a second signal from the synchronous domain indicating the synchronous domain is ready to receive the data token.
- 31. The interface of claim 29 wherein the datapath is operable to transfer the data token from the synchronous domain to the asynchronous domain, the synchronous handshake comprising a first signal from the control circuitry indicating the datapath is ready to receive the data token, and a second signal from the synchronous domain indicating the synchronous domain is ready to transfer the data token.
- 32. The interface of claim 29 wherein the control circuitry is further operable to operate as a zero-bit converter by converting between the asynchronous handshake protocol and the synchronous handshake without transferring data via the datapath.
- 33. The interface of claim 1 wherein the datapath is operable to transfer the data token from the asynchronous domain to the synchronous domain within one period of the clock signal upon completion of the asynchronous handshake protocol.
- 34. The interface of claim 1 wherein the control circuitry is operable to enable transfer of the data token without regard to flow control information from the synchronous domain.
- 35. An interface for use between an asynchronous domain and a synchronous domain, the asynchronous domain being characterized by transmission of data in accordance with an asynchronous handshake protocol, the synchronous domain being characterized by transmission of data in accordance with transitions of a clock signal, the interface comprising a datapath operable to receive a data token generated in the asynchronous domain and comprising a plurality of bits, the interface further comprising control circuitry operable to facilitate transfer of the data token to the synchronous domain via the datapath in response to a transition of the clock signal, completion of a synchronous handshake with the synchronous domain, and completion of the asynchronous handshake protocol for each of the bits, transfer of the data token to the synchronous domain occurring within one period of the clock signal after completion of the asynchronous handshake protocol.
- 36. An integrated circuit comprising the interface of claim 35.
- 37. The integrated circuit of claim 36 wherein the integrated circuit comprises a CMOS integrated circuit.
- 38. The integrated circuit of claim 36 wherein the integrated circuit comprises a system-on-a-chip which includes both the asynchronous and synchronous domains.
- 39. An interface for use between a synchronous domain and an asynchronous domain, the synchronous domain being characterized by transmission of data in accordance with transitions of a clock signal, the asynchronous domain being characterized by transmission of data in accordance with an asynchronous handshake protocol, the interface comprising a datapath operable to receive a data token generated in the synchronous domain and comprising a plurality of bits, the interface further comprising control circuitry operable to facilitate transfer of the data token to the asynchronous domain via the datapath in response to a transition of the clock signal, completion of a synchronous handshake with the synchronous domain, and an enable signal generated in accordance with the asynchronous handshake protocol and indicating that the asynchronous domain is ready to receive the data token, transfer of the data token to the synchronous domain occurring within one period of the clock signal after generation of the enable.
- 40. An integrated circuit comprising the interface of claim 39.
- 41. The integrated circuit of claim 40 wherein the integrated circuit comprises a CMOS integrated circuit.
- 42. The integrated circuit of claim 40 wherein the integrated circuit comprises a system-on-a-chip which includes both the asynchronous and synchronous domains.
- 43. An interface for use between an asynchronous domain and a synchronous domain, the asynchronous domain being characterized by transmission of data in accordance with a delay-insensitive handshake protocol, the synchronous domain being characterized by transmission of data in accordance with transitions of a clock signal and requiring a data transfer to comprise a block of consecutive data, the interface comprising a datapath operable to accumulate data tokens generated in the asynchronous domain to form the block of consecutive data, each data token comprising a plurality of bits, the interface further comprising control circuitry operable to facilitate transfer of the accumulated data tokens to the synchronous domain via the datapath in response to completion of a synchronous handshake with the synchronous domain and consecutive transitions of the clock signal, and after completion of the handshake protocol for each of the bits of each of the tokens.
- 44. An integrated circuit comprising the interface of claim 43.
- 45. The integrated circuit of claim 44 wherein the integrated circuit comprises a CMOS integrated circuit.
- 46. The integrated circuit of claim 44 wherein the integrated circuit comprises a system-on-a-chip which includes both the asynchronous and synchronous domains.
- 47. The interface of claim 43 wherein the block of consecutive data comprises a fixed number of data tokens.
- 48. The interface of claim 47 further comprising counter circuitry for counting the fixed number of data tokens.
- 49. The interface of claim 43 wherein the block of consecutive data comprises a variable number of data tokens.
- 50. The interface of claim 49 wherein an indicator is associated with a final one of the variable number of tokens to indicate an end of the block.
- 51. The interface of claim 49 wherein information is associated with the block representing the variable number.
- 52. The interface of claim 43 wherein a message corresponds to a single block of consecutive data.
- 53. The interface of claim 43 wherein a message corresponds to a plurality of consecutive blocks of consecutive data.
- 54. The interface of claim 53 further comprising counter circuitry for counting the consecutive blocks.
- 55. The interface of claim 43 wherein the control circuitry is pipelined.
- 56. The interface of claim 43 wherein the control circuitry is operable to facilitate transfer of the data tokens in response to both positive and negative transitions of the clock signal.
- 57. The interface of claim 43 wherein the control circuitry is operable to enable transfer of the data tokens on both positive and negative transitions of the clock signal.
- 58. An interface for use between a synchronous domain and an asynchronous domain, the synchronous domain being characterized by transmission of data in accordance with transitions of a clock signal and requiring a data transfer to comprise a block of consecutive data, the asynchronous domain being characterized by transmission of data in accordance with a delay-insensitive handshake protocol, the interface comprising a datapath operable to receive data tokens generated in the synchronous domain, the interface further comprising control circuitry operable to facilitate transfer of a plurality of data tokens as the block of consecutive data to the asynchronous domain via the datapath in response to completion of a synchronous handshake with the synchronous domain and consecutive transitions of the clock signal, and an enable signal generated in accordance with the asynchronous handshake protocol and indicating that the asynchronous domain has sufficient memory to receive the plurality of data tokens.
- 59. An integrated circuit comprising the interface of claim 58.
- 60. The integrated circuit of claim 59 wherein the integrated circuit comprises a CMOS integrated circuit.
- 61. The integrated circuit of claim 59 wherein the integrated circuit comprises a system-on-a-chip which includes both the asynchronous and synchronous domains.
- 62. The interface of claim 58 wherein the block of consecutive data comprises a fixed number of data tokens.
- 63. The interface of claim 62 further comprising counter circuitry for counting the fixed number of data tokens.
- 64. The interface of claim 58 wherein the block of consecutive data comprises a variable number of data tokens.
- 65. The interface of claim 64 wherein an indicator is associated with a final one of the variable number of tokens to indicate an end of the block.
- 66. The interface of claim 64 wherein information is associated with the block representing the variable number.
- 67. The interface of claim 58 wherein a message corresponds to a single block of consecutive data.
- 68. The interface of claim 58 wherein a message corresponds to a plurality of consecutive blocks of consecutive data.
- 69. The interface of claim 68 further comprising counter circuitry for counting the consecutive blocks.
- 70. The interface of claim 58 wherein the control circuitry is pipelined.
- 71. The interface of claim 58 wherein the control circuitry is operable to facilitate transfer of the data tokens in response to both positive and negative transitions of the clock signal.
- 72. The interface of claim 58 wherein the control circuitry is operable to enable transfer of the data tokens on both positive and negative transitions of the clock signal.
- 73. At least one computer-readable medium having data structures stored therein representative of the interface of claim 1.
- 74. The at least one computer-readable medium of claim 73 wherein the data structures comprise a simulatable representation of the interface.
- 75. The at least one computer-readable medium of claim 74 wherein the simulatable representation comprises a netlist.
- 76. The at least one computer-readable medium of claim 73 wherein the data structures comprise a code description of the interface.
- 77. The at least one computer-readable medium of claim 76 wherein the code description corresponds to a hardware description language.
- 78. A set of semiconductor processing masks representative of at least a portion of the interface of claim 1.
- 79. An interface for use between an asynchronous domain and a synchronous domain, comprising:
a first datapath operable to transfer first data tokens generated in the asynchronous domain to the synchronous domain; a second datapath operable to transfer second data tokens generated in the synchronous domain to the asynchronous domain; control circuitry operable to control both the first and second datapaths in response to flow control signals indicating completion of a synchronous handshake with the synchronous domain, and completion of an asynchronous handshake protocol in the asynchronous domain.
- 80. The interface of claim 79 wherein the control circuitry comprises completion circuitry for transmitting the flow control signals in response to first and second completion signals from the first and second datapaths indicating whether the first and second datapaths are ready to transmit data.
- 81. The interface of claim 80 wherein the flow control signals transmitted by the completion circuitry correspond to the asynchronous handshake protocol.
- 82. The interface of claim 80 wherein the flow control signals transmitted by the completion circuitry correspond to the synchronous handshake.
- 83. The interface of claim 79 wherein the control circuitry further comprises trigger circuitry for generating first and second enable signals in response to the flow control signals for enabling the first and second datapaths to transmit data.
- 84. The interface of claim 83 wherein the flow control signals in response to which the first and second enable signals are generated correspond to the asynchronous handshake protocol.
- 85. The interface of claim 83 wherein the flow control signals in response to which the first and second enable signals are generated correspond to the synchronous handshake.
- 86. The interface of claim 79 wherein the control circuitry is operable to enable transfer of data via both of the first and second datapaths on both positive and negative transitions of a clock signal associated with the synchronous domain.
- 87. The interface of claim 79 wherein the first datapath is further operable to accumulate the first data tokens to form a first block of consecutive data, and wherein the control circuitry is operable to facilitate transfer of the first block of consecutive data to the asynchronous domain via the first datapath, and to facilitate transfer of a second block of consecutive data comprising the second data tokens to the asynchronous domain via the second datapath.
- 88. A synchronous dynamic random access memory (SDRAM) controller comprising the interface of claim 87.
- 89. The SDRAM controller of claim 88 wherein the control circuitry is operable to enable transfer of data via both of the first and second datapaths on both positive and negative transitions of a clock signal associated with the synchronous domain.
RELATED APPLICATION DATA
[0001] The present application claims priority from U.S. Provisional Patent Application No. 60/357,201 for ASYNCHRONOUS-SYNCHRONOUS CONVERSION CIRCUITS filed on Feb. 12, 2002 (Attorney Docket No. FULCP002P), the entire disclosure of which is incorporated herein by reference for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60357201 |
Feb 2002 |
US |