Claims
- 1. A temporal delay circuit for synchronizing a source synchronous input comprising a data input and a source synchronous clock with a local clock, comprising:
a temporal delay queue; a write pointer arranged to write the data input to the temporal delay queue based on the source synchronous clock; and a read pointer synchronized with the local clock and arranged to read from the temporal delay queue according to a desired delay.
- 2. The temporal delay circuit of claim 1, wherein the source synchronous clock and the local clock are at the same frequency.
- 3. The temporal delay circuit of claim 1, wherein the desired delay is programmable.
- 4. The temporal delay circuit of claim 1, wherein the temporal delay queue receives data using a pull model.
- 5. The temporal delay circuit of claim 1, wherein the temporal delay queue comprises means for indicating when data is ready to be read from the temporal delay queue.
- 6. The temporal delay circuit of claim 1, wherein the write pointer is incremented on a rising edge of the source synchronous clock and on a falling edge of the source synchronous clock if the source synchronous clock is half the frequency of the local clock.
- 7. The temporal delay circuit of claim 6, wherein the read pointer is incremented on a rising edge of the local clock.
- 8. The temporal delay circuit of claim 6, wherein the read pointer is incremented on a falling edge of the local clock.
- 9. The temporal delay circuit of claim 1, further comprising:
a plurality of temporal delay queues wherein each temporal delay queue is associated with a distinct operating mode.
- 10. The temporal delay circuit of claim 9, wherein a first temporal delay queue is configured to operate in a first operating mode and a second temporal delay queue is configured to operate in a second operating mode, wherein upon a change from the first operating mode to the second operating mode the write pointer is incremented to write in-transit data input to the first temporal delay queue.
- 11. The temporal delay circuit of claim 9, wherein a first temporal delay queue is configured to operate in a first operating mode and a second temporal delay queue is configured to operate in a second operating mode, wherein the read pointer advances from a last accessed address of the first temporal delay queue while in the first operating mode after resuming operation in the first operating mode from the second operating mode.
- 12. The temporal delay circuit of claim 1, wherein the desired delay is initialized during power-up.
- 13. The temporal delay circuit of claim 1, wherein the temporal delay queue comprises at least three address locations if edge triggered circuit elements store the data input.
- 14. The temporal delay circuit of claim 1, wherein the temporal delay queue comprises at least four address locations if level activated circuit elements store the data input.
- 15. A method for synchronizing a source synchronous input with a local clock, wherein the source synchronous input comprises a data input and a source synchronous clock, said method comprising:
using a temporal delay queue to store the data input based on the source synchronous clock; using a write pointer to determine where to store the data input in the temporal delay queue, wherein the write pointer is based on the source synchronous clock; and using a read pointer to determine a location in the temporal delay queue from which the data input should be read, wherein the read pointer is in phase with the local clock and arranged to read from the temporal delay queue according to a desired delay.
- 16. The method of claim 15, wherein the source synchronous clock and the local clock are at the same frequency.
- 17. The method of claim 15, wherein the desired delay is programmable.
- 18. The method of claim 15, wherein the temporal delay queue receives data using a pull model.
- 19. The method of claim 15, wherein the temporal delay queue comprises means for indicating when data is ready to be read from the temporal delay queue.
- 20. The method of claim 15, wherein the write pointer is incremented on a rising edge of the source synchronous clock and on a falling edge of the source synchronous clock if the source synchronous clock is half the frequency of the local clock.
- 21. The method of claim 20, wherein the read pointer is incremented on a rising edge of the local clock.
- 22. The method of claim 20, wherein the read pointer is incremented on a falling edge of the local clock.
- 23. The method of claim 15, further comprising:
using a plurality of temporal delay queues wherein each temporal delay queue is associated with a distinct operating mode.
- 24. The method of claim 23, wherein a first temporal delay queue is configured to operate in a first operating mode and a second temporal delay queue is configured to operate in a second operating mode, wherein upon a change from the first operating mode to the second operating mode the write pointer is incremented to write in-transit data input to the first temporal delay queue.
- 25. The method of claim 23, wherein a first temporal delay queue is configured to operate in a first operating mode and a second temporal delay queue is configured to operate in a second operating mode, wherein the read pointer advances from a last accessed address of the first temporal delay queue while in the first operating mode after resuming operation in the first operating mode from the second operating mode.
- 26. The method of claim 15, wherein the desired delay is initialized during power-up.
- 27. The method of claim 15, wherein the temporal delay queue comprises at least three address locations if edge triggered circuit elements store the data input.
- 28. The method of claim 15, wherein the temporal delay queue comprises at least four address locations if level activated circuit elements store the data input.
- 29. A temporal delay circuit for synchronizing a source synchronous input comprising a data input and a source synchronous clock with a local clock, said temporal delay circuit comprising:
means for using a temporal delay queue to store the data input based on the source synchronous clock; means for using a write pointer to determine where to store the data input in the temporal delay queue, wherein the write pointer is based on the synchronous clock; means for using a read pointer to determine a location in the temporal delay queue from which the data input should be read, wherein the read pointer is in phase with the local clock and arranged to read from the temporal delay queue according to a desired delay; and means for using a plurality of temporal delay queues wherein each temporal delay queue is associated with a distinct operating mode.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This is a Continuation-in-Part of Application Ser. No. 09/850,366, filed May 7, 2001 entitled “Source Synchronous I/O Without Synchronizers Using Temporal Delay Queues,” and assigned to the assignee of the present invention.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09850366 |
May 2001 |
US |
Child |
10106264 |
Mar 2002 |
US |