JP2006141017A - Synchronizer for transferring data from a first system to a second system - Google Patents

Synchronizer for transferring data from a first system to a second system Download PDF

Info

Publication number
JP2006141017A
JP2006141017A JP2005324389A JP2005324389A JP2006141017A JP 2006141017 A JP2006141017 A JP 2006141017A JP 2005324389 A JP2005324389 A JP 2005324389A JP 2005324389 A JP2005324389 A JP 2005324389A JP 2006141017 A JP2006141017 A JP 2006141017A
Authority
JP
Japan
Prior art keywords
clock
flip
data
flops
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005324389A
Other languages
Japanese (ja)
Inventor
William F Harper
ウィリアム・エフ・ハーパー
Vicente V Cavanna
ヴィンセンテ・ブイ・カヴァナ
Roy P Stone
ロイ・ピー・ストーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JP2006141017A publication Critical patent/JP2006141017A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/005Correction by an elastic buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】ドメイン境界を越えてデータ伝送を行う効率的な方法及び手段を提供すること。
【解決手段】第1のクロック(103A)及び第2のクロック(103B)に基づいてデータを送信する第1のシステム(102)から第3のクロック(103D)に基づいてデータを受信する第2のシステム(106)へデータを受け渡す同期装置(104)であって、第1のクロックに基づいて第1のシステムからデータを受信するフリップフロップの第1の集合(204A〜C)を含む同期装置。同期装置は、第2のクロックに基づいて第1のシステムからデータを受信するフリップフロップの第2の集合(204B, 204D)を含む。同期装置は、第1の集合及び第2の集合中のフリップフロップの出力に接続された第1のマルチプレクサ(206)を含む。同期装置は第3のクロックに基づいて第1のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力することにより、第2のシステムへ供給される出力データを生成する制御装置(212)を含む。
【選択図】図2
An efficient method and means for transmitting data across domain boundaries is provided.
A second system for receiving data based on a third clock (103D) from a first system (102) for transmitting data based on a first clock (103A) and a second clock (103B). Synchronizer (104) for passing data to the system (106) of the first embodiment, comprising a first set (204A-C) of flip-flops that receive data from the first system based on a first clock apparatus. The synchronizer includes a second set (204B, 204D) of flip-flops that receive data from the first system based on a second clock. The synchronizer includes a first multiplexer (206) connected to the outputs of the flip-flops in the first set and the second set. The synchronization device controls the first multiplexer based on the third clock, and outputs data from the selected flip-flop among the flip-flops, thereby generating output data to be supplied to the second system. A control device (212) is included.
[Selection] Figure 2

Description

多くのデータ通信用途では、ドメイン境界を超えてデジタルデータを伝送する必要がある。ドメイン境界とは、異なるクロック信号で動作する2つのシステム間の境界である。境界を超えるデータ伝送は通常、同期装置を用いて行われる。   Many data communication applications require the transmission of digital data across domain boundaries. A domain boundary is a boundary between two systems operating with different clock signals. Data transmission beyond the boundary is usually performed using a synchronizer.

一部の既存の同期装置は、フルハンドシェーク動作を行う比較的複雑な装置であり、一般的な同期手段として機能するように設計されている。このような同期装置を実施することは、一般にあまり効率的でない(例えばゲート数の点で)。   Some existing synchronizers are relatively complex devices that perform full handshake operations and are designed to function as a general synchronization means. Implementing such a synchronizer is generally not very efficient (eg in terms of gate count).

そのため当該技術分野では、最小のエラーでドメイン境界を越えてデータ伝送を行うために、また、デュアルクロックでデータを送信する第1のシステムとシングルクロックでデータを受信する第2のシステムの間でデータを伝送といった特定用途のために、システム及び技術にさらなる改良が必要とされている。   Therefore, in this technical field, in order to transmit data across domain boundaries with minimum error, and between a first system that transmits data with a dual clock and a second system that receives data with a single clock. There is a need for further improvements in systems and technologies for specific applications such as transmitting data.

本発明の一実施形態によれば、第1のクロック及び第2のクロックに基づいてデータを送信する第1のシステムから第3のクロックに基づいてデータを受信する第2のシステムへデータを受け渡す同期装置が得られる。同期装置は、第1のクロックに基づいて第1のシステムからデータを受信するフリップフロップの第1の集合を含む。同期装置は、第2のクロックに基づいて第1のシステムからデータを受信するフリップフロップの第2の集合を含む。同期装置は、第1の集合及び第2集合中のフリップフロップの出力に接続された第1のマルチプレクサを含む。同期装置は、第3のクロックに基づいて第1のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させることにより、第2のシステムへ供給される出力データを生成する制御装置を含む。   According to an embodiment of the present invention, data is received from a first system that transmits data based on a first clock and a second clock to a second system that receives data based on a third clock. A passing synchronizer is obtained. The synchronizer includes a first set of flip-flops that receive data from the first system based on a first clock. The synchronizer includes a second set of flip-flops that receive data from the first system based on a second clock. The synchronizer includes a first multiplexer connected to the outputs of the flip-flops in the first set and the second set. The synchronization device generates output data to be supplied to the second system by controlling the first multiplexer based on the third clock and outputting the data from the selected flip-flop among the flip-flops. Including a control device.

発明の詳細な説明では、本発明を実施するための特定の実施形態を例として描いた添付の図面を参照する。本発明の範囲から外れることなく、他の実施形態を使用したり、構造的または論理的な変更を施すことも可能である。従って、発明の詳細な説明を限定の意味で解釈してはならない。本発明の範囲は特許請求の範囲に規定される。   In the detailed description of the invention, reference is made to the accompanying drawings that illustrate, by way of illustration, specific embodiments for carrying out the invention. Other embodiments may be used and structural or logical changes may be made without departing from the scope of the invention. Accordingly, the detailed description of the invention should not be construed in a limiting sense. The scope of the invention is defined in the claims.

図1は、本発明の一実施形態による通信システム100を示す構成図である。通信システム100は、システムA102、同期装置104、及びシステムB106を含む。図示の実施形態では、システムA102が、データソース、すなわちデータ送信器として機能し、システムB106が、システムA102から送信されたデータを受信する受信器、すなわちデータシンクとして機能する。システムA102は、通信リンク103A〜Cを介して同期装置104に接続される。システムA102は、通信リンク103A及び103Bを介して2つのクロック信号(クロックA、クロックB)を同期装置104に出力する。システムAは、通信リンク103Cを介してデジタルデータ信号(data_in)を同期装置104に出力する。システムB106は、通信リンク103Dを介してクロック信号(クロックC)を同期装置104に出力する。システムB106は、通信リンク103Eを介して同期装置104からデジタルデータ信号(data_out)を受信する。   FIG. 1 is a block diagram showing a communication system 100 according to an embodiment of the present invention. The communication system 100 includes a system A 102, a synchronization device 104, and a system B 106. In the illustrated embodiment, system A 102 functions as a data source, ie, a data transmitter, and system B 106 functions as a receiver, ie, a data sink, that receives data transmitted from system A 102. System A102 is connected to synchronization device 104 via communication links 103A-C. The system A102 outputs two clock signals (clock A and clock B) to the synchronization device 104 via the communication links 103A and 103B. System A outputs a digital data signal (data_in) to synchronization device 104 via communication link 103C. The system B106 outputs a clock signal (clock C) to the synchronization device 104 via the communication link 103D. System B 106 receives a digital data signal (data_out) from synchronizer 104 via communication link 103E.

