Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYNCHRONIZER CIRCUIT AND METHOD FOR SYNCHRONIZING COMPONENTS USING DIFFERENT CLOCK SIGNALS
Document Type and Number:
WIPO Patent Application WO/2014/095792
Kind Code:
A1
Abstract:
A synchronizer circuit 200 comprises a first flip-flop operated with a first clock signal C1, the first flip-flop being configured to read a data item at a first sampling point correlating with a first edge of a first edge type of the first clock signal, a second flip-flop in the second clock signal domain, the second flip-flop being configured to read the data item from the first flip-flop at a read-out sampling point, and a finite state machine coupled to the second flip-flop, the finite state machine being configured to select a second sampling point as the read-out sampling point of the second flip-flop, wherein the second sampling point correlates with a second edge of the first edge type of a second clock signal, which second edge directly follows the first edge, if the time interval between the occurrence of the first edge and the second edge is greater than a predeterminable threshold, and the finite state machine being configured to select a third sampling point as the read-out sampling point of the second flip-flop, wherein the third sampling point correlates with a third edge of a second edge type of the second clock signal, which third edge directly follows the second edge, if the time interval between the occurrence of the first edge and the second edge is smaller than or equal to a predeterminable threshold.

Inventors:
RECHES SHLOMO (DE)
ZECHARIA RAMI (DE)
UMANSKY ALEX (DE)
ELAD YUVAL (DE)
Application Number:
PCT/EP2013/076811
Publication Date:
June 26, 2014
Filing Date:
December 17, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
RECHES SHLOMO (DE)
ZECHARIA RAMI (DE)
UMANSKY ALEX (DE)
ELAD YUVAL (DE)
International Classes:
H03K21/40; H04L7/00
Foreign References:
US6598191B12003-07-22
US20100322365A12010-12-23
US5390190A1995-02-14
Attorney, Agent or Firm:
KREUZ, Georg M. (Dessauerstr. 3, Munich, DE)
Download PDF:
Claims:
ims

Synchronizer circuit (200), comprising:

a first flip-flop (1 ) operated with a first clock signal (C1 ), the first flip-flop (1 ) being configured to read a data item (1 1 ; 12; 13; 14) at a first sampling point (SP1 ) correlating with a first edge of a first edge type of the first clock signal (C1 );

a second flip-flop (2) operated using a second clock signal (C2), the second flip-flop (2) being configured to read the data item (1 1 ; 12; 13; 14) from the first flip-flop (1 ) at a read-out sampling point; and

a finite state machine (3) coupled to the second flip-flop (2),

the finite state machine (3) being configured to select a second sampling point (SP2) as the read-out sampling point of the second flip-flop (2), wherein the second sampling point (SP2) correlates with a second edge of the first edge type of a second clock signal (C2), wherein the second edge directly follows the first edge, if the time interval (dT) between the occurrence of the first edge and the second edge is greater than a predeterminable threshold, and

the finite state machine (3) being configured to select a third sampling point (SP3) as the read-out sampling point of the second flip-flop (2), wherein the third sampling point (SP3) correlates with a third edge of a second edge type of the second clock signal (C2), wherein the third edge directly follows the second edge, if the time interval (dT) between the occurrence of the first edge and the second edge is smaller than or equal to a predeterminable threshold.

Synchronizer circuit (200) according to claim 1 , wherein a ratio between the rate of the first clock signal (C1 ) and the rate of the second clock signal (C2) corresponds to a fraction A / B, wherein A and B are natural numbers.

Synchronizer circuit (200) according to one of the claims 1 and 2, wherein the first edge type is a positive edge and the second edge type is a negative edge.

Synchronizer circuit (200) according to one of the claims 1 to 3, wherein the predeterminable threshold depends on the setup and hold times of the first and/or second flip-flop (1 ; 2).

Synchronizer circuit (200) according to one of claims 1 to 4, wherein the first and second flip-flop (1 ; 2) are D-flip-flops.

6. Synchronizer circuit (200) according to one of the claims 1 to 5, further comprising: a third flip-flop (4) which is operated using the second clock signal (C2) coupled to the second flip-flop (2), the third flip-flop (4) being configured to read the data item (21 ; 22; 23) from the second flip-flop (2) at the second clock signal (C2).

