JP2023152651A - Formal verification device and formal verification method - Google Patents

Formal verification device and formal verification method Download PDF

Info

Publication number
JP2023152651A
JP2023152651A JP2022201687A JP2022201687A JP2023152651A JP 2023152651 A JP2023152651 A JP 2023152651A JP 2022201687 A JP2022201687 A JP 2022201687A JP 2022201687 A JP2022201687 A JP 2022201687A JP 2023152651 A JP2023152651 A JP 2023152651A
Authority
JP
Japan
Prior art keywords
verification
circuit
formal verification
processing
unit
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.)
Granted
Application number
JP2022201687A
Other languages
Japanese (ja)
Other versions
JP7466615B2 (en
Inventor
正義 伊東
Masayoshi Ito
徹 坂本
Toru Sakamoto
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.)
Mitsubishi Electric Engineering Co Ltd
Original Assignee
Mitsubishi Electric Engineering Co 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 Mitsubishi Electric Engineering Co Ltd filed Critical Mitsubishi Electric Engineering Co Ltd
Publication of JP2023152651A publication Critical patent/JP2023152651A/en
Application granted granted Critical
Publication of JP7466615B2 publication Critical patent/JP7466615B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To make a verification of a circuit carrying out repetition processing efficient, comparing to a conventional verification.SOLUTION: A formal verification device comprises: a first formal verification unit 102 that performs a plurality of verifications of a logic circuit corresponding to a circuit carrying out repetition processing on the basis of a plurality of post-divided assertions divided based on the number of times of repetitions of the repetition processing in the circuit; a first acceptance determination unit 103 that determines whether all of a plurality of verifications by the first formal verification unit 102 is accepted; a second formal verification unit 104 that, when it is determined by the first acceptance determination unit 103 that all of the plurality of verifications is accepted, verifies that the number of times of repetitions of the repetition processing in the circuit is a desired number of times thereof; a second acceptance determination unit 105 that determines whether the verification by the second formal verification unit 104 is accepted; and a notification unit 106 that, when it is determined by the first acceptance determination unit 103 that all of the plurality of verifications is not accepted, or when it is determined by the second acceptance determination unit 105 that the verification is not accepted, notify the outside of the effect.SELECTED DRAWING: Figure 1

Description

本開示は、繰り返し処理を行う回路に対して検証を行うフォーマル検証装置及びフォーマル検証方法に関する。 The present disclosure relates to a formal verification device and a formal verification method that verify a circuit that undergoes repeated processing.

開発対象である回路の大規模化及び複雑化に伴い、当該回路に対する開発工程に占める検証工程の割合は、決して小さくない。すなわち、検証工程における検証効率が低いことは、開発工程の遅延に繋がる。 As circuits to be developed become larger and more complex, the proportion of the verification process in the development process for the circuits is not small. In other words, low verification efficiency in the verification process leads to delays in the development process.

この検証工程では、動的検証又は静的検証が用いられる。
ここで、静的検証では、回路の正しさを確認するために、一般にフォーマル検証が用いられる。フォーマル検証は、回路を数理論理学的に解析し、網羅的に検証を行う手法である。
This verification process uses dynamic verification or static verification.
Here, in static verification, formal verification is generally used to confirm the correctness of the circuit. Formal verification is a method of analyzing circuits mathematically and logically and comprehensively verifying them.

このフォーマル検証の問題点としては、回路の数理論理学的な複雑度が高い場合、状態爆発が起こり、検証結果を得るまでに非現実的な実行時間がかかることが挙げられる。この問題は、検証効率を著しく低下させる。 The problem with this formal verification is that when the mathematical complexity of the circuit is high, state explosion occurs and it takes an unrealistic execution time to obtain verification results. This problem significantly reduces verification efficiency.

これに対し、フォーマル検証の際に生じる疑似エラーの発生を抑制するフォーマル検証装置が知られている(例えば特許文献1参照)。なお、疑似エラーは、異常動作又は前提条件の不足に起因したエラーである。
このフォーマル検証装置では、事前に動的検証の結果を用意し、その結果の中から検証対象に対する入力及び出力の条件を抽出し、フォーマル検証における制約として適用している。これにより、このフォーマル検証装置では、疑似エラーが抑制され、フォーマル検証において解析すべきエラーを効率良く検出できるようになり、検証工程の短縮化が図れる。
In contrast, a formal verification device is known that suppresses the occurrence of pseudo errors that occur during formal verification (for example, see Patent Document 1). Note that a pseudo error is an error caused by an abnormal operation or a lack of preconditions.
This formal verification device prepares dynamic verification results in advance, extracts input and output conditions for the verification target from the results, and applies them as constraints in formal verification. As a result, in this formal verification device, pseudo errors are suppressed, errors to be analyzed in formal verification can be efficiently detected, and the verification process can be shortened.

特開2016-9232号公報JP 2016-9232 Publication

上記のように、従来のフォーマル検証装置では、疑似エラーの抑制による検証工程の短縮化は可能である。しかしながら、このフォーマル検証装置では、繰り返し処理を行う回路のように数理論理学的な複雑度が高い回路に対しては、検証実行時間を抑制することができない。すなわち、繰り返し処理を行う回路に対し、フォーマル検証を用いて検証を行う場合、状態爆発を防ぐことが課題となる。なお、上記繰り返し処理を行う回路としては、例えばDMA(Direct Memory Access)コントローラが挙げられる。 As described above, with the conventional formal verification device, it is possible to shorten the verification process by suppressing pseudo errors. However, with this formal verification device, it is not possible to suppress the verification execution time for a circuit with a high degree of mathematical complexity such as a circuit that performs repeated processing. In other words, when formal verification is used to verify a circuit that performs repetitive processing, it is important to prevent state explosions. Note that an example of a circuit that performs the above-described repetitive processing is a DMA (Direct Memory Access) controller.

本開示は、上記のような課題を解決するためになされたもので、従来に対し、繰り返し処理を行う回路に対する検証の効率化が可能となるフォーマル検証装置を提供することを目的としている。 The present disclosure has been made to solve the above-mentioned problems, and aims to provide a formal verification device that can more efficiently verify a circuit that undergoes repeated processing compared to the conventional technology.

本開示に係るフォーマル検証装置は、繰り返し処理を行う回路に相当する論理回路、及び、当該回路における繰り返し処理の繰り返し回数に基づいて複数に分割されたアサーションに基づいて、当該回路に対して複数の検証を行う第1のフォーマル検証部と、第1のフォーマル検証部による複数の検証が全て合格であるかを判定する第1の合格判定部と、第1の合格判定部により複数の検証が全て合格であると判定された場合、回路における繰り返し処理の繰り返し回数が所望の回数であることを検証する第2のフォーマル検証部と、第2のフォーマル検証部による検証が合格であるかを判定する第2の合格判定部と、第1の合格判定部により複数の検証が全ては合格ではないと判定された場合、又は、第2の合格判定部により検証が合格ではないと判定された場合、その旨を外部に通知する通知部とを備えたことを特徴とする。 A formal verification device according to the present disclosure includes a logic circuit corresponding to a circuit that performs repetitive processing, and a plurality of assertions for the circuit based on assertions divided into multiple pieces based on the number of repetitions of the repetitive processing in the circuit. A first formal verification unit that performs verification; a first pass determination unit that determines whether all the multiple verifications by the first formal verification unit are passed; and a first pass determination unit that determines whether all of the multiple verifications by the first formal verification unit are If it is determined to pass, a second formal verification unit verifies that the number of repetitions of the repetitive processing in the circuit is the desired number of times, and determines whether the verification by the second formal verification unit has passed. If the second pass determination unit and the first pass determination unit determine that all of the multiple verifications are not passed, or if the second pass determination unit determines that the verifications are not passed, The present invention is characterized by comprising a notification section that notifies the outside of this fact.

本開示によれば、上記のように構成したので、従来に対し、繰り返し処理を行う回路に対する検証の効率化が可能となる。 According to the present disclosure, with the configuration as described above, it is possible to more efficiently verify a circuit that performs repetitive processing than in the past.

実施の形態1に係るフォーマル検証装置の構成例を示す図である。1 is a diagram illustrating a configuration example of a formal verification device according to a first embodiment; FIG. 実施の形態1に係るフォーマル検証装置の動作例を示すフローチャートである。5 is a flowchart illustrating an example of the operation of the formal verification device according to the first embodiment. 実施の形態1に係るフォーマル検証装置の動作例を示すフローチャートであって、検証対象である回路がDMAコントローラである場合での動作例を示すフローチャートである。2 is a flowchart illustrating an example of the operation of the formal verification apparatus according to the first embodiment, in a case where the circuit to be verified is a DMA controller. 図4A、図4Bは、実施の形態1に係るフォーマル検証装置のハードウェア構成例を示す図である。4A and 4B are diagrams showing an example of the hardware configuration of the formal verification device according to the first embodiment.

以下、実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係るフォーマル検証装置1の構成例を示す図である。
フォーマル検証装置1は、検証対象である回路に対してフォーマル検証を行う装置である。このフォーマル検証装置1は、例えばLSI(Large Scale Integration)開発の検証の場面で支援装置として用いることができる。
なお、実施の形態1に係るフォーマル検証装置1が検証対象とする回路は、繰り返し処理を行う回路である。繰り返し処理を行う回路としては、例えばDMAコントローラ及び積和演算回路が挙げられる。DMAコントローラは、基本動作として、リード処理及びライト処理を繰り返す回路である。積和演算回路は、基本動作として、乗算処理及び加算処理を繰り返す回路である。
Hereinafter, embodiments will be described in detail with reference to the drawings.
Embodiment 1.
FIG. 1 is a diagram showing a configuration example of a formal verification device 1 according to the first embodiment.
The formal verification device 1 is a device that performs formal verification on a circuit to be verified. This formal verification device 1 can be used as a support device in the verification of LSI (Large Scale Integration) development, for example.
Note that the circuit targeted for verification by the formal verification device 1 according to the first embodiment is a circuit that performs repeated processing. Examples of circuits that perform repetitive processing include a DMA controller and a product-sum calculation circuit. The DMA controller is a circuit that repeats read processing and write processing as its basic operation. The product-sum calculation circuit is a circuit that repeats multiplication processing and addition processing as its basic operation.

このフォーマル検証装置1は、図1に示すように、記録部101、第1のフォーマル検証部102、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107を備えている。また、記録部101は、図1に示すように、論理回路記録部1011、アサーション記録部1012、及び、検証結果記録部1013を有している。 As shown in FIG. 1, this formal verification device 1 includes a recording section 101, a first formal verification section 102, a first pass judgment section 103, a second formal verification section 104, a second pass judgment section 105, It includes a notification section 106 and a modification completion reception section 107. Further, the recording unit 101 includes a logic circuit recording unit 1011, an assertion recording unit 1012, and a verification result recording unit 1013, as shown in FIG.

記録部101は、フォーマル検証装置1で扱われる各種の情報を記録する。
なお、記録部101としては、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)等の不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、又はDVD(Digital Versatile Disc)等が該当する。
The recording unit 101 records various types of information handled by the formal verification device 1.
Note that the recording unit 101 includes, for example, RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable ROM), and EEPROM (Electrical EPROM). ), non-volatile or volatile semiconductor memory, This includes a magnetic disk, flexible disk, optical disk, compact disk, mini disk, DVD (Digital Versatile Disc), and the like.

論理回路記録部1011は、論理回路を示す情報を記録する。この論理回路は、検証対象である回路(繰り返し処理を行う回路)に相当する回路である。なお、論理回路記録部1011に記録されている論理回路を示す情報は、ユーザにより適宜修正可能である。 The logic circuit recording unit 1011 records information indicating a logic circuit. This logic circuit corresponds to a circuit to be verified (a circuit that performs repeated processing). Note that the information indicating the logic circuit recorded in the logic circuit recording section 1011 can be modified as appropriate by the user.

アサーション記録部1012は、上記論理回路に対する複数のアサーションを示す情報を記録する。アサーションは、検証対象である回路に対する検証を可能とするためのものである。なお、実施の形態1に係るフォーマル検証装置1で用いられるアサーションは、検証対象である回路における繰り返し処理の繰り返し回数に基づいて複数に分割されたアサーション(分割後アサーション)、及び、検証対象である回路における繰り返し処理の繰り返し回数が所望の回数であることを検証するためのアサーション(分割前アサーション)である。なお、アサーション記録部1012に記録されている複数のアサーションを示す情報は、それぞれ、ユーザにより適宜修正可能である。 The assertion recording unit 1012 records information indicating a plurality of assertions for the logic circuit. Assertions are used to enable verification of a circuit to be verified. Note that the assertions used in the formal verification device 1 according to the first embodiment include assertions that are divided into a plurality of parts based on the number of repetitions of repetitive processing in the circuit to be verified (post-division assertions), and This is an assertion (pre-division assertion) for verifying that the number of repetitions of repetitive processing in the circuit is the desired number of times. Note that the information indicating the plurality of assertions recorded in the assertion recording unit 1012 can be modified as appropriate by the user.

ここで、例えば、検証対象である回路がDMAコントローラである場合、複数に分割されたアサーションは、リード処理及びライト処理の繰り返し回数が所望の回数に達する前の動作に関わる検証(第1の検証)を可能とするアサーション、リード処理及びライト処理の繰り返し回数が所望の回数に達した後の動作に関わる検証(第2の検証)を可能とするアサーション、及び、リード処理及びライト処理の繰り返し回数が所望の回数に達した際の動作に関わる検証(第3の検証)を可能とするアサーションである。 Here, for example, if the circuit to be verified is a DMA controller, the assertion divided into multiple parts is the verification related to the operation before the number of repetitions of read processing and write processing reaches the desired number of times (first verification). ), assertions that enable verification of operations after the number of repetitions of read processing and write processing reaches a desired number (second verification), and number of repetitions of read processing and write processing. This is an assertion that enables verification (third verification) related to the operation when a desired number of times has been reached.

また、例えば、検証対象である回路が積和演算回路である場合、複数に分割されたアサーションは、乗算処理及び加算処理の繰り返し回数が所望の回数に達する前の動作に関わる検証(第1の検証)を可能とするアサーション、乗算処理及び加算処理の繰り返し回数が所望の回数に達した後の動作に関わる検証(第2の検証)を可能とするアサーション、及び、乗算処理及び加算処理の繰り返し回数が所望の回数に達した際の動作に関わる検証(第3の検証)を可能とするアサーションである。 For example, if the circuit to be verified is a product-sum operation circuit, the assertion divided into multiple parts may be used for verification (first Assertion that enables verification (second verification) related to the operation after the number of repetitions of multiplication processing and addition processing reaches a desired number of times, and repetition of multiplication processing and addition processing This is an assertion that enables verification (third verification) related to the operation when the number of times reaches a desired number of times.

検証結果記録部1013は、第1のフォーマル検証部102による検証結果を示す情報を記録する。 The verification result recording unit 1013 records information indicating the verification result by the first formal verification unit 102.

また、図1では、論理回路記録部1011、アサーション記録部1012、及び、検証結果記録部1013が、フォーマル検証装置1の内部に設けられた場合を示した。しかしながら、これに限らず、論理回路記録部1011、アサーション記録部1012、及び、検証結果記録部1013のうちの一部又は全部は、フォーマル検証装置1の外部に設けられていてもよい。 Further, FIG. 1 shows a case where the logic circuit recording section 1011, the assertion recording section 1012, and the verification result recording section 1013 are provided inside the formal verification device 1. However, the present invention is not limited thereto, and some or all of the logic circuit recording section 1011, the assertion recording section 1012, and the verification result recording section 1013 may be provided outside the formal verification device 1.

第1のフォーマル検証部102は、論理回路記録部1011に記録されている情報が示す論理回路、及び、アサーション記録部1012に記録されている情報が示す複数のアサーション(分割後アサーション)に基づいて、検証対象である回路に対して複数の検証を行う。すなわち、第1のフォーマル検証部102は、複数のアサーションを論理回路にそれぞれ入力することで、検証対象である回路における繰り返し処理の繰り返し回数に基づいて複数に分割された検証をそれぞれ行う。
この第1のフォーマル検証部102による検証結果を示す情報は、検証結果記録部1013に記録される。
The first formal verification unit 102 performs verification based on the logic circuit indicated by the information recorded in the logic circuit recording unit 1011 and the plurality of assertions (post-division assertions) indicated by the information recorded in the assertion recording unit 1012. , multiple verifications are performed on the circuit to be verified. That is, the first formal verification unit 102 inputs a plurality of assertions into the logic circuit, respectively, thereby performing verification divided into a plurality of parts based on the number of repetitions of the repetition process in the circuit to be verified.
Information indicating the verification result by the first formal verification section 102 is recorded in the verification result recording section 1013.

また、第1のフォーマル検証部102は、修正完了受付部107によりアサーションの修正が完了した旨の通知である修正完了通知、又は、論理回路の修正が完了した旨の通知である修正完了通知が受付けられた場合、上記複数の検証を再度行う。 The first formal verification unit 102 also receives a modification completion notification, which is a notification that the modification of the assertion has been completed, or a modification completion notification, which is a notification that the modification of the logic circuit has been completed, by the modification completion reception unit 107. If accepted, the above multiple verifications will be performed again.

ここで、例えば、検証対象である回路がDMAコントローラである場合、第1のフォーマル検証部102は、このDMAコントローラにおけるリード処理及びライト処理の繰り返し回数に基づいて複数に分割された検証をそれぞれ行う。
より具体的には、第1のフォーマル検証部102は、リード処理及びライト処理の繰り返し回数が所望の回数に達する前の動作に関わる検証(第1の検証)、リード処理及びライト処理の繰り返し回数が所望の回数に達した後の動作に関わる検証(第2の検証)、及び、リード処理及びライト処理の繰り返し回数が所望の回数に達した際の動作に関わる検証(第3の検証)をそれぞれ行う。
Here, for example, if the circuit to be verified is a DMA controller, the first formal verification unit 102 performs verification divided into a plurality of parts based on the number of repetitions of read processing and write processing in this DMA controller. .
More specifically, the first formal verification unit 102 performs verification (first verification) related to the operation before the number of repetitions of read processing and write processing reaches a desired number of times, and the number of repetitions of read processing and write processing. Verification related to the operation after reaching the desired number of times (second verification), and verification related to the operation when the number of repetitions of read processing and write processing reaches the desired number of times (third verification) Do each.

また、例えば、検証対象である回路が積和演算回路である場合、第1のフォーマル検証部102は、この積和演算回路における乗算処理及び加算処理の繰り返し回数に基づいて複数に分割された検証をそれぞれ行う。
より具体的には、第1のフォーマル検証部102は、乗算処理及び加算処理の繰り返し回数が所望の回数に達する前の動作に関わる検証(第1の検証)、乗算処理及び加算処理の繰り返し回数が所望の回数に達した後の動作に関わる検証(第2の検証)、及び、乗算処理及び加算処理の繰り返し回数が所望の回数に達した際の動作に関わる検証(第3の検証)をそれぞれ行う。
For example, when the circuit to be verified is a product-sum calculation circuit, the first formal verification unit 102 performs verification divided into multiple parts based on the number of times the multiplication process and the addition process are repeated in this product-sum calculation circuit. Do each.
More specifically, the first formal verification unit 102 performs verification (first verification) related to the operation before the number of repetitions of multiplication processing and addition processing reaches a desired number of times, and the number of repetitions of multiplication processing and addition processing. Verification related to the operation after reaching the desired number of times (second verification), and verification related to the operation when the number of repetitions of multiplication processing and addition processing reaches the desired number of times (third verification) Do each.

この場合、第1のフォーマル検証部102は、第1の検証として、繰り返し回数が所望の回数に達する前について、リード処理とライト処理の一連の処理が連続していることを検証する。
また、第1のフォーマル検証部102は、第2の検証として、繰り返し回数が所望の回数に達した後について、リード処理とライト処理の一連の処理が発生しないことを検証する。
また、第1のフォーマル検証部102は、第3の検証として、繰り返し回数が所望の回数に達した際((所望の繰り返し回数-1)分のリード処理及びライト処理の繰り返しが発生したことを前提条件とし、その次にリード処理及びライト処理が発生した際)について、その最後のリード処理及びライト処理のみを抽出して正当性を検証する。
In this case, as a first verification, the first formal verification unit 102 verifies that the series of read processing and write processing is continuous before the number of repetitions reaches a desired number of times.
Further, as a second verification, the first formal verification unit 102 verifies that a series of processes of read processing and write processing does not occur after the number of repetitions reaches a desired number of times.
In addition, as a third verification, the first formal verification unit 102 determines that when the number of repetitions reaches a desired number, the number of repetitions of read processing and write processing for ((desired number of repetitions - 1)) has occurred. When a read process and a write process occur next), only the last read process and write process are extracted and their validity is verified.

