IP Library Granted Patent US 10,797,686
Granted Patent B1
US 10,797,686 · App. 16/557,866 · Granted Oct 6, 2020

Phase predictor and associated method of use

Inventors: Morten Terstrup (Stenlose, DK); Thomas Joergensen (Soeborg, DK)
Assignee: Microchip Technology Inc.
H03K5/135H03L7/085H04L7/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,797,686
App. No.
16/557,866
Granted
Oct 6, 2020
Kind
B1
Abstract

A phase predictor to accurately detect and predict the phase relationship between two clocks running at different frequencies. The phase relationship can be used to record the transmission and reception times of Ethernet frames transmitted over a transmission medium with very high accuracy.

Claims (45)

1. A method for predicting a phase difference between two clock signals, the method comprising:

determining an event clock cycle prediction of an event clock in an event clock domain relative to a system clock cycle in a system clock domain;

emulating a predicted event clock in the system clock domain based upon the determined event clock cycle prediction;

predicting a phase difference between the event clock and the system clock based upon the predicted event clock emulated in the system clock domain, wherein the phase difference is predicted at an edge of the system clock and is equal to a time between the edge of the system clock and a previous edge of the predicted event clock; and

aligning the predicted event clock emulated in the system clock domain with the event clock in the event clock domain based upon the predicted phase difference.

2. The method of claim 1 , wherein determining the event clock cycle prediction of the event clock in the event clock domain relative to the system clock cycle in the system clock domain further comprises, determining a number of event clock cycles that occur during each system clock cycle and wherein the phase difference has a time unit equal to one system clock cycle.

3. The method of claim 1 , wherein determining the event clock cycle prediction of the event clock in the event clock domain relative to the system clock cycle in the system clock domain further comprises, determining a number of system clock cycles that occur during each event clock cycle and wherein the phase difference has a time unit equal to one event clock cycle.

4. The method of claim 1 , wherein a duration of the system clock cycle is known and wherein determining the event clock cycle prediction of the event clock in the event clock domain relative to the system clock cycle in the system clock domain further comprises, determining a duration of an event clock cycle given the duration of a system clock cycle and wherein the phase difference is measured in units of time.

5. The method of claim 1 , wherein determining the event clock cycle prediction of the event clock in the event clock domain relative to the system clock cycle in the system clock domain further comprises counting a number of system clock cycles occurring in the system clock domain during a number of event clock cycles counted in the event clock domain.

6. The method of claim 1 , wherein aligning the predicted event clock emulated in the system clock domain with the event clock in the event clock domain further comprises:

determining a number of predetermined edges per system clock cycle of the predicted event clock based upon the predicted phase difference;

counting the number of predetermined edges of the event clock in the event clock domain and sampling the value of the counter at a system clock edge to determine the actual number of predetermined edges of the event clock per system clock cycle;

comparing, at the system clock edge, the number of predetermined edges of the predicted event clock to the actual number of predetermined edges of the event clock; and

re-aligning the predicted event clock emulated in the system clock domain with the system clock if the number of predetermined edges of the predicted event clock does not match the number of predetermined edges of the event clock.

7. The method of claim 6 , wherein re-aligning the predicted event clock emulated in the system clock domain with the system clock further comprises setting the predicted phase difference to zero if the number of predetermined edges of the predicted event clock does not match the number of predetermined edges of the event clock.

8. The method of claim 6 , wherein determining an expected number of event clock predetermined edges based upon the predicted phase difference further comprises identifying clock cycle rollovers of the predicted event clock from the predicted phase difference.

9. The method of claim 8 , wherein clock cycle rollovers indicates that the predicted event clock is expected to have one or more predetermined edges level during a next cycle of the system clock.

10. The method of claim 6 , wherein re-aligning the predicted event clock emulated in the system clock domain with the system clock further comprises generating a realign signal when the number of predetermined edges of the predicted event clock does not match the number of predetermined edges of the event clock.

11. The method of claim 1 , further comprising using the predicted phase difference to adjust a timestamp for one or more data packets transmitted between the event clock domain and the system clock domain or between the system clock domain and the event clock domain.

12. A method for predicting a phase difference between two clock signals, the method comprising:

counting a number of system clock cycles occurring in a system clock domain during a predetermined number of event clock cycles counted in an event clock domain;

