(57)【要約】【課題】検証項目の検証漏れを抑制すること。【解決手段】検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイル２を用いて、検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目とイベントの発生違反を検証する項目とが関連づけられて記憶される項目表３を生成する生成部１ｂと、生成部１ｂが生成した項目表３を記憶する記憶部１ｃと、を有する。【選択図】図１
2013206033.tif 000002
【特許請求の範囲】
【請求項１】
検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、前記検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目と前記イベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する生成部と、
前記生成部が生成した前記項目表を記憶する記憶部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記制御ファイルには、前記信号の信号名、前記信号の値に応じて前記検証対象回路が取り得る状態、およびトランザクション毎に回路動作を定義する情報と回路動作の制約条件とが記述されており、
前記生成部は、前記信号の値、前記信号の値に応じて前記検証対象回路が取り得る状態、およびトランザクションそれぞれの項目表を作成することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記制御ファイルには、前記信号の値に応じて前記検証対象回路が取り得る状態が記述されており、前記状態を用いて状態遷移図を生成する図生成部をさらに有し、
前記生成部は、前記項目表を生成する際、前記図生成部が生成した前記状態遷移図を用いて前記イベントの発生違反を検証する項目を決定することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記生成部は、前記制御ファイルに記述されている前記動作信号の信号名毎に、１サイクル前の値と現在の値との組み合わせを示す組み合わせ表を生成し、前記制御ファイルに記述されている前記動作信号の制約条件に応じて前記組み合わせ表に記載する前記イベントの発生違反を検証する項目を決定することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記生成部は、前記制御ファイルに記述されている前記信号の値に応じて前記検証対象回路が取り得る状態毎に、状態の組み合わせを示す組み合わせ表と、状態毎の維持期間を示す表とを生成し、前記制御ファイルに記述されている前記信号の値に応じて前記検証対象回路が取り得る状態の制約条件に応じて前記組み合わせ表および状態毎の維持期間を示す表に記載する前記イベントの発生違反を検証する項目を決定することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記生成部は、前記制御ファイルに記述されているトランザクション毎に、トランザクションの組み合わせを示す組み合わせ表と、トランザクション毎の維持期間を示す表とを生成し、前記制御ファイルに記述されているトランザクションの制約条件に応じて前記組み合わせ表およびトランザクション毎の維持期間を示す表に記載する前記イベントの発生違反を検証する項目を決定することを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記制御ファイルには、前記信号の値に応じて前記検証対象回路が取り得る状態が記述されており、
前記状態を用いて状態遷移図を生成する図生成部と、
前記状態遷移図に記載されている状態と遷移条件に基づき前記イベントの発生回数のカウントおよび前記イベントの発生違反を前記検証対象回路の動作シミュレーションで実行可能な実行ファイルを生成するファイル生成部とを有することを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記項目表の各項目と前記実行ファイルの信号とを関連づける関連づけ情報を生成し、前記項目表と前記関連づけ情報とを用いて前記検証対象回路の動作シミュレーション中に、イベントの発生の検証と前記イベントの発生違反の検証とを実行させる情報を前記実行ファイルに追加する追加部をさらに有することを特徴とする請求項７記載の情報処理装置。
【請求項９】
コンピュータが、
検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、前記検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目と前記イベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する、
ことを特徴とする情報処理方法。
【請求項１０】
コンピュータに、
検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、前記検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目と前記イベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する、
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の機能を検証する際、ＲＴＬ（Register Transfer Level）シミュレーションを利用することがある。その際、検証対象の機能が漏れなく発生することと、発生した機能が正しく動作していることが求められる。
【０００３】
検証対象の機能が漏れなく発生するか否かを判断するために、カバレッジ項目を一覧にしたカバレッジ項目一覧を定義することが知られている。各々のカバレッジ項目を計測するには、テストベンチにカバレッジ項目毎の発生回数を検出してカウントする仕組みが必要で、テストベンチの中にはこの仕組みを備えた構成部品が組み込まれており、この構成部品をカバレッジモニタという。
【０００４】
また、検証対象が正しく動作しているか否かを判断するために、チェック項目を一覧にしたものが用いられる。各々のチェック項目についてＲＴＬシミュレーション中、検証対象が正しく動作していることを自動チェックする仕組みが必要で、テストベンチの中に、この仕組みを備えた構成部品を組み込む技術が知られている。この構成部品は、例えばチェッカと呼ばれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−９９５１８号公報
【特許文献２】特開２００７−７２６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
カバレッジ項目を抽出する際、特定の手順やルールが存在しないため、品質が、設計者のスキルに依存してしまう。このため、品質を一定に保つことが困難である。また、チェック項目を抽出する際にも、同様のことが言える。
【０００７】
１つの側面では、本発明は、検証項目の検証漏れを抑制することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、開示の情報処理装置が提供される。この情報処理装置は、生成部と記憶部とを有している。生成部は、検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目とイベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する。記憶部は、生成部が生成した項目表を記憶する。
【発明の効果】
【０００９】
１態様では、検証項目の検証漏れを抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理装置のハードウェア構成を示す図である。
【図３】第２の実施の形態の情報処理装置の機能を示すブロック図である。
【図４】検証対象の信号例を示す図である。
【図５】図４に示す検証対象の信号例を基に作成した制御ファイルの記述例を示す図である。
【図６】機能検証表生成部および条件ファイル生成部の機能を示すブロック図である。
【図７】状態取得部の処理を説明する図である。
【図８】状態取得部の処理を示すフローチャートである。
【図９】遷移パターン取得部の処理を説明する図である。
【図１０】遷移パターン取得部の処理を示すフローチャートである。
【図１１】遷移条件取得部の処理を説明する図である。
【図１２】遷移パターン取得部の処理を示すフローチャートである。
【図１３】状態維持期間取得部の処理を説明する図である。
【図１４】状態維持期間取得部の処理を示すフローチャートである。
【図１５】チェック・カウント条件ファイルの一例を示す図である。
【図１６】モニタ基幹生成部の処理を示すフローチャートである。
【図１７】トランザクション判定部分の生成処理を説明するフローチャートである。
【図１８】信号レベル項目表生成部を説明する図である。
【図１９】信号レベル制御ファイルの一例を示す図である。
【図２０】信号レベル項目表生成部の処理を示すフローチャートである。
【図２１】状態レベル項目表生成部の処理を説明する図である。
【図２２】状態維持期間表の生成を説明する図である。
【図２３】状態組み合わせ表の生成を説明する図である。
【図２４】状態レベル項目表制御ファイルの一例を示す図である。
【図２５】状態レベル項目表制御ファイルの他の例を示す図である。
【図２６】状態レベル項目表生成部の処理を示すフローチャートである。
【図２７】トランザクションレベル項目表生成部の処理を説明する図である。
【図２８】トランザクションレベル項目表生成部の処理を説明する図である。
【図２９】トランザクションレベル項目表生成部の処理を示すフローチャートである。
【図３０】機能検証表の効果を説明する図である。
【図３１】機能検証ファイル生成部の機能を示すブロック図である。
【図３２】状態組み合わせ表の取り込み例を示す図である。
【図３３】状態維持期間表の取り込み例を示す図である。
【図３４】信号レベルの機能検証ファイルの生成を説明する図である。
【図３５】状態レベルの機能検証ファイルの生成を説明する図である。
【図３６】状態維持期間の機能検証ファイルの生成を説明する図である。
【図３７】トランザクションレベルの機能検証ファイルの生成を説明する図である。
【図３８】機能検証ファイルを説明する図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態の情報処理装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の情報処理装置を示す図である。
【００１２】
第１の実施の形態の情報処理装置（コンピュータ）１は、記憶部１ａ、１ｃと、生成部１ｂとを有している。なお、記憶部１ａ、１ｃは、情報処理装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。また、生成部１ｂは、情報処理装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。
【００１３】
記憶部１ａには、検証対象回路の動作信号に基づき生成される回路の動作を定義する情報と回路動作の制約条件とが記述された制御ファイル２が記憶されている。具体的には、制御ファイル２は、３つのレベル（信号（Signal）レベル、状態（State）レベル、およびトランザクション（Transaction）レベル）の定義（Define）と制約（Constraint）を含む。例えば、制御ファイル２のSignalDefineの部分には、信号名Ｓｉｇ＿Ａと信号名Ｓｉｇ＿Ｂが定義されている。また、ＳｔａｔｅＤｅｆｉｎｅの部分には、Ｓｔａｔｅ＿Ａ、Ｓｔａｔｅ＿Ｂ、およびＳｔａｔｅ＿Ｃの３つの状態を取り得ることが記述されている。また、ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅの部分には、トランザクションＴｒａｎｓ＿Ａ、Ｔｒａｎｓ＿Ｂ、Ｔｒａｎｓ＿Ｃが定義されている。この制御ファイル２を３つのレベルに分けて記述しておくことで、後述する項目表３の作成が容易となる。
【００１４】
生成部１ｂは、制御ファイル２を用いて検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目（以下、「カバレッジ項目」という）の発生回数およびイベントの発生違反を検証する項目（以下「チェック項目」という）を関連づけて記述した項目表（機能検証表）３を作成する。項目表３は、制御ファイル２と同じ信号レベル、状態レベル、およびトランザクションレベルに関する表３ａ、３ｂ、３ｃを備える。生成部１ｂは、作成した項目表３を記憶部１ｃに記憶する。項目表３は、各欄に予め用意されるカバレッジ項目を識別する記号が設定される。また、各表３ａ、３ｂ、３ｃのチェック項目を満たす欄には、チェック項目を識別する記号が設定される。具体的には、信号レベルに関する表３ａの記号Ｃｏｖ１が設定されている部分は、「Ｓｉｇ＿Ａ＝１’ｂ０、かつＳｉｇ＿Ｂ＝２’ｂ１０となる」ことを示すカバレッジ項目が設定されていることを示している。また、状態レベルに関する表３ｂの記号Ｃｏｖ２が設定されている部分は、「Ｓｔａｔｅ＿Ａの後Ｓｔａｔｅ＿Ｃに遷移する」ことを示すカバレッジ項目が設定されていることを示している。また、トランザクションレベルに関する表３ｃの記号Ｃｏｖ３が設定されている部分は、「Ｔｒａｎｓ＿Ｂの後Ｔｒａｎｓ＿Ｃが発生する」ことを示すカバレッジ項目が設定されていることを示している。また、表３ａの記号Ｃｈｋ１が設定されている部分は、「Ｓｉｇ＿Ａ＝１’ｂ１、かつＳｉｇ＿Ｂ＝２’ｂ０１は発生しない」ことを示すチェック項目が設定されていることを示している。また、表３ｃの記号Ｃｈｋ２が設定されている部分は、「Ｔｒａｎｓ＿Ａの後Ｔｒａｎｓ＿Ｃは発生しない」ことを示すチェック項目が設定されていることを示している。
【００１５】
信号レベル、状態レベル、およびトランザクションレベルそれぞれに関する表３ａ、３ｂ、３ｃを生成することで、設計者は、各レベルでカバレッジ項目やチェック項目の関連と間違いを視覚的に把握することができる。
【００１６】
また、情報処理装置１は、項目表３の内容をシミュレーションするための実行ファイルを生成する機能を有することもできる。情報処理装置１は、生成された実行ファイルをシミュレーションすることにより、カバレッジ項目の発生回数およびチェック項目がチェックされたか否かの情報を得ることができる。以下、第２の実施の形態において、開示の情報処理装置をより具体的に説明する。
【００１７】
＜第２の実施の形態＞
図２は、第２の実施の形態の情報処理装置のハードウェア構成を示す図である。
情報処理装置１０は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
【００１８】
ＲＡＭ１０２は、情報処理装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に使用する各種データが格納される。
【００１９】
バス１０８には、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、ドライブ装置１０６、および通信インタフェース１０７が接続されている。
【００２０】
ハードディスクドライブ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ１０３は、情報処理装置１０の二次記憶装置として使用される。ハードディスクドライブ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００２１】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や、液晶表示装置等が挙げられる。
【００２２】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、例えばタッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００２３】
ドライブ装置１０６は、例えば、光の反射によって読み取り可能なようにデータが記録された光ディスクや、ＵＳＢ（Universal Serial Bus）メモリ等の持ち運び可能な記録媒体に記録されたデータの読み取りを行う。例えば、ドライブ装置１０６が光学ドライブ装置である場合、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００には、Ｂｌｕ−ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００２４】
通信インタフェース１０７は、ネットワーク５０に接続されている。通信インタフェース１０７は、ネットワーク５０を介して、他のコンピュータまたは通信機器との間でデータを送受信する。
【００２５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。図２に示すようなハードウェア構成の情報処理装置１０内には、以下のような機能が設けられる。
【００２６】
図３は、第２の実施の形態の情報処理装置の機能を示すブロック図である。
情報処理装置１０は、制御ファイル記憶部１１と、機能検証表生成部１２と、条件ファイル生成部１３と、機能検証表記憶部１４と、モデル生成用制御ファイル記憶部１５と条件ファイル記憶部１６と、機能検証ファイル生成部１７と、機能検証ファイル記憶部１８とを有している。
【００２７】
機能検証表生成部１２は、検証対象とする信号の制約を記述した制御ファイルを基に、従来のチェック項目とカバレッジ項目を融合した機能検証表１４０を生成する。
図４は、検証対象の信号例を示す図であり、図５は、図４に示す検証対象の信号例を基に作成した制御ファイルの記述例を示す図である。
【００２８】
制御ファイル１１ａは、３つのレベル（信号レベル==Signal、状態レベル==State、トランザクションレベル==Transaction）の定義（*Define）と制約（*Constraint）を含む。
【００２９】
機能検証表生成部１２は、生成した機能検証表１４０を機能検証表記憶部１４に記憶する。
条件ファイル生成部１３は、機能検証ファイル１８０の生成に用いるチェック・カウント条件ファイル１６０を生成する。条件ファイル生成部１３は、生成したチェック・カウント条件ファイル１６０を、条件ファイル記憶部１６に記憶する。
【００３０】
機能検証ファイル生成部１７は、機能検証表１４０とチェック・カウント条件ファイル１６０を基に、ＲＴＬシミュレーションで使用可能な形式の機能検証ファイル１８０（カバレッジ・チェッカ用アサーション）を生成する。
【００３１】
以下、機能検証表生成部１２と条件ファイル生成部１３の処理を詳しく説明する。
図６は、機能検証表生成部および条件ファイル生成部の機能を示すブロック図である。
条件ファイル生成部１３は、情報解析部１３ａとモニタ基幹生成部１３ｂとを有している。情報解析部１３ａは、状態取得部１３１と、遷移パターン取得部１３２と、遷移条件取得部１３３と、状態維持期間取得部１３４とを有している。
【００３２】
図７は、状態取得部の処理を説明する図である。
状態取得部１３１は、入力として与えられた制御ファイル１１ａのＳｔａｔｅＤｅｆｉｎｅ部分に記載されている情報を用いて、チェック・カウント条件ファイル１６０の生成に用いるＦＳＭ用データベース１３５を生成し保持する。ＦＳＭ用データベース１３５には、制御ファイル１１ａに記載されている状態名（ＩＤＬＥ、ＷＡＩＴ、およびＦＩＮＩＳＨ）に対応するＩＤＬＥ状態、ＷＡＩＴ状態、およびＦＩＮＩＳＨ状態が設定される。また、状態取得部１３１は、エラー検出のために定義外の状態を保持するＯＴＨＥＲ状態を、ＦＳＭ用データベース１３５に設定する。
【００３３】
図８は、状態取得部の処理を示すフローチャートである。
［ステップＳ１］  状態取得部１３１は、制御ファイル１１ａのＳｔａｔｅＤｅｆｉｎｅ部分に記載されている状態名をキー名に、１つのキー名を取得する。その後、ステップＳ２に遷移する。
【００３４】
［ステップＳ２］  状態取得部１３１は、ステップＳ１にて取得したキー名をＦＳＭ用データベース１３５に保持する。その後、ステップＳ３に遷移する。
［ステップＳ３］  状態取得部１３１は、ＳｔａｔｅＤｅｆｉｎｅ部分の全てのキー名の取得を完了したか否かを判断する。これは、Ｅｎｄに達したか否かで判断することができる。ＳｔａｔｅＤｅｆｉｎｅ部分の全てのキー名の取得を完了した場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。ＳｔａｔｅＤｅｆｉｎｅ部分の全てのキー名の取得を完了していない場合（ステップＳ３のＮｏ）、ステップＳ１に遷移し、ステップＳ１以降の処理を引き続き実行する。
【００３５】
［ステップＳ４］  状態取得部１３１は、ＦＳＭ用データベース１３５にＯＴＨＥＲ状態を追加する。その後、図８の処理を終了する。
次に、遷移パターン取得部１３２の処理を説明する。遷移パターン取得部１３２は、入力として与えられた制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分に記載されている情報を用いて、ＦＳＭ用データベース１３５に設定されているＩＤＬＥ状態、ＷＡＩＴ状態、ＦＩＮＩＳＨ状態およびＯＴＨＥＲ状態の関係（遷移パターン）を取得する。ただし、エラー検出のため、関係が定義されていない全ての状態は、ＯＴＨＥＲ状態に遷移するものとする。
【００３６】
図９は、遷移パターン取得部の処理を説明する図である。
遷移パターン取得部１３２は、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分に記述されている状態遷移をＦＳＭ用データベース１３５に記載する。
【００３７】
ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分には、トランザクション名、状態パラメータ、繰り返し回数、状態パラメータ、繰り返し回数、・・・の順に状態遷移が設定されている。制御ファイル１１ａ中の繰り返し回数「＋」は１回以上、繰り返し回数「＊」は０回以上状態を維持することを意味する。
【００３８】
図９に示す制御ファイル１１ａのトランザクション名ＴＸＮ＿ＩＤＬＥのトランザクション（以下、トランザクションＴＸＮ＿ＩＤＬＥのように記載する）は、ＦＩＮＩＳＨ状態からＩＤＬＥ状態に遷移し、ＩＤＬＥ状態を１回以上維持した後、ＷＡＩＴ状態に遷移することが記述されている。このため遷移パターン取得部１３２は、状態を維持する遷移をＦＳＭ用データベース１３５に追加する。
【００３９】
次に、遷移パターン取得部１３２は、トランザクションＴＸＮ＿ＴＦＲに記述されている状態遷移をＦＳＭ用データベース１３５に追加する。具体的には、トランザクションＴＸＮ＿ＴＦＲにはＩＤＬＥ状態から、ＷＡＩＴ状態を最低１回経由して、ＦＩＮＩＳＨ状態を１回経由した後、ＩＤＬＥ状態に戻ることが記述されている。このため、遷移パターン取得部１３２は、この状態遷移をＦＳＭ用データベース１３５に追加する。
【００４０】
最後に遷移パターン取得部１３２は、エラー検出のため、各状態からの遷移先としてＯＴＨＥＲ状態への遷移をＦＳＭ用データベース１３５に追加する。
図１０は、遷移パターン取得部の処理を示すフローチャートである。
【００４１】
［ステップＳ１１］  遷移パターン取得部１３２は、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分に記載されているトランザクション名をキー名に、１つのキー名とパラメータを取得する。その後、ステップＳ１２に遷移する。
【００４２】
［ステップＳ１２］  遷移パターン取得部１３２は、ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分に記載されている全てのキー名の分析が完了したか否かを判断する。全てのキー名の分析が完了した場合（ステップＳ１２のＹｅｓ）、ステップＳ１６に遷移する。全てのキー名の分析が完了していない場合（ステップＳ１２のＮｏ）、ステップＳ１３に遷移する。
【００４３】
［ステップＳ１３］  遷移パターン取得部１３２は、ステップＳ１にて取得したトランザクションの全てのパラメータの組み合わせの分析を完了したか否かを判断する。全てのパラメータの組み合わせの分析を完了した場合（ステップＳ１３のＹｅｓ）、ステップＳ１１に遷移する。全てのパラメータの組み合わせの分析を完了していない場合（ステップＳ１３のＮｏ）、ステップＳ１４に遷移する。
【００４４】
［ステップＳ１４］  遷移パターン取得部１３２は、１つの状態パラメータと、次の状態パラメータの組み合わせを取得する。その後、ステップＳ１５に遷移する。
［ステップＳ１５］  遷移パターン取得部１３２は、ＦＳＭ用データベース１３５に状態遷移先情報を追加する。その後、ステップＳ１３に遷移する。
【００４５】
［ステップＳ１６］  遷移パターン取得部１３２は、全ての状態からＯＴＨＥＲ状態への遷移をＦＳＭ用データベース１３５に追加する。その後、図１０の処理を終了する。
次に、遷移条件取得部１３３の処理を説明する。
【００４６】
図１１は、遷移条件取得部の処理を説明する図である。
遷移条件取得部１３３は、制御ファイル１１ａのＳｔａｔｅＤｅｆｉｎｅ部分の情報を用いて遷移パターン取得部１３２が算出した各状態への遷移条件を取得する。
【００４７】
図１１に示す制御ファイル１１ａのＳｔａｔｅＤｅｆｉｎｅ部分には、状態名、状態パラメータ、状態値パラメータ、状態パラメータ、状態値パラメータ・・・の順に遷移条件が設定されている。具体的には、ＩＤＬＥ状態定義（ＩＤＬＥ,ＲＥＱ,０,ＡＣＫ,０）では、ＩＤＬＥ状態はＲＥＱが０ｘ０でＡＣＫが０ｘ０であることが記述されている。遷移条件取得部１３３は、このＩＤＬＥ状態定義を用いてＩＤＬＥ状態の維持条件とＩＤＬＥへの遷移条件を算出する。遷移条件は、（状態パラメータ＝＝状態値パラメータ）＆＆（次の状態パラメータ＝＝次の状態値パラメータ）となる。
【００４８】
ＩＤＬＥ状態定義に当てはめると、（ＲＥＱ＝＝０）＆＆（ＡＣＫ＝＝０）となる。遷移条件取得部１３３は、この（ＲＥＱ＝＝０）＆＆（ＡＣＫ＝＝０）をＦＳＭ用データベース１３５のＩＤＬＥ状態の維持条件と遷移条件に設定する。
【００４９】
また、制御ファイル１１ａのＷＡＩＴ状態定義（ＷＡＩＴ,ＲＥＱ,１,ＡＣＫ,０）では、ＷＡＩＴ状態はＲＥＱが０ｘ１でＡＣＫが０ｘ０であることが記述されている。遷移条件取得部１３３は、このＷＡＩＴ状態定義を用いてＷＡＩＴ状態の維持条件とＷＡＩＴ状態への遷移条件（ここではＩＤＬＥ状態からＷＡＩＴ状態に遷移するためその条件として用いる）を算出する。
【００５０】
ＷＡＩＴ状態定義に当てはめると、（ＲＥＱ＝＝１）＆＆（ＡＣＫ＝＝０）となる。遷移条件取得部１３３は、この（ＲＥＱ＝＝１）＆＆（ＡＣＫ＝＝０）をＦＳＭ用データベース１３５のＷＡＩＴ状態の維持条件と遷移条件に設定する。
【００５１】
遷移条件取得部１３３は、ＦＩＮＩＳＨ状態定義についても、ＩＤＬＥ状態定義、およびＷＡＩＴ状態定義と同様の処理を行い、（ＲＥＱ＝＝１）＆＆（ＡＣＫ＝＝１）をＦＳＭ用データベース１３５のＦＩＮＩＳＨ状態の遷移条件に設定する。
【００５２】
図１２は、遷移パターン取得部の処理を示すフローチャートである。
［ステップＳ２１］  遷移条件取得部１３３は、ＳｔａｔｅＤｅｆｉｎｅ部分に記載されている状態名をキー名に、１つのキー名とパラメータとを取得する。その後、ステップＳ２２に遷移する。
【００５３】
［ステップＳ２２］  遷移条件取得部１３３は、ＳｔａｔｅＤｅｆｉｎｅ部分に記載されている全てのキー名の分析を完了したか否かを判断する。全てのキー名の分析を完了した場合（ステップＳ２２のＹｅｓ）、ステップＳ２４に遷移する。全てのキー名の分析を完了していない場合（ステップＳ２２のＮｏ）、ステップＳ２３に遷移する。
【００５４】
［ステップＳ２３］  遷移条件取得部１３３は、遷移先がキー名の遷移条件にパラメータ値からＦＳＭ用データベース１３５に条件を追加する。その後、ステップＳ２１に遷移する。
【００５５】
［ステップＳ２４］  遷移条件取得部１３３は、ＯＴＨＥＲ状態への遷移条件をＦＳＭ情報１３１ａに追加する。その後、図１２の処理を終了する。
次に、状態維持期間取得部１３４の処理を説明する。
【００５６】
図１３は、状態維持期間取得部の処理を説明する図である。
状態維持期間取得部１３４は、入力として与えられた制御ファイル１１ａのＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分に記載されている情報を用いて各状態の状態維持期間を取得する。
【００５７】
ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分には、状態名、最小繰り返し回数、最大繰り返し回数の順に制約条件が設定されている。
制御ファイル１１ａのＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分には、ＩＤＬＥ状態が１〜＊という制約が記述されている。これは、最低１サイクル以上ＩＤＬＥ状態を維持することを示している。そのため、状態維持期間取得部１３４は、ＩＤＬＥ状態は特に状態維持に条件はなく無限に維持することが可能である状態と判断する。
【００５８】
また、制御ファイル１１ａのＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分には、ＷＡＩＴ状態が１〜１５サイクル以内という制約が記述されている。このため状態維持期間取得部１３４は、ＯＴＨＥＲ状態に遷移する条件の１つに１６サイクル以上ＷＡＩＴ状態を維持した場合をＦＳＭ用データベース１３５に加える。これにより、検証時に１６サイクル以上ＷＡＩＴ状態を維持した場合がエラー検出される。
【００５９】
状態維持期間取得部１３４は、ＦＩＮＩＳＨ状態からＯＴＨＥＲ状態への遷移もＷＡＩＴ状態同様に２サイクル以上維持した場合はＯＴＨＥＲ状態に遷移する条件としてＦＳＭ用データベース１３５に加える。
【００６０】
図１４は、状態維持期間取得部の処理を示すフローチャートである。
［ステップＳ３１］  状態維持期間取得部１３４は、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分に記載されている状態名をキー名に、１つのキー名とパラメータとを取得する。その後、ステップＳ３２に遷移する。
【００６１】
［ステップＳ３２］  状態維持期間取得部１３４は、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分に記載されている全てのキー名の分析を完了したか否かを判断する。全てのキー名の分析を完了した場合（ステップＳ３２のＹｅｓ）、図１４の処理を終了する。全てのキー名の分析を完了していない場合（ステップＳ３２のＮｏ）、ステップＳ３３に遷移する。
【００６２】
［ステップＳ３３］  状態維持期間取得部１３４は、ＦＳＭ用データベース１３５の遷移元と遷移先が同じ状態遷移条件に、状態維持期間を追加する。その後、ステップＳ３４に遷移する。
【００６３】
［ステップＳ３４］  状態維持期間取得部１３４は、ＯＴＨＥＲ状態への遷移条件をＦＳＭ用データベース１３５に追加する。その後、ステップＳ３１に遷移する。
次に、モニタ基幹生成部１３ｂの処理を説明する。モニタ基幹生成部１３ｂは、制御ファイル１１ａと情報解析部１３ａが作成したＦＳＭ用データベース１３５とを用いてチェック・カウント条件ファイル１６０を生成する。生成する情報はＶｅｒｉｌｏｇ−ＨＤＬのモジュール記述内に実装される。このモジュール内に機能検証ファイル生成部１７が作成したチェッカおよびカバレッジを接続することで機能検証ファイル１８０ができあがる。
【００６４】
図１５は、チェック・カウント条件ファイルの一例を示す図である。
まず、モニタ基幹生成部１３ｂは、情報解析部１３ａが作成したＦＳＭ用データベース１３５に設定された状態のキー名と遷移条件を基にカバレッジ・チェッカ部分のソースコードを生成する。次に、モニタ基幹生成部１３ｂは、制御ファイル１１ａに記載されているＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分の情報とＦＳＭ用データベース１３５とを用いてトランザクション判定部分を生成する。例えば制御ファイル１１ａにおいてＴＸＮ＿ＴＦＲトランザクションは下記の状態遷移を行うことわかる。
【００６５】
１．ＩＤＬＥ状態からＷＡＩＴ状態に遷移（ＴＸＮ＿ＴＦＲ，ＩＤＬＥ，０，ＷＡＩＴ，＋，ＦＩＮＩＳＨ，１，ＩＤＬＥ，０）
２．ＷＡＩＴ状態を１サイクル以上維持（ＴＸＮ＿ＴＦＲ，ＩＤＬＥ，０，ＷＡＩＴ，＋，ＦＩＮＩＳＨ，１，ＩＤＬＥ，０）
３．ＷＡＩＴ状態からＦＩＮＩＳＨ状態に遷移（ＴＸＮ＿ＴＦＲ，ＩＤＬＥ，０，ＷＡＩＴ，＋，ＦＩＮＩＳＨ，１，ＩＤＬＥ，０）
４．ＦＩＮＩＳＨ状態を１サイクル保持した後、ＦＩＮＩＳＨ状態からＩＤＬＥ状態に遷移（ＴＸＮ＿ＴＦＲ，ＩＤＬＥ，０，ＷＡＩＴ，＋，ＦＩＮＩＳＨ，１，ＩＤＬＥ，０）
これらを判別した後、モニタ基幹生成部１３ｂは、トランザクション判定部分にあるトランザクション判定信号（ｅｘｅｃ＿ｔｘｎ＿ｔｆｒ）を生成する。
【００６６】
１．ｉｆ（ｓｔａｔｅ＿ｃｓ＝＝ＩＤＬＥ＆＆ｓｔａｔｅ＿ｎｓ＝＝ＷＡＩＴ）
２．ｉｆ（ｓｔａｔｅ＿ｃｓ＝＝ＷＡＩＴ＆＆ｓｔａｔｅ＿ｎｓ＝＝ＷＡＩＴ）
３．ｉｆ（ｓｔａｔｅ＿ｃｓ＝＝ＷＡＩＴ＆＆ｓｔａｔｅ＿ｎｓ＝＝ＦＩＮＩＳＨ）
４．ｉｆ（ｓｔａｔｅ＿ｃｓ＝＝ＦＩＮＩＳＨ＆＆ｓｔａｔｅ＿ｎｓ＝＝ＩＤＬＥ）
モニタ基幹生成部１３ｂは、ＴＸＮ＿ＩＤＬＥに対してもＴＸＮ＿ＴＦＲトランザクションと同様な方法でトランザクション判定信号（ｅｘｅｃ＿ｔｘｎ＿ＩＤＬＥ）を生成する。生成したトランザクション判定信号は、必ずどちらかがアサートされた状態であり、ともに０になることはない。仮にともに０が検出された場合は、トランザクション未定義の箇所があることを意味し、生成されたチェッカ（／／ｐｓｌ記述部分）でエラーとなり設計者に通知される。さらに、生成したトランザクション判定信号がともに１が検出された場合は、トランザクション定義が重複していることを意味し、未定義エラー通知と同様に生成されたチェッカ（／／ｐｓｌ記述部分）でエラーとなり設計者に通知される。
【００６７】
また、モニタ基幹生成部１３ｂは、各トランザクションの最終状態遷移条件部分にはそのトランザクションの終了を示す（ＦＩＮＩＳＨ＿ｔｘｎ＿＊）を生成しておく。これは、トランザクションレベル項目表１４ｃをカウント・チェックするための情報として用いられる。
【００６８】
次に、モニタ基幹生成部１３ｂの処理を、フローチャートを用いて説明する。
図１６は、モニタ基幹生成部の処理を示すフローチャートである。
［ステップＳ４１］  モニタ基幹生成部１３ｂは、ＳｉｇｎａｌＤｅｆｉｎｅ部分およびＳｔａｔｅＤｅｆｉｎｅ／ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分のキー名に対してｄｅｆｉｎｅ記述を生成する。その後、ステップＳ４２に遷移する。
【００６９】
［ステップＳ４２］  モニタ基幹生成部１３ｂは、ＳｉｇｎａｌＤｅｆｉｎｅ部分のキー名を基に入出力端子定義を生成する。その後、ステップＳ４３に遷移する。
［ステップＳ４３］  モニタ基幹生成部１３ｂは、状態保持用レジスタ定義を生成する。その後、ステップＳ４４に遷移する。
【００７０】
［ステップＳ４４］  モニタ基幹生成部１３ｂは、チェッカ・カバレッジ用レジスタ定義を生成する。その後、ステップＳ４５に遷移する。
［ステップＳ４５］  モニタ基幹生成部１３ｂは、チェッカ・カバレッジ情報部分を生成する。その後、ステップＳ４６に遷移する。
【００７１】
［ステップＳ４６］  モニタ基幹生成部１３ｂは、トランザクション判定部分を生成する。その後、ステップＳ４７に遷移する。
［ステップＳ４７］  モニタ基幹生成部１３ｂは、トランザクションエラーの検出部分を生成する。その後、図１６の処理を終了する。
【００７２】
次に、ステップＳ４６のトランザクション判定部分の生成処理を説明する。
図１７は、トランザクション判定部分の生成処理を説明するフローチャートである。
［ステップＳ４６ａ］  モニタ基幹生成部１３ｂは、ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分のキー名とパラメータを取得する。その後、ステップＳ４６ｂに遷移する。
【００７３】
［ステップＳ４６ｂ］  モニタ基幹生成部１３ｂは、ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分全てのキー名の分析を完了したか否かを判断する。全てのキー名の分析を完了した場合（ステップＳ４６ｂのＹｅｓ）、ステップＳ４６ｆに遷移する。全てのキー名の分析を完了していない場合（ステップＳ４６ｂのＮｏ）、ステップＳ４６ｃに遷移する。
【００７４】
［ステップＳ４６ｃ］  モニタ基幹生成部１３ｂは、状態パラメータと次の状態パラメータとの組み合わせからキー名（トランザクション）の発生条件を算出する。その後、ステップＳ４６ｄに遷移する。
【００７５】
［ステップＳ４６ｄ］  モニタ基幹生成部１３ｂは、全てのパラメータについて分析を完了したか否かを判断する。全てのパラメータについて分析を完了した場合（ステップＳ４６ｄのＹｅｓ）、ステップＳ４６ｅに遷移する。全てのパラメータについて分析を完了していない場合（ステップＳ４６ｄのＮｏ）、ステップＳ４６ｃに遷移する。
【００７６】
［ステップＳ４６ｅ］  モニタ基幹生成部１３ｂは、トランザクションの終了を示すパラメータの組み合わせを保持する。その後、ステップＳ４６ａに遷移する。
［ステップＳ４６ｆ］  モニタ基幹生成部１３ｂは、トランザクション判定部分の記述を作成する。その後、図１７の処理を終了する。
【００７７】
再び図６に戻って説明する。
次に、機能検証表生成部１２が備える機能を説明する。機能検証表生成部１２は、信号レベル項目表生成部１２ａと、状態レベル項目表生成部１２ｂと、トランザクションレベル項目表生成部１２ｃとを有している。
【００７８】
図１８は、信号レベル項目表生成部を説明する図である。
信号レベル項目表生成部１２ａは、制御ファイル１１ａのＳｉｇｎａｌＤｅｆｉｎｅ部分、およびＳｉｇｎａｌＣｏｎｓｔｒａｉｎｔ部分に記載されている情報を用いて信号レベル項目表１４ａを生成する。信号レベル項目表１４ａは、信号レベルのカバレッジ・チェック項目表である。以下、信号レベル項目表１４ａの作成方法を説明する。
【００７９】
まず、信号レベル項目表生成部１２ａは、制御ファイル１１ａのＳｉｇｎａｌＤｅｆｉｎｅ部分から信号ＲＥＱおよび信号ＡＣＫを取得する。そして、信号レベル項目表生成部１２ａは、取得したそれぞれの信号ＲＥＱおよび信号ＡＣＫについて、１サイクル前の値と現在の値に対する信号組み合わせ表１４１ａ、１４２ａを生成する。その後、信号レベル項目表生成部１２ａは、制御ファイル１１ａのＳｉｇｎａｌＣｏｎｓｔｒａｉｎｔ部分に記載されている情報を用いて、信号組み合わせ表１４１ａ、１４２ａのカバレッジ項目部分には“０”を挿入する。また、制約上カバーできない箇所（チェック項目部分）には斜線を挿入する。例えば、ＲＥＱは１〜１６サイクルアサートすることが示されているため、２サイクル以上アサートすることが判断できる。また、ＡＣＫは１〜１サイクルと記載されているため２サイクル以上アサートすることはないことが判断できる。よって、ＡＣＫ信号に対して１サイクル前の値と現在の値がともに１になることはないことから、信号レベル項目表生成部１２ａは、今のＡＣＫ値と次のＡＣＫ値がそれぞれ１’ｂ１の欄に斜線を挿入する。また、不定値を示す“Ｘ”は制御信号において発生してはならない信号状態であるため、信号レベル項目表生成部１２ａは、信号組み合わせ表１４１ａ、１４２ａの１ｂ’Ｘの全ての欄に斜線を無条件で挿入する。これにより、信号レベル項目表１４ａができあがる。
【００８０】
次に、信号レベル項目表生成部１２ａは、信号組み合わせ表１４１ａ、１４２ａをデータシートの所定の箇所に保存する。そして、信号レベル項目表生成部１２ａは、データシート内での信号組み合わせ表１４１ａ、１４２ａの位置等を示す信号レベル項目表制御ファイル１５ａを生成する。
【００８１】
信号レベル項目表制御ファイル１５ａは、データシート内での信号組み合わせ表１４１ａ、１４２ａの記述位置特定情報、信号組み合わせ表１４１ａ、１４２ａ内の文字列とチェック・カウント条件ファイル１６０内の信号との対応づけ情報、および信号レベル項目表１４ａの内容をカウント・チェックするためのタイミング情報（定義されたチェッカ・カバレッジの起動条件）を含む。生成した信号レベル項目表制御ファイル１５ａは、機能検証ファイル生成部１７で使用される。
【００８２】
図１９は、信号レベル制御ファイルの一例を示す図である。
図１９に示す信号レベル項目表制御ファイル１５ａの１行目〜４行目が、データシートＤ１内での信号組み合わせ表１４１ａの記述位置特定情報を示している。５行目が、定義されたチェッカ・カバレッジの起動条件を示している。６行目〜９行目が、信号組み合わせ表１４１ａの文字列とチェック・カウント条件ファイル１６０内の信号との対応づけ情報を示している。
【００８３】
＜記述位置特定情報＞
本実施の形態では、データシートＤ１内において、信号組み合わせ表１４１ａを記述する位置に関する制約は特に設けていない。このため、記述位置特定情報により、機能検証ファイル生成部１７がどの位置から信号組み合わせ表１４１ａを読み取ればよいのかを指定する。
【００８４】
ｒ＿ｉｔｅｍは、信号組み合わせ表１４１ａの縦（Ｒｏｗ）方向のチェック・カバレッジ対象項目の範囲を示し、ｒ＿ｐａｒａは、その項目でとりえる値の範囲を示す。また、横（Ｃｏｌｕｍｎ）方向についても同様にｃ＿ｉｔｅｍとｃ＿ｐａｒａでその範囲が指定される。
【００８５】
＜定義されたチェッカ・カバレッジの起動条件＞
この項目は、ある条件が成立したときにだけチェッカ・カバレッジを起動したい場合に定義する。例えば、複数サイクルかけて状態が確定するトランザクションレベルの項目などがこれに該当する。ｔｒｉｇｇｅｒに“１”が記載される場合は、条件無と判断され、毎サイクルチェックおよびカバレッジが取得される。
【００８６】
＜文字列とチェック・カウント条件ファイル１６０内の信号との対応づけ情報＞
ｐａｒａｍｅｔｅｒ＿ｂｅｇｉｎとｐａｒａｍｅｔｅｒ＿ｅｎｄで文字列と図１５に記載したチェック・カウント条件ファイル１６０に記載される信号名との対応づけが行われる。すなわち、チェック・カウント条件ファイル１６０において、今のＲＥＱ値は「ｐｒｅ＿ＲＥＱ」、次のＲＥＱ値は「ＲＥＱ」と定義されているので、その信号を利用する。
【００８７】
次に、信号レベル項目表生成部１２ａの処理を、フローチャートを用いて説明する。
図２０は、信号レベル項目表生成部の処理を示すフローチャートである。
［ステップＳ５１］  信号レベル項目表生成部１２ａは、制御ファイル１１ａに記載されているＳｉｇｎａｌＤｅｆｉｎｅ部分のキー名を取得する。その後、ステップＳ５２に遷移する。
【００８８】
［ステップＳ５２］  信号レベル項目表生成部１２ａは、ＳｉｇｎａｌＤｅｆｉｎｅ部分の全てのキー名の取得が完了したか否かを判断する。ＳｉｇｎａｌＤｅｆｉｎｅ部分の全てのキー名の取得が完了した場合（ステップＳ５２のＹｅｓ）、ステップＳ５４に遷移する。ＳｉｇｎａｌＤｅｆｉｎｅ部分の全てのキー名の取得が完了していない場合（ステップＳ５２のＮｏ）、ステップＳ５３に遷移する。
【００８９】
［ステップＳ５３］  信号レベル項目表生成部１２ａは、キー名に対応する信号レベル組み合わせ表を生成する。その後、ステップＳ５１に遷移する。
［ステップＳ５４］  信号レベル項目表生成部１２ａは、ＳｉｇｎａｌＣｏｎｓｔｒａｉｎｔ部分のキー名およびパラメータを取得する。その後、ステップＳ５５に遷移する。以下、取得した後ろ側のパラメータをパラメータａ２と言う。例えば、制御ファイル１１ａの（ＩＤＬＥ，１，＊）では、＊がパラメータａ２となる。
【００９０】
［ステップＳ５５］  信号レベル項目表生成部１２ａは、ＳｉｇｎａｌＣｏｎｓｔｒａｉｎｔ部分のキー名の取得が完了したか否かを判断する。ＳｉｇｎａｌＣｏｎｓｔｒａｉｎｔ部分の全てのキー名の取得が完了した場合（ステップＳ５５のＹｅｓ）、ステップＳ５９に遷移する。ＳｉｇｎａｌＣｏｎｓｔｒａｉｎｔ部分の全てのキー名の取得が完了していない場合（ステップＳ５５のＮｏ）、ステップＳ５６に遷移する。
【００９１】
［ステップＳ５６］  信号レベル項目表生成部１２ａは、パラメータａ２が１より大きいか否かを判断する。パラメータａ２が１より大きい場合（ステップＳ５６のＹｅｓ）、ステップＳ５８に遷移する。パラメータａ２が１以下である場合（ステップＳ５６のＮｏ）、ステップＳ５７に遷移する。
【００９２】
［ステップＳ５７］  信号レベル項目表生成部１２ａは、キー名に対応する信号組み合わせ表の今の値が“１”かつ、次の値が“１”に対応するセルに斜線を挿入する。その後、ステップＳ５８に遷移する。
【００９３】
［ステップＳ５８］  信号レベル項目表生成部１２ａは、キー名に対応する信号レベル項目表の今の値“Ｘ”または次の値“Ｘ”に関係するセルに斜線を挿入する。その後、ステップＳ５４に遷移する。
【００９４】
［ステップＳ５９］  信号レベル項目表生成部１２ａは、信号レベル項目表制御ファイル１５ａを生成する。その後、図２０の処理を終了する。
次に、状態レベル項目表生成部１２ｂの処理を説明する。状態レベル項目表生成部１２ｂは、入力として与えられた制御ファイル１１ａ内のＳｔａｔｅＤｅｆｉｎｅ部分、および、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の情報を用いて、状態レベルの項目表（状態レベル項目表）１４ｂを生成する。状態レベル項目表１４ｂは、大きく分けて、状態の組み合わせを示す状態組み合わせ表１４１ｂと各種状態（ＩＤＬＥ状態、ＷＡＩＴ状態、ＦＩＮＩＳＨ状態）の維持期間を示す状態維持期間表１４２ｂ、１４３ｂ、１４４ｂの２種類の表を含む。
【００９５】
図２１は、状態レベル項目表生成部の処理を説明する図である。
まず、状態レベル項目表生成部１２ｂは、状態組み合わせ表１４１ｂを生成するため、制御ファイル１１ａのＳｔａｔｅＤｅｆｉｎｅ部分の情報を用いて状態の組み合わせを決定する。このとき、状態レベル項目表生成部１２ｂは、遷移パターン取得部１３２がエラー状態遷移発生時にカウントしたＯＴＨＥＲ状態を抽出する。ＯＴＨＥＲ状態は、エラー検出に使用される。
【００９６】
次に、状態レベル項目表生成部１２ｂは、状態維持期間表１４２ｂ〜１４４ｂを生成するため、各状態の種類を抽出する。その後、状態レベル項目表生成部１２ｂは、各状態の維持期間のパラメータを制御ファイル１１ａのＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の情報を用いて生成する。
【００９７】
図２２は、状態維持期間表の生成を説明する図である。
例えば、ＩＤＬＥ状態については、１サイクル以上維持することが制御ファイル１１ａから読み取れる。このため、状態レベル項目表生成部１２ｂは、状態維持期間表１４２ｂのＩＤＬＥ状態の維持期間のパラメータを、「１サイクル」、「２サイクル以上」に決定する。ＷＡＩＴ状態については１サイクル以上１５サイクル以内という制約（上限に制約あるタイプ）が記載されている。このため、状態レベル項目表生成部１２ｂは、それぞれの境界値を状態維持期間表１４３ｂのパラメータとする。具体的には、「１サイクル」、「２サイクル以上１４サイクル以内」、「１５サイクル」、「１６サイクル以上」に決定する。
【００９８】
次に、状態レベル項目表生成部１２ｂは、これらの制約を基に状態維持期間における斜線部とカウント部の位置を決定する。
図２３は、状態組み合わせ表の生成を説明する図である。
【００９９】
状態レベル項目表生成部１２ｂは、情報解析部１３ａが生成したＦＳＭ情報１３１ａを用いて、起こりえる遷移パターンを分析し、状態組み合わせ表１４１ｂの、ＯＴＨＥＲ状態に遷移する場合はもちろん、図２３に示すように発生しない状態遷移に斜線を挿入する。例えば、ＦＳＭ情報１３１ａを参照すると、現在の状態がＩＤＬＥである場合、次の状態は、ＩＤＬＥまたはＷＡＩＴである。従って、状態レベル項目表生成部１２ｂは、状態組み合わせ表１４１ｂの現在の状態がＩＤＬＥであり、次の状態がＦＩＮＩＳＨの欄に斜線を挿入する。
【０１００】
次に、状態レベル項目表生成部１２ｂは、機能検証ファイル生成部１７が、機能検証表１４０を取り込む際に使用する状態レベル項目表制御ファイル１５ｂを生成する。状態レベル項目表制御ファイル１５ｂは、生成する状態レベル項目表１４ｂの表の位置情報と項目表内の文字列とチェック・カウント条件ファイル１６０の信号対応づけ情報、項目表の内容をカウント・チェックするためのタイミング情報を含む。
【０１０１】
図２４は、状態レベル項目表制御ファイルの一例を示す図である。
状態レベル項目表制御ファイル１５ｂ１に記載されているｒ＿ｉｔｅｍは、データシートＤ２内での状態組み合わせ表１４１ｂの縦方向のチェッカ・カバレッジ対象項目の範囲を示し、ｒ＿ｐａｒａは、その項目でとりえる値の範囲を示している。また、横方向についても縦方向と同様に、ｃ＿ｉｔｅｍとｃ＿ｐａｒａは、チェッカ・カバレッジ対象項目の範囲とその項目でとりえる値の範囲を示している。また、毎サイクルのチェッカ・カバレッジ取得が必要なため、ｔｒｉｇｇｅｒは１を定義している。さらに、ｐａｒａｍｅｔｅｒ＿ｂｅｇｉｎとｐａｒａｍｅｔｅｒ＿ｅｎｄは、文字列と図１５に記載したチェック・カウント条件ファイル１６０に記載される信号名との対応づけを示している。すなわち、チェック・カウント条件ファイル１６０において、現在の状態は「ｓｔａｔｅ＿ｃｓ」、次の状態は「ｓｔａｔｅ＿ｎｓ」と定義されているので、その信号を利用する。
【０１０２】
図２５は、状態レベル項目表制御ファイルの他の例を示す図である。
状態レベル項目表制御ファイル１５ｂ２は、データシートＤ３内での状態維持期間表１４３ｂに関する制御ファイルである。
【０１０３】
前述したように、ある条件が成立した場合のみカバレッジ・チェッカを動作させたい場合はｔｒｉｇｇｅｒにその条件が記載される。ここで、「状態維持サイクル数」はチェック・カウント条件ファイル１６０において「ｓｔａｔｅ＿ｃｎｔ」と定義されているので、その信号を利用する。また、この項目はクロックの前後で状態がＷＡＩＴからＷＡＩＴ以外に変わるときにチェック・取得する必要があるため、ｔｒｉｇｇｅｒは（ｓｔａｔｅ＿ｃｓ＝＝’ＷＡＩＴ）＆＆（ｓｔａｔｅ＿ｎｓ！＝’ＷＡＩＴ）と定義される。
【０１０４】
次に、状態レベル項目表生成部１２ｂの処理を、フローチャートを用いて説明する。
図２６は、状態レベル項目表生成部の処理を示すフローチャートである。
［ステップＳ６１］  状態レベル項目表生成部１２ｂは、ＳｔａｔｅＤｅｆｉｎｅ部分のキー名を取得する。その後、ステップＳ６２に遷移する。
【０１０５】
［ステップＳ６２］  状態レベル項目表生成部１２ｂは、ＳｔａｔｅＤｅｆｉｎｅ部分の全てのキー名の取得が完了したか否かを判断する。ＳｔａｔｅＤｅｆｉｎｅ部分の全てのキー名の取得が完了した場合（ステップＳ６２のＹｅｓ）、ステップＳ６３に遷移する。ＳｔａｔｅＤｅｆｉｎｅ部分の全てのキー名の取得が完了していない場合（ステップＳ６２のＮｏ）、ステップＳ６１に遷移する。
【０１０６】
［ステップＳ６３］  状態レベル項目表生成部１２ｂは、ステップＳ６１にて取得したＳｔａｔｅＤｅｆｉｎｅのキー名一覧から状態組み合わせ表を生成する。その後、ステップＳ６４に遷移する。
【０１０７】
［ステップＳ６４］  状態レベル項目表生成部１２ｂは、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分からキー名に対応するパラメータを取得する。その後、ステップＳ６５に遷移する。
【０１０８】
［ステップＳ６５］  状態レベル項目表生成部１２ｂは、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了したか否かを判断する。ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了した場合（ステップＳ６５のＹｅｓ）、ステップＳ６８に遷移する。ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了していない場合（ステップＳ６５のＮｏ）、ステップＳ６６に遷移する。
【０１０９】
［ステップＳ６６］  状態レベル項目表生成部１２ｂは、ステップＳ６４にて取得したパラメータから状態維持期間の値を算出する。その後、ステップＳ６７に遷移する。
［ステップＳ６７］  状態レベル項目表生成部１２ｂは、キー名に対応する状態維持期間表を作成する。その後、ステップＳ６４に遷移する。
【０１１０】
［ステップＳ６８］  状態レベル項目表生成部１２ｂは、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分からキー名に対応するパラメータを取得する。その後、ステップＳ６９に遷移する。
【０１１１】
［ステップＳ６９］  状態レベル項目表生成部１２ｂは、ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了したか否かを判断する。ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了した場合（ステップＳ６９のＹｅｓ）、ステップＳ７２に遷移する。ＳｔａｔｅＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了していない場合（ステップＳ６９のＮｏ）、ステップＳ７０に遷移する。
【０１１２】
［ステップＳ７０］  状態レベル項目表生成部１２ｂは、パラメータａ２が＊に一致するか否かを判断する。パラメータａ２が＊に一致する場合（ステップＳ７０のＹｅｓ）、ステップＳ６８に遷移する。パラメータａ２が＊に一致しない場合（ステップＳ７０のＮｏ）、ステップＳ７１に遷移する。
【０１１３】
［ステップＳ７１］  状態レベル項目表生成部１２ｂは、キー名に対応する状態維持期間表に斜線を挿入する。その後、ステップＳ６８に遷移する。
［ステップＳ７２］  状態レベル項目表生成部１２ｂは、ＦＳＭ情報１３１ａを基に遷移可能な状態組み合わせを算出する。その後、ステップＳ７３に遷移する。
【０１１４】
［ステップＳ７３］  状態レベル項目表生成部１２ｂは、ステップＳ６３にて生成した状態組み合わせ表の状態遷移のうち、ステップＳ７２にて算出した遷移可能な状態以外の状態遷移に斜線を挿入する。その後、ステップＳ７４に遷移する。
【０１１５】
［ステップＳ７４］  状態レベル項目表生成部１２ｂは、状態レベル項目表制御ファイル１５ｂを生成する。その後、図２６の処理を終了する。
次に、トランザクションレベル項目表生成部１２ｃの処理を説明する。トランザクションレベル項目表生成部１２ｃは、入力として与えられた制御ファイル内のＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分および、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の情報を用いてトランザクションレベルのトランザクションレベル項目表１４ｃを生成する。トランザクションレベル項目表１４ｃは大きく、トランザクションの組み合わせ項目表とトランザクション連続発生回数表を含む。
【０１１６】
図２７、図２８は、トランザクションレベル項目表生成部の処理を説明する図である。
まず、トランザクションレベル項目表生成部１２ｃは、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分の情報を用いて、トランザクション組み合わせ表１４１ｃを生成する。
【０１１７】
次に、トランザクションレベル項目表生成部１２ｃは、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の情報を用いて、トランザクション連続発生回数表１４２ｃ、１４３ｃの各種トランザクションの連続期間のパラメータを決定する。例えば、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分にはＴＸＮ＿ＩＤＬＥが１トランザクション以上と記載されている。このためトランザクションレベル項目表生成部１２ｃは、パラメータの種類として、１トランザクションと２トランザクション以上を設定したトランザクション連続発生回数表１４２ｃを生成する。また、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分にはＴＸＮ＿ＴＦＲが、１トランザクション以上１トランザクション以下と記載されている。このため、トランザクションレベル項目表生成部１２ｃは、パラメータの種類として、上記同様境界値を意識した１トランザクションと２トランザクション以上を設定したトランザクション連続発生回数表１４３ｃを生成する。
【０１１８】
仮に１トランザクション以上、２トランザクション以下であれば、境界値を意識したパラメータは１トランザクション、２トランザクション、３トランザクション以上がパラメータとして抽出される。
【０１１９】
次に、図２８に示すように、トランザクションレベル項目表生成部１２ｃは、それぞれの項目表に対して斜線を挿入する箇所を決定する。斜線を挿入する箇所の決定には、制御ファイル１１ａのＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の情報が使用される。例えば、ＴＸＮ＿ＩＤＬＥは１トランザクション以上連続することが明記されているため、連続期間に対する制約がないことを意味する。また、ＴＸＮ＿ＴＦＲにおいては２トランザクション以上連続することがないことが明記されている。このため、トランザクションレベル項目表生成部１２ｃは、トランザクション組み合わせ表１４１ｃにおいても、トランザクション連続発生回数表１４２ｃ、１４３ｃにおいても２トランザクション以上の項目部分に斜線を挿入する。
【０１２０】
また、トランザクションレベル項目表生成部１２ｃでも、信号レベル項目表生成部１２ａ、および状態レベル項目表生成部１２ｂと同様の処理を行って、トランザクションレベル項目表制御ファイル１５ｃを生成する。
【０１２１】
図２９は、トランザクションレベル項目表生成部の処理を示すフローチャートである。
［ステップＳ８１］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分のキー名を取得する。その後、ステップＳ８２に遷移する。
【０１２２】
［ステップＳ８２］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分の全てのキー名の取得が完了したか否かを判断する。ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分の全てのキー名の取得が完了した場合（ステップＳ８２のＹｅｓ）、ステップＳ８３に遷移する。ＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅ部分の全てのキー名の取得が完了していない場合（ステップＳ８２のＮｏ）、ステップＳ８１に遷移する。
【０１２３】
［ステップＳ８３］  トランザクションレベル項目表生成部１２ｃは、ステップＳ８１にて取得したＴｒａｎｓａｃｔｉｏｎＤｅｆｉｎｅのキー名一覧からトランザクション組み合わせ表１４１ｃを生成する。その後、ステップＳ８４に遷移する。
【０１２４】
［ステップＳ８４］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分からキー名に対応するパラメータを取得する。その後、ステップＳ８５に遷移する。
【０１２５】
［ステップＳ８５］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了したか否かを判断する。ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了した場合（ステップＳ８５のＹｅｓ）、ステップＳ８８に遷移する。ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了していない場合（ステップＳ８５のＮｏ）、ステップＳ８６に遷移する。
【０１２６】
［ステップＳ８６］  トランザクションレベル項目表生成部１２ｃは、ステップＳ８４にて取得したパラメータからトランザクション連続発生回数表のパラメータ値を算出する。その後、ステップＳ８７に遷移する。
【０１２７】
［ステップＳ８７］  トランザクションレベル項目表生成部１２ｃは、キー名に対応するトランザクション連続発生回数表を作成する。その後、ステップＳ８４に遷移する。
［ステップＳ８８］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分からキー名に対応するパラメータを取得する。その後、ステップＳ８９に遷移する。
【０１２８】
［ステップＳ８９］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了したか否かを判断する。ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了した場合（ステップＳ８９のＹｅｓ）、ステップＳ９２に遷移する。ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了していない場合（ステップＳ８９のＮｏ）、ステップＳ９０に遷移する。
【０１２９】
［ステップＳ９０］  トランザクションレベル項目表生成部１２ｃは、パラメータａ２が＊に一致するか否かを判断する。パラメータａ２が＊に一致する場合（ステップＳ９０のＹｅｓ）、ステップＳ８８に遷移する。パラメータａ２が＊に一致しない場合（ステップＳ９０のＮｏ）、ステップＳ９１に遷移する。
【０１３０】
［ステップＳ９１］  トランザクションレベル項目表生成部１２ｃは、キー名に対応するトランザクション連続発生回数表に斜線を挿入する。その後、ステップＳ８８に遷移する。
【０１３１】
［ステップＳ９２］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分からキー名に対応するパラメータを取得する。その後、ステップＳ９３に遷移する。
【０１３２】
［ステップＳ９３］  トランザクションレベル項目表生成部１２ｃは、ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了したか否かを判断する。ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了した場合（ステップＳ９３のＹｅｓ）、ステップＳ９６に遷移する。ＴｒａｎｓａｃｔｉｏｎＣｏｎｓｔｒａｉｎｔ部分の全てのキー名に対応するパラメータの取得が完了していない場合（ステップＳ９３のＮｏ）、ステップＳ９４に遷移する。
【０１３３】
［ステップＳ９４］  トランザクションレベル項目表生成部１２ｃは、パラメータａ２が１より大きいか否かを判断する。パラメータａ２が１より大きい場合（ステップＳ９４のＹｅｓ）、ステップＳ９２に遷移する。パラメータａ２が１以下である場合（ステップＳ９４のＮｏ）、ステップＳ９５に遷移する。
【０１３４】
［ステップＳ９５］  トランザクションレベル項目表生成部１２ｃは、キー名に対応するトランザクション連続発生回数表に斜線を挿入する。その後、ステップＳ９２に遷移する。
【０１３５】
［ステップＳ９６］  トランザクションレベル項目表生成部１２ｃは、トランザクションレベル項目表制御ファイルを生成する。その後、図２９の処理を終了する。
図３０は、機能検証表の効果を説明する図である。
【０１３６】
図３０に示すように、生成した３つのレベルの項目表を含む機能検証表１４０を用いることにより、チェック内容に重複はあるものの、チェック項目の一覧が、機能検証表１４０の各表に漏れなく包含されることがわかる。
【０１３７】
例えば、「ＲＥＱがアサートしたら１６サイクル以内にＡＣＫをアサートしなければならない」というチェック項目は、状態維持期間表１４３ｂのＷＡＩＴ状態維持期間「３２’ｄ１６〜」の結果の欄に斜線が設定されていることにより実現されている。「ＡＣＫがアサートする期間は１サイクルでなければならない」というチェック項目は、信号組み合わせ表１４２ａの今のＡＣＫ値１ｂ’１と次のＡＣＫ値１’ｂ１が交わる欄に斜線が挿入されていること、および状態維持期間表１４４ｂのＦＩＮＩＳＨ状態維持期間「３２’ｄ２〜」の結果の欄に斜線が設定されていることにより実現されている。「ＡＣＫがアサートしたらＲＥＱはデアサートしなければならない」というチェック項目は、状態組み合わせ表１４１ｂの現在の状態ＦＩＮＩＳＨと次の状態ＦＩＮＩＳＨが交わる欄に斜線が挿入されていることにより実現されている。「ＲＥＱがアサートしていない状態でＡＣＫがアサートすることはない」というチェック項目は、状態組み合わせ表１４１ｂの現在の状態ＩＤＬＥと次の状態ＦＩＮＩＳＨが交わる欄に斜線が挿入されていることにより実現されている。「ＡＣＫを受けていない状態でＲＥＱをデアサートすることはない」というチェック項目は、状態組み合わせ表１４１ｂの現在の状態ＷＡＩＴと次の状態ＩＤＬＥが交わる欄に斜線が挿入されていることにより実現されている。「ＡＣＫをアサートしたら最低１サイクルはＩＤＬＥ期間（ＲＥＱ＝＝０＆ＡＣＫ＝＝０）が挿入されなければならない」というチェック項目は、状態組み合わせ表１４１ｂの現在の状態ＦＩＮＩＳＨと次の状態ＦＩＮＩＳＨが交わる欄に斜線が挿入されていること、トランザクション組み合わせ表１４１ｃの現在のトランザクションＴＸＮ＿ＴＦＲと次のトランザクションＴＸＮ＿ＴＦＲが交わる欄に斜線が挿入されていること、およびトランザクション連続発生回数表１４３ｃのＴＸＮ＿ＴＦＲトランザクション連続期間「３２’ｄ２〜」の結果の欄に斜線が設定されていることにより実現されている。「ＲＥＱおよびＡＣＫは不定値（１’ｂＸ）となることはない」というチェック項目は、信号組み合わせ表１４１ａの今のＲＥＱ値１ｂ’０と次のＲＥＱ値１’ｂＸが交わる欄に斜線が挿入されていること、および信号組み合わせ表１４２ａの今のＡＣＫ値１ｂ’０と次のＡＣＫ値１’ｂＸが交わる欄に斜線が挿入されていることより実現されている。
【０１３８】
また、３つのレベルに分割して機能検証表１４０を生成するため、設計者のスキルに依存しないカバレッジ項目およびチェック項目を網羅した機能検証表１４０を生成することが可能になる。
【０１３９】
次に、機能検証ファイル生成部１７の処理を説明する。
図３１は、機能検証ファイル生成部の機能を示すブロック図である。
機能検証ファイル生成部１７は、機能検証ファイル１８０を生成するに当たり、機能検証表１４０を読み込み、チェック・カウント条件ファイル１６０内の信号との関連付けを行う。
【０１４０】
機能検証ファイル生成部１７は、制御ファイル読み込み部１７ａと表取り込み部１７ｂと、チェッカ・カバレッジ生成部１７ｃとを有している。
制御ファイル読み込み部１７ａは、モデル生成用制御ファイル１５０を読み込み、機能検証ファイル生成部１７内の図示しないメモリに記憶する。
【０１４１】
表取り込み部１７ｂは、機能検証表１４０を取り込む。具体的には、表取り込み部１７ｂは、取り込んだ機能検証表１４０に含まれる各項目表それぞれの列の要素、行の要素、およびその組み合わせが、チェック項目かカバレッジ項目かを予め用意した表に取り込む。
【０１４２】
以下、機能検証表１４０の取り込みの例として、状態組み合わせ表１４１ｂの取り込みと状態維持期間表１４３ｂの取り込みを説明する。
図３２は、状態組み合わせ表の取り込み例を示す図である。
【０１４３】
表取り込み部１７ｂは、状態組み合わせ表１４１ｂの取り込みに際し、状態組み合わせ表の列の要素を取り込む列要素表１７１ｂ、行の要素を取り込む行要素表１７２ｂ、およびその組み合わせが、チェック項目かカバレッジ項目かを取り込むチェック表１７３ｂを用意する。表取り込み部１７ｂは、以下のルールに従い、状態組み合わせ表１４１ｂの内容を各表に取り込む。
【０１４４】
［列の要素］
Ｃｏｌ［０］［０］  ＝参照する信号名
Ｃｏｌ［０］［１］  ＝信号の値（０番目の要素）
Ｃｏｌ［０］［２］  ＝信号の値（１番目の要素）
：
Ｃｏｌ［０］［ｘ］  ＝信号の値（ｘ−１番目の要素）
［行の要素］
Ｒｏｗ［０］［０］  ＝参照する信号名
Ｒｏｗ［０］［１］  ＝信号の値（０番目の要素）
Ｒｏｗ［０］［２］  ＝信号の値（１番目の要素）
：
Ｒｏｗ［０］［ｙ］  ＝信号の値（ｙ−１番目の要素）
［チェック項目かカバレッジ項目か］
Ｃｈｅｃｋ［０］［０］  ＝  Ｃｏｌ［０］［１］とＲｏｗ［０］［１］の組み合わせがチェック項目かカバレッジ項目か
Ｃｈｅｃｋ［０］［１］  ＝  Ｃｏｌ［０］［１］とＲｏｗ［０］［２］の組み合わせがチェック項目かカバレッジ項目か
：
Ｃｈｅｃｋ［ｘ］［ｙ］  ＝  Ｃｏｌ［０］［ｘ］とＲｏｗ［０］［ｙ］の組み合わせがチェック項目かカバレッジ項目か
ところで、状態組み合わせ表１４１ｂの取り込みに当たり、表取り込み部１７ｂは、制御ファイル読み込み部１７ａが読み込んだ状態レベル項目表制御ファイル１５ｂ１から状態組み合わせ表１４１ｂのデータシートＤ２内での位置情報を取得する。また、表取り込み部１７ｂは、状態レベル項目表制御ファイル１５ｂ１から「現在の状態」はｓｔａｔｅ＿ｃｓ、「次の状態」はｓｔａｔｅ＿ｎｓと関連付けされていることを取得する。また、表取り込み部１７ｂは、チェック項目かカバレッジ項目かの判断（Ｃｈｅｃｋ［ｘ］［ｙ］の値）について、この例では、チェック表１７３ｂ内のカバレッジ項目を０、チェック項目を１に設定する。
【０１４５】
次に、状態維持期間表１４３ｂの取り込みを説明する。
図３３は、状態維持期間表の取り込み例を示す図である。
表取り込み部１７ｂは、状態維持期間表１４３ｂの取り込みに際し、状態維持期間表１４３ｂの列の要素を取り込む列要素表１７４ｂ、行の要素を取り込む行要素表１７５ｂ、およびその組み合わせが、チェック項目かカバレッジ項目かを取り込むチェック表１７６ｂを用意する。
【０１４６】
状態維持期間表１４３ｂの取り込みに当たり、表取り込み部１７ｂは、制御ファイル読み込み部１７ａが読み込んだ状態レベル項目表制御ファイル１５ｂ２から、状態維持期間表１４３ｂのデータシートＤ３での位置情報を取得する。また、表取り込み部１７ｂは、状態レベル項目表制御ファイル１５ｂ２から「ＷＡＩＴ状態維持期間」はｓｔａｔｅ＿ｃｎｔと関連付けされていることを取得する。また、この例では列側に要素がないため、列要素表１７４ｂのＣｏｌ［０］［０］の要素は空にする等で要素のないことを明示する。
【０１４７】
チェッカ・カバレッジ生成部１７ｃは、表取り込み部１７ｂが取り込んだ情報を用いてチェッカ・カバレッジを生成し、生成したチェッカ・カバレッジを、チェック・カウント条件ファイル１６０の末尾に追記して機能検証ファイル１８０を生成する。以下、チェッカ・カバレッジの生成方法を説明する。
【０１４８】
図３２に示す列要素表１７１ｂ、行要素表１７２ｂ、およびチェック表１７３ｂを例にした場合、チェッカ・カバレッジ生成部１７ｃは、列要素表１７１ｂ、および行要素表１７２ｂから参照する信号および値を取得する。また、チェッカ・カバレッジ生成部１７ｃは、チェック表１７３ｂからチェッカなのかカバレッジなのかを判別する。（０＿０）を例にすると、
チェッカ・カバレッジ条件：現在の状態＝＝ＩＤＬＥ（Ｒｏｗ［０］［０］＝＝Ｒｏｗ［０］［１］＝＝ＩＤＬＥ）、かつ、次の状態＝＝ＩＤＬＥ（Ｃｏｌ［０］［０］＝＝Ｃｏｌ［０］［１］＝＝ＩＤＬＥ）
チェッカかカバレッジか：カバレッジ（Ｃｈｅｃｋ［０］［０］＝＝０）
となる。
【０１４９】
次に、チェッカ・カバレッジ生成部１７ｃが、信号組み合わせ表１４１ａ、および信号レベル項目表制御ファイル１５ａを用いて信号レベルの機能検証ファイルを生成する場合を説明する。
【０１５０】
図３４は、信号レベルの機能検証ファイルの生成を説明する図である。
信号レベル項目表制御ファイル１５ａでは、「今のＲＥＱ値」をｐｒｅ＿ＲＥＱ、「次のＲＥＱ値」をＲＥＱと関連付けし、チェッカ・カバレッジは毎サイクル取得する必要があるため、「ｔｒｉｇｇｅｒ」は１を定義している。チェッカ・カバレッジ生成部１７ｃは、上で示した方法でチェッカ・カバレッジを生成し、信号レベルチェッカ・カバレッジ１７１ｃを生成する。
【０１５１】
次に、状態組み合わせ表１４１ｂ、および状態レベル項目表制御ファイル１５ｂ１を用いて状態レベルの機能検証ファイルの生成を説明する。
図３５は、状態レベルの機能検証ファイルの生成を説明する図である。
【０１５２】
状態レベル項目表制御ファイル１５ｂ１では、「現在の状態」をｓｔａｔｅ＿ｃｓ、「次の状態」をｓｔａｔｅ＿ｎｓと定義しているので、その信号を利用する。また、チェック・カバレッジは毎サイクル取得する必要があるため、「ｔｒｉｇｇｅｒ」は１を定義している。チェッカ・カバレッジ生成部１７ｃは、状態レベルチェッカ・カバレッジ１７２ｃを生成する。
【０１５３】
次に、状態維持期間表１４３ｂ、および状態レベル項目表制御ファイル１５ｂ２を用いて状態維持期間の機能検証ファイルの生成を説明する。
図３６は、状態維持期間の機能検証ファイルの生成を説明する図である。
【０１５４】
状態レベル項目表制御ファイル１５ｂ２では、「ＷＡＩＴ状態維持期間」をｓｔａｔｅ＿ｃｎｔと定義しているので、その信号を利用する。また、ＷＡＩＴ状態維持期間は、クロックの前後で状態がＷＡＩＴからＷＡＩＴ以外に変わるときにチェック・取得する必要があるため、「ｔｒｉｇｇｅｒ」は（ｓｔａｔｅ＿ｃｓ＝＝’ＷＡＩＴ）＆＆（ｓｔａｔｅ＿ｎｓ！＝’ＷＡＩＴ）を定義している。チェッカ・カバレッジ生成部１７ｃは、状態維持期間チェッカ・カバレッジ１７３ｃを生成する。
【０１５５】
次に、トランザクション組み合わせ表１４１ｃ、およびトランザクションレベル項目表制御ファイル１５ｃを用いてトランザクションレベルの機能検証ファイルの生成を説明する。
【０１５６】
図３７は、トランザクションレベルの機能検証ファイルの生成を説明する図である。
チェッカ・カバレッジ生成部１７ｃは、トランザクション組み合わせ表１４１ｃ、およびトランザクションレベル項目表制御ファイル１５ｃを用いてトランザクションレベルチェッカ・カバレッジ１７４ｃを生成する。なお、トランザクションレベルチェッカ・カバレッジ１７４ｃの生成方法は、信号レベルチェッカ・カバレッジ１７１ｃおよび状態レベルチェッカ・カバレッジ１７２ｃを生成する方法と同様の方法を用いる。
【０１５７】
図３８は、機能検証ファイルを説明する図である。
機能検証ファイル１８０は、シミュレータにチェック／カウント条件を生成させる部分と、カバレッジをカウントさせる部分と、動作をチェックさせる部分の３つの部分を含んでいる。
【０１５８】
チェック／カウント条件を生成する部分は、シミュレータにＤＵＶ（Design Under Verification）の各種信号情報を監視させ、チェック／カウント情報を生成させてカバレッジをカウントさせる部分と、動作をチェックさせる部分に伝達させる。カバレッジカウント部分と、動作チェック部分は、受け取ったチェック／カウント情報に基づきカバレッジのカウントおよび動作チェックをシミュレータに実施させる。
【０１５９】
以上述べたように、情報処理装置１０によれば、従来の作業プロセスに変更を加え、決まった形式の制御ファイルを作成するプロセスを経由することにより、設計者のスキルに依存しない、一定の品質を備えたカバレッジ表とチェックリストを兼ねた機能検証表１４０を作成することができる。これにより、検証対象の品質を一定に保つことができる。
【０１６０】
また、機能検証表１４０は、三段階のレベル（信号レベル、状態レベル、トランザクションレベル）に分割して定義されている。これにより、一定の品質を保つことができる。
また、機能検証表１４０によれば、カバレッジ表とチェックリスト間の依存関係を把握することができる。よって、チェック漏れの有無の判断が容易になる。
【０１６１】
また、制御ファイル１１ａを作成することにより、設計者のスキルに依存しない、一定の品質を備えたカバレッジモニタとチェッカを開発することができる。また、制御ファイル１１ａから機能検証表１４０、および機能検証ファイル１８０を生成するため、制御ファイル１１ａを修正するだけでカバレッジ項目と検証項目それぞれの整合性をとることができる。そのため、整合性を調整する手間を省くことができる。
【０１６２】
また、機能検証表１４０を作成することにより、カバレッジモニタとチェッカ間の依存関係を考慮し、少ないソースコード量でカバレッジのカウントおよび動作チェックが可能な機能検証ファイル１８０を開発することができる。これにより、カバレッジモニタとチェッカを重複して開発することを防ぐことができる。また、ソースコードの品質も一定に保つことができるため、開発効率を改善できる。
【０１６３】
また、機能検証ファイル１８０を、制御ファイル１１ａから直接生成するのではなく、機能検証表１４０から生成するようにした。これにより、例えば設計者は、機能検証表１４０にマニュアルでコメントを挿入し、コメントが挿入された機能検証表１４０を用いて機能検証ファイル生成部１７に機能検証ファイル１８０を作成させることができる。
【０１６４】
また、チェッカおよびカバレッジモニタ開発に必要な言語（例えば、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＳｙｓｔｅｍＶｅｒｉｌｏｇ、ＰＳＬ、ＳＶＡ（System Verilog Assertion）等）を知らない設計者でも、本発明を適用することでチェッカ・カバレッジモニタの開発が可能となる。
【０１６５】
なお、情報処理装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、機能検証表１４０、モデル生成用制御ファイル１５０およびチェック・カウント条件ファイル１６０を生成しておき、他の装置が、機能検証表１４０、モデル生成用制御ファイル１５０およびチェック・カウント条件ファイル１６０を用いて機能検証ファイル１８０を作成するようにしてもよい。
【０１６６】
以上、本発明の情報処理装置、情報処理方法およびプログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１６７】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１、１０が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１６８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１７０】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【０１７１】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、前記検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目と前記イベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する生成部と、
前記生成部が生成した前記項目表を記憶する記憶部と、
を有することを特徴とする情報処理装置。
【０１７２】
（付記２）  前記制御ファイルには、前記信号の信号名、前記信号の値に応じて前記検証対象回路が取り得る状態、およびトランザクション毎に回路動作を定義する情報と回路動作の制約条件とが記述されており、
前記生成部は、前記信号の値、前記信号の値に応じて前記検証対象回路が取り得る状態、およびトランザクションそれぞれの項目表を作成することを特徴とする付記１記載の情報処理装置。
【０１７３】
（付記３）  前記制御ファイルには、前記信号の値に応じて前記検証対象回路が取り得る状態が記述されており、前記状態を用いて状態遷移図を生成する図生成部をさらに有し、
前記生成部は、前記項目表を生成する際、前記図生成部が生成した前記状態遷移図を用いて前記イベントの発生違反を検証する項目を決定することを特徴とする付記１記載の情報処理装置。
【０１７４】
（付記４）  前記生成部は、前記制御ファイルに記述されている前記動作信号の信号名毎に、１サイクル前の値と現在の値との組み合わせを示す組み合わせ表を生成し、前記制御ファイルに記述されている前記動作信号の制約条件に応じて前記組み合わせ表に記載する前記イベントの発生違反を検証する項目を決定することを特徴とする付記１記載の情報処理装置。
【０１７５】
（付記５）  前記生成部は、前記制御ファイルに記述されている前記信号の値に応じて前記検証対象回路が取り得る状態毎に、状態の組み合わせを示す組み合わせ表と、状態毎の維持期間を示す表とを生成し、前記制御ファイルに記述されている前記信号の値に応じて前記検証対象回路が取り得る状態の制約条件に応じて前記組み合わせ表および状態毎の維持期間を示す表に記載する前記イベントの発生違反を検証する項目を決定することを特徴とする付記１記載の情報処理装置。
【０１７６】
（付記６）  前記生成部は、前記制御ファイルに記述されているトランザクション毎に、トランザクションの組み合わせを示す組み合わせ表と、トランザクション毎の維持期間を示す表とを生成し、前記制御ファイルに記述されているトランザクションの制約条件に応じて前記組み合わせ表およびトランザクション毎の維持期間を示す表に記載する前記イベントの発生違反を検証する項目を決定することを特徴とする付記１記載の情報処理装置。
【０１７７】
（付記７）  前記制御ファイルには、前記信号の値に応じて前記検証対象回路が取り得る状態が記述されており、
前記状態を用いて状態遷移図を生成する図生成部と、
前記状態遷移図に記載されている状態と遷移条件に基づき前記イベントの発生回数のカウントおよび前記イベントの発生違反を前記検証対象回路の動作シミュレーションで実行可能な実行ファイルを生成するファイル生成部とを有することを特徴とする付記１記載の情報処理装置。
【０１７８】
（付記８）  前記ファイル生成部は、前記制御ファイルを用いてトランザクションが正しく定義されているか否かを判定するトランザクション判定情報を生成することを特徴とする付記７記載の情報処理装置。
【０１７９】
（付記９）  前記ファイル生成部は、前記制御ファイルに記述されているトランザクションの状態遷移に従い、前記トランザクション判定情報を生成することを特徴とする付記８記載の情報処理装置。
【０１８０】
（付記１０）  前記項目表の各項目と前記実行ファイルの信号とを関連づける関連づけ情報を生成し、前記項目表と前記関連づけ情報とを用いて前記検証対象回路の動作シミュレーション中に、イベントの発生の検証と前記イベントの発生違反の検証とを実行させる情報を前記実行ファイルに追加する追加部をさらに有することを特徴とする付記７記載の情報処理装置。
【０１８１】
（付記１１）  コンピュータが、
検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、前記検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目と前記イベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する、
ことを特徴とする情報処理方法。
【０１８２】
（付記１２）  コンピュータに、
検証対象回路を流れる信号に基づき生成される回路動作を定義する情報と回路動作の制約条件とが記述された制御ファイルを用いて、前記検証対象回路の動作シミュレーション中に発生するイベントの発生を検証する項目と前記イベントの発生違反を検証する項目とが関連づけられて記憶される項目表を生成する、
処理を実行させることを特徴とするプログラム。
【符号の説明】
【０１８３】
１、１０  情報処理装置
１１  制御ファイル記憶部
１１ａ  制御ファイル
１２  機能検証表生成部
１２ａ  信号レベル項目表生成部
１２ｂ  状態レベル項目表生成部
１２ｃ  トランザクションレベル項目表生成部
１３  条件ファイル生成部
１３ａ  情報解析部
１３１  状態取得部
１３２  遷移パターン取得部
１３３  遷移条件取得部
１３４  状態維持期間取得部
１３５  ＦＳＭ用データベース
１３ｂ  モニタ基幹生成部
１４  機能検証表記憶部
１４０  機能検証表
１４ａ  信号レベル項目表
１４１ａ、１４２ａ  信号組み合わせ表
１４ｂ  状態レベル項目表
１４１ｂ  状態組み合わせ表
１４２ｂ、１４３ｂ、１４４ｂ  状態維持期間表
１４ｃ  トランザクションレベル項目表
１４１ｃ  トランザクション組み合わせ表
１４２ｃ、１４３ｃ  トランザクション連続発生回数表
１５  モデル生成用制御ファイル記憶部
１５０  モデル生成用制御ファイル
１５ａ  信号レベル項目表制御ファイル
１５ｂ  状態レベル項目表制御ファイル
１５ｃ  トランザクションレベル項目表制御ファイル
１６  条件ファイル記憶部
１６０  チェック・カウント条件ファイル
１７  機能検証ファイル生成部
１７ａ  制御ファイル読み込み部
１７ｂ  表取り込み部
１７１ｂ、１７４ｂ  列要素表
１７２ｂ、１７５ｂ  行要素表
１７３ｂ、１７６ｂ  チェック表
１７ｃ  チェッカ・カバレッジ生成部
１７１ｃ  信号レベルチェッカ・カバレッジ
１７２ｃ  状態レベルチェッカ・カバレッジ
１７３ｃ  状態維持期間チェッカ・カバレッジ
１７４ｃ  トランザクションレベルチェッカ・カバレッジ
１８  機能検証ファイル記憶部
１８０  機能検証ファイル
Ｄ１〜Ｄ３  データシート
【図１】
2013206033.tif 000003
【図２】
2013206033.tif 000004
【図３】
2013206033.tif 000005
【図４】
2013206033.tif 000006
【図５】
2013206033.tif 000007
【図６】
2013206033.tif 000008
【図７】
2013206033.tif 000009
【図８】
2013206033.tif 000010
【図９】
2013206033.tif 000011
【図１０】
2013206033.tif 000012
【図１１】
2013206033.tif 000013
【図１２】
2013206033.tif 000014
【図１３】
2013206033.tif 000015
【図１４】
2013206033.tif 000016
【図１５】
2013206033.tif 000017
【図１６】
2013206033.tif 000018
【図１７】
2013206033.tif 000019
【図１８】
2013206033.tif 000020
【図１９】
2013206033.tif 000021
【図２０】
2013206033.tif 000022
【図２１】
2013206033.tif 000023
【図２２】
2013206033.tif 000024
【図２３】
2013206033.tif 000025
【図２４】
2013206033.tif 000026
【図２５】
2013206033.tif 000027
【図２６】
2013206033.tif 000028
【図２７】
2013206033.tif 000029
【図２８】
2013206033.tif 000030
【図２９】
2013206033.tif 000031
【図３０】
2013206033.tif 000032
【図３１】
2013206033.tif 000033
【図３２】
2013206033.tif 000034
【図３３】
2013206033.tif 000035
【図３４】
2013206033.tif 000036
【図３５】
2013206033.tif 000037
【図３６】
2013206033.tif 000038
【図３７】
2013206033.tif 000039
【図３８】
2013206033.tif 000040