JP2009187344A - 非同期論理回路検証装置およびその方法、並びにプログラム - Google Patents
非同期論理回路検証装置およびその方法、並びにプログラム Download PDFInfo
- Publication number
- JP2009187344A JP2009187344A JP2008027413A JP2008027413A JP2009187344A JP 2009187344 A JP2009187344 A JP 2009187344A JP 2008027413 A JP2008027413 A JP 2008027413A JP 2008027413 A JP2008027413 A JP 2008027413A JP 2009187344 A JP2009187344 A JP 2009187344A
- Authority
- JP
- Japan
- Prior art keywords
- flip
- asynchronous
- logic circuit
- flop
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
【課題】クロック周波数などの設定制約がなく、実機に近い状況で論理検証を行うことが可能な非同期論理回路検証装置およびその方法、並びにプログラムを提供する。
【解決手段】非同期論理回路検証装置10は、非同期クロック系統を持つ論理回路の論理検証を行う機能を有し、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する機能を有し、抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に固定することで、非同期論理部の検証を適当に達成し、フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計することで、非同期論理部分の検証遂行を網羅的に確認する機能を有する。
【選択図】図6
【解決手段】非同期論理回路検証装置10は、非同期クロック系統を持つ論理回路の論理検証を行う機能を有し、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する機能を有し、抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に固定することで、非同期論理部の検証を適当に達成し、フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計することで、非同期論理部分の検証遂行を網羅的に確認する機能を有する。
【選択図】図6
Description
本発明は、非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証装置およびその方法、並びにプログラムに関するものである。
半導体集積回路設計では、設計対象回路の性能評価のためにシミュレーションを行う。このシミュレーションを行うにあたって、半導体集積回路設計で必要となる設計ツールや処理フローを決定する必要がある。
たとえばASIC、FPGAなどを対象とする論理回路の設計では、近年、Verilog、HDLやVHDL等のハードウェア記述言語を用いた回路記述が定着している。
最終的に実装されるフリップフロップやAND、ORなどのゲートで構成される回路構造に比べ、抽象度が高いため、設計工程の大部分でCAD上における論理シミュレーションがこれらハードウェア記述言語に対して適用される。
その後、CADによる論理合成を経てハードウェア記述言語がゲート接続情報(ネットリスト、と呼ばれる)に変換され配置配線が行われるが、配置配線結果に対しては静的タイミング検証(STA)を適用することで、より所要時間の大きい、ゲートレベルを対象とする論理シミュレーションを大幅に省略する手法が取られる。
その後、CADによる論理合成を経てハードウェア記述言語がゲート接続情報(ネットリスト、と呼ばれる)に変換され配置配線が行われるが、配置配線結果に対しては静的タイミング検証(STA)を適用することで、より所要時間の大きい、ゲートレベルを対象とする論理シミュレーションを大幅に省略する手法が取られる。
とはいえ、近年はSOCの観点から各種アナログマクロが特にLSI内に取り込まれ、多機能化の要求から駆動クロック系統も複雑化する傾向にあり、ハードウェア記述言語の段階では論理検証が難しいマクロ周り、非同期クロック系統周辺の検証におけるゲートレベルシミュレーションの重要性は変わっておらず、今後も大きな役割を占めつづけると考えられる。
論理回路の中でも、非同期クロックの受け渡し部分はハードウェア記述言語でのいわゆるRTLシミュレーションでは検証が難しく、また設計にはより高度な知識および経験が必要とされることから不具合の多い部位である。よって、最終的には配置配線結果による遅延情報を考慮したゲートレベルでのシミュレーションを確実に実行しておくことが望ましい。
通常、フリップフロップはクロックの有効エッジ(一般的にはクロック立ち上がり)の近辺でデータが変化する使用方法を禁じており、クロック変化点の前後の一定期間にセットアップ・ホールドの時間規定が設けられている。
この規定に違反した際はフリップフロップの出力値が保証されず、ある確率でメタステーブル状態と呼ばれる出力値が発振する状態をつくりだしてしまう。
互いに非同期動作しているクロックによるフリップフロップのデータ受け渡し部分は、常にこのメタステーブル状態が起こりえる状態であり、設計者は通常この危険性を考慮した回路設計を行っている。
この規定に違反した際はフリップフロップの出力値が保証されず、ある確率でメタステーブル状態と呼ばれる出力値が発振する状態をつくりだしてしまう。
互いに非同期動作しているクロックによるフリップフロップのデータ受け渡し部分は、常にこのメタステーブル状態が起こりえる状態であり、設計者は通常この危険性を考慮した回路設計を行っている。
これらの回路設計例は、特許文献1,2など多数提案されている。
特開2000−261310号公報
特開平10−135938号公報
ところで、フリップフロップに対する信号変化がセットアップ・ホールド違反を起こした場合、CAD上の論理シミュレーション結果としては、不定値xを出力することで、その結果を表現する。
一旦、シミュレーション上で不定値が発生すると、後段の論理に不定値xが伝搬されていき、ついにはほぼ全ての論理が不定値xとなって、論理検証の意味をなさなくなることが多い。
一旦、シミュレーション上で不定値が発生すると、後段の論理に不定値xが伝搬されていき、ついにはほぼ全ての論理が不定値xとなって、論理検証の意味をなさなくなることが多い。
不定値xの発生は、純粋に回路構成の不具合に由来する場合も多いが、上記のようにそもそも非同期クロック間でのメタステーブル発生可能性がある部分では、実機上は0か1かの確定値に最終的には落ち着いているはずであり、この場合は不定値xが単に論理検証続行の妨げとなる。
その回避方法としては、本来非同期であり、位相関係の保証もないはずのクロック周波数を周波数値にそれぞれ公約数を持つようなキリの良い値に設定することで、ある一定値以上に互いのクロックエッジの幅が狭くならないようにする対策が取られる。
しかし、これでは設定がわずらわしいことに加え、CADシミュレーション上の状態が実際のクロック周波数設定比と異なってしまうことになり、完全な論理検証を行えないという不利益があった。
しかし、これでは設定がわずらわしいことに加え、CADシミュレーション上の状態が実際のクロック周波数設定比と異なってしまうことになり、完全な論理検証を行えないという不利益があった。
本発明は、クロック周波数などの設定制約がなく、実機に近い状況で論理検証を行うことが可能な非同期論理回路検証装置およびその方法、並びにプログラムを提供することにある。
本発明の第1の観点は、非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証装置であって、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する抽出部と、上記抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に確定する出力確定部とを有する。
好適には、フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計する情報収集部を有する。
好適には、上記出力確定部は、上記確定出力値を、あらかじめ設定されるランダムな条件で前の値、後ろの値を任意に出力する。
好適には、上記出力確定部は、上記フリップフロップのリストに登録されていない箇所で上記タイミング違反が生じた場合、不定値を出力する。
本発明の第2の観点は、非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証方法であって、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けする組み分けステップと、他種クロックのフリップフロップに接続されるフリップフロップを抽出する抽出ステップと、上記抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に確定する確定ステップとを有する。
本発明の第3の観点は、非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証処理であって、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けする組み分け処理と、他種クロックのフリップフロップに接続されるフリップフロップを抽出する抽出処理と、上記抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に確定する確定処理とをコンピュータに実行させるプログラムである。
本発明によれば、クロック周波数などの設定制約がなく、実機に近い状況で論理検証を行うことが可能となる。
以下、本発明の実施形態を図面に関連付けて説明する。
図1は、本発明の実施形態に係る非同期論理回路検証装置の構成例を示すブロック図である。
本非同期論理回路検証装置10は、図1に示すように、検証データ入力部11、回路構成分析部12、ランダムデータ生成用シード値供給部13、結果期待値供給部14、ランダムデータ入力部15、出力確定部としての検証対象回路16、結果比較部17、および統計情報収集部18を有している。
検証データ入力部11は、たとえばマウスやキーボード等を含み、検証データを検証対象回路16に入力する。
回路構成分析部12は、検証対象回路16の回路構成を分析し、非同期箇所を把握し、そのデータをランダムデータ入力部15および統計情報収集部18に供給する。
ランダムデータ生成用シード値供給部13は、ランダムデータ生成用シード値を確定し、確定したシード値をランダムデータ入力部15に供給する。
結果期待値供給部14は、検証データに対するあるべき出力値があらかじめ設定されており、結果期待値として結果比較部17に供給する。
ランダムデータ入力部15は、ランダムデータ生成用シード値供給部13から与えられるシード値等をランダムデータとして検証対象回路16に供給する。ランダムデータとしては、検証実行時の時刻、検証内時刻などが候補としてあげることができる。
検証対象回路16は、非同期クロック系統を持つ論理回路を含み、検証データ入力部11から入力された検証データ、ランダムデータ入力部15から入力されたランダムデータをもとに、ランダムに非同期箇所のデータを確定し、そのデータを回路構成分析部12、結果比較部17、および統計情報収集部18に供給する。
結果比較部17は、回路出力と結果期待値供給部14から供給された結果期待値と比較し、回路出力が妥当な結果であるかを判断し、その判断結果を統計情報収集部18に供給する。
統計情報収集部18は、回路構成分析部12で分析された非同期箇所情報、検証対象回路のデータ、および結果比較部17による判断結果の各情報を収集し、非同期箇所が検証された否かをチェックする。
本実施形態に係る非同期論理回路検証装置10は、以下の特徴を有する。
本非同期論理回路検証装置10は、非同期クロック系統を持つ論理回路の論理検証を行う機能を有する。
非同期論理回路検証装置10は、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する機能を有する。
また、非同期論理回路検証装置10は、抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に固定することで、非同期論理部の検証を適当に達成する機能を有する。
また、非同期論理回路検証装置10は、フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計することで、非同期論理部分の検証遂行を網羅的に確認することを実現する機能を有する。
非同期論理回路検証装置10は、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する機能を有する。
また、非同期論理回路検証装置10は、抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に固定することで、非同期論理部の検証を適当に達成する機能を有する。
また、非同期論理回路検証装置10は、フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計することで、非同期論理部分の検証遂行を網羅的に確認することを実現する機能を有する。
以下、本実施形態に係る非同期論理回路検証処理について、図2〜図8に関連付けて具体的に説明する。
本実施形態においては、上述したように、
1):他系統クロックとデータ受け渡しのあるフリップフロップを抽出すること、
2):上記1)の情報を元に、タイミング違反を起こしたフリップフロップの出力値を任意に確定させること、
という2つの手順を適用することで、非同期クロック系統を持つ論理回路のCAD上での論理検証を確実に遂行することを実現する。
1):他系統クロックとデータ受け渡しのあるフリップフロップを抽出すること、
2):上記1)の情報を元に、タイミング違反を起こしたフリップフロップの出力値を任意に確定させること、
という2つの手順を適用することで、非同期クロック系統を持つ論理回路のCAD上での論理検証を確実に遂行することを実現する。
図2は、フリップフロップの構成例を示す回路図である。
図3は、一つのクロックでデータを取り込む同期系の回路およびタイミングを示す図である。
図4は、第1のクロックで取り込んだデータを第2のクロックでデータを取り込む(受け渡す)回路およびタイミングを示す図である。
図3は、一つのクロックでデータを取り込む同期系の回路およびタイミングを示す図である。
図4は、第1のクロックで取り込んだデータを第2のクロックでデータを取り込む(受け渡す)回路およびタイミングを示す図である。
フリップフロップFFは、図2に示すように、転送ゲートTM1,TM2、2つのインバータの入出力同士を交差結合したラッチLTC1,LTC2、インバータINV1を有する。
転送ゲートTM1と転送ゲートTM2はクロックCLKで相補的に導通、非導通状態が切り替わる。
そして、データ入力端Dからデータ出力端Qに向かって順番に、転送ゲートTM1、ラッチLTC1、転送ゲートTM2、ラッチLTC1、インバータINV1が縦続接続されている。
転送ゲートTM1と転送ゲートTM2はクロックCLKで相補的に導通、非導通状態が切り替わる。
そして、データ入力端Dからデータ出力端Qに向かって順番に、転送ゲートTM1、ラッチLTC1、転送ゲートTM2、ラッチLTC1、インバータINV1が縦続接続されている。
図3において、フリップフロップFF1においてクロックCLKでラッチされて出力されたデータが、論理回路1を介してフリップフロップFF2で同じクロックCLKでラッチされる。
これに対して、本実施形態の非同期論理回路検証装置10の検証対象の一部となる図4の回路においては、フリップフロップFF11において第1のクロックCLK#1に同期してデータがラッチされ、その出力データが第2のクロックCLK#2に同期してフリップフロップFF12−1〜FF12−3により順次ラッチされていく。
フリップフロップはクロックの有効エッジ(一般的にはクロック立ち上がり)の近辺でデータが変化する使用方法を禁じており、図4(c)に示すように、クロック変化点の前後の一定期間にセットアップ・ホールドの時間規定が設けられている。
この規定に違反した際はフリップフロップの出力値が保証されず、ある確率でメタステーブル状態と呼ばれる出力値が発振する状態をつくりだしてしまう。
互いに非同期動作しているクロックによるフリップフロップのデータ受け渡し部分は、常にこのメタステーブル状態が起こりえる状態である。
本実施形態の非同期論理回路検証装置10においては、設計者は通常この危険性を考慮した煩雑な手間を要することなく、クロック周波数などの設定制約がなく、実機に近い状況で論理検証を行うことができる。
この規定に違反した際はフリップフロップの出力値が保証されず、ある確率でメタステーブル状態と呼ばれる出力値が発振する状態をつくりだしてしまう。
互いに非同期動作しているクロックによるフリップフロップのデータ受け渡し部分は、常にこのメタステーブル状態が起こりえる状態である。
本実施形態の非同期論理回路検証装置10においては、設計者は通常この危険性を考慮した煩雑な手間を要することなく、クロック周波数などの設定制約がなく、実機に近い状況で論理検証を行うことができる。
図5は、本実施形態に係る非同期論理回路検証手順を説明するための図である。
図6は、複数のフリップフロップから非同期クロック間でのデータ受け渡しに関わるフリップフロップを抽出する手順を説明するための図である。
図7は、図6のタイミングチャート例を示す図である。
図6は、複数のフリップフロップから非同期クロック間でのデータ受け渡しに関わるフリップフロップを抽出する手順を説明するための図である。
図7は、図6のタイミングチャート例を示す図である。
図6においては、フリップフロップF11は第1のクロックCLK#1に同期してデータを取り込み、フリップフロップFF12は第2のクロックCLK#2に同期してデータを取り込む。
図6において、Aで示すラインがデータ受け渡しに関わるラインである。
図6において、Aで示すラインがデータ受け渡しに関わるラインである。
本実施形態においては、図5(a)に示すように、検証対象回路16に対して、検証データ入力部11等からクロック間同期関係情報を設定する(ST1)。
次に、回路構成分析部12において、検証対象回路16が非同期ブロックを持つか否かを分析する(ST2)。
そして、非同期クロック間でのデータ受け渡しに関わるフリップフロップを事前に抽出する。
図6ではフリップフロップFF11AとFF12Aが抽出される。
次に、回路構成分析部12において、検証対象回路16が非同期ブロックを持つか否かを分析する(ST2)。
そして、非同期クロック間でのデータ受け渡しに関わるフリップフロップを事前に抽出する。
図6ではフリップフロップFF11AとFF12Aが抽出される。
図5(b)に示すように、クロックの有効エッジが入力され(ST11)、直近のデータ変化時点がセットアップ、ホールド違反か否かを判定する(ST12)。
それがステップ3で抽出されたフリップフロップであれば(ST15)、出力データに適当な値に確定させる(ST14)。
非同期論理回路検証手順についてさらに詳述する。
それがステップ3で抽出されたフリップフロップであれば(ST15)、出力データに適当な値に確定させる(ST14)。
非同期論理回路検証手順についてさらに詳述する。
このように、本実施形態ではまず、今回問題となる非同期クロック間でのデータ受け渡しに関わるフリップフロップを事前に抽出しておく。
論理シミュレータ等のCAD上で、ネットリストを読み込む際にこの抽出作業を行う。ネットリスト上の各フリップフロップに注目し、そのクロック入力端子を出発点として、配線をさかのぼることで、注目したフリップフロップがどのクロック系統に属するかは、それほど難度なく特定することができる。
実際に、こういった機能をもつCADツールはレイアウト関連を中心に、既に多数存在している。
この作業により、たとえば図5(b)にあるようにフリップフロップをクロック系統単位で組み分けすることができる。
論理シミュレータ等のCAD上で、ネットリストを読み込む際にこの抽出作業を行う。ネットリスト上の各フリップフロップに注目し、そのクロック入力端子を出発点として、配線をさかのぼることで、注目したフリップフロップがどのクロック系統に属するかは、それほど難度なく特定することができる。
実際に、こういった機能をもつCADツールはレイアウト関連を中心に、既に多数存在している。
この作業により、たとえば図5(b)にあるようにフリップフロップをクロック系統単位で組み分けすることができる。
次に、フリップフロップのデータ端子を出発点として、そこから配線をさかのぼる作業を行い、別のフリップフロップ、あるいは外端子に達成するまで進み続ける。
クロック配線の走査と異なり、データ配線の走査は間にANDやORなどの論理ゲートが介在するために、特に不可能ではないものの、難度はやや高くなる。
非同期クロック間の受け渡し配線は通常、ANDやORなどのいわゆる組み合わせ論理を入れないことが通例であるので、設計上のルールでこういった組み合わせ論理の介在が完全に禁止されていれば、論理ゲート(バッファ・インバータは除く)につきあたった時点で走査をやめてもかまわない。
こうして、突き当たったフリップフロップが、出発点のフリップフロップと異なるクロックで駆動されていた場合は、出発点のフリップフロップ、すなわちデータ受け側のフリップフロップを情報として記録しておく。
データ受け側にくらべ、データ出し側のフリップフロップはセットアップ・ホールド違反を起こさないため、重要度は高くない。
クロック配線の走査と異なり、データ配線の走査は間にANDやORなどの論理ゲートが介在するために、特に不可能ではないものの、難度はやや高くなる。
非同期クロック間の受け渡し配線は通常、ANDやORなどのいわゆる組み合わせ論理を入れないことが通例であるので、設計上のルールでこういった組み合わせ論理の介在が完全に禁止されていれば、論理ゲート(バッファ・インバータは除く)につきあたった時点で走査をやめてもかまわない。
こうして、突き当たったフリップフロップが、出発点のフリップフロップと異なるクロックで駆動されていた場合は、出発点のフリップフロップ、すなわちデータ受け側のフリップフロップを情報として記録しておく。
データ受け側にくらべ、データ出し側のフリップフロップはセットアップ・ホールド違反を起こさないため、重要度は高くない。
この情報を把握した状態で、論理シミュレーションを開始する。論理シミュレーションが進められる中で、フリップフロップがセットアップ・ホールド違反を起こした際、このフリップフロップが前述の手順で収集した情報に登録されている場合は、データ出力として不定値xを出す代わりに、0あるいは1の確定値を適当に出力する(ST13、ST14)。
適当に、というのは、この違反を起こした際のデータ入力値をそのまま出力しても構わないし、ひとつ前の値を出しても構わない。
非同期部分の動作を考慮した正しい設計が行われていれば、出力値が前の値をとっても、後の値をとっても、それ以降正しく動作しなくてはならないからである。そういった意味で、この確定出力値は、なにかランダムな条件で前の値、後ろの値を任意に出力するのが望ましいと言える。
たとえば、常に前の値を出力する、という仕様では、偏った状況での論理検証しか行えない可能性が生じてしまうからである。
ランダムデータ入力部15によるランダムな条件の候補としては、検証実行時の時刻、検証内時刻などが候補として考えられる。検証内時刻などを条件に選んでおけば、シミュレーション上再現性のある値となり、より望ましいと言える。
フリップフロップがタイミング違反を起こしたが、本発明の事由で出力に確定値を与えた場合は、そのフリップフロップ名と、発生時刻をログ情報として記録しておくとよい。検証終了後、検証者の想定しない状態が生じていないかの確認などに用いることができるからである。
非同期部分の動作を考慮した正しい設計が行われていれば、出力値が前の値をとっても、後の値をとっても、それ以降正しく動作しなくてはならないからである。そういった意味で、この確定出力値は、なにかランダムな条件で前の値、後ろの値を任意に出力するのが望ましいと言える。
たとえば、常に前の値を出力する、という仕様では、偏った状況での論理検証しか行えない可能性が生じてしまうからである。
ランダムデータ入力部15によるランダムな条件の候補としては、検証実行時の時刻、検証内時刻などが候補として考えられる。検証内時刻などを条件に選んでおけば、シミュレーション上再現性のある値となり、より望ましいと言える。
フリップフロップがタイミング違反を起こしたが、本発明の事由で出力に確定値を与えた場合は、そのフリップフロップ名と、発生時刻をログ情報として記録しておくとよい。検証終了後、検証者の想定しない状態が生じていないかの確認などに用いることができるからである。
逆に、該当フリップフロップのリストに登録されていない箇所でセットアップ・ホールド違反を起こした場合は、従来通りの動作として不定値xを出してよく、また出すべきである。同期クロック間では配置配線時にセットアップ・ホールド違反が起きないようなケアがされているべきであり、この違反が生じることはすなわち不具合である。よって、その後のシミュレーション結果が全て不定となっても構わない。
本実施形態の手順にて論理検証を行う場合、確認すべき全ての非同期受け渡し箇所が全て動作確認できることが重要である。
本実施形態の手順にて論理検証を行う場合、確認すべき全ての非同期受け渡し箇所が全て動作確認できることが重要である。
よって、シミュレーション実行時に、
1):セットアップ・ホールド状態が生じたかどうか、
2):出力値を0と1のどちらに固定したか、
という情報を回数として各フリップフロップ毎に収集・記録しておくことが望ましい。
1):セットアップ・ホールド状態が生じたかどうか、
2):出力値を0と1のどちらに固定したか、
という情報を回数として各フリップフロップ毎に収集・記録しておくことが望ましい。
全ての論理検証を実行したのち、全てのフリップフロップに対して、0、1の双方のケースが生じていることが確認できれば、網羅的に全ての非同期箇所を検証したという指標にすることができる。
図8は、本実施形態に係る統計情報収集部で収集される情報の一例を示す図である。
この場合、第1のクロックCLK#1に対して、第2のクロックCLK#2のどの位相のクロックでデータがたたかれたか、そして、ランダムデータ入力部15から与えられるランダムデータを検証対象回路16が0,1のどちらに確定したか、という情報を収集する。
図8の例においては、位相情報として1-1,1-2,1-3,1-4と0,1との対応付けた情報が統計的に収集される。
図8では、位相1-1で、値0,1ともOK(良好)、位相1-2、値0でOK、位相1-2、値1でNG(違反)、位相1-3,1-4共に、値0,1で未確定である。
この検証結果が全てOKとなることで、検証終了と判断される。
図8の例においては、位相情報として1-1,1-2,1-3,1-4と0,1との対応付けた情報が統計的に収集される。
図8では、位相1-1で、値0,1ともOK(良好)、位相1-2、値0でOK、位相1-2、値1でNG(違反)、位相1-3,1-4共に、値0,1で未確定である。
この検証結果が全てOKとなることで、検証終了と判断される。
以上説明したように、本実施形態によれば、非同期論理回路検証装置10は、非同期クロック系統を持つ論理回路の論理検証を行う機能を有し、論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する機能を有し、抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に固定することで、非同期論理部の検証を適当に達成し、フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計することで、非同期論理部分の検証遂行を網羅的に確認する機能を有することから、以下の効果を得ることができる。
すなわち、非同期クロック間でデータを受け渡す論理回路において、ゲートレベルで特にクロック周波数などの設定制約無く、実機に近い状況での論理検証を行うことができる。
また、非同期部分での不具合が発生した場合に、原因箇所を特定することが容易となる。
全ての非同期箇所が動作確認されたかを確実に把握することが可能となる。
また、非同期部分での不具合が発生した場合に、原因箇所を特定することが容易となる。
全ての非同期箇所が動作確認されたかを確実に把握することが可能となる。
なお、本発明の実施形態は、上述した実施形態に拘泥せず、当業者であれば、本発明の要旨を変更しない範囲内で様々な改変が可能である。
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
10・・・非同期論理回路検証装置、11・・・検証データ入力部、12・・・回路構成分析部、13・・・ランダムデータ生成用シード値供給部、14・・・結果期待値供給部、15・・・ランダムデータ入力部、16・・・検証対象回路、17・・・結果比較部、18・・・統計情報収集部。
Claims (9)
- 非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証装置であって、
論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けし、他種クロックのフリップフロップに接続されるフリップフロップを抽出する抽出部と、
上記抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に確定する出力確定部と
を有する非同期論理回路検証装置。 - フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計する情報収集部を有する
請求項1記載の非同期論理回路検証装置。 - 上記出力確定部は、
上記確定出力値を、あらかじめ設定されるランダムな条件で前の値、後ろの値を任意に出力する
請求項1記載の非同期論理回路検証装置。 - 上記出力確定部は、
上記フリップフロップのリストに登録されていない箇所で上記タイミング違反が生じた場合、不定値を出力する
請求項1記載の非同期論理回路検証装置。 - 非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証方法であって、
論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けする組み分けステップと、
他種クロックのフリップフロップに接続されるフリップフロップを抽出する抽出ステップと、
上記抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に確定する確定ステップと
を有する非同期論理回路検証方法。 - フリップフロップが非同期論理部分でタイミング違反を起こしたか否かを集計する集計ステップを有する
請求項5記載の非同期論理回路検証方法。 - 上記確定ステップにおいて、
上記確定出力値は、あらかじめ設定されるランダムな条件で前の値、後ろの値を任意に出力する
請求項5記載の非同期論理回路検証方法。 - 上記確定ステップにおいて、
上記フリップフロップのリストに登録されていない箇所で上記タイミング違反が生じた場合、不定値を出力する
請求項5記載の非同期論理回路検証方法。 - 非同期クロック系統を持つ論理回路の論理検証を行う非同期論理回路検証処理であって、
論理回路構造において、互いに非同期な異なるクロックで駆動されるフリップフロップをクロック種毎に組み分けする組み分け処理と、
他種クロックのフリップフロップに接続されるフリップフロップを抽出する抽出処理と、
上記抽出した情報を元に、タイミング違反によりメタステーブル状態を生じる可能性のあるフリップフロップの論理シミュレーション上の出力値を任意に確定する確定処理と
をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008027413A JP2009187344A (ja) | 2008-02-07 | 2008-02-07 | 非同期論理回路検証装置およびその方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008027413A JP2009187344A (ja) | 2008-02-07 | 2008-02-07 | 非同期論理回路検証装置およびその方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009187344A true JP2009187344A (ja) | 2009-08-20 |
Family
ID=41070508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008027413A Pending JP2009187344A (ja) | 2008-02-07 | 2008-02-07 | 非同期論理回路検証装置およびその方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009187344A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012014583A (ja) * | 2010-07-02 | 2012-01-19 | Fujitsu Ltd | 検証支援プログラム、検証支援装置および検証支援方法 |
JP2012168659A (ja) * | 2011-02-10 | 2012-09-06 | Fujitsu Ltd | 検証支援装置、検証装置、検証支援プログラム、検証プログラム、検証支援方法、および検証方法 |
WO2022239226A1 (ja) * | 2021-05-14 | 2022-11-17 | 三菱電機株式会社 | 組込み回路、回路品質確認装置、及び回路品質確認方法 |
-
2008
- 2008-02-07 JP JP2008027413A patent/JP2009187344A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012014583A (ja) * | 2010-07-02 | 2012-01-19 | Fujitsu Ltd | 検証支援プログラム、検証支援装置および検証支援方法 |
US8533541B2 (en) | 2010-07-02 | 2013-09-10 | Fujitsu Limited | Verification support of circuit blocks having independent clock domains |
JP2012168659A (ja) * | 2011-02-10 | 2012-09-06 | Fujitsu Ltd | 検証支援装置、検証装置、検証支援プログラム、検証プログラム、検証支援方法、および検証方法 |
US8661384B2 (en) | 2011-02-10 | 2014-02-25 | Fujitsu Limited | Verification support apparatus, verifying apparatus, computer product, verification support method, and verifying method |
WO2022239226A1 (ja) * | 2021-05-14 | 2022-11-17 | 三菱電機株式会社 | 組込み回路、回路品質確認装置、及び回路品質確認方法 |
JPWO2022239226A1 (ja) * | 2021-05-14 | 2022-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271918B2 (en) | Formal verification of clock domain crossings | |
US7958470B1 (en) | Method and system for false path analysis | |
US7519927B1 (en) | Wiring methods to reduce metal variation effects on launch-capture clock pairs in order to minimize cycle-time overlap violations | |
JP2008134824A (ja) | 消費電力解析方法及びプログラム | |
US11347917B2 (en) | Determining and verifying metastability in clock domain crossings | |
US10372858B2 (en) | Design-for-testability (DFT) insertion at register-transfer-level (RTL) | |
US7254793B2 (en) | Latch modeling technique for formal verification | |
JP4200465B2 (ja) | 半導体集積回路の設計方法及び設計システム | |
JP4918934B2 (ja) | 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム | |
Iizuka et al. | A tool set for the design of asynchronous circuits with bundled-data implementation | |
US9449127B1 (en) | System for verifying timing constraints of IC design | |
JP2008123056A (ja) | 論理回路のタイミング制約生成システムおよび論理回路のタイミング制約生成方法、制御プログラム、可読記録媒体 | |
JP2009187344A (ja) | 非同期論理回路検証装置およびその方法、並びにプログラム | |
JP6787045B2 (ja) | 検証支援プログラム、検証支援方法、および情報処理装置 | |
Madisetti et al. | Interface design for core-based systems | |
US7945882B2 (en) | Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium | |
JP5447547B2 (ja) | マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム | |
Plassan et al. | Improving the efficiency of formal verification: the case of clock-domain crossings | |
JP5104356B2 (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 | |
JP7573796B2 (ja) | 回路品質確認装置及び回路品質確認方法 | |
US20110320994A1 (en) | Apparatus for designing semiconductor integrated circuit, method of designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit | |
JP7351189B2 (ja) | タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム | |
WO2024100875A1 (ja) | 回路品質確認装置及び回路品質確認方法 | |
JP7354815B2 (ja) | 検証支援装置、検証支援方法および検証支援プログラム | |
JP6322888B2 (ja) | 半導体試験プログラム、半導体試験装置および半導体試験方法 |