7. Synchronizer circuit (200) according to one of the claims 1 to 6, further comprising a start-up circuit (300), the start-up circuit (300) comprising:

a fourth flip-flop (7) clocked with the second clock signal (C2) coupled to the finite state machine (3);

a fifth flip-flop (8) clocked with the second clock signal (C2) coupled to the fourth flip- flop (7); and

a sixth flip-flop (9) clocked with the first clock signal (C1 ),

wherein the finite state machine (3) is configured to input a starting signal (P1 ) to the fourth flip-flop (7) and to receive a pattern signal (P2) from the fifth flip-flop (8), and wherein the sixth flip-flop (9) is configured to output a reset signal (PE) to the fifth flip- flop (8) resetting the pattern signal (P2) to zero, if an edge of the first edge type of the second clock signal (C2) occurs during processing of the starting signal (P1 ) in the fourth and fifth flip-flop (7; 8) with the first clock signal (C1 ).

8. Synchronizer circuit (200) according to claim 7, further comprising:

a counter (10) coupled to the finite state machine (3), the counter (10) being configured to control the sequence (M) of the second and third sampling points (SP2; SP3) depending on a bit sequence of the pattern signal (P2).

9. Synchronizer circuit (200) according to one of the claims 1 to 8, wherein the first clock signal (C1 ) and the second clock signal (C2) are generated by the same phased lock loop or the same phase locked loop tree to generate mutually dependent clock signals having predetermined temporal relationships between the respective edges.

10. Method (30) for synchronizing components using different clock signals, the method comprising the steps of:

reading (31 ) a data item (1 1 ; 12; 13; 14) into a first flip-flop (1 ), which is operated using a first clock signal (C1 ), at a first sampling point (SP1 ) correlating with a first edge of a first edge type of the first clock signal (C1 ); reading (32) the data item (1 1 ; 12; 13; 14) from the first flip-flop (1 ) into a second flip- flop (2), which is operated using a second clock signal (C2), at a second sampling point (SP2) correlating with a second edge of the first edge type of the second clock signal (C2), which second edge directly follows the first edge, if the time interval (dT) between the occurrence of the first edge and the second edge is greater than a predeterminable threshold; and

reading (33) the data item (1 1 ; 12; 13; 14) from the first flip-flop (1 ) into the second flip-flop (2) at a third sampling point (SP3) correlating with a third edge of a second edge type of the second clock signal (C2), which third edge directly follows the second edge, if the time interval (dT) between the occurrence of the first edge and the second edge is smaller than or equal to a predeterminable threshold.

1 1 . Method (30) according to claim 10, wherein the ratio between the rate of the first clock signal (C1 ) and the rate of the second clock signal (C2) corresponds to a fraction A / B, wherein A and B are natural numbers.

12. Method (30) according to one of the claims 10 and 1 1 , wherein the first edge type is a positive edge and the second edge type is a negative edge. 13. Method (30) according to one of the claims 10 to 12, wherein the predeterminable threshold depends on the setup and hold times of the first and/or second flip-flop (1 ; 2).

14. Method (30) according to one of the claims 10 to 13, wherein the first and second flip- flop (1 ; 2) are D-flip-flops.

15. Method (30) according to one of the claims 10 to 14, wherein data items (D1 ) are read into the first flip-flop (1 ) at a sequence of the first sampling points (SP1 ) of the first clock signal (C1 ), and wherein the sequence (M) of the second and third sampling points (SP2; SP3) corresponding to the respective sequence of the first sampling points (SP1 ) is preconfigured in advance.

Description:
_

- 1 -

Title

Synchronizer circuit and method for synchronizing components using different clock signals Technical Field

The present invention pertains to a synchronizer circuit and a method for synchronizing components using different clock signals, in particular for use in a data processing system having differently clocked system components.

Background

