A data handoff controller includes a counter coupled to supply a count value indicative of a skew between a first clock signal and a second clock signal. The first and second clock signal have a fundamental beat frequency. A greatest common factor circuit is used to determine the fundamental beat frequency and the second is reset based on the beat frequency. A sampling circuit samples first clock domain data with the second clock signal. The sampling circuit is controlled to sample, at least in part, based on the count value. The count value can be used to impose a blackout window in which data is not sampled to avoid sampling data around data transitions of the first clock domain data. The count value can also be used to select an edge of the second clock signal to use for sampling the first clock domain data to ensure first clock domain data is not sampled during data transitions.
|
1. A method transferring data between a first clock domain and a second clock domain comprising:
receiving a first clock signal with a first frequency and a second clock signal with a second frequency, the first clock signal and the second clock signal sharing a fundamental beat frequency;
receiving first clock domain data that is synchronous with the first clock signal;
supplying a count value from a counter indicative of a current skew between the first clock signal and the second clock signal, the counter resetting at the fundamental beat frequency; and
sampling the first clock domain data using the second clock signal to generate second clock domain data, the sampling based, at least in part, on the count value.
11. An apparatus comprising:
a greatest common factor detect circuit coupled to receive a first clock signal with a first frequency and a second clock signal with a second frequency and supply a greatest common factor signal indicative of a fundamental beat frequency shared between the first clock signal and the second clock signal;
a counter coupled to supply a count value indicative of a skew between the first clock signal and the second clock signal; and
a sampling circuit to supply second clock domain data, the sampling circuit configured to sample first clock domain data with the second clock signal, the first clock domain data being synchronous with the first clock signal, the sampling circuit being controlled to sample, at least in part, based on the count value.
19. A data handoff apparatus, comprising:
a counter coupled to supply a count value indicative of a skew between a first clock signal and a second clock signal, the first and second clock signal having a fundamental beat frequency;
a sampling circuit to supply second clock domain data, the sampling circuit configured to sample first clock domain data with the second clock signal, the first clock domain data being synchronous with the first clock signal; and
wherein the sampling circuit is configured to sample the first clock domain data using a rising edge of the second clock signal responsive to a first value range of the count value and to sample the first clock domain data using a falling edge of the second clock signal responsive to a second value range of the count value.
2. The method as recited in
determining a greatest common factor signal indicative of the fundamental beat frequency using the first clock signal and the second clock signal.
3. The method as recited in
resetting the counter based on a frame signal that is generated using the greatest common factor signal, the frame signal indicative of each period of the fundamental beat frequency.
4. The method as recited in
determining whether the first clock signal is leading or lagging the second clock signal and supplying a lead/lag indicator signal indicative thereof; and
supplying the lead/lag indicator signal to an edge to pulse conversion circuit to generate a pulse responsive to a value of the lead/lag indicator signal changing.
5. The method as recited in
6. The method as recited in
7. The method as recited in
wherein the counter counts a ratio of the second frequency to the fundamental beat frequency.
8. The method as recited in
using a rising edge of the second clock signal to sample the first clock domain data for a first range of values of the counter; and
using a falling edge of the second clock signal to sample the first clock domain data for a second range of values of the counter.
9. The method as recited in
implementing a black out window based on the count value during which blackout period the first clock domain data is not sampled by the second clock signal.
10. The method as recited in
supplying a control line to downstream logic to indicate according to a value of the control line a data addition or a data drop in the second clock domain data.
12. The apparatus as recited in
a lead/lag detector circuit to determine whether the first clock signal is leading or lagging the second clock signal and supply a lead/lag signal indicative thereof; and
an edge to pulse conversion circuit to generate a first pulse responsive to the first clock signal changing from leading the second clock signal to lagging the second clock signal.
13. The apparatus as recited in
14. The apparatus as recited in
15. The apparatus as recited in
16. The apparatus as recited in
17. The apparatus as recited in
18. The apparatus as recited in
20. The data handoff apparatus as recited in
a greatest common factor detect circuit coupled to receive the first clock signal and the second clock signal and supply a signal indicative of the fundamental beat frequency shared between the first clock signal and the second clock signal.
|
This application relates to data transfers from one clock domain to another clock domain.
Communication networks and systems use multiple clock signals having a known relationship so system components can reliably use the clock signals. One aspect of having multiple clock signals is the need to transfer data from a source clock domain to a destination clock domain. In general, the data transfer to the destination clock domain requires redundant handoffs or handshakes that delay the signal transfer and decrease the bandwidth of the interface between the two clock domains. One solution is to use a first in first out (FIFO) buffer to store the data using the source clock signal and retrieve the data from the FIFO with the destination clock signal. Improvements in accurate data transfer mechanisms would be desirable to reduce delay and errors.
Accordingly, in one embodiment a method for transferring data between a first clock domain and a second clock domain includes receiving a first clock signal with a first frequency and a second clock signal with a second frequency. The first clock signal and the second clock signal share a fundamental beat frequency. The method further includes receiving first clock domain data that is synchronous with the first clock signal and supplying a count value from a counter indicative of a current skew between the first clock signal and the second clock signal, the counter resetting at the fundamental beat frequency. The first clock domain data is sampled using the second clock signal to generate second clock domain data, the sampling based, at least in part, on the count value.
In another embodiment an apparatus includes a greatest common factor detect circuit coupled to receive a first clock signal with a first frequency and a second clock signal with a second frequency and supply a greatest common factor signal indicative of a fundamental beat frequency shared between the first clock signal and the second clock signal. A counter is coupled to supply a count value indicative of a skew between the first clock signal and the second clock signal. A sampling circuit supplies second clock domain data. The sampling circuit is configured to sample first clock domain data with the second clock signal, the first clock domain data being synchronous with the first clock signal. The sampling circuit is controlled to sample, at least in part, based on the count value.
In another embodiment, a data handoff apparatus is provided that includes a counter coupled to supply a count value indicative of a skew between a first clock signal and a second clock signal, the first and second clock signal having a fundamental beat frequency. A sampling circuit supplies second clock domain data, the sampling circuit being configured to sample first clock domain data with the second clock signal, the first clock domain data being synchronous with the first clock signal. The sampling circuit is configured to sample the first clock domain data using a rising edge of the second clock signal responsive to a first value range of the count value and to sample the first clock domain data using a falling edge of the second clock signal responsive to a second value range of the count value.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
Several terms describe characteristics of a pair of signals (or more than two signals). For example, “synchronous” refers to two or more signals that operate in unison with a shared base time interval. Plesiochronous is described by ITU-T standards as a pair of signals with the same “average” frequency but have a changing phase relationship. In a real world example plesiochronous signals can be, e.g., the same signals with variation through different filtering functions. Another way to describe plesiochronous signals is a pair of signals as that occur at nominally the same rate, with any variation in rate being constrained within specified limits. Signals with the same frequency but unknown phase relationship are referred to as mesochronous. Mesochronous signals can be considered as a mismatch between signals from the same source but through different path delays. Terms can also be used to describe a single signal. An isochronous signal is a signal that modulates around an average frequency such that the modulation frequency is related to the fundamental frequency. Finally, a beat or frame between two signals is a common base frequency (greatest common factor) between the pair of signals. For example, a first signal with a frequency of 156.25 MHz and a second signal with a frequency of 125 MHz have a common base frequency or beat of 31.25 MHz at which frequency the rising (or falling) edges of the first and second signals align.
Telecommunication systems that interface with other systems (wireless, internet protocol (IP), etc.) require a clear and precise way to handoff phase information to the other side that have clock frequencies that are different but share the same isochronous base frequency, e.g., 8 KHz. These clocks have a rational relationship through the base frequency. For example, a first clock signal with a frequency of 2.04 MHz (255×8 KHz) and a second clock signal with a frequency of 2.048 MHz (256×8 KHz) line up at period boundaries of the 8 KHz signal (every 125 μs). When data is handed off between the two systems, the exact phase relationship between the two clock domains is unknown and as pointed out above, the current data handoff techniques require redundant handoffs or handshakes that delay the signal transfer and decrease the bandwidth of the interface. The loss of phase information (edge relationships between the clock signals) results in a bit error rate and requires larger FIFO's that produce an undesired data delay and/or need for data correction.
It would be desirable to track the relationship between the two clock signals to facilitate data transfer between two clock domains with a reduced bit error rate and to synchronously transfer frames of data without losing data. Referring to
Referring again to
Still referring to
For example, referring to
In another embodiment, the skew between the A_CLK and the B_CLK can be used to determine which edge of the B_CLK to use to sample the DATA_CLKA from the A_CLK clock domain and avoid use of the FIFO 122 (
The data handoff controller 100 includes control logic 131 that provides the control functionality for each of the blocks described herein. For example, the control logic determines the blackout window or edge select control signals based on the count values. The control logic can also include logic to determine the initial value of the counter 115 and control associated with the FIFO. The control functionality may be incorporated into each of the functional blocks rather than being centralized.
In an embodiment, data transfer block 121 supplies a control signal 127 to indicate to downstream filtering functions when data has been added or dropped. Since the A domain and the B domain generate data at different rates, with the B domain at a higher rate, the control signal 127 can be used to indicate a data drop or data addition due to the rate differences. For example, a data addition could repeat a data value or interpolate between several recent data values. A data drop indicates one of the data values was dropped. For embodiments, using the FIFO, FIFO overflow or FIFO empty pointers help to tell the system that the transfers between the clock domains have issues and the system can decide to interpolate, repeat data, or otherwise clear up issues with too much or too little data in the FIFO.
Thus, various approaches have been described to accomplish a data handoff between two clock domains sharing a fundamental beat. The description of the invention set forth herein is illustrative, and is not intended to limit the scope of the invention as set forth in the following claims. Other variations and modifications of the embodiments disclosed herein, may be made based on the description set forth herein, without departing from the scope of the invention as set forth in the following claims.
Patent | Priority | Assignee | Title |
11496234, | Jun 11 2018 | Skyworks Solutions, Inc | Synchronizing update of time of day counters using time stamp exchange over a control plane |
11502764, | Dec 28 2020 | Skyworks Solutions, Inc | FSYNC mismatch tracking |
11502812, | Jul 14 2021 | Skyworks Solutions, Inc | Data protocol over clock line |
11777703, | Apr 15 2020 | Skyworks Solutions, Inc. | Phase transport with frequency translation without a PLL |
11863299, | Jun 11 2018 | Skyworks Solutions, Inc. | Shared communication channel that interleaves 1 PPS signals and messaging |
11876607, | Dec 28 2020 | Skyworks Solutions, Inc. | FSYNC mismatch tracking |
11971831, | Dec 08 2022 | ARM Limited | First-in, first-out buffer |
ER1758, |
Patent | Priority | Assignee | Title |
10075284, | Jan 21 2016 | Integrated Device Technology, Inc.; Integrated Device Technology, inc | Pulse width modulation (PWM) to align clocks across multiple separated cards within a communication system |
10084559, | Mar 06 2015 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | System and method for maintaining a time of day in a port of a PHY module |
10511312, | Jun 28 2019 | Skyworks Solutions, Inc | Metastable-free output synchronization for multiple-chip systems and the like |
10536258, | Jun 02 2018 | Texas Instruments Incorporated | Skew compensation for multi-domain clock generation |
10715307, | Aug 01 2019 | Microsemi Semiconductor ULC | Embedded time of day receiver for clock transmission |
10727845, | Jun 25 2019 | Skyworks Solutions, Inc | Use of a virtual clock in a PLL to maintain a closed loop system |
5509038, | Apr 06 1994 | Fujitsu, Ltd | Multi-path data synchronizer system and method |
5644604, | Nov 14 1994 | Fujitsu, Ltd | Digital phase selector system and method |
6549046, | Dec 29 2000 | Cisco Technology, Inc | Method and apparatus for phase aligning two clock signals utilizing a programmable phase adjustment circuit |
6839858, | May 14 2001 | Ciena Corporation | System for clock synchronization |
6885647, | Dec 30 1998 | UTSTARCOM KOREA LIMITED C O OF UTSTARCOM, INC | Base station for compensating route delay between bases station and mobile station of CDMA mobile communication system and operation method thereof |
7451337, | Oct 07 2002 | Advanced Micro Devices, Inc. | Guaranteed edge synchronization for multiple clocks |
7535893, | Dec 05 2003 | Microsoft Technology Licensing, LLC | TDM services using a packet-switched fabric |
8355476, | Sep 23 2008 | Electronics and Telecommunications Research Institute | Timestamping method and apparatus for precise network synchronization |
8942561, | Oct 21 2008 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Synchronization transport over passive optical networks |
9246615, | Sep 28 2012 | MICROSEMI STORAGE SOLUTIONS, INC | Delay measurement in a point to multipoint system |
9369270, | Mar 15 2013 | Integrated Device Technology, Inc.; Integrated Device Technology, inc | Dual-coupled phase-locked loops for clock and packet-based synchronization |
9426762, | May 11 2012 | MICROSEMI STORAGE SOLUTIONS, INC | Timing synchronization for networks with radio links |
9594396, | Jul 28 2010 | Cray UK Limited | Synchronizing data transfer between a first clock domain and second clock domain |
9860004, | May 11 2011 | MICROSEMI STORAGE SOLUTIONS, INC | Network distributed packet-based synchronization |
20080080563, | |||
20080240169, | |||
20090168808, | |||
20110296226, | |||
20120319734, | |||
20130121347, | |||
20140068315, | |||
20140320181, | |||
20150092797, | |||
20150200770, | |||
20150207620, | |||
20150222276, | |||
20170135053, | |||
20190020333, | |||
20190379474, | |||
20190379475, | |||
20200028666, | |||
20200127752, | |||
20200285265, | |||
WO2015003364, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 14 2019 | SARDA, VIVEK | Silicon Laboratories Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051101 | /0585 | |
Nov 25 2019 | Silicon Laboratories Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Nov 25 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Jul 13 2024 | 4 years fee payment window open |
Jan 13 2025 | 6 months grace period start (w surcharge) |
Jul 13 2025 | patent expiry (for year 4) |
Jul 13 2027 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 13 2028 | 8 years fee payment window open |
Jan 13 2029 | 6 months grace period start (w surcharge) |
Jul 13 2029 | patent expiry (for year 8) |
Jul 13 2031 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 13 2032 | 12 years fee payment window open |
Jan 13 2033 | 6 months grace period start (w surcharge) |
Jul 13 2033 | patent expiry (for year 12) |
Jul 13 2035 | 2 years to revive unintentionally abandoned end. (for year 12) |