(57)【要約】【課題】機能検証の途中経過に応じて機能検証に係る制御を行うことのできる論理回路検証装置を提供すること。【解決手段】論理回路検証装置は、ハードウェア記述言語で記述され、ハードウェア記述言語による記述中にスクリプト記述が埋め込まれた回路設計情報を記憶する第１の記憶部と、第１の記憶部から読み出した回路設計情報をコンパイルして、回路設計情報のハードウェア記述部分を第１の回路データに変換し、回路設計情報のスクリプト記述部分をスクリプトデータに変換するデータ変換部と、データ変換部から入力された第１の回路データを用いてシミュレーションを行う第１のシミュレーション部と、データ変換部からスクリプトデータが入力され、第１のシミュレーション部からの指示に応じてスクリプトデータを処理するスクリプト処理部とを備える。【選択図】図１
2008070962.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語で記述され、前記ハードウェア記述言語による記述中にスクリプト記述が埋め込まれた回路設計情報を記憶する第１の記憶部と、
前記第１の記憶部から読み出した前記回路設計情報をコンパイルして、前記回路設計情報のハードウェア記述部分を第１の回路データに変換し、前記回路設計情報のスクリプト記述部分をスクリプトデータに変換するデータ変換部と、
前記データ変換部から入力された前記第１の回路データを用いてシミュレーションを行う第１のシミュレーション部と、
前記データ変換部から前記スクリプトデータが入力され、前記第１のシミュレーション部からの指示に応じて前記スクリプトデータを処理するスクリプト処理部と、
を備えることを特徴とする論理回路検証装置。
【請求項２】
ハードウェア記述言語で記述され、前記ハードウェア記述言語による記述中にスクリプト記述が埋め込まれた第１の回路設計情報と、前記ハードウェア記述言語で記述された第２の回路設計情報を記憶する第１の記憶部と、
前記第１の記憶部から読み出した前記第１の回路設計情報をコンパイルして、前記第１の回路設計情報のハードウェア記述部分を第１の回路データに変換し、前記回路設計情報のスクリプト記述部分をスクリプトデータに変換する第１のデータ変換部と、
前記第１の記憶部から読み出した前記第２の回路設計情報をコンパイルして、前記第２の回路設計情報のハードウェア記述部分を第２の回路データに変換する第２のデータ変換部と、
前記第１のデータ変換部から入力された前記第１の回路データを用いてシミュレーションを行う第１のシミュレーション部と、
前記第１のデータ変換部から前記スクリプトデータが入力され、前記第１のシミュレーション部からの指示に応じて前記スクリプトデータを処理するスクリプト処理部と、
前記スクリプト処理部からの指示に応じて、前記第２のデータ変換部から入力された前記第２の回路データを用いてシミュレーションを行う第２のシミュレーション部と、
を備えることを特徴とする論理回路検証装置。
【請求項３】
請求項１に記載の論理回路検証装置であって、
前記第１のシミュレーション部は、前記スクリプト処理部による処理の間は前記シミュレーションを一時中断し、前記スクリプト処理部から処理完了通知を受け取ると前記シミュレーションを再開することを特徴とする論理回路検証装置。
【請求項４】
請求項１に記載の論理回路検証装置であって、
前記第１の記憶部には、前記第１のシミュレーション部によるシミュレーション中に生成されたファイル又はログファイルが格納され、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の記憶部に格納されたファイルを削除又は圧縮することを特徴とする論理回路検証装置。
【請求項５】
請求項１に記載の論理回路検証装置であって、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１のシミュレーション部の動作電圧又は動作周波数を制御することを特徴とする論理回路検証装置。
【請求項６】
請求項１に記載の論理回路検証装置であって、
前記第１のシミュレーション部から転送された前記第１の回路データの一部を用いてシミュレーションを行う第２のシミュレーション部を備え、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の回路データの一部を前記第２のシミュレーション部に転送して分散処理するよう前記第１のシミュレーション部に指示し、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の回路データの一部が転送され次第、前記第１の回路データの一部を用いたシミュレーションを開始するよう前記第２のシミュレーション部に指示することを特徴とする論理回路検証装置。
【請求項７】
請求項６に記載の論理回路検証装置であって、
前記第２のシミュレーション部は、前記第１の回路データの一部を用いてシミュレーションが終了すると、前記スクリプト処理部に終了通知を送り、前記第１のシミュレーション部にシミュレーション結果を送り、
前記スクリプト処理部は、前記終了通知を受け取ると、前記第１のシミュレーション部に分散処理完了通知を送ることを特徴とする論理回路検証装置。
【請求項８】
請求項１に記載の論理回路検証装置であって、
前記第１のシミュレーション部は、前記スクリプト処理部が前記スクリプトデータを処理したことにより一時中断された前記シミュレーションの途中結果を示すシミュレーション情報を出力し、
当該論理回路検証装置は、
前記第１のシミュレーション部から出力された前記シミュレーション情報を外部出力用のデータ形式に変換するデータ形式変換部と、
前記データ形式変換部で変換された外部出力用のシミュレーション情報を前記論理回路検証装置の外部に出力するデータ通信部と、
を備えることを特徴とする論理回路検証装置。
【請求項９】
請求項８に記載の論理回路検証装置であって、
前記データ形式変換部は、前記シミュレーション情報をＦＡＸ出力用のデータ形式に変換し、
前記データ通信部は、前記外部出力用のシミュレーション情報をＦＡＸで出力することを特徴とする論理回路検証装置。
【請求項１０】
請求項８に記載の論理回路検証装置であって、
前記データ形式変換部は、前記シミュレーション情報を電子メール出力用のデータ形式に変換し、
前記データ通信部は、前記外部出力用のシミュレーション情報を電子メールで出力することを特徴とする論理回路検証装置。
【請求項１１】
請求項１０に記載の論理回路検証装置であって、
前記データ通信部は、前記シミュレーションの再開又は中止に関する指示を電子メールで受け取り、
前記スクリプト処理部は、前記指示に基づいて前記シミュレーションを中止又は再開するよう前記第１のシミュレーション部に指示することを特徴とする論理回路検証装置。
【請求項１２】
請求項８に記載の論理回路検証装置であって、
前記データ形式変換部は、前記シミュレーション情報を音声出力用のデータ形式に変換し、
前記データ通信部は、前記外部出力用のシミュレーション情報を音声で出力することを特徴とする論理回路検証装置。
【請求項１３】
請求項１２に記載の論理回路検証装置であって、
前記データ通信部は、前記シミュレーションの再開又は中止に関する指示を音声で受け取り、
前記スクリプト処理部は、前記指示に基づいて前記シミュレーションを中止又は再開するよう前記第１のシミュレーション部に指示することを特徴とする論理回路検証装置。
【請求項１４】
請求項１に記載の論理回路検証装置であって、
第２の回路データ及び当該第２の回路データの属性情報を記憶する第２の記録部と、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の回路データの属性情報と前記第２の回路データの属性情報とを比較する比較部と、
を備えることを特徴とする論理回路検証装置。
【請求項１５】
請求項１に記載の論理回路検証装置であって、
前記第１のシミュレーション部によるシミュレーションで発生した不具合に関する情報を記憶する不具合管理部を備え、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１のシミュレーション部から得られた不具合に関する情報を前記不具合管理部に格納することを特徴とする論理回路検証装置。
【請求項１６】
請求項１に記載の論理回路検証装置であって、
前記第１のシミュレーション部によるシミュレーションで使用されたＩＰの使用実績に関する情報を記憶するＩＰ管理部を備え、
前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１のシミュレーション部から得られたＩＰの使用実績に関する情報を前記ＩＰ管理部に格納することを特徴とする論理回路検証装置。
【請求項１７】
請求項１に記載の論理回路検証装置であって、
前記回路設計情報中の暗号文を復号する暗号文復号部を備えることを特徴とする論理回路検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア記述言語で設計された論理回路の検証を行う論理回路検証装置に関する。
【背景技術】
【０００２】
一般的に、デジタル論理回路は、Ｖｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬ等のハードウェア記述言語（ＨＤＬ：Hardware Description Language）で設計される。ＨＤＬで設計された回路の機能検証は、通常、ＨＤＬシミュレータと呼ばれる計算機プログラムを用いて行われる。ＨＤＬシミュレータには、ＨＤＬで記述された回路の他、同じくＨＤＬで記述されたテストベンチ（検証環境）が入力され、機能検証が実行される。
【０００３】
近年における半導体プロセスの微細化に伴い、１つのＬＳＩに集積される論理ゲート数は数千万の規模である。ＬＳＩの開発期間及び開発費用を抑制する上で機能検証を効率的に行うことが望ましいが、ＬＳＩの機能検証には計算機の高速化にもかかわらず多くの時間を要する。例えば、画像処理等のＬＳＩの機能検証の１パターンの実行が完了するまでに５０〜１００時間を要することも稀ではない。このため、検証作業者の自宅等に検証の終了を通知するシステムが考案されており、特許文献１にはそのようなシステムの一例が開示されている。
【０００４】
特許文献１に開示されたシステムでは、論理検証システムに通知システムが接続されており、論理検証の終了時に、音声通話やＦＡＸ、電子メール等の手段によって通知システムから作業者に機能検証の終了と正常終了／異常終了の種別、異常終了の場合はその原因が通知される。
【０００５】
【特許文献１】特開平１１−２５２２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記説明したシステムには次の課題がある。第１に、上記システムでは、機能検証が終了した時点でのみ機能検証の結果が作業者に通知され、その後の対応は作業者が手作業で実施する必要がある。しかし、実際には、作業者は、機能検証が一定時間正常に実行された場合には、その終了を待たずに引き続いて類似の機能検証を開始することが多い。そのため、機能検証の途中経過を自動的に判定して、別の機能検証を自動的に開始できることが望ましいが、上記システムにはこのような機能がない。
【０００７】
第２に、機能検証の完了に１００時間もかかるようなケースでは、検証中に生成されるデータファイルのサイズも膨大である。また、一般的な開発環境では、複数の論理回路検証装置がファイルサーバを共有している。ある装置が機能検証中に膨大なデータファイルを生成したためファイルサーバの容量の限界を超えてしまった場合、全ての装置が機能検証を継続できなくなる。そのため、機能検証の途中で何らかの異常が見られた場合には、直ちに機能検証を終了し不要なファイルを削除することが望ましいが、上記システムにはこのような機能がない。
【０００８】
第３に、上記システムでは、機能検証が終了した時点でのみ機能検証の結果が作業者に通知される。当該結果が異常終了であった場合、その原因を解決した上で機能検証を再実行する必要がある。しかし、機能検証の完了に１００時間もかかるようなケースでは、異常終了及び機能検証の再実行を繰り返した場合、ＬＳＩの開発期間が長くなる。そのため、機能検証の途中で何らかの異常が見られた場合には、直ちに作業者に通知され、作業者が異常検出箇所を任意に変更できることが望ましいが、上記システムにはこのような機能がない。
【０００９】
第４に、上記システムでは、機能検証の終了を遠隔地の作業者に通知する。作業者は、機能検証の結果を判断し、異常終了の場合には原因解析を行い、正常終了の場合には引き続き別の機能検証を行う。そのため、作業者が遠隔地にいても別の機能検証を開始できることが望ましいが、上記システムにはこのような機能がない。
【００１０】
本発明の目的は、機能検証の途中経過に応じて機能検証に係る制御を行うことのできる論理回路検証装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明は、ハードウェア記述言語で記述され、前記ハードウェア記述言語による記述中にスクリプト記述が埋め込まれた回路設計情報を記憶する第１の記憶部と、前記第１の記憶部から読み出した前記回路設計情報をコンパイルして、前記回路設計情報のハードウェア記述部分を第１の回路データに変換し、前記回路設計情報のスクリプト記述部分をスクリプトデータに変換するデータ変換部と、前記データ変換部から入力された前記第１の回路データを用いてシミュレーションを行う第１のシミュレーション部と、前記データ変換部から前記スクリプトデータが入力され、前記第１のシミュレーション部からの指示に応じて前記スクリプトデータを処理するスクリプト処理部と、を備える論理回路検証装置を提供する。
【００１２】
本発明は、ハードウェア記述言語で記述され、前記ハードウェア記述言語による記述中にスクリプト記述が埋め込まれた第１の回路設計情報と、前記ハードウェア記述言語で記述された第２の回路設計情報を記憶する第１の記憶部と、前記第１の記憶部から読み出した前記第１の回路設計情報をコンパイルして、前記第１の回路設計情報のハードウェア記述部分を第１の回路データに変換し、前記回路設計情報のスクリプト記述部分をスクリプトデータに変換する第１のデータ変換部と、前記第１の記憶部から読み出した前記第２の回路設計情報をコンパイルして、前記第２の回路設計情報のハードウェア記述部分を第２の回路データに変換する第２のデータ変換部と、前記第１のデータ変換部から入力された前記第１の回路データを用いてシミュレーションを行う第１のシミュレーション部と、前記第１のデータ変換部から前記スクリプトデータが入力され、前記第１のシミュレーション部からの指示に応じて前記スクリプトデータを処理するスクリプト処理部と、前記スクリプト処理部からの指示に応じて、前記第２のデータ変換部から入力された前記第２の回路データを用いてシミュレーションを行う第２のシミュレーション部と、を備える論理回路検証装置を提供する。
【００１３】
上記論理回路検証装置では、前記第１のシミュレーション部は、前記スクリプト処理部による処理の間は前記シミュレーションを一時中断し、前記スクリプト処理部から処理完了通知を受け取ると前記シミュレーションを再開する。
【００１４】
上記論理回路検証装置では、前記第１の記憶部には、前記第１のシミュレーション部によるシミュレーション中に生成されたファイル又はログファイルが格納され、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の記憶部に格納されたファイルを削除又は圧縮する。
【００１５】
上記論理回路検証装置では、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１のシミュレーション部の動作電圧又は動作周波数を制御する。
【００１６】
上記論理回路検証装置は、前記第１のシミュレーション部から転送された前記第１の回路データの一部を用いてシミュレーションを行う第２のシミュレーション部を備え、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の回路データの一部を前記第２のシミュレーション部に転送して分散処理するよう前記第１のシミュレーション部に指示し、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の回路データの一部が転送され次第、前記第１の回路データの一部を用いたシミュレーションを開始するよう前記第２のシミュレーション部に指示する。
【００１７】
上記論理回路検証装置では、前記第２のシミュレーション部は、前記第１の回路データの一部を用いてシミュレーションが終了すると、前記スクリプト処理部に終了通知を送り、前記第１のシミュレーション部にシミュレーション結果を送り、前記スクリプト処理部は、前記終了通知を受け取ると、前記第１のシミュレーション部に分散処理完了通知を送る。
【００１８】
上記論理回路検証装置では、前記第１のシミュレーション部は、前記スクリプト処理部が前記スクリプトデータを処理したことにより一時中断された前記シミュレーションの途中結果を示すシミュレーション情報を出力し、当該論理回路検証装置は、前記第１のシミュレーション部から出力された前記シミュレーション情報を外部出力用のデータ形式に変換するデータ形式変換部と、前記データ形式変換部で変換された外部出力用のシミュレーション情報を前記論理回路検証装置の外部に出力するデータ通信部と、を備える。
【００１９】
上記論理回路検証装置では、前記データ形式変換部は、前記シミュレーション情報をＦＡＸ出力用のデータ形式に変換し、前記データ通信部は、前記外部出力用のシミュレーション情報をＦＡＸで出力する。
【００２０】
上記論理回路検証装置では、前記データ形式変換部は、前記シミュレーション情報を電子メール出力用のデータ形式に変換し、前記データ通信部は、前記外部出力用のシミュレーション情報を電子メールで出力する。
【００２１】
上記論理回路検証装置では、前記データ通信部は、前記シミュレーションの再開又は中止に関する指示を電子メールで受け取り、前記スクリプト処理部は、前記指示に基づいて前記シミュレーションを中止又は再開するよう前記第１のシミュレーション部に指示する。
【００２２】
上記論理回路検証装置では、前記データ形式変換部は、前記シミュレーション情報を音声出力用のデータ形式に変換し、前記データ通信部は、前記外部出力用のシミュレーション情報を音声で出力する。
【００２３】
上記論理回路検証装置では、前記データ通信部は、前記シミュレーションの再開又は中止に関する指示を音声で受け取り、前記スクリプト処理部は、前記指示に基づいて前記シミュレーションを中止又は再開するよう前記第１のシミュレーション部に指示する。
【００２４】
上記論理回路検証装置は、第２の回路データ及び当該第２の回路データの属性情報を記憶する第２の記録部と、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１の回路データの属性情報と前記第２の回路データの属性情報とを比較する比較部と、を備える。
【００２５】
上記論理回路検証装置は、前記第１のシミュレーション部によるシミュレーションで発生した不具合に関する情報を記憶する不具合管理部を備え、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１のシミュレーション部から得られた不具合に関する情報を前記不具合管理部に格納する。
【００２６】
上記論理回路検証装置は、前記第１のシミュレーション部によるシミュレーションで使用されたＩＰの使用実績に関する情報を記憶するＩＰ管理部を備え、前記スクリプト処理部は、前記スクリプトデータを処理することにより、前記第１のシミュレーション部から得られたＩＰの使用実績に関する情報を前記ＩＰ管理部に格納する。
【００２７】
上記論理回路検証装置は、前記回路設計情報中の暗号文を復号する暗号文復号部を備える。
【発明の効果】
【００２８】
本発明に係る論理回路検証装置によれば、シミュレーションの途中経過に応じて他のシミュレーションの実行制御やファイル操作を自動で行うことができる。また、シミュレーションの途中経過を任意に作業者に通知することができる。さらに、遠隔地にて作業者が検証結果を判断しシミュレーションの継続を制御することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施形態について、図面を参照して説明する。
【００３０】
（第１の実施形態）
図１は、本発明に係る第１の実施形態の論理回路検証装置を示すブロック図である。図１に示すように、第１の実施形態の論理回路検証装置は、ファイル記憶部１０と、コンパイラ１２と、ＨＤＬシミュレーション部１５と、スクリプト処理部１６とを備える。
【００３１】
ファイル記憶部１０は、ＨＤＬ記述中にスクリプト記述が埋め込まれているソースコード１１（図２参照）をファイルとして記憶する。また、ファイル記憶部１０には、シミュレーション中に生成されたファイルやログファイル等が格納される。
【００３２】
コンパイラ１２は、ファイル記憶部１０から読み出したソースコード１１のＨＤＬ記述部分をＨＤＬシミュレーション部１５が処理可能な形式にコンパイルし、ソースコード１１のスクリプト記述部分をスクリプト処理部１６が処理可能な形式にコンパイルする。コンパイラ１２がソースコード１１のＨＤＬ記述部分をコンパイルして得られるデータは、図１に示す回路データ１３である。また、コンパイラ１２がソースコード１１のスクリプト記述部分をコンパイルして得られるデータは、図１に示すスクリプトデータ１４である。回路データ１３及びスクリプトデータ１４は、コンパイラ１２内部のメモリに一時格納された後、回路データ１３はＨＤＬシミュレーション部１５に入力され、スクリプトデータ１４はスクリプト処理部１６に入力される。
【００３３】
ＨＤＬシミュレーション部１５は、回路データ１３を用いてシミュレーション（論理回路の機能検証）を行う。回路データ１３中にはスクリプト起動用トリガタグが含まれている。ＨＤＬシミュレーション部１５が回路データ１３中のスクリプト起動用トリガタグを検出すると、ＨＤＬシミュレーション部１５はスクリプト処理部１６を起動する。ＨＤＬシミュレーション部１５によって起動されたスクリプト処理部１６は、スクリプトデータ１４を処理する。スクリプト処理部１６は、スクリプトデータ１４の処理が完了すると、処理完了通知をＨＤＬシミュレーション部１５に送る。
【００３４】
スクリプト処理部１６がスクリプトデータ１４を処理している間、ＨＤＬシミュレーション部１５は、スクリプト処理部１６の処理の終了通知待ち状態となり、シミュレーションを一時中断する。ＨＤＬシミュレーション部１５が、スクリプト処理部１６から処理完了通知を受け取ると、回路データ１３のシミュレーションを再開する。
【００３５】
ＨＤＬ記述中のスクリプト記述は、例えば図２中の「＿＿ｓｃｒｉｐｔ（）」関数である。この関数では、ファイル記憶部１０の空き容量をスクリプト処理部１６が確認する。なお、「＿＿ｓｃｒｉｐｔ（）」という関数名は一例であり、この関数名に限定されない。
【００３６】
以上説明したように、本実施形態の論理回路検証装置によれば、ファイル記憶部１０の空き容量を確認しながらシミュレーションが行われるため、記録媒体の空き容量不足によるシミュレーションのエラーを未然に防ぐことができる。なお、本実施形態では、回路記述をＨＤＬ、回路データをシミュレーションする手段をＨＤＬシミュレーション部としているが、回路記述はＨＤＬよりも高位抽象度の言語でも良く、回路データをシミュレーションする手段も高位抽象度の言語のシミュレータでも良い。
【００３７】
（第２の実施形態）
図３は、本発明に係る第２の実施形態の論理回路検証装置を示すブロック図である。図３に示すように、第２の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備えるスクリプト処理部１６の代わりに、スクリプト処理部２６を備える。この点以外は第１の実施形態と同様であり、図３において、図１と共通する構成要素には同じ参照符号が付されている。
【００３８】
本実施形態のスクリプト処理部２６は、ソースコード１１中に記述されたスクリプトに基づいて、ファイル記憶部１０に格納されているファイルを操作して、シミュレーション中に不要になったファイルを削除したり、シミュレーション中に生成されるログファイルを圧縮する。したがって、本実施形態では、シミュレーションにおける使用ディスク容量を削減することができる。
【００３９】
（第３の実施形態）
図４は、本発明に係る第３の実施形態の論理回路検証装置を示すブロック図である。図４に示すように、第３の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備えるスクリプト処理部１６の代わりに、スクリプト処理部３６を備える。この点以外は第１の実施形態と同様であり、図４において、図１と共通する構成要素には同じ参照符号が付されている。
【００４０】
本実施形態のスクリプト処理部３６は、ソースコード１１中に記述されたスクリプトに基づいて、ＨＤＬシミュレーション部１５の処理性能を制御する。本実施形態によれば、ＨＤＬシミュレーション部１５の処理結果の確認を急がない場合に、ＨＤＬシミュレーション部１５の動作電圧を下げたり、ＨＤＬシミュレーション部１５の動作周波数を低くすることで、ＨＤＬシミュレーション部１５の消費電力を抑えることができる。
【００４１】
（第４の実施形態）
図５は、本発明に係る第４の実施形態の論理回路検証装置を示すブロック図である。図５に示すように、第４の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備えるスクリプト処理部１６の代わりにスクリプト処理部４６を備え、コンパイラ２２と、ＨＤＬシミュレーション部２４とをさらに備える。この点以外は第１の実施形態と同様であり、図４において、図１と共通する構成要素には同じ参照符号が付されている。なお、本実施形態のファイル記憶部２０は、第１のソースコード１１と第２のソースコード２０とを記憶する。
【００４２】
第１の実施形態とほぼ同様に、コンパイラ１２はファイル記憶部２０から第１のソースコード１１を読み出す。コンパイラ１２でのコンパイルによって第１の回路データ１３及びスクリプトデータ１４が得られ、第１の回路データ１３はＨＤＬシミュレーション部１５に入力され、スクリプトデータ１４はスクリプト処理部４６に入力される。本実施形態のスクリプト処理部４６は、第１のソースコード１１中に記述されたスクリプトに基づいて、ＨＤＬシミュレーション部２４を起動する。
【００４３】
一方、コンパイラ２２はファイル記憶部２０から第２のソースコード２１を読み出す。コンパイラ２２でのコンパイルによって第２の回路データ２３が得られ、第２の回路データ２３はＨＤＬシミュレーション部２４に入力される。スクリプト処理部４６によって起動されたＨＤＬシミュレーション部２４は、第２の回路データ２３のシミュレーションを行う。
【００４４】
以上説明したように、本実施形態の論理回路検証装置によれば、２つのテストパターンのシミュレーションを行う場合に、ＨＤＬシミュレーション部１５で代表的なテストパターンの基本部分の確認ができ次第、ＨＤＬシミュレーション部１５の完了を待たずに、類似したテストパターンのシミュレーションをＨＤＬシミュレーション部２４で行える。
【００４５】
なお、本実施形態では、２つのソースコードを例に説明したが、２つに限定されず、３つ以上であっても良い。また、第２ソースコード２１ではスクリプトデータが生成されずスクリプト処理が行われていないが、スクリプト処理部をスクリプト処理部４６と同じ構成で、コンパイラ２２とＨＤＬシミュレーション部２４とに接続することで、スクリプト処理が可能である。
【００４６】
（第５の実施形態）
図６は、本発明に係る第５の実施形態の論理回路検証装置を示すブロック図である。図６に示すように、第５の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備えるスクリプト処理部１６の代わりにスクリプト処理部５６を備え、ＨＤＬシミュレーション部３０を備える。この点以外は第１の実施形態と同様であり、図６において、図１と共通する構成要素には同じ参照符号が付されている。
【００４７】
本実施形態では、ＨＤＬシミュレーション部３０を用いてＨＤＬシミュレーション部１５と並列処理を行うスクリプトがソースコード１１に記述されている。この並列処理を行うスクリプトがスクリプト処理部５６で処理されると、スクリプト処理部５６は、一部回路データ３１をＨＤＬシミュレーション部３０に転送して分散処理するようＨＤＬシミュレーション部１５に指示する。なお、一部回路データ３１は、回路データ１３の一部のデータである。また、スクリプト処理部５６は、ＨＤＬシミュレーション部３０がＨＤＬシミュレーション部１５から一部回路データ３１を受け取り次第、シミュレーションを開始するようＨＤＬシミュレーション部３０に指示する。
【００４８】
ＨＤＬシミュレーション部３０がシミュレーションを終了すると、スクリプト処理部５６に終了通知を送り、ＨＤＬシミュレーション部１５にシミュレーション結果３２を送る。ＨＤＬシミュレーション部３０から終了通知を受け取ったスクリプト処理部５６は、ＨＤＬシミュレーション部１５に分散処理完了通知を送る。分散処理完了通知を受け取った受けたＨＤＬシミュレーション部１５は、ＨＤＬシミュレーション部３０からのシミュレーション結果３２を受け取る。
【００４９】
以上説明したように、本実施形態の論理回路検証装置によれば、ＨＤＬシミュレーション部１５への負荷が重くなる場合、一部の回路データをＨＤＬシミュレーション部３０で分散処理できるため、ＨＤＬシミュレーション部１５の負荷が軽くなる。このため、分散処理を行わない場合に比べシミュレーションを早く終了できる。
【００５０】
なお、本実施形態では、並列処理を行うためのＨＤＬシミュレーション部３０が一つの場合を例に説明したが、２つ以上のＨＤＬシミュレーション部３０を設けても良い。
【００５１】
（第６の実施形態）
図７は、本発明に係る第６の実施形態の論理回路検証装置を示すブロック図である。図７に示すように、第６の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備えるＨＤＬシミュレーション部１５の代わりにＨＤＬシミュレーション部２５を備え、ＦＡＸ用データ変換部４１と、ＦＡＸ通信部４３とをさらに備える。この点以外は第１の実施形態と同様であり、図７において、図１と共通する構成要素には同じ参照符号が付されている。図８は、第６の実施形態の論理回路検証装置とＦＡＸサーバ２とＦＡＸ３とを含むシステムを示すブロック図である。論理回路検証装置１にＦＡＸサーバ２が接続され、ＦＡＸサーバ２にＦＡＸが接続されている。
【００５２】
本実施形態では、ＨＤＬシミュレーション部２５がシミュレーションを一時中断し、ＨＤＬシミュレーション部２５よりシミュレーション情報４０をＦＡＸ用データ変換部４１に送信するスクリプトがソースコード１１に記述されている。このスクリプトがスクリプト処理部１６で処理されると、スクリプト処理部１６は、シミュレーションを中断しＦＡＸ用データ変換部４１へシミュレーション情報４０を送信するようＨＤＬシミュレーション部２５に指示する。本実施形態のＨＤＬシミュレーション部２５は、シミュレーションの結果得られたシミュレーション情報４０をＦＡＸ用データ変換部４１に送る。ＦＡＸ用データ変換部４１は、シミュレーション情報４０をＦＡＸ送信用のデータであるＦＡＸ用シミュレーション情報４２に変換する。ＦＡＸ通信部４３は、ＦＡＸ用シミュレーション情報４２をＦＡＸサーバ２へ送信する。
【００５３】
以上説明したように、本実施形態の論理回路検証装置によれば、遠隔地にいる作業者が、レジスタの値やメモリの値、回路のステータスといったシミュレーションの途中結果に関する情報をＦＡＸで受け取れる。
【００５４】
（第７の実施形態）
図９は、本発明に係る第７の実施形態の論理回路検証装置を示すブロック図である。図９に示すように、第７の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備えるＨＤＬシミュレーション部１５の代わりに、ＨＤＬシミュレーション部３５を備え、電子メール用データ変換部５０と、電子メール通信部５３とをさらに備える。この点以外は第１の実施形態と同様であり、図９において、図１と共通する構成要素には同じ参照符号が付されている。図１０は、第７の実施形態の論理回路検証装置とメールサーバ４とメール受信端末５とを含むシステムを示すブロック図である。論理回路検証装置１にメールサーバ４が相互に接続され、メールサーバ４にメール送受信端末５が相互に接続されている。
【００５５】
本実施形態では、ＨＤＬシミュレーション部３５がシミュレーションを一時中断し、シミュレーション情報を作業者に電子メールで送信し、作業者からのメールを受信して、ＨＤＬシミュレーション部３５がシミュレーションを再開又は終了するスクリプトがソースコード１１に記述されている。このスクリプトがスクリプト処理部１６で処理されると、スクリプト処理部１６は、シミュレーションを中断し電子メール用データ変換部５０へシミュレーション情報を送信するようＨＤＬシミュレーション部３５に指示する。本実施形態のＨＤＬシミュレーション部３５は、レジスタの値やメモリの値、回路のステータスといったシミュレーション情報４０を電子メール用データ変換部５０に送る。電子メール用データ変換部５０は、シミュレーション情報４０を電子メールで送信できる形式のデータである電子メール用シミュレーション情報５１に変換する。電子メール通信部５３は、電子メール用シミュレーション情報５１をメールサーバ４へ送信する。
【００５６】
メール送受信端末５は、メールサーバ４から電子メールを受信する。メール送受信端末５を操作する作業者は、電子メールで受け取ったシミュレーション情報に基づいてシミュレーションを再開するか終了するかを判断する。メール送受信端末５は、この判断結果を含む電子メールをメールサーバ４を介して論理回路検証装置１に送信する。電子メール通信部５３は電子メールを受信し、この電子メール５２を電子メール用データ変換部５０に入力する。電子メール用データ変換部５０は、電子メール５２の内容を解釈し、シミュレーションの再開又は終了の命令に変換して、スクリプト処理部１６へ入力する。スクリプト処理部１６は、再開又は終了の命令をＨＤＬシミュレーション部３５に入力する。
【００５７】
以上説明したように、本実施形態の論理回路検証装置によれば、遠隔地にいる機能検証の作業者が、電子メールを用いてシミュレーションの操作を行える。なお、利用される通信方式は電子メールに限られない。例えば、電子メール用データ変換部５０を電話用データ変換部とし、電子メール通信部５３を電話用通信部とし、図１１に示すように、論理回路検証装置１と電話サーバ６と電話端末７とをシステムとすることもできる。この場合、電話用データ変換部は、文字データであるシミュレーション情報を音声に変換し、外部から得られた音声を文字データに変換する。また、図１１に示すように、論理回路検証装置１に対して、ＦＡＸサーバ、メールサーバ及び電話サーバのいずれか１つだけでなく、３つ全て又はいずれか２つを接続しても良い。
【００５８】
（第８の実施形態）
図１２は、本発明に係る第８の実施形態の論理回路検証装置を示すブロック図である。図１２に示すように、第８の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備える構成要素に加えて、共通ファイル記憶部６２をさらに備える。この点以外は第１の実施形態と同様であり、図１２において、図１と共通する構成要素には同じ参照符号が付されている。
【００５９】
本実施形態では、最新の回路のバージョン情報を共通ファイル記憶部６２に問い合わせ、ＨＤＬシミュレーション部１５でシミュレーションしようとしている回路バージョンと最新回路のバージョン情報とを比較し、ＨＤＬシミュレーション部１５でシミュレーションしようとしている回路のバージョンの方が古い場合は、共通ファイル記憶部６２から最新回路データ６３を受信して、ＨＤＬシミュレーション部１５のシミュレーションを終了するスクリプトがソースコード１１に記述されている。
【００６０】
このスクリプトがスクリプト処理部１６で処理されると、スクリプト処理部１６は、シミュレーション回路のバージョン情報の要求をＨＤＬシミュレーション部１５に対して行う。バージョン情報の要求を受けたＨＤＬシミュレーション部１５は、回路バージョンデータ６０をスクリプト処理部１６に入力する。また、スクリプト処理部１６は、共通ファイル記憶部６２に最新回路のバージョンデータ６１を要求し、ＨＤＬシミュレーション部１５から入力された回路バージョンデータ６０と最新回路のバージョンデータ６１とを比較する。回路バージョンデータ６０の方が古い場合、スクリプト処理部１６は、ファイル記憶部１０へ最新回路データ６３を送信するよう共通ファイル記憶部６２に命令する。この命令を受けた共通ファイル記憶部６２は、ファイル記憶部１０に最新回路データ６３を入力する。
【００６１】
以上説明したように、本実施形態の論理回路検証装置によれば、回路のバージョン確認とファイルの更新を行うスクリプトを回路データの中に埋めておくことで、ファイル記憶部１０より最新回路データ６３をダウンロードし、ＨＤＬシミュレーション部１５が古いバージョンでシミュレーションを行ってしまうというミスを未然に防ぐことができる。
【００６２】
（第９の実施形態）
図１３は、本発明に係る第９の実施形態の論理回路検証装置を示すブロック図である。図１３に示すように、第９の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備える構成要素に加えて、不具合管理部７２をさらに備える。この点以外は第１の実施形態と同様であり、図１３において、図１と共通する構成要素には同じ参照符号が付されている。
【００６３】
本実施形態では、ソースコード１１のＨＤＬ記述部分に、正常動作時には発生しえない信号状態の組み合わせ等を不具合と定義し、その定義された不具合が発生した場合にＨＤＬシミュレーション部１５が不具合詳細内容をスクリプト処理部１６に入力し、スクリプト処理部１６が不具合管理部７２に不具合詳細内容７１を入力するスクリプトが記述されている。
【００６４】
ＨＤＬシミュレーション部１５でのシミュレーション中に不具合が発生すると、上記スクリプトがスクリプト処理部１６で処理される。このとき、スクリプト処理部１６は、ＨＤＬシミュレーション部１５に対して不具合詳細内容の要求を行う。不具合詳細内容の要求を受けたＨＤＬシミュレーション部１５は、不具合発生時の不具合発生部分周辺の回路の状態を示す不具合詳細内容７０をスクリプト処理部１６に送る。スクリプト処理部１６は、不具合詳細内容７１を不具合管理部７２に格納する。不具合管理部７２は、送られた不具合詳細内容７１を記憶する。
【００６５】
以上説明したように、本実施形態の論理回路検証装置によれば、作業者が回路の状態に基づいて不具合と登録していた回路を論理回路検証装置でシミュレーションすることにより、不具合登録の漏れを防止でき、不具合登録工数を削減できる。
【００６６】
（第１０の実施形態）
図１４は、本発明に係る第１０の実施形態の論理回路検証装置を示すブロック図である。図１４に示すように、第１０の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備える構成要素に加えて、ＩＰ管理部８２をさらに備える。この点以外は第１の実施形態と同様であり、図１４において、図１と共通する構成要素には同じ参照符号が付されている。
【００６７】
本実施形態では、ＩＰの使用実績をＩＰ管理部８２に報告させるスクリプト記述を埋めておく。ＨＤＬシミュレーション部１５でＩＰのシミュレーションが行われたときに、スクリプト処理部１６がこのスクリプトを処理する。このとき、スクリプト処理部１６は、ＨＤＬシミュレーション部１５に対してＩＰ使用実績の要求を行う。ＩＰ使用実績要求を受けたＨＤＬシミュレーション部１５は、ＩＰ使用実績データ８０をスクリプト処理部１６に送る。スクリプト処理部１６は、ＩＰ使用実績データ８１をＩＰ管理部８２に送る。ＩＰ管理部８２は、送られたＩＰ使用実績データ８１を登録する。
【００６８】
以上説明したように、本実施形態の論理回路検証装置によれば、ＩＰ供給元がＩＰの使用実績データ８１を入手できる。なお、ＩＰ使用実績データ８１は、ＩＰがシミュレーションで使用された機能や、シミュレーション時の設定パラメータ、シミュレーション頻度等の情報である。
【００６９】
（第１１の実施形態）
図１５は、本発明に係る第１１の実施形態の論理回路検証装置を示すブロック図である。図１５に示すように、第１１の実施形態の論理回路検証装置は、第１の実施形態の論理回路検証装置が備える構成要素に加えて、デコーダ９２をさらに備える。この点以外は第１の実施形態と同様であり、図１５において、図１と共通する構成要素には同じ参照符号が付されている。
【００７０】
コンパイラ１２は、コンパイルの際に暗号文９１を検出すると、暗号文９１をデコーダ９２に入力する。デコーダ９２は、暗号文９１を復号して平文９０をコンパイラ１２に入力する。コンパイラ１２は、平文９０をコンパイルする。
【００７１】
以上説明したように、本実施形態の論理回路検証装置によれば、スクリプト記述を暗号化できる。このため、ソースコード１１のリリース元が、シミュレーションを実施する者に内容を知られたくないスクリプトを埋め込むことができる。
【産業上の利用可能性】
【００７２】
本発明に係る論理回路検証装置は、シミュレーションの途中経過に応じて他のシミュレーションの実行制御やファイル操作を自動で行うことができる、論理回路の検証装置（ＨＤＬシミュレータ）として有用である。
【図面の簡単な説明】
【００７３】
【図１】本発明に係る第１の実施形態の論理回路検証装置を示すブロック図
【図２】図１の論理回路検証装置におけるソースコードの例
【図３】本発明に係る第２の実施形態の論理回路検証装置を示すブロック図
【図４】本発明に係る第３の実施形態の論理回路検証装置を示すブロック図
【図５】本発明に係る第４の実施形態の論理回路検証装置を示すブロック図
【図６】本発明に係る第５の実施形態の論理回路検証装置を示すブロック図
【図７】本発明に係る第６の実施形態の論理回路検証装置を示すブロック図
【図８】第６の実施形態の論理回路検証装置とＦＡＸサーバとＦＡＸとを含むシステムを示すブロック図
【図９】本発明に係る第７の実施形態の論理回路検証装置を示すブロック図
【図１０】第７の実施形態の論理回路検証装置とメールサーバとメール受信端末とを含むシステムを示すブロック図
【図１１】図８及び図１０に電話サーバ及び電話端末を加えたシステムを示すブロック図
【図１２】本発明に係る第８の実施形態の論理回路検証装置を示すブロック図
【図１３】本発明に係る第９の実施形態の論理回路検証装置を示すブロック図
【図１４】本発明に係る第１０の実施形態の論理回路検証装置を示すブロック図
【図１５】本発明に係る第１１の実施形態の論理回路検証装置を示すブロック図
【符号の説明】
【００７４】
１０  ファイル記憶部
１２，２２  コンパイラ
１５，２４，３０，２５，３５  ＨＤＬシミュレーション部
１６，２６，３６，４６，５６  スクリプト処理部
４１  ＦＡＸ用データ変換部
４３  ＦＡＸ通信部
５０  電子メール用データ変換部
５３  電子メール通信部
６２  共通ファイル記憶部
７２  不具合管理部
８２  ＩＰ管理部
９２  デコーダ
【図１】
2008070962.tif 000003
【図２】
2008070962.tif 000004
【図３】
2008070962.tif 000005
【図４】
2008070962.tif 000006
【図５】
2008070962.tif 000007
【図６】
2008070962.tif 000008
【図７】
2008070962.tif 000009
【図８】
2008070962.tif 000010
【図９】
2008070962.tif 000011
【図１０】
2008070962.tif 000012
【図１１】
2008070962.tif 000013
【図１２】
2008070962.tif 000014
【図１３】
2008070962.tif 000015
【図１４】
2008070962.tif 000016
【図１５】
2008070962.tif 000017