(57)【要約】【課題】論理意図を類推不能でかつ、不具合を再現可能なＨＤＬデータを自動的に生成する。【解決手段】ＨＤＬファイル一覧のうち、論理を特定するための名称を類推不能に変更するとともに、コメントを削除する。そして、変更後におけるＨＤＬファイル一覧から、不具合の再現に最低限必要となるモジュールを特定する。つぎに、特定されたモジュール内の論理のうち、不具合の再現に必要のない論理を削除し、不具合を再現可能なＨＤＬデータを自動的に生成する。【選択図】図１
2008117136.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語によって記述された設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成させる分割データ生成工程と、
前記分割データ生成工程によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定させる特定工程と、
前記特定工程によって特定された分割データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項２】
前記特定工程によって特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成させる回路データ生成工程と、
前記回路データ生成工程によって生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定させる決定工程と、を前記コンピュータに実行させ、
前記出力工程は、
前記決定工程によって前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力させることを特徴とする請求項１に記載の検証支援プログラム。
【請求項３】
前記特定工程によって特定された複数の分割データを、当該分割データ同士で結合させることによって、結合データを生成させる結合データ生成工程を前記コンピュータに実行させ、
前記回路データ生成工程は、
前記結合データ生成工程によって生成された結合データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成させることを特徴とする請求項１または２に記載の検証支援プログラム。
【請求項４】
ハードウェア記述言語によって記述された設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択させる選択工程と、
前記最上位のモジュールと、前記他のモジュールのうち前記選択工程によって選択されたモジュール（以下、「選択モジュール」という）を除く残余のモジュールと、前記選択モジュール内の入出力信号に関する記述からなる記述データと、からなる合成データを生成させる合成データ生成工程と、
前記合成データ生成工程によって生成された合成データを設計ツールに与えた結果、前記選択モジュールを不具合が発生するモジュールに決定させるモジュール決定工程と、
前記モジュール決定工程によって前記選択モジュールが前記不具合が発生するモジュールに決定された場合、前記合成データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項５】
前記合成データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成させる回路データ生成工程と、
前記回路データ生成工程によって生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定させる論理ブロック決定工程と、を前記コンピュータに実行させ、
前記出力工程は、
前記論理ブロック決定工程によって前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力させることを特徴とする請求項４に記載の検証支援プログラム。
【請求項６】
請求項１〜５のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項７】
ハードウェア記述言語によって記述された設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成する分割データ生成手段と、
前記分割データ生成手段によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定する特定手段と、
前記特定手段によって特定された分割データを出力する出力手段と、
を備えることを特徴とする検証支援装置。
【請求項８】
ハードウェア記述言語によって記述された設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成する分割データ生成工程と、
前記分割データ生成工程によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定する特定工程と、
前記特定工程によって特定された分割データを出力する出力工程と、
を含むことを特徴とする検証支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、設計ツールの実行時における不具合を特定する検証支援プログラム、記録媒体、検証支援装置および検証支援方法に関する。
【背景技術】
【０００２】
近年、ＬＳＩの大規模化、高機能化および高速化にともない、ＬＳＩ設計では、ＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールを利用したトップダウン設計がおこなわれている。ＥＤＡツールとは、ＬＳＩの設計を支援するソフトウェアの総称であり、たとえば、記述スタイルチェック、論理検証ツール、等価検証ツール、回路シミュレータ、論理合成ツールおよびレイアウトツールなどがある。
【０００３】
ＥＤＡツールを実行するときには、インターナルエラー、セグメンテーションフォルトおよびメモリオーバーフローなどによる異常終了や、処理結果が誤っているなどの障害による不具合の発生によって所望の実行結果を得られない場合がある。このような場合、ツール作成者（たとえば、ＥＤＡベンダ）に対して、不具合が発生するＥＤＡツールの修正を依頼する必要がある。
【０００４】
通常、ＥＤＡツールの修正には、不具合を再現することができる再現データ（ＨＤＬを含む再現環境）が必要となる。しかしながら、ツール実行に使用されるＨＤＬが実データである場合には、機密保持の関係上そのままのＨＤＬをＥＤＡベンダなどに送付することができない。
【０００５】
このため、実データのうち、不具合を再現することができる記述部分を抽出し、論理回路の意図が判別できないようにＨＤＬを改変する必要がある。ＨＤＬの改変作業は、実データ内の細部の論理関係を明らかにしながら設計者の手作業によっておこなわれている。
【０００６】
また、実データを、アルゴリズム記述およびＲＴレベル記述の中間レベルの言語に変換することにより、実データの記述内容を抽象化する技術が提供されている（たとえば、下記特許文献１参照。）。設計者は、記述内容が抽象化された実データを再現データとしてＥＤＡベンダに、ＥＤＡツールの修正を依頼する。
【０００７】
【特許文献１】特開２００１−１０９７８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術では、設計者の手作業による試行錯誤を繰り返すことによって、不具合を再現可能な再現データへの改変作業がおこなわれていた。このため、改変作業に多大な作業時間を費やすこととなり、設計期間の長期化および作業労力の増大につながるという問題があった。
【０００９】
また、実データを、アルゴリズム記述とＲＴレベル記述の中間レベルの言語に変換することによって記述内容を抽象化した場合であっても、実データ内の論理構造がそのままの状態で維持されているため、第三者に論理意図を類推される可能性があるという問題があった。
【００１０】
この発明は、上述した従来技術による問題点を解消するため、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業にかかる作業時間の短縮および作業労力の軽減を図ることにより、設計期間の短縮化を実現することができる検証支援プログラム、記録媒体、検証支援装置および検証支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、この発明にかかる検証支援プログラム、記録媒体、検証支援装置および検証支援方法は、ハードウェア記述言語によって記述された設計データの入力を受け付け、入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成し、生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定し、特定された分割データを出力することを特徴とする。
【００１２】
この発明によれば、設計データを設計ツールに与えた際に発生する不具合の再現に最低限必要となるモジュールを自動的に特定することができる。
【００１３】
また、上記発明において、特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成し、生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定し、前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力することとしてもよい。
【００１４】
この発明によれば、設計データを設計ツールに与えた際に発生する不具合の再現に最低限必要となる論理ブロックを自動的に特定することができる。
【００１５】
また、上記発明において、特定された複数の分割データを、当該分割データ同士で結合させることによって、結合データを生成し、生成された結合データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成することとしてもよい。
【００１６】
この発明によれば、不具合の再現に最低限必要となる論理ブロックを特定する際の処理を簡略化することができる。
【００１７】
また、上記発明において、入力された設計データ内の論理を特定するための名称を、類推不能な名称に変更し、名称が変更された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成することとしてもよい。
【００１８】
この発明によれば、設計データ内に表現されている論理意図を類推困難にすることができる。
【００１９】
また、上記発明において、入力された設計データ内のコメントを削除し、コメントが削除された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成することとしてもよい。
【００２０】
この発明によれば、設計データ内に表現されている論理意図を類推困難にすることができる。
【００２１】
また、この発明にかかる、検証支援プログラム、記録媒体、検証支援装置および検証支援方法は、ハードウェア記述言語によって記述された設計データの入力を受け付け、入力された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択し、前記最上位のモジュールと、前記他のモジュールのうち選択されたモジュール（以下、「選択モジュール」という）を除く残余のモジュールと、前記選択モジュール内の入出力信号に関する記述からなる記述データと、からなる合成データを生成し、生成された合成データを設計ツールに与えた結果、前記選択モジュールを不具合が発生するモジュールに決定し、前記選択モジュールが前記不具合が発生するモジュールに決定された場合、前記合成データを出力することを特徴とする。
【００２２】
この発明によれば、設計データを設計ツールに与えた際に発生する不具合の再現に最低限必要となるモジュールを自動的に特定することができる。
【００２３】
また、上記発明において、前記合成データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成し、生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定し、前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力することとしてもよい。
【００２４】
この発明によれば、設計データを設計ツールに与えた際に発生する不具合の再現に最低限必要となる論理ブロックを自動的に特定することができる。
【００２５】
また、上記発明において、入力された設計データ内の論理を特定するための名称を、類推不能な名称に変更し、名称が変更された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択することとしてもよい。
【００２６】
この発明によれば、設計データ内に表現されている論理意図を類推困難にすることができる。
【００２７】
また、上記発明において、入力された設計データ内のコメントを削除し、コメントが削除された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択することとしてもよい。
【００２８】
この発明によれば、設計データ内に表現されている論理意図を類推困難にすることができる。
【発明の効果】
【００２９】
本発明にかかる検証支援プログラム、記録媒体、検証支援装置および検証支援方法によれば、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業にかかる作業時間の短縮および作業労力の軽減を図ることにより、設計期間の短縮化を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３０】
以下に添付図面を参照して、この発明にかかる検証支援プログラム、記録媒体、検証支援装置および検証支援方法の好適な実施の形態を詳細に説明する。
【００３１】
（実施の形態１）
（検証支援システムの概要）
まず、この発明の実施の形態１にかかる検証支援システムの概要について説明する。図１は、この発明の実施の形態１にかかる検証支援システムの概要を示す説明図である。図１に示す検証支援システムにおいて、まず、ＨＤＬファイル一覧を後述する検証支援装置に入力する。
【００３２】
ＨＤＬファイルとは、ＨＤＬ（ＶＨＤＬ、Ｖｅｒｉｌｏｇなど）により記述されたデータである。具体的には、ＨＤＬファイルは、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）やネットリストなどの論理回路データである。
【００３３】
ＬＳＩ設計においては、ＥＤＡツールを利用したトップダウン設計をおこなうことによって設計作業の効率化が図られている。具体的には、各種ＨＤＬファイルに対してＥＤＡツールを実行することにより、ＬＳＩ設計の各工程における設計作業を自動的におこなっている。ここで、ＥＤＡツール（以下「ツール」という）とは、ＬＳＩ設計を支援するソフトウェアの総称であり、論理検証ツール、等価検証ツール、回路シミュレータおよび論理合成ツールなどの設計ツールのことである。
【００３４】
ＬＳＩ設計において利用されるツールは、ＥＤＡベンダなどの第三者から購入したものであることが多い。このため、ＨＤＬファイルに対してツールを実行したときに、何らかの原因によって不具合が発生した場合には、ＥＤＡベンダにツールの修正依頼をおこなう必要がある。
【００３５】
通常、ツールの修正には、不具合を再現することができる再現データが必要となる。しかしながら、ツール実行に使用されるＨＤＬが実データの場合には、機密保持の関係上そのままのＨＤＬをＥＤＡベンダに送付することができない。そこで、不具合を再現するために最低限必要なデータに改変し、そのデータを再現データとしてＥＤＡベンダに送付する。
【００３６】
まず、ＨＤＬファイル一覧のうち、モジュール名、インスタンス名およびレジスタ名などの名称を一律（たとえば、固定名＿追番）に変更するとともに、コメントを削除する。なぜなら、名前やコメントなどからＨＤＬファイルに記述された論理回路の機能を、ＥＤＡベンダなどの第三者に類推されることを防ぐためである。
【００３７】
そして、記述内容が変更されたＨＤＬファイル一覧から、不具合の原因となるモジュールを特定する。具体的には、ＨＤＬファイル一覧から、不具合の再現に最低限必要となるモジュールを特定する。つぎに、特定されたモジュールに記述されている論理のうち、不具合の再現に必要のない論理を削除することにより、第三者によって論理意図を判別することができないようなデータに自動的に改変する。
【００３８】
このように、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業を自動的におこなうことにより、改変作業にかかる作業時間の短縮および作業労力の軽減を図ることができる
【００３９】
（検証支援装置のハードウェア構成）
つぎに、検証支援装置のハードウェア構成について説明する。図２は、この発明の実施の形態１にかかる検証支援装置のハードウェア構成を示すブロック図である。図２において、検証支援装置は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３とを備えている。また、各構成部は、バス２００によってそれぞれ接続されている。
【００４０】
ここで、ＣＰＵ２０１は、検証支援装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記録している。ＲＡＭ２０３は、ＣＰＵ２０１のワークウェアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００４１】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータを検証支援装置に読み取らせたりする。
【００４２】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８には、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４３】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４４】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウインドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４５】
スキャナ２１２は、画像を光学的に読み取り、装置内に画像データを読み込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタなどを採用することができる。
【００４６】
（検証支援装置の機能的構成）
つぎに、この発明の実施の形態１にかかる検証支援装置の機能的構成について説明する。図３は、この発明の実施の形態１にかかる検証支援装置の機能的構成を示すブロック図である。図３において、検証支援装置は、入力部３０１と、分割データ生成部３０２と、特定部３０３と、出力部３０４と、回路データ生成部３０５と、決定部３０６と、結合データ生成部３０７と、変更部３０８と、削除部３０９と、から構成されている。
【００４７】
入力部３０１は、ハードウェア記述言語によって記述された設計データの入力を受け付ける。設計データは、ＨＤＬ（ＶＨＤＬ、Ｖｅｒｉｌｏｇなど）によって記述された設計対象回路に関する論理回路データである。具体的には、設計データとして、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）やネットリストなどがある。
【００４８】
分割データ生成部３０２は、入力部３０１によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成する。具体的には、分割データ生成部３０２は、設計データをモジュールごとに分割した結果、一つのモジュールに対して一つの分割ファイルを生成する。すなわち、分割データ生成部３０２によって、設計データを構成するモジュール数と同数の分割データが生成される。
【００４９】
より具体的には、分割データ生成部３０２は、入力された設計データにおけるタブ、スペースおよび改行などを検出することによってモジュール間の境界を判断し、各モジュールに対応する分割データを生成するようにしてもよい。また、ユーザの指定入力により、設計データにおける各モジュール領域を判断し、各モジュールに対応する分割データを生成するようにしてもよい。
【００５０】
ここで、モジュールとは、設計データを構成する基本構造であり、一つの処理を表現した記述である。具体的には、たとえば、Ｖｅｒｉｌｏｇにおいては、モジュールは、予約語の「ｍｏｄｕｌｅ」と「ｅｎｄｍｏｄｕｌｅ」で囲まれ、回路表現からシミュレーション用の入力まで、すべてがこの中に記述されている。
【００５１】
より具体的には、一つのモジュール内には、モジュール名、コメント、入出力信号に関する定義および論理を特定する定義などが記述されている。なお、設計データが一つのモジュールによって構成されている場合には、入力された設計データをそのまま分割データとしてもよい。
【００５２】
特定部３０３は、分割データ生成部３０２によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定する。具体的には、各分割データごとに必要な引数を与えて設計ツールを実行し、不具合が発生したか否かの結果に応じて、不具合が発生する分割データを特定する。ここで、設計ツールとは、ＬＳＩのトップダウン設計において利用される各種ツールであり、論理検証ツール、等価検証ツール、回路シミュレータおよび論理合成ツールなどである。
【００５３】
なお、設計ツールを実行する際の引数は、予め検証支援装置のＨＤ２０５やＦＤ２０７などの記録媒体に記録されおり、ツール実行時に自動的に読み出すようにしてもよい。あるいは、ツール実行時において、ユーザの操作入力により各分割データに必要な引数を与えるようにしてもよい。
【００５４】
また、ツール実行時における不具合発生の判定は、実行結果を示すステータスコードから判定する。たとえば、予め設定されているステータスコードが出力された場合に、不具合が発生したと判定する。
【００５５】
出力部３０４は、特定部３０３によって特定された分割データを出力する。具体的には、たとえば、出力部３０４は、特定部３０３によって特定された分割データを外部装置に出力するようにしてもよいし、ＨＤ２０５やＦＤ２０７などの記録媒体に書き込むようにしてもよい。
【００５６】
回路データ生成部３０５は、特定部３０３によって特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成する。論理ブロックとは、分割データ内の内部信号および外部出力信号の接続によって表現される論理データである。すなわち、分割データ内に定義されている複数の論理を、各論理ごとの記述で表現したものである。
【００５７】
具体的には、回路データ生成部３０５は、分割データ内の論理ブロックの組み合わせとして取り得るパターンすべてについての回路データを生成するようにしてもよい。この場合、分割データ内の論理ブロックの組み合わせとして取り得るパターンの数と同数の回路データが生成される。
【００５８】
また、特定部３０３によって特定された分割データが複数ある場合には、回路データ生成部３０５は、各分割データから任意の論理ブロックを選択し、選択された論理ブロックからなる回路データを生成するようにしてもよい。なお、回路データの生成は、分割データから一部の論理ブロックを削除することによって生成するようにしてもよい。
【００５９】
さらに、分割データ内の論理ブロックと入出力信号との接続を表現した後述する論理ブロックＤＢをディスプレイ２０８に表示し、論理ブロックに関するユーザからの指定入力を受け付けるようにしてもよい。この場合、ユーザからの指定入力に従って、分割データ内の論理ブロックを削除し、残余の論理ブロックからなる回路データを生成するようにしてもよい。
【００６０】
決定部３０６は、回路データ生成部３０５によって生成された回路データを設計ツールに与えた結果、欠落した論理ブロックを不具合が発生しない論理ブロックに決定する。具体的には、決定部３０６は、回路データを設計ツールに与えた結果、不具合が再現された場合には、欠落した論理ブロックが不具合の再現に不要なものであると判断し、不具合が発生しない論理ブロックに決定する。
【００６１】
また、決定部３０６は、回路データを設計ツールに与えた結果、不具合が再現されなかった場合には、欠落した論理ブロックが不具合の再現に必要なものであると判断し、不具合が発生しない論理ブロックに決定しない。
【００６２】
出力部３０４は、決定部３０６によって欠落した論理ブロックが不具合が発生しない論理ブロックに決定された場合、回路データを出力する。すなわち、欠落した論理ブロックが不具合が発生しない論理ブロックであるため、不具合の再現に不要となる論理ブロックが削除された回路データを出力する。
【００６３】
出力部３０４から出力される回路データは、不具合の再現に最低限必要となるモジュールに関するデータであるとともに、不具合の再現に不要となる論理ブロックが削除されたデータである。
【００６４】
結合データ生成部３０７は、特定部３０３によって特定された複数の分割データを、当該分割データ同士で結合させることによって、結合データを生成する。具体的には、特定部３０３によって特定された分割データが複数存在する場合、すべての分割データを結合させることにより、一つのモジュールに関する結合データを生成する。
【００６５】
より具体的には、各分割データ内のモジュール名、入出力信号名および論理などを結合させることによって結合データを生成する。このとき、モジュール名および入出力信号名などが重複しないようにそれぞれ変更する。
【００６６】
また、回路データ生成部３０５は、結合データ生成部３０７によって生成された結合データ内の入出力信号によって接続される複数のブロックのうち、一部の論理ブロックが欠落した回路データを生成するようにしてもよい。
【００６７】
変更部３０８は、入力部３０１によって入力された設計データ内の論理を特定するための名称を、類推不能な名称に変更する。具体的には、変更部３０８は、入力された設計データから、モジュール名、インスタンス名およびレジスタ名などの名称を検出し、それらの名称を一律に変更する。なお、変更される名称は、予め設定されている名称（たとえば、「固定名＿追番」）に従って一律に変更するようにしてもよいし、ユーザが任意に設定するようにしてもよい。
【００６８】
変更部３０８によって論理を特定するための名称が変更された場合、分割データ生成部３０２は、変更部３０８によって名称が変更された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成するようにしてもよい。
【００６９】
削除部３０９は、入力部３０１によって入力された設計データ内のコメントを削除する。具体的には、変更部３０８は、入力された設計データからコメント部分を検出し、その部分を削除する。より具体的には、たとえば、削除部３０９は、Ｖｅｒｉｌｏｇにおいては設計データ内の／／を検出した場合には、／／から行末まで、及び／＊と＊／で囲まれた部分をコメントとして判断し、その部分を削除する。
【００７０】
削除部３０９によってコメントが削除された場合、分割データ生成部３０２は、削除部３０９によってコメントが削除された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成するようにしてもよい。
【００７１】
なお、入力部３０１、分割データ生成部３０２、特定部３０３、出力部３０４、回路データ生成部３０５、決定部３０６、結合データ生成部３０７、変更部３０８および削除部３０９は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されているプログラムをＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００７２】
（検証支援装置の検証支援処理手順）
つぎに、この発明の実施の形態１にかかる検証支援装置において実行される検証支援処理について説明する。図４は、この発明の実施の形態１にかかる検証支援装置において実行される検証支援処理手順を示すフローチャートである。
【００７３】
図４のフローチャートにおいて、検証支援装置の入力部３０１は、ハードウェア記述言語によって記述された設計データの入力を受け付ける（ステップＳ４０１）。つぎに、分割データ生成部３０２は、入力部３０１によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成する（ステップＳ４０２）。
【００７４】
また、変更部３０８により、入力部３０１によって入力された設計データ内の論理を特定するための名称が、類推不能な名称に変更された場合、分割データ生成部３０２は、変更部３０８によって名称が変更された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成するようにしてもよい。
【００７５】
さらに、削除部３０９により、入力部３０１によって入力された設計データ内のコメントが削除された場合、分割データ生成部３０２は、削除部３０９によってコメントが削除された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成するようにしてもよい。
【００７６】
そして、特定部３０３は、分割データ生成部３０２によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定する（ステップＳ４０３）。このとき、出力部３０４は、特定部３０３によって特定された分割データを出力するようにしてもよい。
【００７７】
つぎに、回路データ生成部３０５は、特定部３０３によって特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成する（ステップＳ４０４）。
【００７８】
また、結合データ生成部３０７により、特定部３０３によって特定された複数の分割データを、当該分割データ同士で結合させることによって、結合データを生成した場合、回路データ生成部３０５は、結合データ生成部３０７によって生成された結合データ内の入出力信号によって接続される複数のブロックのうち、一部の論理ブロックが欠落した回路データを生成するようにしてもよい。
【００７９】
そして、決定部３０６は、回路データ生成部３０５によって生成された回路データを設計ツールに与えた結果、欠落した論理ブロックを不具合が発生しない論理ブロックに決定する（ステップＳ４０５）。
【００８０】
最後に、出力部３０４は、決定部３０６によって欠落した論理ブロックが不具合が発生しない論理ブロックに決定された場合、回路データを出力し（ステップＳ４０６）、本フローチャートによる一連の処理を終了する。
【００８１】
以上、説明したように実施の形態１にかかる検証支援装置によれば、設計データを設計ツールに与えた際に発生する不具合の再現に最低限必要となるモジュールを自動的に特定することができる。さらに、特定されたモジュールのうち、不具合の再現に最低限必要となる論理ブロックを自動的に特定することができる。
【００８２】
また、設計データ内の論理を特定するための名称を変更するとともに、設計データ内のコメントを削除することにより、設計データ内に表現されている論理意図を類推困難にすることができる。
【００８３】
これにより、検証支援装置によれば、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業にかかる作業時間の短縮および作業労力の軽減を図ることにより、設計期間の短縮化を実現することができる。
【００８４】
（実施の形態２）
つぎに、この発明の実施の形態２にかかる検証支援装置について説明する。なお、検証支援装置のハードウェア構成については、実施の形態１と同様のため説明を省略する。また、検証支援装置の機能的構成において、実施の形態１と同一構成については、同一符号を付し、その説明を省略する。
【００８５】
図５は、この発明の実施の形態２にかかる検証支援装置の機能的構成を示すブロック図である。図５において、検証支援装置は、入力部３０１と、選択部５０１と、合成データ生成部５０２と、モジュール決定部５０３と、出力部３０４と、回路データ生成部３０５と、論理ブロック決定部５０４と、変更部３０８と、削除部３０９と、から構成されている。
【００８６】
入力部３０１は、ハードウェア記述言語によって記述された設計データの入力を受け付ける。選択部５０１は、入力部３０１によって入力された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択する。通常、設計データにおいて、複数の機能について、一つのモジュール内にすべてを記述するのではなく、複数の階層に分類されて記述される。
【００８７】
ここでは、複数の機能が階層的に記述された階層モジュールのうち、階層内で最も上位のモジュールを最上位のモジュール（トップモジュール）といい、最上位のモジュールより下位のモジュールを他のモジュールという。
【００８８】
また、任意のモジュールの選択は、他のモジュールのうち、最も上位に記述されているモジュールから順に一つずつ選択するようにしてもよいし、少なくとも一つ以上のモジュールをランダムに選択するようにしてもよい。なお、ユーザの指定入力に従って、他のモジュールの中から任意のモジュールを選択するようにしてもよい。
【００８９】
合成データ生成部５０２は、最上位のモジュールと、他のモジュールのうち選択部５０１によって選択されたモジュール（以下、「選択モジュール」という）を除く残余のモジュールと、選択モジュール内の入出力宣言に関する記述からなる記述データと、からなる合成データを生成する。
【００９０】
選択モジュールを除く残余のモジュールとは、たとえば、他のモジュールがモジュールＡ、モジュールＢおよびモジュールＣによって構成されており、選択モジュールがモジュールＡとする。この場合、残余のモジュールは、他のモジュールのうち、モジュールＡを除く残りのモジュール、すなわち、モジュールＢおよびモジュールＣとなる。
【００９１】
また、記述データとは、選択モジュール内の記述のうち、入出力宣言に関する記述以外の記述を削除したものである。具体的には、記述データとは、選択モジュールのうち、論理記述を削除したポート宣言のみの記述である。この記述データは、予め最上位のモジュール以外のすべてのモジュールについて用意しておいてもよいし、他のモジュールのうち任意のモジュールが選択された際に、その都度、選択モジュールに対応する記述データを生成するようにしてもよい。
【００９２】
合成データとは、設計データにおける最上位のモジュールと、選択モジュールについての記述データと、残余のモジュールによって階層モジュールが形成されたものである。
【００９３】
モジュール決定部５０３は、合成データ生成部５０２によって生成された合成データを設計ツールに与えた結果、選択モジュールを不具合が発生するモジュールに決定する。具体的には、モジュール決定部５０３は、生成された合成データを設計ツールに与えた結果、不具合が再現されなかった場合に、選択モジュールを不具合が発生するモジュールに決定する。
【００９４】
出力部３０４は、モジュール決定部５０３によって選択モジュールが不具合が発生するモジュールに決定された場合、合成データを出力する。このとき、最上位のモジュールと、選択モジュールについての記述データと、残余のモジュールと、によって階層モジュールが形成されている合成データを、階層展開することによって一つのモジュールのデータとして出力するようにしてもよい。
【００９５】
回路データ生成部３０５は、合成データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成する。具体的には、たとえば、回路データ生成部３０５は、合成データ内の複数の論理ブロックから、任意の論理ブロックを抽出することによって回路データを生成する。また、回路データ生成部３０５は、合成データ内の複数の論理ブロックのうち、任意の論理ブロックを削除することによって回路データを生成するようにしてもよい。
【００９６】
論理ブロック決定部５０４は、回路データ生成部３０５によって生成された回路データを設計ツールに与えた結果、欠落した論理ブロックを不具合が発生しない論理ブロックに決定する。上述した決定部３０６（図３参照）と同様のため説明を省略する。
【００９７】
また、出力部３０４は、論理ブロック決定部５０４によって欠落した論理ブロックが不具合が発生しない論理ブロックに決定された場合、回路データを出力するようにしてもよい。
【００９８】
変更部３０８は、入力部３０１によって入力された設計データ内の論理を特定するための名称を、類推不能な名称に変更する。変更部３０８によって論理を特定するための名称が変更された場合、選択部５０１は、変更部３０８によって名称が変更された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択するようにしてもよい。
【００９９】
削除部３０９は、入力部３０１によって入力された設計データ内のコメントを削除する。削除部３０９によってコメントが削除された場合、選択部５０１は、削除部３０９によってコメントが削除された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択するようにしてもよい。
【０１００】
なお、入力部３０１、選択部５０１、合成データ生成部５０２、モジュール決定部５０３、出力部３０４、回路データ生成部３０５、論理ブロック決定部５０４、変更部３０８および削除部３０９は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５などの記録媒体に記録されているプログラムをＣＰＵ２０１に実行させることによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【０１０１】
（検証支援装置の検証支援処理手順）
つぎに、この発明の実施の形態２にかかる検証支援装置において実行される検証支援処理について説明する。図６は、この発明の実施の形態２にかかる検証支援装置において実行される検証支援処理手順を示すフローチャートである。
【０１０２】
図６のフローチャートにおいて、検証支援装置の入力部３０１は、ハードウェア記述言語によって記述された設計データの入力を受け付ける（ステップＳ６０１）。つぎに、選択部５０１は、入力部３０１によって入力された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択する（ステップＳ６０２）。
【０１０３】
また、変更部３０８により、入力部３０１によって入力された設計データ内の論理を特定するための名称が、類推不能な名称に変更された場合、選択部５０１は、変更部３０８によって名称が変更された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択するようにしてもよい。
【０１０４】
さらに、削除部３０９により、入力部３０１によって入力された設計データ内のコメントが削除された場合、選択部５０１は、削除部３０９によってコメントが削除された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択するようにしてもよい。
【０１０５】
そして、合成データ生成部５０２は、最上位のモジュールと、他のモジュールのうち選択部５０１によって選択されたモジュール（以下、「選択モジュール」という）を除く残余のモジュールと、選択モジュール内の入出力信号に関する記述からなる記述データと、からなる合成データを生成する（ステップＳ６０３）。
【０１０６】
つぎに、モジュール決定部５０３は、合成データ生成部５０２によって生成された合成データを設計ツールに与えた結果、選択モジュールを不具合が発生するモジュールに決定する（ステップＳ６０４）。このとき、出力部３０４は、モジュール決定部５０３によって選択モジュールが不具合が発生するモジュールに決定された場合、合成データを出力するようにしてもよい。
【０１０７】
回路データ生成部３０５は、合成データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成する（ステップＳ６０５）。そして、論理ブロック決定部５０４は、回路データ生成部３０５によって生成された回路データを設計ツールに与えた結果、欠落した論理ブロックを不具合が発生しない論理ブロックに決定する（ステップＳ６０６）。
【０１０８】
最後に、出力部３０４は、論理ブロック決定部５０４によって欠落した論理ブロックが不具合が発生しない論理ブロックに決定された場合、回路データを出力し（ステップＳ６０７）、本フローチャートによる一連の処理を終了する。
【０１０９】
以上、説明したように実施の形態２にかかる検証支援装置によれば、設計データを設計ツールに与えた際に発生する不具合の再現に最低限必要となるモジュールを自動的に特定することができる。さらに、特定されたモジュールのうち、不具合の再現に最低限必要となる論理ブロックを自動的に特定することができる。
【０１１０】
また、設計データ内の論理を特定するための名称を変更するとともに、設計データ内のコメントを削除することにより、設計データ内に表現されている論理意図を類推困難にすることができる。
【０１１１】
これにより、検証支援装置によれば、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業にかかる作業時間の短縮および作業労力の軽減を図ることにより、設計期間の短縮化を実現することができる。
【実施例】
【０１１２】
つぎに、検証支援装置の実施例について説明する。なお、実施例における検証支援装置は、上記実施の形態１および実施の形態２にかかる検証支援装置の機能を備えたものである。
【０１１３】
（ＨＤＬファイル一覧の具体例）
まず、検証支援装置に入力されるＨＤＬファイル一覧の具体例について説明する。ここで入力されるＨＤＬファイル一覧は、上述した設計データに相当する。図７は、ＨＤＬファイル一覧の具体例を示す説明図である。
【０１１４】
図７に示すＨＤＬファイル一覧７００とは、複数のＨＤＬファイルの集合であり、ここでは、ＨＤＬファイル７１０（ｆｉｌｅ１．ｖ）およびＨＤＬファイル７２０（ｆｉｌｅ２．ｖ）から構成されている。
【０１１５】
ＨＤＬファイル７１０は、モジュール７１１（ｔｏｐ＿ｍｏｄ）およびモジュール７１２（ｆｉｆｏ＿ｒｅａｄ＿ｗｒｉｔｅ）から構成されている。また、ＨＤＬファイル７２０は、モジュール７２１（ｂｕｆ＿ｍｏｄ）およびモジュール７２２（ｎｏｔ＿ｍｏｄ）から構成されている。
【０１１６】
各ＨＤＬファイルには、モジュールの宣言、入出力信号の宣言およびコメントなどが記述されている。なお、ＨＤＬファイル７１０のうち、／／で始まる１行が行末までコメント扱いとなる。
【０１１７】
検証支援装置は、入力されたＨＤＬファイル一覧７００を読み込み後、モジュール名・インスタンス名・レジスタ名などすべての名称を「ｐｒｅｆｉｘ＋追番」に変更するとともに、コメントを削除する。これらの処理は、上記変更部３０８および削除部３０９（図３、５参照）によっておこなわれる処理に相当する。
【０１１８】
また、入力されたＨＤＬファイル一覧７００から、“モジュール名．拡張子”とした１モジュール１ファイル形式のＨＤＬファイルを出力する。具体的には、たとえば、ＨＤＬファイル７１０を構成する２つのモジュール７１１およびモジュール７１２を分割して、各モジュールに対応するＨＤＬファイルをそれぞれ生成する。ここでの処理は、上記分割データ生成部３０２（図３参照）によっておこなわれる処理に相当する。
【０１１９】
さらに、ＨＤＬファイル一覧７００から、トップモジュール（ここでは、モジュール７１１）を除く他のモジュールについて、“モジュール名＿ｄｕｍｍｙ．拡張子”とした１モジュール１ファイル形式のＨＤＬファイルを出力する。具体的には、他のモジュールについて、論理を削除したポート宣言のみのＨＤＬファイルをそれぞれ生成する。このポート宣言のみのＨＤＬファイルは、上記記述データに相当する。
【０１２０】
ここで、“モジュール名．拡張子”とした１モジュール１ファイル形式のＨＤＬファイルについて説明する。図８は、１モジュール１ファイル形式のＨＤＬファイルの一例を示す説明図である。図８には、図７中のＨＤＬファイル７１０、７２０を構成するモジュール７１１、７１２、７２１および７２２について、それぞれ１モジュール１ファイル形式で生成されたＨＤＬファイル８０１〜８０４が示されている。
【０１２１】
ＨＤＬファイル８０１〜８０４を生成するために、まず、ＨＤＬファイル一覧７００を構成する各モジュール内に記述されているモジュール名、インスタンス名および入出力のリスト（変数）の名称を一律に変更する。さらに、モジュール７１１内の／／で始まるコメントを削除する。
【０１２２】
たとえば、モジュール名「ｔｏｐ＿ｍｏｄ、ｆｉｆｏ＿ｒｅａｄ＿ｗｒｉｔｅ、ｂｕｆ＿ｍｏｄ、ｎｏｔ＿ｍｏｄ」を、順に「ｍｏｄ＿１、ｍｏｄ＿２、ｍｏｄ＿３、ｍｏｄ＿４」に変更する。そして、変更後のＨＤＬファイル一覧７００を構成する各モジュールごとに分割して、１モジュール１ファイル形式のＨＤＬファイルを生成する。
【０１２３】
つぎに、“モジュール名＿ｄｕｍｍｙ．拡張子”とした１モジュール１ファイル形式のＨＤＬファイルについて説明する。図９は、１モジュール１ファイル形式のＨＤＬファイルの他の一例を示す説明図である。
【０１２４】
図９に示すＨＤＬファイル９０１〜９０３は、図８中のＨＤＬファイル８０２〜８０４から論理に関する記述を削除したポート宣言のみのデータである。具体的には、たとえば、ＨＤＬファイル８０２のうち、「ｒｅｇ〜ｐｉｎ＿１４＜＝ｐｉｎ＿１３」の論理記述を削除して、入出力宣言に関する記述のみに変更する。
【０１２５】
（検証支援装置の検証支援処理手順）
つぎに、この発明の実施例の検証支援装置において実行される検証支援処理手順について説明する。図１０は、実施例の検証支援装置において実行される検証支援処理手順を示すフローチャートである。
【０１２６】
図１０に示すフローチャートにおいて、検証支援装置は、ＨＤＬファイル一覧の入力を受け付けたか否かを判断する（ステップＳ１００１）。ここで、ＨＤＬファイル一覧が入力されるのを待って、入力された場合（ステップＳ１００１：Ｙｅｓ）、検証支援処理に関する処理単位の指定入力を受け付けたか否かを判断する（ステップＳ１００２）。
【０１２７】
検証支援処理に関する処理単位とは、検証支援装置において設計ツールを実行する際の処理単位のことである。ここでは、ＨＤＬファイルを構成する個々のモジュール単位、または、階層構造を有する階層モジュール単位のいずれか一方を指定することができる。
【０１２８】
処理単位の指定入力は、ＨＤＬファイル一覧の入力を受け付けた後、ユーザからの操作入力を受け付けるように構成してもよい。具体的には、ＨＤＬファイル一覧の入力後、「処理単位を指定してください。」などのコメントをディスプレイ２０８に表示することによって、ユーザに指定入力を促すようにしてもよい。また、予め設定されている処理単位を自動的に指定するようにしてもよい。
【０１２９】
ステップＳ１００２において、処理単位の指定入力を受け付けるのを待って、受け付けた場合（ステップＳ１００２：Ｙｅｓ）、指定された処理単位に従って、原本ＨＤＬファイル生成処理を実行する（ステップＳ１００３）。原本ＨＤＬファイル生成処理の具体的処理については後述する。
【０１３０】
つぎに、生成された原本ＨＤＬファイルから不要な論理ブロックを削除する論理ブロック削除処理を実行する（ステップＳ１００４）。論理ブロック削除処理の具体的処理については後述する。
【０１３１】
最後に、不具合を再現可能な再現データを出力して（ステップＳ１００５）、本フローチャートによる一連の処理を終了する。
【０１３２】
ここで、ステップＳ１００３で示した原本ＨＤＬファイル生成処理手順について具体的に説明する。まず、ステップＳ１００２において、検証支援処理に関する処理単位としてモジュール単位の指定入力を受け付けた場合について説明する。図１１は、ステップＳ１００３で示した原本ＨＤＬファイル生成処理手順を示すフローチャート（その１）である。
【０１３３】
図１１のフローチャートにおいて、検証支援装置は、モジュール単位の指定入力を受け付けたか否かを判断する（ステップＳ１１０１）。ここで、処理単位の指定入力を待って、モジュール単位の指定入力を受け付けた場合（ステップＳ１１０１：Ｙｅｓ）、ステップＳ１００１において入力されたＨＤＬファイル一覧内のモジュールごとに出力された１モジュール１ファイル形式の複数のＨＤＬファイルの中から、任意のＨＤＬファイルを選択する（ステップＳ１１０２）。
【０１３４】
具体的には、ステップＳ１００１において、図７に示すＨＤＬファイル一覧７００が入力された場合、１モジュール１ファイル形式で出力された図８に示すＨＤＬファイル８０１〜８０４の中から、任意のＨＤＬファイルを選択する。このとき、ＨＤＬファイル８０１→ＨＤＬファイル８０２→ＨＤＬファイル８０３→ＨＤＬファイル８０４の順に選択してもよいし、ランダムに選択してもよいが、選択するＨＤＬファイルが重複しないように選択する。
【０１３５】
つぎに、ステップＳ１１０２において選択されたＨＤＬファイルに対して設計ツールを実行する（ステップＳ１１０３）。このとき実行される設計ツールは、ステップＳ１００１において入力されたＨＤＬファイル一覧に対して実行された設計ツールと同様のものである。すなわち、ＨＤＬファイル一覧に対して実行した場合に、不具合が発生した設計ツールである。
【０１３６】
また、ツール実行時に必要となる引数は、予めＨＤ２０５やＦＤ２０７などの記録媒体に記録されている。設計ツールを実行する際に、選択されたＨＤＬファイルに必要となる引数をその都度読み出して使用する。
【０１３７】
そして、ＨＤＬファイルを設計ツールに与えた結果、不具合が再現されたか否かを判断する（ステップＳ１１０４）。不具合が再現されたか否かの判断は、実行結果を示すステータスコードに基づいておこなわれる。具体的には、たとえば、セグメンテーションフォルトによる異常終了の不具合が発生した場合のステータスコード（たとえば、ツール終了ステータス！＝０）を予め設定しておく。
【０１３８】
そして、ＨＤＬファイルを設計ツールに与えた結果、ステータスコードとして「ツール終了ステータス！＝０」が出力された場合に、不具合が発生したと判定し、不具合が再現されたと判断する。また、ツール実行時に出力されるエラーメッセージから、不具合が再現されたか否かを判断するようにしてもよい。
【０１３９】
ここで、不具合が再現した場合（ステップＳ１１０４：Ｙｅｓ）、ステップＳ１１０２において選択されたＨＤＬファイル内のモジュールを再現モジュールとして決定する（ステップＳ１１０５）。再現モジュールとは、設計ツールを実行した場合における不具合の原因となるモジュールのことである。
【０１４０】
つぎに、ＨＤＬファイル一覧内のモジュールごとに出力された１モジュール１ファイル形式のＨＤＬファイルのうち、すべてのＨＤＬファイルを選択したか否かを判断する（ステップＳ１１０６）。また、ステップＳ１１０４において、不具合が再現しなかった場合（ステップＳ１１０４：Ｎｏ）、ステップＳ１１０６に移行する。
【０１４１】
ここで、すべてのＨＤＬファイルが選択されている場合（ステップＳ１１０６：Ｙｅｓ）、原本ＨＤＬファイルを生成して（ステップＳ１１０７）、図１０に示すステップＳ１００４に移行する。具体的には、ステップＳ１１０５において決定された再現モジュールに関するＨＤＬファイルを用いて原本ＨＤＬファイルとする。
【０１４２】
このとき、再現モジュールが複数存在する場合には、すべての再現モジュールをマージして１モジュールの原本ＨＤＬファイルとして生成する。また、ステップＳ１１０６において、すべてのＨＤＬファイルが選択されていない場合（ステップＳ１１０６：Ｎｏ）、ステップＳ１１０２に戻り、一連の処理を繰り返す。
【０１４３】
ここで、ステップＳ１１０７において生成される原本ＨＤＬファイルについて説明する。図１２は、原本ＨＤＬファイルの一例を示す説明図（その１）である。原本ＨＤＬファイルとは、不具合の再現に最低限必要なモジュールを含むデータであり、ステップＳ１１０５において決定されたすべての再現モジュールが含まれている。
【０１４４】
ここでは、図８に示すＨＤＬファイル８０１〜８０４のうち、ＨＤＬファイル８０３およびＨＤＬファイル８０４において不具合が発生した場合について説明する。具体的には、ＨＤＬファイル８０１〜８０４に対して必要な引数を与えて設計ツールを実行した結果、ＨＤＬファイル８０３およびＨＤＬファイル８０４について不具合が発生している。このため、ＨＤＬファイル８０３およびＨＤＬファイル８０４内の各モジュールが再現モジュールとして決定されている。
【０１４５】
すなわち、再現モジュールとして決定されたモジュールが複数存在するため、各再現モジュールに関するＨＤＬファイル８０３およびＨＤＬファイル８０４をマージさせて１モジュールの原本ＨＤＬファイルとする。
【０１４６】
具体的には、原本ＨＤＬファイル１２００内のポートリストは、ＨＤＬファイル８０３内のポートリスト（ｐｉｎ＿２１，ｐｉｎ＿２２）およびＨＤＬファイル８０４内のポートリスト（ｐｉｎ＿３１，ｐｉｎ＿３２）がマージされたものであり、それぞれの名称が（ｐｉｎ＿１，ｐｉｎ＿２，ｐｉｎ＿３，ｐｉｎ＿４）に変更されている。
【０１４７】
より具体的には、ｐｉｎ＿２１がｐｉｎ＿１に、ｐｉｎ＿２２がｐｉｎ＿２に、ｐｉｎ＿３１がｐｉｎ＿３に、ｐｉｎ＿３２がｐｉｎ＿４に変更され、マージされている。さらに、入出力信号や論理についても同様にマージされている。また、モジュール名は、「ｅｓｔ＿ｍｏｄ」に変更されている。すなわち、ＨＤＬファイル８０３およびＨＤＬファイル８０４内の記述内容をそれぞれ重複しないように変更し、各項目ごとにマージして一つのＨＤＬファイルにする。
【０１４８】
つぎに、ステップＳ１００２において、検証支援処理に関する処理単位としてモジュール階層単位の指定入力を受け付けた場合について説明する。図１３は、ステップＳ１００３で示した原本ＨＤＬファイル生成処理手順を示すフローチャート（その２）である。
【０１４９】
図１３のフローチャートにおいて、検証支援装置は、モジュール階層単位の指定入力を受け付けたか否かを判断する（ステップＳ１３０１）。ここで、処理単位の指定入力を待って、モジュール階層単位の指定入力を受け付けた場合（ステップＳ１３０１：Ｙｅｓ）、ステップＳ１００１において入力されたＨＤＬファイル一覧内のモジュールごとに出力されたポート宣言のみの複数のＨＤＬファイルの中から、任意のＨＤＬファイルを選択する（ステップＳ１３０２）。
【０１５０】
具体的には、ステップＳ１００１において、図７に示すＨＤＬファイル一覧７００が入力された場合、１モジュール１ファイル形式で出力された図８に示すＨＤＬファイル８０２〜８０４の中から、任意のＨＤＬファイルを選択する。
【０１５１】
このとき、ＨＤＬファイル８０２→ＨＤＬファイル８０３→ＨＤＬファイル８０４の順に選択してもよいし、ランダムに選択してもよいが、選択するＨＤＬファイルが重複しないように選択する。
【０１５２】
つぎに、ステップＳ１００１において入力されたＨＤＬファイル一覧について１モジュール１ファイル形式で出力されたＨＤＬファイルのうち、ステップＳ１３０２において選択されたポート宣言のみのＨＤＬファイルを、それに対応するＨＤＬファイルと置き換えたＨＤＬファイル群に対して設計ツールを実行する（ステップＳ１３０３）。
【０１５３】
具体的には、１モジュール１ファイル形式によって出力されたＨＤＬファイル８０１〜８０４のうち、ＨＤＬファイル８０１（トップモジュール）を除く他のＨＤＬファイル８０２〜８０４を、それぞれポート宣言のみのＨＤＬファイル９０１〜９０３に１ファイルごとに置き換えて設計ツールを実行する。このとき置き換えられるＨＤＬファイルが、ステップＳ１３０２において選択されたポート宣言のみのＨＤＬファイルに対応するものである。
【０１５４】
このとき実行される設計ツールは、ステップＳ１００１において入力されたＨＤＬファイル一覧に対して実行された設計ツールと同様のものである。すなわち、ＨＤＬファイル一覧に対して実行した場合に、不具合が発生した設計ツールである。
【０１５５】
そして、ＨＤＬファイル群を設計ツールに与えた結果、不具合が再現されたか否かを判断する（ステップＳ１３０４）。
【０１５６】
ここで、不具合が再現した場合（ステップＳ１３０４：Ｙｅｓ）、ＨＤＬファイル一覧を更新する（ステップＳ１３０５）。具体的には、ステップＳ１３０２において選択されたポート宣言のみのＨＤＬファイルを含むＨＤＬファイル群を、新たなＨＤＬファイル一覧として置き換える。また、不具合が再現しなかった場合（ステップＳ１３０４：Ｎｏ）、ステップＳ１３０６に移行する。
【０１５７】
具体的には、たとえば、ＨＤＬファイル８０１、ＨＤＬファイル９０１（ステップＳ１３０２において選択されたポート宣言のみのＨＤＬファイル）、ＨＤＬファイル８０３およびＨＤＬファイル８０４を、ＨＤＬファイル群として必要な引数を与えて設計ツールを実行する。このとき、不具合が再現された場合、ＨＤＬファイル８０２をＨＤＬファイル７０１に置き換えられているＨＤＬファイル群を新たなＨＤＬファイル一覧とする。
【０１５８】
また、ＨＤＬファイル８０１、ＨＤＬファイル９０１、ＨＤＬファイル９０２およびＨＤＬファイル８０４を、ＨＤＬファイル群として必要な引数を与えて設計ツールを実行する。このとき、不具合が再現されなかった場合、ＨＤＬファイル９０２をもとのＨＤＬファイル８０３に戻す。すなわち、ＨＤＬファイル一覧の更新はおこなわれないこととなる。
【０１５９】
つぎに、ＨＤＬファイル一覧内のモジュールごとに出力されたポート宣言のみの複数のＨＤＬファイルのうち、すべてのＨＤＬファイルを選択したか否かを判断する（ステップＳ１３０６）。
【０１６０】
ここで、すべてのＨＤＬファイルが選択されている場合（ステップＳ１３０６：Ｙｅｓ）、原本ＨＤＬファイルを生成して（ステップＳ１３０７）、図１０に示すステップＳ１００４に移行する。具体的には、ステップＳ１３０５において更新されたＨＤＬファイル一覧を構成するすべてのＨＤＬファイルに対して階層展開をおこない、１モジュールの原本ＨＤＬファイルを生成する。
【０１６１】
また、ステップＳ１３０６において、すべてのＨＤＬファイルが選択されていない場合（ステップＳ１３０６：Ｎｏ）、ステップＳ１３０２に戻り、一連の処理を繰り返す。
【０１６２】
ここで、ステップＳ１３０７において生成される原本ＨＤＬファイルについて説明する。図１４は、原本ＨＤＬファイルの一例を示す説明図（その２）である。図１３に示すステップＳ１３０２〜Ｓ１３０６の処理を繰り返しおこなわれることによって、不具合が発生しないモジュールについてのＨＤＬファイルが、ポート宣言のみのＨＤＬファイルに変更される。そして、最終的なＨＤＬファイル一覧を構成するすべてのＨＤＬファイルについて階層展開をおこなうことにより、図１４に示す原本ＨＤＬファイル１４００が生成される。
【０１６３】
ここでは、図８に示すＨＤＬファイル８０２〜８０４のうち、ＨＤＬファイル８０２をポート宣言のみのＨＤＬファイル９０１に置き換えて設計ツールを実行した場合にのみ、不具合が再現されたとする。
【０１６４】
すなわち、最終的なＨＤＬファイル一覧は、ＨＤＬファイル８０１、ＨＤＬファイル９０１、ＨＤＬファイル８０３およびＨＤＬファイル８０４から構成されている。これら複数のＨＤＬファイルを階層展開することにより、原本ＨＤＬファイルを生成する。具体的には、図１２において説明した複数のＨＤＬファイルをマージする場合と同様のため説明を省略する。
【０１６５】
（論理ブロック削除処理手順）
つぎに、ステップＳ１００４で示した論理ブロック削除処理手順について具体的に説明する。ここで、論理ブロック削除処理の概要を説明する。論理ブロック削除処理では、ステップＳ１００３において生成された原本ＨＤＬファイルから不具合の再現に無関係な論理を削除する。
【０１６６】
図１５は、原本ＨＤＬファイルの一例を示す説明図（その３）である。まず、図１５に示す原本ＨＤＬファイル１５００を用いて論理ブロックＤＢを生成する。論理ブロックＤＢとは、原本ＨＤＬファイル内の論理を生成する変数ごとに元の記述を保持した復元容易なＤＢである。
【０１６７】
ＨＤＬ（ＶＨＤＬ／Ｖｅｒｉｌｏｇ）には、記述順序に関係なくシミュレーションサイクルで同時に評価されるコンカレント文、記述順序にしたがって上から下に評価されるシーケンス文がある。コンカレント文としては、たとえば、コンカレント代入文、ａｌｗａｙｓ／ｐｒｏｃｅｓｓ文およびインスタンス文などがある。また、シーケンス文としては、ａｌｗａｙｓ／ｐｒｏｃｅｓｓ文内のｉｆ文、ｃａｓｅ文およびシーケンス代入文などがある。
【０１６８】
ここでは、論理ブロックＤＢ作成時において、検証支援装置は、まず、原本ＨＤＬファイル１５００からコンカレント文を抽出してその入力・出力となる変数で接続した論理ブロックを生成する。具体的には、原本ＨＤＬファイル１５００においては、ｘに対する代入文とａｌｗａｙｓ文の２論理ブロックで構成される第一段階のＤＢが生成される。
【０１６９】
つぎに、ａｌｗａｙｓ／ｐｒｏｃｅｓｓ文から作成した論理ブロックについて、１出力ごとに論理ブロックを分離して論理記述から当該出力に対する代入文以外の代入文を削除し、再度論理ブロックの入力・出力となる変数で接続しなおす。ここでは、ａｌｗａｙｓ文より生成された論理ブロックからの出力がｃｎｔおよびｑの２つであるため、ｃｎｔのみを出力する論理ブロック（入力はｃｌｋ、ｒｓｔおよびｄ）に分離する。
【０１７０】
図１６は、論理ブロックＤＢの一例を示す説明図である。図１６に示す論理ブロックＤＢ１６００は、原本ＨＤＬファイル１５００内の論理を生成する変数ごとに元の記述を保持したものである。論理ブロックＤＢ１６００から１つずつ論理を削除し、その都度、評価ＨＤＬファイルを生成する。
【０１７１】
そして、作成した評価ＨＤＬファイルに対して必要な引数を与えて設計ツールを実行する。その結果、不具合が再現した場合に、その評価ＨＤＬファイルを原本ＨＤＬファイルに置き換える。この処理をすべての論理についての削除が終了するまで繰り返しおこない最終的な再現データを生成する。また、論理ブロックＤＢ１６００を生成する場合、原本ＨＤＬファイル１５００内の論理を外部出力変数から辿っていくようにしてもよい。
【０１７２】
このように原本ＨＤＬファイル１５００内の論理を生成する変数ごとに元の記述を保持した論理ブロックＤＢ１６００を用いて論理の削除をおこなうことにより、論理削除処理を効率的におこなうことができる。
【０１７３】
なぜなら、初期合成された回路構造を用いて論理削除をおこなった場合、削除後の論理の復元に面倒な作業が必要となるからである。具体的には、ａｌｗａｙｓなどの単位を保持したオリジナルの記述へ復元するためにＲＴＬ記述の行番号リンクから辿るしかなく非常に不便となってしまう。
【０１７４】
また、等価検証ツールのように不等価となった変数ポイントから外部入力へのトレース内に存在する記述のみを論理抽出することにより、不具合の再現が可能な設計ツールにおいては、ＦＦ推定記述におけるカウンタなどでのフィードバックループが発生してしまう。論理ブロックＤＢ１６００の場合は、このフィードバックループが発生しないため、フィードバックループをカットする処理が不要となり作業時間を短縮することができる。
【０１７５】
図１７は、ステップＳ１００４で示した論理ブロック削除処理手順を示すフローチャートである。図１７のフローチャートにおいて、検証支援装置は、ステップＳ１００３において生成された原本ＨＤＬファイルを用いて、論理ブロックＤＢを生成する（ステップＳ１７０１）。ここで生成される論理ブロックＤＢは、たとえば、図１６に示す論理ブロックＤＢ１６００である。
【０１７６】
つぎに、ステップＳ１００３において生成された原本ＨＤＬファイル内の論理を生成する変数の中から、任意の変数を選択する（ステップＳ１７０２）。任意の変数の選択は、ユーザの指定入力に従って選択するようにしてもよいし、ランダムに選択するようにしてもよいが、選択される変数が重複しないようにする。
【０１７７】
そして、選択された変数に対応する論理ブロックを論理ブロックＤＢから削除する（ステップＳ１７０３）。つぎに、削除後における論理ブロックＤＢに基づいて、評価ＨＤＬファイルを生成する（ステップＳ１７０４）。
【０１７８】
具体的には、たとえば、内部変数と外部出力変数の一覧から１変数ごとに選択した変数を起点として外部入力へのバックトレース内に存在する論理を生成する部分を削除したモジュールを評価ＨＤＬファイルとして生成するようにしてもよい。
【０１７９】
つぎに、ステップＳ１７０４において生成された評価ＨＤＬファイルに対して設計ツールを実行する（ステップＳ１７０５）。このとき実行される設計ツールは、ステップＳ１００１において入力されたＨＤＬファイル一覧に対して実行された設計ツールと同様のものである。すなわち、ＨＤＬファイル一覧に対して実行した場合に、不具合が発生した設計ツールである。
【０１８０】
そして、ＨＤＬファイル群を設計ツールに与えた結果、不具合が再現されたか否かを判断する（ステップＳ１７０６）。具体的には、ＨＤＬファイル群に必要となる引数を記録媒体から読み出して設計ツールを実行し、出力されるステータスコードから不具合が再現されたか否かを判断する。
【０１８１】
ここで、不具合が再現した場合（ステップＳ１７０６：Ｙｅｓ）、評価ＨＤＬファイルを原本ＨＤＬファイルに置き換える（ステップＳ１７０７）。また、不具合が再現しなかった場合（ステップＳ１７０６：Ｎｏ）、ステップＳ１７０８に移行する。
【０１８２】
具体的には、評価ＨＤＬファイルとして必要な引数を与えて設計ツールを実行する。このとき、不具合が再現された場合、評価ＨＤＬファイルを原本ＨＤＬファイルに置き換える。
【０１８３】
つぎに、原本ＨＤＬファイル内の論理を生成する変数のうち、すべての変数を選択したか否かを判断する（ステップＳ１７０８）。ここで、すべての変数が選択されている場合（ステップＳ１７０８：Ｙｅｓ）、原本ＨＤＬファイルを再現データとして決定し（ステップＳ１７０９）、図１０に示すステップＳ１００５に移行する。
【０１８４】
また、ステップＳ１７０８において、すべての変数が選択されていない場合（ステップＳ１７０８：Ｎｏ）、ステップＳ１７０２に戻り、一連の処理を繰り返す。
【０１８５】
以上説明したように、この発明の実施例の検証支援装置によれば、ＨＤＬファイル一覧を設計ツールに与えた際に発生する不具合の再現に最低限必要となるモジュールを自動的に特定することができる。さらに、特定されたモジュールのうち、不具合の再現に最低限必要となる論理ブロックを自動的に特定することができる。
【０１８６】
また、ＨＤＬファイル内の論理を特定するための名称を変更するとともに、ＨＤＬファイル内のコメントを削除することにより、設計データ内に表現されている論理意図を類推不能にすることができる。
【０１８７】
さらに、論理ブロックを特定する際に、論理を生成する変数ごとに元の記述を保持した論理ブロックＤＢを用いることにより、ＦＦ推定記述におけるカウンタなどでのフィードバックループをカットする処理が不要となり、不要な論理の削除を効率的におこなうことができる。
【０１８８】
これにより、検証支援装置によれば、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業にかかる作業時間の短縮および作業労力の軽減を図ることにより、設計期間の短縮化を実現することができる。
【０１８９】
以上説明したように、検証支援プログラム、記録媒体、検証支援装置および検証支援方法によれば、不具合を再現可能でかつ、第三者によって論理意図が類推不能な再現データへの改変作業にかかる作業時間の短縮および作業労力の軽減を図ることにより、設計期間の短縮化を実現することができる。
【０１９０】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１９１】
（付記１）ハードウェア記述言語によって記述された設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成させる分割データ生成工程と、
前記分割データ生成工程によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定させる特定工程と、
前記特定工程によって特定された分割データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１９２】
（付記２）前記特定工程によって特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成させる回路データ生成工程と、
前記回路データ生成工程によって生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定させる決定工程と、を前記コンピュータに実行させ、
前記出力工程は、
前記決定工程によって前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力させることを特徴とする付記１に記載の検証支援プログラム。
【０１９３】
（付記３）前記特定工程によって特定された複数の分割データを、当該分割データ同士で結合させることによって、結合データを生成させる結合データ生成工程を前記コンピュータに実行させ、
前記回路データ生成工程は、
前記結合データ生成工程によって生成された結合データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成させることを特徴とする付記１または２に記載の検証支援プログラム。
【０１９４】
（付記４）前記入力工程によって入力された設計データ内の論理を特定するための名称を、類推不能な名称に変更させる変更工程を前記コンピュータに実行させ、
前記分割データ生成工程は、
前記変更工程によって名称が変更された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成させることを特徴とする付記１〜３のいずれか一つに記載の検証支援プログラム。
【０１９５】
（付記５）前記入力工程によって入力された設計データ内のコメントを削除させる削除工程を前記コンピュータに実行させ、
前記分割データ生成工程は、
前記削除工程によってコメントが削除された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成させることを特徴とする付記１〜４のいずれか一つに記載の検証支援プログラム。
【０１９６】
（付記６）ハードウェア記述言語によって記述された設計データの入力を受け付けさせる入力工程と、
前記入力工程によって入力された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択させる選択工程と、
前記最上位のモジュールと、前記他のモジュールのうち前記選択工程によって選択されたモジュール（以下、「選択モジュール」という）を除く残余のモジュールと、前記選択モジュール内の入出力信号に関する記述からなる記述データと、からなる合成データを生成させる合成データ生成工程と、
前記合成データ生成工程によって生成された合成データを設計ツールに与えた結果、前記選択モジュールを不具合が発生するモジュールに決定させるモジュール決定工程と、
前記モジュール決定工程によって前記選択モジュールが前記不具合が発生するモジュールに決定された場合、前記合成データを出力させる出力工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１９７】
（付記７）前記合成データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成させる回路データ生成工程と、
前記回路データ生成工程によって生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定させる論理ブロック決定工程と、を前記コンピュータに実行させ、
前記出力工程は、
前記論理ブロック決定工程によって前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力させることを特徴とする付記６に記載の検証支援プログラム。
【０１９８】
（付記８）前記入力工程によって入力された設計データ内の論理を特定するための名称を、類推不能な名称に変更させる変更工程を前記コンピュータに実行させ、
前記選択工程は、
前記変更工程によって名称が変更された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択させることを特徴とする付記６または７に記載の検証支援プログラム。
【０１９９】
（付記９）前記入力工程によって入力された設計データ内のコメントを削除させる削除工程を前記コンピュータに実行させ、
前記選択工程は、
前記削除工程によってコメントが削除された設計データを構成する階層モジュールのうち、最上位のモジュールを除く他のモジュールの中から任意のモジュールを選択させることを特徴とする付記６〜８のいずれか一つに記載の検証支援プログラム。
【０２００】
（付記１０）付記１〜９のいずれか一つに記載の検証支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【０２０１】
（付記１１）ハードウェア記述言語によって記述された設計データの入力を受け付ける入力手段と、
前記入力手段によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成する分割データ生成手段と、
前記分割データ生成手段によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定する特定手段と、
前記特定手段によって特定された分割データを出力する出力手段と、
を備えることを特徴とする検証支援装置。
【０２０２】
（付記１２）前記特定手段によって特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成する回路データ生成手段と、
前記回路データ生成手段によって生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定する決定手段と、を備え、
前記出力手段は、
前記決定手段によって前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力することを特徴とする付記１１に記載の検証支援装置。
【０２０３】
（付記１３）ハードウェア記述言語によって記述された設計データの入力を受け付ける入力工程と、
前記入力工程によって入力された設計データを、当該設計データを構成するモジュールごとに分割することによって、複数の分割データを生成する分割データ生成工程と、
前記分割データ生成工程によって生成された複数の分割データを設計ツールに与えた結果、当該複数の分割データのうち不具合が発生する分割データを特定する特定工程と、
前記特定工程によって特定された分割データを出力する出力工程と、
を含むことを特徴とする検証支援方法。
【０２０４】
（付記１４）前記特定工程によって特定された分割データ内の入出力信号によって接続される複数の論理ブロックのうち、一部の論理ブロックが欠落した回路データを生成する回路データ生成工程と、
前記回路データ生成工程によって生成された回路データを前記設計ツールに与えた結果、前記欠落した論理ブロックを前記不具合が発生しない論理ブロックに決定する決定工程と、を含み、
前記出力工程は、
前記決定工程によって前記欠落した論理ブロックが前記不具合が発生しない論理ブロックに決定された場合、前記回路データを出力することを特徴とする付記１３に記載の検証支援方法。
【産業上の利用可能性】
【０２０５】
以上のように、本発明にかかる検証支援プログラム、記録媒体、検証支援装置および検証支援方法は、設計データ内における不具合の発生原因となる記述部分の特定に有用であり、特に、ＨＤＬによって記述された設計データに適している。
【図面の簡単な説明】
【０２０６】
【図１】この発明の実施の形態１にかかる検証支援システムの概要を示す説明図である。
【図２】この発明の実施の形態１にかかる検証支援装置のハードウェア構成を示すブロック図である。
【図３】この発明の実施の形態１にかかる検証支援装置の機能的構成を示すブロック図である。
【図４】この発明の実施の形態１にかかる検証支援装置において実行される検証支援処理手順を示すフローチャートである。
【図５】この発明の実施の形態２にかかる検証支援装置の機能的構成を示すブロック図である。
【図６】この発明の実施の形態２にかかる検証支援装置において実行される検証支援処理手順を示すフローチャートである。
【図７】ＨＤＬファイル一覧の具体例を示す説明図である。
【図８】１モジュール１ファイル形式のＨＤＬファイルの一例を示す説明図である。
【図９】１モジュール１ファイル形式のＨＤＬファイルの他の一例を示す説明図である。
【図１０】実施例の検証支援装置において実行される検証支援処理手順を示すフローチャートである。
【図１１】ステップＳ１００３で示した原本ＨＤＬファイル生成処理手順を示すフローチャート（その１）である。
【図１２】原本ＨＤＬファイルの一例を示す説明図（その１）である。
【図１３】ステップＳ１００３で示した原本ＨＤＬファイル生成処理手順を示すフローチャート（その２）である。
【図１４】原本ＨＤＬファイルの一例を示す説明図（その２）である。
【図１５】原本ＨＤＬファイルの一例を示す説明図（その３）である。
【図１６】論理ブロックＤＢの一例を示す説明図である。
【図１７】ステップＳ１００４で示した論理ブロック削除処理手順を示すフローチャートである。
【符号の説明】
【０２０７】
３０１  入力部
３０２  分割データ生成部
３０３  特定部
３０４  出力部
３０５  回路データ生成部
３０６  決定部
３０７  結合データ生成部
３０８  変更部
３０９  削除部
５０１  選択部
５０２  合成データ生成部
５０３  モジュール決定部
５０４  論理ブロック決定部
【図１】
2008117136.tif 000003
【図２】
2008117136.tif 000004
【図３】
2008117136.tif 000005
【図４】
2008117136.tif 000006
【図５】
2008117136.tif 000007
【図６】
2008117136.tif 000008
【図７】
2008117136.tif 000009
【図８】
2008117136.tif 000010
【図９】
2008117136.tif 000011
【図１０】
2008117136.tif 000012
【図１１】
2008117136.tif 000013
【図１２】
2008117136.tif 000014
【図１３】
2008117136.tif 000015
【図１４】
2008117136.tif 000016
【図１５】
2008117136.tif 000017
【図１６】
2008117136.tif 000018
【図１７】
2008117136.tif 000019