JP2006018429A - 機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体 - Google Patents
機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2006018429A JP2006018429A JP2004193775A JP2004193775A JP2006018429A JP 2006018429 A JP2006018429 A JP 2006018429A JP 2004193775 A JP2004193775 A JP 2004193775A JP 2004193775 A JP2004193775 A JP 2004193775A JP 2006018429 A JP2006018429 A JP 2006018429A
- Authority
- JP
- Japan
- Prior art keywords
- model
- bus
- state information
- operation state
- timing constraint
- 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
【課題】 多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合に、最適な検証効率を実現することができる機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体を提供する。
【解決手段】 一のバスモデル104は、実際にモデル50に対して動作した場合、動作したことを示す動作状態情報を他のバスモデル105に対して送って認識させ、当該動作状態情報を受け取った他のバスモデル105は、受け取った動作状態情報を基に動作機能を選択してモデル50に対して動作する。これにより、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することができるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することができる。
【選択図】 図2
【解決手段】 一のバスモデル104は、実際にモデル50に対して動作した場合、動作したことを示す動作状態情報を他のバスモデル105に対して送って認識させ、当該動作状態情報を受け取った他のバスモデル105は、受け取った動作状態情報を基に動作機能を選択してモデル50に対して動作する。これにより、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することができるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することができる。
【選択図】 図2
Description
本発明は、ハードウェア記述言語により設計されたモデルについての機能検証を、テストベンチを用いたシミュレーション結果に基づいて行う機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体に関する。
近年、ASIC(Application Specified IC)の設計手法は、その回路規模の増大に伴い、回路図による設計から抽象度の高いHDL(ハードウェア記述言語)によるディジタル回路設計へと移ってきている。このHDLにより設計される回路図は、きわめて膨大であり、動作がきわめて複雑になる。そのため、HDLにより設計された回路は、HDLで記述された他のモジュールと合わせてシミュレーション等を行うHDLシミュレータを用いることにより、機能検証作業を行うことが必要となっている。
より詳細には、HDLシミュレータは工程の全ての局面で使用されるものであり、各レベルでのシミュレーション結果に基本的な差がないことを確認するものである。このようなHDLシミュレータは、検証の対象とするHDLモデル(ASIC)に対して、それをテストするためのテストベンチと呼ぶ新たなHDL記述を追加する。テストベンチは、テスト・スティミュラス(テスト・ベクター)を含み、これをテストの対象とするHDLモデル(ASIC)に与え、シミュレーションを自動実行させるような手順をHDLで記述するものである。すなわち、図6に示すような、テストベンチ・モジュールを最上位とする1つのモデルが完成することになる。これをコンパイル、リンクしてコンピュータ上の実行モジュールを作成し、シミュレータ・コントロール・パネル上で実行をコントロールしながら波形を観察することにより、機能検証を行う。
例えば、特許文献1には、テストベンチを用いてコンピュータシミュレーションすることにより、半導体集積回路装置の機能を検証するテスト用プログラムが提案されている。
また、ASICを検証するテストベンチの技術向上、精度向上、生産性向上などは重要な課題になっており、いくつかの提案がなされている。提案の1つに、ASICにバス接続されるバスモデルと各種設定を行うテストシナリオを別物として取り扱うことで、テストベンチの生産性や再利用性を向上させるとともに、複数のデータパスの存在するASICにおける同時動作の検証を行えるテストベンチを提供するものがある。
ところで、複数のデータパスの存在するASICにおける同時動作の検証を行えるテストベンチにおいては、ASICを含むシステムの動作制約でバスモデル1の動作開始条件に、別のバスモデル2の特定動作が条件になるものがある。この場合、バスモデル2の起動を実行した後、一定時間のWAIT動作を行い、バスモデル1の動作起動を実行することになる。
しかし、多くのI/Fを有しているASICは、多くのバスモデルが接続され、またそれぞれのバスモデルが並列動作を行う場合、バスモデル1の動作開始条件になる別のバスモデルの特定動作の開始時間がその他のバスモデルの並列動作の状態により大きく変動してしまい、必要なWAIT動作の時間が変動する。この場合、WAIT動作の時間をかなり大きく設定すれば対応できるが、各バスモデルの状態によっては設定されたWAIT動作時間よりはるかに早くバスモデル2は特定動作を開始している場合もあり、バスモデル1の動作開始は必要以上に待つことになる。すなわち、上記の手法を採った場合には、検証効率が低下することになり、検証時間が増大し、生産性が低下することになる。
本発明は、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合に、最適な検証効率を実現することができる機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体を提供することを目的とする。
請求項1記載の発明の機能検証装置は、ハードウェア記述言語により設計されたモデルについての機能検証を、テストベンチを用いたシミュレーション結果に基づいて行う機能検証装置において、前記テストベンチは、前記モデルに備えられた複数のI/F系バスに応答もしくはアクセスするための複数のバスモデルと、前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、前記モデルにバス接続される仮想的なCPUであるCPUバスモデルと、を備えており、一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する。
したがって、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することが可能になるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することが可能になる。
請求項2記載の発明は、請求項1記載の機能検証装置において、前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことが可能になるので、効率良く検証精度を向上させることが可能になる。
請求項3記載の発明は、請求項1記載の機能検証装置において、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率良く向上させることが可能になる。
請求項4記載の発明は、請求項1記載の機能検証装置において、前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項5記載の発明は、請求項2または3記載の機能検証装置において、前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項6記載の発明は、請求項5記載の機能検証装置において、前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項7記載の発明のテストベンチは、ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションを行うテストベンチにおいて、前記モデルに備えられた複数のI/F系バスに応答もしくはアクセスするための複数のバスモデルと、前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、前記モデルにバス接続される仮想的なCPUであるCPUバスモデルと、を備えており、一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する。
したがって、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することが可能になるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することが可能になる。
請求項8記載の発明は、請求項7記載のテストベンチにおいて、前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことが可能になるので、効率良く検証精度を向上させることが可能になる。
請求項9記載の発明は、請求項7記載のテストベンチにおいて、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率良く向上させることが可能になる。
請求項10記載の発明は、請求項7記載のテストベンチにおいて、前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項11記載の発明は、請求項8または9記載のテストベンチにおいて、前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項12記載の発明は、請求項11記載のテストベンチにおいて、前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項13記載の発明のシミュレータプログラムは、ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションをコンピュータに実行させるコンピュータに読取り可能なシミュレータプログラムにおいて、前記モデルに備えられた複数のI/F系バスに応答もしくはアクセスするための複数のバスモデルを生成する機能と、前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオを生成する機能と、前記モデルにバス接続される仮想的なCPUであるCPUバスモデルを生成する機能と、を前記コンピュータに実行させ、一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する。
したがって、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合であっても、バスモデル間の動作制約を意識せずに検証することが可能になるので、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現することが可能になる。
請求項14記載の発明は、請求項13記載のシミュレータプログラムにおいて、前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことが可能になるので、効率良く検証精度を向上させることが可能になる。
請求項15記載の発明は、請求項13記載のシミュレータプログラムにおいて、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率良く向上させることが可能になる。
請求項16記載の発明は、請求項13記載のシミュレータプログラムにおいて、前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項17記載の発明は、請求項14または15記載のシミュレータプログラムにおいて、前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項18記載の発明は、請求項17記載のシミュレータプログラムにおいて、前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する。
したがって、テストベンチの機能カバレッジを単独動作、並列動作で行うことが可能になるので、テストベンチの品質を確保、向上することが可能になる。
請求項19記載の発明の記憶媒体は、請求項13ないし18の何れか一記載のコンピュータに読取り可能なシミュレータプログラムを格納した。
したがって、請求項13ないし18の何れか一記載の発明と同様な作用を奏する。
本発明によれば、多くのバスモデルが接続され、それぞれのバスモデルが並列動作を行う場合に、最適な検証効率を実現することができる。
[第一の実施の形態]
本発明の第一の実施の形態を図1ないし図3に基づいて説明する。
本発明の第一の実施の形態を図1ないし図3に基づいて説明する。
図1は、本発明が適用される機能検証装置1のハードウェア構成を概略的に示すブロック図である。図1に示すように、機能検証装置1は、例えばパーソナルコンピュータやワークステーションであり、コンピュータの主要部であって各部を集中的に制御するCPU(Central Processing Unit)2を備えている。このCPU2には、BIOSなどを記憶した読出し専用メモリであるROM(Read Only Memory)3と、各種データを書換え可能に記憶するRAM(Random Access Memory)4とがバス5で接続されている。
さらにバス5には、各種のプログラム等を格納するHDD(Hard Disk Drive)6と、配布されたプログラムであるコンピュータソフトウェアを読み取るための機構としてCD(Compact Disc)−ROM7を読み取るCD−ROMドライブ8と、機能検証装置1とネットワーク9との通信を司る通信制御装置10と、機能検証時の各種操作指示を行うキーボードやマウスなどの入力装置11と、機能検証時のシミュレーション結果等を表示するCRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などの表示装置12とが、図示しないI/Oを介して接続されている。
RAM4は、各種データを書換え可能に記憶する性質を有していることから、CPU2の作業エリアとして機能してバッファ等の役割を果たす。
図1に示すCD−ROM7は、この発明の記憶媒体を実施するものであり、OS(Operating System)や各種のプログラムが記憶されている。CPU2は、CD−ROM7に記憶されているプログラムをCD−ROMドライブ8で読み取り、HDD6にインストールする。
なお、記憶媒体としては、CD−ROM7のみならず、DVDなどの各種の光ディスク、各種光磁気ディスク、フレキシブル・ディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置10を介してインターネットなどのネットワーク9からプログラムをダウンロードし、HDD6にインストールするようにしてもよい。この場合に、送信側のサーバでプログラムを記憶している記憶装置も、この発明の記憶媒体である。なお、プログラムは、所定のOS(Operating System)上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
このシステム全体の動作を制御するCPU2は、このシステムの主記憶として使用されるHDD6上にロードされたプログラムに基づいて各種処理を実行する。
次に、機能検証装置1のHDD6にインストールされている各種のプログラムがCPU2に実行させる機能のうち、本実施の形態の機能検証装置1が備える特長的な機能について説明する。ここでは、HDLシミュレータプログラムがCPU2に実行させるHDLシミュレータ機能について説明する。HDLシミュレータ機能は、概略的には、HDL(ハードウェア記述言語)により設計されたモデルに対してシミュレーションを行うものである。
図2は、HDLシミュレータ100のテストベンチ101と検証対象ASIC50との関連構成を概略的に示す機能ブロック図である。HDLシミュレータ100は、HDLにより設計されたモデルである検証対象ASIC50に対するHDLシミュレータ機能を発揮するものである。図2に示すように、HDLシミュレータ100のテストベンチ101は、第1テストシナリオ102と、第2テストシナリオ103と、第1バスモデル104と、第2バスモデル105と、CPUバスモデル106とで構成される。このようなテストベンチ101は、検証対象ASIC50を検証するために、Verilog、VHDL、C/C++、E言語、Vera等の言語を用いてコーディングされたものである。
第1バスモデル104及び第2バスモデル105は、検証対象ASIC50の対応するI/F系バス(図示せず)に応答もしくはアクセスするためのものである。また、詳細は後述するが、第1バスモデル104と第2バスモデル105とは、それぞれのバスモデルの動作状態情報を相互に伝達可能に構成されている。
CPUバスモデル106は、検証対象ASIC50に接続されるCPU(図示せず)をソフトウェアでモデル化したもの(ソフトウェアで書かれた仮想的なCPU)である。
第1テストシナリオ102は第1バスモデル104に対応したテストシナリオであり、第2テストシナリオ103は第2バスモデル105に対応したテストシナリオである。第1テストシナリオ102及び第2テストシナリオ103は、検証対象ASIC50に種々の動作をさせるためのプログラムであり、CPUバスモデル106を経由して検証対象ASIC50へのレジスタ設定や第1バスモデル104又は第2バスモデル105への動作機能設定等を行う。検証対象ASIC50にはレジスタ(ASICの種々動作を司る機能)が内蔵されており、このレジスタに対する第1テストシナリオ102及び第2テストシナリオ103からのアクセス又は指示によって、検証対象ASIC50が所望の動作を実行するのである。
ここで、バスモデルの内部概念について詳述する。図3は、バスモデルの内部概念を示す機能ブロック図である。図3に示すように、第1バスモデル104及び第2バスモデル105は、機能アービタ110と、動作機能選択部111と、検証対象ASIC50に対する動作機能1〜動作機能Nを格納する動作機能群部112とで構成されている。以下、各部について説明する。
所定のバスモデル(第1バスモデル104)の機能アービタ110は、動作機能群部112内の動作機能1〜動作機能Nのどれを優先するかを決定し、動作機能選択部111に選択情報を送る。その際、他のバスモデル(第2バスモデル105)の動作状態に起動制約が存在するものは、動作状態情報を選択条件に追加する。
動作機能選択部111は、機能アービタ110から送られた選択情報に従い、動作機能群部112内の動作機能1〜動作機能Nのどれかを選択する。
選択された動作機能群部112の動作機能1〜動作機能Nは、実際に検証対象ASIC50に対して動作した場合、他のバスモデル(第2バスモデル105)の機能アービタ110に対して動作したことを示す動作状態情報を送る。
他のバスモデル(第2バスモデル105)の機能アービタ110は、バスモデル(第1バスモデル104)の機能アービタ110から動作機能1〜動作機能Nの何れかが動作したことを示す動作状態情報を受け取ると、受け取った動作状態情報を基にアービトレーションを行い、動作機能選択部111に選択情報を送る。
また、動作機能1〜動作機能Nの何れかが動作したことを示す動作状態情報を受け取った機能アービタ110は、受け取った動作状態情報の蓄積を行う。このようにして各機能アービタ110が蓄積した動作状態情報を出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
以上のような動作を繰り返し、条件により選択する動作機能を順次変更していく。なお、アービトレーション条件は限定されない。
これにより、バスモデルがその動作状態情報を基に動作することにより、異なるバスモデル間で機能同期とることが可能になり、複雑な検証動作でもバスモデル間の動作制約を意識せずに検証することができるので、検証効率を向上させることができる。
すなわち、他のバスモデルの動作開始条件になる特定動作をもつバスモデルの動作状態情報を対象となるバスモデルに認識させ、バスモデルがその動作状態情報を基に動作することにより、一定時間のWAIT動作そのものが必要なくなり、また並列動作による状態変動を気にせず、最適な検証効率を実現できるようになる。
なお、本実施の形態においては、バスモデル及びテストシナリオの数を“2”としたが、これに限るものではない。
[第二の実施の形態]
本発明の第二の実施の形態を図4に基づいて説明する。なお、前述した第一の実施の形態と同一部分は同一符号で示し説明も省略する。本実施の形態は、前述した第一の実施の形態とは、バスモデルの動作状態情報をテストシナリオで認識させ、バスモデルの動作を制御する点で異なるものである。
本発明の第二の実施の形態を図4に基づいて説明する。なお、前述した第一の実施の形態と同一部分は同一符号で示し説明も省略する。本実施の形態は、前述した第一の実施の形態とは、バスモデルの動作状態情報をテストシナリオで認識させ、バスモデルの動作を制御する点で異なるものである。
図4は、テストシナリオとバスモデルとの機能選択関連の内部概念を示す機能ブロック図である。図4に示すように、第1テストシナリオ102は、第1バスモデル104の機能アービタ110から、動作機能1〜動作機能Nの動作状態情報を受け取る。動作状態情報を受け取った第1テストシナリオ102は、機能同期をとって最適に動作しようとする第1バスモデル104に対してタイミング制約情報を付加させる場合、第1タイミング選択部113で設定されたタイミング制約情報を機能組み合わせ選択部114に伝える。
機能組合せ選択部114は、その信号を基に第1バスモデル104の機能アービタ110に情報を送る。この場合、機能組合せ選択部114は、他のバスモデル(第2バスモデル105)の動作機能組合せがない状態である。
そして、第1バスモデル104の機能アービタ110は、第1テストシナリオ102からのその信号情報を追加し動作選択する。
また、動作機能1〜動作機能Nの何れかが動作したことを示す動作状態情報及びタイミング制約情報を受け取った機能アービタ110は、受け取った動作状態情報及びタイミング制約情報の蓄積を行う。このようにして機能アービタ110が蓄積した動作状態情報及びタイミング制約情報を出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
同様に、第2テストシナリオ103は、第2バスモデル105の機能アービタ110から、動作機能1〜動作機能Nの動作状態情報を受け取る。動作状態情報を受け取った第2テストシナリオ103は、機能同期をとって最適に動作しようとする第2バスモデル105に対してタイミング制約情報を付加させる場合、第2タイミング選択部115で設定されたタイミング制約情報を機能組み合わせ選択部116に伝える。
機能組合せ選択部116は、その信号を基に第2バスモデル105の機能アービタ110に情報を送る。この場合、機能組合せ選択部114は、他のバスモデル(第1バスモデル104)の動作機能組合せがない状態である。
また、動作機能1〜動作機能Nの何れかが動作したことを示す動作状態情報及びタイミング制約情報を受け取った機能アービタ110は、受け取った動作状態情報及びタイミング制約情報の蓄積を行う。このようにして機能アービタ110が蓄積した動作状態情報及びタイミング制約情報を出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
そして、第2バスモデル105の機能アービタ110は、第2テストシナリオ103からのその信号情報を追加し動作選択する。
これにより、バスモデルの動作状態情報をテストシナリオでも認識し、テストシナリオが有している情報もバスモデルの動作開始条件に追加することにより、最適な状態以外を、他の並列動作の状態に依存せず簡単に作りだすことができるようになり、効率良く検証精度を向上させることができる。
なお、本実施の形態においては、バスモデル及びテストシナリオの数を“2”としたが、これに限るものではない。
[第三の実施の形態]
本発明の第三の実施の形態を図5に基づいて説明する。なお、前述した第一の実施の形態または第二の実施の形態と同一部分は同一符号で示し説明も省略する。本実施の形態は、前述した第一の実施の形態または第二の実施の形態とは、複数のバスモデルの動作状態情報をテストシナリオで認識し、動作状態情報の組み合わせを確認しながら、各バスモデルの動作を制御する点で異なるものである。
本発明の第三の実施の形態を図5に基づいて説明する。なお、前述した第一の実施の形態または第二の実施の形態と同一部分は同一符号で示し説明も省略する。本実施の形態は、前述した第一の実施の形態または第二の実施の形態とは、複数のバスモデルの動作状態情報をテストシナリオで認識し、動作状態情報の組み合わせを確認しながら、各バスモデルの動作を制御する点で異なるものである。
図5は、テストシナリオとバスモデルとの機能選択関連の内部概念を示す機能ブロック図である。なお、図5においては、第1テストシナリオ102及び第2テストシナリオ103を包含して示しており、テストシナリオ107としている。図5に示すように、テストシナリオ107は、第1バスモデル104の機能アービタ110から、動作機能1〜動作機能Nの動作状態情報を受け取る。加えて、テストシナリオ107は、第2バスモデル105の機能アービタ110から、動作機能1〜動作機能Nの動作状態情報を受け取る。
各バスモデル104,105の機能アービタ110から動作状態情報をそれぞれ受け取ったテストシナリオ107は、第1バスモデル104の動作機能と第2バスモデル105の動作機能との組合せを、機能組合せ選択部114において選択する。そして、この動作状態情報の組み合わせに応じて、第1タイミング選択部113及び第2タイミング選択部115でタイミング制約情報をそれぞれ選択し、機能組み合わせ選択部114に伝える。機能組合せ選択部114は、第1タイミング選択部113で選択されたタイミング制約情報及び第2タイミング選択部115で選択されたタイミング制約情報を追加し、その選択された情報を基に、第1バスモデル104の機能アービタ110と第2バスモデル105の機能アービタ110とに情報を送る。また、機能組合せ選択部114は、動作した機能組合せ情報の蓄積を行う。このようにして機能組合せ選択部114が蓄積した機能組合せ情報を各機能アービタ110が蓄積した動作状態情報及びタイミング制約情報とともに出力することにより、検証で実際に動作した情報が確認できるようになり、テストベンチの機能カバレッジを確認することができ、テストベンチの品質を確保、向上させることができる。
そして、第1バスモデル104の機能アービタ110と第2バスモデル105の機能アービタ110とは、テストシナリオ107からのその信号情報も含め動作機能1〜動作機能Nの動作選択情報をそれぞれの動作機能選択部111に送るようになる。
これにより、動作組合せを確認しながら検証できるようになり、意図した組合せを制御できることで、並列動作での検証精度を効率よく向上させることができる。
すなわち、I/Fに依存するバスモデルは、対応するI/Fの動作状態を認識しながら動作、振る舞いを独立して行う。そのため、他のI/Fがどのようは動作状態にあるかは関係なく動作するが、並列動作を行う場合、関連するI/F間の動作状態の組み合せが発生する。そこで、各バスモデルの複数の動作状態情報をテストシナリオで認識させ、動作組合せを確認しながら検証できるようにすることで、意図した組合せを制御できるようになり、並列動作での検証精度を効率よく向上させることができる。
なお、本実施の形態においては、バスモデル及びテストシナリオの数を“2”としたが、これに限るものではない。
1 機能検証装置
7 記憶媒体
50 ハードウェア記述言語により設計されたモデル
101 テストベンチ
102,103 テストシナリオ
104,105 バスモデル
106 CPUバスモデル
7 記憶媒体
50 ハードウェア記述言語により設計されたモデル
101 テストベンチ
102,103 テストシナリオ
104,105 バスモデル
106 CPUバスモデル
Claims (19)
- ハードウェア記述言語により設計されたモデルについての機能検証を、テストベンチを用いたシミュレーション結果に基づいて行う機能検証装置において、
前記テストベンチは、
前記モデルに備えられた複数のI/F系バスに応答もしくはアクセスするための複数のバスモデルと、
前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、
前記モデルにバス接続される仮想的なCPUであるCPUバスモデルと、
を備えており、
一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、
当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する、
ことを特徴とする機能検証装置。 - 前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、
タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項1記載の機能検証装置。 - 前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項1記載の機能検証装置。 - 前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する、
ことを特徴とする請求項1記載の機能検証装置。 - 前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する、
ことを特徴とする請求項2または3記載の機能検証装置。 - 前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する、
ことを特徴とする請求項5記載の機能検証装置。 - ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションを行うテストベンチにおいて、
前記モデルに備えられた複数のI/F系バスに応答もしくはアクセスするための複数のバスモデルと、
前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオと、
前記モデルにバス接続される仮想的なCPUであるCPUバスモデルと、
を備えており、
一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、
当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する、
ことを特徴とするテストベンチ。 - 前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、
タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項7記載のテストベンチ。 - 前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項7記載のテストベンチ。 - 前記各バスモデルは、受け取った動作状態情報の蓄積を行い、蓄積した動作状態情報を出力する、
ことを特徴とする請求項7記載のテストベンチ。 - 前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する、
ことを特徴とする請求項8または9記載のテストベンチ。 - 前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する、
ことを特徴とする請求項11記載のテストベンチ。 - ハードウェア記述言語により設計されたモデルに対する各種のシミュレーションをコンピュータに実行させるコンピュータに読取り可能なシミュレータプログラムにおいて、
前記モデルに備えられた複数のI/F系バスに応答もしくはアクセスするための複数のバスモデルを生成する機能と、
前記モデルへのレジスタ設定や前記各バスモデルへの動作機能設定を行い、前記モデルに種々のテスト動作を実行させるための指示を出すテストシナリオを生成する機能と、
前記モデルにバス接続される仮想的なCPUであるCPUバスモデルを生成する機能と、
を前記コンピュータに実行させ、
一の前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を他の前記バスモデルに対して送って認識させ、
当該動作状態情報を受け取った他の前記バスモデルは、受け取った動作状態情報を基に動作機能を選択して前記モデルに対して動作する、
ことを特徴とするシミュレータプログラム。 - 前記バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
動作状態情報を受け取った前記テストシナリオは、当該テストシナリオが有しているタイミング制約情報を、当該動作状態情報を送ってきた前記バスモデルに送信し、
タイミング制約情報を受け取った前記バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項13記載のシミュレータプログラム。 - 前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項13記載のシミュレータプログラム。 - 前記各バスモデルは、実際に前記モデルに対して動作した場合、動作したことを示す動作状態情報を前記テストシナリオに対して送って認識させ、
複数の動作状態情報を受け取った前記テストシナリオは、動作状態情報の組み合わせに応じて選択した当該テストシナリオが有しているタイミング制約情報を、動作状態情報をそれぞれ送ってきた前記各バスモデルに送信し、
タイミング制約情報を受け取った前記各バスモデルは、当該タイミング制約情報を動作開始条件に追加して動作選択する、
ことを特徴とする請求項13記載のシミュレータプログラム。 - 前記各バスモデルは、受け取った動作状態情報及びタイミング制約情報の蓄積を行い、蓄積した動作状態情報及びタイミング制約情報を出力する、
ことを特徴とする請求項14または15記載のシミュレータプログラム。 - 前記テストシナリオは、動作した機能組合せ情報の蓄積を行い、蓄積した機能組合せ情報を前記各バスモデルが蓄積した動作状態情報及びタイミング制約情報とともに出力する、
ことを特徴とする請求項17記載のシミュレータプログラム。 - 請求項13ないし18の何れか一記載のコンピュータに読取り可能なシミュレータプログラムを格納したことを特徴とする記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004193775A JP2006018429A (ja) | 2004-06-30 | 2004-06-30 | 機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004193775A JP2006018429A (ja) | 2004-06-30 | 2004-06-30 | 機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018429A true JP2006018429A (ja) | 2006-01-19 |
Family
ID=35792671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004193775A Pending JP2006018429A (ja) | 2004-06-30 | 2004-06-30 | 機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006018429A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150872A (zh) * | 2022-11-17 | 2023-05-23 | 中国船舶重工集团公司第七一九研究所 | 复杂系统数字功能样机的建模方法、系统、设备及存储介质 |
-
2004
- 2004-06-30 JP JP2004193775A patent/JP2006018429A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150872A (zh) * | 2022-11-17 | 2023-05-23 | 中国船舶重工集团公司第七一九研究所 | 复杂系统数字功能样机的建模方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007492B2 (en) | System and method for automatically generating device drivers for run time environments | |
JP4599266B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
JP4759392B2 (ja) | 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 | |
JP5040758B2 (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
CN112632882A (zh) | 一种基于形式验证对仲裁器验证的装置以及方法 | |
US9690681B1 (en) | Method and system for automatically generating executable system-level tests | |
US20130024178A1 (en) | Playback methodology for verification components | |
JP2008210004A (ja) | 検証シナリオ生成装置,方法,およびプログラム,並びに検証装置 | |
US7228513B2 (en) | Circuit operation verification device and method | |
US20050144436A1 (en) | Multitasking system level platform for HW/SW co-verification | |
US8688428B2 (en) | Performance evaluation device, performance evaluation method and simulation program | |
JP2006018429A (ja) | 機能検証装置、テストベンチ、シミュレータプログラム及び記憶媒体 | |
JP2009104490A (ja) | プログラムのテスト装置 | |
JP4351961B2 (ja) | シミュレータプログラム及び記憶媒体 | |
US20130054218A1 (en) | Method and Software Tool for Automatically Testing a Circuit Design | |
US9582410B2 (en) | Testing software on a computer system | |
EP3734491A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
JP2010140255A (ja) | 再構成可能論理回路ならびに検証方法および検証プログラム | |
JP2006048149A (ja) | 機能検証装置、テストベンチ、ハードウェア記述言語により設計されたモデル、シミュレータプログラム及び記憶媒体 | |
JP4373859B2 (ja) | 機能検証装置、テストベンチ回路、シミュレータプログラム及び記録媒体 | |
US7277840B2 (en) | Method for detecting bus contention from RTL description | |
JP5001126B2 (ja) | ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体 | |
KR101679477B1 (ko) | 메모리 구동 주변 회로 검증시간을 단축하기 위한 임베디드 ddr 메모리를 이용한 검증 방법 및 시스템 | |
JP4421498B2 (ja) | プログラム | |
JP5486289B2 (ja) | コンピュータシステム及び周辺装置の検証方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20051021 |