Claims
- 1. A system comprising:
a first set of storage locations; a second set of storage locations; and control logic configured to
load data from a plurality of parallel data streams received according to a first clock signal having a first rate into the first set of storage locations, allow values of the data to stabilize in the first set of storage locations, load data from the first set of storage locations to the second set of storage locations, read data from the second set of storage locations according to a second clock signal having a rate that is different from the rate of the first clock signal, determine a delay between data being loaded into the first set of storage locations and the same data being loaded into the second set of storage locations, and selectively add or drop data to maintain the delay in a predetermined range.
- 2. The system of claim 1, wherein the storage locations comprise flip-flops.
- 3. The system of claim 1, wherein the control logic comprises a state machine.
- 4. The system of claim 3, further comprising delay logic configured to delay a load signal associated with the first set of storage locations and to provide the delayed load signal to the state machine.
- 5. The system of claim 4, wherein the state machine is configured to determine the delay between data being loaded into the first set of storage locations and being loaded into the second set of storage locations by delaying a load signal corresponding to a selected storage location in the first set by a predetermined amount and determining whether the delayed load signal falls within a temporal window associated with loading a selected storage location in the second set.
- 6. The system of claim 5, wherein the state machine is configured to selectively add or drop data by: if the delayed load signal falls within the temporal window, reading data sequentially out of the second set of storage locations; if the delayed load signal precedes the temporal window, skipping reading one of the second set of storage locations; and if the delayed load signal follows the temporal window, reading an additional one of the second set of storage locations.
- 7. The system of claim 1, wherein the first set of storage locations comprises four storage locations and wherein each storage location is configured to store a bit from each of parallel data streams.
- 8. The system of claim 7, wherein the second set of storage locations comprises four storage locations corresponding to the storage locations in the first set, and an additional storage location, wherein adding data comprises reading the additional storage location.
- 9. The system of claim 1, wherein the parallel data streams comprise n data streams.
- 10. The system of claim 9, wherein the second clock rate is n times the first clock rate.
- 11. The system of claim 10, wherein the control logic is configured to reading data from the second set of storage locations in an interleaved fashion to generate a single serial data stream at the second clock rate.
- 12. The system of claim 1, wherein the control logic is configured to discard a portion of the data bits and generating a single serial data stream at a reduced clock rate.
- 13. The system of claim 12, wherein the control logic is configured to discard every second bit.
- 14. A method comprising:
loading data received according to a first clock signal having a first rate into a first set of storage locations according to a first clock signal; allowing values of the data to stabilize in the first set of storage locations; loading data from the first set of storage locations to a second set of storage locations; reading data from the second set of storage locations according to a second clock signal having a second rate that is different from the first rate; determining a delay between each data bit being loaded into the first set of storage locations and the data bit being loaded into the second set of storage locations; and selectively adding or dropping data to maintain the delay in a predetermined range.
- 15. The method of claim 14, wherein determining the delay between each data bit being loaded into the first set of storage locations and the data bit being loaded into the second set of storage locations comprises: delaying a load signal corresponding to a selected storage location in the first set by a predetermined amount; and determining whether the delayed load signal falls within a temporal window associated with loading a selected storage location in the second set.
- 16. The method of claim 15, wherein selectively adding or dropping data to maintain the delay in a predetermined range comprises: if the delayed load signal falls within the temporal window, reading data sequentially out of the second set of storage locations; if the delayed load signal precedes the temporal window, skipping reading one of the second set of storage locations; and if the delayed load signal follows the temporal window, reading an additional one of the second set of storage locations.
- 17. The method of claim 14, wherein the data loaded into the first set of storage locations according to a first clock signal comprises n parallel data streams.
- 18. The method of claim 17, wherein the second clock rate is n times the first clock rate.
- 19. The method of claim 18, wherein reading data from the second set of storage locations comprises interleaving the data from the parallel data streams and generating a single serial data stream at the second clock rate.
- 20. The method of claim 17, wherein reading data from the second set of storage locations comprises discarding a portion of the data bits and generating a single serial data stream at a reduced clock rate.
- 21. The method of claim 20, wherein every second bit is discarded.
RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Patent Application No. 60/469,787, entitled “PWM Output Stage Synchronization,” by Michael A. Kost, et al., filed May 12, 2003; U.S. Provisional Patent Application No. 60/456,414, entitled “Adaptive Anti-Clipping Protection,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,430, entitled “Frequency Response Correction,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,429, entitled “High-Efficiency, High-Performance Sample Rate Converter,” by Andersen, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,421, entitled “Output Device Switch Timing Correction,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,422, entitled “Output Filter, Phase/Timing Correction,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,428, entitled “Output Filter Speaker/Load Compensation,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,420, entitled “Output Stage Channel Timing Calibration,” by Taylor, et al., filed Mar. 21, 2003; U.S. Provisional Patent Application No. 60/456,427, entitled “Intelligent Over-Current, Over-Load Protection,” by Hand, et al., filed Mar. 21, 2003; each of which is fully incorporated by reference as if set forth herein in its entirety.
Provisional Applications (9)
|
Number |
Date |
Country |
|
60469787 |
May 2003 |
US |
|
60456414 |
Mar 2003 |
US |
|
60456430 |
Mar 2003 |
US |
|
60456429 |
Mar 2003 |
US |
|
60456421 |
Mar 2003 |
US |
|
60456422 |
Mar 2003 |
US |
|
60456428 |
Mar 2003 |
US |
|
60456420 |
Mar 2003 |
US |
|
60456427 |
Mar 2003 |
US |