dividing the counted number of system clock cycles by the counted number of event clock cycles to determine a number of system clock cycles per each event clock cycle;

multiplying the number of system clock cycles per each event clock cycle by a known duration of the system clock cycle to predict a duration of an event clock cycle;

emulating a predicted event clock in the system clock domain based upon the predicted duration of the event clock cycle;

predicting a phase difference between the event clock and the system clock based upon the predicted event clock emulated in the system clock domain, wherein the predicted phase difference is predicted at an edge of the system clock and is equal to a time between the edge of the system clock and a previous edge of the predicted event clock;

determining an expected number of event clock predetermined edges based upon the predicted phase difference;

sampling a predetermined edge counter driven by the event clock in the event clock domain at a system clock edge to determine a sampled value of the predetermined edge counter;

detecting the number of predetermined edges of the event clock during the last system clock cycle by comparing the value of the sampled predetermined edge counter with the last value of the sampled predetermined edge counter;

comparing, at the system clock edge, the expected number of event clock predetermined edges to the number of predetermined edges of the event clock; and

re-aligning the predicted event clock with the system clock if the number of event clock predetermined edges does not match the number of predetermined edges of the event clock.

13. A phase predictor comprising:

an event clock cycle predictor for receiving a system clock running in a system clock domain and an event clock running in an event clock domain, the event clock cycle predictor for determining an event clock cycle prediction of the event clock relative to the system clock cycle;

a phase difference predictor for emulating a predicted event clock in the system clock domain based upon the event clock cycle prediction, for predicting a phase difference between the event clock and the system clock based and for aligning the predicted event clock with the system clock based upon the predicted phase difference, wherein the predicted phase difference is predicted at an edge of the system clock and is equal to a time between the edge of the system clock and a previous edge of the predicted event clock.

14. The phase predictor of claim 13 , wherein the event clock cycle predictor further comprises an event clock counter, a system clock counter and a divider circuitry for determining a number of event clock cycles that occur during each system clock cycle and wherein the phase difference determined by the phase difference predictor has a time unit equal to one system clock cycle.

15. The phase predictor of claim 13 , wherein the event clock cycle predictor further comprises an event clock counter, a system clock counter and a divider circuitry for determining a number of system clock cycles that occur during each event clock cycle and wherein the phase difference determined by the phase difference predictor has a time unit equal to one event clock cycle.

16. The phase predictor of claim 13 , wherein the event clock cycle predictor further comprises an event clock counter, a system clock counter and a divider circuitry for determining a duration of an event clock cycle given the duration of a system clock cycle and wherein the phase difference determined by the phase difference predictor is measured in units of time.

17. The phase predictor of claim 13 , wherein the phase difference predictor further comprises:

a phase prediction counter for determining an expected number of rising clocks of the predicted event clock in the next system clock cycle based upon the predicted phase difference.

18. The phase predictor of claim 17 , wherein determining an expected number of rising clocks of the predicted event clock in the next system clock cycle based upon the predicted phase difference further comprises identifying clock cycle rollovers of the predicted event clock from the predicted phase difference.

19. The phase predictor of claim 17 , wherein the phase difference predictor further comprises an alignment detector for:

receiving the expected number of predetermined edges of the predicted event clock;

sampling a predetermined edge counter counting the number of predetermined edges of the event clock in the event clock domain at a system clock edge to determine the number of predetermined edges of the event clock during the last system clock cycle;

comparing the expected number of event clock predetermined edges to the actual number of predetermined edges of the event clock; and

generating a realign signal if the number of predetermined edges of the predicted event clock does not match the number of predetermined edges of the event clock.

20. The phase predictor of claim 17 , wherein the phase prediction counter is further for setting the predicted phase difference to zero if the number of predetermined edges of the predicted event clock does not match the number of predetermined edges of the event clock.

Assignments (16)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 060894/0437 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0335 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059357/0823 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059264/0384 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059263/0001 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 058214/0238 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058214/0380 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 058214/0625 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052856/0909 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: TERSTRUP, MORTEN; JOERGENSEN, THOMAS
To: MICROCHIP TECHNOLOGY INC.
Reel/Frame 050227/0185 →
Cited By (8)
US 12,200,091 US 12,200,097 US 12,206,752 US 12,244,408 US 12,335,031 US 12,413,419 US 12,519,555 US 12,592,814