一実施形態において、システムA102は第1のクロックドメインに配置され、システムB106は第1のクロックドメインとは異なる第2のクロックドメインに配置される。一実施形態において、第1のクロックドメインと第2のクロックドメインはコヒーレントな(同期のとれた)クロックドメインである。図1の実施形態では、2つのクロック(クロックAとクロックB)が第1のクロックドメインに配置され、1つのクロック(クロックC)が第2のクロックドメインに配置されている。本明細書に記載する方法は、2つのクロックドメインのそれぞれが1つのクロックを有する場合にも適用可能である。一実施形態において、システムA102が通信リンク103Aに出力するクロック信号Aとクロック信号Bの周波数は同じで、位相は180度異なる。また、システムB106が通信リンク103Dに出力するクロック信号Cは、クロック信号A及びクロック信号Bの周波数の2倍である。一実施形態において、クロック信号A及びクロック信号Bはそれぞれ62.5MHzのクロック信号であり、クロック信号Cは125MHzのクロック信号である。この実施形態では、2つの異なるクロック(クロックA及びクロックB)を使用して125MHzでデータワードが同期装置104に入力される一方、1つのクロック(クロックC)を使用して125MHzでデータワードがシステムB106に入力される。一実施形態において、システムB106は、クロック信号Aまたはクロック信号Bからクロック信号Cを導出する。図4は、クロック信号A、クロック信号B、及びクロック信号Cの実施形態を示している。以下では図4について説明する。   In one embodiment, system A102 is located in a first clock domain and system B106 is located in a second clock domain that is different from the first clock domain. In one embodiment, the first clock domain and the second clock domain are coherent (synchronized) clock domains. In the embodiment of FIG. 1, two clocks (clock A and clock B) are arranged in the first clock domain, and one clock (clock C) is arranged in the second clock domain. The method described herein is also applicable when each of the two clock domains has one clock. In one embodiment, the frequency of clock signal A and clock signal B that system A 102 outputs to communication link 103A is the same and the phase is 180 degrees different. The clock signal C output from the system B 106 to the communication link 103D is twice the frequency of the clock signal A and the clock signal B. In one embodiment, clock signal A and clock signal B are each 62.5 MHz clock signals and clock signal C is a 125 MHz clock signal. In this embodiment, the data word is input to the synchronizer 104 at 125 MHz using two different clocks (clock A and clock B), while the data word is input at 125 MHz using one clock (clock C). Input to the system B106. In one embodiment, system B 106 derives clock signal C from clock signal A or clock signal B. FIG. 4 shows an embodiment of clock signal A, clock signal B, and clock signal C. Hereinafter, FIG. 4 will be described.

一実施形態において、通信システム100は「8B10B」エンコードを使用する。8B10Bエンコードでは、8ビットワードのデータがそれぞれ10ビットのコードワードに関連付けられる。一実施形態では、10ビットのコードワードが、125MHzの速度でクロックに従って同期装置104に出し入れされる。他の実施形態では、他の通信プロトコル及び他の速度を使用する場合もある。   In one embodiment, the communication system 100 uses “8B10B” encoding. In 8B10B encoding, each 8-bit word data is associated with a 10-bit code word. In one embodiment, 10-bit codewords are transferred to and from synchronizer 104 according to a clock at a rate of 125 MHz. In other embodiments, other communication protocols and other speeds may be used.

一実施形態による同期装置104は、システムA102とシステムB106の間でデータを高い信頼性で受け渡すことが可能な先入れ先出し(FIFO)方式の同期装置である。一実施形態において、同期装置104はシステムA102から或るクロック速度で生成されたデータワードをシステムB106に伝送し、システムB106はそれらのデータワードを別のクロック速度で除去する。一実施形態において、同期装置104は下記の条件に合致する用途で動作するように構成される。
(1)2つのクロックドメイン間の位相関係だけが不明である(すなわち、クロック間はコヒーレントで、一定の位相差の大きさが不明である)。
(2)クロックジッタが1クロック周期未満である。
(3)送信器(すなわちシステムA102)から出力されるデータの流れを止めることが出来ない。
The synchronization device 104 according to an embodiment is a first-in first-out (FIFO) synchronization device that can transfer data between the system A 102 and the system B 106 with high reliability. In one embodiment, synchronizer 104 transmits data words generated from system A 102 at one clock rate to system B 106, which removes those data words at another clock rate. In one embodiment, the synchronizer 104 is configured to operate in applications that meet the following conditions:
(1) Only the phase relationship between the two clock domains is unknown (that is, the clocks are coherent and the magnitude of a certain phase difference is unknown).
(2) Clock jitter is less than one clock cycle.
(3) The flow of data output from the transmitter (that is, the system A 102) cannot be stopped.

図2は、本発明の一実施形態による同期装置104を示す概略図である。同期装置104は、マルチプレクサ202A〜D(まとめてマルチプレクサ202と呼ぶ)、フリップフロップ204A〜D(まとめてフリップフロップ204と呼ぶ)、マルチプレクサ206、208、フリップフロップ210、ステートマシンすなわち制御装置212、及びフリップフロップ214、216を含む。本明細書では、フリップフロップ204をレジスタ204と呼ぶこともある。各マルチプレクサ202は、2つの入力(「0」入力、「1」入力)及び1つの出力を有する。フリップフロップ204、210、216はそれぞれ、1つのデータ入力(「in」)、1つのデータ出力(「out」)、及び1つのクロック入力(「clk」)を有する。フリップフロップ214は、1つのデータ入力(「in」)、2つのデータ出力(「out1」、「out2」)、及び1つのクロック入力(「clk」)を有する。   FIG. 2 is a schematic diagram illustrating a synchronization device 104 according to an embodiment of the present invention. Synchronizer 104 includes multiplexers 202A-D (collectively referred to as multiplexer 202), flip-flops 204A-D (collectively referred to as flip-flop 204), multiplexers 206, 208, flip-flop 210, state machine or controller 212, and Flip-flops 214 and 216 are included. In this specification, the flip-flop 204 is sometimes referred to as a register 204. Each multiplexer 202 has two inputs (“0” input, “1” input) and one output. Each flip-flop 204, 210, 216 has one data input (“in”), one data output (“out”), and one clock input (“clk”). The flip-flop 214 has one data input (“in”), two data outputs (“out1”, “out2”), and one clock input (“clk”).

マルチプレクサ202A及び202Bの「0」入力と、マルチプレクサ202C及び202Dの「1」入力は、通信リンク103C(data_in)に接続される。マルチプレクサ202A及び202Bの「1」入力は、フリップフロップ204A及び204Bの出力にそれぞれ接続される。マルチプレクサ202C及び202Dの「0」入力は、フリップフロップ204C及び204Dの出力にそれぞれ接続される。マルチプレクサ202A〜Dの出力は、通信リンク203A〜Dをそれぞれ介してフリップフロップ204A〜Dの入力にそれぞれ接続される。マルチプレクサ202は、フリップフロップ214の第1の出力(out1)に接続された通信リンク215Aから制御信号すなわち選択信号を受信する。選択信号が低(例えば論理0)のとき、各マルチプレクサ202は、信号をマルチプレクサ202の「0」入力に出力する。選択信号が高(例えば論理1)のとき、各マルチプレクサ202は、信号をマルチプレクサ202の「1」入力に出力する。   The “0” inputs of multiplexers 202A and 202B and the “1” inputs of multiplexers 202C and 202D are connected to communication link 103C (data_in). The “1” inputs of multiplexers 202A and 202B are connected to the outputs of flip-flops 204A and 204B, respectively. The “0” inputs of multiplexers 202C and 202D are connected to the outputs of flip-flops 204C and 204D, respectively. The outputs of multiplexers 202A-D are connected to the inputs of flip-flops 204A-D via communication links 203A-D, respectively. The multiplexer 202 receives a control signal or selection signal from the communication link 215A connected to the first output (out1) of the flip-flop 214. When the select signal is low (eg, logic 0), each multiplexer 202 outputs a signal to the “0” input of multiplexer 202. When the select signal is high (eg, logic 1), each multiplexer 202 outputs a signal to the “1” input of multiplexer 202.

通信リンク103A(クロックA)は、フリップフロップ204A、204Cのクロック入力に接続される。通信リンク103B(クロックB)は、フリップフロップ204B、204D、214のクロック入力に接続される。フリップフロップ204A〜Dの出力は、通信リンク205A〜Dをそれぞれ介してマルチプレクサ206の「00」入力、「01」入力、「11」入力、及び「10」入力にそれぞれ接続される。マルチプレクサ206は、通信リンク211A、211Bを介してステートマシン212から2ビットの選択信号を受信する。選択信号の2つのビットが両方とも低(すなわち論理0)のとき、マルチプレクサ206は、信号をマルチプレクサ206の「00」入力に出力する。選択信号の2つのビットが両方とも高(すなわち論理1)のとき、マルチプレクサ206は、信号をマルチプレクサ206の「11」入力に出力する。選択信号の第1のビットが低で第2のビットが高のとき、マルチプレクサ206は、信号をマルチプレクサ206の「01」入力に出力する。選択信号の第1のビットが高で第2のビットが低のとき、マルチプレクサ206は、信号をマルチプレクサ206の「10」入力に出力する。   Communication link 103A (clock A) is connected to the clock inputs of flip-flops 204A, 204C. Communication link 103B (clock B) is connected to the clock input of flip-flops 204B, 204D, 214. The outputs of flip-flops 204A-D are connected to “00” input, “01” input, “11” input, and “10” input of multiplexer 206 via communication links 205A-D, respectively. The multiplexer 206 receives a 2-bit selection signal from the state machine 212 via the communication links 211A and 211B. Multiplexer 206 outputs a signal to the “00” input of multiplexer 206 when both bits of the select signal are low (ie, logic 0). When both two bits of the select signal are high (ie, logic 1), multiplexer 206 outputs the signal to the “11” input of multiplexer 206. When the first bit of the selection signal is low and the second bit is high, the multiplexer 206 outputs a signal to the “01” input of the multiplexer 206. When the first bit of the selection signal is high and the second bit is low, the multiplexer 206 outputs a signal to the “10” input of the multiplexer 206.

