JP7360472B2 - Multi-bit data cross-clock domain processing method and device - Google Patents
Multi-bit data cross-clock domain processing method and device Download PDFInfo
- Publication number
- JP7360472B2 JP7360472B2 JP2021558008A JP2021558008A JP7360472B2 JP 7360472 B2 JP7360472 B2 JP 7360472B2 JP 2021558008 A JP2021558008 A JP 2021558008A JP 2021558008 A JP2021558008 A JP 2021558008A JP 7360472 B2 JP7360472 B2 JP 7360472B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- clock domain
- changed
- output
- domain side
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Description
本願は、2019年06月28日に中国特許庁へ出願された出願番号が201910578841.3である中国の特許の優先権を主張し、当該出願の全体内容は援用により本願に組み込まれるものとする。 This application claims priority to a Chinese patent with application number 201910578841.3 filed with the Chinese Patent Office on June 28, 2019, and the entire contents of the application are incorporated into this application by reference. .
本発明は、コンピュータ分野に関して、例えば、マルチビットデータのクロスクロックドメインの処理方法と装置に関する。 The present invention relates to the computer field, for example to a method and apparatus for cross-clock domain processing of multi-bit data.
現代の電子システムにおいて、デジタル集積回路システムの規模がますます大きくなり、含まれたモジュールが増え、サポートされた機能がますます複雑になり、消費電力の要求がますます高くになる。したがって、システムオンチップ(System on Chip、SoC)には複数のクロックドメインが含まれ、クロックアーキテクチャ設計はGALS形式を採用し、つまりグローバル非同期(Global Asynchronous)処理とローカル同期(Local Synchronous)処理を採用する。 BACKGROUND OF THE INVENTION In modern electronic systems, digital integrated circuit systems are becoming larger and larger, include more and more modules, supported functions are more and more complex, and have higher and higher power consumption requirements. Therefore, a System on Chip (SoC) includes multiple clock domains, and the clock architecture design adopts the GALS format, that is, it adopts Global Asynchronous processing and Local Synchronous processing. do.
GALSクロックアーキテクチャは多くの利点を有し、例えば、性能のニーズを満たすことを前提として、複数のモジュールを可能な限り低いクロック周波数でそれぞれに実行でき、動的消費電力を削減でき、クロックの実現が比較的に簡単で、クロックツリーは小さく、タイミングを収束しやすく、面積が小さくなる。 The GALS clock architecture has a number of advantages, including the ability to run multiple modules independently at the lowest possible clock frequency, reducing dynamic power consumption and clock realization, given performance needs are met. is relatively simple, the clock tree is small, timing is easy to converge, and the area is small.
GALS SoCにおいて、必然的にクロスクロックドメインのデータ伝送が発生する。非同期クロックの間の位相関係が不確実であるため、あるクロックドメインから別の非同期クロックドメインにデータを伝送すると、レジスタのセットアップタイム(setup time)又はホールドタイム(hold time)が満たされない状況に陥りやすく、準安定(meta-stability)が起こされる。準安定性の問題により、伝送データが誤ってサンプリングされる可能性があり、正しく処理されない場合、SoCシステムがエラー状態で表示され、正しく機能せず、位置づけのが困難になる可能性がある。 In GALS SoC, cross-clock domain data transmission necessarily occurs. Because of the uncertain phase relationships between asynchronous clocks, transmitting data from one clock domain to another can result in situations where register setup or hold times are not met. Meta-stability easily occurs. Due to metastability issues, transmitted data can be sampled incorrectly, and if not handled correctly, the SoC system can appear in an error state, not function properly, and be difficult to locate.
シングルビット(bit)信号の場合、クロスクロックドメインで伝送する場合、準安定の発生を効果的に低減するために2レベルのレジスタ同期の方式が採用される。準安定状態が発生しても、シングルビット信号が2レベル同期処理を採用した後、データが誤ってサンプリングされなく、データ伝送の遅延のみが変化される。 In the case of a single bit signal, a two-level register synchronization scheme is adopted to effectively reduce the occurrence of metastability when transmitting in a cross-clock domain. Even if a metastable state occurs, after the single-bit signal adopts two-level synchronization processing, the data will not be erroneously sampled, and only the delay of data transmission will be changed.
マルチビット信号の場合、クロスクロックドメインで伝送する場合、2レベルのレジスタ同期の方式を採用するのみはできない。マルチビット信号の間にはデータ一貫性(data coherency)があるため、すなわち、一つのビットまたはマルチビット信号が準安定状態になる場合、誤った中間データがサンプリングされることで、SoCシステムがエラー状態になる可能性がある。 In the case of a multi-bit signal, when transmitting it in a cross-clock domain, it is not possible to simply adopt a two-level register synchronization method. Because there is data coherency between multi-bit signals, that is, if a single bit or multi-bit signal becomes metastable, incorrect intermediate data is sampled, causing the SoC system to fail. condition may occur.
関連技術において、マルチビット信号のクロスクロックドメインの伝送方式は下記の3つの処理方式があり、(1)信号同期方式、(2)ハンドシェイク(Handshaking)相互作用方式、(3)非同期先入れ先出し(First Input First Output、FIFO)方式。関連技術における上記方式はすべて、送信クロックドメインと受信クロックドメインの制御信号の双方向の相互作用が必要で、これは、実現が複雑であり、ハードウェアのコストが高く、伝送遅延が高い。 In related technology, there are three processing methods for multi-bit signal cross-clock domain transmission methods: (1) signal synchronization method, (2) handshaking interaction method, and (3) asynchronous first-in first-out (first-in, first-out) method. Input First Output (FIFO) method. All the above schemes in the related art require bidirectional interaction of control signals in the transmit clock domain and the receive clock domain, which is complex to implement, has high hardware cost, and high transmission delay.
本発明の実施形態は、関連技術におけるクロスクロックドメインの伝送の処理方式において、送信クロックドメインと受信クロックドメインとは双方向の相互作用が必要で、ハードウェアのコストが高く、伝送遅延が高いという問題を解決するために、マルチビットデータのクロスクロックドメインの処理方法と装置を提供する。 Embodiments of the present invention are characterized in that in the processing method of cross-clock domain transmission in the related art, the transmitting clock domain and the receiving clock domain require bidirectional interaction, the hardware cost is high, and the transmission delay is high. To solve the problem, a multi-bit data cross-clock domain processing method and apparatus are provided.
本発明の一つの実施形態は、マルチビットデータのクロスクロックドメインの処理方法を提供し、当該方法は、送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは異なるクロックドメインであることと、前記データが変化されたかどうかを検出することと、前記データが変化された場合、前記データを更新してから出力し、前記データが変化されていない場合、元の出力データを維持することとを含む。 One embodiment of the present invention provides a cross-clock domain processing method for multi-bit data, the method comprising: obtaining data outputted from a transmitting clock domain side to a receiving clock domain side; a clock domain and the receiving clock domain are different clock domains; detecting whether the data has changed; and if the data has changed, updating the data and then outputting the data; and maintaining the original output data if the output data has not been changed.
本発明の別の実施形態は、マルチビットデータのクロスクロックドメインの処理装置を提供し、当該装置は、送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは、異なるクロックドメインであるように設置される取得モジュールと、前記データが変化されたかどうかを検出するように設置される検出モジュールと、前記データが変化されたことを検出した場合、前記データを更新して出力し、前記データが変化されていないことを検出した場合は、元の出力データを維持するように設置される処理モジュールとを含む。 Another embodiment of the present invention provides an apparatus for cross-clock domain processing of multi-bit data, wherein the apparatus obtains data outputted from a transmitting clock domain side to a receiving clock domain side, and wherein the transmitting an acquisition module installed such that the clock domain and the receiving clock domain are different clock domains; a detection module installed to detect whether the data has been changed; and an acquisition module installed to detect whether the data has been changed; and a processing module installed to update and output the data when detecting that the data has not been changed, and maintain the original output data when detecting that the data has not been changed.
以下、本発明は、図面と実施形態を参照して説明する。 Hereinafter, the present invention will be explained with reference to the drawings and embodiments.
(実施例1)
本実施形態において、マルチビットデータのクロスクロックドメインの処理方法を提供する。図1は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの処理方法のフローチャートである。図1に示すように、当該プロセスは以下のステップを含み、
ステップS102:送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、送信クロックドメインと受信クロックドメインとは異なるクロックドメインである。
ステップS104:データが変化されたかどうかを検出する。
ステップS106:データが変化された場合、データを更新してから出力し、データが変化されていない場合、元の出力データを維持する。
(Example 1)
In this embodiment, a method for processing cross-clock domains of multi-bit data is provided. FIG. 1 is a flowchart of a multi-bit data cross-clock domain processing method according to an embodiment of the present invention. As shown in Figure 1, the process includes the following steps:
Step S102: Obtain data output from the transmission clock domain side to the reception clock domain side, where the transmission clock domain and the reception clock domain are different clock domains.
Step S104: Detect whether the data has changed.
Step S106: If the data has been changed, the data is updated and then output; if the data has not been changed, the original output data is maintained.
上記ステップS102~S106により、送信クロックドメイン側から受信クロックドメイン側に出力したデータを取得し、ここで、送信クロックドメインと受信クロックドメインとは異なるクロックドメインであり、そして、データが変化されたかどうかを検出し、データが変化された場合、データが更新されてから出力され、データが変化されていない場合、元の出力データを維持する。上記から分かるように、本発明の上記方法により、送信クロックドメインと受信クロックドメインは、比較的に独立している状態で、マルチビットデータののクロスクロックドメインのデータに対して処理され、関連技術におけるクロスクロックドメイン伝送の処理方式において、送信クロックドメインと受信クロックドメインが双方向の相互作用の必要性によって引き起こされる高いハードウェアのコストと高い伝送遅延の問題を解決し、より多くのアプリケーションシナリオに使用でき、かつ全体的な実現方式が効率的かつ簡潔である。 Acquire the data output from the transmitting clock domain side to the receiving clock domain side through steps S102 to S106 above, and check whether the transmitting clock domain and the receiving clock domain are different clock domains, and whether the data has been changed. If the data has been changed, the data will be updated and then output; if the data has not been changed, the original output data will be maintained. As can be seen from the above, according to the above method of the present invention, the transmit clock domain and the receive clock domain are relatively independent and are processed for data in the cross clock domain of multi-bit data, and the related art In the processing scheme of cross-clock domain transmission in easy to use, and the overall implementation is efficient and simple.
一つの実施形態において、上記ステップS102~ステップS106の方式ステップはすべて受信クロックドメイン側で実行され、すなわち、受信クロックドメイン側の装置又は設備で実行され、送信クロックドメイン側とは関係ない。例えば、本実施形態における選択できる実施形態において、本発明のステップS102に記載された送信クロックドメイン側から受信クロックドメイン側に出力したデータを取得する方式は、以下の方式で実現することができる。 In one embodiment, all method steps from step S102 to step S106 above are performed on the receiving clock domain side, ie, performed in a device or equipment on the receiving clock domain side, and are independent of the transmitting clock domain side. For example, in the selectable embodiment of this embodiment, the method of acquiring the data output from the transmitting clock domain side to the receiving clock domain side described in step S102 of the present invention can be realized by the following method.
ステップS102-11、送信クロックドメイン側のレジスタから受信クロックドメイン側に出力されたデータをを受信する。 Step S102-11: Receive data output from the register on the transmission clock domain side to the reception clock domain side.
ステップS102-12、受信クロックドメイン側のNレベルデータシンクロナイザによってデータに対して同期処理され、ここで、Nの値は、平均故障間隔によって決定される。 Step S102-12, the data is synchronized by an N-level data synchronizer on the receiving clock domain side, where the value of N is determined by the mean time between failures.
送信クロックドメイン側から出力されたデータを受信した後、受信クロックドメイン側のデータシンクロナイザによって同期処理を行い、すなわち、受信クロックドメイン側で当該ステップS102-11およびS102-12が実行されることが分かる。 It can be seen that after receiving the data output from the transmission clock domain side, a synchronization process is performed by the data synchronizer on the reception clock domain side, that is, steps S102-11 and S102-12 are executed on the reception clock domain side. .
ここで、当該シンクロナイザのレベル数Nは、平均故障間隔(Mean Time Between Failure、MTBF)の要件によって決定され、前記Nは正の整数である。
Here, the number of levels N of the synchronizer is determined by the requirement of mean time between failure (MTBF), and the N is a positive integer.
式(1)において、Sはデータシンクロナイザによってレジスタ用に予約された解決時間である。解決時間(resolution time)は、セットアップタイムまたはホールドタイムが満たされていないためにレジスタが準安定状態になった後、ランダムに0または1の安定値に復元する時間である。データシンクロナイザのレベル数NとSとの関係式は下記のように示す。
In equation (1), S is the resolution time reserved for the register by the data synchronizer. Resolution time is the time for a register to randomly restore to a stable value of 0 or 1 after it becomes metastable due to unmet setup or hold times. The relational expression between the number of levels N and S of the data synchronizer is shown below.
式(2)において、Tは受信クロックドメインのクロックサイクルを示す。例えば、N=2の場合、Sは一つの受信クロックのクロックサイクルに等しく、N=3の場合、Sは二つの受信クロックのクロックサイクルに等しい。τは製造工程に関連する定数である。Wは、レジスタのセットアップタイムとホールドタイムの合計であり、製造工程に関連する。FCは受信クロックの周波数である。FDはデータを送信する周波数である。要約すると、MTBFの要件に従って、Sの値を決定し、それによってデータシンクロナイザのレベル数Nを決定する。 In equation (2), T indicates the clock cycle of the receive clock domain. For example, if N=2, S is equal to one receive clock clock cycle, and if N=3, S is equal to two receive clock clock cycles. τ is a constant related to the manufacturing process. W is the sum of the register setup and hold times and is related to the manufacturing process. FC is the frequency of the reception clock. FD is the frequency for transmitting data. In summary, according to the requirements of MTBF, determine the value of S and thereby the number of levels N of the data synchronizer.
さらに、本実施形態の別の選択できる実施形態において、本発明のステップS104に記載されたデータが変化されたかどうかを検出する方式は、受信クロックドメイン側の変化検出器によって、現在のサイクルのデータが前のサイクルのデータと比較して変化されたかどうかを検出することで、受信されたデータが変化されたかどうかを判断する。受信クロックドメイン側の変化検出器によって検出を行うことがわかる。 Furthermore, in another alternative embodiment of the present invention, the method of detecting whether the data described in step S104 of the present invention has changed is to detect whether the data of the current cycle has been changed by a change detector on the receiving clock domain side. Determine whether the received data has changed by detecting whether the received data has changed compared to the previous cycle's data. It can be seen that the detection is performed by the change detector on the receiving clock domain side.
本発明の別の選択できる実施形態において、データが変化された場合、データを更新してから出力することは、データが変化された場合、受信クロックドメイン側のエッジ検出器より有効値を出力し、受信クロックドメイン側のデータセレクタをトリガーして、更新されたデータを出力することを含み、データが変化されていない場合、元の出力データを維持することは、データが変化されていない場合、受信クロックドメイン側のエッジ検出器より無効値を出力し、データセレクタをトリガーして、元の出力データを維持することを含む。受信クロックドメイン側のエッジ検出器によってデータの出力(更新された出力と元の出力データを維持することを含む)を行うことがわかる。 In another optional embodiment of the present invention, updating the data and then outputting it when the data is changed causes the edge detector on the receiving clock domain side to output a valid value when the data is changed. , including triggering the data selector on the receiving clock domain side to output the updated data, and maintaining the original output data if the data has not been changed; It includes outputting an invalid value from the edge detector on the receiving clock domain side, triggering the data selector, and maintaining the original output data. It can be seen that the edge detector on the receive clock domain side performs data output (including updated output and maintaining the original output data).
一つの実施形態において、本発明の方法ステップは、データが変化されたかどうかを検出した後、受信クロックドメイン側のMレベルバッファを介して、変化検出器より出力されたデータに対してバッファリングすることをさらに含み、ここで、M≧N-1、前記Mは正の整数である。 In one embodiment, the method steps of the present invention include buffering the data output from the change detector via an M-level buffer on the receiving clock domain side after detecting whether the data has changed. further comprising, where M≧N−1, and M is a positive integer.
以下、本発明の選択できる実施形態と併せて例を用いて説明する。 The invention will now be described by way of example in conjunction with alternative embodiments.
この選択できる実施形態は、デジタル集積回路におけるマルチビットデータのクロスクロックドメインの伝送のニーズを実現するために、新たなマルチビットデータのクロスクロックドメイン伝送のデジタル集積回路の設計方法と装置を提供する。 This optional embodiment provides a new multi-bit data cross-clock domain transmission digital integrated circuit design method and apparatus to realize the needs of multi-bit data cross-clock domain transmission in digital integrated circuits. .
図2は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの伝送装置の概略構造図である。図2に示すように、送信クロックドメイン(clock domain1)と受信クロックドメイン(clock domain2)とは異なるクロックドメインであり、クロックの間の関係は非同期である。そして、送信クロックドメインと受信クロックドメインとは、異なる電力ドメイン(power domain1とpower domain2)であり、または異なる電圧ドメイン(voltage domain1とvoltage domain2)である。 FIG. 2 is a schematic structural diagram of a multi-bit data cross-clock domain transmission apparatus according to an embodiment of the present invention. As shown in FIG. 2, the transmission clock domain (clock domain 1) and the reception clock domain (clock domain 2) are different clock domains, and the relationship between the clocks is asynchronous. The transmit clock domain and the receive clock domain are different power domains (power domain 1 and power domain 2) or different voltage domains (voltage domain 1 and voltage domain 2).
送信クロックドメインのレジスタから出力された送信データが、受信クロックドメインに入り、本発明に記載のマルチビットデータのクロスクロックドメインの伝送装置で受信され、正しく処理された後、受信クロックドメインの機能論理回路に提供されて使用される。 The transmission data output from the register of the transmission clock domain enters the reception clock domain, is received by the multi-bit data cross-clock domain transmission device according to the present invention, and after being processed correctly, the functional logic of the reception clock domain is Provided and used in the circuit.
ここで、マルチビットデータのクロスクロックドメインの装置には、データシンクロナイザ、変化検出器、バッファ、エッジ検出器、およびデータセレクタの5つの機能モジュールが含まれる。 Here, the multi-bit data cross-clock domain device includes five functional modules: a data synchronizer, a change detector, a buffer, an edge detector, and a data selector.
当該装置の全体的なワークフロー(すなわち、信号処理フロー)には、次のステップが含まれる。
ステップS11:受信されたデータは、データシンクロナイザによって同期処理される。
ステップS12:変化検出器を利用して、データが変化されたかどうかを検出する。
ステップS13:受信データが変化された場合、変化検出器によって変化表示信号を出力し、バッファによってバッファリングされ、マルチビットデータが安定されるまでを待つ。
ステップS14:変化表示信号はエッジ検出器を介して処理されることで、出力データを更新するようにデータセレクタに指示する。
ステップS15:受信データが変化されていない場合、データセレクタは元の出力を維持する。
The overall workflow (ie, signal processing flow) of the device includes the following steps.
Step S11: The received data is synchronously processed by a data synchronizer.
Step S12: Detect whether the data has changed using a change detector.
Step S13: If the received data is changed, the change detector outputs a change indicating signal, and the buffer waits until the multi-bit data is stabilized.
Step S14: The change indication signal is processed through the edge detector to instruct the data selector to update the output data.
Step S15: If the received data has not been changed, the data selector maintains the original output.
一つの実施形態において、上記のプロセス全体は、すべて受信クロックドメインで実行され、送信クロックドメインとは関係ない。 In one embodiment, the entire process described above is performed entirely in the receive clock domain and is independent of the transmit clock domain.
ここで、装置内の複数の機能モジュールの説明は次のとおりである。 Here, a description of the plurality of functional modules within the device is as follows.
データシンクロナイザは、送信データと同じビット幅の2レベルまたはマルチレベルのレジスタシンクロナイザであり、クロスクロックドメインが準安定状態になる可能性を減らすように設置される。当該シンクロナイザのレベル数Nは、平均故障間隔(Mean Time Between Failure 、MTBF)の要件によって決定される。
The data synchronizer is a two-level or multi-level register synchronizer with the same bit width as the transmitted data, and is installed to reduce the possibility of cross-clock domains becoming metastable. The number of levels N of the synchronizer is determined by the mean time between failure (MTBF) requirements.
ここで、Sはデータシンクロナイザによってレジスタ用に予約された解決時間である。解決時間(resolution time)は、セットアップタイムまたはホールドタイムが満たされていないためにレジスタが準安定状態になった後、ランダムに0または1の安定値に復元する時間である。データシンクロナイザのレベル数NとSとの関係式は下記のように示す。
where S is the resolution time reserved for the register by the data synchronizer. Resolution time is the time for a register to randomly restore to a stable value of 0 or 1 after it becomes metastable due to unmet setup or hold times. The relational expression between the number of levels N and S of the data synchronizer is shown below.
ここで、Tは受信クロックドメインのクロックサイクルを示す。例えば、N=2の場合、Sは一つの受信クロックのクロックサイクルに等しく、N=3の場合、Sは二つの受信クロックのクロックサイクルに等しい。τは製造工程に関連する定数である。Wは、レジスタのセットアップタイムとホールドタイムの合計であり、製造工程に関連する。FCは受信クロックの周波数である。FDはデータを送信する周波数である。 Here, T indicates the clock cycle of the receive clock domain. For example, if N=2, S is equal to one receive clock clock cycle, and if N=3, S is equal to two receive clock clock cycles. τ is a constant related to the manufacturing process. W is the sum of the register setup and hold times and is related to the manufacturing process. FC is the frequency of the reception clock. FD is the frequency for transmitting data.
したがって、MTBFの要件に従って、Sの値を決定することで、データシンクロナイザのレベル数Nを決定する。各送信データは、送信データを損失なく正しくサンプリングできるように変化する前に、少なくともN受信クロックドメインのクロックサイクルを維持する必要がある。 Therefore, by determining the value of S according to the requirements of MTBF, the number of levels N of the data synchronizer is determined. Each transmit data must last at least N receive clock domains' clock cycles before changing to allow the transmit data to be properly sampled without loss.
変化検出器は、同期されたデータが変化されたかどうかを検出するように設置される。現在のサイクルのデータが前のサイクルのデータと比較して変化された場合、変化検出器は有効値を出力する。現在のサイクルのデータが前のサイクルのデータと比較して変化されていない場合、変化検出器は無効値を出力する。 A change detector is installed to detect whether the synchronized data has changed. If the current cycle's data has changed compared to the previous cycle's data, the change detector outputs a valid value. If the current cycle's data has not changed compared to the previous cycle's data, the change detector outputs an invalid value.
バッファは、変化検出器の出力値に対してレジスタバッファ処理を実行して、マルチビットデータが安定されるまでを待機し、マルチビットデータの複数ビットの間の関連性を維持し、マルチビットデータの中間状態が誤ってサンプリングされないように設置される。当該バッファのバッファレベル数Mとデータシンクロナイザのレベル数Nとの関係は、M≧N-1である。 The buffer performs register buffer processing on the output value of the change detector to wait until the multi-bit data is stable, maintains the association between the multiple bits of the multi-bit data, and maintains the association between the multiple bits of the multi-bit data. is placed so that intermediate states of are not accidentally sampled. The relationship between the number M of buffer levels of the buffer and the number N of levels of the data synchronizer is M≧N−1.
選択できるように、データ伝送遅延(latency)は、latency=(N+M)・Tである。 For selection, the data transmission delay (latency) is latency=(N+M)·T.
ここで、latencyはデータが入力から出力までの間の時間間隔を表す。バッファのレベル数Mがデータシンクロナイザのレベル数N-1と等しい場合、MTBFの要件を満たすことを前提として、データが正しくサンプリングされ、伝送遅延が最適になることが保証できる。 Here, latency represents the time interval between data input and output. If the number of levels M of the buffer is equal to the number of levels N-1 of the data synchronizer, it can be guaranteed that the data is sampled correctly and the transmission delay is optimized, provided that the MTBF requirements are met.
エッジ検出器は、バッファの出力が変化されたかどうかを検出するように設置される。現在のサイクルの信号が前のサイクルの信号と比較して変化された場合、エッジ検出器は有効値を出力し、且つ一つのサンプリングクロックサイクルを維持する。現在のサイクルの信号が前のサイクルの信号と比較して変化されていない場合、エッジ検出器は無効値を出力する。 An edge detector is placed to detect whether the output of the buffer has changed. If the current cycle's signal is changed compared to the previous cycle's signal, the edge detector outputs a valid value and maintains one sampling clock cycle. If the current cycle's signal is unchanged compared to the previous cycle's signal, the edge detector outputs an invalid value.
データセレクタは、エッジ検出器の出力を選択信号として使用され、現在入力されたマルチビットデータと前の有効なマルチビットデータのうちの1つを選択して出力するように設置される。エッジ検出器から出力された選択信号が無効値である場合、前の有効なマルチビットデータを維持して出力する。選択信号が有効値である場合、現在で入力されたマルチビットデータを選択して更新して出力する。 The data selector uses the output of the edge detector as a selection signal and is installed to select and output one of the currently input multi-bit data and the previous valid multi-bit data. If the selection signal output from the edge detector is an invalid value, the previous valid multi-bit data is maintained and output. If the selection signal is a valid value, the currently input multi-bit data is selected, updated, and output.
この選択できる実施形態は、マルチビットデータのクロスクロックドメインのアプリケーションシナリオに応じて、データ伝送を一方向に制御され、伝送遅延が配置されることができ、高効率と巧妙さを目的として、且つ送信クロックがクロスクロックドメイン処理に参加する必要がなく、送信クロックドメインと受信クロックドメインの独立性を改善する。 This optional embodiment allows the data transmission to be unidirectionally controlled and the transmission delay to be arranged according to the multi-bit data cross-clock domain application scenario, and for the purpose of high efficiency and finesse, and There is no need for the transmit clock to participate in cross-clock domain processing, improving the independence of the transmit clock domain and the receive clock domain.
したがって、この選択できる実施形態は、一般的なマルチビットデータのクロスクロックドメインのアプリケーションシナリオに適しているだけでなく、送信クロックドメインと受信クロックドメインが比較的独立しているアプリケーションシナリオにもより適し、例えば、送信クロックドメインと受信クロックドメインは、異なる電力ドメインまたは異なる電圧ドメインに位置するアプリケーションシナリオにも適する。これに基づいて、送信クロックドメインに回路装置を設計する必要がなく、一方、データの送信を除いて、他の制御信号はクロックドメイン(電力ドメインまたは電圧ドメインを通過する)を通過しなく、高効率と簡潔を実現する。さらに、平均故障間隔(MTBF)の要件に応じて、データシンクロナイザのレベル数とバッファのレベル数が設置され、構成は柔軟である。 Therefore, this alternative embodiment is not only suitable for common multi-bit data cross-clock domain application scenarios, but also more suitable for application scenarios where the transmit and receive clock domains are relatively independent. , for example, is also suitable for application scenarios where the transmit clock domain and the receive clock domain are located in different power domains or different voltage domains. Based on this, there is no need to design circuit devices in the transmit clock domain, while other control signals, except for data transmission, do not pass through the clock domain (passing through the power domain or voltage domain) and are Achieve efficiency and simplicity. Furthermore, the number of data synchronizer levels and the number of buffer levels can be installed depending on the mean time between failures (MTBF) requirements, making the configuration flexible.
図3は、本発明の実施形態に係るマルチビットデータのクロスクロックドメイン伝送の概略図である。図3に示すように、この実施形態は、クロックの立ち上がりエッジでデータをサンプルリングし、5つのモジュールは、それぞれに、データシンクロナイザ(20)、変化検出器(21)、バッファ(22)、立ち上がりエッジ検出器(23)、およびデータセレクタ(24)である。 FIG. 3 is a schematic diagram of cross-clock domain transmission of multi-bit data according to an embodiment of the invention. As shown in FIG. 3, this embodiment samples data on the rising edge of the clock, and the five modules are respectively a data synchronizer (20), a change detector (21), a buffer (22), and a rising edge of the clock. They are an edge detector (23) and a data selector (24).
データシンクロナイザ(20)は、送信データと同じビット幅の2レベルまたはマルチレベルのレジスタシンクロナイザであり、送信クロックドメインから送信されたデータdata0を受信して同期するように設置されることで、クロスクロックドメインが準安定状態になる可能性を低減する。一つの実施形態において、2レベルのデータシンクロナイザは、MTBFの要件を満たすことができる。この例において、データシンクロナイザはDタイプフリップフロップ(D type flip-flop、DFF)で構成され、レベル数はN=2であり、データビット幅は3bitである。 The data synchronizer (20) is a two-level or multi-level register synchronizer with the same bit width as the transmission data, and is installed to receive and synchronize the data data0 transmitted from the transmission clock domain, so that the cross clock Reduce the chance of the domain becoming metastable. In one embodiment, a two-level data synchronizer can meet the requirements of MTBF. In this example, the data synchronizer is composed of a D type flip-flop (DFF), the number of levels is N=2, and the data bit width is 3 bits.
変化検出器(21)の機能は、同期されたデータが変化されたかどうかを検出することであり、出力信号は、変化検出器(21)、バッファ(22)、および立ち上がりエッジ検出器(23)によって処理された後、データセレクタ(24)を制御するように設置される。現在のサイクルのデータdata2が前のサイクルのデータdata3と比較すると、1つまたは複数のビットが変化された場合、変化検出器(21)はsignal1を1’b1として出力する。現在のサイクルのデータdata2が前のサイクルのデータdata3と比較すると、変化されていない場合、変化検出器(21)はsignal1を1’b0として出力する。この例において、変化検出器(21)は、Dタイプフリップフロップと排他的ORゲート(XOR)で構成される。 The function of the change detector (21) is to detect whether the synchronized data has changed, and the output signal is connected to the change detector (21), the buffer (22), and the rising edge detector (23). is arranged to control the data selector (24). When the data data2 of the current cycle is compared with the data data3 of the previous cycle, if one or more bits are changed, the change detector (21) outputs signal1 as 1'b1. When the data data2 of the current cycle is compared with the data data3 of the previous cycle and is not changed, the change detector (21) outputs signal1 as 1'b0. In this example, the change detector (21) is composed of a D-type flip-flop and an exclusive OR gate (XOR).
バッファ(22)の機能は、変化検出器(21)の出力signal1に対してバッファリングすることであり、data2が安定した後、サンプリングが正しく選択され、中間状態データを取ることが回避される。この実施形態において、バッファ(22)はDタイプフリップフロップで構成され、バッファのレベル数Mはデータシンクロナイザ(20)のレベル数Nと同じ、すなわち、M=2である。signal2は第1レベルのバッファ出力信号であり、signa3は第2レベルのバッファ出力信号である。 The function of the buffer (22) is to buffer the output signal1 of the change detector (21), and after data2 is stabilized, the sampling is selected correctly and avoiding taking intermediate state data. In this embodiment, the buffer (22) is constituted by a D-type flip-flop, and the number of levels M of the buffer is the same as the number of levels N of the data synchronizer (20), ie, M=2. signal2 is a first level buffer output signal, and signa3 is a second level buffer output signal.
立ち上がりエッジ検出器(23)の機能は、バッファ(22)の出力signal3が立ち上がりエッジで変化されたどうかを検出することである。現在のサイクルの信号signal3が前のサイクルの信号signal4と比較して、1’b0から1’b1に変化した場合、立ち上がりエッジ検出器はsignal5を1’b1として出力し、且つ一つのサンプリングのクロックサイクルを維持し、データセレクタが出力データをストローブして更新することに用いられる。さらに、エッジ検出器はsignal5を1’b0として出力する。この実施形態において、立ち上がりエッジ検出器(23)は、Dタイプフリップフロップ、NOTゲート、およびANDゲート(AND)などから構成される。 The function of the rising edge detector (23) is to detect whether the output signal3 of the buffer (22) has changed with a rising edge. If the signal signal3 of the current cycle changes from 1'b0 to 1'b1 compared with the signal signal4 of the previous cycle, the rising edge detector outputs signal5 as 1'b1, and the clock of one sampling The data selector is used to strobe and update the output data. Further, the edge detector outputs signal5 as 1'b0. In this embodiment, the rising edge detector (23) is composed of a D-type flip-flop, a NOT gate, an AND gate (AND), etc.
データセレクタ(24)の機能は、現在入力されたマルチビットデータdata2と前の有効なマルチビットデータdata4とのうち、一つを選択して出力することである。選択信号signal5が1’b0である場合、前の有効なデータdata4を出力することを維持する。選択信号signal5が1’b1である場合、現在入力されたデータdata2を選択して更新して出力する。この実施形態において、データセレクタ(24)は、Dタイプフリップフロップおよびマルチプレクサ(multiplexer、MUX)から構成される。 The function of the data selector (24) is to select and output one of the currently input multi-bit data data2 and the previous valid multi-bit data data4. When the selection signal signal5 is 1'b0, the previous valid data data4 continues to be output. When the selection signal signal5 is 1'b1, the currently input data data2 is selected, updated, and output. In this embodiment, the data selector (24) is composed of a D-type flip-flop and a multiplexer (MUX).
一つの実施形態において、入力信号は、送信クロックドメインより送信されたデータと受信クロックドメインのクロックであり、出力信号は、受信クロックドメインより受信されたデータであり、全体の伝送遅延は、N+M=4つの受信クロックのクロックサイクルである。 In one embodiment, the input signals are the data transmitted from the transmit clock domain and the clock of the receive clock domain, the output signals are the data received from the receive clock domain, and the total transmission delay is N+M= The clock cycles of the four receive clocks.
図4は、本発明の実施形態に係る複数のキーポイントでの信号波形の概略図であり、図4の信号名は、図3に示された複数の信号に対応する。図4に示すように、2番目の瞬間と3番目の瞬間の間の一つの瞬間で、送信クロックドメインによって送信されたデータdata0は、3’b000から3’b111に変化した。本発明の実施形態は、送信クロック情報に注意を払う必要がなく、送信クロックドメインから比較的独立しているため、送信クロックは図3に示されていない。Data0は、受信クロックドメインのクロックclockによって複数の立ち上がりエッジでサンプリングされる。データシンクロナイザは、data0に対して2レベルの同期を実行する。第1レベルの出力データはdata1で、第2レベルの出力データはdata2である。 FIG. 4 is a schematic diagram of signal waveforms at multiple key points according to an embodiment of the present invention, and the signal names in FIG. 4 correspond to the multiple signals shown in FIG. 3. As shown in FIG. 4, at one instant between the second and third instants, the data data0 transmitted by the transmit clock domain changed from 3'b000 to 3'b111. The transmit clock is not shown in FIG. 3 because embodiments of the invention do not require attention to transmit clock information and are relatively independent from the transmit clock domain. Data0 is sampled on multiple rising edges by the clock in the receive clock domain. The data synchronizer performs two levels of synchronization on data0. The first level output data is data1, and the second level output data is data2.
3番目の瞬間で、準安定状態のため、data1の各ビットは0または1になる可能性があるため、data1全体は3’b000から3’b111までの任意の中間状態になる可能性がある。図4において、中間状態3’b101のみが例として説明する。 At the third instant, due to the metastable state, each bit of data1 can be 0 or 1, so the entire data1 can be in any intermediate state from 3'b000 to 3'b111 . In FIG. 4, only intermediate state 3'b101 will be explained as an example.
4番目の瞬間で、data1はMTBF時間間隔内で高い確率で3’b111として正しくサンプリングされる。同時に、変化検出器はdata2とdata3の間の変化を検出し、出力信号signal1は1’b0から1’b1に変化する。 At the fourth instant, data1 is sampled correctly as 3'b111 with high probability within the MTBF time interval. At the same time, the change detector detects a change between data2 and data3, and the output signal signal1 changes from 1'b0 to 1'b1.
このとき、data2は中間状態(3’b101)であるため、誤ってサンプリングされてdata4に出力することを回避する必要がある。したがって、signal1は、バッファの2レベルのバッファリングを介して、表示信号signal3を出力する。data4のデータ更新はsignal3によって制御される。 At this time, since data2 is in an intermediate state (3'b101), it is necessary to avoid being erroneously sampled and output to data4. Therefore, signal1 outputs the display signal signal3 through two levels of buffering. Data update of data4 is controlled by signal3.
5番目の瞬間は信号バッファリングの瞬間であり、data2が安定状態に戻るまでを待ち、複数bitのデータ相関を維持する。 The fifth moment is a signal buffering moment, waiting until data2 returns to a stable state and maintaining multi-bit data correlation.
6番目の瞬間で、立ち上がりエッジ検出器がsignal3の立ち上がりエッジを検出した後、出力信号signal5は1’b0から1’b1に変化し、且つ1つのクロックサイクルを維持する。同時に、signal5がデータセレクタをストローブし、data4が更新され、data2を出力し、すなわち、クロスクロックドメイン後のマルチビットデータを出力し、全体の伝送遅延は、4つの受信クロックのクロックサイクルである。 At the sixth instant, after the rising edge detector detects the rising edge of signal3, the output signal signal5 changes from 1'b0 to 1'b1 and maintains one clock cycle. At the same time, signal5 strobes the data selector, data4 is updated, and outputs data2, ie, outputs multi-bit data after cross-clock domain, and the total transmission delay is four receive clock clock cycles.
上記の実施形態から分かるように、本発明は、マルチビットデータのクロスクロックドメインのアプリケーションシナリオに応じて、データ伝送を一方向に制御され、伝送遅延が配置されることができ、高効率と巧妙さを目的として、且つ送信クロックがクロスクロックドメイン処理に参加する必要がなく、送信クロックドメインと受信クロックドメインの独立性を改善する。ただし、本発明は、一般的なマルチビットデータのクロスクロックドメインのアプリケーションシナリオに適しているだけでなく、送信クロックドメインと受信クロックドメインが比較的独立しているアプリケーションシナリオにもより適し、例えば、送信クロックドメインと受信クロックドメインは、異なる電力ドメインまたは異なる電圧ドメインに位置するアプリケーションシナリオにも適する。これに基づいて、送信クロックドメインに回路装置を設計する必要がなく、一方、データの送信を除いて、他の制御信号はクロックドメイン(電力ドメインまたは電圧ドメインを通過する)を通過しなく、高効率と簡潔を実現する。さらに、平均故障間隔(MTBF)の要件に応じて、データシンクロナイザのレベル数とバッファのレベル数が設定され、構成は柔軟である。 As can be seen from the above embodiments, the present invention allows data transmission to be unidirectionally controlled and transmission delay to be arranged according to the multi-bit data cross-clock domain application scenario, with high efficiency and clever In order to improve the independence of the transmit clock domain and the receive clock domain, the transmit clock does not need to participate in cross-clock domain processing. However, the present invention is not only suitable for the general multi-bit data cross-clock domain application scenario, but also more suitable for application scenarios where the transmit clock domain and the receive clock domain are relatively independent, e.g. The transmit clock domain and the receive clock domain are also suitable for application scenarios where they are located in different power domains or different voltage domains. Based on this, there is no need to design circuit devices in the transmit clock domain, while other control signals, except for data transmission, do not pass through the clock domain (passing through the power domain or voltage domain) and are Achieve efficiency and simplicity. Furthermore, the number of data synchronizer levels and the number of buffer levels are set depending on the mean time between failures (MTBF) requirements, making the configuration flexible.
(実施例2)
この実施形態において、マルチビットデータのクロスクロックドメインの処理装置をさらに提供し、当該装置は、上記の実施例および選択できる実施形態を実現するために用いられる。以下で使用されるように、「モジュール」という用語は、所定の機能を備えたソフトウェアおよび/またはハードウェアの組み合わせを実現することができる。以下の実施形態で説明される装置はソフトウェアによって実現されるが、ハードウェア、またはソフトウェアとハードウェアの組み合わせによって実現することも可能である。
(Example 2)
In this embodiment, a cross-clock domain processing device for multi-bit data is further provided, which device is used to implement the above-described examples and optional embodiments. As used below, the term "module" can implement a combination of software and/or hardware with a given functionality. Although the apparatus described in the following embodiments is realized by software, it can also be realized by hardware or a combination of software and hardware.
図5は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの処理装置の構造ブロック図である。図5に示すように、当該装置は、送信クロックドメイン側から受信クロックドメイン側に出力するデータを取得し、ここで、送信クロックドメインと受信クロックドメインは、異なるクロックドメインであるように設置される取得モジュール52と、取得モジュール52と結合され、データが変化されたかどうかを検出するように設置される検出モジュール54と、検出モジュール54と結合され、データが変化されたことを検出した場合、データを更新して出力し、データが変化されていないことを検出した場合は、元の出力データを維持するように設置される処理モジュール56とを含む。 FIG. 5 is a structural block diagram of a multi-bit data cross-clock domain processing apparatus according to an embodiment of the present invention. As shown in FIG. 5, the device obtains data to be output from the transmitting clock domain side to the receiving clock domain side, and here, the transmitting clock domain and the receiving clock domain are installed to be different clock domains. an acquisition module 52; a detection module 54 coupled to the acquisition module 52 and installed to detect whether the data has been changed; and a processing module 56 installed to update and output the data and maintain the original output data if it is detected that the data has not been changed.
選択できるように、本発明における取得モジュール52は、送信クロックドメイン側のレジスタから受信クロックドメイン側に出力されたデータを受信し、かつデータに対して同期処理を実行するように設置されたデータシンクロナイザを含み、ここで、データシンクロナイザはNレベルのシンクロナイザであり、Nの値は平均故障間隔によって決定され、前記Nは正の整数である。 As can be selected, the acquisition module 52 in the present invention is a data synchronizer installed to receive data output from a register on the transmitting clock domain side to the receiving clock domain side and to perform synchronization processing on the data. , where the data synchronizer is an N-level synchronizer, the value of N is determined by the mean time between failures, and the N is a positive integer.
選択できるように、本発明における検出モジュール54は、受信されたデータが変化されたかどうかを確定するために、現在のサイクルのデータが前のサイクルのデータと比較して変化されたかどうかを検出するように設置された変化検出器を含む。 Optionally, the detection module 54 in the present invention detects whether the data of the current cycle has been changed compared to the data of the previous cycle to determine whether the received data has been changed. including change detectors installed in such a manner.
選択できるように、本発明における処理モジュール56は、データが変化された場合、有効値を出力し、受信クロックドメイン側のデータセレクタをトリガーして更新されたデータを出力し、データが変化されていない場合、無効値を出力し、データセレクタがトリガーして元の出力データを維持するように設置されるエッジ検出器を含む。 To enable selection, the processing module 56 of the present invention outputs a valid value if the data has changed, triggers the data selector on the receiving clock domain side to output the updated data, and outputs the updated data if the data has changed. If not, it outputs an invalid value, and includes an edge detector positioned so that the data selector is triggered to maintain the original output data.
選択できるように、本発明における装置は、データが変化されたかどうかを検出した後、変化検出器によって出力されたデータをバッファリングするように設置されたバッファを含み、ここで、バッファはMレベルのバッファであり、M≧N-1であり、前記Mは正の整数である。 Optionally, the apparatus in the present invention includes a buffer arranged to buffer the data output by the change detector after detecting whether the data has changed, where the buffer has an M level. , and M≧N−1, where M is a positive integer.
一つの実施形態において、上記の複数のモジュールは、ソフトウェアまたはハードウェアによって実現できる。ハードウェアの場合、以下の方法で実現でき、上記のモジュールは、すべて同じプロセッサに配置され、または、上記の複数のモジュールは任意の組み合わせの形式で、それぞれに異なるプロセッサに配置される。 In one embodiment, the modules described above can be implemented by software or hardware. In the case of hardware, it can be implemented in the following way, where all the above modules are placed on the same processor, or the above modules are placed on different processors in any combination.
上記の本発明の複数のモジュールまたは複数のステップは、普通のコンピューティングデバイスによって実現でき、これらは、単一のコンピューティングデバイスに集中することもでき、または、複数のコンピューティングデバイスで構成されるネットワークに分散させることもできる。選択できるように、これらは、コンピューティングデバイスによって実行可能なプログラムコードによって実現でき、これによって、これらをストレージデバイスに格納され、コンピューティングデバイスによって実行され、場合によっては、ここに示した順序と異なる順序で、示された又は記載されたステップを実行し、又は、これらを複数の集積回路モジュールにそれぞれに作成し、又は、これらにおける複数のモジュールまたはステップを単一の集積回路に作成することで実現する。このように、本発明は任意の特定のハードウェアとソフトウェアの組み合わせに限定されない。
The modules or steps of the invention described above can be realized by a common computing device, they can be concentrated on a single computing device, or they can be composed of multiple computing devices. It can also be distributed over a network. As you may choose, these may be realized by program code executable by a computing device, thereby causing them to be stored on a storage device and executed by the computing device, possibly in a different order than shown herein. By performing the steps shown or described in order, or by creating each of them into a plurality of integrated circuit modules, or by creating a plurality of modules or steps therein into a single integrated circuit. Realize. Thus, the invention is not limited to any particular hardware and software combination.
Claims (6)
送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは異なるクロックドメインであることと、
前記データが変化されたかどうかを検出することと、
前記データが変化された場合、前記データを更新してから出力し、前記データが変化されていない場合、元の出力データを維持することと、を含み、
前記送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得することは、
前記送信クロックドメイン側のレジスタから前記受信クロックドメイン側に出力されたデータを受信することと、
前記受信クロックドメイン側のNレベルデータシンクロナイザによって前記データに対して同期処理され、ここで、前記Nの値は、平均故障間隔によって決定され、前記Nは正の整数で、N≧2であることと、を含み、
前記データが変化されたかどうかを検出することは、
前記受信クロックドメイン側の変化検出器によって、前記Nレベルデータシンクロナイザによって同期処理された現在のサイクルのデータが前記現在のサイクルの直前のサイクルのデータと比較して、前記データが変化されたかどうかを検出することで、受信されたデータが変化されたかどうかを判断することを含む、
ことを特徴とするマルチビットデータのクロスクロックドメインの処理方法。 A method for processing cross-clock domains of multi-bit data, the method comprising:
Obtaining data output from a transmitting clock domain side to a receiving clock domain side, where the transmitting clock domain and the receiving clock domain are different clock domains;
detecting whether the data has been changed;
If the data has been changed, updating and outputting the data; if the data has not been changed , maintaining the original output data;
Obtaining the data output from the transmitting clock domain side to the receiving clock domain side includes:
receiving data output from a register on the transmitting clock domain side to the receiving clock domain side;
The data is synchronized by an N-level data synchronizer on the receiving clock domain side, where the value of N is determined by a mean time between failures, and N is a positive integer, and N≧2. and,
Detecting whether the data has been changed includes:
The change detector on the reception clock domain side compares the data of the current cycle synchronously processed by the N-level data synchronizer with the data of the cycle immediately before the current cycle to determine whether the data has changed. detecting and determining whether the received data has been altered;
A multi-bit data cross-clock domain processing method characterized by:
前記データが変化されていないと前記変化検出器により検出された場合、元の出力データを維持することは、前記データが変化されていない場合、前記受信クロックドメイン側のエッジ検出器より無効値を出力することで、前記データセレクタをトリガーして、元の出力データを維持することを含む、
ことを特徴とする請求項1に記載の方法。 When the change detector detects that the data has changed, updating the data and then outputting it means that when the data has changed, an edge detector on the receiving clock domain side detects a valid value. outputting the updated data, triggering a data selector on the receiving clock domain side to output the updated data;
If the change detector detects that the data has not changed, maintaining the original output data means that if the data has not changed, an edge detector on the receiving clock domain side may generate an invalid value. outputting , triggering the data selector to maintain the original output data;
The method according to claim 1 , characterized in that:
前記受信クロックドメイン側のMレベルバッファを介して、前記変化検出器より出力されたデータに対してバッファリングし、前記データセレクタに出力することをさらに含み、ここで、M≧N-1、前記Mは正の整数であることを特徴とする請求項2に記載の方法。 After detecting whether the data has been changed, the method:
The method further includes buffering the data output from the change detector via an M-level buffer on the reception clock domain side and outputting the data to the data selector , where M≧N-1, the 3. A method according to claim 2 , characterized in that M is a positive integer.
送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは、異なるクロックドメインであるように設置される取得モジュールと、
前記データが変化されたかどうかを検出するように設置される検出モジュールと、
前記データが変化されたことを検出した場合、前記データを更新して出力し、前記データが変化されていないことを検出した場合は、元の出力データを維持するように設置される処理モジュールと、を含み、
前記取得モジュールは、前記送信クロックドメイン側のレジスタから前記受信クロックドメイン側に出力されたデータを受信し、かつ前記データに対して同期処理を実行するように設置されたデータシンクロナイザを含み、ここで、前記データシンクロナイザはNレベルのシンクロナイザであり、前記Nの値は平均故障間隔によって決定され、前記Nは正の整数で、N≧2あり、
前記検出モジュールは、前記Nレベルのデータシンクロナイザの出力側に接続され、受信されたデータが変化されたかどうかを確定するために、同期処理された現在のサイクルのデータが前記現在のサイクルの直前のサイクルのデータと比較して、前記データが変化されたかどうかを検出するように設置された変化検出器を含む、
ことを特徴するマルチビットデータのクロスクロックドメインの処理装置。 A multi-bit data cross-clock domain processing device,
an acquisition module configured to acquire data output from a transmitting clock domain side to a receiving clock domain side, where the transmitting clock domain and the receiving clock domain are installed in different clock domains;
a detection module installed to detect whether the data has been changed;
a processing module installed to update and output the data when detecting that the data has been changed, and maintain the original output data when detecting that the data has not changed; , including ;
The acquisition module includes a data synchronizer installed to receive data output from a register on the transmission clock domain side to the reception clock domain side and perform a synchronization process on the data, , the data synchronizer is an N-level synchronizer, the value of the N is determined by the mean time between failures, the N is a positive integer, and N≧2;
The detection module is connected to the output side of the N-level data synchronizer, and the detection module is connected to the output side of the N-level data synchronizer so that the data of the synchronously processed current cycle is detected immediately before the current cycle in order to determine whether the received data has changed. a change detector arranged to detect whether said data has been changed by comparing it with the data of the cycle;
A multi-bit data cross-clock domain processing device characterized by:
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910578841.3 | 2019-06-28 | ||
| CN201910578841.3A CN112148655B (en) | 2019-06-28 | 2019-06-28 | Multi-bit data clock domain crossing processing method and device |
| PCT/CN2020/088019 WO2020259080A1 (en) | 2019-06-28 | 2020-04-30 | Multi-digit data cross-clock domain processing method and apparatus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022539485A JP2022539485A (en) | 2022-09-12 |
| JP7360472B2 true JP7360472B2 (en) | 2023-10-12 |
Family
ID=73892042
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021558008A Active JP7360472B2 (en) | 2019-06-28 | 2020-04-30 | Multi-bit data cross-clock domain processing method and device |
Country Status (4)
| Country | Link |
|---|---|
| JP (1) | JP7360472B2 (en) |
| KR (1) | KR102835196B1 (en) |
| CN (1) | CN112148655B (en) |
| WO (1) | WO2020259080A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112953475B (en) * | 2021-02-04 | 2022-08-02 | 中国电子科技集团公司第五十八研究所 | Multi-bit data clock domain crossing synchronization circuit |
| JP7708444B2 (en) * | 2023-03-02 | 2025-07-15 | Necプラットフォームズ株式会社 | Metastable avoidance synchronization circuit |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060198479A1 (en) | 2005-03-01 | 2006-09-07 | Hung-Yuan Hsu | Data synchronizer system |
| US20090304134A1 (en) | 2008-06-06 | 2009-12-10 | Freescale Semiconductor, Inc. | Device and method of synchronizing signals |
| US20120033772A1 (en) | 2010-08-08 | 2012-02-09 | Freescale Semiconductor, Inc | Synchroniser circuit and method |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6519301B1 (en) * | 1999-09-28 | 2003-02-11 | Anthony S. Rowell | Circuits, systems, and methods for passing request information across differing clock domains |
| US7250797B1 (en) * | 2001-03-30 | 2007-07-31 | Agere Systems Inc. | Event edge synchronization system and method of operation thereof |
| US6900665B2 (en) * | 2003-06-10 | 2005-05-31 | James Ma | Transfer of digital data across asynchronous clock domains |
| CN103576738A (en) * | 2012-08-01 | 2014-02-12 | 中兴通讯股份有限公司 | Method and device for clock domain crossing processing of asynchronous signals |
| CN102929808B (en) * | 2012-11-02 | 2015-09-16 | 长沙景嘉微电子股份有限公司 | A kind of clock-domain crossing data transmission circuit of high reliability |
| CN105610532B (en) * | 2014-11-11 | 2019-05-24 | 中兴通讯股份有限公司 | Signal transmission and processing method, device and equipment |
| US9722767B2 (en) * | 2015-06-25 | 2017-08-01 | Microsoft Technology Licensing, Llc | Clock domain bridge static timing analysis |
| CN106897238B (en) * | 2015-12-18 | 2020-05-26 | 浙江大华技术股份有限公司 | Data processing device and method |
| CN105808476B (en) * | 2016-04-12 | 2019-01-04 | 珠海格力电器股份有限公司 | Cross-clock-domain data transmission method and device |
| CN107577623A (en) * | 2017-07-19 | 2018-01-12 | 成都华微电子科技有限公司 | Cross clock domain asynchronous fifo and data processing method |
| CN109408427B (en) * | 2017-08-18 | 2021-01-22 | 龙芯中科技术股份有限公司 | Cross-clock domain data processing method and system |
-
2019
- 2019-06-28 CN CN201910578841.3A patent/CN112148655B/en active Active
-
2020
- 2020-04-30 JP JP2021558008A patent/JP7360472B2/en active Active
- 2020-04-30 WO PCT/CN2020/088019 patent/WO2020259080A1/en not_active Ceased
- 2020-04-30 KR KR1020217035272A patent/KR102835196B1/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060198479A1 (en) | 2005-03-01 | 2006-09-07 | Hung-Yuan Hsu | Data synchronizer system |
| US20090304134A1 (en) | 2008-06-06 | 2009-12-10 | Freescale Semiconductor, Inc. | Device and method of synchronizing signals |
| US20120033772A1 (en) | 2010-08-08 | 2012-02-09 | Freescale Semiconductor, Inc | Synchroniser circuit and method |
Non-Patent Citations (2)
| Title |
|---|
| R. Ginosar,Fourteen Ways to Fool Your Synchronizer,Ninth International Symposium on Asynchronous Circuits and Systems, 2003. Proceedings.,2003年05月21日,pp.1-8 |
| Salomon Beer et al.,The Devolution of Synchronizers,2010 IEEE Symposium on Asynchronous Circuits and Systems,2010年06月03日,pp.94-103 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020259080A1 (en) | 2020-12-30 |
| CN112148655A (en) | 2020-12-29 |
| CN112148655B (en) | 2023-11-17 |
| KR102835196B1 (en) | 2025-07-17 |
| JP2022539485A (en) | 2022-09-12 |
| KR20210141739A (en) | 2021-11-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8760204B2 (en) | Variation-tolerant periodic synchronizer | |
| KR101174234B1 (en) | Serial data receiver circuit apparatus and serial data receiving method | |
| US20140149780A1 (en) | Speculative periodic synchronizer | |
| US5539739A (en) | Asynchronous interface between parallel processor nodes | |
| JP7360472B2 (en) | Multi-bit data cross-clock domain processing method and device | |
| EP3739463B1 (en) | Circuit for asynchronous data transfer | |
| US9164134B2 (en) | High-resolution phase detector | |
| US6516420B1 (en) | Data synchronizer using a parallel handshaking pipeline wherein validity indicators generate and send acknowledgement signals to a different clock domain | |
| US8631265B2 (en) | Synchronization circuit that facilitates multiple parallel reads and writes | |
| US8866511B2 (en) | Matrix phase detector | |
| CN115202991B (en) | A real-time self-monitoring system and method of OpenLDI interface | |
| CN102754407B (en) | Providing a feedback loop in a low latency serial interconnect architecture and communication system | |
| US12190077B2 (en) | Method and apparatus for eliminating inter-link skew in high-speed serial data communications | |
| CN116318601A (en) | Frame alignment recovery for high-speed signaling interconnects | |
| JP2008172657A (en) | Receiver | |
| WO2025222750A1 (en) | Oscilloscope | |
| US20150016579A1 (en) | Clock and data recovery device, sampler and sampling method thereof | |
| KR100890388B1 (en) | A clock data recovery method, a semiconductor memory device having a clock data recovery circuit and a system having the same | |
| US20070033313A1 (en) | Data bus mechanism for dynamic source synchronized sampling adjust | |
| US7116740B1 (en) | Method and system for providing clock signals | |
| US12549419B2 (en) | Methods and circuits for controlling multicycle path in serializer interface | |
| Abasaheb et al. | Design of mesochronous dual clock fifo buffer with modified synchronizer circuit | |
| WO2001079987A1 (en) | Two clock domain pulse to pulse synchronizer | |
| CN119363103A (en) | Digital frequency and phase detector system, high-speed serial data sampling method and electronic equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211012 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20220928 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20221207 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230117 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230417 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230530 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230905 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230929 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7360472 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |