JP2014132403A - Verification support device and verification support method - Google Patents
Verification support device and verification support method Download PDFInfo
- Publication number
- JP2014132403A JP2014132403A JP2013000412A JP2013000412A JP2014132403A JP 2014132403 A JP2014132403 A JP 2014132403A JP 2013000412 A JP2013000412 A JP 2013000412A JP 2013000412 A JP2013000412 A JP 2013000412A JP 2014132403 A JP2014132403 A JP 2014132403A
- Authority
- JP
- Japan
- Prior art keywords
- flip
- flop
- condition
- coverage
- logic
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、検証支援装置および検証支援方法に係り、特にディジタル回路設計における検証支援装置および検証支援方法に関する。 The present invention relates to a verification support apparatus and a verification support method, and more particularly to a verification support apparatus and a verification support method in digital circuit design.
ディジタル回路の検証において、実行すべきテストパターンを十分に実行したか否かを評価する指標として、カバレッジという考え方がある。カバレッジは、元来ソフトウェアプログラムを対象として考案された指標であるが、論理合成技術の実用化に伴って、ディジタル回路をハードウェア記述言語によるプログラミングでソフトウェアライクに設計するに至り、現在では、ディジタル回路設計における検証の分野においてもカバレッジが一般的となってきている。 In verification of a digital circuit, there is a concept of coverage as an index for evaluating whether or not a test pattern to be executed is sufficiently executed. Coverage is an index originally designed for software programs, but with the practical application of logic synthesis technology, digital circuits have been designed in a software-like manner by programming in a hardware description language. Coverage has also become common in the field of verification in circuit design.
ディジタル回路のプログラミングに用いられるハードウェア記述言語は、ソフトウェア設計に用いられる逐次実行型の記述言語とは大きく性格が異なる。ディジタル回路の記述には、一般的にRTL(Register Transfer Level)と呼ばれる記述言語が用いられる。ソフトウェアのプログラミング言語が逐次実行型の動作記述であるのに対し、RTLはフリップフロップ(以降、FFと表記する)を中心として、回路の接続関係を表現したものであり、並列に動作する。したがって、これらの性格の相違故に、ディジタル回路の検証においては、ソフトウェアの検証では考慮する必要の無かった注意が必要である。 A hardware description language used for programming digital circuits is significantly different from a sequential execution description language used for software design. A description language generally called RTL (Register Transfer Level) is used to describe a digital circuit. Whereas the software programming language is a sequential execution type operation description, the RTL expresses the connection relationship of circuits with a flip-flop (hereinafter referred to as FF) as the center, and operates in parallel. Therefore, due to the difference between these characteristics, in the verification of the digital circuit, attention that should not be considered in the verification of the software is necessary.
本技術分野の背景技術として、特許文献1がある。特許文献1は、前述したハードウェア・ソフトウェアの性格の相違に対して、ハードウェア特有の並列動作性に着目し、これによって発生し得る競合状態を想定した回路構成が論理シミュレーションによってどれだけ活性化されたかを、カバレッジとして測定する技術を開示する。
As a background art of this technical field, there is
非特許文献1にはカバレッジの簡単な解説が記載されている。また、非特許文献2は、良く知られるカバレッジ基準である、ステートメント・カバレッジ、ブランチ・カバレッジ等の他、様々な既存のカバレッジ基準を紹介している。
Non-Patent
本発明は、上述した記述言語の性格の相違に対して、特許文献1とは異なった観点で、カバレッジを測定する。ハードウェア記述言語は、FFを中心として記述するものである。それゆえ、ハードウェア記述言語によってプログラミングされるディジタル回路の検証においても、本来は、FFを中心としたカバレッジ基準、すなわち、FFの動作の網羅率を測るカバレッジ基準が必要である。ところが、従来のディジタル回路検証には、そのようなカバレッジ基準が存在しなかった。このため、FFの動作に対する網羅的な検証を行うことは難しく、この点において、FFを中心とした配線記述のプログラムを対象とする観点を持たないソフトウェアのカバレッジ基準のみでは、たとえ100%のカバレッジを達成したとしても、依然として検証漏れを発生させる危険があった。
The present invention measures the coverage from a viewpoint different from that of
上述した検証漏れを発生させないためには、システムを構成する大規模・複雑な論理において、回路中に多用されるFF一つ一つにつき、各々を中心とした全ての動作条件を漏れなく把握する必要がある。しかし、その数の多さと条件の複雑さから、人間がこれを把握することは、現実的に不可能である。また、これらの条件を人手で抽出することは、極めて困難な状況にある。 In order to prevent the above-mentioned verification failures from occurring, in the large-scale and complex logic that constitutes the system, for each FF frequently used in the circuit, grasp all the operating conditions centering on each one without omission There is a need. However, due to the large number and complexity of conditions, it is practically impossible for humans to grasp this. In addition, it is extremely difficult to manually extract these conditions.
本発明は、上述した状況を鑑みて、為されたものである。すなわち、本発明の目的は、FFの動作に注目した網羅的検証を行うための検証支援装置および検証支援方法の提供である。 The present invention has been made in view of the above-described situation. That is, an object of the present invention is to provide a verification support apparatus and a verification support method for performing comprehensive verification focusing on the operation of the FF.
上述した課題は、 論理回路中のフリップフロップの動作条件を算出するフリップフロップ動作条件算出部と、フリップフロップの各動作条件を表示させるフリップフロップ動作仕様表示指示部と、論理回路プログラムを論理シミュレーションし、フリップフロップの各動作条件の実行成否を監視するシミュレーション部と、条件監視によって得られたモニタ情報により、各フリップフロップ動作が活性化されたか否かを集計するカバレッジ集計部と、カバレッジ集計結果を表示させるカバレッジ表示指示部と、フリップフロップ動作仕様表示部とカバレッジ表示指示部とからの指示により情報出力を行う表示部と、を含む検証支援装置により、達成できる。 The above-mentioned problems are the logic simulation of the flip-flop operation condition calculation unit that calculates the operation condition of the flip-flop in the logic circuit, the flip-flop operation specification display instruction unit that displays each operation condition of the flip-flop, and the logic circuit program. A simulation unit that monitors the success or failure of each operation condition of the flip-flop, a coverage totaling unit that totals whether or not each flip-flop operation is activated based on the monitor information obtained by the condition monitoring, and a coverage totalization result This can be achieved by a verification support apparatus including a coverage display instruction unit to be displayed, and a display unit that outputs information according to instructions from the flip-flop operation specification display unit and the coverage display instruction unit.
また、ハードウェア記述言語により記述された論理回路プログラムを受け付けるステップと、論理回路プログラムから、フリップフロップを中心としたロジックコーンを表す論理式の算出を行うステップと、論理式からフリップフロップの遷移表を作成するステップと、遷移表に基づき、フリップフロップの動作の入力条件の算出を行うステップと、を含む検証支援方法により、達成できる。 A step of receiving a logic circuit program described in a hardware description language; a step of calculating a logical expression representing a logic cone centered on the flip-flop from the logic circuit program; and a transition table of the flip-flop from the logical expression. And a step of calculating the input condition of the flip-flop operation based on the transition table.
本発明に依れば、ハードウェア記述言語によって記述されるディジタル回路において、本来留意すべき、FFの動作に注目した客観的な検証品質指標を得ることができる。 According to the present invention, it is possible to obtain an objective verification quality index that pays attention to the FF operation, which should be noted in a digital circuit described in a hardware description language.
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings using examples. The same reference numerals are assigned to substantially the same parts, and the description will not be repeated.
図1を参照して、検証支援装置のハードウェア構成を説明する。図1において、検証支援装置100は、メモリ110と、CPU120と、記憶装置130と、入力装置140と、出力装置150と、バス160とから構成される。
The hardware configuration of the verification support apparatus will be described with reference to FIG. In FIG. 1, the
メモリ110は、CPU120が実行するプログラムを記憶する。CPU120は、メモリ110が記憶するプログラムを実行することにより、論理シミュレーションと、FF動作仕様算出およびカバレッジ情報算出を行う。記憶装置130は、HD(ハードディスク)等の補助記憶装置であり、論理回路プログラム、テストパターン、FF動作仕様算出結果、カバレッジ情報算出結果等を記憶する。入力装置140は、論理回路プログラムおよびテストパターンを読み込む。出力装置150は、カバレッジの出力結果を表示する。バス160はメモリ110と、CPU120と、記憶装置130と、入力装置140と、出力装置150とを相互接続する。
The
図2を参照して、検証支援装置の機能的構成を説明する。図2において、検証支援装置100は、FF動作条件算出部201と、FF動作仕様表示指示部202と、シミュレーション部203と、カバレッジ集計部204と、カバレッジ表示指示部205と、表示部206とから構成される。
The functional configuration of the verification support apparatus will be described with reference to FIG. In FIG. 2, the
FF動作条件算出部201は、論理回路プログラム207を取得し、論理回路中の全FFに対し、各FF動作の入力条件情報209の算出を行う。ここで、論理回路プログラム207とは、検証対象となる論理回路をハードウェア記述言語で記述したプログラムである。FF動作仕様表示指示部202は、FF動作条件算出部201が算出した、各FF動作の入力条件情報209を表示部206に出力させる処理を行う。
The FF operation
シミュレーション部203は、FF動作条件算出部201が算出した、各FF動作の入力条件情報209を取得し、論理シミュレーションによって、各々の条件が実行されたか否かの監視を行う。カバレッジ集計部204は、シミュレーション部203の条件監視によって得られるモニタ情報を取得し、各条件が実行されたか否か、すなわち、各FF動作が活性化されたか否かを、カバレッジ集計結果210として集計する。カバレッジ表示指示部205は、カバレッジ集計部204が集計した、カバレッジ集計結果210を表示部206に出力させる処理を行う。表示部206は、各FF動作の入力条件情報209およびカバレッジ集計結果210を表示する。
The
図3を参照して、FF動作条件算出部の処理を説明する。図3において、FF動作条件算出部201は、論理回路プログラムを読込む(S31)。FF動作条件算出部201は、全てのFFの動作条件の算出が完了したか否かを判定する(S32)。検証対象の論理回路にFFが含まれなかった場合(YES)、FF動作条件算出部201は、処理は終了とする。
With reference to FIG. 3, the processing of the FF operation condition calculation unit will be described. In FIG. 3, the FF operation
ステップ32において、全てのFFの動作条件の算出が完了していなければ(NO)、FF動作条件算出部201は、未処理のFFの中から、今回、対象とするFFを1つ決定する(S33)。FF動作条件算出部201は、入力された論理回路プログラム207から、対象のFFのFF論理式を算出する(S34)。FF動作条件算出部201は、算出したFF論理式を、FF遷移表に変換する(S35)。FF動作条件算出部201は、得られたFF遷移表に基づき、各FF動作の入力条件の算出を行う(S36)。FF動作条件算出部201は、得られた各FF動作の入力条件情報を、記憶装置130に記憶し(S37)、ステップ32に戻る。
In
ステップ34のFF論理式算出について、以下、さらに詳細に説明する。論理回路は、FF一つ一つを中心としたロジックコーンと呼ばれる論理構造グループに分割して考えることができる。ロジックコーンは、FF論理式生成に用いるものであり、この抽出方法について説明する。
The calculation of the FF logical expression in
図4を参照して、ロジックコーンの概念を説明する。図4において、ロジックコーン450は、FF440の出力を頂点とし、入力ポート410またはFF440の出力の組を底面とした円錐型の論理構造グループである。ロジックコーン450は、FF440の入力側に存在する組合せ論理回路430の接続関係を、他のFFの出力、または自分自身のFFの出力からの回帰、または入力ポートに辿り着くまで遡ることで抽出できる。論理回路は、各ロジックコーン450とその接続を指定することにより、一意に表すことが可能である。
The concept of the logic cone will be described with reference to FIG. In FIG. 4, a
図5を参照して、単一のロジックコーンの簡単な抽象図を説明する。図5において、ロジックコーン450は、FF440を頂点とする組合せ論理回路430から構成される。組合せ論理回路430は、単純に入力a、b、cのみによって出力Qnが決定されるので、これを論理関数fで(式1)のように表現することができる。
Qn=f(a,b,c) …(式1)
図6を参照して、図5のロジックコーンの具体的な回路を説明する。図6において、ロジックコーン450は、NOTゲート610と、ANDゲート620と、ORゲート630と、FF640とで構成されている。この回路おいて、(式1)の論理関数fは、(式2)で表される。
Qn=!a&(b|c) …(式2)
ここで、「!」は、論理否定を表す論理記号でありNOTゲート610を指す。「&」は、論理積を表す論理記号であり、ANDゲート620を指す。「|」は、論理和を表す論理記号でありORゲート630を指す。また、「b」、「!a」の変数と変数の否定のことをリテラルと呼ぶ。
With reference to FIG. 5, a simple abstract view of a single logic cone will be described. In FIG. 5, the
Qn = f (a, b, c) (Formula 1)
A specific circuit of the logic cone of FIG. 5 will be described with reference to FIG. In FIG. 6, the
Qn =! a & (b | c) (Formula 2)
Here, “!” Is a logical symbol representing logical negation and indicates the
図7を参照して、現在の状態を保持する動作または現在の状態を反転した値に更新する動作を持つロジックコーンを説明する。図7において、ロジックコーン450Aは、FF440からの自己回帰を持つ。FF440が現在の状態を保持する動作または現在の状態を反転した値に更新する動作を持つ場合、必ずFF440の出力Qn−1が入力側の組合せ論理回路430の入力に回帰する論理構成となる。ここで、組合せ論理回路430の出力Qnを論理関数fで表現すると、(式3)となる。
Qn=f(a,b,c,Qn−1) …(式3)
図8と(式4)を参照して、論理式化した回路記述から、各FF動作とそれぞれの動作が成立するための条件式を算出できる理由を説明する。
Qn
=f1(a,b,c)|f2(a,b,c)&Qn-1|f3(a,b,c)&(!Qn-1)…(式4)
(式4)は、(式3)からQn−1および!Qn−1のリテラルを括り出した論理式である。f2は、Qn−1に対する係数となる論理式である。f3は、!Qn−1に対する係数となる論理式である。f1は、Qn−1および!Qn−1のリテラルを括り出した結果、余りとなる論理式である。f1、f2、f3は、いずれも、現在の入力信号a、b、cのみによって0か1かの論理値が一意に決定される論理式である。また、図5で表されるような、FFの自己回帰を持たないロジックコーンも、(式4)において、f2およびf3の論理値が常に0である論理であるとすることにより、表現できる。すなわち、(式4)は、どのようなロジックコーンであっても、必ず表現することが可能である。したがって、(式4)によれば、どのようなロジックコーンであっても、各FFの動作は、現在の入力条件のみから、計算によって求めることができる。
With reference to FIG. 7, a logic cone having an operation of maintaining the current state or an operation of updating the current state to an inverted value will be described. In FIG. 7, the
Qn = f (a, b, c, Qn-1) (Formula 3)
With reference to FIG. 8 and (Equation 4), the reason why each FF operation and a conditional expression for establishing each operation can be calculated from the logicalized circuit description will be described.
Qn
= F1 (a, b, c) | f2 (a, b, c) & Qn-1 | f3 (a, b, c) & (! Qn-1) (Formula 4)
(Equation 4) is obtained from (Equation 3) to Qn-1 and! This is a logical expression that enumerates literals of Qn-1. f2 is a logical expression that is a coefficient for Qn-1. f3! It is a logical expression that is a coefficient for Qn-1. f1 is Qn-1 and! This is a logical expression that is the result of summing up literals of Qn-1. Each of f1, f2, and f3 is a logical expression in which a logical value of 0 or 1 is uniquely determined only by the current input signals a, b, and c. A logic cone that does not have FF autoregression as shown in FIG. 5 can also be expressed by assuming that the logic values of f2 and f3 are always 0 in (Equation 4). That is, (Equation 4) can always be expressed with any logic cone. Therefore, according to (Equation 4), the operation of each FF can be obtained by calculation only from the current input condition regardless of the logic cone.
図8を参照して、その理由を具体的に説明する。図8において、条件と結果のテーブル820は、条件821と、Qn計算結果822と、意味823とで構成されている。図8において、f1の論理値が1である場合、または、f1の論理値が0であり、かつf2およびf3の論理値が共に1である場合、Qnの論理値は常に1となる。これは、FFの現在の状態に関わらず、次の状態は必ず1に更新されることを表す。
The reason will be specifically described with reference to FIG. In FIG. 8, the condition and result table 820 includes a
f1およびf3の論理値が0であり、かつf2の論理値が1である場合、Qnの論理値は、常にQn−1と等しくなる。これは、FFの現在の状態を保持することを表す。
f1およびf2の論理値が0であり、かつf3の論理値が1である場合、Qnの値は、常に!Qn−1と等しくなる。これは、FFの次の状態が、現在の状態を反転した値に更新されることを表す。
それ以外の場合、Qnの論理値は、常に0となる。これは、FFの現在の状態に関わらず、次の状態は必ず0に更新されることを表す。
When the logical values of f1 and f3 are 0 and the logical value of f2 is 1, the logical value of Qn is always equal to Qn-1. This represents holding the current state of the FF.
If the logical values of f1 and f2 are 0 and the logical value of f3 is 1, the value of Qn is always! It becomes equal to Qn-1. This represents that the next state of the FF is updated to a value obtained by inverting the current state.
In other cases, the logical value of Qn is always 0. This means that the next state is always updated to 0 regardless of the current state of the FF.
図9を参照して、論理回路プログラムからのFF論理式算出について説明する。図9は、検証対象となる論理回路をハードウェア記述言語で記述した論理回路プログラムである。図9において、論理回路プログラムは、001:〜008:の行番号と制御文および命令文から構成される。ここで、”a”、”b”、”c”は、入力信号の信号名を表す。”ff1”は、FFの識別名称を表す。”1’b0”および”1’b1”は、それぞれ、1ビットの論理値の0と1を表す。”<=”の記号は、左辺の示すFFの状態を、右辺の示す値に更新する命令を表している。
With reference to FIG. 9, the calculation of the FF logical expression from the logic circuit program will be described. FIG. 9 is a logic circuit program in which a logic circuit to be verified is described in a hardware description language. In FIG. 9, the logic circuit program is composed of
図9の論理回路プログラムにおける、”ff1”に対し、FF論理式化した回路記述が、(式5)である。図9の論理回路プログラムと(式5)の論理式は表現方法の違いこそあれ、全く同じ回路構造を表すものである。論理回路プログラムから論理式を抽出することは、市販の論理設計支援ツールなどを用いて容易に実現することができる。
ff1=(ff1|(b|c))&(!a) …(式5)
ここで、(式5)の右辺の”ff1”は、”ff1”の現在の状態、すなわち、(式3)の右辺のQn−1を表す。一方、左辺の”ff1”は、”ff1”の次の状態、すなわち、(式3)の左辺のQnを表す。
In the logic circuit program of FIG. 9, the circuit description converted into the FF logic formula for “ff1” is (Formula 5). The logic circuit program of FIG. 9 and the logic expression of (Equation 5) represent the same circuit structure regardless of the difference in expression method. Extracting a logical expression from a logic circuit program can be easily realized by using a commercially available logic design support tool or the like.
ff1 = (ff1 | (b | c)) & (! a) (Formula 5)
Here, “ff1” on the right side of (Expression 5) represents the current state of “ff1”, that is, Qn−1 on the right side of (Expression 3). On the other hand, “ff1” on the left side represents the next state after “ff1”, that is, Qn on the left side of (Expression 3).
図10および図11を参照して、図3のステップ35のFF遷移表変換を説明する。図10は、(式5)のFF論理式における、”ff1”に対し、FF遷移表への変換を行った表である。FF遷移表1000において、a列1010、b列1020、c列1030は、それぞれ入力信号a、b、cの論理値を表している。Qn列1040は、FFの次の状態を表す。
With reference to FIGS. 10 and 11, the FF transition table conversion in step 35 of FIG. 3 will be described. FIG. 10 is a table in which “ff1” in the FF logical expression of (Expression 5) is converted into an FF transition table. In the FF transition table 1000, a
具体的には、行1050において、入力信号a、b、cの組合せが、(式6)のときに、FFの次の状態QnがFFの現在の状態Qn−1となること、すなわち、現在の状態を保持することを意味する。
(a,b,c)=(0,0,0) …(式6)
同様に、行1060は、入力信号a,b,cの組合せが、(式7)のときに、FFの現在の状態に関わらず、次の状態を1に更新する。
(a,b,c)=(0,0,1),(0,1,0),(0,1,1) …(式7)
また、行1070は、入力信号a,b,cの組合せが、(式8)のときに、FFの現在の状態に関わらず、次の状態を0に更新する。
(a,b,c)
=(1,0,0),(1,0,1),(1,1,0),(1,1,1) …(式8)
なお、(式5)のFF論理式においては、現在の状態を反転する計算結果は、得られていない。
Specifically, in the
(a, b, c) = (0, 0, 0) (Formula 6)
Similarly, the
(a, b, c) = (0, 0, 1), (0, 1, 0), (0, 1, 1) (Expression 7)
The
(a, b, c)
= (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1) (Formula 8)
In the FF logical expression of (Expression 5), a calculation result that inverts the current state is not obtained.
図11を参照して、図10に示すFF遷移表を作成するための手順を説明する。図11において、FF動作条件算出部201は、全ての入力信号の組合せについてQnを算出したか否かを判定する(S111)。全ての入力信号についてQnの算出が完了していた場合、FF動作条件算出部201は、処理を終了する。
A procedure for creating the FF transition table shown in FIG. 10 will be described with reference to FIG. In FIG. 11, the FF operation
全ての入力信号の組合せについてQnの算出を完了していなかった場合、FF動作条件算出部201は、未算出の入力信号の組合せの中から今回算出対象とする入力信号の組合せを決定する(S112)。入力信号の組合せを、FF動作条件算出部201は、FF論理式に代入し、Qnの論理値を算出する(S113)。FF動作条件算出部201は、Qnの算出結果がいずれの値になったかを判定する(S114)。
If calculation of Qn has not been completed for all combinations of input signals, the FF operation
Qnの算出結果には、Qn=Qn−1、Qn=!Qn−1、Qn=1、Qn=0の4通りがある。Qn=Qn−1であった場合、FF動作条件算出部201は、FF遷移表のQn列1040の内、今回算出に用いた入力信号の組合せに該当する欄に「Qn−1」と入力する(S115)。Qn=!Qn−1であった場合、FF動作条件算出部201は、該当する欄に「!Qn−1」と入力する(S116)。Qn=1であった場合、FF動作条件算出部201は、該当する欄に「1」と入力する(S117)。Qn=0であった場合、FF動作条件算出部201は、該当する欄に「0」と入力する(S118)。入力の後、FF動作条件算出部201は、ステップ111に戻る。
The calculation results of Qn include Qn = Qn−1, Qn =! There are four types, Qn-1, Qn = 1, and Qn = 0. When Qn = Qn−1, the FF operation
図12を参照して、図3のステップ36のFF動作条件算出について説明する。ステップ36では、ステップ35で作成したFF遷移表に基づき、各FF動作に対する入力条件を算出する。図12は、図10のFF遷移表1000に基づいて、各FF動作に対する入力条件を算出した表である。ここで、図12において、FF動作1210の「セット」は、FFの状態を1に更新する動作を定義する。「リセット」は、FFの状態を0に更新する動作を定義する。「保持」は、FFの現在の状態を保持する動作を定義する。「反転」は、FFの状態を現在の状態を反転した値に更新する動作を定義する。
With reference to FIG. 12, the FF operation condition calculation in step 36 of FIG. 3 will be described. In step 36, input conditions for each FF operation are calculated based on the FF transition table created in step 35. FIG. 12 is a table in which the input conditions for each FF operation are calculated based on the FF transition table 1000 of FIG. Here, in FIG. 12, “set” of the
入力条件1220を、セット動作の入力条件について、説明する。FFがセット動作を行うための入力パターンは、図10の行1060で表される3パターンであるから、これらを論理式に変換する。入力aが0であり、かつ入力bまたは入力cが1であるときに、FFがセット動作を行うことから、この入力条件を論理式で表現すると、(式9)で表すことができる。
f(a,b,c)=!a&(b|c) …(式9)
リセット、保持の論理式については、図12に示す通りである。また、入力条件1220の内、反転動作に対する「−」は、条件が存在しないことを表し、”ff1”において、反転動作が起こり得ないことを意味する。
The
f (a, b, c) =! a & (b | c) (Formula 9)
The logical expressions for reset and hold are as shown in FIG. In the
なお、ここでは3入力のロジックコーンについて説明を行ったが、実際には図13に示すように、入力信号が多くなるほど遷移表1000Aは、拡大していく。遷移表1000Aを基に算出を行うと、図14に示すように、条件式が冗長になる。したがって、カルノー図法、クワイン・マクラスキー法などの簡単化手法を用いて、条件式を整理する。これにより、条件式の冗長化を抑止すると共に、以降の処理を効率的に行う。 Although a description has been given here of a three-input logic cone, in practice, as shown in FIG. 13, the transition table 1000A expands as the number of input signals increases. When calculation is performed based on the transition table 1000A, the conditional expression becomes redundant as shown in FIG. Therefore, the conditional expressions are organized using a simplified method such as the Carnot projection or the Quine-Macrasky method. Thereby, the redundancy of the conditional expression is suppressed and the subsequent processing is efficiently performed.
図15および図16を参照して、FF動作仕様表示指示部202が、表示部206に出力させる表示について、詳細に説明する。
With reference to FIG. 15 and FIG. 16, the display which the FF operation specification display instruction |
図15を参照して、FF動作仕様表示指示部202が、まず始めに出力を指示する表示画面を説明する。図15において、出力結果1500は、block1〜blockNのブロック別FF数1510と、合計のFF数1520を表示する。
With reference to FIG. 15, a display screen in which the FF operation specification
図16は、出力結果1500のblock1〜blockNの中から、ユーザが情報を希望するブロックを選択することにより出力する表示である。図16において、出力結果1600は、ユーザが選択したブロックに含まれる全てのFF1610に対して、各々の、セット、リセット、保持、反転の各動作の入力条件1620を表示する。また、該当の入力条件が存在しない場合は、「−」を表示する。(条件1.1)〜(条件N.4)の記載は、実際には論理式であり、”ff1”を図12に当てはめるならば、(条件1.1)は、条件1221より”!a&(b|c)”、(条件1.2)は、条件1222より”a”、(条件1.3)は、条件1223より”!a&!b&!c”、(条件1.4)は、条件1224より”−”となる。
FIG. 16 shows a display that is output when the user selects a block for which information is desired from among
出力結果1600により、各FFの動作が、設計者の考える仕様と一致しているか否かを確認することができる。これにより、記述誤り等の不注意、考慮漏れといった原因から発生するバグを抑止することができる。
From the
図17ないし図20を参照して、カバレッジ表示指示部205が、表示部206に出力させる表示について、詳細に説明する。
図17を参照して、カバレッジ表示指示部205がまず始めに出力を指示する表示画面を説明する。図17において、出力結果1700は、block1〜blockNのブロック別のFF数1710と、合計のFF数1720と、各々のブロックにおいて、監視対象となる全ての条件の数1730と、その内、論理シミュレーションによって実行された条件の数1740と、カバレッジ率1750を表示する。カバレッジ率1750は、監視対象となる全ての条件の数1730に対し、論理シミュレーションによって実行された条件の数1740の比率として算出され、百分率で表示する。
The display that the coverage
With reference to FIG. 17, a display screen in which the coverage
出力結果1700によれば、設計回路中のFFに発生し得る全ての動作が、論理シミュレーションによってどれだけ活性化されたかを評価尺度として、検証の十分性を的確かつ定量的に評価することができる。
According to the
図18を参照して、出力結果1700のblock1〜blockNの中から、ユーザが情報を希望するブロックを選択することにより出力する表示を説明する。図18において、出力結果1800は、FF1810と、入力条件監視結果1820と、FF動作網羅率1830とから構成される。
With reference to FIG. 18, a display output by the user selecting a block for which information is desired from among
FF1810は、ユーザの選択したブロックに含まれる全FFを表示する。入力条件監視結果1820は、FF1810に対して、各々の、セット、リセット、保持、反転の各FF動作の入力条件を表示し、また、それらの条件が、論理シミュレーションによって実行されたか否かの監視結果を、「○」と「×」で表示する。論理シミュレーション中に1回でも条件に合致するパターンがあった場合は「○」となり、全く合致するパターンが無かった場合は「×」となる。また、該当の入力条件が存在しない場合は、「−」を表示する。
The
(条件1.1)〜(条件N.4)の記載は、実際には論理式である。”ff1”を図12に当てはめるならば、(条件1.1)は、条件1221より”!a&(b|c)”、(条件1.2)は、条件1222より”a”、(条件1.3)は、条件1223”!a&!b&!c”となる。
The description of (Condition 1.1) to (Condition N.4) is actually a logical expression. If “ff1” is applied to FIG. 12, (condition 1.1) is “! A & (b | c)” from
FF動作網羅率1830は、各FFについて、起こり得る全てのFF動作の数1831と、その内、論理シミュレーションによって活性化されたFF動作の数1832をそれぞれ表示する。
The FF
出力結果1800によれば、カバレッジ測定の結果、検証が不足していると判断される論理回路に対し、具体的に、どのFFの、どの動作が活性化されていないのか、また、その動作を活性化させるためには、どのような条件が必要なのかを確認することができ、検証設計にフィードバックするための詳細な情報を得ることができる。
According to the
図19を参照して、出力結果1800に対し、ユーザが更に詳細な情報を要求した場合に出力する表示を説明する。図19において、出力結果1900は、FF1910と、入力条件実行網羅率1920とから構成される。入力条件実行網羅率1920は、各FF動作の入力条件に対して、それらの条件を構成する全ての入力信号の組合せの数1921と、その内、論理シミュレーションによって実行された入力信号の組合せの数1922と、それらの比を百分率で算出した結果1923を表示する。該当の入力条件が存在しない場合、入力条件実行網羅率1920は、「−」を表示する。
With reference to FIG. 19, the display output when the user requests more detailed information for the
出力結果1900によれば、各FF動作について、その動作を発生させる全ての入力ケースの内、論理シミュレーションでどれだけ実行されたかを確認することができる。これにより、検証内容の偏りを定量的に判断することができ、効率的な検証設計が可能となる。
According to the
図20を参照して、出力結果1900のff1〜ffNの中から、ユーザが特定のFFに対する詳細な情報を希望したときに出力する表示を説明する。図20において、出力結果2000は、FF動作2010と、入力信号2020と、監視結果2030とから構成される。FF動作2010は、ユーザの選択したFFにおいて、起こり得る全てのFF動作を表示する。入力信号2020は、FF動作2010に対する入力条件を満たす、全ての入力信号の組合せを表示する。監視結果2030は、入力信号2020に示す入力信号の組合せが、論理シミュレーションによって実行されたか否かを、「○」と「×」で表示する。論理シミュレーション中に1回でも条件に合致するパターンがあった場合は「○」となり、全く合致するパターンが無かった場合は「×」となる。なお、ここでは、反転の無い論理式について、示している。
With reference to FIG. 20, the display output when the user desires detailed information for a specific FF from ff1 to ffN of the
出力結果2000によれば、複合的な入力条件に対し、具体的にどのような入力パターンがテストされていないのかを個別に知ることができ、テストパターン検討のための、より直接的な手掛りとなる情報を得ることができる。
According to the
上述した実施例に依れば、ハードウェア記述言語によって記述されるディジタル回路において、本来留意すべき、FFの動作に注目した客観的な検証品質指標を得ることができる。これにより、従来、人間の主観のみでは見逃しがちだった、検証の漏れを抑止すると共に、無駄の無い、高効率な検証を行うことを可能とする。 According to the embodiment described above, it is possible to obtain an objective verification quality index that pays attention to the operation of the FF in the digital circuit described in the hardware description language. Thus, it is possible to suppress the omission of verification, which has conventionally been overlooked only by human subjectivity, and to perform highly efficient verification without waste.
100…検証支援装置、110…メモリ、120…CPU、130…記憶装置、140…入力装置、150…出力装置、160…バス、200…検証支援装置、201…FF動作条件算出部、202…FF動作仕様表示指示部、203…シミュレーション部、204…カバレッジ集計部、205…カバレッジ表示指示部、206…表示部、207…論理回路プログラム、208…テストパターン、209…各FF動作の入力条件情報、210…カバレッジ集計結果。
DESCRIPTION OF
Claims (5)
フリップフロップの各動作条件を表示させるフリップフロップ動作仕様表示指示部と、
論理回路プログラムを論理シミュレーションし、フリップフロップの各動作条件の実行成否を監視するシミュレーション部と、
条件監視によって得られたモニタ情報により、各フリップフロップ動作が活性化されたか否かを集計するカバレッジ集計部と、
カバレッジ集計結果を表示させるカバレッジ表示指示部と、
前記フリップフロップ動作仕様表示部と前記カバレッジ表示指示部とからの指示により情報出力を行う表示部と、
を含むことを特徴とする検証支援装置。 A flip-flop operation condition calculation unit for calculating an operation condition of the flip-flop in the logic circuit;
Flip-flop operation specification display instruction unit for displaying each operation condition of the flip-flop,
A logic unit that performs a logic simulation of the logic circuit program and monitors the success or failure of each operation condition of the flip-flop;
A coverage counting unit that counts whether or not each flip-flop operation is activated by monitor information obtained by condition monitoring;
Coverage display instruction part for displaying coverage totalization results,
A display unit that outputs information in accordance with instructions from the flip-flop operation specification display unit and the coverage display instruction unit;
A verification support apparatus comprising:
前記論理回路プログラムから、フリップフロップを中心としたロジックコーンを表す論理式の算出を行うステップと、
前記論理式から前記フリップフロップの遷移表を作成するステップと、
前記遷移表に基づき、前記フリップフロップの動作の入力条件の算出を行うステップと、
を含む検証支援方法。 Receiving a logic circuit program written in a hardware description language;
Calculating a logical expression representing a logic cone centered on a flip-flop from the logic circuit program;
Creating a transition table of the flip-flop from the logical expression;
Calculating an input condition of the operation of the flip-flop based on the transition table;
Verification support method including
前記動作は、状態を1に更新する動作、状態を0に更新する動作、現在の状態を保持する動作、現在の状態を反転した値に更新する動作、であること特徴とする検証支援方法。 The verification support method according to claim 2,
The verification support method is characterized in that the operation is an operation to update the state to 1, an operation to update the state to 0, an operation to hold the current state, and an operation to update the current state to an inverted value.
さらに、前記入力条件を、前記フリップフロップの動作仕様として表示するステップを、含む検証支援方法。 The verification support method according to claim 2,
The verification support method further includes the step of displaying the input condition as an operation specification of the flip-flop.
さらに、前記入力条件に対し論理シミュレーションによって条件実行の成否を監視するステップと、
監視によって得られたモニタ情報を集計するステップと、
集計により得られたカバレッジ情報を表示するステップと、
を含む検証支援方法。 The verification support method according to claim 2,
Furthermore, monitoring the success or failure of condition execution by logic simulation for the input condition;
A step of aggregating monitor information obtained by monitoring;
Displaying the coverage information obtained by the aggregation;
Verification support method including
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013000412A JP2014132403A (en) | 2013-01-07 | 2013-01-07 | Verification support device and verification support method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013000412A JP2014132403A (en) | 2013-01-07 | 2013-01-07 | Verification support device and verification support method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014132403A true JP2014132403A (en) | 2014-07-17 |
Family
ID=51411465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013000412A Pending JP2014132403A (en) | 2013-01-07 | 2013-01-07 | Verification support device and verification support method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014132403A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114135470A (en) * | 2021-11-29 | 2022-03-04 | 华能烟台八角热电有限公司 | Automatic drainage device based on efficient air compressor air storage tank |
-
2013
- 2013-01-07 JP JP2013000412A patent/JP2014132403A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114135470A (en) * | 2021-11-29 | 2022-03-04 | 华能烟台八角热电有限公司 | Automatic drainage device based on efficient air compressor air storage tank |
CN114135470B (en) * | 2021-11-29 | 2023-11-10 | 华能烟台八角热电有限公司 | Automatic drainage device of air storage tank of air compressor based on high efficiency |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006244073A (en) | Semiconductor design device | |
US9218447B2 (en) | Automatic test pattern generation (ATPG) considering crosstalk effects | |
JP5684878B2 (en) | Systems and methods for providing compliance inspection and detailed analysis of software applications | |
JP6568017B2 (en) | Test support apparatus and test support method | |
JP2014132403A (en) | Verification support device and verification support method | |
US20140115396A1 (en) | Mutations on input for test generation | |
JP5672165B2 (en) | Test data generation program, test data generation method, test data generation device | |
US10382311B2 (en) | Benchmarking servers based on production data | |
JP6034614B2 (en) | Information processing apparatus and method | |
JP5463226B2 (en) | Source code inspection method and source code inspection apparatus | |
TWI712806B (en) | Testing method and testing system | |
KR101996009B1 (en) | Method for supporting composing testcase, server and user terminal for performing the same | |
WO2016199383A1 (en) | Service design assistance device, method, and program recording medium | |
JP2017167732A (en) | Circuit design verification apparatus and program | |
JP5319643B2 (en) | Software product line development support apparatus and method | |
JP2016177666A (en) | Model inspection device, model inspection method, and program | |
JP2014032466A (en) | Complexity calculation device, complexity calculation method, and complexity calculation program | |
JP2016076162A (en) | Software test support device and software test support program | |
JP5899781B2 (en) | Design support apparatus, design support method, and design support program | |
JP5644899B1 (en) | Circuit verification apparatus, circuit verification method, and circuit verification program | |
JP5321624B2 (en) | Logic circuit verification device, logic circuit verification method, and program | |
Jenihhin et al. | High-level decision diagrams based coverage metrics for verification and test | |
JP2012128727A (en) | Reliability evaluation method and apparatus for software component | |
US11030370B2 (en) | Modular event-based performance monitoring in integrated circuit development | |
JP6203433B2 (en) | File management apparatus, file management method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140908 |