(57)【要約】【課題】  ＬＳＩ開発において、多機能、複雑かつ大規模な論理の検証を加速し、不良の早期摘出と検証効率の飛躍的改善を実現することができる技術を提供する。【解決手段】  検証対象の論理回路を含むプログラム可能なＦＰＧＡ１１ａ，１１ｂと、前記論理回路のテストプログラム１７を乱数に基づいて自動生成するＲＴＧ１６と、テストプログラム１７が格納されるメモリ１２ａ，１２ｂと、モニタプログラムを含むモニタ１３と、ＦＰＧＡ１１ａ，１１ｂおよびメモリ１２ａ，１２ｂとモニタ１３との間でデータの送受信を行うＩ／Ｏインターフェース１４ａ，１４ｂとを備え、テストプログラム１７を自動実行して前記論理回路の論理検証を行う。【選択図】  図１
2005346517.tif 000002
【特許請求の範囲】
【請求項１】
検証対象の論理回路を含むプログラム可能な論理素子と、
前記論理回路のテストプログラムを自動生成するテストプログラム生成プログラムと、
前記テストプログラムが格納されるメモリと、
モニタプログラムを含むモニタと、
前記論理素子および前記メモリと前記モニタとの間でデータの送受信を行うＩ／Ｏインターフェースとを有し、
前記テストプログラムを自動実行して前記論理回路の論理検証を行うことを特徴とする検証装置。
【請求項２】
請求項１記載の検証装置において、
前記テストプログラム生成プログラムは、乱数に基づいて前記論理回路のテストプログラムを自動生成するプログラムであることを特徴とする検証装置。
【請求項３】
請求項１または２記載の検証装置において、
前記論理素子、前記メモリおよび前記Ｉ／Ｏインターフェースは、一つのボード上に搭載されていることを特徴とする検証装置。
【請求項４】
請求項１または２記載の検証装置において、
前記論理回路は、マイクロプロセッサコアを含み、前記マイクロプロセッサコアが前記テストプログラムを実行することを特徴とする検証装置。
【請求項５】
請求項４記載の検証装置において、
前記テストプログラム生成プログラムは、前記メモリに格納され、前記マイクロプロセッサコアにより実行されることを特徴とする検証装置。
【請求項６】
請求項１または２記載の検証装置において、
マイクロプロセッサをさらに有し、
前記テストプログラム生成プログラムは、前記メモリに格納され、前記マイクロプロセッサにより実行されることを特徴とする検証装置。
【請求項７】
請求項６記載の検証装置において、
前記テストプログラム生成プログラムは、前記モニタを通じて前記メモリに格納され、前記モニタからの指示により、前記マイクロプロセッサによって実行されることを特徴とする検証装置。
【請求項８】
請求項１または２記載の検証装置において、
前記テストプログラムの自動生成および自動実行は、連続的に実施されることを特徴とする検証装置。
【請求項９】
請求項１または２記載の検証装置において、
前記論理素子はＦＰＧＡであることを特徴とする検証装置。
【請求項１０】
請求項１〜９のいずれか１項に記載の検証装置を利用して前記論理回路のテストプログラムを自動生成する工程と、
前記テストプログラムを、シミュレータ上および実チップ上で実行し、前記論理回路の論理検証および／または不良解析を行う工程とを有することを特徴とする検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証装置および検証方法に関し、特に半導体集積回路装置における論理回路の検証に適用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、半導体応用製品分野では、半導体プロセスの高密度、高集積化に伴い、搭載アプリケーションの大規模化によるＳＯＣ（System On a Chip）化が急速に進んでいる。ＳＯＣ開発製品の中核をなすマイクロプロセッサは、広範囲なアプリケーションに適用されており、年々、大規模化、高性能化および高品質化が要求されている。このように、高性能化および高品質化に向けた検証には、多大な検証期間が必要となるため、高速、かつ高品質な検証技術の導入が必須となってきている。
【０００３】
例えば、本発明者が検討した技術として、半導体集積回路装置（以下、「ＬＳＩ」という。）における論理回路の検証においては、ＲＴＧ（Random Test Generator）によるランダム検証、機能検証ツールによる検証などが考えられる。
【０００４】
ＲＴＧは、検証対象のアーキテクチャを念頭において、命令や使用するレジスタ、メモリのアドレスなどをランダムに自動発生させ、その命令列を検証対象上で実行した結果とＲＴＧ側で期待した結果とを比較することで、論理機能を検証するテストツールである。ＲＴＧは、実チップの検証環境に適用し、量産化前の最終的な品質確認に利用してきた。
【０００５】
また、機能検証ツールは、ユーザが定義した仕様の範囲内で、関連する信号群の値をランダムに発生し、定義仕様から導かれた期待値と比較することで、論理機能を検証するツールである。機能検証ツールは、一般的にシミュレーション環境のみに適用可能である。
【０００６】
さらに、ＬＳＩ開発における検証方法としては、例えば、ソフトシミュレーションの検証結果のデータを、所定フォーマットに変換してＲＯＭに展開し、そのＲＯＭの出力をハードシミュレーション用のブレッドボードのＬＳＩ回路のテストデータとし、そのハードシミュレーションの検証結果をＲＡＭに格納し、そのＲＡＭの出力をソフトシミュレーションのテストデータとして、ＬＳＩ回路の検証作業が閉ループで自動的に行われるようにしたものがある（例えば、特許文献１参照）。
【特許文献１】特開平９−３６２３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、前記のような論理回路の検証技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００８】
例えば、前記ＲＴＧは、実チップでの検証環境に適用していたため、その実行結果が、ＲＴＧが生成する期待値と不一致であった場合、シミュレーションなどで論理の不良かどうかを特定するまでに相当の時間を要する。そして、論理の不良であると特定された場合、手戻りが大きく、時間的、金額的なコストが増大する。
【０００９】
また、前記機能検証ツールは、一部エミュレータと連携可能なものもあるが、一般的にシミュレーション環境でしか適用できない。このため、テストデータ自動生成による工数低減は実現できるものの、テストデータ実行時間の削減は実現できない。また、リソースネックにより、対象論理規模が制限される場合がある。
【００１０】
そこで、本発明の目的は、ＬＳＩ開発において、多機能、複雑かつ大規模な論理の検証を加速し、不良の早期摘出と検証効率の飛躍的改善を実現することができる技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１３】
すなわち、本発明による検証装置は、検証対象の論理回路を含むプログラム可能な論理素子（ＦＰＧＡなどのＰＬＤ）と、前記論理回路のテストプログラムを自動生成するテストプログラム生成プログラムと、前記テストプログラムが格納されるメモリと、モニタプログラムを含むモニタと、前記論理素子および前記メモリと前記モニタとの間でデータの送受信を行うＩ／Ｏインターフェースとを備え、前記テストプログラムを自動実行して前記論理回路の論理検証を行うものである。その際、前記テストプログラム生成プログラムは、乱数に基づいて前記論理回路のテストプログラムを自動生成するプログラム（ＲＴＧなど）であることが好ましい。
【００１４】
また、本発明による検証方法は、前記検証装置を利用して前記論理回路のテストプログラムを自動生成し、前記テストプログラムを、シミュレータ上および実チップ上で実行し、前記論理回路の論理検証および／または不良解析を行うものである。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１６】
（１）実チップ作成前に実機と等価な環境を実現するアーリープロトタイプ環境でランダム検証が可能となるため、システム全体の論理検証が早期に加速され、不良摘出時の対策コストが低減する。
【００１７】
（２）シミュレーション、アーリープロトタイプ、実チップのすべての環境に対して、シームレスな論理検証環境を提供することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１９】
（実施の形態１）
図１は本発明の実施の形態１による検証装置のシステム構成を示す図、図２は本実施の形態１の検証装置において、ＲＴＧの構造を示す図、図３は検証装置内のメモリのメモリマップを示す図、図４はシミュレーション、アーリープロトタイプおよび実チップにおける検証環境を示す図、図５は検証方法の手順を示す図、図６は各環境でのメモリマップの統一化を示す説明図、図７はＴＬＢの影響確認のためのＴＬＢダンプ機能を示す説明図、図８は制御レジスタの初期値のランダム設定方法を示す説明図、図９は問題発生時の1次切り分け手段を示す説明図、図１０はＦＰＧＡ上の論理からの特定信号の引き出しおよびテストプログラム実行時の波形取得を示す説明図、図１１は機能カバレージ取得を示す説明図、図１２はアーリープロトタイプ上でのアサーションベース検証を示す説明図である。
【００２０】
まず、図１により、本実施の形態１による検証装置の構成の一例を説明する。本実施の形態の検証装置は、例えば、ＦＰＧＡ（Field Programmable Gate Array）１１ａ，１１ｂ、メモリ１２ａ，１２ｂ、モニタ１３、Ｉ／Ｏインターフェース１４ａ，１４ｂなどから構成されている。
【００２１】
ＦＰＧＡ１１ａ，１１ｂ、メモリ１２ａ，１２ｂ、Ｉ／Ｏインターフェース１４ａ，１４ｂは、一つのボード１５上に搭載されており、それぞれ、ボード１５内で接続されている。また、Ｉ／Ｏインターフェース１４ａは、ボード１５外部でモニタ１３と有線または無線により接続されている。
【００２２】
ＦＰＧＡ１１ａ，１１ｂは、ユーザ側でプログラム可能な論理素子（デバイス）であり、検証対象の論理回路（被検証論理）が搭載される。
【００２３】
メモリ１２ａ，１２ｂには、テストプログラム、ＲＴＧ（Random Test Generator）などのソフトウェアやデータなどが格納される。なお、ＲＴＧは、検証対象である論理回路のテストプログラムを自動生成するテストプログラム生成プログラムである。
【００２４】
モニタ１３は、パソコン（ＰＣ），ワークステーション（ＷＳ）などであり、モニタプログラムが搭載されている。モニタプログラムは、ボード１５やＦＰＧＡ１１ａ，１１ｂの初期設定、ＲＴＧのロードと実行などを行うプログラムである。
【００２５】
Ｉ／Ｏインターフェース１４ａ，１４ｂは、ＦＰＧＡ１１ａ，１１ｂおよびメモリ１２ａ，１２ｂとモニタ１３との間で、プログラムやデータを送受信するものである。
【００２６】
図１では、ＦＰＧＡ１１ａ，１１ｂ、メモリ１２ａ，１２ｂおよびＩ／Ｏインターフェース１４ａ，１４ｂを、ボード１５上にそれぞれ２つずつ搭載した場合を示したが、これに限定されるものではなく、１つであってもよく、３つ以上であってもよい。
【００２７】
本実施の形態１による検証装置は、実チップ作成前に実機と等価な環境を実現するアーリープロトタイプを使用してランダム検証を実施し、不良の早期摘出と検証効率の飛躍的改善を実現するものである。なお、アーリープロトタイプは、ＬＳＩ開発過程において、実チップを作成する前に、実チップと等価的な回路をＦＰＧＡなどの論理素子（デバイス）に構築して、初期段階からデバック可能としたものである。
【００２８】
本実施の形態１による検証装置では、アーリープロトタイプ実現装置のソフトウェア格納メモリ１２ａ，１２ｂ上にＲＴＧ１６プログラムを搭載し、乱数を元にしたテストプログラム１７の生成と起動を自動的かつ連続的に実行し、検証を加速する。例えば、ＦＰＧＡ１１ａ，１１ｂ内の検査対象論理回路がマイクロプロセッサコアを含む場合は、そのマイクロプロセッサコアが、ＲＴＧ１６およびテストプログラム１７の実行を行う。
【００２９】
次に、図２により、ＲＴＧ１６の構造を説明する。ＲＴＧ１６は、初期設定Ｓ２１、テスト命令生成Ｓ２２、期待値生成（命令シミュレート）Ｓ２３、テストプログラム生成Ｓ２４およびメッセージ出力Ｓ２５などのステップを順に実施するプログラムである。ＲＴＧ１６は、システム仕様（アーキテクチャ）をＣ言語などで記述したゴールデンモデルを有しており、ゴールデンモデルに基づいて期待値を生成する。
【００３０】
ＲＴＧ１６により生成された、ＦＰＧＡ１１ａ，１１ｂ内の被検証論理２６のテストプログラム１７は、初期化Ｓ２７、テスト実行Ｓ２８、割込み処理Ｓ２９、期待値比較Ｓ３０などのステップを有する。テストプログラム１７の実行結果はＲＴＧ１６に戻され、ステップＳ２５において、モニタ１３に対してメッセージが出力される。また、テストプログラム１７の実行結果は、メモリ１２ａ，１２ｂなどに格納される。
【００３１】
次に、図３により、メモリ１２ａ，１２ｂ内に格納されるデータ構成の一例を説明する。メモリ１２ａ，１２ｂには、例えば、図３に示すような構成でＲＴＧ（本体）１６およびテストプログラム１７が格納される。メモリ１２ａ，１２ｂからＲＴＧ本体を読み出してＲＴＧを実行することにより、ＦＰＧＡ１１ａ，１１ｂ内の被検証論理２６上でプログラムの生成および実行を行う。ＲＴＧ１６により生成されたテストプログラムは、メモリ１２ａ，１２ｂに格納される。テストプログラムは、初期設定、テスト命令列、期待値比、ループ処理などのデータを含む。
【００３２】
次に、図４〜図１２により、論理検証および不良解析の具体的な方法を説明する。
【００３３】
まず、図４により、シミュレーション、アーリープロトタイプおよび実チップにおける検証環境を説明する。
【００３４】
ＲＴＧ１６が生成するテストプログラム１７は、ファイル出力が可能である。ファイル出力したテストプログラム１７は、シミュレーション、アーリープロトタイプ、実チップの各プラットフォーム上で実行可能である。すなわち、シミュレーション環境４１においては、ＰＣまたはＷＳ４６によりファイル出力されたテストプログラム１７は、シミュレータ４２で実行可能である。また、アーリープロトタイプ環境４３においては、ファイル出力されたテストプログラム１７を、モニタ１３経由でメモリ１２ａ，１２ｂにロードして実行することができる。また、実チップ環境４４においても、ファイル出力されたテストプログラム１７を、モニタ１３経由でメモリ１２ａ，１２ｂにロードして実行することができる。なお、実チップ環境４４におけるボード１５ａには、ＦＰＧＡ１１ａ，１１ｂの代わりに実チップ４５が搭載されている。
【００３５】
したがって、ＲＴＧによりテストプログラムが共通化されるので、シミュレーション・アーリープロトタイプ・実チップ間において、検証環境のポータビリティ（可搬性）が実現される。
【００３６】
次に、図５により、検証段階に応じたＲＴＧ動作（単発実行／連続実行）を説明する。ＬＳＩ開発の各段階における検証は、図５に示すような手順で実施される。本実施の形態１におけるＲＴＧは、シミュレーション、アーリープロトタイプ、実チップの各段階で適用可能である。
【００３７】
まず、ステップＳ５１で、シミュレーションでの単独実行を行う。シミュレーションでは、論理検証が完了したＲＴＬ（Register Transfer Level）に対し、ＲＴＧ１６により１回につき１つのテストプログラム１７を生成し、シミュレータ４２により動作を検証（単発実行）する。テストプログラム１７は、ＲＴＧ１６をＰＣまたはＷＳ４６上で実行して生成する。ＲＴＧ１６で生成したテストプログラム１７をシミュレータ４２に与えて実行する。シミュレーションによる検証が完了したＲＴＬは、論理合成してアーリープロトタイプの環境（ＦＰＧＡ）に論理を搭載して、ステップＳ５３へ進む。検証が完了していない場合は、ステップＳ５１へ戻り、再度、シミュレーションでの単独実行を行う（ステップＳ５２）。
【００３８】
アーリープロトタイプでは、はじめはシミュレーション時と同様、ＲＴＧ１６により１回につき１つのテストプログラム１７を生成し、単発実行により動作を検証する（ステップＳ５３）。テストプログラム１７は、ＲＴＧ１６をＰＣまたはＷＳ４６上で実行して生成する。生成したテストプログラム１７を、モニタ１３などを通じてメモリ１２ａ，１２ｂにロードして実行する。論理が安定したらステップＳ５５へ進み、論理が不安定の場合は、ステップＳ５３に戻り、再度、アーリープロトタイプでの単独実行を行う（ステップＳ５４）。
【００３９】
論理の安定を確認した時点で、アーリープロトタイプでの連続実行を行う（ステップＳ５５）。この際、1回につき複数のテストプログラム１７を連続的に生成して検証（連続実行）を行う。この場合、モニタ１３などを通じてＲＴＧ１６自体をメモリ１２ａ，１２ｂ上にロードし、テストプログラム１７の生成と実行を、ＦＰＧＡ１１ａ，１１ｂ上に構築した検証対象論理上で連続実行する。アーリープロトタイプでの検証が完了したらステップＳ５７へ進み、未完了の場合はステップＳ５５に戻り、再度、アーリープロトタイプでの連続実行を行う（ステップＳ５６）。
【００４０】
ステップＳ５７では、実チップ４５での連続実行を行う。この際、アーリープロトタイプでの連続実行の場合と同様にして、1回につき複数のテストプログラム１７を連続的に生成して検証を行う。実チップでの検証が完了したら検証が完了する。未完了の場合はステップＳ５７に戻り、再度、実チップ４５での連続実行を行う（ステップＳ５８）。
【００４１】
以上は、論理機能検証の流れであるが、論理不良解析の流れは、この逆のフローとなり、前の環境に戻って再現および解析が可能である。
【００４２】
次に、図６により、すべての環境間でのメモリマップの統一による再現の容易化を説明する。図６に示すように、ＲＴＧの生成する命令列のメモリアドレスやレジスタアドレスなどのメモリマップ６１は統一されている。シミュレーション環境４１、アーリープロトタイプ環境４３、実チップ環境４４において、同一のメモリマップ６１を使用することにより、実チップ４５で不良となったものをアーリープロトタイプやシミュレーションで解析することが可能となる。
【００４３】
次に、図７により、ＴＬＢ（Translation Lookaside Buffer：メモリ高速アクセスのためのキャッシュ）の影響確認のためのＴＬＢダンプ機能について説明する。本実施の形態１おけるＲＴＧは、ＴＬＢ７１の内容をファイル出力する機能（ダンプ機能）を有する。図７において、７２は、その出力ファイルの一例である。ＴＬＢ欄のＩＴＬＢやＵＴＬＢはＴＬＢの種類、ｗａｙ欄の３や０は経路の番号、ＰＴＥＨ欄はキャッシュの上位アドレス、ＰＴＥＬ欄はキャッシュの下位アドレス、ＰＲは制御情報、ｆｒｏｍおよびｔｏはアドレス範囲である。この出力ファイル７２は、デバッグ時の補助情報として利用することができる。
【００４４】
次に、図８により、制御レジスタの初期値のランダム設定方法について説明する。図８に示すように、本実施の形態１によるＲＴＧは、ＦＰＧＡまたは実チップ内に搭載されたマイクロプロセッサコア内の制御レジスタの初期値をランダムに設定することができる。制御レジスタ８１は、初期値をランダムに設定した一例である。また、固定値のビット（群）を除き、ランダム設定することもできる。制御レジスタ８２は、初期値をランダムに設定した一例である。この場合、”０”の部分が固定値となっている。また、無効な値（排他ビット同時オン）を除外することもできる。制御レジスタ８３は、無効な値を除外した一例である。また、ユーザ指定値８４とランダム生成値８５から制御レジスタ８６の初期値を決定することもできる。制御レジスタ８６は、ランダム生成マスク８７と常時オン指定８９とランダム生成値８５から、（（ランダム値）ＡＮＤ（マスク値））ＯＲ（常時オン指定）の関係式により、初期値を決定した場合の一例である。
【００４５】
次に、図９により、問題発生時の1次切り分け手段について説明する。問題発生時の1次切り分けの手段として、アーリープロトタイプまたは実チップでの実行結果、ゴールデンモデルを用いた実行結果、ＲＴＧが生成する期待値の３者間での多数決制を採用する。そして、３者の内いずれか２者が一致していれば、残りの１者を誤りと判定する。例えば、図９のアーリープロトタイプの場合、実チップでの実行結果とゴールデンモデルを用いた実行結果が一致したときは、ＲＴＧのバグと判定する。また、ゴールデンモデルを用いた実行結果とＲＴＧが生成する期待値が一致するときは、論理の不良と判定する。
【００４６】
次に、図１０により、ＦＰＧＡ１１ａ，１１ｂ上の論理からの特定信号の引き出しおよびテストプログラム実行時の波形取得について説明する。あらかじめ、ＦＰＧＡ１１ａ，１１ｂ上に搭載した論理回路から、観測すべき信号を、ＦＰＧＡ１１ａ，１１ｂの端子に引き出しておく。アーリープロトタイプ環境４３において、ＲＴＧ１６によりテストプログラム１７を生成して、ＦＰＧＡ１１ａ，１１ｂ上でテストプログラム１７を実行することにより、ＦＰＧＡ１１ａ，１１ｂ上の論理におけるテストプログラム実行時の波形取得１０１が可能となる。
【００４７】
次に、図１１により、機能カバレージ取得について説明する。アーリープロトタイプ環境４３において、ＲＴＧ１６によりテストプログラム１７を生成して、ＦＰＧＡ１１ａ，１１ｂ上でテストプログラム１７を実行することにより、機能カバレージレポート１１１の取得が可能となる。機能カバレージレポート１１１において、”GR Forwarding”はレジスタフォーワード、 ”Parallel Execution”は並列命令の同時実行である。
【００４８】
次に、図１２により、アーリープロトタイプ上でのアサーションベース検証について説明する。アサーション１２１内に信号同士の規約（プロバティ）を記述しておき、その規約に反した場合、警告（アサート）を発する。規約の内容としては、例えば「ある信号がオンの時は、他のある信号がオフにならなければならない。」とか「リセット信号がハイになった時、５サイクル以内に特定の信号がハイにならなくてはならない。」というようなものである。アーリープロトタイプ環境４３において、ＲＴＧ１６によりテストプログラム１７を生成して、ＦＰＧＡ１１ａ，１１ｂ上でテストプログラム１７を実行することにより、アサーションベースでの検証が可能となる。そして、問題箇所の特定が容易になり、デバッグが加速される。
【００４９】
したがって、本実施の形態１の検証装置および検証方法によれば、実チップ作成前に実機と等価な環境を実現するアーリープロトタイプ環境でランダム検証可能なため、システム全体の論理検証を早期に加速可能であり、不良摘出時の対策コスト低減が可能である。
【００５０】
また、単発実行においては，テストプログラムの生成はＰＣまたはＷＳ上で実行するため、この部分はシミュレータで実行する場合でも同じである。しかし、生成したテストプログラムはＦＰＧＡ上に構築した検証対象論理回路上で実行するため、シミュレータに比べてテストプログラム実行部分が加速される。連続実行の場合は、テストプログラムの生成と実行を、ともにＦＰＧＡ上に構築した検証対象論理回路上で実行し、この動作を連続して行うため、シミュレータでの実行に比べて飛躍的に速度が向上する。
【００５１】
本実施の形態１による検証装置上で、テストプログラムの自動生成と実行を単発実行した場合、同じテストプログラムをシミュレーションで実行した場合に比べ、実行速度は約３０倍となる。また、テストプログラムの自動生成と実行を連続実行した場合、同じテストプログラムをシミュレーションで実行した場合に比べ、実行速度は約１０００倍となる。
【００５２】
また、本実施の形態１による検証装置に実装しているＲＴＧは、シミュレーション、アーリープロトタイプ、実チップのすべての環境で適用可能なため、シミュレーション、アーリープロトタイプ、実チップのすべての環境に対して、シームレスな論理検証環境を提供可能である。
【００５３】
さらに、製品全体からみた場合、電気特性などのアナログ的、プロセス的要素を除く、論理機能の品質の徹底的確認が、実チップ作成前に実現できるため、マスク作成のカット数を削減可能である。
【００５４】
（実施の形態２）
図１３は本発明の実施の形態２による検証装置のシステム構成を示す図である。本実施の形態２による検証装置は、前記実施の形態１による検証装置のボード１５上に、マイクロプロセッサ１３１を追加搭載したものである。
【００５５】
まず、図１３により、本実施の形態２による検証装置の構成の一例を説明する。本実施の形態２の検証装置は、前記実施の形態１に対してマイクロプロセッサ１３１が追加され、マイクロプロセッサ１３１、ＦＰＧＡ１１ａ，１１ｂ、メモリ１２ａ，１２ｂ、モニタ１３、Ｉ／Ｏインターフェース１４ａ，１４ｂなどから構成されている。
【００５６】
マイクロプロセッサ１３１は、汎用のマイクロプロセッサである。
【００５７】
本実施の形態２による検証装置では、マイクロプロセッサ１３１上で、ＲＴＧによりテストプログラム生成を実行する。ＲＴＧは、生成したテストプログラムを、マイクロプロセッサ１３１を通じて、ＦＰＧＡ１１ａ，１１ｂ上の検証対象回路で実行させる。他の機能および動作は、前記実施の形態１と同じである。
【００５８】
したがって、本実施の形態２による検証装置によれば、前記実施の形態１と同様の効果が得られるとともに、テストプログラム生成を追加のマイクロプロセッサ１３１上で実行することにより、周辺モジュールなど、ＲＴＧを直接実行することができない検証対象論理に適用可能になる。
【００５９】
また、ＦＰＧＡ１１ａ，１１ｂ上に構築した検証対象がマイクロプロセッサコアである場合でも、ＲＴＧによるテストプログラム生成と，検証対象に対するテストプログラム実行依頼を追加のマイクロプロセッサ１３１上で実行することにより、検証対象論理内のキャッシュなど、動作に直接影響するアーキテクチャの状態を、ＲＴＧ側でケアする必要がなくなる。
【００６０】
以上述べてきた本実施の形態１および２は、マイクロプロセッサコア及びマイクロプロセッサコアを搭載した大規模ＬＳＩ全般に対して、最も効果がある。なぜなら、実チップになる前のアーリープロトタイプ環境で適用でき、マイクロプロセッサコアおよびマイクロプロセッサコアを搭載した大規模ＬＳＩ開発時のデバッグ効率と論理品質を向上、後工程のシステム検証期間を前倒し可能であるからである。
【００６１】
また、大規模ＬＳＩに搭載するＩＰ部品についても適用可能である。なぜなら、実施の形態２で説明したように、制御用マイクロプロセッサを検証装置に追加し、ＲＴＧによるテストプログラムの生成を、ＦＰＧＡ上に構築した検証対象論理ではなく、制御用マイクロプロセッサ上で実行することにより、ＩＰ部品単体での論理検証加速が可能であり、また、大規模ＬＳＩに搭載後の実チップ環境においては、ＬＳＩ内部のマイクロプロセッサを用いてテストプログラムの生成と実行を行うことにより、単体環境と同一方式での検証実施が可能となるからである。
【００６２】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６３】
以上に述べたように、本願において開示される発明は、マイクロプロセッサコア及びマイクロプロセッサコアを搭載した大規模ＬＳＩ全般、大規模ＬＳＩに搭載するＩＰ部品などの半導体集積回路装置について適用可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施の形態１による検証装置のシステム構成を示す図である。
【図２】本発明の実施の形態１による検証装置において、ＲＴＧの構造を示す図である。
【図３】本発明の実施の形態１による検証装置において、検証装置内のメモリのメモリマップを示す図である。
【図４】本発明の実施の形態１による検証装置において、シミュレーション、アーリープロトタイプおよび実チップにおける検証環境を示す図である。
【図５】本発明の実施の形態１による検証方法の手順を示す図である。
【図６】本発明の実施の形態１による検証装置において、各環境でのメモリマップの統一化を示す説明図である。
【図７】本発明の実施の形態１による検証装置において、ＴＬＢの影響確認のためのＴＬＢダンプ機能を示す説明図である。
【図８】本発明の実施の形態１による検証装置において、制御レジスタの初期値のランダム設定方法を示す説明図である。
【図９】本発明の実施の形態１による検証装置において、問題発生時の1次切り分け手段を示す説明図である。
【図１０】本発明の実施の形態１による検証装置において、ＦＰＧＡ上の論理からの特定信号の引き出しおよびテストプログラム実行時の波形取得を示す説明図である。
【図１１】本発明の実施の形態１による検証装置において、機能カバレージ取得を示す説明図である。
【図１２】本発明の実施の形態１による検証装置において、アーリープロトタイプ上でのアサーションベース検証を示す説明図である。
【図１３】本発明の実施の形態２による検証装置のシステム構成を示す図である。
【符号の説明】
【００６５】
１１ａ，１１ｂ  ＦＰＧＡ（論理素子）
１２ａ，１２ｂ  メモリ
１３  モニタ
１４ａ，１４ｂ  Ｉ／Ｏインターフェース
１５，１５ａ，１５ｂ  ボード
１６  ＲＴＧ（テストプログラム生成プログラム）
１７  テストプログラム
２６  被検証論理
４１  シミュレーション環境
４２  シミュレータ
４３  アーリープロトタイプ環境
４４  実チップ環境
４５  実チップ
６１  メモリマップ
７２  出力ファイル
８１，８２，８３  制御レジスタ
８４  ユーザ指定値
８５  ランダム生成値
８６  制御レジスタ
８７  ランダム生成マスク
８９  常時オン指定
１０１  波形取得
１１１  機能カバレージレポート
１２１  アサーション
１３１  マイクロプロセッサ
【図１】
2005346517.tif 000003
【図２】
2005346517.tif 000004
【図３】
2005346517.tif 000005
【図４】
2005346517.tif 000006
【図５】
2005346517.tif 000007
【図６】
2005346517.tif 000008
【図７】
2005346517.tif 000009
【図８】
2005346517.tif 000010
【図９】
2005346517.tif 000011
【図１０】
2005346517.tif 000012
【図１１】
2005346517.tif 000013
【図１２】
2005346517.tif 000014
【図１３】
2005346517.tif 000015