第1の合格判定部103は、第1のフォーマル検証部102による複数の検証が全て合格であるかを判定する。 The first pass determination unit 103 determines whether all of the multiple verifications by the first formal verification unit 102 have passed.

第2のフォーマル検証部104は、第1の合格判定部103により複数の検証が全て合格であると判定された場合、検証対象である回路における繰り返し処理の繰り返し回数が所望の回数であることを検証(第4の検証)する。この際、第2のフォーマル検証部104は、アサーション記録部1012に記録されている情報が示すアサーション(分割前アサーション)に基づいて、検証結果記録部1013に記録されている検証結果を示す情報を読み出すことで、上記検証を行う。 When the first pass determination unit 103 determines that all of the multiple verifications have passed, the second formal verification unit 104 verifies that the number of repetitions of the repetitive process in the circuit to be verified is the desired number of times. Verify (fourth verification). At this time, the second formal verification unit 104 reads information indicating the verification result recorded in the verification result recording unit 1013 based on the assertion (pre-division assertion) indicated by the information recorded in the assertion recording unit 1012. The above verification is performed by reading.

ここで、例えば、検証対象である回路がDMAコントローラである場合、第2のフォーマル検証部104は、第4の検証として、このDMAコントローラにおけるリード処理及びライト処理の繰り返し回数が所望の回数であることを検証する。 Here, for example, when the circuit to be verified is a DMA controller, the second formal verification unit 104 performs a fourth verification to determine whether the number of repetitions of read processing and write processing in this DMA controller is a desired number of times. Verify that.

また、例えば、検証対象である回路が積和演算回路である場合、第2のフォーマル検証部104は、第4の検証として、この積和演算回路における乗算処理及び加算処理の繰り返し回数が所望の回数であることを検証する。 For example, when the circuit to be verified is a product-sum calculation circuit, the second formal verification unit 104 performs fourth verification to determine whether the number of repetitions of multiplication processing and addition processing in this product-sum calculation circuit is a desired number. Verify that it is the number of times.

第2の合格判定部105は、第2のフォーマル検証部104による検証が合格であるかを判定する。 The second pass determination unit 105 determines whether the verification by the second formal verification unit 104 is successful.

通知部106は、第1の合格判定部103により複数の検証が全ては合格ではないと判定された場合、又は、第2の合格判定部105により検証が合格ではないと判定された場合、その旨を外部に通知する。 If the first pass determination unit 103 determines that all of the multiple verifications are not passed, or if the second pass determination unit 105 determines that the verifications are not passed, the notification unit 106 Notify the outside party.

その後、通知部106による通知を受付けたユーザは、アサーション記録部1012に記録されている情報が示すアサーションに不具合が生じているかを判定する。
ここで、ユーザは、アサーションに不具合が生じていると判定した場合には、当該アサーションを修正する。そして、アサーション記録部1012は、記録しているアサーションを示す情報を修正後のアサーションを示す情報に更新する。
一方、ユーザは、アサーションに不具合が生じていないと判定した場合には、論理回路を修正する。そして、論理回路記録部1011は、記録している論理回路を示す情報を修正後の論理回路を示す情報に更新する。
Thereafter, the user who has received the notification from the notification unit 106 determines whether a problem has occurred in the assertion indicated by the information recorded in the assertion recording unit 1012.
Here, if the user determines that a problem has occurred in the assertion, the user corrects the assertion. Then, the assertion recording unit 1012 updates the recorded information indicating the assertion to information indicating the modified assertion.
On the other hand, if the user determines that there is no problem with the assertion, the user modifies the logic circuit. Then, the logic circuit recording unit 1011 updates the recorded information indicating the logic circuit to information indicating the corrected logic circuit.

修正完了受付部107は、ユーザから、アサーションの修正完了を示す通知である修正完了通知、又は、論理回路の修正完了を示す通知である修正完了通知を受付ける。 The modification completion reception unit 107 receives from the user a modification completion notification that is a notification indicating that modification of an assertion is completed, or a modification completion notification that is a notification that indicates completion of modification of a logic circuit.

次に、図1に示す実施の形態1に係るフォーマル検証装置1の動作例について、図2を参照しながら説明する。
なお、論理回路記録部1011は、検証対象である回路に相当する論理回路を示す情報を記録している。また、アサーション記録部1012は、上記論理回路に対する複数のアサーションを記録している。アサーション記録部1012に記録されている情報が示す複数のアサーションは、上記検証対象である回路における繰り返し処理の繰り返し回数に基づいて複数に分割されたアサーション(分割後アサーション)、及び、検証対象である回路における繰り返し処理の繰り返し回数が所望の回数であることを検証するためのアサーション(分割前アサーション)である。
Next, an example of the operation of the formal verification device 1 according to the first embodiment shown in FIG. 1 will be described with reference to FIG. 2.
Note that the logic circuit recording unit 1011 records information indicating a logic circuit corresponding to the circuit to be verified. Furthermore, the assertion recording unit 1012 records a plurality of assertions for the logic circuit. The plurality of assertions indicated by the information recorded in the assertion recording unit 1012 are assertions divided into a plurality of parts based on the number of repetitions of the repetitive process in the circuit to be verified (split assertions), and assertions to be verified. This is an assertion (pre-division assertion) for verifying that the number of repetitions of repetitive processing in the circuit is the desired number of times.

図1に示す実施の形態1に係るフォーマル検証装置1の動作例では、図2に示すように、まず、第1のフォーマル検証部102は、論理回路記録部1011に記録されている情報が示す論理回路、及び、アサーション記録部1012に記録されている情報が示す複数のアサーション(分割後アサーション)に基づいて、検証対象である回路に対して複数の検証を行う(ステップST201)。すなわち、第1のフォーマル検証部102は、複数のアサーションを論理回路にそれぞれ入力することで、検証対象である回路における繰り返し処理の繰り返し回数に基づいて複数に分割された検証をそれぞれ行う。 In the operation example of the formal verification device 1 according to the first embodiment shown in FIG. 1, as shown in FIG. Based on the logic circuit and the plurality of assertions (post-division assertions) indicated by the information recorded in the assertion recording unit 1012, a plurality of verifications are performed on the circuit to be verified (step ST201). That is, the first formal verification unit 102 inputs a plurality of assertions into the logic circuit, respectively, thereby performing verification divided into a plurality of parts based on the number of repetitions of the repetition process in the circuit to be verified.

なお、第1のフォーマル検証部102における各検証の順序は問われず、順不同でよい。また、第1のフォーマル検証部102における各検証は、それぞれ単独で行われてもよいし並列で行われてもよい。 Note that the order of each verification in the first formal verification unit 102 is not critical, and may be performed in any order. Further, each verification in the first formal verification unit 102 may be performed independently or in parallel.

なお、この第1のフォーマル検証部102による検証結果を示す情報は、検証結果記録部1013に記録される。すなわち、検証結果記録部1013には、分割された複数の検証の結果を示す情報がそれぞれ記録される。 Note that information indicating the verification result by the first formal verification section 102 is recorded in the verification result recording section 1013. That is, the verification result recording unit 1013 records information indicating the results of a plurality of divided verifications.

次いで、第1の合格判定部103は、第1のフォーマル検証部102による複数の検証が全て合格であるかを判定する(ステップST202)。 Next, the first pass determination section 103 determines whether all of the plurality of verifications by the first formal verification section 102 are passed (step ST202).

このステップST202において、第1の合格判定部103が複数の検証が全て合格であると判定した場合、第2のフォーマル検証部104は、検証対象である回路における繰り返し処理の繰り返し回数が所望の回数であることを検証する(ステップST203)。この際、第2のフォーマル検証部104は、アサーション記録部1012に記録されている情報が示すアサーション(分割前アサーション)に基づいて、検証結果記録部1013に記録されている検証結果を示す情報を読み出すことで、上記検証を行う。 In step ST202, when the first pass determination unit 103 determines that all of the multiple verifications have passed, the second formal verification unit 104 determines that the number of repetitions of the repetitive process in the circuit to be verified is a desired number of times. (Step ST203). At this time, the second formal verification unit 104 reads information indicating the verification result recorded in the verification result recording unit 1013 based on the assertion (pre-division assertion) indicated by the information recorded in the assertion recording unit 1012. The above verification is performed by reading.

このように、第2のフォーマル検証部104は、検証結果記録部1013に記録されている検証結果を示す情報を読み出して上記検証を行うことで、その分の数理論理学的な複雑度を低減可能となる。 In this way, the second formal verification unit 104 reads out the information indicating the verification results recorded in the verification result recording unit 1013 and performs the above verification, thereby reducing the mathematical complexity accordingly. It becomes possible.

次いで、第2の合格判定部105は、第2のフォーマル検証部104による検証が合格であるかを判定する(ステップST204)。 Next, the second pass determination section 105 determines whether the verification by the second formal verification section 104 is passed (step ST204).

このステップST204において、第2の合格判定部105が検証が合格であると判定した場合、シーケンスは終了する。 In this step ST204, when the second pass determination section 105 determines that the verification is passed, the sequence ends.

一方、ステップST202において、第1の合格判定部103が複数の検証が全ては合格ではないと判定した場合、又は、ステップST204において、第2の合格判定部105が検証が合格ではないと判定した場合、通知部106は、その旨を外部に通知する(ステップST205)。 On the other hand, in step ST202, if the first pass determination section 103 determines that all of the multiple verifications are not passed, or in step ST204, the second pass determination section 105 determines that the verifications are not passed. If so, the notification unit 106 notifies the outside of that (step ST205).

その後、通知部106による通知を受付けたユーザは、アサーション記録部1012に記録されている情報が示すアサーションに不具合が生じているかを判定する。
ここで、ユーザは、アサーションに不具合が生じていると判定した場合には、当該アサーションを修正する。そして、アサーション記録部1012は、記録しているアサーションを示す情報を修正後のアサーションを示す情報に更新する。
一方、ユーザは、アサーションに不具合が生じていないと判定した場合には、論理回路を修正する。そして、論理回路記録部1011は、記録している論理回路を示す情報を修正後の論理回路を示す情報に更新する。
Thereafter, the user who has received the notification from the notification unit 106 determines whether a problem has occurred in the assertion indicated by the information recorded in the assertion recording unit 1012.
Here, if the user determines that a problem has occurred in the assertion, the user corrects the assertion. Then, the assertion recording unit 1012 updates the recorded information indicating the assertion to information indicating the modified assertion.
On the other hand, if the user determines that there is no problem with the assertion, the user modifies the logic circuit. Then, the logic circuit recording unit 1011 updates the recorded information indicating the logic circuit to information indicating the corrected logic circuit.

次いで、修正完了受付部107は、ユーザから、アサーションの修正完了を示す通知である修正完了通知、又は、論理回路の修正完了を示す通知である修正完了通知を受付ける(ステップST206)。
その後、シーケンスはステップST201に戻る。そして、第1のフォーマル検証部102は、上記複数の検証を再度行う。
Next, the modification completion reception unit 107 receives from the user a modification completion notification which is a notification indicating completion of modification of an assertion or a notification indicating completion of modification of a logic circuit (step ST206).
After that, the sequence returns to step ST201. Then, the first formal verification unit 102 performs the plurality of verifications described above again.

このように、実施の形態1に係るフォーマル検証装置1では、検証対象である回路に対するフォーマル検証において、当該回路における繰り返し処理の繰り返し回数に基づいて分割された複数の検証を行い、その後、当該繰り返し回数が所望の回数になることを検証する。
これにより、実施の形態1に係るフォーマル検証装置1では、従来に対し、検証対象である回路が有する要素を分解且つ簡略化することができ、数理論理学的な複雑度を低減可能となる。その結果、実施の形態1に係るフォーマル検証装置1では、従来に対し、フォーマル検証における状態爆発を抑制でき、検証実行時間を抑制可能となる。
In this manner, the formal verification device 1 according to the first embodiment performs multiple verifications divided based on the number of repetitions of the repetitive processing in the circuit in formal verification of the circuit to be verified, and then Verify that the number is the desired number.
As a result, the formal verification device 1 according to the first embodiment can decompose and simplify the elements included in the circuit to be verified, and reduce the mathematical complexity, compared to the conventional method. As a result, the formal verification device 1 according to the first embodiment can suppress state explosion in formal verification and suppress verification execution time compared to the conventional method.

次に、検証対象とする回路がDMAコントローラである場合での、図1に示す実施の形態1に係るフォーマル検証装置1の動作例について、図3を参照しながら説明する。
なお、論理回路記録部1011は、DMAコントローラに相当する論理回路を示す情報を記録している。また、アサーション記録部1012は、複数のアサーションを示す情報を記録している。アサーション記録部1012に記録されている情報が示す複数のアサーションは、DMAコントローラにおけるリード処理及びライト処理の繰り返し回数に基づいて3つに分割されたアサーション(分割後アサーション)、及び、検証対象である回路における繰り返し処理の繰り返し回数が所望の回数であることを検証するためのアサーション(分割前アサーション)である。
Next, an example of the operation of the formal verification apparatus 1 according to the first embodiment shown in FIG. 1 when the circuit to be verified is a DMA controller will be described with reference to FIG. 3.
Note that the logic circuit recording unit 1011 records information indicating a logic circuit corresponding to a DMA controller. Further, the assertion recording unit 1012 records information indicating a plurality of assertions. The plurality of assertions indicated by the information recorded in the assertion recording unit 1012 are assertions divided into three parts based on the number of repetitions of read processing and write processing in the DMA controller (post-division assertions), and assertions to be verified. This is an assertion (pre-division assertion) for verifying that the number of repetitions of repetitive processing in the circuit is the desired number of times.

