(57)【要約】複雑なＩＣの設計をイベントテスタとフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、あるいはイベントテスタとエミュレータボードの組み合わせにより行う検証方法および装置。この設計検証方法は、現在のＩＣ設計検証にとってはボトルネックであるロジックシミュレーションのプロセスを不要にする。この速度の遅いシミュレーションを設計検証プロセスから除去することにより、広範囲な設計検証を設計したＩＣの製造の前に行うことができる。またこのような広範囲な設計検証が可能になったので、大量生産前に必要であった試作品の作成を不要にすることができる。
2004527036.tif 000002
【特許請求の範囲】
【請求項１】
電子設計自動化（ＥＤＡ）環境において設計プロセスが行われた複雑なＩＣ設計の検証方法において、
フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）をイベントテスタに接続するステップと、
ＥＤＡ環境下で作成したＩＣ設計データに基づきＦＰＧＡをイベントテスタを介してインラインプログラミングし、そのＦＰＧＡ上に意図したＩＣと同等のＩＣを形成するステップと、
イベントテスタによりそのＩＣ設計データから得たテストベクタをＦＰＧＡに与え、そのＦＰＧＡの応答出力を評価するステップと、
上記応答出力におけるエラーを検出しＦＰＧＡのインラインプログラミングを変更することにより設計エラーを修正するステップと、
イベントテスタにエラーのない設計データが得られるまで上記エラー検出と設計エラー修正のステップを繰り返すステップと、
により構成される複雑なＩＣ設計の検証方法。
【請求項２】
設計データを受信し、その設計データを上記ＦＰＧＡのインラインプログラミングのために変更するステップを更に有する、請求項１に記載の複雑なＩＣ設計の検証方法。
【請求項３】
上記イベントテスタを介して上記ＦＰＧＡをインラインプログラミングするステップは、更にプログラミングデータをイベントテスタのコントロールバスを介して上記ＦＰＧＡに送信するステップを有する、請求項１に記載の複雑なＩＣ設計の検証方法。
【請求項４】
上記テストベクタを与えるステップは、更に上記ＦＰＧＡ上に形成した意図したＩＣのためのアプリケーション・ソフトウエアとＥＤＡ環境下で形成したテストベンチを実行するステップを有する、請求項１に記載の複雑なＩＣ設計の検証方法。
【請求項５】
ＥＤＡ環境下で形成したテストベンチからイベントデータを抽出するステップを更に有する、請求項１に記載の複雑なＩＣ設計の検証方法。
【請求項６】
上記抽出したイベントデータをイベントテスタに格納し、その抽出したイベントデータを用いてテストベクタを発生し、それをイベントテスタのテストフィクスチャを介して上記ＦＰＧＡに与えるステップを更に有する、請求項５に記載の複雑なＩＣ設計の検証方法。
【請求項７】
電子設計自動化（ＥＤＡ）環境において設計プロセスが行われた複雑なＩＣ設計の検証方法において、
エミュレータボードをイベントテスタに接続するステップと、
意図したＩＣの設計データをエミュレータボードに供給してその意図したＩＣの機能をエミュレートさせるステップと、
イベントテスタにより上記ＩＣ設計データから得たテストベクタをエミュレータボードに与えてそのエミュレータボードの応答出力を評価するステップと、
上記応答出力におけるエラーを検出し、エミュレータボードに供給しているＩＣ設計データを変更することにより設計エラーを修正するステップと、
イベントテスタにエラーのない設計データが得られるまで上記エラー検出と設計修正のステップを繰り返すステップと、
により構成される複雑なＩＣ設計の検証方法。
【請求項８】
上記設計データを受信しその設計データをエミュレータボードのために変更するステップを更に有する、請求項７に記載の複雑なＩＣ設計の検証方法。
【請求項９】
上記テストベクタを与えるステップは、更にエミュレータボードに形成した意図したＩＣのためのアプリケーション・ソフトウエアとＥＤＡ環境下で形成したテストベンチを実行するステップを有する、請求項７に記載の複雑なＩＣ設計の検証方法。
【請求項１０】
ＥＤＡ環境下で形成したテストベンチからイベントデータを作成するステップを更に有する、請求項７に記載の複雑なＩＣ設計の検証方法。
【請求項１１】
上記抽出したイベントデータをイベントテスタに格納し、その抽出したイベントデータを用いてテストベクタを発生し、それをイベントテスタのテストフィクスチャを介して上記エミュレータボードに与えるステップを更に有する、請求項１０に記載の複雑なＩＣ設計の検証方法。
【請求項１２】
電子設計自動化（ＥＤＡ）環境において設計プロセスが行われた複雑なＩＣ設計の検証装置において、
フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）をイベントテスタに接続する手段と、
ＥＤＡ環境下で作成した設計データに基づきそのＦＰＧＡをイベントテスタを介してインラインプログラミングし、そのＦＰＧＡ上に意図したＩＣと同等のＩＣを形成する手段と、
イベントテスタによりＩＣの設計データから得たテストベクタをＦＰＧＡに与え、そのＦＰＧＡの応答出力を評価する手段と、
その応答出力におけるエラーを検出し、ＦＰＧＡのインラインプログラミングを変更することにより設計エラーを修正する手段と、
イベントテスタにエラーのない設計データが得られるまで上記のエラー検出と設計修正を繰り返す手段と、
により構成される複雑なＩＣ設計の検証装置。
【請求項１３】
上記テストベクタを与える手段は、更に上記ＦＰＧＡ上に形成した意図したＩＣのためのアプリケーション・ソフトウエアとＥＤＡ環境下で形成したテストベンチを実行する手段を有する、請求項１２に記載の複雑なＩＣ設計の検証装置。
【請求項１４】
電子設計自動化（ＥＤＡ）環境において設計プロセスが行われた複雑なＩＣ設計の検証装置において、
エミュレータボードをイベントテスタに接続する手段と、
意図したＩＣの設計データをエミュレータボードに供給してその意図したＩＣの機能をエミュレートさせる手段と、
イベントテスタにより上記ＩＣ設計データから得たテストベクタをエミュレータボードに与えてそのエミュレータボードの応答出力を評価する手段と、
その応答出力におけるエラーを検出し、上記エミュレータボードに供給している設計データを変更することにより設計エラーを修正する手段と、
イベントテスタにエラーのない設計データが得られるまで上記エラー検出と設計修正を繰り返す手段と、
により構成される複雑なＩＣ設計の検証装置。
【請求項１５】
上記テストベクタを与える手段は、更に上記エミュレータボード上に形成した意図したＩＣのためのアプリケーション・ソフトウエアとＥＤＡ環境下で形成したテストベンチを実行する手段を有する、請求項１４に記載の複雑なＩＣ設計の検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複雑なＩＣの設計を検証するための方法とその装置に関する。特に本発明は、ロジックシミュレーションの手法を用いずに、システムオンチップ（ＳＯＣ）のような複雑なＩＣの設計を、イベント型テストシステムにより、迅速、正確かつ低コストで検証する方法と装置に関する。
【背景技術】
【０００２】
現在のＶＳＬＩのような半導体集積回路（ＩＣ）の設計は、一般にＥＤＡ（エレクトロニック・デザイン・オートメーション：電子設計自動化）と呼ばれるコンピュータを用いたハードウエア設計の環境において、例えばＶｅｒｉｌｏｇあるいはＶＨＤＬと称されるハードウエア記述言語（ＨＤＬ）を用いて行われる。ハードウエアの設計はブロックあるいはサブブロック毎に行われ、ビヘイビオラルレベル、ゲートレベル等のシミュレータ（Ｖｅｒｉｌｏｇ／ＶＨＤＬシミュレータ）により、その設計の検証が行われている。このようなシミュレーションは、そのハードウエア設計がシリコンＩＣとして作成される前に、設計者の意図した機能が果たされるかを検証することを目的としている。しかし、現在では、チップ全体についてのシミュレーションを行うためのシミュレータのスピードが遅すぎるので、そのハードウエア設計は部分的にしか検証されていない。
【０００３】
完全な機能検証が行われないかぎり、設計エラーを発見し取り除くことはできないので、複雑なＩＣの設計において、その設計の検証は最も重要で且つ難しいタスクである。同時に、チップ全体の設計検証は製品の開発生産サイクルにおいて、必要不可欠なものである。しかしシミュレーションのスピードが遅いことと今日のＩＣ設計におけるサイズが大きいことから、現在の検証ツールや検証方法によっては、チップ全体の設計検証をすることはほとんど不可能になってきている（M．Keating  and  P．Bricaud，"Reuse  methodology  manual  for  system-on-a-chip  design"，Kluwer  Academic  Publishers，0-7923-8175-0，1998；R．Rajsuman，"System-on-a-chip：Design  and  Test"，Artech  House  Publishers  Inc．，ISBN  1-58053-107-5，2000）。
【０００４】
設計検証はあらゆるシステムの設計プロジェクト、例えば上記のシステムオンチップの設計プロジェクトにおいて、最も重要な業務の１つである（Rajsuman，"System-on-a-chip：Design  and  Test"，2000，上掲）。設計検証とはシステムが意図した動作をすることを確定することであり、そのシステム動作に信頼を与えることである。複雑なＩＣの設計検証とは、機能およびタイミング性能の双方について、そのＩＣハードウエアの動作を検証することである。それは今日の技術においては、広範囲なビヘイビオラル・シミュレーション、ロジック・シミュレーションおよびタイミング・シミュレーション、さらにエミュレーション、またはハードウエア試作品を用いて実現している。
【０００５】
ＩＣ設計プロセスの初期段階では、設計仕様の開発とＲＴＬ（レジスタ・トランスファー・レベル）コーデイングとともに、ビヘイビオラルモデルを作成して、システムシミュレーションのためのテストベンチを形成する。一般的に設計の初期段階では、ＲＴＬモデルや機能モデルが特定されるまでに、ブロックの有効なテスト項目やテスト環境を開発することが目的である。効率的な設計検証は、テスト品質、テストベンチの完全性、各種モデルの抽象化レベル、ＥＤＡツール、およびシミュレーション環境等に依存する。
設計検証方法は、設計の階層に追随する。最初に末端レベルのブロックの設計が正しいかが個別に検証される。これらのブロックの機能が検証されると、これらのブロック間のインターフェイスが正しいかが、信号の処理タイプおよびデータ内容について検証される。
【０００６】
最も重要である次のステップでは、フルチップモデルについてアプリケーション・ソフトウエアあるいはそれと同等のテストベンチを実行してチップ全体としての検証を行う。アプリケーション・ソフトウエアの実行は、そのフルチップのソフトウエアを実時間で起動することによりのみ検証できるので、ハードウエア、ソフトウエアによるコシミュレーションが必要である。コシミュレーションはインストラクション・セット・アーキテクチャ（ＩＳＡ）モデル、バス・ファンクショナル・モデル（ＢＦＭ）、あるいはビヘイビオラルＣ／Ｃ＋＋モデルを用いて実施できる。コシミュレーション以外に今日使用されている他の技術は、エミュレーションあるいはハードウエアによる試作品である（C．Flynn，"Developing  an  emulation  environment"，Integrated  System  Design  Magazine，pp．46-52，April  2001；A．Dieckman，"HW-SW  co-verification  with  emulation，co-simulation  and  FPGA  based  prototyping"，Proceedings  of  Design  and  Test  in  Europe，pp．98-101，2001；R．Ulrich  et  al．，"Debugging  of  FPGA  based  prototypes-A  case  study"，Proceedings  of  Design  and  Test  in  Europe，pp．109-113，2001）。
【０００７】
エミュレーションシステムは非常に高価格であるが（１００万ドルオーダーのコストがかかる）、そのスピードはコシミュレーションのスピードより遥かに速い（大まかに１００Ｋから１Ｍサイクル／秒程度）。設計記述の異なるレベルにおけるシミュレーションのスピードを、図１において比較して示している。ここでは、上記のように、ＢＦＭはバス・ファンクショナル・モデル、ＩＳＡはインストラクション・セット・アーキテクチャ、そしてＲＴＬはレジスタ・トランスファー・レベルと称している。また、図１に示すロジックは、ネットリストに用いるようなゲートレベルを意味する。現存するどの検証ツールや検証方法も、ソフトウエア・アプリケーションを、設計検証のために広範囲に駆動させることはできない。よって、かぎられたチップの機能性だけの検証が行われている。
【０００８】
エンジニアにより最適な設計検証を行っても、最初のシリコン品はウエハレベルでのテストにおいて、その全機能のうち約８０パーセント程度しか正常に動作せず、また意図したシステムに組み込んだテストでは、５０パーセント以上がフェイルとなる。この基本的な理由は、システムレベルのテストにおいて充分な実時間でのアプリケーションの実行が欠如しているためである。ＦＰＧＡによる試作品は、ＥＤＡシミュレーションツールを用いるために非常にその実施が面倒な上に実行速度が遅く、設計検証としてはまだ不適当である（A．Dieckman，"HW-SW  co-verification  with  emulation，co-simulation  and  FPGA  based  prototyping"，Proceedings  of  Design  and  Test  in  Europe，pp．98-101，2001；R．Ulrich  et  al．，"Debugging  of  FPGA  based  prototypes-A  case  study"，Proceedings  of  Design  and  Test  in  Europe，pp．109-113，2001）。
【０００９】
従って、今日の技術において、このシステムレベルの検証を行うための唯一の手段は、ＡＳＩＣを使用したシリコン試作品を用いることである。そのような現在のＩＣ製品開発サイクル例を図２に示す。図２に示すように、初期設計が終了するとシリコン試作品を作成する。このシリコン試作品は、完全な機能的検証（インシステムテスト）を行うためのシステムボードを形成するために用いられている。この試作品チップについて、その動作における全てのエラーをデバグし、設計を修正し、最終的にそのＩＣの大量生産を行う。
【００１０】
具体的には、図２において、設計者は設計すべき複雑なＩＣの設計における要求事項を検討する（段階２１）。設計者はその必要事項に基づいてＩＣ設計の仕様を確定する（段階２２）。段階２３の設計入力プロセスでは、Ｖｅｒｉｌｏｇ／ＶＨＤＬのようなハードウエア記述言語を用いて目的ＩＣのブロックやサブブロックを記述する。このようにして得られた初期設計を、一般にロジック／タイミング・シミュレーション２６による設計検証プロセス２５を介して、初期テストベンチ２８を実行して評価する（段階２４）。ロジックシミュレーションを実施する結果として、入力出力データファイルすなわちＶＣＤ（バリューチェンジダンプ）ファイル２９が形成される。ＶＣＤファイル２９に有するデータは、入力出力イベントを時間長すなわち遅延時間との関係で記述したリストになっており、したがってイベント形式のデータとなっている。
【００１１】
上記のように作成した設計データに基づいて、シリコン試作品が数値３０で示すプロセスにおいて形成される。このプロセス３０では、段階３１において、シリコン試作品３３を作成する。得られたシリコン試作品３３について、エラー検出のために単体での検証を行う（シリコン検証３２、特性テスト３５）。現在の技術において、そのようなシリコン試作品３３の単体検証は、ＩＣテスタにより行われる。現在のＩＣテスタは、サイクルベースのテストシステムとなっており、サイクル形式で形成されたテストパターンデータを用いてテストベクタを発生するアーキテクチャとなっている。
【００１２】
サイクルベースのテストシステムは、ＥＤＡ環境下において形成されたＶＣＤファイル２９がイベント形式であるために、そのファイルデータを直接的に使用することができない。従って、ＶＣＤファイル内のテストベクタは、サイクリゼイション（ベクタのサイクル化）３４によってサイクル形式のデータに変換される。更に、ＩＣテスタのテストプログラムをサイクル形式のデータを基に作成する必要がある。これは、イベント形式のテストベクタが完全にはサイクル形式のテストベクタに変換することができないからである。このような現在のＩＣテスタによるシリコン試作品設計検証は、まだ不完全で不正確な結果をもたらすことがある。またサイクルベースのテストシステムに合致するように、ＥＤＡ環境で作成されたイベント形式のデータをサイクル形式に変換するための時間を要する。
【００１３】
設計検証・デバグプロセス４０において、インシステムテスト３７を実施することにより、シリコン試作品３３をさらに検証する。インシステムテスト３７では、シリコン試作品３３を意図するシステムの一部として回路基板に搭載し、システム全体としての動作を検証する。このインシステム検証によりシステムエラー検出やそのエラーの原因の追求がされ、設計のバグが修正される（段階３９）。このようなインシステムテストは、設計されたチップについてシリコン試作品を必要とし、且つその試作品を駆動するためのソフトウエア、ボードさらに周辺ハードウエア等が必要となるため、非常に高価となるとともに長時間を要するという問題がある。
【００１４】
図２のシリコン試作品の段階３０と設計検証・デバグ段階４０の間、設計エンジニアとテストエンジニアとの間で多くの相互協力を行って、設計エラーを検出し、そのエラーの原因を究明して、設計エラーを修正する。そのようにして到達した最終設計４１について、あらたに形成したテストベンチ４５を用いてシミュレーション４３を実行する。そしてその設計データに基づいて製造工程によりシリコン製品４９が作成され、そのシリコン製品４９に生産テスト４７を実施する。
図２に示すように、従来の設計検証プロセスは完全な閉ループにはなっていない。すなわち、初期設計からシリコン試作品形成、デバグ・検証、最終設計までの全段階は一方向にシーケンシャルになっている。このため、これら各段階の実行には非常に長時間を要する上に高価である。またどの段階においてもエラーが発生すれば、完全なやり直しが必要となる。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記問題を改善するために本発明の出願人は、その所有する米国特許出願番号０９／４２８，７４６および０９／９４１，３９６において、イベントテスタに基づく検証方法を提案している。この方法では、シリコン試作品と初期シミュレーションテストベンチを電子設計自動化（ＥＤＡ）環境での各種ツールとともに、イベント型テストシステム（イベントテスタ）に用いて設計検証を行う。この実現のために、各種ＥＤＡツールとシミュレータをイベントテストシステムにリンクし、初期設計シミュレーションベクタとテストベンチを実行し、テストベンチとテストベクタを所望の結果が得られるように、イベントテスタにより変更する。ＥＤＡツールがイベントテスタにリンクしているため、この変更した内容により最終的なテストベンチを形成することができる。
この方法の例を図３のブロック図に示す。この方法例は、本出願人にとってのみ従来技術であり、一般に公開された技術でも本発明に対する従来技術でもないことに留意されたい。図２と図３の基本的な相違は、初期設計からシリコン試作品形成、デバグ・検証、バグの修正、最終の製造工程あるいは大量生産までの全てのプロセスが、図３の方法では完全なループを実現していることである。
【００１６】
上記米国特許出願および第３図の方法において、完全な機能設計、すなわちチップレベルでの設計検証を充分に行うためには、設計シミュレーション（初期テストベンチ）により形成されたフルチップの機能テストベクタをイベントテスタにより実行する。これらのベクタはイベント形式になっており、一般に対象ＩＣのビヘイビオラルモデルまたはＶｅｒｉｌｏｇ／ＶＨＤＬモデルにソフトウエア・アプリケーションを実行して発生される。これらのベクタはＩＣの異なる部分について同時に実施されあるいは異なる時間において実施されるが、全体としてのＩＣの動作（ビヘイビア）は、これらの部分を統合した応答内容により決定される。このステップの後に、シリコンチップ（シリコン試作品・プロトタイプ）が図３に示すように形成される。
【００１７】
この試作品チップが利用可能になると、この試作品チップをイベントテストシステムに接続して初期テストベンチによる設計シミュレーションベクタを実行して、そのチップの動作を検証する。より具体的には、図３において、イベントテスタ５２はシリコン試作品３３の機能を、ＶＣＤ（バリューチェンジダンプ）ファイル２９から生成したイベントデータを基にして形成したテストベクタをシリコン試作品３３に与えてテストする。ＶＣＤファイル２９はイベント形式で構成されているので、ＶＣＤファイル２９のデータをイベントテスタ５２において直接的に用いることができる。
【００１８】
ＥＤＡツール、例えばシミュレーション・分析・デバグ５５および波形エデイタ・ビューア５６が、ＡＰＩ（プログラムド・アプリケーション・インターフェイス）のようなインターフェイス６７を通して、イベントテスタ５２に接続されている。イベントテスタ５２は、波形を観測し編集するソフトウエアツール、例えばイベント波形エデイタ・ビューア５８およびＤＵＴ（被試験デバイス）波形エデイタ・ビューア５９、を有している。これらのエデイタ・ビューア５８および５９は、上記ＥＤＡツール５５および５６とＡＰＩインターフェイス６７を介してリンクし、相互間において通信し且つ互いのデータベースをアクセス可能になっている。イベントテスタ５２は、テストベクタ（イベント）をイベント波形エデイタ・ビューア５８を介して変更することができる。
【００１９】
テストベクタを実行することにより、イベントテスタ５２は、テスト結果ファイル５３を形成し、この結果データをテストベンチフィードバック６９を介して、ＥＤＡ環境およびＥＤＡツールにフィードバックする。テストベクタを実行した結果をイベントテスタ５２において検討し、ＩＣ（意図した設計）の間違った動作が修正されるように、イベントテスタ５２において（波形エデイタ・ビューア５８、５９）イベントを変更・編集する。変更したイベントにより新たなテストベンチ５１を作成する。このような新規なテストベンチを得るために、テストベンチ発生ツール６５、シミュレーション・アナリシス・ツール５５、波形ビューア５６等のＥＤＡツールが、イベントテスタ５２にリンクしている。これらのプロセスを終了すると、図３において、最終シリコン作成行程６１により最終的なＩＣデバイス６２を作成し、そのデバイスを生産テスト６３においてテストする。
【００２０】
図３の方法は、設計検証するための物理的なシリコンチップ（試作品）を必要とし、よって、その検証プロセスは全体としてまだ高価である。この制限を改善するために、上述の米国特許出願番号０９／９４１，３９６は、初期設計データ記述とそのシミュレーションテストベンチを用いてバグのない新たなテストベンチとデバイスモデルを形成するまた別のプロセスを開示している。この技術も出願人の内部知識であり、本発明の従来技術ではないことに留意されたい。このプロセスでは、デバイスの初期設計を初期テストベンチと共にイベントテスタに搭載する。ＡＰＩ（プログラムド・アプリケーション・インターフェイス）を用いて、イベントテスタは、初期の設計段階で使用したシミュレータとリンクしている。従って、イベントテスタは、ＶｅｒｉｌｏｇあるいはＶＨＤＬで記述した設計データやその全てのロジックモデル、ビヘイビオラル、ＢＦＭ、ＩＳＡおよびアプリケーションの各テストベンチを有することができる。
【００２１】
初期設計に基づくデバイスモデルとそのテストベンチを用いて、その設計結果をイベントテスタにより検証する。この検証システム全体の環境および検証結果がイベント形式になっているので、デバイスのどのような動作上の間違いもただちに検証できる。このイベントテスタは、イベントを変更編集し時間スケールの変更ができるので、このような動作間違いを修正するようにイベントを変更修正することができる。全ての動作間違いが修正されると、修正したデバイスモデルを保存し、新たなテストベンチとテストベクタを形成する。この保存したデバイスモデルは、シリコン製造工程および多量生産工程において使用される。
しかし、このデバイスモデルを用いた設計検証方法は、上述の図３の方法と同様にシミュレーションを基にしているので、スピードが遅いという問題がある。したがって、この問題を改善するためには、新たな設計検証方法および装置が必要となっている。
【００２２】
従って、本発明の目的は、ロジックシミュレーションを用いずに、複雑なＩＣの設計検証を、イベント型テストシステムを用いて高速でかつ低コストで実施する方法および装置を提供することである。
【課題を解決するための手段】
【００２３】
本発明の第１の様態では、複雑なＩＣの設計検証方法は、イベントテスタにフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）を接続するステップと、ＥＤＡ環境下において形成された設計データを用いてイベントテスタを介してＦＰＧＡをインラインプログラミングしてそのＦＰＧＡに意図したＩＣと同等なＩＣを形成するステップと、ＩＣ設計データから得られたテストベクタをイベントテスタによりそのＦＰＧＡに与え、そのＦＰＧＡからの応答出力を評価するステップと、その応答出力のエラーを検出してその設計エラーが修正されるようにＦＰＧＡのインラインプログラミングを変更するステップと、イベントテスタにエラーのない設計データが得られるまでそのエラー検出と設計エラー修正のステップを繰り返すステップと、により構成される。
【００２４】
好ましくは、本発明の方法は更に、得られた設計データをＦＰＧＡをインラインプログラミングするために変換するステップを有している。このＦＰＧＡをイベントテスタを介してインラインプログラミングするステップは更に、プログラミングデータをイベントテスタのコントロールバスを介してＦＰＧＡに送信するステップを有している。
本発明では、好ましくは、テストベクタをＦＰＧＡに形成したＩＣに与えるステップは、ＥＤＡ環境下で形成されたテストベンチを実行するステップとイベントテスタを介して意図したＩＣにアプリケーション・ソフトウエア実行するステップを有している。
本発明の方法は、ＥＤＡ環境下で形成されたテストベンチからイベントデータを抽出するステップと、その抽出されたイベントデータをイベントテスタに搭載しそのイベントデータを用いてテストベクタを発生してそれをイベントテスタのテストフィクスチャを介してＦＰＧＡに与えるステップとを更に有している。
【００２５】
本発明の第２の様態においては、ＦＰＧＡではなく、エミュレータボードを用いる。本発明による複雑なＩＣの設計検証方法は、イベントテスタにエミュレータボードを接続するステップと、そのエミュレータボードが意図したＩＣの機能をエミュレートするようにそのエミュレータボードに意図したＩＣの設計データを供給するステップと、ＩＣ設計データから得られたテストベクタをイベントテスタによりエミュレータボードに与え、そのエミュレータボードからの応答出力を評価するステップと、その応答出力のエラーを検出して設計エラーを修正するようにエミュレータボードに供給している設計データを変更するステップと、イベントテスタにエラーのない設計データが得られるまでそのエラー検出と設計エラー修正のステップを繰り返すステップと、により構成される。
【００２６】
本発明の更に別の様態は、複雑なＩＣの設計を検証するための装置である。この設計検証装置は、上述の設計検証方法を実現するために各種手段により構成されており、イベントテスタとＦＰＧＡとの組み合わせ、あるいはイベントテスタとエミュレータボードとの組み合わせを用いて高速なテストパターンアプリケーションや応答評価、また設計デバグやエラー修正を行う。
【発明の効果】
【００２７】
本発明による設計検証では、スピードの遅いＥＤＡツールを用いる代わりにイベントテスタとＦＰＧＡのインラインプログラミングを用いて設計検証を行っている。チップ全体レベルでのシミュレーションは使用していない上にＦＰＧＡで実行するアプリケーション・ソフトウエアのスピードはシミュレーションと比較してはるかに高速のため、現在の技術では不可能な広範囲な検証を行うことができる。
設計検証プロセスの流れの中におけるスピードの遅いシミュレーションを除去したので、広範囲な設計検証をその設計したＩＣが製造される前に行うことができる。また広範囲な設計検証が可能になったので大量生産前に必要であった試作品の作成も不要となる。このように本発明の設計検証方法は、非常に効率が高く低コストであるとともに、従来のいかなるシステムによる検証方法とも基本的に異なるプロセスを用いている。
【発明を実施するための最良の形態】
【００２８】
本発明の出願人は、その所有する米国特許出願番号０９／４０６，３００、０９／３４０，３７１および０９／２８６，２２６において、イベント型テストシステムについて開示している。本発明による新たな検証方法とその装置により、従来技術における制限を克服することにより、設計検証パラダイムを変更する。
周知のように、ＩＣテスタ（半導体テストシステム）は、１００ＭＨｚから１ＧＨｚのように高速のテストレートを有しており、例えば現在のどのロジックシミュレータよりも遙かに高速である。上述したように、図２、図３に示す従来技術は、設計検証方法の一部としてとしてロジックシミュレータを用いているので、ＩＣテスタの高速なテストレートを活用することができない。本発明は、設計検証のプロセスからスピードの遅いシミュレーションを除去することにより設計工程自体を加速して設計者の生産性を向上させる。
【００２９】
この発明の２つの主要な利点は：
（１）設計検証のプロセスからスピードの遅いシミュレーションのプロセスを除去することにより、広範囲の設計検証を意図するＩＣの製造前に行うことができること、および
（２）広範囲な設計検証が可能になったので、大量生産前に必要であった試作品形成を不要にできること、である。
本発明の設計検証方法は非常に効率性が高くまた低コストであり、上述したいかなる従来の設計検証方法とも基本的に異なるプロセスを用いている。
【００３０】
本発明は、スピードの遅いＥＤＡシミュレーションツールの替わりに、イベント型テストシステム（イベントテスタ）とインラインプログラミングされたＦＰＧＡを用いて設計検証を行う。イベント型テストシステムの基本コンセプトについては、米国特許出願番号０９／４０６，３００および０９／３４０，３７１に開示している。ＦＰＧＡは、イベントテスタ内のコントロールバスを介してそのイベントテスタ上でプログラムをする（インラインプログラミング）。よって、意図した複雑なＩＣチップのネッテリスト（一般にゲートレベル記述）を有する１個または２個以上のＦＰＧＡをイベントテスタ上に実現することができる。
【００３１】
ＦＰＧＡに実際のＩＣ設計を実現しているので、ソフトウエア・アプリケーションを設計検証の目的で、イベントテスタを介して実行することができる。ソフトウエア・アプリケーションの間に生じたエラーはイベントテスタにより検出され、イベントテスタ上で直接的に診断される。ＦＰＧＡはインラインプログラムされるので、設計データのネットリストに発生するエラー原因を修正することができる。このように、実際のソフトウエア・アプリケーションを長時間実施して広範囲な設計検証を行える。
この設計検証方法を図４に示す。この例では、イベントテスタ９２はコントロールバスを介してＦＰＧＡ（フィールド・プログラマブル・ゲートアレイ）ボード９４を接続する。図２および図３と同様に、ＥＤＡ環境下において、複雑なＩＣの初期設計データ８５が、設計の各段階８１−８３において形成される。更に、テストベンチ８７も作成され、これは典型的にはＶｅｒｉｌｏｇ／ＶＨＤＬの形式になっている。イベントデータファイル９１は、テストベンチデータ８７とアプリケーション・ソフトウエア８８に基づいて、イベント抽出プロセス８９を介して作成する。
【００３２】
周知のように、ＦＰＧＡは意図した回路を構成するために内部にメモリを有している。従って、そのＦＰＧＡのメモリに適切なデータを書き込むことにより（プログラミング）、大規模の集積回路をＦＰＧＡ上に形成することができる。本発明では、イベントテスタ９２は、ＦＰＧＡをプログラミング（インラインプログラミング）するためにコントロールバスを介してそのＦＰＧＡに構成データ（コンフィギュレーションデータ）を与える。一般に、そのような構成データは、インラインプログラミング９３に格納したＦＰＧＡに固有のルールに基づいて、イベントデータ９１を翻訳して形成する。
【００３３】
ＦＰＧＡボード９４に意図したＩＣを形成した後に、イベントテスタはテストフィクスチャ（例えばポゴピン等）を介してテストパターン（テストベクタ）をＦＰＧＡボード９４に与える。テストの実行の間、すべてのエラーはイベントテスタにより検出され、イベントテスタ上で直接に診断される。ＦＰＧＡがインラインにプログラムされるので、エラーの原因を設計ネットリストにより修正することができる。上述の特許出願で開示するように、イベントテスタはイベント（テストパターン）をタイミング、属性、および繰り返しレートのそれぞれについて変更できるので、その設計ＩＣについて広範囲なテストを行うことができる。また、イベントテスタとＦＰＧＡの組み合わせにより高速動作ができるので、アトスピード（現実速度）でのソフトウエア・アプリケーションを長時間にわたり実行でき、したがたて広範囲な設計検証を実施できる。全てのエラーを検出し設計を修正した後、最終設計９７が確立されて大量生産段階９８において使用される。
【００３４】
本発明の実施において、ＦＰＧＡボード９４はテストフィクスチャ上に搭載され、そのテストフィクスチャに接続された各種の信号がＦＰＧＡを制御するために用いている。これら信号は各種の機能を提供しており、ＦＰＧＡのインラインプログラミングもこれら信号を介して実施される。
このような信号の例は：
（１）３２ビットのコントロールバスと３２ビットのコントロールワード；これらの信号は現在の実施例ではテスタコントローラでオープンコレクタとして実施されている。これら信号は双方向性信号としても使用できる。
（２）６４ビットアナログ入力出力信号；３２ビットコントロールワードと６４ビット信号は共に汎用インターフェイスを有しており、各ビットのそれぞれは個別に制御できる。
（３）電源接続；現在の実施例では、１６のＤＵＴ（被試験デバイス）用電源、および＋５Ｖ、＋１５Ｖ、−５Ｖ、−１５Ｖの各電源を有し、ＤＵＴ用の各電源は２Ａで８Ｖである。これら電源は高電圧のアプリケーションにも使用するために、並列接続端子およびフローティング端子を有している。
【００３５】
ＦＰＧＡのインラインプログラミングは並列インターフェイスあるいは直列インターフェイスを用いて行う。直列インターフェイスでは、多数のデバイス（ＦＰＧＡ）をデイジーチェーン配列のように接続することができる。この方法は、２つのコントロール信号のみを用いてシステム内の全てのＦＰＧＡをプログラムできる。
別の可能な方法としては、バスを用いて多数のＦＰＧＡを並列に構成する方法である。このような並列構成において、各デバイスにはそれぞれ固有のクロックとデータが必要である。両バスを用いれば合計９６のコントロールビットが利用可能になり、よって最高４８のＦＰＧＡを並列にプログラムすることができる（１のＦＰＧＡにつき１クロックと１データライン）。
【００３６】
第３に可能な方法は、最も一般的な方法であり、並列接続とデイジーチェーン接続の組み合わせである。この例を図５に示す。図５の例において、ＦＰＧＡボード９４は直列および並列に接続されたＦＰＧＡ９４１−９４６を有する。イベントテスタ９２は、インラインプログラミング（ＦＰＧＡに意図したＩＣを作成する）をするために、データとクロックをＦＰＧＡ９４に並列的に供給する。結果として形成されたＩＣはインターフェイス９５を有しており、そのインターフェイスを用いて、イベントテスタのピンカードとのコミュニケーションをテストフィクスチャを介して実現する。
【００３７】
上述したように、本発明の設計検証方法は、スピードの遅いシミュレーションに替えて、イベントテスタとインラインプログラミングされたＦＰＧＡを用いて設計検証を行う。フルチップ（チップ全体）レベルでのシミュレーションを使用しないこと、さらにアプリケーション・ソフトウエアがＦＰＧＡ上ではるかに高速に実行できる（シミュレーションと比較して）ことから、本発明により今日の技術では不可能な広範囲の設計検証を行うことができる。
【００３８】
図６は本発明の第２の実施例を示しており、この実施例では、ＦＰＧＡのインラインプログラミングに替えて、エミュエータを用いている。この場合、イベントテスタのコントロールバス（上述の３２ビットのコントロールワード、６４ビットのアナログ信号）は、エミュレータのインターフェイスバスにマップしている（エミュレータのインターフェイスは一般に３２ビットあるいは６４ビットなので、コントロールバスでは利用可能の９６ビット中の３２ビットあるいは６４ビットが使用される）。アイコス・システム社のようなエミュレータ業者は、エミュレーションシステムをどのシステムにも接続できるように、エミュレーションインターフェイスを公開している。
【００３９】
このようにエミュレーションシステムにおけるインターフェイスが公開されているので、図６に示すように、インラインプログラミングされたＦＰＧＡに替えてエミュレータを用いることができる。この実施例は、エミュレータボードのみを使用するので（エミュレーションシステム全体ではなく）、コストはＦＰＧＡの方法よりも多少高価ではあるが、エミュレーションシステム全体を使用する場合に比べるとはるか低コストとなる。また、設計データを搭載してアプリケーション・ソフトウエアをエミュレーションボード上で実施して、設計エラーをイベントテスタでデバグする場合、その検証のスピードはスピードの遅いコミュニケーションバスに制限される。
【００４０】
具体的には、図６において、エミュレータボード１０４はエミュレータインターフェイスバスを介してイベントテスタ９２に接続している。エミュレータボード１０４は、エミュレータボードインターフェイス１０１を介してテストベンチやアプリケーション・ソフトウエア等のデータを受信する。エミュレータボード１０４には更にデータロードステップ１０２を介して設計データがロードされる。結果として、エミュレータボード１０４は設計ＩＣをエミュレートする。
エミュレータボードにテストベンチを実行することにより、イベントデータがイベントファイル１０５に作成される。イベントテスタ９２は、このイベントデータを用いてエミュレータボード１０４の設計データをエミュレータインターフェイスバスを介してテストし、そのエミュレータボード１０４の応答出力を評価する。全てのエラーを検出し設計データを修正した後に、大量生産のために用いる最終設計１０７を確立する。
【００４１】
図７Ａおよび図７Ｂは、本発明の検証方法と第３図に示す検証方法（従来方法ではない）を並べて比較している。図７Ａと図７Ｂの双方において、ＩＣ設計のステップ１０１により設計データファイル１０２とテストベンチ１０３が形成される。そして、図７Ａの方法では、その設計データファイル１０２とテストベンチ１０３を用いてロジックシミュレーション１０５を実行する。周知のように、ソフトウエアのプロセスによって構成されるこのロジックシミュレーションは、意図したＩＣの動作スピードと比べて非常に動作が遅い。この図７Ａの方法では、設計データに基づいてシリコン試作品１１１を作成し、それをイベントテスタ１１０でテストする。
【００４２】
ロジックシミュレータ１０５は、入力出力信号データ、例えばＶＣＤ（バリューチェンジダンプ）ファイル１０７を形成し、そのイベントデータを抽出してイベントデータファイル１０８を作成する。イベントテスタ１１０はそのイベントデータを用いてテストベクタを生成し、そのテストベクタをシリコン試作品１１１に供給する。従って、シリコンデバグ・検証ステップ１１２において、設計エラーを検出し、バグ修正ステップ１０６において設計バグを修正して、それを設計ステップにフィードバックする。
【００４３】
図７Ｂに示す本発明では、テストシステム１１５はイベントテスタ１２０とＦＰＧＡ１２４との組み合わせの構成となっている。設計データ１０２は、ＦＰＧＡをプログラムしてその意図したＩＣをＦＰＧＡに実現するために用いられる。イベントデータ１１６はテストベンチ１０３を用いて生成し、イベントテスタ１２０はそのイベントデータ１１６により生成したテストベクタを発生する。ＦＰＧＡ１２４は、実際のＩＣ速度に最も近い速度で意図したＩＣの動作をするので、アプリケーション・ソフトウエアをアトスピードテストとして本発明のテスト方法で実行することができる。
【００４４】
図７Ａと図７Ｂから明らかなように、本発明の新規方法は設計検証のプロセスからロジックシミュレータ１０５を除去している。ロジックシミュレーションは動作スピードが遅いため、現在の設計検証にとってはボトルネックであり、このシミュレーション行程を除去することにより短時間で広範囲な検証を行うことができる。本発明の方法は、イベントテスタ１２０の全ての設計エラーを、ＡＳＩＣ試作品を必要とせずにデバグすることができる。本発明の検証工程は、現存する他の方法に比べて費用効率とスピードが極めて高い。
【００４５】
上述したように、本発明は、スピードの遅いＥＤＡシミュレーションツールを用いることなく、イベントテスタとインラインプログラムしたＦＰＧＡを用いて設計を検証する。フルチップレベルのシミュレーションを使用しない上に、アプリケーション・ソフトウエアがＦＰＧＡ上で非常に高速に実行される（シミュレーションと比べて）ので、現在の技術では不可能な広範囲な設計検証を行うことができる。
設計検証のプロセスからスピードの遅いシミュレーションを除去したので、設計したＩＣが製造される前に広範囲な設計検証を行うことができる。そして広範囲な設計検証が可能になったため、大量生産の前に必要であった試作品作成を不要にできる。本発明の設計検証は非常に効率的で低コストであり、また現存する上述のいかなるシステムにおける設計検証方法とも基本的に異なるプロセスを用いている。
【００４６】
好ましい実施例しか明記していないが、上述した開示に基づき、添付した請求の範囲で、本発明の精神と範囲を離れることなく、本発明の様々な形態や変形が可能である。
【図面の簡単な説明】
【００４７】
【図１】図１は、複雑なＩＣの開発における各種の抽象レベルとそのシミュレーション速度との関係を示す図である。
【図２】図２は、従来技術によるシリコン試作品を用いた設計検証のプロセスを示す概略図である。
【図３】図３は、他の設計検証方法の例を示す概略図であり、その方法は出願人の内部知識でありかつ米国特許出願番号０９／９４１，３９６の主題となっている。
【図４】図４は、イベントテスタとＦＰＧＡのインラインプログラムとの組み合わせを用いた本発明の設計検証方法および装置の基本構成例を示すブロック図である。
【図５】図５は、並列でかつデイジーチェーン構成による、本発明のＦＰＧＡの構成例を示す概略図である。
【図６】図６は、エミュレータボードとイベントテスタとの組み合わせを用いた本発明の設計検証方法とその装置の基本構成例を示すブロック図である。
【図７】図７Ａ−図７Ｂは、３図の検証方法と本発明の検証方法とを比較した概略図である。
【図１】
2004527036.tif 000003
【図２】
2004527036.tif 000004
【図３】
2004527036.tif 000005
【図４】
2004527036.tif 000006
【図５】
2004527036.tif 000007
【図６】
2004527036.tif 000008
【図７】
2004527036.tif 000009
【国際公開パンフレット】
2004527036.tif 000010
2004527036.tif 000011
2004527036.tif 000012
2004527036.tif 000013
2004527036.tif 000014
2004527036.tif 000015
2004527036.tif 000016
2004527036.tif 000017
2004527036.tif 000018
2004527036.tif 000019
2004527036.tif 000020
2004527036.tif 000021
2004527036.tif 000022
2004527036.tif 000023
2004527036.tif 000024
2004527036.tif 000025
2004527036.tif 000026
2004527036.tif 000027
2004527036.tif 000028
2004527036.tif 000029
2004527036.tif 000030
2004527036.tif 000031
2004527036.tif 000032
2004527036.tif 000033
2004527036.tif 000034
2004527036.tif 000035
2004527036.tif 000036
2004527036.tif 000037
2004527036.tif 000038
2004527036.tif 000039
2004527036.tif 000040
2004527036.tif 000041
2004527036.tif 000042
2004527036.tif 000043
【国際調査報告】
2004527036.tif 000044