JP6199813B2 - Formal verification apparatus and program - Google Patents

Formal verification apparatus and program Download PDF

Info

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
Application number
JP2014127986A
Other languages
Japanese (ja)
Other versions
JP2016009232A (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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2014127986A priority Critical patent/JP6199813B2/en
Publication of JP2016009232A publication Critical patent/JP2016009232A/en
Application granted granted Critical
Publication of JP6199813B2 publication Critical patent/JP6199813B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2012−221119号公報JP 2012-221119 A

しかしながら、フォーマル検証装置では、数学的な手法を用いて網羅的に解析するため、異常動作および前提条件の不足に起因したエラーを発生させてしまうことが多い。これらのエラーのうちの多くは、実際の論理回路上ではありえない入力に伴ったほとんど意味のないエラー(以下、「疑似エラー」という)であるにもかかわらず、検証者は全ての疑似エラーを除去しなければ論理回路を検証することができず、疑似エラーの除去に多くの時間を要していた。   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.

(a)は本発明によるフォーマル検証装置の実施形態の模式図であり、(b)は(a)に示したフォーマル検証装置における入力制約記憶部に入力制約として記憶される動的検証の入力条件および出力結果を導出する動的検証装置の模式図である。(A) is a schematic diagram of an embodiment of a formal verification device according to the present invention, and (b) is an input condition for dynamic verification stored as an input constraint in an input constraint storage unit in the formal verification device shown in (a). It is a schematic diagram of the dynamic verification apparatus which derives | leads-out and an output result. 動的検証のフローを示すフロー図である。It is a flowchart which shows the flow of dynamic verification. 本実施形態のフォーマル検証装置の検証方法を示すフロー図である。It is a flowchart which shows the verification method of the formal verification apparatus of this embodiment. (a)は一般的なフォーマル検証における入力制約の一例を示す図であり、(b)は本実施形態のフォーマル検証における入力制約として用いられる動的検証のテストベクターの記述の一例を示す図である。(A) is a figure which shows an example of the input restrictions in general formal verification, (b) is a figure which shows an example of the description of the test vector of the dynamic verification used as an input restriction in the formal verification of this embodiment. is there. (a)は動的検証のダンプファイルの一例を示す図であり、(b)は本実施形態のフォーマル検証における入力制約の一例を示す図である。(A) is a figure which shows an example of the dump file of dynamic verification, (b) is a figure which shows an example of the input restrictions in the formal verification of this embodiment.

以下、図面を参照して本発明によるフォーマル検証装置およびプログラムの実施形態を説明する。ただし、本発明は以下の実施形態に限定されない。   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 formal verification apparatus 100 according to this embodiment will be described with reference to FIG. FIG. 1A shows a schematic diagram of a formal verification device 100 of the present embodiment. The formal verification device 100 includes an input constraint storage unit 112, an assertion storage unit 114, a logic circuit storage unit 116, and a formal verification unit 122. The input constraint storage unit 112 stores input constraints. The assertion storage unit 114 stores an assertion for verification. The logic circuit storage unit 116 stores a verification logic circuit. The formal verification unit 122 reads the input constraint, the assertion, and the logic circuit from the input constraint storage unit 112, the assertion storage unit 114, and the logic circuit storage unit 116, respectively, and performs formal verification based on the input constraint, the assertion, and the logic circuit.

フォーマル検証装置100は、入力部130および表示部140をさらに備える。例えば、入力部130は、タッチパネル、キーボードおよび/またはマウスを含む。表示部140はディスプレーを含む。   The formal verification device 100 further includes an input unit 130 and a display unit 140. For example, the input unit 130 includes a touch panel, a keyboard, and / or a mouse. The display unit 140 includes a display.

フォーマル検証の結果、エラーがあった場合、表示部140は、ユーザーにエラーを表示する。ユーザーは、表示部140に表示されたエラーに基づき、入力部130を用いて、入力制約記憶部112の入力制約、アサーション記憶部114のアサーション、および、論理回路記憶部116の論理回路のいずれかを修正する。   If there is an error as a result of the formal verification, the display unit 140 displays the error to the user. The user uses the input unit 130 based on the error displayed on the display unit 140 to select one of the input constraint in the input constraint storage unit 112, the assertion in the assertion storage unit 114, and the logic circuit in the logic circuit storage unit 116. To correct.

例えば、ユーザーが、エラーが入力制約の不具合または不備に起因していると判定すると、ユーザーは、入力部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 input unit 130 to correct the input constraint stored in the input constraint storage unit 112. When the user determines that the error is caused by the failure of the assertion, the user corrects the assertion stored in the assertion storage unit 114 using the input unit 130. Alternatively, when the user determines that the error is caused by a malfunction of the logic circuit, the user corrects the logic circuit stored in the logic circuit storage unit 116 using the input unit 130.

上述したように、入力制約、アサーションおよび論理回路のいずれかを修正した後、フォーマル検証部122は、再び、入力制約記憶部112、アサーション記憶部114および論理回路記憶部116から、入力制約、アサーションおよび論理回路をそれぞれ読み出し、再度、入力制約、アサーションおよび論理回路に基づいてフォーマル検証を行う。フォーマル検証装置100は、フォーマル検証後のエラーが無くなるまで、入力制約、アサーションおよび論理回路のいずれかの修正およびフォーマル検証を繰り返す。   As described above, after correcting any of the input constraint, assertion, and logic circuit, the formal verification unit 122 again receives the input constraint, assertion from the input constraint storage unit 112, the assertion storage unit 114, and the logic circuit storage unit 116. The logic circuit is read out again, and formal verification is performed again based on the input constraint, assertion, and logic circuit. The formal verification device 100 repeats correction of any of input constraints, assertions, and logic circuits and formal verification until there is no error after formal verification.

記憶部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 storage unit 110 includes an input constraint storage unit 112, an assertion storage unit 114, and a logic circuit storage unit 116. The storage unit 110 includes, for example, a hard disk, a ROM (Read Only Memory), or a RAM (Random Access Memory). The ROM is, for example, a PROM (Programmable ROM) such as a flash memory. The RAM is, for example, a DRAM (Dynamic RAM). Typically, one storage unit constituting the storage unit 110 includes all of the input constraint storage unit 112, the assertion storage unit 114, and the logic circuit storage unit 116. However, the storage unit 110 may be composed of a plurality of storage units, and the input constraint storage unit 112, the assertion storage unit 114, and the logic circuit storage unit 116 may be separated.

制御部120は、フォーマル検証部122を含む。制御部120は、フォーマル検証部122によってフォーマル検証を行うだけでなく、入力部130および表示部140を制御する。制御部120は、CPUによって具現化される。制御部120は、記憶部110に記憶されたデータを用いて、記憶部110に記憶されたプログラムを実行することにより、設計回路のフォーマル検証を行う。   The control unit 120 includes a formal verification unit 122. The control unit 120 not only performs formal verification by the formal verification unit 122 but also controls the input unit 130 and the display unit 140. The control unit 120 is embodied by a CPU. The control unit 120 performs formal verification of the design circuit by executing the program stored in the storage unit 110 using the data stored in the storage unit 110.

例えば、ROMには、制御部120によって実行される各種のコンピュータープログラム(例えば、ソフトウェアまたはファームウェア)が記憶される。制御部120は、実行対象のコンピュータープログラムをハードディスクまたはROMからRAMにロードし、ロードしたプログラムを実行する。   For example, various computer programs (for example, software or firmware) executed by the control unit 120 are stored in the ROM. The control unit 120 loads the computer program to be executed from the hard disk or ROM into the RAM, and executes the loaded program.

本実施形態のフォーマル検証装置100において、入力制約記憶部112は、動的検証の入力条件または動的検証の出力結果を入力制約として記憶している。動的検証の入力条件は、例えば、動的検証のテストベクターである。動的検証の出力結果は、例えば、動的検証のダンプファイルである。動的検証の入力条件または出力結果は、論理回路の検証の終了した入力条件または出力結果であることが好ましい。以上のように、本実施形態のフォーマル検証装置100は、動的検証の入力条件または出力結果を入力制約として利用する。動的検証の入力条件または出力結果は動的検証装置から導出される。   In the formal verification device 100 of this embodiment, the input constraint storage unit 112 stores dynamic verification input conditions or dynamic verification output results as input constraints. The input condition for dynamic verification is, for example, a test vector for dynamic verification. The output result of the dynamic verification is, for example, a dynamic verification dump file. The input condition or output result of the dynamic verification is preferably the input condition or output result after the verification of the logic circuit. As described above, the formal verification apparatus 100 according to the present embodiment uses the input conditions or output results of dynamic verification as input constraints. The input condition or output result of the dynamic verification is derived from the dynamic verification apparatus.

図1(b)に、動的検証装置200の模式図を示す。動的検証装置200は、テストベンチ記憶部212と、RTL記憶部214と、動的検証部222と、ダンプファイル生成部224と、入力部230と、表示部240とを備える。例えば、入力部230は、キーボードおよび/またはマウスを含む。表示部240はディスプレーを含む。   FIG. 1B shows a schematic diagram of the dynamic verification apparatus 200. The dynamic verification apparatus 200 includes a test bench storage unit 212, an RTL storage unit 214, a dynamic verification unit 222, a dump file generation unit 224, an input unit 230, and a display unit 240. For example, the input unit 230 includes a keyboard and / or a mouse. The display unit 240 includes a display.

テストベンチ記憶部212は、動的検証のためのテストベクターを記憶している。RTL記憶部214はレジスター転送レベル(Register Tranfer Level)で記載された論理回路を記憶している。記憶部210は、テストベンチ記憶部212およびRTL記憶部214を含む。   The test bench storage unit 212 stores a test vector for dynamic verification. The RTL storage unit 214 stores a logic circuit described at a register transfer level. The storage unit 210 includes a test bench storage unit 212 and an RTL storage unit 214.

動的検証部222は、テストベクターおよび論理回路に基づいて動的検証を行う。動的検証部222による動的検証の結果、テストベクターの各入力値に対して出力値が得られる。ダンプファイル生成部224は、動的検証部222の検証結果に基づきダンプファイルを生成する。ダンプファイルには、テストベクターの入力値と、入力値に対応する出力値とが記述されている。制御部220は、動的検証部222およびダンプファイル生成部224を含む。制御部220は、CPUによって具現化される。制御部220は、記憶部210に記憶されたデータを用いて、記憶部210に記憶されたプログラムを実行することにより、動的検証を実行する。   The dynamic verification unit 222 performs dynamic verification based on the test vector and the logic circuit. As a result of the dynamic verification by the dynamic verification unit 222, an output value is obtained for each input value of the test vector. The dump file generation unit 224 generates a dump file based on the verification result of the dynamic verification unit 222. In the dump file, the input value of the test vector and the output value corresponding to the input value are described. The control unit 220 includes a dynamic verification unit 222 and a dump file generation unit 224. The controller 220 is embodied by a CPU. The control unit 220 executes dynamic verification by executing the program stored in the storage unit 210 using the data stored in the storage unit 210.

動的検証の結果、エラーがあった場合、表示部240は、エラーが発生したことを表示する。例えば、動的検証を行った後、表示部240は、動的検証の結果を示すログを表示してもよい。また、表示部240は、ダンプファイル生成部224によって生成されたダンプファイルに基づく波形を表示してもよい。   If there is an error as a result of the dynamic verification, the display unit 240 displays that an error has occurred. For example, after performing dynamic verification, the display unit 240 may display a log indicating the result of dynamic verification. The display unit 240 may display a waveform based on the dump file generated by the dump file generation unit 224.

動的検証の結果、エラーがあった場合、ユーザーは、入力部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 bench storage unit 212 or the logic circuit in the RTL storage unit 214 using the input unit 230. Specifically, when the user determines that the error is caused by a failure of the test vector based on the display on the display unit 240, the user is stored in the test bench storage unit 212 using the input unit 230. Modify the test vector. Alternatively, when the user determines that the error is caused by a malfunction of the logic circuit, the user corrects the logic circuit stored in the RTL storage unit 214 using the input unit 230. If there is no error as a result of the dynamic verification, the logic circuit verification ends.

本実施形態のフォーマル検証装置100は、動的検証の入力条件または出力結果を利用してフォーマル検証を行う。典型的には、フォーマル検証装置100は、フォーマル検証の前に行われた動的検証の入力条件または出力結果を利用するため、ユーザーは、フォーマル検証および動的検証の両方のアプローチから論理回路を検証できる。   The formal verification apparatus 100 according to the present embodiment performs formal verification using input conditions or output results of dynamic verification. Typically, the formal verification apparatus 100 utilizes the input conditions or output results of dynamic verification performed before formal verification, so that the user can remove logic circuits from both formal verification and dynamic verification approaches. Can be verified.

本実施形態においてフォーマル検証は、動的検証の入力条件または出力結果に基づいて行われる。以下に、図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 formal verification apparatus 100 of the present embodiment with reference to FIGS. 1A and 3, the dynamic verification apparatus will be described with reference to FIGS. 1B and 2. The dynamic verification according to 200 will be described.

ステップS1aにおいて、動的検証部222は、テストベンチ記憶部212からテストベクターを読み出す。また、ステップS1bにおいて、動的検証部222は、RTL記憶部214から論理回路を読み出す。   In step S1a, the dynamic verification unit 222 reads a test vector from the test bench storage unit 212. In step S1b, the dynamic verification unit 222 reads the logic circuit from the RTL storage unit 214.

次に、ステップS2において、動的検証部222は動的検証を行う。動的検証部222は、読み出したテストベクターおよび論理回路に基づいて動的検証を行う。動的検証部222が動的検証を行うと、テストベクターの入力値に対応する出力値が得られる。ダンプファイル生成部224は、動的検証部222の検証結果に基づきダンプファイルを生成する。ダンプファイルには、テストベクターの入力値と、入力値に対応する出力値とが記述されている。その後、ステップS3において、ユーザーは、動的検証の検証結果を分析する。   Next, in step S2, the dynamic verification unit 222 performs dynamic verification. The dynamic verification unit 222 performs dynamic verification based on the read test vector and logic circuit. When the dynamic verification unit 222 performs dynamic verification, an output value corresponding to the input value of the test vector is obtained. The dump file generation unit 224 generates a dump file based on the verification result of the dynamic verification unit 222. In the dump file, the input value of the test vector and the output value corresponding to the input value are described. Thereafter, in step S3, the user analyzes the verification result of the dynamic verification.

ステップ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 bench storage unit 212 using the input unit 230 in step S6. Modify the test vector. Thereafter, in steps S1a and S1b, the test vector and the logic circuit are read out, dynamic verification is executed again in step S2, and the verification result is analyzed in step S3.

ユーザーが、ステップ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 RTL storage unit 214 in step S7. Thereafter, in steps S1a and S1b, the test vector and the logic circuit are read out, dynamic verification is executed again in step S2, and the verification result is analyzed in step S3. Note that the correction of the test vector and the logic circuit is repeated until the verification of the logic circuit is completed. Dynamic verification is performed as described above.

次に、図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 formal verification unit 122 reads dynamic verification input conditions or output results from the input constraint storage unit 112 as input constraints. In step S11b, the formal verification unit 122 reads the assertion from the assertion storage unit 114. In step S <b> 11 c, the formal verification unit 122 reads out the logic circuit from the logic circuit storage unit 116.

次に、ステップS12において、フォーマル検証部122は、フォーマル検証を実行する。フォーマル検証は、入力制約、アサーションおよび論理回路に基づいて行われる。検証結果にエラーがあった場合、表示部140は、エラーがあったことを表示する。その後、ステップS13において、ユーザーは、フォーマル検証の検証結果を分析する。   Next, in step S12, the formal verification unit 122 executes formal verification. Formal verification is performed based on input constraints, assertions and logic circuits. When there is an error in the verification result, the display unit 140 displays that there is an error. Thereafter, in step S13, the user analyzes the verification result of the formal verification.

ステップ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 input unit 130 in step S16. The input constraint stored in 112 is modified. However, in the present embodiment, the input condition or output result of dynamic verification is used as the input constraint, so that the occurrence of a pseudo error can be suppressed as compared with the case where the user generally creates the input constraint.

その後、ステップS11a、ステップS11bおよびステップS11cにおいて、フォーマル検証部122は、入力制約、アサーションおよび論理回路を読み出し、再び、ステップS12においてフォーマル検証を実行し、ステップS13において検証結果を分析する。   Thereafter, in step S11a, step S11b, and step S11c, the formal verification unit 122 reads the input constraint, assertion, and logic circuit, executes formal verification again in step S12, and analyzes the verification result in step S13.

ユーザーが、ステップ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 assertion storage unit 114 via the input unit 130 in step S18. Correct the assertion. Thereafter, in step S11a, step S11b, and step S11c, the formal verification unit 122 reads the input constraint, assertion, and logic circuit, executes formal verification again in step S12, and analyzes the verification result in step S13.

ユーザーが、ステップ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 circuit storage unit 116 is corrected via the input unit 130. Thereafter, the formal verification unit 122 reads input constraints, assertions, and logic circuits in steps S11a, S11b, and S11c, performs formal verification again in step S12, and analyzes the verification results in step S13. The input restriction, assertion, and logic circuit correction are repeated until the logic circuit verification is completed. Formal verification is performed as described above.

なお、本実施形態のフォーマル検証装置100は、少なくとも部分的に動的検証装置200と構成を共有することが好ましい。例えば、本実施形態のフォーマル検証装置100の制御部120は、動的検証装置200の制御部220と同一のCPUによって具現化されてもよい。また、動的検証装置200の制御部220は、動的検証の動的検証の入力条件または出力結果を、自動的に入力制約記憶部112に記憶してもよい。   In addition, it is preferable that the formal verification apparatus 100 of this embodiment shares a structure with the dynamic verification apparatus 200 at least partially. For example, the control unit 120 of the formal verification device 100 of this embodiment may be embodied by the same CPU as the control unit 220 of the dynamic verification device 200. Further, the control unit 220 of the dynamic verification apparatus 200 may automatically store the dynamic verification input condition or output result of the dynamic verification in the input constraint storage unit 112.

ここで、図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 cycles 0 to 5. For cycle 0, the clk signal is 0, the intr signal is 0, and the iack signal is 0. For cycle 1, the clk signal is 1, the intr signal is 1, and the iack signal is 0. For cycle 2, the clk signal is 0, the intr signal is 1, and the iack signal is 0. After cycle 3, the clk signal, intr signal, and iack signal change according to the cycle.

図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 SYMBOLS 100 Formal verification apparatus 112 Input constraint memory | storage part 114 Assertion memory | storage part 116 Logic circuit memory | storage part 122 Formal verification part 130 Input part 140 Display part

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.
前記入力制約記憶部は、前記動的検証の前記入力条件として、前記動的検証のテストベクターを記憶している、請求項1に記載のフォーマル検証装置。   The formal verification apparatus according to claim 1, wherein the input constraint storage unit stores a test vector for the dynamic verification as the input condition for the dynamic verification. 前記入力制約記憶部は、前記動的検証の前記出力結果として、前記動的検証の出力ダンプファイルを変換した入力制約を記憶している、請求項1に記載のフォーマル検証装置。   The formal verification apparatus according to claim 1, wherein the input constraint storage unit stores an input constraint obtained by converting the output dump file of the dynamic verification as the output result of the dynamic verification. 設計回路のフォーマル検証を行うためのプログラムであって、コンピューターに、
入力制約を記憶した入力制約記憶部を用意する工程と、
アサーションを記憶したアサーション記憶部を用意する工程と、
論理回路を記憶した論理回路記憶部を用意する工程と、
前記入力制約、前記アサーションおよび前記論理回路に基づいてフォーマル検証を行う工程と
を実行させ、
前記入力制約記憶部を用意する工程において、前記入力制約記憶部は、動的検証の入力条件または動的検証の出力結果を記憶している、プログラム。
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.
JP2014127986A 2014-06-23 2014-06-23 Formal verification apparatus and program Expired - Fee Related JP6199813B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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