JP2007528553A - 検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論 - Google Patents

検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論 Download PDF

Info

Publication number
JP2007528553A
JP2007528553A JP2007502715A JP2007502715A JP2007528553A JP 2007528553 A JP2007528553 A JP 2007528553A JP 2007502715 A JP2007502715 A JP 2007502715A JP 2007502715 A JP2007502715 A JP 2007502715A JP 2007528553 A JP2007528553 A JP 2007528553A
Authority
JP
Japan
Prior art keywords
simulation
verification
design
execution
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007502715A
Other languages
English (en)
Other versions
JP2007528553A5 (ja
Inventor
セヤン ヤン
Original Assignee
セヤン ヤン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020040017476A external-priority patent/KR20040063845A/ko
Priority claimed from KR1020040093309A external-priority patent/KR20050090053A/ko
Priority claimed from KR1020050007330A external-priority patent/KR20050118107A/ko
Application filed by セヤン ヤン filed Critical セヤン ヤン
Publication of JP2007528553A publication Critical patent/JP2007528553A/ja
Publication of JP2007528553A5 publication Critical patent/JP2007528553A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本発明は百万ゲート以上のデジタルシステムに対する検証するためのシミュレーションの性能及び效率性を大きく向上させるシミュレーション基盤の検証装置及びこれを用いた設計検証方法に関する。また、百万ゲート以上のデジタルシステムに対し、正式検証、シミュレーション加速、ハードウェアエミュレーション、プロトタイピングをも用いて検証の性能と效率性を増加させるシミュレーション基盤の検証装置及びこれを用いた検証方法に関する。
【選択図】図1

Description

発明の詳細な説明
(技術分野)
本発明は、デジタル回路やシステムを検証する装置と方法に関し、具体的に、本発明はシステム半導体設計検証装置を用いた設計検証を效果的に行うための検証装置及び検証方法に関する。さらに具体的には、本発明は設計検証の遂行時の検証性能向上と検証時間短縮を可能とする検証装置及び検証方法に関する。
(関連技術の説明)
本発明は、数百万ゲート級以上のデジタルシステムの設計を検証する技術に関し、数百万ゲート級以上のデジタルシステムをシミュレーションを通じて検証しようとする場合に、シミュレーションを用いた検証の性能と效率性を増加させる検証装置及びこれを用いた検証方法に関する。
最近、集積回路の設計及び半導体工程技術が急激に発達するにつれて、デジタル回路設計の規模が、最小数百万ゲート級から数千万ゲート級まで大きくなるのはもちろん、その構成が極めて複雑化している傾向である。近来では1億ゲート級以上の設計も予想されている。しかし、市場での競争はより一層激しくなるため、短時間で優秀な製品を開発しなければならないが、最近のチップ設計における設計検証は、全設計時間の中で最大70%までの時間を占めるようになる。従って、設計された回路を短時間で自動化された方法により效率的に設計検証するための效果的な方法の必要性が益々大きくなっている。デジタルシステムをチップに設計する場合は、設計する対象が2つある。その1つはDUV(Design Under Verification)であり、もう1つはテストベンチ(testbench、以下、TBと称する)である。DUVは窮極的に半導体製造工程を経てチップに作られる設計対象であり、TBは具現された該当チップが取り付けられて動作する周辺状況をモデリングしたものである。TBはDUVのシミュレーションに用いられる。DUVをシミュレーションを通じて検証しようとする場合、テストベンチがDUVに入力を印加し、印加された入力から出力を受け入れるのが一般的である。
現在までは、設計されたデジタル回路を設計検証するために、ハードウェア技術言語(Hardware Description Language、以下HDLと称する)やシステム技術言語(System Description Language、以下SDLと称する)やハードウェア検証言語(Hardware Verification Language、以下HVLと称する)を用いた。設計初期には、HDLシミュレータ(例えば、Verilogシミュレータ、VHDLシミュレータ、SystemVerilogシミュレータ等)やSDLシミュレータ(例えば、SystemCシミュレータ、HW/SW co−simulator等)が主に用いられているが、場合によっては、これらと共にHVLシミュレータ(例えば、Veraシミュレータ、eシミュレータ等)も用いられている。これらのすべてはソフトウェア基盤の接近法であり、このようなシミュレータは、設計検証の対象回路とテストベンチをソフトウェア的にモデリングした順次的なインストラクションシーケンスで構成されたソフトウェアコードをコンピュータ上で順次に行われなければならないため、上記数百万ゲート級以上の設計に対しては、シミュレーション性能の低下が設計対象の大きさに比例して発生する。例えば、1000万ゲート級以上の設計をHDLシミュレータやSDLシミュレータでシミュレーションする場合、最も速いプロセッサを取り付けたコンピュータにおいて該当HDLシミュレータで設計をシミュレーションする場合、シミュレーション速度はレジスタ転送水準(Register Transfer Level、以下RTLと称する)にする場合、10−100cycles/secを超え難く、ゲート水準でシミュレーションを進行すると、1−10cycles/secを超え難いのが非常に一般的である。しかし、該当設計を検証するために必要なシミュレーションサイクルは、最小数百万サイクルから最大数十億サイクルが必要となるので、全体シミュレーション時間は想像を超える長時間がかかってしまう。
このような長時間の検証時間を短縮するために、現在用いられている技術は次のようなものがある。第一、ハードウェア基盤の検証システム(例えば、シミュレーションアクセル、ハードウェアエミュレータ、FPGAプロトタイピングシステム等)を用い、第二、1以上のコンピュータ(例えば、100台のワークステーション)のそれぞれにHDLシミュレータをインストールし、これを高速のネットワークを通じて連結したシミュレーションファーム(simulation farm)を用いることである。しかし、ハードウェア基盤の検証システムを用いることは、設計初期には適用が不可能であり、合成(synthesis)やコンパイル過程がHDLシミュレータを用いるよりずっと長いため、その使用がHDLシミュレータに比べて極めて困難であり、システムの購入費用とメンテナンス費用が非常に大きいだけでなく、なによりも設計者や検証エンジニアのHDLシミュレータに対する選好度が、これらのハードウェア基盤の検証システムに比べて非常に高い。また、HDLシミュレータでは何ら問題なしに行われていた設計コードが、ハードウェア基盤の検証システムでは行われない場合が多いため、これらのハードウェア基盤の検証システムは、制限的な状況及び制限的なユーザにおいてのみ用いられている問題点がある。さらに、シミュレーションファームを用いてシミュレーションの性能を向上させることは、シミュレーションのための設計コードやテストベンチが2以上の場合にのみ可能である。また、テストベンチが複数である場合も、これらの中で遂行時間を最も多く要するテストベンチによって全体シミュレーション時間が決定される問題点(例えば、特定のテストベンチによるシミュレーション時間が一週間を要する場合は、シミュレーションファーム(simulation farm)を用いても一週間のシミュレーション時間をさらに短縮することはできない)がある。このような状況は、SDLシミュレータを用いる場合も同様であり、HVLシミュレータを用いる場合も同様である。特に、最近では、テストベンチの複雑度が非常に増加しており、テストベンチ内に多様なコンポーネント(例えば、ランダム入力スティミュラス発生器、モニタ、検査器、カバリッジ分析器、応答検査器等)が存在することで、上位水準で抽象化されて記述(describe)されたテストベンチのオーバーヘッドが極めて大きくなるので、これもまたシミュレーションの遂行速度を低減する主な原因の1つとして作用している。
このような多様なテストベンチ、あるいは場合によってはDUV内のコンポーネントは、検証の定量化と自動化のために用いられるテストベンチ自動化(testbench automation)、カバリッジ指向検証(coverage−driven verification)、主張基盤検証(assertion−based verification)等の最近の発展された検証で必ず必要なものであるが、前記で指摘したとおりこれらの使用はシミュレーションの速度をさらに低減する結果を招いてしまう。さらに、このような発展した検証技法を通じては、バグの存在有無のみがわかり、または、バグが存在する大枠の位置のみの予測しかできず、バグが正確にどこに存在しているかを見出すことは極めて困難である。バグが正確にどこに存在するかを見出してこれを除去することは、知能を所有した設計者の役割である。そのためには、シミュレーションの過程において、DUVに、場合によっては、TBに存在するシグナルや変数の値を探針(probing)して保存し、これを設計者が確認する過程が必ず必要となる。しかし、このような2つの状況が相まって、シミュレーションの速度低下はさらに大きく現われるようになる。
さらに、HVLを用いてテストベンチを述べると、一般的にHDLシミュレータのAPI(Application Program Interface)であるVPI/PLI/FLI等を必ず用いなければならないが、これの使用もシミュレーションの遂行速度を低減する主な要素のもう1つとして作用している。それだけでなく、設計の殆どはレジスタ転送水準(Register Transfer Level、以下RTLと称する)から始まり、合成技術を用いてネットリストで合成される。一方では、設計複雑度の増加を解決しようと、RTL水準よりも高い段階である行為水準(behavioral level)またはシステムレベル水準でDUVとTBを共に記述してRTL構造を自動生成し、最終的にネットリストも自動生成しようとする試みがある。しかし、このような新しい方法が普遍化できるかどうかは極めて不透明な状況であるが、その理由は、ほとんどのハードウェア設計者はRTL水準における設計に慣れているからであり、RTL水準よりも上位水準で記述された設計の合成結果が、一般的にRTLにおいて記述されて合成された結果に比べて、動作速度/面積等において遅れているからである。最近の数千万ゲート級の設計は、ほとんど内部に1個以上のプロセッサを内蔵しているSOC(System On a Chip)設計である。このようなSOCは、内蔵されたプロセッサを駆動する大容量のソフトウェアを内蔵している。SOC設計ではこのような内臓ソフトウェアの開発がハードウェアの開発と同時的に進行することができるハードウェア/ソフトウェア同時設計(co−design)及び同時検証(co−verification)が必須である。しかし、RTL水準で記術されたDUVの遂行速度は、内臓ソフトウェアを開発するためのプラットフォームとして用いられるには非常に遅いが、ソフトウェア開発者は、開発しようとするソフトウェアを速やかに行えるプラットフォームを、ハードウェアの設計が進行されている時点で既に必要とする。
現在最も多く用いられているシミュレーションは、イベント−駆動(event−driven)シミュレーションである。シミュレーションは、他にサイクル−基盤(cycle−based)シミュレーション、トランスアクション−基盤(transaction−based)シミュレーション等がある。抽象化(abstraction)された基準からみれば、イベント−駆動がサイクル−基盤よりは抽象化されていないものであり、サイクル−基盤がトランスアクション−基盤よりは抽象化されていないものである。サイクル−基盤シミュレーションは、イベント−駆動シミュレーションよりも略10−100倍速いが、イベント−駆動シミュレーションに比べて制約性が多い。従って、ハードウェア設計者からサイクル−基盤シミュレーションは徹底的に排除され、ほとんどのハードウェア設計者はイベント−駆動シミュレーションを絶対的に好んでいる実情である。また、現在イベント−駆動シミュレーション、サイクル−基盤シミュレーション、トランスアクション−基盤シミュレーション等は、それぞれ独立的にのみ用いられている状況である。結果として、このような状況は全体検証の效率性と性能を制約する要素になっている。
(発明の要旨)
本発明の目的は、超大規模級デジタルシステム設計に対する検証のためのシミュレーションの性能及び效率性を大きく向上させるシミュレーション基盤の設計検証装置及びこれを用いた設計検証方法を提供することにある。具体的には、本発明で言及される技術は、設計された数百万ゲート級以上のデジタルシステムを、シミュレーションと、必要によってはこれと共に、正式検証、シミュレーション加速、ハードウェアエミュレーション、プロトタイピング(これらを検証プラットフォームと総称する)をも用いて検証しようとする場合にも検証の性能と效率性を増加させる検証装置及びこれを用いた検証方法に関する。
シミュレーションを行った後、設計誤謬に対するデバッグを行うために、設計コードに存在するシグナルや変数に対する可視度(visibility)が要求される。しかし、問題は設計誤謬の正確な位置を見出すために、検証遂行前に具体的にどの特定のシグナルや変数に対する可視性がどの検証区間で必要であるかを予測することが困難であることである。従って、シミュレーションを行う時に、最初から設計コードに存在するすべてのシグナルと変数に対して探針可能であるように、これらのすべてをダンプ(dump)対象として選定した後シミュレーションを行うことが一般的である。しかし、設計コードに存在するすべてのシグナルと変数をダンプしながらシミュレーションを行う場合には、全くダンプしないでシミュレーションを行うことと比べてシミュレーションの遂行時間が略2倍から10倍以上も長くなる。
本発明では、設計コードにおいてバグの位置を正確に把握するために、設計コードに存在するすべてのシグナルと変数に対してシミュレーションの始めからダンプを行う既存の方法とは違って、シミュレーションの遂行時間を大きく増やさずに、または既存の方法と比べてシミュレーションの遂行時間を大きく短縮しながらも設計コードにおいてバグの位置を見出せるようにする自動化された方法と、そのための検証装置を提供することを目的とする。
本発明の他の目的としては、発展した検証技法で用いられるテストベンチ自動化、カバリッジ指向検証、主張基盤検証等を用いながらも、同時にDUVに対する高い可視度を速やかに確保する自動化された方法と、そのための検証装置を提供することである。本発明のまた他の目的は、下向式に進行される設計過程において、抽象化ステップの上位水準で行われたシミュレーションの結果を抽象化ステップの下位水準で行われるシミュレーションに用いることにより、DUVに対する高い可視度を速やかに確保すると同時に、全体シミュレーション時間を大きく短縮できるようにする自動化された方法と、そのための検証装置を提供することである。これは、ハードウェア検証或いはソフトウェア検証或いはハードウェア/ソフトウェア同時検証を效果的に可能とすることである。
本発明のまた他の目的としては、自動化された方式を通じ、上位ステップの設計抽象化の検証結果を下位ステップの設計抽象化での検証に用いて複数の抽象化ステップにわたって、存在する全体的な検証性能及び効率を増加させることであり、それにより下位ステップの設計抽象化の検証を加速化し、必要な場合には上位ステップの抽象化の検証結果をレファレンスで用いて下位ステップの設計抽象化での検証効率を増加させることである。
本発明のまた他の目的としては、自動化された方式を通じ、上位ステップの設計抽象化の検証結果を下位ステップの設計抽象化での検証に用いて複数の抽象化ステップにわたって存在する全体的な検証性能及び効率を増加させることであり、それにより下位ステップの設計抽象化の検証を加速化し、必要な場合には下位ステップの抽象化の検証結果をレファレンスで用いて上位ステップの設計抽象化での検証効率を増加させることである。
本発明のまた他の目的としては、上位ステップから下位ステップに進行される設計過程に従って、検証も上位ステップから下位ステップに進行される過程で、各ステップに最も好適な方式のシミュレーションをトランスアクション−基盤シミュレーション、サイクル−基盤シミュレーション、イベント−駆動シミュレーションの中で最適であるように選定して用い、特定の抽象化ステップの検証結果を他の抽象化ステップの検証結果に自動化された方式で用いて、上記他の抽象化ステップでの検証が速やかに行えるようにし、全体的な検証の速度向上と效率性向上を可能とすることである。
本発明のまた他の目的は、シミュレーションと共に、正式検証、シミュレーション加速、ハードウェアエミュレーション、プロトタイピングの1以上を用いて設計検証を行うことにより、全体検証の性能と效率性を増加させることを可能とすることである。
(好ましい実施形態の詳細な説明)
上記の目的を達成するために、本発明による設計検証装置は、検証ソフトウェアと1以上の検証プラットフォーム(例えば、シミュレータ)がインストールされた1以上のコンピュータで構成される。検証ソフトウェアはコンピュータで実行され、若し上記設計検証装置に2以上のコンピュータがある場合には、これらの2以上のコンピュータはネットワークで連結されて、コンピュータ間のファイル移動がネットワークを通じて可能とする。上記1以上の検証プラットフォームは、シミュレータ、またはシミュレーションアクセル、またはモデル検査器や特性検査器のような正式検証器、またはハードウェアエミュレータ、またはプロトタイピングシステムであってもよいが、先ずは特に言及がない限り、検証プラットフォームをシミュレータに限定して説明することとする。
上記1以上の検証プラットフォームがシミュレータである場合には、これらのシミュレータはイベント−駆動シミュレータのみで構成されてもよく、イベント−駆動シミュレータとサイクル−基盤シミュレータで構成されてもよく、サイクル−基盤シミュレータのみで構成されてもよく、サイクル−基盤シミュレータとトランスアクション−基盤シミュレータで構成されてもよく、イベント−駆動シミュレータとサイクル−基盤シミュレータとトランスアクション−基盤シミュレータで構成されてもよい。
本発明で提案される検証装置と検証方法は、検証プラットフォームがシミュレータである場合には、ハードウェア設計コード自体を検証する関数的検証(functional verification)に用いることができるだけでなく、設計コードを合成したゲート水準のネットリストを用いたゲート水準の検証でも用いることができ、または、配置(placement)及び配線(routing)となり、抽出されたタイミング情報をゲート水準のネットリストに添付して(back−annotated)行うタイミング検証においても用いることができる。しかし、ゲート水準検証やタイミング検証に対しても同様の方法を適用することができるので、詳細な説明は関数的検証に重点を置く。それだけでなく、関数的検証においても、レジスタ転送水準(Register Transfer Level、RTL)だけでなく、これよりも上位水準である行為水準(behavioral level)やトランスアクションスズン(transaction level)においても適用することができる。しかし、詳細な説明は主にRTLにおける関数的検証について説明する。それだけでなく、これらの様々な水準における検証を統合化して進行される混用水準における検証においても適用することができる。
上記検証ソフトウェアは、設計コードを読み込んだ後、これに追加して付加コードや付加回路を自動化された方式で付加する。付加コードや付加回路は、基本的に追加されるHDLコード、あるいはSDLコード、あるいはHVLコード、あるいはC/C++コード、あるいはシミュレーション命令語、あるいはこれらの組合せである。シミュレーションを行う過程におけるシミュレーション時間で一定の間隔あるいは1以上の特定のシミュレーション時点において、シミュレーションの状態や、可視度が必要なDUVにおける1以上の設計客体(以下で説明する)の状態と場合によっては、TBの状態までを保存する役割を果たし、また後でユーザの要求に応じて保存されたシミュレーションの状態や、保存された上記可視度が必要なDUVにおける1以上の設計客体の状態から、あるいは保存された上記可視度が必要なDUVにおける1以上の設計客体の状態と、TBの状態からシミュレーションを再開する。可視度が必要なDUVにおける1以上の設計客体の状態は保存されるが、TBの状態は保存されない場合には、TBの代わりにシミュレーションの全区間にわたってすべての入力値と入力モード時のすべての入出力値が保存される。この保存は、イベントの発生時毎に、またはサイクル毎に、またはトランスアクション毎に保存されることができる。
シミュレーションの状態とは、シミュレータというソフトウェアプログラムが行われる過程における特定のシミュレーション時点にいて、シミュレータのすべての静的情報と動的情報をいう。これは、マルチプログラミング環境で任意のプログラム(あるいはプロセス、あるいはスレッド)がしばらく遂行を止める状態(wait)になり、後で再開(resume)するために保存されなければならないプログラムの状態情報に類似する。
設計客体の状態(state)とは、設計客体に存在する変数やシグナルの特定のシミュレーション時点における値をいう。設計客体の状態は完全状態情報と不完全状態情報に分けられ、最小状態情報は不完全状態情報の特別な場合である。設計客体の完全状態とは、該当設計客体に存在するすべての変数やシグナルの特定のシミュレーション時点における値をいい、設計客体の不完全状態とは、該当設計客体に存在する1以上の任意の変数やシグナルの特定のシミュレーション時点における値をいう。また、設計客体の最小状態とは、該当設計客体に存在するすべての変数やシグナルのうち記憶素子(フリップフロップ、あるいはラッチ、あるいはメモリセル)の出力ネームになる変数やシグナルのみの値と、組合フィードバックループ(combinational feed−back)が、上記可視度が必要なDUVにおける1以上の設計客体に存在する場合には、フィードバックループ経路上の変数やシグナルの値をいう。
TBの状態とは、TBに存在する変数やシグナルの特定のシミュレーション時点における値をいう。また、このような保存されたシミュレーションの状態や、保存された可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態から(可視度が必要なDUVにおける1以上の設計客体の状態は保存するが、TBの状態を保存しない場合には、TBの状態の代わりに、シミュレーションの全区間にわたって上記可視度が必要なDUVにおける1以上の設計客体のすべての入力値と入力モード時のすべての入出力値を、該入力または入出力において、イベントが発生する毎に、あるいはサイクル毎に、あるいはトランスアクション毎に保存されたものと、上記保存された可視度が必要なDUVにおける1以上の設計客体の状態を用いて)シミュレーションを再開する場合には、ユーザの意図とおりに、設計コードに存在するすべてのシグナルと変数に対する探針を行うためのダンプを並行するか、または設計コードに存在する特定のシグナルや変数に対する探針を行うためのダンプを並行する。
シミュレータとして、HDLシミュレータ(例えば、Verilogシミュレータ、VHDLシミュレータ、またはSystemVerilogシミュレータ等)を用いる場合に、シミュレーションの状態を保存する方法の一例として、HDLシミュレータのsave(NC−Verilog、Verilog−XL、VCSの場合)あるいはcheckpoint(ModelSimの場合)という命令を用い、保存された特定のシミュレーション状態からシミュレーションを特定の時間から再開する方法の一例として、HDLシミュレータのrestore(ModelSim)あるいはrestart(NC−Verilog、Verilog−XL、VCS)のような命令を用いることができる。
また、1以上の特定の設計客体の保存された状態を、特定のシミュレーションの開示時に該当上記1以上の特定の設計客体の初期状態として用いてシミュレーションを行うためには、上記1以上の特定の設計客体内に存在する該当変数やシグナルが上記保存された状態の値をもってシミュレーションを開示できるようにすればよい。そのためには、シミュレータで提供する多様な制御能力(controllability)方法を用いることができる。一例を挙げると、シミュレータのXMR(Cross Module Reference)、あるいはforce/release procedural statement、あるいはPLI/VPI/FLIのようなシステムタスク等を用いることができる。
従って、本検証装置の検証ソフトウェアを通じて上記付加コードや付加回路が元の設計コードに付加され、このような機能を自動的に行えるようにする。このようなシミュレーション方法が、検証の性能向上及び效率性を増大できる理由は、次のとおりである。前述のように、シミュレーションを通じて検証を行う過程では、設計誤謬を見出してこれを行う過程で必ず設計コードに存在する特定のシグナルや変数の値を特定の時間帯で分かるようにする探針(probing)過程が常に必要である。しかし、問題は探針が必要な特定のシグナルや変数がどのようなものであるかを、シミュレーションの遂行前に正確に予測できないだけでなく、これらの探針対象の探針時点がいつ必要であるかも、シミュレーションの遂行前に正確に予測することができない。従って、シミュレーションを1次的に行い、結果を受けてシグナルや変数を探針対象として選定することが可能である。その後、2次シミュレーションをシミュレーション時間0から1次シミュレーションの終了時点まで進行しながら、探針対象となったシグナルや変数を特定の時間帯でダンプを行う。しかし、2次シミュレーションの過程においても設計誤謬の位置が把握されなければ、新しいシグナルや変数を探針対象として選定してシミュレーションをさらにシミュレーション時間0から繰り返すようになる。このような過程を、設計誤謬の位置が見出されるまで数回繰り返す過程が必要である。このような繰り返しシミュレーションを、シミュレーション時間0から繰り返すことにより、全体の検証時間は大きく増えてしまう。若し、このような繰り返しシミュレーションを避けようとする場合には、1次シミュレーションの遂行時に、設計コードに存在するすべてのシグナルと変数を探針対象として設定し、シミュレーションの全過程にわたってこれらをダンプしながら進行しなければならない。しかし、このように設計コードに存在するすべてのシグナルと変数をダンプしながらシミュレーションを進行すると、ダンプを進行しないでシミュレーションを進行することに比べて、シミュレーションの時間が略2倍から最大10倍以上も増加するため、これもまた全体検証時間を大きく増やしてしまう。それだけでなく、このように設計コードに存在するすべてのシグナルと変数を全体シミュレーション区間にわたってダンプすると、ダンプされるシミュレーション波形(simulation waveform)データの大きさが数十ギガバイトから数百ギガバイト以上も増加する。このような大容量のシミュレーション波形データを保存するためには、大容量のハードディスクを必要とするだけでなく、このように特定の形式(例えば、VerilogのVCD/extended-VCD形式、あるいはNovas社のFSDB形式、あるいはSHM、VCS+のような特定のシミュレータベンダーの圧縮された波形形式)でハードディスクに保存されたシミュレーション波形データを読み込み、波形分析器(waveform viewer)で分析する過程も非常に長い時間が要るようになる。これもまた全体検証時間を増加してしまう。
本特許で提案するシミュレーション方法は、シミュレーションの構成を前段シミュレーションステップと後段シミュレーションステップの2ステップに分けて行う。前段シミュレーションステップでは、1次シミュレーションの遂行を設計コードに存在するすべてのシグナルと変数をダンプしないようにする。このような1次シミュレーションの過程で行われることは、後段シミュレーションステップである1次以後の追加シミュレーションを、既存の方法のようにシミュレーション時間0で行わずに、ユーザが関心をもっているシミュレーション時間帯の直近くから開示できるようにシミュレーションの一定の間隔毎に(例えば、シミュレーションの開示から100、000ナノ秒毎に、あるいは50、000シミュレーションサイクル毎に)あるいは所望のシミュレーション時点t0、t1、...、tn毎に、シミュレーションの状態や、可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態S0、S1、...、Snを保存(可視度が必要なDUVにおける1以上の設計客体の状態は保存するが、TBの状態を保存しない場合には、TBの状態を保存する代わりに、シミュレーションの全区間にわたって上記可視度が必要なDUVにおける1以上の設計客体のすべての入力値と入力モード時のすべての入出力値を、この入力または入出力において、イベントの発生時毎に、またはサイクル毎に、またはトランスアクション毎に保存)することである。
1以上の特定のシミュレーション時点において設計客体の状態や入力/出力/入出力における値の保存は、dump命令(例えば、PLIシステムタスクである$dumpvarsまたは$dumpport等)等を通じて行われる。1以上のシミュレーション時点において、シミュレーションの状態や、可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態を保存(可視度が必要なDUVにおける1以上の設計客体の状態は保存するが、TBの状態を保存しない場合には、TBの状態を保存する代わりに、シミュレーションの全区間にわたって上記可視度が必要なDUVにおける1以上の設計客体のすべての入力値と入力モード時のすべての入出力値を、この入力または入出力において、イベントの発生時毎に、またはサイクル毎に、またはトランスアクション毎に保存)すると、それ以降はリシミュレーションをシミュレーション時間0においてだけでなく、この各シミュレーション時点t0、t1、...、tnの1つからも可能になる。従って、このような過程を通じて設計に対するデバッグを迅速に行うことができるが、このような過程は、既存のシミュレーション基盤の検証方法等に比べて検証時間を大きく短縮できるため極めて效率的な検証方法になる。このようなシミュレーション方法をAシミュレーション方法という。
また、他の方法としては、設計コードにおいてDUVやテストベンチに存在する階層構造を用いた分割及び征服(divide & conquer)方法を用いることができる。この場合には、検証ソフトウェアが設計コードを読み込み、DUVとテストベンチに対して分割を行って設計コードを2以上の設計ブロックに(M個の設計ブロックに分割されたと仮定)分け、この設計ブロックのそれぞれに存在するすべての入力と入出力を探針対象として選定した後、これらの探針対象が前段シミュレーションステップである1次シミュレーションの過程でダンプされ得るように設計コードに付加コードや付加回路を付加する。
ここで、設計ブロック(design block)とは、DUVだけでなくテストベンチのすべてを含む。それだけでなく、これらのDUVとテストベンチは、一般的に階層的な構造であり、内部に多様な1以上の下位モジュールを有するが、これらのそれぞれの下位モジュールも設計ブロックといえる。このような設計ブロックやDUV、そしてそれぞれのテストベンチやこれらの組合せは、いずれも設計客体(design object)と言える。従って、DUV全体が1つとして設計客体になり得るだけでなく、DUVの内部に存在する特定の設計ブロックの1つも設計客体になることができ、2以上の設計ブロックが1つの設計客体になることもできる。
前段シミュレーションステップである1次シミュレーションを行いながら、各設計ブロックのすべての入力と入出力をダンプしてファイル形態で保存した後、これを本発明の検証ソフトウェアを用いて該当設計ブロックに対するM個のテストベンチに変換して、該当設計ブロックの設計コードと共に該当テストベンチをシミュレーションコンパイルを行って、M個の設計ブロックに対応するM個のシミュレーション実行ファイルを生成する。このようなシミュレーション方法をBシミュレーション方法と称する。
また、Bシミュレーション方法において、前段シミュレーションステップである1次シミュレーションにおいてVPI/PLI/FLI等を用いてシミュレーションを進行しながら、VCDあるいはFSDBを生成する代わりに、直接1以上のテストベンチファイルを生成することもできる。このような場合には、1次シミュレーション後にVCDあるいはFSDBをテストベンチに変換させる過程を省略することができる。
このような2つの方法は、既存のシミュレーション方法に比べて設計客体に対する高い可視度を提供しながらも、シミュレーションの速度を大きく低下させないだけではなく、前段シミュレーションと後段シミュレーションを他の抽象化された水準で行うと、別途の特別なハードウェア基盤の検証プラットフォーム(例えば、ハードウェアエミュレータまたはFPGAプロトタイピングプラットフォーム等)を用いずに、シミュレーションの速度を大きく向上させることも可能である(詳しい内容は後述する)。
上記2つの方法であるAシミュレーション方法とBシミュレーション方法を並行した検証方法も可能である。しかし、上記で言及されたAシミュレーション方法とBシミュレーション方法の場合に、次のような問題点があり得る。Aシミュレーション方法の場合に、後段シミュレーションステップである1次以後のシミュレーションでシミュレーションしようとする時間帯(ts、te)が極めて長い場合に、ti、ti−1、ti−2、...、ti−n時点での総n+1回のシミュレーションを順次に行わなければならないので、元のシミュレーション方式よりは検証時間を短縮することができるが、それでもAシミュレーション方法には多くの検証時間が必要となる。また、Bシミュレーション方法の場合にも、1次以後のシミュレーションでシミュレーションしなければならない設計ブロックの数字が大きい場合には、これらを順次に行わなければならないので、元のシミュレーション方式よりは検証時間を短縮することができるが、それでもBシミュレーション方法においても多くの検証時間が必要となる。
しかし、シミュレータが2以上であり、これらのシミュレータが行われる複数のコンピュータ(例えば、X個のシミュレータがX個のコンピュータにインストールされている)がネットワークで連結されている場合には、このようなAシミュレーション方法やBシミュレーション方法で行われる後段シミュレーションステップである1次以後の追加シミュレーションを同時に並列的に行うことができる。このような並列的シミュレーションは、この並列的に行われなければならない各シミュレーションを完全に独立的に行うことができるので、後段シミュレーションステップである1次以後の追加シミュレーションの遂行を画期的に速やかに行うことができる。Aシミュレーション方法での並列的遂行は時間的に並列性を得るものであるので、時間的並列遂行(temporally parallel execution)といい、Bシミュレーション方法での並列的遂行は空間的に並列性を得るものであるので、空間的並列遂行(spatially parallel execution)と称する。
前段シミュレーションステップである1次シミュレーションの目的と、後段シミュレーションステップである1次以後のシミュレーションの目的を比べてみると、1次以後のシミュレーションを通じて、DUVと、場合によっては、TBまでに対する可視度を得ることが必要であるので、後段シミュレーションステップである1次以後のシミュレーションにおいて多くの遂行時間が必要であることがわかるが、本特許の方法は、これを上記の時間並列と空間並列の方法によって大きく減らすことができる。しかし、全体的なシミュレーションの速度向上のためには、前段シミュレーションステップである1次シミュレーションまでもできるだけ最大限速やかに行いながら、1次以後の1回以上のシミュレーションを行うのに必要な情報を収集することも重要である。そのために様々な方法が考えられる。
そのうち、第1の方法は、前段シミュレーションステップである1次シミュレーションも2以上のコンピュータにおける2以上のシミュレータを用いて並列的に行うことである。このような前段シミュレーションステップである1次シミュレーションにおける並列遂行は、各シミュレータが独立的に行われるのではなく、互いに連動して行わなければならないので、多くの通信オーバーヘッドと同期化オーバーヘッドが発生し得る。
第2の方法は、前段シミュレーションステップである1次シミュレーションを、速やかなシミュレーションが行われるように、元の設計コードの代わりに、元の設計コードと関数的に等価であるが異なる構文形式に変換された設計コードを用いてシミュレーションすることである。これは、元の設計コードにシミュレーションの遂行を長くする構文が含まれている場合に、この構文と関数的に等価であり、シミュレーションの遂行を速やかにする異なる構文に変換することである。例を挙げると、元の設計コードのルーフ(loop)文を拡げることにより(un-rolling)、ループ文を除去したり、感知リスト(sensitivity list)から不要なリストを除去したり、場合によっては遅延と関連した構文を除去したり、Verilogにおいてprocedural blockを合わせて最小限のprocedural blockを与えたり、VHDLではprocessを合わせて最小限のprocessを与えたり、Verilogではcontinuous assignmentをprocedural blockに変更し、元のコードとは異なる感知リストを用いて、元の設計コードでシミュレーションするより少なく評価(evaluation)されるようにしたり、VHDLでconcurrent assignmentをprocessに変更し、元のコードとは異なる感知リストを用いて元の設計コードでシミュレーションするより少なく評価されるようにしたり、Verilogでcontinuous assignmentをprocedural blockに変更し、感知リストを用いて元の設計コードでシミュレーションするよりは少なく評価されるようにしたり、Verilogでcontinuous assignmentをprocedural blockに変更し、感知リストを用いて元の設計コードでシミュレーションするより少なく評価されるようにしたり、感知リストを調整して該当alwaysブロックやprocessが元の設計コードでシミュレーションするより少なく評価されるようにしたり、元の設計コードに存在する変数やシグナルのうち、前段シミュレーションステップである1次シミュレーションにおいて必要な変数とシグナルのみを残し、他の変数やシグナルを除去すること、等である。また、このような過程で速やかな論理変換(logic translation)や速やかな論理合成(logic synthesis)の過程を通じて、設計コードの全体または部分的に、一時的あるいは永久的に構造的に変換(structural transformation)させることも可能である。それだけでなく、変換された設計コードの一部分は、シミュレーションの效率性のために、二進決定ダイヤグラム(BDD:Binary Decision Diagram、以下BDDと称する)あるいは多進決定ダイヤグラム(MDD:Multi−valued Decision Diagram、以下MDDと称する)で表現されてシミュレーションされることができる。
第3の方法は、前段シミュレーションステップである1次シミュレーションでは、後段シミュレーションステップで用いるよりも抽象化ステップを高めてシミュレーションを行い、後段シミュレーションステップで上記高い抽象化ステップで行われたシミュレーションの結果を活用して、1次以後のシミュレーションを速やかに行うことである。具体例を挙げると、後段シミュレーションステップである1次以後のシミュレーションでイベント−駆動シミュレータを用いる場合に、前段シミュレーションステップである1次シミュレーションでは、イベント−駆動(event−driven)シミュレータを用いる代わりに、遂行速度の面でイベント−駆動シミュレータよりも略10−100倍速いサイクル−基盤(cycle−based)シミュレータを用いることである。第3の方法のために、VerilogやVHDLでコーディングされた設計コードを、自動化された方法(例えば、HDL2SystemC変換ツールを用いて自動変換)または受動でSystemCコードに変換して、HDLシミュレータの代わりにSystemCシミュレータを用いることができる。一般的に、SystemCシミュレータは、イベントスケジューラーが非常に軽量であるため、VerilogシミュレータやVHDLシミュレータに比べて速やかに行うことができる。
第2及び第3の方法の場合には、前段シミュレーションステップである1次シミュレーションをSystemCシミュレータやサイクル−基盤(cycle−based)シミュレータで行いながら、シミュレーションの状態を周期的間隔または1以上の特定のシミュレーション時点において1回以上保存する代わりに、可視度が必要なDUVにおける1以上の設計客体の状態の保存と、場合によっては、TBの状態までを周期的間隔または1回以上の特定のシミュレーション時点において1回以上保存し(可視度が必要なDUVにおける1以上の設計客体の状態は保存するが、TBの状態を保存しない場合には、TBの状態を保存する代わりに、シミュレーションの全区間にわたって上記可視度が必要なDUVにおける1以上の設計客体のすべての入力値と入力モード時のすべての入出力値を、この入力または入出力において、イベントの発生時毎に、またはサイクル毎に、またはトランスアクション毎に保存し)、後段シミュレーションステップである1次以後の1回以上のシミュレーションを2以上のコンピュータ上における2以上のHDLシミュレータを用いて並列的に行う。そのために、上記後段シミュレーションステップである1次以後の1回以上のシミュレーションのそれぞれを、上記前段シミュレーションステップである1次シミュレーションの遂行過程で1回以上のシミュレーション時点で保存された1以上の設計コード状態情報のそれぞれに初期状態が異なるように設定して行う。後段シミュレーションステップにおける1次以後に行われるシミュレータに用いられるテストベンチは、前段シミュレーションステップにおける1次シミュレーションで用いたテストベンチをそのまま用いることができる。
しかし、第2と第3の方法では、1次シミュレーションで用いられるシミュレータと、1次以後のシミュレーションで用いられるシミュレータが互いに異なるため、シミュレーション状態を用いることが不可能であり、1次シミュレーションの過程で保存した可視度が必要なDUVにおける1以上の設計客体の状態情報を用いなければならないとともに、1次シミュレーションの過程でTBの状態を保存しない場合には、可視度が必要なDUVにおける1以上の設計客体の入力値と入力モードでの入出力値も、1次シミュレーションの全過程にわたって、イベントの発生時毎に、またはサイクル毎に、またはトランスアクション毎に、持続的に探針して保存し(例えば、VCD dumpやFSDB dumpをする)、これをテストベンチに変換して後段シミュレーションステップである1次以後のシミュレーションで用いることもできる。このように、元のテストベンチの代わりに新しく生成されたテストベンチを用いると、テストベンチのファイルサイズが大きくなることによりコンパイル時間が増えるが、テストベンチの構成が単純パターン基盤の形態になるので元の複雑なテストベンチがシミュレーションのラーニングタイムに消費するシミュレーション時間でテストベンチが消費する時間を短縮することができる。
それだけでなく、上記で言及した技法は、RTL設計コードを用いてRTLにおいてシミュレーションした結果を、RTL設計コードを合成してゲート−ネットリストを生成し、必要に応じて配置及び配線結果による遅延時間情報まで用いて行われるゲート水準におけるシミュレーションの結果に用いることにより、ゲート水準におけるシミュレーション時、デバッグを非常に效果的にすることに用いることができる。
すなわち、前段シミュレーションステップである1次シミュレーションを、RTL設計コードを用いてRTLにおいてイベント−駆動(event−driven)方式あるいはサイクル−基盤(cycle−based)方式でシミュレーションしながら、設計コードに対する状態情報を1以上の特定のシミュレーション時点で保存し、後段シミュレーションステップである1次以後の1回以上のシミュレーションは、ゲート水準におけるシミュレーションを上記RTLシミュレーションで上記1以上の特定のシミュレーション時点で保存された1以上の状態情報のそれぞれを用いることにより、1以上のゲート水準におけるシミュレーションを並列的に行うこともできる。上記ゲート水準におけるシミュレーションは、SDF(Standard Delay Format)等を用いてタイミングシミュレーションも可能であり、タイミング情報を用いないゲート水準の関数的シミュレーションも可能である。
上記で説明したように、前段シミュレーションステップである1次シミュレーションを、後段シミュレーションステップである1次以後のシミュレーションよりもさらに抽象化された水準で行いながら、可視度が必要なDUVにおける1以上の設計客体に対する動的情報(例えば、設計検証対象の最小状態情報と必要に応じて入力情報も含み、あるいは設計検証対象の完全状態情報)を収集し、上記後段シミュレーションステップである1次以後のシミュレーションにおいて上記記収集された動的情報を用いる場合に、前段シミュレーションの結果と後段シミュレーションの結果がすべて一致すれば、結論的にはシミュレーションを2つのステップに分け、さらに抽象化された水準における前段シミュレーション(例えば、RTL水準におけるサイクル−基盤シミュレーション)とさらに抽象化されていない水準における後段シミュレーション(例えば、RTL水準におけるイベント−駆動シミュレーション)を用いて、単一抽象化水準のみにおける繰り返しシミュレーションを行う既存の方法(例えば、ステップの区別がないRTL水準におけるイベント−駆動シミュレーションのみを行う方式)を通じたシミュレーションよりも非常に速やかに行う(シミュレーションの速度の大幅な向上)ことになるので、極めて效果的になる。
それだけでなく、前記で言及した後段シミュレーションの結果と前段シミュレーションが結果がすべて一致する場合のシミュレーションの速度の大幅な向上以外に、後段シミュレーションの結果と前段シミュレーションが結果がすべて一致しなくなる場合でも、次のようなまた他の非常に重要な長所がある。現在の設計方法は、下向式設計技法(top−down design methodology)を多く用いるが、このような下向式設計において、上位から下位へ(例えば、行為ステップにおいてレジスタ転送水準を経てゲート水準へ)と設計が進行されることに合わせて、検証も上位から下位へ(例えば、行為ステップにおいてレジスタ転送水準を経てゲート水準でへ)と行わなければならない。上記で言及した方法は、上位ステップで得られたシミュレーションの結果を、これよりも下位ステップ(例えば、行為水準におけるシミュレーションの結果を、これよりも下位ステップであるレジスタ転送水準で、またはレジスタ転送水準におけるシミュレーションの結果をこれよりも下位ステップであるゲート水準)で行われるシミュレーションに適用できるようにすることで、下向式設計の全過程で設計の一貫性を、検証過程で体系的かつ效率的に点検できるようにする非常に重要なさらなる長所がある。
従って、このようなシミュレーション方法は、新しい検証方法論(verification methodology)と言えるが、さらに抽象化された設計コードを用いた検証結果を、さらに抽象化されていない設計コードを用いた検証に用いることにより、全体検証時間とデバッグ時間を大きく減らせるだけでなく、全体検証時間と全体設計時間までも大きく減らせる新しい方法である。これは、設計具現ステップ(implementation phase)でMagma Design Automation社が物理的合成(physical Synthesis)で用いて大きな成功を収めた技術である利得−基盤の合成(GBS:Gain−based Synthesis)技術で得られる長所と類似する長所を検証過程で得られるようにする。
すなわち、現在の半導体設計過程における最大の問題は、抽象化を通じて大規模の設計を效率的に行えるようになった長所の否定的な付随效果として、設計過程が進行すると共に、前ステップで予測された結果とは違う結果が後ステップで現われるようになり、これは設計過程における過度な設計及び検証反復(design&verification iteration)を招来するということである。ところで、本特許での方法とGBS方法は、共に上位ステップから下位ステップへ進行されるとともに変化する状況に、最大限の一貫性を提供することにより、このような過度な繰り返しを最大限防止できる方法であるという共通点がある。上位水準の検証結果が下位水準検証でのレファレンスの役割(またはゴールデン役割)を行うことにより、全体検証及び設計過程を速やかに行えるようになる。このような2以上の抽象化水準におけるシミュレーションの結果を統合して、上位水準におけるシミュレーションの結果を下位水準におけるシミュレーションに用いることは、多くの長所がある。上位水準におけるシミュレーションになる対象がDUV全体になることが性能面で最も望ましいが、設計再使用(design reuse)等の理由により、DUVの1以上の特定の設計客体だけが上位水準で口述された設計に対しても、上記のような概念はそのまま適用できる。例えば、DUV中に5個の設計ブロックB0、B1、B2、B3、B4が存在し、B0とB1はイベント−駆動VerilogRTLコードで記述されており、B2、B3、B4はサイクル−基盤SystemCコードで記術されている場合を例える。この場合、B0とB1に対するイベント−駆動方式のシミュレーションがB2とB3とB4に対するサイクル−基盤のシミュレーションと連動され、DUV部分的には上位水準でシミュレーションが行われることによりシミュレーションの速度を高めることもできる。一般的に、さらに抽象化された上位水準におけるシミュレーションの結果は、さらに抽象化されていない下位水準でDUVがモデリングされて謀議動作する多くの場合の特定の場合であると考えられる。従って、このような特定の場合にも、DUVは必ず正しい動作を保障しなければならない(すなわち、設計が強靭な設計(robust Design)であるためには、抽象化水準が異なる後段シミュレーションの結果と前段シミュレーションが結果が一致するように動作しなければならない)。このような事実から、上位水準におけるシミュレーションの結果は、大部分の場合に非常に有用なレファレンスの役割を果たせることが分かる。従って、上記で詳しく説明された本発明で提案する、抽象化水準が異なる2つのステップでの2回以上のシミュレーション方法と、このシミュレーションの結果の一致性の調査を通じた設計に対する設計誤謬デバッグ方法は、非常に效率的な新しい検証遂行方法であることが分かる。上記の説明と類似して、2以上の抽象化水準におけるシミュレーションの結果を統合して、下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションに用いるようにすることも可能である。
上記で説明した検証装置及び検証技法は、検証プラットフォームとして、シミュレータ以外に、1以上のシミュレーションアクセル、ハードウェアエミュレータ、プロトタイピングシステム、モデル検査器や形式検査器のような正式検証器等を用いる場合にも適用することができる。すなわち、前段検証ステップである1次検証実行を、1以上のシミュレータ、シミュレーションアクセル、ハードウェアエミュレータ、プロトタイピングシステム、あるいはモデル検査器や形式検査器のような正式検証器を独立的または複合的に用いて行いながら、後段検証ステップである1次以後の検証実行を、1以上のシミュレータ、シミュレーションアクセル、ハードウェアエミュレータ、プロトタイピングシステム、またはモデル検査器や形式検査器のような正式検証器を並列的または順次に行うことに必要な最小限の情報(例えば、検証対象となるDUVの1以上の設計客体に対する1以上の検証時点での状態情報と、必要に応じて追加的に上記DUVの1以上の設計客体のすべての入力値と入力モードでの入出力値に対する検証区間にわたる情報)を収集しながら行い、このように収集された情報を用いて後段検証ステップである1次以後の検証実行を、1以上のシミュレータ、シミュレーションアクセル、ハードウェアエミュレータ、プロトタイピングシステムまたはモデル検査器や形式検査器のような正式検証器、を並列的あるいは順次に行うことで、全体的な検証の性能と效率性を高めることも可能である。
それだけでなく、上記で言及した前段検証ステップと後段検証ステップの2ステップ検証実行方法を用いると、検証対象となるDUVの1以上の設計客体に対する検証遂行の過程における動的情報(例えば、シミュレーションの過程でDUVとTBでダンプされたVCDやFSDB)を非常に速やかに獲得することが可能となる。このような過程を通じて、特定の検証実行の過程Vtで得られた動的情報は、その後に実行される(例えば、コード修正が行われた後にコード修正が所望のとおりに行われたかを確認するために実行される)他の検証実行の過程Vt+jで、部分的にあるいは全体的に再活用され、Vt+jの検証実行の過程を速やかに進行することもできるようにする。このようなデバッグ過程で設計誤謬が正しく除去されたか否かを確認する確認検証ステップでの速やかな遂行方式を漸進的検証(incremental verification)方式というが、具体的に、このように動的情報を再活用(reuse of dynamic information)できる場合は2つに分けられる。
第1は、特定の設計客体に設計誤謬が存在し、該当設計客体の内容がデバッグ過程を通して修正された場合に、リグレッションテスト過程が必要となるが、このような場合に再活用することと、設計客体に対する修正の行われた後に修正が意図したとおりに行われかを確認する場合に再活用することである。この場合には、設計客体(DUVとTBを共に含む)の全体を対象として検証を進行しない。その代わりに、全体検証時間の1以上の一定時間領域では(例えば、検証時間0から一定検証時間tmまでは)、ただ設計修正が行われた1以上の設計客体DO(mod)のみを対象とする検証を進行することにより、高速で検証実行が進行されるようにし、それ以外の時間領域では(例えば、検証時間tm以後からは)設計客体の全体(DUVとTBを共に)に対して検証を進行するようにする。このような方法のために核心的な事項は、設計修正が行われた1以上の設計客体のみを対象とする検証実行を進行しても構わない1以上の一定時間領域を、全体検証時間領域で区分できなければならない。これは、設計の修正以前に行われる検証実行の過程で、特定の1以上の設計客体に対して動的情報を収集し、これを設計修正以後に行われる検証実行の過程で設計修正が行われた設計客体から生成される動的情報と、検証実行の過程でリアルタイムで比べて処理することにより可能となる。また、ただ設計修正が行われた1以上の設計客体DO(mod)を適切に選定するのが必要である。設計変更後にシミュレータを用いた検証実行を行う場合には、シミュレーションの速度を大きく高めるためにDO(mod)範囲(すなわちDO(mod)の大きさ)は小さくなければならない。しかし、設計変更後にハードウェア基盤検証プラットフォーム(例えば、シミュレーションアクセル)を用いた検証を実行する場合には、通常ハードウェア基盤検証プラットフォームの実行速度は、ハードウェア基盤検証プラットフォーム上で行われる設計客体の大きさまたは複雑度に関係ないので、DO(mod)範囲を最小化する必要はない(例えば、シミュレーション加速の場合には、DUVの内部に存在する下位設計客体の1つを修正した場合には、DO(mod)をDUVに指定することもできる。しかし、シミュレーションの場合には、DO(mod)は上記修正された下位設計客体の1つに選ばれなければならない)。
具体的な方法の一例を説明すると、次のようである(これをチェックポイント基盤方法と称する)。リグレッションテスト進行過程の各テストシナリオ実行において、検証時間0から設計修正が行われた設計客体の出力と出力モード時の両方向入出力値Vi(post_o)を設計修正以前の同一設計客体の出力と出力モード時の両方向入出力値 Vi(pre_o)と検証実行の過程でリアルタイムで比べて、これらの両値が等しい場合までは、上記設計修正が行われた設計客体のみを設計修正以前の検証実行で求めて特定の形態(例えば、TB化された形態、VCD 形態、あるいは二進ファイル形態)で保存した再生用入力情報または再生用入出力情報の中で再生用入力情報のみを入力スティミュラスとして用いて速やかに検証過程を行い、上記2つの値Vi(post_o)とVi(pre_o)が異なってくる時点(以下では、これをtmと称する)から設計修正が行われた設計客体と、設計修正が行われていない他の設計客体をすべて合わせて検証を進行し続けると、全体の検証時間を減らしながらも、正確な検証を行うことができる。tm以後にのみ、すべての修正された客体と修正されない客体を含んだ全体の設計客体が共にシミュレーションされることができる。ところが、このように上記2つの値が異なってくる時点tmで設計修正が行われた設計客体と、設計修正が行われていない他の設計客体を合わせる過程で、設計修正が行われていない他の設計客体の動的情報を、設計修正が行われた設計客体の動的情報と等しい検証時間帯に正確に合わせることが必須である。このための1つの效果的な方法は、設計修正の以前に行われた設計検証過程で、設計客体に対して一定の検証時間間隔で動的情報を1回以上保存(例えば、総20回保存)し、このように保存された動的情報を用いれば可能である。以下では、動的情報保存方法を具体的に説明する。
シミュレータを検証プラットフォームとして用いる場合には、2つの方法がある。第1の方法は、設計客体の修正以前に行われたシミュレーションの状態情報を1回以上保存し、これを後で用いることである。これは、シミュレーションの状態は、設計状態情報を全部含んでいるからである。シミュレーションの状態情報を保存する方法はいくつかある。その中で最も便利な方法としては、シミュレータで提供するシミュレーション状態の保存命令(例えば、HDLシミュレータでのsave命令あるいはcheckpoint命令)を用いればよく、任意のプログラムの場合には、スナップショット(snapshot)機能を用いればよい。第2の方法は、設計客体修正以前に行われる検証実行(例えば、シミュレーションあるいはシミュレーション加速遂行)過程で設計客体の状態情報を1回以上保存し、これを後で用いることである。この方法は、特にハードウェア基盤検証プラットフォームを用いる場合に效果的である。その理由は、ハードウェア基盤検証プラットフォームはスナップショット/再出発機能を提供するシミュレータとは異なり、検証プラットフォームの状態情報を保存する方法が提供されないからである。
本発明の好ましい実施の形態は次の図面を参照して説明される。
図1は、本発明に係る設計検証装置の一例を概略的に示した図である。
図2は、本発明に係る設計検証装置の他の一例を概略的に示した図である。
図3は、本発明で提案する方法によりシミュレーションを行う過程を概略的に示した図である。
図4は、本発明で提案する前段シミュレーションステップである1次シミュレーションと、後段シミュレーションステップである1次以後のシミュレーションを通じて、設計誤謬を見出して修正する過程を概略的に示した図である。
図5(a)は、図1または図2のような装置を用いた設計検証を行う過程を概略的に示した図である。
図5(b)は、図1または図2のような装置を用いた設計検証を行う他の過程を概略的に示した図である。
図6(a)は、図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う過程を概略的に示した図である。
図6(b)は、図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う他の過程を概略的に示した図である。
図6(c)は、図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う他の過程を概略的に示した図である。
図6(d)は、図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う他の過程を概略的に示した図である。
図7は、本発明に係る設計検証装置の他の一例を概略的に示した図である。
図8は、コンピュータで運営される本発明の検証ソフトウェアとシミュレータを有するコンピュータとハードウェア基盤検証プラットフォームで構成された本発明に係る設計検証装置の一例を概略的に示した図である。
図9は、コンピュータで運営される本発明の検証ソフトウェアとシミュレータを有する2以上のコンピュータとハードウェア基盤検証プラットフォームとこれらのコンピュータを連結するコンピュータネットワークで構成された本発明に係る設計検証装置の他の一例を概略的に示した図である。
図10は、コンピュータで運営される本発明の検証ソフトウェアとこの検証ソフトウェアが運営されるコンピュータとハードウェア基盤検証プラットフォームで構成された本発明に係る設計検証装置の他の一例を概略的に示した図である。
図11は、図8を用いた検証結果再活用の一実施例を説明するフローチャートである。
図12は、図1を用いたシミュレーション結果の再活用の一実施例を説明するフローチャートである。
図13は、任意の検証プラットフォームを用いて設計検証を行う過程において、設計客体の変更前に行われた検証結果を再活用して、設計客体の変更後に行われる検証を速やかに行う過程の一実施例を概略的に示した図である。
図14は、任意のハードウェア基盤検証プラットフォームを用いて設計検証を行う過程において、設計客体の変更前に行われた検証結果を再活用して、設計客体の変更後に行われる検証を速やかに行う過程の一実施例を概略的に示した図である。
図15は、シミュレータを用いて設計検証を行う過程において、設計客体の変更前に行われたシミュレーションの結果を再活用して、設計客体の変更後に行われるシミュレーションを速やかに行う過程の一実施例を概略的に示した図である。
本発明は発明の本質や必須的な特性から外れることなく、様々な形態で具現されることができるので、前述した実施の形態は別に特定されない限り、詳細な説明の細部事項により制限されることではなく、かえって添付された請求範囲に説明されたように、その本質及び範囲内で広く考えられるべきであり、従って請求範囲の範囲を満たし、その範囲内に入るすべての変化及び修正、またはそのような充足及び範囲に対する等価物も添付された請求範囲により含まれることとみなすべきである。
添付の図面は、本発明の詳細な理解を助け、本発明における装置と関連した部分がどのように構成されるかを示し、発明の基本概念を説明するために、次のように用いられる。
本発明に係る設計検証装置の一例を概略的に示した図である。 本発明に係る設計検証装置の他の一例を概略的に示した図である。 本発明で提案する方法によりシミュレーションを行う過程を概略的に示した図。 本発明で提案する前段シミュレーションステップである1次シミュレーションと、後段シミュレーションステップである1次以後のシミュレーションを通じて、設計誤謬を見出して修正する過程を概略的に示した図である。 図1または図2のような装置を用いた設計検証を行う過程を概略的に示した図である。 図1または図2のような装置を用いた設計検証を行う他の過程を概略的に示した図である。 図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う過程を概略的に示した図である。 図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う他の過程を概略的に示した図である。 図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う他の過程を概略的に示した図である。 図2のような装置を用いた設計検証において、後段シミュレーションステップである1次以後のシミュレーションを並列的に行う他の過程を概略的に示した図である。 本発明に係る設計検証装置の他の一例を概略的に示した図である。 コンピュータで運営される本発明の検証ソフトウェアとシミュレータを有するコンピュータとハードウェア基盤検証プラットフォームで構成された本発明に係る設計検証装置の一例を概略的に示した図である。 コンピュータで運営される本発明の検証ソフトウェアとシミュレータを有する2以上のコンピュータとハードウェア基盤検証プラットフォームとこれらのコンピュータを連結するコンピュータネットワークで構成された本発明に係る設計検証装置の他の一例を概略的に示した図である。 コンピュータで運営される本発明の検証ソフトウェアとこの検証ソフトウェアが運営されるコンピュータとハードウェア基盤検証プラットフォームで構成された本発明に係る設計検証装置の他の一例を概略的に示した図である。 図8を用いた検証結果再活用の一実施例を説明するフローチャートである。 図1を用いたシミュレーション結果の再活用の一実施例を説明するフローチャートである。 任意の検証プラットフォームを用いて設計検証を行う過程において、設計客体の変更前に行われた検証結果を再活用して、設計客体の変更後に行われる検証を速やかに行う過程の一実施例を概略的に示した図である。 任意のハードウェア基盤検証プラットフォームを用いて設計検証を行う過程において、設計客体の変更前に行われた検証結果を再活用して、設計客体の変更後に行われる検証を速やかに行う過程の一実施例を概略的に示した図である。 シミュレータを用いて設計検証を行う過程において、設計客体の変更前に行われたシミュレーションの結果を再活用して、設計客体の変更後に行われるシミュレーションを速やかに行う過程の一実施例を概略的に示した図である。
符号の説明
12:テストベンチ設計客体
14:DUV設計客体
16:設計ブロック設計客体
18:再生用入力情報
20:変更された設計客体
22:設計変更前に収集された動的情報の一部分
27:ハードウェア基盤検証プラットフォーム
28:プロトタイピングシステムのシステムソフトウェアコンポーネント
29:シミュレーションアクセルのシステムソフトウェアコンポーネント
30:ハードウェアエミュレータのシステムソフトウェアコンポーネント
31:検証ソフトウェアで設計コードや合成で生成されたゲート水準のネットリストに追加コードや追加回路を自動的に付加し、検証準備を進行するソフトウェアモジュール
32:検証ソフトウェア
34:シミュレータ
35:コンピュータ
36:ハードウェアエミュレータプラットフォームのハードウェアコンポーネント
37:シミュレーションアクセルプラットフォームのハードウェアコンポーネント
38:プロトタイピングシステムプラットフォームのハードウェアコンポーネント
42:モデル検査器または特性検査器
44:検証ソフトウェアで検証を実行する途中に、1以上のコンピュータ間のファイルやデータ送信を可能とし、1次検証実行を進行し、1次以後の検証実行のための準備を進行し、1次以後の検証実行を進行するソフトウェアモジュール

Claims (121)

  1. 検証ソフトウェアと1以上のシミュレータを具備する設計検証装置において、
    上記検証ソフトウェアは、設計コードや合成で生成されたゲート水準のネットリストに自動化された方式で付加コードや付加回路を追加し、後段シミュレーションステップである1次シミュレーション以後に行われる1回以上のシミュレーションを、設計コードや合成で生成されたネットリストに存在する1以上の設計客体に対してシミュレーションが行われるようにするのに必要な最小限の情報を、上記前段シミュレーションステップである1次シミュレーションの過程で収集できるようにし、上記1次以後の1回以上のシミュレーションを、可視度を得ながらも速やかに行うことにより、シミュレーションの速度とデバッグのための可視度を同時に確保することを可能とする設計検証装置。
  2. シミュレーションを複数のテストベンチにより数回行って、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計誤謬の位置を見出し、これを修正する設計検証方法において、
    上記シミュレーションの一部を前段シミュレーションステップである1次シミュレーションと後段シミュレーションステップである1次以後の1回以上のシミュレーションに分けて行い、上記後段シミュレーションステップである1次以後の1回以上のシミュレーションを、設計コードや合成で生成されたネットリストに存在する1以上の設計客体に対してシミュレーションが行われるようにするのに必要な最小限の情報を、上記前段シミュレーションステップである1次シミュレーションの過程で収集できるように、設計コードや合成で生成されたゲート水準のネットリストに付加コードや付加回路を、検証ソフトウェアを用いて自動化された方式で追加し、上記1次以後の1回以上のシミュレーションを、可視度を得ながらも速やかに行うことにより、シミュレーションの速度とデバッグのための可視度を同時に確保することを可能とする検証方法。
  3. 最小限の情報収集が前段シミュレーションステップである1次シミュレーションの過程において、一定の間隔であるいは1以上の特定のシミュレーション時点で、シミュレーションの状態を1以上のファイル形態で保存することを含む、請求項1、2、12、54または55に記載の設計検証方法。
  4. 最小限の情報収集が前段シミュレーションステップである1次シミュレーションの過程において、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計ブロックの入力と入出力を、シミュレーションの全過程にわたって持続的に探針して1以上のファイル形態で保存し、これを後段シミュレーションステップである1次以後のシミュレーションの過程において入力スティミュラスとして用いることを含む、請求項1、2、12、54または55に記載の設計検証方法。
  5. 前段シミュレーションステップである1次シミュレーションの施行中に、1以上のシミュレーション時点で保存された1つのシミュレーション状態のうち1つのシミュレーション状態を選定し、1次以後の1回以上のシミュレーションを、上記選定された1以上のシミュレーション状態から開示されるように設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行う、請求項3に記載の設計検証方法。
  6. 1次以後のシミュレーションを、上記選定された2以上のシミュレーション状態から開示されるように1つのシミュレータを2回以上順次に設定し、順次にシミュレーションを進行する過程において、前段シミュレーションステップである1次シミュレーションの遂行時に、シミュレーションの状態を保存するシミュレーション時点がシミュレーション時間的に最後にあるシミュレーション状態をまず上記1つのシミュレータに設定してこのシミュレーションの状態をもってシミュレーションを進行し、その後のシミュレーションも上記単一のシミュレータで行う過程で状態を保存したシミュレーション時点がシミュレーション時間的に後にあるもの等を優先してシミュレータに設定し、シミュレーションがシミュレーション状態保管時間の逆順に進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行う、請求項5に記載の設計検証方法。
  7. 1次シミュレーションの施行中に、1以上のシミュレーション時点でシミュレーション状態を保存する方法を、シミュレータのsave命令語あるいはcheckpoint命令語を用い、後段シミュレーションステップである1次以後の1回以上のシミュレーションを、上記選定された1以上のシミュレーション状態から開示されるようにシミュレータを1回以上設定した後、シミュレーションを進行する方法をシミュレータのrestart命令語あるいはrestore命令語を用いる、請求項1、2、3、5、6、12、54または55に記載の設計検証方法。
  8. 1次シミュレーションの実行中に、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計ブロックに対する入力と入出力をシミュレーションの全過程で探針して保存した1以上の探針ファイルのうち1以上を選定して、後段シミュレーションステップである1次以後のシミュレーションを、上記選定された1以上の探針ファイルと該当1以上の設計ブロックを用いてシミュレーションコンパイルして生成された1以上のシミュレーション実行ファイルのうち追加的な探針が必要な設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数を有している該当1以上の設計ブロックをコンパイルされた形態で有している1以上のシミュレーション実行ファイルを実行しながら上記追加的な探針を行うことにより、高いシミュレーション速度と設計ブロックに対する可視度を提供する、請求項4に記載の設計検証方法。
  9. 後段シミュレーションステップである1次以後の1回以上のシミュレーションを、前段シミュレーションステップである1次シミュレーションの過程で保存された2以上のシミュレーション状態をそれぞれ用いて2回以上の部分シミュレーションをするものに切り換え、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上のシミュレータを用いて、上記2以上のシミュレータ状態のそれぞれを上記2以上のシミュレータそれぞれに設定して、2以上のシミュレーションが互いに独立的に上記2以上のシミュレータで並列的に実行して、高いシミュレーション速度を提供する、請求項1、2、3、5、6、7、12、54または55に記載の設計検証方法。
  10. 後段シミュレーションステップである1次以後の1回以上のシミュレーションを、前段シミュレーションステップである1次シミュレーションを通じて得られた2以上の設計ブロックと、これらの設計ブロックのそれぞれの入力と入出力を、前段シミュレーションステップである1次シミュレーションの全過程で探針した2以上の探針ファイルをシミュレーションコンパイルして得られた2以上のシミュレーション実行ファイルを、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上のシミュレータを用いて独立的かつ並列的に実行して、高いシミュレーション速度を提供する、請求項1、2、12、54または55に記載の設計検証方法。
  11. 後段シミュレーションステップである1次以後の1回以上のシミュレーションを、前段シミュレーションステップである1次シミュレーションを通じて得られた2以上の設計ブロックと、これらの設計ブロックのそれぞれの入力と入出力を、前段シミュレーションステップである1次シミュレーションの全過程で探針した2以上の探針ファイルを変換した2以上のテストベンチファイルをシミュレーションコンパイルして得られた2以上のシミュレーション実行ファイルを、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上のシミュレータを用いて独立的かつ並列的に実行して、高いシミュレーション速度を提供する、請求項1、2、12、54または55に記載の設計検証方法。
  12. 任意のシミュレーション遂行あるいはシミュレーション加速遂行あるいはハードウェアエミュレーション遂行あるいはプロトタイピング遂行を通じて得られた結果を用いた追加的なシミュレーションの遂行において、
    上記追加的なシミュレーションの遂行を、前段シミュレーションステップである1次1回のシミュレーションと後段シミュレーションステップである1次以後の1回以上のシミュレーションに分けて行い、上記1次以後の1回以上のシミュレーションを、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計客体に限定してシミュレーションが行われるようにするのに必要な最小限の情報を1次シミュレーションの過程で収集できるように、設計コードや合成で生成されたゲート水準のネットリストに付加コードや付加回路を検証ソフトウェアを用いて自動化された方式で追加し、上記1次以後の1回以上のシミュレーションを速やかに行うことを可能とする検証方法。
  13. 前段シミュレーションステップである1次のシミュレーションを並列シミュレーションで行う、請求項1、2、3、4、5、9、10、11、12、23、24、25、27、54または55に記載の検証方法。
  14. 前段シミュレーションステップである1次のシミュレーションを、DUVの全体あるいはDUV内の1以上の設計客体に対してサイクル−基盤シミュレーションで行い、後段シミュレーションステップである1次以後の1回以上のシミュレーションはイベント−駆動シミュレーションで行う、請求項31または32に記載の検証方法。
  15. 前段シミュレーションステップである1次のシミュレーションを、DUVの全体あるいはDUV内の1以上の設計客体に対してSystemCシミュレータを用いて行い、後段シミュレーションステップである1次以後の1回以上のシミュレーションは、VerilogシミュレータあるいはVHDLシミュレータあるいはSystemVerilogシミュレータを用いて行う、請求項31または32に記載の検証方法。
  16. 前段シミュレーションステップである1次のシミュレーションを、DUVの全体あるいはDUV内の1以上の設計客体に対してRTLシミュレーションで行い、後段シミュレーションステップである1次以後の1回以上のシミュレーションはゲート水準シミュレーションで行う、請求項31または32に記載の検証方法。
  17. 上記後段シミュレーションステップである1次以後の1回以上のシミュレーションを、2以上のシミュレータを用いて並列的に進行する、請求項14、15または16に記載の検証方法。
  18. シミュレーションを複数のテストベンチにより数回行って、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計誤謬の位置を見出してこれを修正する設計検証方法において、上記シミュレーションの一部を前段シミュレーションステップである1次シミュレーションと後段シミュレーションステップである1次以後の1回以上のシミュレーションに分けて行い、上記後段シミュレーションステップである1次以後の1回以上のシミュレーションを設計コードや合成で生成されたネットリストに存在する1以上の設計客体に対してシミュレーションが行われるようにするのに必要な最小限の情報を上記前段シミュレーションステップである1次シミュレーション過程で収集できるように設計コードや合成で生成されたゲート水準のネットリストに付加コードや付加回路を検証ソフトウェアを用いて自動化された方式で追加し、上記1次以後の1回以上のシミュレーションを可視度を得ながらも速やかに行うことにより、シミュレーション速度とデバッグのための可視度を同時に確保することを可能にする検証方法。
  19. 上記後段シミュレーションステップである1次以後の1回以上のシミュレーションをゲート水準でイベント−駆動シミュレーションで行う、請求項14または16に記載の検証方法。
  20. 上記後段シミュレーションステップである1次以後の1回以上のシミュレーションを、ゲート水準においてイベント−駆動シミュレーションを配置及び配線結果から抽出されたタイミング情報を活用したタイミングシミュレーションで行う、請求項19に記載の検証方法。
  21. 前段シミュレーションステップである1次のシミュレーションの過程において、1以上のシミュレーション時点で可視度が必要なDUVにおける1以上の設計客体に対する状態情報を得て、このように得られた1以上の設計検証の対象の状態情報を用いて、後段シミュレーションステップである1次以後の1回以上のシミュレーションを行う、請求項14、15、19または20に記載の検証方法。
  22. 前段シミュレーションステップである1次のシミュレーションの過程において、2以上のシミュレーション時点で可視度が必要なDUVにおける1以上の設計客体に対する状態情報を得て、このように得られた2以上の設計検証の対象の状態情報を用いて、後段シミュレーションステップである1次以後の2回以上のシミュレーションを並列的に行う、請求項14、15、19または20に記載の検証方法。
  23. 最小限の情報収集が、前段シミュレーションステップである1次シミュレーションの過程において、一定の間隔であるいは1以上の特定のシミュレーション時点で可視度が必要なDUVにおける1以上の設計客体に対する状態の保存と共に、シミュレーションの全区間にわたって上記可視度が必要なDUVにおける1以上の設計客体のすべての入力値と入力モード時のすべての入出力値を、後段シミュレーションステップである1次以後のシミュレーションの過程において入力スティミュラスとして用いるために、上記入力または入出力において、イベントの発生時毎の、あるいはサイクル毎の、あるいはトランスアクション毎の保存を1以上のファイル形態で保存するか、または、上記一定の間隔であるいは1以上の特定のシミュレーション時点でTBの状態の保存を1以上のファイル形態で保存することを含む、請求項1、2、12、54または55に記載の設計検証方法。
  24. 最小限の情報収集が、前段シミュレーションステップである1次シミュレーションの過程において、一定の間隔であるいは1以上の特定のシミュレーション時点において可視度が必要なDUVにおける1以上の設計客体に対する状態と、上記前段シミュレーションステップである1次シミュレーションの全過程で上記可視度が必要なDUVにおける1以上の設計客体のすべての入力値と入力モード時のすべての入出力値を、後段シミュレーションステップである1次以後のシミュレーションの過程において入力スティミュラスとして用いるために、上記入力または入出力において、イベントの発生時毎の、あるいはサイクル毎の、あるいはトランスアクション毎の保存を1以上のファイル形態で保存することを含む、請求項1、2、12、54または55に記載の設計検証方法。
  25. 前段シミュレーションステップである1次シミュレーションの施行中に、1以上のシミュレーション時点で保存された1以上の可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態のうち1以上の状態を選定して、後段シミュレーションステップである1次以後の1回以上のシミュレーションを、上記選定された1以上の可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態から開示されるようにシミュレータを1回以上設定した後、シミュレーションを1回以上進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行うことにより、高いシミュレーション速度と設計ブロックに対する可視度を速やかに確保する、請求項23または24に記載の設計検証方法。
  26. 後段シミュレーションステップである1次以後のシミュレーションを、上記選定された2以上の可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態から開示されるように1つのシミュレータを2回以上順次に設定して2回以上順次にシミュレーションを進行する過程において、前段シミュレーションステップである1次シミュレーションの遂行時に、上記可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態を保存するシミュレーション時点がシミュレーション時間的に最後にあるDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態をまず上記1つのシミュレータに設定してこの状態をもってシミュレーションを進行し、その後のシミュレーションも上記単一のシミュレータで行う過程で状態を保存したシミュレーション時点がシミュレーション時間的に後にあるものを優先してシミュレータに設定し、シミュレーションがシミュレーション状態保存時間の逆順に進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行うことにより、高いシミュレーション速度と設計ブロックに対する可視度を速やかに確保する、請求項25に記載の設計検証方法。
  27. 後段シミュレーションステップである1次以後の1回以上のシミュレーションを、前段シミュレーションステップである1次シミュレーションの過程で保存された2以上の可視度が必要なDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態をそれぞれ用いて2回以上の部分シミュレーションをするものに切り換え、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上のシミュレータを用いて、上記2以上のDUVにおける1以上の設計客体の状態と、場合によっては、TBの状態のそれぞれを、上記2以上のシミュレータのそれぞれに設定して2以上のシミュレーションが互いに独立的に上記2以上のシミュレータで並列的に実行して、高いシミュレーション速度と設計ブロックに対する可視度を速やかに確保する、請求項1、2、23、24、25、26、54または55に記載の設計検証方法。
  28. 前段シミュレーションステップである1次のシミュレーションを、速やかなシミュレーションが行われるように、元の設計コードの代わりに、元の設計コードと関数的に等価であるが、異なる構文形式に変換された設計コードを用いてシミュレーションする、請求項1、2、3、4、5、9、10、11、12、23、24、25、27、54または55に記載の検証方法。
  29. シミュレーションを複数のテストベンチにより数回行って、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計誤謬の位置を見出してこれを修正する設計検証方法において、DUVにおける1以上の設計客体の状態と場合によっては、TBの状態を保存する設計検証方法。
  30. 上記可視度が必要なDUVにおける1以上の設計客体の状態情報として、上記1以上の該当設計客体の最小状態情報を用いる、請求項21、22、23、24、25、26、27または29に記載の検証方法。
  31. 前段シミュレーションステップである1次シミュレーションにおいて、最小限1以上の設計客体に対して後段シミュレーションステップである1次以後の1以上のシミュレーションよりさらに抽象化された設計コードを用いることにより、さらに抽象化された水準において上記前段シミュレーションステップである1次シミュレーションを行い、上記後段シミュレーションステップである1次以後の1以上のシミュレーションは、上記前段シミュレーションステップである1次シミュレーションよりさらに抽象化されていない設計コードを用いてシミュレーションを行うことにより、速やかな検証を行う、請求項1、2、3、4、5、9、10、11、12、23、24、25、27、54または55に記載の検証方法。
  32. 可視度が必要なDUVにおける1以上の設計客体の状態情報は、前段シミュレーションである1次シミュレーションの遂行の途中に獲得され、上記獲得された状態情報を用いて、後段シミュレーションである1つ以上の1次以後のシミュレーションの遂行が2以上のシミュレータで並列にまたは1つのシミュレータで順次に行われる、請求項31に記載の検証方法。
  33. 前段シミュレーションステップである1次シミュレーションの施行中に、1以上のシミュレーション時点で保存された1以上の可視度が必要なDUVにおける1以上の設計客体の状態と、上記入力スティミュラスとして用いるために保存された1以上のファイルを選定し、後段シミュレーションステップである1次以後の1回以上のシミュレーションを、上記選定された1以上の可視度が必要なDUVにおける1以上の設計客体の状態から開示されるようにシミュレータを1回以上設定した後、シミュレーションを1回以上進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行うことにより、高いシミュレーション速度と設計ブロックに対する可視度を速やかに確保する、請求項23または24に記載の設計検証方法。
  34. 後段シミュレーションステップである1次以後のシミュレーションを、上記選定された2以上の可視度が必要なDUVにおける1以上の設計客体の状態から開示されるように、1つのシミュレータを2回以上順次に設定して2回以上順次にシミュレーションを進行する過程において、前段シミュレーションステップである1次シミュレーションの遂行時に、上記可視度が必要なDUVにおける1以上の設計客体の状態を保存するシミュレーション時点がシミュレーション時間的に最後にあるDUVにおける1以上の設計客体の状態を、まず上記1つのシミュレータに設定してこの状態をもってシミュレーションを進行し、その後のシミュレーションも上記単一のシミュレータで行う過程において、状態を保存したシミュレーション時点がシミュレーション時間的に後にあるものを優先してシミュレータに設定し、シミュレーションがシミュレーション状態保存時間の逆順に進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行うことにより、高いシミュレーション速度と設計ブロックに対する可視度を速やかに確保する、請求項33に記載の設計検証方法。
  35. 後段シミュレーションステップである1次以後の1回以上のシミュレーションを、前段シミュレーションステップである1次シミュレーションの過程で保存された2以上の可視度が必要なDUVにおける1以上の設計客体の状態をそれぞれ用いて2回以上の部分シミュレーションをするものに切り換え、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上のシミュレータを用いて、上記2以上のDUVにおける1以上の設計客体の状態を、それぞれ上記2以上のシミュレータそれぞれに設定して2以上のシミュレーションが互いに独立的に上記2以上のシミュレータで並列的に実行して、高いシミュレーション速度と設計ブロックに対する可視度を速やかに確保する、請求項1、2、23、24、33、34、54または55に記載の設計検証方法。
  36. シミュレーションを複数のテストベンチにより数回行って、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計誤謬の位置を見出してこれを修正する設計検証方法において、
    上記シミュレーションの一部を前段シミュレーションステップである1次シミュレーションと後段シミュレーションステップである1次以後の1回以上のシミュレーションに分けて行い、上記後段シミュレーションステップである1次以後の1回以上のシミュレーションを設計コードや合成で生成されたネットリストに存在する1以上の設計客体に対してシミュレーションが行われるようにするのに必要な最小限の情報を上記前段シミュレーションステップである1次シミュレーション過程で収集できるように設計コードや合成で生成されたゲート水準のネットリストに付加コードや付加回路を検証ソフトウェアを用いて自動化された方式で追加し、上記1次以後の1回以上のシミュレーションを可視度を得ながらも速やかに行うことにより、シミュレーション速度とデバッグのための可視度を同時に確保することを可能にする検証方法。
  37. 上位水準におけるシミュレーションの結果を用いて、下位水準におけるシミュレーションを速やかに行う検証方法。
  38. 上記上位水準におけるシミュレーションの結果が、1以上の設計客体に対する状態情報を含む、請求項37、57または58に記載の検証方法。
  39. 上記1以上の設計客体に対する状態情報が完全状態情報である、請求項38、64または65に記載の検証方法。
  40. 上記1以上の設計客体に対する状態情報が最小状態情報である、請求項38、64または65に記載の検証方法。
  41. 下位水準におけるシミュレーションを速やかに行う方法が、上記1以上の設計客体に対する上記状態情報を用いて、下位水準において2以上のシミュレーションを並列的に行う、請求項38、39、40、64または65に記載の検証方法。
  42. 並列的遂行が時間的並列遂行である、請求項41または67に記載の検証方法。
  43. 並列的遂行が空間的並列遂行である、請求項41または67に記載の検証方法。
  44. 上位水準におけるシミュレーションの結果と下位水準におけるシミュレーションの結果のうち1つをレファレンスと仮定し、1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を比べて、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果が異なる状況を見出して設計を修正することにより、上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にする、請求項37に記載の設計検証及び設計修正方法。
  45. 上記上位水準におけるシミュレーションがサイクル−基盤方式であり、上記下位水準におけるシミュレーションがイベント−駆動方式である、請求項44または59に記載の設計検証及び設計修正方法。
  46. 上記上位水準におけるシミュレーションがSystemCシミュレーションであり、上記下位水準におけるシミュレーションがRTLシミュレーションである、請求項44または59に記載の設計検証及び設計修正方法。
  47. 上記上位水準におけるシミュレーションがRTLシミュレーションであり、上記下位水準におけるシミュレーションがゲート水準シミュレーションである、請求項44または59に記載の設計検証及び設計修正方法。
  48. 上記下位水準におけるゲート水準シミュレーションが、タイミング情報を用いたタイミングシミュレーションである、請求項47に記載の設計検証及び設計修正方法。
  49. 上記下位水準におけるシミュレーションの結果が上位水準におけるシミュレーションの結果と互いに異なる状況を速やかに見出すために、上位水準におけるシミュレーションの結果を用いて下位水準においてシミュレーションを行う、請求項44または59に記載の設計検証及び設計修正方法。
  50. 上記下位水準におけるシミュレーションの結果が上位水準におけるシミュレーションの結果と互いに異なる状況を速やかに見出すために、上位水準におけるシミュレーションの結果を用いて下位水準において並列的にシミュレーションを行う、請求項44または59に記載の設計検証及び設計修正方法。
  51. 上記下位水準におけるシミュレーションの結果が上位水準におけるシミュレーションの結果と互いに異なる状況を速やかに見出すために、上記下位水準において用いる上位水準におけるシミュレーションの結果が、1以上の設計客体に対する状態情報を含む、請求項49または50に記載の設計検証及び設計修正方法。
  52. 上記1以上の設計客体に対する状態情報が上記1以上の設計客体に対する完全状態情報である、請求項51に記載の設計検証及び設計修正方法。
  53. 上記1以上の設計客体に対する状態情報が上記1以上の設計客体に対する最小状態情報である、請求項51に記載の設計検証及び設計修正方法。
  54. 検証ソフトウェアと1以上のシミュレータを具備する設計検証装置において、
    上記検証ソフトウェアは、設計コードや合成で生成されたゲート水準のネットリストに自動化された方式で付加コードや付加回路を追加し、後段シミュレーションステップである1次シミュレーション以後に行われる1回以上のシミュレーションを、設計コードや合成で生成されたネットリストに存在する1以上の設計客体に対してシミュレーションが行われるようにするのに必要な最小限の情報を、上記前段シミュレーションステップである1次シミュレーションの過程で収集できるようにし、1次以後の1回以上のシミュレーションを、可視度を得ながらも速やかに行うことにより、シミュレーションの速度とデバッグのための可視度を同時に確保することを可能とする設計検証装置。
  55. シミュレーションを複数のテストベンチにより数回行って、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の設計誤謬の位置を見出してこれを修正する設計検証方法において、
    上記シミュレーションの一部を前段シミュレーションステップである1次シミュレーションと後段シミュレーションステップである1次以後の1回以上のシミュレーションに分けて行い、上記後段シミュレーションステップである1次以後の1回以上のシミュレーションを設計コードや合成で生成されたネットリストに存在する1以上の設計客体に対してシミュレーションが行われるようにするのに必要な最小限の情報を上記前段シミュレーションステップである1次シミュレーション過程で収集できるように設計コードや合成で生成されたゲート水準のネットリストに付加コードや付加回路を検証ソフトウェアを用いて自動化された方式で追加し、上記1次以後の1回以上のシミュレーションを可視度を得ながらも速やかに行うことにより、シミュレーション速度とデバッグのための可視度を同時に確保することを可能にする検証方法。
  56. すべての設計客体が変更がない状況において、同じ抽象化ステップで行われる前段シミュレーションにおいては、シミュレーションの過程で最小限のシミュレーション実行結果のみをシミュレーションの結果として保存し、上記保存された前段シミュレーションの結果を用いて、同じ抽象化ステップで行われる後段シミュレーションを、2以上のシミュレータを用いて並列的に、あるいは1つのシミュレータのみを用いて1回以上順次に速やかに行う同時に、必要に応じて後段シミュレーションにおいては、1以上の設計客体に存在する1以上の変数及びシグナルに対するダンプを行って、高い可視度も同時に提供する検証方法。
  57. 上記上位水準におけるシミュレーションの結果が、シミュレーション波形を保存した1以上のファイルを含み、上記1以上のファイルを下位水準において用いる、請求項37に記載の検証方法。
  58. 上記上位水準におけるシミュレーションの結果としてシミュレーション波形を保存した1以上のファイルが存在することにより、上記1以上のファイルを下位水準において用いる、請求項37に記載の検証方法。
  59. シミュレーション波形を保存した1以上のファイルが上記上位水準におけるシミュレーションの結果として存在し、これを下位水準のシミュレーションでレファレンスとして活用して、1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションの結果と比べて、下位水準におけるシミュレーションの結果が上位水準におけるシミュレーションの結果と異なる状況を見出して設計を修正することにより、上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にする、請求項37に記載の設計検証及び設計修正方法。
  60. 上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションの結果と比べて、下位水準におけるシミュレーションの結果が上位水準におけるシミュレーションの結果と異なる状況を見出して設計を修正することにより、上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にすることを、下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションの結果と同一にすることにより達成する、請求項44または59に記載の設計検証及び設計修正方法。
  61. 上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションの結果と比べて、下位水準におけるシミュレーションの結果が上位水準におけるシミュレーションの結果と異なる状況を見出して設計を修正することにより、上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にすることを、上位水準におけるシミュレーションの結果を下位水準におけるシミュレーションの結果と同一にすることにより達成する、請求項44または59に記載の設計検証及び設計修正方法。
  62. 上記上位水準におけるシミュレーションがトランスアクション−基盤シミュレーションであり、上記下位水準におけるシミュレーションがサイクル−基盤シミュレーションである、請求項44または59に記載の設計検証及び設計修正方法。
  63. 上記上位水準におけるシミュレーションが行為水準シミュレーションであり、上記下位水準におけるシミュレーションがレジスタ転送水準シミュレーションである、請求項44または59に記載の設計検証及び設計修正方法。
  64. 上記上位水準におけるシミュレーションの結果が、1以上の設計客体に対する状態情報と、シミュレーションの全区間にわたる上記1以上の設計客体に対するすべての入力と入力モード時の入出力情報を含む、請求項37、57または58に記載の検証方法。
  65. 上記1以上の設計客体に対する状態情報が、シミュレーションの全区間上でのすべての状態情報ではないシミュレーション区間上での1以上の特定のシミュレーション時点のみにおける状態情報である、請求項38または64に記載の検証方法。
  66. 上記上位水準におけるシミュレーションの結果が、シミュレーションの全区間にわたる上記1以上の設計客体に対するすべての入力と入力モード時の入出力情報を含む、請求項37、57または58に記載の検証方法。
  67. 下位水準におけるシミュレーションを速やかに行う方法が、上記シミュレーションの全区間にわたる上記1以上の設計客体に対するすべての入力と入力モード時の入出力情報を用いて、下位水準において2以上のシミュレーションを並列的に行う、請求項66に記載の検証方法。
  68. 並列的遂行が時間的並列遂行と空間的並列遂行を混用した、請求項41または67に記載の検証方法。
  69. 下位水準におけるシミュレーションを速やかに行う方法が、上位水準におけるシミュレーションの過程で得られた1以上の設計客体に対する状態情報と、1以上の設計客体に対するすべての入力と入力モード時の入出力情報を用いることにより、下位水準において2以上のシミュレーションを用いた並列的遂行が時間的並列遂行と空間的並列遂行を混用して行われる、請求項37、38または64に記載の検証方法。
  70. 上記上位水準におけるシミュレーションがトランスアクション−基盤方式であり、上記下位水準におけるシミュレーションがイベント−駆動方式である、請求項44または59に記載の設計検証及び設計修正方法。
  71. 上記上位水準におけるシミュレーションがトランスアクション−基盤方式とサイクル−基盤方式を共に用い、上記下位水準におけるシミュレーションがイベント−駆動方式である、請求項44または59に記載の設計検証及び設計修正方法。
  72. 上記元の設計コードと関数的に等価であるが、異なる構文形式に変換された設計コードにおいて、少なくとも一部分が論理変換あるいは論理合成の過程を通じて得られる、請求項28に記載の検証方法。
  73. 上記元の設計コードと関数的に等価であるが、異なる構文形式に変換された設計コードが、少なくとも部分的に二進決定ダイヤグラム(BDD)あるいは多進決定ダイアグラム(MDD)で表現されてシミュレーションされる、請求項28に記載の検証方法。
  74. 下位水準におけるシミュレーションの結果を用いて上位水準におけるシミュレーションの結果を部分的にあるいは全体的に修正する、上位水準におけるリシミュレーションを行う検証方法。
  75. 上位水準におけるシミュレーションの結果と下位水準におけるシミュレーションの結果をもって、1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を比べて、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果が異なる状況を見出して他の部分での部分的シミュレーションを1回以上行うことにより、上記1以上の特定のシミュレーション時点において、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にする、請求項37または74に記載の設計検証方法。
  76. 上記下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果が異なる部分における1回以上の部分的シミュレーションが、上位水準におけるシミュレーションの結果を下位水準におけるシミュレーションで用い、このようにして得られた下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションで再利用し、このような過程を継続的に繰り返して適用することにより、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にする、請求項75に記載の設計検証方法。
  77. 上記上位水準におけるシミュレーションがタイミング情報を用いていないゲート水準シミュレーションであり、上記下位水準におけるシミュレーションがタイミング情報を用いたゲート水準におけるタイミングシミュレーションである、請求項37、44または59に記載の設計検証及び設計修正方法。
  78. 上記ゲート水準シミュレーションがタイミング情報を用いていないゲート水準シミュレーションの場合に、シミュレーションの対象となる設計客体の一部分が部分的に二進決定ダイヤグラム(BDD)あるいは多進決定ダイアグラム(MDD)で表現されてシミュレーションされる、請求項47または77に記載の検証方法。
  79. 上記上位水準におけるシミュレーションの結果を下位水準におけるシミュレーションで用い、このようにして得られた下位水準におけるシミュレーションの結果を上位水準におけるシミュレーションで再利用する繰り返し過程が、一度繰り返す度にシミュレーションする時間区間を狭めながら適用することにより、下位水準におけるシミュレーションの結果と上位水準におけるシミュレーションの結果を同一にする、請求項76に記載の設計検証方法。
  80. 検証ソフトウェアと2以上の異なる検証プラットフォームを具備する設計検証装置において、
    上記検証ソフトウェアは、設計コードや合成で生成されたゲート水準のネットリストに自動化された方式で付加コードや付加回路を付加して、上記2以上の異なる検証プラットフォームのうち1以上の特定の検証プラットフォーム上で1次検証実行を行いながら、1次検証実行以後の1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる1以上の他の検証プラットフォーム上で行われる検証実行を、検証サイクル時間区間や設計コードや合成で生成されたゲート水準のネットリストに存在するブロックに対して検証実行が行われるようにするのに必要な最小限の情報を1次検証実行の過程で収集できるようにし、1次以後の1回以上の検証実行を速やかに行うことを可能とする設計検証装置。
  81. 上記2以上の異なる検証プラットフォーム中の特定の検証プラットフォーム上で1次検証実行を行いながら、1次検証実行以後の上記1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる1以上の検証プラットフォーム上で行われる検証実行の検証サイクル時間区間や設計コード合成で生成されたゲート水準のネットリストに存在するブロックに対して検証実行が行われるようにするのに必要な最小限の情報を1次検証実行の過程で自動的に収集できるようにし、上記1次検証実行のための1以上の検証プラットフォームを用いた1次検証実行を行いながら上記最小限の情報を収集し、この収集された情報を用いることにより、上記1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる1以上の検証プラットフォーム上で1次以後の1回以上の検証実行を0検証サイクル時間から開示されなくてもよいようにすることで、検証を速やかに行うことを可能とする、請求項80に記載の設計検証装置。
  82. 2以上の異なる検証プラットフォーム中の特定1以上の検証プラットフォーム上で1次検証実行を行いながら、1次検証実行以後の上記1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる1以上の検証プラットフォーム上で行われる検証実行の検証サイクル時間区間や設計コードや合成で生成されたゲート水準のネットリストに存在するブロックに対して検証実行が行われるようにするのに必要な最小限の情報を1次検証実行の過程で自動的に収集できるようにし、上記1次検証プラットフォームを用いた1次検証実行を行いながら上記最小限の情報を収集し、この収集された情報を用いることにより、上記1次検証実行のための1以上の検証プラットフォームを用いた1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる検証プラットフォーム上で1次以後の1回以上の検証実行において、設計コードや合成で生成されたゲート水準のネットリストに存在する1以上の特定のブロックに対してのみ検証実行を可能とすることにより、検証を速やかに行うことを可能とする、請求項80に記載の設計検証装置。
  83. 2以上の検証プラットフォームを混合的に用いて設計検証実行を行うことにより、設計コードや合成で生成されたゲート水準のネットリストに存在する設計誤謬の位置を見出してこれを修正する設計検証方法において、
    上記検証遂行の一部は、前段検証として行われる1次検証及び後段検証として行われる1次以後検証に分かれ、追加的なコードまたは回路が設計コードまたは合成されたネットリストに自動的に付加され、上記2以上の他の検証プラットフォームの中の1以上の特定検証プラットフォーム上で1次検証実行を行いながら、1次検証実行以後の1次検証実行に用いられた1以上の特定検証プラットフォームとは少なくとも1つ以上で他の1以上の他の検証プラットフォーム上で行われる検証実行を検証サイクル時間区間や設計コードや合成で生成されたゲート水準のネットリストに存在する複数のブロックに対し、検証実行が行われるようにするのに必要な最小限の情報を1次検証実行の過程で収集できるようにし、1つ以上の特定ブロックに対してのみ行われる時、1つ以上の1次以後検証実行を速やかに行うことを可能とする設計検証装置。
  84. 上記検証遂行の一部は、前段検証として行われる1次検証及び後段として行われる1次以後検証に分かれ、追加的なコードまたは回路が設計コードまたは合成されたネットリストに自動的に付加され、上記2以上の他の検証プラットフォームの中の1以上の特定検証プラットフォーム上で1次検証実行を行いながら、1次検証実行以後の1次検証実行に用いられた1以上の特定検証プラットフォームとは少なくとも1つ以上で他の1以上の他の検証プラットフォーム上で行われる検証実行を検証サイクル時間区間や設計コードや合成で生成されたゲート水準のネットリストに存在する複数のブロックに対して検証実行が行われるようにするのに必要な最小限の情報を1次検証実行の過程で収集できるようにし、この実行の殆どがシミュレーション時間0ではない他のシミュレーション時間から始まる時、1つ以上の1次以後検証実行を速やかに行うことを可能とする設計検証装置。
  85. 1次以後の1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる1以上の検証プラットフォーム上での1回以上の検証実行のそれぞれを、2以上の検証プラットフォーム上で並列的に行うことにより、検証を速やかに行うことを可能とする、請求項83または84に記載の検証方法。
  86. 1次以後の1次検証実行に用いられた1以上の特定の検証プラットフォームとは最小限1つ以上が異なる1以上の検証プラットフォーム上での1回以上の検証実行のそれぞれを行うための、上記2以上の検証プラットフォーム構成を2以上の互いに異なる、それぞれ異なる検証プラットフォームで構成してこれらを並列的に行うことにより、検証を速やかに行うことを可能とする、請求項85に記載の検証方法。
  87. 1次以後の1次検証実行に用いられた1以上の特定の検証プラットフォームとは異なる検証プラットフォーム上での1回以上の検証実行のそれぞれを、1つの検証プラットフォーム上で順次に行うことにより検証を行うことを可能とする、請求項83または84に記載の検証方法。
  88. 1次以後の1回以上の検証実行において、検証実行のそれぞれにおいて行おうとする検証サイクルの全区間や検証サイクルの特定区間を、1以上の特定の検証プラットフォームを用いた1次検証実行で収集された2以上の状態情報から開示されるように、1次検証実行に用いられた1以上の特定の検証プラットフォームとは異なる1つの検証プラットフォームを2回以上順次に設定し、2回以上順次に上記他の1つの検証プラットフォームを実行する過程において、1次検証実行時に状態情報を保存する時点が検証時間的に最後にある状態情報を、まず上記1つの検証プラットフォームに設定してこの状態情報をもって進行し、その後の実行も上記1つの検証プラットフォームで行う過程において1次検証実行の過程で状態情報を保存した時点が検証時間的に後にあるものを優先して上記1つの検証プラットフォームに設定し、1次以後の検証実行のそれぞれが2以上の状態情報を用いて設計状態保存時間の逆順に進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行う、請求項83、84、85、86または87に記載の設計検証方法。
  89. 最小限の情報収集が、1次検証実行の過程で一定の間隔であるいは特定の時点でDUVの状態情報と検証サイクル全体でDUVのすべての入力と入出力情報を1以上のファイル形態で保存することを含む、請求項80、81、82、83または84に記載の設計検証方法。
  90. 最小限の情報収集が1次検証実行の過程で一定の間隔であるいは特定の時点でDUVの状態情報とTBの状態情報を1以上のファイル形態で保存することを含む、請求項80、81、82、83または84に記載の設計検証方法。
  91. 1次検証実行に用いられた検証プラットフォームが1以上のシミュレータである場合において、最小限の情報収集が1次検証実行の過程で一定の間隔であるいは特定の時点でシミュレーション状態を1以上のファイル形態で保存することを含む、請求項80、81、82、83または84に記載の設計検証方法。
  92. 上記1以上のシミュレータを用いた1次検証実行の施行中に1以上の時点でシミュレーション状態を保存する方法を、シミュレータのsave命令語を用い、1次以後の検証実行を上記選定された1以上のシミュレーション状態から抽出された状態情報から開示されるようにする、請求項91に記載の設計検証方法。
  93. 最小限の情報収集が1次検証実行の過程で設計コードや合成で生成されたゲート水準のネットリストに存在する特定のブロックの入力と入出力を、検証サイクル全体で持続的に探針して1以上のファイル形態で保存することを含む、請求項80、81、82、83または84に記載の設計検証方法。
  94. 1次以後の検証実行のそれぞれを1次検証実行の過程で保存された2以上のDUV状態情報のそれぞれを用いて2回以上の部分検証実行をするものに切り換え、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上の検証プラットフォームを用いて上記2以上の状態情報のそれぞれを上記2以上の検証プラットフォームのそれぞれに設定して2回以上の部分検証実行が互いに独立的に上記2以上の検証プラットフォームで並列的に実行し、実行された2以上の結果をコンピュータネットワークを用いて1つのコンピュータに伝送し統合して全体の検証結果として提供する、請求項85または86に記載の設計検証方法。
  95. 1次以後の検証実行のそれぞれを、1次検証実行を通じて得られた2以上のブロックと、これらのブロックそれぞれのすべての入力と入出力を1次検証実行の全過程で探針した2以上の探針ファイルをコンパイルして得られた2以上の実行ファイルを、コンピュータネットワークで連結された2以上のコンピュータにインストールされた2以上の検証プラットフォームを用いて独立的かつ並列的に行い、実行された2以上の結果をコンピュータネットワークを用いて1つのコンピュータに転送して統合し、全体の検証結果として提供する、請求項85または86に記載の設計検証方法。
  96. 1次検証実行の施行中に1以上の時点で保存された1以上の状態情報の中で1以上の状態情報を選定して、1次以後の設計検証を上記選定された1以上の状態情報から開示されるように、1次検証実行で用いられた検証プラットフォームとは異なる検証プラットフォームを1回以上設定した後、検証実行を1回以上進行しながら、設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数に対する探針を行う、請求項82に記載の設計検証方法。
  97. 1次検証実行中に設計コードや合成で生成されたゲート水準のネットリストに存在する1以上のブロックに対する入力と入出力を検証実行の検証サイクル全過程で探針して保存した1以上の探針ファイルの中で1以上を選定して、1次以後の検証実行を上記選定された1以上の探針ファイルと該当1以上のブロックを用いて、1次検証実行で用いられた検証プラットフォームとは異なる検証プラットフォームのためにコンパイルして生成された1以上のファイルの中で、追加的な探針が必要な設計コードや合成で生成されたゲート水準のネットリストに存在するシグナルと変数を有している該当1以上のブロックに係るファイルを用いて上記追加的な探針を行う、請求項83に記載の設計検証方法。
  98. 任意のシミュレーション遂行、シミュレーション加速遂行、ハードウェアエミュレーション遂行、またはプロトタイピング遂行を通じて得られた結果を用いた追加的な設計検証遂行において、上記追加的な設計検証遂行を前段検証としての1次検証実行と、後段検証としての1次以後検証実行に分けて行い、設計コードや合成で生成されたゲート水準のネットリストに存在する1つ以上の設計客体に対して1つ以上の1次以後検証実行が行われるようにするのに必要な最小限の情報を、1次検証実行の過程で収集できるようにし、検証を速やかに行うことを可能とする検証方法。
  99. 検証ソフトウェアと1以上の検証プラットフォームを具備する設計検証装置において、
    上記検証ソフトウェアは、設計客体で構成される設計コードや設計回路に自動化された方式で付加コードや付加回路を追加して、1回以上の検証実行の途中で動的情報の収集を可能とし、この収集された動的情報を1以上の設計客体が変更された後に実行される検証実行に再活用することにより、検証実行の全体時間を全体的にあるいは部分的に短縮できるようにする設計検証装置。
  100. 検証ソフトウェアと1以上の検証プラットフォームを用いて、設計客体で構成される設計コードや設計回路に自動化された方式で付加コードや付加回路を追加して、1回以上の検証実行の途中に動的情報の収集を可能とし、この収集された動的情報を1以上の設計客体が変更された後に実行される検証実行に再活用することにより、検証実行の全体時間を全体的にあるいは部分的に短縮できるようにする設計検証方法。
  101. 1以上の設計客体の変更後の設計検証実行結果が、設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点を見出す方法を、変更された1以上の設計客体のすべての出力と両方向の入出力値と、変更される前の上記1以上の設計客体のすべての出力と両方向の入出力値と比べて、自動化された方式で見出す、請求項99または100に記載の設計検証方法。
  102. 1以上の設計客体の変更後の設計検証実行結果が、設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点を見出す方法を、変更された1以上の設計客体のすべての出力値と、変更される前の上記1以上の設計客体のすべての出力値と比べて、自動化された方式で見出す、請求項99または100に記載の設計検証方法。
  103. 1以上の設計客体の変更後の設計検証実行結果が、設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点を見出す方法を、変更前の1回以上の検証実行の過程で得られる再生用入力情報を、変更された1以上の設計客体のみに印加して、自動化された方式で見出す、請求項99または100に記載の設計検証方法。
  104. 1以上の設計客体の変更後に行われる検証実行において、上記1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点までは、変更された設計客体とこれらの再生用入力情報のみを用いた検証遂行を通じて速やかに検証する、請求項99、100、101,102または103に記載の設計検証方法。
  105. 1以上の設計客体の変更後に行われる検証実行において、上記1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点までは、変更された設計客体とこれらの再生用入力情報を用いた検証遂行とともに、設計変更が行われていない設計客体の一部分のみを用いた検証遂行のみを通じて速やかに検証する、請求項99、100、101,102または103に記載の設計検証方法。
  106. 1以上の設計客体の変更後に行われる検証実行において、上記1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点以後からは、すべての設計客体を含む検証実行に自動的に切り換えて検証実行する、請求項99、100、101,102または103に記載の設計検証方法。
  107. 1以上の設計客体の変更後に行われる検証実行において、上記1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において異なってくる1以上の特定の時点から、さらに等しくなる特定の時点までは、すべての設計客体を含む検証実行に自動的に切り換えて検証実行する、請求項99、100、101,102または103に記載の設計検証方法。
  108. 1以上の設計客体の変更後に行われる検証実行において、上記1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点までは、変更された設計客体とこれらの再生用入力情報を用いて速やかに検証し、上記最初に異なってくる時点以後からはすべての設計客体を含む検証実行に自動的に切り換えて検証実行する、請求項99、100、101,102または103に記載の設計検証方法。
  109. 上記最初に異なってくる時点以後からはすべての設計客体を含む検証実行に自動的に切り換えるために、設計変更されていない設計客体の状態情報の復元を、上記最初に異なってくる時点の付近で設計変更が行われる前に行われた検証実行の過程で収集された設計客体の状態情報を活用して、自動化された方式で行われる、請求項106または108に記載の設計検証方法。
  110. 上記設計客体の状態情報の復元は、シミュレータの再出発機能によるし、設計状態の保存は、シミュレータのスナップショット機能による、請求項109に記載の設計検証方法。
  111. シミュレータの再出発機能を用いる場合に、これをシミュレータのrestoreやrestart命令を用い、シミュレータのスナップショット機能を用いる場合に、これをシミュレータのsaveやcheckpoint命令を用いる、請求項110に記載の設計検証方法。
  112. 1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点を見出す方法を、変更された1以上の設計客体のすべての出力と両方向の入出力値と、変更される前の上記1以上の設計客体のすべての出力と両方向の入出力値と順次に比べて自動化された方式で見出す、請求項99または100に記載の設計検証方法。
  113. 1以上の設計客体の変更によって、設計検証実行結果が設計客体の変更前の設計検証実行結果と検証時間の側面において最初に異なってくる時点を見出す方法を、変更される前の設計客体に対する1以上の検証時点での動的情報を並列的に用いて自動化された方式で見出す、請求項99または100に記載の設計検証方法。
  114. 上記検証プラットフォームが、シミュレータ、シミュレーションアクセル、エミュレータ、プロトタイピングシステムまたはこれらの混合からなる、請求項99に記載の設計検証装置。
  115. 上記検証遂行の全体あるいは一部分がシミュレータを通じて行われる場合には、全体の検証遂行のために2以上のプロセスをプロセス間の通信を用いて連動する、請求項99、100、101、102、103、104、105、110または111に記載の設計検証方法。
  116. 検証遂行の途中にプロセス間の通信を用いて連動される上記2個以上のプロセスの中で、最小限1個のプロセスに対してスナップショットを活用して設計コード変更前の検証遂行の過程で1以上の設計客体に対する動的情報を収集し、設計コードの変更後に実行される特定の時間帯からの検証実行を上記動的情報を用いた再出発を通じて行うことにより、上記1以上の設計客体が変更された後の検証実行の全体時間を全体的にあるいは部分的に短縮する、請求項115に記載の設計検証方法。
  117. 上記スナップショットを、シミュレータのsave機能あるいはcheckpoint機能を用い、上記再出発をシミュレータのrestart機能あるいはrestore機能を用いる、請求項116に記載の設計検証方法。
  118. 検証プラットフォームとしてシミュレーションアクセルを用いる場合、あるいはシミュレーションアクセルが含まれた検証プラットフォームを用いる、請求項99、100、101、102、103、104、105、106、108、109、115、116または117に記載の設計検証方法。
  119. 上記設計変更後に行われる検証実行の過程で、上記自動に切り換わる時点の決定が、上記付加コードが設計客体に追加されて検証実行の過程で行われることにより自動的に行われる、請求項106、108、109、110または111に記載の設計検証方法。
  120. 上記設計変更後に行われる検証実行の過程で、上記自動に切り換わる時点における設計変更された設計客体の動的情報と、設計変更されていない設計客体の動的情報のような検証時間帯に正確に合わせることが、付加コードが設計客体に追加されて検証実行の過程で行われることにより自動的に行われる、請求項106、108、109、110または111に記載の設計検証方法。
  121. 上記設計変更後に行われる検証実行の過程で、上記自動に切り換わる時点からはすべての設計客体を用いた設計検証に切り換わって検証遂行されることが、付加コードが設計客体に追加されて検証実行の過程で行われることにより自動的に行われる、請求項106、108、109、110または111に記載の設計検証方法。
JP2007502715A 2004-03-09 2005-03-09 検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論 Pending JP2007528553A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR1020040017476A KR20040063845A (ko) 2001-09-14 2004-03-09 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
KR1020040019066A KR20040063846A (ko) 2001-09-14 2004-03-16 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법
KR20040055329 2004-07-12
KR1020040093309A KR20050090053A (ko) 2004-03-06 2004-11-08 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
KR1020050007330A KR20050118107A (ko) 2004-03-09 2005-01-24 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
PCT/KR2005/000668 WO2005093575A1 (en) 2004-03-09 2005-03-09 Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same

Publications (2)

Publication Number Publication Date
JP2007528553A true JP2007528553A (ja) 2007-10-11
JP2007528553A5 JP2007528553A5 (ja) 2008-04-24

Family

ID=35056368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007502715A Pending JP2007528553A (ja) 2004-03-09 2005-03-09 検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論

Country Status (2)

Country Link
JP (1) JP2007528553A (ja)
WO (1) WO2005093575A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140034050A (ko) * 2012-09-07 2014-03-19 삼성전자주식회사 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법
JP2014053011A (ja) * 2012-09-07 2014-03-20 Samsung Electronics Co Ltd アサーション生成装置及び方法並びにプロセッサ検証装置及び方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8781808B2 (en) 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
CN100371910C (zh) * 2006-04-30 2008-02-27 华为技术有限公司 单板中本地版本软件的校验方法
GB2524016B (en) * 2014-03-11 2021-02-17 Advanced Risc Mach Ltd Hardware simulation
US10061876B2 (en) 2014-12-23 2018-08-28 Board Of Trustees Of The University Of Illinois Bounded verification through discrepancy computations
CN109726507B (zh) * 2019-01-17 2023-04-18 湖南进芯电子科技有限公司 一种高效的多功能验证方法
CN111310396B (zh) * 2020-02-13 2023-10-03 深圳航天科技创新研究院 一种fpga虚拟平台及实现fpga虚拟平台的方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04502985A (ja) * 1988-10-05 1992-05-28 クイックターン デザイン システムズ インコーポレイテッド 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法
JPH0561933A (ja) * 1991-09-04 1993-03-12 Hokuriku Nippon Denki Software Kk 論理検証装置
JPH09265489A (ja) * 1996-03-29 1997-10-07 Fujitsu Ltd シミュレーション処理方法
JPH1010196A (ja) * 1996-06-21 1998-01-16 Hitachi Ltd 論理エミュレーション装置
JPH10124536A (ja) * 1996-10-17 1998-05-15 Matsushita Electric Ind Co Ltd シミュレーション再現方法
JPH10232890A (ja) * 1996-10-28 1998-09-02 Altera Corp プログラマブル論理回路のための組み込み式論理アナライザー
JP2000250949A (ja) * 1999-02-26 2000-09-14 Matsushita Electric Ind Co Ltd シミュレーション装置
WO2003017099A1 (en) * 2001-08-14 2003-02-27 Axis Systems, Inc. Vcd-on-demand system and method
JP2003085235A (ja) * 2001-09-11 2003-03-20 Matsushita Electric Ind Co Ltd シミュレーション方法および装置
WO2003036523A1 (fr) * 2001-10-24 2003-05-01 Renesas Technology Corp. Procede et programme de simulation et procede d'affichage

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185707B1 (en) * 1998-11-13 2001-02-06 Knights Technology, Inc. IC test software system for mapping logical functional test data of logic integrated circuits to physical representation
JP3178458B2 (ja) * 1999-03-31 2001-06-18 日本電気株式会社 回路シミュレーション装置および方法
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6675310B1 (en) * 2000-05-04 2004-01-06 Xilinx, Inc. Combined waveform and data entry apparatus and method for facilitating fast behavorial verification of digital hardware designs
US6658633B2 (en) * 2001-10-03 2003-12-02 International Business Machines Corporation Automated system-on-chip integrated circuit design verification system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04502985A (ja) * 1988-10-05 1992-05-28 クイックターン デザイン システムズ インコーポレイテッド 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法
JPH0561933A (ja) * 1991-09-04 1993-03-12 Hokuriku Nippon Denki Software Kk 論理検証装置
JPH09265489A (ja) * 1996-03-29 1997-10-07 Fujitsu Ltd シミュレーション処理方法
JPH1010196A (ja) * 1996-06-21 1998-01-16 Hitachi Ltd 論理エミュレーション装置
JPH10124536A (ja) * 1996-10-17 1998-05-15 Matsushita Electric Ind Co Ltd シミュレーション再現方法
JPH10232890A (ja) * 1996-10-28 1998-09-02 Altera Corp プログラマブル論理回路のための組み込み式論理アナライザー
JP2000250949A (ja) * 1999-02-26 2000-09-14 Matsushita Electric Ind Co Ltd シミュレーション装置
WO2003017099A1 (en) * 2001-08-14 2003-02-27 Axis Systems, Inc. Vcd-on-demand system and method
JP2003085235A (ja) * 2001-09-11 2003-03-20 Matsushita Electric Ind Co Ltd シミュレーション方法および装置
WO2003036523A1 (fr) * 2001-10-24 2003-05-01 Renesas Technology Corp. Procede et programme de simulation et procede d'affichage

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140034050A (ko) * 2012-09-07 2014-03-19 삼성전자주식회사 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법
JP2014053011A (ja) * 2012-09-07 2014-03-20 Samsung Electronics Co Ltd アサーション生成装置及び方法並びにプロセッサ検証装置及び方法
KR101968214B1 (ko) 2012-09-07 2019-04-11 삼성전자주식회사 사용자 프로그램 코드에 기반한 어써션 생성 장치 및 방법, 어써션을 이용한 프로세서 검증 장치 및 방법

Also Published As

Publication number Publication date
WO2005093575A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
US20080306721A1 (en) Dynamic-Verification-Based Verification Apparatus Achieving High Verification Performance and Verification Efficiency and the Verification Methodology Using the Same
US8781808B2 (en) Prediction-based distributed parallel simulation method
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US8751984B2 (en) Method, system and computer program for hardware design debugging
US20020040288A1 (en) Method for design validation of complex IC
JP2007528553A (ja) 検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論
WO2007043786A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
Bartley et al. A comparison of three verification techniques: directed testing, pseudo-random testing and property checking
WO2002073474A1 (en) Method and apparatus for design validation of complex ic without using logic simulation
WO2022251267A1 (en) Testable time-to-digital converter
KR20040063846A (ko) 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법
CN117094269A (zh) 一种验证方法、装置、电子设备及可读存储介质
US11200127B2 (en) Automated self-check of a closed loop emulation replay
US20050076282A1 (en) System and method for testing a circuit design
KR20060066634A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
Silva et al. A methodology aimed at better integration of functional verification and RTL design
US7051303B1 (en) Method and apparatus for detection and isolation during large scale circuit verification
Bombieri et al. Hybrid, incremental assertion-based verification for TLM design flows
Bombieri et al. On the reuse of RTL assertions in SystemC TLM verification
KR20060101127A (ko) Esl 설계 방식에서의 효과적인 함수적 설계 검증 장치 및이를 이용한 검증 방법
KR20050118107A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
KR20050101105A (ko) 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
Zhong-hai et al. The improvement for transaction level verification functional coverage
KR20070039857A (ko) 체계적 점진적 구체화를 통한 전자시스템수준에서부터게이트수준까지의 검증 방법
KR20080107226A (ko) 대규모 디지털시스템 설계에서의 인터렉티브 디버깅 방법

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100525