(57)【要約】      （修正有）【課題】簡単かつ効率的な論理検証作業で高精度の論理検証をおこなうことにより、論理検証期間の短縮化を図ること。【解決手段】論理検証装置２００は、入力部２０１と、生成部２０２と、入力制約情報算出部２０３と、出力制約情報算出部２０４と、入出力制約情報算出部２０５と、判定部２０６と、論理検証部２０７と、を備えている。入力部２０１は、ハードウェア記述情報Ｄ１およびハードウェアモジュールの通信手順に関するインターフェース仕様記述情報Ｄ２を入力する。生成部２０２は、インターフェース仕様記述情報Ｄ２に基づいて、ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成する。入力制約情報算出部２０３は、生成された有限状態機械モデルを用いて、入力制約情報を算出する。【選択図】        図２
2006053813.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールの動作を論理検証する論理検証手段と、
を備えることを特徴とする論理検証装置。
【請求項２】
前記入力手段によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入力される信号が満たすべき制約に関する入力制約情報を算出する入力制約情報算出手段を備え、
前記論理検証手段は、
前記入力制約情報算出手段によって算出された入力制約情報に基づいて、前記ハードウェアモジュールの動作を論理検証することを特徴とする請求項１に記載の論理検証装置。
【請求項３】
前記入力手段によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成する生成手段を備え、
前記入力制約情報算出手段は、
前記生成手段によって生成された有限状態機械モデルを用いて、前記入力制約情報を算出することを特徴とする請求項２に記載の論理検証装置。
【請求項４】
前記インターフェース仕様記述情報は、
前記ハードウェアモジュールの端子に入出力される信号の信号変化パターンと、当該信号変化パターンの各時刻において前記端子に入出力される信号の方向を示す信号方向情報とを含み、
前記生成手段は、
前記信号変化パターンおよび前記信号方向情報に基づいて、前記ハードウェアモジュールに入出力される信号を特定する信号特定情報に、当該信号の方向に合致する前記信号方向情報が付加された入力変数および出力変数を生成する変数生成手段を備え、
前記変数生成手段によって生成された入力変数および出力変数を用いて、前記有限状態機械モデルを生成することを特徴とする請求項３に記載の論理検証装置。
【請求項５】
前記入力制約情報算出手段は、
前記生成手段によって生成された有限状態機械モデルから、前記出力変数を消去することによって前記入力制約情報を算出することを特徴とする請求項４に記載の論理検証装置。
【請求項６】
前記生成手段によって生成された有限状態機械モデルから前記入力変数を消去することによって、前記ハードウェアモジュールから出力される信号が満たすべき制約に関する出力制約情報を算出する出力制約情報算出手段と、
前記入力制約情報算出手段によって算出された入力制約情報と、前記出力制約情報算出手段によって算出された出力制約情報とに基づいて、前記インターフェース仕様記述情報の正当性を判定する判定手段と、を備え、
前記論理検証手段は、
前記判定手段によって判定された判定結果に基づいて、前記ハードウェアモジュールの動作を論理検証することを特徴とする請求項５に記載の論理検証装置。
【請求項７】
前記有限状態機械モデルは、
前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理関数が、各遷移枝に関連付けられた状態遷移グラフによって表現されており、
前記入力制約情報算出手段は、
前記状態遷移グラフにおいて遷移条件が規定された論理関数から、存在量化処理を用いて前記出力変数を消去することによって前記入力制約情報を算出することを特徴とする請求項５に記載の論理検証装置。
【請求項８】
ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報を入力する入力工程と、
前記入力工程によって入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアの動作を論理検証する論理検証工程と、
を含んだことを特徴とする論理検証方法。
【請求項９】
ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報を入力させる入力工程と、
前記入力工程によって入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールの動作を論理検証させる論理検証工程と、
をコンピュータに実行させることを特徴とする論理検証プログラム。
【請求項１０】
請求項９に記載の論理検証プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、検証対象となるＬＳＩなどのハードウェアモジュールを論理検証する論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
ＬＳＩなどのハードウェアモジュールの設計では、従来から設計期間の短縮による作業効率化が要求されている一方、ハードウェアモジュールが正しく動作するかどうかを検証する検証作業が必要不可欠であり、特に、大規模化、高機能化、高速化および低消費電力化が要求されているハードウェアモジュールについては、高品質を維持するためにもこの検証作業は重要である。
【０００３】
このハードウェアモジュールは、一般に、複数の入力／出力端子を持っており、その信号値はクロックサイクル毎に変化する。この信号変化のパターン（入力／出力シーケンス）は仕様で決められており、任意の時刻に任意の信号値が許されるというわけではない。ここで、具体的にハードウェアモジュールを用いてこの信号変化について説明する。
【０００４】
図１０は、論理検証対象となる一般的なハードウェアモジュールの一例を示すブロック図である。図１０において、ハードウェアモジュールＭは、クロック信号clkを入力するクロック端子Ｐ１と、コマンド信号cmdを入力するコマンド入力端子Ｐ２と、リクエスト信号reqを入力するリクエスト入力端子Ｐ３と、アクノリッジ信号ackを出力するアクノリッジ出力端子Ｐ４と、３２ビットのデータ信号datを入出力するデータ入出力端子Ｐ５とを有する。
【０００５】
このハードウェアモジュールＭの仕様では、Read動作とWrite動作の２つパターンのみが許容される。図１１は、ハードウェアモジュールＭのRead動作を示す波形図であり、データ信号dat（図１１中、出力データoutＤ）が読み出される。また、図１２は、ハードウェアモジュールＭのWrite動作を示す波形図であり、データ信号dat（図１２中、入力データinＤ）が書き込まれる。
【０００６】
この図１１に示したRead動作の入力信号および図１２に示したWrite動作の入力信号が満たすべき制約条件を表現するものが「入力制約」である。ハードウェアモジュールＭの入力制約はつぎの２項目にまとめることができる。
【０００７】
（１）Read動作に関する入力制約
コマンド信号cmdの入力値が「０」およびリクエスト信号reqの入力値が「１」で、かつ、アクノリッジ信号ackの出力値が「０」であれば、つぎのサイクルでも、コマンド信号cmdの入力値は「０」、リクエスト信号reqの入力値は「１」を保たなければならない。
【０００８】
（２）Write動作に関する入力制約
コマンド信号cmdの入力値が「１」およびリクエスト信号reqの入力値が「１」で、かつ、アクノリッジ信号ackの出力値が「０」であれば、つぎのサイクルでも、コマンド信号cmdの入力値は「１」、リクエスト信号reqの入力値は「１」を保たなければならず、データ信号datの入力値も同じ値に保持されなければならない。
【０００９】
上述した入力制約（１）および（２）は、論理検証に不可欠な情報である。論理検証は、入力端子に入力される信号の信号値が入力制約を満足する範囲でどのように変化しても、ハードウェアモジュールＭが正しく動作することを確かめる作業である。一方、入力制約を満たさない入力に対する動作は、検証として意味を持たない。
【００１０】
ここで、図１０に示したハードウェアモジュールＭの入力制約違反について説明する。図１３は、ハードウェアモジュールＭの入力制約違反を示す波形図である。図１０に示したハードウェアモジュールＭで、図１３に示した動作波形が観測された場合、上述した入力制約（２）に違反していることとなる。
【００１１】
したがって、このときのWrite動作で期待される機能（たとえば、ハードウェアモジュールＭがデータ信号datの信号値を記憶すること）が正しく実行されなかった、あるいは、その後のRead動作で取り出されるデータ信号datの信号値が期待する値でなかった、としても、そのことをハードウェアモジュールＭの論理障害と判定してはならない。
【００１２】
上述のような入力制約違反を正しく検証するため、単純な論理シミュレーションではなく、形式的検証（formal verification）や制約ベース検証（constraint-based verification）と呼ばれる検証方法がある。この検証方法では、論理検証ツールへの入力として、論理検証対象であるハードウェア記述や検証内容を表現した検証プロパティ記述に加えて、計算機解釈可能な入力制約記述を用意することが重要である（たとえば、下記非特許文献１および２を参照。）。
【００１３】
また、現実のハードウェアモジュールＭの論理検証では、上述した非特許文献１および２で示した入力制約記述が数百項目におよぶこともあり、それらを漏れなく正確に記述することは容易な作業ではない。このため、入力制約記述があれば、その後の論理検証作業を自動的かつ効率的に実行することが可能である（たとえば、下記非特許文献３および４を参照。）。
【００１４】
一方、ハードウェアモジュールＭがどのような入出力端子を持ち、その入出力端子を介してどのような種類の通信がおこなわれ、それぞれの種類の通信がどのような信号変化パターンを持つかを網羅的に記述したものを、ハードウェアモジュールＭのインターフェース仕様記述と呼ぶ。
【００１５】
インターフェース仕様記述は、設計のためにも論理検証のためにも有用である。インターフェース仕様記述は、通信手順に関する仕様を明確にし、設計者間での仕様に関する理解を共有することができ、その理解を助ける。インターフェース仕様記述から論理検証用のチェッカやテストパターンを生成する方法が、下記非特許文献５に開示されている。
【００１６】
【非特許文献１】カール・ピクスレイ、ジョン・ハブリセク（Carl Pixley and John Havlicek）著，「ア  ベリフィケーション  シナジー：コンストレイント−ベイスド  ベリフィケーション（A Verification Synergy: Constraint-Based Verification）」，エレクトリック  デザイン  プロセス  ワークショップ（Electronic Design Process Workshop），アイトリプルイー  コンピュータ  ソサエティ出版（IEEE Computer Society），２００３年
【非特許文献２】ジョセフ・リチャーズ（Joseph Richards）著，「クリエイティブ  アサーション  アンド  コンストレイント  メソッド  フォー  フォーマル  デザイン  ベリフィケーション（Creative Assertion and Constraint Methods for Formal Design Verification）」，デザイン  アンド  ベリフィケーション  カンファレンス  アンド  エキシビジョン出版（Design and Verification Conference and Exhibition （DVCon）），２００３年
【非特許文献３】カンナ・シミズ、デビッド・エル・ディル（Kanna Shimizu and David L. Dill）著，「ディライビング  ア  シミュレーション  インプット  ジェネレーター  アンド  ア  カバレッジ  メトリック  フロム  ア  フォーマル  スペシフィケーション（Deriving a Simulation Input Generator and a Coverage Metric From a Formal Specification）」，デザイン  オートメーション  カンファレンス（Design Automation Conference （DAC）），２００２年
【非特許文献４】ジュン・ユアン、ケン・アルビン、アドナン・アジズ、カール・ピクスレイ（Jun Yuan, Ken Albin, Adnan Aziz, and Carl Pixley）著， 「コンストレイント  シンセシス  フォー  エンビロンメント  モデリング  イン  ファンクショナル  ベリフィケーション（Constraint Synthesis for Environment Modeling in Functional Verification）」，デザイン  オートメーション  カンファレンス出版  （Design Automation Conference（DAC）），２００３年
【非特許文献５】コージ・アラ、ケイ・スズキ（Koji Ara and Kei Suzuki）著，「ア  プローザル  フォー  トランザクション−レベル  ベリフィケーション  ウィズ  コンポネント  ラッパー  ランゲージ（A proposal for transaction-level verification with Component Wrapper Language）」，デザイン  オートメーション  アンド  テスト  イン  ヨーロッパ出版（Design Automation and Test in Europe（DATE）），２００３年
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、上述した非特許文献１〜５の従来技術では、形式的検証や制約ベース検証には計算機解釈可能な入力制約記述が必要である。したがって、新しく設計されたハードウェアモジュールに関する入力制約は、ハードウェアモジュールの仕様を理解した技術者が手作業で記述することとなり、手間がかかるという問題があった。
【００１８】
また、仕様が変更あるいは修正された場合、再び、技術者による人手作業が発生するため、さらに手間がかかるという問題があった。このように、技術者の手作業に依存していることにより、検証作業の長期化、ひいては設計作業の長期化を招くという問題があった。
【００１９】
また、技術者の手作業に依存すると、作成された入力制約記述に漏れや誤りが生じやすい。したがって、正しい論理検証をおこなうことができず、論理検証精度が低下するとともに、歩留まりが低下するという問題があった。
【００２０】
この発明は、上述した従来技術による問題点を解消するため、簡単かつ効率的な論理検証作業で高精度の論理検証をおこなうことにより、論理検証期間の短縮化を図ることができる論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上述した課題を解決し、目的を達成するため、この発明にかかる論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体は、ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報を入力し、入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールの動作を論理検証することを特徴とする。
【００２２】
この発明によれば、インターフェース仕様記述情報を直接入力することにより、ハードウェアモジュールの動作を論理検証することができる。
【００２３】
また、上記発明において、入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入力される信号が満たすべき制約に関する入力制約情報を算出し、前記入力制約情報算出手段によって算出された入力制約情報に基づいて、前記ハードウェアモジュールの動作を論理検証することとしてもよい。
【００２４】
この発明によれば、インターフェース仕様記述情報を入力するだけで、入力制約情報を自動的に算出することができる。
【００２５】
また、上記発明において、入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成し、生成された有限状態機械モデルを用いて、前記入力制約情報を算出することとしてもよい。
【００２６】
この発明によれば、インターフェース仕様記述情報の内容から、ハードウェアモジュールの状態遷移を認識することができる。
【００２７】
また、上記発明において、前記インターフェース仕様記述情報は、前記ハードウェアモジュールの端子に入出力される信号の信号変化パターンと、当該信号変化パターンの各時刻において前記端子に入出力される信号の方向を示す信号方向情報とを含み、前記信号変化パターンおよび前記信号方向情報に基づいて、前記ハードウェアモジュールに入出力される信号を特定する信号特定情報に、当該信号の方向に合致する前記信号方向情報が付加された入力変数および出力変数を生成し、生成された入力変数および出力変数を用いて、前記有限状態機械モデルを生成することとしてもよい。
【００２８】
この発明によれば、入力変数および出力変数を用いて有限状態機械モデルを生成することにより、有限状態機械モデル内において、信号方向を容易に特定することができる。
【００２９】
また、上記発明において、生成された有限状態機械モデルから、前記出力変数を消去することによって前記入力制約情報を算出することとしてもよい。
【００３０】
この発明によれば、信号方向が入力方向のみの変数からなる入力制約情報を自動的に算出することができる。
【００３１】
また、上記発明において、生成された有限状態機械モデルから前記入力変数を消去することによって、前記ハードウェアモジュールから出力される信号が満たすべき制約に関する出力制約情報を算出し、算出された入力制約情報と、算出された出力制約情報とに基づいて、前記インターフェース仕様記述情報の正当性を判定し、判定された判定結果に基づいて、前記ハードウェアモジュールの動作を論理検証することとしてもよい。
【００３２】
この発明によれば、入力されたインターフェース仕様記述情報の正当性を、論理検証前に確認することができる。
【００３３】
また、上記発明において、前記有限状態機械モデルは、前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理関数が、各遷移枝に関連付けられた状態遷移グラフによって表現することとしてもよい。この場合、前記状態遷移グラフにおいて遷移条件が規定された論理関数から、存在量化処理を用いて前記出力変数を消去することによって前記入力制約情報を算出することができる。
【００３４】
この発明によれば、論理関数が複雑な場合でも、存在量化処理を用いることによって、簡単かつ正確に入力制約情報を算出することができる。
【００３５】
さらに、前記状態遷移グラフの論理関数から、前記存在量化処理を用いて前記入力変数を消去することによって前記出力制約情報を算出し、前記入力制約情報と前記出力制約情報との論理積が、前記遷移条件が規定された論理関数と一致するか否かを判定することとしてもよい。
【００３６】
この発明によれば、状態遷移グラフの遷移枝ごとにインターフェース仕様記述情報の正当性を確認することができる。
【００３７】
また、上記発明において、前記有限状態機械モデルは、前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定され、かつ、当該遷移条件を規定した前記入力変数および前記出力変数と、前記遷移元の状態に関する現状態変数および前記遷移先の状態に関する次状態変数とを用いて状態遷移関係が規定された論理関数としてもよい。この場合、前記論理関数から、存在量化処理を用いて前記次状態変数を消去することによって前記入出力制約情報を算出し、前記入出力制約情報算出手段によって算出された入出力制約情報から、前記存在量化処理を用いて前記出力変数および前記次状態変数を消去することによって前記入力制約情報を算出することができる。
【００３８】
この発明によれば、論理関数が複雑な場合でも、存在量化処理を用いることによって、簡単かつ正確に入力制約情報を算出することができる。
【００３９】
さらに、前記入出力制約情報から、前記存在量化処理を用いて前記入力変数および前記次状態変数を消去することによって前記出力制約情報を算出し、前記入力制約情報と前記出力制約情報との論理積が、前記入出力制約情報と一致するか否かを判定することとしてもよい。
【００４０】
この発明によれば、インターフェース仕様記述情報全体についての正当性を確認することができる。
【発明の効果】
【００４１】
この発明にかかる論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体によれば、簡単かつ効率的な論理検証作業で高精度の論理検証をおこなうことにより、論理検証期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００４２】
（実施の形態）
以下に添付図面を参照して、この発明にかかる論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体の好適な実施の形態を詳細に説明する。また、この実施の形態では、論理検証対象となるハードウェアモジュールとして、図１０に示したハードウェアモジュールを用い説明する。なお、下記の実施の形態にかかる論理検証装置および論理検証方法は、たとえば、この実施の形態にかかる論理検証プログラムが記録された記録媒体を備えるＣＡＤによって実現することができる。
【００４３】
（論理検証装置のハードウェア構成）
まず、この発明の実施の形態にかかる論理検証装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる論理検証装置のハードウェア構成を示すブロック図である。
【００４４】
図１において、論理検証装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００４５】
ここで、ＣＰＵ１０１は、論理検証装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００４６】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを論理検証装置に読み取らせたりする。
【００４７】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４８】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４９】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５０】
スキャナ１１２は、画像を光学的に読み取り、論理検証装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５１】
（論理検証装置の機能的構成）
つぎに、この発明の実施の形態にかかる論理検証装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる論理検証装置の機能的構成を示すブロック図である。図２において、論理検証装置２００は、入力部２０１と、生成部２０２と、入力制約情報算出部２０３と、出力制約情報算出部２０４と、入出力制約情報算出部２０５と、判定部２０６と、論理検証部２０７と、を備えている。
【００５２】
まず、入力部２０１は、ハードウェア記述情報Ｄ１と、インターフェース仕様記述情報Ｄ２との入力を受け付ける。ここで、ハードウェア記述情報Ｄ１とは、ハードウェアモジュールの設計内容が記述された情報であり、具体的には、たとえば、Verilogなどのハードウェア記述言語ＨＤＬを用いて記述されている。
【００５３】
このハードウェア記述情報Ｄ１は、より具体的には、動作レベル、ＲＴＬレベル、ゲートレベルなどの抽象化されたレベルによって記述されている。このハードウェア記述情報Ｄ１は、論理検証部２０７において、ハードウェアモジュールの通常の論理検証に用いられる。
【００５４】
一方、インターフェース仕様記述情報Ｄ２とは、ハードウェアモジュールの通信手順に関する記述情報である。このインターフェース仕様記述情報Ｄ２とは、ハードウェアモジュールがどのような入出力端子を持ち、その入出力端子を介してどのような種類の通信がおこなわれ、それぞれの種類の通信がどのような信号変化パターンを持つかを網羅的に記述したものである。
【００５５】
より具体的には、図１０に示したハードウェアモジュールＭの端子Ｐ１〜Ｐ５に入出力される信号の信号変化パターンと、当該信号変化パターンの各時刻において端子Ｐ１〜Ｐ５に入出力される信号の方向を示す信号方向情報とを含んでいる。
【００５６】
このインターフェース仕様記述情報Ｄ２は、計算機上のテキストファイルによって記述することができ、文法と解釈が数学的に定義された記述言語を使って記述されている。たとえば、正規表現（regular expression）などをベースにすることにより、信号値の時間的な変化パターンを数学的に表現することができる。そのような言語の一つであるＣＷＬ（Component Wrapper Language）を用いて、図１０に示したハードウェアモジュールＭのインターフェース記述情報Ｄ２について説明する。
【００５７】
図３は、図１０に示したハードウェアモジュールＭのインターフェース仕様記述情報Ｄ２を示す説明図である。図３において、左端の三桁の数字は行番号をあらわしている。１行目（００１）には、記述対象となっているハードウェアモジュールの名称「Ｍ」が記述されている。
【００５８】
２行目から８行目（００２〜００８）では、ハードウェアモジュールＭの５つの端子Ｐ１〜Ｐ５（物理的には３６本）について記述されている。具体的には、“clk”はクロック入力端子Ｐ１、“cmd”はコマンド入力端子Ｐ２、“req”はリクエスト入力端子Ｐ３と、“ack”はアクノリッジ出力端子Ｐ４、“dat”は３２ビットデータ用のデータ入出力端子Ｐ５をあらわしている。また、２行目から８行目（００２〜００８）において、“input”、“output”および “inout”は、信号の方向を示す信号方向情報である。
【００５９】
また、９行目から１７行目（００９〜０１７）では、クロック信号clkが変化した時刻における各端子Ｐ１〜Ｐ５の信号値の組合せを定義している。たとえば、１１行目（０１１）のクロック信号clkの立ち上がり時刻における、¬cmd∧req∧¬ackのケース（データ信号datの“?”は「任意」を意味する。）では、“R”という名前を付けて定義する。なお、“¬”は論理否定、“∧”は論理積をあらわす。
【００６０】
また、１２行目（０１２）において、３２ビットのパラメータDに対して、クロック信号clkの立ち上がり時刻に¬cmd∧req∧ack∧(dat = D)が成立するケースでは“S(D)”という名前を付けて定義する。また、このS(D)におけるデータ信号datは出力方向のデータ信号（outD）である。以降、同様に“W(D)”、“K(D)”、“IDLE”をそれぞれ定義している。また、９行目から１７行目（００９〜０１７）において、“out D”および“in D”は、信号の方向を示す信号方向情報である。
【００６１】
また、１８行目から２１行目（０１８〜０２１）では、“read”と“write”の２種類の信号変化パターンを定義している。ここで、“+”は１回以上の繰り返しを示す記号である。readパターンの定義“R+ S(D)”は、“R”が１回以上の繰り返された後、S(D)が発生することを示している。
【００６２】
また、writeパターンの定義“W(D)+ K(D)”は、W(D)が１回以上の繰り返された後、K(D)が発生することを示している。パラメータDの値は、readパターンまたはwriteパターンそれぞれについて、その途中は一定でなければならない。したがって、writeパターンでは、“D”を介して期間中ずっとデータ入出力端子Ｐ５の信号値が一定という制約条件が表現されていることになる。readパターンでは最後の１時刻しか“D”が出現しないため、“D”で仲介される制約条件はない。
【００６３】
また、２２行目から２８行目（０２２〜０２８）は、このインターフェースではreadパターンとwriteパターンが発生し、それ以外の時刻は必ずIDLE状態であることを示している。インターフェース仕様記述情報Ｄ２は、端子Ｐ１〜Ｐ５における信号変化パターンと信号方向情報を含んでいれば、他の計算機処理可能な形式でもよい。また、計算機上のＧＵＩによって必要な他のインターフェース仕様記述情報（たとえば、図１１や図１２の波形図）を入力させてもよい。
【００６４】
また、図２において、生成部２０２は、入力部２０１によって入力されたインターフェース仕様記述情報Ｄ２に基づいて、ハードウェアモジュールＭに入出力される信号の状態遷移に関する有限状態機械モデルを生成する。この有限状態機械モデルとは、ハードウェアモジュールＭが取ることのできる有限の状態集合およびある状態から他の状態への可能な有限の遷移集合を用いて記述された動作（動的）モデルである。
【００６５】
また、生成部２０２には、変数生成部２０８が含まれている。変数生成部２０８は、信号変化パターンおよび信号方向情報に基づいて、ハードウェアモジュールＭに入出力される信号を特定する信号特定情報に、当該信号の方向に合致する信号方向情報が付加された入力変数および出力変数を生成する。
【００６６】
ここで、信号特定情報とは、具体的には“cmd”、“ack”などの信号名であり、その末尾に当該信号名の方向と合致する信号方向情報を付加することによって、入力変数と出力変数を生成する。具体的には、信号名が“cmd”の場合、この信号は入力信号であるため、“cmd”の末尾に、入力方向を示す“_in”を付加して、入力変数“cmd_in”を生成する。同様に、信号名が“ack”の場合、この信号は出力信号であるため、“ack”の末尾に、出力方向を示す“_out”を付加して、出力変数“ack_out”を生成する。この入力変数および出力変数を用いて、有限状態機械モデルを生成することにより、有限状態機械モデルの中に、上述した信号方向情報を記述しておくことができる。
【００６７】
また、生成部２０２によって生成される有限状態機械モデルは、上述した入力変数および出力変数を用いて、状態遷移グラフによって表現することができる。図４は、状態遷移グラフを示す説明図である。この状態遷移グラフ４００は、入力変数および出力変数を用いて任意の遷移元の状態と遷移元に対する遷移先の状態との間の遷移条件が規定された論理関数が、各遷移枝（Ｓ０→Ｓ０、Ｓ０→Ｓ１、Ｓ０→Ｓ２、Ｓ１→Ｓ０、Ｓ１→Ｓ１、Ｓ２→Ｓ０、Ｓ２→Ｓ２）に関連付けられたグラフである。図４において、遷移状態「Ｓ０」が初期状態であり、クロック信号clkの立ち上がりのタイミングで状態遷移が起こる。
【００６８】
また、遷移枝には遷移条件を示す論理関数が記述されている。この論理関数は上述した入力変数および出力変数を用いて記述されているため、この論理関数自体が、ハードウェアモジュールＭに入出力される信号が満たすべき制約に関する各遷移枝の入出力制約情報となる。また、状態「Ｓ２」の遷移枝の論理関数に記述されている「prev_dat」は、有限状態機械モデル上で追加された３２ビットレジスタであり、前時刻のデータ入出力端子Ｐ５の値を保持している。
【００６９】
また、図２において、入力制約情報算出部２０３は、入力部２０１によって入力されたインターフェース仕様記述情報Ｄ２に基づいて、ハードウェアモジュールＭに入力される信号が満たすべき制約に関する入力制約情報を算出する。具体的には、生成部２０２によって生成された有限状態機械モデルを用いて、入力制約情報を算出する。この入力制約情報の算出は、生成部２０２によって生成された有限状態機械モデルから、出力変数を消去することによって算出することができる。
【００７０】
一方、出力制約情報算出部２０４は、有限状態機械モデルから入力変数を消去することによって、ハードウェアモジュールＭから出力される信号が満たすべき制約に関する出力制約情報を算出する。ここで、有限状態機械モデルを遷移状態グラフ４００で表現した場合における出力変数および入力変数の消去処理について説明する。
【００７１】
入力制約情報算出部２０３では、状態遷移グラフ４００において遷移条件として規定された論理関数から、存在量化処理（existential quantification）を用いて出力変数を消去する。この消去によって、その遷移枝についての入力制約情報を算出することができる。また、状態遷移グラフ４００の各遷移状態（Ｓ０、Ｓ１、Ｓ２）での入力制約情報は、すべての遷移枝に関する入力制約情報の論理和によってあらわすことができる。
【００７２】
一方、出力制約情報算出部２０４では、状態遷移グラフ４００において遷移条件が規定された論理関数から、存在量化処理（existential quantification）を用いて入力変数を消去する。この消去によって、その遷移枝についての出力制約情報を算出することができる。また、状態遷移グラフ４００の各遷移状態（Ｓ０、Ｓ１、Ｓ２）での出力制約情報は、すべての遷移枝に関する出力制約情報の論理和によってあらわすことができる。この出力制約情報は、論理検証の検証プロパティとして利用することができる。
【００７３】
ここで、存在量化処理について具体的に説明する。任意の論理関数f(x1, … , xi, … , xn)とすると、この論理関数f(x1, … , xi, … , xn)から存在量化処理によって、論理変数xiを消去する∃（存在量化子）演算は、下記式（１）で定義することができる。
∃xi . f(x1, … , xi, … , xn) = f(x1, … , 0, … , xn)∨f(x1, … , 1, … , xn)
・・・（１）
【００７４】
より一般に、変数xiが値集合Ｖを持つ多値変数である場合、∃演算は、下記式（２）のように定義することができる。
【数１】
2006053813.tif 000003
【００７５】
また、変数集合( y1, … , ym )に関する∃演算は、下記式（３）のように求められる。  
∃(y1, … , ym) . f  = ∃y1 . … . ∃ym . f・・・・・・・・・・・・・・（３）
【００７６】
上述した式（１）の∃xi . fという演算では、「論理関数fの値を１にするような変数xiの値割り当てが存在するための、残りの変数に関する条件」を正確に求めていることになる。したがって、この方法で入出力制約から出力変数を消去することは、「入出力制約を満たすような出力値割り当てが存在するための、入力変数に関する条件」すなわち入力制約を正確に求めていることを意味する。
【００７７】
また、論理関数上の論理変数（出力変数、入力変数）を単純に消去（無視）しただけでは、正確な結果は得られない。たとえば、入力変数a,bと出力変数xに関する入出力制約が、下記式（４）の論理式Ｑで与えられたとする。
Ｑ＝(a∨x)∧¬(b∧x)・・・・・・・・・・・・・・・・・・・・・・・・・（４）
【００７８】
また、正確な入力制約Ｃは、∃演算を用いて下記式（５）で算出することができる。
Ｃ＝∃x . Ｑ
＝∃x . ｛(a∨x)∧¬(b∧x)｝
＝｛(a∨0)∧¬(b∧0)｝∨ ｛(a∨1)∧¬(b∧1)｝
＝｛(a)∧¬(0)｝∨｛(1)∧¬(b)｝
＝｛a∧1｝∨｛1∧¬b｝
＝a∨ ¬b・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（５）
【００７９】
これに対して、Ｑの式から出力変数xに関する演算を単純に除去すると、Ｃ´＝a∧ ¬bという異なった結果が得られる。なお、∃演算を含む計算機上での論理関数処理に関しては、二分決定グラフ（ＢＤＤ）を用いた効率的なアルゴリズムなどが広く知られている。
【００８０】
また、図４に示した状態遷移グラフ４００の入出力制約情報、入力制約情報および出力制約情報を求めた結果を図５に示す。図５は、図４に示した状態遷移グラフ４００の各遷移枝についての入出力制約情報、入力制約情報および出力制約情報を示す図表であり、図６は、図５の図表をもとに各遷移状態についての入力制約情報および出力制約情報を示す図表である。
【００８１】
図５において、たとえば、遷移枝Ｓ０→Ｓ１の遷移条件、すなわち入出力制約情報をＱ01とすると、入出力制約情報Ｑ01、対応する入力制約情報Ｃ01、出力制約情報Ｐ01はそれぞれ、下記式（６）〜（８）のように求められる。
Ｑ01＝¬cmd_in∧req_in∧¬ack_out・・・・・・・・・・・・・・・・・・・（６）
【００８２】
Ｃ01＝∃ack_out . Ｑ01
＝∃ack_out . (¬cmd_in∧req_in∧¬ack_out)
＝(¬cmd_in∧req_in∧¬0)∨ (¬cmd_in∧req_in∧¬1)
＝¬cmd_in∧req_in・・・・・・・・・・・・・・・・・・・・・・・・（７）
【００８３】
Ｐ01＝∃(cmd_in, req_in) . Ｑ01
＝∃(cmd_in, req_in) . (¬cmd_in∧req_in∧¬ack_out)
＝∃cmd_in .｛(¬cmd_in∧0∧¬ack_out)∨ (¬cmd_in∧1∧¬ack_out)｝
＝∃cmd_in . (¬cmd_in∧¬ack_out)
＝(¬0∧¬ack_out) ∨(¬1∧¬ack_out)
＝¬ack_out・・・・・・・・・・・・・・・・・・・・・・・・・・・・（８）
【００８４】
また、図６において、遷移状態Ｓ０に対応する入力制約情報Ｃ0、出力制約情報Ｐ0は、それぞれ下記式（９）、式（１０）のように求められている。
【００８５】
Ｃ0＝Ｃ00∨ Ｃ01∨ Ｃ02
＝(¬req_in)∨(¬cmd_in∧req_in)∨(cmd_in∧req_in)
＝１・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（９）
【００８６】
Ｐ0＝Ｐ00∨Ｐ01∨Ｐ02
＝(¬ack_out)∨ (¬ack_out) ∨(¬ack_out)
＝¬ack_out・・・・・・・・・・・・・・・・・・・・・・・・・・・・（１０）
【００８７】
この有限状態機械モデルにおける現状態（状態遷移グラフ４００の遷移元状態）を表現する変数を「s」とすると、全体としての入力制約情報Ｃおよび全体としての出力制約情報Ｐはそれぞれ、下記式（１１）、式（１２）のように表現することができる。
【００８８】
Ｃ＝｛(s ＝Ｓ０)∧ Ｃ0｝∨｛(s ＝Ｓ１)∧ Ｃ1｝∨｛(s ＝Ｓ２)∧ Ｃ2｝
＝(s ＝Ｓ０)∨｛(s ＝Ｓ１)∧¬cmd_in∧req_in｝∨
｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)｝・・・・・・・（１１）
【００８９】
Ｐ＝｛(s ＝Ｓ０)∧ Ｐ0｝∨｛(s ＝Ｓ１)∧ Ｐ1｝∨｛(s ＝Ｓ２)∧ Ｐ2｝
＝｛(s ＝Ｓ０)∧¬ack_out｝∨(s ＝Ｓ１)∨(s ＝Ｓ２)・・・・・・・・（１２）
【００９０】
なお、手順を変えて先に各遷移状態から得られるすべての遷移枝に関する入出力制約情報の論理和で、各遷移状態に関する入出力制約情報を求め、その後、それぞれについて出力変数（入力変数）を消去することで、各遷移状態に関する入力制約情報（出力制約情報）を得ることもできる。また、全体としての入出力制約情報を求めてから出力変数（入力変数）を消去することで、全体としての入力制約情報（出力制約情報）を求めてもよい。
【００９１】
また、図２に示した生成部２０２によって生成される有限状態機械モデルは、その状態遷移関係をあらわす状態遷移関係式を用いて表現することもできる。この状態遷移関係式は、入力変数および出力変数を用いて任意の遷移元の状態と遷移元に対する遷移先の状態との間の遷移条件が規定され、かつ、当該遷移条件を規定した入力変数および出力変数と、遷移元の状態に関する現状態変数および遷移先の状態に関する次状態変数とを用いて状態遷移関係が規定された論理関数である。
【００９２】
すなわち、有限状態機械モデルの現在の状態を表現する変数（現状態変数）、次時刻の状態を表現する変数（次状態変数）、およびハードウェアモジュールＭの入出力値を示す変数（入力変数、出力変数）からなる論理関数であり、その論理値が「１」になる条件が状態遷移可能な条件と等価になるように構成されたものである。
【００９３】
この場合、図２に示した入出力制約情報算出部２０５では、この状態遷移関係式（論理関数）から次状態変数を消去することで、入出力制約情報を算出することができる。そして、入力制約情報算出部２０３では、算出された入出力制約情報から出力変数を消去することで、入力制約情報を算出することができる。さらに、出力制約情報算出部２０４では、算出された入出力制約情報から入力変数を消去することで、出力制約情報を求めることができる。
【００９４】
たとえば、上述したハードウェアモジュールＭに対応する状態遷移関係は、次状態変数をtとして、下記式（１３）の論理関数Ｒで表現することができる。
Ｒ＝｛(s ＝Ｓ０)∧¬req_in∧¬ack_out∧(t ＝Ｓ０)｝
∨｛(s ＝Ｓ０)∧¬cmd_in∧req_in∧¬ack_out∧(t ＝Ｓ１)｝
∨｛(s ＝Ｓ１)∧¬cmd_in∧req_in∧ack_out∧(t ＝Ｓ０)｝
∨｛(s ＝Ｓ１)∧¬cmd_in∧req_in∧¬ack_out∧(t ＝Ｓ１)｝
∨｛(s ＝Ｓ０)∧cmd_in∧req_in∧¬ack_out∧(t ＝Ｓ２)｝
∨｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)∧ack_out∧(t ＝Ｓ０)｝
∨｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)∧¬ack_out∧(t ＝Ｓ２)｝・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・（１３）
【００９５】
また、論理関数Ｒを用いて、入出力制約情報Ｑ、入力制約情報Ｃ、出力制約情報Ｐは、それぞれ、下記式（１４）〜（１６）のように求めることができる。
Ｑ＝∃t . Ｒ
＝｛(s ＝Ｓ０)∧¬req_in∧¬ack_out｝
∨｛(s ＝Ｓ０)∧¬cmd_in∧req_in∧¬ack_out｝
∨｛(s ＝Ｓ１)∧¬cmd_in∧req_in∧ack_out｝
∨｛(s ＝Ｓ１)∧¬cmd_in∧req_in∧¬ack_out｝
∨｛(s ＝Ｓ０)∧cmd_in∧req_in∧¬ack_out｝
∨｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)∧ack_out｝
∨｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)∧¬ack_out｝
＝｛(s ＝Ｓ０)∧¬ack_out｝∨｛s ＝Ｓ１)∧¬cmd_in∧req_in｝
∨｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)｝・・・・・・（１４）
【００９６】
Ｃ＝∃ack_out . Ｑ
＝(s ＝Ｓ０)∨｛(s ＝Ｓ１)∧¬cmd_in∧req_in｝
∨｛(s ＝Ｓ２)∧cmd_in∧req_in∧(dat_in ＝ prev_dat)｝・・・・・（１５）
【００９７】
Ｐ＝∃(cmd_in, req_in, dat_in) . Ｑ
＝｛(s ＝Ｓ０)∧¬ack_out｝∨(s ＝Ｓ１)∨(s ＝Ｓ２) ・・・・・・・（１６）
【００９８】
また、図２において、判定部２０６は、入力制約情報算出部２０３によって算出された入力制約情報と、出力制約情報算出部２０４によって算出された出力制約情報とに基づいて、インターフェース仕様記述情報Ｄ２の正当性を判定する。インターフェース仕様記述情報Ｄ２の正当性は、入力制約情報と出力制約情報との論理積が、遷移条件が規定された論理関数と一致するか否かを判定することによって確認することができる。
【００９９】
たとえば、生成部２０２によって生成された有限状態機械モデルが図４に示した状態遷移グラフ４００である場合、入力制約情報算出部２０３は、状態遷移グラフ４００の論理関数から、存在量化処理を用いて出力変数を消去することによって入力制約情報を算出する。また、出力制約情報算出部２０４は、状態遷移グラフ４００の論理関数から、存在量化処理を用いて入力変数を消去することによって出力制約情報を算出する。
【０１００】
そして、判定部２０６は、入力制約情報と出力制約情報との論理積が、遷移条件が規定された論理関数と一致するか否かを判定する。たとえば、上述の式（６）〜（８）の例では、入力制約情報Ｃ01および出力制約情報Ｐ01の論理積Ｃ01∧Ｐ01が、論理関数（入出力制約情報）Ｑ01と一致するかどうかを判定する。一致する場合は、インターフェース仕様記述情報Ｄ２に誤りがないこととなり、一致しない場合には、インターフェース仕様記述情報Ｄ２に誤りがある可能性がある。
【０１０１】
また、生成部２０２によって生成された有限状態機械モデルが、上述した式（１３）に示した論理関数（状態遷移関係式）Ｒである場合、入出力制約情報算出部２０５では、この論理関数Ｒから、存在量化処理を用いて次状態変数を消去することによって、式（１４）に示した入出力制約情報Ｑを算出する。
【０１０２】
これにより、入力制約情報算出部２０３は、入出力制約情報Ｑから、存在量化処理を用いて出力変数および次状態変数を消去することによって、式（１５）に示した入力制約情報Ｃを算出する。同様に、出力制約情報算出部２０４は、入出力制約情報Ｑから、存在量化処理を用いて入力変数および次状態変数を消去することによって、式（１６）に示した出力制約情報Ｐを算出する。
【０１０３】
したがって、判定部２０６では、入力制約情報Ｃと出力制約情報Ｐとの論理積Ｃ∧Ｐが、入出力制約情報Ｑと一致するか否かを判定する。そして、一致する場合は、インターフェース仕様記述情報Ｄ２に誤りがないこととなり、一致しない場合には、インターフェース仕様記述情報Ｄ２に誤りがある可能性がある。
【０１０４】
通常の同期式順序回路などのハードウェアモジュールＭの設計では、上述した入力制約情報と出力制約情報との論理積が、もとの入出力制約情報に一致するはずである。不一致の場合は、入力制約情報と出力制約情報が独立でないことを示している。
【０１０５】
すなわち、ハードウェアモジュールＭとしては、現時刻の入力に応じて現時刻の出力を変更しなければならないか、現時刻の出力に応じて現時刻の入力を変更しなければならないインターフェース仕様記述情報Ｄ２であることを意味する。このような状況は、インターフェース仕様記述情報Ｄ２に誤りがあるか、同期式順序回路として特殊な設計であることを示しており、注意しなければならないことがわかる。
【０１０６】
たとえば、入力変数 x、出力変数 yに対して、(x∧y)∨(¬x∧¬y)という入出力制約情報があると、入力制約情報も出力制約情報も「１」（制約なし）であり、その論理積と入出力制約情報が一致しない。一方、ハードウェアモジュールＭのインターフェース仕様記述情報Ｄ２の場合、入力制約情報と出力制約情報の論理積がすべて入出力制約情報と一致しており、インターフェース仕様記述情報Ｄ２に問題（不備）がないことがわかる。
【０１０７】
また、図２において、論理検証部２０７は、入力部２０１によって入力されたハードウェア記述情報Ｄ１およびインターフェース仕様記述情報Ｄ２に基づいて、ハードウェアモジュールＭの動作を論理検証する。具体的には、入力制約情報算出部２０３によって算出された入力制約情報を用いることによって、ハードウェアモジュールＭの動作を論理検証する。たとえば、バグの有無や、デバッグ用のエラーパターンの生成をおこなう。
【０１０８】
すなわち、論理検証部２０７は、入力制約情報を用いて、ハードウェアモジュールＭの入力端子に入力される信号の信号値が入力制約情報を満足する範囲でどのように変化しても、ハードウェアモジュールＭが正しく動作するかを確認する。この入力制約を満たさない入力に対する動作は、入力制約違反となり、ハードウェア記述情報またはインターフェース仕様記述情報Ｄ２の記述内容を変更する必要がある。
【０１０９】
なお、上述した入力部２０１、生成部２０２、入力制約情報算出部２０３、出力制約情報算出部２０４、入出力制約情報算出部２０５、判定部２０６、論理検証部２０７および変数生成部２０８は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７等に記録されたプログラムを、ＣＰＵ１０１が実行することによって、または、Ｉ／Ｆ１０９によって、その機能を実現する。
【０１１０】
つぎに、ハードウェアモジュールＭとモニタ回路とを組み合わせたシステムについて説明する。図７は、ハードウェアモジュールＭとモニタ回路７００とを組み合わせたシステム構成図である。図７において、インターフェース仕様記述情報Ｄ２から得られた有限状態機械モデルと入力制約情報Ｃおよび出力制約情報Ｐを組み合わせると、ハードウェアモジュールＭの入出力を監視するモニタ回路７００のハードウェア記述情報を構成することができる。
【０１１１】
そして、ハードウェアモジュールＭのハードウェア記述情報Ｄ１とモニタ回路７００のハードウェア記述情報を組み合わせることにより、論理検証環境を構成することができる。ここで検証すべき内容は「初期状態からずっと入力制約情報Ｃが成立し続けるならば、出力制約情報Ｐも成立し続ける」というプロパティであり、従来からの形式的検証あるいは制約ベース検証によって検証することができる。
【０１１２】
（論理検証処理手順）
つぎに、この発明の実施の形態にかかる論理検証処理手順の一例について説明する。図８は、この発明の実施の形態にかかる論理検証処理手順の一例を示すフローチャートである。この論理検証処理手順は、有限状態機械モデルを図４に示した状態遷移グラフ４００で表現する場合のフローチャートである。
【０１１３】
図８において、まず、インターフェース仕様記述情報Ｄ２が入力された場合（ステップＳ８０１：Ｙｅｓ）、このインターフェース仕様記述情報Ｄ２から、状態遷移グラフ４００を生成する（ステップＳ８０２）。具体的には、図３に示したインターフェース仕様記述情報Ｄ２から、図４に示した状態遷移グラフ４００を生成する。
【０１１４】
そして、この状態遷移グラフ４００を用いて、状態遷移グラフ４００の遷移枝ごとに入力制約情報および出力制約情報を算出する（ステップＳ８０３）。具体的には、図５に示した遷移枝Ｓ０→Ｓ１の遷移条件を例に挙げると、上記式（６）〜（８）により、この遷移枝Ｓ０→Ｓ１の遷移条件、すなわち入出力制約情報Ｑ01、対応する入力制約情報Ｃ01、出力制約情報Ｐ01をそれぞれ算出することができる。
【０１１５】
このあと、算出された任意の遷移枝の入力制約情報と出力制約情報との論理積を算出する（ステップＳ８０４）。上述した例を用いて説明すると、入力制約情報Ｃ01と出力制約情報Ｐ01との論理積Ｃ01∧Ｐ01を算出する。
【０１１６】
そして、算出された論理積が、遷移条件となる入出力制約情報と一致するか否かを判定する（ステップＳ８０５）。上述した例を用いて説明すると、入力制約情報Ｃ01と出力制約情報Ｐ01との論理積Ｃ01∧Ｐ01が、遷移枝Ｓ０→Ｓ１の遷移条件となる入出力制約情報Ｑ01と一致するか否かを判定する。
【０１１７】
そして、論理積が、遷移条件となる入出力制約情報と一致しない場合（ステップＳ８０５：Ｎｏ）、当該遷移枝についてのインターフェース仕様記述情報Ｄ２が正当でないと判断し（ステップＳ８０６）、この時点で一連の処理を終了する。すなわち、インターフェース仕様記述情報Ｄ２に誤りがあるか、ハードウェアモジュール（同期式順序回路）Ｍとして特殊な設計であることを示しており、注意しなければならないことがわかる。
【０１１８】
このように、いずれか一つの遷移枝について不一致であると判定されることにより処理が終了するため、すべての遷移枝について遷移条件との一致判定（ステップＳ８０５）が終了する前に、インターフェース仕様記述情報Ｄ２の不備を検出することができる。
【０１１９】
これにより、インターフェース仕様記述情報Ｄ２の正当性確認作業の高速化を図ることができる。また、論理検証（ステップＳ８１１）前にインターフェース仕様記述情報Ｄ２の不備を検出することができるため、論理検証の手戻りを防止することができ、論理検証作業期間の短縮化を図ることができる。
【０１２０】
一方、ステップＳ８０５において、論理積が、遷移条件となる入出力制約情報と一致する場合（ステップＳ８０５：Ｙｅｓ）、当該遷移枝についてのインターフェース仕様記述情報Ｄ２が正当であると判断される（ステップＳ８０７）。
【０１２１】
そして、すべての遷移枝についての論理積が算出されたかどうかを判定する（ステップＳ８０８）。すべての遷移枝についての論理積が算出されていない場合（ステップＳ８０８：Ｎｏ）、ステップＳ８０４に移行する。一方、すべての遷移枝についての論理積が算出された場合（ステップＳ８０８：Ｙｅｓ）、遷移状態ごとに、入力制約情報および出力制約情報を算出する（ステップＳ８０９）。
【０１２２】
上述した例を用いて説明すると、上記式（９）、式（１０）により、入力制約情報Ｃ01および出力制約情報Ｐ01を用いて、遷移状態Ｓ０に対応する入力制約情報Ｃ0および出力制約情報Ｐ0を算出する。
【０１２３】
このあと、状態遷移グラフ４００全体の入力制約情報および出力制約情報を算出する（ステップＳ８１０）。上述した例を用いて説明すると、上記式（１１）、式（１２）により、有限状態機械モデルにおける現状態を表現する変数を「s」、入力制約情報Ｃ0および出力制約情報Ｐ0を用いて、全体としての入力制約情報Ｃおよび全体としての出力制約情報Ｐを算出する。
【０１２４】
そして、ハードウェア記述情報Ｄ１と、得られた入力制約情報とを用いて、ハードウェアモジュールＭの動作を論理検証する（ステップＳ８１１）。この論理検証作業では、誤りがない正当なインターフェース仕様記述情報Ｄ２を用いて論理検証することができるため、論理検証の精度および信頼性の向上を図ることができる。
【０１２５】
つぎに、この発明の実施の形態にかかる論理検証処理手順の他の例について説明する。図９は、この発明の実施の形態にかかる論理検証処理手順の他の例を示すフローチャートである。この論理検証処理手順は、有限状態機械モデルを、式（１３）で示したような論理関数で表現する場合のフローチャートである。
【０１２６】
図９において、まず、インターフェース仕様記述情報Ｄ２が入力された場合（ステップＳ９０１：Ｙｅｓ）、このインターフェース仕様記述情報Ｄ２から、論理関数を生成する（ステップＳ９０２）。具体的には、図３に示したインターフェース仕様記述情報Ｄ２から、式（１３）に示した論理関数Ｒを生成する。
【０１２７】
つぎに、生成された論理関数を用いて、入出力制約情報を算出する（ステップＳ９０３）。上述した例を用いて説明すると、上記式（１４）により、論理関数Ｒを用いて入出力制約情報Ｑを算出する。そして、算出された入出力制約情報から、入力制約情報および出力制約情報を算出する（ステップＳ９０４）。
【０１２８】
上述した例を用いて説明すると、入出力制約情報Ｑから、存在量化処理を用いて出力変数および次状態変数を消去することによって、式（１５）に示した入力制約情報Ｃを算出する。同様に、入出力制約情報Ｑから、存在量化処理を用いて入力変数および次状態変数を消去することによって、式（１６）に示した出力制約情報Ｐを算出する。
【０１２９】
このあと、入力制約情報および出力制約情報を用いて論理積を算出する（ステップＳ９０５）。上述した例を用いて説明すると、式（１５）で算出された入力制約情報Ｃと式（１６）で算出された出力制約情報Ｐとの論理積Ｃ∧Ｐを算出する。
【０１３０】
そして、算出された論理積が、ステップＳ９０３で算出された入出力制約情報と一致するか否かを判定する（ステップＳ９０６）。上述した例を用いて説明すると、入力制約情報Ｃと出力制約情報Ｐとの論理積Ｃ∧Ｐが、入出力制約情報Ｑと一致するか否かを判定する。
【０１３１】
そして、論理積が、ステップＳ９０３で算出された入出力制約情報と一致しない場合（ステップＳ９０６：Ｎｏ）、インターフェース仕様記述情報Ｄ２が正当でないと判断し（ステップＳ９０７）、一連の処理を終了する。すなわち、インターフェース仕様記述情報Ｄ２に誤りがあるか、ハードウェアモジュール（同期式順序回路）Ｍとして特殊な設計であることを示しており、注意しなければならないことがわかる。
【０１３２】
一方、論理積が、ステップＳ９０３で算出された入出力制約情報と一致する場合（ステップＳ９０６：Ｙｅｓ）、インターフェース仕様記述情報Ｄ２が正当であると判断する（ステップＳ９０８）。この場合、インターフェース仕様記述情報Ｄ２に誤りがないこととなる。
【０１３３】
そのあと、ハードウェア記述情報Ｄ１と、ステップＳ９０８で正当であると判断されたインターフェース仕様記述情報Ｄ２を用いて、ハードウェアモジュールＭの動作を論理検証する（ステップＳ９０９）。この論理検証作業においても、誤りがない正当なインターフェース仕様記述情報Ｄ２を用いて論理検証することができるため、論理検証の精度および信頼性の向上を図ることができる。
【０１３４】
以上説明したように、この発明の実施の形態にかかる論理検証装置２００、論理検証方法、論理検証プログラム、および記録媒体によれば、入力制約情報を人手によらず自動的に算出することができるため、論理検証作業の労力を軽減し、かつ、論理検証期間の短縮化、ひいては設計期間の短縮化を図ることができるという効果を奏する。
【０１３５】
また、インターフェース仕様記述情報Ｄ２の内容に変更あるいは修正が必要な場合であっても、変更あるいは修正されたインターフェース仕様記述情報を入力するだけで、入力制約情報を自動的に算出することができるため、技術者の手作業に依存することなく、検証作業の効率化を図ることができるという効果を奏する。
【０１３６】
特に、入力制約情報を技術者の手作業に依存しないため、作成された入力制約情報に漏れや誤りがなく、高精度な論理検証をおこなうことができ、ハードウェアモジュールＭの動作についての信頼性の向上を図ることができるという効果を奏する。
【０１３７】
なお、この実施の形態で説明した論理検証方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション、ＣＡＤ等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１３８】
（付記１）ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールの動作を論理検証する論理検証手段と、
を備えることを特徴とする論理検証装置。
【０１３９】
（付記２）前記入力手段によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入力される信号が満たすべき制約に関する入力制約情報を算出する入力制約情報算出手段を備え、
前記論理検証手段は、
前記入力制約情報算出手段によって算出された入力制約情報に基づいて、前記ハードウェアモジュールの動作を論理検証することを特徴とする付記１に記載の論理検証装置。
【０１４０】
（付記３）前記入力手段によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成する生成手段を備え、
前記入力制約情報算出手段は、
前記生成手段によって生成された有限状態機械モデルを用いて、前記入力制約情報を算出することを特徴とする付記２に記載の論理検証装置。
【０１４１】
（付記４）前記インターフェース仕様記述情報は、
前記ハードウェアモジュールの端子に入出力される信号の信号変化パターンと、当該信号変化パターンの各時刻において前記端子に入出力される信号の方向を示す信号方向情報とを含み、
前記生成手段は、
前記信号変化パターンおよび前記信号方向情報に基づいて、前記ハードウェアモジュールに入出力される信号を特定する信号特定情報に、当該信号の方向に合致する前記信号方向情報が付加された入力変数および出力変数を生成する変数生成手段を備え、
前記変数生成手段によって生成された入力変数および出力変数を用いて、前記有限状態機械モデルを生成することを特徴とする付記３に記載の論理検証装置。
【０１４２】
（付記５）前記入力制約情報算出手段は、
前記生成手段によって生成された有限状態機械モデルから、前記出力変数を消去することによって前記入力制約情報を算出することを特徴とする付記４に記載の論理検証装置。
【０１４３】
（付記６）前記生成手段によって生成された有限状態機械モデルから前記入力変数を消去することによって、前記ハードウェアモジュールから出力される信号が満たすべき制約に関する出力制約情報を算出する出力制約情報算出手段と、
前記入力制約情報算出手段によって算出された入力制約情報と、前記出力制約情報算出手段によって算出された出力制約情報とに基づいて、前記インターフェース仕様記述情報の正当性を判定する判定手段と、を備え、
前記論理検証手段は、
前記判定手段によって判定された判定結果に基づいて、前記ハードウェアモジュールの動作を論理検証することを特徴とする付記５に記載の論理検証装置。
【０１４４】
（付記７）前記有限状態機械モデルは、
前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理関数が、各遷移枝に関連付けられた状態遷移グラフによって表現されており、
前記入力制約情報算出手段は、
前記状態遷移グラフにおいて遷移条件が規定された論理関数から、存在量化処理を用いて前記出力変数を消去することによって前記入力制約情報を算出することを特徴とする付記５に記載の論理検証装置。
【０１４５】
（付記８）前記有限状態機械モデルは、
前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定された論理関数が、各遷移枝に関連付けられた状態遷移グラフによって表現されており、
前記入力制約情報算出手段は、
前記状態遷移グラフの論理関数から、存在量化処理を用いて前記出力変数を消去することによって前記入力制約情報を算出し、
前記出力制約情報算出手段は、
前記状態遷移グラフの論理関数から、前記存在量化処理を用いて前記入力変数を消去することによって前記出力制約情報を算出し、
前記判定手段は、
前記入力制約情報と前記出力制約情報との論理積が、前記遷移条件が規定された論理関数と一致するか否かを判定することを特徴とする付記６に記載の論理検証装置。
【０１４６】
（付記９）前記有限状態機械モデルは、
前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定され、かつ、当該遷移条件を規定した前記入力変数および前記出力変数と、前記遷移元の状態に関する現状態変数および前記遷移先の状態に関する次状態変数とを用いて状態遷移関係が規定された論理関数であり、
前記論理関数から、存在量化処理を用いて前記次状態変数を消去することによって、前記ハードウェアモジュールに入出力される信号が満たすべき制約に関する入出力制約情報を算出する入出力制約情報算出手段を備え、
前記入力制約情報算出手段は、
前記入出力制約情報算出手段によって算出された入出力制約情報から、前記存在量化処理を用いて前記出力変数および前記次状態変数を消去することによって前記入力制約情報を算出することを特徴とする付記５に記載の論理検証装置。
【０１４７】
（付記１０）前記有限状態機械モデルは、
前記入力変数および前記出力変数を用いて任意の遷移元の状態と前記遷移元に対する遷移先の状態との間の遷移条件が規定され、かつ、当該遷移条件を規定した前記入力変数および前記出力変数と、前記遷移元の状態に関する現状態変数および前記遷移先の状態に関する次状態変数とを用いて状態遷移関係が規定された論理関数であり、
前記論理関数から、存在量化処理を用いて前記次状態変数を消去することによって、前記ハードウェアモジュールに入出力される信号が満たすべき制約に関する入出力制約情報を算出する入出力制約情報算出手段を備え、
前記入力制約情報算出手段は、
前記入出力制約情報算出手段によって算出された入出力制約情報から、前記存在量化処理を用いて前記出力変数および前記次状態変数を消去することによって前記入力制約情報を算出し、
前記出力制約情報算出手段は、
前記入出力制約情報から、前記存在量化処理を用いて前記入力変数および前記次状態変数を消去することによって前記出力制約情報を算出し、
前記判定手段は、
前記入力制約情報と前記出力制約情報との論理積が、前記入出力制約情報と一致するか否かを判定することを特徴とする付記６に記載の論理検証装置。
【０１４８】
（付記１１）ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報を入力する入力工程と、
前記入力工程によって入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアの動作を論理検証する論理検証工程と、
を含んだことを特徴とする論理検証方法。
【０１４９】
（付記１２）前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入力される信号が満たすべき制約に関する入力制約情報を算出する入力制約情報算出工程を含み、
前記論理検証工程は、
前記入力制約情報算出工程によって算出された入力制約情報に基づいて、前記ハードウェアモジュールの動作を論理検証することを特徴とする付記１１に記載の論理検証方法。
【０１５０】
（付記１３）前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成する生成工程を含み、
前記入力制約情報算出工程は、
前記生成工程によって生成された有限状態機械モデルを用いて、前記入力制約情報を算出することを特徴とする付記１２に記載の論理検証方法。
【０１５１】
（付記１４）ハードウェアモジュールの設計内容に関するハードウェア記述情報および前記ハードウェアモジュールの通信手順に関するインターフェース仕様記述情報を入力させる入力工程と、
前記入力工程によって入力されたハードウェア記述情報およびインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールの動作を論理検証させる論理検証工程と、
をコンピュータに実行させることを特徴とする論理検証プログラム。
【０１５２】
（付記１５）前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入力される信号が満たすべき制約に関する入力制約情報を算出させる入力制約情報算出工程を含み、
前記論理検証工程は、
前記入力制約情報算出工程によって算出された入力制約情報に基づいて、前記ハードウェアモジュールの動作を論理検証させることを特徴とする付記１４に記載の論理検証プログラム。
【０１５３】
（付記１６）前記入力工程によって入力されたインターフェース仕様記述情報に基づいて、前記ハードウェアモジュールに入出力される信号の状態遷移に関する有限状態機械モデルを生成させる生成工程を含み、
前記入力制約情報算出工程は、
前記生成工程によって生成された有限状態機械モデルを用いて、前記入力制約情報を算出させることを特徴とする付記１５に記載の論理検証プログラム。
【０１５４】
（付記１７）付記１４〜１６のいずれか一つに記載の論理検証プログラムを記録したコンピュータ読み取り可能な記録媒体。
【産業上の利用可能性】
【０１５５】
以上のように、この発明にかかる論理検証装置、論理検証方法、論理検証プログラム、および記録媒体は、同期式順序回路など、ＬＳＩのハードウェアモジュールの論理検証に有用である。
【図面の簡単な説明】
【０１５６】
【図１】この発明の実施の形態にかかる論理検証装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる論理検証装置の機能的構成を示すブロック図である。
【図３】図１０に示したハードウェアモジュールのインターフェース仕様記述情報を示す説明図である。
【図４】状態遷移グラフを示す説明図である。
【図５】図４に示した状態遷移グラフの各遷移枝についての入出力制約情報、入力制約情報および出力制約情報を示す図表である。
【図６】図５の図表をもとに各遷移状態についての入力制約情報および出力制約情報を示す図表である。
【図７】ハードウェアモジュールとモニタ回路とを組み合わせたシステム構成図である。
【図８】この発明の実施の形態にかかる論理検証処理手順の一例を示すフローチャートである。
【図９】この発明の実施の形態にかかる論理検証処理手順の他の例を示すフローチャートである。
【図１０】論理検証対象となる一般的なハードウェアモジュールの一例を示すブロック図である。
【図１１】ハードウェアモジュールのRead動作を示す波形図である。
【図１２】ハードウェアモジュールのWrite動作を示す波形図である。
【図１３】ハードウェアモジュールの入力制約違反を示す波形図である。
【符号の説明】
【０１５７】
２００  論理検証装置
２０１  入力部
２０２  生成部
２０３  入力制約情報算出部
２０４  出力制約情報算出部
２０５  入出力制約情報算出部
２０６  判定部
２０７  論理検証部
２０８  変数生成部
Ｍ  ハードウェアモジュール
Ｄ１  ハードウェア記述情報
Ｄ２  インターフェース仕様記述情報
【図１】
2006053813.tif 000004
【図２】
2006053813.tif 000005
【図３】
2006053813.tif 000006
【図４】
2006053813.tif 000007
【図５】
2006053813.tif 000008
【図６】
2006053813.tif 000009
【図７】
2006053813.tif 000010
【図８】
2006053813.tif 000011
【図９】
2006053813.tif 000012
【図１０】
2006053813.tif 000013
【図１１】
2006053813.tif 000014
【図１２】
2006053813.tif 000015
【図１３】
2006053813.tif 000016