マルチプレクサ206の出力は、通信リンク207Aを介してマルチプレクサ208の「0」入力に接続される。マルチプレクサ208の「1」入力は、通信リンク207Bを介して「/V/」信号に接続される。この「/V/」信号は8B10Bプロトコルにおけるエラーコードである。マルチプレクサ208は、通信リンク211Cを介してステートマシン212から選択信号を受信する。選択信号が低(例えば論理0)のとき、マルチプレクサ208は、信号をマルチプレクサ208の「0」入力に出力する。選択信号が高(例えば論理1)のとき、マルチプレクサ208は、信号をマルチプレクサ208の「1」入力に出力する。   The output of multiplexer 206 is connected to the “0” input of multiplexer 208 via communication link 207A. The “1” input of multiplexer 208 is connected to the “/ V /” signal via communication link 207B. This “/ V /” signal is an error code in the 8B10B protocol. The multiplexer 208 receives the selection signal from the state machine 212 via the communication link 211C. When the select signal is low (eg, logic 0), multiplexer 208 outputs a signal to the “0” input of multiplexer 208. When the select signal is high (eg, logic 1), multiplexer 208 outputs a signal to the “1” input of multiplexer 208.

マルチプレクサ208の出力は、通信リンク209を介してフリップフロップ210のデータ入力に接続される。通信リンク103D(クロックC)は、フリップフロップ210及び216のクロック入力に接続され、更にステートマシン212にも接続される。フリップフロップ210は、通信リンク103Eを介してデータ(data_out)をシステムB106(図1)に出力する。   The output of multiplexer 208 is connected to the data input of flip-flop 210 via communication link 209. Communication link 103D (clock C) is connected to the clock inputs of flip-flops 210 and 216 and is further connected to state machine 212. The flip-flop 210 outputs data (data_out) to the system B 106 (FIG. 1) via the communication link 103E.

フリップフロップ214の第1の出力(out1)は、通信リンク215Aを介してフリップフロップ216の入力に接続される。フリップフロップ214の第2の出力(out2)は反転出力であり、フリップフロップ214の入力に接続される。フリップフロップ214は、通信リンク215Aを介して同期パルスをフリップフロップ216に供給する。フリップフロップ216の出力は、通信リンク217を介してステートマシン212に接続される。フリップフロップ216は、通信リンク217を介して同期パルスをステートマシン212に供給する。フリップフロップ216からステートマシン212へ信号が供給されると、ステートマシン212は種々の状態間を移行(遷移)する。これについては、図3を参照して後で詳しく説明する。   The first output (out1) of flip-flop 214 is connected to the input of flip-flop 216 via communication link 215A. The second output (out2) of the flip-flop 214 is an inverted output and is connected to the input of the flip-flop 214. The flip-flop 214 supplies the synchronization pulse to the flip-flop 216 via the communication link 215A. The output of flip-flop 216 is connected to state machine 212 via communication link 217. The flip-flop 216 supplies the synchronization pulse to the state machine 212 via the communication link 217. When a signal is supplied from the flip-flop 216 to the state machine 212, the state machine 212 transitions between various states. This will be described in detail later with reference to FIG.

図2に示すように、フリップフロップ204A及び204Cは、通信リンク103Aを介して受信されるクロック信号Aによってクロック供給を受ける。従って、それらのフリップフロップは、クロックAのクロックドメインに属している。フリップフロップ204B、204D、及び214は、通信リンク103Bを介して受信されるクロック信号Bによってクロック供給を受ける。従って、それらのフリップフロップは、クロックBのクロックドメインに属している。フリップフロップ210、ステートマシン212、及びフリップフロップ216は、通信リンク103Dを介して受信されるクロック信号Cによってクロック供給を受ける。従って、それらはクロックCのクロックドメインに属している。次に、同期装置104の動作について、図3及び図4を参照して詳しく説明する。   As shown in FIG. 2, flip-flops 204A and 204C are clocked by a clock signal A received via communication link 103A. Therefore, these flip-flops belong to the clock domain of clock A. Flip-flops 204B, 204D, and 214 are clocked by a clock signal B that is received via communication link 103B. Therefore, these flip-flops belong to the clock domain of clock B. The flip-flop 210, state machine 212, and flip-flop 216 are clocked by a clock signal C received via the communication link 103D. Therefore, they belong to the clock domain of clock C. Next, the operation of the synchronization device 104 will be described in detail with reference to FIGS.

当業者には分かると思われるが、図2に示す論理回路は、同期装置104が1クロックサイクル当たりに処理するデータビットの数に応じて、複数回複製される。例えば同期装置104が1クロックサイクル当たり10ビットのデータを処理する実施形態の場合、マルチプレクサ202A〜D、フリップフロップ204A〜D、マルチプレクサ206、208、フリップフロップ210はそれぞれ、10回複製することが望ましい。一実施形態では、同期装置104が1クロックサイクル当たりに処理するデータビットの数に相当する整数を「N」としたときに、同期装置104は、N個のマルチプレクサ202A〜D(合計4N個)、N個のフリップフロップ204A〜D(合計4N個)、N個のマルチプレクサ206、N個のマルチプレクサ208、及びN個のフリップフロップ210を備える。   As will be appreciated by those skilled in the art, the logic circuit shown in FIG. 2 is replicated multiple times depending on the number of data bits that the synchronizer 104 processes per clock cycle. For example, in an embodiment where the synchronizer 104 processes 10 bits of data per clock cycle, the multiplexers 202A-D, flip-flops 204A-D, multiplexers 206, 208, and flip-flop 210 are each preferably replicated 10 times. . In one embodiment, when the integer corresponding to the number of data bits that the synchronizer 104 processes per clock cycle is “N”, the synchronizer 104 includes N multiplexers 202A-D (4N total). , N flip-flops 204A to 204D (4N in total), N multiplexers 206, N multiplexers 208, and N flip-flops 210.

図3は、本発明の一実施形態による図2に示す同期装置のステートマシン212の種々の状態を示す状態図である。図3に示すように、ステートマシン212は8つの状態302〜316を有する。8つの状態302〜316のそれぞれに、3ビットの値が関連付けられている。例えば、状態302に関連付けられた3ビットの値は「000」である。各3ビット状態値の最下位2ビット(右端の2ビット)は、通信リンク211A及び211Bを介してステートマシン212がマルチプレクサ206に出力する信号に対応する。フリップフロップ216は、状態302〜316間の遷移を決定する遷移変数(「1」または「0」)を通信リンク217に出力する。   FIG. 3 is a state diagram illustrating various states of the state machine 212 of the synchronizer shown in FIG. 2 according to one embodiment of the invention. As shown in FIG. 3, the state machine 212 has eight states 302-316. A three-bit value is associated with each of the eight states 302-316. For example, the 3-bit value associated with state 302 is “000”. The least significant 2 bits (2 bits at the right end) of each 3-bit state value correspond to a signal that the state machine 212 outputs to the multiplexer 206 via the communication links 211A and 211B. The flip-flop 216 outputs a transition variable (“1” or “0”) that determines the transition between the states 302 to 316 to the communication link 217.

一実施形態において、ステートマシン212は、リセット/エラー状態である状態306から開始される。状態306に対応する3ビット値は「100」である。状態306においてステートマシン212は、通信リンク211Cを介して「1」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「00」選択信号をマルチプレクサ206に出力する。フリップフロップ216が通信リンク217に出力する信号が低(すなわち論理0)である間、ステートマシン212はその状態306にとどまる。フリップフロップ216がステートマシン212に出力する信号が高(すなわち論理1)になると、ステートマシン212は状態306から状態310へ遷移する。   In one embodiment, state machine 212 begins at state 306, which is a reset / error state. The 3-bit value corresponding to the state 306 is “100”. In state 306, state machine 212 outputs a “1” selection signal to multiplexer 208 via communication link 211C and a “00” selection signal to multiplexer 206 via communication links 211A and 211B. While the signal that flip-flop 216 outputs to communication link 217 is low (ie, logic 0), state machine 212 remains in its state 306. When the signal output by flip-flop 216 to state machine 212 goes high (ie, logic 1), state machine 212 transitions from state 306 to state 310.

状態310に対応する3ビット値は「011」である。状態310においてステートマシン212は、通信リンク211Cを介して「0」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「11」選択信号をマルチプレクサ206に出力する。状態310においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理1である場合、ステートマシン212は状態310から状態312へ遷移する。状態310においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理0である場合、ステートマシン212は状態310から状態316へ遷移する。   The 3-bit value corresponding to the state 310 is “011”. In state 310, state machine 212 outputs a “0” selection signal to multiplexer 208 via communication link 211C and a “11” selection signal to multiplexer 206 via communication links 211A and 211B. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 is logic 1 in state 310, the state machine 212 transitions from state 310 to state 312. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in state 310 is a logic zero, the state machine 212 transitions from state 310 to state 316.

状態312に対応する3ビット値は「010」である。状態312においてステートマシン212は、通信リンク211Cを介して「0」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「10」選択信号をマルチプレクサ206に出力する。状態312においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理1である場合、ステートマシン212は状態312から状態314へ遷移する。状態312においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理0である場合、ステートマシン212は状態312から状態302へ遷移する。   The 3-bit value corresponding to the state 312 is “010”. In state 312, state machine 212 outputs a “0” selection signal to multiplexer 208 via communication link 211C and a “10” selection signal to multiplexer 206 via communication links 211A and 211B. If the signal that flip-flop 216 outputs to state machine 212 over communication link 217 in state 312 is a logic 1, state machine 212 transitions from state 312 to state 314. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in state 312 is a logic zero, the state machine 212 transitions from state 312 to state 302.

状態314に対応する3ビット値は「111」である。状態314はエラー状態である。状態314においてステートマシン212は、通信リンク211Cを介して「1」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「11」選択信号をマルチプレクサ206に出力する。フリップフロップ216が通信リンク217を介してステートマシン212に出力する信号が論理1である間、ステートマシン212は状態314にとどまる。状態314においてフリップフロップ216が通信リンク217を介してステートマシン212に出力する信号が論理0に変わると、ステートマシン212は状態314から状態302へ遷移する。   The 3-bit value corresponding to the state 314 is “111”. State 314 is an error condition. In state 314, the state machine 212 outputs a “1” selection signal to the multiplexer 208 via the communication link 211C and outputs an “11” selection signal to the multiplexer 206 via the communication links 211A and 211B. State machine 212 remains in state 314 while the signal that flip-flop 216 outputs to state machine 212 over communication link 217 is a logic one. When the signal that flip-flop 216 outputs to state machine 212 over communication link 217 in state 314 changes to logic zero, state machine 212 transitions from state 314 to state 302.

状態316に対応する3ビット値は「110」である。状態316においてステートマシン212は、通信リンク211Cを介して「0」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「10」選択信号をマルチプレクサ206に出力する。状態316においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理である場合、ステートマシン212は状態316から状態314へ遷移する。状態316においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理0である場合、ステートマシン212は状態316から状態302へ遷移する。   The 3-bit value corresponding to state 316 is “110”. In state 316, state machine 212 outputs a “0” selection signal to multiplexer 208 via communication link 211C and a “10” selection signal to multiplexer 206 via communication links 211A and 211B. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in the state 316 is logic, the state machine 212 transitions from the state 316 to the state 314. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in state 316 is a logic zero, the state machine 212 transitions from state 316 to state 302.

状態302に対応する3ビット値は「000」である。状態302においてステートマシン212は、通信リンク211Cを介して「0」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「00」選択信号をマルチプレクサ206に出力する。状態302においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理1である場合、ステートマシン212は状態302から状態308へ遷移する。状態302においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理0である場合、ステートマシン212は状態302から状態304へ遷移する。   The 3-bit value corresponding to the state 302 is “000”. In the state 302, the state machine 212 outputs a “0” selection signal to the multiplexer 208 via the communication link 211C and outputs a “00” selection signal to the multiplexer 206 via the communication links 211A and 211B. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in the state 302 is logic 1, the state machine 212 transitions from the state 302 to the state 308. If the signal output by flip-flop 216 to state machine 212 via communication link 217 in state 302 is a logic zero, state machine 212 transitions from state 302 to state 304.

状態304に対応する3ビット値は「001」である。状態304においてステートマシン212は、通信リンク211Cを介して「0」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「01」選択信号をマルチプレクサ206に出力する。状態304においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理1である場合、ステートマシン212は状態304から状態310へ遷移する。状態304においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理0である場合、ステートマシン212は状態304から状態306に遷移する。   The 3-bit value corresponding to the state 304 is “001”. In state 304, state machine 212 outputs a “0” selection signal to multiplexer 208 via communication link 211C and a “01” selection signal to multiplexer 206 via communication links 211A and 211B. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in the state 304 is logic 1, the state machine 212 transitions from the state 304 to the state 310. If the signal output by the flip-flop 216 to the state machine 212 via the communication link 217 in state 304 is a logic zero, the state machine 212 transitions from state 304 to state 306.

状態308に対応する3ビット値は「101」である。状態308においてステートマシン212は、通信リンク211Cを介して「0」選択信号をマルチプレクサ208に出力するとともに、通信リンク211A及び211Bを介して「01」選択信号をマルチプレクサ206に出力する。状態308においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理1である場合、ステートマシン212は状態308から状態310へ遷移する。状態308においてフリップフロップ216が通信リンク217を介してステートマシン212に出力した信号が論理0である場合、ステートマシン212は状態308から状態306へ遷移する。   The 3-bit value corresponding to the state 308 is “101”. In state 308, state machine 212 outputs a “0” selection signal to multiplexer 208 via communication link 211C and a “01” selection signal to multiplexer 206 via communication links 211A and 211B. If the signal that flip-flop 216 outputs to state machine 212 over communication link 217 in state 308 is a logic 1, state machine 212 transitions from state 308 to state 310. If the signal that flip-flop 216 outputs to state machine 212 over communication link 217 in state 308 is a logic zero, state machine 212 transitions from state 308 to state 306.

図4は、本発明の一実施形態による図2に示す同期装置104の種々の信号のタイミングを示す図である。クロック信号A(402)は、システムA(102)(図1)が通信リンク103Aを介して同期装置104に出力したクロック信号を表している。クロック信号B(404)は、システムA(102)が通信リンク103Bを介して同期装置104に出力したクロック信号を表している。Data_in信号406は、システムA102が通信リンク103Cを介して同期装置104に出力したデータ信号を表している。一実施形態では、クロック信号402及び404が遷移する度に、新たなデータワードが通信リンク103Cを介してクロックに従って同期装置104に入力される。信号406において、個々のデータワードは番号1、2、3、・・・、15によって識別される。一実施形態において、信号406中の各データワードは10ビット値である。同期信号408は、フリップフロップ214(図2)が通信リンク215Aに出力した同期信号を表している。図4に示すように、同期信号408は複数のパルスを含み、各パルスの幅はクロック信号402または404の1クロックサイクルの幅に等しく、パルス間の間隔は1クロックサイクルになっている。一実施形態において、フリップフロップ214が出力する同期信号408は、ステートマシン212に指示を与えるためのグレー符号で符号化された索引値であり、フリップフロップ216は、不安定状態の信号がステートマシン212に入力されることを防止する働きを持つ。   FIG. 4 is a diagram illustrating the timing of various signals of the synchronizer 104 shown in FIG. 2 according to one embodiment of the present invention. Clock signal A (402) represents the clock signal output by system A (102) (FIG. 1) to synchronizer 104 via communication link 103A. A clock signal B (404) represents a clock signal output from the system A (102) to the synchronization device 104 via the communication link 103B. A Data_in signal 406 represents a data signal output from the system A 102 to the synchronization device 104 via the communication link 103C. In one embodiment, each time the clock signals 402 and 404 transition, a new data word is input to the synchronizer 104 according to the clock via the communication link 103C. In signal 406, the individual data words are identified by numbers 1, 2, 3,. In one embodiment, each data word in signal 406 is a 10-bit value. Synchronization signal 408 represents the synchronization signal output by flip-flop 214 (FIG. 2) to communication link 215A. As shown in FIG. 4, the synchronization signal 408 includes a plurality of pulses, the width of each pulse being equal to the width of one clock cycle of the clock signal 402 or 404, and the interval between pulses being one clock cycle. In one embodiment, the synchronization signal 408 output by the flip-flop 214 is an index value encoded with a Gray code to give an instruction to the state machine 212, and the flip-flop 216 indicates that the unstable signal is a state machine. It has a function of preventing input to 212.

信号410は、フリップフロップ204A(図2)が通信リンク205Aを介してマルチプレクサ206の「00」入力に出力した信号406中のデータワードを示している。図4に示すように、フリップフロップ204Aは信号406中の番号3、7、11に対応するデータワードを出力する。信号412は、フリップフロップ204B(図2)が通信リンク205B上を介してマルチプレクサ206の「01」入力に出力した信号406中のデータワードを示している。図4に示すように、フリップフロップ204Bは信号406中の番号4、8、12に対応するデータワードを出力する。信号414は、フリップフロップ204C(図2)が通信リンク205Cを介してマルチプレクサ206の「11」入力に出力した信号406中のデータワードを示している。図4に示すように、フリップフロップ204Cは信号406中の番号1、5、9、13に対応するデータワードを出力する。信号416は、フリップフロップ204D(図2)が通信リンク205Dを介してマルチプレクサ206の「10」入力に出力した信号406中のデータワードを示している。図4に示すように、フリップフロップ204Dは信号406中の番号2、6、10、14に対応するデータワードを出力する。   Signal 410 shows the data word in signal 406 that flip-flop 204A (FIG. 2) outputs to the “00” input of multiplexer 206 via communication link 205A. As shown in FIG. 4, the flip-flop 204A outputs data words corresponding to the numbers 3, 7, and 11 in the signal 406. Signal 412 shows the data word in signal 406 output by flip-flop 204B (FIG. 2) to “01” input of multiplexer 206 via communication link 205B. As shown in FIG. 4, flip-flop 204B outputs data words corresponding to numbers 4, 8, and 12 in signal 406. Signal 414 shows the data word in signal 406 output by flip-flop 204C (FIG. 2) to the “11” input of multiplexer 206 via communication link 205C. As shown in FIG. 4, the flip-flop 204 </ b> C outputs data words corresponding to numbers 1, 5, 9, and 13 in the signal 406. Signal 416 shows the data word in signal 406 output by flip-flop 204D (FIG. 2) to “10” input of multiplexer 206 via communication link 205D. As shown in FIG. 4, flip-flop 204D outputs a data word corresponding to numbers 2, 6, 10, 14 in signal 406.

図4の信号410〜416に示すように、data_in信号406から各データワードをサンプリングした後、そのデータワードは、クロック信号402または404の2クロックサイクル分の時間だけ、フリップフロップ204A〜Dのうちの1つの出力に保持される。従って、各データワードは実質的に2クロックサイクル分の時間枠を占める。ただし、2つのクロックサイクル時間枠はクロック境界で分割されるため、一実施形態において、同期装置104は、最大で1クロックサイクル全体分のジッタを処理するように構成される。   After sampling each data word from the data_in signal 406, as shown by signals 410-416 in FIG. 4, the data word is one of the flip-flops 204A-D for the duration of two clock cycles of the clock signal 402 or 404. Are held in one output. Thus, each data word substantially occupies a time frame of two clock cycles. However, since the two clock cycle time frames are divided at the clock boundaries, in one embodiment, the synchronizer 104 is configured to process jitter for up to one entire clock cycle.

同期装置104の動作は、システムB106(図1)が通信リンク103Dを介して同期装置104に出力するクロック信号Cの影響を受けるだけでなく、クロック信号Cとクロック信号402、404との間の関係の影響も受ける。信号418A〜424Aは、同期装置104の動作の第1の例を示している。この例では、クロック信号Cがクロック信号402及びクロック信号404と同期した状態で始まり、右に流れてから、左に流れている。信号418B〜424Bは、同期装置104の動作の第2の例を示している。この例では、クロック信号Cがクロック信号402及びクロック信号404よりも遅れて始まり、左に流れてから、右に流れている。   The operation of the synchronizer 104 is not only affected by the clock signal C output by the system B 106 (FIG. 1) to the synchronizer 104 via the communication link 103D, but also between the clock signal C and the clock signals 402, 404. Also affected by relationships. Signals 418A-424A illustrate a first example of the operation of the synchronizer 104. In this example, the clock signal C starts in synchronization with the clock signal 402 and the clock signal 404 and flows to the right and then to the left. Signals 418B-424B illustrate a second example of the operation of the synchronizer 104. In this example, the clock signal C starts later than the clock signal 402 and the clock signal 404, flows to the left, and then flows to the right.

クロック信号C(418A)は、システムB106(図1)が通信リンク103Dを介して同期装置104に出力したクロック信号を示している。図4に示すように、クロック信号C(418A)はクロック信号402及びクロック信号404と同期した状態で始まり、右に流れてから、左に流れている。グレイ同期(Gray_sync)信号420Aは、フリップフロップ216が通信リンク217を介してステートマシン212に出力した同期信号を示している。図4に示すように、この同期信号420Aは異なる幅の複数のパルスを含み、パルス間の間隔にも変動がある。パルスの幅や間隔の変動は、クロック信号C(418A)のドリフト(ゆらぎ)が原因である。状態信号422Aは、ステートマシン212の状態を時間の経過とともに示している。各状態は、その状態に対応する3ビット値によって識別される。Data_out信号424Aは、同期装置104が通信リンク103Eを介してシステムB106に出力したデータ信号を示している。図4に示すように、data_out信号424Aはdata_in信号406と同じデータワードを有する。data_out信号424Aを信号410〜416と比較することで分かるように、data_out信号424Aの各データワードは、信号410〜416に示されているそのデータワードに対応する2クロックサイクル分の時間枠に収まっている。   A clock signal C (418A) indicates a clock signal output from the system B 106 (FIG. 1) to the synchronization device 104 via the communication link 103D. As shown in FIG. 4, the clock signal C (418A) starts in synchronization with the clock signal 402 and the clock signal 404, flows to the right, and then flows to the left. A gray synchronization (Gray_sync) signal 420 </ b> A indicates a synchronization signal output from the flip-flop 216 to the state machine 212 via the communication link 217. As shown in FIG. 4, the synchronization signal 420A includes a plurality of pulses having different widths, and the interval between the pulses also varies. The fluctuation of the pulse width and interval is caused by the drift (fluctuation) of the clock signal C (418A). The state signal 422A indicates the state of the state machine 212 over time. Each state is identified by a 3 bit value corresponding to that state. A Data_out signal 424A indicates a data signal output from the synchronization device 104 to the system B 106 via the communication link 103E. As shown in FIG. 4, the data_out signal 424 A has the same data word as the data_in signal 406. As can be seen by comparing the data_out signal 424A with the signals 410-416, each data word of the data_out signal 424A fits in the time frame for two clock cycles corresponding to that data word indicated in the signals 410-416. ing.

信号422Aに示すように、ステートマシン212は状態「100」から開始される。状態「100」はリセット状態であり、ステートマシン212は数クロックサイクルの間この状態にとどまった後、状態「011」へ遷移する。状態「100」においてステートマシン212はマルチプレクサ208(図2)に対し、マルチプレクサ208の「1」入力から値を出力させる。この値はエラーコードである。マルチプレクサ208はそのエラーコードをフリップフロップ210に出力し、フリップフロップ210は、クロック信号C(418A)が低から高へ次回遷移したときに、そのエラーコードを通信リンク103Eに出力する。   As indicated by signal 422A, state machine 212 starts at state “100”. State “100” is a reset state and state machine 212 remains in this state for several clock cycles before transitioning to state “011”. In state “100”, state machine 212 causes multiplexer 208 (FIG. 2) to output a value from the “1” input of multiplexer 208. This value is an error code. The multiplexer 208 outputs the error code to the flip-flop 210, and the flip-flop 210 outputs the error code to the communication link 103E when the clock signal C (418A) next transitions from low to high.

状態「011」においてステートマシン212はマルチプレクサ208に対し、マルチプレクサ208の「0」入力から値を出力させる。マルチプレクサ208の「0」入力はマルチプレクサ206の出力に接続されている。状態「011」の最下位2ビットは「11」である。従ってステートマシン212はマルチプレクサ206に対し、マルチプレクサ206の「11」入力から値を出力させる。マルチプレクサ206の「11」入力はフリップフロップ204Cの出力に接続されている。信号414に示すように、状態「011」の間にフリップフロップ204Cの出力に保持されている値は、データワード番号1である。従って、マルチプレクサ206は、マルチプレクサ208を介してそのデータワード番号1をフリップフロップ210の入力に出力する。そして、フリップフロップ210は、クロック信号C(418A)が低から高へ次回遷移する時に、そのデータワード番号1を通信リンク103Eに出力する。   In state “011”, state machine 212 causes multiplexer 208 to output a value from the “0” input of multiplexer 208. The “0” input of multiplexer 208 is connected to the output of multiplexer 206. The least significant 2 bits of the state “011” are “11”. Accordingly, the state machine 212 causes the multiplexer 206 to output a value from the “11” input of the multiplexer 206. The “11” input of the multiplexer 206 is connected to the output of the flip-flop 204C. As indicated by signal 414, the value held at the output of flip-flop 204 </ b> C during state “011” is data word number 1. Therefore, the multiplexer 206 outputs the data word number 1 to the input of the flip-flop 210 via the multiplexer 208. Then, the flip-flop 210 outputs the data word number 1 to the communication link 103E when the clock signal C (418A) next transitions from low to high.

ステートマシン212は、状態「011」の後、信号422Aに示すように別の状態(「010」、「000」、「001」、・・・、「010」)へと次々に遷移する。3ビットの状態値の最下位2ビットは、フリップフロップ204A〜Dのうちの1つに対応する。信号422Aに示すように、それらの状態の最下位2ビットは11、10、00、01というパターンを形成し、このパターンが連続的に繰り返される。つまり、ステートマシン212は、状態「011」においてフリップフロップ204Cからの出力をマルチプレクサ206に選択させた後、フリップフロップ204Dからの出力、フリップフロップ204Aからの出力、及びフリップフロップ204Bからの出力を順番にマルチプレクサ206に選択させる。その後選択はフリップフロップ204Cからの出力に戻り、このプロセスが繰り返される。マルチプレクサ206がフリップフロップ204A〜Dのうちの1つを選択するたびに、選択されたフリップフロップ204の出力に保持されていたデータワードが、マルチプレクサ206及び208を介してフリップフロップ210の入力に出力される。フリップフロップ210は、クロック信号C(418A)が低から高へ次回遷移する時に、そのデータワードを通信リンク103Eに出力する。   After the state “011”, the state machine 212 successively transitions to another state (“010”, “000”, “001”,..., “010”) as indicated by a signal 422A. The least significant 2 bits of the 3-bit state value correspond to one of the flip-flops 204A-D. As shown in signal 422A, the least significant 2 bits of these states form a pattern of 11, 10, 00, 01, which is repeated continuously. That is, the state machine 212 causes the multiplexer 206 to select the output from the flip-flop 204C in the state “011”, and then sequentially outputs the output from the flip-flop 204D, the output from the flip-flop 204A, and the output from the flip-flop 204B. Causes the multiplexer 206 to select. The selection then returns to the output from flip-flop 204C and the process is repeated. Each time multiplexer 206 selects one of flip-flops 204A-D, the data word held at the output of the selected flip-flop 204 is output to the input of flip-flop 210 via multiplexers 206 and 208. Is done. The flip-flop 210 outputs the data word to the communication link 103E when the clock signal C (418A) next transitions from low to high.

信号418B〜424Bは、同期装置104の動作の第2の例を示している。クロック信号C(418B)は、システムB106(図1)が通信リンク103Dを介して同期装置104に出力するクロック信号を示している。図4に示すように、クロック信号C(418B)はクロック信号402及びクロック信号404よりも遅れていて、左に流れてから、右に流れている。Gray_sync(グレイ同期)信号420Bは、フリップフロップ216が通信リンク217を介してステートマシン212に出力する同期信号を示している。図4に示すように、信号420Bは異なるの複数のパルスを含み、パルス間の間隔にも変動がある。パルスの幅や間隔の変動は、クロック信号C(418B)のドリフトが原因である。状態信号422Bは、ステートマシン212の状態を時間の経過とともに示している。各状態は、その状態に対応する3ビット値によって識別される。data_out信号424Bは、同期装置104が通信リンク103Eを介してシステムB106に出力したデータ信号を示している。図4に示すように、data_out信号424Bはdata_in信号406と同じデータワードを有する。ただし、番号6で識別されるデータワードと番号7で識別されるデータワードとの間には、エラーコードが挿入されている。これはクロック信号C(418B)のドリフトによるものである。data_out信号424Bを信号410〜416と比較することで分かるように、data_out信号424Bの各データワードは、信号410〜416に示されているそのデータワードに対応する2クロックサイクル分の時間枠に収まっている。   Signals 418B-424B illustrate a second example of the operation of the synchronizer 104. A clock signal C (418B) indicates a clock signal that the system B 106 (FIG. 1) outputs to the synchronization device 104 via the communication link 103D. As shown in FIG. 4, the clock signal C (418B) is delayed from the clock signal 402 and the clock signal 404 and flows to the left and then to the right. A Gray_sync (gray synchronization) signal 420B indicates a synchronization signal that the flip-flop 216 outputs to the state machine 212 via the communication link 217. As shown in FIG. 4, the signal 420B includes a plurality of different pulses, and the interval between the pulses also varies. The fluctuation of the pulse width and interval is caused by the drift of the clock signal C (418B). The state signal 422B indicates the state of the state machine 212 over time. Each state is identified by a 3 bit value corresponding to that state. The data_out signal 424B indicates a data signal output from the synchronization device 104 to the system B 106 via the communication link 103E. As shown in FIG. 4, the data_out signal 424 </ b> B has the same data word as the data_in signal 406. However, an error code is inserted between the data word identified by number 6 and the data word identified by number 7. This is due to the drift of the clock signal C (418B). As can be seen by comparing the data_out signal 424B with the signals 410-416, each data word of the data_out signal 424B fits in the time frame for two clock cycles corresponding to that data word indicated in the signals 410-416. ing.

信号418B〜424Bに関し、ステートマシン212はマルチプレクサ206に対し、フリップフロップ204Cからの出力、フリップフロップ204Dからの出力、フリップフロップ204Aからの出力、及びフリップフロップ204Bからの出力を順番に繰り返しパターンで選択させる。この方法は、信号418A〜424Aについて上で述べたものと同じである。ただし、信号422Bに示すように、フリップフロップ210がデータワード番号6(フリップフロップ204Dから得られる)を出力している間は、ステートマシン212が状態「111」になる。この状態はエラー状態である。状態「111」においてステートマシン212は、マルチプレクサ208に対し、マルチプレクサ208の「1」入力に値を出力させる。この値はエラーコードである。このエラーコードはマルチプレクサ208からフリップフロップ210に出力される。そして、フリップフロップ210は、クロック信号C(418B)が低から高へ次回遷移するときに、そのエラーコードを通信リンク103Eに出力する。信号422Bに示すように、状態「111」の次の状態は状態「000」であり、この状態はフリップフロップ204Aに対応する。つまり、フリップフロップ210は、エラーコードをデータストリームへ挿入した後、フリップフロップ204Aからのデータワード番号7を通信リンク103Eに出力する。そしてステートマシン212は、この繰り返しパターンによるフリップフロップ204A〜Dの選択を引き続き行う。   Regarding the signals 418B to 424B, the state machine 212 selects the output from the flip-flop 204C, the output from the flip-flop 204D, the output from the flip-flop 204A, and the output from the flip-flop 204B to the multiplexer 206 in order in a repeating pattern. Let This method is the same as described above for signals 418A-424A. However, as indicated by signal 422B, while flip-flop 210 is outputting data word number 6 (obtained from flip-flop 204D), state machine 212 is in state "111". This state is an error state. In state “111”, state machine 212 causes multiplexer 208 to output a value at the “1” input of multiplexer 208. This value is an error code. This error code is output from the multiplexer 208 to the flip-flop 210. Then, the flip-flop 210 outputs the error code to the communication link 103E when the clock signal C (418B) next transitions from low to high. As shown in signal 422B, the next state after state “111” is state “000”, which corresponds to flip-flop 204A. That is, after inserting the error code into the data stream, the flip-flop 210 outputs the data word number 7 from the flip-flop 204A to the communication link 103E. Then, the state machine 212 continues to select the flip-flops 204A to 204D based on this repeating pattern.

