(57)【要約】【課題】  モデル・モニタを含む検証装置を登録したライブラリを有するテストベンチを自動生成する装置において、ＤＵＴを検証するためのテストベンチ作成を自動化することで、テストベンチの作成ミスの排除と作成時間の短縮がはかれ、検証の立上げが早くなることで検証時間の短縮を行う事を目的とする。【解決手段】  ＤＵＴ指定のみで、ＤＵＴのポート情報を元に検証装置の検索と接続、そして、未接続ポートの処理を行いテストベンチを自動生成を行う。【選択図】  図１
2007026180.tif 000002
【特許請求の範囲】
【請求項１】
LSI開発において被検証対象の論理回路（以下 DUT（Design Under Test）と呼ぶ）を機能検証するための検証環境（以下テストベンチと呼ぶ）の作成を行う装置であって、DUTを指定することで、DUTを検証するためのテストベンチを生成するテストベンチ自動生成装置。
【請求項２】
前記テストベンチ自動生成装置は、検証装置を登録した検証装置ライブラリと、DUTと接続可能な検証装置を検証装置ライブラリから検索する手段と、検証装置ライブラリから検索した接続可能な検証装置とDUTとを接続する手段と、ポートの処理ルールに従って検証装置と接続されていないDUTのポートを処理する手段を有する事を特徴とする請求項1記載のテストベンチ自動生成装置。
【請求項３】
前記検証装置ライブラリは、デバイスモデルと、バスマスターモデルと、バススレーブモデルと、バスモニタと、クロック信号を生成するクロックジェネレータと、リセット信号を生成するリセットジェネレータを含む機能検証を行うための検証装置が登録されていることを特徴とし、検証装置ライブラリの登録項目として、検証装置のカテゴリと、検証装置名と、検証装置のドキュメント格納先、検証装置の格納先を含むことを特徴とする請求項1記載のテストベンチ自動生成装置。
【請求項４】
前記DUTと接続可能な検証装置を検証装置ライブラリから検索する手段は、DUTの「ポート名」と「ポートの幅」と「ポートの方向」を検索キーワードとして、検証装置ライブラリへの検索およびDUTへの逆検索を行うことで検証装置ライブラリに登録されている検証装置からDUTに接続可能な検証装置を検索する事を特徴とする請求項1記載のテストベンチ自動生成装置。
【請求項５】
前記DUTと接続可能な検証装置を検証装置ライブラリから検索する手段は、検証装置ライブラリの検索範囲を切り換え可能である事を特徴とする請求項1記載のテストベンチ生成装置。
【請求項６】
前記検証装置とDUTとを接続する手段は、DUTと検証装置をテストベンチにインスタンスし、DUTと検証装置のポートを接続することでDUTのテストベンチを作成する事を特徴とする請求項1記載のテストベンチ自動生成装置。
【請求項７】
前記ポートを処理する手段は、DUTにおいて検証装置と接続されていない未接続ポート全てに対して、ポートの処理ルールに従い「ポート名」と「ポートの方向」を条件分岐としてポートに信号を接続する事を特徴とする請求項1記載のテストベンチ自動生成装置。
【請求項８】
前記請求項1に記載したテストベンチ自動生成装置であって、検証装置をDUTと接続する際に、接続してよいかどうかをユーザーに問い合わせを行い、接続するかどうかを決定する手段を持つ事を可能とするテストベンチ自動生成装置。
【請求項９】
前記請求項1に記載したテストベンチ自動生成装置であって、DUTを指定する事により、DUTのテストベンチと共に、DUTと接続した検証装置名と、接続した検証装置のドキュメントの格納先と、未接続ポートに対して行ったポートの処理内容を含むレポートを出力するテストベンチ自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、LSI開発における論理回路の検証に関するものであり、特に、DUTを機能検証するためのテストベンチの生成装置およびEDA（Electronic Design Automation）に関するものである。
【背景技術】
【０００２】
現在、LSI開発におけるの主たる論理検証には、コンピュータ上でDUTの動きをシミュレートさせる動的論理シミュレーションを用いており、DUTを検証するために検証環境であるテストベンチを作成し、DUTに対してテストパターンを入力し、DUTからの出力および内部状態をチェックすることで論理検証を行う。
【０００３】
動的論理シミュレーションを用いた初歩的な論理検証では、DUTのポートへの 0や1といった直接値の代入パターンを羅列したテストパターンを作成し、シミュレーションにおいて、そのテストパターンどおりにDUTの信号を変化させることによりバスのトランザクションを発生させ、それによるDUTからの出力信号やDUTの内部状態などのシミュレーション結果波形に対して目視による確認により論理検証を行ってきた。
【０００４】
従って、テストベンチは、DUTをインスタンスしただけの非常にシンプルなものであり、論理検証作業は、テストパターン作成と結果確認に時間を要していた。
【０００５】
しかし、LSIの複雑化・大規模化に対して、上記の初歩的な論理検証方法では、テストパターン作成負荷、および、目視による検証項目が指数関数的に増大し、確実な検証が不可能となってきている。
【０００６】
そこで、より効率的に論理検証を行うために、バスのトランザクションを発生させるためのバスモデルや、バスプロトコルやDUTの内部状態を監視するモニタといった検証装置を用いた動的論理シミュレーションによる論理検証が行われている。
【０００７】
この論理検証方法では、モデルやモニタといった検証装置を作成し、それらをインスタンスおよびDUTに接続したテストベンチを作成することで、バストランザクションを発生させるためのモデルへのコマンド発行およびモデルがトランザクションにより得たデータと期待値比較を行うテストを作成することで論理検証が行われる。
【０００８】
バスプロトコルやDUTの内部状態の論理検証は、テスト実行による動的論理シミュレーション中にモニタにより自動的に行われる。
【０００９】
この方法では論理検証作業は、テスト作成の他に、テストベンチの作成に時間を要することとなる。
【００１０】
また、テストベンチの作成は、検証装置作成とその検証装置を用いたDUTのテストベンチ作成の2つに大別される。
【００１１】
しかし、近年LSIの大規模化・複雑化に対してLSIの開発効率上げるために、バスやインターフェースの共通化が図られ、そのためモデルやモニタを含むさまざまな検証装置もLSIの開発ごとに作成するのではなく、以前のLSI開発で作成した検証装置を流用することが可能となってきている。
【００１２】
従って、テストベンチの作成における作業負荷は、検証装置自身の作成よりも検証装置を用いたDUTのテストベンチ作成のほうにシフトしてきている。（以下、テストベンチの作成とは、検証装置を用いたDUTのテストベンチ作成のこととする。）
そういった状況の中、現在、テストベンチ作成は、手作業によって行われている。
【００１３】
また、米Mentor社のEDAツールである“HDS”では、ワークエリア上にインスタンスしたDUTのポートと検証装置のポートを、ポート名から類推して接続する機能を有しているが、必要な検証装置のピックアップ、検証装置のインスタンス、そして、DUTにおける検証装置の接続されていないポートの処理に関しては、少なくともテストベンチ作成担当者が手作業で行わなければならない。
【００１４】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平１０−１２４５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記のように、テストベンチの作成は、現在手作業によって行われている。
【００１６】
一般的にLSI開発期間の約70%は、論理検証に費やされていると言われており、論理検証期間の短縮のためには、テストベンチ作成の時間を短縮することも重要となっている。
【００１７】
手作業で行うということは、ミスが含まれることが考えられ、しかも、LSIは、今後ますます複雑化・大規模化することが容易に予想されることから、手作業によるテストベンチ作成の負荷もますます増大するという課題がある。
【００１８】
また、現在、工業製品は小品種大量生産から多品種少量生産に移行してきており、LSI開発においてもデザインの流用やアーキテクチャプラットフォームを基礎とした短期間での多機種開発が考えられ、手作業によるテストベンチの作成では、短期開発・短期検証に対応できなくなるという課題がある。
【００１９】
本願の目的は、テストベンチの作成を自動化することで、検証作業におけるテストベンチ作成時間の短縮およびミスの排除を行い、検証の立ち上げを早くすることで検証時間の短縮を図ることを目的としている。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、検証装置を登録した検証装置ライブラリと、DUTと接続可能な検証装置を検証装置ライブラリから検索する手段と、検証装置ライブラリから検索した接続可能な検証装置とDUTとを接続する手段と、ポートの処理ルールに従って検証装置と接続されていないDUTのポートを処理する手段を持つテストベンチ生成装置を設ける。
【００２１】
テストベンチ生成装置は、テストベンチ作成対象となるDUTを受けとると、DUTと接続可能な検証装置を検証装置ライブラリから検索しDUTと接続、そして、検証装置と接続されていない未接続DUTポートの処理を行い、DUTのテストベンチを出力する装置である。
【００２２】
（作用）
本発明のテストベンチ生成装置により、検証対象となるDUTを指定するのみで、検証装置の接続されたDUTのテストベンチを得ることが出来る。
【発明の効果】
【００２３】
上説明したように本発明のテストベンチ生成装置により、検証対象となるDUTを指定する事で、検証装置の接続されたDUTのテストベンチを得ることが出来るので、検証担当者にとって、
DUTのテストベンチへのインスタンス
使用可能な検証装置が存在するかの調査
使用する検証装置の取得
検証装置のテストベンチへのインスタンスとDUTへの接続
残ったDUTの未接続ポートの処理
を行う必要がなくなり、テストベンチ作成時間の短縮、また、手作業によるテストベンチ作成におけるミスの排除を行う事が出来、ただちにテスト作成に着手する事が可能となる。
【００２４】
従って、LSIの論理検証期間の短縮、即ち、LSI開発期間の短縮を図る事が出来、しいては、製品開発の短縮が可能となる。
【００２５】
また、今後のLSIの複雑化・大規模化、そして、多品種少量生産に対応したLSIの短期開発・短期検証にも対応することが可能となる。
【発明を実施するための最良の形態】
【００２６】
添付の図面図1、図2、図3、図4、図5を用いて、本発明のテストベンチ自動生成装置の実施例を説明する。
【００２７】
図1は、本発明のテストベンチ生成装置の構成図である。
【００２８】
図2は、テストベンチ生成装置の動作フローを説明した図である。
【００２９】
図3は、検証装置ライブラリの構造を説明した図である。
【００３０】
図4は、ポートの処理ルールを示した図である。
【００３１】
図5は、検証装置を検索するアルゴリズムをDUTおよび検証装置のポートを用いて説明した図である。
【００３２】
図1のテストベンチ生成装置の構成図において、(101)は、テストベンチ作成対象であるDUT。(102)は、テストベンチ生成装置であり、主機能である「検証装置検索」「DUT、検証装置のインスタンスと接続」「未接続ポートの処理」を含む。(103)は、テストベンチ生成装置が検索を行う検証装置が登録された検証装置ライブラリ。(104)は、テストベンチ生成装置が持つポートの処理ルール。(105)は、テストベンチ生成装置が出力するDUTのテストベンチとレポートである。
【００３３】
（101）のテストベンチ作成対象であるDUTを（102）のテストベンチ作成装置に入力すると、（102）の「検証装置検索」機能によりDUTと接続可能な検証装置を（103）の検証装置ライブラリから検索を行う。検索の結果、接続可能な検証装置が(103)の検証装置ライブラリから見つかると、(102)の「DUT、検証装置のインスタンスと接続」機能により、ユーザーに接続してよいかを問い合わせ、OKの場合、検証装置をテストベンチにインスタンスし、（101）のDUTと接続する。その後、(102)の「未接続ポートの処理」機能により、検証装置と未接続であるDUTポートに対して、(104)のポートの処理ルールに従い、未接続ポートに信号を接続し、(105)のDUTのテストベンチと、接続した検証装置名と検証装置のドキュメント格納先と未接続ポートと未接続ポートに対して行った処理のレポートを出力する。
【００３４】
図2、図3、図4、図5を用いて、テストベンチ生成装置をより詳細に説明をする。
【００３５】
図3の検証装置ライブラリの構造説明図において、(301)は、検証装置を登録した検証装置ライブラリである。(302)は、検証装置が格納されたファイルサーバーである。
【００３６】
(301)のライブラリへの登録項目には、検証装置がマスターモデルなのか、スレーブモデルなのか、バスモニタなのかといった検証装置のカテゴリと、検証装置名と、検証装置のマニュアルの格納先を示すパスと、検証装置のトップモジュールの格納先を示すパスがある。
【００３７】
図3のバスマスターモデルのカテゴリには、検証装置のドキュメントの格納先 “・・・/BusA_Model/Master.pdf”で、検証装置のトップモジュールの格納先 “/・・・/busa_master_model/top.v”のモデルが、“バスA_マスターモデル”という検証装置名で登録されている。
【００３８】
テストベンチ生成装置が、DUTと接続可能な検証装置を検索するとき、「ポートの名」「ポートの幅」「ポートの方向」を参照する。１つの検証装置が複数のファイルもしくはブロックから構成される場合に対応するため、検証装置格納場所には、ポートを参照するべき検証装置のトップモジュールを登録する。
【００３９】
カテゴリを持つことにより、テストベンチ作成装置が、検証装置を検索する際に、検索対象範囲を切り替え可能となる。バスモニタを不使用の場合は、検索対象範囲からバスモニタのカテゴリをはずすことになる。
【００４０】
検証装置のドキュメント格納場所を登録することにより、テストベンチ生成装置が出力するレポートにおいて、接続した検証装置のドキュメントの場所を示すことが可能となる。
【００４１】
検証装置ドキュメント格納場所および検証装置格納場所には、パスを登録するので、ドキュメントおよび検証装置をファイルサーバー上に任意に置くことが出来る。
【００４２】
本実施例では、検索対象範囲の切り換えをカテゴリで行うとしているが、検索対象範囲は、カテゴリのみならず、任意に設定しても良い。
【００４３】
図4のポートの処理ルールを示した図において、「ポート名」と「ポートの方向」を条件として、「ポートの処理」内容を定義している。
【００４４】
図4のルールは、入力ポートでポート名の最後が「_l」「_L」「_X」の場合は、ロウアクティブと判断して、1を入力し、それ以外の入力ポートでは、ハイアクティブと判断し、0を入力する。双方向ポートの場合は、ハイインピーダンスを接続する。  出力ポートの場合は、何も接続せず、オープンにする。
【００４５】
図2はテストベンチ生成装置の動作フローである。
【００４６】
(201)で、テストベンチ作成対象のDUTを入力する。
【００４７】
(202)で、DUTをインスタンスしたテストベンチの最上位階層を作成する。
(203)で、DUTの全てのポートから、検証装置が未接続、かつ、接続可能な検証装置があるかどうかを検証装置ライブラリにおいて検索していないポートを探す。存在する場合は、そのポートに対して(204)の検証装置検索に、存在しない場合は、検証装置検索を終え次の(208)の未接続ポートの処理に進む。
【００４８】
(204)では、図3で示した検証装置ライブラリに登録されている検索対象検証装置のすべてポートに対して、（203）で見つかったDUTの注目する1つのポートと、「ポートの名」「ポートの幅」「ポートの方向」を判定基準として接続可能なポートを検索する。接続可能とは、
・ポート名が一致、
・ポートの幅が一致、例えば、DUTのポートが1bitであれば検証装置のポートも１bit、DUTポートが8bitであれば検証装置のポートも8bitと一致
・ポートの方向に矛盾がない、例えば、DUTが入力ポートであれば検証装置のポートが出力
という3つの条件が一致することである。
【００４９】
接続可能ポートが存在する場合は、(205)の逆検索に進む。存在しない場合は、そのDUTポートは検索済みとして、(203)に戻る。
【００５０】
(205)では、接続可能ポートを持つ検証装置に注目し他の全てのポートが、DUTのポートと接続可能か「ポート名」「ポートの幅」「ポートの方向」を判定基準に逆検索を行う。逆検索により、全てのポートと接続可能ポートがDUTにある場合、その検証装置とDUTは接続可能であると判断する。接続可能検証装置が存在する場合、(206)に進む。存在しない場合、そのDUTポートは検索済みとして、(203)に戻る。
【００５１】
(206)で、ユーザーに対して、接続可能検証装置をDUTと接続し使用してよいかを、検証装置ライブラリに登録されている検証装置名を示し、問い合わせる。OK場合は、（207）に進む。NOの場合は、そのDUTポートは検索済みとして、(203)に戻る。接続可能な検証装置であっても、検証項目によっては必要とせず、動的論理シミュレーションのスピードを低下させたくない場合は、接続させないことが可能となる。
【００５２】
(207)で、検証装置をテストベンチにインスタンスそしてDUTと接続し、(203)にもどる。
【００５３】
(203)から(207)までのフローを、DUTの全てのポートにおいて、検証装置が未接続、かつ、接続可能な検証装置があるかどうかを検証装置ライブラリにおいて検索していないポートがなくなるまで行う。
【００５４】
(208)で、テストベンチにおいて、DUTのポートの中で、信号が接続されていない未接続ポートに対して、図4で示したポートの処理ルールに従って、信号を接続する。
【００５５】
(209)で、DUTのテストベンチの出力と、そして、接続した検証装置名と検証装置のドキュメントの格納先と未接続ポートに対して行った処理内容のレポートを出力し、テストベンチ生成装置の動作は終了する。検証装置名と検証装置のドキュメント格納先は、検証装置ライブラリから取得する。
【００５６】
本実施例では、検証装置の全てのポートがDUTと接続可能な場合に、その検証装置とDUTが接続可能と判断しているとしているが、全てのポートが一致しなくても良い。
【００５７】
図5は、検証装置を検索するアルゴリズムをDUTおよび検証装置のポートを用いて説明した図である。
【００５８】
(501)は、テストベンチ作成対象であるDUTのポートの一部。(502)は、(501)のHDL (Hardware Description Language)言語の1つであるVerilog言語を用いた記述例。 (503)は、検証ライブラリに登録され検索対象のひとつであるバスB_マスターモデルのポート。(504)は、(503)バスB_マスターモデルのVerilog言語を用いた記述例。(505)は、検証ライブラリに登録され検索対象のひとつであるバスA_マスターモデルのポート。 (506)は、(505)バスA_マスターモデルのVerilog言語を用いた記述例。(507)は、検証ライブラリに登録され検索対象のひとつであるバスA_スレーブモデルのポート。(508)は、(507)バスA_スレーブモデルのVerilog言語を用いた記述例。
【００５９】
(501)のDUTのポートAREQと接続可能な検証装置のポートを検証装置ライブラリから検索する。(1)で、(503)のバスB_マスターモデルのポートを全て検索したが接続可能なポートはない。(2)で、(505) のバスA_マスターモデルのポートを検索。  同じ「ポート名」そして「ポート」の幅が一致するポートAREQがあるが、「ポートの方向」がDUTでは出力、モデルも出力で矛盾するので、接続可能なポートはない。(3)で、(507)のバスA_スレーブモデルのポートを検索し、「ポート名」「ポートの幅」「ポートの方向」全てが合うポートAREQがある。次に、(4)で、バスA_スレーブモデルの他のポートAADDR、A_WR、ADATA、AACKと、DUTに接続可能ポートがあるか逆検索を行う。DUTにバスA_スレーブモデルのポートAADR、A_WR、ADATA、AACKと接続可能なポートが存在するので、(507)のバスA_スレーブモデルはDUTと接続可能であると分かる。
【００６０】
また、DUTの他のポートTEST_OUT、TEST_IN、INT_Lは、どの検証装置とも一致しないので、図4で示したポートの処理ルールに従って、処理される。ポートTEST_OUTは、出力なのでオープンに、ポートTEST_INはハイアクティブの入力ポートと判定され0を入力、INT_Lはロウアクティブの入力ポートとして1を入力する。
【図面の簡単な説明】
【００６１】
【図１】実施例におけるテストベンチ生成装置の構成を示した図である。
【図２】実施例におけるテストベンチ生成装置の動作フローを説明した図である。
【図３】実施例における検証装置ライブラリの構造を説明した図である。
【図４】実施例におけるポートの処理ルールを説明した図である。
【図５】実施例における検証装置を検索するアルゴリズムをDUTおよび検証装置のポートを用いて説明した図である。
【符号の説明】
【００６２】
(101)  テストベンチ作成対象であるDUT。
(102)  本発明であるテストベンチ生成装置。主機能である「検証装置検索」「DUT、検証装置のインスタンスと接続」「未接続ポートの処理」を含む。
(103)  テストベンチ生成装置が検索を行う検証装置が登録された検証装置ライブラリ。
(104)  テストベンチ生成装置が持つポートの処理ルール。
(105)  テストベンチ生成装置が出力するDUTのテストベンチとレポート。
(201)  テストベンチ作成対象であるDUTの入力。
(209)  テストベンチ生成装置が出力するDUTのテストベンチとレポート。
(202)，(206)，(207)  「DUT、検証装置のインスタンスと接続」に関するフロー。
(204)，(205)  「検証装置検索」に関するフロー。
(208)  「未接続ポートの処理」に関するフロー。
(301)  検証装置を登録した検証装置ライブラリ。ライブラリの項目は、検証装置のカテゴリ、検証装置名、検証装置のマニュアルの格納先を示すパス、検証装置のトップモジュールの格納先を示すパスである。
(302)  検証装置が格納されたファイルサーバー。
「ポートの方向」と「ポート名」を条件として、どのような処理を行うかの「ポートの処理」を示している。
(501)  テストベンチ作成対象であるDUTのポートの一部。
(502)  (501)のVerilog言語を用いた記述例。
(503)  検証ライブラリに登録され検索対象のひとつであるバスB_マスターモデルのポート。
(504)  (503)バスB_マスターモデルのVerilog言語を用いた記述例。
(505)  検証ライブラリに登録され検索対象のひとつであるバスA_マスターモデルのポート。
(506)  (505)バスA_マスターモデルのVerilog言語を用いた記述例。
(507)  検証ライブラリに登録され検索対象のひとつであるバスA_スレーブモデルのポート。
(508)  (507)バスA_スレーブモデルのVerilog言語を用いた記述例。
(1),(2),(3),(4)は、検証装置検索アルゴリズムの順番、および、判定結果を示している。
検索および逆検索の結果、バスA_スレーブモデルが、DUTと接続可能と判定。
【図１】
2007026180.tif 000003
【図２】
2007026180.tif 000004
【図３】
2007026180.tif 000005
【図４】
2007026180.tif 000006
【図５】
2007026180.tif 000007