JP3872954B2 - 有限状態機械を識別して回路設計を検査するシステムおよび方法 - Google Patents
有限状態機械を識別して回路設計を検査するシステムおよび方法 Download PDFInfo
- Publication number
- JP3872954B2 JP3872954B2 JP2000548819A JP2000548819A JP3872954B2 JP 3872954 B2 JP3872954 B2 JP 3872954B2 JP 2000548819 A JP2000548819 A JP 2000548819A JP 2000548819 A JP2000548819 A JP 2000548819A JP 3872954 B2 JP3872954 B2 JP 3872954B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- design
- fsm
- state
- variable
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318314—Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31704—Design for test; Design verification
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/31835—Analysis of test coverage or failure detectability
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/318357—Simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Tests Of Electronic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
(技術分野)
本発明は、全体として、電子式設計自動化(EDA)環境で生成される回路設計記述を自動的にテストすることに関し、より詳細には、有限状態機械を識別して、VerilogまたはVHDL環境で回路設計を検査することに関する。
【0002】
(背景技術)
電子式設計自動化(EDA)は、シリコン中に電子回路を製作する前に、電子回路を設計、シミュレートおよびテストするためにコンピュータープログラムを使用するプロセスである。VerilogおよびVHDLは、設計、シミュレートおよびテストのステップで回路を規定するために一般に使用される2つの言語である。回路設計は、実際にデバイスが製作される前に、種々のシミュレーション/エミュレーション・ソフトウェアパッケージによってテストされ、設計上の欠陥が検出されて修正される。製作前に回路設計をテストすることにより、設計会社は、何百万ドルもの回復不可能なエンジニアリングコスト(NRE)を節約できる。しかし、回路設計が複雑になるにつれて、同様にテストも複雑になる。システム設計者は、常により短い期限で益々複雑化する回路を設計しテストすることが求められるので、設計者は、より多くの時間を使って設計をテストして、結果として製品の出荷が遅れてしまうこと、または回路部分のみをテストして、結果として設計中に多くの未発見のバグが残るというリスクが高くなってしまうことを選択する必要がある。
【0003】
市場にある種々のシミュレーションおよび試験装置は、回路設計検査の効率を高めようとするものである。1つのアプローチは、設計シミュレーションプログラムをスピードアップするものである。固有コードシミュレータ、シミュレーション・アクセラレーションおよびチップエミュレーションシステムは、設計シミュレートに費やす時間を低減し、設計の中のすぐ隣のバグの識別に費やされる時間を低減できる。しかし、設計プロセスの早い段階では、設計バグが優勢でありシミュレーションのスピードアップはバグを識別するのにほとんど役立たない。
【0004】
回路設計をランダムにテストする別のアプローチもある。ランダムテストは、関連する特有のテストベクトルをランダムに生成し、このべクトル使って設計をテストする(または「機能試験する」)。このアプローチでは、ランダムテストに割り当てる時間が増えれば増えるほど、より多くの回路設計をテストできる。ランダムテストは、バグの発見が行き当たりばったりなので時間がかかりリスクを伴うものであり、一般的には回路設計を完全にテストする十分な時間はない。10または100倍長いランダムシミュレーションを実行しても検査密度を大幅に高めることはできない。
【0005】
自動テストパターン発生(ATPG)ツールのような、他のEDAテストツールは、すでに製作された回路の製造欠陥のみを識別するテストを行う。テストは、既知の入力値を連続して回路のピンに印加して、実際の出力値と期待される出力値とを比較することによって行われる。しかし、ATPGツールは、回路設計が基本的に正しく、発見されるいずれの異常も製造中に発生するワイヤ破損等の物理的な欠陥によるものであることが想定されている。
【0006】
カルフォルニア州ロスアルトス(LosAltos)のInterHDL社で開発されたVerilint、ミネソタ州セントポールのシミュレーション テクノロジー社で開発されたVericov、カルフォルニア州パロアルトのシステム サイエンス社で開発されたVera、およびイスラエルのVerisity of Yehud社で開発されたSpecman等の、他のEDAテストツールは、回路設計を検査するテストベンチに利用し販売し統合することは困難である。
【0007】
多くの回路設計もまた、複雑でバグ源になる場合が多い有限状態機械(FSM)を含む。従って、回路設計者は、一般的にテストプロセスのなるべく早い段階でFSMの動きを全領域で機能試験しようとする。現行のテストツールでは、設計者がテストを開始する前に、回路中の各々のFSMにある各々の状態と遷移を手動で識別して規定する必要がある。
有限状態機械を識別して回路設計テストの効率を高める装置および方法が必要である。
【0008】
(発明の開示)
本発明は、有限状態機械を識別し、回路設計を検査する方法および装置を提供する。本発明は、回路設計記述の入力、出力、内部変数、有限状態機械(FSM)、遷移要素、ブロック、アーク、関心パス要素を自動的に識別してテストを行うものである。
【0009】
要素を識別するプロセスは、最初に設計記述の構成セットを識別する。次に、構成セットの第1の構成サブセットと、構成のオブジェクトが識別される。オブジェクト値を変更し、あるいはオブジェクト値の変更を制御する構成セット中の第1の構成サブセットが識別される。オブジェクトにより値が直接的にまたは間接的に変更される構成セットの第2の構成サブセットも同様に識別される。識別された構成、オブジェクトおよび第1、第2の構成のサブセットが、リレーショナルデータベースに記憶される。識別および記憶のステップは、構成中の全オブジェクトおよび構成セットの全構成に対して反復される。
【0010】
設計記述の有限状態機械は、第2のオブジェクト値の変更を制御し、その値が第2のオブジェクトによって直接的にまたは間接的に変更される第1のオブジェクトについてのリレーショナルデータベースを検索することによって識別される。第1のオブジェクトの発生が第2のオブジェクトの発生に先行すれば、第1のオブジェクトがFSM状態変数として識別される。第2のオブジェクトの発生が第1のオブジェクトの発生に先行すれば、第2のオブジェクトがFSM状態変数として識別される。FSM状態遷移要素は、FSM状態変数の許容状態セットの第1の許容状態から第2の許容状態までの遷移として識別される。
【0011】
本発明を使用するシステムは、設計データベースで設計記述を記憶する。テストジェネレータは、設計記述のどんな有限状態機械要素も識別する。設計データベースから検索される設計記述に基づいて、テストベンチは、シミュレートされた設計を生成する。カバレージ解析ツールは、テストベンチで機能試験がなされるシミュレート設計からの出力データをモニターし、設計のどの要素がテストされるべきかを識別する。テストジェネレータは、テストされていない要素の機能試験のためにテストベンチに送出されるテストベクトルを生成する。
【0012】
従来技術と比較すると、本発明は、時間とリソースの要求により手動および散発的に実行される設計検査の重要な部分を自動化する点で有利である。本発明は、統合されたプロセスで、設計記述の入力、出力、内部変数、有限状態機械、遷移要素、ブロック、アークおよび関心パス要素を迅速、容易かつ包括的にテストすることを可能にする。結果として、設計者は、シミュレート設計が検査済であるという確信を持って製作に移行することができる。如何なる設計上の欠陥もシミュレート設計が製作される前に発見できるので、何ヶ月もの時間の節約につながる。本発明の全ての態様は、当業者であれば添付の図面、詳細説明および請求の範囲を詳細に検討することで理解できる。
【0013】
(発明を実施するための最良の形態)
図1は、本発明にかかる有限状態機械(FSM)を識別して回路設計を検査する第1の例示的なシステム100のデータ系統線図である。
システム100は、設計データベース102、カバレージデータベース104、テストジェネレータ106、テストベンチ108およびカバレージ解析ツール110を有する。テストベンチ108は、シミュレート設計112および出力ログデータベース114を有する。設計データベース102は、回路設計をシミュレートし、テストし、製作するために、別の電子式設計自動化(EDA)と共に使用されるVerilog、VHDLまたはC++等の設計言語で典型的にコード化された1つまたはそれ以上の回路設計を含んでいる。
【0014】
テストを開始する前に、回路設計中のFSMはすべて識別される。FSMは、同期または非同期のいずれかに分類できる。同期FSMは、クロック信号に応じて状態間を遷移し、非同期FSMは、割込みイベントに応じて状態間を遷移する。
FSMはまた、種々の従来のやり方でコード化できる。「構造スタイル」は、フリップフロップまたはラッチ等の制御された記憶素子という形で回路を規定する。構造スタイルの制御論理は、AND、OR、XORおよびNOT等の相互接続される基本論理ゲート、および/またはAND、OR、NOT,XORおよびQCA等の論理演算子を使用する単純な連続割り当てステートメントとして記述される。FSMの構造表示がより複雑である場合は、このような表示はFSM中のロジックの正確なシステム設計を詳細に記述する。
【0015】
「RTLスタイル」は、より抽象的で高レベルの記述という形で回路設計を規定する。記憶素子は、フリップフロップ、ラッチまたは高レベルプロセス記述を使用して特定される。制御論理は、caseステートメントやif−then−elseステートメントを使用して、高レベルプロセス記述によって記述される。FSMのRTL表示は、一般にユーザーが理解し易くかつ設計者が変更し易いものである。しかし、RTL表示は、実際の回路システム設計の統合ツールに依存する。統合ツールは、ゲート選択においてより自由度が高いので、その結果としての回路設計は最適に実行されない場合がある。図5、6および7のフローチャートは、FSMが設計においてどのように識別されるかを詳細に説明するものである。
【0016】
カバレージデータベース104は、回路設計のどの領域がすでに検査(つまりカバー)されているかの記録を含んでいる。カバレージデータベース104は、設計の中の全てのブロック、アーク、FSM状態およびFSM遷移をマップ化する。
「ブロック」はコードの一区分であり、コード中の第1の構成が実行されると、次に、コード中の次の構成セットも実行される。この実行された構成のすべては統合してブロックを形成する。
【0017】
「構成」は、オブジェクト値を変更する、あるいは変更を制御する(すなわち、next_state=Start)、または特定条件(すなわち、If next_State=Reset then A=0)を調べる全てのコードラインである。認識されたコンピュータ命令を含む全ての別のコードラインも「構成」として規定される。
【0018】
「アーク」は、コードの2つブロックを連結するコードの一区分である。
「FSM状態」は、安定ロジックであり、回路設計のコンフィギュレーション・レジスタである。FSM状態は、複数のブロックとアークを含んでいる。
「FSM遷移」は、2つの「FSM状態」を結合するアークである。FSM遷移は、1つまたはそれ以上のブロックを通過してFSMの状態を変える、1つまたはそれ以上のアークによって形成されている。
【0019】
回路設計の種々のブロックまたは状態が入力され、種々のアークまたは遷移がそれに続くと、カバレージデータベース104内のマップが更新される。このマップは、機能試験/テストされたブロック、状態、アークおよび遷移を識別する。カバレージデータベース104は、カバレージ解析ツール110に結合されている。カバレージ解析ツール110は、シミュレート設計112に結合され、そこからの出力データを使用して、回路設計のどの領域がすでにテストされているかを確定する。この情報に基づいて、カバレージ解析110は、カバレージデータベース104を更新する。カバレージ解析ツールは従来公知である。
【0020】
テストジェネレータ106は、設計データベース102およびカバレージデータベース104からデータを受け取り、シミュレート設計112に送出されるテストベクトルセットを生成する。シミュレート設計112は、カバレージ解析ツール110および出力ログデータベース114の両者に送出される出力データを生成する。シミュレート設計112は、回路設計の演算特性をモデル化するためのコンピュータ(図示せず)によって実行されるソフトウェア(例えば、VerilogまたはVHDL)を含んでいる。出力ログデータベース114は、他のEDAツール(図示せず)によるその後の解析のために、シミュレート設計112からの出力データを記憶する。シミュレート設計112を実行するテストベンチ108は従来公知である。
【0021】
テストベクトルを生成する前に、テストジェネレータ106は、テストされるべき設計データベース102の回路設計の構文と統合力を完全に調べる。テストジェネレータ106は、回路設計に何らか構文エラーがあるか否か、および全ての設計を統合できるか否かを示す。次に、テストジェネレータ106は、設計記述の全てのマクロおよびデータ構造を展開する。次に、テストジェネレータ106は、設計記述を解析し、全ての入力および出力を識別する。テストジェネレータ106は設計記述を、アークによって結合される複数の基本ブロックと複合ブロックとして、および遷移によって結合される複数のFSMとして解釈する。この解析から決定樹を生成できる。次に、テストジェネレータ106は、他の全てのブロックに独立に回路設計の各ブロックのテスト能力を検査する。「基本ブロック」は、設計記述の中で最も小さい構成要素である。基本ブロックは「構成」に相当し、条件が一致するかまたは計算が生じるかのいずれかで規定される。グループ化された基本ブロックは、複合ブロックを形成する。
【0022】
連続的なアークセットは「パス」を規定する。典型的な設計記述は、多数のパスを有する。しかし、ユーザがごく限られた数のパスにのみ関心をもつ場合がある。これらは、「関心パス」として規定される。
例えば、以下の設計記述は4つの基本ブロックを含む。
If(a<b) then 1st basic-block/construct
c=a-b 2nd basic-block/construct
else c=b-a end if 3rd basic-block/construct
result=c*3 4th basic-block/construct
【0023】
前述の実施例では、アークは、第1の基本ブロックと第2の基本ブロックとの間、第1の基本ブロックと第3の基本ブロックとの間、第2の基本ブロックと第4の基本ブロックとの間および第3の基本ブロックおよび第4の基本ブロックとの間で規定される。パスは、第2の基本ブロックを通って第1の基本ブロックから第4の基本ブロックまで、および第3の基本ブロックを通って第1の基本ブロックから第4の基本ブロックまで規定される。
【0024】
テストジェネレータ106は、種々のレベルの粒度でブロック、アーク、FSM状態およびFSM遷移をテストすることが好ましい。このようにテストベクトルは、最上位の入力と出力、個々のFSM状態と遷移、種々の関心パス、複合ブロックと基本ブロック、およびアークのいずれかを機能試験するために生成され得る。テストジェネレータ106は、入力、出力、FSM,パス、ブロックまたはアーク要素のいずれが次にテストされるべきかの最初の決定によって、テストベクトルを生成する。次に、テストジェネレータ106は、シミュレート設計112が、その時点でアクティブなブロックからテストが行われていない要素まで遷移するよう、どの変数(オブジェクトとも称される)を設定する必要があるか、またはどのような条件を発生する必要があるかを決定する。このプロセスは、「後方解決」と称される。テストジェネレータ106はまた、テストされていない要素を活性化するためにどの活動シーケンスを利用するかを決定する「前方解決」手法を使用できる。一般に、テストジェネレータ106は、テストされていない多数の要素を機能試験するテストベクトルを生成することが好ましい。
【0025】
「アクティブブロック」は、ブロックが次のブロックに制御を渡す前に、設定すべき特定の変数または発生すべき特定の条件を待っているブロックである。典型的な条件は、タイミング制約条件であり、異なる状態へ遷移する別の変数の所定数のクロックパルスで、変数が所定の状態に設定される必要がある。所定値に設定されている変数等の他の条件もまた一般的である。
【0026】
完全なテストベクトルセットは、テストフレームと称される。テストフレームは、シミュレート設計112がテストベクトルによってシミュレートできる、テストベンチ108への経路が定められている。それに応じて、出力データセットが、シミュレート設計112によって生成され、出力ログデータベース114とカバレージ解析ツール110とに格納される。
【0027】
次に、テストジェネレータ106は、テストベクトルによって機能試験されてない全てのブロック、アーク、FSM状態、FSM遷移または関心パスについて、カバレージデータベース104を走査する。次に、テストジェネレータ106は、後方解決または前方解決のいずれかの方法を使用して、まだテストが行われていない要素を機能試験するための追加のテストベクトルを生成する。
【0028】
この反復プロセスの間、テストジェネレータ106は、カバレージデータベース104のデータを使用して、シミュレート設計112が全ての所定の入力について所定時間にわたり安定しているか否かを判定する。テストジェネレータ106はまた、シミュレート設計112がアクセス不能なFSM状態またはブロック、および行使できない遷移またはアークを含んでいるか否かを記録する。
【0029】
図2は、有限状態機械を識別して回路設計を検査するための、本発明にかかる第2の例示的なシステムのデータ系統線図である。図1で示した要素に加えて、第2のシステム200は、機能モデル202を有し、テストジェネレータ106からのテストベクトルや、シミュレート設計112からの出力データを受け取り、出力データの確度を検査するようそれらに結合されている。機能モデル202は、シミュレート設計112からの出力データと機能モデル202によって生成された期待値セットとを比較する。これらの期待値は、テストジェネレータ106によって生成されるテストベクトルに応じて、どのように設計記述が作動すべきかを反映することが意図されている。機能モデル202は、シミュレート設計112からの出力データを正しいか正しくないかのいずれかに分類する。機能モデル202はまた、シミュレート設計112がテストベクトルに応じて出力データを生成しない状況等の不確定な状況にフラグを立てる。
【0030】
機能モデル202は、シミュレート設計112の無サイクル精密モデルである。無サイクル精密モデルは、シミュレーションの各サイクルの間に、シミュレート設計112を模倣しようとしないモデルである。機能モデル202は、いくつかの方法のうちの1つを使って期待値セットを生成する。例えば、機能モデル202は、データベース参照テーブルまたはアルゴリズムとして実現できる。例えば、シミュレート設計は、乗算機能を実現するラッチおよびレジスタに接続される一連のANDおよびORゲートを規定するための、コマンドセットから構成できるが、機能モデル202は、従来のプログラム言語で書かれたプログラムを使って論理乗算のみを実行する。
【0031】
テストジェネレータ106は、機能モデル202によって生成された結果を受け取るようこれに結合されており、システム200内に第2のフィードバックループを生成する。テストジェネレータ106は、不正確にまたは不確定に作動する、シミュレート設計112の最上位入力および出力、個々のFSM状態と遷移、種々の関心パス、複合ブロックと基本ブロック、およびアークを局所化して識別するために、シミュレート設計112に送出されるテストベクトルを機能モデル202からの結果と関連づける。テストジェネレータ106は、不正確なまたは不確定な設計要素に焦点をあてた更に詳細な一連のテストを自動生成するようプログラムできる。もしくは、テストジェネレータ106は、設計者が手動で更に詳細な一連のテストを生成するのに利用するテスト結果をプリントアウトする。
【0032】
図3は、有限状態機械を識別し、回路設計を検査する、本発明にかかる第3の例示的なシステム300のデータ系統線図である。図1で示した要素に加えて、第3のシステム300は、サイクル精密モデル302および出力シーケンスコンパレータ304を有する。サイクル精密モデル302は、テストジェネレータ106からのテストべクトルを受け取るようこれに結合され、シミュレート設計112からの出力データをサイクルごとに一致させるよう設計されている。出力シーケンスコンパレータ304は、シミュレート設計112とサイクル精密モデル302の両者からの出力データを受け取るようこれに結合されている。出力シーケンスコンパレータ304は、すべてのサイクルの出力データを比較し、シミュレート設計112からの出力データが、正しいか正しくないか、または不確定であるかを分類する結果セットを生成する。
【0033】
テストジェネレータ106は、出力シーケンスコンパレータ304によって生成された結果を受け取るようこれに結合されており、システム300内に第2のフィードバックループを生成する。次に、テストジェネレータ106は、不正確にまたは不確定に作動する、シミュレート設計112の最上位の入力と出力、個々のFSM状態と遷移、種々のの関心パス、複合ブロックと基本ブロック、およびアークを局所化して識別するために、シミュレート設計112に送出されるテストベクトルを出力シーケンスコンパレータ304からの結果と関連づける。テストジェネレータ106は、不正確または不確定な設計要素に集中する更に詳細な一連のテストを自動生成するように、または設計者が詳細に検討するために結果をプリントアウトするようプログラムされている。
【0034】
テストジェネレータ106、カバレージ解析ツール110、シミュレート設計112、機能モデル202、サイクル精密モデル302および出力シーケンスコンパレータ304は、コンピュータ(図示せず)上で作動するコンピュータプログラム命令を含むソフトウェアモジュールである。コンピュータは、処理ユニットとメモリを含む。メモリは、処理ユニットがどのようにデータをアクセスし、変換し、出力するかを制御するコンピュータプログラム命令を記憶する。当業者であれば、内部メモリはコンピュータに使用可能な別の記憶媒体で補うことができることを理解できるであろう。
【0035】
図4は、本発明を使用してテストされる例示的な回路設計400の線図である。以下に、テストジェネレータ106が回路設計をテストするためにどのような方法でテストベクトルセットを生成し、テストジェネレータがどのような方法でテスト結果に応答するかを説明する。例示の回路設計の各々の状態は、1つあるいはそれ以上のブロックと、その状態機能を実行して次の状態を計算する内部アークとで形成されている。
【0036】
まず最初に、テストジェネレータ106は、設計の種々の状態および遷移を識別する。サーキット設計400は3つの状態(401、402および403)と6つの遷移(410、411、412、413、414、415および416)とを有する。遷移410は、状態402から状態402に戻る「セルフ」アークである。この遷移は、状態402の「ワーク」が全て完了するまで行われる。遷移411および412の両者とも状態402から状態401まで進む。この実施例では、「ワーク」が完了した場合に遷移411が行われ、リセット信号が出された場合に遷移412が行われる。遷移413は、エラーが状態402から状態403へ送られる場合に行われる。遷移414は、新しい「ワーク」が状態401から状態402へ到達する場合に行われる。遷移415は、エラーが状態401から状態403へ送られる場合に行われる。遷移416は、エラーが状態403から状態401へ処理された後に行われる。
【0037】
例示の回路設計の各々のFSM状態、FSM遷移、ブロック、アークおよび関心パスをテストするために、テストジェネレータ106は、変数を設定するテストベクトルを生成する。テストジェネレータ106はまた、所定の関心パスをユーザーからの入力として受け入れる。テストジェネレータ106は、一定の条件の発生を警告するようテストジェネレータに指示するアサーション(assertion)で事前にプログラムできる。
【0038】
図5は、有限状態機械を識別して回路設計を検査するための方法に関するフローチャートである。この方法は、テストジェネレータ106が設計データベース102からハードウェア設計記述(典型的にVerilogやVHDL等のハードウェア記述言語による)をインポートするステップ502から始まる。テストベンチ108は、他のデータベース(図示せず)から参照記述をインポートする。参照記述は随意的に、機能モデル202またはサイクル精密モデル302ベースを形成する。ステップ504で、テストジェネレータ106は、設計記述の入力、出力、内部変数、ブロック、アークおよび関心パス要素を識別する。ステップ506で、テストジェネレータ106は、設計記述のFSMおよび遷移要素を識別する。ステップ506は、図6で詳細に説明する。ステップ508で、テストジェネレータ106は、どの要素がテストされており、どの要素がテストされてないかを示す最新のカバレージデータをカバレージデータベース104からインポートする。ステップ510で、テストジェネレータ106は、設計記述の最新の検査状態を記述するための注釈を生成して設計記述に加える。ステップ512で、テストジェネレータ106は、テストが行われていない要素を機能試験するテストベクトルセットを生成する。ステップ512は、図7で詳細に説明する。ステップ514で、テストジェネレータ106は、テストベンチ108上にシミュレート設計112とシミュレート参照とを生成する。シミュレート参照は、機能モデル202の第1の部分、もしくはサイクル精密モデル302に等しい。ステップ516で、テストジェネレータ106は、シミュレート設計112およびシミュレート参照を機能試験するためのテストベクトルをテストベンチ108に送る。ステップ518で、機能モデル202の第2の部分、もしくは出力シーケンスコンパレータ304の第2の部分は、シミュレート設計およびシミュレート参照の両者からの出力データを比較する。ステップ520で、出力データセットが等しくない場合、機能モデル202の第2の部分(または出力シーケンスコンパレータ304の第2の部分)は、バグがシミュレート設計112に存在することを報告する。ステップ522で、テストジェネレータ106は、不正確にまたは不確定に作動するシミュレート設計要素を局所化して識別するために、テストベクトルによって機能試験される要素と、報告ステップ520での結果とを関連づける。ステップ524で、カバレージ解析ツール110は、シミュレート設計112のどの要素がテストされてないかを示すようカバレージデータを変更する。ステップ526で、テストされるべき要素が残っていれば、プロセスはステップ508に戻り、そうでなければこのプロセスは終了する。
【0039】
図6は、有限状態機械および設計記述(図5のステップ506)の遷移要素を識別する方法を示すフローチャートである。この方法は、テストジェネレータ106が、設計データベース102内の設計記述の構成セットを識別するステップ602から始まる。ステップ604は、構成セット中の構成を識別する。ステップ606は、構成中のオブジェクトを識別する。ステップ608は、オブジェクト値を変更するかまたは変更を制御する構成セット中の、第1の構成サブセットを識別する。ステップ610は、その値がオブジェクトによって直接的にまたは間接的に変更できる構成セット中の第2の構成サブセットを識別する。ステップ612は、この構成の残りの全オブジェクトについてステップ606からステップ610を反復する。ステップ614は、構成セット中の残りの全構成についてステップ604からステップ612を反復し、リレーショナルデータベースに識別子を記憶する。ステップ616は、第2のオブジェクト値を変更するかまたは変更を制御し、かつその値が第2のオブジェクトによって直接的にまたは間接的に変更される第1のオブジェクトについてのリレーショナルデータベースを検索することによって、設計記述のFSMを識別する。ステップ618で、第1のオブジェクトの発生が、第2のオブジェクトの発生に先行するかまたは、設計記述の第2のオブジェクト値の変更を制御する場合、この第1のオブジェクトは、FSM状態変数として識別される。ステップ620は、FSM状態変数のための可能状態セットを識別する。ステップ622で、可能状態セットからの許容状態セットについてのFSM状態変数に適用可能な第1の構成サブセットが検査される。次に、ステップ624で、許容状態セットの第1の許容状態から第2の状態までの遷移は、FSM状態遷移として識別される。ステップ626は、リレーショナルデータベースで他の全てのオブジェクトついてステップ616からステップ624を反復する。この後にこの方法は終了する。
【0040】
図7は、テストベクトルセット(図5のステップ512)を生成する方法についてのステップを示すフローチャートである。まず始めに、ステップ702で、テストジェネレータ106は、シミュレート設計記述中のどのブロックが現在アクティブな状態にあるかを識別する。システムは、アクティブブロックのデータベースを管理するためにシミュレートシステムを通じて制御およびデータの流れを連続して追跡する。ステップ704で、テストジェネレータ106は、どの要素がまだテストされてないかを識別するために、カバレージデータベース104にアクセスする。ステップ706で、テストジェネレータ106は、テストが行われていない最大数の要素を機能試験するために、テストベクトルセットを使用して、シミュレート設計112に関してどのオブジェクトを設定する必要があり、どの条件を発生する必要があるかを識別する。ステップ708で、テストジェネレータ106は、識別されたオブジェクトまたは識別された条件を発生するテストベクトルセットを生成する。ステップ708の後で、テストベクトルセットを生成するこの方法は終了する。
【0041】
本発明は、好適な実施形態に関して説明されているが、当業者であれば種々のの変更を行うことができ、本発明が請求の範囲によってのみ限定されることが理解できる。
【図面の簡単な説明】
【図1】 有限状態機械を識別して回路設計を検査する本発明の第1の実施形態のデータ系統線図である。
【図2】 有限状態機械を識別して回路設計を検査する本発明の第2の実施形態のデータ系統線図である。
【図3】 有限状態機械を識別して回路設計を検査する本発明の第3の実施形態のデータ系統線図である。
【図4】 本発明を使用してテストされる例示的なサーキット設計400の線図である。
【図5】 有限状態機械を識別して回路設計を検査する方法におけるステップのフローチャートである。
【図6】 有限状態機械および設計記述の遷移要素を識別する方法におけるステップのフローチャートである。
【図7】 テストベクトルセットを生成する方法におけるステップのフローチャートである。
Claims (1)
- コンピュータを用いて、設計記述から有限状態機械(FSM)を抽出しテスト検証する電子式設計自動化(EDA)方法であって、
電子回路がシリコンに製造される前に該電子回路デザインを設計し、シミュレーションし、そしてテストするEDAツールのためのハードウエア記述言語(HDL)データファイルの形式で、前記電子回路のデザインが入力機器を介して前記コンピュータに入力され、この場合、前記HDLデータファイルが、それぞれが構成と呼ばれる複数のHDLコードラインと、多数の前記構成を含む少なくとも1つのブロックとを有しており、
前記コンピュータが、
前記HDLデータファイルから複数のHDLコードラインを有したブロックを分割する処理と、
前記複数のHDLコードラインのそれぞれの内部に設けられた任意の変数を識別するための処理と、
前記複数のHDLコードライン内のいずれが前記複数の変数の中の特定の一つに変更できるかを確定し、これを第1の構成セットにグループ化する処理と、
前記複数のHDLコードラインのうちのいずれが前記変数の特定の一つの値に依存しているかを見出し、これを第2の構成セットにグループ化する処理と、
前記第2の構成セット内のHDLコードラインの変数を変更した影響が第1の構成セットのいずれのHDLコードラインに及ぶかを記述した関係データベースを検索することにより、有限状態機械を識別する処理と、
前記第1の構成セット及び前記第2の構成セットに基づき、少なくとも2つの前記変数を識別する処理と、
後の変数の発生に先だって、前記変数の1つが前記複数のHDLコードラインに発生するか、またはそれが前記後の変数を制御する場合、前記変数の1つをFSM状態変数として分類する処理と、
テスト検証するために、前記FSM状態変数のそれぞれを各可能状態のそれぞれの変数に設定するテストベクトルセットを生成する処理と、
テスト検証するために、前記生成されたテストベクトルセットをテストベンチに送る処理と、
前記テストベクトルセットに基づいて前記FSM状態変数に対する前記各可能状態のセットを識別する処理と、
前記識別された可能状態セットのいずれかから任意の他の状態への遷移をFSM状態遷移として識別する処理とを実行する、ことを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/076,681 | 1998-05-12 | ||
US09/076,681 US6487704B1 (en) | 1997-08-07 | 1998-05-12 | System and method for identifying finite state machines and verifying circuit designs |
PCT/US1999/009460 WO1999059079A1 (en) | 1998-05-12 | 1999-04-30 | System and method for identifying finite state machines and verifying circuit designs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002514822A JP2002514822A (ja) | 2002-05-21 |
JP3872954B2 true JP3872954B2 (ja) | 2007-01-24 |
Family
ID=22133578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000548819A Expired - Fee Related JP3872954B2 (ja) | 1998-05-12 | 1999-04-30 | 有限状態機械を識別して回路設計を検査するシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6487704B1 (ja) |
EP (1) | EP1093619B1 (ja) |
JP (1) | JP3872954B2 (ja) |
AU (1) | AU3874399A (ja) |
DE (1) | DE69942007D1 (ja) |
IL (1) | IL139029A (ja) |
WO (1) | WO1999059079A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141630A (en) * | 1997-08-07 | 2000-10-31 | Verisity Design, Inc. | System and method for automated design verification |
GB2336008B (en) * | 1998-04-03 | 2000-11-08 | Schlumberger Holdings | Simulation system including a simulator and a case manager adapted for organizing data files |
JP3822044B2 (ja) * | 2000-09-25 | 2006-09-13 | 株式会社東芝 | 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体 |
US6810507B2 (en) * | 2002-01-17 | 2004-10-26 | Sun Microsystems, Inc. | Method and apparatus for isolating the root of indeterminate logic values in an HDL simulation |
US6782518B2 (en) * | 2002-03-28 | 2004-08-24 | International Business Machines Corporation | System and method for facilitating coverage feedback testcase generation reproducibility |
US6701494B2 (en) * | 2002-05-01 | 2004-03-02 | Adc Dsl Systems, Inc. | Method of using testbench tests to avoid task collisions in hardware description language |
US7024589B2 (en) * | 2002-06-14 | 2006-04-04 | International Business Machines Corporation | Reducing the complexity of finite state machine test generation using combinatorial designs |
US6948139B2 (en) * | 2002-12-19 | 2005-09-20 | Lsi Logic Corporation | Method for combining states |
US6968285B1 (en) | 2003-04-09 | 2005-11-22 | Hamid Adnan A | Method and apparatus for scenario search based random generation of functional test suites |
US6993736B2 (en) * | 2003-12-10 | 2006-01-31 | Texas Instruments Incorporated | Pending bug monitors for efficient processor development and debug |
US20050177773A1 (en) * | 2004-01-22 | 2005-08-11 | Andrew Hadley | Software method for exhaustive variation of parameters, independent of type |
US7210111B1 (en) * | 2004-05-04 | 2007-04-24 | Hewlett-Packard Development Company, L.P. | Systems and methods for conducting future signal checks |
US20060026538A1 (en) * | 2004-07-27 | 2006-02-02 | Shah Gauray R | Relational database storage and retrieval of circuit element classifications |
US7783997B1 (en) | 2004-07-30 | 2010-08-24 | Synopsys, Inc. | Large scale finite state machines |
JP4528728B2 (ja) * | 2006-01-31 | 2010-08-18 | 株式会社東芝 | デジタル回路の自動設計装置、自動設計方法、および自動設計プログラム |
US7779374B1 (en) | 2006-09-29 | 2010-08-17 | Breker Verification Systems, Inc. | Generating self-checking test cases from reduced case analysis graphs |
JP4585559B2 (ja) * | 2007-08-30 | 2010-11-24 | 株式会社東芝 | 半導体集積回路の検証装置 |
JP4902511B2 (ja) * | 2007-12-10 | 2012-03-21 | 株式会社日立製作所 | 半導体集積回路の高速テスト |
US20130290919A1 (en) | 2012-04-27 | 2013-10-31 | Synopsys, Inc. | Selective execution for partitioned parallel simulations |
US10133803B2 (en) * | 2015-06-08 | 2018-11-20 | Mentor Graphics Corporation | Coverage data interchange |
US10095596B1 (en) * | 2015-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Executing integration tests in a distributed load and performance evaluation framework |
US20190095815A1 (en) | 2017-09-27 | 2019-03-28 | Allstate Insurance Company | Data Processing System with Machine Learning Engine to Provide Output Generating Functions |
US11537935B2 (en) | 2017-09-27 | 2022-12-27 | Allstate Insurance Company | Data processing system with machine learning engine to provide output generating functions |
US10839319B2 (en) | 2017-09-27 | 2020-11-17 | Allstate Insurance Company | Data processing system with machine learning engine to provide output generating functions |
US11579195B2 (en) * | 2018-11-20 | 2023-02-14 | Micron Technology, Inc. | Automated verification code generation based on a hardware design and design data |
US10890622B2 (en) * | 2019-04-29 | 2021-01-12 | International Business Machines Corporation | Integrated circuit control latch protection |
US11669666B1 (en) * | 2020-11-30 | 2023-06-06 | Dialog Semiconductor (Uk) Limited | Methods relating to circuit verification |
US12032460B2 (en) * | 2022-02-11 | 2024-07-09 | Stmicroelectronics S.R.L. | Systems and methods to test an asynchronous finite machine |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0460352B1 (en) * | 1990-06-07 | 1995-11-02 | International Business Machines Corporation | System for test data storage reduction |
US5659555A (en) | 1993-08-19 | 1997-08-19 | Lucent Technologies Inc. | Method and apparatus for testing protocols |
US5469443A (en) * | 1993-10-01 | 1995-11-21 | Hal Computer Systems, Inc. | Method and apparatus for testing random access memory |
US5517432A (en) * | 1994-01-31 | 1996-05-14 | Sony Corporation Of Japan | Finite state machine transition analyzer |
US5604895A (en) * | 1994-02-22 | 1997-02-18 | Motorola Inc. | Method and apparatus for inserting computer code into a high level language (HLL) software model of an electrical circuit to monitor test coverage of the software model when exposed to test inputs |
US5539680A (en) * | 1994-08-03 | 1996-07-23 | Sun Microsystem, Inc. | Method and apparatus for analyzing finite state machines |
US5537580A (en) * | 1994-12-21 | 1996-07-16 | Vlsi Technology, Inc. | Integrated circuit fabrication using state machine extraction from behavioral hardware description language |
US5555270A (en) | 1995-03-13 | 1996-09-10 | Motorola Inc. | Method and apparatus for constructing unique input/output sequence (UIO) sets utilizing transition distinctness measurements |
US5680332A (en) | 1995-10-30 | 1997-10-21 | Motorola, Inc. | Measurement of digital circuit simulation test coverage utilizing BDDs and state bins |
US6141630A (en) * | 1997-08-07 | 2000-10-31 | Verisity Design, Inc. | System and method for automated design verification |
-
1998
- 1998-05-12 US US09/076,681 patent/US6487704B1/en not_active Expired - Fee Related
-
1999
- 1999-04-30 EP EP99921560A patent/EP1093619B1/en not_active Expired - Lifetime
- 1999-04-30 IL IL139029A patent/IL139029A/en not_active IP Right Cessation
- 1999-04-30 WO PCT/US1999/009460 patent/WO1999059079A1/en active Application Filing
- 1999-04-30 JP JP2000548819A patent/JP3872954B2/ja not_active Expired - Fee Related
- 1999-04-30 DE DE69942007T patent/DE69942007D1/de not_active Expired - Lifetime
- 1999-04-30 AU AU38743/99A patent/AU3874399A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
DE69942007D1 (de) | 2010-03-25 |
IL139029A0 (en) | 2001-11-25 |
US6487704B1 (en) | 2002-11-26 |
IL139029A (en) | 2006-10-05 |
EP1093619A4 (en) | 2001-08-16 |
JP2002514822A (ja) | 2002-05-21 |
EP1093619B1 (en) | 2010-02-10 |
WO1999059079A1 (en) | 1999-11-18 |
EP1093619A1 (en) | 2001-04-25 |
AU3874399A (en) | 1999-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3872954B2 (ja) | 有限状態機械を識別して回路設計を検査するシステムおよび方法 | |
US6141630A (en) | System and method for automated design verification | |
KR100936855B1 (ko) | Asic/soc 제조시에 프로토타입-홀드를 방지하기위한 제조 방법 및 장치 | |
US7490307B2 (en) | Automatic generating of timing constraints for the validation/signoff of test structures | |
US8560985B1 (en) | Configuration-based merging of coverage data results for functional verification of integrated circuits | |
KR100463735B1 (ko) | 복합 ic의 설계 검증 방법 | |
US7661050B2 (en) | Method and system for formal verification of partial good self test fencing structures | |
US6061283A (en) | Semiconductor integrated circuit evaluation system | |
US5923567A (en) | Method and device for test vector analysis | |
US10657207B1 (en) | Inter-cell bridge defect diagnosis | |
JP2005292144A (ja) | 集積回路デバイスを試験するための集積回路デバイス試験を検証する方法及び装置 | |
US7761825B2 (en) | Generating testcases based on numbers of testcases previously generated | |
CN116663462B (zh) | 断言验证方法、断言验证平台、电子设备及可读存储介质 | |
KR20040007463A (ko) | 로직 시뮬레이션을 이용하지 않는 복잡한 ic의 설계검증을 위한 방법 및 장치 | |
US7051301B2 (en) | System and method for building a test case including a summary of instructions | |
JPH08180095A (ja) | 遅延故障シミュレーション方法、及び遅延故障解析装置 | |
Deniziak et al. | Fast high-level fault simulator | |
Hymowitz et al. | New Techniques for Failure Analysis and Test Program Design | |
White | Design automation: pre-layout design verification and design submission for BiCMOS ASIC arrays | |
JP2004220222A (ja) | 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム | |
Ott et al. | Making the Transition to VHDL Synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061023 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091027 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101027 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111027 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121027 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121027 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131027 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |