JP6199813B2 - Formal verification apparatus and program - Google Patents
Formal verification apparatus and program Download PDFInfo
- Publication number
- JP6199813B2 JP6199813B2 JP2014127986A JP2014127986A JP6199813B2 JP 6199813 B2 JP6199813 B2 JP 6199813B2 JP 2014127986 A JP2014127986 A JP 2014127986A JP 2014127986 A JP2014127986 A JP 2014127986A JP 6199813 B2 JP6199813 B2 JP 6199813B2
- Authority
- JP
- Japan
- Prior art keywords
- verification
- input
- storage unit
- logic circuit
- dynamic
- 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
Description
本発明は、フォーマル検証装置およびプログラムに関する。 The present invention relates to a formal verification device and a program.
近年、半導体集積回路の高機能化および多機能化が進んでおり、複数の回路を1つの半導体チップに搭載することが増えている。このため、回路の論理検証に要する工数も増加しており、設計した論理回路を効率的に検証することが求められている。 In recent years, semiconductor integrated circuits have become more sophisticated and multifunctional, and a plurality of circuits are increasingly mounted on one semiconductor chip. For this reason, the man-hours required for logic verification of the circuit are increasing, and it is required to efficiently verify the designed logic circuit.
一般に、論理回路の検証手法として、動的検証(論理シミュレーション検証)およびフォーマル検証が知られている。動的検証では、入力パターンを検証対象の論理回路に与えて動作をシミュレーションし、出力パターンを期待値と比較して論理回路の検証を行う。一方、フォーマル検証では、設計の仕様および検証対象の論理回路を数学的な手法を用いて網羅的に解析することによって論理回路の検証を行う。このようにフォーマル検証は、パターンの漏れなく網羅的に論理回路を検証するため、近年、フォーマル検証を用いることが増加している。 In general, dynamic verification (logic simulation verification) and formal verification are known as verification methods for logic circuits. In dynamic verification, an input pattern is given to a logic circuit to be verified to simulate an operation, and an output pattern is compared with an expected value to verify the logic circuit. On the other hand, in formal verification, a logic circuit is verified by exhaustively analyzing a design specification and a logic circuit to be verified using a mathematical method. In this way, formal verification has been increasingly used in recent years in order to verify logic circuits comprehensively without omission of patterns.
しかしながら、フォーマル検証装置では、数学的な手法を用いて網羅的に解析するため、異常動作および前提条件の不足に起因したエラーを発生させてしまうことが多い。これらのエラーのうちの多くは、実際の論理回路上ではありえない入力に伴ったほとんど意味のないエラー(以下、「疑似エラー」という)であるにもかかわらず、検証者は全ての疑似エラーを除去しなければ論理回路を検証することができず、疑似エラーの除去に多くの時間を要していた。 However, since the formal verification apparatus comprehensively analyzes using a mathematical method, errors due to abnormal operation and lack of preconditions are often generated. Even though many of these errors are insignificant errors associated with inputs that are not possible on actual logic (hereinafter referred to as “pseudo errors”), the verifier removes all pseudo errors. Otherwise, the logic circuit could not be verified, and much time was required to remove the pseudo error.
本発明は上記課題を鑑みてなされたものであり、その目的は、フォーマル検証時の疑似エラーの発生を抑制可能なフォーマル検証装置およびプログラムを提供することにある。 The present invention has been made in view of the above problems, and an object of the present invention is to provide a formal verification apparatus and program capable of suppressing the occurrence of a pseudo error during formal verification.
本発明によるフォーマル検証装置は、入力制約記憶部と、アサーション記憶部と、論理回路記憶部と、フォーマル検証部とを備える。入力制約記憶部は入力制約を記憶する。アサーション記憶部はアサーションを記憶する。論理回路記憶部は論理回路を記憶する。フォーマル検証部は、前記入力制約、前記アサーションおよび前記論理回路に基づいてフォーマル検証を行う。前記入力制約記憶部は、前記入力制約として、動的検証の入力条件または動的検証の出力結果を記憶している。 A formal verification apparatus according to the present invention includes an input constraint storage unit, an assertion storage unit, a logic circuit storage unit, and a formal verification unit. The input constraint storage unit stores input constraints. The assertion storage unit stores the assertion. The logic circuit storage unit stores a logic circuit. The formal verification unit performs formal verification based on the input constraint, the assertion, and the logic circuit. The input constraint storage unit stores dynamic verification input conditions or dynamic verification output results as the input constraints.
本発明によるプログラムは、設計回路のフォーマル検証を行うためのプログラムである。プログラムは、コンピューターに、入力制約を記憶した入力制約記憶部を用意する工程と、アサーションを記憶したアサーション記憶部を用意する工程と、論理回路を記憶した論理回路記憶部を用意する工程と、前記入力制約、前記アサーションおよび前記論理回路に基づいてフォーマル検証を行う工程とを実行させる。前記入力制約記憶部を用意する工程において、前記入力制約記憶部は、動的検証の入力条件または動的検証の出力結果を記憶している。 The program according to the present invention is a program for performing formal verification of a design circuit. The program includes a step of preparing an input constraint storage unit storing input constraints in a computer, a step of preparing an assertion storage unit storing assertions, a step of preparing a logic circuit storage unit storing logic circuits, Performing formal verification based on the input constraint, the assertion, and the logic circuit. In the step of preparing the input constraint storage unit, the input constraint storage unit stores dynamic verification input conditions or dynamic verification output results.
本発明によれば、フォーマル検証時の疑似エラーの発生を抑制できる。 According to the present invention, it is possible to suppress the occurrence of pseudo errors during formal verification.
以下、図面を参照して本発明によるフォーマル検証装置およびプログラムの実施形態を説明する。ただし、本発明は以下の実施形態に限定されない。 Hereinafter, embodiments of a formal verification device and a program according to the present invention will be described with reference to the drawings. However, the present invention is not limited to the following embodiments.
まず、図1を参照して、本実施形態のフォーマル検証装置100を説明する。図1(a)に、本実施形態のフォーマル検証装置100の模式図を示す。フォーマル検証装置100は、入力制約記憶部112と、アサーション記憶部114と、論理回路記憶部116と、フォーマル検証部122とを備える。入力制約記憶部112は入力制約を記憶している。アサーション記憶部114は検証用のアサーションを記憶している。論理回路記憶部116は検証用の論理回路を記憶している。フォーマル検証部122は、入力制約記憶部112、アサーション記憶部114および論理回路記憶部116から、入力制約、アサーションおよび論理回路をそれぞれ読み出し、入力制約、アサーションおよび論理回路に基づいてフォーマル検証を行う。
First, a
フォーマル検証装置100は、入力部130および表示部140をさらに備える。例えば、入力部130は、タッチパネル、キーボードおよび/またはマウスを含む。表示部140はディスプレーを含む。
The
フォーマル検証の結果、エラーがあった場合、表示部140は、ユーザーにエラーを表示する。ユーザーは、表示部140に表示されたエラーに基づき、入力部130を用いて、入力制約記憶部112の入力制約、アサーション記憶部114のアサーション、および、論理回路記憶部116の論理回路のいずれかを修正する。
If there is an error as a result of the formal verification, the
例えば、ユーザーが、エラーが入力制約の不具合または不備に起因していると判定すると、ユーザーは、入力部130を用いて、入力制約記憶部112に記憶された入力制約を修正する。また、ユーザーが、エラーがアサーションの不具合に起因していると判定すると、ユーザーは、入力部130を用いて、アサーション記憶部114に記憶されたアサーションを修正する。あるいは、ユーザーが、エラーが論理回路の不具合に起因していると判定すると、ユーザーは、入力部130を用いて、論理回路記憶部116に記憶された論理回路を修正する。
For example, when the user determines that the error is due to a defect or deficiency in the input constraint, the user uses the
上述したように、入力制約、アサーションおよび論理回路のいずれかを修正した後、フォーマル検証部122は、再び、入力制約記憶部112、アサーション記憶部114および論理回路記憶部116から、入力制約、アサーションおよび論理回路をそれぞれ読み出し、再度、入力制約、アサーションおよび論理回路に基づいてフォーマル検証を行う。フォーマル検証装置100は、フォーマル検証後のエラーが無くなるまで、入力制約、アサーションおよび論理回路のいずれかの修正およびフォーマル検証を繰り返す。
As described above, after correcting any of the input constraint, assertion, and logic circuit, the
記憶部110は、入力制約記憶部112と、アサーション記憶部114と、論理回路記憶部116とを含む。記憶部110は、例えば、ハードディスク、ROM(Read Only Memory)またはRAM(Random Access Memory)を含む。ROMは、例えば、フラッシュメモリー等のPROM(Programmable ROM)である。RAMは、例えば、DRAM(Dynamic RAM)である。典型的には、記憶部110を構成する1つの記憶手段が、入力制約記憶部112、アサーション記憶部114および論理回路記憶部116のすべてを含んでいる。ただし、記憶部110が複数の記憶手段から構成され、入力制約記憶部112、アサーション記憶部114および論理回路記憶部116は分離されていてもよい。
The
制御部120は、フォーマル検証部122を含む。制御部120は、フォーマル検証部122によってフォーマル検証を行うだけでなく、入力部130および表示部140を制御する。制御部120は、CPUによって具現化される。制御部120は、記憶部110に記憶されたデータを用いて、記憶部110に記憶されたプログラムを実行することにより、設計回路のフォーマル検証を行う。
The
例えば、ROMには、制御部120によって実行される各種のコンピュータープログラム(例えば、ソフトウェアまたはファームウェア)が記憶される。制御部120は、実行対象のコンピュータープログラムをハードディスクまたはROMからRAMにロードし、ロードしたプログラムを実行する。
For example, various computer programs (for example, software or firmware) executed by the
本実施形態のフォーマル検証装置100において、入力制約記憶部112は、動的検証の入力条件または動的検証の出力結果を入力制約として記憶している。動的検証の入力条件は、例えば、動的検証のテストベクターである。動的検証の出力結果は、例えば、動的検証のダンプファイルである。動的検証の入力条件または出力結果は、論理回路の検証の終了した入力条件または出力結果であることが好ましい。以上のように、本実施形態のフォーマル検証装置100は、動的検証の入力条件または出力結果を入力制約として利用する。動的検証の入力条件または出力結果は動的検証装置から導出される。
In the
図1(b)に、動的検証装置200の模式図を示す。動的検証装置200は、テストベンチ記憶部212と、RTL記憶部214と、動的検証部222と、ダンプファイル生成部224と、入力部230と、表示部240とを備える。例えば、入力部230は、キーボードおよび/またはマウスを含む。表示部240はディスプレーを含む。
FIG. 1B shows a schematic diagram of the
テストベンチ記憶部212は、動的検証のためのテストベクターを記憶している。RTL記憶部214はレジスター転送レベル(Register Tranfer Level)で記載された論理回路を記憶している。記憶部210は、テストベンチ記憶部212およびRTL記憶部214を含む。
The test
動的検証部222は、テストベクターおよび論理回路に基づいて動的検証を行う。動的検証部222による動的検証の結果、テストベクターの各入力値に対して出力値が得られる。ダンプファイル生成部224は、動的検証部222の検証結果に基づきダンプファイルを生成する。ダンプファイルには、テストベクターの入力値と、入力値に対応する出力値とが記述されている。制御部220は、動的検証部222およびダンプファイル生成部224を含む。制御部220は、CPUによって具現化される。制御部220は、記憶部210に記憶されたデータを用いて、記憶部210に記憶されたプログラムを実行することにより、動的検証を実行する。
The
動的検証の結果、エラーがあった場合、表示部240は、エラーが発生したことを表示する。例えば、動的検証を行った後、表示部240は、動的検証の結果を示すログを表示してもよい。また、表示部240は、ダンプファイル生成部224によって生成されたダンプファイルに基づく波形を表示してもよい。
If there is an error as a result of the dynamic verification, the
動的検証の結果、エラーがあった場合、ユーザーは、入力部230を用いて、テストベンチ記憶部212のテストベクターおよびRTL記憶部214の論理回路のいずれかを修正する。具体的には、ユーザーが、表示部240の表示に基づいて、エラーがテストベクターの不具合に起因していると判定すると、ユーザーは、入力部230を用いて、テストベンチ記憶部212に記憶されたテストベクターを修正する。あるいは、ユーザーが、エラーが論理回路の不具合に起因していると判定すると、ユーザーは、入力部230を用いて、RTL記憶部214に記憶された論理回路を修正する。なお、動的検証の結果、エラーがない場合、論理回路の検証を終了する。
If there is an error as a result of the dynamic verification, the user corrects either the test vector in the test
本実施形態のフォーマル検証装置100は、動的検証の入力条件または出力結果を利用してフォーマル検証を行う。典型的には、フォーマル検証装置100は、フォーマル検証の前に行われた動的検証の入力条件または出力結果を利用するため、ユーザーは、フォーマル検証および動的検証の両方のアプローチから論理回路を検証できる。
The
本実施形態においてフォーマル検証は、動的検証の入力条件または出力結果に基づいて行われる。以下に、図1(a)および図3を参照して本実施形態のフォーマル検証装置100によるフォーマル検証方法を説明するのに先立ち、図1(b)および図2を参照して動的検証装置200による動的検証を説明する。
In this embodiment, formal verification is performed based on input conditions or output results of dynamic verification. Before describing the formal verification method by the
ステップS1aにおいて、動的検証部222は、テストベンチ記憶部212からテストベクターを読み出す。また、ステップS1bにおいて、動的検証部222は、RTL記憶部214から論理回路を読み出す。
In step S1a, the
次に、ステップS2において、動的検証部222は動的検証を行う。動的検証部222は、読み出したテストベクターおよび論理回路に基づいて動的検証を行う。動的検証部222が動的検証を行うと、テストベクターの入力値に対応する出力値が得られる。ダンプファイル生成部224は、動的検証部222の検証結果に基づきダンプファイルを生成する。ダンプファイルには、テストベクターの入力値と、入力値に対応する出力値とが記述されている。その後、ステップS3において、ユーザーは、動的検証の検証結果を分析する。
Next, in step S2, the
ステップS4において、ユーザーは、論理回路の検証を終了すべきか否か判定する。ステップS4において、ユーザーが、論理回路の検証を終了すべきと判定する場合(ステップS4においてYesの場合)、検証を終了する。ステップS4において、ユーザーが、論理回路の検証を終了すべきではないと判定した場合(ステップS4においてNoの場合)、ステップS5においてユーザーは、テストベクターの不具合に起因したエラーがあるか否かを判定する。 In step S4, the user determines whether or not the logic circuit verification should be terminated. In step S4, when it is determined that the user should end the verification of the logic circuit (Yes in step S4), the verification ends. If it is determined in step S4 that the user should not end the verification of the logic circuit (No in step S4), in step S5, the user determines whether there is an error due to a defect in the test vector. judge.
ユーザーが、ステップS5においてテストベクターの不具合に起因したエラーがあると判定した場合(ステップS5においてYesの場合)、ユーザーは、ステップS6において入力部230を用いてテストベンチ記憶部212に記憶されたテストベクターを修正する。その後、ステップS1a、S1bにおいて、テストベクターおよび論理回路を読み出し、再び、ステップS2において動的検証を実行し、ステップS3において検証結果を分析する。
If the user determines in step S5 that there is an error due to a defect in the test vector (Yes in step S5), the user is stored in the test
ユーザーが、ステップS5においてテストベクターの不具合に起因したエラーはないと判定した場合(ステップS5においてNoの場合)、ユーザーは、ステップS7において、RTL記憶部214に記憶された論理回路を修正する。その後、ステップS1a、S1bにおいて、テストベクターおよび論理回路を読み出し、再び、ステップS2において動的検証を実行し、ステップS3において検証結果を分析する。なお、テストベクターおよび論理回路の修正は、論理回路の検証が終了するまで繰り返される。以上のようにして動的検証が行われる。
If the user determines in step S5 that there is no error due to a test vector failure (No in step S5), the user corrects the logic circuit stored in the
次に、図1(a)および図3を参照して、本実施形態のフォーマル検証方法を説明する。 Next, with reference to FIG. 1A and FIG. 3, the formal verification method of this embodiment will be described.
ステップS11aにおいて、フォーマル検証部122は、入力制約記憶部112から入力制約として、動的検証の入力条件または出力結果を読み出す。ステップS11bにおいて、フォーマル検証部122は、アサーション記憶部114からアサーションを読み出す。ステップS11cにおいて、フォーマル検証部122は、論理回路記憶部116から論理回路を読み出す。
In step S <b> 11 a, the
次に、ステップS12において、フォーマル検証部122は、フォーマル検証を実行する。フォーマル検証は、入力制約、アサーションおよび論理回路に基づいて行われる。検証結果にエラーがあった場合、表示部140は、エラーがあったことを表示する。その後、ステップS13において、ユーザーは、フォーマル検証の検証結果を分析する。
Next, in step S12, the
ステップS14において、ユーザーは、論理回路の検証を終了すべきか否か判定する。ステップS14において、ユーザーが、論理回路の検証を終了すべきと判定した場合(ステップS14においてYesの場合)、検証を終了する。ステップS14において、ユーザーが、論理回路の検証を終了すべきではないと判定した場合(ステップS14においてNoの場合)、ステップS15において、ユーザーは、エラーが入力制約の不具合または不備に起因しているか否か(疑似エラーか否か)を判定する。 In step S14, the user determines whether or not the logic circuit verification should be terminated. In step S14, when the user determines that the verification of the logic circuit should be finished (Yes in step S14), the verification is finished. If it is determined in step S14 that the user should not complete the verification of the logic circuit (No in step S14), in step S15, the user determines that the error is caused by a defect or deficiency in input constraints. Whether or not (a pseudo error or not) is determined.
ユーザーが、ステップS15においてエラーが入力制約の不具合または不備に起因していると判定した場合(ステップS15においてYesの場合)、ユーザーは、ステップS16において、入力部130を介して、入力制約記憶部112に記憶された入力制約を修正する。ただし、本実施形態では、入力制約として、動的検証の入力条件または出力結果を用いているため、一般にユーザーが入力制約を作成する場合と比べて、疑似エラーの発生を抑制できる。
If the user determines in step S15 that the error is due to a defect or deficiency in the input constraint (Yes in step S15), the user inputs the input constraint storage unit via the
その後、ステップS11a、ステップS11bおよびステップS11cにおいて、フォーマル検証部122は、入力制約、アサーションおよび論理回路を読み出し、再び、ステップS12においてフォーマル検証を実行し、ステップS13において検証結果を分析する。
Thereafter, in step S11a, step S11b, and step S11c, the
ユーザーが、ステップS15においてエラーが入力制約の不具合または不備に起因していないと判定した場合(ステップS15においてNoの場合)、ユーザーは、ステップS17において、エラーがアサーションの不具合に起因しているか否かを判定する。ユーザーが、ステップS17においてエラーがアサーションの不具合に起因していると判定した場合(ステップS17においてYesの場合)、ユーザーは、ステップS18において、入力部130を介して、アサーション記憶部114に記憶されたアサーションを修正する。その後、ステップS11a、ステップS11bおよびステップS11cにおいて、フォーマル検証部122は、入力制約、アサーションおよび論理回路を読み出し、再び、ステップS12においてフォーマル検証を実行し、ステップS13において検証結果を分析する。
If the user determines in step S15 that the error is not caused by an input constraint defect or deficiency (No in step S15), the user determines in step S17 whether the error is caused by an assertion defect. Determine whether. If the user determines in step S17 that the error is due to an assertion failure (Yes in step S17), the user is stored in the
ユーザーが、ステップS17においてエラーがアサーションの不具合に起因していないと判定した場合(ステップS17においてNoの場合)、エラーは入力制約およびアサーションのいずれにも起因していないため、ユーザーは、ステップS19において、入力部130を介して、論理回路記憶部116に記憶された論理回路を修正する。その後、フォーマル検証部122は、ステップS11a、ステップS11bおよびステップS11cにおいて、入力制約、アサーションおよび論理回路を読み出し、再び、ステップS12においてフォーマル検証を実行し、ステップS13において検証結果を分析する。なお、入力制約、アサーションおよび論理回路の修正は、論理回路の検証が終了するまで繰り返される。以上のようにしてフォーマル検証が行われる。
If the user determines in step S17 that the error is not caused by an assertion failure (No in step S17), the error is not caused by either the input constraint or the assertion. Then, the logic circuit stored in the logic
なお、本実施形態のフォーマル検証装置100は、少なくとも部分的に動的検証装置200と構成を共有することが好ましい。例えば、本実施形態のフォーマル検証装置100の制御部120は、動的検証装置200の制御部220と同一のCPUによって具現化されてもよい。また、動的検証装置200の制御部220は、動的検証の動的検証の入力条件または出力結果を、自動的に入力制約記憶部112に記憶してもよい。
In addition, it is preferable that the
ここで、図4を参照して、一般的なフォーマル検証における入力制約および動的検証のテストベクターの具体例を説明する。図4(a)は一般的なフォーマル検証における入力制約の記述の一例を示す。フォーマル検証において、入力制約は、一般に、特性仕様言語(Property Specification Language:PSL)で記述される。図4(a)に示された入力制約は、intr信号が立ち上がった後、clk信号が2回立ち上がり、iack信号がゼロになることを示している。ここでは、clk信号およびintr信号が入力信号であり、iack信号が出力信号である。 Here, a specific example of input constraints in general formal verification and test vectors for dynamic verification will be described with reference to FIG. FIG. 4A shows an example of input constraint description in general formal verification. In formal verification, input constraints are generally described in a property specification language (PSL). The input constraint shown in FIG. 4A indicates that after the intr signal rises, the clk signal rises twice and the iack signal becomes zero. Here, the clk signal and the intr signal are input signals, and the iack signal is an output signal.
これに対して、図4(b)は動的検証のテストベクターの一例を示す。図4(b)に示されたテストベクターは、以下のように記述されている。 In contrast, FIG. 4B shows an example of a test vector for dynamic verification. The test vector shown in FIG. 4 (b) is described as follows.
intr信号が立ち上がった場合、clk信号が3回立ち上がるまでサイクルを進める。この場合に、iack信号が立ち上がっていると、アサーションが正しいことを示す記述「Assertion Success」およびそのサイクル(時刻)を表示させ、このブロック内の処理を中止する。 When the intr signal rises, the cycle is advanced until the clk signal rises three times. In this case, if the iack signal rises, a description “Assessment Success” indicating that the assertion is correct and its cycle (time) are displayed, and the processing in this block is stopped.
一方、iack信号が立ち上がっていないと、clk信号がさらに4回立ち上がるまでサイクルを進め、アサーションが誤っていることを示す記述「Assertion Failuer」およびそのサイクル(時刻)を表示させ、このブロック内の処理を中止する。 On the other hand, if the iack signal does not rise, the cycle is advanced until the clk signal rises four more times, the description “Assertion Failer” indicating that the assertion is incorrect and the cycle (time) are displayed, and the processing in this block Cancel.
図4(a)に示した入力制約は図4(b)に示したテストベクターと等価である。本実施形態では、図4(b)に示された動的検証のテストベクターがフォーマル検証の入力制約として変換することなく用いられる。 The input constraint shown in FIG. 4A is equivalent to the test vector shown in FIG. In the present embodiment, the test vector for dynamic verification shown in FIG. 4B is used without being converted as the input constraint for formal verification.
なお、図4(a)および図4(b)の比較から理解されるように、一般に、動的検証のテストベクターの記述は、対応するフォーマル検証の入力制約の記述と比べると長くなる傾向がある。また、動検証のテストベクターをフォーマル検証の入力制約として用いた場合、ある範囲内において網羅的な検証は行われない。しかしながら、フォーマル検証の入力制約をいきなり適切に作成することは困難であり、本実施形態により、疑似エラーの発生を抑制し、他の箇所でのフォーマル検証による網羅的な検証を効率的に行うことができる。 As understood from the comparison between FIG. 4A and FIG. 4B, the description of the test vector for dynamic verification generally tends to be longer than the description of the input constraint for the corresponding formal verification. is there. In addition, when dynamic verification test vectors are used as input constraints for formal verification, exhaustive verification is not performed within a certain range. However, it is difficult to create formal verification input constraints in a sudden and appropriate manner. With this embodiment, the generation of pseudo errors can be suppressed, and comprehensive verification by formal verification in other locations can be efficiently performed. Can do.
なお、図4を参照して上述した説明では、フォーマル検証の入力制約として動的検証のテストベクターを用いたが、本発明はこれに限定されない。フォーマル検証の入力制約として動的検証の出力結果を用いてもよい。 In the above description with reference to FIG. 4, a test vector for dynamic verification is used as an input constraint for formal verification, but the present invention is not limited to this. The output result of dynamic verification may be used as the input constraint for formal verification.
ここで、図5(a)を参照して動的検証の出力結果(ダンプファイル)の一例を説明する。図5(a)は動的検証によって得られたダンプファイルを示す。 Here, an example of the output result (dump file) of the dynamic verification will be described with reference to FIG. FIG. 5A shows a dump file obtained by dynamic verification.
ここでも、clk信号およびintr信号は入力信号であり、iack信号は出力信号である。図5(a)に示したダンプファイルでは、入力信号であるclk信号およびintr信号をclk、intrで示しており、出力信号であるiack信号をiackで示している。clk信号、intr信号およびiack信号のそれぞれの値は、サイクルに応じて0または1のいずれかに変化する。 Again, the clk signal and the intr signal are input signals, and the iack signal is an output signal. In the dump file shown in FIG. 5A, the clk signal and intr signal that are input signals are indicated by clk and intr, and the iack signal that is an output signal is indicated by iack. The values of the clk signal, the intr signal, and the iack signal change to either 0 or 1 depending on the cycle.
図5(a)には、サイクル0〜5の場合の入力信号の値(入力値)および出力信号の値(出力値)が記載されている。サイクル0の場合、clk信号は0であり、intr信号は0であり、iack信号は0である。サイクル1の場合、clk信号は1であり、intr信号は1であり、iack信号は0である。サイクル2の場合、clk信号は0であり、intr信号は1であり、iack信号は0である。サイクル3以降、clk信号、intr信号、iack信号はサイクルに応じて変化する。
FIG. 5A shows the value of the input signal (input value) and the value of the output signal (output value) for
図5(b)に、図5(a)のダンプファイルを変換して生成した入力制約を示す。図5(b)の入力制約は、以下のように記述されている。 FIG. 5B shows input constraints generated by converting the dump file of FIG. The input constraints in FIG. 5B are described as follows.
intr信号が立ち上がった場合、clk信号が3回立ち上がるまでサイクルを進める。この場合、iack信号が立ち上がっていると、アサーションが正しいことを示す記述「Assertion Success」およびそのサイクル(時刻)を表示させ、このブロック内の処理を中止する。 When the intr signal rises, the cycle is advanced until the clk signal rises three times. In this case, when the iack signal rises, a description “Assessment Success” indicating that the assertion is correct and its cycle (time) are displayed, and the processing in this block is stopped.
一方、iack信号が立ち上がっていないと、clk信号が4回立ち上がるまでサイクルを進め、アサーションが誤っていることを示す記述「Assertion Failure」およびそのサイクル(時刻)を表示させ、このブロック内の処理を中止する。 On the other hand, if the iack signal has not risen, the cycle is advanced until the clk signal rises four times, a description “Assessment Failure” indicating that the assertion is incorrect and its cycle (time) are displayed, and the processing in this block is performed. Discontinue.
図5(a)に示したダンプファイルは図5(b)に示した入力制約と等価である。図5(b)に示したフォーマル検証の入力制約は、図5(a)に示したダンプファイルから生成可能である。 The dump file shown in FIG. 5A is equivalent to the input constraint shown in FIG. The formal verification input constraint shown in FIG. 5B can be generated from the dump file shown in FIG.
なお、図4および図5を参照して上述した動的検証の入力条件および出力結果は一例であり、動的検証の入力条件および出力結果はこれらに限定されないことは言うまでもない。 Note that the input conditions and output results of the dynamic verification described above with reference to FIGS. 4 and 5 are examples, and it is needless to say that the input conditions and output results of the dynamic verification are not limited to these.
また、上述した説明では、フォーマル検証を開始する前に、動的検証による論理回路の検証は終了していたが、本発明はこれに限定されない。フォーマル検証の一部を開始した後に、動的検証による論理回路の検証を終了するまで実行し、その後、引き続いてフォーマル検証を行ってもよい。 In the above description, the verification of the logic circuit by the dynamic verification has been completed before the formal verification is started, but the present invention is not limited to this. After a part of the formal verification is started, the verification may be performed until the verification of the logic circuit by the dynamic verification is completed, and then the formal verification may be performed subsequently.
本発明によれば、疑似エラーの発生を抑制するためのフォーマル検証装置およびプログラムを提供できる。このようなフォーマル検証装置およびプログラムは、特定用途集積回路(Application Specific Integrated Circuit:ASIC)の設計に好適に用いられる。特定用途集積回路は、例えば、画像形成装置または画像読取装置の回路として好適に用いられる。 ADVANTAGE OF THE INVENTION According to this invention, the formal verification apparatus and program for suppressing generation | occurrence | production of a pseudo error can be provided. Such a formal verification apparatus and a program are suitably used for the design of an application specific integrated circuit (ASIC). The application specific integrated circuit is preferably used as a circuit of an image forming apparatus or an image reading apparatus, for example.
100 フォーマル検証装置
112 入力制約記憶部
114 アサーション記憶部
116 論理回路記憶部
122 フォーマル検証部
130 入力部
140 表示部
DESCRIPTION OF
Claims (4)
アサーションを記憶するアサーション記憶部と、
論理回路を記憶する論理回路記憶部と、
前記入力制約、前記アサーションおよび前記論理回路に基づいてフォーマル検証を行うフォーマル検証部と
を備え、
前記入力制約記憶部は、前記入力制約として、動的検証の入力条件または動的検証の出力結果を記憶している、フォーマル検証装置。 An input constraint storage unit for storing input constraints;
An assertion storage unit for storing assertions;
A logic circuit storage unit for storing the logic circuit;
A formal verification unit that performs formal verification based on the input constraint, the assertion, and the logic circuit;
The formal verification device, wherein the input constraint storage unit stores an input condition of dynamic verification or an output result of dynamic verification as the input constraint.
入力制約を記憶した入力制約記憶部を用意する工程と、
アサーションを記憶したアサーション記憶部を用意する工程と、
論理回路を記憶した論理回路記憶部を用意する工程と、
前記入力制約、前記アサーションおよび前記論理回路に基づいてフォーマル検証を行う工程と
を実行させ、
前記入力制約記憶部を用意する工程において、前記入力制約記憶部は、動的検証の入力条件または動的検証の出力結果を記憶している、プログラム。 A program for formal verification of a design circuit.
Preparing an input constraint storage unit storing input constraints;
Preparing an assertion storage unit storing the assertion;
Preparing a logic circuit storage unit storing logic circuits;
Performing formal verification based on the input constraint, the assertion and the logic circuit;
In the step of preparing the input constraint storage unit, the input constraint storage unit stores a dynamic verification input condition or a dynamic verification output result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014127986A JP6199813B2 (en) | 2014-06-23 | 2014-06-23 | Formal verification apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014127986A JP6199813B2 (en) | 2014-06-23 | 2014-06-23 | Formal verification apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016009232A JP2016009232A (en) | 2016-01-18 |
JP6199813B2 true JP6199813B2 (en) | 2017-09-20 |
Family
ID=55226767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014127986A Expired - Fee Related JP6199813B2 (en) | 2014-06-23 | 2014-06-23 | Formal verification apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6199813B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031015B (en) * | 2019-11-29 | 2022-05-06 | 天津市滨海新区信息技术创新中心 | Verification method, device, equipment and storage medium of hybrid protocol conversion design |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6074426A (en) * | 1998-03-13 | 2000-06-13 | Interantional Business Machines Corporation | Method for automatically generating behavioral environment for model checking |
JP2000305977A (en) * | 1999-04-26 | 2000-11-02 | Hitachi Ltd | Method for verifying logical data, logic verification system for executing the verification method and recording medium recording program for executing the verification method |
JP4481762B2 (en) * | 2004-08-13 | 2010-06-16 | 富士通株式会社 | Logic verification device, logic verification method, logic verification program, and recording medium |
US8316332B1 (en) * | 2010-07-07 | 2012-11-20 | Cadence Design Systems, Inc. | Constraint minimization method for formal verification |
US20120198399A1 (en) * | 2011-01-31 | 2012-08-02 | Sean Arash Safarpour | System, method and computer program for determining fixed value, fixed time, and stimulus hardware diagnosis |
-
2014
- 2014-06-23 JP JP2014127986A patent/JP6199813B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2016009232A (en) | 2016-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6995451B2 (en) | Circuit optimization device and circuit optimization method | |
JP5983362B2 (en) | Test method, test program, and test control apparatus | |
CN104854465A (en) | Unique and unclonable platform identifiers using data-dependent circuit path responses | |
US20220358269A1 (en) | Simulation execution system, simulation execution method, and computer readable medium | |
US8881075B2 (en) | Method for measuring assertion density in a system of verifying integrated circuit design | |
JP6199813B2 (en) | Formal verification apparatus and program | |
TW201331775A (en) | Global clock handler object for HDL environment | |
JP2013541189A (en) | Method and apparatus for automatically verifying semiconductor process recipes | |
US20120291019A1 (en) | Program verification apparatus based on model verifying and storage medium | |
JP4950942B2 (en) | Semiconductor integrated circuit verification device | |
JPWO2020194455A1 (en) | Test case generator, test case generator, and test case generator | |
JP2005141434A (en) | Timing verification system and program for integrated circuit | |
JP6318976B2 (en) | DEBUG CIRCUIT, DEBUGGER DEVICE, SEMICONDUCTOR DEVICE, AND DEBUG METHOD | |
JPWO2012049816A1 (en) | Model checking apparatus, method and program | |
CN111142891A (en) | Verification method and device for data burning, electronic equipment and medium | |
WO2019142266A1 (en) | Test case generation device, test case generation method, and test case generation program | |
JP5093508B2 (en) | Loop optimization system, loop optimization method, and loop optimization program | |
JP6698455B2 (en) | Memory diagnostic device | |
JP2013029938A (en) | Function verification device for semiconductor integrated circuit | |
JP2012033091A (en) | Semiconductor circuit and test method for the same | |
JP2011242888A (en) | System development support device, program and method | |
JP2011034517A (en) | Equivalence verification device, data processing method thereof, and program | |
KR102583916B1 (en) | Scan correlation-aware scan cluster reordering method and apparatus for low-power testing | |
CN117313608A (en) | Chip layout detection method and device, electronic equipment and storage medium | |
JP5321624B2 (en) | Logic circuit verification device, logic circuit verification method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160721 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170627 |
|
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: 20170725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170824 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6199813 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |