JP2012159960A - Semiconductor design device and semiconductor device - Google Patents

Semiconductor design device and semiconductor device Download PDF

Info

Publication number
JP2012159960A
JP2012159960A JP2011018278A JP2011018278A JP2012159960A JP 2012159960 A JP2012159960 A JP 2012159960A JP 2011018278 A JP2011018278 A JP 2011018278A JP 2011018278 A JP2011018278 A JP 2011018278A JP 2012159960 A JP2012159960 A JP 2012159960A
Authority
JP
Japan
Prior art keywords
clock
flip
flop
input
metastable
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.)
Withdrawn
Application number
JP2011018278A
Other languages
Japanese (ja)
Inventor
Yoshinori Kurimoto
昌憲 栗本
Yasuhiko Takahashi
保彦 高橋
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011018278A priority Critical patent/JP2012159960A/en
Publication of JP2012159960A publication Critical patent/JP2012159960A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a semiconductor design device capable of easily designing a semiconductor device including an asynchronous data path by a simple way, and the semiconductor device including the asynchronous data path.SOLUTION: A flip-flop (FF) insertion part 9 inserts a flip-flop (FF1) into an asynchronous data path. When metastable convergence time Tr is shorter than latency Tcl of a clock tree (CT) in a flip-flop (FF2) on a receiving side of the asynchronous data path, a delay setting part 8 sets a first clock, which is output from a node having the CT, to an input clock of the FF1, and sets a second clock, which is output from another node of the CT and is delayed by Tr from the first clock, to an input clock of the FF2. When the Tr is equal to or greater than the Tcl, the delay setting part 8 sets the first clock to the input clock of the FF1, and sets the second clock after delaying the first clock by the Tr with a delay circuit to the input clock of the FF2.

Description

本発明は、半導体設計装置および半導体装置に関する。   The present invention relates to a semiconductor design apparatus and a semiconductor device.

非同期パス設計は難易度が高く、かつ、チップばらつきやチップの外部環境が大きく影響するため、十分なスクリーニングができず不良品がフィールドに流出してしまうことがある。   Asynchronous path design is difficult, and chip variation and the external environment of the chip are greatly affected, so that sufficient screening cannot be performed and defective products may flow out to the field.

そのための対策として、たとえば、特許文献1(特開2002−215568号公報)には、データの転送基準となるデータ転送基準信号と、該データ転送基準信号と対になって転送される転送データとで行なう非同期データ転送方法において、送信側においては、前記転送データの確定基準タイミングを、データ転送基準信号のアサート・タイミングのクロック・エッジとし、受信側においては、最初に転送基準信号のアサートを検出したクロック・エッジでサンプリングした転送データを使用することを特徴とする非同期データ転送方法が開示されている。   For example, Japanese Patent Application Laid-Open No. 2002-215568 discloses a data transfer reference signal serving as a data transfer reference and transfer data transferred in pairs with the data transfer reference signal. In the asynchronous data transfer method performed in step 1, the transmission side uses the transfer data fixed reference timing as the clock edge of the data transfer reference signal assert timing, and the reception side first detects the transfer reference signal assertion. An asynchronous data transfer method using transfer data sampled at a clock edge is disclosed.

特開2002−215568号公報JP 2002-215568 A

しかしながら、特許文献1(特開2002−215568号公報)に記載される方式は、回路のオーバーヘッドによるコストが大きい上、同期設計をベースとしたプラットフォーム設計に乗らず、設計者のスキル不足によって不良品が流出したり、設計TAT(Turn Around Time)が長期化するなどの問題がある。   However, the method described in Patent Document 1 (Japanese Patent Application Laid-Open No. 2002-215568) is costly due to circuit overhead and does not ride on platform design based on synchronous design. Spills out and the design TAT (Turn Around Time) is prolonged.

それゆえに、本発明の目的は、簡易かつ容易に、非同期パスを含む半導体装置を設計することができる半導体設計装置、および、非同期パスを含む半導体装置を提供することである。   SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a semiconductor design device capable of designing a semiconductor device including an asynchronous path and a semiconductor device including an asynchronous path easily and easily.

本発明の一実施形態の半導体設計装置は、半導体装置の設計データを記憶する記憶部と、設計データに基づいて、半導体装置に含まれる非同期パスを検出する検出部と、検出した非同期パスに第1のフリップフロップを挿入する挿入部と、挿入したフリップフロップにおいてメタステーブル状態が開始してから終了するまでのメタステーブル収束時間がクロックツリーのレイテンシよりも短いときには、クロックツリーのあるノードから出力される第1のクロックを第1のフリップフロップのクロック端子の入力に設定し、クロックツリーの別のノードから出力され、かつ第1のクロックよりもメタステーブル収束時間だけ遅延した第2のクロックを検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する遅延設定部とを備え、遅延設定部は、メタステーブル収束時間がクロックツリーのレイテンシ以上のときには、クロックツリーのあるノードから出力される第1のクロックを第1のフリップフロップのクロック端子の入力に設定し、第1のクロックをメタステーブル収束時間だけ、クロックツリー以外の遅延回路で遅延させた第2のクロックを検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する。   A semiconductor design apparatus according to an embodiment of the present invention includes a storage unit that stores design data of a semiconductor device, a detection unit that detects an asynchronous path included in the semiconductor device based on the design data, and a detected asynchronous path. When the metastable convergence time from the start of the metastable state to the end of the inserted flip-flop is shorter than the latency of the clock tree, the signal is output from a node with the clock tree. The first clock is set to the input of the clock terminal of the first flip-flop, and the second clock output from another node of the clock tree and delayed by the metastable convergence time from the first clock is detected. The delay setting to be set at the input of the clock pin of the flip-flop on the receiving side of the asynchronous path The delay setting unit sets the first clock output from a node of the clock tree as the input of the clock terminal of the first flip-flop when the metastable convergence time is equal to or higher than the latency of the clock tree. The second clock obtained by delaying the first clock by the delay circuit other than the clock tree for the metastable convergence time is set to the input of the clock terminal of the detected flip-flop on the receiving side of the asynchronous path.

本発明の一実施形態によれば、簡易かつ容易に、非同期パスを含む半導体装置を設計することができる。   According to an embodiment of the present invention, a semiconductor device including an asynchronous path can be designed simply and easily.

第1の実施形態の半導体設計装置の構成を表わす図である。It is a figure showing the structure of the semiconductor design apparatus of 1st Embodiment. 第1の実施形態の半導体設計装置の動作手順を表わすフローチャートである。It is a flowchart showing the operation | movement procedure of the semiconductor design apparatus of 1st Embodiment. 図2の同期化回路挿入処理の具体的な処理手順を表わすフローチャートである。3 is a flowchart showing a specific processing procedure of synchronization circuit insertion processing of FIG. 2. 非同期バスの送信側の回路ブロック、および非同期パスの受信側の回路ブロックを表わす図である。It is a figure showing the circuit block of the transmission side of an asynchronous bus | bath, and the circuit block of the receiving side of an asynchronous path | pass. Tcl≧Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。FIG. 5 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl ≧ Tr. Tcl<Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。FIG. 5 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl <Tr. 図2の同期化挿入処理の具体的な処理手順の別の例を表わすフローチャートである。6 is a flowchart showing another example of a specific processing procedure of the synchronization insertion processing of FIG. 2. Tcl≧Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。FIG. 5 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl ≧ Tr. Tcl<Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。FIG. 5 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl <Tr. 本発明の第2の実施形態の半導体チップの構成を表わす図である。It is a figure showing the structure of the semiconductor chip of the 2nd Embodiment of this invention. 非同期バスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路の例を表わす図である。It is a figure showing the example of the 1st circuit block of the transmission side of an asynchronous bus, the 2nd circuit block of the receiving side of an asynchronous path, and the synchronization circuit inserted in the asynchronous path. 非同期バスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路の別の例を表わす図である。It is a figure showing another example of the 1st circuit block of the transmission side of an asynchronous bus, the 2nd circuit block of the receiving side of an asynchronous path, and the synchronizing circuit inserted in the asynchronous path. 非同期バスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路のさらに別の例を表わす図である。It is a figure showing the further another example of the 1st circuit block of the transmission side of an asynchronous bus | bath, the 2nd circuit block of the reception side of an asynchronous path | pass, and the synchronization circuit inserted in the asynchronous path | pass. 非同期バスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路のさらに別の例を表わす図である。It is a figure showing the further another example of the 1st circuit block of the transmission side of an asynchronous bus | bath, the 2nd circuit block of the reception side of an asynchronous path | pass, and the synchronization circuit inserted in the asynchronous path | pass. 第3の実施形態の半導体設計装置の構成を表わす図である。It is a figure showing the structure of the semiconductor design apparatus of 3rd Embodiment. 第3の実施形態の半導体設計装置の動作手順を表わすフローチャートである。It is a flowchart showing the operation | movement procedure of the semiconductor design apparatus of 3rd Embodiment. 図16の形式検証処理の具体的な処理手順を表わすフローチャートである。It is a flowchart showing the specific process sequence of the format verification process of FIG. 同期化回路挿入前の非同期パスの送信側の第1の回路ブロックと、非同期パスの受信側の第2の回路ブロックを表わす図である。It is a figure showing the 1st circuit block of the transmission side of the asynchronous path before insertion of a synchronization circuit, and the 2nd circuit block of the reception side of an asynchronous path. 図18の非同期パスに同期化回路が挿入された例を表わす図である。FIG. 19 is a diagram illustrating an example in which a synchronization circuit is inserted in the asynchronous path of FIG. 18. 同期化回路挿入前の非同期パスの送信側の第1の回路ブロックと、非同期パスの受信側の第2の回路ブロックを表わす図である。It is a figure showing the 1st circuit block of the transmission side of the asynchronous path before insertion of a synchronization circuit, and the 2nd circuit block of the reception side of an asynchronous path. 図20の非同期パスに同期化回路が挿入された例を表わす図である。FIG. 21 is a diagram illustrating an example in which a synchronization circuit is inserted in the asynchronous path of FIG. 20. 第4の実施形態の半導体設計装置の構成を表わす図である。It is a figure showing the structure of the semiconductor design apparatus of 4th Embodiment. 第4の実施形態の半導体設計装置の動作手順を表わすフローチャートである。It is a flowchart showing the operation | movement procedure of the semiconductor design apparatus of 4th Embodiment. 図23のタイミング検証処理の具体的な処理手順を表わすフローチャートである。24 is a flowchart showing a specific processing procedure of timing verification processing of FIG. タイミング検証対象の回路を表わす図である。It is a figure showing the circuit of timing verification object. 従来のタイミング検証でのタイミングチャートである。It is a timing chart in the conventional timing verification. 第4の実施形態のタイミング検証でのタイミングチャートである。It is a timing chart in timing verification of a 4th embodiment.

以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
第1の実施形態では、非同期パスへの同期化回路の挿入に関する。
Embodiments of the present invention will be described below with reference to the drawings.
[First Embodiment]
The first embodiment relates to insertion of a synchronization circuit into an asynchronous path.

第1の実施形態は、従来のように非同期パスに複数段のフリップフロップ(以下、FF)を挿入して挿入周期分の時間を稼ぐことによって同期化を実現するのではなく、メタステーブル収束時間を算出し、その遅延時間だけ受信側のFFへ供給するクロックを遅らせることで同期化を実現する。   The first embodiment does not realize synchronization by inserting a plurality of stages of flip-flops (hereinafter referred to as FFs) into an asynchronous path and earning a time corresponding to the insertion period as in the prior art. Is achieved by delaying the clock supplied to the FF on the receiving side by the delay time.

(半導体設計装置の構成)
図1は、第1の実施形態の半導体設計装置の構成を表わす図である。
(Configuration of semiconductor design equipment)
FIG. 1 is a diagram illustrating the configuration of the semiconductor design apparatus according to the first embodiment.

図1を参照して、この半導体設計装置は、論理合成部2と、設計データ記憶部3と、同期化回路挿入部4と、タイミング検証部5と、形式検証部6とを備える。   Referring to FIG. 1, the semiconductor design apparatus includes a logic synthesis unit 2, a design data storage unit 3, a synchronization circuit insertion unit 4, a timing verification unit 5, and a format verification unit 6.

論理合成部2は、抽象的な回路の動作に関する記述から半導体装置の論理設計を行って、半導体装置の設計データを作成し、設計データ記憶部3に書き込む。   The logic synthesis unit 2 performs logic design of the semiconductor device from the description regarding the operation of the abstract circuit, creates design data of the semiconductor device, and writes the design data in the design data storage unit 3.

設計データ記憶部3は、設計データを記憶する。
同期化回路挿入部4は、非同期パス検出部7と、遅延設定部8と、FF挿入部9とを備える。
The design data storage unit 3 stores design data.
The synchronization circuit insertion unit 4 includes an asynchronous path detection unit 7, a delay setting unit 8, and an FF insertion unit 9.

非同期パス検出部7は、設計データに基づいて、半導体装置に含まれる非同期パスを検出する。ここで、非同期パスとは、周波数の異なる、互いに独立のクロックで動作している回路の間の転送バスをいう。   The asynchronous path detection unit 7 detects an asynchronous path included in the semiconductor device based on the design data. Here, the asynchronous path refers to a transfer bus between circuits operating at different clocks having different frequencies.

FF挿入部9は、検出された非同期パスにFF(D型フリップフロップ)を挿入する。
遅延設定部8は、デバイス特性、回路制約、およびMTBF(Mean time between failures)に基づいて、メタステーブル収束時間Trを算出する。メタステーブル状態とは、論理レベルがローレベルでもハイレベルでもない中途半端な中間レベルを保持する状態をいう。メタステーブル収束時間Trとは、非同期パスの受信側のFFにおいてメタステーブル状態が開始してから終了するまでの時間をいう。
The FF insertion unit 9 inserts an FF (D-type flip-flop) into the detected asynchronous path.
The delay setting unit 8 calculates a metastable convergence time Tr based on device characteristics, circuit constraints, and MTBF (Mean time between failures). The metastable state is a state in which a halfway intermediate level where the logic level is neither low level nor high level is maintained. The metastable convergence time Tr is the time from the start to the end of the metastable state in the FF on the receiving side of the asynchronous path.

たとえば、文献「Measuring metastability and its effect on communication signal processing systems」(Instrumentation and Measurement, IEEE Transactions)、Intel Corp.」には、メタステーブル収束時間Tr、デバイス依存の収束時間係数τ、デバイス依存のfailureウインドウT0、非同期パスの送信側の回路ブロックのクロックの周波数fb、非同期パスの受信側の回路ブロックのクロックの周波数fa、MTBFとの間に以下の関係が成立することが示されている。   For example, the document “Measuring metastability and its effect on communication signal processing systems” (Instrumentation and Measurement, IEEE Transactions), Intel Corp. It is shown that the following relationship is established between T0, the frequency fb of the clock on the circuit block on the transmission side of the asynchronous path, and the clock frequency fa and MTBF of the circuit block on the reception side of the asynchronous path.

MTBF=exp(−Tr/τ)/(fb×fa×T0)
遅延設定部8は、非同期パスの受信側のフリップフロップ(後述の挿入するFF)のメタステーブル収束時間Trがクロックツリーのレイテンシ(遅延時間)Tclよりも短いときには、クロックツリーのあるノードから出力される第1のクロックを挿入したFFのクロック端子の入力に設定する。遅延設定部8は、さらに、クロックツリーの別のノードから出力され、かつ第1のクロックよりもメタステーブル収束時間Trだけ遅延した第2のクロックを検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する。
MTBF = exp (−Tr / τ) / (fb × fa × T0)
When the metastable convergence time Tr of the flip-flop (FF to be described later) on the receiving side of the asynchronous path is shorter than the latency (delay time) Tcl of the clock tree, the delay setting unit 8 is output from a node in the clock tree. To the input of the clock terminal of the FF into which the first clock is inserted. The delay setting unit 8 further outputs the second flip-flop on the receiving side of the asynchronous path from which the second clock output from another node of the clock tree and detected by the metastable convergence time Tr from the first clock is detected. Set to clock pin input.

遅延設定部8は、非同期パスの受信側のフリップフロップ(後述の挿入するFF)のメタステーブル収束時間TrがクロックツリーのレイテンシTcl以上のときには、クロックツリーのあるノードから出力される第1のクロックを挿入したFFのクロック端子の入力に設定する。遅延設定部8は、第1のクロックをメタステーブル収束時間Trだけ、クロックツリー以外の遅延回路で遅延させた第2のクロックを検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する。   When the metastable convergence time Tr of the flip-flop (FF to be described later) on the receiving side of the asynchronous path is equal to or longer than the latency Tcl of the clock tree, the delay setting unit 8 outputs the first clock output from a node having the clock tree. Is set to the input of the clock terminal of the FF where is inserted. The delay setting unit 8 inputs the second clock obtained by delaying the first clock by the metastable convergence time Tr by a delay circuit other than the clock tree to the input of the clock terminal of the flip-flop on the receiving side of the detected asynchronous path. Set.

ここで、クロックツリーのレイテンシとは、クロックツリーの末端(リーフ)から出力されるクロックが、クロックツリーのルートから出力されるクロックに対して遅延している時間を表わす。   Here, the latency of the clock tree represents the time that the clock output from the end (leaf) of the clock tree is delayed with respect to the clock output from the root of the clock tree.

タイミング検証部5は、設計された半導体装置が所望する周波数で動作するかの検証、およびタイミング規格値を満たしているかの検証を行なう。   The timing verification unit 5 verifies whether the designed semiconductor device operates at a desired frequency and verifies whether the timing standard value is satisfied.

形式検証部6は、同期化回路などの付加回路の追加前後で、半導体装置の論理が等価であるかの検証を行なう。   The format verification unit 6 verifies whether the logic of the semiconductor device is equivalent before and after the addition of an additional circuit such as a synchronization circuit.

(全体動作)
図2は、第1の実施形態の半導体設計装置の動作手順を表わすフローチャートである。
(Overall operation)
FIG. 2 is a flowchart showing an operation procedure of the semiconductor design apparatus according to the first embodiment.

図2を参照して、論理合成部2は、抽象的な回路の動作に関する記述から半導体装置の論理設計を行って、半導体装置の設計データを作成し、設計データ記憶部3に書き込む(ステップS101)。   Referring to FIG. 2, logic synthesis unit 2 performs logic design of the semiconductor device from the description regarding the operation of the abstract circuit, creates design data of the semiconductor device, and writes the design data to design data storage unit 3 (step S101). ).

次に、同期化回路挿入部4は、後述する本実施の形態に特有の、半導体装置に含まれる非同期バスに同期化回路を挿入する処理を実施する(ステップS102)。   Next, the synchronization circuit insertion unit 4 performs processing for inserting a synchronization circuit into an asynchronous bus included in the semiconductor device, which is specific to the present embodiment described later (step S102).

次に、タイミング検証部5は、半導体装置のタイミング検証処理を実施する(ステップS103)。   Next, the timing verification unit 5 performs a timing verification process of the semiconductor device (step S103).

次に、形式検証部6は、半導体装置の形式検証を実施する(ステップS104)。
(同期化回路の挿入処理)
図3は、図2の同期化回路挿入処理の具体的な処理手順を表わすフローチャートである。
Next, the format verification unit 6 performs format verification of the semiconductor device (step S104).
(Synchronization circuit insertion processing)
FIG. 3 is a flowchart showing a specific processing procedure of the synchronization circuit insertion processing of FIG.

図4は、非同期バスの送信側の回路ブロック(以下、第1の回路ブロック)、および非同期パスの受信側の回路ブロック(以下、第2の回路ブロック)を表わす図である。図5は、Tcl≧Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。図6は、Tcl<Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。   FIG. 4 is a diagram showing a circuit block on the transmission side of the asynchronous bus (hereinafter referred to as a first circuit block) and a circuit block on the reception side of the asynchronous path (hereinafter referred to as a second circuit block). FIG. 5 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl ≧ Tr. FIG. 6 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl <Tr.

図3〜図6を参照して、非同期パス検出部7は、設計データに基づいて、半導体装置に含まれる非同期パスを検索する(ステップS201)。   3 to 6, the asynchronous path detection unit 7 searches for an asynchronous path included in the semiconductor device based on the design data (step S201).

次に、遅延設定部8は、クロックツリーのレイテンシTclを取得する(ステップS202)。   Next, the delay setting unit 8 acquires the latency Tcl of the clock tree (step S202).

FF挿入部9は、1つのFFを挿入する。図5および図6の例では、FF62が挿入される(ステップS203)。   The FF insertion unit 9 inserts one FF. In the example of FIGS. 5 and 6, the FF 62 is inserted (step S203).

次に、遅延設定部8は、挿入したFFのメタステーブル収束時間Trを算出する(ステップS204)。   Next, the delay setting unit 8 calculates the metastable convergence time Tr of the inserted FF (step S204).

次に、TclがTrよりも小さいときには(ステップS205でYES)、遅延設定部8は、第2の回路ブロックのFFのクロック端子へのクロックを元々入力されているクロックφ2からTr時間だけ遅延させたクロックφ3とする遅延回路を挿入する(ステップS206)。   Next, when Tcl is smaller than Tr (YES in step S205), the delay setting unit 8 delays the clock to the clock terminal of the FF of the second circuit block by Tr time from the originally input clock φ2. A delay circuit for inserting the clock φ3 is inserted (step S206).

さらに、遅延設定部8は、同期化のために挿入したFFのクロック端子へのクロックを第2の回路ブロックのFFのクロック端子に元々入力されていたクロックφ2に設定する。図6の例では、FF62のクロック端子にクロックφ2が入力される(ステップS207)。   Furthermore, the delay setting unit 8 sets the clock to the clock terminal of the FF inserted for synchronization to the clock φ2 originally input to the clock terminal of the FF of the second circuit block. In the example of FIG. 6, the clock φ2 is input to the clock terminal of the FF 62 (step S207).

一方、TclがTr以上のときには(ステップS205でNO)、遅延設定部8は、第2の回路ブロックのFFのクロック端子へのクロックを元のクロックφ2から変更して、クロックツリーのリーフ(末端)から出力されるクロックφ3に設定する。図5の例では、FF55のクロック端子にクロックφ3が入力される(ステップS208)。   On the other hand, when Tcl is greater than or equal to Tr (NO in step S205), the delay setting unit 8 changes the clock to the clock terminal of the FF of the second circuit block from the original clock φ2, and the leaf (terminal) of the clock tree is changed. ) To be output to the clock φ3. In the example of FIG. 5, the clock φ3 is input to the clock terminal of the FF 55 (step S208).

