(57)【要約】【課題】半導体集積回路のデータ転送の検証時間を短縮することができる半導体集積回路の検証装置を提供する。【解決手段】半導体集積回路の検証に用いるシナリオとパラメータとが記述されたリスト２１、２２が格納された設定ファイル記憶部１４と、前記リスト２１、２２に基づき検証に用いる転送データ４３を生成する転送データ生成部３５とを具備している。前記転送データ生成部３５は、前記シナリオの情報を記述したタグ４２を生成することを特徴とする。【選択図】図２
2012113502.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の検証に用いるシナリオとパラメータとが記述されたリストが格納された設定ファイル記憶部と、
前記リストに基づき前記検証に用いる転送データを生成する転送データ生成部と、
を具備した半導体集積回路の検証装置において、
前記転送データ生成部は、前記シナリオの情報を記述したタグを生成することを特徴とする、
半導体集積回路の検証装置。
【請求項２】
前記転送データの一部に前記タグを組み込むか否かを選択することが可能になされており、かつ、前記タグ情報を組み込む位置を指定することが可能になされていることを特徴とする、請求項１に記載の半導体集積回路の検証装置。
【請求項３】
複数のプロセッサを有する多機能半導体集積回路を検証する検証装置であって、
前記タグは、前記シナリオを実行する前記プロセッサを識別する識別子、もしくは前記シナリオを特定する識別子の少なくともいずれかを含むことを特徴とする、請求項１または請求項２に記載の半導体集積回路の検証装置。
【請求項４】
前記タグは、前記パラメータによらず一定の長さに変換されていることを特徴とする、請求項１から請求項３のいずれか一項に記載の半導体集積回路の検証装置。
【請求項５】
前記転送データを用いて前記リストに基づくテストプログラムを実行した場合に得られることが期待される期待値を生成する期待値生成部をさらに備えることを特徴とする、請求項１から請求項４のいずれか一項に記載の半導体集積回路の検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路の検証装置に関する。
【背景技術】
【０００２】
近年の電子機器の小型化・高性能化に伴い、各電子機器に要求される複数の機能を１個のチップに集積させた多機能半導体集積回路（以下、システムＬＳＩと示す）に対するニーズが高まっている。
【０００３】
従来、システムＬＳＩの検証においては、例えば、シリアルＩＦやパラレルＩＦ、ビデオやオーディオなどの入出力ＩＦ、ＤＭＡＣ、メモリＩＦなど、検証対象のシステムＬＳＩに搭載されている様々なＩＦモジュール間で、データ転送が仕様通りに行われていることを確認するための検証が行われている。この検証においては、送信方法（コマンド及びパラメータ）、送信元、送信先、送信データなどを変化させた検証を、あるＩＦモジュールのチャネル違いで組み合わせたり、別のＩＦモジュールと組み合わせたりすることで、システムＬＳＩ全体の動作をシミュレートしている。
【０００４】
このようなデータ転送の検証は、通常、データ転送のシナリオを記述したテストプログラムを用いて論理シミュレーションで行われる。テストプログラムをシステムＬＳＩに内蔵されるプロセッサで実行したときに、データ転送結果が期待値と一致しない場合、不具合箇所を見つけ出す必要がある。すなわち、テストプログラムに記述されたシナリオのうち、どのデータ転送まで正しく実行され、どのモジュールでどのデータ転送が正しく実行されていないのかを解析する必要がある。
【０００５】
このとき、論理シミュレーションして得られたシステムＬＳＩの回路情報を画面に波形表示させ、プロセッサからの命令や、データ転送経路上に配置された入出力ＩＦのＩＦ信号、バスの信号、メモリＩＦの信号などを画面上で目視確認することによって、データ転送が正確に行われているか否かを判断する。ところが、テストプログラムには、通常、複数の異なる経路のデータ転送や、同一経路でも複数回のデータ転送が行われるようにシナリオが記述されているため、画面上で確認している波形が、テストプログラムに記述されたどのデータ転送に関する信号であるのかを特定するのに非常に時間を要するという問題があった。
【０００６】
画面を目視で確認するだけでなく、データ転送経路の主なＩＦ信号のイベントによる変化や、メモリの内容をファイルに出力し、ファイルを解析することでデータ転送が正しく行われているか否かを確認する手法を併用することも、従来行われている。しかしながら、システムＬＳＩの高集積化、搭載される機能の高機能化に伴い、データ転送の複雑さは飛躍的に増しており、ファイルを解析するのにもまた非常に時間を要するという問題があった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２１０００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そこで、本実施形態は、以上の点に鑑みてなされたもので、半導体集積回路のデータ転送の検証時間を短縮することができる半導体集積回路の検証装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本実施形態の半導体集積回路の検証装置は、検証に用いるシナリオとパラメータとが記述されたリストが格納された設定ファイル記憶部と、前記リストに基づき前記検証に用いる転送データを生成する転送データ生成部とを具備している。前記転送データ生成部は、前記シナリオの情報を記述したタグを生成することを特徴とする。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係わる半導体集積回路の検証装置１の構成の一例を説明する概略ブロック図。
【図２】第１の実施形態に係わるテストプログラム４１及び転送データ４３の生成に関する部位の詳細な構成を説明する概略ブロック図。
【図３】第１の実施形態に係わるシナリオリスト２１の一例を説明する図。
【図４】第１の実施形態に係わるパラメータリスト２２の一例を説明する図。
【図５】第１の実施形態に係わるタグ４２０の一例を説明する図。
【図６】第１の実施形態に係わる検証シナリオを実行させるプロセッサ別の転送データ４３の一例を説明する図。
【図７】第１の実施形態に係わる転送データ４３を生成する手順を示すフローチャート。
【図８】第１の実施形態に係わる検証対象の半導体集積回路６１の一例を説明する概略ブロック図。
【図９】第１の実施形態に係わる出力部３における論理シミュレーションで得られた検証結果の信号の表示例を説明する概略図。
【図１０】第１の実施形態に係わる特定のビット位置に特定のパターンを用いる転送データの一例を説明する図。
【図１１】第１の実施形態に係わる特定のビット位置にタグが組み込まれた転送データ４３ｂ´の一例を説明する図。
【図１２】第２の実施形態に係わるタグ４２６ｈの生成を説明する図。
【図１３】第２の実施形態に係わる固定長のタグを用いた転送データの一例を説明する図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して実施形態を説明する。
【００１２】
（第１の実施形態）
始めに、図１を参照して、本発明の第１の実施形態に係わる半導体集積回路の検証装置１の構成を説明する。図１は、本発明の第１の実施形態に係わる半導体集積回路の検証装置１の構成の一例を説明する概略ブロック図である。
【００１３】
図１に示すように、本発明の第１の実施形態に係わる半導体集積回路の検証装置１（以下、検証装置１と示す）は、検証に関する設定値など各種情報を入力するための入力部２と、検証結果を出力するための出力部３とに接続されている。入力部２は、具体的には例えばキーボードやマウスなどであり、出力部３は、例えばＣＲＴなどの画面やデータを格納する記憶装置である。
【００１４】
検証装置１は、入力部２及び出力部３と接続された入出力インタフェース部１１と、検証装置１を構成する各部の動作を制御する制御部１２とを備えている。また、検証装置１は、検証対象である半導体集積回路の設計データが記憶された回路記述記憶部１３と、検証に関する各種設定情報を格納した設定ファイル記憶部１４と、検証に用いるテストプログラム４１などを生成するテストプログラム生成部１５と、生成したテストプログラム４１などを格納するテストプログラム記憶部１６とを備えている。
【００１５】
さらに、検証装置１は、検証環境が格納された検証環境記憶部１７と、テストプログラム４１などに従って論理シミュレーションを実行する論理シミュレーション部１８と、デフォルトの検証シナリオなどが格納されたシナリオ情報記憶部１９とを備えている。
【００１６】
以下、個々の部位について詳細に説明する。
【００１７】
設定ファイル記憶部１４には、図２に示すように、シナリオリスト２１と、パラメータリスト２２と、メモリマップ２３と、制約ファイル２４とが格納されている。図２は、テストプログラム４１及び転送データ４３の生成に関する部位の詳細な構成を説明する概略ブロック図である。
【００１８】
シナリオリスト２１は、検証において実行されるシナリオが設定されたリストであり、例えば図３に示すような内容が記述されている。図３は、シナリオリスト２１の一例を説明する図である。図３に示すように、シナリオリスト２１には、複数のシナリオがリストとして格納されている。個々のシナリオには、シナリオを命令として実行させるプロセッサを識別するためのプロセッサＩＤ５１と、シナリオを一意に識別するためのシナリオ番号５２と、検証する具体的なシナリオ５３とが設定される。すなわち、個々のシナリオは、プロセッサＩＤ５１と、シナリオ番号５２と、シナリオ５３の三つの項目に関する情報が設定されている。
【００１９】
図３に示す例では、シナリオリスト２１にはシナリオ番号５２が“０”から“５”までの６つのシナリオが設定されており、例えばシナリオ番号５２が“０”のシナリオには、プロセッサＩＤ５１が“００ａ１”で定義されたプロセッサにデータ転送を実行させるようにシナリオが設定されている。
【００２０】
なお、検証対象の半導体集積回路にプロセッサが１つしか内蔵されていない場合、プロセッサＩＤ５１に全て同じ値が設定されることになるため、本項目はシナリオリスト２１から省略してもよい。また、プロセッサが複数のコアを有する場合、シナリオを実行させるプロセッサ及びコアが特定できるようにプロセッサＩＤ５１を設定する。さらに、シナリオ５３を２つ以上の項目に細分して項目化してもよい。例えば、シナリオ５３を転送モジュールと実行する機能とに分割して項目化してもよい。このように項目化する場合、例えばシナリオ番号“１”のシナリオでは、転送モジュールとして“モジュールＸ”、実行する機能として“マスタモードでのデータ入力”がそれぞれ設定される。
【００２１】
パラメータリスト２２は、検証において実行されるシナリオで用いられる詳細なパラメータが設定されたリストであり、例えば図４に示すような内容が記述されている。図４は、パラメータリスト２２の一例を説明する図である。図４に示すように、パラメータリスト２２には、シナリオリスト２１に記述された個々のシナリオのどれに用いられるかを識別するためのシナリオ番号５２と、シナリオで用いられるパラメータの数を示すパラメータ数５４と、具体的な設定値であるパラメータ５５とが記述される。
【００２２】
パラメータ５５には、シナリオで用いられるパラメータの項目が列挙される。図４に示す例では、パラメータ５５として６つの項目が設定できるようにパラメータリスト２２が構成されている。具体的には、パラメータ０として実行する機能を示す「コマンド」が、パラメータ１、及びパラメータ２としてデータアクセス先のアドレスを示す「アドレス１」「アドレス２」が設定されている。また、パラメータ３として転送データの大きさを示す「サイズ」が、パラメータ４として転送データの生成の仕方を示す「データ種別」が、パラメータ５として転送後の出力データ（シナリオを実行させた場合の出力データ）と期待値とを比較するか否かを示す「期待値比較」が設定されている。
【００２３】
なお、パラメータ４の「データ種別」としては、転送データをランダムに生成することを示す“ランダム”のほかに、特定の固定値を用いる“固定”などが設定される。また、パラメータ５の「期待値比較」では、転送後の出力データと期待値とを比較する場合に“１”が設定され、比較しない場合に“０”が設定される。
【００２４】
なお、パラメータリスト２２は、シナリオリスト２１に記述された個々のシナリオに関する詳細なパラメータを記述するものであるため、必ずしも分割してリスト化する必要はなく、両リストを１つのリストとしてまとめて設定ファイル記憶部１４に格納してもよい。ただし、パラメータリスト２２をシナリオリスト２１とは別に準備しておくことで、同一のシナリオでパラメータを一部変えて検証を行う場合（例えば、その他は同一の条件で、期待値を比較する場合としない場合の両方を検証する場合など）に、シナリオリスト２１を更新することなくパラメータリスト２２を変更したり、新しいレコードを追加したりすればよいので、変更が容易であり、かつデータのメンテナンス性が向上するという利点がある。
【００２５】
また、検証対象の半導体集積回路が複数のプロセッサで構成されている場合、シナリオリスト２１をプロセッサごとに作成してもよい。
【００２６】
メモリマップ２３は、メインメモリのアドレスやサブメモリのアドレスが定義されたファイルである。このアドレスは、検証対象の半導体集積回路の仕様、すなわち回路記述記憶部１３の設計データによって決められる。なお、半導体集積回路が複数のプロセッサで構成されている場合、シナリオリスト２１などと同様に、メモリマップ２３をプロセッサごとに作成し、複数のマップを設定ファイル記憶部１４に格納してもよい。
【００２７】
制約ファイル２４は、テストプログラムを生成するにあたっての制約条件が記述されたファイルである。このファイルには、例えばアクセスが禁止されたメモリ空間などが記述される。
【００２８】
テストプログラム生成部１５は、図２に示すように、パラメータ異常判定部３３と、テストプログラム組立部３４と、転送データ生成部３５と、期待値生成部３６とから構成されている。また、テストプログラム生成部１５には、テストプログラム４１を生成するために必要な情報として、シナリオ別テンプレート３１と、シナリオ共通テンプレート３２とが格納されている。
【００２９】
シナリオ別テンプレート３１は、検証に用いられるシナリオに応じたテンプレートのファイルである。例えば、テストプログラム４１がＣ言語で記述される場合、ＤＥＦＩＮＥ文やシナリオを具現化した雛形となるプログラムがシナリオ別テンプレート３１に記述されている。シナリオ共通テンプレート３２は、全ての検証シナリオに共通のプログラム情報が定義されたファイルであり、例えばプロセッサの初期動作を規定するいわゆるブートコードや各シナリオ別テンプレート３１から読み出されるライブラリなどが記述されている。
【００３０】
パラメータ異常判定部３３は、選択されたパラメータリスト２２に設定されたパラメータを使用して、テストプログラム４１を作成及び実行した場合に、禁止されたアドレスや存在しないアドレスにアクセスしてしまう異常事態が発生するか否かを、メモリマップ２３、及び制約ファイル２４を照合して判定する。
【００３１】
テストプログラム組立部３４は、入力部２や設定ファイル記憶部１４から入力される情報や、シナリオ別テンプレート３１、シナリオ共通テンプレート３２に基づいて、検証に用いるテストプログラム４１を組み立てる。具体的には、入力部２からの指示に従って選択されたシナリオリスト２１を参照して、シナリオ別テンプレート３１から該当するテンプレートを選び出し、仮のプログラムを生成する。なお、１つのシナリオリスト２１に対して選択されるシナリオ別テンプレート３１は１つに限らず、複数のテンプレートが選択される場合もある。続いて、選択されたパラメータリスト２２に設定されたパラメータを仮のプログラムの所定箇所に設定し、シナリオ共通テンプレート３２に記述されたプログラムを加えることで、テストプログラム４１を組み立てる。
【００３２】
転送データ生成部３５は、入力部２や設定ファイル記憶部１４から入力される情報に基づいて、検証に用いる転送データ４３を生成する。具体的には、まず、選択されたパラメータリスト２２に設定されたパラメータ５５の「サイズ」と「データ種別」とを参照して、転送用基本データを生成する。例えば、図４に示すパラメータリスト２２が選択された場合、シナリオ番号５２が“０”のリストのパラメータ５５の「サイズ」は“０ｘ８０”、「データ種別」は“ランダム”であるため、データ長が０ｘ８０で値がランダムなデータを転送用基本データとして生成する。
【００３３】
次に、転送データ４３にタグを組み込むか否かの指示を参照し、タグを組み込む場合は図５に示すようなタグ４２０を生成する。図５は、タグ４２０の一例を説明する図である。タグ４２０は、選択されたプロセッサＩＤ５1、シナリオ番号５２、パラメータ数５４、数値に変換されたパラメータ５５の値、を順に並べたデータである。
【００３４】
例えば、シナリオ番号５２が“０”のシナリオの場合、図３に示すシナリオリスト２１の当該リストを参照し、プロセッサＩＤとして“００ａ１”が抽出され、また、図４に示すパラメータリスト２２の当該リストを参照して、パラメータ数５４として“５”が抽出される。また、パラメータ５５として「コマンド」が“Write_Read”、「アドレス１」が“０ｘ４０００００００”、「サイズ」が“０ｘ８０”、「データ種別」が“ランダム”、「期待値比較」が“１”抽出される。これらの個別パラメータを、例えば“Write_Read”を０００００００３、“０ｘ４０００００００”を４０００００００、“０ｘ８０”、を００００００８０、“ランダム”を０００００００１、“１”を０００００００１のように、それぞれ長さ４バイトになるように数値化して順に並べる。
【００３５】
さらに、選択されたプロセッサＩＤ５１、シナリオ番号５２を長さ２バイトに、パラメータ数５４を長さ４バイトにそれぞれ整え、数値化されたパラメータ５５をこれに続けて並べ、図５に示すような長さ２８バイトのタグ４２０を生成する。
【００３６】
なお、タグ４２０を構成する各要素の長さは上述した値に限定されるものでなく、検証対象の半導体集積回路のプロセッサの数、検証するシナリオの数やパラメータ数の上限、検証結果を目視する場合の見やすさ、などを考慮して決めることができる。例えば、図５ではパラメータ数５４の長さを４バイトとしているが、１バイトや２バイトにしてもよい。
【００３７】
入力部２などから指示されるタグ組み込み先頭位置、及びタグの長さの指示に基づき、生成されたタグ４２０を転送用基本データの当該個所のデータと差し替えて、転送データ４３を生成してファイルに出力する。図６に、転送データ４３の一例を示す。図６は検証シナリオを実行させるプロセッサ別の転送データ４３を示しており、図６（ａ）は、プロセッサＩＤが“００ａ１”で定義されたプロセッサ用の転送データ４３ａ、図６（ｂ）は、プロセッサＩＤが“００ａ２”で定義されたプロセッサ用の転送データ４３ｂを示している。
【００３８】
図６は、転送データの先頭に、長さ２８バイトのタグを組み込むよう指示が入力されており、図３に示すシナリオリスト２１と図４に示すパラメータリスト２２を用いてシナリオを実行させる場合の転送データ４３を示している。シナリオ番号５２が“０”のシナリオについては、上述の通り図５に示すタグ４２０を生成し、転送用基本データ０の先頭から２８バイト分の箇所のデータとタグ４２０とを差し替えて、転送データ４３０を生成する。
【００３９】
シナリオ番号５２が“１”から“５”の５つのシナリオについても同様に、タグ４２１、４２２、４２３、４２４、４２５をそれぞれ生成し、転送用基本データ１、データ２、データ３、データ４、データ５の先頭から２８バイト分の箇所のデータと差し替えて、転送データ４３１、４３２、４３３、４３４、４３５をそれぞれ生成する。なお、シナリオの実行によって得られる出力データと期待値とを比較する場合、生成された転送データ４３は期待値生成部３６にも出力される。
【００４０】
また、生成されたタグ４２０〜４２５は、タグ情報４２としてファイル化され、テストプログラム記憶部１６に出力される。すなわち、タグ情報４２は、最終的に転送データ４３に組み込まれたタグ４２０〜４２５のリストであり、転送データ４３がのる信号の波形表示や、出力部３に出力・表示された信号からタグを特定するときに用いられる。
【００４１】
このように、各転送データ４３０〜４３５の先頭に配置されたタグ４２０〜４２５の先頭の２バイトと次の２バイトを参照すれば、それぞれの転送データ４３０〜４３５がどのプロセッサで実行されているどの検証シナリオのデータかすぐにわかるので、データの解析が容易になる。
【００４２】
なお、タグ組み込み先頭位置、及びタグの長さの指示は、入力部２から入力するのではなく、パラメータリスト２２に項目を追加して設定したり、別ファイルに予め設定したりしておいてもよい。
【００４３】
期待値生成部３６は、入力された転送データ４３に基づき、期待されるシナリオの実行結果（＝期待値４４）を生成し、ファイルに出力する。
【００４４】
テストプログラム記憶部１６には、図２に示すように、テストプログラム生成部１５で生成された各種ファイル、具体的にはテストプログラム４１と、タグ情報４２と、転送データ４３と、期待値生成部３６で生成された期待値４４とが格納される。
【００４５】
次に、本実施形態のポイントとなる転送データ４３を生成する具体的な手順について、図７を用いて説明する。図７は、転送データ４３を生成する手順を示すフローチャートである。
【００４６】
図７に示すように、まずステップＳ１において、設定ファイル記憶部１４に格納された複数のシナリオリスト２１と複数のパラメータリスト２２の中から、検証に用いるシナリオリスト２１とパラメータリスト２２とを選択し、テストプログラム生成部１５に出力する。検証に用いるシナリオリスト２１やパラメータリスト２２、詳細な検証条件の設定（タグ組み込み有無、タグ組み込み先頭位置やタグの長さ、期待値との比較有無など）は、入力部２から検証を行う際に直接指示してもよいし、シナリオ情報記憶部１９にデフォルトの情報として設定しておいてもよい。
【００４７】
次に、ステップＳ２に進み、選択されたパラメータリスト２２に設定されたパラメータを制約ファイル２４やメモリマップ２３などに照らし合わせて、パラメータに異常な値がないか否かをパラメータ異常判定部３３で判定する。パラメータが異常であると判定された場合、ステップＳ３に進み、出力部３に警告を表示して転送データ４３の生成を終了する。
【００４８】
一方、ステップＳ２においてパラメータが異常でないと判定された場合、ステップＳ４に進み、検証シナリオにデータ転送が含まれているか否かを判定する。データ転送が含まれていない場合、転送データ４３の生成を終了し、組み立てられたテストプログラム４１に基づく論理シミュレーションの実行へ移行する。
【００４９】
一方、ステップＳ４において検証シナリオにデータ転送が含まれていると判定された場合、ステップＳ５に進み、転送データ生成部３５で転送用基本データを生成する。転送用基本データは、入力部２から入力される指示や、シナリオ情報記憶部１９の情報などに従って、ステップＳ１で選択されたパラメータリスト２２に設定されたパラメータの「サイズ」と「データ種別」とを参照して生成される。
【００５０】
次に、ステップＳ６に進み、転送データ４３にタグを組み込むか否かを判定する。タグの組み込み有無は、入力部２から入力されるか、シナリオ情報記憶部１９にデフォルトの情報として設定されている。タグを組み込まないと判定された場合、ステップＳ５で生成された転送用基本データを転送データ４３としてステップＳ１１に進む。
【００５１】
一方、ステップＳ６において、転送データ４３にタグを組み込むと判定された場合、ステップＳ７に進み、転送データ生成部３５でタグを生成する。タグは、選択されたプロセッサＩＤ５1、シナリオ番号５２、パラメータ数５４、数値に変換されたパラメータ５５の値、を順に並べたデータであり、生成の方法は上述の通りである。
【００５２】
続いてステップＳ８において、タグを組み込む位置と、タグを組み込む長さとを取得する。タグ組み込み位置及びタグ組み込み長も、タグの組み込み有無と同様に、入力部２から入力されるか、シナリオ情報記憶部１９にデフォルトの情報として設定されている。
【００５３】
次に、ステップＳ９に進み、ステップＳ５で生成した転送用基本データにステップＳ７で生成したタグを組み込み、転送データ４３を生成する。タグを組み込む位置及び長さは、ステップＳ８で取得した位置及び長さに従う。さらに、ステップＳ１０において、ステップＳ７で生成したタグを、タグ情報４２としてファイル化し、テストプログラム記憶部１６に出力する。
【００５４】
引き続きステップＳ１１において、生成された転送データ４３をファイル化し、テストプログラム記憶部１６に出力する。最後に、ステップＳ１２において、転送データ４３を期待値生成部３６に出力して、転送データ４３の生成を終了する。
【００５５】
このように、転送データ４３を生成する際に、転送データ４３に対してタグを組み込むか否かを選択的に行うことができるので、タグが不要な検証についてはタグ生成の手間を省略することができ、データの生成時間を短縮することができる。また、通常のテストではタグを組み込まないデータ（転送用基本データ）を転送データ４３としてテストプログラム４１を実行し、結果が期待値４４と異なる場合には、タグを組み込んだ転送データ４３を生成して同一のテストプログラム４１を実行し不具合箇所を特定する、というように検証の目的に応じて転送データ４３を生成することができる。
【００５６】
次に、本実施形態の検証装置１を用いてデータ転送の検証を行った場合に出力部３に表示される信号を、図８及び図９を用いて概略的に説明する。図８は、検証対象の半導体集積回路６１の一例を説明する概略ブロック図であり、図９は、出力部３における論理シミュレーションで得られた検証結果の信号の表示例を説明する概略図である。
【００５７】
例えば図８に示すように、メインバス６３と、メインバスにそれぞれ接続された２本のサブバス６４、６５を有し、メインバス６３に入出力ＩＦ６７ｃ、入力ＩＦ６８、プロセッサＢ６６ｂ、ＤＭＡＣ７２ｂ、メインメモリＩＦ７０が接続され、サブバス６４に入出力ＩＦ６７ａ、６７ｂとＤＭＡＣ７２ａが接続され、サブバス６５にプロセッサＡ６６ａ、出力ＩＦ６９、サブメモリＩＦ７１が接続されて構成されている多機能半導体集積回路６１に関してデータ転送の検証を行う場合について説明する。
【００５８】
例えば、検証用モデル６２ａ、６２ｂを、それぞれ入出力ＩＦ６７ａ、メインメモリＩＦ７０にそれぞれ接続し、プロセッサＢ６６ｂに命令を実行させて検証用モデル６２ａから入出力ＩＦ６７ａ、サブバス６４、メインバス６３、メインメモリＩＦ７０を経由して検証用モデル６２ｂにデータを転送する検証（シナリオＡを用いた検証とする）を行う場合、入出力ＩＦ６７ａのＩＮ側（Ｐ１）の信号とＯＵＴ側（Ｐ２）の信号、サブバス６４（Ｐ３）の信号、メインバス６３（Ｐ４）の信号、メインメモリＩＦ７０のＩＮ側（Ｐ５）の信号とＯＵＴ側（Ｐ６）の信号を波形表示させて動作確認する。
【００５９】
この時、上記経路でのデータ転送が一定時間間隔で繰り返し行われ、さらに、プロセッＡ６６ａにも命令を実行させ、プロセッサＡ６６ａからサブバス６５、メインバス６３、メインメモリＩＦ７0を経由して検証用モデル６２ｂにデータを転送させる検証（シナリオＢを用いた検証とする）を並行して実施した場合、論理シミュレーションで得られる検証結果の信号の一部である複数のビット幅をもつデータ信号は、例えば図９に示すような表示となる。図９は、Ｐ１からＰ６の各ポイントにおけるデータ信号波形の時間経過を抽象的に表記した図であり、太線で囲まれた矩形が有効なデータ信号部分を示している。
【００６０】
転送データ４３としてタグのないランダムなデータを用いる場合、論理シミュレーションで得られる検証結果Ｐ１からＰ６の出力として出現するデータ信号は、全てランダムな値が表示される。このため、ある特定のポイントの一のデータ信号に着目した場合、特に、そのポイントが複数のプロセッサの実行による転送データの経路に位置する場合、その信号がどのシナリオを実行した結果得られたものであるのか、具体的には、シナリオＡの検証結果であるか、シナリオＢの検証結果であるか、シナリオＡの検証結果であるならば、何回目のデータ転送の検証結果であるのかを特定するのが困難であった。
【００６１】
このため従来はデータ信号だけでなく、コマンド信号、アドレス信号、コマンドに対するレスポンス信号など複数の信号をシナリオに沿って順に調べて統合的に動作を確認しており、検証に時間がかかっていた。さらに、Ｐ１とＰ２や、Ｐ５とＰ６ではデータ転送のプロトコルが異なるため調べる信号も異なり、各プロトコルを熟知して各信号波形を調査するため、検証に時間がかかっていた。
【００６２】
一方、本実施形態の検証装置１によれば、命令を実行するプロセッサを特定できるプロセッサＩＤ５１や、シナリオ番号５２を識別することができるタグを転送データ４３に組み込んで検証を実行することができる。例えば、プロセッサＡ６６ａを識別するプロセッサＩＤ５１を“００ａ１”とし、プロセッサＢ６６ｂを識別するプロセッサＩＤ５１を“００ａ２”とし、プロセッサＩＤ５１を先頭の２バイトに、シナリオ番号５２を次の２バイトに数値化したタグを、データの先頭に組み込んだ転送データ４３を用いて検証する場合を考える。
【００６３】
この場合、図９に示すように、転送データが出力された信号の先頭にタグが出現するので、当該データ信号の先頭の４バイトとタグ情報４２とを突合することで、該データ信号がどのシナリオのデータ転送の結果であるか、また、どのプロセッサによって実行された何回目のデータ転送の結果であるか、一目瞭然である。例えば、Ｐ４において３つ目に出現する信号の先頭４バイトは“００ａ２０００２”であるので、プロセッサＢ６６ｂによって実行されたシナリオ番号“２”の転送データであることが容易に識別できる。
【００６４】
さらに、図９のように観察したいデータ転送経路の各モジュールの信号を並べると、データ信号上のタグの並びから、各ＩＦやバスを介したデータの伝播をすばやく目視確認できる。
【００６５】
このように、本実施形態の半導体集積回路の検証装置１では検証に用いる転送データ４３の所定の位置に、検証シナリオや命令を実行させるプロセッサを識別するための情報を記述したタグを組み込んで検証を行うことができるため、データ信号のどの時刻の信号がどのシナリオに基づくデータ転送に対応する信号であるのかをデータ信号のみで容易に特定することができ、データ転送の検証時間を短縮することができる。
【００６６】
また、本実施形態の半導体集積回路の検証装置１では、タグ及びタグ情報はテストプログラム、転送データ、期待値を生成する際にシステマティックに生成されるため、検証者が自由にタグを付与する場合の誤りを防ぐことができ、シナリオやパラメータの変更や追加によるタグの変更や追加も手間をかけずに自動で行える。
【００６７】
なお、検証対象の半導体集積回路に、転送データ４３の特定のビット位置に特定のパターンを用いることが仕様で規定されているモジュールが含まれる場合がある（図１０参照）。図１０は、特定のビット位置に特定のパターンを用いる転送データの一例を説明する図である。図１０に示すように、パケットヘッダ４５の後にデータ本体であるペイロード４６が続くトランスポートストリームを入力とするＩＦモジュールでは、先頭から４バイトをヘッダとしてパケット受信することが仕様で規定されている。
【００６８】
このような場合、図１１に示すように、転送データの先頭ではなく、パケットヘッダ４５１〜４５４の後にタグ４２１〜４２４を組み込むようにする。図１１は、特定のビット位置にタグが組み込まれた転送データ４３ｂ´の一例を説明する図である。図１１は、図６（ｂ）に示す転送データ４３ｂのタグ４２１〜４２４の組み込み位置を、それぞれパケットヘッダ４５１〜４５４の後に変更した場合の転送データ４３ｂ´を示している。
【００６９】
上述のように、本実施形態の半導体集積回路の検証装置１では、タグの組み込み位置が自由に設定でき、かつ、転送データ４３にタグを組み込むか否かが自由に設定できるので、例えば、タグを組み込んだ転送データ４３を用いてテストプログラム４１のデータ転送に関する部分を実行して動作を確認し、続いてタグを組み込まない画像データを用いて転送し、その後のビデオデコード処理を連続して行うことで、検証時間をより短縮することができる。
【００７０】
なお、転送データ４３のデータ量がタグのサイズより少ない場合や、パラメータ数５４が多いためにタグが長くなる場合は、タグを構成する項目を一部除いてタグの長さを短縮してもよい。この場合、シナリオ番号５２によらず同じ値をとるパラメータから除くとよい。例えば、図４に示すパラメータリスト２２において、パラメータ５５の「データ種別」と「期待値比較」はシナリオ番号５２によらず常に同じ値をとっているため、これらのパラメータはタグを生成する際にタグから除くことができる。「データ種別」と「期待値比較」とをタグから除くことで、タグの長さを２８バイトから２０バイトに短縮することができる。
【００７１】
（第２の実施形態）
上述した実施形態においては、タグの長さはパラメータ数５４に依存しており、例えば図６に示すように、パラメータ５５の項目数が多いシナリオ、すなわち、パラメータ数５４が“６”であるシナリオ番号５２が“５”のシナリオに関するタグ４２５の長さは、パラメータ数５４が“５”である他のシナリオに関するタグ４２０〜４２４よりも４バイト長く生成されていた。一方、本実施形態の半導体集積回路の検証装置では、パラメータ５５の項目数に依らず、タグの長さが一定になされる点が異なっている。
【００７２】
本実施形態の検証装置は、転送データ生成部３５で生成されるタグ情報４２を除き、構成及び転送データ生成手順は図１〜図１１を用いて説明した第１の実施形態と同様であるので説明を省略する。
【００７３】
第１の実施形態では、転送データ生成部３５において、シナリオリスト２１やパラメータリスト２２に記述された、選択されたプロセッサＩＤ５1、シナリオ番号５２、パラメータ数５４、数値に変換されたパラメータ５５の値、を順に並べた値をタグとしていた。本実施形態では、このようにして生成した値を、任意の長さの入力に対して固定長の出力を得るような関数を使用して圧縮し、タグを生成している。このような関数としては、例えばハッシュ関数を用いることができる（図１２参照）。
【００７４】
図１２は、本発明の第２の実施形態におけるタグ４２６ｈの生成を説明する図である。図１２に示す例では、パラメータ数５４が“１６”で７２バイトの長さのタグ４２６を、ハッシュ関数ＳＨＡ−１を用いることで、２０バイトの長さのタグ４２６ｈに変換している。ハッシュ関数ＳＨＡ−１は、Ｌｉｎｕｘ上でコマンドsha1sumを用いて簡単に求めることができるので、コストをかけずにタグの符号化・圧縮を行うことができる。
【００７５】
このようなハッシュ関数を用いてタグを変換すると、例えば図６に示すタグ４２０〜４２５は、図１３に示すタグ４２０ｈ〜４２５ｈに変換され、全てのタグの長さが２０バイトの固定長になる。図１３は、固定長のタグを用いた転送データの一例を説明する図である。
【００７６】
このように、本実施形態ではタグの情報を符号化・圧縮して固定長に変換することで、波形表示されたデータ信号からタグを検索するのに要する時間を短縮することができ、データ転送の検証時間を短縮することができる。
【００７７】
なお、上述の例ではタグの圧縮にハッシュ関数ＳＨＡ−１を用いたが、圧縮の方法はこれに限定されるものではなく、種々の方法を適用することができる。
【００７８】
また、本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【００７９】
例えば、本発明の検証装置は半導体装置を論理シミュレーションで検証する場合に用いるだけでなく、エミュレーションで検証する場合に用いることもできる。
【００８０】
また例えば、タグが組み込まれた転送データが載るデータ信号をそのまま出力部３に表示するだけでなく、転送経路の各ポイントで同じタグを同じ色で表示したり、さらに特定のタグ（例えば、特定のプロセッサのみを識別するタグ）を指定すると、指定されたタグを含むデータ信号の色を変化させて表示させたりするなど、より視覚的に識別容易にする仕組みを出力部３に設けてもよい。（単純に特定の色に変化させて表示させるだけでなく、背景色と反転させて表示させたり点滅させて表示させたりすることで、特定のデータ信号を強調表示させて視覚的に識別容易にする仕組みを設けてもよい。）
また、論理シミュレーションで得られた信号の情報を画面に波形として表示するだけでなく、これらの情報とタグ情報４２とを比較した結果をファイル化して出力するなど、検証の目的やユーザのニーズなどに応じて出力形態は自由に変更可能である。
【符号の説明】
【００８１】
１４…設定ファイル記憶部、２１…シナリオリスト、２２…パラメータリスト、３５…転送データ生成部、４２…タグ情報、
【図１】
2012113502.tif 000003
【図２】
2012113502.tif 000004
【図３】
2012113502.tif 000005
【図４】
2012113502.tif 000006
【図５】
2012113502.tif 000007
【図６】
2012113502.tif 000008
【図７】
2012113502.tif 000009
【図８】
2012113502.tif 000010
【図９】
2012113502.tif 000011
【図１０】
2012113502.tif 000012
【図１１】
2012113502.tif 000013
【図１２】
2012113502.tif 000014
【図１３】
2012113502.tif 000015