本発明の一実施形態によれば、従来の同期装置に比べて効率が高く(例えばゲート数の点で)、待ち時間を出来る限り短くした同期装置104が得られる。一実施形態において、同期装置104は最大で1クロック周期までクロック内の高周波数ジッタに耐えることが出来る。本発明の一実施形態において同期装置104は、同期装置によって伝送されるデータの信頼性を確保するための誤り検出機能を有する。一実施形態において同期装置104は、同期装置104が正しく動作する条件(図1に関連して上で述べたもの)に違反したときに発生することがあるFIFOのオーバフロー状態またはアンダフロー状態からの復帰機能を内蔵する。一実施形態において同期装置104は、イーサネット用途、メモリ用途、他の用途で使用されるように構成される場合がある。本発明の一実施形態による同期装置104は、入出力(I/O)フロントエンド部に多数の応用形態を有する。クロックは通常データソースから供給され(ソース同期)、受信器はソースのクロックから導出されたクロックを有し、且つ大きさ不明の位相シフトを受ける。これには、PCIx2.0(DDR PCIx)、ファイバチャネル、ギガビットイーサネットなどの種々の業界標準がある。   According to an embodiment of the present invention, a synchronization device 104 is obtained that is more efficient (eg, in terms of the number of gates) and has a waiting time as short as possible compared to a conventional synchronization device. In one embodiment, the synchronizer 104 can withstand high frequency jitter in the clock for up to one clock period. In one embodiment of the present invention, the synchronization device 104 has an error detection function for ensuring the reliability of data transmitted by the synchronization device. In one embodiment, the synchronizer 104 may detect from a FIFO overflow or underflow condition that may occur when the conditions for the synchronizer 104 to operate correctly (as described above in connection with FIG. 1) are violated. Built-in recovery function. In one embodiment, the synchronizer 104 may be configured for use in Ethernet applications, memory applications, and other applications. The synchronization device 104 according to an embodiment of the present invention has a number of applications in an input / output (I / O) front end. The clock is usually supplied from a data source (source synchronization), and the receiver has a clock derived from the source clock and undergoes an unknown magnitude phase shift. There are various industry standards such as PCIx 2.0 (DDR PCIx), Fiber Channel, and Gigabit Ethernet.

本明細書は特定の実施形態について図示説明しているが、当業者であれば、本発明の範囲から外れることなく、図示説明した特定の実施形態に代えて種々の代替実施形態および/または均等実施形態を採用することも可能である。本願は、本明細書に記載した特定の実施形態の修正及び変形を全て本発明の範囲に含めることを意図している。本発明の範囲は、特許請求の範囲とその均等によってのみ規定される。   While the specification describes and describes particular embodiments, those skilled in the art will recognize that various alternative embodiments and / or equivalents may be substituted for the specific embodiments shown and described without departing from the scope of the invention. Embodiments can also be adopted. This application is intended to cover all modifications and variations of the specific embodiments described herein within the scope of the invention. The scope of the invention is defined only by the claims and their equivalents.

本発明の一実施形態による通信システムを示す構成図である。It is a block diagram which shows the communication system by one Embodiment of this invention. 本発明の一実施形態による同期装置を示す概略図である。1 is a schematic diagram illustrating a synchronization device according to an embodiment of the present invention. 本発明の一実施形態による図2に示す同期装置のステートマシンの種々の状態を示す状態図である。FIG. 3 is a state diagram illustrating various states of the state machine of the synchronizer shown in FIG. 2 according to an embodiment of the present invention. 本発明の一実施形態による図2に示された同期装置の種々の信号を示すタイミング図である。FIG. 3 is a timing diagram illustrating various signals of the synchronizer shown in FIG. 2 according to an embodiment of the present invention.

符号の説明Explanation of symbols

100 通信システム
102、106 システム
103、207、211、215、217 通信リンク
104 同期装置
202、206、208 マルチプレクサ
204、210、214、216 フリップフロップ
212 ステートマシン
402、404 クロック信号
406 Data_in信号
408 同期信号
100 Communication system 102, 106 System 103, 207, 211, 215, 217 Communication link 104 Synchronizer 202, 206, 208 Multiplexer 204, 210, 214, 216 Flip flop 212 State machine 402, 404 Clock signal 406 Data_in signal 408 Synchronization signal

Claims (10)

第1のクロック(103A)及び第2のクロック(103B)に基づいてデータを送信する第1のシステム(102)から第3のクロック(103D)に基づいてデータを受信する第2のシステム(106)へデータを受け渡すための同期装置(104)であって、
前記第1のクロックに基づいて前記第1のシステムからデータを受信するフリップフロップの第1の集合(204A, 204C)と、
前記第2のクロックに基づいて前記第1のシステムからデータを受信するフリップフロップの第2の集合(204B, 204D)と、
前記第1の集合及び前記第2の集合中のフリップフロップの出力に接続された第1のマルチプレクサ(206)と、
前記第3のクロックに基づいて前記第1のマルチプレクサ(206)を制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させることにより、前記第2のシステムへ供給される出力データ(103E)を生成する制御装置(212)と
からなる同期装置。
A second system (106) that receives data based on a third clock (103D) from a first system (102) that transmits data based on a first clock (103A) and a second clock (103B). A synchronization device (104) for passing data to
A first set of flip-flops (204A, 204C) for receiving data from the first system based on the first clock;
A second set (204B, 204D) of flip-flops that receive data from the first system based on the second clock;
A first multiplexer (206) connected to the outputs of flip-flops in the first set and the second set;
Output data supplied to the second system by controlling the first multiplexer (206) based on the third clock and outputting data from a selected flip-flop of the flip-flops And a control device (212) for generating (103E).
前記同期装置が1クロックサイクル当たりに処理するデータビットの数に相当する整数をNとしたときに、
前記フリップフロップの第1の集合(204A, 204C)は、前記第1のクロックによってクロック供給を受けるように構成された2N個のフリップフロップであり、
前記フリップフロップの第2の集合(204B, 204D)は、前記第2のクロックによってクロック供給を受けるように構成された2N個のフリップフロップである、請求項1に記載の同期装置。
When the integer corresponding to the number of data bits processed by the synchronizer per clock cycle is N,
The first set of flip-flops (204A, 204C) is 2N flip-flops configured to be clocked by the first clock;
The synchronization device according to claim 1, wherein the second set of flip-flops (204B, 204D) is 2N flip-flops configured to be clocked by the second clock.
前記同期装置は、前記第1のシステムからデータを受信するデータ入力を有し、前記同期装置は第1の複数のマルチプレクサ(202A-202D)を更に含み、前記第1の複数のマルチプレクサのそれぞれが、前記データ入力に接続された第1の入力と、前記フリップフロップのうちの1つの入力に接続された出力と、前記フリップフロップのうちの1つの出力に接続された第2の入力とを有する、請求項1に記載の同期装置。   The synchronizer has a data input for receiving data from the first system, and the synchronizer further includes a first plurality of multiplexers (202A-202D), each of the first plurality of multiplexers. A first input connected to the data input; an output connected to one input of the flip-flop; and a second input connected to an output of one of the flip-flops. The synchronization device according to claim 1. 前記第1の複数のマルチプレクサ(202A-202D)を制御する制御信号の第1の集合を前記第2のクロック信号に基づいて生成する第1の制御信号発生器(214)と、前記制御信号の第1の集合及び前記第3のクロック信号に基づいて制御信号の第2の集合を生成する第2制御信号発生器(216)とを更に含む、請求項3に記載の同期装置。   A first control signal generator (214) for generating a first set of control signals for controlling the first plurality of multiplexers (202A-202D) based on the second clock signal; 4. The synchronizer of claim 3, further comprising a second control signal generator (216) that generates a second set of control signals based on the first set and the third clock signal. 前記制御装置は、前記第3のクロック信号及び前記制御信号の第2の集合に基づいて前記第1のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させるように構成される、請求項4に記載の同期装置。   The control device controls the first multiplexer based on the third clock signal and the second set of control signals, and outputs data from a selected flip-flop of the flip-flops. 5. A synchronization device according to claim 4, configured. 前記制御装置は、前記第1のシステムから前記第2のシステムへデータを受け渡すときにエラーが発生したか否かを識別するように構成される、請求項1に記載の同期装置。   The synchronization device of claim 1, wherein the controller is configured to identify whether an error has occurred when passing data from the first system to the second system. 前記制御装置は、エラーの発生を識別したときに、前記第2のシステムへ渡すデータにエラーコードを挿入するように構成される、請求項6に記載の同期装置。   The synchronization device according to claim 6, wherein the control device is configured to insert an error code into data to be passed to the second system when an occurrence of an error is identified. 前記第1のクロック及び前記第2のクロックは第1の周波数で動作し、前記第3のクロックは前記第1の周波数の2倍の周波数で動作する、請求項1に記載の同期装置。   The synchronization device according to claim 1, wherein the first clock and the second clock operate at a first frequency, and the third clock operates at a frequency twice as high as the first frequency. 前記第1のクロックと前記第2のクロックの位相が180度異なり、前記第3のクロックは前記第1のクロックと前記第2のクロックのうちの少なくとも一方から導出される、請求項8に記載の同期装置。   9. The phase of the first clock and the second clock is 180 degrees different, and the third clock is derived from at least one of the first clock and the second clock. Synchronization device. 第1のクロック(103A)及び第2のクロック(103B)に基づいてデータを送信する第1のシステム(102)から第3のクロック(103D)に基づいてデータを受信する第2のシステムへデータを受け渡す方法であって、
前記第1のクロックに基づいて前記第1のシステムから第1の複数のフリップフロップ(204A, 204C)にデータを入れるとともに、前記第2のクロックに基づいて前記第1のシステムから第2の複数のフリップフロップ(204B, 204D)にデータを入れるステップと、
前記第1の複数のフリップフロップ及び前記第2の複数のフリップフロップ中のフリップフロップから第1のマルチプレクサ(206)へデータを出力するステップと、
前記第3のクロックに基づいて前記第1のマルチプレクサを制御し、前記フリップフロップのうちの選択されたフリップフロップからデータを出力させることにより、前記第2のシステムへ供給される出力データを生成するステップと
からなる方法。
Data from the first system (102) that transmits data based on the first clock (103A) and the second clock (103B) to the second system that receives data based on the third clock (103D) A method of passing
Data is input from the first system to the first plurality of flip-flops (204A, 204C) based on the first clock, and from the first system to the second plurality of flip-flops based on the second clock. Putting data into flip-flops (204B, 204D)
Outputting data from a flip-flop in the first plurality of flip-flops and the second plurality of flip-flops to a first multiplexer (206);
Based on the third clock, the first multiplexer is controlled to output data from a selected flip-flop of the flip-flops, thereby generating output data to be supplied to the second system. A method consisting of and steps.
JP2005324389A 2004-11-09 2005-11-09 Synchronizer for transferring data from a first system to a second system Pending JP2006141017A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/984,037 US20060098770A1 (en) 2004-11-09 2004-11-09 Synchronizer for passing data from a first system to a second system

Publications (1)

Publication Number Publication Date
JP2006141017A true JP2006141017A (en) 2006-06-01

Family

ID=36273947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005324389A Pending JP2006141017A (en) 2004-11-09 2005-11-09 Synchronizer for transferring data from a first system to a second system

Country Status (3)

Country Link
US (1) US20060098770A1 (en)
JP (1) JP2006141017A (en)
DE (1) DE102005041278A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7639764B2 (en) * 2005-08-17 2009-12-29 Atmel Corporation Method and apparatus for synchronizing data between different clock domains in a memory controller
US7813459B2 (en) * 2005-10-03 2010-10-12 Spansion Llc Digital data transfer between different clock domains
US8095717B1 (en) * 2007-10-17 2012-01-10 Marvell International Ltd. System and method for configuration register synchronization
US8027420B2 (en) * 2008-03-19 2011-09-27 Itt Manufacturing Enterprises, Inc. Apparatus and method for transferring a signal from a fast clock domain to a slow clock domain
US9706508B2 (en) * 2013-04-05 2017-07-11 Honeywell International Inc. Integrated avionics systems and methods
US8975921B1 (en) * 2013-12-09 2015-03-10 Freescale Semiconductor, Inc. Synchronous clock multiplexer
US9715914B1 (en) * 2015-09-26 2017-07-25 Syntropy Systems, Llc Polyphase buffer for rate-conversion

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4873703A (en) * 1985-09-27 1989-10-10 Hewlett-Packard Company Synchronizing system
US4979190A (en) * 1988-04-01 1990-12-18 Digital Equipment Corporation Method and apparatus for stabilized data transmission
DE68916038T2 (en) * 1989-09-29 1994-10-27 Bell Telephone Mfg ADAPTIVE TRANSFORMATION ENCODING SYSTEM.
KR930007716B1 (en) * 1990-07-20 1993-08-18 재단법인 한국전자통신연구소 Digital Phase Detectors for Bit Synchronization
US5359630A (en) * 1992-08-13 1994-10-25 Digital Equipment Corporation Method and apparatus for realignment of synchronous data
CA2106271C (en) * 1993-01-11 2004-11-30 Joseph H. Steinmetz Single and multistage stage fifo designs for data transfer synchronizers
JP4484359B2 (en) * 1997-10-10 2010-06-16 ラムバス・インコーポレーテッド Method and apparatus for minimal latency and failsafe resynchronization
US6418176B1 (en) * 1998-07-17 2002-07-09 Compaq Information Technologies Group, L.P. Forwarded clock recovery with variable latency
US7333516B1 (en) * 2000-07-20 2008-02-19 Silicon Graphics, Inc. Interface for synchronous data transfer between domains clocked at different frequencies
US7028270B1 (en) * 2003-07-15 2006-04-11 Altera Corporation Apparatus and method for reset distribution
US7436917B2 (en) * 2004-07-29 2008-10-14 Hewlett-Packard Development Company, L.P. Controller for clock synchronizer

Also Published As

Publication number Publication date
US20060098770A1 (en) 2006-05-11
DE102005041278A1 (en) 2006-05-18

Similar Documents

Publication Publication Date Title
US7627182B2 (en) Method and apparatus for varied format encoding and decoding of pixel data
US20110305248A1 (en) Clock selection for synchronous ethernet
JP5365132B2 (en) Serial signal receiver, serial transmission system, serial transmission method, serial signal transmitter
EP1579612B1 (en) Frame synchronizing device and method
JP4652261B2 (en) Parallel conversion circuit
JP2006141017A (en) Synchronizer for transferring data from a first system to a second system
KR100680434B1 (en) Clock extractor
US20060153326A1 (en) Serial data communication apparatus and methods of using a single line
EP1241793B1 (en) Parallel-to-serial converter
CN102754407B (en) Providing a feedback loop in a low latency serial interconnect architecture and communication system
US20010053188A1 (en) Transmitting circuit and method thereof, receiving circuit and method thereof, and data communication apparatus
US6664859B1 (en) State machine based phase-lock-loop for USB clock recovery
JP5610540B2 (en) Serial communication interface circuit and parallel serial conversion circuit
US8737552B1 (en) Synchronous data transfer
US8675798B1 (en) Systems, circuits, and methods for phase inversion
US6577649B1 (en) Multiplexer for asynchronous data
US6128319A (en) Hybrid interface for packet data switching
KR100918397B1 (en) Transmission data skew automatic control device and method
JP4593677B2 (en) Clock transfer device and clock transfer method
JPH1168690A (en) Frame synchronization circuit
JP2697421B2 (en) Frame synchronization circuit for digital transmission system
US20070069927A1 (en) Method of transmitting a serial bit-stream and electronic transmitter for transmitting a serial bit-stream
US7515667B2 (en) Method and apparatus for reducing synchronizer shadow
JP2025508484A (en) Single-wire serial communication using pulse width modulation in a daisy-chain architecture
EP1188108A1 (en) Two clock domain pulse to pulse synchronizer

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060629