Digital design of electronic circuitry being clocked with different clock signals in different clock domains is very common both on chip level and on board level. A system having a central processing unit, at least one memory component and input/output interfaces may use a different clock for each unit. One reason for choosing different clocks is the decoupling of clock dependencies between the units so that each unit may be provided with an own clock signal optimized with regard to its requirements. For example, in order to drive a data processing system with maximum performance, the maximum central processing unit (CPU) frequency should be chosen. Memory components may have a maximum admissible frequency that is lower than the maximum CPU frequency. By decoupling the clocks the optimum CPU frequency may be selected irrespective of what frequency is chosen for the memory component.

On the other hand, in order to drive a data processing system with the lowest power consumption, each unit should be clocked according to its own minimum frequency irrespective of what minimum frequency the remaining components might have. If multiple clock domains are employed and the units are to communicate among each other, provisions have to be made to ensure an error free communication. Mostly, a synchronizer circuit is employed comprising a FIFO buffer or two latching registers in order to transfer data items from one clock rate to the other clock rate. In order to avoid sampling metastable data signals, a synchronizing signal is usually generated to define valid sampling points at which metastability can be excluded with a very high probability. For example, sampling a 2-bit bus asynchronously, i.e. without synchronizer, may introduce read-out errors when the two bits of the bus are to be changed but due to clock skew one of the bits gets read out earlier than the other. The outcome of such a read-out process will be unpredictable and may lead to problems in the further chain of processing performed with a different clock ratio. A solution to this problem conventionally consists in using a single wired or "grey coded" bus which allows only for a single signal to be changed between sampling points. Feedback from the components operated using the different clock signal may be collected and fed into state machines configured to generate the synchronizing signal to ensure the validity of data items and the error free transfer of data.

Document US 8,078,772 B2 discloses a synchronizing device adapted to read in data from a first clock domain unit into a second clock domain unit. A control module controls the sampling point of the synchronizing device according to a sample history of phase relationships between the two clock signals of the two clock domains.

Document US 5,004,933 A discloses a phase-selectable flip-flop which upon command latches data either on the rising or the falling edge of a clock pulse by using a switchable transparent latch in series with a D-flip-flop.

Document US 2010/0322365 A1 discloses a synchronizing apparatus for synchronizing two different clock domains having a rising edge intermediate flip-flop or a falling edge intermediate flip-flop. However, there is a need for error-free synchronization between different clock domains that takes into account setup-and-hold timing requirements between data transferring flip- flops of both domains and that especially provides data transfer with low latency.

Summary

Accordingly, an idea of the present invention is to use both the negative and positive edges of a second clock signal for data transfer. One of the edge types may be preferentially be used for determining a sampling point of a data item. For each of the sampling points it will be determined whether the time interval between a first sampling point of a data item in a first flip-flop and the read-out sampling point in a second flip-flop is the longest among the other possible sampling points to ensure relaxed timing and easier to meet the necessary setup and hold times of the associated flip-flops.

By selecting either the respective edge of a first edge type or, alternatively, the following edge of a second edge type, the latency of the data transfer may be kept as minimal as possible while at the same time guaranteeing with sufficient probability that metastable states may not occur in the reading flip-flop.

One advantage of such procedure is that a synchronizing signal between the flip-flops operated using different clock signals is not necessary.

Consequently, a first aspect of the present invention relates to a synchronizer circuit, comprising a first flip-flop operated with a first clock signal, the first flip-flop being configured to read a data item at a first sampling point correlating with a first edge of a first edge type of the first clock signal, a second flip-flop operated with a second clock signal, the second flip-flop being configured to read the data item from the first flip-flop at a readout sampling point, and a finite state machine coupled to the second flip-flop, the finite state machine being configured to select a second sampling point as the read-out sampling point of the second flip-flop, wherein the second sampling point correlates with a second edge of the first edge type of a second clock rate, which second edge directly follows the first edge, if the time interval between the occurrence of the first edge and the second edge is greater than a predeterminable threshold, and the finite state machine being configured to select a third sampling point as the read-out sampling point of the second flip-flop, wherein the third sampling point correlates with a third edge of a second edge type of the second clock rate, which third edge directly follows the second edge, if the time interval between the occurrence of the first edge and the second edge is smaller than or equal to a predeterminable threshold.

According to a first possible implementation form of the first aspect as such, the ratio between the first clock rate and the second clock rate may correspond to a fraction A / B, wherein A and B are natural numbers. Advantageously, for an integer fractional ratio between the clock rates the temporal relationship of the two clock rates between each other repeats in cycles. Therefore, only a finite number of different sampling points exists during which the data item may be read out by the second flip-flop. This finite number may be predetermined in advance and stored in a finite state machine for controlling the second flip-flop. Thus, the computational burden on the synchronizer circuit 200 is reduced even further. The sampling edge selection can be done by design and not during run-time.

According to a second possible implementation form of the synchronizer circuit according to the first aspect as such or according to the first possible implementation form of the first aspect, the first edge type may be a positive edge, the second edge type may be a negative edge, vice versa.

According to a third possible implementation form of the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the predeterminable threshold may depend on the setup and hold times of the first and/or second flip-flop.

According to a fourth possible implementation form of the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the first flip-flop may be a D-flip-flop.

According to another possible implementation form of the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the second flip-flop may be a D-flip-flop.

According to a fifth possible implementation form of the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the synchronizer circuit may further comprise a third flip-flop operated with a second clock signal coupled to the second flip-flop, the third flip-flop being configured to read the data item from the second flip-flop at the second clock rate.

Advantageously, the provision of an additional buffering flip-flop may compensate for the occasional sampling of the data items only half a clock cycle before the data item is being processed with the second clock signal. If such timing requirements are too tight the third flip-flop may provide additional delay at the expense of longer latency.

According to a sixth possible implementation form of the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the synchronizer circuit may further comprise a start-up circuit, the start-up circuit may comprise a fourth flip-flop clocked with the second clock rate coupled to the finite state machine, a fifth flip- flop clocked with the second clock rate coupled to the fourth flip-flop and a sixth flip-flop clocked with the first clock rate. The finite state machine may be configured to input a starting signal to the fourth flip-flop and to receive a pattern signal from the fifth flip-flop. The sixth flip-flop may be configured to output a reset signal to the fifth flip-flop resetting the pattern signal to zero, if an edge of the first edge type of the second clock rate occurs during processing of the starting signal in the fourth and fifth flip-flop with the first clock rate.

Such a start-up circuit has the advantage that after powering up a PLL generating the different clock rates the finite state machine may be put in synchronicity with the actual timing differences of the clock rates. The finite state machine may discover the sampling points where the different clock signals have their edges aligned.

According to a seventh possible implementation form of the sixth preceding

implementation form of the first aspect, the synchronizer circuit may comprise a counter coupled to the finite state machine, the counter being configured to control the sequence of the second and third sampling points depending on a bit sequence of the pattern signal.

The counter may advantageously provide for a running sequence generator in case of clock rates with an integer fractional ratio. According to a eighth possible implementation form of the first aspect as such or according to the any of the preceding implementation forms of the first aspect, the first clock rate and the second clock rate may be generated by the same phased lock loop or the same phase locked loop tree to generate mutually dependent clock rates having predetermined temporal relationships between the respective edges.

According to a second aspect of the invention, a method for synchronizing components using different clock signals is provided, the method comprising the steps of reading a data item into a first flip-flop, which is operated using a first clock signal, at a first sampling point correlating with a first edge of a first edge type of the first clock rate, reading the data item from the first flip-flop into a second flip-flop, which is operated using a first clock signal, at a second sampling point correlating with a second edge of the first edge type of the second clock signal, which second edge directly follows the first edge, if the time interval between the occurrence of the first edge and the second edge is greater than a predeterminable threshold, and reading the data item from the first flip-flop into the second flip-flop operated with a second clock signal at a third sampling point correlating with a third edge of a second edge type of the second clock rate, which third edge directly follows the second edge, if the time interval between the occurrence of the first edge and the second edge is smaller than or equal to a predeterminable threshold. According to a first possible implementation form of the second aspect as such, the ratio between the first clock rate and the second clock rate may correspond to a fraction A / B, wherein A and B are natural numbers.

