JP5310036B2 - 検証支援プログラムおよび検証支援装置 - Google Patents

検証支援プログラムおよび検証支援装置 Download PDF

Info

Publication number
JP5310036B2
JP5310036B2 JP2009019651A JP2009019651A JP5310036B2 JP 5310036 B2 JP5310036 B2 JP 5310036B2 JP 2009019651 A JP2009019651 A JP 2009019651A JP 2009019651 A JP2009019651 A JP 2009019651A JP 5310036 B2 JP5310036 B2 JP 5310036B2
Authority
JP
Japan
Prior art keywords
detector
data
clock domain
combinational circuit
circuit
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
Application number
JP2009019651A
Other languages
English (en)
Other versions
JP2010176486A (ja
Inventor
洋哲 岩下
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009019651A priority Critical patent/JP5310036B2/ja
Priority to US12/696,755 priority patent/US7888971B2/en
Publication of JP2010176486A publication Critical patent/JP2010176486A/ja
Application granted granted Critical
Publication of JP5310036B2 publication Critical patent/JP5310036B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

本発明は、複数のクロックドメインを有する半導体集積回路の論理検証を支援する検証支援プログラムおよび検証支援装置に関する。
従来より、1つのクロックドメイン(以下、送信クロックドメインと称す。)内のフリップフロップ(以下、「FF(Flip Flop)」と称す。)からのデータが受け渡されて異なるクロックドメイン(以下、受信クロックドメインと称す。)内のFFに入力される場合がある。
受信クロックドメイン内のFFに入力される場合、受信クロックドメイン内のFFのクロックのタイミングに関わらずデータが入力されるため、セットアップタイムまたはホールドタイムが違反されてFFの出力にメタステーブル状態が発生することがある。メタステーブル状態の影響が論理値の差異として後段のFFや組合せ回路に伝播し、半導体集積回路が誤動作することがある。そのため、メタステーブル状態が発生しても半導体集積回路が誤動作しないことを検証する必要がある。
しかしながら、通常のFFのモデルを使用した論理検証では、メタステーブル状態の影響が考慮されない。そのため、送信クロックドメインから受信クロックドメイン内に受け渡されるデータが入力される受信FFのモデルをメタステーブル状態の影響を模擬するモデルに変更して検証が行われる技術が知られている(たとえば、非特許文献1および2。)。
モデル変更後の検証は、メタステーブル状態の影響が検証結果に含まれているため、障害要因の分析が難しい。そのため通常、モデル変更前の論理検証により通常の機能に問題が無いことが確認される。そして、同一の入力パターンがモデル変更後の論理検証にも使用され、メタステーブル状態の影響に起因する問題が無いかが検査される。そこでは、入力パターンがメタステーブル状態の影響に起因する問題をテスト可能であるか否かが重要である。
しかしながら、入力パターンがメタステーブル状態の影響に起因する問題を十分にテスト可能であるか否かを厳密に評価しようとすると、クロックドメイン間で受け渡されるデータの変化が半導体集積回路の出力端子に伝播されるまで、半導体集積回路内のすべての動作状態を追跡する必要があり、現実的な計算量では処理できない。したがって、入力パターンの十分性の評価精度とその計算コストのトレードオフが課題であった。
半導体集積回路の出力端子のみを観測した場合、どのクロックドメイン間のデータの変化が伝播されているかが不明であった。そのため、入力パターンがメタステーブル状態を検証可能であるか否かが不明となり、検証もれが発生するという問題点があった。
そのため多くの場合、送信クロックドメインから受信クロックドメインへの入力データの変化のみが観測され、入力パターンがメタステーブル状態の影響に起因する問題をテスト可能であるか否かが判断されていた。送信クロックドメインから受信クロックドメインへ渡されるデータは、一般に受信クロックドメイン内で毎サイクル参照されるわけではない。組合せ回路の出力では、組合せ回路への入力が複数ある場合、メタステーブル状態の影響が伝播した入力以外の入力により影響の伝播が遮断されてしまうことがある。入力データの変化のみの観測ではそのような場合が考慮されないため、検証もれが発生しやすいという問題点があった。
また、受信FFのモデルをメタステーブル状態の影響を模擬するFFのモデルに変更して検証が行われる技術では、設計者(または検証者)は、変更した受信FFのモデルの出力データを観測してメタステーブル状態の発生回数を確認し、入力パターンの十分性を評価していた。しかしながら、この場合も発生したメタステーブル状態が参照され、後段に影響が伝わるかどうかが全く考慮されない。そのため同様に、検証もれが発生しやすいという問題点があった。
本開示技術は、上述した従来技術による問題点を解消するため、メタステーブル状態の影響を受信FFの出力に接続された組合せ回路以降の位置で観測することで検証精度の向上および検証期間の短縮化を図ることができる検証支援プログラムおよび検証支援装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本開示技術は、検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出し、検出されたデータの変化が組合せ回路の出力に伝播されるか否かを組合せ回路の入力データに応じて判別して出力することを要件とする。
本開示技術によれば、送信クロックドメインから受信クロックドメインに受け渡されるデータの変化が受信クロックドメイン内の組合せ回路の出力に伝播されるか否かを、組合せ回路の入力データの状態に応じて判別する。これにより、メタステーブル状態の影響の伝播を組合せ回路の出力位置で観測することができる。
本検証支援プログラムおよび検証支援装置によれば、メタステーブル状態の影響の伝播を組合せ回路の出力位置で観測することでより検証効果の高い入力パターンを選別できるようになり、その結果として検証精度の向上および検証期間の短縮化を図ることができるという効果を奏する。
実施の形態1にかかるJitter伝播可能性検出器を示す説明図である。 メタステーブル状態の例を示す説明図である。 複数のクロックドメインを含む検証対象回路300の一例を示す説明図である。 Q1を観測位置としたJitter伝播可能性検出器を示す説明図である。 実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。 実施の形態1にかかる検証支援装置の機能的構成を示すブロック図である。 1−1Jitter Detectorのモデルの一例を示す説明図(その1)である。 1−1Jitter Detectorのモデルの一例を示す説明図(その2)である。 検証支援装置600による検証結果の一例を示す説明図である。 検証支援装置600の検証支援処理手順を示すフローチャートである。 DUT情報の一例を示す説明図である。 CDCリストの一例を示す説明図である。 実施の形態2にかかる検証支援装置の機能的構成を示すブロック図である。 論理式(4)で構成される回路を示す説明図である。 論理式(6)で構成される回路を示す説明図である。 2−1Jitter Detector402を示す説明図である。 Q2が観測位置であるJitter伝播可能性検出器を示す説明図である。 検証支援装置1200の検証支援処理手順を示すフローチャートである。 Jitter Detectorの生成処理の処理手順を示すフローチャートである。 Jitter伝播判別器の処理手順を示すフローチャートである。 Jitter Multiplexerの生成処理の処理手順を示すフローチャートである。 実施の形態3にかかるJitter伝播可能性検出器を示す説明図である。 実施の形態3にかかる検証支援装置の機能的構成を示すブロック図である。 検証支援装置2200の検証支援処理手順を示すフローチャートである。 実施の形態4にかかる検証支援装置の機能的構成を示すブロック図である。 検証支援装置2300の検証支援処理手順を示すフローチャートである。 組合せ回路の複製処理の処理手順を示すフローチャートである。 Jitter伝播検出器を示す説明図である。 実施の形態5にかかる検証支援装置の機能的構成を示すブロック図である。 検証支援装置2700の検証支援処理手順を示すフローチャートである。 実施の形態6にかかる検証支援装置の機能的構成を示すブロック図である。 検証支援装置2900の検証支援処理手順を示すフローチャートである。
以下に添付図面を参照して、本開示技術の好適な実施の形態を詳細に説明する。本実施の形態では、受信クロックドメイン内の組合せ回路の出力にメタステーブル状態の影響が伝播されるか否かを検証可能な入力パターンであるか否かを判断し、作成された入力パターンを用いてモデル変更後の検証結果とモデル変更前の検証結果の比較を行う。
実施の形態1および3では、Jitter伝播可能性検出器を用いて送信クロックドメインから受信クロックドメインに受け渡されるデータが、受信クロックドメイン内の組合せ回路の出力に伝播されるか否かを判別する検証支援プログラムについて説明する。
つぎに、実施の形態2では、実施の形態1にかかるJitter伝播可能性検出器を自動で生成する検証支援プログラムについて説明する。そして、実施の形態4では、実施の形態3で用いるJitter伝播可能性検出器を自動で生成する検証支援プログラムについて説明する。
つぎに、実施の形態5では、Jitter伝播検出器を用いてモデル変更後の検証結果とモデル変更前の検証結果の比較を行う。そして、実施の形態6では、実施の形態5にかかるJitter伝播検出器を自動で生成する検証支援プログラムについて説明する。
(実施の形態1)
まず、実施の形態1を説明する。実施の形態1では、Jitter伝播可能性検出器を用いて、受信クロックドメインに入力される入力データの変化を検出する。そして、検出結果と受信クロックドメイン内の組合せ回路の入力とに基づいて、入力データの変化が組合せ回路の出力に伝播されるか否かを判別する。Jitter伝播可能性検出器は、データの変化が組合せ回路の出力に伝播されるか否かを検出する検出器である。
図1は、実施の形態1にかかるJitter伝播可能性検出器を示す説明図である。複数のクロックドメインを含む回路情報101には、送信クロックドメイン102内の送信FF105の出力データが、受信クロックドメイン103内の受信FF106に入力されている。送信クロックドメイン102内の送信FF105は、CLK1に同期している。そして、受信クロックドメイン103内の受信FF106およびFF108は、CLK2に同期している。S1が入力される受信FF106の出力データがS2であり、S2が入力されるFF108の出力データがt1である。図2を用いて、受信クロックドメイン内で発生するメタステーブル状態について説明する。
図2は、メタステーブル状態の例を示す説明図である。タイミングチャート200は、CLK2の立ち上がりにS1がセットアップタイムとホールドタイムを遵守せずに変化した場合を示している。受信FF106の出力であるS2は、次のCLK2の立ち上がりでS1のデータが取り込まれるまでメタステーブル状態となっている。メタステーブル状態は、論理値0とも論理値1とも判定される可能性を持った、不安定な状態である。したがって、メタステーブル状態を取り込んだFF108の出力であるt1には、予測不能な論理値(0または1)が現れる。
図1に戻って、Jitter伝播可能性検出器104は、入力された入力パターンにより発生したメタステーブル状態の影響が受信クロックドメイン103内の組合せ回路107の出力まで伝播するか否かを判別する。Jitter伝播可能性検出器104は、検証用のモデルである。Jitter伝播可能性検出器104は、Jitter Detector109と、Jitter Multiplexer110と、受信クロックドメイン103と同一段数のFFとにより構成されている。Jitter Detector109は、データの変化を検出する検出器である。そして、Jitter Multiplexer110は、データの変化が組合せ回路の出力に伝播されるか否かを組合せ回路の入力データに応じて判別する判別器である。
Jitter Detector109により送信FF105の出力の変化が検出される。そして、Jitter Multiplexer110により送信FF105の出力データの変化が組合せ回路107の出力に伝播されるか否かを判別する。そして、たとえば、判別結果を記憶装置に記憶されているカバレッジDB111に出力する。つぎに、図3では、検証対象回路の例を示す。
(検証対象回路300の一例)
図3は、複数のクロックドメインを含む検証対象回路300の一例を示す説明図である。検証対象回路300は、送信クロックドメイン102と受信クロックドメイン103を含む構成である。実際には、検証対象回路300はRTL(Register Transfer Level)記述またはネットリストであるが、理解の容易さのために回路図で示している。送信クロックドメイン102内のFF1の出力であるT1は、受信クロックドメイン103内のFF4の入力である。送信クロックドメイン102内のFF2の出力であるT2とFF3の出力であるT3は、組合せ回路301の入力である。そして、組合せ回路301の出力であるGが受信クロックドメイン103内のFF5の入力である。
実施の形態1では、たとえば、受信クロックドメイン103内の組合せ回路302の出力であるQ1にT1、T2およびT3のデータの変化が伝播されるか否かを判別する。図4では、Q1を観測位置とした場合のJitter伝播可能性検出器を示す。
図4は、Q1を観測位置としたJitter伝播可能性検出器を示す説明図である。Jitter伝播可能性検出器400は、1−1Jitter Detector401と、2−1Jitter Detector402と、FF403と、FF404と、FF407と、FF408と、Jitter Multiplexer405とを含む構成である。
ここで、「Jitter Detector」の接頭にある「x−1」とは、x個の送信FFから1個の受信FFに入力されていることを示す。したがって、1−1Jitter Detector401は、送信クロックドメイン102内の1個の送信FFから受信クロックドメイン103内の1個の受信FFに入力されていることを示す。同様に、2−1Jitter Detector402は、送信クロックドメイン102内の2個の送信FFから受信クロックドメイン103内の1個の受信FFに入力されていることを示す。
1−1Jitter Detector401は、FF4の入力データの変化を検出する。そして、2−1Jitter Detector402は、FF5の入力データの変化を検出する。FF403と、FF404と、FF407と、FF408とは、検証対象回路300と同期させるためのFFである。Jitter Multiplexer405は、T1とGの変化がQ1に伝播されるか否かを組合せ回路302の入力データに応じて判別する。そして、判別結果を記憶装置に記憶されているカバレッジDB406に出力する。
(検証支援装置のハードウェア構成)-
図5は、実施の形態にかかる検証支援装置のハードウェア構成を示すブロック図である。図5において、検証支援装置は、CPU(Central Processing Unit)501と、ROM(Read‐Only Memory)502と、RAM(Random Access Memory)503と、磁気ディスクドライブ504と、磁気ディスク505と、光ディスクドライブ506と、光ディスク507と、ディスプレイ508と、I/F(Interface)509と、キーボード510と、マウス511と、スキャナ512と、プリンタ513と、を備えている。また、各構成部はバス500によってそれぞれ接続されている。
ここで、CPU501は、検証支援装置の全体の制御を司る。ROM502は、ブートプログラムなどのプログラムを記憶している。RAM503は、CPU501のワークエリアとして使用される。磁気ディスクドライブ504は、CPU501の制御にしたがって磁気ディスク505に対するデータのリード/ライトを制御する。磁気ディスク505は、磁気ディスクドライブ504の制御で書き込まれたデータを記憶する。
光ディスクドライブ506は、CPU501の制御にしたがって光ディスク507に対するデータのリード/ライトを制御する。光ディスク507は、光ディスクドライブ506の制御で書き込まれたデータを記憶したり、光ディスク507に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ508は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ508は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)509は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク514に接続され、このネットワーク514を介して他の装置に接続される。そして、I/F509は、ネットワーク514と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F509には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード510は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス511は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ512は、画像を光学的に読み取り、検証支援装置内に画像データを取り込む。なお、スキャナ512は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ513は、画像データや文書データを印刷する。プリンタ513には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(検証支援装置の機能的構成)
つぎに、検証支援装置の機能的構成について説明する。図6は、実施の形態1にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置600は、検出部601と、判別部602と、を含む構成である。検出部601と判別部602は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F509により、その機能を実現する。
検出部601は、送信クロックドメイン102から受信クロックドメイン103に受け渡されるデータの変化を検出する。具体的には、たとえば、Jitter伝播可能性検出器104内の1−1Jitter Detector401が、受信クロックドメイン103のFF4に入力されるT1のデータの変化を検出する。図7−1と図7−2にて1−1Jitter Detector401のモデルの例を示す。
図7−1は、1−1Jitter Detectorのモデルの一例を示す説明図(その1)である。モデル701は、ハードウェア記述言語で記述されているJitter Detectorのモデルである。出力であるEは、入力であるTが変化すると1となりPERIODの時間が過ぎると0となる。なお、モデル701は、たとえば、ライブラリとしてRAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されている。
図7−2は、1−1Jitter Detectorのモデルの一例を示す説明図(その2)である。モデル702は、ハードウェア記述言語で記述されているJitter Detectorのモデルである。出力であるEは、入力であるTが変化すると1となりRX_CLKの立ち上がりにより0となる。RX_CLKは、Jitter伝播可能性検出器104の例では、CLK2とする。なお、モデル702は、たとえば、ライブラリとしてRAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されている。
図6に戻って、判別部602は、検出部601により検出されたデータの変化が受信クロックドメイン103内の組合せ回路の出力に伝播されるか否かを組合せ回路の入力データに応じて判別して出力する。具体的には、たとえば、Jitter Multiplexer405が、検出部601の検出結果と受信クロックドメイン103内の組合せ回路302の入力データを入力として判別する。たとえば、判別結果が“0”であれば伝播されず、判別結果が“1”であれば伝播されていると判別している。Jitter Multiplexer405は、下記論理式(1)により構成されている。
J_Q1=(R6・J_R7)+(J_R6・R7)+(J_R6・J_R7)
・・・(1)
Jitter Multiplexer405を構成する論理式は、組合せ回路302の論理式を論理変換が行われることで決定される。論理式の求め方については、後述する実施の形態2にて説明する。つぎに、図8にてJitter伝播可能性検出器の検証結果を示す。
図8は、検証支援装置600による検証結果の一例を示す説明図である。タイミングチャート800は、検証支援装置600による検証結果を示すタイミングチャートである。1〜11までの番号は、CLK2のクロック数を示している。CLK2の11クロック目では、J_Q1が“1”となっている。したがって、タイミングチャート800を検証する入力パターンでは、メタステーブル状態が発生するとその影響はCLK2の11クロック目の組合せ回路302の出力に伝播される。これにより、設計者が、組合せ回路に伝播されることを確認可能な入力パターンであるか否かを容易に判断することができる。
また、判別部602は、判別結果を出力する。具体的には、たとえば、入力パターンと関連づけられて判別結果を出力する。出力形式としては、たとえば、ディスプレイ508への表示、プリンタ513への印刷出力、I/F509による外部装置への送信がある。また、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶することとしてもよい。
これにより、入力された入力パターンにより、受信クロックドメイン103内で発生するメタステーブル状態の影響が組合せ回路の出力に伝播されることを検証できるか否かが判断できる。したがって、検証の精度を上げることができる。
なお、上述した検出部601、判別部602は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505などの記録媒体に記録されたプログラムを、CPU501が実行することによって、その機能を実現する。
(検証支援装置600の検証支援処理手順)
実施の形態1にかかる検証支援装置600の検証支援処理手順について説明する。図9は、検証支援装置600の検証支援処理手順を示すフローチャートである。図9においてまず、検出部601により、受信クロックドメインへの入力データの変化を検出し(ステップS901)、判別部602により、データの変化が組合せ回路の出力に伝播されるか否かを判別する(ステップS902)。データの変化が組合せ回路の出力に伝播されると判断された場合(ステップS902:Yes)、伝播されることを示す情報を付して出力し(ステップS903)、一連の処理を終了する。データの変化が組合せ回路の出力に伝播されないと判断された場合(ステップS902:No)、伝播されないことを示す情報を付して出力し(ステップS904)、一連の処理を終了する。
以上説明したように実施の形態1では、受信クロックドメイン103に受け渡されるデータの変化が受信クロックドメイン103内の組合せ回路の出力に伝播されるか組合せ回路内で相殺されるかが自動判別される。したがって、組合せ回路でのデータの変化の伝播/相殺が、その組み合わせ回路の出力位置で観測することができる。これにより、他の組合せ回路の影響を受けることなく観測できるため、検証精度の向上を図ることができる。また、他の組合せ回路を検証対象から除外した分、検証期間を短縮することができる。さらに、受信クロックドメイン103内の組合せ回路が複雑であってもメタステーブル状態の影響をテスト可能な入力パターンを作成することができる。
(実施の形態2)
つぎに、実施の形態2について説明する。実施の形態2では、実施の形態1のJitter伝播可能性検出器を自動で生成する。これにより、検証期間を短縮することができる。なお、実施の形態1で説明した構成と同一構成には同一符号を付し、同一構成の説明を省略する。
(DUT(Device Under Test)情報)
図10は、DUT情報の一例を示す説明図である。DUT情報1000では、FFリスト1001と組み合わせ論理リスト1002を保持している。FFリスト1001は、FFの名前と、クロック名と、入力名と、出力名の情報を保持している。組み合わせ論理リスト1002は、組合せ回路の出力名と、組合せ回路の論理式とを保持している。DUT情報1000内のデータは、上述した検証対象回路300を例としている。なお、DUT情報1000は、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されている。つぎに、図11にてCDCリストを示す。
(CDC(Clock Domain Crossing)リスト)
図11は、CDCリストの一例を示す説明図である。CDCリスト1100では、CDCの名前と、送信FFリストと、受信FF名を保持している。たとえば、CDC1では、FF1の出力が、FF4に入力されることを示している。たとえば、CDC2では、FF2とFF3の出力が、組合せ回路の入力に入りFF5に入力されることを示している。CDCリスト1100内のデータは、上述した検証対象回路300を例としている。なお、CDCリスト1100は、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されている。
(検証支援装置の機能的構成)
つぎに、検証支援装置の機能的構成について説明する。図12は、実施の形態2にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置1200は、検出器生成部1201と、判別器生成部1202と、構築部1205とを含む構成である。検出器生成部1201と、判別器生成部1202と、構築部1205は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F509により、その機能を実現する。
検出器生成部1201は、検証対象回路300の送信クロックドメイン102内の送信FFから受信クロックドメイン103内の受信FFへ受け渡され受信クロックドメイン103内の組合せ回路に入力されるデータの変化を検出するJitter Detectorを、送信FFごとに生成する。具体的には、たとえば、CPU501が、記憶装置にアクセスして1−1Jitter Detectorのモデル701(またはモデル702)を読み出し、送信FFの数の1−1Jitter Detectorを生成する。
Jitter伝播可能性検出器400を例にすると、受信クロックドメイン103内の受信FFであるFF4にデータを受け渡す送信クロックドメイン102内の送信FFは、FF1のみである。たとえば、CPU501は、記憶装置にアクセスしてモデル701(またはモデル702)を読み出し、1個の1−1Jitter Detector401を生成する。2−1Jitter Detector402については、後述する。
つぎに、判別器生成部1202は、検証対象回路300内の組合せ回路の出力にデータの変化が伝播されるか否かを判別可能な論理式で構成されるJitter Multiplexerを生成する。具体的には、CPU501が、検証対象回路300の組み合わせ回路の論理式を論理変換してJitter Multiplexerを生成する。判別器生成部1202は、第1の変換部1203と第2の変換部1204によって得られる論理式で構成されるJitter Multiplexerを生成する。
第1の変換部1203は、受信クロックドメイン103内の組合せ回路の論理式を、検出器生成部1201により生成されたJitter Detectorの出力データに応じて伝播の有無を示す係数または受信クロックドメイン103に入力されるデータを選択する選択回路と、選択回路の出力が入力される組合せ回路とを含む論理式に変換する。
具体的には、たとえば、CPU501が、記憶装置にアクセスしてDUT情報1000から組合せ回路の論理式f(t1,・・・,tn)を読み出す。t1,・・・,tnは、論理式の入力である。たとえば、DUT情報1000の中から受信クロックドメイン103内の組合せ回路302の論理式を読み出す。読み出された論理式を下記に示す。
f(R6,R7)=R6&R7
・・・(2)
そして、CPU501が、記憶装置に記憶されている下記論理式(3)にアクセスして読み出し、取得した組合せ回路の論理式の変数を下記論理式(3)に変換し、新たな論理式f´を生成する。
f´(t1,・・・,tn,j1,・・・,jn,v1,・・・,vn)=f((j1&v1)|(〜j1&t1),・・・,(j2&v2)|(〜j2&t2))
・・・(3)
変数jは、Jitter Detectorの出力を示している。そして、変数vは、Jitter Detectorによりデータの変化が検出された場合、データが組合せ回路の出力に伝播されるか否かを示す伝播の有無を示す係数である。
たとえば、論理式(3)を用いて論理式(2)が変換された論理式(4)を下記に示す。
f´(R6,R7,J_R6,J_R7,V_R6,V_R7)=f((J_R6&v1)|(〜J_R6&R6),(J_R7&V_R6)|(〜J_R7&V_R7))
・・・(4)
図13−1は、論理式(4)で構成される回路を示す説明図である。Jitter Detectorの出力データであるJ_R6およびJ_R7に基づいて組合せ回路302への入力が選択されている。R6´は、J_R6が“0”の場合、R6の値となり、J_R6が“1”の場合、V_R6の値となる。したがって、1−1Jitter Detector401により変化が検出された場合、R6´がV_R6の値となり、変化が検出されなかった場合、R6´が通常の組合せ回路302への入力データとなる。
R7´は、J_R7が“0”の場合、R7の値となり、J_R7が“1”の場合、V_R7の値となる。したがって、1−1Jitter Detector402により変化が検出された場合、R7´がV_R7の値となり、変化が検出されなかった場合、R7´が通常の組合せ回路302への入力データとなる。
つぎに、図12に戻って、第2の変換部1204は、第1の変換部1203により変換された論理式を、当該論理式内の伝播の有無を示す係数に特定の値を与えて組合せ回路と同一論理を除いた論理式に変換する。
具体的には、たとえば、CPU501が、記憶装置に記憶されている下記論理式(5)にアクセスして読み出し、論理式(3)を用いて生成したf´を下記論理式(5)により変換し、Jitter Multiplexerの論理式gを生成する。
g(t1,・・・,tn,j1,・・・,jn)=∃(v1,・・・,vn).[f´(t1,・・・,tn,j1,・・・,jn,v1,・・・,vn)≠f(t1,・・・,tn)]
・・・(5)
論理式(5)は、論理式(3)から変数vに“0”が入力された状態と“1”が入力された状態とを論理和で接続され、組合せ回路と同一論理を除いた論理式となっている。
たとえば、論理式(5)を用いて論理式(4)が変換された論理式(6)を下記に示す。
∃(V_R6,V_R7).{f´[(J_R6&v1)|(〜J_R6&R6)]&[(J_R7&V_R6)|(〜J_R7&V_R7)]≠(R6&R7)}=(R6&J_R7)|(J_R6&R7)|(J_R6&J_R7)
・・・(6)
図13−2は、論理式(6)で構成される回路を示す説明図である。R7が“1”の場合、Jitter Detector401で検出したデータの変化が組合せ回路302の出力に伝播される。R6が“1”の場合、Jitter Detector402で検出したデータの変化が組合せ回路302の出力に伝播される。そして、T1とGのデータが同時に変化した場合、データの変化が組合せ回路302の出力に伝播される。
つぎに、図12に戻って、構築部1205は、検出器生成部1201により生成されたJitter Detectorと判別器生成部1202により生成されたJitter Multiplexerを備え、Jitter Detectorの出力データと組合せ回路の入力データをJitter Multiplexerに与えるJitter伝播可能性検出器を構築する。
具体的には、たとえば、CPU501が、1−1Jitter Detector401の出力とFF403の入力とを接続する。つぎに、FF403の出力とFF407の入力とを接続する。そして、FF407の出力であるJ_R6をJitter Multiplexer405の入力に接続する。つぎに、1−2Jitter Detector402の出力とFF404の入力とを接続する。そして、FF404の出力とFF408の入力とを接続する。そして、FF408の出力であるJ_R7をJitter Multiplexer405の入力に接続してJitter伝播可能性検出器400を構築する。
また、構築部1205は、構築したJitter伝播可能性検出器を出力する。具体的には、たとえば、入力パターンと関連づけられて判別結果を出力する。出力形式としては、たとえば、ディスプレイ508への表示、プリンタ513への印刷出力、I/F509による外部装置への送信がある。また、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶することとしてもよい。
また、送信クロックドメイン102の出力データが、組合せ回路を介して受信クロックドメイン103内のFFに入力される場合、検出器生成部1201と、判別器生成部1202と、構築部1205によりJitter Detectorを生成する。図14にて、送信クロックドメイン102の出力データが、組合せ回路を介して受信クロックドメイン103内のFFに入力される場合のJitter Detectorを示す。
図14は、2−1Jitter Detector402を示す説明図である。送信クロックドメイン102内のFF2およびFF3の出力データが、組合せ回路301を介してFF5に入力されている。2−1Jitter Detector402は、FF2の出力データの変化を検出する1−1Jitter Detector401と、FF3の出力データの変化を検出する1−1Jitter Detector401と、Jitter Multiplexer1301により構成される。
Jitter Multiplexer1301は、1−1Jitter Detector401により検出されたFF2とFF3の出力データの変化が、組合せ回路301の出力に伝播されるか否かを組み合わせ回路306の入力データに応じて判別している。Jitter Multiplexer1301は、下記論理式(7)により構成されている。
J_G=(T2&J_T3)|(J_T2&T3)|(J_T2&J_T3)
・・・(7)
図12に戻って、構築部1205は、検出器生成部1201により生成されたJitter Detectorと判別器生成部1202により生成されたJitter Multiplexerを備え、Jitter Detectorの出力データと組合せ回路の入力データをJitter Multiplexerに与えるJitter Detectorを構築する。
具体的には、たとえば、CPU501が、1−1Jitter Detectorの出力とJitter Multiplexer1301の入力とを接続する。そして、送信クロックドメイン102から受信クロックドメイン103に受け渡されるデータとJitter Multiplexer1301の入力とを接続する。
たとえば、CPU501が、T2の変化を検出する1−1Jitter Detector401の出力であるJ_T2とJitter Multiplexer1301の入力とを接続する。そして、T3の変化を検出する1−1Jitter Detector401の出力であるJ_T3とJitter Multiplexer1301の入力とを接続して2−1Jitter Detector402を生成する。
また、受信クロックドメイン内の他の組合せ回路を介して受信クロックドメイン103に受け渡されるデータが入力される受信クロックドメイン内の組合せ回路の出力位置が観測位置となる場合について説明する。上述した判別器生成部1202により観測位置までの組合せ回路に対応したJitter Multiplexerを生成し、構築部1205により構築することでJitter伝播可能性検出器を生成することができる。図15にて観測位置がJitter伝播可能性検出器400と異なる例を示す。
図15は、Q2が観測位置であるJitter伝播可能性検出器を示す説明図である。Jitter伝播可能性検出器1500は、Jitter Multiplexer400と、FF1502と、Jitter Multiplexer1501とにより構成される。Jitter Multiplexer1501は、下記論理式(8)により構成されている。
J_Q2=J_R8&〜R9
・・・(8)
したがって、Jitter伝播可能性検出器1500は、受信クロックドメイン103内の受信FFから観測位置とする組合せ回路までのすべての組合せ回路に対応したJitter Multiplexerが生成され、Jitter Multiplexerが接続されることにより構築される。
図12に戻って、判別器生成部1202は、受信クロックドメイン103内の受信FFから観測位置までのすべての組合せ回路に対応した判別器を生成する。
具体的には、たとえば、CPU501が、記憶装置に記憶されている観測位置とする組合せ回路の段数を読み出し、上述したJitter Multiplexerの生成処理により組合せ回路の段数分のJitter Multiplexerを生成する。たとえば、組合せ回路の段数とは、受信クロックドメイン103内の受信FFから何番目の組合せ回路であるかを示す。
つぎに、構築部1205は、検出器生成部1201により生成されたJitter Detectorと判別器生成部1202により生成されたJitter Multiplexerを備え、Jitter Detectorの出力データと組合せ回路の入力データをJitter Multiplexerに与える。そして、Jitter Multiplexerの出力データを、組合せ回路の出力データを取り込む組合せ回路に対応したJitter Multiplexerに入力する。
具体的には、たとえば、CPU501が、Jitter Multiplexer405の出力であるJ_Q1をFF1502の入力と接続する。そして、FF1502の出力であるJ_R8とJitter Multiplexer1501の入力と接続しJitter伝播可能性検出器1500を構築する。
なお、上述した検出器生成部1201と、判別器生成部1202と、第1の変換部1203と、第2の変換部1204と、構築部1205は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505などの記録媒体に記録されたプログラムを、CPU501が実行することによって、その機能を実現する。
(検証支援装置1200の検証支援処理手順)
実施の形態2にかかる検証支援装置1200の検証支援処理手順について説明する。図16は、検証支援装置1200の検証支援処理手順を示すフローチャートである。図16においてまず、組合せ回路の段数を決定する(ステップS1601)。つぎに、d=組合せ回路の段数とし(ステップS1602)、CDC情報から選択されていないCDCリストはあるか否かを判断する(ステップS1603)。
CDC情報から選択されていないCDCリストはあると判断された場合(ステップS1603:Yes)、N=送信FFリスト内のFFの個数とし(ステップS1604)、DUT情報のFFリストから受信FFの入力信号名を読み出し(ステップS1605)、DIN=受信FFへの入力信号名とし(ステップS1606)、検出器生成部1201により、Jitter Detectorの生成処理を実行し(ステップS1607)、前段FF=受信FFとし(ステップS1608)、構築部1205により、Jitter伝播判別器の生成処理を実行し(ステップS1609)、ステップS1601へ戻る。Jitter伝播判別器の生成処理では、受信クロックドメイン内の受信FFから観測位置である組合せ回路までのFFと各組合せ回路に対応したJitter Multiplexerを生成する。
一方、CDC情報から選択されていないCDCリストはないと判断された場合(ステップS1603:No)、一連の処理を終了する。
つぎに、上述したJitter Detectorの生成処理(ステップS1607)について説明する。図17は、Jitter Detectorの生成処理の処理手順を示すフローチャートである。図17においてまず、1−1のJitter DetectorをN個生成し(ステップS1701)、N>1であるか否かを判断する(ステップS1702)。N>1である場合(ステップS1702:Yes)、判別器生成部1202により、Jitter Multiplexerの生成処理を実行し(ステップS1703)、そして、ステップS1608へ移行する。一方、N>1でない場合(ステップS1702:No)、ステップS1608へ移行する。
つぎに上述したJitter伝播判別器の生成処理(ステップS1609)について説明する。図18は、Jitter伝播判別器の処理手順を示すフローチャートである。図18においてまず、前段FFのモデルを生成し(ステップS1801)、前段FFの後段にある隣接した未処理のFFがあるか否かを判断する(ステップS1802)。前段FFの後段にある隣接した未処理のFFがあると判断された場合(ステップS1802:Yes)、後段FF=前段FFの後段にある隣接したFFとし(ステップS1803)、前段FFと後段FFの間に組合せ回路があるか否かを判断する(ステップS1804)。
前段FFと後段FFの間に組合せ回路があると判断された場合(ステップS1804:Yes)、DUT情報のFFリストから後段FFの入力信号名を読み出し(ステップS1805)、DIN=後段FFの入力信号名とし(ステップS1806)、判別器生成部1202により、Jitter Multiplexerの生成処理を実行する(ステップS1807)。Jitter Multiplexerの生成処理は上述したステップS1703の処理と同様の処理である。そして、d>1であるか否かを判断する(ステップS1808)。d>1であると判断された場合(ステップS1808:Yes)、d=d−1とし(ステップS1809)、前段FF=後段FFとし(ステップS1810)、ステップS1801へ戻る。
一方、前段FFと後段FFの間に組合せ回路がないと判断された場合(ステップS1804:No)、ステップS1810へ移行する。そして、d>1でないと判断された場合(ステップS1808:No)、出力ポートを生成し(ステップS1811)、ステップS1603に戻る。一方、前段FFの後段にある隣接した未処理のFFがないと判断された場合(ステップS1802:No)、ステップS1603に戻る。
つぎに、上述したJitter Multiplexerの生成処理(ステップS1703またはステップS1807)について説明する。図19は、Jitter Multiplexerの生成処理の処理手順を示すフローチャートである。図19においてまず、DUT情報からDINの論理式を取得する(ステップS1901)。つぎに、論理式(3)を取得し(ステップS1902)、第1の変換部1203により、DINの論理式から論理式(3)を生成する(ステップS1903)。そして、論理式(5)を取得し(ステップS1904)、第2の変換部1204により、論理式(5)を生成し(ステップS1905)、論理式(5)により構成されるJitter Multiplexerを生成し(ステップS1906)、ステップS1608(ステップS1808)へ移行する。
以上説明したように実施の形態2では、組合せ回路の出力位置を観測位置とするJitter伝播可能性検出器を自動で生成することができる。したがって、手作業でモデルを作成するといった利用者(設計者と検証者の双方を含む意味である)の負担を軽減することができる。また、メタステーブル状態の影響がテスト可能な入力パターンであるか否かを早期に判断することができる。
(実施の形態3)
つぎに、実施の形態3を説明する。実施の形態3では、受信クロックドメインに入力される入力データの変化を検出する。そして、入力データに変化がある場合、不定値がFFを介して組合せ回路に入力され、入力データに変化がない場合、入力データがFFを介して組合せ回路に入力される。したがって、組合せ回路に不定値が出力されれば、入力データの変化が組合せ回路の出力に伝播されていることがわかる。なお、実施の形態1および2で説明した構成と同一構成には同一符号を付し、同一構成の説明を省略する。
図20は、実施の形態3にかかるJitter伝播可能性検出器を示す説明図である。Jitter伝播可能性検出器2000は、Jitter Detector109と、選択器2001と、受信クロックドメイン103と同一段数のFFと、受信クロックドメイン103の組合せ回路107と、比較器2002とにより構成されている。Jitter伝播可能性検出器2000は、検証用のモデルである。
(検証支援装置の機能的構成)
つぎに、検証支援装置の機能的構成について説明する。図21は、実施の形態3にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置2100は、検出部2101と、選択部2102と、判別部2103とを含む構成である。検出部2101と、選択部2102と、判別部2103は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F509により、その機能を実現する。
まず、検出部2101は、検証対象回路300の送信クロックドメイン102から受信クロックドメイン103へ受け渡され、受信クロックドメイン103内の組合せ回路に入力されるデータの変化を検出する。
具体的には、たとえば、実施の形態1で上述した検出部601と同様にJitter Detetctor109が、送信FF105の出力データの変化を検出する。
つぎに、選択部2102は、検出部2101により検出された検出結果に応じて不定値または受信クロックドメイン103内の組合せ回路に入力されるデータを選択して、受信クロックドメイン103内の組合せ回路と同一の組合せ回路へ出力する。
具体的には、たとえば、選択器2001が、Jitter Detector109により送信クロックドメイン102から受信クロックドメイン103に受け渡されるデータに変化があると検出された場合、不定値を選択して受信FF106へ出力し、データに変化があると検出されなかった場合、データを選択して受信FF106へ出力する。
たとえば、選択器2001が、Jitter Detector109の出力が“1”の場合、不定値を選択して受信FF106へ出力し、Jitter Detector109の出力が“0”の場合、受信クロックドメイン103に受け渡されるデータを選択して受信FF106へ出力する。
判別部2103は、選択部2102により選択された選択結果が出力された同一の組合せ回路の入力データに不定値が含まれる場合、同一の組合せ回路の出力データが不定値であるか否かを判別する。
具体的には、たとえば、比較器2002は、組合せ回路107の出力データが不定値であるか否かを判別して出力している。データに変化があった場合、選択器2001により受信FF106には不定値が入力されているため、t1には、不定値が入力される。したがって、比較器2002が、組合せ回路107の出力に不定値が出力されるか否かを判別することで、データの変化が組合せ回路107の出力に伝播されているか否かが判別できる。
また、判別部2103は、判別結果を出力する。具体的には、たとえば、入力パターンと関連づけられて判別結果を出力する。出力形式としては、たとえば、ディスプレイ508への表示、プリンタ513への印刷出力、I/F509による外部装置への送信がある。また、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶することとしてもよい。
(検証支援装置2100の検証支援処理手順)
実施の形態3にかかる検証支援装置2100の検証支援処理手順について説明する。図22は、検証支援装置2200の検証支援処理手順を示すフローチャートである。図22においてまず、Jitter伝播可能性検出器と入力パターンを取得し(ステップS2201)、検出部2101により、受信クロックドメインへの入力データの変化を検出し(ステップS2202)、選択部2102により、検出結果に基づき入力データまたは不定値を組合せ回路へ入力し(ステップS2203)、判別部2103により、組合せ回路の出力データが不定値であるか否かを判断する(ステップS2204)。
組合せ回路の出力データが不定値であると判断された場合(ステップS2204:Yes)、判断結果を“1”に設定し(ステップS2205)、結果を保存し(ステップS2206)、一連の処理を終了する。一方、組合せ回路の出力データが不定値でないと判断された場合(ステップS2204:No)、判断結果を“0”に設定し(ステップS2207)、ステップS2206へ移行する。
以上説明したように実施の形態3では、送信クロックドメイン102から受信クロックドメイン103に受け渡されるデータに変化があった場合、不定値を組合せ回路に入力させ、組合せ回路の出力に不定値が出力されるか否かを判別する。これにより、受信クロックドメイン103へのデータが受信クロックドメイン103内の組合せ回路の出力に伝播されるか組合せ回路内で相殺されるかが自動判別される。
したがって、組合せ回路でのデータの変化の伝播/相殺が、その組み合わせ回路の出力位置で観測することができる。これにより、他の組合せ回路の影響を受けることなく観測できるため、検証精度の向上を図ることができる。また、他の組合せ回路を検証対象から除外した分、検証期間を短縮することができる。さらに、受信クロックドメイン103内の組合せ回路が複雑であってもメタステーブル状態の影響をテスト可能な入力パターンを作成することができる。
さらに、実施の形態1にかかるJitter伝播可能性検出器104と比較して実施の形態3にかかるJitter伝播可能性検出器2000は、選択器2001を有するだけで受信クロックドメイン103内の組合せ回路に対応した判別器を必要としないため、構成が単純である。そのため、利用者が、Jitter伝播可能性検出器2000を手作業で作成する場合、Jitter伝播可能性検出器104と比較して容易に作成することができる。したがって、検証期間を短縮することができる。
(実施の形態4)
つぎに、実施の形態4を説明する。実施の形態4では、Jitter Detector109と、選択器2001と、比較器2002とを生成して実施の形態3にかかるJitter伝播可能性検出器を自動で生成する。これにより、Jitter伝播可能性検出器を手動で作成するといった利用者の負担を軽減することができる。なお、実施の形態1〜3で説明した構成と同一構成には同一符号を付し、その説明を省略する。
(検証支援装置の機能的構成)
つぎに、検証支援装置の機能的構成について説明する。図23は、実施の形態4にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置2300は、検出器生成部2301と、判別器生成部2302と、構築部2303と、選択器生成部2304と、複製部2305と、比較器生成部2306とを含む構成である。
検出器生成部2301と、判別器生成部2302と、構築部2303と、選択器生成部2304と、複製部2305と、比較器生成部2306は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F509により、その機能を実現する。
検出器生成部2301は、上述した検出器生成部1201と同様の処理である。つぎに、判別器生成部2302は、上述した判別器生成部1202と同様の処理である。そして、構築部2303は、上述した構築部1205と同様の処理である。検出器生成部2301と、判別器生成部2302と、構築部2303との説明を省略する。
つぎに、選択器生成部2304は、構築部2303により構築された検出器の出力に応じて不定値または受信クロックドメインに入力されるデータと、受信クロックドメイン内の組合せ回路の入力データとを接続させる選択器2001を生成する。
具体的には、たとえば、CPU501が、記憶装置に記憶されている選択器のモデルを読みだす。たとえば、選択器のモデルを構成する論理式の一例を以下に示す。
y=(CTRL&1‘bz)|(〜CTRL&DATA)
・・・(9)
yが選択器のモデルの出力である。CTRLが制御信号である。論理式(9)では、yは、CTRLが“1”の場合、不定値を出力し、CTRLが“0”の場合、DATAの値を出力する。
選択器のモデルの制御信号であるCTRLとJitter Detectorの出力データとを接続する。つぎに、選択器のモデルのDATAと受信クロックドメインの組合せ回路に入力されるデータとを接続して選択器2001を生成する。
つぎに、複製部2305は、受信クロックドメイン103内の組合せ回路を複製して選択器生成部により生成された選択器2001の出力データを入力する。具体的には、たとえば、CPU501が、検証対象回路300内の組合せ回路を複製し、選択器2001の出力と複製した組合せ回路の入力とを接続する。
つぎに、比較器生成部2306は、複製部2305により複製された受信クロックドメイン内の組合せ回路の出力と不定値とを比較する比較器2002を生成する。具体的には、たとえば、CPU501が、記憶装置から比較器のモデルを読み出し、複製された組合せ回路の出力と比較器のモデルの入力とを接続して比較器2002を生成する。
(検証支援装置2300の検証支援処理手順)
実施の形態4にかかる検証支援装置2300の検証支援処理手順について説明する。図24は、検証支援装置2300の検証支援処理手順を示すフローチャートである。図24においてまず、組合せ回路の段数を設定し(ステップS2401)、e=組合せ回路の段数とし(ステップS2402)、CDC情報から選択されていないCDCリストはあるか否かを判断する(ステップS2403)。
CDC情報から選択されていないCDCリストはあると判断された場合(ステップS2403:Yes)、N=送信FFリスト内のFF個数とし(ステップS2404)、DUT情報のFFリストから受信FFの入力信号名を読み出し(ステップS2405)、DIN=受信FFへの入力信号名とし(ステップS2406)、検出器生成部2301と、判別器生成部2302と、構築部2303とにより、Jitter Detectorの生成処理を実行する(ステップS2407)。
Jitter Detectorの生成処理は、実施の形態2で説明したJitter Detectorの生成処理(ステップS1607)と同様の処理である。つぎに、選択器生成部2304により、選択器を生成し(ステップS2408)、複製部2305により、組合せ回路の複製処理を実行し(ステップS2409)、比較器生成部2306により、不定値と比較する比較器を生成し(ステップS2410)、ステップS2401に戻る。
一方、CDC情報から選択されていないCDCリストはないと判断された場合(ステップS2403:No)、一連の処理を終了する。
つぎに、上述した組合せ回路の複製処理(ステップS2409)について説明する。図25は、組合せ回路の複製処理の処理手順を示すフローチャートである。図25においてまず、前段FFのFFモデルを生成し(ステップS2501)、前段FFの後段にある隣接した未処理のFFがあるか否かを判断する(ステップS2502)。前段FFの後段にある隣接した未処理のFFがあると判断された場合(ステップS2502:Yes)、後段FF=前段FFの後段にある隣接したFFとし(ステップS2503)、前段FFと後段FFの間に組合せ回路があるか否かを判断する(ステップS2504)。
前段FFと後段FFの間に組合せ回路があると判断された場合(ステップS2504:Yes)、組合せ回路を複製し(ステップS2505)、e>1であるか否かを判断する(ステップS2506)。e>1であると判断された場合(ステップS2506:Yes)、e=e−1を実行し(ステップS2507)、前段FF=後段FFとし(ステップS2508)、ステップS2501へ戻る。
一方、前段FFと後段FFの間に組合せ回路がないと判断された場合(ステップS2504:No)、ステップS2508へ移行する。一方、e>1でないと判断された場合(ステップS2506:No)、ステップS2410へ移行する。一方、前段FFの後段にある隣接した未処理のFFがないと判断された場合(ステップS2502:No)、ステップS2410へ移行する。
以上説明したように実施の形態4では、実施の形態3のJitter伝播可能性検出器2000を自動で生成する。受信クロックドメイン内のどの組合せ回路の出力位置であっても観測位置とすることができるモデルが自動生成される。これにより、手作業でモデルを作成するといった利用者の負担を軽減することができる。また、メタステーブル状態の影響がテスト可能な入力パターンであるか否かを早期に判断することができる。
(実施の形態5)
つぎに、実施の形態5では、Jitter伝播検出器を用いて作成した入力パターンを用いて受信クロックドメイン内の受信FFのモデルを変更後の検証結果とモデル変更前の検証結果の比較を行う。なお、実施の形態1〜4で説明した構成と同一構成には同一符号を付し、その説明を省略する。
図26は、Jitter伝播検出器を示す説明図である。Jitter伝播検出器2600は、受信クロックドメイン103内の受信FF106と、FF108と、組合せ回路107と、判別器2601とを含む構成である。Jitter伝播検出器2600では、一例として組合せ回路107の出力位置を観測位置としている。そのため、組合せ回路107の出力データが、判別器2601に入力されている。Jitter伝播検出器2600は、検証用のモデルである。
したがって、受信クロックドメイン103内の他の組合せ回路の出力を観測位置とする場合、他の組合せ回路の出力データが判別器2601に入力される。
(検証支援装置の機能的構成)
つぎに、検証支援装置の機能的構成について説明する。図27は、実施の形態5にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置2700は、第1の取得部2701と、第2の取得部2702と、判別部2703とを含む構成である。第1の取得部2701と、第2の取得部2702と、判別部2703は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F509により、その機能を実現する。
第1の取得部2701は、検証対象回路300の送信クロックドメインから受信クロックドメインに受け渡されるデータが受信クロックドメイン内の受信FFを介して入力される組合せ回路の出力データを取得する。具体的には、たとえば、CPU501は、検証対象回路300にアクセスし、受信クロックドメイン内の受信FFを介して入力される組合せ回路の出力データを取得する。
第2の取得部2702は、データが受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信FFのモデルを介して入力される組合せ回路と同一の組合せ回路の出力データを取得する。具体的には、たとえば、CPU501は、検証対象回路300にアクセスし、メタステーブル状態の影響を模擬可能な受信FFのモデルを介して入力され、第1の取得部2701で取得された組合せ回路と同一の組合せ回路の出力データを取得する。
判別部2703は、第1の取得部2701および第2の取得部2702により取得された出力データが一致するか否かを判別して出力する。具体的には、たとえば、CPU501は、第1の取得部2701および第2の取得部2702により取得された出力データを比較して一致すれば、“1”を出力し、一致しなければ“0”を出力する。
また、判別部2703は、判別結果を出力する。具体的には、たとえば、入力パターンと関連づけられて判別結果を出力する。出力形式としては、たとえば、ディスプレイ508への表示、プリンタ513への印刷出力、I/F509による外部装置への送信がある。また、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶することとしてもよい。
(検証支援装置2700の検証支援処理手順)
実施の形態5にかかる検証支援装置2700の検証支援処理手順について説明する。図28は、検証支援装置2700の検証支援処理手順を示すフローチャートである。図28においてまず、CDCモデルの検証対象回路と、Jitter伝播検出器と、入力パターンとを取得し(ステップS2801)、第1の取得部2701により、Jitter伝播検出器内の組合せ回路の出力データを取得(ステップS2802)し、第2の取得部2702により、CDCモデルの検証対象回路内の組合せ回路の出力データを取得し(ステップS2803)、取得した出力データを比較し(ステップS2804)、比較結果を出力し(ステップS2805)、一連の処理を終了する。
以上説明したように実施の形態5では、Jitter伝播検出器により検証対象回路300のシミュレーション結果と、受信クロックドメイン内の受信FFがメタステーブル状態の影響を模擬可能なモデルに変更されている場合のシミュレーション結果とが一致するか否かを判別することができる。これにより、メタステーブル状態の影響が組合せ回路の出力に伝播されるか否かを自動検証できる。したがって、メタステーブル状態の影響により回路の動作に異常が発生しないか否かを適切な位置で検証でき、検証精度の向上を図ることができる。
(実施の形態6)
そして、実施の形態6では、Jitter伝播検出器を自動で生成する検証支援プログラムについて説明する。なお、実施の形態1〜5で説明した構成と同一構成には同一符号を付し、その説明を省略する。
(検証支援装置の機能的構成)
つぎに、検証支援装置の機能的構成について説明する。図29は、実施の形態6にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置2900は、判別器生成部2901と、構築部2902とを含む構成である。判別器生成部2901と、構築部2902は、具体的には、たとえば、図5に示したROM502、RAM503、磁気ディスク505、光ディスク507などの記憶装置に記憶されたプログラムをCPU501に実行させることにより、または、I/F509により、その機能を実現する。
判別器生成部2901は、検証対象回路300の送信クロックドメインから受信クロックドメインに受け渡されるデータが受信クロックドメイン内の受信FFを介して入力される組合せ回路の出力データと、データが受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信FFモデルを介して入力される組合せ回路と同一の組合せ回路の出力データとが一致するか否かを判別する判別器を生成する。具体的には、たとえば、CPU501が、記憶装置から2つの入力データを一致するか否かを判別する判別器のモデルを読み出して生成する。
構築部2902は、組合せ回路の出力データと同一の組合せ回路の出力データとを判別器生成部2901により生成された判別器の入力に接続して出力データが一致するかを検出する検出器を構築する。具体的には、たとえば、CPU501が、生成された判別器2601の入力と、組合せ回路の出力データおよび同一の組合せ回路の出力データとを接続する。
(検証支援装置2900の検証支援処理手順)
実施の形態6にかかる検証支援装置2900の検証支援処理手順について説明する。図30は、検証支援装置2900の検証支援処理手順を示すフローチャートである。図30においてまず、判別器生成部2901により、判別器を生成し(ステップS3001)、構築部2902により、Jitter伝播検出器およびCDCモデルの検証対象回路内の組合せ回路の出力データと判別器の入力とを接続し(ステップS3002)、一連の処理を終了する。
以上説明したように、実施の形態6では、Jitter伝播検出器を自動で生成する。これにより、どの組合せ回路の出力位置であっても容易に観測位置として検証できる。したがって、検証の精度を向上させることができる。
以上説明したように、実施の形態1にかかる検証支援プログラムおよび検証支援装置によれば、検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出し、検出されたデータの変化が組合せ回路の出力に伝播されるか否かを組合せ回路の入力データに応じて判別して出力する。
これにより、データの変化を組合せ回路の出力位置で観測でき、検証の精度を向上することができる。したがって、適切な位置で観測することができ、検証期間を短縮することができる。
以上説明したように、実施の形態2にかかる検証支援プログラム、および検証支援装置によれば、データの変化を検出する検出器と、データの変化が組合せ回路に伝播されるか否かを判別する判別器とを生成して構築する。これにより、組合せ回路の出力位置を観測位置とする検出器を自動で生成することができる。したがって、手作業でモデルを作成するといった利用者の負担を軽減することができる。
また、送信クロックドメインから受信クロックドメインに受け渡されるデータが、観測位置とされる受信クロックドメイン内の組合せ回路へ他の組合せ回路を介して入力されている場合、観測位置とされる組合せ回路までのすべての組合せ回路に対応した判別器を生成して構築する。
これにより、受信クロックドメイン内のどの組合せ回路の出力であっても観測位置とすることができる検出器を自動で生成でき、検証の精度が向上する。
また、組合せ回路の論理式を、データの変化に応じて特定の値が与えられる伝播の有無を示す係数を有する論理式に変換することにより、複雑な組合せ回路の論理式であってもデータの変化が伝播されるか判別可能な論理式に自動で変換することができる。したがって、手作業でモデルを作成するといった利用者の負担を軽減することができる。
以上説明したように、実施の形態3にかかる検証支援プログラム、および検証支援装置によれば、データの変化に応じて不定値または受け渡されるデータを選択して受信クロックドメイン内の組合せ回路に入力し、組合せ回路の出力に不定値が出力されるか否かを判別する。
これにより、組合せ回路でのデータの変化の伝播/相殺が、その組み合わせ回路の出力位置で観測することができる。したがって、他の組合せ回路の影響を受けることなく観測できるため、検証精度の向上を図ることができる。また、他の組合せ回路を検証対象から除外した分、検証期間を短縮することができる。
以上説明したように、実施の形態4にかかる検証支援プログラム、および検証支援装置によれば、データの変化を検出する検出器と、検出器の出力に応じて不定値または受け渡されるデータを選択する選択器と、選択器の出力データを受信クロックドメイン内の組合せ回路に受け渡して、組合せ回路の出力と不定値を比較する比較器とを生成する。
これにより、受信クロックドメイン内のどの組合せ回路の出力位置であっても観測位置とすることができるモデルが自動生成される。これにより、手作業でモデルを作成するといった利用者の負担を軽減することができる。また、メタステーブル状態の影響がテスト可能な入力パターンであるか否かを早期に判断することができる。
以上説明したように、実施の形態5にかかる検証支援プログラム、および検証支援装置によれば、受信FFのモデル変更前の組合せ回路の出力と、モデル変更後の組合せ回路の出力とが一致するか否かを判別する。
これにより、メタステーブル状態の影響が組合せ回路の出力に伝播されるか否かを自動検証できる。したがって、メタステーブル状態の影響により回路の動作に異常が発生しないか否かを適切な位置で検証でき、検証の精度が向上する。
以上説明したように、実施の形態6にかかる検証支援プログラム、および検証支援装置によれば、受信FFのモデル変更前の組合せ回路の出力と、モデル変更後の組合せ回路の出力とが一致するか否かを判別する判別器を生成する。これによって、どの組合せ回路の出力位置であっても容易に観測位置とすることができ、検証の精度を向上させることができる。
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検証支援プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検証支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出手段、
前記検出手段により検出されたデータの変化が前記組合せ回路の出力に伝播されるか否かを前記組合せ回路の入力データに応じて判別して出力する判別手段、
として機能させることを特徴とする検証支援プログラム。
(付記2)コンピュータを、
検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成手段、
前記検証対象回路内の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成手段、
前記検出器生成手段により生成された検出器と前記判別器生成手段により生成された判別器を備え、前記検出器の出力データと前記組合せ回路の入力データを前記判別器に与える検出器を構築する構築手段、
として機能させることを特徴とする検証支援プログラム。
(付記3)前記構築手段は、
前記データが前記組合せ回路へ前記検証対象回路内の他の組合せ回路を介して入力されている場合、前記構築手段により構築された前記検出器と前記判別器生成手段により生成された判別器とを備え、前記他の組合せ回路の検出器の出力データと前記組合せ回路の入力データとを前記判別器に与える検出器を構築することを特徴とする付記2に記載の検証支援プログラム。
(付記4)前記コンピュータを、
前記組合せ回路の論理式を、前記検出器の出力データに応じて伝播の有無を示す係数または前記データを選択する選択回路と前記選択回路の出力が入力される前記組合せ回路とを含む論理式に変換する第1の変換手段、
前記第1の変換手段により変換された論理式を、当該論理式内の前記伝播の有無を示す係数に特定の値を与えて前記組合せ回路と同一論理を除いた論理式に変換する第2の変換手段、として機能させ、
前記判別器生成手段は、
前記第2の変換手段によって変換された論理式で構成される判別器を生成することを特徴とする付記2に記載の検証支援プログラム。
(付記5)コンピュータを、
検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出手段、
前記検出手段により検出された検出結果に応じて不定値または前記データを選択して、前記組合せ回路と同一の組合せ回路へ出力する選択手段、
前記選択手段により選択された選択結果が出力された前記同一の組合せ回路の入力データに前記不定値が含まれる場合、前記同一の組合せ回路の出力データが前記不定値であるか否かを判別して出力する判別手段、
として機能させることを特徴とする検証支援プログラム。
(付記6)コンピュータを、
検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡されて前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成手段、
クロックドメイン間の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成手段、
前記検出器生成手段により生成された検出器と前記判別器生成手段により生成された判別器を備え、前記検出器の出力データと前記受信クロックドメイン内の組合せ回路の入力データを前記判別器に与える検出器を構築する構築手段、
前記構築手段により構築された検出器の出力に応じて不定値または前記データと、前記受信クロックドメイン内の組合せ回路の入力とを接続させる選択器を生成する選択器生成手段、
前記受信クロックドメイン内の組合せ回路を複製して前記選択器生成手段により生成された前記選択器の出力データを入力する複製手段、
前記複製手段により複製された前記受信クロックドメイン内の組合せ回路の出力と前記不定値とを比較する比較器を生成する比較器生成手段、
として機能させることを特徴とする検証支援プログラム。
(付記7)コンピュータを、
検証対象回路の送信クロックドメインから受信クロックドメインに受け渡されるデータが前記受信クロックドメイン内の受信フリップフロップを介して入力される組合せ回路の出力データを取得する第1の取得手段、
前記データが前記受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信フリップフロップモデルを介して入力される前記組合せ回路と同一の組合せ回路の出力データを取得する第2の取得手段、
前記第1の取得手段および第2の取得手段により取得された出力データが一致するか否かを判別して出力する判別手段、
として機能させることを特徴とする検証支援プログラム。
(付記8)コンピュータを、
検証対象回路の送信クロックドメインから受信クロックドメインに受け渡されるデータが前記受信クロックドメイン内の受信フリップフロップを介して入力される組合せ回路の出力データと、前記データが前記受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信フリップフロップモデルを介して入力される前記組合せ回路と同一の組合せ回路の出力データとが一致するか否かを判別する判別器を生成する判別器生成手段、
前記組合せ回路の出力データと前記同一の組合せ回路の出力データとを前記判別器生成手段により生成された判別器に接続して前記出力データが一致するかを検出する検出器を構築する構築手段、
として機能させることを特徴とする検証支援プログラム。
(付記9)検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出手段と、
前記検出手段により検出されたデータの変化が前記組合せ回路の出力に伝播されるか否かを前記組合せ回路の入力データに応じて判別して出力する判別手段と、
を備えることを特徴とする検証支援装置。
(付記10)コンピュータが、
検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出工程と、
前記検出工程により検出されたデータの変化が前記組合せ回路の出力に伝播されるか否かを前記組合せ回路の入力データに応じて判別して出力する判別工程と、
を実行することを特徴とする検証支援方法。
(付記11)検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成手段と、
前記検証対象回路内の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成手段と、
前記検出器生成手段により生成された検出器と前記判別器生成手段により生成された判別器を備え、前記検出器の出力データと前記組合せ回路の入力データを前記判別器に与える検出器を構築する構築手段と、
を備えることを特徴とする検証支援装置。
(付記12)コンピュータが、
検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成工程と、
前記検証対象回路内の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成工程と、
前記検出器生成工程により生成された検出器と前記判別器生成工程により生成された判別器を備え、前記検出器の出力データと前記組合せ回路の入力データを前記判別器に与える検出器を構築する構築工程と、
を実行することを特徴とする検証支援方法。
(付記13)検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出手段と、
前記検出手段により検出された検出結果に応じて不定値または前記データを選択して、前記組合せ回路と同一の組合せ回路へ出力する選択手段と、
前記選択手段により選択された選択結果が出力された前記同一の組合せ回路の入力データに前記不定値が含まれる場合、前記同一の組合せ回路の出力データが前記不定値であるか否かを判別して出力する判別手段と、
を備えることを特徴とする検証支援装置。
(付記14)コンピュータが、
検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出工程と、
前記検出工程により検出された検出結果に応じて不定値または前記データを選択して、前記組合せ回路と同一の組合せ回路へ出力する選択工程と、
前記選択工程により選択された選択結果が出力された前記同一の組合せ回路の入力データに前記不定値が含まれる場合、前記同一の組合せ回路の出力データが前記不定値であるか否かを判別して出力する判別工程と、
を実行することを特徴とする検証支援方法。
(付記15)検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡されて前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成手段と、
クロックドメイン間の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成手段と、
前記検出器生成手段により生成された検出器と前記判別器生成手段により生成された判別器を備え、前記検出器の出力データと前記受信クロックドメイン内の組合せ回路の入力データを前記判別器に与える検出器を構築する構築手段と、
前記構築手段により構築された検出器の出力に応じて不定値または前記データと、前記受信クロックドメイン内の組合せ回路の入力とを接続させる選択器を生成する選択器生成手段と、
前記受信クロックドメイン内の組合せ回路を複製して前記選択器生成手段により生成された前記選択器の出力データを入力する複製手段と、
前記複製手段により複製された前記受信クロックドメイン内の組合せ回路の出力と前記不定値とを比較する比較器を生成する比較器生成手段と、
を備えることを特徴とする検証支援装置。
(付記16)コンピュータが、
検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡されて前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成工程と、
クロックドメイン間の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成工程と、
前記検出器生成工程により生成された検出器と前記判別器生成工程により生成された判別器を備え、前記検出器の出力データと前記受信クロックドメイン内の組合せ回路の入力データを前記判別器に与える検出器を構築する構築工程と、
前記構築工程により構築された検出器の出力に応じて不定値または前記データと、前記受信クロックドメイン内の組合せ回路の入力とを接続させる選択器を生成する選択器生成工程と、
前記受信クロックドメイン内の組合せ回路を複製して前記選択器生成工程により生成された前記選択器の出力データを入力する複製工程と、
前記複製工程により複製された前記受信クロックドメイン内の組合せ回路の出力と前記不定値とを比較する比較器を生成する比較器生成工程と、
を実行することを特徴とする検証支援方法。
(付記17)検証対象回路の送信クロックドメインから受信クロックドメインに受け渡されるデータが前記受信クロックドメイン内の受信フリップフロップを介して入力される組合せ回路の出力データを取得する第1の取得手段と、
前記データが前記受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信フリップフロップモデルを介して入力される前記組合せ回路と同一の組合せ回路の出力データを取得する第2の取得手段と、
前記第1の取得手段および第2の取得手段により取得された出力データが一致するか否かを判別して出力する判別手段と、
を備えることを特徴とする検証支援装置。
(付記18)コンピュータが、
検証対象回路の送信クロックドメインから受信クロックドメインに受け渡されるデータが前記受信クロックドメイン内の受信フリップフロップを介して入力される組合せ回路の出力データを取得する第1の取得工程と、
前記データが前記受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信フリップフロップモデルを介して入力される前記組合せ回路と同一の組合せ回路の出力データを取得する第2の取得工程と、
前記第1の取得工程および第2の取得工程により取得された出力データが一致するか否かを判別して出力する判別工程と、
を実行することを特徴とする検証支援方法。
(付記19)検証対象回路の送信クロックドメインから受信クロックドメインに受け渡されるデータが前記受信クロックドメイン内の受信フリップフロップを介して入力される組合せ回路の出力データと、前記データが前記受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信フリップフロップモデルを介して入力される前記組合せ回路と同一の組合せ回路の出力データとが一致するか否かを判別する判別器を生成する判別器生成手段と、
前記組合せ回路の出力データと前記同一の組合せ回路の出力データとを前記判別器生成手段により生成された判別器に接続して前記出力データが一致するかを検出する検出器を構築する構築手段と、
を備えることを特徴とする検証支援装置。
(付記20)コンピュータが、
検証対象回路の送信クロックドメインから受信クロックドメインに受け渡されるデータが前記受信クロックドメイン内の受信フリップフロップを介して入力される組合せ回路の出力データと、前記データが前記受信クロックドメイン内のメタステーブル状態の影響を模擬可能な受信フリップフロップモデルを介して入力される前記組合せ回路と同一の組合せ回路の出力データとが一致するか否かを判別する判別器を生成する判別器生成工程と、
前記組合せ回路の出力データと前記同一の組合せ回路の出力データとを前記判別器生成工程により生成された判別器に接続して前記出力データが一致するかを検出する検出器を構築する構築工程と、
を実行することを特徴とする検証支援方法。
600,1200 検証支援装置
102 送信クロックドメイン
103 受信クロックドメイン
105 送信フリップフロップ
106 受信フリップフロップ
107,301,302 組合せ回路

Claims (6)

  1. コンピュータを、
    検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出器によって検出する検出手段、
    伝搬の有無を示す係数と前記データとのいずれかを前記検出器の出力データに応じて選択する選択回路と、前記選択回路の出力が入力される前記組合せ回路と同一の組合せ回路と、を含む論理式に前記論理式内の前記伝搬の有無を示す係数に特定の値を与えて前記組合せ回路と同一論理を除いた論理式が示す論理を含む判別器によって、前記検出手段により検出された前記データの変化が前記組合せ回路の出力に伝搬されるか否かを判別して出力する判別手段、
    として機能させることを特徴とする検証支援プログラム。
  2. コンピュータを、
    検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成手段、
    前記検証対象回路内の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成手段、
    前記検出器生成手段により生成された検出器と前記判別器生成手段により生成された判別器を備え、前記検出器の出力データと前記組合せ回路の入力データを前記判別器に与える検出器を構築する構築手段、
    として機能させることを特徴とする検証支援プログラム。
  3. 前記構築手段は、
    前記データが前記組合せ回路へ前記検証対象回路内の他の組合せ回路を介して入力されている場合、前記構築手段により構築された前記検出器と前記判別器生成手段により生成された判別器とを備え、前記他の組合せ回路の検出器の出力データと前記組合せ回路の入力データとを前記判別器に与える検出器を構築することを特徴とする請求項2に記載の検証支援プログラム。
  4. 前記コンピュータを、
    前記組合せ回路の論理式を、前記検出器の出力データに応じて伝播の有無を示す係数または前記データを選択する選択回路と前記選択回路の出力が入力される前記組合せ回路とを含む論理式に変換する第1の変換手段、
    前記第1の変換手段により変換された論理式を、当該論理式内の前記伝播の有無を示す係数に特定の値を与えて前記組合せ回路と同一論理を除いた論理式に変換する第2の変換手段、として機能させ、
    前記判別器生成手段は、
    前記第2の変換手段によって変換された論理式で構成される判別器を生成することを特徴とする請求項2に記載の検証支援プログラム。
  5. 検証対象回路の送信クロックドメインから受信クロックドメインへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出器によって検出する検出手段と、
    伝搬の有無を示す係数と前記データとのいずれかを前記検出器の出力データに応じて選択する選択回路と、前記選択回路の出力が入力される前記組合せ回路と同一の組合せ回路と、を含む論理式に前記論理式内の前記伝搬の有無を示す係数に特定の値を与えて前記組合せ回路と同一論理を除いた論理式が示す論理を含む判別器によって、前記検出手段により検出された前記データの変化が前記組合せ回路の出力に伝搬されるか否かを判別して出力する判別手段と、
    を備えることを特徴とする検証支援装置。
  6. 検証対象回路の送信クロックドメイン内の送信フリップフロップから受信クロックドメイン内の受信フリップフロップへ受け渡され前記受信クロックドメイン内の組合せ回路に入力されるデータの変化を検出する検出器を、前記送信フリップフロップごとに生成する検出器生成手段と、
    前記検証対象回路内の組合せ回路の出力に前記データの変化が伝播されるか否かを判別可能な論理式で構成される判別器を生成する判別器生成手段と、
    前記検出器生成手段により生成された検出器と前記判別器生成手段により生成された判別器を備え、前記検出器の出力データと前記組合せ回路の入力データを前記判別器に与える検出器を構築する構築手段と、
    を備えることを特徴とする検証支援装置。
JP2009019651A 2009-01-30 2009-01-30 検証支援プログラムおよび検証支援装置 Active JP5310036B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009019651A JP5310036B2 (ja) 2009-01-30 2009-01-30 検証支援プログラムおよび検証支援装置
US12/696,755 US7888971B2 (en) 2009-01-30 2010-01-29 Verification support system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009019651A JP5310036B2 (ja) 2009-01-30 2009-01-30 検証支援プログラムおよび検証支援装置

Publications (2)

Publication Number Publication Date
JP2010176486A JP2010176486A (ja) 2010-08-12
JP5310036B2 true JP5310036B2 (ja) 2013-10-09

Family

ID=42397179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009019651A Active JP5310036B2 (ja) 2009-01-30 2009-01-30 検証支援プログラムおよび検証支援装置

Country Status (2)

Country Link
US (1) US7888971B2 (ja)
JP (1) JP5310036B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5239747B2 (ja) * 2008-10-29 2013-07-17 富士通株式会社 論理シミュレーションプログラム、論理シミュレーション装置、論理シミュレーション方法
JP5672038B2 (ja) 2011-02-10 2015-02-18 富士通株式会社 検証支援装置、検証支援プログラム、および検証支援方法
JP5691890B2 (ja) * 2011-07-04 2015-04-01 富士通セミコンダクター株式会社 検証装置、検証プログラム、および、検証方法
US8607173B2 (en) 2012-03-09 2013-12-10 Atrenta, Inc. Hierarchical bottom-up clock domain crossing verification
JP5807887B1 (ja) * 2015-05-07 2015-11-10 株式会社制御システム研究所 プログラマブルロジックデバイス、プログラマブルロジックデバイスのエラー検証方法、及びプログラマブルロジックデバイスの回路形成方法
US11321511B2 (en) 2019-07-09 2022-05-03 SiFive, Inc. Reset crossing and clock crossing interface for integrated circuit generation
US11347917B2 (en) * 2020-05-11 2022-05-31 Synopsys, Inc. Determining and verifying metastability in clock domain crossings

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2642250B2 (ja) * 1990-12-21 1997-08-20 川崎製鉄株式会社 論理回路のテストパターンの検査方法
JP2001155043A (ja) * 1999-11-25 2001-06-08 Nec Ic Microcomput Syst Ltd 論理シミュレーションにおけるタイミングチェック方法およびタイミングチェック方法を記録した記録媒体
US6529033B1 (en) * 2001-11-16 2003-03-04 Infineon Technologies North America Corp. Area efficient clock inverting circuit for design for testability
JP4261502B2 (ja) * 2005-03-14 2009-04-30 富士通マイクロエレクトロニクス株式会社 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
US20090119621A1 (en) * 2007-11-06 2009-05-07 Jordi Cortadella Variability-Aware Asynchronous Scheme for Optimal-Performance Delay Matching
US7583106B2 (en) * 2007-12-14 2009-09-01 Icera, Inc. Clock circuitry

Also Published As

Publication number Publication date
US7888971B2 (en) 2011-02-15
US20100194436A1 (en) 2010-08-05
JP2010176486A (ja) 2010-08-12

Similar Documents

Publication Publication Date Title
JP5310036B2 (ja) 検証支援プログラムおよび検証支援装置
JP5471432B2 (ja) 検証支援プログラム、および検証支援装置
CN100456308C (zh) 断言产生系统、电路验证系统以及断言产生方法
JP5410414B2 (ja) 回路エミュレーションの入力及び遅延入力のマルチプレクシング
JP5405451B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
US7523426B2 (en) Intelligent timing analysis and constraint generation GUI
US20120005545A1 (en) Computer product, verification support apparatus, and verification support method
US7437701B1 (en) Simulation of a programming language specification of a circuit design
Karimi et al. Detection, diagnosis, and recovery from clock-domain crossing failures in multiclock SoCs
JP4261502B2 (ja) 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体
CN113642285A (zh) 确定和验证时钟域交叉中的亚稳态
JP5672038B2 (ja) 検証支援装置、検証支援プログラム、および検証支援方法
CN1815480B (zh) 从波形图产生硬件设计语言触发的方法与系统
CN116157799A (zh) 动态cdc验证方法
Zhang et al. Path delay test generation toward activation of worst case coupling effects
US8160859B2 (en) Medium storing logic simulation program, logic simulation apparatus, and logic simulation method
JP2006058172A (ja) テストパターン生成システム、テストパターン解析システム、テストパターン生成方法、テストパターン解析方法、テストパターン生成プログラム、テストパターン解析プログラム、および記録媒体
JP5348065B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
Sharma et al. An automation methodology for amelioration of SpyGlassCDC abstract view generation process
US7694248B2 (en) Method and apparatus for supporting verification, and computer product
Mehta et al. Clock Domain Crossing (CDC) Verification
Kebaïli et al. Conclusive formal verification of clock domain crossings using spyglass-cdc
JP6146224B2 (ja) 判定方法、判定プログラム、および判定装置
JP4747036B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
JP2891004B2 (ja) 論理icのタイミングチェック方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130115

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: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5310036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150