次に、遅延設定部8は、クロックツリーのリーフ(末端)から出力されるクロックφ3よりもTr時間だけ早いクロックφ4(つまり、クロックツリーのルート側のクロック)をクロックツリーから取り出す。遅延設定部8は、同期化回路のFFのクロック端子へのクロックを取り出したクロックφ4に設定する。図5の例では、FF62のクロック端子にクロックφ4が入力される(ステップS209)。   Next, the delay setting unit 8 extracts from the clock tree a clock φ4 (that is, a clock on the root side of the clock tree) that is earlier than the clock φ3 output from the leaf (terminal) of the clock tree by Tr time. The delay setting unit 8 sets the clock φ4 extracted from the clock to the clock terminal of the FF of the synchronization circuit. In the example of FIG. 5, the clock φ4 is input to the clock terminal of the FF 62 (step S209).

以上のように本実施の形態では、送信側の回路ブロックからのデータを受信側周波数で動作する同期化のためのFFでサンプリングし、受信側の回路ブロックでメタステーブル収束時間経過後に当該データをサンプルすることで、受信側の回路ブロックは、安定したデータをキャプチャすることができるので、設計スキルの乏しい設計者でもミスなく短TATで非同期パスを設計することができる。   As described above, in this embodiment, data from the circuit block on the transmission side is sampled by the FF for synchronization that operates at the frequency on the reception side, and the data is collected after the metastable convergence time elapses in the circuit block on the reception side. By sampling, the circuit block on the receiving side can capture stable data, so even a designer with poor design skills can design an asynchronous path with a short TAT without mistakes.

また、受信側の回路ブロックへ供給するクロックを遅らせるために、可能な限り、クロックツリーのレイテンシを利用するので、新たにArea/Powerのオーバーヘッドを生じることなく実装が可能である。   In addition, since the clock tree latency is used as much as possible in order to delay the clock supplied to the circuit block on the receiving side, it can be implemented without newly generating Area / Power overhead.

[第1の実施形態の変形例1]
この変形例では、FF挿入部9は、検出した非同期パスに、第1のフリップフロップ(前段のFF)と、前段のFFからデータを受ける第2のフリップフロップ(後段のFF)を挿入する。
[Modification 1 of the first embodiment]
In this modification, the FF insertion unit 9 inserts a first flip-flop (front FF) and a second flip-flop (back FF) that receives data from the front FF into the detected asynchronous path.

遅延設定部8は、非同期パスの受信側のフリップフロップ(挿入する2段のFFの前段のFF)のメタステーブル収束時間Trがクロックツリーの長さTClよりも短いときには、クロックツリーのあるノードから出力される第1のクロックを前段のFFのクロック端子の入力および検出された非同期データバスの受信側のフリップフロップのクロック端子の入力に設定する。遅延設定部8は、さらに、クロックツリーの別のノードから出力され、かつ第1のクロックとの位相差がメタステーブル収束時間Trとなる第2のクロックを後段のFFのクロック端子の入力に設定する。   When the metastable convergence time Tr of the flip-flop on the receiving side of the asynchronous path (the FF preceding the inserted two-stage FF) is shorter than the clock tree length TCl, the delay setting unit 8 starts from the node in the clock tree. The output first clock is set to the input of the clock terminal of the preceding FF and the input of the detected flip-flop on the receiving side of the asynchronous data bus. The delay setting unit 8 further sets the second clock output from another node of the clock tree and having the phase difference from the first clock as the metastable convergence time Tr as the input of the clock terminal of the subsequent FF. To do.

遅延設定部8は、非同期パスの受信側のフリップフロップ(挿入する2段のFFの前段のFF)のメタステーブル収束時間TrがクロックツリーのレイテンシTcl以上のときには、クロックツリーのあるノードから出力される第1のクロックを前段のFFのクロック端子の入力および検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する。遅延設定部8は、第1のクロックをメタステーブル収束時間Trだけ、クロックツリー以外の遅延回路で遅延させた第2のクロックを後段のFFのクロック端子の入力に設定する。   The delay setting unit 8 is output from a node in the clock tree when the metastable convergence time Tr of the flip-flop on the receiving side of the asynchronous path (the FF preceding the two-stage FF to be inserted) is equal to or longer than the latency Tcl of the clock tree. The first clock is set to the input of the clock terminal of the preceding FF and the input of the clock terminal of the flip-flop on the receiving side of the detected asynchronous path. The delay setting unit 8 sets the second clock obtained by delaying the first clock by the metastable convergence time Tr by a delay circuit other than the clock tree to the input of the clock terminal of the subsequent FF.

図7は、図2の同期化挿入処理の具体的な処理手順の別の例を表わすフローチャートである。   FIG. 7 is a flowchart showing another example of a specific processing procedure of the synchronization insertion process of FIG.

図8は、Tcl≧Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。図9は、Tcl<Trの場合に、図4の非同期パスに挿入される同期化回路を表わす図である。   FIG. 8 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl ≧ Tr. FIG. 9 is a diagram illustrating a synchronization circuit inserted in the asynchronous path of FIG. 4 when Tcl <Tr.

図4、図7〜図9を参照して、非同期パス検出部7は、設計データに基づいて、半導体装置に含まれる非同期パスを検索する(ステップS301)。   Referring to FIGS. 4 and 7 to 9, the asynchronous path detection unit 7 searches for an asynchronous path included in the semiconductor device based on the design data (step S <b> 301).

次に、遅延設定部8は、クロックツリーのレイテンシTclを取得する(ステップS302)。   Next, the delay setting unit 8 acquires the latency Tcl of the clock tree (step S302).

次に、FF挿入部9は、2段のFFを挿入する。図8および図9の例では、FF64およびFF65が挿入される(ステップS303)。   Next, the FF insertion unit 9 inserts two stages of FFs. In the example of FIGS. 8 and 9, FF64 and FF65 are inserted (step S303).

次に、遅延設定部8は、挿入した2段のFFの前段のFFのメタステーブル収束時間Trを算出する(ステップS304)。   Next, the delay setting unit 8 calculates the metastable convergence time Tr of the FF preceding the inserted two-stage FF (step S304).

次に、TclがTrよりも小さいときには(ステップS305でYES)、遅延設定部8は、後段のFFのクロック端子へのクロックを、第2の回路ブロックのFFのクロック端子に元々入力されていたクロックφ2からTr時間だけ遅延させる遅延回路を挿入する。図9の例では、遅延回路67が挿入される(ステップS306)。   Next, when Tcl is smaller than Tr (YES in step S305), the delay setting unit 8 originally inputs the clock to the clock terminal of the FF in the subsequent stage to the clock terminal of the FF of the second circuit block. A delay circuit for delaying Tr time from the clock φ2 is inserted. In the example of FIG. 9, the delay circuit 67 is inserted (step S306).

さらに、遅延設定部8は、前段のFFのクロック端子へのクロック、および第2の回路ブロックのFFのクロック端子へのクロックを第2の回路ブロックのFFのクロック端子に元々入力されていたクロックφ2に設定する。図9の例では、FF64のクロック端子にクロックφ2が入力される(ステップS307)。   Furthermore, the delay setting unit 8 is a clock that was originally input to the clock terminal of the FF of the second circuit block and the clock to the clock terminal of the FF of the second circuit block. Set to φ2. In the example of FIG. 9, the clock φ2 is input to the clock terminal of the FF 64 (step S307).

一方、TclがTr以上のときには(ステップS305でNO)、遅延設定部8は、後段のFFのクロック端子へのクロックをクロックツリーの中間ノードからクロックφ3に設定する。図8の例では、FF65のクロック端子にクロックφ3が入力される(ステップS308)。ここで、φ3は、φ3から後述のφ4の間の位相(遅延)差がTr以上となるように選択される。   On the other hand, when Tcl is equal to or greater than Tr (NO in step S305), the delay setting unit 8 sets the clock to the clock terminal of the subsequent stage FF from the intermediate node of the clock tree to the clock φ3. In the example of FIG. 8, the clock φ3 is input to the clock terminal of the FF 65 (step S308). Here, φ3 is selected so that the phase (delay) difference between φ3 and φ4, which will be described later, is greater than or equal to Tr.

次に、遅延設定部8は、クロックツリーのリーフ(末端)からクロックφ4を取出す。遅延設定部8は、第2の回路ブロックのFFのクロック端子へのクロックをクロックφ2から変更して、クロックφ4に設定する。また、遅延設定部8は、前段のFFのクロック端子へのクロックをクロックφ4に設定する。図8の例では、FF55およびFF64のクロック端子にクロックφ4が入力される(ステップS309)。   Next, the delay setting unit 8 extracts the clock φ4 from the leaf (end) of the clock tree. The delay setting unit 8 changes the clock to the clock terminal of the FF of the second circuit block from the clock φ2 and sets it to the clock φ4. Further, the delay setting unit 8 sets the clock to the clock terminal of the FF in the previous stage to the clock φ4. In the example of FIG. 8, the clock φ4 is input to the clock terminals of FF55 and FF64 (step S309).

本変形例では、第1の実施形態と同様の効果が得られる。さらに、本変形例では、複数段のFFを用いるので、受信側の回路ブロックにおいて、より確実にデータを取込むことができる。   In this modification, the same effect as that of the first embodiment can be obtained. Further, in the present modification, since a plurality of stages of FFs are used, data can be captured more reliably in the circuit block on the receiving side.

[第2の実施形態]
(半導体チップ)
図10は、本発明の第2の実施形態の半導体チップの構成を表わす図である。
[Second Embodiment]
(Semiconductor chip)
FIG. 10 is a diagram showing a configuration of a semiconductor chip according to the second embodiment of the present invention.

図10を参照して、この半導体チップ70は、CPU(Central Processing Unit)173と、SRAM(Static Random Access Memory)71と、フラッシュメモリ72と、PLL79とを備える。CPU173は、クロックツリー82と、FF83と、Logic87とを備える。   Referring to FIG. 10, this semiconductor chip 70 includes a CPU (Central Processing Unit) 173, an SRAM (Static Random Access Memory) 71, a flash memory 72, and a PLL 79. The CPU 173 includes a clock tree 82, an FF 83, and a Logic 87.

PLL79は、基準クロックをクロックツリー82へ出力する。クロックツリー82は、複数段のバッファ86(遅延素子)を含み、複数のノードからCPUの各素子へクロックを供給する。   The PLL 79 outputs a reference clock to the clock tree 82. The clock tree 82 includes a plurality of stages of buffers 86 (delay elements), and supplies a clock from a plurality of nodes to each element of the CPU.

CPU173と、SRAM71およびフラッシュメモリ72とは、データバス80で接続される。   The CPU 173 is connected to the SRAM 71 and the flash memory 72 via a data bus 80.

また、この半導体チップは、周辺IPブロックとしてI2Cバスインタフェース574およびUSBコントローラ575とを備え、さらにPLL76とを備える。   Further, this semiconductor chip includes an I2C bus interface 574 and a USB controller 575 as peripheral IP blocks, and further includes a PLL 76.

CPU173は、周辺バス81を介して、I2Cバスインタフェース574およびUSBコントローラ575と接続される。   The CPU 173 is connected to the I2C bus interface 574 and the USB controller 575 via the peripheral bus 81.

