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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
- H04L7/0012—Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0016—Arrangements for synchronising receiver with transmitter correction of synchronization errors
- H04L7/005—Correction by an elastic buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed 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)を含む。
【選択図】図2An 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
一実施形態において、システム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
一実施形態において、通信システム100は「8B10B」エンコードを使用する。8B10Bエンコードでは、8ビットワードのデータがそれぞれ10ビットのコードワードに関連付けられる。一実施形態では、10ビットのコードワードが、125MHzの速度でクロックに従って同期装置104に出し入れされる。他の実施形態では、他の通信プロトコル及び他の速度を使用する場合もある。
In one embodiment, the
一実施形態による同期装置104は、システムA102とシステムB106の間でデータを高い信頼性で受け渡すことが可能な先入れ先出し(FIFO)方式の同期装置である。一実施形態において、同期装置104はシステムA102から或るクロック速度で生成されたデータワードをシステムB106に伝送し、システムB106はそれらのデータワードを別のクロック速度で除去する。一実施形態において、同期装置104は下記の条件に合致する用途で動作するように構成される。
(1)2つのクロックドメイン間の位相関係だけが不明である(すなわち、クロック間はコヒーレントで、一定の位相差の大きさが不明である)。
(2)クロックジッタが1クロック周期未満である。
(3)送信器(すなわちシステムA102)から出力されるデータの流れを止めることが出来ない。
The
(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
マルチプレクサ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
通信リンク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」入力に出力する。
マルチプレクサ206の出力は、通信リンク207Aを介してマルチプレクサ208の「0」入力に接続される。マルチプレクサ208の「1」入力は、通信リンク207Bを介して「/V/」信号に接続される。この「/V/」信号は8B10Bプロトコルにおけるエラーコードである。マルチプレクサ208は、通信リンク211Cを介してステートマシン212から選択信号を受信する。選択信号が低(例えば論理0)のとき、マルチプレクサ208は、信号をマルチプレクサ208の「0」入力に出力する。選択信号が高(例えば論理1)のとき、マルチプレクサ208は、信号をマルチプレクサ208の「1」入力に出力する。
The output of
マルチプレクサ208の出力は、通信リンク209を介してフリップフロップ210のデータ入力に接続される。通信リンク103D(クロックC)は、フリップフロップ210及び216のクロック入力に接続され、更にステートマシン212にも接続される。フリップフロップ210は、通信リンク103Eを介してデータ(data_out)をシステムB106(図1)に出力する。
The output of
フリップフロップ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-
図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-
当業者には分かると思われるが、図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
図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
一実施形態において、ステートマシン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,
状態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
状態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
状態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
状態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
状態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
状態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
状態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
図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
信号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に対応するデータワードを出力する。
図4の信号410〜416に示すように、data_in信号406から各データワードをサンプリングした後、そのデータワードは、クロック信号402または404の2クロックサイクル分の時間だけ、フリップフロップ204A〜Dのうちの1つの出力に保持される。従って、各データワードは実質的に2クロックサイクル分の時間枠を占める。ただし、2つのクロックサイクル時間枠はクロック境界で分割されるため、一実施形態において、同期装置104は、最大で1クロックサイクル全体分のジッタを処理するように構成される。
After sampling each data word from the
同期装置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
クロック信号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
信号422Aに示すように、ステートマシン212は状態「100」から開始される。状態「100」はリセット状態であり、ステートマシン212は数クロックサイクルの間この状態にとどまった後、状態「011」へ遷移する。状態「100」においてステートマシン212はマルチプレクサ208(図2)に対し、マルチプレクサ208の「1」入力から値を出力させる。この値はエラーコードである。マルチプレクサ208はそのエラーコードをフリップフロップ210に出力し、フリップフロップ210は、クロック信号C(418A)が低から高へ次回遷移したときに、そのエラーコードを通信リンク103Eに出力する。
As indicated by
状態「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”,
ステートマシン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
信号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
信号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
本発明の一実施形態によれば、従来の同期装置に比べて効率が高く(例えばゲート数の点で)、待ち時間を出来る限り短くした同期装置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
本明細書は特定の実施形態について図示説明しているが、当業者であれば、本発明の範囲から外れることなく、図示説明した特定の実施形態に代えて種々の代替実施形態および/または均等実施形態を採用することも可能である。本願は、本明細書に記載した特定の実施形態の修正及び変形を全て本発明の範囲に含めることを意図している。本発明の範囲は、特許請求の範囲とその均等によってのみ規定される。 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.
100 通信システム
102、106 システム
103、207、211、215、217 通信リンク
104 同期装置
202、206、208 マルチプレクサ
204、210、214、216 フリップフロップ
212 ステートマシン
402、404 クロック信号
406 Data_in信号
408 同期信号
100
Claims (10)
前記第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の集合(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のシステムから第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.
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)
| 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)
| 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 |
-
2004
- 2004-11-09 US US10/984,037 patent/US20060098770A1/en not_active Abandoned
-
2005
- 2005-08-31 DE DE102005041278A patent/DE102005041278A1/en not_active Ceased
- 2005-11-09 JP JP2005324389A patent/JP2006141017A/en active Pending
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 |