JP4316158B2 - Formal verification method - Google Patents

Formal verification method Download PDF

Info

Publication number
JP4316158B2
JP4316158B2 JP2001154334A JP2001154334A JP4316158B2 JP 4316158 B2 JP4316158 B2 JP 4316158B2 JP 2001154334 A JP2001154334 A JP 2001154334A JP 2001154334 A JP2001154334 A JP 2001154334A JP 4316158 B2 JP4316158 B2 JP 4316158B2
Authority
JP
Japan
Prior art keywords
input
verification
pattern
formal
signal
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
Application number
JP2001154334A
Other languages
Japanese (ja)
Other versions
JP2002351939A5 (en
JP2002351939A (en
Inventor
健志 安倍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2001154334A priority Critical patent/JP4316158B2/en
Priority to US10/060,261 priority patent/US6715135B2/en
Publication of JP2002351939A publication Critical patent/JP2002351939A/en
Publication of JP2002351939A5 publication Critical patent/JP2002351939A5/ja
Application granted granted Critical
Publication of JP4316158B2 publication Critical patent/JP4316158B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • 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/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、論理回路の機能を検証する形式的検証方法に関する。
【0002】
【従来の技術】
システムLSI等の半導体集積回路は、高機能になり論理規模も大きくなっている。これに伴い、半導体集積回路の論理検証は、検証規模、検証時間ともますます長大化する傾向にある。
近時、論理検証技術の1つとして、形式的検証が注目されている。形式的検証は、例えばRTL記述によりモデル化された論理回路を有限要素機械に変換し、検証すべき仕様を満たしていることを数学的に証明するものである。形式的検証は、入力パターンのみを考慮する従来のシミュレーション手法に比べて網羅性の点で優れている。そのため、シミュレーションでは見つけにくいエラーを検出できる。
【0003】
【発明が解決しようとする課題】
しかしながら、形式的検証は、論理シミュレーションに比べ計算量が大きくなる。このため、状態数の多い回路モデルを扱うと、検証プログラムを実行するワークステーションのメモリ容量が不足し、検証不能になることがある。メモリ不足により検証不能になった場合、検証プログラムは強制終了してしまうため、検証結果は何も残らないという問題があった。すなわち、検証プログラムが強制終了した場合、どこまで検証したかを確認できないという問題があった。形式的検証の実行時間は、長い場合1週間程度かかることがある。このため、強制終了した際の時間的損失、コスト的損失は非常に大きい。
【0004】
形式的検証で扱える回路モデルの規模は、モデルに含まれるフリップフロップの数に大きく依存する。理論的には、回路モデルの状態数は、フリップフロップの増分の2倍になり、これに対応して検証に必要なメモリ容量も2倍になる。一方で、形式的検証は、上述したように入力パターンの網羅性を特徴としているため、検証に必要なメモリ容量および検証時間を正しく見積ることは困難である。このため、ワークステーションのメモリを単に増設しただけでは、形式的検証が最後まで正しく行われるとは限らない。
【0005】
このように、形式的検証は、論理回路の検証に非常に有用である反面、比較的起こりやすいメモリ不足による強制終了時の検討は、何もなされていない。
本発明の目的は、形式的検証が強制終了した場合に、それまでの検証結果を残すことで、検証効率を向上することにある。
【0006】
【課題を解決するための手段】
本発明の形式的検証方法では、検証対象である論理回路に入力される入力信号について、これ等入力信号が変化したときに論理回路の動作に与える影響度の順位付けが行われる。そして、影響度の高い入力信号から順に、考えられる全ての入力パターンであるフリーパターンを与えて検証が実行される。すなわち、入力パターンは、予め設定された条件(影響度)に応じて順次生成される。したがって、検証装置のメモリ不足等により形式的検証が途中で強制終了した場合にも、上述した影響度に基づいて途中までの検証結果を残すことができる。この結果、強制終了の原因の解析が容易になり、検証効率を向上できる。検証が完了した入力パターンと、検証できなかった入力パターンとが明確になるため、全ての検証を完了するまでの時間、検証に必要な検証装置のメモリ容量を見積もることができる。
【0007】
本発明の形式的検証方法では、入力信号のそれぞれに対してフリーパターンを与えて検証が実行された後、影響度の高い複数の入力信号から順に、フリーパターンを与えて検証が実行される。このように、徐々に複雑な入力パターンを与えることで、例えば検証装置のメモリ容量が同じ場合、より多くの入力パターンの組み合わせについて検証することができる。この結果、より多くの種類の検証履歴を残すことができる。
【0008】
本発明の形式的検証方法では、フリーパターンを与えない入力信号には、"0固定"または"1固定"のいずれかを与えて検証が実行される。すなわち、論理回路動作に与える影響度の低い入力信号には、優先的に"0固定"または"1固定"のいずれが与えられる。予め設定された条件(影響度)と生成される入力パターンとの関係が分かりやすくなるため、強制終了の原因の解析が容易になり、検証効率を向上できる。
【0009】
本発明の形式的検証方法では、論理回路の検証において入力パターンが決まっている入力信号について、入力パターンが正規表現で記述される。このため、順位付けされる信号の数を減らすことができ、検証時間を短縮できる。また、入力パターンを容易に生成できる。
【0010】
【発明の実施の形態】
以下、本発明の実施形態を図面を用いて説明する。
図1〜図5は、本発明の形式的検証方法の第1の実施形態を示している。
図1は、形式的検証を行う論理回路(検証対象)の一例を示している。この論理回路は、例えば、システムLSI等の半導体集積回路内に形成されている。論理回路の仕様は、入力信号IN-A、IN-B、IN-Cを与えられたとき、出力信号OUT-1、OUT-2が同時に"1"にならないように決められている。このため、形式的検証では、出力信号OUT-1、OUT-2が同時に"1"にならないことを数学的を証明する。形式的検証は、例えば、ワークステーションの検証プログラムによって実行される。
【0011】
図2は、入力信号IN-A、IN-B、IN-Cに対応する信号名リストを示している。信号名リストは、入力信号IN-A、IN-B、IN-Cについて、これ等入力信号が変化したときに論理回路の動作に与える影響度の順位付けしたものである。信号名リストは、検証する論理回路を熟知した設計者または検証者が作成する。
【0012】
例えば、システムLSIの動作モード(通常動作モード、スタンバイモード、試験モード等)を設定する動作モード信号のように、論理値を固定してもよい入力信号は、順位を低くする。入力レベルを固定すると検証の意義が低くなる信号は、順位を高くする。優先順位を高くする信号として、例えば、割り込み信号がある。但し、動作モードの切り換え動作を検証の目的とするとき、動作モード信号の順位は高くなる。
【0013】
順位付けすると検証の意味がなくなる信号は、信号名リストから除外する。例えば、通常動作モードのみの検証をする場合、リセット信号は信号名リストから除外する。同様に、割り込み信号の入力を無効として通常動作時の検証をするとき、割り込み信号は信号名リストから除外する。
【0014】
このように、論理回路の動作のうち、着目する動作(検証する動作)において、論理レベルが頻繁に変化する入力信号あるいは論理レベルの変化が不規則な入力信号は、順位を高くする。逆に、着目する動作(検証する動作)において、論理レベルが余り変化しない入力信号、あるいは、論理回路の動作にあまり影響しない入力信号は、順位を低くする。
【0015】
作成した信号名リストは、検証を実行するワークステーションに入力される。ワークステーションにより実行される検証プログラムは、信号名リストの順位を参照しながら入力パターンを順次生成し、検証を実行する。
図3は、検証プログラムが生成する入力パターンの組み合わせの例を示している。検証プログラムは、まず、影響度の順位の低い入力信号から、"0固定(図中の0表示)"および"1固定(図中の1表示)"を与える((組み合わせ(1)〜(8))。
【0016】
検証プログラムは、次に、影響度の順位の高い入力信号から順に、"フリーパターン(図中の?表示)"を与え、残りの入力信号に"0固定"および"1固定"を与える((組み合わせ(9)〜(12)、(13)〜(16)、(17)〜(20))。ここで、"フリーパターン"とは、網羅的に与えられる入力可能な全てのパターンである。
【0017】
検証プログラムは、次に、影響度の順位の高い二つの入力信号から順に、"フリーパターン"を与え、残りの入力信号に"0固定"および"1固定"を与える((組み合わせ(21)〜(22)、(23)〜(24)、(25)〜(26))。このように、検証プログラムは、予め信号名リストに設定された条件(影響度)に従い、"フリーパターン"が与えられる入力信号を徐々に増やしながら、入力パターンを生成する。さらに、検証プログラムは、全ての入力信号に"フリーパターン"を与える(組み合わせ(27))。
【0018】
入力パターンの組み合わせは、検証する入力信号の数をnとしたとき、3のn乗になる。この例では、入力信号の数は"3"のため、組み合わせは、(1)〜(27)の27通りになる。なお、組み合わせ(1)〜(8)、組み合わせ(9)〜(12)、組み合わせ(13)〜(16)、組み合わせ(17)〜(20)、組み合わせ(21)〜(22)、組み合わせ(23)〜(24)、組み合わせ(25)〜(26)からなる7つのグループにおいて、各グループ内での組み合わせの順序は、図3に限定する必要はない。例えば、組み合わせ(13)〜(16)のグループにおいて、検証を(16)〜(13)の順に実行してもよい。
【0019】
全ての入力信号にフリーパターンを与える組み合わせ(27)は、従来の形式的検証で使用されていた入力パターンに相当する。このように、本発明では、従来一括して実行していた論理検証を、入力信号が回路に与える影響度に応じて、複数の入力パターンの組み合わせに分割して実行する。このため、検証者・設計者は、ワークステーションのメモリ不足により、検証プログラムが強制終了した場合にも、どの組み合わせまで検証が完了したかを確認できる。
【0020】
図4は、ワークステーション(検証プログラム)が実行する検証のフローを示している。検証は、メモリ不足が生じるまで、図3に示した組み合わせ(1)〜(27)の順で実行される。
まず、ステップS1において、全ての入力信号IN-A、IN-B、IN-Cに順次"0固定"または"1固定"が与えられ、検証が行われる。ステップS1は、図3に示した組み合わせ(1)〜(8)に対応している。
【0021】
次に、ステップS2において、影響度の高い順に1つの入力信号に"フリーパターン"が与えられ、残りの入力信号に"0固定"または"1固定"が与えられ、検証が行われる。ステップS2は、図3に示した組み合わせ(9)〜(20)に対応している。
次に、ステップS3において、影響度の高い順に2つの入力信号に"フリーパターン"が与えられ、残りの入力信号に"0固定"または"1固定"が与えられ、検証が行われる。ステップS3は、図3に示した組み合わせ(21)〜(26)に対応している。このように、徐々に複雑な入力パターンを与えることで、より多くの入力パターンの組み合わせについて検証することができる。
【0022】
最後に、ステップS4において、全ての入力信号IN-A、IN-B、IN-Cに"フリーパターン"が与えられ、検証が行われる。ステップS4は、図3に示した組み合わせ(27)に対応している。
なお、入力信号の数が"3"より多いときには、ステップS3の後に、影響度の高い複数の入力信号に"フリーパターン"が順次与えられ、残りの入力信号に"0固定"または"1固定"が与えられ、検証が行われる。
【0023】
図5は、検証時にワークステーション内で生成される入力信号IN-A、IN-B、IN-Cの波形の一部と検証結果を示している。この例では、組み合わせ(25)の検証中にワークステーションのメモリ容量が不足し、以降の検証が実行不能になる。しかし、入力パターンの組み合わせは、予め設計者等が作成した信号名リストに基づいて決められているため、この時点で、組み合わせ(1)〜(24)の検証が問題なく完了したことが判る。検証が完了した入力パターン(1)〜(24)と、検証できなかった入力パターン(25)〜(27)とが明確になるため、全ての検証を完了するまでの時間、および検証に必要なメモリ容量が容易に見積り可能になる。
【0024】
図6は、メモリ容量の不足により検証が中断した後に、ワークステーションから出力される検証結果の例を示している。検証結果欄の"OK"は、検証が問題なく完了したことを表している。検証結果欄の"NG"は、この入力パターン(組み合わせ(25))で検証中にメモリ不足が発生し、検証が中断されたことを表している。検証結果欄の"−"は、このパターン(組み合わせ(26)、(27))での検証が実行できなかったことを表している。
【0025】
形式的検証が途中で強制終了した場合、設計者等は、図6に示した形式的検証の実行結果に基づいて、実行できなかった組み合わせのうち、実行できた組み合わせを含まない部分を、論理シミュレーション等で検証できないかを検討する。また、検証が完了した組み合わせから、不足したメモリの容量を予測し、必要に応じて、メモリの増設を検討する。
【0026】
以上、本実施形態では、入力パターンが、予め設定された条件(影響度)に応じて順次生成されるため、ワークステーションのメモリ不足により形式的検証が途中で強制終了した場合にも、影響度に基づいて途中までの検証結果を残すことができる。すなわち、入力信号のどのような組み合わせまで検証したかを履歴として残すことができる。この結果、検証結果が"NG"になったときに、原因の解析が容易になり、検証効率を向上できる。
【0027】
検証が完了した入力パターン(例えば、組み合わせ(1)〜(24))と、検証できなかった入力パターン(例えば、組み合わせ(25)〜(27))とが明確になるため、全ての検証を完了するまでの時間、検証に必要なメモリ容量を見積もることができる。
入力信号IN-A、IN-B、IN-Cのそれぞれに対してフリーパターンを与えて検証を実行した後、影響度の高い複数の入力信号から順に、フリーパターンを与えて検証を実行した。このように、徐々に複雑な入力パターンを与えることで、ワークステーションのメモリ容量が同じ場合、より多くの入力パターンの組み合わせについて検証することができる。この結果、より多くの種類の検証履歴を残すことができる。
【0028】
フリーパターンを与えない入力信号、すなわち、論理回路動作に与える影響度の低い入力信号には、優先的に"0固定"または"1固定"のいずれかを与えて検証を実行した。予め設定された条件(影響度)と生成される入力パターンとの関係が分かりやすくなるため、強制終了の原因の解析が容易になり、検証効率を向上できる。
【0029】
図7および図8は、本発明の形式的検証方法の第2の実施形態を示している。第1の実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。形式的検証を行う論理回路(検証対象)は、例えば、システムLSI等の半導体集積回路内に形成されている。
【0030】
図7は、論理回路に入力される入力信号IN-A、IN-B、IN-C、RESET、CLK2の信号名リストを示している。すなわち、この実施形態では、第1の実施形態の信号名リストに、リセット信号RESET、クロック信号CLK2が付加されている。リセット信号RESETおよびクロック信号CLK2は、この実施形態の論理回路の検証において、入力パターンが決まっている信号である。すなわち、リセット信号RESETおよびクロック信号CLK2は、論理回路を正常に動作させるために、常に所定のタイミングの波形にする必要がある。信号名リストのうち、入力信号IN-A、IN-B、IN-Cについては、第1の実施形態と同様に、入力信号が変化したときに論理回路の動作に与える影響度の順位付けしたものである。
【0031】
リセット信号RESETおよびクロック信号CLK2については、これ等信号の入力パターンは、正規表現で記述される。記号"[ ]"は、1サイクルにおける論理レベルを表している。記号"{ }"は、繰り返し回数を表している。記号"*"は、直前の記述が無限に続くことを表している。
【0032】
このように、論理回路の検証において、入力パターンが常に決まっている信号については、その入力パターンを正規表現で記述する。換言すれば、ある論理レベルに変化しないと検証の意味がなくなる信号について正規表現で記述することで、順位付けされる信号の数を減らすことができ、検証時間を短縮できる。なお、信号名リストは、第1の実施形態と同様に、検証する論理回路を熟知した設計者または検証者が作成する。
【0033】
図8は、図7の信号名リスト中で正規表現されたリセット信号RESETおよびクロック信号CLK2の実際の入力パターンを示している。リセット信号RESETおよびクロック信号CLK2の入力パターンは、設計者等が図8に示した波形をワークステーションに入力し、ワークステーションのプログラムがこれ等波形を正規表現に変換してもよく、設計者自らが正規表現で記述した入力パターンをワークステーションに入力してもよい。すなわち、入力パターンが常に決まっている信号については、その入力パターンが容易に生成される。
【0034】
この実施形態においても、上述した第1の実施形態と同様の効果を得ることができる。さらに、この実施形態では、入力パターンが常に決まっている信号について、その入力パターンを正規表現で記述したので、順位付けされる信号の数を減らすことができ、検証時間を短縮できる。また、入力パターンを容易に生成できる。
【0035】
なお、上述した実施形態では、検証プログラムをワークステーションで実行した例について述べた。本発明はかかる実施形態に限定されるものではない。例えば、検証プログラムをパーソナルコンピュータで実行しても良い。
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【0036】
【発明の効果】
本発明の形式的検証方法では、検証装置のメモリ不足等により形式的検証が途中で強制終了した場合にも、影響度に基づいて途中までの検証結果を残すことができる。この結果、強制終了の原因の解析が容易になり、検証効率を向上できる。全ての検証を完了するまでの時間、検証に必要な検証装置のメモリ容量を見積もることができる。
本発明の形式的検証方法では、より多くの入力パターンの組み合わせについて検証することができ、より多くの種類の検証履歴を残すことができる。
【0037】
本発明の形式的検証方法では、予め設定された条件(影響度)と生成される入力パターンとの関係が分かりやすいため、強制終了の原因の解析が容易になり、検証効率を向上できる。
本発明の形式的検証方法では、順位付けされる信号の数を減らすことができ、検証時間を短縮できる。また、入力パターンを容易に生成できる。
【図面の簡単な説明】
【図1】第1の実施形態における形式的検証を行う論理回路の一例を示すブロック図である。
【図2】第1の実施形態における論理回路の動作に与える影響度の順位を示す入力信号の信号名リストである。
【図3】第1の実施形態における検証プログラムが生成する入力パターンの組み合わせ例を示す説明図である。
【図4】第1の実施形態における検証プログラムが実行する検証の手順を示すフローチャートである。
【図5】第1の実施形態におけるワークステーション内で生成される入力信号の波形の一部と検証結果を示す説明図である。
【図6】第1の実施形態におけるワークステーションから出力される検証結果の例を示す説明図である。
【図7】第2の実施形態における論理回路の動作に与える影響度の順位を示す入力信号の信号名リストである。
【図8】図7のリセット信号およびクロック信号の実際の入力パターンを示す波形図である。
【符号の説明】
CLK2 クロック信号
IN-A、IN-B、IN-C 入力信号
OUT-1、OUT-2 出力信号
RESET リセット信号
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a formal verification method for verifying the function of a logic circuit.
[0002]
[Prior art]
Semiconductor integrated circuits such as system LSIs have high functionality and a large logical scale. Accordingly, logic verification of semiconductor integrated circuits tends to become longer and longer in both verification scale and verification time.
Recently, formal verification has attracted attention as one of logic verification techniques. Formal verification, for example, converts a logic circuit modeled by RTL description into a finite element machine and mathematically proves that the specification to be verified is satisfied. Formal verification is superior in terms of completeness compared to conventional simulation methods that consider only input patterns. Therefore, it is possible to detect errors that are difficult to find in simulation.
[0003]
[Problems to be solved by the invention]
However, formal verification is computationally intensive compared to logic simulation. For this reason, if a circuit model with a large number of states is handled, the memory capacity of the workstation that executes the verification program may be insufficient, and verification may become impossible. When verification becomes impossible due to memory shortage, the verification program is forcibly terminated, and there is a problem that no verification result remains. That is, when the verification program is forcibly terminated, there is a problem that it is impossible to confirm how far the verification program has been verified. Formal verification can take up to a week to complete. For this reason, the time loss and the cost loss upon forced termination are very large.
[0004]
The scale of a circuit model that can be handled by formal verification largely depends on the number of flip-flops included in the model. Theoretically, the number of states in the circuit model is twice the increment of the flip-flop, and the memory capacity required for verification is also doubled accordingly. On the other hand, since formal verification is characterized by the completeness of input patterns as described above, it is difficult to correctly estimate the memory capacity and verification time required for verification. For this reason, the formal verification is not always correctly performed only by adding the memory of the workstation.
[0005]
As described above, formal verification is very useful for verification of logic circuits, but no consideration is given to forced termination due to a relatively short memory shortage.
An object of the present invention is to improve the verification efficiency by leaving the verification result so far when the formal verification is forcibly terminated.
[0006]
[Means for Solving the Problems]
In the formal verification method of the present invention , the order of the degree of influence on the operation of the logic circuit when these input signals change is given to the input signals input to the logic circuit to be verified. Then, verification is executed by giving free patterns, which are all possible input patterns, in order from the input signal having the highest influence level. That is, the input pattern is sequentially generated according to a preset condition (influence degree). Therefore, even when formal verification is forcibly terminated midway due to a memory shortage of the verification device, it is possible to leave a verification result up to the middle based on the above-described influence degree. As a result, the cause of forced termination can be easily analyzed, and verification efficiency can be improved. Since the input pattern that has been verified and the input pattern that could not be verified become clear, the time required to complete all verifications and the memory capacity of the verification device required for verification can be estimated.
[0007]
In the formal verification method of the present invention , verification is performed by giving a free pattern to each of the input signals, and then performing verification by giving a free pattern in order from a plurality of input signals having a high influence. In this way, by gradually giving complex input patterns, for example, when the memory capacity of the verification device is the same, it is possible to verify more combinations of input patterns. As a result, more types of verification histories can be left.
[0008]
In the formal verification method of the present invention , verification is executed by giving either “0 fixed” or “1 fixed” to an input signal to which no free pattern is given. That is, “0 fixed” or “1 fixed” is preferentially given to an input signal having a low influence on the logic circuit operation. Since the relationship between the preset condition (influence degree) and the generated input pattern becomes easy to understand, the cause of the forced termination can be easily analyzed, and the verification efficiency can be improved.
[0009]
In the formal verification method of the present invention , an input pattern is described by a regular expression for an input signal whose input pattern is determined in the verification of the logic circuit. For this reason, the number of signals to be ranked can be reduced, and the verification time can be shortened. Moreover, an input pattern can be easily generated.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
1 to 5 show a first embodiment of the formal verification method of the present invention .
FIG. 1 shows an example of a logic circuit (verification target) that performs formal verification. This logic circuit is formed in a semiconductor integrated circuit such as a system LSI, for example. The specification of the logic circuit is determined so that the output signals OUT-1 and OUT-2 do not simultaneously become "1" when the input signals IN-A, IN-B, and IN-C are given. For this reason, the formal verification proves mathematically that the output signals OUT-1 and OUT-2 are not simultaneously "1". Formal verification is performed, for example, by a workstation verification program.
[0011]
FIG. 2 shows a signal name list corresponding to the input signals IN-A, IN-B, and IN-C. The signal name list ranks the degree of influence of the input signals IN-A, IN-B, and IN-C on the operation of the logic circuit when these input signals change. The signal name list is created by a designer or verifier who is familiar with the logic circuit to be verified.
[0012]
For example, an input signal whose logic value may be fixed, such as an operation mode signal for setting the operation mode (normal operation mode, standby mode, test mode, etc.) of the system LSI, is lowered in rank. A signal whose significance of verification becomes low when the input level is fixed is given higher rank. An example of a signal for increasing the priority is an interrupt signal. However, when the operation mode switching operation is intended for verification, the order of the operation mode signals becomes higher.
[0013]
Signals that do not make sense when verified are excluded from the signal name list. For example, when verifying only the normal operation mode, the reset signal is excluded from the signal name list. Similarly, when verifying the normal operation by disabling the input of the interrupt signal, the interrupt signal is excluded from the signal name list.
[0014]
As described above, in the operation of the logic circuit, in the operation of interest (the operation to be verified), an input signal whose logic level changes frequently or an input signal whose logic level changes irregularly has a higher rank. On the other hand, in an operation of interest (operation to be verified), an input signal whose logic level does not change much or an input signal that does not significantly influence the operation of the logic circuit is lowered in rank.
[0015]
The created signal name list is input to a workstation that performs verification. The verification program executed by the workstation sequentially generates input patterns while referring to the order of the signal name list, and executes verification.
FIG. 3 shows an example of combinations of input patterns generated by the verification program. The verification program first gives "0 fixed (0 display in the figure)" and "1 fixed (1 display in the figure)" ((combinations (1)-(8 )).
[0016]
Next, the verification program gives “free pattern (?? display in the figure)” in order from the input signal having the highest degree of influence, and gives “0 fixed” and “1 fixed” to the remaining input signals (( Combinations (9) to (12), (13) to (16), and (17) to (20)) Here, “free patterns” are all patterns that can be input comprehensively.
[0017]
Next, the verification program gives “free pattern” in order from the two input signals having the highest degree of influence, and gives “fixed 0” and “fixed 1” to the remaining input signals ((combinations (21) to 21)). (22), (23) to (24), (25) to (26)) In this way, the verification program gives a “free pattern” according to the condition (influence) set in the signal name list in advance. The input program is generated while gradually increasing the number of input signals, and the verification program gives “free patterns” to all the input signals (combination (27)).
[0018]
The combination of input patterns is 3 to the nth power, where n is the number of input signals to be verified. In this example, since the number of input signals is “3”, there are 27 combinations (1) to (27). In addition, combination (1)-(8), combination (9)-(12), combination (13)-(16), combination (17)-(20), combination (21)-(22), combination (23 ) To (24) and the seven groups consisting of the combinations (25) to (26), the order of the combinations in each group need not be limited to FIG. For example, verification may be performed in the order of (16) to (13) in the group of combinations (13) to (16).
[0019]
The combination (27) that gives free patterns to all input signals corresponds to the input pattern used in the conventional formal verification. As described above, according to the present invention, the logic verification, which has been conventionally performed in a batch, is executed by being divided into a plurality of combinations of input patterns according to the degree of influence of the input signal on the circuit. For this reason, the verifier / designer can confirm to which combination the verification is completed even when the verification program is forcibly terminated due to the memory shortage of the workstation.
[0020]
FIG. 4 shows a verification flow executed by the workstation (verification program). The verification is executed in the order of combinations (1) to (27) shown in FIG. 3 until a memory shortage occurs.
First, in step S1, “0 fixed” or “1 fixed” is sequentially given to all the input signals IN-A, IN-B, and IN-C, and verification is performed. Step S1 corresponds to the combinations (1) to (8) shown in FIG.
[0021]
Next, in step S2, “free pattern” is given to one input signal in descending order of influence, “0 fixed” or “1 fixed” is given to the remaining input signals, and verification is performed. Step S2 corresponds to the combinations (9) to (20) shown in FIG.
Next, in step S3, “free pattern” is given to the two input signals in descending order of influence, “0 fixed” or “1 fixed” is given to the remaining input signals, and verification is performed. Step S3 corresponds to the combinations (21) to (26) shown in FIG. In this way, by gradually giving complex input patterns, it is possible to verify more combinations of input patterns.
[0022]
Finally, in step S4, “free pattern” is given to all the input signals IN-A, IN-B, and IN-C, and verification is performed. Step S4 corresponds to the combination (27) shown in FIG.
When the number of input signals is greater than “3”, “free pattern” is sequentially given to a plurality of highly influenced input signals after step S3, and “0 fixed” or “1 fixed” is applied to the remaining input signals. "Is given and verification is performed.
[0023]
FIG. 5 shows a part of the waveforms of the input signals IN-A, IN-B, and IN-C generated in the workstation at the time of verification and the verification results. In this example, the memory capacity of the workstation becomes insufficient during the verification of the combination (25), and the subsequent verification cannot be executed. However, since combinations of input patterns are determined based on a signal name list created in advance by a designer or the like, it can be seen that the verification of the combinations (1) to (24) has been completed without any problems at this point. Since the input patterns (1) to (24) for which the verification has been completed and the input patterns (25) to (27) that have not been verified become clear, it is necessary to complete the verification and the time required for the verification. The memory capacity can be easily estimated.
[0024]
FIG. 6 shows an example of the verification result output from the workstation after the verification is interrupted due to insufficient memory capacity. “OK” in the verification result column indicates that the verification has been completed without any problem. “NG” in the verification result column represents that the verification is interrupted due to a shortage of memory during verification with this input pattern (combination (25)). “-” In the verification result column indicates that verification with this pattern (combination (26), (27)) could not be executed.
[0025]
When the formal verification is forcibly terminated in the middle, the designers, based on the execution results of the formal verification shown in FIG. Consider whether it can be verified by simulation. In addition, the capacity of the insufficient memory is predicted from the combination that has been verified, and expansion of the memory is considered as necessary.
[0026]
As described above, in the present embodiment, the input pattern is sequentially generated according to the preset condition (influence degree). Therefore, even when formal verification is forcibly terminated due to a lack of memory in the workstation, the influence degree is also increased. Based on the above, it is possible to leave the verification result up to the middle. That is, it is possible to leave as a history what combination of input signals has been verified. As a result, when the verification result is “NG”, the cause can be easily analyzed, and the verification efficiency can be improved.
[0027]
Since input patterns that have been verified (for example, combinations (1) to (24)) and input patterns that could not be verified (for example, combinations (25) to (27)) are clear, all verifications are completed. It is possible to estimate the memory time required for verification and the time until
After performing verification by giving a free pattern to each of the input signals IN-A, IN-B, and IN-C, verification was performed by giving free patterns in order from a plurality of input signals having high influence. In this way, by gradually giving complex input patterns, it is possible to verify more combinations of input patterns when the memory capacity of the workstation is the same. As a result, more types of verification histories can be left.
[0028]
Verification was performed by preferentially giving either “0 fixed” or “1 fixed” to an input signal to which a free pattern is not given, that is, an input signal having a low influence on the logic circuit operation. Since the relationship between the preset condition (influence degree) and the generated input pattern becomes easy to understand, the cause of the forced termination can be easily analyzed, and the verification efficiency can be improved.
[0029]
7 and 8 show a second embodiment of the formal verification method of the present invention . The same elements as those described in the first embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted. A logic circuit (verification target) for performing formal verification is formed in a semiconductor integrated circuit such as a system LSI, for example.
[0030]
FIG. 7 shows a signal name list of input signals IN-A, IN-B, IN-C, RESET, and CLK2 input to the logic circuit. That is, in this embodiment, the reset signal RESET and the clock signal CLK2 are added to the signal name list of the first embodiment. The reset signal RESET and the clock signal CLK2 are signals whose input patterns are determined in the verification of the logic circuit of this embodiment. That is, the reset signal RESET and the clock signal CLK2 must always have waveforms with predetermined timings in order to operate the logic circuit normally. In the signal name list, the input signals IN-A, IN-B, and IN-C are ranked in the degree of influence on the operation of the logic circuit when the input signal changes, as in the first embodiment. Is.
[0031]
As for the reset signal RESET and the clock signal CLK2, the input pattern of these signals is described by regular expressions. The symbol “[]” represents a logic level in one cycle. The symbol “{}” represents the number of repetitions. The symbol “*” represents that the immediately preceding description continues indefinitely.
[0032]
In this way, in the verification of the logic circuit, for a signal whose input pattern is always determined, the input pattern is described by a regular expression. In other words, the number of signals to be ranked can be reduced and the verification time can be shortened by describing in regular expressions the signals that have no meaning of verification unless they change to a certain logic level. The signal name list is created by a designer or verifier who is familiar with the logic circuit to be verified, as in the first embodiment.
[0033]
FIG. 8 shows an actual input pattern of the reset signal RESET and the clock signal CLK2 which are regularly expressed in the signal name list of FIG. The input pattern of the reset signal RESET and the clock signal CLK2 may be such that the designer or the like inputs the waveform shown in FIG. 8 into the workstation, and the workstation program may convert these waveforms into regular expressions. May be input to the workstation as an input pattern described by a regular expression. That is, for a signal whose input pattern is always determined, the input pattern is easily generated.
[0034]
Also in this embodiment, the same effect as that of the first embodiment described above can be obtained. Further, in this embodiment, since the input pattern is described with a regular expression for a signal whose input pattern is always determined, the number of signals to be ranked can be reduced, and the verification time can be shortened. Moreover, an input pattern can be easily generated.
[0035]
In the above-described embodiment, the example in which the verification program is executed on the workstation has been described. The present invention is not limited to such an embodiment. For example, the verification program may be executed on a personal computer.
As mentioned above, although this invention was demonstrated in detail, said embodiment and its modification are only examples of this invention, and this invention is not limited to this. Obviously, modifications can be made without departing from the scope of the present invention.
[0036]
【The invention's effect】
In the formal verification method of the present invention , even if the formal verification is forcibly terminated due to a memory shortage of the verification device or the like, it is possible to leave a verification result up to the middle based on the degree of influence. As a result, the cause of forced termination can be easily analyzed, and verification efficiency can be improved. The time required to complete all verifications and the memory capacity of the verification device required for verification can be estimated.
In the formal verification method of the present invention , it is possible to verify more combinations of input patterns, and it is possible to leave more types of verification histories.
[0037]
In the formal verification method of the present invention , since the relationship between preset conditions (influence levels) and generated input patterns is easy to understand, the cause of forced termination can be easily analyzed, and verification efficiency can be improved.
In the formal verification method of the present invention , the number of signals to be ranked can be reduced, and the verification time can be shortened. Moreover, an input pattern can be easily generated.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an example of a logic circuit that performs formal verification in a first embodiment.
FIG. 2 is a signal name list of input signals indicating the ranking of the degree of influence on the operation of the logic circuit in the first embodiment.
FIG. 3 is an explanatory diagram illustrating an example of combinations of input patterns generated by a verification program according to the first embodiment.
FIG. 4 is a flowchart illustrating a verification procedure executed by a verification program according to the first embodiment.
FIG. 5 is an explanatory diagram showing a part of a waveform of an input signal generated in the workstation and a verification result in the first embodiment.
FIG. 6 is an explanatory diagram illustrating an example of a verification result output from the workstation according to the first embodiment.
FIG. 7 is a signal name list of input signals indicating the ranking of the degree of influence on the operation of the logic circuit in the second embodiment.
8 is a waveform diagram showing actual input patterns of the reset signal and clock signal of FIG. 7. FIG.
[Explanation of symbols]
CLK2 clock signal
IN-A, IN-B, IN-C input signal
OUT-1, OUT-2 output signal
RESET Reset signal

Claims (5)

検証対象である論理回路に入力される複数の入力信号について予め順位付けされ、その順位は、前記論理回路の動作中に論理レベルが頻繁に変化する入力信号または論理レベルが不規則に変化する入力信号ほど高い信号名リストを用いて、コンピュータが、前記順位の高い順に、各入力端子に入力可能な全ての入力パターンを順次与え、前記各入力パターンを用いて検証を実行するステップと、
コンピュータが、検証により得られた検証結果を出力するステップとを備え
前記論理回路の検証において入力パターンが決まっている前記入力信号について、コンピュータが、入力された前記入力パターンを正規表現に変換することを特徴とする形式的検証方法。
A plurality of input signals input to the logic circuit to be verified are ranked in advance, and the order is an input signal whose logic level changes frequently during operation of the logic circuit or an input whose logic level changes irregularly. Using a signal name list that is higher for signals, the computer sequentially gives all input patterns that can be input to each input terminal in the descending order, and performs verification using each input pattern;
And a computer outputting a verification result obtained by the verification ,
A formal verification method characterized in that, for the input signal whose input pattern is determined in the verification of the logic circuit, a computer converts the input pattern input to a regular expression .
請求項1記載の形式的検証方法において、
コンピュータが、前記入力可能な全ての入力パターンが与えられる前記入力信号を除く入力信号には、"0固定"または"1固定"のいずれかの入力パターンを与えて検証を実行することを特徴とする形式的検証方法。
The formal verification method according to claim 1, wherein:
The computer performs verification by giving an input pattern of “0 fixed” or “1 fixed” to an input signal other than the input signal to which all input patterns that can be input are given. Formal verification method to do.
請求項1記載の形式的検証方法において、
コンピュータが、前記入力信号のそれぞれに対して前記入力可能な全ての入力パターンを与えて検証を実行した後、
コンピュータが、複数の前記入力信号の組み合わせのうち、前記順位の高い組み合わせから順に、前記入力可能な全ての入力パターンを与えて検証を実行することを特徴とする形式的検証方法。
The formal verification method according to claim 1, wherein:
After the computer performs verification by giving all input patterns that can be input to each of the input signals,
A formal verification method, wherein a computer executes verification by giving all the input patterns that can be input in order from the combination having the highest order among a plurality of combinations of the input signals.
請求項3記載の形式的検証方法において、
コンピュータが、前記入力可能な全ての入力パターンが与えられる前記入力信号を除く入力信号には、"0固定"または"1固定"のいずれかの入力パターンを与えて検証を実行することを特徴とする形式的検証方法。
The formal verification method according to claim 3,
The computer performs verification by giving an input pattern of “0 fixed” or “1 fixed” to an input signal other than the input signal to which all input patterns that can be input are given. Formal verification method to do.
請求項1記載の形式的検証方法において、
コンピュータが、メモリ不足により検証が実行できなくなったときに、検証を完了した入力パターンと検証を完了していない入力パターンとを区別して出力することを特徴とする形式的検証方法。
The formal verification method according to claim 1, wherein:
A formal verification method characterized in that when a computer becomes unable to perform verification due to a memory shortage, an input pattern that has been verified is distinguished from an input pattern that has not been verified and is output.
JP2001154334A 2001-05-23 2001-05-23 Formal verification method Expired - Fee Related JP4316158B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001154334A JP4316158B2 (en) 2001-05-23 2001-05-23 Formal verification method
US10/060,261 US6715135B2 (en) 2001-05-23 2002-02-01 Formal verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001154334A JP4316158B2 (en) 2001-05-23 2001-05-23 Formal verification method

Publications (3)

Publication Number Publication Date
JP2002351939A JP2002351939A (en) 2002-12-06
JP2002351939A5 JP2002351939A5 (en) 2006-09-28
JP4316158B2 true JP4316158B2 (en) 2009-08-19

Family

ID=18998689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001154334A Expired - Fee Related JP4316158B2 (en) 2001-05-23 2001-05-23 Formal verification method

Country Status (2)

Country Link
US (1) US6715135B2 (en)
JP (1) JP4316158B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7661050B2 (en) * 2007-05-04 2010-02-09 International Business Machines Corporation Method and system for formal verification of partial good self test fencing structures
US20090292941A1 (en) * 2008-05-22 2009-11-26 Nec Laboratories America, Inc. Proof-guided error diagnosis (ped) by triangulation of program error causes
JP6201382B2 (en) 2013-04-05 2017-09-27 株式会社ソシオネクスト Logic verification apparatus and logic verification method
DE102013223467A1 (en) * 2013-11-18 2015-05-21 Dspace Digital Signal Processing And Control Engineering Gmbh Development device for configuring a model of a technical system for displaying signal curves
US10896277B1 (en) 2019-06-13 2021-01-19 Cadence Design Systems, Inc. Over-constraints for formal verification

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US684808A (en) * 1900-09-25 1901-10-22 Samuel A Flower Car-axle lubricator.
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system

Also Published As

Publication number Publication date
US6715135B2 (en) 2004-03-30
JP2002351939A (en) 2002-12-06
US20020178425A1 (en) 2002-11-28

Similar Documents

Publication Publication Date Title
US7900163B2 (en) Method and apparatus for identifying redundant scan elements
US11574101B2 (en) Techniques for providing optimizations based on categories of slack in timing paths
TWI675307B (en) Method for modeling glitch of logic gates
US6308292B1 (en) File driven mask insertion for automatic test equipment test pattern generation
JP4316158B2 (en) Formal verification method
US8413102B2 (en) Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop
US6237117B1 (en) Method for testing circuit design using exhaustive test vector sequence
JP2010170180A (en) Circuit verification device and program
US10354029B2 (en) Method for equipping registers of an integrated circuit to detect timing violations
WO2010134264A1 (en) Device for designing semiconductor integrated circuits, and data processing method and control program thereof
US7036063B2 (en) Generalized fault model for defects and circuit marginalities
US10726189B2 (en) Less-pessimistic static timing analysis for synchronous circuits
US7246053B2 (en) Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications
JP2001184372A (en) Method and device for verifying rounding of waveform
JP2008107872A (en) Semiconductor integrated circuit
US7509603B2 (en) Semiconductor integrated circuit and design method thereof
Devanathan et al. Variation-tolerant, power-safe pattern generation
US11449337B1 (en) Pseudorandom keephot instructions to mitigate large load steps during hardware emulation
JP5145167B2 (en) Clock domain check method, clock domain check program, and recording medium
JP3542027B2 (en) Semiconductor device provided with burn-in stress circuit and method for applying burn-in stress to semiconductor device
KR100312732B1 (en) Timing analysis system for digital circuits
US7301361B2 (en) Logic circuit for board power-supply evaluation and board power-supply evaluating method
KR100335376B1 (en) Resynthesis system and the method for time delay constraint of digital circuits
Huang et al. An Industrial Case Study of Sticky Path-Delay Faults
JP5522380B2 (en) Program for optimizing the number of diagnostic test patterns for semiconductor integrated circuits

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060815

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060815

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090519

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090520

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: 20120529

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130529

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140529

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees