(57)【特許請求の範囲】
【請求項１】
電子設計自動化（ＥＤＡ）環境における設計プロセスが行われた複雑なＩＣ設計の検証方法において、
ＥＤＡ環境下において形成されたＩＣ設計データを用いてそのＩＣのシリコン試作品を形成するステップと、
そのＩＣ設計データから得られたイベント形式のテストベクタをイベント型テストシステムによりそのシリコン試作品に与え、そのシリコン試作品からの応答出力を評価するステップと、
そのシリコン試作品から所定の出力が得られるように、イベント形式テストベクタをイベント型テストシステムにより変更するステップと、
その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックしてそのＩＣ設計データを変更し、設計エラーを修正するステップと、
上記を具備することを特徴とするＩＣ設計の検証方法。
【請求項２】
シミュレータを含むＥＤＡツールをイベント型テストシステムにソフトウェアインタフェースを介して接続するステップをさらに有する、請求項１に記載のＩＣ設計の検証方法。
【請求項３】
ＩＣ設計データ中に形成されたテストベンチからイベント形式データを抽出するステップをさらに有する、請求項１に記載のＩＣ設計の検証方法。
【請求項４】
上記イベント形式データを抽出するステップは、さらにそのテストベンチをシミュレータにより実行してそのシミュレータにより形成されたバリューチェンジダンプファイルからイベント形式データを抽出するステップを有している、請求項３に記載のＩＣ設計の検証方法。
【請求項５】
上記抽出したイベントデータをイベント型テストシステムに搭載し、その抽出したイベントデータを用いてイベント型テストシステムによりイベント形式テストベクタを発生してそれをシリコン試作品に与えるステップをさらに有する、請求項３に記載のＩＣ設計の検証方法。
【請求項６】
上記イベント型テストシステムからの上記変更したイベント形式テストベクタに基づいて、新たなテストベンチを形成するステップをさらに有する、請求項１に記載のＩＣ設計の検証方法。
【請求項７】
上記のＥＤＡツールは、ＩＣ設計データ中に形成されたテストベンチから得られた波形を観察及び編集可能に表示する手段を有している、請求項２に記載のＩＣ設計の検証方法。
【請求項８】
上記のイベント型テストシステムは、ＩＣ設計データ中に形成されたテストベンチから抽出したイベント形式テストベクタの波形を観察及び編集可能に表示する手段と、上記シリコン試作品に与えるクロックレートやテストベクタのイベントタイミングデータを変更する手段とを有している、請求項１に記載のＩＣ設計の検証方法。
【請求項９】
電子設計自動化（ＥＤＡ）環境における設計プロセスが行われた複雑なＩＣ設計の検証方法において、
ＥＤＡ環境下において形成されたＩＣ設計データを用いてそのＩＣのシリコン試作品を形成するステップと、
シミュレータを含むＥＤＡツールをイベント型テストシステムにリンクさせるステップと、
上記ＩＣ設計データ中に形成されたテストベンチを上記シミュレータにより実行して得られたデータファイルからイベント形式データを抽出するステップと、
その抽出されたイベント形式データをイベント型テストシステムに搭載し、そのイベント型テストシステムによりそのイベントデータを用いたイベント形式テストベクタを発生するステップと、
そのイベント形式テストベクタをイベント型テストシステムによりそのシリコン試作品に与え、そのシリコン試作品からの応答出力を評価するステップと、
そのシリコン試作品から所定の出力が得られるように、イベント形式テストベクタをイベント型テストシステムにより変更するステップと、
その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックしてそのＩＣ設計データを変更し、設計エラーを修正するステップとを備え、
上記シリコン試作品のインシステムテストをすることなく、ＩＣ設計検証を行うことを特徴とするＩＣ設計の検証方法。
【請求項１０】
電子設計自動化（ＥＤＡ）環境における設計プロセスが行われた複雑なＩＣ設計の検証方法において、
入力操作に応じて、コンピュータが、ＥＤＡ環境下においてＩＣ設計データを形成するステップと、
形成されたＩＣ設計データに基づいて、コンピュータが、設計対象であるＩＣのデバイスモデルを形成するステップと、
上記ＩＣ設計データに基づいて、コンピュータが、イベント形式のテストベクタを生成するステップと、
生成されたイベント形式のテストベクタを、コンピュータが、イベント型テストシステムにより上記デバイスモデルに与え、そのデバイスモデルから応答出力を出力させるステップと、
上記デバイスモデルから所定の出力が得られるように、コンピュータが、入力操作に応じて、イベント形式テストベクタをイベント型テストシステムにより変更するステップと、
その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックするために、コンピュータが、入力操作に応じて、上記ＩＣ設計データを変更し、設計エラーを修正するステップと、
上記を具備することを特徴とするＩＣ設計の検証方法。
【請求項１１】
上記デバイスモデルは、固有のシミュレータに従属しあるいはどのようなシミュレータからも独立している、請求項１０に記載のＩＣ設計の検証方法。
【請求項１２】
コンピュータが、シミュレータを含むＥＤＡツールをイベント型テストシステムにソフトウェアインタフェースを介して接続するステップをさらに有する、請求項１０に記載のＩＣ設計の検証方法。
【請求項１３】
コンピュータが、ＩＣ設計データ中に形成されたテストベンチからイベント形式データを抽出するステップをさらに有する、請求項１０に記載のＩＣ設計の検証方法。
【請求項１４】
上記イベント形式データを抽出するステップは、コンピュータが、さらにそのテストベンチをシミュレータにより実行してそのシミュレータにより形成されたバリューチェンジダンプファイルからイベント形式データを抽出するステップを有している、請求項１３に記載のＩＣ設計の検証方法。
【請求項１５】
コンピュータが、上記抽出したイベントデータをイベント型テストシステムに搭載し、その抽出したイベントデータを用いてイベント型テストシステムによりイベント形式テストベクタを発生してそれを上記デバイスモデルに与えるステップをさらに有する、請求項１３に記載のＩＣ設計の検証方法。
【請求項１６】
コンピュータが、上記イベント型テストシステムからの上記変更したイベント形式テストベクタに基づいて、新たなテストベンチを形成するステップをさらに有する、請求項１０に記載のＩＣ設計の検証方法。
【請求項１７】
上記のＥＤＡツールは、ＩＣ設計データ中に形成されたテストベンチから得られた波形を観察及び編集可能に表示する手段を有している、請求項１２に記載のＩＣ設計の検証方法。
【請求項１８】
上記のイベント型テストシステムは、ＩＣ設計データ中に形成されたテストベンチから抽出したイベント形式テストベクタの波形を観察及び編集可能に表示する手段と、上記デバイスモデルに与えるクロックレートやテストベクタのイベントタイミングデータを変更する手段とを有している、請求項１０に記載のＩＣ設計の検証方法。
【請求項１９】
電子設計自動化（ＥＤＡ）環境における設計プロセスが行われた複雑なＩＣ設計の検証方法において、
入力操作に応じて、コンピュータが、ＥＤＡ環境下においてＩＣ設計データを形成するステップと、
形成されたＩＣ設計データに基づいて、コンピュータが、ＩＣのデバイスモデルを形成するステップと、
コンピュータが、シミュレータを含むＥＤＡツールをイベント型テストシステムにリンクさせるステップと、
コンピュータが、上記ＩＣ設計データ中に形成されたテストベンチを上記シミュレータにより実行して得られたデータファイルからイベント形式データを抽出するステップと、
コンピュータが、その抽出されたイベント形式データをイベント型テストシステムに搭載し、そのイベント型テストシステムによりそのイベントデータを用いたイベント形式テストベクタを生成するステップと、
生成されたイベント形式のテストベクタを、コンピュータが、イベント型テストシステムにより上記デバイスモデルに与え、そのデバイスモデルから応答出力を出力させるステップと、
上記デバイスモデルから所定の出力が得られるように、コンピュータが、入力操作に応じて、イベント形式テストベクタをイベント型テストシステムにより変更するステップと、
その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックするために、コンピュータが、入力操作に応じて、上記ＩＣ設計データを変更し、設計エラーを修正するステップとにより構成され、
上記デバイスモデルのインシステムテストをすることなく、ＩＣ設計検証を行うことを特徴とするＩＣ設計の検証方法。
【請求項２０】
電子設計自動化（ＥＤＡ）環境における設計プロセスが行われた複雑なＩＣ設計の検証方法において、
入力操作に応じて、コンピュータが、ＥＤＡ環境下においてＩＣ設計データを形成するステップと、
形成されたＩＣ設計データに基づいて、コンピュータが、設計対象であるＩＣのデバイスモデルを形成するステップと、
上記ＩＣ設計データに基づいて、コンピュータが、イベント形式のテストベクタを生成するステップと、
生成されたイベント形式のテストベクタを、コンピュータが、イベント型テストシステムにより、上記ＩＣ設計データに基づいて形成された設計対象であるＩＣのシリコン試作品又は上記デバイスモデルに与え、そのシリコン試作品又はデバイスモデルから応答出力を出力させるステップと、
上記シリコン試作品又はデバイスモデルから所定の出力が得られるように、コンピュータが、入力操作に応じて、イベント形式テストベクタをイベント型テストシステムにより変更するステップと、
その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックするために、コンピュータが、入力操作に応じて、上記ＩＣ設計データを変更し、設計エラーを修正するステップと、
上記を具備することを特徴とするＩＣ設計の検証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複雑なＩＣの設計を検証するための方法に関する。特に本発明は、システムオンチップのような複雑なＩＣの設計をＥＤＡ（エレクトロニック・デザイン・オートメーション）ツールとイベント型テストシステムの組み合わせにより、迅速、正確かつ低コストで検証する方法に関する。
【０００２】
【従来の技術】
現在のＶＬＳＩのような半導体集積回路（ＩＣ）の設計は、一般にＥＤＡ（エレクトロニック・デザイン・オートメーション：電子設計自動化）と呼ばれるコンピュータを用いたハードウェア設計の環境において、例えばＶｅｒｉｌｏｇあるいはＶＨＤＬと称されるハードウェア記述言語（ＨＤＬ）を用いて行われる。ハードウェアの設計はブロックあるいはサブブロック毎に行われ、ビヘイビオラルレベル、ゲートレベル等のシミュレータ（Ｖｅｒｉｌｏｇ／ＶＨＤＬシミュレータ）により、その設計の検証が行われている。このようなシミュレーションは、そのハードウェア設計がシリコンＩＣとして作成される前に、設計者の意図した機能が果たされるかを検証することを目的としている。
【０００３】
完全な機能検証が行われないかぎり、設計エラーを発見し取り除くことはできないので、複雑なＩＣの設計において、その設計の検証は最も重要で且つ難しいタスクである。同時に、設計検証は製品の開発生産サイクルにおいて、必要不可欠なものである。しかしシミュレーションのスピードが遅いことと今日のＩＣ設計におけるサイズが大きいことから、現在の検証ツールや検証方法によっては、チップ全体の設計検証をすることはほとんど不可能になってきている(M. Keating and P. Bricaud, "Reuse methodology manual for syste-on-a-chip design", Kluewer Academic Publishers, ISBN 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", 上掲)。設計検証とはシステムが意図した動作をすることを確定することであり、そのシステム動作に信頼を与えることである。複雑なＩＣの設計検証とは、機能およびタイミング性能の双方について、そのＩＣハードウェアの動作を検証することである。それは今日の技術においては、広範囲なビヘイビオラル・シミュレーション、ロジック・シミュレーションおよびタイミング・シミュレーション、およびまたはエミュレーション、およびまたはハードウェア試作品を用いて実現している。
【０００６】
ＩＣ設計プロセスの初期段階では、設計仕様の開発とＲＴＬコーディングとともに、ビヘイビオラルモデルを形成して、システムシミュレーションのためのテストベンチが形成される。一般的に初期段階では、ＲＴＬモデルや機能モデルが特定されるまでに、有効なテスト項目やテスト環境を開発することが目的である。効率的な設計検証は、テスト品質、テストベンチの完全性、各種モデルの抽象化レベル、ＥＤＡツール、およびシミュレーション環境等に依存する。
【０００７】
第２図は、複雑なＩＣ設計における異なる各種の抽象レベルと、その各レベルにおいて今日用いられている検証手段の種類を示している。第２図において、最上位の抽象レベルから最下位の抽象レベルに向かって、ビヘイビオラルＨＤＬレベル４１、ＲＴＬ（レジスタ・トランスファー・ラングェージ）レベル４３、ゲートレベル４５、および物理的設計レベル４６が示されている。それらの異なる抽象レベルに対応する検証方法が第２図のブロック４８に例示されている。
【０００８】
設計検証方法は、設計の階層に追随する。最初に末端レベルのブロックの設計が正しいかが個別に検証される。これらのブロックの機能が検証されると、これらのブロック間のインタフェースが正しいかが、信号の取り扱いおよびデータ内容について検証される。次のステップではフルチップモデルについてアプリケーション・ソフトウェアあるいはそれと同等のテストベンチを実行してチップ全体としての検証を行う。アプリケーション・ソフトウェアの実行は、そのソフトウェアを実時間で起動することにより検証できるので、ハードウェア、ソフトウェアによるコシミュレーションが必要である。コシミュレーションはインストラクション・セット・アーキテクチャ（ＩＳＡ）モデル、バス・ファンクショナル・モデル（ＢＦＭ）、あるいはビヘイビオラルＣ／Ｃ＋＋モデルを用いて実施できる。
【０００９】
異なるレベルにおけるシミュレーション速度の概略比較を第３図に示す。現時点においては、コシミュレーションのスピードが遅いため、チップ全体の検証には、エミュレーションあるいはハードウェア試作品による検証方法が用いられている。エミュレーションは非常に高価であるが（一般にエミュレーションシステムは１００万ドルオーダーのコストがかかる）、そのスピードはコシミュレーションのスピードより遥かに速い。エミュレーションのスピードは大まかには１Ｍサイクル／秒程度であり、実際のシステムスピードの百分の１（１／１００）程度である。ＦＰＧＡ（フィールドプログラマブル・ゲートアレイ）あるいはＡＳＩＣ（アプリケーション・スペシフィック集積回路）によるハードウェア試作品によるシミュレーションスピードはさらに高く、実際のシステムスピードの十分の１（１／１０）程度になるが、ＦＰＧＡあるいはＡＳＩＣを製造する必要があるため、エミュレーションの場合よりさらに高価になる。
【００１０】
エンジニアにより最適な設計検証を行っても、最初のシリコン品はウェハレベルでのテストにおいて、その全機能の内約８０パーセント程度しか正常に動作せず、また意図したシステムに組み込んだテストでは５０パーセント以上がフェイルとなる。この基本的な理由は、システムレベルのテストにおいて充分な実時間でのアプリケーションの実行が欠如しているためである。今日の技術において、このシステムレベルの検証を行うための唯一の手段はＦＰＧＡあるいはＡＳＩＣを使用したシリコン試作品を用いることである。
【００１１】
そのような現在のＩＣ製品開発サイクル例を第４図に示す。設計者は、設計すべき複雑なＩＣの各種の要件を調査する（ステップ５１）。この要件に基づいて、設計者はそのＩＣの仕様を決定する（ステップ５２）。設計データの入力プロセス（ステップ５３）において、ＩＣのブロックやサブブロックが、ＶｅｒｉｌｏｇやＶＨＤＬのようなハードウェア記述言語を用いて記述される。
【００１２】
この設計データ（初期設計５４）について、当初テストベンチ５８を用いたロジック・タイミング・シミュレーション５６による設計検証５５が行われる。シミュレーションを実行することにより、そのＩＣモデルの入力・出力データファイル、すなわちＶＣＤ（バリューチェンジダンプ）ファイル５９が形成される。このＶＣＤファイル５９のデータは、入力・出力イベントが時間長（遅延時間）との対応でリストされた、イベント形式のデータになっている。
【００１３】
第４図に示すように、設計対象が非常に大きい場合には、シリコン試作品を作成してそれを最終システムに搭載して設計の検証とデバッグをするのがコシミュレーションに対応する現在において唯一の可能な方法である。そのようなシリコン試作品の製作、機能検証、およびバグ修正のプロセスが、第４図のシェードした領域６０に示されている。このプロセスにおいて、シリコン試作品が形成され（ステップ６１）、そのシリコン試作品６３について単体による検証が行われ（ステップ６２）、それにより発見されたエラーはデバッグ検証テスト６５において修正される。
【００１４】
現在の技術において、そのようなシリコン試作品６３の単体検証は、ＩＣテスタにより行われる。現在のＩＣテスタは、サイクルベースのテストシステム（ＡＴＥシステム）となっており、サイクル形式により形成されたテストパターンデータを用いてテストベクタを発生するアーキテクチャとなっている。このため、サイクルベースのテストシステムは、ＥＤＡ環境下において形成された上記の当初テストベンチ５８やＶＣＤファイル５９を直接的に使用することができない。したがって、現在のＩＣテスタによる試作品設計検証は、不完全で不正確な結果をもたらすことがある。またＥＤＡ環境で作成されたイベント形式のデータをサイクルベースのテストシステムに合致するように、サイクル形式に変換するための時間を要する。
【００１５】
シリコン試作品６３はインシステムテスト６７において、意図するシステムの１部として組み込まれて、システム内検証が実施される。例えば、設計の対象としているチップがセルラフォン（システム）用のＩＣチップである場合には、そのチップ試作品をセルラフォンのボードに搭載して、セルラフォンの意図した機能や性能が得られるかをテストする。このインシステム検証によりエラー検出やそのエラーの原因の追求がされ、設計のバグが修正される（ステップ６９）。このようなインシステムテストは、設計されたチップについてシリコン試作品を必要とし、かつその試作品を駆動するためのソフトウェア、ボードや周辺ハードウェア等が必要となるため、非常に高価であるとともに長時間を要するという問題がある。
【００１６】
第４図のシェード領域６０におけるシリコン試作品単体検証とインシステム検証の間、設計エンジニアとテストエンジニアとの間で多くの相互協力を行って、設計エラーを検出し、そのエラーの原因を究明して、設計エラーを修正する。そのようにして到達した最終設計７１について、あらたに形成した新テストベンチ７５を用いてシミュレーション７３を実行する。そしてその設計データに基づいて製造工程によりシリコン製品７９が作成され、そのシリコン製品に生産テスト７７を実施する。
【００１７】
上記のようなシリコン試作品を用いた検証プロセスにおいて、同一のシリコン試作品を最初のいくつかのバグについて用いることができるが、その後のバグについては新たなシリコン試作品を作成する必要がある。しかし、シリコン試作品を作成するには高い費用を必要とするので、どの段階でシリコン試作品を作成するかは難しい決断を要する。これについては、下記のようなファクタを考慮する。
【００１８】
（１）単体検証およびコシミュレーションにおけるバグの減少状況。基本的なバグが排除できた後は、他のバグを発見するために、広範囲のアプリケーション・ソフトウェアの実行が必要となる。コシミュレーションやエミュレーションは広範囲の時間にわたるアプリケーションの実行には不適当である。
【００１９】
（２）バグの発見の困難性。もしバグを発見することがそれを修正する時間に比べて数桁倍のオーダーの時間を要する場合には、バグの発見を迅速にできる点でシリコン試作品の使用が非常に有効である。
【００２０】
（３）バグの発見のコスト。もしコシミュレーションあるいはエミュレーションによるバグの発見のためのコストが非常に高くなる場合には、シリコン試作品による検証が必要である。
【００２１】
より小規模なＩＣの設計検証においては、ＦＰＧＡ（フィールドプログラマブル・ゲートアレイ）やＬＰＧＡ（レーザープログラマブル・ゲートアレイ）による試作品が適している。ＬＰＧＡは再プログラムが可能であり、修正したバグの再テストが可能である。ＦＰＧＡはＬＰＧＡよりも高いゲート数と高い動作スピードを得ることができる。ＦＰＧＡやＬＰＧＡの双方ともにＡＳＩＣほどのゲート数や動作スピードは得られないので、小規模なブロック等には適しているが、大規模で複雑なチップには適さない。
【００２２】
各ＦＰＧＡを大規模なチップの一部に対応して実施することにより、複数のＦＰＧＡを用いて大規模で複雑なチップの試作品を形成できる。この場合、バグの修正にともないチップの切り口の変更が必要となるときは、ＦＰＧＡ間の相互接続の変更が必要となるが、その場合の変更は複雑である。この問題の部分的な解決法として、ＦＰＧＡ間を相互接続するプログラムルーティンチップを用いることができ、相互接続の変更をソフトウェアの変更により実現できる。
【００２３】
試作品の設計フローにおいて、システムビヘイビアの検証の後で、シミュレーテドＨＤＬ（ＶｅｒｉｏｇあるいはＶＨＤＬ）あるいはＣプログラム記述を用いたコシンセシスのプロセスが実行される。コシミュレーションと同様にコシンセシスは、ハードウェアとソフトウェアの同時開発を意味する。このコシンセシスの目的は、実際のシステム構成において実行することができるＣコードとハードウェアを作成することである。一般にこのプロセスでは、プロセッサを有するハードウェア・ソフトウェア・プラットフォームとＡＳＩＣにシステムを割り当て（マッピング）て、ソフトウェアを実行する。最終的な試作品はＣ言語によるソフトウェアと論理合成を用い、ハードウェア素子間を結合して作成される。合成（シンセシス）ツールにより、ＨＤＬ記述やＨＤＬモデルをゲートレベルのネットリストに変換し、ＦＰＧＡあるいはＬＰＧＡにマッピングして試作品を形成する。
【００２４】
上述した従来技術における設計検証方法では、その費用が非常に高い（シリコン試作品を用いた方法）か非常にスピードが遅い（コシミュレーションを用いた方法）。現在の設計検証方法では、ＥＤＡ環境におけるデータとテスタ環境におけるデータとの間において、異なるフォーマットを用いているため、設計検証を高い効率と高い確度で実施することができない。さらに現在の設計検証方法では、上記のように設計対象の試作品を意図したシステムに搭載して実施するインシステムテストが必要である。インシステムテストでは、設計対象を意図したシステムのハードウェアとソフトウェアを用いる必要があり、かつ設計環境とテスト環境との間で多くの作業が必要となり、その結果ＩＣのターンアラウンドタイムが非常に長くなる。
【００２５】
【発明が解決しようとする課題】
従って、本発明の目的は、非常に効率が高く低コストであり、かつ従来のいかなるシステムによる検証方法とも基本的に異なるプロセスを用いた、ＩＣの設計検証方法を提供することにある。
【００２６】
また、本発明の他の目的は、電子設計自動化（ＥＤＡ）ツールとイベント型テストシステムとの組み合わせにより、ＩＣの設計を高速かつ正確に検証する方法を提供することにある。
【００２７】
さらに、本発明の他の目的は、設計データの入力からシミュレーション、およびテストベンチ形成の間に完全なループを形成することができ、そのループにより設計を検証するとともに設計エラーを修正できる、ＩＣの設計検証方法を提供することにある。
【００２８】
【課題を解決するための手段】
本発明の第１の態様では、複雑なＩＣの設計検証方法において、
ＥＤＡ環境下において形成されたＩＣ設計データを用いてそのＩＣのシリコン試作品を形成するステップと、そのＩＣ設計データから得られたイベント形式のテストベクタをイベント型テストシステムによりそのシリコン試作品に与え、そのシリコン試作品からの応答出力を評価するステップと、そのシリコン試作品から所定の出力が得られるようにイベント形式テストベクタをイベント型テストシステムにより変更するステップと、その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックするステップと、を備えている。
【００２９】
本発明の方法は、さらにシミュレータを含むＥＤＡツールをイベント型テストシステムにソフトウェアインタフェースを介して接続するステップと、ＩＣ設計データ中に形成されたテストベンチからイベント形式データを抽出するステップとを有している。このイベント形式データを抽出するステップは、さらにそのテストベンチをシミュレータにより実行してそのシミュレータにより形成されたバリューチェンジダンプフィアイルからイベント形式データを抽出するステップを有している。
【００３０】
本発明の方法は、その抽出したイベントデータをイベント型テストシステムに搭載しその抽出したイベントデータを用いてイベント型テストシステムによりイベント形式テストベクタを発生してそれをシリコン試作品に与えるステップと、イベント型テストシステムからの上記変更したイベント形式テストベクタに基づいて新たなテストベンチを形成するステップとをさらに有している。
【００３１】
上記のＥＤＡツールは、ＩＣ設計データ中に形成されたテストベンチから得られた波形を観察し編集する手段を有している。上記のイベント型テストシステムは、ＩＣ設計データ中に形成されたテストベンチから抽出したイベント形式テストベクタの波形を観察し編集する手段と、上記シリコン試作品に与えるクロックレートやテストベクタのイベントタイミングデータを変更する手段とを有している。
【００３２】
本発明の第２の態様においては、シリコン試作品ではなく、デバイスモデルを用いる。本発明による複雑なＩＣの設計検証方法において、
【００３３】
ＥＤＡ環境下において形成されたＩＣ設計データを用いてその設計対象であるＩＣのデバイスモデルを用意するステップと、そのＩＣ設計データから得られたイベント形式のテストベクタをイベント型テストシステムによりそのデバイスモデルに与え、そのデバイスモデルからの応答出力を評価するステップと、そのデバイスモデルから所定の出力が得られるようにイベント形式テストベクタをイベント型テストシステムにより変更するステップと、その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックするステップと、を備えている。
【００３４】
本発明の第３の態様では、複雑なＩＣの設計検証方法において、
ＥＤＡ環境下において形成されたＩＣ設計データを用いてその物理シリコンを形成するステップと、ＥＤＡ環境下において形成されたＩＣ設計データを用いてその設計対象であるＩＣのデバイスモデルを用意するステップと、そのＩＣ設計データから得られたイベント形式のテストベクタをイベント型テストシステムによりその物理シリコン又はデバイスモデルに与え、その物理シリコン又はデバイスモデルからの応答出力を評価するステップと、その物理シリコン又はデバイスモデルから所定の出力が得られるように、イベント形式テストベクタをイベント型テストシステムにより変更するステップと、その変更したイベント形式テストベクタをＥＤＡ環境にフィードバックするステップと、を備えている。
また、上記物理シリコンは、ＩＣのシリコン試作品であってもよい。
【００３５】
本発明による設計検証では、ＩＣシミュレーションモデルと当初シミュレーションテストベンチおよび電子設計自動化（ＥＤＡ）環境での各種ツールをイベント型テストシステムと共に用いて設計検証を行う方法となっている。この実現のために、ＥＤＡツールとデバイスシミュレータをイベント型テストシステムにリンクし、当初の設計シミュレーションベクタとテストベンチを実行し、テストベンチとテストベクタを所定の結果が得られるように、イベント型テストシステムにより変更する。ＥＤＡツールがイベント型テストシステムにリンクしているため、この変更した内容により最終的なテストベンチを形成することができる。したがって、複雑なＩＣの設計検証を、シリコン試作品を用いたインシステムを行うことなく実施することができる。このため、本発明の設計検証は、大きなコスト削減とターンアラウンドタイムの短縮が実現できる。
【００３６】
【発明の実施の形態】
本発明の実施の形態は、下記の実施例において説明する。
【００３７】
【実施例】
本発明の出願人は、その所有する米国特許出願番号０９／４０６３００および０９／３４０３７１「イベント型テストシステム」において、イベント型テストシステムについて開示しており、また米国特許出願番号０９／４２８７４６「ＳｏＣ設計検証の方法と装置」において、イベント型設計検証ステーションについて開示している。さらに本発明の出願人は、米国特許出願番号０９／２８６２２６「イベント型テストシステムのスケーリングロジック」において、時間スケーリング技術について開示している。
【００３８】
本件出願において、発明者はイベント型テストシステムを用いたＩＣ設計検証方法についてのコンセプトを提供する。より具体的には、第１の実施例において、シリコン試作品を用いた設計検証方法を開示しており、第２の実施例においてシリコン試作品を用いない設計検証方法を開示している。本発明の第１および第２実施例の検証方法は、現在のどの検証方法よりも高速でかつ安価に実現できる。
【００３９】
本発明による設計検証では、ＩＣシミュレーションモデルと当初シミュレーションテストベンチおよび電子設計自動化（ＥＤＡ）環境での各種ツールをイベント型テストシステム（設計検証ステーションＤＴＳ）と共に用いて設計検証を行う方法となっている。この実現のために、ＥＤＡツールとデバイスシミュレータをイベント型テストシステムにリンクし、当初の設計シミュレーションベクタとテストベンチを実行し、テストベンチとテストベクタを所定の結果が得られるように、イベント型テストシステムにより変更する。ＥＤＡツールがイベント型テストシステムにリンクしているため、この変更した内容により最終的なテストベンチを形成することができる。したがって、複雑なＩＣの設計検証を、第４図に示すような、シリコン試作品を用いたインシステムを行うことなく実施することができる。
【００４０】
本発明の第１の実施例における設計検証プロセスの全体構成を第５図に示す。ＩＣの機能設計を充分に検証するためには、設計シミュレーション（当初テストベンチ５８）により形成された機能テストベクタをイベント型テストシステム８２において実行する。これらのベクタはイベント形式になっている。多くの場合、これらのイベント形式テストベクタは、ＩＣ（設計対象）のビヘイビオラルモデルまたはＶｅｒｉｌｏｇ／ＶＨＤＬモデルにソフトウェアアプリケーションを実行して発生される。これらのベクタはＩＣの異なる部分について同時に実施されまたは異なる時間において実施されるが、全体としてのＩＣの動作（ビヘイビア）は、これらの部分を統合した応答内容により決定される。
【００４１】
一般に、第４図および第５図に示すように、このステップの後に、シリコンチップ（シリコン試作品６３）が形成される。本発明においては、このチップが利用可能になると、この試作品チップをイベント型テストシステムに接続して当初テストベンチによる設計シミュレーションベクタを実行して、そのチップの動作を検証する。この結果をイベント型テストシステムにおいて検討し、そのイベント型テストシステムにおいて、ＩＣ（意図した設計）の間違った動作が修正されるように、イベントを変更編集する。変更したイベントは、ＥＤＡ環境にフィードバックされて、新たなテストベンチとテストベクタを形成する。これらのプロセスを経て、最終デバイスを生産するための最終シリコンプロセスが行われる。
【００４２】
より具体的には、第５図の例において、設計検証ステーション（ＤＴＳ）８２はイベント型テストシステムであり、シリコン試作品６３の機能を、ＶＣＤ（バリューチェンジダンプ）ファイル５９から生成したイベントデータを基にして形成したテストベクタを用いてテストする。ＶＣＤファイル５９は、当初テストベンチ５８を用いて、当初設計５４について、設計検証５５およびシミュレーション５６を実行することにより作成される。当初テストベンチ５８はイベント形式で作成されているので、その結果得られるＶＣＤファイル５９もイベント形式になっている。このためＶＣＤファイル５９のデータをイベント型テストシステムにおいて直接的に用いることができる。
【００４３】
第５図において、ＥＤＡツール、例えばシミュレーション・アナリシス・デバッグ８５および波形エディタ・ビューア８６が、ＡＰＩインタフェース９７を通して、設計検証ステーション（ＤＴＳ）８２に接続されている。シミュレーション・アナリシス・デバッグの具体例としては、シノプシス社のＶＣＳやメンターグラフックス社のＭｏｄｅｌＳｉｍがある。また波形エディタ・ビューアの具体例としは、ケイデンス社のＳＩＧＮＡＬＳＣＡＮやシノプシス社のＶｉｒＳｉｍがある。さらにインタフェース９７の具体例としてはＡＰＩ（プログラムドアプリケーション・インタフェース）がある。
【００４４】
イベント型テストシステム８２は、波形を観測し編集するソフトウェアツール、例えばＶＣＤ波形エディタ・ビューア８７、イベント波形エディタ・ビューア８８、およびＤＵＴ（被試験デバイス）エディタ・ビューア８９、を有している。この例では、エディタ・ビューア８７および８８は、上記ＥＤＡツール８５および８６とＡＰＩインタフェース９７を介してリンクし、相互間において通信しかつデータベースをアクセス可能になっている。イベント型テストシステムにおいて、例えばイベント波形エディタ・ビューア８８を用いて、特定のタイミングでイベントを挿入したり、イベントのエッジタイミングを変更したり等の変更編集ができる。
【００４５】
テストベクタを実行することにより、イベント型テストシステム８２は、テスト結果ファイル８３を形成し、この結果データをテストベンチフィードバック９９を介して、ＥＤＡ環境およびＥＤＡツールにフィードバックする。シミュレーションスピード（１０ＫＨｚオーダー）はイベント型テストシステムのスピード（１００ＭＨｚオーダー）と比較して遥かに遅いので、当初テストベンチやテストベクタのタイミングをスケーリング（任意倍率で変更）する。イベント型テストシステムは、このようなイベントの変更やタイミングのスケーリングが可能なように構成されており、その方法と構成は上記の出願に開示されている。
【００４６】
テストベクタを実行した結果をイベント型テストシステムにおいて検討し、ＩＣ（意図した設計）の間違った動作が修正されるように、イベント型テストシステムにおいて（エディタ・ビューア８７、８８、８９）イベントを変更編集する。変更したイベントにより新テストベンチ８１を形成する。上記のように、このような新たなテストベンチを得るために、テストベンチ発生ツール９５、シミュレーションアナリシスツール８５、波形ビューア８６等のＥＤＡツールが、イベント型テストシステムにリンクしている。従って、本発明の検証方法では、テストベンチ発生ツール９５を介して、全てのイベントを新たなテストベンチの作成に用いることができる。
【００４７】
上記の本発明の実施例では、当初テストベンチ５８から得られたイベント形式のテストベクタを、シミュレータのスピードよりも例えば１００００倍高いスピードで、イベント型テストシステムにより発生する。これはイベント型テストシステムのスケーリング機能を用いて、イベントクロックやタイミングデータを所定の係数で増大することにより行う。したがって、シリコン試作品をイベント型テストシステムに接続して、非常に高いスピードでテストすることができる。この構成において、シリコン試作品のデータは、イベント型テストシステムにコピーされるので、テストベクタやその応答結果の変更、設計データの変更をイベント型テストシステム内部で高速に実行できる。これらのテスト結果や変更内容は、ＥＤＡツール８５、８６や新テストベンチ８１にフィードバックされる。
【００４８】
これらのプロセスを終了すると、最終シリコン作成工程９１により最終的なＩＣデバイス９２を作成し、そのデバイスを生産テスト９３においてテストする。新たなテストベクタやテストベンチは、この生産テストにおいて、生産上での欠陥等をテストするために用いられる。本発明の設計検証方法は、設計データ入力からシミュレーションおよびテストベンチ形成における完全なループを実現しており、設計の検証と設計エラーの修正がそのループ内で実施できる。
【００４９】
本発明の第１実施例を第５図を参照して説明した。この第１実施例では、その設計検証プロセスにおいて、対象デバイスの正しい動作に対応したテストベンチが形成される。この第１実施例では、イベント型テストシステムに搭載して検証するための物理的なシリコン（シリコン試作品６３）を必要とすることが難点である。このシリコン試作品を必要とすることにより、第１実施例の設計検証プロセスは、全体としてまだ高価である。
【００５０】
したがって、本発明の第２の実施例では、第１実施例における基本コンセプトを発展し、物理シリコンを不要としている。この第２実施例のプロセスでは、当初設計データ記述とそのシミュレーションテストベンチを用いて、バグのない新たなテストベンチとデバイスモデルを形成する。このデバイスモデルは、対象デバイスの動作についての修正を全て含んでいるので、そのデバイスの本格生産にも用いることができる。この第２実施例の全体プロセスを第６図に示す。
【００５１】
第５図の実施例と第６図の実施例との基本的な相違点は、第５図において、シリコン試作品を当初テストベンチとともにイベント型テストシステムに搭載している。第６図では、デバイスモデル（仮想ＤＵＴ）１８９が、当初デザインシミュレーション５６と当初テストベンチ５８に基づいて形成される。物理的シリコンではなく、このデバイスモデル１８９をイベント型テストシステムに搭載する。この発明において、デバイスモデル１８９はどの特定のシミュレータからも独立していてもよく、あるいは特定のシミュレータに固有のもの（シミュレーションモデル１９１）であってもよい。
【００５２】
第６図のインタフェース、例えばプログラムドアプリケーション・インタフェース（ＡＰＩ）を用いて、イベント型テストシステムは、当初の設計段階で使用したシミュレーションエンジン（シミュレータ）１９０とリンクしている。このインタフェース１８７は好ましくはスケーリング機能を有し、シミュレーションエンジン１９０から得られたテストベクタのクロックレートやタイミングデータを所定の倍率で増大する。これにより、イベント型テストシステムにおいて、テストベクタを、例えば１００ＭＨｚのような高速な繰り返しレートで実行することができる。
【００５３】
この構成により、イベント型テストシステムは、ＶｅｒｉｌｏｇあるいはＶＨＤＬで記述した設計データやその全てのロジックモデル、ビヘイビオラル、ＢＦＭ（バスファンクションモデル）、ＩＳＡ（インストラクションセットアーキテクチャ）およびアプリケーションの各テストベンチを有することができる。ここで注意すべきは、このイベントテストシステムで実行するためのこれらのテストベンチはＶｅｒｉｌｏｇやＶＨＤＬに限る必要はなく、Ｃ言語やＣ＋＋言語でもよいことである。第６図で特に示していないが、第５図と同様に各種のＥＤＡツールとイベント型テストシステムの各種ソフトウェアツールが相互にリンクしている。
【００５４】
デバイスモデル（当初デザイン）１８９とそのテストベンチを用いて、その設計結果をイベント型テストシステム（設計検証ステーションＤＴＳ）８２により検証する。この検証システム全体の環境および検証結果がイベント形式になっているので、デバイスのどのような動作上の間違いもただちに検出できる。上記のようにこのイベント型テストシステムは、イベントを変更編集し時間スケールの変更ができるので、このような動作間違いを修正するようにイベントを変更修正することができる。
【００５５】
全ての動作間違いが修正されると、修正したデバイスモデルを保存し、新テストベンチ１８１とテストベクタを形成する。このテストベンチとテストベクタの形成プロセスは第５図と第６図の各実施例で同じであるが、第６図は図の混雑を避けるために単純化している。したがって、第６図において、ソフトウェアインタフェース１８８は第５図のインタフェースと同様であり、第５図のＥＤＡツール８５、８６およびテストシステムのツール８７、８８、８９は同様にインタフェース１８８を介して相互に結合している。
【００５６】
この保存したデバイスモデルは、シリコン製造工程において使用される。イベント型テストシステムにより、そのデバイスモデルの正当性が既に確認されているので、さらに検証を行う必要はない。検証済みのテストベクタがあるので（修正したテストベンチやテストベクタの形成プロセスにより）、製造工程での不良を検出するためには、イベント型テストシステムにより通常の生産テストをすればよい。
【００５７】
第６図における検証プロセスは、設計検証のためにハードウェア試作品やエミュレータを必要としない。当初設計データとシミュレーションをイベント型テストシステムに用いて、その当初設計におけるデバイス動作を修正した新たなテストベンチを作成する。この検証プロセスにより生産テストに必要なテストベンチやテストベクタも作成される。本発明の検証プロセスは、物理的シリコンなしで、設計データ入力、シミュレーションから設計検証の間に完全なループを実現でき、したがって、現存するどの検証方法や第１実施例の方法よりもはるかにコスト効率がよい。
【００５８】
第７図はＥＤＡシミュレーションエンジンとイベント型テストシステムとの関係例を示している。この例では、シミュレーションエンジン（シミュレータ）１９０は、波形トランスレータ２１０とＡＰＩインタフェース２１２を有している。波形トランスレータ２１０は、シミュレータによる波形表示を可能にする。ＡＰＩインタフェース２１２は、異なるフォーマット間のインタフェースを行う。
【００５９】
イベント型テストシステム（設計検証ステーションＤＴＳ）８２は、ＶＣＤコンパイラ２１８とイベントビューア２２２とＶＣＤライター２２０を有している。ＶＣＤコンパイラ２１８は、ＶＣＤデータをイベント型テストシステムで用いるためのイベントデータに変換する。イベントビューア２２２とＶＣＤライター２２０は、第５図のＶＣＤ波形ビューア・エディタ８７とイベント波形エディタ・ビューア８８に対応するものであり、イベント形式テストベクタの波形観察と変更編集を行う。スケジューラ２１６は、イベント型テストシステム８２とシミュレータ１９０間のタスクおよび通信の管理を行うために設けられている。
【００６０】
ＡＰＩインタフェース２１２により、シミュレータエンジン１９０とイベント型テストシステム８２における各種の異なるフォーマットのソフトウェアがリンクされている。イベント型テストシステム８２におけるイベント波形をイベントビューア８２により観測し変更修正する。変更したイベント波形はＶＣＤライター２２０によりＶＣＤに変換される。波形トランスレータ２１０は、ＶＣＤ波形をシミュレーションエンジン１９０の波形に変換する。
【００６１】
好ましい実施例しか明記していないが、上述した開示に基づき、添付した請求の範囲で、本発明の精神と範囲を離れることなく、本発明の様々な形態や変形が可能である。
【００６２】
【発明の効果】
以上のように、本発明による設計検証では、ＩＣシミュレーションモデルと当初シミュレーションテストベンチおよび電子設計自動化（ＥＤＡ）環境での各種ツールをイベント型テストシステムと共に用いて設計検証を行う方法となっている。この実現のために、ＥＤＡツールとデバイスシミュレータをイベント型テストシステムにリンクし、当初の設計シミュレーションベクタとテストベンチを実行し、テストベンチとテストベクタを所定の結果が得られるように、イベント型テストシステムにより変更する。ＥＤＡツールがイベント型テストシステムにリンクしているため、この変更した内容により最終的なテストベンチを形成することができる。したがって、複雑なＩＣの設計検証を、シリコン試作品を用いたインシステムを行うことなく実施することができる。このため、本発明の設計検証は、大きなはコスト削減とターンアラウンドタイムの短縮ができる。
【図面の簡単な説明】
【図１】設計検証の対象とするシステムオンチップのような複雑なＩＣの構成例を示す概略図である。
【図２】ＥＤＡ環境下での設計手順における設計階層に対応する設計検証の階層の例を示す概略図である。
【図３】複雑なＩＣの開発における各種の抽象レベルとそのシミュレーション速度との関係を示す図である。
【図４】設計検証プロセスも含む、従来技術による複雑なＩＣの製品開発プロセスを示すフロー図である。
【図５】本発明の第１の実施例における複雑なＩＣの設計検証方法を示す概略図である。
【図６】本発明の第２の実施例における複雑なＩＣの設計検証方法を示す概略図である。
【図７】第５図および第６図の実施例において、ＥＤＡツールとイベント型テストシステムとの間の接続例を示す概略図である。
【符号の説明】
５１  要件調査
５２  仕様決定
５３  設計データの入力
５４  当初設計
５５  設計検証
５６  シミュレーション
５８  当初テストベンチ
５９  ＶＣＤ（バリューチェンジダンプ）ファイル
６０  シェード領域
６１  シリコン試作品の形成
６２  単体による検証
６３  シリコン試作品
６５  デバッグ検証テスト
８１  新テストベンチ
８２  イベント型テストシステム
８３  テスト結果ファイル
８５  シミュレーション・アナリシス・デバッグ
８６  波形エディタ・ビューア
８７  ＶＣＤ波形エディタ・ビューア
８８  イベント波形エディタ・ビューア
８９  ＤＵＴ（被試験デバイス）エディタ・ビューア
９１  最終シリコン作成工程
９２  ＩＣデバイス
９３  生産テスト
９５  テストベンチ発生ツール
９７  ＡＰＩインタフェース
９９  テストベンチフィードバック
【図１】
0004058252.tif 000002
【図２】
0004058252.tif 000003
【図３】
0004058252.tif 000004
【図４】
0004058252.tif 000005
【図５】
0004058252.tif 000006
【図６】
0004058252.tif 000007
【図７】
0004058252.tif 000008