Advantageously, for an integer fractional ratio between the clock rates the temporal relationship of the two clock rates between each other repeats in cycles. Therefore, only a finite number of different sampling points exist during which the data item maybe read out by the second flip-flop. This finite number may be predetermined in advance and stored in a finite state machine for controlling the second flip-flop. Thus, the computational burden on the synchronizer circuit is reduced even further.

According to a second possible implementation form of the second aspect as such or according to the first implementation form of the second aspect, the first edge type may be a positive edge. According to another possible implementation form of the second aspect as such or according to the any of the preceding implementation forms of the second aspect, the second edge type may be a negative edge.

According to a third possible implementation form of the second aspect as such or according to the any of the preceding implementation forms of the second aspect, the predeterminable threshold depends on the setup and hold times of the first and/or second flip-flop.

According to a fourth possible implementation form of the second aspect as such or according to the any of the preceding implementation forms of the second aspect, the first flip-flop may be a D-flip-flop.

According to another possible implementation form of the second aspect as such or according to the any of the preceding implementation forms of the second aspect, the second flip-flop may be a D-flip-flop. According to a fifth possible implementation form of the second aspect as such or according to the any of the preceding implementation forms of the second aspect, data items may be read into the first flip-flop at a sequence of the first sampling points of the first clock rate. According to another possible implementation form of the second aspect as such or according to the any of the preceding implementation forms of the second aspect, the sequence of the second and third sampling points corresponding to the respective sequence of the first sampling points may be preconfigured in advance.

Brief Description of the Drawings

The accompanying drawings are included to provide a further understanding of the disclosure. They illustrate embodiments and may help to explain the principles of the invention in conjunction with the description. Other embodiments and many of the intended advantages, envisaged principles and functionalities will be appreciated as they become better understood by reference to the detailed description as following

hereinbelow. The elements of the drawings are not necessarily drawn to scale relative to each other. In general, like reference numerals designate corresponding similar parts.

Fig. 1 schematically illustrates a clock signal and timing diagram for a synchronizer circuit according to an embodiment of the present invention.

Fig. 2 schematically illustrates a synchronizer circuit according to another embodiment of the present invention.

Fig. 3 schematically illustrates a start-up circuit for a synchronizer circuit according to a further embodiment of the present invention.

Fig. 4 schematically illustrates a method for synchronizing components using different clock signals according to a further embodiment of the present invention.

Detailed Description

In the following detailed description, reference is made to the accompanying drawings, and in which, by way of illustration, specific embodiments are shown. It should be obvious that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. Unless specifically noted otherwise, functions, principles and details of each embodiment may be combined with other embodiments. Generally, this application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Hence, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

In the following, reference is also made to methods and method steps, which are schematically and exemplarily illustrated in flow charts and block diagrams. It should be understood that the methods described in conjunction with those illustrative drawings may easily be performed by embodiments of systems, apparatuses and/or devices as well. In particular, it should be obvious that the systems, apparatuses and/or devices capable of performing the detailed block diagrams and/or flow charts are not necessarily limited to the systems, apparatuses and/or devices shown and detailed herein below, but may rather be different systems, apparatuses and/or devices. The terms "first", "second", "third", etc. are used merely as labels, and are not intended to impose numerical requirements on their objects or to establish a certain ranking of importance of their objects.

A clock rate domain in the sense of the present invention may be any component, any group of components or any arrangement of components which is operated with a common clock signal. Clock rate domains may for example be implemented for a data processing system, wherein several or all of its components and groups of components may be associated with different clock rate domains, such as a flip-flop, a central processing unit, a memory device components, interface components and the like.

Fig. 1 shows a schematical illustration of a clock signal and timing diagram for a synchronizer circuit 200. A first clock rate domain may be operated using a first clock signal C1 having a first clock rate 1/T1 , T1 is the period of the first clock signal, whereas a second clock rate domain may be operated using a second clock signal C2 having a second clock rate 1/T2, T2 is the period of the second clock signal. The first clock signal C1 and the second clock signal C2 may preferably be generated using the same phase- locked loop (PLL) circuitry or the same PLL tree to guarantee the timing between the edges of the clock signals C1 and C2. In that case, the temporal relationship between the two clock signals is known in advance and stable sampling points may be designed. Components in the first clock rate domain may be operated using the first clock signal C1 . Components in the second clock rate domain may be operated using the second clock signal C2. In the example of Fig. 1 the clock rates 1/T1 and 1/T2 have a ratio which may be expressed as a fraction of natural or integer numbers. For example, the ratio between the clock rates 1/T1 and 1/T2 may be 5/6, that is, for every five clock cycles of the clock signal C1 six clock cycles of the clock signal C2 happen before the clock cycles of the two clock signals are aligned again. In other words, every five clock cycles of thefirst clock signal C1 and every six clock cycles of the second clock signal C2, the positive edges of the clock signals will be temporally aligned. Of course, different clock ratios may be used as well, for example 3/4, 5/7, 6/8, 2/3, 1/2, 4/5 or any other ratio of integer or natural numbers. Moreover, the ratio of the clock signals may be such that the first clock rate is larger than the second clock rate.

A signal edge type of a clock signal is a transition either from low to high (0 to 1 ) or from high to low (1 to 0), the signal edge type may comprise a positive edge and a negative edge, which are also known as the rising edge and falling edge, respectively. Aligned with edges of the first clock signal C1 , data items 1 1 , 12, 13 and 14 of a data input signal D1 may be read in the first clock rate domain. The first sampling points SP1 of the data input signal D1 may align with edges of a first edge type of the first clock signal C1 . For example, the first edge type may be positive edges of the first clock signal C1 , as exemplarily illustrated in Fig. 1 . Of course, negative edges may be used for the first edge type as well.

Data items in the sense of the present invention may refer to information carrying items of a particular data object concerning a specific property of the data at a certain point in time. For example, data items may comprise bits, bit sequences, bytes or any other logically computable quantities of information carrying items.

After a first data item 1 1 has been read on an edge of a first edge type of the first clock signal C1 , the second clock signal C2 is checked for the occurrence of the next edge of the first edge type. In the case of the data item 1 1 , this edge happens at a time t1 which is temporally spaced apart to the first sampling point SP1 by a time interval T2. This time interval T2 is checked, whether it is greater than a first predeterminable threshold. If the time interval T2 (or more generally dT) between the occurrence of the edge of the first sampling point SP1 and the next edge of the first edge type of the second clock signal C2 is greater than the predeterminable threshold, that next edge is selected as the read-out sampling point of the data item 1 1 . The data item 1 1 is then read out in the second clock rate domain at a second sampling point SP2 as the selected read-out sampling point as a read-out item 21 . The sampling point selection may be done by design, thus it is not necessary to select the sampling points during run-time.

If, however, the time interval dT between the occurrence of the edge of the first sampling point and the next edge of the first edge type of the second clock signal C2 is smaller than or equal to the predeterminable threshold, a next edge of the second edge type of the second clock signal C2 is selected as a third sampling point SP3, which edge directly follows the edge of the first edge type under determination. The predeterminable threshold may for example depend on the setup and hold times of the flip-flops used for inputting and reading out the data signal D1. For example, the predeterminable threshold may be chosen to be at least as long as the setup and hold times of the flip-flops used for inputting and reading out the data signal D1. It may also be possible to set the

predeterminable threshold to be by a certain security margin higher than the setup and hold times of the flip-flops used for inputting and reading out the data signal D1 . By selecting the appropriate edge of a first or second edge type it can be made sure that the time for setting up and holding a stable sample of a data item is always sufficient.

The series of the second and third sampling points SP2 and SP3, i.e. their occurrence or sequence in the course of time, may be determined in advance, especially when the ratio of the two clock rates of the clock signals C1 and C2 is a fraction of natural members, since in that case the clock cycles repeat after a finite number of iterations. This series of sampling points for the read-out may be coded in a clock enable signal CE which enables the respective sampling points when a stable sampling status has been reached in each case. In the example of Fig. 1 , the series of sampling points for the read-out include times t1 , t2, t3 and t4, wherein t1 and t2 correspond to positive edges of the second clock signal C2 and t3 and t4 correspond to negative edges of the second clock signal C2.

