Method and apparatus for fail-safe resynchronization with minimum latency
First Claim
1. A synchronization circuit for synchronizing data between receive and transmit mesochronous clocks, comprising:
- a receive clock domain circuit for providing the data clocked by the receive clock;
a first latching circuit, coupled to an output of the receive clock domain circuit, for latching the data on a first edge of the transmit clock;
wherein the receive clock and transmit clock are mesochronous;
a second latching circuit, in parallel with the first latching circuit, for latching the data on a second edge of the transmit clock;
a multiplexing circuit, having inputs coupled to outputs of the first and second latching circuits; and
a phase measurement circuit, configured to measure a phase difference between the receive and transmit clocks and to provide a select signal to the multiplexer in accordance with the phase difference.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and circuit for achieving minimum latency data transfer between two mesochronous (same frequency, different phase) clock domains is disclosed. This circuit supports arbitrary phase relationships between two clock domains and is tolerant of temperature and voltage shifts after initialization while maintaining the same output data latency. In one embodiment, this circuit is used on a bus-system to re-time data from receive-domain, clocks to transmit-domain clocks. In such a system the phase relationships between these two clocks is set by the device bus location and thus is not precisely known. By supporting arbitrary phase resynchronization, this disclosure allows for theoretically infinite bus-length and thus no limitation on device count, as well as arbitrary placement of devices along the bus. This ultimately allows support of multiple latency-domains for very long buses.
39 Citations
22 Claims
-
1. A synchronization circuit for synchronizing data between receive and transmit mesochronous clocks, comprising:
-
a receive clock domain circuit for providing the data clocked by the receive clock;
a first latching circuit, coupled to an output of the receive clock domain circuit, for latching the data on a first edge of the transmit clock;
wherein the receive clock and transmit clock are mesochronous;
a second latching circuit, in parallel with the first latching circuit, for latching the data on a second edge of the transmit clock;
a multiplexing circuit, having inputs coupled to outputs of the first and second latching circuits; and
a phase measurement circuit, configured to measure a phase difference between the receive and transmit clocks and to provide a select signal to the multiplexer in accordance with the phase difference. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A synchronous memory bus system comprising:
-
a data bus having a first end and a second end;
a clock source generating a clock signal;
a clock line carrying the clock signal, the clock line having a first clock line segment extending from the first end of the data bus to a turnaround near the second end of the data bus, and a second clock line segment extending from the turnaround to the first end of the data bus;
a first device coupled to the data bus for transmitting data to a second device, including synchronization circuitry that receives a first transmit clock from one of the first and second clock line segments, a receive clock from the other one of the first and second clock line segments, and a second transmit clock in quadrature with the first transmit clock, wherein the receive clock and first transmit clock are mesochronous, the synchronization circuitry comprising;
a receive clock domain circuit for providing the data clocked by the receive clock;
a first latching circuit, coupled to an output of the receive clock domain circuit, for latching the data on a first edge of the second transmit clock;
a second latching circuit, in parallel with the first latching circuit, for latching the data on a second edge of the second transmit clock;
a multiplexing circuit, having inputs coupled to outputs of the first and second latching circuits; and
a phase measurement circuit, configured to measure a phase difference between the receive clock and first transmit clock and to provide a select signal to the multiplexer in accordance with the phase difference.
-
-
12. A method for synchronizing data between receive and transmit mesochronous clocks, comprising the steps of:
-
providing data clocked by a receive clock from a receive clock domain;
latching the data in a first latching circuit on a first edge of a transmit clock;
latching the data in a second latching circuit on a second edge of the transmit clock;
wherein the receive clock and transmit clock are mesochronous;
measuring a phase difference between the receive and transmit clocks and providing a skip signal in accordance with the phase difference; and
selecting between the first and second latching circuit based on the skip signal. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A synchronization circuit for synchronizing data between receive and transmit mesochronous clocks, comprising:
-
a first receive clock domain circuit for providing the data clocked by a first edge of the receive clock;
a second receive clock domain circuit for providing the data clocked by a second edge of the receive clock;
two latching circuits, coupled to an output of the received clock domain circuits, for latching the data on an edge of the transmit clock;
wherein the receive clock and transmit clock are mesochronous;
a multiplexing circuit, having inputs coupled to outputs of the two latching circuits; and
a phase measurement circuit, configured to measure a phase difference between the received and transmit clocks and to provide a selection signal to the multiplexer in accordance with the phase differences. - View Dependent Claims (18, 19, 20)
-
-
21. A synchronization circuit for synchronizing data between receive and transmit mesochronous clocks, comprising:
-
a receive clock domain circuit for providing the data clocked by the receive clock;
an intermediate clock domain circuit latching the output of the receive clock domain circuit on an edge of an intermediate clock, wherein the intermediate clock is a phase-interpolated waveform of the receive and transmit clocks and the receive clock and transmit clock are mesochronous; and
a transmit clock domain circuit, coupled to an output of the intermediate clock domain circuit, for latching the data on an edge of the transmit clock. - View Dependent Claims (22)
-
Specification