IP Library Granted Patent US 7,627,065
Granted Patent B2
US 7,627,065 · App. 11/316,498 · Granted Dec 1, 2009

Generating a clock crossing signal based on clock ratios

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 7,627,065
App. No.
11/316,498
Granted
Dec 1, 2009
Kind
B2
Abstract

A multiple clock domain system. A system comprises two clock domains which receive a source clock signal. The first domain includes a first clock signal with a first frequency and the second domain includes a second clock signal with a second frequency. A ratio of the first frequency to the second frequency is N:M. The first domain is configured to initialize a count to N, if N is less than 2*M; and initialize the count to M, if N is not less than 2*M. Subsequently, on each cycle of the first clock signal, the first domain adds (M-N) to the count and asserts a sample enable signal, if the count is greater than or equal to N; and adds a value equal to M to the count and negates the sample enable signal, if the count is not greater than or equal to N.

Claims (49)

1. A data communications system comprising:

a source clock signal;

a first clock domain comprising a first clock signal which is derived from the source clock signal, wherein the first clock signal has a first frequency; and

a second clock domain comprising a second clock signal which is derived from the source clock signal, wherein the second clock signal has a second frequency which is different from the first frequency, and wherein a ratio of the first frequency to the second frequency is N:M;

wherein the first clock domain includes circuitry which is configured to:

receive values indicative of N and M;

initialize a count to N, in response to detecting N is less than 2*M; and

initialize the count to M, in response to detecting N is not less than 2*M;

wherein each cycle of the first clock signal, the circuitry is configured to:

add a value equal to (M−N) to the count and assert a sample enable signal, in response to determining the count is greater than or equal to N;

add a value equal to M to the count and negate the sample enable signal, in response to determining the count is not greater than or equal to N.

2. The system as recited in claim 1 , wherein the first clock domain is configured to sample new data for transfer to the second domain when the sample enable signal is asserted.

3. The system as recited in claim 2 , wherein the first clock domain is configured to hold data previously sampled data when the sample enable signal is negated.

4. The system as recited in claim 1 , wherein the values N and M are programmable.

5. The system as recited in claim 1 , wherein the first frequency is not an integer multiple of the second frequency.

6. The system as recited in claim 1 , wherein the first frequency is an integer multiple of the second frequency.

7. The system as recited in claim 5 , wherein the first clock domain is further configured to generate a reference clock signal, and wherein both the first frequency and the second frequency are an integer multiple of a frequency of the reference clock signal.

8. A method for generating a sample enable signal, the method comprising:

receiving a source clock signal;

generating a first clock signal with a first frequency in a first clock domain, wherein the first clock signal is derived from the source clock signal;

generating a second clock signal with a second frequency in a second clock domain,

wherein the second clock signal is derived from the source clock signal, and

wherein the second clock signal has a second frequency which is different from the first frequency, and wherein a ratio of the first frequency to the second frequency is N:M;

initializing a count to N, in response to detecting N is less than 2*M;

initializing the count to M, in response to detecting N is not less than 2*M;

each cycle of the first clock signal:

adding a value equal to (M−N) to the count and asserting a sample enable signal, in response to determining the count is greater than or equal to N;

adding a value equal to M to the count and negating the sample enable signal, in response to determining the count is not greater than or equal to N.

9. The method as recited in claim 8 , wherein the first clock domain is configured to sample new data for transfer to the second domain when the sample enable signal is asserted.

10. The method as recited in claim 9 , wherein the first clock domain is configured to hold data previously sampled data when the sample enable signal is negated.

11. The method as recited in claim 8 , wherein the values N and M are programmable.

12. The method as recited in claim 8 , wherein the first frequency is not an integer multiple of the second frequency.

13. The method as recited in claim 8 , wherein the first frequency is an integer multiple of the second frequency.

14. The method as recited in claim 13 , further comprising generating a reference clock signal in the first domain, wherein both the first frequency and the second frequency are an integer multiple of a frequency of the reference clock signal.

15. A circuit for generating a sample enable signal in a clock boundary crossing system, the circuit comprising:

an interface configured to receive a source clock signal;

an interface configured to receive values N and M, wherein N:M corresponds to a ratio of a first frequency of a first clock signal in a first clock domain to a second frequency of a second clock signal in a second clock domain;

an interface configured to receive the first clock signal;

a unit configured to:

initialize a count to N, in response to detecting N is less than 2*M; and

initialize the count to M, in response to detecting N is not less than 2*M;

wherein each cycle of the first clock signal, circuitry configured to:

add a value equal to (M−N) to the count and assert a sample enable signal, in response to determining the count is greater than or equal to N;

add a value equal to M to the count and negate the sample enable signal, in response to determining the count is not greater than or equal to N.

16. The circuit as recited in claim 15 , wherein the first clock domain is configured to sample new data for transfer to the second domain when the sample enable signal is asserted.

17. The circuit as recited in claim 15 , wherein the values N and M are programmable.

18. The circuit as recited in claim 15 , wherein the first frequency is not an integer multiple of the second frequency.

19. The circuit as recited in claim 15 , wherein the first frequency is an integer multiple of the second frequency.

20. The circuit as recited in claim 19 , wherein the first clock domain is further configured to generate a reference clock signal, and wherein both the first frequency and the second frequency are an integer multiple of a frequency of the reference clock signal.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037305/0133 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2005
From: SCHULZ, JURGEN M.; DAGA, BHARAT K.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017414/0528 →