PLL76は、基準クロックをI2Cバスインタフェース574内のクロックツリー(図示は省略)およびUSBコントローラ575内のクロックツリー(図示は省略)へ出力する。これらのクロックツリーは、それぞれ複数段のバッファ(遅延素子)を含み、複数のノードから各素子へクロックを供給する。   The PLL 76 outputs the reference clock to a clock tree (not shown) in the I2C bus interface 574 and a clock tree (not shown) in the USB controller 575. Each of these clock trees includes a plurality of buffers (delay elements), and supplies clocks from a plurality of nodes to each element.

CPU173とI2Cバスインタフェース574とは、別個のクロックツリーから供給されるクロックで動作するので、CPU173とI2Cバスインタフェース574との間のデータパスは、非同期で動作する。   Since the CPU 173 and the I2C bus interface 574 operate with clocks supplied from separate clock trees, the data path between the CPU 173 and the I2C bus interface 574 operates asynchronously.

同様に、CPU173とUSBコントローラ575とは、別個のクロックツリーから供給されるクロックで動作するので、CPU173とUSBコントローラ575との間のデータパスは、非同期で動作する。   Similarly, since the CPU 173 and the USB controller 575 operate with clocks supplied from separate clock trees, the data path between the CPU 173 and the USB controller 575 operates asynchronously.

CPU173(送信側回路ブロック)からI2Cバスインタフェース574(受信側回路ブロック)への非同期パスには、同期化回路77が挿入されている。   A synchronization circuit 77 is inserted in an asynchronous path from the CPU 173 (transmission side circuit block) to the I2C bus interface 574 (reception side circuit block).

CPU173(送信側回路ブロック)からUSBコントローラ575(受信側回路ブロック)への非同期パスには、同期化回路78が挿入されている。   A synchronization circuit 78 is inserted in an asynchronous path from the CPU 173 (transmission side circuit block) to the USB controller 575 (reception side circuit block).

同期化回路77および同期化回路78は、端子Tmからテスト信号TESTを受ける。
(同期化回路)
次に、図10の同期化回路77の詳細を説明する。同期化回路78も、これと同様である。
Synchronization circuit 77 and synchronization circuit 78 receive test signal TEST from terminal Tm.
(Synchronization circuit)
Next, details of the synchronization circuit 77 of FIG. 10 will be described. The synchronization circuit 78 is similar to this.

図11は、非同期データバスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路の例を表わす図である。   FIG. 11 is a diagram illustrating an example of the first circuit block on the transmission side of the asynchronous data bus, the second circuit block on the reception side of the asynchronous path, and the synchronization circuit inserted in the asynchronous path.

第1の回路ブロック74は、FF84を備える。FF84のクロック端子には、クロックφ1が入力される。   The first circuit block 74 includes an FF 84. The clock φ1 is input to the clock terminal of the FF84.

同期化回路77は、FF91と、セレクタ188を備える。
セレクタ188は、第1のクロックφ4と第2のクロックφ3とが入力される。第2のクロックφ3は、第1のクロックφ4をFF91のメタステーブル収束時間Trだけ遅延させた信号である。第1のクロックφ4と第2のクロックφ3とは、クロックツリー82の別個のノードから供給される。第2のクロックφ3は、クロックツリーの末端(リーフ)から出力されるクロックとする。第1のクロックφ4は、クロックツリーの末端(リーフ)よりもルート側のノードから出力される。
The synchronization circuit 77 includes an FF 91 and a selector 188.
The selector 188 receives the first clock φ4 and the second clock φ3. The second clock φ3 is a signal obtained by delaying the first clock φ4 by the metastable convergence time Tr of the FF 91. The first clock φ 4 and the second clock φ 3 are supplied from separate nodes of the clock tree 82. The second clock φ3 is a clock output from the end (leaf) of the clock tree. The first clock φ4 is output from a node on the root side of the end (leaf) of the clock tree.

セレクタ188は、テスト時にはテスト信号TESTが活性化され、第2のクロックφ3をFF91のクロック端子へ出力する。これにより、テスト時には、FF83とFF91とは、同一のクロックφ3で動作する。セレクタ188は、通常時にはテスト信号TESTが非活性化され、第1のクロックφ4をFF91のクロック端子へ出力する。FF91は、FF84の出力を受ける。FF91のクロック端子には、セレクタ188の出力が入力される。   The selector 188 activates the test signal TEST during the test, and outputs the second clock φ3 to the clock terminal of the FF 91. Thereby, at the time of the test, FF83 and FF91 operate with the same clock φ3. The selector 188 normally deactivates the test signal TEST and outputs the first clock φ4 to the clock terminal of the FF 91. The FF 91 receives the output of the FF 84. The output of the selector 188 is input to the clock terminal of the FF 91.

第2の回路ブロック73は、Logic87と、FF83とを備える。
Logic87は、同期化回路77内のFF91の出力を受けて、論理演算処理を行なって、その結果をFF83へ出力する。
The second circuit block 73 includes a Logic 87 and an FF 83.
Logic 87 receives the output of FF 91 in synchronization circuit 77, performs logical operation processing, and outputs the result to FF 83.

FF83は、Logic87からの出力を受ける。FF83のクロック端子には、第2のクロックφ3が入力される。   The FF 83 receives the output from the Logic 87. The second clock φ3 is input to the clock terminal of the FF83.

[第2の実施形態の変形例1]
図12は、非同期データバスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路の別の例を表わす図である。
[Modification 1 of Second Embodiment]
FIG. 12 is a diagram illustrating another example of the first circuit block on the transmission side of the asynchronous data bus, the second circuit block on the reception side of the asynchronous path, and the synchronization circuit inserted in the asynchronous path.

第1の回路ブロック74は、FF84を備える。FF84のクロック端子には、クロックφ1が入力される。   The first circuit block 74 includes an FF 84. The clock φ1 is input to the clock terminal of the FF84.

同期化回路77は、FF91と、セレクタ188と、遅延回路90を備える。
遅延回路90は、第1のクロックφ2をFF91のメタステーブル収束時間Trだけ遅延させて、第2のクロックφ3を出力する。第1のクロックφ2は、クロックツリー82から供給される。
The synchronization circuit 77 includes an FF 91, a selector 188, and a delay circuit 90.
The delay circuit 90 delays the first clock φ2 by the metastable convergence time Tr of the FF 91, and outputs the second clock φ3. The first clock φ2 is supplied from the clock tree 82.

セレクタ188は、第2のクロックφ3と、第1のクロックφ2とが入力される。セレクタ188は、テスト時にはテスト信号TESTが活性化され、第2のクロックφ3をFF91のクロック端子へ出力する。これにより、テスト時には、FF83とFF91とは、同一のクロックφ3で動作する。セレクタ188は、通常時にはテスト信号TESTが非活性化され、第1のクロックφ2をFF91のクロック端子へ出力する。FF91は、FF84の出力を受ける。FF91のクロック端子には、セレクタ188の出力が入力される。   The selector 188 receives the second clock φ3 and the first clock φ2. The selector 188 activates the test signal TEST during the test, and outputs the second clock φ3 to the clock terminal of the FF 91. Thereby, at the time of the test, FF83 and FF91 operate with the same clock φ3. The selector 188 normally deactivates the test signal TEST and outputs the first clock φ2 to the clock terminal of the FF 91. The FF 91 receives the output of the FF 84. The output of the selector 188 is input to the clock terminal of the FF 91.

第2の回路ブロック73は、Logic87と、FF83とを備える。
Logic87は、同期化回路77内のFF91の出力を受けて、論理演算処理を行なって、その結果をFF83へ出力する。
The second circuit block 73 includes a Logic 87 and an FF 83.
Logic 87 receives the output of FF 91 in synchronization circuit 77, performs logical operation processing, and outputs the result to FF 83.

FF83は、Logic87からの出力を受ける。FF83のクロック端子には、第2のクロックφ3が入力される。   The FF 83 receives the output from the Logic 87. The second clock φ3 is input to the clock terminal of the FF83.

[第2の実施形態の変形例2]
図13は、非同期データバスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路のさらに別の例を表わす図である。
[Modification 2 of the second embodiment]
FIG. 13 is a diagram illustrating still another example of the first circuit block on the transmission side of the asynchronous data bus, the second circuit block on the reception side of the asynchronous path, and the synchronization circuit inserted in the asynchronous path.

第1の回路ブロック74は、FF84を備える。FF84のクロック端子には、クロックφ1が入力される。   The first circuit block 74 includes an FF 84. The clock φ1 is input to the clock terminal of the FF84.

同期化回路77は、前段のFF93と、後段のFF92と、セレクタ94を備える。
セレクタ94は、第1のクロックφ4と第2のクロックφ3とが入力される。第2のクロックφ3は、第1のクロックφ4をFF93のメタステーブル収束時間Trだけ位相を遅らせた信号である。第1のクロックφ4と第2のクロックφ3とは、クロックツリー82の別個のノードから供給される。たとえば、第1のクロックφ4は、クロックツリーの末端(リーフ)から出力されるクロックとする。第2のクロックφ3は、クロックツリーの末端(リーフ)よりもルート側のノードから出力される。ここでφ3とφ4の間にはTr以上の位相(遅延)差を確保するものとする。
The synchronization circuit 77 includes a front-stage FF 93, a rear-stage FF 92, and a selector 94.
The selector 94 receives the first clock φ4 and the second clock φ3. The second clock φ3 is a signal obtained by delaying the phase of the first clock φ4 by the metastable convergence time Tr of the FF93. The first clock φ 4 and the second clock φ 3 are supplied from separate nodes of the clock tree 82. For example, the first clock φ4 is a clock output from the end (leaf) of the clock tree. The second clock φ3 is output from a node on the root side of the end (leaf) of the clock tree. Here, a phase (delay) difference equal to or greater than Tr is secured between φ3 and φ4.

セレクタ94は、テスト時にはテスト信号TESTが活性化され、第1のクロックφ4をFF92のクロック端子へ出力する。これにより、テスト時には、FF83とFF93とFF92とは、同一のクロックφ4で動作する。セレクタ94は、通常時にはテスト信号TESTが非活性化され、第2のクロックφ3をFF92のクロック端子へ出力する。   The selector 94 activates the test signal TEST during the test, and outputs the first clock φ4 to the clock terminal of the FF 92. Thereby, at the time of a test, FF83, FF93, and FF92 operate with the same clock φ4. The selector 94 normally deactivates the test signal TEST, and outputs the second clock φ3 to the clock terminal of the FF 92.

FF93は、FF84の出力を受ける。FF93のクロック端子には、第1のクロックφ4が入力される。   The FF 93 receives the output of the FF 84. The first clock φ4 is input to the clock terminal of the FF93.

FF92は、FF93の出力を受ける。FF92のクロック端子には、セレクタ94の出力が入力される。   The FF 92 receives the output of the FF 93. The output of the selector 94 is input to the clock terminal of the FF 92.

第2の回路ブロック73は、Logic87と、FF83とを備える。
Logic87は、同期化回路77内のFF92の出力を受けて、論理演算処理を行なって、その結果をFF83へ出力する。
The second circuit block 73 includes a Logic 87 and an FF 83.
The Logic 87 receives the output of the FF 92 in the synchronization circuit 77, performs logical operation processing, and outputs the result to the FF 83.

FF83は、Logic87からの出力を受ける。FF83のクロック端子には、第1のクロックφ4が入力される。   The FF 83 receives the output from the Logic 87. The first clock φ4 is input to the clock terminal of the FF83.

[第2の実施形態の変形例3]
図14は、非同期データバスの送信側の第1の回路ブロック、非同期パスの受信側の第2の回路ブロック、および非同期パスに挿入された同期化回路のさらに別の例を表わす図である。
[Modification 3 of the second embodiment]
FIG. 14 is a diagram illustrating still another example of the first circuit block on the transmission side of the asynchronous data bus, the second circuit block on the reception side of the asynchronous path, and the synchronization circuit inserted in the asynchronous path.

第1の回路ブロック74は、FF84を備える。FF84のクロック端子には、クロックφ1が入力される。   The first circuit block 74 includes an FF 84. The clock φ1 is input to the clock terminal of the FF84.

同期化回路77は、前段のFF93と、後段のFF92と、セレクタ94と、遅延回路95を備える。   The synchronization circuit 77 includes a front-stage FF 93, a rear-stage FF 92, a selector 94, and a delay circuit 95.

遅延回路95は、第1のクロックφ2をFF93のメタステーブル収束時間Trだけ遅延させて、第2のクロックφ3を出力する。第1のクロックφ2は、クロックツリー82のノードから供給される。   The delay circuit 95 delays the first clock φ2 by the metastable convergence time Tr of the FF 93 and outputs the second clock φ3. The first clock φ2 is supplied from a node of the clock tree 82.

セレクタ94は、第1のクロックφ2と第2のクロックφ3とが入力される。セレクタ94は、テスト時にはテスト信号TESTが活性化され、第1のクロックφ2をFF92のクロック端子へ出力する。これにより、テスト時には、FF83とFF93とFF92とは、同一のクロックφ2で動作する。セレクタ94は、通常時にはテスト信号TESTが非活性化され、第2のクロックφ3をFF92のクロック端子へ出力する。   The selector 94 receives the first clock φ2 and the second clock φ3. The selector 94 activates the test signal TEST during the test, and outputs the first clock φ2 to the clock terminal of the FF 92. Thereby, at the time of a test, FF83, FF93, and FF92 operate with the same clock φ2. The selector 94 normally deactivates the test signal TEST, and outputs the second clock φ3 to the clock terminal of the FF 92.

FF93は、FF84の出力を受ける。FF93のクロック端子には、第1のクロックφ2が入力される。   The FF 93 receives the output of the FF 84. The first clock φ2 is input to the clock terminal of the FF93.

FF92は、FF93の出力を受ける。FF92のクロック端子には、セレクタ94の出力が入力される。   The FF 92 receives the output of the FF 93. The output of the selector 94 is input to the clock terminal of the FF 92.

第2の回路ブロック73は、Logic87と、FF83とを備える。
Logic87は、同期化回路77内のFF92の出力を受けて、論理演算処理を行なって、その結果をFF83へ出力する。
The second circuit block 73 includes a Logic 87 and an FF 83.
The Logic 87 receives the output of the FF 92 in the synchronization circuit 77, performs logical operation processing, and outputs the result to the FF 83.

FF83は、Logic87からの出力を受ける。FF83のクロック端子には、第1のクロックφ2が入力される。   The FF 83 receives the output from the Logic 87. The first clock φ2 is input to the clock terminal of the FF83.

以上のように、第2の実施形態、および第2の実施形態の変形例によれば、送信側の回路ブロックからのデータを受信側周波数で動作する同期化のためのFFでサンプリングし、受信側の回路ブロックでメタステーブル収束時間経過後に当該データをサンプルすることで、受信側の回路ブロックは、安定したデータをキャプチャすることができる。   As described above, according to the second embodiment and the modification of the second embodiment, the data from the circuit block on the transmission side is sampled by the FF for synchronization that operates at the reception side frequency, and is received. By sampling the data after the metastable convergence time has elapsed in the circuit block on the side, the circuit block on the receiving side can capture stable data.

また、同期化回路内にセレクタを設けて、テスト時には、同期化回路と、受信側の回路ブロックとを同一のクロックで動作させることができる。   Further, by providing a selector in the synchronization circuit, the synchronization circuit and the circuit block on the receiving side can be operated with the same clock during the test.

なお、第2の実施形態、および変形例2において、第2のクロックφ3が、クロックツリーの末端(リーフ)から出力されるクロックとしたが、これに限定するものではない。第1のクロックと第2のクロックとが、クロックツリー内にメタステーブル収束時間だけ異なるノードから出力されるものであれば、どのようなものであってもよい。   In the second embodiment and the second modification, the second clock φ3 is a clock output from the end (leaf) of the clock tree. However, the present invention is not limited to this. Any clock may be used as long as the first clock and the second clock are output from different nodes in the clock tree by the metastable convergence time.

[第3の実施形態]
図15は、第3の実施形態の半導体設計装置の構成を表わす図である。
[Third Embodiment]
FIG. 15 is a diagram illustrating the configuration of the semiconductor design apparatus according to the third embodiment.

図15の半導体設計装置11が、図1の半導体設計装置1と相違する点は、形式検証部12である。   The semiconductor design apparatus 11 of FIG. 15 is different from the semiconductor design apparatus 1 of FIG.

形式検証部12は、同期化回路検出部14と、論理圧縮部15と、一致判定部16とを備える。   The format verification unit 12 includes a synchronization circuit detection unit 14, a logical compression unit 15, and a match determination unit 16.

同期化回路検出部14は、それぞれ異なるクロックで動作する第1の回路ブロックと第2の回路ブロックの間の非同期パスを検出する。同期化回路検出部14は、非同期パスに挿入された同期化回路を検出する。   The synchronization circuit detection unit 14 detects an asynchronous path between the first circuit block and the second circuit block that operate with different clocks. The synchronization circuit detection unit 14 detects the synchronization circuit inserted in the asynchronous path.

論理圧縮部15は、挿入された同期化回路を削除することによって、第2の回路ブロックの入力の論理を論理圧縮する。   The logic compression unit 15 logically compresses the input logic of the second circuit block by deleting the inserted synchronization circuit.

一致判定部16は、同期化回路挿入前の第2の回路ブロックの入力の論理と、論理圧縮後の第2の回路ブロックの入力の論理が一致するか否かを判定する。   The coincidence determination unit 16 determines whether or not the input logic of the second circuit block before the synchronization circuit is inserted matches the input logic of the second circuit block after the logic compression.

(全体動作)
図16は、第3の実施形態の半導体設計装置の動作手順を表わすフローチャートである。
(Overall operation)
FIG. 16 is a flowchart showing the operation procedure of the semiconductor design apparatus according to the third embodiment.

図16を参照して、論理合成部2は、抽象的な回路の動作に関する記述から半導体装置の論理設計を行って、半導体装置の設計データを作成し、設計データ記憶部3に書き込む(ステップS401)。   Referring to FIG. 16, logic synthesis unit 2 performs logic design of the semiconductor device from the description regarding the operation of the abstract circuit, creates design data of the semiconductor device, and writes the design data in design data storage unit 3 (step S401). ).

次に、同期化回路挿入部4は、半導体装置に含まれる非同期データバスに同期化回路を挿入する処理を実施する(ステップS402)。   Next, the synchronization circuit insertion unit 4 performs a process of inserting the synchronization circuit into the asynchronous data bus included in the semiconductor device (step S402).

次に、タイミング検証部5は、半導体装置のタイミング検証処理を実施する(ステップS403)。   Next, the timing verification unit 5 performs a timing verification process of the semiconductor device (step S403).

次に、形式検証部12は、後述する本発明の実施形態に特有の、半導体装置の形式検証を実施する(ステップS404)。   Next, the format verification unit 12 performs format verification of the semiconductor device unique to the embodiment of the present invention to be described later (step S404).

(形式検証処理)
図17は、図16の形式検証処理の具体的な処理手順を表わすフローチャートである。
(Form verification process)
FIG. 17 is a flowchart showing a specific processing procedure of the format verification processing of FIG.

図17を参照して、まず、同期化回路検出部14は、それぞれ異なるクロックで動作する第1の回路ブロックと第2の回路ブロックの間の非同期パスを検出する(ステップS501)。   Referring to FIG. 17, first, the synchronization circuit detection unit 14 detects an asynchronous path between the first circuit block and the second circuit block that operate with different clocks (step S501).

次に、同期化回路検出部14は、非同期パスに挿入された同期化回路(前段のFF1および後段のFF2)を検出する(ステップS502)。   Next, the synchronization circuit detection unit 14 detects the synchronization circuits (the front-stage FF1 and the rear-stage FF2) inserted in the asynchronous path (step S502).

次に、論理圧縮部15は、FF2を削除することによって、第2の回路ブロックの入力の論理を論理圧縮する(ステップS503)。   Next, the logical compression unit 15 logically compresses the input logic of the second circuit block by deleting the FF2 (step S503).

さらに、論理圧縮部15は、FF1を削除することによって、第2の回路ブロックの入力の論理を論理圧縮する(ステップS504)。   Further, the logical compression unit 15 logically compresses the input logic of the second circuit block by deleting FF1 (step S504).

一致判定部16は、論理圧縮後の論理が、同期化回路挿入前の論理と等しい場合には(ステップS505でYES)、検証結果として一致を出力する(ステップS506)。   If the logic after logic compression is equal to the logic before the synchronization circuit insertion (YES in step S505), the match determination unit 16 outputs a match as a verification result (step S506).

一方、一致判定部16は、論理圧縮後の論理が、同期化回路挿入前の論理と等しくない場合には(ステップS505でNO)、検証結果として不一致を出力する(ステップS507)。   On the other hand, when the logic after logic compression is not equal to the logic before the synchronization circuit insertion (NO in step S505), the match determination unit 16 outputs a mismatch as the verification result (step S507).

(例1)
図18は、同期化回路挿入前の非同期パスの送信側の第1の回路ブロックと、非同期パスの受信側の第2の回路ブロックを表わす図である。
(Example 1)
FIG. 18 is a diagram illustrating a first circuit block on the transmission side of the asynchronous path before insertion of the synchronization circuit and a second circuit block on the reception side of the asynchronous path.

第1の回路ブロック51のFF53の入力の論理をFA1とする。第2の回路ブロック52のFF55の入力の論理をFB1とする。   The input logic of the FF 53 of the first circuit block 51 is FA1. The input logic of the FF 55 of the second circuit block 52 is FB1.

Logic54は、特に論理演算を実行しないものとする。
FF55の入力の論理をFB1は、
FB1=FA1@φ1 ・・・(2−1)
と表わされる。ここで、@以下は、クロックドメインを表わす。
It is assumed that Logic 54 does not particularly perform a logical operation.
FB1 is the input logic of FF55.
FB1 = FA1 @ φ1 (2-1)
It is expressed as Here, @ and below represent clock domains.

図19は、図18の非同期パスに同期化回路が挿入された例を表わす図である。
同期化回路検出部14は、前段のFF64は、クロックφ4に同期してデータがラッチされているが、FF64へのデータ入力は、クロックφ4とは別のクロックドメインのクロックφ1に同期して生成されたものであるため、非同期転送がなされていることを認識する。さらに、同期化回路検出部は、FF64をフォワードトレースすると、後段のFF65が見つかり、その他の分岐はないことを認識する。さらに、同期化回路検出部14は、FF65をフォワードトレースし、Logic54を経由して、FF55が見つかり、その他の分岐がないことを認識する。したがって、同期化回路検出部14は、FF64およびFF65が同期化回路として挿入されていると判断する。
FIG. 19 is a diagram illustrating an example in which a synchronization circuit is inserted in the asynchronous path of FIG.
The synchronizing circuit detection unit 14 generates data input to the FF 64 in synchronization with the clock φ1 in a clock domain different from the clock φ4, although data is latched in the preceding FF 64 in synchronization with the clock φ4. Therefore, it recognizes that asynchronous transfer is being performed. Further, when the FF 64 is forward-traced, the synchronization circuit detection unit recognizes that the subsequent FF 65 is found and there is no other branch. Further, the synchronization circuit detection unit 14 forward-traces the FF 65 and recognizes that the FF 55 is found via the Logic 54 and there is no other branch. Therefore, the synchronization circuit detection unit 14 determines that the FF 64 and the FF 65 are inserted as synchronization circuits.

同期化回路63のFF64の入力の論理をFB3とし、FF65の入力の論理をFB4とする。   The logic of the input of the FF 64 of the synchronization circuit 63 is FB3, and the logic of the input of the FF 65 is FB4.

本実施の形態はファンクションの一致を検証するため、遅延は考慮しない。したがって、図19の遅延クロックφ3はφ4と等価と判断される。   Since this embodiment verifies the matching of functions, no delay is considered. Accordingly, the delay clock φ3 in FIG. 19 is determined to be equivalent to φ4.

FF55の入力の論理をFB1は、
FB1=FB4@φ4 ・・・(2−2)
となる。さらに、
FB4=FB3@φ4 ・・・(2−3)
FB3=FA1@φ1 ・・・(2−4)
と表わされる。
FB1 is the input logic of FF55.
FB1 = FB4 @ φ4 (2-2)
It becomes. further,
FB4 = FB3 @ φ4 (2-3)
FB3 = FA1 @ φ1 (2-4)
It is expressed as

論理圧縮部15は、式(2−3)を用いて、FF65を削除することによって、FF55の入力の論理FB1を、以下のように論理圧縮する。   The logical compression unit 15 logically compresses the logical FB1 input to the FF 55 as follows by deleting the FF 65 using Expression (2-3).

FB1=FB3@φ4 ・・・(2−5)
さらに、論理圧縮部15は、式(2−4)を用いて、FF64を削除することによって、FF55の入力の論理FB1を、以下のように論理圧縮する。
FB1 = FB3 @ φ4 (2-5)
Further, the logical compression unit 15 logically compresses the logical FB1 input to the FF 55 as follows by deleting the FF 64 using Expression (2-4).

FB1=FA1@φ1 ・・・(2−6)
一致判定部16は、論理式(2−1)と論理式(2−6)とが一致するから、検証結果として一致を出力する。
FB1 = FA1 @ φ1 (2-6)
Since the logical expression (2-1) and the logical expression (2-6) match, the match determination unit 16 outputs a match as the verification result.

(例2)
図20は、同期化回路挿入前の非同期パスの送信側の第1の回路ブロックと、非同期パスの受信側の第2の回路ブロックを表わす図である。
(Example 2)
FIG. 20 is a diagram illustrating a first circuit block on the transmission side of the asynchronous path before insertion of the synchronization circuit and a second circuit block on the reception side of the asynchronous path.

第1の回路ブロック161のFF163の入力の論理をFA1とし、FF164の入力の論理をFA2とする。   The logic of the input of the FF 163 of the first circuit block 161 is FA1, and the logic of the input of the FF 164 is FA2.

第2の回路ブロック162のFF167の入力の論理をFB1とし、FF168の入力の論理をFB2とする。   The input logic of the FF 167 of the second circuit block 162 is FB1, and the input logic of the FF 168 is FB2.

Logic165は加算を実行し、Logic166は減算を実行するものとする。
FF167の入力の論理をFB1は、
FB1=(FA1+FA2)@φ1−FB2φ2 ・・・(3−1)
と表わされる。ここで、@以下は、クロックドメインを表わす。
It is assumed that Logic 165 performs addition, and Logic 166 performs subtraction.
FB1 is the input logic of FF167.
FB1 = (FA1 + FA2) @ φ1-FB2φ2 (3-1)
It is expressed as Here, @ and below represent clock domains.

図21は、図20の非同期パスに同期化回路が挿入された例を表わす図である。
同期化回路検出部14は、FF64は、クロックφ4に同期してデータがラッチされているが、FF64へのデータ入力は、クロックφ4とは別のクロックドメインのクロックφ1に同期して生成されたものであるため、非同期転送がなされていることを認識する。さらに、同期化回路検出部14は、FF64をフォワードトレースすると、FF65が見つかり、その他の分岐はないことを認識する。さらに、同期化回路検出部14は、FF65をフォワードトレースし、Logic166を経由して、FF167が見つかり、その他の分岐がないことを認識する。したがって、同期化回路検出部14は、FF64およびFF65が同期化回路として挿入されていると判断する。
FIG. 21 is a diagram illustrating an example in which a synchronization circuit is inserted in the asynchronous path of FIG.
In the synchronization circuit detection unit 14, the data is latched in the FF 64 in synchronization with the clock φ 4, but the data input to the FF 64 is generated in synchronization with the clock φ 1 in a clock domain different from the clock φ 4. Therefore, it recognizes that asynchronous transfer is being performed. Furthermore, when the FF 64 is forward traced, the synchronization circuit detection unit 14 recognizes that the FF 65 is found and there is no other branch. Further, the synchronization circuit detection unit 14 forward-traces the FF 65 and recognizes that the FF 167 is found via the Logic 166 and there is no other branch. Therefore, the synchronization circuit detection unit 14 determines that the FF 64 and the FF 65 are inserted as synchronization circuits.

同期化回路63のFF64の入力の論理をFB3とし、FF65の入力の論理をFB4とする。なお、本実施の形態はファンクションの一致を検証するため、遅延は考慮しない。したがって、図19の遅延クロックφ3はφ2と等価と判断される。   The logic of the input of the FF 64 of the synchronization circuit 63 is FB3, and the logic of the input of the FF 65 is FB4. Note that this embodiment does not consider a delay in order to verify matching of functions. Accordingly, the delay clock φ3 in FIG. 19 is determined to be equivalent to φ2.

FF167の入力の論理をFB1は、
FB1=FB4@φ2−FB2φ2 ・・・(3−2)
となる。さらに、
FB4=FB3@φ2 ・・・(3−3)
FB3=(FA1+FA2)@φ1 ・・・(3−4)
と表わされる。
FB1 is the input logic of FF167.
FB1 = FB4 @ φ2-FB2φ2 (3-2)
It becomes. further,
FB4 = FB3 @ φ2 (3-3)
FB3 = (FA1 + FA2) @ φ1 (3-4)
It is expressed as

論理圧縮部15は、式(3−3)を用いて、FF65を削除することによって、FF167の入力の論理FB1を、以下のように論理圧縮する。   The logical compression unit 15 logically compresses the logical FB1 input to the FF 167 as follows by deleting the FF 65 using Expression (3-3).

FB1=FB3@φ2−FB2@φ2 ・・・(3−5)
さらに、論理圧縮部15は、式(3−4)を用いて、FF64を削除することによって、FF167の入力の論理FB1を、以下のように論理圧縮する。
FB1 = FB3 @ φ2-FB2 @ φ2 (3-5)
Further, the logical compression unit 15 logically compresses the logical FB1 input to the FF 167 as follows by deleting the FF 64 using Expression (3-4).

FB1=(FA1+FA2)@φ1−FB2φ2 ・・・(3−6)
一致判定部16は、論理式(3−1)と論理式(3−6)とが一致するから、検証結果として一致を出力する。
FB1 = (FA1 + FA2) @ φ1-FB2φ2 (3-6)
Since the logical expression (3-1) matches the logical expression (3-6), the coincidence determination unit 16 outputs coincidence as a verification result.

以上のように、本発明の実施形態によれば、同期化前後の回路の論理(ファンクション)が一致しているか否かを自動で検証できるので、同期化後に同期化前に行った膨大なファンクション検証を再実行する必要がなくなる。   As described above, according to the embodiment of the present invention, it is possible to automatically verify whether or not the logic (function) of the circuit before and after the synchronization is the same. There is no need to re-run verification.

なお、本発明の実施形態の形式検証は、第1の実施形態および第2の実施形態で説明した同期化回路にのみ適用されるのではなく、その他の同期化回路の形式検証にも適用できる。   Note that the format verification of the embodiment of the present invention is not only applied to the synchronization circuits described in the first embodiment and the second embodiment, but can also be applied to the format verification of other synchronization circuits. .

[第4の実施形態]
本実施の形態では、メタステーブルの影響による誤動作をダイレクトに検証する形式検証に関する。
[Fourth Embodiment]
The present embodiment relates to format verification for directly verifying a malfunction caused by the influence of metastable.

通常、FFはクロックのアクティブエッジの近郊でのデータ変化に対して、キャプチャデータの妥当性が保証できないため、セットアップおよびホールドのタイミング制約を設けている。   Usually, the FF has set-up and hold timing constraints because the validity of the captured data cannot be guaranteed against data changes in the vicinity of the active edge of the clock.

従来の、タイミング検証を実施する論理シミュレータはこのようなタイミングエラー発生時に、FFのシミュレーション上の論理値を不定(‘X’)に設定していた。しかし、次サイクル以降のクロックのアクティブエッジで確定値を取り込まない限り、設定した不定を消滅させることができないため、必要以上に不定が伝播する。しかしながら、タイミングエラー発生時に、実機のFFの論理値は、メタステーブル収束時間が経過した後、確定値に戻り、従来の論理シミュレータは、実機の動作を正確に反映していない。   Conventional logic simulators that perform timing verification have set the logic value on the FF simulation to be undefined ('X') when such a timing error occurs. However, since the set indeterminacy cannot be erased unless the definite value is taken in at the active edge of the clock after the next cycle, the indefinite propagates more than necessary. However, when a timing error occurs, the logical value of the FF of the actual machine returns to the final value after the metastable convergence time has elapsed, and the conventional logic simulator does not accurately reflect the operation of the actual machine.

本発明の実施形態では、より実機の動作に近いタイミング検証を説明する。
図22は、第4の実施形態の半導体設計装置の構成を表わす図である。
In the embodiment of the present invention, timing verification closer to the operation of an actual machine will be described.
FIG. 22 is a diagram illustrating the configuration of the semiconductor design apparatus according to the fourth embodiment.

図22の半導体設計装置17が、図1の半導体設計装置1と相違する点は、タイミング検証部18である。この半導体設計装置17は、図示しないが、さらに第1の実施形態で説明した同期化回路挿入部4を含むものとしてもよい。   The semiconductor design apparatus 17 in FIG. 22 is different from the semiconductor design apparatus 1 in FIG. Although not shown, the semiconductor design device 17 may further include the synchronization circuit insertion unit 4 described in the first embodiment.

タイミング検証部18は、タイミング違反検出部20と、FF論理値設定部21とを備える。   The timing verification unit 18 includes a timing violation detection unit 20 and an FF logical value setting unit 21.

タイミング違反検出部20は、設計データに基づいて、論理シミュレーション時に、タイミング違反した信号が入力されるFFを検出する。   Based on the design data, the timing violation detection unit 20 detects an FF to which a timing violation signal is input at the time of logic simulation.

FF論理値設定部21は、論理シミュレーション時に、タイミング違反した時点で、検出したFFのシミュレーション上の出力を不定値に設定し、かつその後検出したFFにおけるメタステーブル収束時間経過後に、検出したFFのシミュレーション上の出力を不定値から確定値に戻す。   The FF logic value setting unit 21 sets the output of the detected FF on the simulation to an indefinite value at the time of the timing violation during the logic simulation, and after the metastable convergence time in the detected FF has elapsed, Return the simulation output from the indefinite value to the final value.

(全体動作)
図23は、第4の実施形態の半導体設計装置の動作手順を表わすフローチャートである。
(Overall operation)
FIG. 23 is a flowchart showing the operation procedure of the semiconductor design apparatus of the fourth embodiment.

図23を参照して、論理合成部2は、抽象的な回路の動作に関する記述から半導体装置の論理設計を行って、半導体装置の設計データを作成し、設計データ記憶部3に書き込む(ステップS601)。   Referring to FIG. 23, logic synthesis unit 2 performs logic design of the semiconductor device from the description regarding the operation of the abstract circuit, creates design data of the semiconductor device, and writes the design data in design data storage unit 3 (step S601). ).

次に、タイミング検証部18は、後述する本発明の実施形態に特有の、半導体装置のタイミング検証処理を実施する(ステップS603)。   Next, the timing verification unit 18 performs a timing verification process of the semiconductor device unique to the embodiment of the present invention described later (step S603).

次に、形式検証部6は、半導体装置の形式検証を実施する(ステップS604)。
(タイミング検証処理)
図24は、図23のタイミング検証処理の具体的な処理手順を表わすフローチャートである。
Next, the format verification unit 6 performs format verification of the semiconductor device (step S604).
(Timing verification process)
FIG. 24 is a flowchart showing a specific processing procedure of the timing verification processing of FIG.

図24を参照して、まず、タイミング違反検出部20は、設計データに基づいて、論理シミュレーション時に、タイミング違反した信号が入力されるFFを検出した場合には(ステップS702でYES)、FF論理値設定部21は、タイミング違反した時点で、検出されたFFのシミュレーション上の論理値を不定にする(ステップS703)。   Referring to FIG. 24, first, timing violation detection unit 20 detects an FF to which a timing violation signal is input during logic simulation based on design data (YES in step S702). The value setting unit 21 makes the logical value in the simulation of the detected FF undefined when the timing is violated (step S703).

さらに、FF論理値設定部21は、検出されたFFにおけるメタステーブル収束時間Tr時間が経過した場合には(ステップS704でYES)、検出したFFのシミュレーション上の論理値を確定値にもどす(ステップS705)。   Furthermore, when the metastable convergence time Tr time in the detected FF has elapsed (YES in step S704), the FF logical value setting unit 21 returns the logical value in the simulation of the detected FF to the final value (step S704). S705).

さらに、すべての部分が検証されていない場合には(ステップS706でNO)、未検証部分に関して、ステップS702からの処理が繰返される。すべての部分が検証された場合には(ステップS706でYES)、終了する。   Furthermore, if all the parts have not been verified (NO in step S706), the process from step S702 is repeated for the unverified part. If all parts have been verified (YES in step S706), the process ends.

(例)
図25は、タイミング検証対象の回路を表わす図である。
(Example)
FIG. 25 is a diagram illustrating a circuit to be verified for timing.

図26は、従来のタイミング検証でのタイミングチャートである。
図26に示すように、T1の時点で、ClkAに同期しているFF44から出力される信号IntEnableがClkBに同期しているFF45のタイミング制約に違反したと仮定する。従来の論理シミュレータでは、図24に示されるように、次サイクル以降のClkBの立ち上がりによって確定値がラッチされるまで、FF45から出力される信号SyncEnableのシミュレーション上の論理値が不定に設定される。これによって、信号SyncEnableを受けるFF46から出力される信号Enable、および、信号Enableを受けるMUX42から出力される信号SyncDataのシミュレーション上の論理値が、次サイクルにおいて不定になる。さらに、信号SyncDataを受けるFF43から出力される信号DataOutのシミュレーション上の論理値が、次々サイクルにおいて不定となる。
FIG. 26 is a timing chart in the conventional timing verification.
As shown in FIG. 26, it is assumed that the signal IntEnable output from the FF 44 synchronized with ClkA violates the timing constraint of the FF 45 synchronized with ClkB at time T1. In the conventional logic simulator, as shown in FIG. 24, the logic value in the simulation of the signal SyncEnable output from the FF 45 is set to be indefinite until the definite value is latched by the rise of ClkB after the next cycle. As a result, the logical value of the signal Enable output from the FF 46 that receives the signal SyncEnable and the signal SyncData output from the MUX 42 that receives the signal Enable become undefined in the next cycle. Further, the simulation logical value of the signal DataOut output from the FF 43 that receives the signal SyncData becomes indefinite in successive cycles.

この現象は、T2の時点、およびT3の時点でも同様に発生する。
したがって、従来手法では、実機において正しく同期化されていても、シミュレーションでは不定が伝播し、解析の妨げとなっていた。
This phenomenon occurs similarly at the time T2 and the time T3.
Therefore, in the conventional method, even if the synchronization is correctly performed in the actual machine, the indefiniteness propagates in the simulation, which hinders the analysis.

図27は、第4の実施形態のタイミング検証でのタイミングチャートである。
図26の従来例と同様に、T1の時点で、ClkAに同期しているFF44から出力される信号IntEnableがClkBに同期しているFF45のタイミング制約に違反したと仮定する。
FIG. 27 is a timing chart in the timing verification of the fourth embodiment.
As in the conventional example of FIG. 26, it is assumed that the signal IntEnable output from the FF 44 synchronized with ClkA violates the timing constraint of the FF 45 synchronized with ClkB at time T1.

この場合、従来例と同様に、FF45から出力される信号SyncEnableのシミュレーション上の論理値が不定に設定される。その後、FF45のメタステーブル収束時間Tr経過後にFF45から出力される信号SyncEnableのシミュレーション上の論理値が不定値から確定値に戻される。   In this case, as in the conventional example, the simulation logical value of the signal SyncEnable output from the FF 45 is set to be indefinite. Thereafter, the logical value in the simulation of the signal SyncEnable output from the FF 45 after the lapse of the metastable convergence time Tr of the FF 45 is returned from the indefinite value to the determined value.

メタステーブル収束時間TrがClkBの周期TPBよりも小さいため、FF46のセットアップ制約前にSyncEnableのシミュレーション上の論理値が確定値(‘1’)になる。その結果、次サイクルのEnable信号のシミュレーション上の論理値も確定値(‘1’)となり、SyncData、およびDataOutに不定が乗ることがない。つまり、後段への不必要な不定伝播が発生しない。   Since the metastable convergence time Tr is shorter than the cycle TPB of ClkB, the logical value in the SyncEnable simulation becomes a definite value ('1') before the setup restriction of the FF 46. As a result, the logical value in the simulation of the Enable signal of the next cycle also becomes a definite value ('1'), and SyncData and DataOut do not get indefinite. That is, unnecessary indefinite propagation to the subsequent stage does not occur.

ただし、メタステーブル収束時間TrがClkBの周期TPB以上の場合には、従来と同様に、FF46は不定をラッチしてしまい、後段回路へ不定を伝播させてしまうことになる。   However, when the metastable convergence time Tr is equal to or longer than the ClkB period TPB, the FF 46 latches indefiniteness and propagates indefiniteness to the subsequent circuit as in the conventional case.

以上のように、本実施の形態では、メタステーブル収束時間経過後にタイミング違反したFFのシミュレーション上の論理値を不定から確定値にすることで、不必要な不定伝播を防ぐことができ、より実機に近いシミュレーションが可能となる。また、実機では非同期パスのタイミングを網羅的に検証することが難しいが、本実施の形態によってシミュレーション上で実現することができる。   As described above, in this embodiment, by changing the logic value on the simulation of the FF that has violated the timing after the metastable convergence time has elapsed from an indeterminate value to a deterministic value, unnecessary indefinite propagation can be prevented, and more Simulation close to is possible. In addition, although it is difficult to verify the timing of asynchronous paths comprehensively in an actual machine, this embodiment can be realized on simulation.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

1,11,17 半導体設計装置、2 論理合成部、3 設計データ記憶部、4 同期化回路挿入部、5 タイミング検証部、6,12 形式検証部、7 非同期パス検出部、8 遅延設定部、9 FF挿入部、14 同期化回路検出部、15 論理圧縮部、16 一致判定部、20 タイミング違反検出部、21 論理値設定部、51,74,161 第1の回路ブロック、52,73,162 第2の回路ブロック、41,43,44,45,46,53,55,62,64,65,83,84,85,91,92,93,163,164,167,168 FF、54,87,165,166 Logic、61,63,77,78 同期化回路、66,67,90,95 遅延回路、188,94 セレクタ、42 MUX、70 半導体チップ、71 SRAM、72 フラッシュメモリ、173 CPU、574 I2Cバスインタフェース、575 USBコントローラ、76,79 PLL、82 クロックツリー、86 バッファ、80 データバス、81 周辺パス、Tm 端子。   1, 11, 17 Semiconductor design apparatus, 2 logic synthesis unit, 3 design data storage unit, 4 synchronization circuit insertion unit, 5 timing verification unit, 6,12 format verification unit, 7 asynchronous path detection unit, 8 delay setting unit, 9 FF insertion unit, 14 synchronization circuit detection unit, 15 logic compression unit, 16 coincidence determination unit, 20 timing violation detection unit, 21 logical value setting unit, 51, 74, 161 first circuit block, 52, 73, 162 Second circuit block 41, 43, 44, 45, 46, 53, 55, 62, 64, 65, 83, 84, 85, 91, 92, 93, 163, 164, 167, 168 FF, 54, 87 , 165, 166 Logic, 61, 63, 77, 78 Synchronization circuit, 66, 67, 90, 95 Delay circuit, 188, 94 selector, 42 MUX, 70 Semiconductor chip, 7 1 SRAM, 72 flash memory, 173 CPU, 574 I2C bus interface, 575 USB controller, 76, 79 PLL, 82 clock tree, 86 buffer, 80 data bus, 81 peripheral path, Tm terminal.

Claims (9)

半導体装置の設計データを記憶する記憶部と、
前記設計データに基づいて、前記半導体装置に含まれる非同期パスを検出する検出部と、
前記検出した非同期パスに第1のフリップフロップを挿入する挿入部と、
前記挿入したフリップフロップにおいてメタステーブル状態が開始してから終了するまでのメタステーブル収束時間がクロックツリーのレイテンシよりも短いときには、前記クロックツリーのあるノードから出力される第1のクロックを前記第1のフリップフロップのクロック端子の入力に設定し、前記クロックツリーの別のノードから出力され、かつ前記第1のクロックよりも前記メタステーブル収束時間だけ遅延した第2のクロックを前記検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する遅延設定部とを備え、
前記遅延設定部は、前記メタステーブル収束時間がクロックツリーのレイテンシ以上のときには、前記クロックツリーのあるノードから出力される第1のクロックを前記第1のフリップフロップのクロック端子の入力に設定し、前記第1のクロックを前記メタステーブル収束時間だけ、前記クロックツリー以外の遅延回路で遅延させた第2のクロックを前記検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定する、半導体設計装置。
A storage unit for storing design data of the semiconductor device;
A detection unit that detects an asynchronous path included in the semiconductor device based on the design data;
An insertion unit for inserting a first flip-flop into the detected asynchronous path;
When the metastable convergence time from the start to the end of the metastable state in the inserted flip-flop is shorter than the latency of the clock tree, the first clock output from a node in the clock tree is the first clock. A second clock output from another node of the clock tree and delayed by the metastable convergence time from the first clock is set to the input of the clock terminal of the flip-flop of A delay setting unit for setting the input to the clock terminal of the receiving flip-flop,
The delay setting unit sets a first clock output from a node of the clock tree as an input of a clock terminal of the first flip-flop when the metastable convergence time is equal to or higher than a latency of a clock tree. A second clock obtained by delaying the first clock by a delay circuit other than the clock tree by the metastable convergence time is set as an input of a clock terminal of a flip-flop on the receiving side of the detected asynchronous path; Semiconductor design equipment.
半導体装置の設計データを記憶する記憶部と、
前記設計データに基づいて、前記半導体装置に含まれる非同期パスを検出する検出部と、
前記検出した非同期パスに、第1のフリップフロップと、前記第1のフリップフロップからデータを受ける第2のフリップフロップを挿入する挿入部と、
前記挿入した第1のフリップフロップにおいてメタステーブル状態が開始してから終了するまでのメタステーブル収束時間がクロックツリーのレイテンシよりも短いときには、前記クロックツリーのあるノードから出力される第1のクロックを前記第1のフリップフロップのクロック端子の入力および前記検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定し、前記クロックツリーの別のノードから出力され、かつ前記第1のクロックとの位相差が前記メタステーブル収束時間となる第2のクロックを前記第2のフリップフロップのクロック端子の入力に設定する遅延設定部とを備え、
前記遅延設定部は、前記メタステーブル収束時間がクロックツリーのレイテンシ以上のときには、前記クロックツリーのあるノードから出力される第1のクロックを前記第1のフリップフロップのクロック端子の入力および前記検出された非同期パスの受信側のフリップフロップのクロック端子の入力に設定し、前記第1のクロックを前記メタステーブル収束時間だけ、前記クロックツリー以外の遅延回路で遅延させた第2のクロックを前記第2のフリップフロップのクロック端子の入力に設定する、半導体設計装置。
A storage unit for storing design data of the semiconductor device;
A detection unit that detects an asynchronous path included in the semiconductor device based on the design data;
An insertion unit for inserting a first flip-flop and a second flip-flop for receiving data from the first flip-flop into the detected asynchronous path;
When the metastable convergence time from the start to the end of the metastable state in the inserted first flip-flop is shorter than the latency of the clock tree, the first clock output from a node in the clock tree is Set to the input of the clock terminal of the first flip-flop and the input of the clock terminal of the flip-flop on the receiving side of the detected asynchronous path, output from another node of the clock tree, and the first clock A delay setting unit that sets a second clock whose phase difference is the metastable convergence time to the input of the clock terminal of the second flip-flop,
When the metastable convergence time is equal to or higher than the latency of the clock tree, the delay setting unit detects the first clock output from a node in the clock tree and the input of the clock terminal of the first flip-flop. The second clock obtained by delaying the first clock by the delay circuit other than the clock tree by the metastable convergence time is set to the input of the clock terminal of the flip-flop on the receiving side of the asynchronous path. Semiconductor design device set to the input of the clock terminal of the flip-flop.
互いに同期しないクロックで動作する第1の回路ブロックと第2の回路ブロックとの間に接続されたフリップフロップと、
第1のクロックと第2のクロックが入力されて、いずれかのクロックを前記フリップフロップのクロック端子へ出力するセレクタとを備え、
前記第2のクロックが、前記第2の回路ブロックのフリップフロップのクロック端子に入力され、

前記第2のクロックは、前記第1のクロックを前記第2の回路ブロックのフリップフロップにおいてメタステーブル状態が開始してから終了するまでのメタステーブル収束時間だけ遅延した信号である、半導体装置。
A flip-flop connected between the first circuit block and the second circuit block operating with clocks that are not synchronized with each other;
A selector that receives the first clock and the second clock and outputs one of the clocks to the clock terminal of the flip-flop;
The second clock is input to a clock terminal of a flip-flop of the second circuit block;

The semiconductor device, wherein the second clock is a signal obtained by delaying the first clock by a metastable convergence time from the start of the metastable state to the end of the flip-flop of the second circuit block.
互いに同期しないクロックで動作する第1の回路ブロックと第2の回路ブロックとの間に接続された前段の第1のフリップフロップおよび後段の第2のフリップフロップと、
第1のクロックと第2のクロックが入力されて、いずれかのクロックを前記第2のフリップフロップのクロック端子へ出力するセレクタとを備え、
前記第1のクロックが、第2の回路ブロックのフリップフロップのクロック端子および前記第1のフリップフロップのクロック端子に入力され、

前記第2のクロックは、前記第1のクロックを前記第2の回路ブロックのフリップフロップにおいてメタステーブル状態が開始してから終了するまでのメタステーブル収束時間だけ遅延した信号である、半導体装置。
A first flip-flop in the preceding stage and a second flip-flop in the subsequent stage connected between the first circuit block and the second circuit block that operate with clocks that are not synchronized with each other;
A selector that receives the first clock and the second clock and outputs one of the clocks to the clock terminal of the second flip-flop;
The first clock is input to a clock terminal of a flip-flop of a second circuit block and a clock terminal of the first flip-flop;

The semiconductor device, wherein the second clock is a signal obtained by delaying the first clock by a metastable convergence time from the start of the metastable state to the end of the flip-flop of the second circuit block.
前記第1のクロックおよび前記第2のクロックは、クロックツリーのそれぞれ異なるノードから出力された信号である、請求項3または4に記載の半導体装置。   The semiconductor device according to claim 3, wherein the first clock and the second clock are signals output from different nodes of a clock tree. 前記第2のクロックは、前記クロックツリーの末端のノードから出力された信号である、請求項5記載の半導体装置。   The semiconductor device according to claim 5, wherein the second clock is a signal output from a terminal node of the clock tree. 前記第1のクロックを前記メタステーブル収束時間だけ遅延させて前記第2のクロックを出力する遅延回路をさらに備える、請求項3または4に記載の半導体装置。   5. The semiconductor device according to claim 3, further comprising a delay circuit that delays the first clock by the metastable convergence time and outputs the second clock. 6. 半導体装置の設計データを記憶する記憶部と、
前記設計データに基づいて、前記半導体装置に含まれる、それぞれ異なるクロックで動作する第1の回路ブロックと第2の回路ブロックの間の非同期パスに挿入された同期化回路を検出する検出部と、
前記第2の回路ブロックの入力の論理を前記挿入された同期化回路を削除することによって、論理圧縮する圧縮部と、
前記同期化回路挿入前の前記第2の回路ブロックの入力の論理と、前記圧縮後の前記第2の回路ブロックの入力の論理が一致するか否かを判定する一致判定部とを備えた、半導体設計装置。
A storage unit for storing design data of the semiconductor device;
Based on the design data, a detection unit that detects a synchronization circuit that is included in the semiconductor device and that is inserted in an asynchronous path between a first circuit block and a second circuit block that operate with different clocks, and
A compression unit that logically compresses the input logic of the second circuit block by deleting the inserted synchronization circuit;
A match determination unit that determines whether the input logic of the second circuit block before insertion of the synchronization circuit and the input logic of the second circuit block after compression match; Semiconductor design equipment.
半導体装置の設計データを記憶する記憶部と、
前記設計データに基づいて、論理シミュレーション時に、タイミング違反した信号が入力されるフリップフロップを検出する検出部と、
論理シミュレーション時に、タイミング違反した時点で、前記検出したフリップフロップのシミュレーション上の出力を不定値に設定し、かつその後前記検出したフリップフロップにおいてメタステーブル状態が開始してから終了するまでのメタステーブル収束時間経過後に、前記フリップフロップのシミュレーション上の出力を不定値から確定値に戻す設定部とを備えた、半導体設計装置。
A storage unit for storing design data of the semiconductor device;
Based on the design data, at the time of logic simulation, a detection unit that detects a flip-flop to which a signal violating timing is input,
During logic simulation, when the timing is violated, the simulation output of the detected flip-flop is set to an indefinite value, and then the metastable convergence from the start to the end of the metastable state in the detected flip-flop A semiconductor design apparatus comprising: a setting unit that returns the simulation output of the flip-flop from an indefinite value to a definite value after a lapse of time.
JP2011018278A 2011-01-31 2011-01-31 Semiconductor design device and semiconductor device Withdrawn JP2012159960A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011018278A JP2012159960A (en) 2011-01-31 2011-01-31 Semiconductor design device and semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011018278A JP2012159960A (en) 2011-01-31 2011-01-31 Semiconductor design device and semiconductor device

Publications (1)

Publication Number Publication Date
JP2012159960A true JP2012159960A (en) 2012-08-23

Family

ID=46840456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011018278A Withdrawn JP2012159960A (en) 2011-01-31 2011-01-31 Semiconductor design device and semiconductor device

Country Status (1)

Country Link
JP (1) JP2012159960A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108471308A (en) * 2017-02-23 2018-08-31 拉碧斯半导体株式会社 Semiconductor device and method of data synchronization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108471308A (en) * 2017-02-23 2018-08-31 拉碧斯半导体株式会社 Semiconductor device and method of data synchronization
CN108471308B (en) * 2017-02-23 2023-07-18 拉碧斯半导体株式会社 Semiconductor device and data synchronization method

Similar Documents

Publication Publication Date Title
US9536024B2 (en) Methods for static checking of asynchronous clock domain crossings
US10990121B2 (en) Apparatus and method for achieving glitch-free clock domain crossing signals
US8205110B2 (en) Synchronous operation of a system with asynchronous clock domains
US7478256B2 (en) Coordinating data synchronous triggers on multiple devices
JP2008140821A (en) Semiconductor device and design method of the same
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
US8156371B2 (en) Clock and reset synchronization of high-integrity lockstep self-checking pairs
US20070129923A1 (en) Dynamic synchronizer simulation
US9449127B1 (en) System for verifying timing constraints of IC design
US7159199B2 (en) Method for verifying adequate synchronization of signals that cross clock environments and system
US8453090B2 (en) System and method for optimizing logic timing
Chaturvedi Static analysis of asynchronous clock domain crossings
US7735032B2 (en) Early HSS Rx data sampling
JP2012159960A (en) Semiconductor design device and semiconductor device
Tarawneh et al. An RTL method for hiding clock domain crossing latency
Tarawneh et al. Formal verification of clock domain crossing using gate-level models of metastable flip-flops
Karimi et al. Test generation for clock-domain crossing faults in integrated circuits
US7797653B2 (en) Circuit verification apparatus, circuit verification method, and signal distribution method for the same
CN116956784A (en) Verification circuit, method, equipment and medium based on pre-simulation
CN213458042U (en) Analog processing circuit for metastable state in pre-simulation
JP5145167B2 (en) Clock domain check method, clock domain check program, and recording medium
Ashar et al. Failures and verification solutions related to untimed paths in SOCs
Tarawneh et al. Xprova: Formal Verification Tool with Built-in Metastability Modeling
Vrinda et al. Towards Improving Clock Domain Crossing Verification for SoCs
Łuczyk A method to manage unknown values generation and propagation during gate level simulations of multi-clock digital circuits

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140401