検証対象とする回路がDMAコントローラである場合での、図1に示す実施の形態1に係るフォーマル検証装置1の動作例では、図3に示すように、まず、第1のフォーマル検証部102は、論理回路記録部1011に記録されている情報が示す論理回路、及び、アサーション記録部1012に記録されている情報が示す複数のアサーション(分割後アサーション)に基づいて、DMAコントローラに対して複数の検証(第1の検証、第2の検証及び第3の検証)を行う(ステップST301)。すなわち、第1のフォーマル検証部102は、3つのアサーションを論理回路にそれぞれ入力することで、DMAコントローラにおけるリード処理及びライト処理の繰り返し回数に基づいて3つに分割された検証をそれぞれ行う。 In the operation example of the formal verification device 1 according to the first embodiment shown in FIG. 1 in the case where the circuit to be verified is a DMA controller, as shown in FIG. , based on the logic circuit indicated by the information recorded in the logic circuit recording section 1011 and the plurality of assertions (post-division assertions) indicated by the information recorded in the assertion recording section 1012. Verification (first verification, second verification, and third verification) is performed (step ST301). That is, the first formal verification unit 102 performs verification divided into three parts based on the number of repetitions of read processing and write processing in the DMA controller by respectively inputting three assertions to the logic circuit.

すなわち、第1のフォーマル検証部102は、第1の検証として、繰り返し回数が所望の回数に達する前について、リード処理とライト処理の一連の処理が連続していることを検証する。
また、第1のフォーマル検証部102は、第2の検証として、繰り返し回数が所望の回数に達した後について、リード処理とライト処理の一連の処理が発生しないことを検証する。
また、第1のフォーマル検証部102は、第3の検証として、繰り返し回数が所望の回数に達した際((所望の繰り返し回数-1)分のリード処理及びライト処理の繰り返しが発生したことを前提条件とし、その次にリード処理及びライト処理が発生した際)について、その最後のリード処理及びライト処理のみを抽出して正当性を検証する。
That is, as a first verification, the first formal verification unit 102 verifies that the series of read processing and write processing is continuous before the number of repetitions reaches a desired number of times.
Further, as a second verification, the first formal verification unit 102 verifies that a series of processes of read processing and write processing does not occur after the number of repetitions reaches a desired number of times.
In addition, as a third verification, the first formal verification unit 102 determines that when the number of repetitions reaches a desired number, the number of repetitions of read processing and write processing for ((desired number of repetitions - 1)) has occurred. When a read process and a write process occur next), only the last read process and write process are extracted and their validity is verified.

なお、第1のフォーマル検証部102における各検証の順序は問われず、順不同でよい。また、第1のフォーマル検証部102における各検証は、それぞれ単独で行われてもよいし並列で行われてもよい。 Note that the order of each verification in the first formal verification unit 102 is not critical, and may be performed in any order. Further, each verification in the first formal verification unit 102 may be performed independently or in parallel.

そして、この第1のフォーマル検証部102による検証結果を示す情報は、検証結果記録部1013に記録される。すなわち、検証結果記録部1013には、繰り返し回数が所望の回数に達する前の動作に関わる検証の結果を示す情報、繰り返し回数が所望の回数に達した後の動作に関わる検証の結果を示す情報、及び、繰り返し回数が所望の回数に達した際の動作に関わる検証の結果を示す情報が、それぞれ記録される。 Then, information indicating the verification result by the first formal verification section 102 is recorded in the verification result recording section 1013. That is, the verification result recording unit 1013 stores information indicating the results of verification related to the operation before the number of repetitions reaches the desired number, and information indicating the results of verification related to the operation after the number of repetitions reaches the desired number. , and information indicating the result of verification related to the operation when the number of repetitions reaches a desired number of times are respectively recorded.

次いで、第1の合格判定部103は、第1のフォーマル検証部102による複数の検証が全て合格であるかを判定する(ステップST302)。 Next, the first pass determination section 103 determines whether all of the plurality of verifications by the first formal verification section 102 are passed (step ST302).

このステップST302において、第1の合格判定部103が複数の検証が全て合格であると判定した場合、第2のフォーマル検証部104は、DMAコントローラにおけるリード処理及びライト処理の繰り返し回数が所望の回数であることを検証(第4の検証)する(ステップST303)。この際、第2のフォーマル検証部104は、アサーション記録部1012に記録されている情報が示すアサーション(分割前アサーション)に基づいて、検証結果記録部1013に記録されている検証結果を示す情報を読み出すことで、上記検証を行う。 In this step ST302, when the first pass determination unit 103 determines that all of the plurality of verifications have passed, the second formal verification unit 104 determines that the number of repetitions of read processing and write processing in the DMA controller is a desired number of times. is verified (fourth verification) (step ST303). At this time, the second formal verification unit 104 reads information indicating the verification result recorded in the verification result recording unit 1013 based on the assertion (pre-division assertion) indicated by the information recorded in the assertion recording unit 1012. The above verification is performed by reading.

このように、第2のフォーマル検証部104は、検証結果記録部1013に記録されている検証結果を示す情報を読み出して上記検証を行うことで、その分の数理論理学的な複雑度を低減可能となる。 In this way, the second formal verification unit 104 reads out the information indicating the verification results recorded in the verification result recording unit 1013 and performs the above verification, thereby reducing the mathematical complexity accordingly. It becomes possible.

次いで、第2の合格判定部105は、第2のフォーマル検証部104による検証が合格であるかを判定する(ステップST304)。 Next, the second pass determination section 105 determines whether the verification by the second formal verification section 104 is passed (step ST304).

このステップST304において、第2の合格判定部105が検証が合格であると判定した場合、シーケンスは終了する。 In this step ST304, when the second pass determination section 105 determines that the verification is passed, the sequence ends.

一方、ステップST302において、第1の合格判定部103が複数の検証が全ては合格ではないと判定した場合、又は、ステップST304において、第2の合格判定部105が検証が合格ではないと判定した場合、通知部106は、その旨を外部に通知する(ステップST305)。 On the other hand, in step ST302, if the first pass determination unit 103 determines that all of the multiple verifications are not passed, or in step ST304, the second pass determination unit 105 determines that the verifications are not passed. If so, the notification unit 106 notifies the outside to that effect (step ST305).

その後、通知部106による通知を受付けたユーザは、アサーション記録部1012に記録されている情報が示すアサーションに不具合が生じているかを判定する。
ここで、ユーザは、アサーションに不具合が生じていると判定した場合には、当該アサーションを修正する。そして、アサーション記録部1012は、記録しているアサーションを示す情報を修正後のアサーションを示す情報に更新する。
一方、ユーザは、アサーションに不具合が生じていないと判定した場合には、論理回路を修正する。そして、論理回路記録部1011は、記録している論理回路を示す情報を修正後の論理回路を示す情報に更新する。
Thereafter, the user who has received the notification from the notification unit 106 determines whether a problem has occurred in the assertion indicated by the information recorded in the assertion recording unit 1012.
Here, if the user determines that a problem has occurred in the assertion, the user corrects the assertion. Then, the assertion recording unit 1012 updates the recorded information indicating the assertion to information indicating the modified assertion.
On the other hand, if the user determines that there is no problem with the assertion, the user modifies the logic circuit. Then, the logic circuit recording unit 1011 updates the recorded information indicating the logic circuit to information indicating the corrected logic circuit.

次いで、修正完了受付部107は、ユーザから、アサーションの修正完了を示す通知である修正完了通知、又は、論理回路の修正完了を示す通知である修正完了通知を受付ける(ステップST306)。
その後、シーケンスはステップST301に戻る。そして、第1のフォーマル検証部102は、上記複数の検証を再度行う。
Next, the modification completion reception unit 107 receives from the user a modification completion notification which is a notification indicating completion of modification of an assertion or a notification indicating completion of modification of a logic circuit (step ST306).
After that, the sequence returns to step ST301. Then, the first formal verification unit 102 performs the plurality of verifications described above again.

このように、実施の形態1に係るフォーマル検証装置1では、DMAコントローラに対するフォーマル検証において、当該DMAコントローラにおけるリード処理及びライト処理の繰り返し回数に基づいて分割された複数の検証(第1の検証、第2の検証及び第3の検証)を行い、その後、当該繰り返し回数が所望の回数になることを検証(第4の検証)する。
これにより、実施の形態1に係るフォーマル検証装置1では、従来に対し、DMAコントローラが有する要素を分解且つ簡略化することができ、数理論理学的な複雑度を低減可能となる。その結果、実施の形態1に係るフォーマル検証装置1では、従来に対し、DMAコントローラに対するフォーマル検証における状態爆発を抑制でき、検証実行時間を抑制可能となる。
In this way, in the formal verification device 1 according to the first embodiment, in formal verification of a DMA controller, a plurality of verifications (first verification, first verification, (second verification and third verification), and then verify that the number of repetitions is the desired number (fourth verification).
As a result, in the formal verification device 1 according to the first embodiment, the elements included in the DMA controller can be decomposed and simplified, and the mathematical complexity can be reduced compared to the conventional method. As a result, the formal verification device 1 according to the first embodiment can suppress state explosion in formal verification of a DMA controller, and can reduce verification execution time, compared to the conventional method.

次に、検証対象とする回路が積和演算回路である場合での、図1に示す実施の形態1に係るフォーマル検証装置1の動作例について、図3を参照しながら説明する。
なお、論理回路記録部1011は、積和演算回路に相当する論理回路を示す情報を記録している。また、アサーション記録部1012は、複数のアサーションを示す情報を記録している。アサーション記録部1012に記録されている情報が示す複数のアサーションは、積和演算回路における乗算処理及び加算処理の繰り返し回数に基づいて3つに分割されたアサーション(分割後アサーション)、及び、検証対象である回路における繰り返し処理の繰り返し回数が所望の回数であることを検証するためのアサーション(分割前アサーション)である。
Next, an example of the operation of the formal verification device 1 according to the first embodiment shown in FIG. 1 when the circuit to be verified is a product-sum operation circuit will be described with reference to FIG. 3.
Note that the logic circuit recording unit 1011 records information indicating a logic circuit corresponding to a product-sum operation circuit. Further, the assertion recording unit 1012 records information indicating a plurality of assertions. The plurality of assertions indicated by the information recorded in the assertion recording unit 1012 include assertions that are divided into three parts based on the number of repetitions of multiplication processing and addition processing in the product-sum operation circuit (split assertions), and verification target assertions. This is an assertion (pre-division assertion) for verifying that the number of repetitions of repetitive processing in a circuit is a desired number.

検証対象とする回路が積和演算回路である場合での、図1に示す実施の形態1に係るフォーマル検証装置1の動作例では、図3に示すように、まず、第1のフォーマル検証部102は、論理回路記録部1011に記録されている情報が示す論理回路、及び、アサーション記録部1012に記録されている情報が示す複数のアサーション(分割後アサーション)に基づいて、積和演算回路に対して複数の検証(第1の検証、第2の検証及び第3の検証)を行う(ステップST301)。すなわち、第1のフォーマル検証部102は、3つのアサーションを論理回路にそれぞれ入力することで、積和演算回路における乗算処理及び加算処理の繰り返し回数に基づいて3つに分割された検証をそれぞれ行う。 In the operation example of the formal verification device 1 according to the first embodiment shown in FIG. 1 when the circuit to be verified is a product-sum calculation circuit, as shown in FIG. 102 is a product-sum calculation circuit based on the logic circuit indicated by the information recorded in the logic circuit recording unit 1011 and the plurality of assertions (post-division assertions) indicated by the information recorded in the assertion recording unit 1012. A plurality of verifications (first verification, second verification, and third verification) are performed (step ST301). That is, the first formal verification unit 102 performs verification divided into three parts based on the number of repetitions of multiplication processing and addition processing in the product-sum calculation circuit by inputting three assertions into the logic circuit. .

すなわち、第1のフォーマル検証部102は、第1の検証として、繰り返し回数が所望の回数に達する前について、乗算処理と加算処理の一連の処理が連続していることを検証する。
また、第1のフォーマル検証部102は、第2の検証として、繰り返し回数が所望の回数に達した後について、乗算処理と加算処理の一連の処理が発生しないことを検証する。
また、第1のフォーマル検証部102は、第3の検証として、繰り返し回数が所望の回数に達した際((所望の繰り返し回数-1)分の乗算処理及び加算処理の繰り返しが発生したことを前提条件とし、その次に乗算処理及び加算処理が発生した際)について、その最後の乗算処理及び加算処理のみを抽出して正当性を検証する。
That is, as a first verification, the first formal verification unit 102 verifies that the series of multiplication processing and addition processing is continuous before the number of repetitions reaches a desired number of times.
Furthermore, as a second verification, the first formal verification unit 102 verifies that the series of multiplication processing and addition processing does not occur after the number of repetitions reaches a desired number of times.
In addition, as a third verification, the first formal verification unit 102 determines that when the number of repetitions reaches a desired number of times, the number of repetitions of multiplication processing and addition processing for ((desired number of repetitions - 1)) has occurred. When a multiplication process and an addition process occur next), only the last multiplication process and addition process are extracted and their validity is verified.

なお、第1のフォーマル検証部102における各検証の順序は問われず、順不同でよい。また、第1のフォーマル検証部102における各検証は、それぞれ単独で行われてもよいし並列で行われてもよい。 Note that the order of each verification in the first formal verification unit 102 is not critical, and may be performed in any order. Further, each verification in the first formal verification unit 102 may be performed independently or in parallel.

そして、この第1のフォーマル検証部102による検証結果を示す情報は、検証結果記録部1013に記録される。すなわち、検証結果記録部1013には、繰り返し回数が所望の回数に達する前の動作に関わる検証の結果を示す情報、繰り返し回数が所望の回数に達した後の動作に関わる検証の結果を示す情報、及び、繰り返し回数が所望の回数に達した際の動作に関わる検証の結果を示す情報が、それぞれ記録される。 Then, information indicating the verification result by the first formal verification section 102 is recorded in the verification result recording section 1013. That is, the verification result recording unit 1013 stores information indicating the results of verification related to the operation before the number of repetitions reaches the desired number, and information indicating the results of verification related to the operation after the number of repetitions reaches the desired number. , and information indicating the result of verification related to the operation when the number of repetitions reaches a desired number of times are respectively recorded.

次いで、第1の合格判定部103は、第1のフォーマル検証部102による複数の検証が全て合格であるかを判定する(ステップST302)。 Next, the first pass determination section 103 determines whether all of the plurality of verifications by the first formal verification section 102 are passed (step ST302).

このステップST302において、第1の合格判定部103が複数の検証が全て合格であると判定した場合、第2のフォーマル検証部104は、積和演算回路における乗算処理及び加算処理の繰り返し回数が所望の回数であることを検証(第4の検証)する(ステップST303)。この際、第2のフォーマル検証部104は、アサーション記録部1012に記録されている情報が示すアサーション(分割前アサーション)に基づいて、検証結果記録部1013に記録されている検証結果を示す情報を読み出すことで、上記検証を行う。 In this step ST302, if the first pass determination section 103 determines that all of the plurality of verifications have passed, the second formal verification section 104 determines that the number of repetitions of the multiplication process and the addition process in the product-sum calculation circuit is the desired number. (fourth verification) (step ST303). At this time, the second formal verification unit 104 reads information indicating the verification result recorded in the verification result recording unit 1013 based on the assertion (pre-division assertion) indicated by the information recorded in the assertion recording unit 1012. The above verification is performed by reading.

このように、第2のフォーマル検証部104は、検証結果記録部1013に記録されている検証結果を示す情報を読み出して上記検証を行うことで、その分の数理論理学的な複雑度を低減可能となる。 In this way, the second formal verification unit 104 reads out the information indicating the verification results recorded in the verification result recording unit 1013 and performs the above verification, thereby reducing the mathematical complexity accordingly. It becomes possible.

次いで、第2の合格判定部105は、第2のフォーマル検証部104による検証が合格であるかを判定する(ステップST304)。 Next, the second pass determination section 105 determines whether the verification by the second formal verification section 104 is passed (step ST304).

このステップST304において、第2の合格判定部105が検証が合格であると判定した場合、シーケンスは終了する。 In this step ST304, when the second pass determination section 105 determines that the verification is passed, the sequence ends.

一方、ステップST302において、第1の合格判定部103が複数の検証が全ては合格ではないと判定した場合、又は、ステップST304において、第2の合格判定部105が検証が合格ではないと判定した場合、通知部106は、その旨を外部に通知する(ステップST305)。 On the other hand, in step ST302, if the first pass determination unit 103 determines that all of the multiple verifications are not passed, or in step ST304, the second pass determination unit 105 determines that the verifications are not passed. If so, the notification unit 106 notifies the outside to that effect (step ST305).

その後、通知部106による通知を受付けたユーザは、アサーション記録部1012に記録されている情報が示すアサーションに不具合が生じているかを判定する。
ここで、ユーザは、アサーションに不具合が生じていると判定した場合には、当該アサーションを修正する。そして、アサーション記録部1012は、記録しているアサーションを示す情報を修正後のアサーションを示す情報に更新する。
一方、ユーザは、アサーションに不具合が生じていないと判定した場合には、論理回路を修正する。そして、論理回路記録部1011は、記録している論理回路を示す情報を修正後の論理回路を示す情報に更新する。
Thereafter, the user who has received the notification from the notification unit 106 determines whether a problem has occurred in the assertion indicated by the information recorded in the assertion recording unit 1012.
Here, if the user determines that a problem has occurred in the assertion, the user corrects the assertion. Then, the assertion recording unit 1012 updates the recorded information indicating the assertion to information indicating the modified assertion.
On the other hand, if the user determines that there is no problem with the assertion, the user modifies the logic circuit. Then, the logic circuit recording unit 1011 updates the recorded information indicating the logic circuit to information indicating the corrected logic circuit.

次いで、修正完了受付部107は、ユーザから、アサーションの修正完了を示す通知である修正完了通知、又は、論理回路の修正完了を示す通知である修正完了通知を受付ける(ステップST306)。
その後、シーケンスはステップST301に戻る。そして、第1のフォーマル検証部102は、上記複数の検証を再度行う。
Next, the modification completion reception unit 107 receives from the user a modification completion notification which is a notification indicating completion of modification of an assertion or a notification indicating completion of modification of a logic circuit (step ST306).
After that, the sequence returns to step ST301. Then, the first formal verification unit 102 performs the plurality of verifications described above again.

このように、実施の形態1に係るフォーマル検証装置1では、積和演算回路に対するフォーマル検証において、当該積和演算回路における乗算処理及び加算処理の繰り返し回数に基づいて分割された複数の検証(第1の検証、第2の検証及び第3の検証)を行い、その後、当該繰り返し回数が所望の回数になることを検証(第4の検証)する。
これにより、実施の形態1に係るフォーマル検証装置1では、従来に対し、積和演算回路が有する要素を分解且つ簡略化することができ、数理論理学的な複雑度を低減可能となる。その結果、実施の形態1に係るフォーマル検証装置1では、従来に対し、積和演算回路に対するフォーマル検証における状態爆発を抑制でき、検証実行時間を抑制可能となる。
In this manner, the formal verification device 1 according to the first embodiment performs formal verification of a product-sum calculation circuit by performing multiple verifications (verifications) divided based on the number of times the multiplication process and addition process are repeated in the product-sum calculation circuit. 1, second verification, and third verification), and then verify that the number of repetitions is the desired number (fourth verification).
As a result, in the formal verification device 1 according to the first embodiment, the elements included in the product-sum calculation circuit can be decomposed and simplified, and the mathematical complexity can be reduced compared to the conventional method. As a result, the formal verification device 1 according to the first embodiment can suppress state explosion in formal verification of a product-sum operation circuit, and can reduce verification execution time, compared to the conventional method.

以上のように、この実施の形態1によれば、フォーマル検証装置1は、繰り返し処理を行う回路に相当する論理回路、及び、当該回路における繰り返し処理の繰り返し回数に基づいて複数に分割されたアサーションに基づいて、当該回路に対して複数の検証を行う第1のフォーマル検証部102と、第1のフォーマル検証部102による複数の検証が全て合格であるかを判定する第1の合格判定部103と、第1の合格判定部103により複数の検証が全て合格であると判定された場合、回路における繰り返し処理の繰り返し回数が所望の回数であることを検証する第2のフォーマル検証部104と、第2のフォーマル検証部104による検証が合格であるかを判定する第2の合格判定部105と、第1の合格判定部103により複数の検証が全ては合格ではないと判定された場合、又は、第2の合格判定部105により検証が合格ではないと判定された場合、その旨を外部に通知する通知部106とを備えた。これにより、実施の形態1に係るフォーマル検証装置1は、従来に対し、繰り返し処理を行う回路に対する検証の効率化が可能となる。その結果、実施の形態1に係るフォーマル検証装置1は、従来に対し、検証対象である回路に対する検証工程の短縮化が可能となる。 As described above, according to the first embodiment, the formal verification device 1 includes a logic circuit corresponding to a circuit that performs repetitive processing, and an assertion divided into a plurality of parts based on the number of repetitions of the repetitive processing in the circuit. a first formal verification unit 102 that performs multiple verifications on the circuit based on the above, and a first pass determination unit 103 that determines whether all of the multiple verifications by the first formal verification unit 102 are passed. and a second formal verification unit 104 that verifies that the number of repetitions of the repetitive processing in the circuit is a desired number of times when the first pass determination unit 103 determines that all of the plurality of verifications are passed; When the second pass determination unit 105 determines whether the verification by the second formal verification unit 104 passes, and the first pass determination unit 103 determines that all of the multiple verifications are not passed, or , and a notification unit 106 that notifies the outside when the second pass determination unit 105 determines that the verification is not passed. As a result, the formal verification device 1 according to the first embodiment can more efficiently verify a circuit that undergoes repeated processing than in the past. As a result, the formal verification apparatus 1 according to the first embodiment can shorten the verification process for a circuit to be verified compared to the conventional method.

最後に、図4を参照して、実施の形態1に係るフォーマル検証装置1のハードウェア構成例を説明する。
フォーマル検証装置1における第1のフォーマル検証部102、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107の各機能は、処理回路501により実現される。処理回路501は、図4Aに示すように、専用のハードウェアであってもよいし、図4Bに示すように、メモリ503に格納されるプログラムを実行するCPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、又はDSP(Digital Signal Processor)ともいう)502であってもよい。
Finally, with reference to FIG. 4, an example of the hardware configuration of the formal verification device 1 according to the first embodiment will be described.
Each of the first formal verification section 102, first pass judgment section 103, second formal verification section 104, second pass judgment section 105, notification section 106, and correction completion reception section 107 in the formal verification device 1 The functions are realized by processing circuit 501. The processing circuit 501 may be dedicated hardware as shown in FIG. 4A, or may be a CPU (Central Processing Unit) that executes a program stored in the memory 503, as shown in FIG. 4B. It may be a processing device, an arithmetic device, a microprocessor, a microcomputer, a processor, or a DSP (Digital Signal Processor)) 502.

処理回路501が専用のハードウェアである場合、処理回路501は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらを組み合わせたものが該当する。第1のフォーマル検証部102、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107の各部の機能それぞれを処理回路501で実現してもよいし、各部の機能をまとめて処理回路501で実現してもよい。 When the processing circuit 501 is dedicated hardware, the processing circuit 501 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate). Array), or a combination of these. Processes the functions of the first formal verification section 102, first pass judgment section 103, second formal verification section 104, second pass judgment section 105, notification section 106, and correction completion reception section 107, respectively. It may be realized by the circuit 501, or the functions of each part may be realized by the processing circuit 501.

処理回路501がCPU502の場合、第1のフォーマル検証部102、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア及びファームウェアはプログラムとして記述され、メモリ503に格納される。処理回路501は、メモリ503に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、フォーマル検証装置1は、処理回路501により実行されるときに、例えば図2及び図3に示した各ステップが結果的に実行されることになるプログラムを格納するためのメモリ503を備える。また、これらのプログラムは、第1のフォーマル検証部102、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107の手順及び方法をコンピュータに実行させるものであるともいえる。ここで、メモリ503としては、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)等の不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、又はDVD(Digital Versatile Disc)等が該当する。 When the processing circuit 501 is the CPU 502, the first formal verification section 102, the first pass judgment section 103, the second formal verification section 104, the second pass judgment section 105, the notification section 106, and the correction completion reception section. The functions of 107 are realized by software, firmware, or a combination of software and firmware. Software and firmware are written as programs and stored in memory 503. The processing circuit 501 realizes the functions of each section by reading and executing programs stored in the memory 503. That is, the formal verification device 1 includes a memory 503 for storing a program that, when executed by the processing circuit 501, results in each step shown in, for example, FIGS. 2 and 3 being executed. Additionally, these programs include a first formal verification section 102, a first pass judgment section 103, a second formal verification section 104, a second pass judgment section 105, a notification section 106, and a modification completion reception section 107. It can also be said that it allows a computer to execute the procedures and methods. Here, the memory 503 includes, for example, RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable ROM), and EEPROM (Electrically EPROM). non-volatile or volatile semiconductor memory, such as This includes a magnetic disk, flexible disk, optical disk, compact disk, mini disk, DVD (Digital Versatile Disc), and the like.

なお、第1のフォーマル検証部102、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェア又はファームウェアで実現するようにしてもよい。例えば、第1のフォーマル検証部102については専用のハードウェアとしての処理回路501でその機能を実現し、第1の合格判定部103、第2のフォーマル検証部104、第2の合格判定部105、通知部106、及び、修正完了受付部107については処理回路501がメモリ503に格納されたプログラムを読み出して実行することによってその機能を実現することが可能である。 Note that regarding each function of the first formal verification section 102, first pass judgment section 103, second formal verification section 104, second pass judgment section 105, notification section 106, and correction completion reception section 107, A portion may be realized by dedicated hardware, and a portion may be realized by software or firmware. For example, the function of the first formal verification section 102 is realized by a processing circuit 501 as dedicated hardware, and the first pass judgment section 103, the second formal verification section 104, and the second pass judgment section 105 , the notification unit 106, and the modification completion reception unit 107 can realize their functions by having the processing circuit 501 read and execute a program stored in the memory 503.

このように、処理回路501は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、上述の各機能を実現することができる。 In this way, the processing circuit 501 can implement each of the above functions using hardware, software, firmware, or a combination thereof.

なお、実施の形態の任意の構成要素の変形、若しくは実施の形態の任意の構成要素の省略が可能である。 Note that it is possible to modify any component of the embodiment or omit any component of the embodiment.

1 フォーマル検証装置、101 記録部、102 第1のフォーマル検証部、103 第1の合格判定部、104 第2のフォーマル検証部、105 第2の合格判定部、106 通知部、107 修正完了受付部、501 処理回路、502 CPU、503 メモリ、1011 論理回路記録部、1012 アサーション記録部、1013 検証結果記録部。 1 formal verification device, 101 recording section, 102 first formal verification section, 103 first pass judgment section, 104 second formal verification section, 105 second pass judgment section, 106 notification section, 107 correction completion reception section , 501 processing circuit, 502 CPU, 503 memory, 1011 logic circuit recording section, 1012 assertion recording section, 1013 verification result recording section.

Claims (6)

繰り返し処理を行う回路に相当する論理回路、及び、当該回路における繰り返し処理の繰り返し回数に基づいて複数に分割されたアサーションに基づいて、当該回路に対して複数の検証を行う第1のフォーマル検証部と、
前記第1のフォーマル検証部による複数の検証が全て合格であるかを判定する第1の合格判定部と、
前記第1の合格判定部により複数の検証が全て合格であると判定された場合、前記回路における繰り返し処理の繰り返し回数が所望の回数であることを検証する第2のフォーマル検証部と、
前記第2のフォーマル検証部による検証が合格であるかを判定する第2の合格判定部と、
前記第1の合格判定部により複数の検証が全ては合格ではないと判定された場合、又は、前記第2の合格判定部により検証が合格ではないと判定された場合、その旨を外部に通知する通知部と
を備えたフォーマル検証装置。
A logic circuit corresponding to a circuit that performs repetitive processing, and a first formal verification unit that performs multiple verifications on the circuit based on assertions that are divided into multiple parts based on the number of repetitions of the repetitive processing in the circuit. and,
a first pass determination unit that determines whether all of the plurality of verifications by the first formal verification unit are passed;
a second formal verification unit that verifies that the number of repetitions of the repetitive processing in the circuit is a desired number of times when the first pass determination unit determines that all of the plurality of verifications are passed;
a second pass determination unit that determines whether the verification by the second formal verification unit is successful;
If the first pass determination unit determines that all of the multiple verifications are not passed, or if the second pass determination unit determines that the verification is not passed, notify external parties to that effect. A formal verification device with a notification section and .
前記回路は、DMAコントローラであり、
前記回路における繰り返し処理は、前記DMAコントローラにおけるリード処理及びライト処理である
ことを特徴とする請求項1記載のフォーマル検証装置。
the circuit is a DMA controller;
The formal verification device according to claim 1, wherein the repeated processing in the circuit is read processing and write processing in the DMA controller.
前記第1のフォーマル検証部は、リード処理及びライト処理の繰り返し回数が所望の回数に達する前の動作に関わる検証、リード処理及びライト処理の繰り返し回数が所望の回数に達した後の動作に関わる検証、及び、リード処理及びライト処理の繰り返し回数が所望の回数に達した際の動作に関わる検証をそれぞれ行う
ことを特徴とする請求項2記載のフォーマル検証装置。
The first formal verification unit is concerned with verification related to operations before the number of repetitions of read processing and write processing reaches a desired number of times, and related to operations after the number of repetitions of read processing and write processing reaches a desired number of times. 3. The formal verification device according to claim 2, wherein the formal verification device performs verification and verification related to the operation when the number of repetitions of read processing and write processing reaches a desired number of times.
前記回路は、積和演算回路であり、
前記回路における繰り返し処理は、前記積和演算回路における乗算処理及び加算処理である
ことを特徴とする請求項1記載のフォーマル検証装置。
The circuit is a product-sum calculation circuit,
The formal verification device according to claim 1, wherein the repetitive processing in the circuit is multiplication processing and addition processing in the product-sum calculation circuit.
前記第1のフォーマル検証部は、乗算処理及び加算処理の繰り返し回数が所望の回数に達する前の動作に関わる検証、乗算処理及び加算処理の繰り返し回数が所望の回数に達した後の動作に関わる検証、及び、乗算処理及び加算処理の繰り返し回数が所望の回数に達した際の動作に関わる検証をそれぞれ行う
ことを特徴とする請求項4記載のフォーマル検証装置。
The first formal verification unit is concerned with verification related to operations before the number of repetitions of multiplication processing and addition processing reaches a desired number of times, and related to operations after the number of repetitions of multiplication processing and addition processing reaches a desired number of times. 5. The formal verification device according to claim 4, wherein the formal verification device performs verification and verification related to the operation when the number of repetitions of multiplication processing and addition processing reaches a desired number of times.
第1のフォーマル検証部が、繰り返し処理を行う回路に相当する論理回路、及び、当該回路における繰り返し処理の繰り返し回数に基づいて複数に分割されたアサーションに基づいて、当該回路に対して複数の検証を行うステップと、
第1の合格判定部が、前記第1のフォーマル検証部による複数の検証が全て合格であるかを判定するステップと、
第2のフォーマル検証部が、前記第1の合格判定部により複数の検証が全て合格であると判定された場合、前記回路における繰り返し処理の繰り返し回数が所望の回数であることを検証するステップと、
第2の合格判定部が、前記第2のフォーマル検証部による検証が合格であるかを判定するステップと、
通知部が、前記第1の合格判定部により複数の検証が全ては合格ではないと判定された場合、又は、前記第2の合格判定部により検証が合格ではないと判定された場合、その旨を外部に通知するステップと
を有するフォーマル検証方法。
The first formal verification unit performs multiple verifications on the circuit based on a logic circuit corresponding to a circuit that performs repetitive processing and assertions divided into multiple parts based on the number of repetitions of the repetitive processing in the circuit. and the steps to
a step in which a first pass determination unit determines whether all of the plurality of verifications by the first formal verification unit are passed;
a second formal verification section, when the first pass determination section determines that all of the plurality of verifications are passed, verifying that the number of repetitions of the repetitive processing in the circuit is a desired number; ,
a second pass determination unit determining whether the verification by the second formal verification unit is successful;
If the first pass determination unit determines that all of the multiple verifications are not passed, or if the second pass determination unit determines that the verifications are not passed, the notification unit shall notify the notification to that effect. A formal verification method comprising a step of notifying an external party.
JP2022201687A 2022-04-04 2022-12-19 Formal verification device and formal verification method Active JP7466615B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022062203 2022-04-04
JP2022062203 2022-04-04

Publications (2)

Publication Number Publication Date
JP2023152651A true JP2023152651A (en) 2023-10-17
JP7466615B2 JP7466615B2 (en) 2024-04-12

Family

ID=88349440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022201687A Active JP7466615B2 (en) 2022-04-04 2022-12-19 Formal verification device and formal verification method

Country Status (1)

Country Link
JP (1) JP7466615B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011002903A (en) 2009-06-16 2011-01-06 Oki Semiconductor Co Ltd Apparatus for verification of asynchronous circuit, and program
US10699044B2 (en) 2018-07-13 2020-06-30 International Business Machines Corporation Integrated circuit design model splitting for formal verification

Also Published As

Publication number Publication date
JP7466615B2 (en) 2024-04-12

Similar Documents

Publication Publication Date Title
US11036507B2 (en) Processor testing using pairs of counter incrementing and branch instructions
WO2017020590A1 (en) Chip validation method and device, equipment, and data storage medium
CN111936998B (en) Validation of hardware design for data transformation pipeline
CN111831564A (en) Regression testing method and device and computing equipment
Gaudesi et al. On test program compaction
JP2023152651A (en) Formal verification device and formal verification method
CN112187266B (en) Nonlinear correction method and device of analog-to-digital converter and electronic equipment
JP5986474B2 (en) Memory failure diagnosis device and memory failure diagnosis method
JP6903249B2 (en) Test case generator, test case generator, and test case generator
US20130007420A1 (en) Checking the integrity of a program executed by an electronic circuit
JP5811859B2 (en) Source code static analysis device, system, method, and program therefor
JP2012198065A (en) Semiconductor integrated circuit, test method, information processor, and program
US11023357B1 (en) Method and system for sequential equivalence checking
US6564162B1 (en) Method and apparatus for improving electrical verification throughput via comparison of operating-point differentiated test results
US10503854B1 (en) Method and system for generating validation tests
CN110991129A (en) Full-automatic simulation verification method of password coprocessor based on FPGA
JP2020153804A (en) Testing device, testing method, and computer program
JP6291242B2 (en) Logic verification method and program for information processing apparatus
WO2024046516A1 (en) Symbolic execution in testing software
US20060282250A1 (en) Logic simulation method and system
CN116861829B (en) Method for locating errors in logic system design and electronic equipment
WO2020149197A1 (en) Information processing device and information processing method
JP2016009232A (en) Formal verification device and program
Sharif et al. A non-deterministic T-way strategy with seeding and constraints support
JP2022022115A (en) Automated software program repair

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230131

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240402