By determining a series of sampling points in the afore-mentioned way, the read-out data signal D2 may be retrieved in the second clock rate domain with the least latency guaranteeing stable sampling points. The timing closure and verification may be performed automatically so that there is no need for timing ignore attributes on the respective timing paths of a synchronizer circuit 200.

Fig. 2 schematically illustrates a synchronizer circuit 200. The synchronizer circuit 200 may be configured to synchronize different clock rate domains. For example, the synchronizer circuit 200 of Fig. 2 may be configured to work according to the clock rates and signal timings as set out in the respective diagram of Fig. 1.

The synchronizer circuit 200 comprises a first flip-flop 1 , for example a D-flip-flop, which is operated in the first clock rate domain DF1 . To that end, data items of a data signal D1 are input to the first flip-flop 1 under the control of an output signal of a first clock buffer 5. The first clock buffer 5 is fed with the first clock signal C1 , a first clock enable signal CE1 and a first clock selection signal S1 . The first clock enable signal CE1 may be constantly held at high level in order to activate every clock edge of a first edge type of the first clock signal C1 for triggering the reading of a data item of the data input signal D1 in the first flip-flop 1. The first clock selection signal S1 may be permanently set to a high level in order to always activate the first clock signal C1 as the active clock signal.

If the clock rate of the first clock signal C1 is higher than the clock rate of the second clock signal C2, that is, of the second clock rate domain DF2, the first flip-flop 1 may be provided with a read enable signal N which restricts the rate at which data items are read in according to the lower rate of the second clock signal C2.

The synchronizer circuit 200 comprises a second flip-flop 2, for example a D-flip-flop, which is operated in the second clock rate domain DF2. To that end, data items of the first flip-flop 1 are read in a read-out signal to the second flip-flop 2 under the control of an output signal of a second clock buffer 6. The second clock buffer 6 is fed with the second clock signal C2, an inverted second clock signal C2', a second clock enable signal CE2 and a second clock selection signal S2. The second clock enable signal CE2 and the second clock selection signal S2 may be output by a finite state machine 3 configured to store a predetermined series of the second and third sampling points for the second flip- flop 2. In particular, the predetermined series may be used to generate the second clock enable signal CE2 to determine the edges of the second clock signal C2 to be activated. Similarly, the predetermined series may be used to generate the second clock selection signal S2 in order to choose the edge type used as sampling point for the second clock signal C2. The output of the second clock buffer 6 may then be used for triggering the reading out a data item in the read-out signal R to generate data items of a data output signal D2.

Occasionally, the logic after the second flip-flop 2 will only have half the cycle time of the second clock signal C2 for setup. If this setup time is sufficient, the latency of the synchronizer circuit 200 is minimal. However, if the setup time is not sufficient, optionally a third flip-flop 4 may be provided clocked with the output of the second clock buffer 6 and generating a delay time interval for the logic components after the synchronizer circuit 200 in order to meet the setup conditions.

By choosing a similar topology for the clock buffers 5 and 6, the clock skew introduced by the control logic for the flip-flops 1 and 2 is minimal. The clock buffers 5 and 6 provide a multiplexer functionality for choosing between positive and negative edges of a cbck signal input. For example, the clock buffers 5 and 6 may be implemented using an FPGA library BUFCTRL which may be readily available by ASIC and FPGA vendors.

Fig. 3 schematically illustrates a start-up circuit 300 for a synchronizer circuit. The start-up circuit 300 of Fig. 3 may for example be employed in a synchronizer circuit 200 as exemplarily illustrated in Fig. 2 by sharing the finite state machine 3. In particular, the start-up circuit 300 of Fig. 3 may be configured to set up initial conditions for the finite state machine 3 of a synchronizer circuit 200. When powering up, the PLL generating the clock signals will eventually become locked. Thereafter, the logic reset may be released. At this point, the actual state of the first clock rate with respect to the second clock rate is not known. In order to find an initial starting point for the sampling point cycle, the finite state machine 3 may run a start-up procedure utilizing the start-up circuit 300 as exemplarily shown in Fig. 3.

The start-up circuit 300 always works on the clock signal with the higher frequency- exemplary assumed to be the second clock signal C2 in Fig. 3. After each positive edge of the second clock signal C2, it is checked whether a positive edge of the first clock signal C1 fall inside the next clock cycle of the second clock signal C2. This is repeatedly done for all the clock cycles, thus generating a sequence of cycles with following positive edge of the first clock signal C1 and cycles without following positive edge of the first clock signal C1 . The cycle before the alignment of both positive edges of the first and second clock signals C1 and C2 will always be a cycle without following positive edge of the first clock signal C1 whereas the cycle after the alignment of both positive edges of the clock signals C1 and C2 will always be a cycle with following positive edge of the first clock signal C1 . Thus, by determining the cycle sequence, i.e. the occurrence of the cycles in the course of time, a starting point for the sequence of the second and third sampling points may be found.

Therefore, the start-up circuit 300 may comprise a fourth flip-flop 7 clocked with the second clock signal C2 coupled to the finite state machine 3, a fifth flip-flop 8 clocked with the second clock signal C2 coupled to the fourth flip-flop 7, and a sixth flip-flop 9 clocked with the first clock signal C1 . The finite state machine 3 may be configured to input a starting signal P1 to the fourth flip-flop 7 and to receive a pattern signal P2 from the fifth flip-flop 8. The pattern signal P2 is indicative of the sequence of cycles and the respective occurrence of a positive edge of the second clock signal C2 during the current cycle. This is done by the sixth flip-flop 9 which is configured to output a reset signal PE to the fifth flip-flop 8 resetting the pattern signal P2 to zero, if a positive edge of the second clock signal C2 occurs during processing of the starting signal P1 in the fourth and fifth flip-flop 7 and 8 with the rate of the first clock signal C1.

The start-up circuit 300 may also comprise a counter 10 coupled to the finite state machine 3, the counter 10 being configured to control the sequence M of the second and third sampling points SP2 and SP3, i.e. their occurrence or sequence in the course of time, depending on a bit sequence of the pattern signal P2. The bit sequence of the pattern signal P2 may for example code the sequence of the second and third sampling points SP2 and SP3, wherein the respective two states of the bits of the pattern signal P2 code the usage of either a second or a third sampling point, respectively. The counter 10 may for example be a modulo counter which may be reset by the finite state machine 3 according to a counter reset signal X.

Fig. 4 schematically illustrates a method 30 for synchronizing different clock rate domains according to a further embodiment of the present invention. The method 30 may for example be implemented using the synchronizer circuit 200 as explained in conjunction with Figs. 2 and 3. Moreover, the method 30 may take advantage of the findings as explained in conjunction with Fig. 1 .

In a first step 31 , a data item is read into a first flip-flop in the first clock rate domain at a first sampling point correlating with a first edge of a first edge type of a first clocksignal. In a second step 32, the data item is read from the first flip-flop into a second flip-flop in the second clock rate domain at a second sampling point correlating with a second edge of the first edge type of a second clock signal, which second edge directly follows the first edge, if the time interval between the occurrence of the first edge and the second edge is greater than a predeterminable threshold. In a third step 33, the data item is read from the first flip-flop into the second flip-flop in the second clock rate domain at a third sampling point correlating with a third edge of a second edge type of the second clock signal, which third edge directly follows the second edge, if the time interval between the occurrence of the first edge and the second edge is smaller than or equal to a predeterminable threshold.

In the method 30, the ratio between the first clock rate and the second clock rate may correspond to a fraction A / B, wherein A and B are natural or integer numbers. Moreover, the first edge type may be a positive edge and the second edge type may be a negative edge. The predeterminable threshold may depend inter alia on the setup and hold times of the first and/or second flip-flop. Additionally, intermediate logic between the first and second flip-flop may be taken into account as well. The first and second flip-flop of the method 30 may be D-flip-flops.

The method 30 may be performed repeatedly, such that data items are read into the first flip-flop at a sequence of the first sampling points of the first clock signal. Then, the sequence of the second and third sampling points corresponding to the respective sequence of the first sampling points may be preconfigured in advance.