JP7180043B2 - Digital verification support device and digital verification support program - Google Patents
Digital verification support device and digital verification support program Download PDFInfo
- Publication number
- JP7180043B2 JP7180043B2 JP2018142856A JP2018142856A JP7180043B2 JP 7180043 B2 JP7180043 B2 JP 7180043B2 JP 2018142856 A JP2018142856 A JP 2018142856A JP 2018142856 A JP2018142856 A JP 2018142856A JP 7180043 B2 JP7180043 B2 JP 7180043B2
- Authority
- JP
- Japan
- Prior art keywords
- snapshot
- interrupt
- positions
- optimum
- vector
- 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.)
- Active
Links
Images
Description
この発明は、ディジタル検証支援装置及びディジタル検証支援用プログラムに関するものである。 The present invention relates to a digital verification support device and a digital verification support program.
ディジタル検証においては、検証対象となるRTL(Register Tranfer Level)に対してベクタと称される入力ファイルを作成し、RTLが正常に動作しているかの確認を行う。通常、ベクタは人間が考えて手作業で作成を行っている。一度作成されたベクタに対し、検証対象の電子回路やシステムに非同期に発生する割込みイベントに対して適切な処理が行われているかを確認するためには、インタラプト検証と呼ばれる割込みによる手法を採用することができる。 In digital verification, an input file called a vector is created for RTL (Register Transfer Level) to be verified, and it is confirmed whether the RTL operates normally. Normally, vectors are created manually based on human thinking. In order to check whether appropriate processing is performed for interrupt events that occur asynchronously in the electronic circuit or system to be verified, a method using interrupts called interrupt verification is adopted for vectors once created. be able to.
例えば、メモリ製品におけるインタラプト検証は、非同期割込みの性質から、異常系と機能系に分けられており、更に割込み種類で分類すると、次の表1に示すように10種類以上となる。 For example, interrupt verification in memory products is divided into an abnormal system and a functional system due to the nature of asynchronous interrupts.
更に、現行のインタラプト検証は、ノーマルインタラプト(Normal Interrupt)とハイレゾリューションインタラプト(High Resolution Interrupt)という2種の検証方法の組合せによって行われている。この2種類のインタラプトは、次の表2に示す通りの特徴を有しており、この特徴に合わせて使用されている。表2の「sim時間」は、シミュレーション時間である。 Furthermore, current interrupt verification is performed by a combination of two types of verification methods, normal interrupt and high resolution interrupt. These two types of interrupts have the characteristics shown in Table 2 below, and are used in accordance with these characteristics. "sim time" in Table 2 is the simulation time.
近年、メモリ製品における回路の複雑化や過去に発生した不具合からのフィードバックにより検証すべき割込みの数が爆発的に増え、シミュレーション時間も激増している。この結果、初めてAIPR機能(Asynchronous Independent Plane Read)を搭載したフラッシュメモリとしては、ハイレゾリューションインタラプトによる全割込み種類の合計割込み数(ベクタ数)が数十万となるものがある。また、一番割込み数の多いFFh インタラプト(表1)は、割込み数と検証時間と共に極めて大きな値となり、レギュレーション一回分に要する時間がライセンス50並列の前提で340h(2週間超え)を要する。 In recent years, the number of interrupts to be verified has increased explosively due to the complexity of circuits in memory products and the feedback from past failures, and the simulation time has also increased dramatically. As a result, for the first flash memory equipped with the AIPR function (Asynchronous Independent Plane Read), the total number of interrupts (number of vectors) for all interrupt types due to high-resolution interrupts is in the hundreds of thousands. In addition, the FFh interrupt (Table 1), which has the largest number of interrupts, has a very large value together with the number of interrupts and the verification time, and the time required for one regulation is 340 hours (more than 2 weeks) on the premise of 50 parallel licenses.
本来は、LSIの設計図を磁気テープに焼きこみ、データをLSI製造部門に出荷することの意味から、半導体の回路設計の最終段階である「テープアウト」の直前に最新回路を用いて検証したいところであるが、シミュレーション時間が長いのでテープアウトの2週間前の回路で実行した検証結果しか確認できない。フラッシュメモリの検証方針としては、その期間でのハイレゾリューションインタラプトを断念し、テープアウト後の後追い検証を行うことに留まっている。後追い検証で致命不具合が発見された場合には、refine(マスク改良)になってしまうので、品質(割込み数)を維持しながら、検証効率改善もしくは新しい検証手法の立ち上げが必要である。 Originally, the LSI design drawing was printed on magnetic tape and the data was shipped to the LSI manufacturing department. However, due to the long simulation time, we can only confirm the results of the verification performed on the circuit two weeks before the tape-out. As for the flash memory verification policy, the high-resolution interrupt during that period was abandoned, and only follow-up verification after tape-out was performed. If a fatal defect is found in the follow-up verification, it will be refined (improvement of the mask), so it is necessary to improve verification efficiency or launch a new verification method while maintaining quality (number of interrupts).
上記の問題を解決するために、ここでは、現状のインタラプト検証手法を検討してみることにする。ある種のフラッシュメモリにおけるインタラプト検証は、2ステップDB型と呼ばれ、図1のようにサンプリングとインタラプトの2段階で行う手法が用いられている。 In order to solve the above problem, the current interrupt verification method will be examined here. Interrupt verification in a certain type of flash memory is called a two-step DB type, and uses a method of performing sampling and interrupts in two steps, as shown in FIG.
ステップ1:サンプリング(Sampling)
全ベクタを事前に流し、ユニークなステートの変化点を共通データベースに登録する。その内容はベクタ名と変化点の発生時間(シミュレーション時間(Simulation Time))であり、それらは割込み検証のターゲットでもある。通常、1ベクタに複数の割込みポイントが登録されるケースが多く、最大7000以上の割込みポイントを持つベクタもある。
Step 1: Sampling
All vectors are pre-flowed and unique state change points are registered in a common database. The contents are the vector name and the occurrence time of the change point (simulation time), which are also the targets of the interrupt verification. Normally, there are many cases where a plurality of interrupt points are registered in one vector, and some vectors have a maximum of 7000 or more interrupt points.
ステップ2:インタラプト(Interrupt)
データベースの登録情報からベクタを流す条件を決める。具体的にはベクタ名と一致したベクタを実行し、割込み時間になると割込みイベントを発生させる。1割込みポイントに1ベクタが生成される。
Step 2: Interrupt
Determine the conditions for sending vectors from the registration information in the database. Specifically, the vector that matches the vector name is executed, and an interrupt event is generated when the interrupt time comes. One vector is generated for one interrupt point.
上記の処理を検討したところ、図1と図2に示すように、1ベクタから作成された複数のインタラプトベクタ同士に同じ実行内容が含まれており、無駄があることが分かった。割込みポイントが前にあるベクタ(図1:vectorx_1、図2:v1)は必ず割込みポイントが後にあるベクタ(図1:vectorx_2、図2:v2)に含まれ、それがまたさらに後にあるベクタ(図1:vectorx_3、図2:v3)に含まれ、更に、それがまた後にあるベクタ(図1:vectorx_4、図2:v4)に含まれる。 As a result of examining the above process, it was found that the same execution contents were included in a plurality of interrupt vectors created from one vector, as shown in FIGS. The vector before the interrupt point (Fig. 1: vectorx_1, Fig. 2: v1) is always included in the vector after the interrupt point (Fig. 1: vectorx_2, Fig. 2: v2), which is also included in the vector after 1: vectorx_3, FIG. 2: v3), which is also included in the subsequent vector (FIG. 1: vectorx_4, FIG. 2: v4).
このように、複数のベクタが無駄に重複するシミュレーションを経過していることがレギュレーション時間を長くしている原因と考えられる。重複するシミュレーションを共通化して1度の通過にすることができれば、大幅な時間削減を見込めるのである。 In this way, it is considered that the regulation time is lengthened because a plurality of vectors are running through simulations that wastefully overlap. If overlapping simulations can be shared and made into a single pass, a significant time reduction can be expected.
シミュレータには、シミュレーションの途中状態をテンポラリライブラリに保存し、またその状態から復帰するサポート機能であるスナップショット(Snapshot)が備えられている。この機能によれば、複数のインタラプトベクタにおいてそれぞれに最初に戻って処理を実行することがなくなり時間短縮を実現できる。 The simulator is equipped with a snapshot, which is a support function that saves the intermediate state of the simulation in a temporary library and restores from that state. This function eliminates the need to return to the beginning of each of a plurality of interrupt vectors and execute processing, thereby realizing a reduction in time.
割込みの場合に状態復元を行うことは、特許文献1に開示されている。また、特許文献2では、レジスタメモリのコピーであるスナップショットがエミュレーションデータの一部として転送され、他のエミュレーションデータとCPUクロックとともに、エミュレーションデバイスにおいてターゲットCPUの命令の完全な模倣を可能にすることが開示されている。
Performing state restoration in the event of an interrupt is disclosed in US Pat. Moreover, in
特許文献3には、スナップショット解決技術を使用して、シミュレーションのための初期条件信号及び入力信号を得ることができることが開示されている。特許文献4には、状態値変化記憶手段2により、信号の状態値が変化すると信号の変化点情報5を作成すること、シミュレーション時刻を戻す要求があった場合、状態値変更手段3で、保持していた信号の変化点情報5を順に遡って信号を変化前の状態値に戻すことが開示されている。これにより、最初の入力パターンから論理検証をやり直すことなく途中から再開することができ、検証時間が短縮できるというものである。
US Pat. No. 5,300,005 discloses that snapshot solving techniques can be used to obtain initial condition signals and input signals for simulation. In
上記のように、状態復元を行うこと、或いはスナップショットの状態復元を用いて時間短縮を図ることが知られていたことが分かる。しかしながら、割込みポイントが数多く存在する場合、更に、スナップショットの位置数を多くすると状態情報の収集と保存に時間を要し必ずしも時間短縮にならないことは明らかである。本発明の実施形態は、ディジタル検証を行うシミュレータに、処理に要する割込位置情報と最適スナップショット位置情報とを与えて適切な処理を可能とするディジタル検証支援装置を提供することを目的としている。 As described above, it can be seen that it has been known to perform state restoration or use snapshot state restoration to reduce time. However, it is clear that if there are many interrupt points, moreover, a large number of snapshot locations will not necessarily save time as it will take time to collect and save the state information. An object of the present invention is to provide a digital verification support apparatus that enables appropriate processing by giving interrupt position information and optimum snapshot position information required for processing to a simulator that performs digital verification. .
実施形態に係るディジタル検証支援装置は、ディジタル検証を行うシミュレータに与えるベクタにおける割込位置を検出する割込位置検出手段と、この割込位置検出手段により検出された割込位置に基づきスナップショットを実行すべき所定数の最適スナップショット位置を決定するスナップショット位置決定手段とを具備するディジタル検証支援装置であって、前記シミュレータに、前記最適スナップショット位置において前記シミュレータが現状の復元に用いるスナップショット情報を取得し保持するスナップショット情報取得保持手段と、ベクタを先頭から実行して未処理の割込位置へ到ると、当該割込位置に対応する割込処理を実行して割込処理が終了となると、この割込位置に対応する最適スナップショット位置のスナップショット情報に基づき復元を行うまでの一連処理を実行し、当該最適スナップショット位置から前記ベクタの実行へと進むベクタ処理手段とが含まれており、前記スナップショット情報取得保持手段と前記ベクタ処理手段の処理に要する割込位置情報と最適スナップショット位置情報とを提供することを特徴とする。 A digital verification support apparatus according to an embodiment includes an interrupt position detecting means for detecting an interrupt position in a vector given to a simulator that performs digital verification, and a snapshot based on the interrupt position detected by the interrupt position detecting means. and snapshot location determination means for determining a predetermined number of optimal snapshot locations to be performed, wherein said simulator is provided with snapshots at said optimal snapshot locations that said simulator uses to restore the current state. snapshot information acquiring and holding means for acquiring and holding information; Upon completion, the vector processing means executes a series of processes up to restoration based on the snapshot information of the optimal snapshot position corresponding to the interrupt position, and proceeds from the optimal snapshot position to the execution of the vector. It is characterized by providing interrupt position information and optimum snapshot position information required for the processing of the snapshot information acquiring and holding means and the vector processing means.
以下添付図面を参照して、本発明の実施形態に係るディジタル検証支援装置及びディジタル検証支援用プログラムを説明する。各図において同一の構成要素には、同一の符号を付して重複する説明を省略する。図3に第1の実施形態に係るディジタル検証支援装置を用いたディジタル検証システムの構成を示す。この実施形態では、ディジタル検証装置であるシミュレータ100と、第1の実施形態に係るディジタル検証支援装置200とを備えている。シミュレータ100には、ベクタファイル130によるベクタが与えられる。ベクタがシミュレータ100により実行されることによりログが作成される。
A digital verification support device and a digital verification support program according to embodiments of the present invention will be described below with reference to the accompanying drawings. In each figure, the same components are denoted by the same reference numerals, and overlapping descriptions are omitted. FIG. 3 shows the configuration of a digital verification system using the digital verification support device according to the first embodiment. This embodiment comprises a
図3では1つのシミュレータ100により1つのベクタが実行されるように描かれているが、実際は図4のように、シミュレータ100は、複数のディジタル検証装置1-1、1-2、・・・、1-Nにより構成されるものであり、ベクタファイル130から、ベクタ2-1がディジタル検証装置1-1、ベクタ2-2がディジタル検証装置1-2に、・・・、ベクタ2-Nがディジタル検証装置1-Nに与えられて実行される。
Although FIG. 3 shows that one vector is executed by one
この結果、ログ3-1、3-2、・・・、3-Nが得られる。このログ3-1、3-2、・・・、3-Nは、ステートマシンのステート変化が記述されている。シミュレータ100により作成されたログ3-1、3-2、・・・、3-Nは、ディジタル検証支援装置200の割込位置検出手段210が受け取る。割込位置検出手段210は、ステート変化の時点であってユニークな内部状態である時を割込位置として検出する。ユニークな内部状態である時を割込位置として検出する理由は、同じ内部状態からの割込が重複することを防止するためである。上記のようにしてベクタ2-1、2-2、・・・、2-Nにおいて検出された割込位置情報は、割込位置データベース230に記憶される。
As a result, logs 3-1, 3-2, . . . , 3-N are obtained. The logs 3-1, 3-2, . . . , 3-N describe state changes of the state machine. Logs 3-1, 3-2, . The interrupt position detecting means 210 detects the time of state change and the unique internal state as the interrupt position. The reason for detecting a unique internal state as an interrupt position is to prevent duplicate interrupts from the same internal state. The interrupt position information detected in vectors 2-1, 2-2, . . . , 2-N as described above is stored in interrupt
ディジタル検証支援装置200には、スナップショット位置決定手段220が備えられている。スナップショット位置決定手段220は、上記割込位置検出手段210により検出された割込位置に基づきスナップショットを実行すべき所定数の最適スナップショット位置を決定するものである。
Digital
シミュレータ100には、スナップショット情報取得保持手段110とベクタ処理手段120とが備えられている。スナップショット情報取得保持手段110は、上記スナップショット位置決定手段220により決定された最適スナップショット位置において上記シミュレータ100が現状の復元に用いるスナップショット情報を取得し保持するものである。ベクタ処理手段120は、ベクタを先頭から実行して未処理の割込位置へ到ると、当該割込位置に対応する割込処理を実行して割込処理が終了となると、この割込位置に対応する最適スナップショット位置のスナップショット情報に基づき復元を行うまでの一連処理を実行し、当該最適スナップショット位置から上記ベクタの実行へと進むものである。この処理では、処理が図7に示されるように進む。
The
以上の構成を有するディジタル検証支援装置200では、図5に示すフローチャートにより処理が行われる。まず、全ベクタの実行によりログ収集を行い、ログの中からステート変化点を見つけて割込位置を検出する処理を行う(S11)。この結果、図6の割込情報IPIに示すように、ベクタ1、べクタ2、…、ベクタ841に示すように割込位置(10000、10500、50000、・・・、10000などの割込位置)が得られる。なお、割込位置やスナップショット位置の単位は、特に限定はないが、ここではmsec或いはnsecなどを用いることができる。
In the digital
次の1つのベクタにおける割込位置を取り出し、所定数の最適スナップショット位置を求める(S12)。最適スナップショット位置は、基本的に各割込位置の前であり、先の割込位置に重ならない時点であることが好適である。図6の例では、割込位置として10000、10500、20000、30000、・・・がベクタ1の割込位置IPI-V1として取り出されたことを示している。 The interrupt positions in the next vector are fetched and a predetermined number of optimal snapshot positions are obtained (S12). Preferably, the optimal snapshot location is essentially before each interrupt location and does not overlap the previous interrupt location. The example of FIG. 6 shows that 10000, 10500, 20000, 30000, .
そして、最適スナップショット位置の計算では、2つの割込位置10000と割込位置10500の前の9000が決定され、2つの割込位置20000、割込位置30000の前の19000が決定され、・・・、というように、所定数の割込位置の前にスナップショット位置を設ける手法により、ベクタ1の最適スナップショット位置SS-V1として決定されたことを示している。次に、割込位置情報とスナップショット位置情報を用いてスナップショット、割込、割込み処理及割込終了、スナップショット位置へのリターン、スナップショット位置における状態復旧処理、更にベクタ処理の続行が行われるように図6に示す、tclによる命令SS-INTを作成する(S13)。図6の命令SS-INTには、ベクタ1に対する割込み処理の場合のスナップショット等の処理の命令が記載されている。
Then, in calculating the optimal snapshot location, two interrupt
ステップS14においては、全てのベクタについて命令が作成されたのかを検出し、NOとなると、ステップS12へ戻って処理が続けられる。全てのベクタについて命令が作成された場合には、処理が終了となる。 In step S14, it is detected whether instructions have been generated for all vectors, and if NO, the process returns to step S12 to continue processing. If instructions have been created for all vectors, the process ends.
図6に示す、tclによる命令SS-INTをベクタ1において実行した結果を、図7に示す。この図7から明らかな通り、割込みが10000、10500において生じた場合には、戻る位置はスナップショットの位置である9000であり、割込みが20000、30000において生じた場合には、戻る位置はスナップショットの位置である19000である。従って、いずれの割込みにおいてもベクタの最初の位置へ戻っていた従来手法に比べて時間短縮を図ることができる。
FIG. 7 shows the result of executing the instruction SS-INT by tcl shown in FIG. 6 on
図6に示したスナップショットを用いた割込処理を採用したベクタの実行によれば、最初から最後まで基本同じところを2回以上通過しないことは明らかである。従って、理論上のシミュレーション最速時間は「割込み処理に要する時間」が全て同じTintであるとして、(30000+(Tintx4))で済むことが分かる。しかし、ディジタル検証支援装置として用いられている多くのシミュレータには、いくつかの問題や制限がある。 It is clear from the execution of the vectors employing interrupt processing using snapshots shown in FIG. Therefore, it can be seen that the fastest theoretical simulation time can be (30000+(T int x4)), assuming that the "time required for interrupt processing" is all the same T int . However, many simulators used as digital verification aids have some problems and limitations.
その1は、スナップショット数に制限がある場合があることである。シミュレータによっては、1ベクタにおいて取得可能なスナップショット数に、制限がある(例えば14まで)。このため、割込みの前にスナップショットを選択的に14か所において実行するしかない。 The first is that the number of snapshots may be limited. Some simulators have limits on the number of snapshots that can be taken in one vector (eg, up to 14). Therefore, there is no choice but to selectively perform a snapshot at 14 locations before the interrupt.
その2は、割込み数に制限がある場合があることである。シミュレータによっては、1ベクタにおいてスナップショット位置への復帰動作は所定回(例えば500)までという制限(実測値)があるため、所定回以上の割込みポイントを持つベクタについは、分割せざるを得ない。 The second is that the number of interrupts may be limited. Depending on the simulator, there is a limit (measured value) that the return operation to the snapshot position can be performed up to a predetermined number of times (for example, 500) in one vector. .
その3は、スナップショット処理に時間を要するということである。スナップショットによる現状の復元に用いるスナップショット情報の作成に75s、1回目の呼出に85s、2回目以降の呼出に1s(実測平均値)要する。むやみにスナップショットを増やすと、時間が増大するという結果になる。 The third is that snapshot processing takes time. It takes 75 s to create the snapshot information used to restore the current state by snapshot, 85 s for the first call, and 1 s (actual average value) for the second and subsequent calls. Increasing snapshots unnecessarily results in increased time.
その4は、スナップショットを配置できない期間があるということである。ある特定の期間にスナップショットを配置すると保存データが変化する(所謂、「化ける」)現象があるため、割込みポイントからマージンを取って遡ってスナップショットを配置する必要がある。 The fourth is that there is a period during which snapshots cannot be placed. Since there is a phenomenon in which stored data changes (so-called "garbage") when snapshots are placed in a specific period, snapshots must be placed retroactively with a margin from the interrupt point.
以上の制限に鑑み、スナップショット位置決定手段220がスナップショットを実行すべき所定数の最適スナップショット位置を決定する場合に、最適位置を得るための処理を行う必要がある。即ち、ベクタの長さと割込みポイントの位置、数によって、スナップショットの配置場所を調整する必要がある。 In view of the above limitations, when the snapshot position determining means 220 determines a predetermined number of optimum snapshot positions at which snapshots should be performed, it is necessary to perform processing for obtaining the optimum positions. That is, it is necessary to adjust the location of snapshots according to the length of the vector and the position and number of interrupt points.
ここでは、最大14回のスナップショットを如何に配置すればシミュレーション時間が最速になるかを考察してみることとする。例えば、図8に示すように、割込み時間(割込み位置)を黒丸により示し、スナップショット位置を下側に尖った三角形マークにより示す位置とした場合には、シミュレーションに要する時間は棒線により示される。従って、このベクタにおけるシミュレーションに要する総合計時間は、棒線の長さを合計したものと考えることができる。 Here, let us consider how to arrange snapshots up to 14 times to maximize the simulation time. For example, as shown in FIG. 8, when the interrupt time (interrupt position) is indicated by a black circle and the snapshot position is indicated by a triangle mark pointed downward, the time required for the simulation is indicated by a bar line. . Therefore, the total total time required for simulation in this vector can be thought of as the sum of the lengths of the bars.
図8において、スナップショットの配置とシミュレーションの流れの関係を注視すると、次の2点に気付くことができる。一つは、一回目の割込みポイントの前に必ずスナップショットを配置する必要があるということである。このため、スナップショットの配置に関し、実質的研究対象は残りの13ポイントになるということである。もう一つは、割込み位置が密集した部分の前にスナップショットを配置した方がシミュレーションに要する総合計時間を短くすることが可能になるということである。 Looking closely at the relationship between the arrangement of snapshots and the flow of simulation in FIG. 8, the following two points can be noticed. One is that the snapshot must always be placed before the first interrupt point. For this reason, the remaining 13 points are the real subject of research regarding the arrangement of snapshots. The other is that arranging the snapshot before the part where the interrupt positions are concentrated can shorten the total total time required for the simulation.
以上に鑑み、スナップショット位置決定手段220の構成を第1から第5までの5つの実施形態のように構成することができる。先の例ではスナップショットの位置の数を14として説明したが、以下ではMポイントとする。第1の実施形態では、各割込位置より直前の位置であって他の割込位置に重ならないN点の位置から異なる位置のM点の組合せを選択する選択方法を全通りの数行う。図9においては、黒丸により示した割込み位置が存在する場合に、隣接する黒丸の間の数が(N-1)であり、最前の黒丸の前の位置が1つで、合計N点のスナップショット可能位置が存在する。スナップショット数はMに制限されているから、上記N点からM点を選択することができる。このM点の例示を、図9においては、下側に尖った三角形マーク1、2、3、4、・・・により示している。
In view of the above, the configuration of the snapshot position determining means 220 can be configured as in the first to fifth embodiments. In the previous example, the number of snapshot positions was 14, but in the following, it is assumed to be M points. In the first embodiment, a total number of selection methods are performed to select a combination of M points at different positions from N point positions that are positions immediately before each interrupt position and do not overlap with other interrupt positions. In FIG. 9, if there are interrupt positions indicated by black circles, the number between adjacent black circles is (N−1), and the position before the frontmost black circle is one, for a total of N points of snapping. There is a shot possible position. Since the number of snapshots is limited to M, M points can be selected from the above N points. An example of this point M is indicated by
更に、スナップショット位置決定手段220は、上記各選択方法において選択された全通りのM点の組合せを最適スナップショット位置候補として、上記ベクタ処理手段120による一連処理の時間の合計が最短となる組合せを求める。つまり、この最短となる組合せに係るM点を、最適スナップショット位置として決定する。この第1の実施形態の手法を「全通り法」と称する。 Furthermore, the snapshot position determining means 220 selects the combination of all the M points selected by each of the above selection methods as the optimum snapshot position candidate, and selects the combination that minimizes the total time for the series of processing by the vector processing means 120. Ask for That is, the point M associated with this shortest combination is determined as the optimum snapshot position. The method of this first embodiment is called the "all-way method".
「全通り法」では、時間を与えれば、確実に最短経路の正解を見つけることができる。しかし、割込み位置の数が多くなると、処理時間が指数関数的に増加し、運用が難しくなるという問題点がある。例えば、割込みが500箇所あるベクタにおいては、必ずスナップショットが必要となる最初の割込み位置とスナップショットが不要となる最後の割込み位置を対象外としても、これら2地点を除いた合計498箇所から例えば13ポイントを選択してスナップショットを配置することになる。この場合には、探索回数は49813=1.15×1035と天文学的数字となるから、1日処理しても終わらないことが分かる。このため、第1の実施形態による手法は割込み位置の数が少ない場合に採用することが好適である。 In the "all-path method", if time is given, the correct answer of the shortest path can be found with certainty. However, as the number of interrupt positions increases, the processing time increases exponentially, making operation difficult. For example, in a vector with 500 interrupts, even if the first interrupt position that always requires a snapshot and the last interrupt position that does not require a snapshot are excluded, from a total of 498 positions excluding these two points, for example 13 points will be selected to place the snapshot. In this case, the number of searches is 498 13 =1.15×10 35 , which is an astronomical figure, so it can be seen that the processing will not end even after one day. Therefore, it is preferable to adopt the method according to the first embodiment when the number of interrupt positions is small.
第2の実施形態では、スナップショット位置決定手段220は、各割込位置より直前の位置であって他の割込位置に重ならないN点を、全処理時間Mを均等分割した区間内に配置する。即ち、第1の割込み位置から最終の割込み位置までの時間を1/Mに分割した区間を1区間とし、この均等分割位置を最適スナップショット位置として決定するのである。各区間の広さ(時間幅)は等しいが、それぞれの区間に入る割込み位置の数は異なる。この手法をX均等法と称する。 In the second embodiment, the snapshot position determining means 220 arranges N points that are positions immediately before each interrupt position and do not overlap with other interrupt positions, within the interval equally dividing the total processing time M. do. That is, the interval obtained by dividing the time from the first interrupt position to the final interrupt position by 1/M is defined as one interval, and this equally divided position is determined as the optimum snapshot position. The width (time width) of each interval is the same, but the number of interrupt positions in each interval is different. This method is called the X equal method.
上記Mを14として説明すると、割込み発生期間を14等分してスナップショット位置を均等に配置する方法(図10)である。ここでも、割込み時間(割込み位置)を黒丸により示し、スナップショット位置を下側に尖った三角形マークにより示す。具体的には、最初の割込み時間をt0とし、最後の割込み時間をtendとしたときに、スナップショットの時間は、
一見バランス良く配置されるように思えるが、図11のような割込みポイントの密集度のバラつきが激しいベクタではうまく対応できないことがある。また、このX均等法により割り出されたスナップショットの配置には、図12に示すように、次の2つの問題がある。
問題1:密集している割込みの間に入ることがある。
問題2:割込み数が多い期間に入らないことがある。
結局、「全通り法」に比べて、計算量が1回のみで処理時間が短い反面、精度が悪いことが分かる。
At first glance, it seems that they are arranged in a well-balanced manner, but it may not be possible to cope well with a vector in which the density of interrupt points varies greatly as shown in FIG. 11 . In addition, as shown in FIG. 12, there are two problems with the arrangement of snapshots determined by this X equality method.
Problem 1: It can get stuck between busy interrupts.
Problem 2: It may not be possible to enter a period with a large number of interrupts.
As a result, it can be seen that the amount of calculation is only one time and the processing time is short, but the accuracy is low compared to the "all-pass method".
次の第3の実施形態では、スナップショット位置決定手段220は、各割込位置より直前の位置であって他の割込位置に重ならないN点を、1/Mずつの数に分割する位置を最適スナップショット位置として決定するものである。つまり、N点を1/Mとして、1つの区間に同じ数の割込み位置が含まれるようにする。従って、各区間の幅は異なることが多い。この手法をY均等法と称する。 In the next third embodiment, the snapshot position determining means 220 divides N points that are positions immediately before each interrupt position and do not overlap with other interrupt positions into 1/M points. is determined as the optimum snapshot position. That is, the N points are set to 1/M so that one section includes the same number of interrupt positions. Therefore, the width of each section is often different. This method is called the Y equal method.
上記Mを14として説明すると、割込み発生回数を14等分して、図13に示すように、スナップショットを均等に配置する方法である。単純に割込み数を14で割ったところの割込みポイントの直前にスナップショットを置くので、X均等法において説明した問題2は解決するものの、別の問題が浮上する。図11に示したベクタの如く割込みが発生するパターンに対し、本実施形態のY均等法を用いると、図14に示す2つの問題が確認された。
Assuming that M is 14, this is a method of equally dividing the number of interrupt occurrences by 14 and evenly arranging the snapshots as shown in FIG. Placing the snapshot just before the interrupt point, which is simply dividing the number of interrupts by 14, solves
問題1:割込み数の少ない長い期間に入らないことがある。
問題2:X均等法以上に密集している割込みの間に入りやすくなる。
結局、計算量はX均等法と同じく1回で、正確性を少し改善するものの、まだ精度が悪いという問題がある。
Problem 1: It may not enter a long period with few interrupts.
Problem 2: Easier to get between interrupts that are more dense than the X-equal method.
As a result, the amount of calculation is one time, like the X equal method, and although the accuracy is slightly improved, there is still the problem that the accuracy is poor.
次の第4の実施形態では、スナップショット位置決定手段220は、各割込位置より直前の位置であって他の割込位置に重ならないN点において、隣接する点の間隔が長い方から(M-1)組の隣接点を求める。上記のようにして求めた各(M-1)組の隣接点において、後の(M-1)点を最適スナップショット位置として決定する。最初のスナップショットの位置は、最初の割込み位置の直前とする。この手法を「傾き法」と称する。 In the next fourth embodiment, the snapshot position determining means 220 determines, at N points that are positions immediately before each interrupt position and do not overlap with other interrupt positions, from the point with the longest interval between adjacent points ( M-1) Find a set of neighboring points. In each (M−1) pair of adjacent points obtained as described above, the later (M−1) point is determined as the optimum snapshot position. The position of the first snapshot shall be just before the position of the first interrupt. This method is called the "tilt method".
上記Mを14として説明すると、隣接する割込みの間隔が長い割込み位置のペアを求め、長い順に13まで採用する方法である。具体的には、隣接した割込みの間の時間差を大きい順から13ポイント選択する。図15のように、割込み間隔順がΔt5>Δt9>Δt15>Δt2>・・・となった場合、t5,t9,t15,t2の直前に(各区間の割込み位置のペア中の後ろ側の割込み位置の直前に)スナップショット位置を置くことになる。 Assuming that M is 14, this is a method in which pairs of interrupt positions with long intervals between adjacent interrupts are obtained and up to 13 are adopted in descending order. Specifically, 13 points are selected in descending order of the time difference between adjacent interrupts. As shown in Fig. 15, when the order of interrupt intervals is Δt5>Δt9>Δt15>Δt2>..., immediately before t5, t9, t15, t2 (the rear interrupt in the pair of interrupt positions in each section (just before the position).
本実施形態によれば、大きい間隔のみ選択されるため、Y均等法の問題1と問題2は回避できると考えられる。しかし、図16のようなベクタの如く割込みが発生するパターンでは、やはり問題が1つ残っている。
問題1:個々の間隔がトップ13まで届かないが、比較的に長い期間があった場合に、この期間にスナップショット位置が配置されないことがある。
According to this embodiment, only large intervals are selected, so it is considered that
Problem 1: If there is a relatively long period of time where each interval does not reach the top 13, the snapshot position may not be placed during this period.
本実施形態は、時間差に注目することで、少ない計算量でX均等法にもY均等法にもあるような割込み位置が密集する領域にスナップショット位置が入ってしまう問題が解決された。しかし、時間差のみをパラメータとするため、全体のバランス感に欠ける場合が生じ、精度が上がらない原因となると考えられた。 In this embodiment, by focusing on the time difference, the problem that the snapshot position is included in the area where the interrupt positions are concentrated, which occurs in both the X equality method and the Y equality method, is solved with a small amount of calculation. However, since only the time difference is used as a parameter, there may be cases where the overall sense of balance is lacking, and this is thought to be the cause of the lack of accuracy.
次の第5の実施形態では、スナップショット位置決定手段220は、全ての割込み数に対応する長さをL1とし、ベクタの最初から第1の最適スナップショット位置までの距離をS0として、面積S0×L1を求め、ベクタの最初から第2の最適スナップショット位置までの距離をS1、全ての割込み数から第1の最適スナップショット位置を用いて行われる割込み数を引いた値に対応する長さをL2とし、面積(S1-S0)×L2を求め、ベクタの最初から第3の最適スナップショット位置までの距離をS2、全ての割込み数から第2の最適スナップショット位置を用いて行われる割込み数を引いた値に対応する長さをL3とし、面積(S2-S1)×L3を求め、・・・、ベクタの最初から第Mの最適スナップショット位置までの距離をSM、全ての割込み数から第Mの最適スナップショット位置を用いて行われる割込み数を引いた値に対応する長さをLMとし、面積(SM-SM-1)×LMを求め、上記面積の加算結果が最大となる各最適スナップショット位置を求める「面積法」を実行する。 In the next fifth embodiment, the snapshot position determination means 220 sets the length corresponding to all interrupt numbers to L1, the distance from the beginning of the vector to the first optimum snapshot position to S0 , and the area Find S 0 ×L1, the distance from the beginning of the vector to the second best snapshot location corresponds to S 1 , the total number of interrupts minus the number of interrupts made using the first best snapshot location. L2 is the length to be taken, area (S 1 −S 0 )×L2 is obtained, S 2 is the distance from the beginning of the vector to the third optimal snapshot position, and the second optimal snapshot position is obtained from all interrupt numbers. Let L3 be the length corresponding to the value obtained by subtracting the number of interrupts performed using , and obtain the area (S 2 -S 1 )×L3, Let S M be the distance, LM be the length corresponding to the number of all interrupts minus the number of interrupts made using the Mth best snapshot location, and let area (S M −S M−1 )×LM be Then, the "area method" is performed to find each optimum snapshot position where the addition result of the above areas is maximum.
上記の手法について、図を用いながら説明する。図17において、ベクタのスタートから処理P1が行われ、第1番目の割込み位置が時刻t0に存在するものとし、この時刻t0の直前に第1の最適スナップショット位置S0が配置される。第1の最適スナップショット位置S0から右側に示されている線分は割込み発生までのシミュレーション時間を示し、その線分数は割込み処理の数を示すことになる。従って、図17におけるL1は全ての割込み数に対応する長さであると言える。まず、スナップショット位置決定手段220は、面積S0×L1を求める。 The above method will be described with reference to the drawings. In FIG. 17, processing P1 is performed from the start of the vector, the first interrupt position is at time t0 , and the first optimum snapshot position S0 is placed just before this time t0 . . The line segment shown on the right side from the first optimum snapshot position S0 indicates the simulation time until the occurrence of an interrupt, and the number of line segments indicates the number of interrupt processes. Therefore, it can be said that L1 in FIG. 17 has a length corresponding to all interrupt numbers. First, the snapshot position determining means 220 obtains the area S 0 ×L1.
次に、第2の最適スナップショット位置S1が図18に示すように決まると、ベクタの最初から第2の最適スナップショット位置までの距離をS1-S0とすることができる。また、第2の最適スナップショット位置S1を用いて行われる割込み数に対応する長さは、図18のL2となる。そこで、スナップショット位置決定手段220は、面積(S1-S0)×L2を求める。 Then, once the second best snapshot location S 1 is determined as shown in FIG. 18, the distance from the beginning of the vector to the second best snapshot location can be S 1 -S 0 . Also, the length corresponding to the number of interrupts performed using the second optimum snapshot position S1 is L2 in FIG. Therefore, the snapshot position determining means 220 obtains the area (S 1 -S 0 )×L2.
次に、第3の最適スナップショット位置S2が図19に示すように決まると、ベクタの最初から第3の最適スナップショット位置までの距離をS2-S0とすることができる。また、第3の最適スナップショット位置S2を用いて行われる割込み数に対応する長さは、図19のL3となる。そこで、スナップショット位置決定手段220は、面積(S2-S1)×L3を求める。 Then, once the third optimal snapshot location S 2 is determined as shown in FIG. 19, the distance from the beginning of the vector to the third optimal snapshot location can be S 2 -S 0 . Also, the length corresponding to the number of interrupts performed using the third optimum snapshot position S2 is L3 in FIG. Therefore, the snapshot position determining means 220 obtains the area (S 2 -S 1 )×L3.
以下同様にして次々に面積を求めて行く。そして、第Mの最適スナップショット位置SMが図20に示すように決まると、ベクタの最初から第Mの最適スナップショット位置までの距離をSM-S0とすることができる。また、第Mの最適スナップショット位置SMを用いて行われる割込み数に対応する長さは、図20のLMとなる。そこで、スナップショット位置決定手段220は、面積(SM-SM-1)×LMを求める。 Areas are obtained one after another in the same manner. Then, when the Mth optimum snapshot position S M is determined as shown in FIG. 20, the distance from the beginning of the vector to the Mth optimum snapshot position can be S M −S 0 . Also, the length corresponding to the number of interrupts performed using the M-th optimum snapshot position S M is LM in FIG. Therefore, the snapshot position determining means 220 obtains the area (S M −S M−1 )×LM.
スナップショット位置決定手段220は、上記で求めた面積の加算結果が最大となる各最適スナップショット位置を求める。この場合、第1の最適スナップショット位置S0は最初の割込み位置の直前であり、固定であるから面積S0×L1は変動しない。第2の最適スナップショット位置S1は第2番目から第(N-1)番目の割込み位置から選択できるので、面積(S1-S0)×L2が最大となる割込み位置を選択する。 The snapshot position determining means 220 obtains each optimum snapshot position at which the sum of the areas obtained above is maximized. In this case, the first optimal snapshot position S 0 is just before the first interrupt position, and since it is fixed, the area S 0 ×L1 does not change. Since the second optimum snapshot location S 1 can be selected from the 2nd to (N-1)th interrupt locations, the interrupt location that maximizes the area (S 1 -S 0 )×L2 is selected.
次の第2の最適スナップショット位置S2についても、幾つかの割込み位置から選択できるので、面積(S2-S1)×L3が最大となる割込み位置を選択する。以下同様に選択を行うことになる。 Since several interrupt positions can be selected for the second optimum snapshot position S 2 as well, the interrupt position with the maximum area (S 2 -S 1 )×L3 is selected. The following selections are made in the same way.
本実施形態である「面積法」は、以下のような計算によっても実現できる。割込み位置がNポイントあるとして、それぞれの発生時刻をt0,t1,t2,・・・,tN-1とする。t0の直前にスナップショット位置を置くので、この位置を図17に示すようにS0=0とする。図18に示すように、t1,t2,・・・,tN-2の中から第2番目のスナップショット位置を選択する。この選択に当たっては、(tn-t0)×(N-1-n)が最大値となるn(1≦n≦N-2)を選択し、このtnの位置を第2番目のスナップショット位置S1とする。 The "area method" of this embodiment can also be realized by the following calculations. Assuming that there are N interrupt positions, their occurrence times are t 0 , t 1 , t 2 , . . . , t N-1 . Since we put the snapshot position just before t 0 , let this position be S0=0 as shown in FIG. As shown in FIG. 18, select the second snapshot position among t 1 , t 2 , . . . , t N-2 . For this selection, select n (1≤n≤N-2) where (t n -t 0 ) x (N-1-n) is the maximum value, and position this t n at the second snap. Let the shot position be S1 .
次に、図19に示すように、t1,・・・,tS1-1,tS1+1,・・・,tN-2の中から第3番目のスナップショット位置を選択する。この選択に当たっては、(tn-t0)×(S1-n)(1≦n≦S1-1の時)、(tn-tS1)×(N-1-n)(S1+1≦n≦N-2の時)から値が最大値となるnを選択し、このtnの位置を第3番目のスナップショット位置S2とする。ここでは更に、S0<S1<S2となるように並べ替えを行う。 Next, as shown in FIG. 19, the third snapshot position is selected from t 1 , . . . , t S1-1 , t S1+1 , . In this selection, (t n - t 0 ) x (S 1 - n) (when 1≤n≤S 1 -1), (t n - t S1 ) x (N-1-n) (S 1 +1 ≤ n ≤ N-2), and the position of this t n is taken as the third snapshot position S 2 . Further, here, rearrangement is performed so as to satisfy S 0 <S 1 <S 2 .
次に、図20に示すように、t1,・・・,tS1-1,tS1+1,・・・,tS2-1,tS2+1,・・・,tN-2の中から第4番目のスナップショット位置を選択する。この選択に当たっては、(tn-t0)×(S1-n)(1≦n≦S1-1の時)、(tn-tS1)×(S2-n)(S1+1≦n≦S2-1の時)、(tn-tS2)×(N-1-n)(S2+1≦n≦N-2の時)値が最大値となるnを選択し、このtnの位置を第4番目のスナップショット位置S3とする。ここでは更に、S0<S1<S2<S3となるように並べ替えを行う。 Next, as shown in FIG. 20, t 1 , . . . , t S1-1 , t S1 +1 , . Select the 4th snapshot location in the middle. In this selection, (t n - t 0 ) x (S 1 - n) (when 1 ≤ n ≤ S 1 - 1), (t n - t S1 ) x (S 2 - n) (S 1 + 1 ≤ n ≤ S 2 -1), (t n - t S2 ) x (N-1-n) (when S 2 + 1 ≤ n ≤ N-2) select n that maximizes the value, The position of this t n is defined as the fourth snapshot position S 3 . Further, here, rearrangement is performed so that S 0 <S 1 <S 2 <S 3 .
上記と同様の処理を第14番目のスナップショット位置まで行う。このようにして14個のスナップショットを一つずつ割り出すことができる。また、先に述べたように、多くのシミュレータに存在するいくつかの問題や制限における「その3」に記載の通り、ある一定の面積以下になればスナップショットの取得と呼出し時間が時間短縮の効果に勝ることになり、逆効果となる事態が生じるので、スナップショットの制限回数の最大値となる前に処理を中止しても良い。即ち、最大値が14回であるときに、必ずしも14回まで計算しなくとも良い。
The same processing as above is performed up to the 14th snapshot position. In this way, 14 snapshots can be determined one by one. Also, as mentioned earlier, as described in "
スナップショットの制限回数が14の場合、面積法の利害得失を考察する。計算量は最大約14×(N―2)回で、前述のX均等法やY均等法より少し多いが、無視できるレベルの処理時間と考えられる。全通り法ほど完璧な最速解にならない可能性はあるが、割込み数が多ければ多いほど、限りなく最速ルートに近づけるアルゴリズムと考えられる。前述4つの手法の各問題は面積法によって全て解決でき、さらに、もう一つの大きなメリットは、他の手法で議論の余地すらなかった計算処理の中止をすることができることである。 When the number of snapshots is limited to 14, the advantages and disadvantages of the area method are considered. The amount of calculation is about 14×(N−2) times at maximum, which is slightly larger than the above-described X equality method and Y equality method, but the processing time is considered to be negligible. Although there is a possibility that the fastest solution will not be as perfect as the all-path method, the more interrupts there are, the closer to the fastest route the algorithm can be. All the problems of the above four methods can be solved by the area method, and another great merit is that it is possible to stop the calculation process, which was not even controversial with the other methods.
上記の5つの手法について総合的に比較をしてみると、表3に示すように、面積法が時間短縮効果、処理時間、計算処理の中止など全てにおいて有利であることが分かる。スナップショットの効果を一番引き出せると考えられるので、スナップショット位置決定手段220が面積法を採用することが好適である。
また、スナップショット位置決定手段220に、上記5つの手法の構成を全て採用した構成とし、割込み数やスナップショット位置数の制限値などにより、適宜1つの手法を採用するようにしても良い。この場合、どの手法を選択するかをオペレータが指示するように指示入力手段を設けても良いが、割込み数やスナップショット位置数を入力すると、これらの数値に基づき自動的に手法を決定するテーブルを備えさせディジタル検証支援装置が自動で手法を決定するようにしても良い。 Also, the snapshot position determining means 220 may adopt a configuration that employs all of the configurations of the above five methods, and one method may be appropriately adopted depending on the number of interrupts, the limit value of the number of snapshot positions, and the like. In this case, an instruction input means may be provided so that the operator can instruct which method to select. may be provided so that the digital verification support device automatically determines the method.
面積法によるスナップショットを用いてフラッシュメモりにおけるFFh インタラプト検証で効果確認を行った。その効果は、主に時間と品質の2つの観点から評価する。
時間:割込位置データベース230の内容が同じデータベース、同等なシミュレーションリソース環境という条件で、従来方式と本実施形態のスナップショット方式を別々に実行して、比較した結果を表4に示す。
Time: Table 4 shows the results of a comparison between the conventional method and the snapshot method of this embodiment separately executed under the condition that the content of the interrupt
各ベクタのシミュレーション時間の合計時間は、従来方式に比べて93.4%削減と、50並列での実測時間は約92.1%削減することができた。なお、スナップショットの位置を確定する面積法の計算処理は瞬時にできたため、無視して良いと考えられた。これにより、2週間連続実行していた検証が、1日弱で完了できるようになった。 The total simulation time for each vector was reduced by 93.4% compared to the conventional method, and the actual measurement time for 50 parallels was reduced by approximately 92.1%. It should be noted that the calculation processing of the area method for determining the position of the snapshot could be done instantaneously, so it was considered to be negligible. As a result, the verification that had been running continuously for two weeks can now be completed in less than a day.
品質:実行した結果を見ると、従来方式に比べて、発生エラーの種類(IDREAD, SVA, BOOST, MCOND, tRST, Stuckなど)も件数も一致することを確認した。検証品質に差異がないことを示している。 Quality: Looking at the execution results, it was confirmed that the types of errors (IDREAD, SVA, BOOST, MCOND, tRST, Stuck, etc.) and the number of occurrences matched compared to the conventional method. It shows no difference in verification quality.
100 シミュレータ
110 スナップショット情報取得保持手段
120 ベクタ処理手段
130 ベクタファイル
200 ディジタル検証支援装置
210 割込位置検出手段
220 スナップショット位置決定手段
230 割込位置データベース
REFERENCE SIGNS
Claims (12)
この割込位置検出手段により検出された割込位置に基づきスナップショットを実行すべき所定数の最適スナップショット位置を決定するスナップショット位置決定手段と
を具備するディジタル検証支援装置であって、
前記シミュレータに、
前記最適スナップショット位置において前記シミュレータが現状の復元に用いるスナップショット情報を取得し保持するスナップショット情報取得保持手段と、
ベクタを先頭から実行して未処理の割込位置へ到ると、当該割込位置に対応する割込処理を実行して割込処理が終了となると、この割込位置に対応する最適スナップショット位置のスナップショット情報に基づき復元を行うまでの一連処理を実行し、当該最適スナップショット位置から前記ベクタの実行へと進むベクタ処理手段と
が含まれており、
前記スナップショット情報取得保持手段と前記ベクタ処理手段の処理に要する割込位置情報と最適スナップショット位置情報とを提供することを特徴とするディジタル検証支援装置。 an interrupt position detecting means for detecting an interrupt position in a vector given to a simulator performing digital verification;
snapshot position determination means for determining a predetermined number of optimal snapshot positions at which snapshots should be executed based on the interrupt positions detected by the interrupt position detection means, wherein:
to the simulator,
snapshot information acquiring and holding means for acquiring and holding snapshot information used by the simulator for restoring the current state at the optimum snapshot position;
When the vector is executed from the beginning and reaches an unprocessed interrupt position, when the interrupt processing corresponding to the interrupt position is executed and the interrupt processing ends, an optimum snapshot corresponding to this interrupt position is generated. vector processing means for executing a series of processes up to restoration based on the snapshot information of the position, and proceeding from the optimum snapshot position to the execution of the vector,
A digital verification support device that provides interrupt position information and optimum snapshot position information required for processing of the snapshot information acquisition and holding means and the vector processing means.
ディジタル検証を行うシミュレータに与えるベクタにおける割込位置を検出する割込位置検出手段、
この割込位置検出手段により検出された割込位置に基づきスナップショットを実行すべき所定数の最適スナップショット位置を決定するスナップショット位置決定手段
として機能させるディジタル検証支援用プログラムであって、
前記シミュレータに含まれる、
前記最適スナップショット位置において前記シミュレータが現状の復元に用いるスナップショット情報を取得し保持するスナップショット情報取得保持手段と、
ベクタを先頭から実行して未処理の割込位置へ到ると、当該割込位置に対応する割込処理を実行して割込処理が終了となると、この割込位置に対応する最適スナップショット位置のスナップショット情報に基づき復元を行うまでの一連処理を実行し、当該最適スナップショット位置から前記ベクタの実行へと進むベクタ処理手段と
に対し、処理に要する割込位置情報と最適スナップショット位置情報とを提供することを特徴とするディジタル検証支援用プログラム。 The computer of the digital verification support device,
Interrupt position detection means for detecting the interrupt position in the vector given to the simulator performing digital verification;
A digital verification support program functioning as snapshot position determination means for determining a predetermined number of optimum snapshot positions at which snapshots should be executed based on the interrupt positions detected by the interrupt position detection means,
included in said simulator,
snapshot information acquiring and holding means for acquiring and holding snapshot information used by the simulator for restoring the current state at the optimum snapshot position;
When the vector is executed from the beginning and reaches an unprocessed interrupt position, when the interrupt processing corresponding to the interrupt position is executed and the interrupt processing ends, an optimum snapshot corresponding to this interrupt position is generated. vector processing means for executing a series of processes up to restoration based on position snapshot information, and proceeding from the optimum snapshot position to execution of the vector, interrupt position information required for processing and optimum snapshot position; A digital verification support program characterized by providing information and.
Using the computer as the snapshot position determining means, the length corresponding to all interrupt numbers is L1, the distance from the beginning of the vector to the first optimum snapshot position is S0 , and the area S0 x L1 is obtained. , the distance from the beginning of the vector to the second best snapshot location is S 1 , and the length corresponding to the number of all interrupts minus the number of interrupts made using the first best snapshot location is L2. , the area (S 1 −S 0 )×L2, the distance from the beginning of the vector to the third optimal snapshot location is S 2 , and the interrupt performed using the second optimal snapshot location from the total number of interrupts Let L3 be the length corresponding to the subtracted value, find the area (S 2 −S 1 )× L3 , . LM is the length corresponding to the value obtained by subtracting the number of interrupts performed using the M-th optimum snapshot position from the number of interrupts, and the area (S M −SM −1 )×LM is obtained, and the above areas are added. 12. A program for supporting digital verification according to any one of claims 7 to 11, characterized in that it functions to execute an area method for finding each optimum snapshot position that maximizes the result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018142856A JP7180043B2 (en) | 2018-07-30 | 2018-07-30 | Digital verification support device and digital verification support program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018142856A JP7180043B2 (en) | 2018-07-30 | 2018-07-30 | Digital verification support device and digital verification support program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020021173A JP2020021173A (en) | 2020-02-06 |
JP7180043B2 true JP7180043B2 (en) | 2022-11-30 |
Family
ID=69589837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018142856A Active JP7180043B2 (en) | 2018-07-30 | 2018-07-30 | Digital verification support device and digital verification support program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7180043B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020349A (en) | 1998-07-06 | 2000-01-21 | Toshiba Corp | Device and method for supporting program development and medium recording program for program development support |
US20060155525A1 (en) | 2005-01-10 | 2006-07-13 | Aguilar Maximino Jr | System and method for improved software simulation using a plurality of simulator checkpoints |
JP2010102372A (en) | 2008-10-21 | 2010-05-06 | Toyota Motor Corp | Data processor, verification system, data processor verification method |
JP2010531000A (en) | 2007-05-09 | 2010-09-16 | シノプシス インコーポレイテッド | Circuit emulation input and delay input multiplexing |
-
2018
- 2018-07-30 JP JP2018142856A patent/JP7180043B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020349A (en) | 1998-07-06 | 2000-01-21 | Toshiba Corp | Device and method for supporting program development and medium recording program for program development support |
US20060155525A1 (en) | 2005-01-10 | 2006-07-13 | Aguilar Maximino Jr | System and method for improved software simulation using a plurality of simulator checkpoints |
JP2010531000A (en) | 2007-05-09 | 2010-09-16 | シノプシス インコーポレイテッド | Circuit emulation input and delay input multiplexing |
JP2010102372A (en) | 2008-10-21 | 2010-05-06 | Toyota Motor Corp | Data processor, verification system, data processor verification method |
Also Published As
Publication number | Publication date |
---|---|
JP2020021173A (en) | 2020-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102025556B1 (en) | Processing apparatus, trace unit and diagnostic apparatus | |
US10713042B2 (en) | Arithmetic processing device and control method for arithmetic processing device | |
EP3685258B1 (en) | Ranking of software code parts | |
CN104021072A (en) | Machine and methods for evaluating failing software programs | |
US20210125102A1 (en) | Information processing system, information processing apparatus, and information processing program | |
KR102013657B1 (en) | Apparatus for statically analyzing assembly code including assoxiated multi files | |
JP2018160191A (en) | Hardware test device and hardware test method | |
JP7180043B2 (en) | Digital verification support device and digital verification support program | |
CN109241042B (en) | Data processing method and device and electronic equipment | |
US9411014B2 (en) | Reordering or removal of test patterns for detecting faults in integrated circuit | |
CN111078480B (en) | Exception recovery method and server | |
CN115827636B (en) | Method for storing and reading simulation data of logic system design from waveform database | |
CN110706108A (en) | Method and apparatus for concurrently executing transactions in a blockchain | |
CN116009889A (en) | Deep learning model deployment method and device, electronic equipment and storage medium | |
CN107423140B (en) | Return code identification method and device | |
US11757741B2 (en) | Demand prediction apparatus, demand prediction method and program for predicting a demand of a path on a network using selected trend patterns | |
CN115421965A (en) | Consistency checking method and device, electronic equipment and storage medium | |
JP6512032B2 (en) | Stub target determination apparatus, method, and program | |
JP4900680B2 (en) | Semiconductor memory test equipment | |
US11281458B2 (en) | Evaluation of developer organizations | |
CN109783580A (en) | Method of data synchronization and device | |
JP6949440B2 (en) | Vector generator and vector generator program | |
JP2006202102A (en) | Simulation apparatus | |
WO2021019634A1 (en) | Estimation apparatus, estimation method, and non-transitory computer readable medium | |
CN118113590A (en) | Exception handling method, device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220603 |
|
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: 20221018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7180043 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |