(57)【要約】      （修正有）【課題】ＲＴＬ検証によりグリッジの有無を判断する。【解決手段】検出部１１０は、ＲＴＬデータが示す論理回路における各ＦＦについて、該ＦＦのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のＦＦと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出する。ＲＴＬシミュレータ１２０は、上記ＲＴＬデータと、検証用の信号パターンとが入力され、検出部１１０により検出された各論理ブロックについて、該論理ブロックの複数の入力の変化タイミングを取得する。判断部１３０は、検出部１１０により検出された各論理ブロックについて、該論理ブロックの複数の入力の変化タイミング間の差と閾値とを比較することにより、グリッジの有無を判断する。【選択図】図１
2012018474.tif 000002
【特許請求の範囲】
【請求項１】
ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）データが示す論理回路における各フリップ・フロップについて、該フリップ・フロップのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のフリップ・フロップと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出する検出部と、
前記ＲＴＬデータと、検証用の信号パターンとが入力され、前記検出部により検出された各論理ブロックについて、該論理ブロックの複数の入力の変化タイミングを取得するＲＴＬシミュレータと、
前記検出部により検出された各論理ブロックについて、該論理ブロックの複数の入力の変化タイミング間の差と閾値とを比較することにより、グリッジの有無を判断する判断部とを備えることを特徴とする論理検証装置。
【請求項２】
ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）データが示す論理回路における各フリップ・フロップについて、該フリップ・フロップのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のフリップ・フロップと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出し、
前記ＲＴＬデータと、検証用の信号パターンとに対してＲＴＬシミュレーションを行い、検出された各前記論理ブロックについて、該論理ブロックの複数の入力の変化タイミングを取得し、
検出された各前記論理ブロックについて、該論理ブロックの複数の入力の変化タイミング間の差と閾値とを比較することにより、グリッジの有無を判断することを特徴とする論理検証方法。
【請求項３】
ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）データが示す論理回路における各フリップ・フロップについて、該フリップ・フロップのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のフリップ・フロップと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出し、
前記ＲＴＬデータと、検証用の信号パターンとに対してＲＴＬシミュレーションを行い、検出された各前記論理ブロックについて、該論理ブロックの複数の入力の変化タイミングを取得し、
検出された各前記論理ブロックについて、該論理ブロックの複数の入力の変化タイミング間の差と閾値とを比較することにより、グリッジの有無を判断する処理をコンピュータに実行せしめることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の論理検証技術に関する。
【背景技術】
【０００２】
半導体集積回路の検証には、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）が利用されている。ＣＡＤによる検証のレベルは、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）や論理ゲートレベルなど種々知られている。
【０００３】
特許文献１には、論理ゲートレベル（特許文献１には論理レベルと呼ばれる）の検証により、非同期の２信号を入力とする論理ブロック（衝突点）を検出する手法が開示されている。図１４〜図１９を参照して説明する。図１４と図１５は該手法による工程フローと検証装置を夫々示し、図１６は論理回路図、図１７は図１６の回路における論理ブロックを頂点、信号線を辺とするとする有向グラフであり、図１８は図１６の回路における信号Ａの伝播経路の有向グラフであり、図１９は図１６の回路における信号Ｂの伝播経路及び信号Ａの経路との衝突点の有向グラフである。なお、図１４〜図１９は、特許文献１における図１〜図６に夫々該当する。また、説明に際しては、用語などについて、特許文献１に使用されたものを用いる。
【０００４】
図１５に示すように、論理検証装置１は、中央処理部１１、ネットリストデータを記憶したネットリスト記憶部１２、処理指示を入力するキーボードやファイル等の処理指示部１３、結果を表示する結果表示部１４、結果ファイルを記憶および出力する結果ファイル出力部１５を備える。さらに中央処理部１１は、ネットリスト読み込み部１６、ネットリストを階層展開する階層展開部１７、経路の検索および衝突点の検出を行う衝突点検索部１８、結果表示部１９から構成される。
【０００５】
図１４の工程フローに従って説明する。処理指示部１３からの処理指示により処理が開始される（ステップＳ−１１）。論理レベルのネットリストを読み込み（ステップＳ−１２）、階層を展開する（ステップＳ−１３）。ここでは図１６に示されるような論理ゲート等で構成される下位の論理記述レベルまで展開する。始点となる２つの信号（信号Ａと信号Ｂ）を処理指示部１３から設定する（ステップＳ−１４）。
【０００６】
図１７に示すように論理ブロックを頂点、信号線を辺とする有向グラフを作成する。全ての頂点は信号接続情報の他、２信号検出のためフラグ３種（後述のフラグＡ、フラグＢ、フラグＣ）を有するものとする。入力した論理レベルのネットリストに対して始点の２信号（信号Ａと信号Ｂ）を与える。
【０００７】
図１８に示すように、信号Ａについて入力点から出力方向に経路検索を実施し、出力する（ステップＳ−１５）。検索した経路には信号Ａの論理コーンである旨を示すフラグＡを設定する。なお、「経路検索」とは個々の論理ブロックの論理動作や遅延を無視し、信号の接続と方向を辿ることで、信号伝播の可能性のある論理ブロックを検出することである。この検出された論理ブロック全体を「論理コーン」と言う。検索はよく知られているように幅優先探索により行う（この方法によりループ回路内の検索も可能となる）。なお、「幅優先探索」は、始点から発生した波がグラフ上を等速で伝播する状態を推定する方法である。この手法は配線プログラムの代表的算法である「ＭＡＺＥ法」で使用されている。また、フラグを設定しながら検索を行うことで、ループした回路内を無限に検索し続けることを防止できる。経路検索は「グラフ表現」が一般的であるので、以後、グラフで説明することとする。
【０００８】
図１９に示すように、信号Ｂについても同様にフラグＢを設定しながら経路検索を実施、出力する（ステップＳ−１６）。信号Ｂの検索では信号Ａの論理コーンに到達した場合、その頂点に衝突点としてフラグＣを設定し、衝突点以降の経路検索は中止し他の経路の検索へ移る。これにより余分な経路検索を行わない。信号Ｂの検索終了後、検出した衝突点の論理ブロック（つまりフラグＣが設定された頂点）（図中では黒丸で示す）を記憶する。
【０００９】
検索漏れを防ぐため、ステップＳ−１５（第１経路）の処理を信号Ｂ、ステップＳ−１６（第２経路）の処理を信号Ａに入れ替えて実施し、前回の結果に今回の結果を追加した物を表示する（ステップＳ−１７）（ステップＳ−１８）。２つの結果を合わせることにより、全ての衝突点の検出が可能である。そして、検出した全ての衝突点を表示する（ステップＳ−１９）。他の信号との衝突点を検索する場合には（ステップＳ−１４）に戻り、始点となる信号を新たに設定し、ステップＳ−１４以下を繰り返す。これらのステップを繰り返すことで他の信号との衝突点が検索できる。様々な信号を組み合わせた衝突点を検索することで処理が終了する（ステップＳ−２０）。衝突点が検出された後は、論理シミュレーションや回路シミュレーションの過渡解析を実行することで、衝突点における論理動作や、動作タイミングを確認する。
【００１０】
非同期の２信号を入力とする論理ブロックでは、出力に発生するグリッジや期待外の動作は、後段の論理回路に誤動作をもたらす原因となる。特許文献１の手法は、論理ゲートレベルの検証により、このような、複数の非同期信号を入力とする論理ブロックを衝突点として検出できる。
【００１１】
近年、半導体集積回路の大規模化に伴い、検証方法が複雑化し、検証項目が増加する一方である。そのため、検証ＴＡＴも増加する。検証ＴＡＴを低減するために、論理ゲートレベルの検証より比較的に時間がかからないＲＴＬ検証がよく用いられるようになっている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−３２３７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、半導体集積回路におけるグリッジの発生は、該半導体集積回路における論理ゲートの具体的な接続形態に依存するため、論理ゲートレベルより上位のＲＴＬ検証では、グリッジの確認が困難である。そのため、グリッジの確認は、論理ゲートレベルの検証に頼っているというのが実状である。
【００１４】
これでは、グリッジの検証に時間がかかり、検証ＴＡＴの低減ができないという問題がある。
【課題を解決するための手段】
【００１５】
本発明の一つの態様は、論理検証装置である。この論理検証装置は、検出部と、ＲＴＬシミュレータと、判断部を備える。
【００１６】
検出部は、ＲＴＬデータが示す論理回路における各フリップ・フロップについて、該フリップ・フロップのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のフリップ・フロップと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出する。
【００１７】
ＲＴＬシミュレータは、前記ＲＴＬデータと、検証用の信号パターンとが入力され、検出部により検出された各論理ブロックについて、該論理ブロックの複数の入力の変化タイミングを取得する。
【００１８】
判断部は、検出部により検出された各論理ブロックについて、該論理ブロックの複数の入力の変化タイミング間の差と閾値とを比較することにより、グリッジの有無を判断する。
【００１９】
なお、上記態様の装置を方法やシステムに置き換えて表現したもの、コンピュータを該装置として動作せしめるものなども、本発明の態様としては有効である。
【発明の効果】
【００２０】
本発明にかかる技術によれば、ＲＴＬ検証によりグリッジの確認ができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態にかかる論理検証システムを示す図である。
【図２】図１に示す論理検証システムにおける検出部による観測ポイントの検出を示すフローチャートである。
【図３】ＲＴＬデータの例を示す図である（その１）。
【図４】図３に示すＲＴＬデータが表す論理回路の回路図である。
【図５】図３のＲＴＬデータが示す論理回路に対して検出された観測ポイントを示す図である。
【図６】ＲＴＬデータの例を示す図である（その２）。
【図７】図６に示すＲＴＬデータが表す論理回路の回路図である。
【図８】図６のＲＴＬデータが示す論理回路に対して検出された観測ポイントを示す図である。
【図９】図３と図４が示す論理回路における各信号のタイミングチャートの例を示す図である。
【図１０】図９に示すタイミングチャートに対応した、観測ポイントＣＨＫ１について取得された各信号の変化タイミング値の例を示す図である。
【図１１】図９に示すタイミングチャートに対応した、観測ポイントＣＨＫ２について取得された各信号の変化タイミング値の例を示す図である。
【図１２】図６と図７が示す論理回路における各信号のタイミングチャートの例を示す図である。
【図１３】図１２に示すタイミングチャートに対応した、観測ポイントＣＨＫ１について取得された各信号の変化タイミング値の例を示す図である。
【図１４】特許文献１における図１に対応し、該文献に開示された論理検証手法を示すフローチャートである。
【図１５】特許文献１における図２に対応し、該文献に開示された論理検証装置を示す図である。
【図１６】特許文献１における図３に対応し、論理回路を示す図である。
【図１７】特許文献１における図４に対応し、図１６に示す論理回路における有向グラフを示す図である（その１）。
【図１８】特許文献１における図５に対応し、図１６に示す論理回路における有向グラフを示す図である（その２）。
【図１９】特許文献１における図６に対応し、図１６に示す論理回路における有向グラフを示す図である（その３）。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。
【００２３】
図１は、本発明の実施の形態にかかる論理検証システム１００を示す。論理検証システム１００は、検証対象の論理回路に対してグリッジの発生を検証するものであり、ＲＴＬデータ記憶部１０２、検証パターン記憶部１０４、閾値記憶部１０６、検出部１１０、検出結果記憶部１１２、ＲＴＬシミュレータ１２０、変化タイミング記憶部１２２、判断部１３０、判断結果記憶部１３２を備える。
【００２４】
ＲＴＬデータ記憶部１０２には、検証対象となる論理回路を示すＲＴＬデータが格納されている。検証パターン記憶部１０４には、検証用の入力信号パターンが格納されている。閾値記憶部１０６には、判断部１３０による判断に用いられる閾値が格納されている。
【００２５】
検出部１１０は、ＲＴＬデータ記憶部１０２からＲＴＬデータを読み出し、該ＲＴＬデータが示す論理回路における、出力にグリッジが生じうる論理ブロックの候補を検出する。具体的には、検出部１１０は、ＲＴＬデータ記憶部１０２から読み出したＲＴＬデータが示す論理回路における各フリップ・フロップ（以下ＦＦという）について、該ＦＦのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のＦＦと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出する。
【００２６】
検出部１１０は、検出した論理ブロックについて、該論理ブロックの複数の入力を示すデータを生成して検出結果記憶部１１２に出力する。例えば、検出した論理ブロックは、３つの入力（入力１、入力２、入力３）を有する場合、検出部１１０は、該論理ブロックについて「入力１」の信号を示す「Ａ」、「入力２」の信号を示す「Ｂ」、「入力３」の信号を示す「Ｃ」の３つのデータを生成する。以下、検出部１１０により検出された論理ブロックの入力側を「観測ポイント」といい、検出部１１０により生成された上記データを「観測ポイントデータ」という。検出結果記憶部１１２は、検出部１１０からの観測ポイントデータを格納する。
【００２７】
ＲＴＬシミュレータ１２０は、ＲＴＬデータ記憶部１０２に格納されたＲＴＬデータと、検証パターン記憶部１０４に格納された検証用パターンと、検出結果記憶部１１２に格納された観測ポイントデータとを読み込み、ＲＴＬシミュレーションを行うことにより、観測ポイント毎に、その観測ポイントデータが示す各入力の変化タイミングを取得する。ＲＴＬシミュレータ１２０は、取得した変化タイミングのデータを変化タイミング記憶部１２２に出力し、変化タイミング記憶部１２２は、それを格納する。
【００２８】
判断部１３０は、各観測ポイントについて、その観測ポイントデータが示す複数の入力の変化タイミング間の差と、閾値記憶部１０６に格納された閾値とを比較することにより、該論理ブロックの出力におけるグリッジの有無を判断する。判断の結果、グリッジがある場合に、判断部１３０は、その旨を示すデータを、判断結果記憶部１３２に格納された結果ファイルに出力すると共に、モニタなどの表示装置にワーニングを表示する。
【００２９】
次いで、検出部１１０、ＲＴＬシミュレータ１２０、判断部１３０の処理を具体的に説明する。
【００３０】
図２は、検出部１１０による観測ポイントの検出を示すフローチャートである。図示のように、検出部１１０は、まず、ＲＴＬデータ記憶部１０２に格納されたＲＴＬデータが示す論理回路に対して、ＦＦを検索する（Ｓ１００）。ＦＦが見つかると、検出部１１０は、該ＦＦのクロック端子とリセット端子に論理ブロックが接続されているか否かを確認する（Ｓ１０２）。論理ブロックが接続されていれば、検出部１１０は、さらに、該論理ブロックが１つ入力の論理ブロックか複数入力の論理ブロックかを確認する（Ｓ１０４）。複数入力の論理ブロックである場合、検出部１１０は、該論理ブロックに対応する観測ポイントデータを生成して検出結果記憶部１１２に登録し、ステップＳ１１０の処理に進む（Ｓ１０４：Ｙｅｓ、Ｓ１０６）。一方、該論理ブロックが１つ入力の論理ブロックである場合には（Ｓ１０４：Ｎｏ）、検出部１１０は、観測ポイントの登録をせずにステップＳ１１０の処理に進む。
【００３１】
ステップＳ１１０において、検出部１１０は、該論理ブロックの前段、すなわち該論理ブロックの複数の入力端子と夫々接続されたものがＦＦと、ＰＬＬ回路と、外部端子のうちのいずれであるかを確認する（Ｓ１１０）。確認の結果、「Ｙｅｓ」であれば、検出部１１０は、次のＦＦの検索であるステップＳ１００からの処理を繰り返す（Ｓ１１０：Ｙｅｓ、Ｓ１２０：Ｎｏ、Ｓ１００〜）。
【００３２】
一方、ステップＳ１１０において、確認の結果が「Ｎｏ」であり、すなわち該論理ブロックの前段も論理ブロックである場合、検出部１１０は、該前段の論理ブロックについて、複数入力の論理ブロックなのか否かの確認からの処理を行う（Ｓ１０４〜）。
【００３３】
このように、検出部１１０は、各ＦＦについて、該ＦＦのクロック端子とリセット端子を夫々起点として、該起点の端子に入力される信号の入力経路を遡って、ＰＬＬ回路と、他のＦＦと、外部端子とのうちのいずれかに辿りつくまで、複数入力の論理ブロックを検出する。
【００３４】
ここで、検出部１１０による処理の具体例を説明する。
図３はＲＴＬデータの例であり、図４は、図３のＲＴＬデータを回路図表記したものである。
【００３５】
図４に示すように、図３のＲＴＬデータが示す論理回路２００において、フリップ・フロップＡは、信号ｃｌｋ１を入力クロックとし、信号ｒｓｔ１でリセットされるレジスタである。
【００３６】
信号ｒｓｔ１は、２入力のＡＮＤゲート２５０の出力であり、ＡＮＤゲート２５０の２つの入力（信号ｒｓｔ＿ｇ１、信号ｒｅｓｅｔ）の論理ＡＮＤ値である。
【００３７】
信号ｒｅｓｅｔは、外部端子２１６からの信号である。
信号ｒｓｔ＿ｇ１は、２入力のＡＮＤゲート２６０の出力であり、ＡＮＤゲート２６０の２つの入力（信号ｒｓｔ＿ｇ２、信号ｃ＿ｏｕｔ）の論理ＡＮＤ値である。信号ｃ＿ｏｕｔは、フリップ・フロップＣの出力である。
【００３８】
また、信号ｃｌｋ１は、２入力のＡＮＤゲート２３０の出力であり、ＡＮＤゲート２３０の２つの入力（信号ｐｌｌ＿ｃｌｋ、信号ｃｌｋ＿ｇ１）の論理ＡＮＤ値である。
【００３９】
信号ｐｌｌ＿ｃｌｋは、ＰＬＬ回路２１０が出力するクロック信号である。
信号ｃｌｋ＿ｇ１は、２入力のＯＲゲート２４０の出力であり、ＯＲゲート２４０の２つの入力（信号ｃｌｋ＿ｇａｔｅ、信号ｂ＿ｏｕｔ）の論理ＯＲ値である。
【００４０】
信号ｃｌｋ＿ｇａｔｅは、外部端子２１２からの信号であり、信号ｂ＿ｏｕｔは、フリップ・フロップＢの出力である。
【００４１】
検出部１１０は、図４に示す論理回路２００に対して、まず、フリップ・フロップＡのクロック端子とリセット端子を夫々起点として、該端子の入力経路を遡って観測ポイントを検出する。
【００４２】
この際、クロック端子を起点とする検出では、まず、１つ目の論理ブロックとなるＡＮＤゲート２３０が検出され、その２つの入力（信号ｐｌｌ＿ｃｌｋ、信号ｃｌｋ＿ｇ１）は、観測ポイントＣＨＫ１として登録される。次に、２つ目の論理ブロックとなるＯＲゲート２４０が検出され、その２つの入力（信号ｃｌｋ＿ｇａｔｅ、信号ｂ＿ｏｕｔ）は、観測ポイントＣＨＫ２として登録される。
【００４３】
リセット端子を起点とする検出では、まず、ＡＮＤゲート２５０が検出され、その２つの入力（信号ｒｓｔ＿ｇ１、信号ｒｅｓｅｔ）は、観測ポイントＣＨＫ３として登録される。次に、ＡＮＤゲート２６０が検出され、その２つの入力（信号ｒｓｔ＿ｇ２、信号ｃ＿ｏｕｔ）は、観測ポイントＣＨＫ４として登録される。
【００４４】
なお、フリップ・フロップＢとフリップ・フロップＣについては、観測ポイントが無い。
【００４５】
図５は、上述した検出結果をＲＴＬデータ上で示す図である。図示のように、信号ｒｓｔ＿ｇ１と信号ｒｅｓｅｔは観測ポイントＣＨＫ３として検出され、信号ｒｓｔ＿ｇ２と信号ｃ＿ｏｕｔは観測ポイントＣＨＫ４として検出されている。また、信号ｐｌｌ＿ｃｌｋと信号ｃｌｋ＿ｇ１は観測ポイントＣＨＫ１として検出され、信号ｃｌｋ＿ｇａｔｅと信号ｂ＿ｏｕｔは観測ポイントＣＨＫ２として検出されている。
【００４６】
図６は、ＲＴＬデータの別の例である、図７は、図６のＲＴＬデータを回路図表記したものである。
【００４７】
図７に示すように、図６のＲＴＬデータが示す論理回路３００において、フリップ・フロップＡは、信号ｃｌｋ１を入力クロックとするレジスタである。信号ｃｌｋ１は、３入力のセレクタ３２０の出力であり、セレクタ３２０の入力ｓｅｌ１が"０"であるときにｉｎ１となり、ｓｅｌ１が"１"であるときにｉｎ２となるクロックである。
【００４８】
セレクタ３２０の３つの入力はｉｎ１、ｉｎ２、ｓｅｌ１である。ｉｎ１は、ＰＬＬ回路３１０が出力するクロック信号であり、ｉｎ２は、外部端子３１２からのクロック信号である。ｓｅｌ１は、フリップ・フロップＢの出力である。
【００４９】
フリップ・フロップＢは、ＰＬＬ回路３１０が出力するｉｎ１を入力クロックとし、外部端子３１４からの制御信号ｉｎ３に応じて、セレクタ３２０による選択を制御する信号ｓｅｌ１を出力する。
【００５０】
検出部１１０は、図７に示す論理回路３００に対して、まず、フリップ・フロップＡのクロック端子起点として、該端子の入力経路を遡って観測ポイントを検出する。なお、この場合、フリップ・フロップＡのリセット端子にリセット信号の入力が無いので、リセット端子を起点とする検出がなされない。
【００５１】
フリップ・フロップＡのクロック端子を起点とする検出の結果、３入力の論理ブロックとなるセレクタ３２０が検出され、その３つの入力（ｉｎ１、ｉｎ２、ｓｅｌ１）は、観測ポイントＣＨＫ１として登録される。
なお、フリップ・フロップＢについては、観測ポイントが無い。
【００５２】
図８は、上述した検出結果をＲＴＬデータ上で示す図である。図示のように、ｉｎ１、ｉｎ２、ｓｅｌ１は観測ポイントＣＨＫ１として検出されている。
【００５３】
このようにして、検出部１１０は、ＲＴＬデータ記憶部１０２から、検証対象の論理回路を示すＲＴＬデータを読み出して観測ポイントを検出し、夫々の観測ポイントを示す観測ポイントデータを生成して検出結果記憶部１１２に格納する。
【００５４】
ＲＴＬシミュレータ１２０は、シミュレーションを実行する際に、各観測ポイントについて、該観測ポイントに含まれる複数の信号（該観測ポイントに対応する論理ブロックの複数の入力）の変化タイミングを取得して、それらを示すデータを変化タイミング記憶部１２２に格納する。
【００５５】
本実施の形態において、ＲＴＬシミュレータ１２０は、各観測ポイントについて、該観測ポイントの複数の信号のうちのいずれかが変化したとき（立上りと立下りのとき）、該信号に対して、例えばシミュレーション開始時刻からの経過時間を変化タイミング記憶部１２２に格納する。このタイミングで他の信号が変化していなければ、他の信号については「０」を格納する。以下、ＲＴＬシミュレータ１２０により変化タイミング記憶部１２２に格納したデータを「変化タイミング値」という。
【００５６】
図９は、図４に示す論理回路２００における観測ポイントＣＨＫ１と観測ポイントＣＨＫ２の各信号、及び信号ｃｌｋ１のタイミングチャートの例を示す。
【００５７】
図９に示すように、経過時間が５００ｐｓになったときに、信号ｐｌｌ＿ｃｌｋが立ち上がる。このとき、他のいずれの信号も変化していない。この場合、ＲＴＬシミュレータ１２０は、信号ｐｌｌ＿ｃｌｋについて「５００」を、他の信号については「０」を変化タイミング記憶部１２２に格納する。
【００５８】
また、経過時間が２０００ｐｓになったときに、ｃｌｋ１、ｐｌｌ＿ｃｌｋ、ｃｌｋ＿ｇ１、ｂ＿ｏｕｔが経ち上がり、ｂ＿ｏｕｔが変化していない。この場合、ＲＴＬシミュレータ１２０は、ｃｌｋ１、ｐｌｌ＿ｃｌｋ、ｃｌｋ＿ｇ１、ｂ＿ｏｕｔについて「２０００」を、ｂ＿ｏｕｔについては「０」を変化タイミング記憶部１２２に格納する。
【００５９】
図１０と図１１は、図９に示す例の場合、ＲＴＬシミュレータ１２０が観測ポイントＣＨＫ１と観測ポイントＣＨＫ２について変化タイミング記憶部１２２に格納したデータをそれぞれ示す。なお、「動作回数」は、該観測ポイントにおいて信号の変化が生じた回数を意味する。複数の信号が同時に変化した場合は、１回とカウントされる。
【００６０】
図１０に示すように、観測ポイントＣＨＫ１の２つの信号のうちの信号ｐｌｌ＿ｃｌｋについて、「５００」、「１５００」、「２０００」、「３０００」、「３５００」、「４０００」が格納されている。これは、これらのタイミングで信号ｐｌｌ＿ｃｌｋが変化したことを示す。
【００６１】
一方、信号ｃｌｋ＿ｇ１について、「２０００」以外、「０」しか格納されていない。これは、信号ｃｌｋ＿ｇ１は、２０００ｐｓのタイミングでのみ変化したことを示す。
【００６２】
また、図１１に示すように、観測ポイントＣＨＫ２の２つの信号のうちの信号ｂ＿ｏｕｔについて「２０００」、「０」、「３５００」、信号ｃｌｋ＿ｇａｔｅについて「０」、「３４６０」、「０」が格納されている。これは、信号ｂ＿ｏｕｔが２０００ｐｓと３５００ｐｓで変化し、信号ｃｌｋ＿ｇａｔｅが３４６０ｐｓで変化したことを示す。
【００６３】
図１２は、図７に示す論理回路３００における観測ポイントＣＨＫ１の各信号、及び信号ｃｌｋ１のタイミングチャートの例を示す。図１３は、図１２に示す例の場合、ＲＴＬシミュレータ１２０が観測ポイントＣＨＫ１について変化タイミング記憶部１２２に格納したデータを示す。
【００６４】
図１３に示すように、観測ポイントＣＨＫ１の３つの信号のうちの信号ｉｎ１について、「５００」、「１５００」、「２０００」、「３０００」、「３５００」、「４０００」が格納されており、信号ｉｎ２について、「０」、「０」、「２０００」、「０」、「０」、「０」が格納されている。また、信号ｓｅｌ１について、「０」、「０」、「２０００」、「０」、「３５００」、「０」が格納されている。
【００６５】
すなわち、信号ｉｎ１は、５００ｐｓ、１５００ｐｓ、２０００ｐｓ、３０００ｐｓ、３５００ｐｓ、４０００ｐｓの各タイミングで変化した。信号ｉｎ２は、２０００ｐｓのタイミングでのみ変化した。また、信号ｓｅｌ１は、２０００ｐｓと３５００ｐｓのタイミングで変化した。
【００６６】
判断部１３０は、各観測ポイントについて、閾値記憶部１０６に格納された閾値と、変化タイミング記憶部１２２に格納されたデータとを用いて、動作回数毎にグリッジの有無を判断する。判断の結果、グリッジがある場合に、判断部１３０は、その旨を示すデータを、判断結果記憶部１３２に格納された結果ファイルに出力すると共に、モニタなどの表示装置にワーニングを表示する。
【００６７】
まず、２入力の論理ブロックとなる観測ポイントの場合の判断について説明する。この場合、該観測ポイントに対応する信号が２つ（信号１、信号２）である。
【００６８】
この場合、判断部１３０は、まず、この２つの信号の変化タイミング値（ｎ）が下記の式（１）が満たされるか否かを判断する。なお、変化タイミング値（ｎ）」は、変化タイミング記憶部１２２において、動作回数が「ｎ」であるときに該信号に対して格納されたデータ値を意味する。
信号１の変化タイミング値（ｎ）−信号２の変化タイミング値（ｎ）＝０      （１）
但し，ｎ：動作回数
【００６９】
すなわち、この判断は、信号１と信号２が同時に変化したかの判断である。信号１と信号２の変化タイミング値が式（１）を満たせば、判断部１３０は、「グリッジあり」と判断する。
【００７０】
そして、判断部１３０は、式（２）と式（３）による判断を行う。なお、当該式の左辺の２つの値のうちのいずれか１つまたは両方とも「０」である場合には、判断部１３０は、当該式による判断をパスする。
信号１の変化タミング値（ｎ）−信号２の変化タイミング値（ｎ−１）＜閾値  （２）
信号２の変化タミング値（ｎ）−信号１の変化タイミング値（ｎ−１）＜閾値  （３）
【００７１】
式（２）と式（３）における閾値は、予め閾値記憶部１０６に格納されたものである。判断部１３０は、式（２）または式（３）を満たす場合に、「グリッジあり」と判断する。
【００７２】
図１０と図１１の例の場合を説明する。なお、閾値は、５０ｐｓであるとする。
図１０の場合、１回目、２回目では、２つの信号の変化タイミング値は、式（１）を満たしていない。また、式（２）と式（３）による判断はパスされる。３回目では、２つの信号の変化タイミング値が式（１）を満たすため、「グリッジあり」と判断される。その後の４〜６回目では、２つの信号の変化タイミング値が式（１）を満たさないと共に、式（２）と式（３）による判断はパスされる。
【００７３】
図１１の場合、１回目、２回目では、２つの信号の変化タイミング値が式（１）を満たさないと共に、式（２）と式（３）による判断はパスされる。３回目では、２つの信号の変化タイミング値が式（１）を満たさないが、式（２）の左辺が閾値「５０」より小さい「４０」であるため、「グリッジあり」と判断される。
【００７４】
すなわち、判断部１３０は、２つの信号のみが含まれる観測ポイントについて、該２つの信号に変化（立上りまたは立下り）が生じたタイミングの差が閾値より小さくなった場合に、「グリッジあり」と判断する。
【００７５】
次に、３入力の論理ブロックとなる観測ポイントの場合の判断について説明する。この場合、該観測ポイントに含まれる信号が３つ（信号１、信号２、信号３）である。
【００７６】
本実施の形態において、この場合、判断部１３０は、グリッジが生じる可能性の大きさに応じて異なるレベルのワーニングを出す。
【００７７】
具体的には、判断部１３０は、まず、下記の式（４）〜（６）が成立するか否かを確認する。
信号１の変化タイミング値（ｎ）≠０        （４）
信号２の変化タイミング値（ｎ）≠０        （５）
信号３の変化タイミング値（ｎ）≠０        （６）
【００７８】
式（４）〜（６）のいずれかが成立する場合、すなわち、動作回数がｎ回目であるときに、信号１、信号２、信号３のいずれかの変化タイミング値が「０」ではない場合に、判断部１３０は、最もレベルの低いワーニング（例えばレベル０のワーニング）を出す。
【００７９】
そして、判断部１３０は、式（７）〜（９）による判断を行う。なお、式（７）〜（９）について、左辺と右辺のいずれも「０」である場合には、判断部１３０は、該式による判断をパスする。
信号１（ｎ）＝信号２（ｎ）                （７）
信号１（ｎ）＝信号３（ｎ）                （８）
信号２（ｎ）＝信号３（ｎ）                （９）
【００８０】
この判断は、信号１、信号２、信号３のうちに、２つ以上の信号が同時に変化したかの判断である。判断部１３０は、式（７）〜（９）のいずれかの式が成り立つ場合に、ワーニングを出す。なお、このワーニングのレベルは、式（４）〜（６）による判断の結果に基づいたワーニングのレベルより、グリッジの可能性がより大きいことを示すレベル（例えばレベル１０）になる。
【００８１】
さらに、式（７）〜（９）のうちの、成立する式の数が多いほどレベルが高くなるようにワーニングを出してもよい。例えば、この３つの式のうちの１つの式のみが成立する場合には、レベル１０のワーニングを出し、２つ以上の式が成立する場合にはレベル１１のワーニングを出す。なお、式（７）〜（９）から分かるように、いずれか２つの式が成立すれば、他のもう１つの式も成立する。そのため、２つの式が成立する場合と、３つの式が成立する場合とを区別する必要がない。
【００８２】
式（７）〜（１０）のいずれも成立しない場合、判断部１３０は、さらに、下記の式（１０）〜（１５）による判断を行う。なお、当該式の左辺の２つの値のうちのいずれか１つまたは両方とも「０」である場合には、判断部１３０は、当該式による判断をパスする。
【００８３】
信号１の変化タミング値（ｎ）−信号２の変化タイミング値（ｎ−１）＜閾値 （１０）
信号１の変化タミング値（ｎ）−信号３の変化タイミング値（ｎ−１）＜閾値 （１１）
信号２の変化タミング値（ｎ）−信号１の変化タイミング値（ｎ−１）＜閾値 （１２）
信号２の変化タミング値（ｎ）−信号３の変化タイミング値（ｎ−１）＜閾値 （１３）
信号３の変化タミング値（ｎ）−信号１の変化タイミング値（ｎ−１）＜閾値 （１４）
信号３の変化タミング値（ｎ）−信号２の変化タイミング値（ｎ−１）＜閾値 （１５）
【００８４】
判断部１３０は、式（１０）〜（１５）のいずれかが成立する場合に、ワーニングを出す。なお、この場合に出すワーニングのレベルは、式（４）〜（６）による判断の結果に基づいたワーニングのレベルより高く、式（７）〜（９）による判断の結果に基づいたワーニングのレベルより低い範囲内とすることができる。例えば、式（１０）〜（１１）のうちの１つの式のみが成立する場合に「レベル１」、全ての式が成立する場合に「レベル９」を出すようにすればよい。
【００８５】
図１３の例の場合を説明する。なお、閾値は、５５０ｐｓであるとする。
図１３の場合、式（４）〜（６）による判断の結果、１回目（動作回数ｎ＝１）から６回目（動作回数ｎ＝６）のいずれの回においても、まず、レベル０のワーニングが出される。
【００８６】
式（７）〜（１０）による判断の結果は、異なる回で異なる。例えば、１回目において、信号ｉｎ１（信号１）が「５００」であり、信号ｉｎ２（信号２）とｓｅｌ１（信号３）が「０」である。そのため、式（７）〜（１０）による判断の結果、ワーニングが出されない。２回目、４回目、６回目についても同様である。
【００８７】
一方、３回目の場合、式（７）〜（９）が全て成立するため、最も高い「レベル１１」のワーニングが出される。
【００８８】
また、５回目の場合、式（８）のみが成立するため、「レベル１０」のワーニングが出される。
【００８９】
３回目と４回目については、高いレベルのワーニングが出されているため、式（１０）〜（１５）による判断がなされない。一方、１回目、２回目、４回目、６回目について、式（１０）〜（１５）による判断がなされる。
【００９０】
例えば、４回目では、式（１２）〜（１５）による判断がパスされる。式（１０）と式（１１）の左辺が「１０００」であり、閾値の「５５０」以上であるため、式（１０）と式（１１）による判断でも、４回目では、ワーニングが出されない。
【００９１】
対して、６回目では、式（１０）、式（１２）〜（１５）による判断がパスされる。しかし、式（１１）の左辺が「５００」であり、閾値の「５５０」より小さいため、６回目では、「レベル１」のワーニングが出される。
【００９２】
このように、本実施の形態の論理検証システム１００によれば、論理ゲートレベルの検証に頼っていたグリッジの検出をＲＴＬ検証により行うことができる。論理ゲートレベルで同様の検証を行う場合に、ＲＴＬ検証の数倍〜数十倍の時間がかかるため、本実施の形態の論理検証システム１００は、検証ＴＡＴの大幅の低減ができる。
【００９３】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００９４】
１  論理検証装置    １１  中央処理部
１２  ネットリスト記憶部  １３  処理指示部
１４  結果表示部  １５  結果ファイル出力部
１６  ネットリスト読み込み部  １７  階層展開部
１８  衝突点検索部  １９  結果表示部
１００  論理検証システム  １０２  ＲＴＬデータ記憶部
１０４  検証パターン記憶部  １０６  閾値記憶部
１１０  検出部  １１２  検出結果記憶部
１２０  ＲＴＬシミュレータ  １２２  変化タイミング記憶部
１３０  判断部  １３２  判断結果記憶部
２００  論理回路  ２１０  ＰＬＬ回路
２１２  外部端子  ２１４  外部端子
２１６  外部端子  ２３０  ＡＮＤゲート
２４０  ＯＲゲート  ２５０  ＡＮＤゲート
２６０  ＡＮＤゲート  ３００  論理回路
３１０  ＰＬＬ回路  ３１２  外部端子
３１４  外部端子  ３２０  セレクタ
【図１】
2012018474.tif 000003
【図２】
2012018474.tif 000004
【図３】
2012018474.tif 000005
【図４】
2012018474.tif 000006
【図５】
2012018474.tif 000007
【図６】
2012018474.tif 000008
【図７】
2012018474.tif 000009
【図８】
2012018474.tif 000010
【図９】
2012018474.tif 000011
【図１０】
2012018474.tif 000012
【図１１】
2012018474.tif 000013
【図１２】
2012018474.tif 000014
【図１３】
2012018474.tif 000015
【図１４】
2012018474.tif 000016
【図１５】
2012018474.tif 000017
【図１６】
2012018474.tif 000018
【図１７】
2012018474.tif 000019
【図１８】
2012018474.tif 000020
【図１９】
2012018474.tif 000021