(57)【要約】【課題】半導体集積回路に対する高速な動作検証を実現し、且つ、その動作検証に関して柔軟性及び制御性を確保する。【解決手段】回路動作検証システムは、計算機と、被テスト回路が構成されたプログラマブルロジックデバイスと、被テスト回路の動作検証を行うテストベンチ部と、を備える。テストベンチ部は、計算機がソフトウェアを実行することにより実現されるソフトウェア部と、被テスト回路と共にプログラマブルロジックデバイス上に構成されたハードウェア部と、を備える。ハードウェア部は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行うハードウェア機能を有する。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア部は、制御パラメータを可変に設定する。【選択図】図１
2011203857.tif 000002
【特許請求の範囲】
【請求項１】
計算機と、
被テスト回路が構成されたプログラマブルロジックデバイスと、
前記被テスト回路の動作検証を行うテストベンチ部と
を備え、
前記テストベンチ部は、
前記計算機がソフトウェアを実行することにより実現されるソフトウェア部と、
前記被テスト回路と共に前記プログラマブルロジックデバイス上に構成されたハードウェア部と
を備え、
前記ハードウェア部は、テストパタンを生成し、前記テストパタンを前記被テスト回路に入力することによって前記動作検証を行うハードウェア機能を有し、
前記ハードウェア機能は、制御パラメータを変えることによって制御可能であり、
前記ソフトウェア部は、前記制御パラメータを可変に設定する
回路動作検証システム。
【請求項２】
請求項１に記載の回路動作検証システムであって、
前記テストパタンは、ランダムなテストパタンであり、
前記動作検証は、ランダム検証である
回路動作検証システム。
【請求項３】
被テスト回路の動作検証を行う環境を構築する検証環境構築方法であって、
（Ａ）前記動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップと、
ここで、
前記シナリオは、プログラム言語で記述され、前記動作検証の機能を表す関数を含んでおり、
前記関数及びそれに対応するハードウェアは、データベースにおいて定義されており、
（Ｂ）前記データベースを参照しながら前記シナリオを分析することによって、前記動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップと、
ここで、
前記ハードウェア機能は、テストパタンを生成し、前記テストパタンを前記被テスト回路に入力することによって前記動作検証を行い、
前記ハードウェア機能は、制御パラメータを変えることによって制御可能であり、
前記ソフトウェア機能は、前記制御パラメータを可変に設定し、
（Ｃ）計算機によって実行され、前記ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、
（Ｄ）前記ハードウェア機能及び前記被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと
を含む
検証環境構築方法。
【請求項４】
請求項３に記載の検証環境構築方法であって、
前記テストパタンは、ランダムなテストパタンであり、
前記動作検証は、ランダム検証である
検証環境構築方法。
【請求項５】
請求項３又は４に記載の検証環境構築方法をコンピュータに実行させる
検証環境構築プログラム。
【請求項６】
被テスト回路の動作検証を行う回路動作検証方法であって、
（ａ）前記動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップと、
ここで、
前記シナリオは、プログラム言語で記述され、前記動作検証の内容を表す関数を含んでおり、
前記関数及びそれに対応するハードウェアは、データベースにおいて定義されており、
（ｂ）前記データベースを参照しながら前記シナリオを分析することによって、前記動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップと、
ここで、
前記ハードウェア機能は、テストパタンを生成し、前記テストパタンを前記被テスト回路に入力することによって前記動作検証を行い、
前記ハードウェア機能は、制御パラメータを変えることによって制御可能であり、
前記ソフトウェア機能は、前記制御パラメータを可変に設定し、
（ｃ）計算機によって実行され、前記ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、
（ｄ）前記ハードウェア機能及び前記被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと、
（ｅ）前記コンフィグレーションデータを前記プログラマブルロジックデバイスに供給することによって、前記プログラマブルロジックデバイス上に前記被テスト回路及び前記ハードウェア機能を構成するステップと、
（ｆ）前記プログラマブルロジックデバイスを動作させるステップと、
（ｇ）前記計算機で前記ソフトウェア実行データを実行し、前記制御パラメータを可変に設定するステップと
を含む
回路動作検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の動作検証を行う技術に関する。
【背景技術】
【０００２】
半導体集積回路の動作検証（論理検証）を行うために、テストベンチが一般的に利用されている。動作検証の対象である被テスト回路は、以下「ＤＵＴ（Ｄｅｖｉｃｅ  Ｕｎｄｅｒ  Ｔｅｓｔ）」と参照される。ＤＵＴの大規模化・複雑化に伴い、テストベンチの開発も困難になってきている。
【０００３】
また、動作検証の一種として「ランダム検証」が知られている。ランダム検証では、ＤＵＴにランダムなテストパタンを与えることにより、動作検証が網羅的に実施される。ランダム検証において十分な網羅率（カバレッジ）を実現するためには、非常に多くのランダムテストパタンをＤＵＴに与える必要がある。従って、動作検証を高速に実行できるテストベンチを開発することが重要である。
【０００４】
特許文献１（特開２００６−７９４１７号公報）によれば、テストベンチ部は、シミュレータ上に構築される。一方、ＤＵＴは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上のハードウェアエミュレータで実現される。テストパタン及びクロック信号は、シミュレータ上のテストベンチ部から、ＦＰＧＡ上のＤＵＴに供給される。
【０００５】
特許文献２（特開２００５−２５１２１６号公報）によれば、テストベンチ記述構造の解析が行われ、テストベンチ機能の全てがハードウェアエミュレータで実現される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−７９４１７号公報
【特許文献２】特開２００５−２５１２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の特許文献１によれば、テストパタン及びクロック信号は、シミュレータ上のテストベンチ部から、ＦＰＧＡ上のＤＵＴに供給される。この場合、テストベンチ部自体のシミュレーション時間、及び、シミュレータとＦＰＧＡとの間のデータ通信時間が、ボトルネックとなる。よって、動作検証の高速化は困難である。
【０００８】
上述の特許文献２によれば、テストベンチ機能の全てがハードウェアエミュレータで実現される。この場合、テストパタンやシナリオといった検証条件が固定されてしまい、動作検証の柔軟性が損なわれる。検証条件を変更するためには、テストベンチ記述構造の作成及び解析を最初からやり直す必要があり、時間がかかる。
【課題を解決するための手段】
【０００９】
本発明の１つの観点において、回路動作検証システムが提供される。その回路動作検証システムは、計算機と、被テスト回路が構成されたプログラマブルロジックデバイスと、被テスト回路の動作検証を行うテストベンチ部と、を備える。テストベンチ部は、計算機がソフトウェアを実行することにより実現されるソフトウェア部と、被テスト回路と共にプログラマブルロジックデバイス上に構成されたハードウェア部と、を備える。ハードウェア部は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行うハードウェア機能を有する。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア部は、制御パラメータを可変に設定する。
【００１０】
本発明の他の観点において、被テスト回路の動作検証を行う環境を構築する検証環境構築方法が提供される。検証環境構築方法は、（Ａ）動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップを含む。シナリオは、プログラム言語で記述され、動作検証の機能を表す関数を含んでいる。関数及びそれに対応するハードウェアは、データベースにおいて定義されている。検証環境構築方法は、更に、（Ｂ）そのデータベースを参照しながらシナリオを分析することによって、動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップを含む。ハードウェア機能は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行う。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア機能は、制御パラメータを可変に設定する。検証環境構築方法は、更に、（Ｃ）計算機によって実行され、ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、（Ｄ）ハードウェア機能及び被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと、を含む。
【００１１】
本発明の更に他の観点において、被テスト回路の動作検証を行う回路動作検証方法が提供される。回路動作検証方法は、（ａ）動作検証のシナリオを示すシナリオデータを記憶装置から読み出すステップを含む。シナリオは、プログラム言語で記述され、動作検証の内容を表す関数を含んでいる。関数及びそれに対応するハードウェアは、データベースにおいて定義されている。回路動作検証方法は、更に、（ｂ）そのデータベースを参照しながらシナリオを分析することによって、動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現されるハードウェア機能とに分類するステップを含む。ハードウェア機能は、テストパタンを生成し、テストパタンを被テスト回路に入力することによって動作検証を行う。そのハードウェア機能は、制御パラメータを変えることによって制御可能である。ソフトウェア機能は、制御パラメータを可変に設定する。回路動作検証方法は、更に、（ｃ）計算機によって実行され、ソフトウェア機能を提供するソフトウェア実行データを生成するステップと、（ｄ）ハードウェア機能及び被テスト回路をプログラマブルロジックデバイス上に構成するコンフィグレーションデータを生成するステップと、を含む。回路動作検証方法は、更に、（ｅ）コンフィグレーションデータをプログラマブルロジックデバイスに供給することによって、プログラマブルロジックデバイス上に被テスト回路及びハードウェア機能を構成するステップと、（ｆ）プログラマブルロジックデバイスを動作させるステップと、（ｇ）計算機でソフトウェア実行データを実行し、制御パラメータを可変に設定するステップと、を含む。
【発明の効果】
【００１２】
本発明によれば、半導体集積回路に対する高速な動作検証を実現し、且つ、その動作検証に関して柔軟性及び制御性を確保することが可能である。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態に係る回路動作検証システムの構成を示すブロック図である。
【図２】図２は、本発明の実施の形態におけるテストベンチハードウェア部の一例を示すブロック図である。
【図３】図３は、本発明の実施の形態に係る検証環境構築システムの構成を示すブロック図である。
【図４】図４は、本発明の実施の形態に係る検証環境構築処理及び動作検証処理を示すフローチャートである。
【図５】図５は、本発明の実施の形態における機能要素データベース及びシナリオデータを示す概念図である。
【図６】図６は、本発明の実施の形態における機能要素データベース及びシナリオデータの一例を示す概念図である。
【図７】図７は、本発明の実施の形態におけるステップＳ２０を示すブロック図である。
【図８】図８は、本発明の実施の形態におけるアドレスマップの一例を示している。
【図９】図９は、本発明の実施の形態におけるＳＷ機能データ中のシナリオ制御部の一例を示している。
【図１０】図１０は、本発明の実施の形態におけるＳＷ機能データ中のパラメータ設定部の一例を示している。
【図１１】図１１は、本発明の実施の形態におけるＨＷ機能データの一例を示す概念図である。
【図１２】図１２は、本発明の実施の形態におけるステップＳ３０を示すブロック図である。
【図１３】図１３は、本発明の実施の形態におけるステップＳ４０を示すブロック図である。
【発明を実施するための形態】
【００１４】
添付図面を参照して、本発明の実施の形態を説明する。
【００１５】
１．回路動作検証システム
図１は、本実施の形態において被テスト回路（ＤＵＴ）の動作検証を行う回路動作検証システム１００の構成を示すブロック図である。回路動作検証システム１００は、計算機２００及びプログラマブルロジックデバイス（ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）を備えている。本実施の形態では、プログラマブルロジックデバイスとして例えばＦＰＧＡ３２０が用いられる。
【００１６】
計算機２００は、通信インタフェース２１０、メモリ２２０、及びＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２３０を備えている。通信インタフェース２１０は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）等の汎用インタフェースである。
【００１７】
ＦＰＧＡボード３００上には、通信インタフェース３１０及びＦＰＧＡ３２０が搭載されている。通信インタフェース３１０は、ＵＳＢやＰＣＩ等の汎用インタフェースである。この通信インタフェース３１０は、ＦＰＧＡ３２０及び計算機２００の通信インタフェース２１０と接続されている。ＤＵＴは、ＦＰＧＡ上に構成（構築）されている。
【００１８】
回路動作検証システム１００は更に、ＤＵＴの動作検証を行うテストベンチ部を備えている。以下の説明では、動作検証の例として「ランダム検証」を考える。この場合、テストベンチ部は、ランダムなテストパタンを生成し、そのランダムテストパタンをＤＵＴに入力することによってランダム検証を行う。
【００１９】
本実施の形態によれば、テストベンチ部は、ハードウェアにより実現されるテストベンチハードウェア部ＴＢＨＷと、ソフトウェアにより実現されるテストベンチソフトウェア部ＴＢＳＷとの組み合わせにより構成される。
【００２０】
ハードウェアであるテストベンチハードウェア部ＴＢＨＷは、ＦＰＧＡ３２０上に構成される。つまり、ＦＰＧＡ３２０上には、ＤＵＴとテストベンチハードウェア部ＴＢＨＷが構成される。より詳細には、ＤＵＴとテストベンチハードウェア部ＴＢＨＷをＦＰＧＡ３２０上に構成するためのＦＰＧＡデータ（コンフィグレーションデータ）ＤＦＰが作成され、そのＦＰＧＡデータＤＦＰがＦＰＧＡ３２０に入力される。それにより、ＤＵＴ及びテストベンチハードウェア部ＴＢＨＷがＦＰＧＡ３２０上に構成（構築）される。
【００２１】
テストベンチハードウェア部ＴＢＨＷは、ＤＵＴに接続されている。このテストベンチハードウェア部ＴＢＨＷの機能は、ランダムテストパタンを生成し、そのランダムテストパタンをＤＵＴに入力することによって動作検証を行うことである。このようなテストベンチハードウェア部ＴＢＨＷの機能は、以下「ハードウェア機能」と参照される。ランダムテストパタンの生成や入力がＦＰＧＡ３２０上のハードウェア機能により実行されるため、高速なランダム検証が可能となる。
【００２２】
その一方で、テストベンチハードウェア部ＴＢＨＷのハードウェア機能は、制御パラメータに依存しており、制御パラメータを変えることによって制御可能である。例えば、制御パラメータを変えることによって、テストベンチハードウェア部ＴＢＨＷが生成するランダムテストパタンの系列を変えることができる。そのような制御パラメータの設定を行うのが、テストベンチソフトウェア部ＴＢＳＷである。
【００２３】
テストベンチソフトウェア部ＴＢＳＷは、計算機２００上に構築される。より詳細には、テストベンチソフトウェア部ＴＢＳＷは、計算機２００（ＣＰＵ２３０）がソフトウェアを実行することにより実現される。図１に示されるＳＷ実行データＤＳＷは、そのソフトウェアの実行データである。ＳＷ実行データＤＳＷは、メモリ２２０にロードされ、ＣＰＵ２３０によって実行される。それにより、テストベンチソフトウェア部ＴＢＳＷが実現される。
【００２４】
テストベンチソフトウェア部ＴＢＳＷは、通信インタフェース２１０及び通信インタフェース３１０を介して、テストベンチハードウェア部ＴＢＨＷと通信可能に接続されている。このテストベンチソフトウェア部ＴＢＳＷは、通信インタフェースを介して、上述の制御パラメータをテストベンチハードウェア部ＴＢＨＷに供給することができる。つまり、テストベンチソフトウェア部ＴＢＳＷは、通信インタフェースを介して、制御パラメータを可変に設定することができる。これにより、動作検証に関して柔軟性（ｆｌｅｘｉｂｉｉｌｔｙ）及び制御性（ｃｏｎｔｒｏｌｌａｂｉｌｉｔｙ）を確保することが可能となる。
【００２５】
図２は、テストベンチハードウェア部ＴＢＨＷの一例を示している。図２において、テストベンチハードウェア部ＴＢＨＷは、アドレスデコーダ３２１、入力データ生成モジュール３２２、入力制御モジュール３２３、及び結果比較モジュール３２４を備えている。
【００２６】
入力データ生成モジュール３２２は、ランダムテストパタンを生成する回路であり、例えばシフトレジスタを含んでいる。入力制御モジュール３２３は、入力データ生成モジュール３２２によって生成されたランダムテストパタンをＤＵＴに入力する回路である。結果比較モジュール３２４は、比較値の生成や、ＤＵＴからの出力値と比較値との比較などを行う回路であり、例えばＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）生成回路を含んでいる。アドレスデコーダ（アドレスメモリ）３２１は、後述されるアドレスマップに応じて各回路に接続されている。テストベンチソフトウェア部ＴＢＳＷは、このアドレスデコーダ３２１を通して各回路に制御パラメータを供給することができる。
【００２７】
例えば、ＤＵＴはスキャンチェーンを含んでおり、スキャンテスト可能である。テストベンチソフトウェア部ＴＢＳＷは、ＤＵＴの動作モードを切り替える。テストベンチハードウェア部ＴＢＨＷは、スキャンチェーンにランダムテストパタンを入力し、スキャンテストを実施する。そして、そのスキャンテストの結果が、テストベンチソフトウェア部ＴＢＳＷにフィードバックされる。テストベンチソフトウェア部ＴＢＳＷは、そのスキャンテストの結果に基いて制御パラメータを変える。例えば、テストベンチソフトウェア部ＴＢＳＷは、入力データ生成モジュール３２２に他の系列のランダムテストパタンを生成させる。
【００２８】
以上に説明されたように、本実施の形態によれば、テストパタンの生成や入力がＦＰＧＡ３２０上のハードウェア機能により実行される。言い換えれば、ソフトウェア側からのパラメータ設定以外、全ての動作検証処理はハードウェア側で実行される。検証処理中に計算機２００との同期処理は発生しない。従って、高速動作検証が可能となる。その一方で、生成されるテストパタンの系列などは、計算機２００上のソフトウェア側から制御可能である。つまり、テストパタンやシナリオといった検証条件を柔軟に設定することが可能である。このように、本実施の形態によれば、半導体集積回路に対する高速な動作検証を実現し、且つ、その動作検証に関して柔軟性及び制御性を確保することが可能である。
【００２９】
２．動作検証環境の構築
次に、上述のＳＷ実行データＤＳＷ及びＦＰＧＡデータＤＦＰを作成し、動作検証環境を構築するための手法を詳細に説明する。
【００３０】
図３は、ＳＷ実行データＤＳＷ及びＦＰＧＡデータＤＦＰを作成し、動作検証環境を構築する「検証環境構築システム１」の構成を示している。検証環境構築システム１は、コンピュータシステムであり、処理装置２、記憶装置３、入力装置４、及び出力装置５を備えている。処理装置２は、ＣＰＵを含んでいる。記憶装置３として、ＲＡＭやＨＤＤが例示される。入力装置４として、キーボードやマウスが例示される。出力装置５として、ディスプレイが例示される。
【００３１】
記憶装置３には、ＤＵＴ機能仕様データＳＰＥＣ、機能要素データベースＤＢ、シナリオデータＳＮＲ、ＳＷ機能データＦＳＷ、ＨＷ機能データＦＨＷ、ＳＷ実行データＤＳＷ、ＤＵＴデータＤＤ、ＦＰＧＡデータＤＦＰ等が格納される。各データの詳細は後述される。
【００３２】
処理装置２は、シナリオ作成部１０、シナリオ分析部２０、ＳＷ実行データ生成部３０、ＦＰＧＡデータ生成部４０等の機能ブロックを備えている。これら機能ブロックは、典型的には、処理装置２が検証環境構築プログラムＰＲＯＧを実行することにより実現される。検証環境構築プログラムＰＲＯＧは、検証環境構築システム１（処理装置２）によって実行されるコンピュータプログラムであり、記憶装置３に格納される。検証環境構築プログラムＰＲＯＧは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。
【００３３】
図４は、本実施の形態に係る検証環境構築処理及び動作検証処理を示すフローチャートである。以下、本実施の形態に係る検証環境構築処理を詳細に説明する。尚、動作検証はランダム検証であるとする。
【００３４】
２−１．ステップＳ１０：シナリオ作成
シナリオ作成部１０は、動作検証のシナリオを示すシナリオデータＳＮＲを作成し、そのシナリオデータＳＮＲを記憶装置３に格納する。シナリオデータＳＮＲの作成にあたり、シナリオ作成部１０は、記憶装置３に格納されているＤＵＴ機能仕様データＳＰＥＣ及び機能要素データベースＤＢを参照する。ＤＵＴ機能仕様データＳＰＥＣは、検証対象であるＤＵＴの機能仕様を示す。機能要素データベースＤＢは、ランダム検証に必要な様々な検証機能が定義されたデータベースである。シナリオ作成部１０は、ユーザとの対話を通して、必要な検証機能を選択し、シナリオに組み込んでいく。
【００３５】
図５は、機能要素データベースＤＢ及びシナリオデータＳＮＲを概念的に示している。図６は、機能要素データベースＤＢ及びシナリオデータＳＮＲの一例を示している。
【００３６】
２−１−１．機能要素データベースＤＢ
機能要素データベースＤＢでは、ランダム検証毎に共通な機能要素が、関数やライブラリとして定義されている。また、それら機能要素に対応する機能要素ハードウェアや機能要素ソフトウェアも定義されている。尚、機能要素ハードウェアは、ソフトウェアからパラメータ設定可能である。まず、図５及び図６を参照して、機能要素データベースＤＢに含まれる様々な関数、ライブラリ、機能要素ハードウェア、機能要素ソフトウェアの例を説明する。
【００３７】
＜ランダムパラメータ生成ライブラリ４１０＞
ランダムパラメータ生成ライブラリ４１０は、例えば、ＤＥＦＩＮＥ＿ＲＡＮＤ（ＰａｒａｍＮａｍｅ，ＢｉｔＷｉｄｔｈ）で表される。このランダムパラメータ生成ライブラリ４１０は、変数（ＰａｒａｍＮａｍｅ）を定義し、指定されたビット幅（ＢｉｔＷｉｄｔｈ）のランダム値を生成する。
【００３８】
＜入力データ生成要素４２０＞
入力データ生成要素４２０は、入力データ生成関数４２１及び入力データ生成ハードウェア４２２を含んでいる。入力データ生成関数４２１は、ＤＵＴに入力されるランダムテストパタンを生成する。例えば、入力データ生成関数４２１は、ＧｅｎＩｎｐｕｔＤａｔａ（ＢｉｔＷｉｄｔｈ，Ｓｉｚｅ，ＲａｎｄＳｅｑ，Ｓｅｅｄ）で表される。ここで、“ＢｉｔＷｉｄｔｈ”はデータ幅であり、“Ｓｉｚｅ”はサイズであり、“ＲａｎｄＳｅｑ”はランダム系列であり、“Ｓｅｅｄ”はランダムシードである。入力データ生成ハードウェア４２２は、入力データ生成関数に対応する機能要素ハードウェアである。入力データ生成ハードウェア４２２は、例えば、シフトレジスタである。
【００３９】
＜ＨＷ設定ライブラリ４３０＞
ＨＷ設定ライブラリ４３０は、例えば、ＳｅｔＰａｒａｍ（ＰａｒａｍＮａｍｅ）で表される。このＨＷ設定ライブラリ４３０は、指定された変数（ＰａｒａｍＮａｍｅ）にデータを設定する。
【００４０】
＜実行制御ライブラリ４４０＞
実行制御ライブラリ４４０は、シミュレーションを実行する。
【００４１】
＜結果チェック要素４５０＞
結果チェック要素４５０は、結果比較関数４５１及び比較値生成ハードウェア４５２を含んでいる。結果比較関数４５１は、動作検証の結果をチェックする。比較値生成ハードウェア４５２は、結果比較関数４５１に関連付けられた機能要素ハードウェアである。比較値生成ハードウェア４５２は、例えば、ＣＲＣ生成回路である。
【００４２】
＜ＨＷアクセスライブラリ４６０＞
ＨＷアクセスライブラリ４６０は、例えば、ＨＷ＿Ｗｒｉｔｅ（Ａｄｄｒｅｓｓ，ｄａｔａ）で表される。このＨＷアクセスライブラリ４６０は、指定されたアドレス（Ａｄｄｒｅｓｓ）に指定されたデータ（ｄａｔａ）を書き込む。このＨＷアクセスライブラリ４６０は、入力データ生成関数４２１、ＨＷ設定ライブラリ４３０、実行制御ライブラリ４４０、結果比較関数４５１等に関連付けられている。
【００４３】
＜通信ＩＦ要素４７０＞
通信ＩＦ要素４７０は、通信ＩＦソフトウェア４７１及び通信ＩＦハードウェア４７２を含んでいる。通信ＩＦソフトウェア４７１は、通信インタフェース用のソフトウェアである。通信ＩＦソフトウェア４７１として、ドライバＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）が例示される。通信ＩＦハードウェア４７２は、通信インタフェース用のハードウェアである。通信ＩＦハードウェア４７２として、ＰＣＩコントロールハードウェアが例示される。
【００４４】
２−１−２．シナリオデータＳＮＲ
シナリオデータＳＮＲは、動作検証のシナリオを示す。シナリオとは、どのような順番でどのような検証を行うか、を意味する。シナリオデータＳＮＲの作成にあたり、シナリオ作成部１０は、上述の機能要素データベースＤＢを参照する。そして、シナリオ作成部１０は、ユーザとの対話を通して、機能要素データベースＤＢから必要な検証機能を選択し、シナリオに組み込んでいく。つまり、シナリオは、上述の機能要素データベースＤＢ中で定義されている関数やライブラリを用いることにより、プログラム言語で記述される。シナリオは、所望の動作検証の機能を表す関数を含んでいる。図５及び図６を参照して、シナリオの一例を説明する。
【００４５】
＜ランダムパラメータ生成処理５１０＞
ランダムパラメータ生成処理５１０は、ランダムパラメータを生成する。図５及び図６に示されるように、このランダムパラメータ生成処理５１０は、機能要素データベースＤＢ中の上記ランダムパラメータ生成ライブラリ４１０を用いて記述される。例えば図６において“ｐａｒａｍ１”はサイズである。
【００４６】
＜入力データ生成設定処理５２０＞
入力データ生成設定処理５２０は、ＤＵＴに入力されるランダムテストパタンを生成する。図５及び図６に示されるように、入力データ生成設定処理５２０は、機能要素データベースＤＢ中の上記入力データ生成関数４２１を用いて記述される。例えば図６のＧｅｎＩｎｐｕｔＤａｔａ（３２，ｐａｒａｍ１，１，０ｘ１２３４５６７８）において、“３２”はデータ幅（ｂｉｔ）であり、“ｐａｒａｍ１”はサイズであり、“１”はランダム系列であり、“０ｘ１２３４５６７８”はランダムシードである。また、ＧｅｎＩｎｐｕｔＤａｔａ（３２，ｐａｒａｍ１，Ｘ，ＸＸＸ）において、ランダム系列＝“Ｘ”及びランダムシード＝“ＸＸＸ”は、フィードバックを考慮した値に設定される。尚、図６に示されるように、入力データ生成関数４２１において、ＨＷアクセスライブラリ４６０（ＨＷ＿Ｗｒｉtｅ）が４回使用されている。従って、入力データ生成設定処理５２０におけるアドレス使用数は４個である。
【００４７】
＜ＨＷ（ＤＵＴ）パラメータ設定処理５３０＞
ＨＷ（ＤＵＴ）パラメータ設定処理５３０は、ＤＵＴのパラメータを設定する。図５及び図６に示されるように、ＨＷ（ＤＵＴ）パラメータ設定処理５３０は、機能要素データベースＤＢ中の上記ＨＷ設定ライブラリ４３０を用いて記述される。尚、図６に示されるように、ＨＷ設定ライブラリ４３０において、ＨＷアクセスライブラリ４６０（ＨＷ＿Ｗｒｉtｅ）が１回使用されている。また、ＨＷ（ＤＵＴ）パラメータ設定処理５３０において、ＨＷ設定ライブラリ４３０（ＳｅｔＰａｒａｍ）がＮ回使用されている。従って、ＨＷ（ＤＵＴ）パラメータ設定処理５３０におけるアドレス使用数はＮ個である。
【００４８】
＜シミュレーション実行処理５４０＞
シミュレーション実行処理５４０は、シミュレーションを実行する。図５に示されるように、シミュレーション実行処理５４０は、機能要素データベースＤＢ中の上記実行制御ライブラリ４４０を用いて記述される。
【００４９】
＜結果チェック処理５５０＞
結果チェック処理５５０は、動作検証の結果をチェックする。図５に示されるように、結果チェック処理５５０は、機能要素データベースＤＢ中の上記結果比較関数４５１を用いて記述される。
【００５０】
尚、シナリオデータＳＮＲは、ＤＵＴに関する情報５６０（接続情報やアドレス情報）も含んでいる。
【００５１】
２−２．ステップＳ２０：シナリオ分析
図７は、ステップＳ２０を示している。ステップＳ２０において、シナリオ分析部２０は、上述のシナリオデータＳＮＲを記憶装置３から読み出す。そして、シナリオ分析部２０は、機能要素データベースＤＢを参照しながら、シナリオに含まれる機能要素を分析する。それにより、シナリオ分析部２０は、シナリオで示される動作検証の機能を、ソフトウェアにより実現されるソフトウェア機能と、ハードウェアにより実現可能なハードウェア機能とに分類する。
【００５２】
上述の通り、ハードウェア機能は、ランダムテストパタンを生成し、そのランダムテストパタンをＤＵＴに入力することによってランダム検証を行う。そのハードウェア機能は、制御パラメータに依存しており、制御パラメータを変えることによって制御可能である。ソフトウェア機能は、制御パラメータを可変に設定する。シナリオ分析部２０は、シナリオを分析することによってソフトウェア機能及びハードウェア機能を抽出し、それぞれを示すＳＷ機能データＦＳＷ及びＨＷ機能データＦＨＷを作成する。ＳＷ機能データＦＳＷ及びＨＷ機能データＦＨＷは、記憶装置３に格納される。
【００５３】
より詳細には、シナリオ分析部２０はまず、アドレスマップ６００を生成する。図８は、図６で示された例の場合に生成されるアドレスマップ６００を示している。上述の通り、入力データ生成設定処理５２０におけるアドレス使用数は４個であり、ＨＷ（ＤＵＴ）パラメータ設定処理５３０におけるアドレス使用数はＮ個である。シナリオ分析部２０は、シナリオに含まれる処理（機能要素）毎のアドレス使用数に基づきオフセット値を適宜算出し、アドレスマップ６００を生成する。その結果、図６及び図８で示される例では、ＨＷ（ＤＵＴ）パラメータ設定処理５３０で用いられる変数“ｐａｒａｍ１”〜“ｐａｒａｍＮ”がそれぞれアドレス１〜Ｎにマッピングされ、また、入力データ生成設定処理５２０（入力データ生成関数４２１）で用いられる変数“Ａｄｒ１”〜“Ａｄｒ４”がそれぞれアドレスＮ＋１〜Ｎ＋４にマッピングされている。
【００５４】
シナリオ分析部２０は、アドレスマップ６００、シナリオデータＳＮＲ及び機能要素データベースＤＢに基いて、ＳＷ機能データＦＳＷを作成する。図７に示されるように、ＳＷ機能データＦＳＷは、シナリオ制御部７１０、パラメータ設定部７２０、及び通信ＩＦソフトウェア部７３０を含んでいる。
【００５５】
シナリオ制御部７１０は、シナリオデータＳＮＲで示されるシナリオシーケンスを抽出したものに相当する。図９は、図６で示された例の場合のシナリオ制御部７１０を示している。パラメータ設定部７２０は、テストベンチハードウェア部ＴＢＨＷやＤＵＴに各種制御パラメータを設定する。図１０は、図６で示された例の場合のパラメータ設定部７２０を示しており、シナリオデータＳＮＲで示される入力データ生成設定処理５２０及びＨＷ（ＤＵＴ）パラメータ設定処理５３０に対応している。図１０に示されるように、アドレスマップ６００で示されるアドレス情報がパラメータ設定部７２０に反映されている。通信ＩＦソフトウェア部７３０は、ＤＵＴ情報５６０（アドレス情報）、アドレスマップ６００、及び機能要素データベースＤＢ中の通信ＩＦソフトウェア４７１から生成される。
【００５６】
また、シナリオ分析部２０は、アドレスマップ６００、シナリオデータＳＮＲ及び機能要素データベースＤＢに基いて、ＨＷ機能データＦＨＷを作成する。図７に示されるように、ＨＷ機能データＦＨＷは、通信ＩＦハードウェア部８１０及び機能要素ハードウェア部８２０を含んでいる。通信ＩＦハードウェア部８１０は、ＤＵＴ情報５６０（アドレス情報）、アドレスマップ６００、及び機能要素データベースＤＢ中の通信ＩＦハードウェア４７２から生成される。機能要素ハードウェア部８２０は、シナリオで使用されている各機能要素に対応する機能要素ハードウェア（入力データ生成ハードウェア４２２、比較値生成ハードウェア４５２、等）とＤＵＴ情報５６０（アドレス情報、接続情報）を組み合わせることによって生成される。
【００５７】
図１１は、ＨＷ機能データＦＨＷの一例を概念的に示しており、既出の図２で示された回路に相当している。シナリオで使用されている機能要素に対応する機能要素ハードウェアは、シナリオに応じて、ＤＵＴや他の機能要素ハードウェアと接続されている。例えば、入力データ生成ハードウェア４２２に対応する入力データ生成モジュール３２２は、アドレスデコーダ３２１に接続されている。この入力データ生成モジュール３２２は、制御パラメータ（ＢｉｔＷｉｄｔｈ，Ｓｉｚｅ，ＲａｎｄＳｅｑ，Ｓｅｅｄ）に応じたランダムテストパタンを生成する。それら制御パラメータは、アドレスデコーダ３２１（アドレスマップ６００）を通して、ソフトウェア側（入力データ生成設定処理５２０）から制御可能である。ソフトウェア側からは、個々にマッピングされたアドレスにアクセスすることで、値の読み出しや書き込みが可能である。
【００５８】
２−３．ステップＳ３０：ＳＷ実行データの生成
図１２は、ステップＳ３０を示している。ステップＳ３０において、ＳＷ実行データ生成部３０は、記憶装置３からＳＷ機能データＦＳＷを読み出し、そのＳＷ機能データＦＳＷをＳＷ実行データＤＳＷに変換する。図１で示されたように、ＳＷ実行データＤＳＷは、動作検証時に計算機２００によって実行され、上述のソフトウェア機能を提供する。生成されたＳＷ実行データＤＳＷは、記憶装置３に格納される。
【００５９】
２−４．ステップＳ４０：ＦＰＧＡデータの生成
図１３は、ステップＳ４０を示している。ステップＳ４０において、ＦＰＧＡデータ生成部４０は、記憶装置３からＨＷ機能データＦＨＷ及びＤＵＴデータＤＤを読み出す。ＤＵＴデータＤＤは、ＤＵＴの設計機能を示すデータである。ＦＰＧＡデータ生成部４０は、それらＨＷ機能データＦＨＷ及びＤＵＴデータＤＤに対して、論理合成処理及び配置配線処理を施すことにより、ＦＰＧＡデータＤＦＰを生成する。上述の通り、ＦＰＧＡデータＤＦＰは、ＤＵＴとハードウェア機能をＦＰＧＡ３２０上に構築するためのコンフィグレーションデータである。生成されたＦＰＧＡデータＤＦＰは、記憶装置３に格納される。
【００６０】
２−５．ステップＳ５０：動作検証処理
以上のようにＳＷ実行データＤＳＷ及びＦＰＧＡデータＤＦＰが用意されると、図１で示された動作検証が可能となる。まず、ＦＰＧＡデータＤＦＰがＦＰＧＡ３２０に供給され、それにより、ＤＵＴ及びテストベンチハードウェア部ＴＢＨＷがＦＰＧＡ３２０上に構成（構築）される。続いて、ＦＰＧＡ３２０が動作させられる。また、計算機２００が、ＳＷ実行データＤＳＷを実行し、制御パラメータを可変に設定する。このようにして、本実施の形態に係る動作検証処理が実現される。
【００６１】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【００６２】
１    検証環境構築システム
２    処理装置
３    記憶装置
４    入力装置
５    出力装置
１０    シナリオ作成部
２０    シナリオ分析部
３０    ＳＷ実行データ生成部
４０    ＦＰＧＡデータ生成部
１００    回路動作検証システム
２００    計算機
２１０    通信インタフェース
２２０    メモリ
２３０    ＣＰＵ
３００    ＦＰＧＡボード
３１０    通信インタフェース
３２０    ＦＰＧＡ
３２１    アドレスデコーダ
３２２    入力データ生成モジュール
３２３    入力制御モジュール
３２４    結果比較モジュール
４１０    ランダムパラメータ生成ライブラリ
４２０    入力データ生成要素
４２１    入力データ生成関数
４２２    入力データ生成ハードウェア
４３０    ＨＷ設定ライブラリ
４４０    実行制御ライブラリ
４５０    結果チェック要素
４５１    結果比較関数
４５２    比較値生成ハードウェア
４６０    ＨＷアクセスライブラリ
４７０    通信ＩＦ要素
４７１    通信ＩＦソフトウェア
４７２    通信ＩＦハードウェア
５１０    ランダムパラメータ生成処理
５２０    入力データ生成処理
５３０    ＨＷ（ＤＵＴ）パラメータ設定処理
５４０    シミュレーション実行処理
５５０    結果チェック処理
５６０    ＤＵＴ情報
６００    アドレスマップ
７１０    シナリオ制御部
７２０    パラメータ設定部
７３０    通信ＩＦソフトウェア部
８１０    通信ＩＦハードウェア部
８２０    機能要素ハードウェア部
ＤＵＴ    被テスト回路
ＤＳＷ    ＳＷ実行データ
ＤＦＰ    ＦＰＧＡデータ
ＴＢＳＷ  テストベンチソフトウェア部
ＴＢＨＷ  テストベンチハードウェア部
ＳＰＥＣ  ＤＵＴ機能仕様データ
ＤＢ      機能要素データベース
ＳＮＲ    シナリオデータ
ＦＳＷ    ＳＷ機能データ
ＦＨＷ    ＨＷ機能データ
ＤＤ      ＤＵＴデータ
ＰＲＯＧ  検証環境構築プログラム
【図１】
2011203857.tif 000003
【図２】
2011203857.tif 000004
【図３】
2011203857.tif 000005
【図４】
2011203857.tif 000006
【図５】
2011203857.tif 000007
【図６】
2011203857.tif 000008
【図７】
2011203857.tif 000009
【図８】
2011203857.tif 000010
【図９】
2011203857.tif 000011
【図１０】
2011203857.tif 000012
【図１１】
2011203857.tif 000013
【図１２】
2011203857.tif 000014
【図１３】
2011203857.tif 000015