(57)【要約】【課題】  ハードウェア記述言語を用いて設計された半導体集積回路の検証をテスト用ファイルを用いて高速かつ効率的に行うことができる半導体集積回路の検証装置を提供することを目的とする。【解決手段】  ハードウェア記述言語を用いて設計された半導体集積回路１１０の検証装置１００であって、テスト用ファイルのファイル名を格納する第１格納手段と、テスト用データを格納する第２格納手段と、第１格納手段に格納されているファイル名で特定されたテスト用ファイルの少なくとも一部を構成するテスト用データを第２格納手段に順次格納するデータ制御手段と、第２格納手段に格納されているテスト用データで検証対象の半導体集積回路を検証する検証手段とを有することにより上記課題を解決する。【選択図】  図３
2006059089.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語を用いて設計された半導体集積回路の検証装置であって、
テスト用ファイルのファイル名を格納する第１格納手段と、
テスト用データを格納する複数のファイルで構成される第２格納手段と、
前記第１格納手段に格納されている前記ファイル名で特定されたテスト用ファイルの少なくとも一部を構成する前記テスト用データを前記第２格納手段に順次格納するデータ制御手段と、
前記第２格納手段に格納されている前記テスト用データで検証対象の半導体集積回路を検証する検証手段と
を有することを特徴とする半導体集積回路の検証装置。
【請求項２】
前記検証手段は、前記半導体集積回路のインターフェース仕様に応じたタイミングで前記第２格納手段に格納されている前記テスト用データを前記半導体集積回路に出力することを特徴とする請求項１記載の検証装置。
【請求項３】
前記データ制御手段は、前記第２格納手段の記憶容量に基づいて分割された前記テスト用データを、前記第２格納手段に順次格納することを特徴とする請求項１又は２記載の検証装置。
【請求項４】
前記データ制御手段は、前記第２格納手段の記憶容量に基づいて分割された前記テスト用データの論理ポート判定用のデータを、前記第２格納手段に格納することを特徴とする請求項１乃至３何れか一項記載の検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の検証装置に係り、特にハードウェア記述言語を用いて設計された半導体集積回路の検証装置に関する。
【背景技術】
【０００２】
近年、ＶｅｒｉｌｏｇＨＤＬやＶＨＤＬなどのハードウェア記述言語（ＨＤＬ）による回路設計が行われるようになった。ＨＤＬは、半導体集積回路の一例であるＬＳＩの回路設計のために使われるプログラミング言語である。なお、ＨＤＬの記述レベルはビヘイビア記述と、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述と、構造記述とに大別できる。ビヘイビア記述は、抽象度の高い記述方法である。ＲＴＬ記述は、ビヘイビア記述よりも抽象度の低い記述方法である。構造記述は、ＲＴＬ記述よりも更に抽象度の低い記述方法である。
【０００３】
また、ＨＤＬにより設計されたＬＳＩの検証は、例えばシミュレータ及びエミュレータを利用して行われる。シミュレータは、回路動作をソフトウェアシミュレーションとして動作させるものである。エミュレータは、例えばＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等とのインターフェースを有しており、設計した回路をＦＰＧＡ等にマッピングすることで実際のＬＳＩと機能的に同じ動作をシミュレーションすることができる。エミュレータは、シミュレータよりも高速に動作可能である。
【０００４】
さらに、ＳＯＮＥＴ／ＳＤＨなどの光ファイバを使った伝送系やイーサネット（登録商標）などのネットワーク系において、数十Ｇｂｐｓなどの高速大容量化が進んでいる。このような伝送系やネットワーク系において処理を行うＬＳＩでは、そのデータパスのインターフェース（Ｉ／Ｆ）として専用の高速データパスＩ／Ｏマクロを使用するケースが多くなっている。
【０００５】
高速データパスＩ／ＯマクロによるＩ／Ｆの特徴としては、例えば配線長のバラツキなどによる物理的な信号線のスキューを補正するための処置や、対向側（例えばＬＳＩや装置など）にあるデータバッファのバッファリング量を観測して、対向側へのデータ入力を抑止する処置（バックプレッシャー）が動的に行われることが挙げられる。
【０００６】
このような高速データパスＩ／Ｏマクロを用いたＬＳＩを検証する場合、下記のような第１〜第５の処理を行うテストベンチ（テスト用ファイル）を作成する必要がある。第１の処理では、外部ファイルに記述されたデータ（例えば、ＩＰパケットデータ）を読み込んで高速データパスＩ／ＯマクロによるＩ／Ｆに応じたフォーマットに変換する。第２の処理では、対向側にあるデータバッファのバッファリング量を観測する。
【０００７】
第３の処理では、第２の処理の観測結果により、必要に応じて第１の処理によるデータの発生を抑制する。第４の処理では、スキュー補正条件を観測する。第５の処理では、第４の処理の観測結果により、必要に応じて第１の処理により発生するデータのスキューを補正する。
【０００８】
上記のような第１〜第５の処理をテストベンチにて行うと、シミュレータは実行負荷が大きくなり、動作速度が遅くなる。今日のＬＳＩは入力データが長大化しているため、シミュレーションパターン数が多く、動作速度の低下が更に顕著になっている。このような大規模複雑化したＬＳＩのシミュレーション速度の低下に対する対策の一つとして、エミュレータを使用したシミュレーションが行われている（例えば、特許文献１参照）。
【特許文献１】特開２００３−３１６８４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＲＴＬで記述される検証対象のＬＳＩ部分はエミュレータに搭載することができるが、ビヘイビア記述となるテストベンチをエミュレータに搭載することができない。したがって、テストベンチはＰＣやＥＷＳ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｗｏｒｋ  Ｓｔａｔｉｏｎ）上で動作させることになる。
【００１０】
例えばＰＣやＥＷＳ上のテストベンチがシミュレーション速度１００Ｈｚで動作している場合、エミュレータ上のＲＴＬがシミュレーション速度１ＭＨｚで動作していたとしても全体のシミュレーション速度は１００Ｈｚとなってしまう。したがって、エミュレータを使用したシミュレーションでは、エミュレーション性能を生かすことができていないという問題があった。
【００１１】
本発明は、上記の点に鑑みなされたもので、ハードウェア記述言語を用いて設計された半導体集積回路の検証をテスト用ファイルを用いて高速かつ効率的に行うことができる半導体集積回路の検証装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
そこで、上記課題を解決するため、本発明は、ハードウェア記述言語を用いて設計された半導体集積回路の検証装置であって、テスト用ファイルのファイル名を格納する第１格納手段と、テスト用データを格納する複数のファイルで構成される第２格納手段と、前記第１格納手段に格納されている前記ファイル名で特定されたテスト用ファイルの少なくとも一部を構成する前記テスト用データを前記第２格納手段に順次格納するデータ制御手段と、前記第２格納手段に格納されている前記テスト用データで検証対象の半導体集積回路を検証する検証手段とを有することを特徴とする。
【００１３】
本発明の検証装置は、テスト用データのファイル名およびテスト用データを格納する第１格納手段および第２格納手段と、第１格納手段に格納されているファイル名で特定されたテスト用データを第２格納手段に順次格納するデータ制御手段とを有し、第２格納手段に格納されているテスト用データで検証対象の半導体集積回路を検証することで、第２格納手段からテスト用データを読み出して検証対象の半導体集積回路を検証できる。
【発明の効果】
【００１４】
上述の如く、本発明によれば、ハードウェア記述言語を用いて設計された半導体集積回路の検証をテスト用ファイルを用いて高速かつ効率的に行うことができる半導体集積回路の検証装置を提供可能である。
【発明を実施するための最良の形態】
【００１５】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１６】
上述したエミュレーション性能を生かすことができていないという問題を解決するためには、テストベンチの動作を高速化する必要がある。テストベンチの動作を高速化する方法としては、例えば外部ファイルへのファイルアクセス数を減らすことや、テストベンチもＲＴＬで記述してエミュレータに搭載することが考えられる。
【００１７】
外部ファイルへのファイルアクセス数を減らす方法では、例えば外部ファイルに記述されたデータをエミュレータ内にバッファリングする。なお、エミュレータ内でバッファリングを行う場合、例えばデータバッファとしてエミュレータ内に設けられたＲＡＭモデルを用いる。ここでＲＡＭモデルとは、ＬＳＩに搭載されているＲＡＭをＨＤＬで表現したものをいう。
【００１８】
テストベンチもＲＴＬで記述してエミュレータに搭載する方法では、ＨＤＬの二次元配列をエミュレータに格納できない場合があることや外部ファイルに記述されたデータをＲＡＭモデルに直接ロードできるシミュレーションコマンドが用意されていることから、ＲＡＭモデルを利用する。外部ファイルから入力する入力データは、ＲＴＬで扱える０，１などの２進数とする。また、テストベンチの機能はＲＴＬで記述する。
【００１９】
外部ファイルへのファイルアクセス数を減らす方法や、テストベンチもＲＴＬで記述してエミュレータに搭載する方法では、以下の課題が生じる。まず、２進数で表された入力データを人間が作成するのは非効率的である。また、ＲＡＭモデルの記憶容量は有限固定であるが、入力データがテスト項目によって可変であるため、入力データをＲＡＭモデルの記憶容量に応じて分割する必要がある。さらに、テストベンチの機能をＲＴＬで記述するのは検証工数の面から不利である。
【００２０】
そこで、本発明では上記の課題を以下のように解決するようにした。まず、人間が分かり易いフォーマットの入力データを２進数に変換する入力データ変換ツールを準備することで、入力データを人間が分かり易いフォーマットで作成できるようにした。入力データ変換ツールは、入力データの分割も行う。なお、分割された入力データをシミュレーションの進行に応じて逐次自動的にロードする仕組みは、テストベンチが提供する。このテストベンチは、別に準備されたテストベンチジェネレータが生成する。
【００２１】
高速データパスＩ／Ｏマクロによる特有の機能（スキュー調整条件観測やバックプレッシャー条件観測による入力データの加工）の記述は、高速データパスＩ／Ｏマクロの種類によって異なる場合もあるため、人間がビヘイビア記述で記述し、動作合成を用いてＲＴＬに変換する。なお、工数に影響がなければ人間がＲＴＬレベルで記述してもよい。高速データパスＩ／Ｏマクロによる特有の機能の構造記述は、高速データパスＩ／Ｏマクロの種類によらず、ほぼ一定であるため、上記したテストベンチジェネレータが生成する。
【００２２】
以下、高速データパスＩ／Ｏマクロの一例として、ＳＰＩ４−２（Ｓｙｓｔｅ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ  Ｌｅｖｅｌ−４  Ｐｈａｓｅ２）を利用した場合について説明する。ＳＰＩ４−２は、主にＳＯＮＥＴ／ＳＤＨのＯＣ−１９２で使用される物理層およびデータリンク層のインターフェース仕様であり、最大１０Ｇｂｐｓの伝送が可能である。ＳＰＩ４−２は、２００１年にＯＩＦ（Ｏｐｔｉｃａｌ  Ｉｎｔｅｒｎｅｔｗｏｒｋｉｎｇ  Ｆｏｒｕｍ）で承認されている。
【実施例１】
【００２３】
まず、ＳＰＩ４−２の仕様について説明する。ＳＰＩ４−２は、データそのものであるデータワードと、データワードを識別する制御データであるコントロールワードとを多重化してＩ／Ｆする仕様である。データは、論理ポート（チャネル）毎に分割される。さらに論理ポート毎のデータは、セグメントと呼ばれる単位（例えば６４バイト等）に分割されて、セグメント単位で多重化される。セグメントの前後には必要に応じてデータワードの属性（論理ポート番号、パケット先頭、パケット終端、パリティなど）を識別するコントロールワードが挿入される。
【００２４】
ここで、データワード及びコントロールワードの種類について説明する。データワードには、実データであるペイロードデータワード（ＰＤＷ）と、後述するトレーニングコントロールワード（ＴＣＷ）と組み合わせてトレーニングパターンを形成するトレーニングデータワード（ＴＤＷ）とがある。
【００２５】
また、コントロールワードには、実データの属性を識別するための制御データであるペイロードコントロールワード（ＰＣＷ）と、何もない状態を示すための制御データであるアイドルコントロールワード（ＩＣＷ）と、上記のＴＤＷと組み合わせてトレーニングパターンを形成するための制御データであるトレーニングコントロールワード（ＴＣＷ）とがある。
【００２６】
なお、トレーニングパターンは物理的なスキューを補正するために随時挿入されるものであり、リセット直後、タイミング設定に応じた所定間隔、任意のタイミングによる対向側（即ちＬＳＩ）からの要求などの条件により挿入される。ＳＰＩ４−２では、上記したデータワード及びコントロールワードを例えば図１のようなタイミングで多重化する。
【００２７】
図１は、ＳＰＩ４−２のインターフェース仕様に応じた一例のタイミングチャートである。図１（Ａ）は、基準クロックを表す。図１（Ｂ）〜図１（Ｅ）は、送信されるデータワードおよびコントロールワードを表す。図１（Ｆ）〜図（Ｉ）は、送信されるデータがデータワードおよびコントロールワードの何れかであるかを表す。なお、図１（Ｆ）〜図１（Ｉ）はそれぞれ図１（Ｂ）〜図１（Ｅ）に対応している。
【００２８】
図１（Ｂ）〜図１（Ｅ）では、セグメント単位を枠で表している。なお、セグメントの多重化は、図１（Ｂ）〜図１（Ｅ）の順番で行われている。図１（Ｂ）の第１クロックと同期して送信されるＩＣＷは、何もない状態を示している。図１（Ｃ）の第１クロックと同期して送信されるＰＣＷは、以降のデータワードの属性を識別するための制御データである。
【００２９】
図１（Ｄ）及び図１（Ｅ）の第１クロック、図１（Ｂ）〜図１（Ｅ）の第２クロック及び図１（Ｂ）及び図１（Ｃ）の第３クロックと同期して送信されるＰＤＷは、第１クロックと同期して送信されるＰＣＷにより属性を識別される実データであって、例えばポート０のデータである。
【００３０】
また、図１（Ｄ）の第３クロックと同期して送信されるＰＣＷは、以降のデータワードの属性を識別するための制御データである。図１（Ｅ）の第３クロック、図１（Ｂ）〜図１（Ｅ）の第４クロック及び図１（Ｂ）〜図１（Ｄ）の第５クロックと同期して送信されるＰＤＷは、第３クロックと同期して送信されるＰＣＷにより属性を識別される実データであって、例えばポート１のデータである。
【００３１】
また、図１（Ｅ）の第５クロック、図１（Ｂ）〜図１（Ｅ）の第６クロックと同期して送信されるＩＣＷは、何もない状態を示している。さらに、図１（Ｂ）の第７クロックと同期して送信されるＰＣＷは、以降のデータワードの属性を識別するための制御データである。図１（Ｃ）〜図１（Ｅ）の第７クロック、図１（Ｂ）〜図１（Ｅ）の第８クロック及び第９クロックと同期して送信されるＰＤＷは、第７クロックと同期して送信されるＰＣＷにより属性を識別される実データであって、例えばポート２のデータである。
【００３２】
なお、図１（Ｆ）〜図１（Ｉ）は送信されるデータがデータワードであるときにＬＯＷレベル「０」となり、送信されるデータがコントロールワードであるときにＨＩＧＨレベル「１」となる。トレーニングパターンが挿入されたタイミングチャートについては後述する。
【００３３】
図２は、ＳＰＩ４−２のインターフェース仕様に応じたＦＩＦＯステータスの一例のタイミングチャートである。ＳＰＩ４−２は、対向側のデータバッファのバッファリング量を知らせるＩ／Ｆ（ＦＩＦＯステータス）も定義されている。図２（Ａ）は、基準クロックを表す。図２（Ｂ）は、ＦＩＦＯステータスを表す。
【００３４】
図２（Ｂ）のＦＩＦＯステータスでは、「３」がアイドル状態を表し、「２」〜「０」がデータバッファのバッファリング量を表している。図２（Ｂ）では、ＦＩＦＯステータスが論理ポート毎にシリアルで送信される。なお、論理ポートの順番は例えば後述するカレンダーシーケンス（ＣＳ）で決定される。
【００３５】
なお、テストベンチはＦＩＦＯステータスを観測し、データの送信を抑止する必要のある論理ポートへのデータの送信を抑止する。観測しているＦＩＦＯステータスに応じてテストベンチが論理ポートへのデータの送信を抑止するか否かは、対向側の仕様に応じて決定すればよい。
【００３６】
図３は、本発明による検証システムの一例を表した説明図である。ＣＳ変換ツール１０は人間が理解し易いフォーマット（例えばビヘイビア記述）で記述されたＣＳデータを受信し、２進数のフォーマットに変換する。また、ＣＳ変換ツール１０はＲＡＭモデルの記憶容量に応じて２進数のフォーマットに変換したＣＳデータを複数のＣＳデータファイルに分割する。さらに、ＣＳ変換ツール１０はＲＡＭモデルの記憶容量に応じて分割したＣＳデータファイル及びそのＣＳデータファイル名を記載したＣＳデータファイル名リストファイルを出力する。
【００３７】
パケット変換ツール２０は人間が理解し易いフォーマット（例えばビヘイビア記述のＩＰパケットデータなど）で記述された論理ポート別のパケットデータを受信し、２進数のフォーマットに変換する。また、パケット変換ツール２０は２進数のフォーマットに変換した論理ポート別のパケットデータをＳＰＩ４−２の仕様に応じてセグメント単位に分割し、セグメント単位（ＰＤＷ，ＰＣＷ及びＩＣＷ）で多重化される。さらに、パケット変換ツール２０はＲＡＭモデルの記憶容量に応じて分割したパケットデータファイル及びそのパケットデータファイル名を記載したパケットデータファイル名リストファイルを出力する。
【００３８】
エミュレータ１００は、検証対象ＬＳＩ１１０，ＬＳＩラッパー１２０及びテストベンチから構成される。テストベンチは、ＳＰＩ４−２用制御部１３０，データ送出制御部１４０及び１５０から構成される。テストベンチは、図示しないテストベンチジェネレータにより、図４のような制御カード（制御情報）を入力として生成される。テストベンチジェネレータは、図３のテストベンチの以下のものを生成する。図４は、制御カードの一例の構成図である。
【００３９】
まず、テストベンチジェネレータはデータ送出制御部１４０及び１５０のＲＡＭモデル及び制御部のインスタンス記述を生成する。また、テストベンチジェネレータはデータ送出制御部１４０及び１５０の制御部の動作が記述されたＲＴＬを生成する。また、テストベンチジェネレータはＳＰＩ４−２用制御部１３０の論理ポート毎送信抑止トレーニングパターン挿入部，トレーニングパターン挿入タイミング部，トレーニングパターン挿入条件観測部およびＦＩＦＯステータス判定部のインスタンス記述を生成する。また、テストベンチジェネレータはＳＰＩ４−２用制御部１３０の論理ポート毎送信抑止トレーニングパターン挿入部，トレーニングパターン挿入タイミング部，トレーニングパターン挿入条件観測部およびＦＩＦＯステータス判定部のスケルトンを作成する。また、テストベンチジェネレータはＬＳＩラッパー１２０のインスタンス記述を生成する。また、テストベンチジェネレータはＬＳＩラッパー１２０のスケルトンを生成する。
【００４０】
そして、テストベンチジェネレータは、データ送出制御部１４０及び１５０のＲＡＭモデル及び制御部と、ＳＰＩ４−２用制御部１３０の論理ポート毎送信抑止トレーニングパターン挿入部，トレーニングパターン挿入タイミング部，トレーニングパターン挿入条件観測部およびＦＩＦＯステータス判定部と、ＬＳＩラッパー１２０とを結線したテストベンチを生成する。
【００４１】
ここで、ＬＳＩラッパー１２０について説明する。図５は、ＬＳＩラッパーの一例を表した説明図である。ＬＳＩラッパー１２０は、検証対象ＬＳＩ１１０の上位階層として被せるものであり、検証対象ＬＳＩによって異なる入出力端子とテストベンチジェネレータが生成する汎用的な端子との違いを吸収する役目を果たす。例えばＬＳＩラッパーは、ＳＰＩ４−２用制御部１３０から被検証対象ＬＳＩ１１０への信号を分解し、又は被検証対象ＬＳＩ１１０からＳＰＩ４−２用制御部１３０への信号を束ねる。ＬＳＩラッパー１２０の内部は、例えばテストベンチジェネレータが生成したスケルトンを利用して人間が記述する。
【００４２】
図３に戻り、データ送出制御部１５０について説明する。パケットデータファイル名リストファイルの中身であるパケットデータファイル名リストは、検証システムの起動直後にシミュレータコマンドによってＲＡＭモデル１にロードされる。パケットデータファイル名リストの文字列は、ＡＳＣＩＩコードで記述されている。
【００４３】
シミュレーションが開始されるとき、データ送出制御部１５０の制御部はＲＡＭモデル１の１アドレス目をリード（ｒｅａｄ）し、そのリード値（パケットデータファイル名リストの１番目のパケットデータファイル名）で特定されるパケットデータファイルをＲＡＭモデル２にロードする。
【００４４】
ロード直後からテストベンチは、ＲＡＭモデル２から１サイクル毎に、１アドレスずつインクリメントしながら、そのアドレスのパケットデータをリードしてＬＳＩラッパー１２０経由で検証対象ＬＳＩ１１０に送信する。サイクルが進み、ＲＡＭモデル２にロードされたパケットデータファイルの最終アドレスまでパケットデータをリードすると、テストベンチはＲＡＭモデル１の２アドレス目をリードし、そのリード値で特定されるパケットデータファイルをＲＡＭモデル２にロードする。
【００４５】
ロード直後に、テストベンチはＲＡＭモデル２のアドレスをリセットし、再びＲＡＭモデル２から１サイクル毎に、１アドレスずつインクリメントしながら、そのアドレスのパケットデータをリードして検証対象ＬＳＩ１１０に送信する。テストベンチは、上記の処理をパケットデータファイルが無くなるまで繰り返す。
【００４６】
なお、上記の処理のうちＲＡＭモデル１又は２へのロード以外はＲＴＬで記述することができる。次に、パケットデータの送出制御について説明する。図６は、パケットデータの送出制御動作を表した説明図である。図７は、パケットデータの送出制御動作を表したフローチャートである。
【００４７】
図７中、ステップＳ１ではシミュレータコマンドによりパケットデータファイル名リストファイルの中身であるパケットデータファイル名リストがＲＡＭモデル１にロードされる。例えば図６の場合、パケットデータファイル名リストファイル２００の中身であるパケットデータファイル名リスト「in data1.dat,in data2.dat,・・・,in datan.dat」がＲＡＭモデル１にロードされる。なお、パケットデータファイル名リストの文字列は、ＡＳＣＩＩコードで記述される。
【００４８】
ステップＳ２では、シミュレーションが開始される。エミュレータ１００は、カウンタ１６１，クロック（ＣＬＯＣＫ）回路１６２，リセット（ＲＥＳＥＴ）回路１６３を有する構成である。クロック回路１６２は、クロック信号をカウンタ１６１に出力する。リセット回路１６３は、必要に応じてリセット信号をカウンタ１６１に出力する。ステップＳ３では、リセット回路１６３がカウンタ１６１にリセット信号を出力し、ＲＡＭモデル１のアドレスｎ１及びＲＡＭモデル２のアドレスｎ２を０にリセットする。
【００４９】
ステップＳ４に進み、データ送出制御部１５０の制御部は、ＲＡＭモデル１のアドレスｎ１＝０からパケットデータファイル名をリードし、そのリード値で特定されるパケットデータファイルをＲＡＭモデル２にロードする。例えば図６の場合、データ送出制御部１５０の制御部はＲＡＭモデル１からパケットデータファイル名「in data1.dat」をリードして、そのリード値で特定されるパケットデータファイル２０１−１をＲＡＭモデル２にロードする。
【００５０】
ステップＳ５に進み、ＲＡＭモデル２のアドレスｎ２＝０からパケットデータがリードされてＳＰＩ４−２用制御部１３０に送信される。ステップＳ６に進み、制御部はＲＡＭモデル２のアドレスｎ２が最大であるか否かを判定する。ＲＡＭモデル２のアドレスｎ２が最大でないと判定すれば（Ｓ６においてＮＯ）、ＲＡＭモデル２のアドレスｎ２に１が加算されたあと、ステップＳ５の処理に戻る。即ち、ＲＡＭモデル２にロードしたパケットデータが無くなるまでステップＳ５〜Ｓ７の処理が繰り返される。
【００５１】
ＲＡＭモデル２のアドレスｎ２が最大であると判定すれば（Ｓ６においてＹＥＳ）、ステップＳ８に進み、ＲＡＭモデル１のアドレスｎ１に１が加算されると共に、ＲＡＭモデル２のアドレスｎ２が０にリセットされる。そして、ステップＳ９に進み、データ送出制御部１５０の制御部はＲＡＭモデル１のアドレスｎ１と、ＲＡＭモデル１にロードされたパケットデータファイル名リストに含まれるパケットデータファイル数とが同じであるか否かを判定する。
【００５２】
ＲＡＭモデル１のアドレスｎ１とパケットデータファイル数とが同じでなければ（Ｓ９においてＮＯ）、ステップＳ４の処理に戻る。即ち、ＲＡＭモデル１にロードされたパケットデータファイル名リストに含まれる全てのパケットデータファイルに対してステップＳ４〜Ｓ９の処理が繰り返される。ＲＡＭモデル１のアドレスｎ１とパケットデータファイル数とが同じであれば（Ｓ９においてＹＥＳ）、データ送出制御部１５０の制御部は処理を終了する。
【００５３】
なお、図７のフローチャートで表される処理を実現するためのカウンタ１６１の動作の一部は例えばＶｅｒｉｌｏｇＨＤＬで記述すると図８のようになる。また、データ送出制御部１５０の制御部の動作の一部は図９のようになる。図８は、カウンタの動作内容を一部表した一例のプログラムリストである。また、図９はデータ送出制御部１５０の動作内容を一部表した一例のプログラムリストである。
【００５４】
データ送出制御部１４０は、上記したパケットデータの送出制御と同様に、ＣＳデータの送出制御を行う。即ち、ＣＳデータの送出制御では、上記したＲＡＭモデル１及びＲＡＭモデル２に対する制御と同様に、ＲＡＭモデル３及びＲＡＭモデル４に対する制御が行われる。ＲＡＭモデル３には、ＣＳデータファイル名リストファイルがロードされる。ＲＡＭモデル４には、ＣＳデータファイルがロードされる。なお、ＣＳデータの送出制御はパケットデータの送出制御と同様であるため、説明を省略する。
【００５５】
次に、ＳＰＩ４−２制御部１３０について説明する。トレーニングパターン挿入制御及びＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御は、パケット変換ツール２０から出力されたパケットデータファイルに対し、テストベンチ上で行われる。上記のトレーニングパターン挿入制御及びＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御はテストベンチジェネレータが生成したスケルトンを利用して人間がビヘイビア記述で記述し、市販の動作合成ツールを用いてＲＴＬに変換する。
【００５６】
ＳＰＩ４−２制御部１３０のトレーニングパターン挿入条件観測部は、トレーニングパターンを挿入する条件である、リセット直後、タイミング設定に応じた所定間隔、任意のタイミングによる対向側（即ちＬＳＩ）からの要求を観測し、これらの条件に合致した場合（ＯＲ判定）に、トレーニングパターン要求フラグをＯＮにして論理ポート毎送信抑止トレーニングパターン挿入部に送信する。
【００５７】
トレーニングパターンを挿入する条件であるリセット直後は、パケットデータファイル名リストファイルがＲＡＭモデル１にロードされ、シミュレーション可能な状態となったときに発生するイネーブル信号を受信することで判定する。トレーニングパターンを挿入する条件であるタイミング設定に応じた所定間隔は、カウンタ１６１のカウンタ値と、トレーニングパターン挿入タイミング部から出力されるタイミング間隔信号値とを比較することで判定する。タイミング間隔信号値は、例えばシミュレーションコマンドにより設定する。また、トレーニングパターンを挿入する条件である任意のタイミングによる対向側からの要求は、対向側からのＦＩＦＯステータスに応じて判定する。
【００５８】
ＦＩＦＯステータス判定部は、対向側からのＦＩＦＯステータスを観測し、論理ポート毎のデータの送信を抑止するか否かを判定し、その判定結果をデータ送信抑止フラグとして論理ポート毎送信抑止トレーニングパターン挿入部に送信する。例えばデータ送信抑止フラグは、論理ポート毎のビットマップという形態とする。ＦＩＦＯステータスは対向側から論理ポート毎にシリアルで送信されるが、その論理ポートの順番がＣＳで決まる。ＦＩＦＯステータス判定部は、データ送出制御部１４０のＲＡＭモデル４からＣＳを受信すると共に、対向側からＦＩＦＯステータスを受信し、ＣＳとＦＩＦＯステータスとのタイミングを合わせ、論理ポート毎のＦＩＦＯステータスを判定する。このため、ＦＩＦＯステータス判定部は、ＲＡＭモデル４用のイネーブル信号をデータ送出制御部１４０の制御部に送信する。
【００５９】
論理ポート毎送信抑止トレーニングパターン挿入部は、トレーニングパターン挿入条件観測部から受信したトレーニングパターン要求フラグおよびＦＩＦＯステータス判定部から受信したデータ送信抑止フラグを参照し、ＲＡＭモデル２から受信したパケットデータである多重化されたＰＣＷ，ＰＤＷ及びＩＣＷに対し、トレーニングパターン挿入制御及びＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御を行う。論理ポート毎送信抑止トレーニングパターン挿入部は、ＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御、トレーニングパターン挿入制御の順番に処理を行う。
【００６０】
図１０は、ＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御を説明するためのタイミングチャートである。図１０は、図１のタイミングチャートに論理ポート毎のデータ送信抑止制御を行ったものである。
【００６１】
図１０のタイミングチャートでは、図１（Ｃ）の第１クロックと同期して送信されるＰＣＷ、図１（Ｄ）及び図１（Ｅ）の第１クロック、図１（Ｂ）〜図１（Ｅ）の第２クロック及び図１（Ｂ）及び図１（Ｃ）の第３クロックと同期して送信されるＰＤＷが、ＩＣＷに置き換えられている。
【００６２】
図１（Ｂ）の第７クロックと同期して送信されるＰＣＷ、図１（Ｃ）〜図１（Ｅ）の第７クロック、図１（Ｂ）〜図１（Ｅ）の第８クロック及び第９クロックと同期して送信されるＰＤＷも、ＩＣＷに置き換えられている。このように、ＰＤＷ及びＰＣＷを何もない状態を示しているＩＣＷに置き換えることにより、実データをアイドル状態にすることができ、データの送信を抑止する必要のある論理ポートへのデータの送信を抑止することができる。なお、ＰＣＷは前後のデータワード又はコントロールワードとの辻褄を合わせるため、必要に応じて置き換えればよい。
【００６３】
また、図１１はトレーニングパターン挿入制御を説明するためのタイミングチャートである。図１１は、図１のタイミングチャートにトレーニングパターン挿入制御を行ったものである。
【００６４】
論理ポート毎送信抑止トレーニングパターン挿入部は、トレーニングパターン挿入条件観測部から受信したトレーニングパターン要求フラグに応じて、ＯＦＦのイネーブル信号をカウンタ１６１に送信してＲＡＭモデル２のアドレスｎ２に対するインクリメントを中止させ、ＲＡＭモデル２からの多重化されたＰＣＷ，ＰＤＷ及びＩＣＷのリードを停止する。この間、論理ポート毎送信抑止トレーニングパターン挿入部は、図１（Ｃ）の第３クロックと同期して送信されるＰＤＷおよび図１（Ｄ）の第３クロックと同期して送信されるＰＣＷの間に、トレーニングパターンを挿入する。
【００６５】
図１１のタイミングチャートでは、セグメント境界の都合により、図１（Ｄ）および図１（Ｅ）の第３クロックと同期して送信されるＰＣＷ及びＰＤＷをＩＣＷに置き換えている。その後、例えば図１１に示すような所定のトレーニングパターンが送信されることにより、物理的なスキューを補正できる。
【００６６】
そして、論理ポート毎送信抑止トレーニングパターン挿入部は、ＯＮのイネーブル信号をカウンタ１６１に送信してＲＡＭモデル２のアドレスｎ２に対するインクリメントを再開させることで、ＲＡＭモデル２からの多重化されたＰＣＷ，ＰＤＷ及びＩＣＷのリードを再開する。図１１のタイミングチャートでは、セグメント境界の都合により、ＲＡＭモデル２からの多重化されたＰＣＷ，ＰＤＷ及びＩＣＷのリードを再開する前に、二つのＩＣＷを挿入している。このように、ＰＣＷ，ＰＤＷ及びＩＣＷのリードを停止した前後でデータワード及びコントロールワード間の辻褄を合わせるために、データワードやコントロールワードの置き換えを行うなどの処理が必要となる場合もある。
【００６７】
図１２は、トレーニングパターン挿入制御及びＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御動作を表したフローチャートである。図１２中、ステップＳ１１に進み、ＳＰＩ４−２制御部１３０のトレーニングパターン挿入条件観測部が、トレーニングパターンを挿入する条件であるリセット直後であるか否かを観測する。
【００６８】
リセット直後でなければ（Ｓ１１においてＮＯ）、ＳＰＩ４−２制御部１３０のトレーニングパターン挿入条件観測部はステップＳ１２に進み、トレーニングパターン要求フラグをＯＦＦにする。一方、リセット直後であれば（Ｓ１１においてＹＥＳ）、ＳＰＩ４−２制御部１３０のトレーニングパターン挿入条件観測部はステップＳ１３に進み、トレーニングパターン要求フラグをＯＮにする。
【００６９】
ステップＳ１２又はＳ１３に続いてステップＳ１４に進み、ＳＰＩ４−２制御部１３０のトレーニングパターン挿入条件観測部はトレーニングパターンを挿入する条件であるタイミング設定に応じた所定間隔（トレーニングパターン要求フラグをＯＮにして送出するタイミング）であるか否かを判定する。トレーニングパターン要求フラグをＯＮにして送出するタイミングであれば（Ｓ１４においてＹＥＳ）、トレーニングパターン挿入条件観測部はステップＳ１５に進み、トレーニングパターン要求フラグをＯＮにしたあと、ステップＳ１４に戻る。トレーニングパターン要求フラグをＯＮにして送出するタイミングでなければ（Ｓ１４においてＮＯ）、トレーニングパターン挿入条件観測部はステップＳ１６に進み、トレーニングパターン要求フラグをＯＦＦにしたあと、ステップＳ１４に戻る。
【００７０】
また、ステップＳ１２又はＳ１３に続いてステップＳ１７に進み、ＳＰＩ４−２制御部１３０のトレーニングパターン挿入条件観測部は対向側からの要求（ＦＩＦＯステータスが３クロック連続０ｘ３）であるか否かを判定する。ＦＩＦＯステータスが３クロック連続０ｘ３であれば（Ｓ１７においてＹＥＳ）、トレーニングパターン挿入条件観測部はステップＳ１８に進み、トレーニングパターン要求フラグをＯＮにしたあと、ステップＳ１７に戻る。一方、ＦＩＦＯステータスが３クロック連続０ｘ３でなければ（Ｓ１７においてＮＯ）、トレーニングパターン挿入条件観測部は、ステップＳ１９に進み、トレーニングパターン要求フラグをＯＦＦにしたあと、ステップＳ１７に戻る。
【００７１】
さらに、ステップＳ１２又はＳ１３に続いてステップＳ２０に進み、ＳＰＩ４−２制御部１３０のＦＩＦＯステータス判定部は対向側からのＦＩＦＯステータスを観測し、ＦＩＦＯステータス開始トリガがあったか否かを判定する。ＦＩＦＯステータス開始トリガがなければ（Ｓ２０においてＮＯ）、ＦＩＦＯステータス判定部はステップＳ２０の処理を繰り返し行う。ＦＩＦＯステータス開始トリガがあれば（Ｓ２０においてＹＥＳ）、ＦＩＦＯステータス判定部はステップＳ２１に進み、論理ポート毎のデータの送信を抑止するか否かを判定する。ステップＳ２２に進み、ＦＩＦＯステータス判定部はステップＳ２１の判定結果をデータ送信抑止フラグとして論理ポート毎送信抑止トレーニングパターン挿入部に送信する。
【００７２】
ステップＳ２３に進み、論理ポート毎送信抑止トレーニングパターン挿入部はデータ送信抑止フラグに応じて前述した論理ポート毎のデータ送信抑止制御処理を行う。ステップＳ２４に進み、論理ポート毎送信抑止トレーニングパターン挿入部はステップＳ１２，Ｓ１３，Ｓ１５，Ｓ１６，Ｓ１８及びＳ１９でＯＮ「１」又はＯＦＦ「０」に設定されたトレーニングパターン要求フラグのＯＲ判定に基づき、トレーニングパターン要求フラグがＯＮであるか否かを判定する。トレーニングパターン要求フラグがＯＮでなければ（Ｓ２４においてＮＯ）、論理ポート毎送信抑止トレーニングパターン挿入部はステップＳ２５に進み、データを対向側に送信する。一方、トレーニングパターン要求フラグがＯＮであれば（Ｓ２４においてＹＥＳ）、論理ポート毎送信抑止トレーニングパターン挿入部はステップＳ２６に進み、ＯＦＦのイネーブル信号をカウンタ１６１に送信してＲＡＭモデル２のアドレスｎ２に対するインクリメントを中止させる。
【００７３】
ステップＳ２７に進み、論理ポート毎送信抑止トレーニングパターン挿入部は前述したトレーニングパターン挿入制御処理を行う。ステップＳ２８に進み、論理ポート毎送信抑止トレーニングパターン挿入部はトレーニングパターンが挿入されたデータを対向側に送信する。ステップＳ２９に進み、論理ポート毎送信抑止トレーニングパターン挿入部はＯＮのイネーブル信号をカウンタ１６１に送信してＲＡＭモデル２のアドレスｎ２に対するインクリメントを再開させることで、ＲＡＭモデル２からの多重化されたＰＣＷ，ＰＤＷ及びＩＣＷのリードを再開する。なお、論理ポート毎送信抑止トレーニングパターン挿入部はステップＳ２５又はＳ２９の処理後、ステップＳ２３に戻り、ステップＳ２３〜Ｓ２９の処理を繰り返し行う。
【００７４】
以上、本発明はテストベンチの自動生成による検証工程の短縮化および検証品質の向上が可能である。また、本発明はＲＴＬで記述されたテストベンチをエミュレータで高速に実行することにより、大規模ＬＳＩのシミュレーションの高速化、ひいては検証工程の短縮化が図れる。さらに、テストベンチの機能をＨＤＬとツールとに分離したことで、テストベンチの機能を簡素化することができ、メンテナンス性も向上させることができる。
【００７５】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【００７６】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
ハードウェア記述言語を用いて設計された半導体集積回路の検証装置であって、
テスト用ファイルのファイル名を格納する第１格納手段と、
テスト用データを格納する複数のファイルで構成される第２格納手段と、
前記第１格納手段に格納されている前記ファイル名で特定されたテスト用ファイルの少なくとも一部を構成する前記テスト用データを前記第２格納手段に順次格納するデータ制御手段と、
前記第２格納手段に格納されている前記テスト用データで検証対象の半導体集積回路を検証する検証手段と
を有することを特徴とする半導体集積回路の検証装置。
（付記２）
前記検証手段は、前記半導体集積回路のインターフェース仕様に応じたタイミングで前記第２格納手段に格納されている前記テスト用データを前記半導体集積回路に出力することを特徴とする付記１記載の検証装置。
（付記３）
前記検証手段は、高速データパスＩ／Ｏマクロをインターフェースに持つ前記半導体集積回路に、前記高速データパスＩ／Ｏマクロの機能である前記半導体集積回路内の信号線のスキューを補正する機能および対向側にあるデータバッファのバッファリング量に応じてデータ出力を抑止する機能に応じたタイミングで前記第２格納手段に格納されている前記テスト用データを前記半導体集積回路に出力することを特徴とする付記１又は２記載の検証装置。
（付記４）
前記データ制御手段は、前記第２格納手段の記憶容量に基づいて分割された前記テスト用データを、前記第２格納手段に順次格納することを特徴とする付記１乃至３何れか一項記載の検証装置。
（付記５）
前記データ制御手段は、前記第２格納手段の記憶容量に基づいて分割された前記テスト用データの論理ポート判定用のデータを、前記第２格納手段に格納することを特徴とする付記１乃至４何れか一項記載の検証装置。
（付記６）
ＣＰＵとメモリとを少なくとも備えたコンピュータに、
前記ＣＰＵが、ハードウェア記述言語を用いて設計された半導体集積回路の検証に利用するテスト用ファイルを前記メモリから読み出し、前記テスト用ファイルを半導体集積回路のインターフェース仕様に応じたフォーマットに変換する手順と、
前記ＣＰＵが、前記フォーマットに変換されたテスト用ファイルからテスト用ファイルのファイル名を表すリストファイルと、前記テスト用ファイルの少なくとも一部を構成するテスト用データとを作成する手順と、
前記ＣＰＵが、前記リストファイルと前記テスト用データとを前記半導体集積回路の検証装置に出力する手順と
を実行させるためのプログラム。
（付記７）
ハードウェア記述言語を用いて設計された半導体集積回路の検証システムであって、
前記半導体集積回路の検証に利用するテスト用ファイルを、前記半導体集積回路のインターフェース仕様に応じたフォーマットに変換し、前記フォーマットに変換されたテスト用ファイルからテスト用ファイルのファイル名を表すリストファイルと、前記テスト用ファイルの少なくとも一部を構成するテスト用データとを作成するコンピュータと、
前記コンピュータと所定のインターフェース仕様に基づき接続されており、前記テスト用データを前記半導体集積回路に出力して検証対象の半導体集積回路を検証する検証装置とを有し、
前記検証装置は、テスト用ファイルのファイル名を格納する第１格納手段と、
テスト用データを格納する複数のファイルで構成される第２格納手段と、
前記第１格納手段に格納されている前記ファイル名で特定されたテスト用ファイルの少なくとも一部を構成する前記テスト用データを前記第２格納手段に順次格納するデータ制御手段と、
前記第２格納手段に格納されている前記テスト用データで検証対象の半導体集積回路を検証する検証手段と
を有することを特徴とする半導体集積回路の検証システム。
【図面の簡単な説明】
【００７７】
【図１】ＳＰＩ４−２のインターフェース仕様に応じた一例のタイミングチャートである。
【図２】ＳＰＩ４−２のインターフェース仕様に応じたＦＩＦＯステータスの一例のタイミングチャートである。
【図３】本発明による検証システムの一例を表した説明図である。
【図４】制御カードの一例の構成図である。
【図５】ＬＳＩラッパーの一例を表した説明図である。
【図６】パケットデータの送出制御動作を表した説明図である。
【図７】パケットデータの送出制御動作を表したフローチャートである。
【図８】カウンタの動作内容を一部表した一例のプログラムリストである。
【図９】データ送出制御部の動作内容を一部表した一例のプログラムリストである。
【図１０】ＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御を説明するためのタイミングチャートである。
【図１１】トレーニングパターン挿入制御を説明するためのタイミングチャートである。
【図１２】トレーニングパターン挿入制御及びＦＩＦＯステータスによる論理ポート毎のデータ送信抑止制御動作を表したフローチャートである。
【符号の説明】
【００７８】
１０    ＣＳ変換ツール
２０    パケット変換ツール
１００    エミュレータ
１１０    検証対象ＬＳＩ
１２０    ＬＳＩラッパー
１３０    ＳＰＩ４−２制御部
１４０，１５０    データ送出制御部
１６１    カウンタ
１６２    クロック回路
１６３    リセット回路
２００    パケットデータファイル名リストファイル
２０１−１〜２０１−ｎ    パケットデータファイル
【図１】
2006059089.tif 000003
【図２】
2006059089.tif 000004
【図３】
2006059089.tif 000005
【図４】
2006059089.tif 000006
【図５】
2006059089.tif 000007
【図６】
2006059089.tif 000008
【図７】
2006059089.tif 000009
【図８】
2006059089.tif 000010
【図９】
2006059089.tif 000011
【図１０】
2006059089.tif 000012
【図１１】
2006059089.tif 000013
【図１２】
2006059089.tif 000014