JP5065113B2 - 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 - Google Patents
等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 Download PDFInfo
- Publication number
- JP5065113B2 JP5065113B2 JP2008074859A JP2008074859A JP5065113B2 JP 5065113 B2 JP5065113 B2 JP 5065113B2 JP 2008074859 A JP2008074859 A JP 2008074859A JP 2008074859 A JP2008074859 A JP 2008074859A JP 5065113 B2 JP5065113 B2 JP 5065113B2
- Authority
- JP
- Japan
- Prior art keywords
- model
- output
- fifo
- input
- test
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Description
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
実施の形態について更に詳述する。以下、本発明を実施するための形態を図面に基づいて詳細に説明する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
図1には本発明のテスト環境生成方法によって生成された仮想的なテスト環境の構成が例示される。同図に示されるテスト環境は、手本モデル1に対してポート間での対応取りが可能な検証対象モデル2を手本モデル用のテストベクタ生成モデル3を用いて機能検証可能とするものである。手本モデル1と検証対象モデル2は、相互に一対一対応されるポート名を有していて、時間若しくはタイミングを無視したとき入力信号系列に対して等価な出力信号系列を得ることができる関係(入出力の等価性)を有することが想定されている。例えば検証対象モデル2は手本モデル1に対して内部処理がパイプライン化されたり、内部動作に対して実行サイクルが付加された関係を有する。手本モデル用のテストベクタ生成モデル3は、手本モデルの機能を検証するためのテストベンチということになり、図1のテスト環境は手本モデルのテストベンチを流用して検証対象モデルを検証可能とする。
図2にはテスト環境生成処理の概要が示される。ポート間で対応取りが可能な抽象度が異なる2つのモデルである前記手本モデル1と前記検証対象モデル2、並びに前記手本モデル用テストベクタ生成モデル3をプログラム修正装置11に入力とする。例えば手本モデル1はシステムC(SystemC)などのシステムレベル言語で記述されており、検証対象モデル2は、システムレベル言語またはHDL(hardware description language)で記述されているものとする。特に、手本モデル1又は検証対象モデル2がHDLで記述されたモデルである場合、前記HDL記述とサイクルレベルで動作が一致するシステム記述言語で記述された手本モデル1または検証対象モデル2をも入力とする。ここで、検証対象モデル2の前記HDL記述は、手本モデル1に対してプログラムパス上への割り当てサイクルを指定したり、パイプライン化指定を行って動作合成ツールにて合成した結果得られるRTL(register transfer level)記述であっても良い。また、市販動作合成ツールは多くの場合、当該RTLとサイクルレベルで動作が一致するシステム記述言語で記述された検証対象モデルを生成する機能を有しているため、ここでは検証対象モデル2はそれを用いて生成されたものとする。
2つの回路や機能ブロック(プロセス)のフロー等価とは、時間を無視した場合に双方のプロセスの各入力ポートに対してに等価な入力データ系列を入力した場合に、時間を無視したとき双方のプロセスの各出力ポートから得られるデータ系列がプロセス間で一致対応することをいう。例えば、夫々のプロセスでの入力ポート群と出力ポート群の入力・出力の順番や実行順までもが時間を無視して2つのプロセスで同じ場合は、夫々に、入力データをフェッチした状態と出力データ値が変化した状態を実行順に基づいて結ぶ事で、状態遷移グラフを構築した場合、これら状態遷移グラフが互いにTime Abstracted Bisimilar(対応日本語訳を記入してください:時間抽象化を伴う双模倣等価)な関係となっている。本願において開示されるテスト環境の全体構成では、入力FIFO群5等のFIFOにおいてフル・エンプティーの制御を行っているが、この操作では各プロセスの出力値が同じタイミングで変化しなくなるだけであり、その値の変化に基づいて等価性判定を行っているため、等価性判定には影響を与えない。この等価性の概念についての詳細は、例えば、文献「Paul Le Guernic, Jean-Pierre Talpin, and Jean-Christophe Le Lann, "POLYCHRONY FOR SYSTEM DESIGN," Journal of Circuits, Systems, and Computers, 12(3), pp.261-304, 2003」に記載がある。
手本モデル1の入力記述が例えばサイクル精度で記述されたシステムCによる動作記述であるとき、手本モデル用テストベクタ生成モデル3は当該システムCによる動作記述のテストベンチである。手本モデル1と手本モデル用テストベクタ生成モデル3の両者は接続されてシミュレーション可能である事が前提となる。
例えば手本モデル1がサイクル精度でシステムCによる動作記述として作成されている場合、動作一致検証において比較対象となる検証対象モデル2は、内部ループをパイプライン化、全体処理をパイプライン化、プログラムのあるポイントからあるポイントまでのプログラムパスに対してサイクル割当て実施を任意に適用して得られる動作記述、又は前記3項目を任意に動作合成にて実施して得られるRTLである。前記検証対象モデル2の動作記述は、市販の動作合成ツールなどを用いる事で、合成結果のRTLのシミュレーションモデルとして出力されるシステムC記述として取得する事も可能である。
パラメータ設定ファイル12は入力FIFO群5のFIFO(単に入力FIFOとも称する)に対するパラメータと出力FIFOペア7のFIFO(単に出力FIFOとも称する)に対するパラメータを規定する。
図3には評価環境生成プログラムの生成フローが全体的に例示される。その生成フローはモデル修正処理(S11)、FIFOパラメータ設定及びFIFO記述生成処理(S12)、クロック停止制御部生成処理(S13)、及び全体接続処理(S14)から成る。
モデル修正処理(S11)について詳細を説明する。モデル修正処理(S11)は図4に例示されるように、モジュール名・ポート宣言記述部の修正処理(S111)、動作記述部の修正処理(S112)、及びモジュール名・ポート宣言記述部の後続修正処理(S113)から成る。
char rst; // 0で初期化動作、1で通常動作、
char rw_flg; // 1でFIFOリード、0でFIFOライト、
入力信号の型 wdata; // rw_flgを1に設定するとwdataがFIFOへデータpushされる、
入力信号の型* rdata; // rw_flgを0に設定するとFIFOからデータがpopされrdataに値反映される、となる。
図18にはFIFOパラメータ設定及びFIFO記述生成処理S12の詳細が例示される。S12の処理は、手本モデルテスト入力フェッチモデル及び検証対象モデルテスト入力出力モデルにより関数コールされる各入力信号に対して構成される入力FIFOのサイズ決定処理(S121)、そのモデル生成処理(S122)、手本モデルや検証対象モデルの各出力信号に対して構成される出力FIFOのサイズ決定処理(S123)、そのモデル生成処理(S124)、及び、手本モデルと検証対象モデルで同一名の出力信号の夫々に接続された2つの出力FIFOからの出力信号フェッチ及び信号値比較を行なって一致不一致判定を行う信号出力一致判定モデル生成処理(S125)からなる。
入力FIFOモデルのFIFO段数については以下の基本的な考えを採用する。各入力ポートに対応して配置されるFIFOの段数設定パラメータをNとする。以下に記載する入力FIFO段数決定処理でのFIFO段数計算での乗数としてこのパラメータNを用いる。指定なき場合は、デフォルト値として例えば2を採用するものとする。尚、任意に指定可能としても良い。
ここで入力FIFOの動作仕様について整理して説明する。1)入力FIFOへのプッシュは手本モデルテスト入力フェッチモデル4で、第1引数char rstが1のFIFO関数コールが行われる度に行われる。2)入力FIFOからのポップ(pop)は検証対象モデルテスト入力出力モデル6で、FIFO関数コールが行われる度に行われる。3)入力FIFOのサイズアップは、入力FIFOに対して最初のポップが行われるまでの期間においては入力FIFOの書き込みポインタが入力FIFOの「段数−1」に到達すると、サイズを倍に増加させる。入力FIFOに対してポップ動作が一旦行われた以降の期間においては、闘値設定なしの場合には入力FIFOの書き込みポインタが入力FIFOの「段数−1」に到達すると、サイズを倍に増加させる、闘値設定ありの場合には「書き込みポインタ−読み出しポインタ≧闘値」の場合に倍の段数に増加させる。4)入力信号名Startは、入力FIFO内のデータ数が、初期設定段数を半分を超えて以降常にアサートされ、半分を超えるまではディアサートとされる。5)入力信号名Fulは、入力FIFO内のデータ蓄積段数が前記D(port)×(N-1)/Nで定めた段数に対応する値以上となったときアサートされ、それ以外はディアサートされる。6)入力信号名FullAlartは入力FIFOがフルとなったときアサートされ、それ以外はディアサートにされる。7)入力信号名Emptyは入力FIFO内のデータ蓄積段数が前記D(port) /Nで定めた段数に対応する値以下となったときアサートされ、それ以外はディアサートとされる。8)入力信号名EmptyAlartは入力FIFOがエンプティーとなったときアサートされ、それ以外はディアサートとされる。
図20には入力FIFOの記述を生成する処理が例示される。入力FIFOの記述を生成するには、先ずFIFOサイズアップ指定ファイルを読み込み、サイズアップの闘値設定なしの場合の雛形記述か、サイズアップの闘値設定ありの場合の雛形記述を読み込み、入力信号テーブル、入力FIFO初期段数テーブルを読み込み、入力信号名毎に、雛形記述内のキーワードを適時置換し、入力信号名毎にファイル名“fifo_入力信号名.cpp”なるファイルを生成する。
次に、出力FIFOペア7に関してパラメータ設定及びFIFO記述生成処理を説明する。出力FIFOペア7を構成する出力FIFO段数については以下の基本的な考え方を採用する。各出力ポートに対応して配置される出力FIFOの段数設定パラメータをNとする。このパラメータ値に基づいて、下記に記載する出力FIFO段数決定処理にて個々の出力FIFOの段数決定を実施する。指定なき場合は、デフォルト値として8段を採用するものとする。パラメータNは前記デフォルト値以上の整数値のみ指定可能とする。尚、任意に指定可能としても良い。
前記出力FIFO閾値として、D(port)/2〔文字列“HALF”〕、D(port)*(N-1)/N〔文字列“FULL”〕、D(port)/N〔文字列“EMPTY”〕、又は任意指定正数(ただし、初期FIFO段数以下)が指定可能にされる。ここで、D(port)は出力FIFOの段数の動的な増加を考慮した段数を、Nは、段数増加毎に倍になる変数を表す。
ここで出力FIFOペア7の動作仕様について説明する。手本モデル1の出力ポートに接続される出力FIFOペア7の一方の出力FIFO(手本モデル用出力FIFO)については、システムリセット解除後から動作を開始する。最初のサイクルでは接続された出力ポートからの信号を受け取り内部FIFOにデータのプッシュを行い、クロックカウントを内部のクロック値格納FIFOへプッシュする。それ以降は、毎サイクルクロックをカウントアップさせつつ、出力ポートの値が変化したときのみ信号を受け取り内部FIFOにデータのプッシュ(Push)を実施し、クロックカウントを内部のクロック値格納FIFOへプッシュする。内部FIFOがエンプティーの場合、出力信号“Orig出力信号名Empty”を1とし、空でない場合は0とする。外部からの入力信号“Orig出力信号名Read”が1のときのみ、内部FIFOからデータをポップし、出力信号である“Orig出力信号名”を介してデータ出力を行い、内部のクロック値格納FIFOからクロックカウント値をポップし、出力信号である“Orig出力信号名Clk”を介してデータ出力を行う。内部FIFOの書き込みポインタが「FIFO段数−1」に達したとき、設定に基づいて必要なら条件判定を実施した後、段数を倍増する。
図27には手本モデル用出力FIFOのヘッダファイル生成処理が示される。この処理では、手本モデル用出力FIFOのヘッダファイル雛形記述と出力信号テーブルが読み込まれ、出力信号名毎に、雛形記述内のキーワードを適時置換し、入力信号名毎にファイル名“OrigFifo出力信号名.h”なるファイルが生成される。図28には手本モデル用出力FIFOのヘッダファイルの雛形記述が例示される。
図36には検証対象モデル用出力FIFOのヘッダファイル生成処理が示される。この処理では、検証用モデル用出力FIFOのヘッダファイル雛形記述と出力信号テーブルが読み込まれ、出力信号名毎に、雛形記述内のキーワードが適時置換されて、入力信号名毎にファイル名“TgtFifo出力信号名.h”なるファイルが生成される。図37には検証対象モデル用出力FIFOのヘッダファイルの雛形記述が例示される。
出力FIFOペア7の出力信号値に対する一致判定モデル9の動作仕様について説明する。同一の出力信号名を持つ手本モデル用出力FIFOと検証対象モデル用出力FIFOから「Orig出力信号名Empty」と「Tgt出力信号名Empty」の信号を入力として受け、双方が0ならば、「出力信号Orig出力信号名Read」とTgt出力信号名Read」の信号を1にアサートし、そうでなければ、この2つの出力信号を0にディアサートする。また、「Orig出力信号名」と「Tgt出力信号名」の信号を入力として受け、双方の値が一致していたなら、出力信号「Compare出力信号名」を1にアサートし、そうでなければ、この出力信号を0にディアサートする。
図49にはクロック停止制御部8の入力信号と出力信号が示される。クロック停止制御部8の動作仕様は以下の通りである。1)検証対象モデル出力FIFOへのstart信号出力機能を有する。全ての入力信号名Startの論理積の結果を内部Bool変数tmp_startへ代入し、tmp_startを出力信号startへ代入する。即ち、全ての入力FIFOが初期段数に対して闘値以上の回数ポップされた事をstart=1で示す。2)テストベンチ、手本モデル、手本モデルテスト入力フェッチモデルへのクロックPreClkの供給機能を持つ。全ての入力信号名FullAlartの論理和の結果を内部Bool変数full_alartへ代入し、全ての入力信号名Fullの否定の論理和の結果を内部Bool変数fullへ代入し、(ful&&~full_alart||~tmp_start)&&システムクロックをPreClkへ代入し、full&&~full_alart||~tmp_startをsc_out変数write_condへ代入する。即ち、全ての入力FIFOがある闘値以上データを保有しているか、ある入力FIFOがフルの場合クロック停止、それ以外はクロック供給を行う。3)検証対象モデルテスト入力出力モデルへのクロックPostClk供給機能を有する。全ての入力信号名EmptyAlartの論理和の結果を内部Bool変数empty_alartへ代入し、全ての入力信号名Emptyの否定の論理和の結果を内部Bool変数emptyへ代入し、empty&&~empty_alart&&tmp_startを内部Bool変数tmp_read_condへ代入し、tmp_read_cond&&システムクロックをPostClkへ代入する。即ち、全ての入力FIFOがある闘値以下のデータしか保有していないか、ある入力FIFOがエンプティーの場合クロック停止、それ以外はクロック供給を行う。4)検証対象モデルへのクロックPostClk2の供給を行う。tmp_read_condをbool型のsc_out変数read_condを介して1ビットFlip-Flopへ入力し、その出力であるbool型のsc_signal変数read_cond2を用いて、read_cond2&&システムクロックをPostClkへ代入する。即ち、PostClkより1クロック遅れてクロック停止・供給を実施する。
コンピュータ装置を用いた上述の処理で生成されたモデルと入力モデルを整理すると以下のモジュールが得られることになる。1)手本モデル用テストベクタ生成モデル3としてのテストベンチのモジュール、2)手本モデル1のモジュール、3)検証対象モデル2のモジュール、4)手本モデルテスト入力フェッチモデル4、入力FIFO群5、検証対象モデルテスト入力出力モデル6からなるモジュール、5)出力FIFOペア7を構成する手本モデル出力FIFOのモジュール群、6)出力FIFOペア7を構成する検証対象モデル出力FIFOモジュール群、7)クロック停止制御部8のモジュール、8)出力一致判定モデル9のモジュールである。ここで、クロック停止制御部8のモジュールの接続関係に関しては、既にクロック停止処理の説明部で説明した。基本的には、入力信号名が対応するもの同士、出力信号名が対応するもの同士を接続すればよいが、手本モデル1と検証対象モデル2は同じ出力信号を有するため、そのままでは接続できない。従って、手本モデル1のモジュールと手本モデル出力FIFOのモジュール群と、検証対象モデル2のモジュールと検証対象モデル出力FIFOモジュール群とをそれぞれ別の階層として纏め、トップモジュールを構成し残りのモジュールとの接続を行えばよい。信号名、モジュール名全てが与えられているため、前記に導入した階層を表すモジュールを作成し、その中で信号宣言と含まれモジュールのインスタンス宣言記述を構成してポート接続を実施し、更にトップモジュール内で信号宣言を行い階層で作成したモジュールと残りの各モジュールのインスタンス化を実施し、ポート接続を行えばよい。システムC(SystemC)の書式に従って、信号名、モジュール名、接続関係、階層構造が全て与えられているため全体接続記述の自動生成が可能な事は自明であり、その詳細な説明は省略する。
2 検証対象モデル
3 手本モデル用のテストベクタ生成モデル
4 手本モデルテスト入力フェッチモデル
5 入力FIFO群
6 検証対象モデルテスト入力出力モデル
7 出力FIFOペア群
8 クロック停止制御部
9 一致判定モデル
11 プログラム修正装置
12 パラメータ設定ファイル
13 全体統合装置
15 評価環境生成プログラム
Claims (21)
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する方法であり、それぞれコンピュータ装置で実行する処理として、
サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う第1処理と、
前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う第2処理と、
前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する第3処理と、
前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む第4処理と、
前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う第5処理と、を含み、
前記第1処理及び第2処理は、前記入力FIFO群の全ての入力FIFOが第1の入力FIFO閾値で規定される数以上のデータを保持するようになったとき又は入力FIFOの一つでもフルになったとき実行停止され、それ以外の状態で実行される、等価性検証方法。 - 前記検証対象モデルは、前記手本モデルとの間で一対一対応されるポート名を有する、請求項1記載の等価性検証方法。
- 所定の言語で回路が記述された手本モデルと前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する方法であり、それぞれコンピュータ装置で実行する処理として、
サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う第1処理と、
前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う第2処理と、
前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する第3処理と、
前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む第4処理と、
前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う第5処理と、を含み、
前記第3処理及び第4処理は、前記入力FIFO群の全ての入力FIFOが所定の数以上のデータを保持するようになるのを待って実行開始される、等価性検証方法。 - 実行開始された前記第3処理及び第4処理は、前記入力FIFO群の全ての入力FIFOが第2の入力FIFO閾値で規定される数以下のデータを保持するようになったとき又は入力FIFOの一つでもエンプティーになったとき実行停止され、それ以外の状態で実行される、請求項3記載の等価性検証方法。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する方法であり、それぞれコンピュータ装置で実行する処理として、
サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う第1処理と、
前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う第2処理と、
前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する第3処理と、
前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む第4処理と、
前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う第5処理と、を含み、
コンピュータ装置で実行する処理として、入力FIFOのデータ保持数が所定の数に達する毎にFIFO段数を増加させるサイズアップ処理を更に含む、等価性検証方法。 - 前記入力FIFOのデータ保持数が所定の数に達するとは、入力FIFOの書き込みポインタの値に対する読出しポインタの差が第3の入力FIFO閾値以上になることである、請求項5記載の等価性検証方法。
- 前記第3の入力FIFO閾値は、前記サイズアップ処理毎に増加される変数にしたがって増加される数である、請求項6記載の等価性検証方法。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する方法であり、それぞれコンピュータ装置で実行する処理として、
サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う第1処理と、
前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う第2処理と、
前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する第3処理と、
前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む第4処理と、
前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う第5処理と、を含み、
コンピュータ装置で実行する処理として、出力FIFOのデータ保持数が所定の数に達する毎にFIFO段数を増加させるサイズアップ処理を更に含む、等価性検証方法。 - 前記出力FIFOのデータ保持数が所定の数に達するとは、出力FIFOの書き込みポインタの値に対する読出しポインタの差が出力FIFO閾値以上になることである、請求項8記載の等価性検証方法。
- 前記出力FIFO閾値は、前記サイズアップ処理毎に増加される変数にしたがって増加される数である、請求項9記載の等価性検証方法。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する第1乃至第5処理をコンピュータ装置に実行させるプログラムであり、
前記第1処理は、サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う処理であり、
前記第2処理は、前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う処理であり、
前記第3処理は、前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する処理であり、
前記第4処理は、前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む処理であり、
前記第5処理は、前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う処理であり、
前記第1処理及び第2処理は、前記入力FIFO群の全ての入力FIFOが第1の入力FIFO閾値で規定される数以上のデータを保持するようになったとき又は入力FIFOの一つでもフルになったとき実行停止され、それ以外の状態で実行される、等価性検証用プログラム。 - 前記検証対象モデルは、前記手本モデルとの間で一対一対応されるポート名を有する、請求項11記載の等価性検証用プログラム。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する第1乃至第5処理をコンピュータ装置に実行させるプログラムであり、
前記第1処理は、サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う処理であり、
前記第2処理は、前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う処理であり、
前記第3処理は、前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する処理であり、
前記第4処理は、前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む処理であり、
前記第5処理は、前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う処理であり、
前記第3処理及び第4処理は、前記入力FIFO群の全ての入力FIFOが所定の数以上のデータを保持するようになるのを待って実行開始される、等価性検証用プログラム。 - 実行開始された前記第3処理及び第4処理は、前記入力FIFO群の全ての入力FIFOが第2の入力FIFO閾値で規定される数以下のデータを保持するようになったとき又は入力FIFOの一つでもエンプティーになったとき実行停止され、それ以外の状態で実行される、請求項13記載の等価性検証用プログラム。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する第1乃至第5処理をコンピュータ装置に実行させるプログラムであり、
前記第1処理は、サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う処理であり、
前記第2処理は、前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う処理であり、
前記第3処理は、前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する処理であり、
前記第4処理は、前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む処理であり、
前記第5処理は、前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う処理であり、
コンピュータ装置で実行する処理として、入力FIFOのデータ保持数が所定の数に達する毎にFIFO段数を増加させるサイズアップ処理を更に含む、等価性検証用プログラム。 - 前記入力FIFOのデータ保持数が所定の数に達するとは、入力FIFOの書き込みポインタの値に対する読出しポインタの差が第3の入力FIFO閾値以上になることである、請求項15記載の等価性検証用プログラム。
- 前記第3の入力FIFO閾値は、前記サイズアップ処理毎に増加される変数にしたがって増加される数である、請求項16記載の等価性検証用プログラム。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証する第1乃至第5処理をコンピュータ装置に実行させるプログラムであり、
前記第1処理は、サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルとの間で信号の入出力を行う処理であり、
前記第2処理は、前記手本モデルと同じタイミングで前記手本モデル用テストベクタ生成モデルからの出力を手本モデルの信号毎に入力FIFO群に書き込む制御を行う処理であり、
前記第3処理は、前記検証対象モデルと同じ動作タイミングで前記入力FIFO群からデータを読み込んで前記検証対象モデルに出力する処理であり、
前記第4処理は、前記手本モデルの出力と前記検証対象モデルの出力とを対応する信号名毎に出力FIFOペア群に書き込む処理であり、
前記第5処理は、前記出力FIFOペア群の信号名毎のペア出力に対して一致判定を行う処理であり、
コンピュータ装置で実行する処理として、出力FIFOのデータ保持数が所定の数に達する毎にFIFO段数を増加させるサイズアップ処理を更に含む、等価性検証用プログラム。 - 前記出力FIFOのデータ保持数が所定の数に達するとは、出力FIFOの書き込みポインタの値に対する読出しポインタの差が出力FIFO閾値以上になることである、請求項18記載の等価性検証用プログラム。
- 前記出力FIFO閾値は、前記サイズアップ処理毎に増加される変数にしたがって増加される数である、請求項19記載の等価性検証用プログラム。
- 所定の言語で回路が記述された手本モデルと、前記手本モデルのためのテストベクタ生成モデルである手本モデル用テストベクタ生成モデルとを用いて、前記手本モデルを元に生成され且つ前記手本モデルとの間でポートの対応が可能にされた検証対象モデルの等価性を検証するための等価性検証用プログラムを生成する方法であって、それぞれコンピュータ装置で実行する処理として、
前記手本モデル、前記テストベクタ生成モデル、及びパラメータ設定ファイルをコンピュータ装置に読み込む処理と、
サイクル精度で前記手本モデルが前記手本モデル用テストベクタ生成モデルから入力するデータを入力FIFO群に書き込む操作を行うための手本モデルテスト入力フェッチモデルを生成する処理と、
前記検証対象モデルの動作タイミングに従って前記入力FIFO群からデータを読み出して前記検証対象モデルへ出力する操作を行うための検証対象モデルテスト入力出力モデルを生成する処理と、
前記手本モデルテスト入力フェッチモデル及び検証対象モデルテスト入力出力モデルに基づいて前記入力FIFO群のモデルを生成する処理と、
前記手本モデルの出力と前記検証対象モデルの出力を対応する信号名毎に入力して保持する出力FIFOペア群を生成する処理と、
前記出力FIFOペア群の信号名毎の出力ペアの一致判定を行う一致判定モデルを生成する処理と、を含み、
前記読み込む処理及び前記手本モデルテスト入力フェッチモデルを生成する処理は、前記入力FIFO群の全ての入力FIFOが第1の入力FIFO閾値で規定される数以上のデータを保持するようになったとき又は入力FIFOの一つでもフルになったとき実行停止され、それ以外の状態で実行される、等価性検証用プログラムの生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008074859A JP5065113B2 (ja) | 2008-03-24 | 2008-03-24 | 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 |
US12/396,309 US8122402B2 (en) | 2008-03-24 | 2009-03-02 | Equivalence checking method, equivalence checking program, and generating method for equivalence checking program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008074859A JP5065113B2 (ja) | 2008-03-24 | 2008-03-24 | 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009230451A JP2009230451A (ja) | 2009-10-08 |
JP5065113B2 true JP5065113B2 (ja) | 2012-10-31 |
Family
ID=41090121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008074859A Active JP5065113B2 (ja) | 2008-03-24 | 2008-03-24 | 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8122402B2 (ja) |
JP (1) | JP5065113B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8181134B2 (en) * | 2009-10-16 | 2012-05-15 | International Business Machines Corporation | Techniques for performing conditional sequential equivalence checking of an integrated circuit logic design |
US9531646B1 (en) * | 2009-12-07 | 2016-12-27 | Altera Corporation | Multi-protocol configurable transceiver including configurable deskew in an integrated circuit |
US8402403B2 (en) * | 2009-12-17 | 2013-03-19 | International Business Machines Corporation | Verifying a register-transfer level design of an execution unit |
US8543953B2 (en) * | 2012-01-04 | 2013-09-24 | Apple Inc. | Automated stimulus steering during simulation of an integrated circuit design |
US9069781B2 (en) * | 2012-05-24 | 2015-06-30 | Microsoft Technology Licensing, Llc | Techniques to automatically manage file descriptors |
US9047300B2 (en) | 2012-05-24 | 2015-06-02 | Microsoft Technology Licensing, Llc | Techniques to manage universal file descriptor models for content files |
US20140282390A1 (en) * | 2013-03-15 | 2014-09-18 | Nvidia Corporation | System, method, and computer program product for creating a compute construct |
US9323502B2 (en) | 2013-03-15 | 2016-04-26 | Nvidia Corporation | System, method, and computer program product for altering a line of code |
US10176283B2 (en) * | 2015-09-18 | 2019-01-08 | Synopsys, Inc. | Equivalence checking of analog models |
CN108319534B (zh) * | 2018-01-25 | 2021-04-06 | 浪潮集团有限公司 | 一种测试向量生成方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484135B1 (en) * | 1999-08-30 | 2002-11-19 | Hewlett-Packard Company | Method for adaptive test generation via feedback from dynamic emulation |
JP2002024311A (ja) * | 2000-06-30 | 2002-01-25 | Ricoh Co Ltd | 集積回路設計装置、集積回路設計システム、集積回路設計方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP4099974B2 (ja) | 2001-10-30 | 2008-06-11 | 日本電気株式会社 | 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム |
US7003742B2 (en) * | 2002-01-10 | 2006-02-21 | Pdf Solutions, Inc. | Methodology for the optimization of testing and diagnosis of analog and mixed signal ICs and embedded cores |
JP2004145712A (ja) | 2002-10-25 | 2004-05-20 | Matsushita Electric Ind Co Ltd | 半導体設計における動作記述の等価性検証方法 |
JP4476053B2 (ja) * | 2004-02-25 | 2010-06-09 | 株式会社リコー | プログラム及び記憶媒体 |
JP2005316595A (ja) | 2004-04-27 | 2005-11-10 | Fujitsu Ltd | 回路記述間の等価性検証方法および回路記述間の等価性検証プログラム |
US7340700B2 (en) * | 2005-05-27 | 2008-03-04 | Lsi Logic Corporation | Method for abstraction of manufacturing test access and control ports to support automated RTL manufacturing test insertion flow for reusable modules |
KR101375171B1 (ko) * | 2006-12-30 | 2014-03-18 | 삼성전자주식회사 | 시스템 온 칩 모델 검증 방법 및 장치 |
-
2008
- 2008-03-24 JP JP2008074859A patent/JP5065113B2/ja active Active
-
2009
- 2009-03-02 US US12/396,309 patent/US8122402B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20090241074A1 (en) | 2009-09-24 |
JP2009230451A (ja) | 2009-10-08 |
US8122402B2 (en) | 2012-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5065113B2 (ja) | 等価性検証方法、等価性検証プログラム及び等価性検証プログラムの生成方法 | |
Clow et al. | A pythonic approach for rapid hardware prototyping and instrumentation | |
Kaivola et al. | Replacing testing with formal verification in intel coretm i7 processor execution engine validation | |
US20070277130A1 (en) | System and method for architecture verification | |
US7865346B2 (en) | Instruction encoding in a hardware simulation accelerator | |
US8156457B2 (en) | Concurrent simulation of hardware designs with behavioral characteristics | |
TWI468936B (zh) | 用於產生驗證程式之系統及方法 | |
SE505783C3 (sv) | Foerfarande foer att tillverka en digital signalprocessor | |
Herdt et al. | Efficient cross-level testing for processor verification: A RISC-V case-study | |
Schmidt et al. | A new formal verification approach for hardware-dependent embedded system software | |
Flake et al. | Verilog HDL and its ancestors and descendants | |
US20040025127A1 (en) | Logic verification and logic cone extraction technique | |
US20080172551A1 (en) | Operation verification method for verifying operations of a processor | |
US7673288B1 (en) | Bypassing execution of a software test using a file cache | |
US10331830B1 (en) | Heterogeneous logic gate simulation using SIMD instructions | |
Kamkin et al. | Extensible environment for test program generation for microprocessors | |
Sakib et al. | Formal verification of NCL circuits | |
Bhagwati et al. | Automatic verification of pipelined microprocessors | |
US11036906B1 (en) | Method and apparatus to accelerate verification signoff by selective re-use of integrated coverage models | |
Janik et al. | An overview of altera sdk for opencl: A user perspective | |
US7447621B1 (en) | PLI-less co-simulation of ISS-based verification systems in hardware simulators | |
US20080300845A1 (en) | Monitoring software simulations of hardware systems | |
JP5387521B2 (ja) | 論理検証シナリオ生成装置、及び、論理検証シナリオ生成プログラム | |
JP6473023B2 (ja) | 性能評価モジュール及びこれを組み込んだ半導体集積回路 | |
US8042075B2 (en) | Method, system and application for sequential cofactor-based analysis of netlists |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100527 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120419 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120711 |
|
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: 20120802 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120809 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5065113 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150817 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |