JP6147094B2 - 情報処理装置及び情報処理方法及びプログラム - Google Patents

情報処理装置及び情報処理方法及びプログラム Download PDF

Info

Publication number
JP6147094B2
JP6147094B2 JP2013113774A JP2013113774A JP6147094B2 JP 6147094 B2 JP6147094 B2 JP 6147094B2 JP 2013113774 A JP2013113774 A JP 2013113774A JP 2013113774 A JP2013113774 A JP 2013113774A JP 6147094 B2 JP6147094 B2 JP 6147094B2
Authority
JP
Japan
Prior art keywords
source code
algorithm
verification
variable
verification pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013113774A
Other languages
English (en)
Other versions
JP2014232472A (ja
Inventor
治 遠山
治 遠山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013113774A priority Critical patent/JP6147094B2/ja
Publication of JP2014232472A publication Critical patent/JP2014232472A/ja
Application granted granted Critical
Publication of JP6147094B2 publication Critical patent/JP6147094B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、回路の検証に用いられる検証パターンを生成する技術に関する。
LSI(Large Scale Integration)の大規模化に伴い、LSIの設計を効率的に行うため、HDL(Hardware Description Language)を用いたサイクルレベル記述による設計ではなく、C言語を用いた動作レベル記述でLSIを設計する設計手法が用いられている。
この場合、LSIを設計するHW(Hardware)設計者は、C言語などの汎用プログラミング言語を用い、設計対象のHW動作の中核となるアルゴリズム記述を行なって、そのアルゴリズムの正当性を確認する。
その後、SystemCなどのシステム設計言語を用いて、上記アルゴリズムを実現する回路を設計(記述)する。
そして、アルゴリズム記述の出力結果と回路記述の出力結果を比較して、回路記述の正当性を確認する。
しかしながら、前記アルゴリズム記述と、回路記述では、同じアルゴリズム、同じ記述言語を用いているにも関わらず、同じ検証パターンを使ってその記述の正当性を確認することが出来ない。
なぜならば、回路記述には実際の“物”に実装するための情報、例えば、入出力ピンの定義や、回路が所定の速度で動作するための遅延情報、および、周辺回路とのハンドシェイクを行うためのプロトコル記述など、アルゴリズムとは直接関係の無い時間概念を含んだ動作記述が追加されており、アルゴリズムを検証する検証パターンだけでは回路記述を動かすための情報が不足し、回路記述を動かすことが出来ないためである。
従って、アルゴリズムの正当性を確認することと、回路記述の正当性を確認することは似たような作業でありながら全く別物であり、似たような作業を2度行うことになるため、回路設計の設計効率を低下させる要因となっている。
上記のような問題を解決するため、特許文献1では、アルゴリズム記述と回路記述で共通する変数のペアを抽出し、この抽出結果をもとに変数のペアの値を比較・監視する検証環境を自動生成することで、設計効率の向上を図る手法が記述されている。
また、特許文献2では、回路設計に用いた設計仕様書と検証仕様、レジスタの種類、IF(Interface)、FIFO(FirstIn FirstOut)段数、バス幅などの情報が記載された検証手法DBから、回路設計の正当性を確認する検証パターンを自動生成する手法が記述されている。
特開2006−309666号公報 特開2011−53764号公報
特許文献1の手法及び特許文献2の手法のいずれも、回路記述の正当性を確認する検証パターンは人手、あるいは、自動生成できるものの、検証パターンのひな形はやはり人手で作成する必要があり、回路記述の正当性を確認する検証パターンの作成効率は必ずしも高いとはいえない。
本発明は、このような事情に鑑みたものであり、回路記述の正当性を検証するための検証パターンの作成効率を向上させることを主な目的とする。
本発明に係る情報処理装置は、
検証対象である検証対象回路のアルゴリズムが記述されるアルゴリズムソースコードに含まれる、前記検証対象回路のアルゴリズムを検証するためのパターンであるアルゴリズム検証パターンを解析するアルゴリズム検証パターン解析部と、
前記アルゴリズムソースコード内の前記検証対象回路のアルゴリズムが記述されているアルゴリズム記述を動作合成可能な記述に変更して生成された、前記検証対象回路のHW(Hardware)ソースコードを解析するHWソースコード解析部と、
前記HWソースコードを検証するHWソースコード検証環境が前記HWソースコードを検証する際に使用するタスクが記述されるタスクライブラリと、前記タスクライブラリに記述されるタスクを起動するタイミングが記述されるトリガ情報と、前記アルゴリズム検証パターン解析部の解析結果であるアルゴリズム検証パターン解析結果情報と、前記HWソースコード解析部の解析結果であるHWソースコード解析結果情報とを解析して、前記HWソースコード検証環境が前記HWソースコードを検証するためのパターンであるHWソースコード検証パターンを生成するHWソースコード検証パターン生成部とを有することを特徴とする。
本発明によれば、アルゴリズム検証パターンを生成すれば、直ちにHWソースコードを検証するためのHWソースコード検証パターンを生成することが可能なので、検証効率を向上させることができる。
実施の形態1に係るアルゴリズムモデルの例を示す図。 実施の形態1に係るアルゴリズムをC言語で記述したソースコードの例を示す図。 実施の形態1に係る回路モデルの例を示す図。 実施の形態1に係るアルゴリズムをSystemCで記述したソースコードの例を示す図。 実施の形態1に係る回路モデルを検証するための検証環境の例を示す図。 実施の形態1に係るタスクライブラリの例を示す図。 実施の形態1に係るハードウェア検証支援装置の構成例を示す図。 実施の形態1に係る変数変化順序情報の例を示す図。 実施の形態1に係る変数対アドレス対応情報の例を示す図。 実施の形態1に係る変数対入力ピン対応情報の例を示す図。 実施の形態1に係るトリガ情報の例を示す図。 実施の形態1に係るSystemC検証パターンの例を示す図。 実施の形態1に係るテストベンチが生成する波形の例を示す図。 実施の形態1に係るテストベンチ用のソースコードの例を示す図。 実施の形態1に係るテストベンチ用のソースコードの例を示す図。 実施の形態1に係る変数変化順序解析部の動作例を示すフローチャート図。 実施の形態1に係る変数対入力ピン解析部の動作例を示すフローチャート図。 実施の形態1に係るテストパターン生成部の動作例を示すフローチャート図。 実施の形態1に係るハードウェア検証支援装置のハードウェア構成例を示す図。
実施の形態1.
本実施の形態では、アルゴリズム記述の正当性を確認するためのアルゴリズム検証パターンと、回路記述を検証するための検証環境で定義される検証タスク情報、および信号のトリガ情報から、回路記述の正当性を確認するためのテストパターンを自動生成することで、回路記述用の検証パターン作成効率を向上させる構成を説明する。
本実施の形態では、非常に簡単なアルゴリズムモデルを用いて説明を行う。
これは、説明の簡明化のために簡単なアルゴリズムモデルを用いるのであって、発明の適用対象を限定するものではない。
図1に、本実施の形態で用いる検証対象回路のアルゴリズムモデル(0100)を示す。
図1に示すように、このアルゴリズムモデル(0100)は、関数funcA(0101)が含まれ、関数funcA(0101)の入力として、変数A(0102)と変数B(0103)、出力として変数Z(0104)、また、funcA(0101)のパラメータ変数として変数J(0105)および変数K(0106)が定義されている。
図2は、図1で示したアルゴリズムモデル(0100)を具体的にC言語で記述したアルゴリズムソースコード(0200)を示す。
図2に示すとおり、main関数で、forループ内にfuncA(0101)の検証パターン(符号0201の範囲)を記述している。
図3は、図1で示したアルゴリズムモデル(0100)を回路記述に修正した場合の回路モデル(0300)を示す。
図3に示すように、この回路モデル(0300)は関数funcA(0301)を含む。
また、関数funcA(0301)の入力として変数A(0302)および変数B(0303)、出力として変数Z(0304)が定義されている。
更に、変数A、Bに値を入力するための入力ピンPinA(0307)、PinB(0308)、出力変数Z(0304)の値を出力するピンPinZ(0309)が定義されている。
更に、変数J、Kに値を設定するための外部IF(Interface)としてCPUバスIF(0310)および、クロックピン、リセットピン(0311)が定義されている。
ここで、PinA、PinB、PinZは例えば32bitの幅を持つ入力ピンまたは出力ピンで、CPUバスIFは例えば制御信号として、アクセスリクエストピン、ライトイネーブルピン、アドレスピン、ライトデータピン、リードデータピンを持つ。
図4は、図3で示した回路モデル(0300)を具体的にSystemCで記述したHWソースコード(0400)を示す。
つまり、HWソースコード(0400)は、図2のアルゴリズムソースコード(0200)内の検証対象回路のアルゴリズムが記述されているアルゴリズム記述を動作合成可能な記述に変更して生成された、検証対象回路のHWソースコードである。
図4の符号0401の記述では、PinAとPinBが、funcAと対応付けられている。
funcAは、図2の符号0202の記述では、変数Aと変数Bに対応付けられている。
このように、HWソースコード(0400)では、図2の符号0202の記述を介して、入力ピンの識別子(PinAとPinB)が変数(AとB)に対応付けられている。
図5は、図3で示した回路モデル(0300)を検証するための検証環境の構成を示す。
HWソースコード検証環境であるテストベンチ(0500)の出力する信号により、回路モデル(0300)の入力ピンが様々な組み合わせで駆動されて、回路モデル(0300)が検証される。
また、テストベンチ(0500)は外部からの入力信号en(0502)により、回路モデル(0300)に対して出力する信号のタイミングを制御できる構造となっている。
テストベンチ(0500)は、入力ピンPinA(0307)から変数A(0302)の値を回路モデル(0300)に与える動作、入力ピンPinB(0308)から変数B(0303)の値を与える動作、CPUバスIF(0310)から変数J(0305)の値及び変数K(0306)の値を回路モデル(0300)内のレジスタに書き込む動作をエミュレートする。
テストベンチ(0500)は、図14及び図15に示すテストベンチ用ソースコード1401〜1403を実行して、回路モデル(0300)のHWソースコード(0400)の正当性を検証する。
図14の1402に示すように、後述するハードウェア検証支援装置によりSystemC検証パターンが生成されると、このSystemC検証パターンがテストベンチ用ソースコードに挿入される。
テストベンチ(0500)は、SystemC検証パターンを含めてテストベンチ用ソースコードを実行して、回路モデル(0300)のHWソースコード(0400)の正当性を検証する。
また、図6に示すように、テストベンチ(0500)はCPUバスIF(0310)のように複数の信号が順番に、または同時に駆動することで意味を持つような信号群を操作するための関数をタスクライブラリ(0600)として持つ。
図6に示す例ではタスクライブラリ(0600)に含まれるタスクとして、cpubus_write(0601)タスクとcpubus_read(0602)タスクがあり、cpubus_write(0601)タスクは、0603に示すようにCPUバスIFに含まれる信号を駆動しながら、タスクの引き数(addrとwdat)をアドレス信号、ライトデータ信号にそれぞれ代入している。
以上を用いて、アルゴリズム検証パターンから、HWソースコードの検証パターンを生成する構成を説明する。
なお、HWソースコードの検証パターンは、HWソースコード検証パターン又は回路記述検証パターンともいう。
図7は、アルゴリズムC検証パターン(0700)から回路記述検証パターン(図中のSystemC検証パターン(0712))を生成するハードウェア検証支援装置(070)を示している。
ハードウェア検証支援装置(070)は、変数変化順序解析部(0701)、変数対アドレス解析部(0704)、変数対入力ピン解析部(0707)及びテストパターン生成部(0711)を有する。
変数変化順序解析部(0701)は、アルゴリズムC検証パターン(0700)を解析する。
アルゴリズムC検証パターン(0700)は、図2に示したアルゴリズムソースコード(0200)内の検証パターン(図2の符号0201の範囲)である。
図2に示したように、アルゴリズムC検証パターン(0700)には、アルゴリズムソースコード(0200)内のアルゴリズム記述(図2の符号0200内でfuncAの動作を定義している記述)に含まれる変数A、B、J、Kに値を代入する手順が記述されている。
変数変化順序解析部(0701)は、アルゴリズムC検証パターン(0700)を解析して、各変数と各変数に代入される代入値との対が代入の順序に沿って記述される変数変化順序情報(0702)を生成する。
変数変化順序情報(0702)は、例えば、図8に示す情報である。
図8に示すように、変数変化順序情報(0702)では、変数、A、B、J、Kの値が代入の順序に沿って記述されている。
変数変化順序解析部(0701)は、アルゴリズム検証パターン解析部の例に相当する。
また、変数変化順序情報(0702)は、アルゴリズム検証パターン解析結果情報の例に相当する。
変数対アドレス解析部(0704)は、アルゴリズム記述に含まれる変数J、Kと、テストベンチ(0500)がCPUバスIF(0310)を用いてアクセスするレジスタのアドレスとの対が記述される変数対アドレス対応情報(0705)を生成する。
変数対アドレス対応情報(0705)は、例えば、図9に示す情報である。
図9において、1及び2はレジスタのアドレスを表し、J及びKは変数J及び変数Kを表す。
つまり、変数Jの値は、レジスタの1番のアドレスにライトされ、変数Kの値は、レジスタの2番のアドレスにライトされる。
変数対アドレス解析部(0704)は、SystemCアドレスマップ(0703)から変数対アドレス対応情報(0705)を生成する。
変数対アドレス解析部(0704)は、変数アドレス関係情報生成部の例に相当する。
また、変数対アドレス対応情報(0705)は変数アドレス関係情報の例に相当する。
変数対入力ピン解析部(0707)は、図4に示したHWソースコード(0400)であるSystemCソースコード(0706)を解析し、変数対入力ピン対応情報(0708)を生成する。
変数対入力ピン対応情報(0708)は、例えば、図10に示す情報である。
図10において、A及びBは変数A及び変数Bを表し、PinA及びPinBは入力ピンPinA及び入力ピンPinBを表す。
このように、変数対入力ピン対応情報(0708)には、変数と入力ピンの識別子との対が記述される。
また、図10において、J及びKは変数J及び変数Kを表し、2つのcpubusは、図6のタスクライブラリ(0600)に示されているタスクcpubus_write(addr,wdat)を表す。
このように、変数対入力ピン対応情報(0708)は、変数とタスクライブラリに記述されるライトタスクとの対が記述される。
変数対入力ピン解析部(0707)は、HWソースコード解析部の例に相当する。
また、変数対入力ピン対応情報(0708)は、HWソースコード解析結果情報の例に相当する。
テストパターン生成部(0711)は、変数変化順序情報(0702)、変数対アドレス対応情報(0705)、変数対入力ピン対応情報(0708)、タスクライブラリ(0709)及びトリガ情報(0710)を用いて、SystemC検証パターン(0712)を生成する。
SystemC検証パターン(0712)は、例えば図12の右側の情報である。
なお、図12の左側には、理解を容易にするために、変数変化順序情報(0702)を記述している。
変数変化順序情報(0702)は、図8に示したものと同じである。
テストパターン生成部(0711)の動作及びSystemC検証パターン(0712)の詳細は、後述する。
次に、本実施の形態に係るハードウェア検証支援装置(070)の動作例を説明する。
なお、図16は、変数変化順序解析部(0701)の動作例を示すフローチャートであり、図17は、変数対入力ピン解析部(0707)の動作例を示すフローチャートであり、図18は、テストパターン生成部(0711)の動作例を示すフローチャートである。
まず、変数変化順序解析部(0701)が、アルゴリズムC検証パターン(0700)を入力する(図16のS1601)。
変数変化順序解析部(0701)は、次に、アルゴリズムC検証パターン(0700)に従って各変数の代入値を代入の順に所定の記憶領域に記憶する(S1602)。
図2の例では、変数変化順序解析部(0701)は、変数A、B、J、Kの代入値を代入順に記憶する。
変数変化順序解析部(0701)は、次に、S1602で記憶した変数ごとの代入値を代入の順序に従って記述して、変数変化順序情報(0702)を生成する(S1603)。
以上の手順により、変数変化順序解析部(0701)は、図8に例示する変数変化順序情報(0702)を生成する。
また、変数対アドレス解析部(0704)が、SystemCアドレスマップ(0703)を入力し、SystemCアドレスマップ(0703)から図9に例示する変数対アドレス対応情報(0705)を生成する。
ここで、SystemCアドレスマップ(0703)とは、アルゴリズムモデルが組み込まれるシステムで定義されるシステムのアドレスマップを指す。
また、変数対入力ピン解析部(0707)が、アルゴリズムC検証パターン(0700)とSystemCソースコード(0706)を入力する(図17のS1701)。
変数対入力ピン解析部(0707)は、次に、アルゴリズムC検証パターン(0700)SystemCソースコード(0706)を検索し、変数と入力ピンの識別子との関係が表される記述を検出する(S1702)。
図2及び図4の例では、変数対入力ピン解析部(0707)は、符号0401の記述と符号0202の記述、符号0402の記述を抽出する。
次に、変数対入力ピン解析部(0707)は、変数対入力ピン対応情報(0708)を生成する(S1703)。
より具体的には、変数対入力ピン解析部(0707)は、符号0401の記述と符号0202の記述とから図10の「A:PinA」と「B:PinB」を生成し、符号0402の記述から図10の「J:cpubus」と「K:cpubus」を生成する。
変数変化順序情報(0702)、変数対アドレス対応情報(0705)、変数対入力ピン対応情報(0708)が生成されると、テストパターン生成部(0711)がこれらの情報を入力する(図18のS1801)。
次に、テストパターン生成部(0711)は、タスクライブラリ(0709)及びトリガ情報(0710)を入力する(S1802)。
タスクライブラリ(0709)は、図6に示したように、テストベンチ(0500)で定義されるタスクライブラリ(0600)をハードウェア検証支援装置(070)が読み込める形にデータベース化したものである。
トリガ情報(0710)は、変数変化順序情報(0702)に示される値のうちの特定の値が代入されるタイミングを規定する情報である。
トリガ情報(0710)は、例えば、図11に示すように、代入の値と、そのトリガとなる信号を対にしてリスト化したものである。
図11の例ではA=5が代入されるタイミングは、en信号のアサート時を意味している。
なお、トリガ情報(0710)は図11のリストをテストパターン生成部(0711)が読み込める形にデータベース化したものである。
次に、テストパターン生成部(0711)は、変数対入力ピン対応情報(0708)に基づき、変数変化順序情報(0702)内の変数を用いた記述を、入力ピンの識別子を用いた記述に置換する(S1803)。
具体的には、図12に示すように、変数変化順序情報(0702)内の変数Aへの代入は、PinAへの代入に、変数Bへの代入はPinBへの代入に置き換えられる(図12の(1))。
また、テストパターン生成部(0711)は、変数対アドレス対応情報(0705)及び変数対入力ピン対応情報(0708)に基づき、変数変化順序情報(0702)内の変数を用いた記述を、ライトタスクとアドレスと代入値の識別子を用いた記述に置換する(S1804)。
つまり、CPUバスIF(0310)への代入は、変数対アドレス対応情報(0705)及び変数対入力ピン対応情報(0708)により、CPUバスIF(0310)を操作するタスクライブラリを用いた代入に置き換えられる。
具体的には、図12に示すように、変数変化順序情報(0702)内のJ=5は、cpubus_write(1,5)に、K=10は、cpubus_write(2,10)に置き換えられる(図12の(2))。
なお、cpubus_write(1,5)における「1」は、図9に示されるアドレスである「1」に対応し、「5」は変数Jの代入値である「5」に対応する。
同様に、cpubus_write(2,10)における「2」は、図9に示されるアドレスである「2」に対応し、「10」は変数Kの代入値である「10」に対応する。
次に、テストパターン生成部(0711)は、トリガ情報(0710)に基づき、変数変化順序情報(0702)に待機指示記述を挿入する(S1805)。
待機指示記述は、トリガ情報(0710)に記述されるタイミングにて所定の入力信号の入力を待つ旨の記述である。
具体的には、トリガ情報(0710)により、A=5を代入するタイミングの直前に、en信号の立ち上がりを待つ待機指示記述が挿入される(図12の(3))。
最後に、テストパターン生成部(0711)は、以上の手順にて変更された変数変化順序情報(0702)を、SystemC検証パターン(0712)として出力する(S1806)。
この結果、テストベンチ用ソースコード(図14、図15)に、SystemC検証パターン(0712)を挿入することができる。
テストベンチ(0500)は、SystemC検証パターン(0712)が挿入された後のテストベンチ用ソースコードの実行ファイルを実行して、図13に示すような波形を生成する。
そして、図13の波形を用いて、図3で示した回路モデル(0300)を検証することが可能となる。
このように、本実施の形態によれば、アルゴリズムCの検証に用いる検証パターンから、回路モデルを検証するための検証パターンを自動的に生成することが可能となる。
このため、アルゴリズムの正当性を確認する検証パターンを作れば、直ちに回路モデルの正当性を検証するパターンを生成することが可能となるので、従来の検証手法に比較して回路モデルの検証効率を向上させることができる。
以上、本実施の形態では、アルゴリズムが記述されたアルゴリズムソースコードを検証するアルゴリズム検証パターンから、アルゴリズム記述を元に作成され動作合成可能な記述に変更されたHWソースコードを検証するHWソースコード検証パターンを自動的に生成するハードウェア検証支援装置を説明した。
より具体的には、
アルゴリズム検証パターンを解析するアルゴリズム検証パターン解析部と、
HWソースコードを解析するHWソースコード解析部と、
アルゴリズム検証パターン解析部の解析結果、HWソースコード解析部の解析結果、HWソースコードを検証するHWソースコード検証環境で使用される検証タスクライブラリ、検証タスクライブラリに含まれる検証タスクを起動するタイミングを記述したトリガ情報から、HWソースコードを検証するHWソースコード検証パターンを自動生成するHWソースコード検証パターン生成部を備えたハードウェア検証支援装置を説明した。
また、アルゴリズム検証パターン解析部が、アルゴリズム検証パターンから、検証パターン内でアルゴリズムソースを動作させるために使用している変数群と、それら変数群の変数に対してどのような値がどのような順番で代入されたかを解析し、その解析結果を出力することを説明した。
また、HWソースコード解析部が、HWソースコードに記述される入力ピンと、入力ピンで制御される変数群、および、HWソースコードに記述されるアドレスマップと、アドレスマップに対応する変数群を解析し、その解析結果を出力することを説明した。
最後に、本実施の形態に示したハードウェア検証支援装置(070)のハードウェア構成例を図19を参照して説明する。
ハードウェア検証支援装置(070)はコンピュータであり、ハードウェア検証支援装置(070)の各要素をプログラムで実現することができる。
ハードウェア検証支援装置(070)のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えばNIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図7に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図7に示す「〜部」の機能を実現するプログラムを実行する。
また、アプリケーション108も外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
また、本実施の形態の説明において、「〜の判断」、「〜の解析」、「〜の抽出」、「〜の特定」、「〜の置換」、「〜の挿入」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置903にファイルとして記憶されてもよい。
なお、図19の構成は、あくまでもハードウェア検証支援装置(070)のハードウェア構成の一例を示すものであり、ハードウェア検証支援装置(070)のハードウェア構成は図19に記載の構成に限らず、他の構成であってもよい。
また、本実施の形態に示す手順により、本発明に係る情報処理方法を実現可能である。
070 ハードウェア検証支援装置、0100 アルゴリズムモデル、0200 アルゴリズムソースコード、0300 回路モデル、0400 HWソースコード、0500 テストベンチ、0600 タスクライブラリ、0700 アルゴリズムC検証パターン、0701 変数変化順序解析部、0702 変数変化順序情報、0703 SystemCアドレスマップ、0704 変数対アドレス解析部、0705 変数対アドレス対応情報、0706 SystemCソースコード、0707 変数対入力ピン解析部、0708 変数対入力ピン対応情報、0709 タスクライブラリ、0710 トリガ情報、0711 テストパターン生成部。

Claims (7)

  1. 検証対象である検証対象回路のアルゴリズムが記述されるアルゴリズムソースコードに含まれる、前記検証対象回路のアルゴリズムを検証するためのパターンであるアルゴリズム検証パターンを解析するアルゴリズム検証パターン解析部と、
    前記アルゴリズムソースコード内の前記検証対象回路のアルゴリズムが記述されているアルゴリズム記述を動作合成可能な記述に変更して生成された、前記検証対象回路のHW(Hardware)ソースコードを解析するHWソースコード解析部と、
    前記HWソースコードを検証するHWソースコード検証環境が前記HWソースコードを検証する際に使用するタスクが記述されるタスクライブラリと、前記タスクライブラリに記述されるタスクを起動するタイミングが記述されるトリガ情報と、前記アルゴリズム検証パターン解析部の解析結果であるアルゴリズム検証パターン解析結果情報と、前記HWソースコード解析部の解析結果であるHWソースコード解析結果情報とを解析して、前記HWソースコード検証環境が前記HWソースコードを検証するためのパターンであるHWソースコード検証パターンを生成するHWソースコード検証パターン生成部とを有することを特徴とする情報処理装置。
  2. 前記アルゴリズム検証パターン解析部は、
    前記アルゴリズム記述に含まれる変数に値を代入する手順が記述されているアルゴリズム検証パターンを解析し、変数と変数に代入される代入値との対が代入の順序に沿って記述されるアルゴリズム検証パターン解析結果情報を生成し、
    前記HWソースコード解析部は、
    前記検証対象回路の入力ピンの識別子が前記アルゴリズム記述に含まれる変数と対応付けられているHWソースコードを解析し、前記HWソースコードにおいて対応付けられている変数と入力ピンの識別子との対が記述されるHWソースコード解析結果情報を生成し、
    前記HWソースコード検証パターン生成部は、
    前記アルゴリズム検証パターン解析結果情報と前記HWソースコード解析結果情報とを解析し、対になっている変数が共通している入力ピンの識別子と代入値とを対応付けて、入力ピンの識別子と代入値との対が代入の順序に沿って記述されるHWソースコード検証パターンを生成することを特徴とする請求項1に記載の情報処理装置。
  3. 前記アルゴリズム検証パターン解析部は、
    前記アルゴリズム記述に含まれる変数に値を代入する手順が記述されているアルゴリズム検証パターンを解析し、変数と変数に代入される代入値との対が代入の順序に沿って記述されるアルゴリズム検証パターン解析結果情報を生成し、
    前記HWソースコード解析部は、
    前記検証対象回路の入力ピンの識別子が前記アルゴリズム記述に含まれる変数と対応付けられ、更に、前記タスクライブラリに記述されるタスクが前記アルゴリズム記述に含まれる変数と対応付けられているHWソースコードを解析し、前記HWソースコードにおいて対応付けられている変数と入力ピンの識別子との対が記述され、更に、前記HWソースコードにおいて対応付けられている変数とタスクとの対が記述されるHWソースコード解析結果情報を生成し、
    前記情報処理装置は、更に、
    前記アルゴリズム記述に含まれる変数と、前記HWソースコード検証環境がアクセスする前記検証対象回路内の記憶領域のアドレスとの対が記述される変数アドレス関係情報を生成する変数アドレス関係情報生成部を有し、
    前記HWソースコード検証パターン生成部は、
    前記アルゴリズム検証パターン解析結果情報と前記HWソースコード解析結果情報と前記変数アドレス関係情報とを解析し、
    対になっている変数が共通している入力ピンの識別子と代入値とを対応付け、
    対になっている変数が共通しているタスクとアドレスと代入値とを対応付け、
    入力ピンの識別子と代入値との対と、タスクとアドレスと代入値との組とが、代入の順序に沿って記述されるHWソースコード検証パターンを生成することを特徴とする請求項1に記載の情報処理装置。
  4. 前記HWソースコード解析部は、
    前記タスクライブラリに記述される、前記HWソースコード検証環境から前記検証対象回路内の記憶領域に値がライトされるライトタスクが前記アルゴリズム記述に含まれる変数と対応付けられて記述されているHWソースコードを解析し、
    前記HWソースコードにおいて対応付けられている変数とライトタスクとの対が記述されるHWソースコード解析結果情報を生成し、
    前記変数アドレス関係情報生成部は、
    前記アルゴリズム記述に含まれる変数と、前記HWソースコード検証環境がライトタスクの実行の際に値をライトする、前記検証対象回路内の記憶領域のアドレスとの対が記述される変数アドレス関係情報を生成し、
    前記HWソースコード検証パターン生成部は、
    対になっている変数が共通しているライトタスクとアドレスと代入値とを対応付け、
    入力ピンの識別子と代入値との対と、ライトタスクとアドレスと代入値との組とが、代入の順序に沿って記述されるHWソースコード検証パターンを生成することを特徴とする請求項3に記載の情報処理装置。
  5. 前記HWソースコード検証パターン生成部は、
    前記トリガ情報に記述されるタイミングにて所定の入力信号の入力を待つことが記述されるHWソースコード検証パターンを生成することを特徴とする請求項1〜4のいずれかに記載の情報処理装置。
  6. コンピュータが、検証対象である検証対象回路のアルゴリズムが記述されるアルゴリズムソースコードに含まれる、前記検証対象回路のアルゴリズムを検証するためのパターンであるアルゴリズム検証パターンを解析するアルゴリズム検証パターン解析ステップと、
    前記コンピュータが、前記アルゴリズムソースコード内の前記検証対象回路のアルゴリズムが記述されているアルゴリズム記述を動作合成可能な記述に変更して生成された、前記検証対象回路のHW(Hardware)ソースコードを解析するHWソースコード解析ステップと、
    前記コンピュータが、前記HWソースコードを検証するHWソースコード検証環境が前記HWソースコードを検証する際に使用するタスクが記述されるタスクライブラリと、前記タスクライブラリに記述されるタスクを起動するタイミングが記述されるトリガ情報と、前記アルゴリズム検証パターン解析ステップの解析結果であるアルゴリズム検証パターン解析結果情報と、前記HWソースコード解析ステップの解析結果であるHWソースコード解析結果情報とを解析して、前記HWソースコード検証環境が前記HWソースコードを検証するためのパターンであるHWソースコード検証パターンを生成するHWソースコード検証パターン生成ステップとを有することを特徴とする情報処理方法。
  7. コンピュータを、請求項1に記載された情報処理装置として機能させることを特徴とするプログラム。
JP2013113774A 2013-05-30 2013-05-30 情報処理装置及び情報処理方法及びプログラム Expired - Fee Related JP6147094B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013113774A JP6147094B2 (ja) 2013-05-30 2013-05-30 情報処理装置及び情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013113774A JP6147094B2 (ja) 2013-05-30 2013-05-30 情報処理装置及び情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2014232472A JP2014232472A (ja) 2014-12-11
JP6147094B2 true JP6147094B2 (ja) 2017-06-14

Family

ID=52125799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013113774A Expired - Fee Related JP6147094B2 (ja) 2013-05-30 2013-05-30 情報処理装置及び情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6147094B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0696155A (ja) * 1992-09-10 1994-04-08 Nec Corp 論理回路シミュレーション用パターン生成方式
JP3373641B2 (ja) * 1994-03-14 2003-02-04 株式会社東芝 テスト系列生成装置
JP4077578B2 (ja) * 1999-04-30 2008-04-16 松下電器産業株式会社 集積回路装置の設計方法
JP4251964B2 (ja) * 2003-11-10 2009-04-08 富士通マイクロエレクトロニクス株式会社 検証装置、検証方法およびプログラム

Also Published As

Publication number Publication date
JP2014232472A (ja) 2014-12-11

Similar Documents

Publication Publication Date Title
Thacker et al. Automatic abstraction for verification of cyber-physical systems
KR20210149045A (ko) 인공 지능 칩 검증
US10635555B2 (en) Verifying a graph-based coherency verification tool
US10380283B2 (en) Functional verification with machine learning
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
US8782581B2 (en) Test bench hierarchy and connectivity in a debugging environment
JP2017084082A (ja) シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法
US9235670B2 (en) Method and an apparatus for automatic generation of verification environment for processor design and verification
JP4140917B2 (ja) 検証作業支援システム及びその方法
US20140331195A1 (en) Test bench hierarchy and connectivity in a debugging environment
US9690681B1 (en) Method and system for automatically generating executable system-level tests
US10592623B2 (en) Assertion statement check and debug
TW202411872A (zh) 驗證系統、驗證方法、電子設備以及儲存媒體
JP2000207440A (ja) 半導体集積回路の設計検証装置、方法及び記憶媒体
US8990741B2 (en) Circuit design support device, circuit design support method and program
US10528691B1 (en) Method and system for automated selection of a subset of plurality of validation tests
JP6147094B2 (ja) 情報処理装置及び情報処理方法及びプログラム
US12001771B2 (en) Variant model-based compilation for analog simulation
US9823305B1 (en) Method and system for generating post-silicon validation tests
US20150149972A1 (en) Method, design apparatus, and program product for incremental design space exploration
JP5120103B2 (ja) デバッグ方法およびデバッグプログラム
CN117313650B (zh) 一种芯片测试验证方法及其应用装置
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
JP5390464B2 (ja) シミュレーション装置、シミュレーション装置の制御方法およびプログラム
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170117

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: 20170418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170516

R150 Certificate of patent or registration of utility model

Ref document number: 6147094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees