JP2003030269A - メタモデルを用いた単一マイクロプロセッサ上の並列シミュレーションのための方法 - Google Patents
メタモデルを用いた単一マイクロプロセッサ上の並列シミュレーションのための方法Info
- Publication number
- JP2003030269A JP2003030269A JP2002138462A JP2002138462A JP2003030269A JP 2003030269 A JP2003030269 A JP 2003030269A JP 2002138462 A JP2002138462 A JP 2002138462A JP 2002138462 A JP2002138462 A JP 2002138462A JP 2003030269 A JP2003030269 A JP 2003030269A
- Authority
- JP
- Japan
- Prior art keywords
- model
- simulation
- hardware
- code
- instantiation
- 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
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
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)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 より効率的かつ計算時間を節約するシミュレ
ーション・ハードウェア・モデルのための方法およびシ
ステムを提供すること。 【解決手段】 本発明は一般に、ハードウェア開発およ
び設計に関し、特にハードウェアをシミュレートするた
めの方法に関する。同じハードウェア・モデルの複数の
n個の異なるインスタンシエーション(12A、..1
2N)を統合すること、およびコード・スイッチ(2
4、26)内のインスタンシエーション固有のネーム・
スペース指定によって異なるインスタンシエーションの
機構および信号を解決することのためにコンパイルされ
たメタモデル(22)を使用することが提案される。し
たがって、メタモデルをシミュレートすることによっ
て、例えば記憶スペースなどのプロセッサ・リソースが
より効率的に利用されるので、計算時間が節約される。
ーション・ハードウェア・モデルのための方法およびシ
ステムを提供すること。 【解決手段】 本発明は一般に、ハードウェア開発およ
び設計に関し、特にハードウェアをシミュレートするた
めの方法に関する。同じハードウェア・モデルの複数の
n個の異なるインスタンシエーション(12A、..1
2N)を統合すること、およびコード・スイッチ(2
4、26)内のインスタンシエーション固有のネーム・
スペース指定によって異なるインスタンシエーションの
機構および信号を解決することのためにコンパイルされ
たメタモデル(22)を使用することが提案される。し
たがって、メタモデルをシミュレートすることによっ
て、例えば記憶スペースなどのプロセッサ・リソースが
より効率的に利用されるので、計算時間が節約される。
Description
【0001】
【発明の属する技術分野】本発明は一般に、ハードウェ
ア開発および設計に関し、特にハードウェアをシミュレ
ートするための方法に関する。
ア開発および設計に関し、特にハードウェアをシミュレ
ートするための方法に関する。
【0002】
【従来の技術】本発明は、特定のハードウェア・シミュ
レーション方法とは独立した非常に一般的範囲を有する
が、特定の従来技術、すなわち、性能の理由でいわゆる
サイクル・シミュレーションが使用されるクロック化設
計のハードウェア・シミュレーションと比較される。
レーション方法とは独立した非常に一般的範囲を有する
が、特定の従来技術、すなわち、性能の理由でいわゆる
サイクル・シミュレーションが使用されるクロック化設
計のハードウェア・シミュレーションと比較される。
【0003】そのような従来技術のハードウェア・シミ
ュレーション方法において、前記サイクル・シミュレー
ションは、シミュレーション・サイクル毎に計算される
ハードウェアの論理的挙動が、実行形式プログラムにコ
ンパイルされることを示す。一般にそのような従来技術
のシミュレータ・プログラムの性能は、設計サイズに線
形である。例えば設計のサイズが2倍であるとき、大き
さが以前の2倍であり、したがって元の性能の半分しか
ない実行形式オブジェクトとなる。サイクル・シミュレ
ーション・プログラムでは、開発中のハードウェア論理
回路のそれぞれのブール式がコードにコンパイルされな
ければならない。一般にこれは、それぞれの個々のビッ
トを探し、そのブール式をコードに変換することによっ
て行われる。
ュレーション方法において、前記サイクル・シミュレー
ションは、シミュレーション・サイクル毎に計算される
ハードウェアの論理的挙動が、実行形式プログラムにコ
ンパイルされることを示す。一般にそのような従来技術
のシミュレータ・プログラムの性能は、設計サイズに線
形である。例えば設計のサイズが2倍であるとき、大き
さが以前の2倍であり、したがって元の性能の半分しか
ない実行形式オブジェクトとなる。サイクル・シミュレ
ーション・プログラムでは、開発中のハードウェア論理
回路のそれぞれのブール式がコードにコンパイルされな
ければならない。一般にこれは、それぞれの個々のビッ
トを探し、そのブール式をコードに変換することによっ
て行われる。
【0004】現況技術のコンピュータ・プロセッサが、
一度にワード(32ビット)またはダブル・ワード(6
4ビット)を処理できるという事実のため、得られるコ
ード、すなわち実際のシミュレーション作業のために1
動作当たり1ビットのみ使用し、例えば残りの31また
は63ビットをシミュレーション作業に利用しないコー
ドは、最適とはほど遠い。
一度にワード(32ビット)またはダブル・ワード(6
4ビット)を処理できるという事実のため、得られるコ
ード、すなわち実際のシミュレーション作業のために1
動作当たり1ビットのみ使用し、例えば残りの31また
は63ビットをシミュレーション作業に利用しないコー
ドは、最適とはほど遠い。
【0005】従来技術のハードウェア・シミュレーショ
ン・システムでは、異なるスティミュラス(stimuli)
によって互いに異なる複数の動作条件下で、1つの同じ
ハードウェア・モデルがシミュレートされる。ここでス
ティミュラス(stimulus)は、基礎になるハードウェア
・モデルの一般的境界条件として理解すべきものであ
る。したがってこのスティミュラスは、異なる入力ベク
トルとすることができ、しばしば内部レジスタまたはア
レイ・オキュパンシ(array occupancy)の初期セット
アップ内でいくらか変動している。
ン・システムでは、異なるスティミュラス(stimuli)
によって互いに異なる複数の動作条件下で、1つの同じ
ハードウェア・モデルがシミュレートされる。ここでス
ティミュラス(stimulus)は、基礎になるハードウェア
・モデルの一般的境界条件として理解すべきものであ
る。したがってこのスティミュラスは、異なる入力ベク
トルとすることができ、しばしば内部レジスタまたはア
レイ・オキュパンシ(array occupancy)の初期セット
アップ内でいくらか変動している。
【0006】同一であるが複数の入力変数が異なるそれ
らのモデルは、さらに本明細書において同じハードウェ
ア・モデルの異なるインスタンシエーション(instanti
ation)として表記される。
らのモデルは、さらに本明細書において同じハードウェ
ア・モデルの異なるインスタンシエーション(instanti
ation)として表記される。
【0007】従来技術の手法は、いわゆる「並列インス
タンス機能」をセットアップすることによってサイクル
・シミュレーションを最適化するものである。すなわ
ち、ハードウェア設計がいくつかの同一部品を含む場
合、1つの部品用のコードを使用し、残りの31ビット
を、ハードウェア論理回路の同じ元の部品からの最大3
1個のコピー用として再利用することが可能である。そ
のような状況がチップ上に存在すれば、これは実行形式
ファイルのサイズを小さくし、したがってシミュレーシ
ョン・プログラムの性能を向上させる。残念ながら、こ
の従来技術の手法は、1つの設計内に同じハードウェア
部品の複数インスタンスが見られる場合に効率的である
に過ぎない。
タンス機能」をセットアップすることによってサイクル
・シミュレーションを最適化するものである。すなわ
ち、ハードウェア設計がいくつかの同一部品を含む場
合、1つの部品用のコードを使用し、残りの31ビット
を、ハードウェア論理回路の同じ元の部品からの最大3
1個のコピー用として再利用することが可能である。そ
のような状況がチップ上に存在すれば、これは実行形式
ファイルのサイズを小さくし、したがってシミュレーシ
ョン・プログラムの性能を向上させる。残念ながら、こ
の従来技術の手法は、1つの設計内に同じハードウェア
部品の複数インスタンスが見られる場合に効率的である
に過ぎない。
【0008】シミュレーションのために複数インスタン
スを使用する前記従来技術の手法は、少なくとも2つの
本質的欠点を有する。第1に、この手法は、所与のハー
ドウェア回路設計内で複数の設計コピーが使用可能な場
合にのみ機能する。これに該当しない場合、非常にしば
しばそうであるが、シミュレーションをより速くする可
能性はない。第2に、前記「複数インスタンス」手法が
複数のハードウェア部品用コードを再利用するために使
用されるときはいつであれ、前記複数のインスタンスを
ハードウェア・モデルの残りに適切に接続するための何
らかの特別な、すなわち別の繋ぎ合わせコードが必要で
ある。しかしこれは、非常に多くの作業に相当し、著し
い計算時間の消費を引き起こす。
スを使用する前記従来技術の手法は、少なくとも2つの
本質的欠点を有する。第1に、この手法は、所与のハー
ドウェア回路設計内で複数の設計コピーが使用可能な場
合にのみ機能する。これに該当しない場合、非常にしば
しばそうであるが、シミュレーションをより速くする可
能性はない。第2に、前記「複数インスタンス」手法が
複数のハードウェア部品用コードを再利用するために使
用されるときはいつであれ、前記複数のインスタンスを
ハードウェア・モデルの残りに適切に接続するための何
らかの特別な、すなわち別の繋ぎ合わせコードが必要で
ある。しかしこれは、非常に多くの作業に相当し、著し
い計算時間の消費を引き起こす。
【0009】
【発明が解決しようとする課題】したがって本発明の一
目的は、より効率的かつ計算時間を節約するシミュレー
ション・ハードウェア・モデルのための方法およびシス
テムを提供することである。
目的は、より効率的かつ計算時間を節約するシミュレー
ション・ハードウェア・モデルのための方法およびシス
テムを提供することである。
【0010】
【課題を解決するための手段】本発明の基本的手法は、
基礎になる技術的問題に抽象的視点から集中することで
ある。本発明によれば、計算時間を節約するための焦点
は、単一テスト・ケースに関する性能利得にはなく、大
規模なテスト・ケースについての全体性能に焦点が当て
られる。換言すれば、1つのシミュレーション実行を加
速しようとする代わりに、本発明は、シミュレーション
実行の全体セットに対して、それぞれのより大きな加速
を達成しようとする。
基礎になる技術的問題に抽象的視点から集中することで
ある。本発明によれば、計算時間を節約するための焦点
は、単一テスト・ケースに関する性能利得にはなく、大
規模なテスト・ケースについての全体性能に焦点が当て
られる。換言すれば、1つのシミュレーション実行を加
速しようとする代わりに、本発明は、シミュレーション
実行の全体セットに対して、それぞれのより大きな加速
を達成しようとする。
【0011】本発明は、1組のテスト・ケースに関し
て、基礎になるハードウェア・モデルが同一であること
を利用することが可能であるという事実を利用する。本
発明によれば、設計部品のコピーを探して検索する代わ
りに、全体モデル自体を単に取り、同じモデルの複数の
コピー、例えば32個のコピーからなるいわゆるメタモ
デルを蓄積することが提案される。しかしそれらのコピ
ーは、同じ基礎になるハードウェア・モデルの異なるイ
ンスタンシエーションに過ぎない。したがって実際にメ
タモデルは、決して生産されることはないが、並行して
シミュレートされる繰り返された一連の論理回路部品を
含む内部構造を有するある種のハードウェアである。し
たがって複数テストを、1つかつ同じマイクロプロセッ
サ上で並行してシミュレートすることができ、その結
果、例えば最大32のシミュレーション実行の結果を、
従来技術では単一シミュレーション実行を計算するため
に必要であった同じ時間内に計算することができる。
て、基礎になるハードウェア・モデルが同一であること
を利用することが可能であるという事実を利用する。本
発明によれば、設計部品のコピーを探して検索する代わ
りに、全体モデル自体を単に取り、同じモデルの複数の
コピー、例えば32個のコピーからなるいわゆるメタモ
デルを蓄積することが提案される。しかしそれらのコピ
ーは、同じ基礎になるハードウェア・モデルの異なるイ
ンスタンシエーションに過ぎない。したがって実際にメ
タモデルは、決して生産されることはないが、並行して
シミュレートされる繰り返された一連の論理回路部品を
含む内部構造を有するある種のハードウェアである。し
たがって複数テストを、1つかつ同じマイクロプロセッ
サ上で並行してシミュレートすることができ、その結
果、例えば最大32のシミュレーション実行の結果を、
従来技術では単一シミュレーション実行を計算するため
に必要であった同じ時間内に計算することができる。
【0012】並列化できない唯一の残りのオーバヘッド
は、ハードウェア・モデルの一部ではない、例えばC/
C++ルーチンの形態でのいわゆる環境コードであるこ
とに留意されたい。モデル実行に80%、環境コードの
実行に20%という、1つのテスト・ケースのシミュレ
ーションに対する計算時間の典型的分布では、32回シ
ミュレーション実行のいくつかが、本発明によれば、お
よそ4.5倍に加速することができる。 以前:32×0.8+32×0.2=32 発明:1×0.8+32×0.2=7.2
は、ハードウェア・モデルの一部ではない、例えばC/
C++ルーチンの形態でのいわゆる環境コードであるこ
とに留意されたい。モデル実行に80%、環境コードの
実行に20%という、1つのテスト・ケースのシミュレ
ーションに対する計算時間の典型的分布では、32回シ
ミュレーション実行のいくつかが、本発明によれば、お
よそ4.5倍に加速することができる。 以前:32×0.8+32×0.2=32 発明:1×0.8+32×0.2=7.2
【0013】本発明の概念は、モデル蓄積処理において
いくつかの変更を必要とし、環境コードは、並列スレッ
ド内に同じコードが併存することを可能にする方法に変
更されなければならない。
いくつかの変更を必要とし、環境コードは、並列スレッ
ド内に同じコードが併存することを可能にする方法に変
更されなければならない。
【0014】本発明の上述の目的は、次に参照すべき添
付された独立請求項内に述べる機能によって達成され
る。本発明のさらに他の有利な構成および実施形態は、
それぞれの従属請求項において説明される。
付された独立請求項内に述べる機能によって達成され
る。本発明のさらに他の有利な構成および実施形態は、
それぞれの従属請求項において説明される。
【0015】第1の基本的態様によれば、シミュレーシ
ョンのスティミュラスが蓄積されシミュレーション結果
データが管理される、ハードウェア・モデルおよびシミ
ュレーション環境を使用してハードウェア論理回路をシ
ミュレートする方法が開示される。前記方法は、同じハ
ードウェア・モデルの複数のn個の異なるインスタンシ
エーションを統合するためにコンパイルされたメタモデ
ルを使用するステップと、コード・スイッチ手段内のイ
ンスタンシエーション固有のネーム・スペース指定によ
って異なるインスタンシエーションの機構および信号を
解決するステップとを特徴とする。
ョンのスティミュラスが蓄積されシミュレーション結果
データが管理される、ハードウェア・モデルおよびシミ
ュレーション環境を使用してハードウェア論理回路をシ
ミュレートする方法が開示される。前記方法は、同じハ
ードウェア・モデルの複数のn個の異なるインスタンシ
エーションを統合するためにコンパイルされたメタモデ
ルを使用するステップと、コード・スイッチ手段内のイ
ンスタンシエーション固有のネーム・スペース指定によ
って異なるインスタンシエーションの機構および信号を
解決するステップとを特徴とする。
【0016】したがって、メタモデルをシミュレートす
ることによって、例えば記憶スペースなどのプロセッサ
・リソースがより効率的に利用されるので、計算時間は
節約される。
ることによって、例えば記憶スペースなどのプロセッサ
・リソースがより効率的に利用されるので、計算時間は
節約される。
【0017】さらにハードウェア記述言語(HDL)が
シミュレーション環境のために使用されるとき、メタモ
デルをシミュレートするために、またその後にハードウ
ェア・モデルの具体的インスタンシエーションに関連付
けられた結果を取り出すために従来技術のハードウェア
・シミュレータ・プログラムを使用できるという、他の
利点が生じる。
シミュレーション環境のために使用されるとき、メタモ
デルをシミュレートするために、またその後にハードウ
ェア・モデルの具体的インスタンシエーションに関連付
けられた結果を取り出すために従来技術のハードウェア
・シミュレータ・プログラムを使用できるという、他の
利点が生じる。
【0018】さらに、HDLを使用しない場合、メタモ
デルと通信するためにテスト・オブジェクトを生成する
こと、同一シミュレーション・モデルの複数のn個の異
なるインスタンシエーションを呼び出す「mai
n()」プログラムを生成することが提案される。次い
で本発明の概念は、シミュレーション環境用の汎用オブ
ジェクト指向プログラム言語を有利に使用するために構
成されている。
デルと通信するためにテスト・オブジェクトを生成する
こと、同一シミュレーション・モデルの複数のn個の異
なるインスタンシエーションを呼び出す「mai
n()」プログラムを生成することが提案される。次い
で本発明の概念は、シミュレーション環境用の汎用オブ
ジェクト指向プログラム言語を有利に使用するために構
成されている。
【0019】前記上述のモデル固有のネーム・スペース
指定が、それぞれの変数のプレフィックスまたはサフィ
ックス名前拡張子によって行われるとき、これは異なる
インスタンシエーション間で区別する効率的方法である
という利点が生まれる。
指定が、それぞれの変数のプレフィックスまたはサフィ
ックス名前拡張子によって行われるとき、これは異なる
インスタンシエーション間で区別する効率的方法である
という利点が生まれる。
【0020】さらに、
a.前記環境コードからの複数のn個の入力チャネルの
それぞれを、スティミュラス入力目的でモデル・インス
タンシエーションのそれぞれに関連付けるステップと、 b.前記モデル・インスタンシエーションからの複数の
n個の出力チャネルのそれぞれを、前記環境コードのそ
れぞれの呼び出しに関連付けるステップとを追加で提供
するとき、2つの基本的機能、すなわち a.一般にそのモデルにアクセスし特に実行すべきモデ
ル・インスタンシエーションを準備するために、対応す
るスティミュラスデータ入力を有する正しいモデル・イ
ンスタンシエーションをフィードすること、および b.前記モデル・インスタンシエーションから実行結果
データを引き継ぎそのデータを結果評価および発行のた
めにそれぞれの環境コードにフィードすること、を有す
る効率的コード・スイッチ・インタフェース手段が形成
される。
それぞれを、スティミュラス入力目的でモデル・インス
タンシエーションのそれぞれに関連付けるステップと、 b.前記モデル・インスタンシエーションからの複数の
n個の出力チャネルのそれぞれを、前記環境コードのそ
れぞれの呼び出しに関連付けるステップとを追加で提供
するとき、2つの基本的機能、すなわち a.一般にそのモデルにアクセスし特に実行すべきモデ
ル・インスタンシエーションを準備するために、対応す
るスティミュラスデータ入力を有する正しいモデル・イ
ンスタンシエーションをフィードすること、および b.前記モデル・インスタンシエーションから実行結果
データを引き継ぎそのデータを結果評価および発行のた
めにそれぞれの環境コードにフィードすること、を有す
る効率的コード・スイッチ・インタフェース手段が形成
される。
【0021】さらに、モデル実行の実行によって発行さ
れた監視イベントが、そのようなイベントに応答するそ
れぞれの環境コードを呼び出すために提供されるとき、
従来技術のイベント監視機能は、この発明概念に有利に
統合される。
れた監視イベントが、そのようなイベントに応答するそ
れぞれの環境コードを呼び出すために提供されるとき、
従来技術のイベント監視機能は、この発明概念に有利に
統合される。
【0022】その第2の基本的態様によれば、インスタ
ンシエーション固有のネーム・スペース指定を有する同
じハードウェア・シミュレーション・モデルの複数のイ
ンスタンシエーションを入力する機構を提供すること、
前記複数のインスタンシエーションを単一メタモデルの
単一実行形式またはオブジェクト・ファイルにコンパイ
ルすること、の諸ステップを含む、ハードウェア設計ソ
ースのメタモデルをコンパイルする方法が開示される。
ンシエーション固有のネーム・スペース指定を有する同
じハードウェア・シミュレーション・モデルの複数のイ
ンスタンシエーションを入力する機構を提供すること、
前記複数のインスタンシエーションを単一メタモデルの
単一実行形式またはオブジェクト・ファイルにコンパイ
ルすること、の諸ステップを含む、ハードウェア設計ソ
ースのメタモデルをコンパイルする方法が開示される。
【0023】したがって、既存の従来技術のモデル蓄積
コンパイラは、上記機能によって容易に拡張することが
でき、次いで時間節約メタモデルの蓄積に使用すること
ができる。
コンパイラは、上記機能によって容易に拡張することが
でき、次いで時間節約メタモデルの蓄積に使用すること
ができる。
【0024】基本的に、この発明概念は、第一にサイク
ル・ベースのシミュレーションのために使用することが
できる。しかしこの概念は、イベント・ドリブン・シミ
ュレーション・システムにおいても応用可能である。
ル・ベースのシミュレーションのために使用することが
できる。しかしこの概念は、イベント・ドリブン・シミ
ュレーション・システムにおいても応用可能である。
【0025】
【発明の実施の形態】本発明は、例示の目的で示され、
添付の図面の図の形によっては制限されない。
添付の図面の図の形によっては制限されない。
【0026】次に図2を参照して、サイクル・ベースの
ハードウェア・シミュレーションに関する好ましい発明
的一実施形態をより詳細に述べる。
ハードウェア・シミュレーションに関する好ましい発明
的一実施形態をより詳細に述べる。
【0027】図2に示される状況は、図1に示すものと
同じである、すなわち、同じハードウェア・モデルの具
体的スティミュラス値を有する具体的インスタンシエー
ションをそれぞれ表す複数のn個のハードウェア・モデ
ルがシミュレートされる。これを行うために、シミュレ
ーション結果と同様にスティミュラス値が管理されなけ
ればならない。これらのタスクは、従来技術シミュレー
ション方法において行われたのと同様に、環境コード1
0A、10B、10Nおよび14A、14B、14Nに
よって行われる。
同じである、すなわち、同じハードウェア・モデルの具
体的スティミュラス値を有する具体的インスタンシエー
ションをそれぞれ表す複数のn個のハードウェア・モデ
ルがシミュレートされる。これを行うために、シミュレ
ーション結果と同様にスティミュラス値が管理されなけ
ればならない。これらのタスクは、従来技術シミュレー
ション方法において行われたのと同様に、環境コード1
0A、10B、10Nおよび14A、14B、14Nに
よって行われる。
【0028】同様に、n個の異なる環境コードは、それ
ぞれの表記AおよびB..Nで2度示される。環境コー
ドは、図面に示されるようにソフトウェア入力および出
力機構を提供するソフトウェア部品であり、実行すべき
モデル・シミュレーションによって必要とされることを
理解されたい。したがって、入力値はシミュレーション
のための入力であり、シミュレーション結果は各環境コ
ードのそれぞれによって評価される。
ぞれの表記AおよびB..Nで2度示される。環境コー
ドは、図面に示されるようにソフトウェア入力および出
力機構を提供するソフトウェア部品であり、実行すべき
モデル・シミュレーションによって必要とされることを
理解されたい。したがって、入力値はシミュレーション
のための入力であり、シミュレーション結果は各環境コ
ードのそれぞれによって評価される。
【0029】しかし、この発明的実施形態によれば、単
一マイクロプロセッサ・システム上で実行される単一シ
ミュレーション実行内で、同じハードウェア・モデルの
複数のn個の異なるインスタンシエーションが実行され
ることが好ましい。これは、前述の複数のn個の異なる
モデル・インスタンシエーション12A、12
B、...12Nを統合するいわゆるメタモデル22を
シミュレートすることによって行われる。したがって、
前記メタモデル22は、将来蓄積されるべきハードウェ
ア部品を表すのではなく、代わりに、シミュレーション
内容、すなわち前述のn個の異なるモデル・インスタン
シエーションの計算条件、を収集して統合するためだけ
に役立つ架空のものである。
一マイクロプロセッサ・システム上で実行される単一シ
ミュレーション実行内で、同じハードウェア・モデルの
複数のn個の異なるインスタンシエーションが実行され
ることが好ましい。これは、前述の複数のn個の異なる
モデル・インスタンシエーション12A、12
B、...12Nを統合するいわゆるメタモデル22を
シミュレートすることによって行われる。したがって、
前記メタモデル22は、将来蓄積されるべきハードウェ
ア部品を表すのではなく、代わりに、シミュレーション
内容、すなわち前述のn個の異なるモデル・インスタン
シエーションの計算条件、を収集して統合するためだけ
に役立つ架空のものである。
【0030】メタモデル22をどのように蓄積するか
は、図3を参照して後に言及する。
は、図3を参照して後に言及する。
【0031】この好ましい実施形態による図2から明ら
かなように、上述のスティミュラスデータをそれぞれの
ハードウェア・モデル・インスタンシエーションに入力
するために、各環境コードのそれぞれからの複数のn個
の入力チャネルをモデル・インスタンシエーションのそ
れぞれに関連付けるソフトウェア手段を有するいわゆる
「コード・スイッチ・インタフェース」手段24が提供
される。
かなように、上述のスティミュラスデータをそれぞれの
ハードウェア・モデル・インスタンシエーションに入力
するために、各環境コードのそれぞれからの複数のn個
の入力チャネルをモデル・インスタンシエーションのそ
れぞれに関連付けるソフトウェア手段を有するいわゆる
「コード・スイッチ・インタフェース」手段24が提供
される。
【0032】前記コード・スイッチ・インタフェース手
段の他の部分26は、前記モデル・インスタンシエーシ
ョンのそれぞれから実行結果データを引継ぎ、そのデー
タを結果評価および発行のためにそれぞれの環境コード
にフィードする。
段の他の部分26は、前記モデル・インスタンシエーシ
ョンのそれぞれから実行結果データを引継ぎ、そのデー
タを結果評価および発行のためにそれぞれの環境コード
にフィードする。
【0033】コード・スイッチ・ソフトウェア手段は、
入力データを可能な限り早く得るために、複数の入力チ
ャネルにポーリングすることが好ましく、異なる入力チ
ャネルにより、異なる環境コード間で区別することがで
きる。
入力データを可能な限り早く得るために、複数の入力チ
ャネルにポーリングすることが好ましく、異なる入力チ
ャネルにより、異なる環境コード間で区別することがで
きる。
【0034】好ましい一実施形態によれば、次にモデル
信号名およびモデル機構のための固定プレフィックス
が、前記モデル・インスタンシエーション12A、12
B、...12Nのそれぞれに関連付けられる。したが
って、コード・スイッチ・インタフェース手段24は、
例えばモデル・インスタンシエーション12Bをターゲ
ットとするスティミュラスデータを環境コード10Bに
属する入力チャネルから取ることができる。そのような
プレフィックスあるいはサフィックスを適用すること
は、異なるインスタンシエーションをメタモデル22に
統合するための実施容易な方法である。
信号名およびモデル機構のための固定プレフィックス
が、前記モデル・インスタンシエーション12A、12
B、...12Nのそれぞれに関連付けられる。したが
って、コード・スイッチ・インタフェース手段24は、
例えばモデル・インスタンシエーション12Bをターゲ
ットとするスティミュラスデータを環境コード10Bに
属する入力チャネルから取ることができる。そのような
プレフィックスあるいはサフィックスを適用すること
は、異なるインスタンシエーションをメタモデル22に
統合するための実施容易な方法である。
【0035】シミュレーションの出力側では、基本的
に、参照標識26で表記されるコード・スイッチ部分に
よって同じことが行われる。特に、シミュレーション結
果データは前記モデル12A、12B、...12Nの
それぞれから引き継がれ、同じプレフィックスを提供さ
れた結果データ変数名が評価され、それぞれの環境14
A、14B、...14Nに転送される。したがって、
モデル・インスタンシエーションとそれぞれの環境コー
ド間で固定の関連を有するので、この発明的メタモデル
の複雑性は、単純化されシミュレータ・プログラムによ
ってシステム的に処理することができる。
に、参照標識26で表記されるコード・スイッチ部分に
よって同じことが行われる。特に、シミュレーション結
果データは前記モデル12A、12B、...12Nの
それぞれから引き継がれ、同じプレフィックスを提供さ
れた結果データ変数名が評価され、それぞれの環境14
A、14B、...14Nに転送される。したがって、
モデル・インスタンシエーションとそれぞれの環境コー
ド間で固定の関連を有するので、この発明的メタモデル
の複雑性は、単純化されシミュレータ・プログラムによ
ってシステム的に処理することができる。
【0036】次に図3を参照して、それぞれの発明的メ
タモデルを蓄積すること(上部)、およびシミュレーシ
ョン環境のためのメタ構造をどのように実施するか(下
部)、についてのさらに詳細を与える。
タモデルを蓄積すること(上部)、およびシミュレーシ
ョン環境のためのメタ構造をどのように実施するか(下
部)、についてのさらに詳細を与える。
【0037】ハードウェア設計ソース1は、開発中の設
計の論理的記述を含み、VHDLまたはVerilog
などのハードウェア設計言語(HDL)で書かれる。
計の論理的記述を含み、VHDLまたはVerilog
などのハードウェア設計言語(HDL)で書かれる。
【0038】本発明の好ましい一態様によれば、この発
明概念は、同じハードウェア・シミュレーション・モデ
ルの複数インスタンシエーションを、好ましくは前記複
数インスタンシエーションをコンパイルするためのイン
スタンシエーション固有のネーム・スペース指定と共
に、このように生成されたメタモデルの単一実行形式
(ファイル)に入力するための追加機能または機構を実
施するだけでよい従来技術のモデル蓄積コンパイラ3で
実行することができる。したがって、本明細書で使用さ
れるモデル蓄積コンパイラ3は、設計ソース1から、後
にシミュレータ・プログラム5と共に使用することがで
きるマシン実行形式フォーマットを生成する。前記コン
パイラ拡張は、上記に紹介した「並列インスタンス・モ
デル」を生成することができる従来技術のモデル蓄積コ
ンパイラに対して行うことが好ましい。
明概念は、同じハードウェア・シミュレーション・モデ
ルの複数インスタンシエーションを、好ましくは前記複
数インスタンシエーションをコンパイルするためのイン
スタンシエーション固有のネーム・スペース指定と共
に、このように生成されたメタモデルの単一実行形式
(ファイル)に入力するための追加機能または機構を実
施するだけでよい従来技術のモデル蓄積コンパイラ3で
実行することができる。したがって、本明細書で使用さ
れるモデル蓄積コンパイラ3は、設計ソース1から、後
にシミュレータ・プログラム5と共に使用することがで
きるマシン実行形式フォーマットを生成する。前記コン
パイラ拡張は、上記に紹介した「並列インスタンス・モ
デル」を生成することができる従来技術のモデル蓄積コ
ンパイラに対して行うことが好ましい。
【0039】本発明の鍵となる機能、すなわちシミュレ
ータおよびモデル蓄積コンパイラの並列インスタンス機
能を使用して複数モデルをかぶせることによってメタモ
デルを使用すること、を実現できるためには、最初に予
備ステップとして、コンパイラが前記架空のメタ構造内
の複数の独立したモデルを処理できるようにするため
の、いわゆるメタ構造2が蓄積される。前記メタ構造2
は本質的に、元の設計ソース1の複数のコピーをインス
タンス化する新しくより大きなモデルの定義からなる。
メタ構造2の本質的機能は、元の設計1のそれぞれに対
して、モデル蓄積コンパイラ3によって蓄積されるメタ
モデル4内のそれぞれのインスタンスを識別するために
設計ソース内に存在する機構または信号名のそれぞれに
ユニークなプレフィックスを追加することである。例え
ばmod.1、mod.2、mod.3などのプレフィックスを適用す
ることができる。したがって、本発明によって、メタ・
レベルを表す新しい階層レベルが導入される。なぜなら
このレベルは、開発中のどの実ハードウェア設計をも表
さないからである。前記新しいメタ・レベルは、モデル
蓄積処理のために使用され、したがってコンパイラはこ
の新しいモデルを蓄積することができる。
ータおよびモデル蓄積コンパイラの並列インスタンス機
能を使用して複数モデルをかぶせることによってメタモ
デルを使用すること、を実現できるためには、最初に予
備ステップとして、コンパイラが前記架空のメタ構造内
の複数の独立したモデルを処理できるようにするため
の、いわゆるメタ構造2が蓄積される。前記メタ構造2
は本質的に、元の設計ソース1の複数のコピーをインス
タンス化する新しくより大きなモデルの定義からなる。
メタ構造2の本質的機能は、元の設計1のそれぞれに対
して、モデル蓄積コンパイラ3によって蓄積されるメタ
モデル4内のそれぞれのインスタンスを識別するために
設計ソース内に存在する機構または信号名のそれぞれに
ユニークなプレフィックスを追加することである。例え
ばmod.1、mod.2、mod.3などのプレフィックスを適用す
ることができる。したがって、本発明によって、メタ・
レベルを表す新しい階層レベルが導入される。なぜなら
このレベルは、開発中のどの実ハードウェア設計をも表
さないからである。前記新しいメタ・レベルは、モデル
蓄積処理のために使用され、したがってコンパイラはこ
の新しいモデルを蓄積することができる。
【0040】前記例示的プレフィックス名前付け規則に
より、元のモデル内のすべての信号名および他の機構に
は、それぞれの設計インスタンスに関連付けられた前記
ユニークな個々のプレフィックスが付けられ、その結
果、例えば元の信号des.1.inter.regは、その設計の第
1インスタンスとしてmod.l.des.1.inter.regに修正さ
れるか、または第2インスタンスとしてmod.2.des.1.in
ter.regに修正される。
より、元のモデル内のすべての信号名および他の機構に
は、それぞれの設計インスタンスに関連付けられた前記
ユニークな個々のプレフィックスが付けられ、その結
果、例えば元の信号des.1.inter.regは、その設計の第
1インスタンスとしてmod.l.des.1.inter.regに修正さ
れるか、または第2インスタンスとしてmod.2.des.1.in
ter.regに修正される。
【0041】次いでメタモデル4は、従来技術のシミュ
レータ・プログラムによって使用することができるが、
このプログラムには、この発明概念を適合させるための
発明的コード・スイッチ・アプリケーション・プログラ
ム・インタフェース(AP)が提供されなければならな
い。
レータ・プログラムによって使用することができるが、
このプログラムには、この発明概念を適合させるための
発明的コード・スイッチ・アプリケーション・プログラ
ム・インタフェース(AP)が提供されなければならな
い。
【0042】次に図3の下部を参照すると、本発明のた
めに使用されるときのシミュレーション環境が図示され
ている。この環境は、スティミュラスデータが生成され
シミュレーション結果がチェックされるシミュレーショ
ン・テスト・ケースのためのテスト・ベンチとして理解
されたい。一般にこれは、様々なプログラム言語を使用
することによって達成することができる。しかし好まし
い選択は、VHDLまたはVerilogなどのハード
ウェア記述言語を使用することである。なぜならその場
合、シミュレーション環境は、その環境を単純化する設
計ソース1の一部だからである。
めに使用されるときのシミュレーション環境が図示され
ている。この環境は、スティミュラスデータが生成され
シミュレーション結果がチェックされるシミュレーショ
ン・テスト・ケースのためのテスト・ベンチとして理解
されたい。一般にこれは、様々なプログラム言語を使用
することによって達成することができる。しかし好まし
い選択は、VHDLまたはVerilogなどのハード
ウェア記述言語を使用することである。なぜならその場
合、シミュレーション環境は、その環境を単純化する設
計ソース1の一部だからである。
【0043】しかしシミュレーション環境が、例えばC
++などの何らかの汎用オブジェクト指向プログラム言
語でコード化される場合、その環境は、モデルとの通
信、テスト生成、ならびにいわゆるメッセージ・オブジ
ェクト11を使用して活動のチェックおよびログ取得を
担当する「テスト・オブジェクト」を含む。さらに、従
来技術のシミュレーションが使用されるときには、オブ
ジェクトをインスタンス化しそのオブジェクトを適切な
時に繰り返し呼び出すmain()プログラム6が必要であ
る。
++などの何らかの汎用オブジェクト指向プログラム言
語でコード化される場合、その環境は、モデルとの通
信、テスト生成、ならびにいわゆるメッセージ・オブジ
ェクト11を使用して活動のチェックおよびログ取得を
担当する「テスト・オブジェクト」を含む。さらに、従
来技術のシミュレーションが使用されるときには、オブ
ジェクトをインスタンス化しそのオブジェクトを適切な
時に繰り返し呼び出すmain()プログラム6が必要であ
る。
【0044】しかし本発明によれば、図3の下部に示す
状況は、シミュレータと環境コード間の修正された関係
を示す。特に、汎用言語でコード化されている環境で
は、環境は次の機構によって拡張されなければならな
い、すなわち「テスト・オブジェクト」のインスタンス
を1つだけ生成する代わりに、メイン・プログラム6が
そのテスト・オブジェクトのn個のインスタンスを生成
しなければならない。数nは、そのメタモデルに統合さ
れるモデルの数nに対応しなければならないことに留意
されたい。
状況は、シミュレータと環境コード間の修正された関係
を示す。特に、汎用言語でコード化されている環境で
は、環境は次の機構によって拡張されなければならな
い、すなわち「テスト・オブジェクト」のインスタンス
を1つだけ生成する代わりに、メイン・プログラム6が
そのテスト・オブジェクトのn個のインスタンスを生成
しなければならない。数nは、そのメタモデルに統合さ
れるモデルの数nに対応しなければならないことに留意
されたい。
【0045】さらに、インスタンスを識別するために、
それぞれのオブジェクトは、インスタンス化の時にプレ
フィックス情報8が必要である。この情報は、テスト・
オブジェクト・インスタンス内に局所的に格納されるこ
とが有利である。そのようなインスタンスが、参照標識
7A、7B、7Nと共に図3に示されている。この情報
は、すべてのモデル関連名、すなわち信号名および他の
機構名を解決するために、シミュレーション実行の最初
に使用される。これは好ましくは、基本名を例えばdes
1.inter.regと取ることによって行われ、次いでモデル
自体の中に見つけることができる最終モデル名を蓄積す
るために、格納されたプレフィックス情報を例えばmod.
1.des1.inter.regと使用する。この追加の名前指定また
は名前拡張は、シミュレーションの開始時にのみ行われ
ればよい。なぜなら同じ名前をさらに参照するために
は、シミュレータによって戻された名前に対するポイン
タを次いで使用することができるからである。前記名前
の解決は、参照標識9を有するボックスで象徴されてい
る。
それぞれのオブジェクトは、インスタンス化の時にプレ
フィックス情報8が必要である。この情報は、テスト・
オブジェクト・インスタンス内に局所的に格納されるこ
とが有利である。そのようなインスタンスが、参照標識
7A、7B、7Nと共に図3に示されている。この情報
は、すべてのモデル関連名、すなわち信号名および他の
機構名を解決するために、シミュレーション実行の最初
に使用される。これは好ましくは、基本名を例えばdes
1.inter.regと取ることによって行われ、次いでモデル
自体の中に見つけることができる最終モデル名を蓄積す
るために、格納されたプレフィックス情報を例えばmod.
1.des1.inter.regと使用する。この追加の名前指定また
は名前拡張は、シミュレーションの開始時にのみ行われ
ればよい。なぜなら同じ名前をさらに参照するために
は、シミュレータによって戻された名前に対するポイン
タを次いで使用することができるからである。前記名前
の解決は、参照標識9を有するボックスで象徴されてい
る。
【0046】ハードウェア設計ソースと同じ言語でコー
ド化されている環境に対して、シミュレーション環境の
そのような拡張は必要でない。したがって、そのような
場合に、単一コンピューティング・リソース上のシミュ
レーション・スループットを向上させるためには、上述
のようにメタモデルを導入するだけで充分である。
ド化されている環境に対して、シミュレーション環境の
そのような拡張は必要でない。したがって、そのような
場合に、単一コンピューティング・リソース上のシミュ
レーション・スループットを向上させるためには、上述
のようにメタモデルを導入するだけで充分である。
【0047】図4を参照すると、上述の具体的変数名に
対する例示的一記憶表現が示されている。図の上部に
は、従来技術の状況が、下部には発明的状況が示されて
いる。記憶のスナップショットは、複数のメモリ・セク
ション42、44、46、48、50を含む。従来技術
の方法では、セクション42だけが実際のシミュレーシ
ョン値で埋められ、残りのフィールド、すなわちフィー
ルド44から50は、空のままであり、真のシミュレー
ション結果を生成するために使用することができない。
対する例示的一記憶表現が示されている。図の上部に
は、従来技術の状況が、下部には発明的状況が示されて
いる。記憶のスナップショットは、複数のメモリ・セク
ション42、44、46、48、50を含む。従来技術
の方法では、セクション42だけが実際のシミュレーシ
ョン値で埋められ、残りのフィールド、すなわちフィー
ルド44から50は、空のままであり、真のシミュレー
ション結果を生成するために使用することができない。
【0048】本発明によれば、これは異なる。すなわち
図4の下部に示す具体的場合では、残りのメモリ・セク
ション44、46、48、50のすべてが、真のシミュ
レーション・データで埋められ、例えばセクション44
は追加モデル・インスタンシエーション12Bに関連付
けられたデータを保持し、セクション46はモデル・イ
ンスタンシエーション12Cに関連付けられた(異な
る)データを保持し、セクション48はさらに他のモデ
ル・インスタンシエーションに関連付けられたデータを
保持し、セクション50は再びさらに他のモデル・イン
スタンシエーションを有するデータを保持する。したが
って、図4から容易に明らかなように、従来技術では記
憶スペースの小さな一断片のみを使用した代わりに、メ
モリ内のダブル・ワードまたは4ワード内に存在する全
記憶スペースを使用することができる。この機能が、本
発明によって得られる性能利得を主に担当する。
図4の下部に示す具体的場合では、残りのメモリ・セク
ション44、46、48、50のすべてが、真のシミュ
レーション・データで埋められ、例えばセクション44
は追加モデル・インスタンシエーション12Bに関連付
けられたデータを保持し、セクション46はモデル・イ
ンスタンシエーション12Cに関連付けられた(異な
る)データを保持し、セクション48はさらに他のモデ
ル・インスタンシエーションに関連付けられたデータを
保持し、セクション50は再びさらに他のモデル・イン
スタンシエーションを有するデータを保持する。したが
って、図4から容易に明らかなように、従来技術では記
憶スペースの小さな一断片のみを使用した代わりに、メ
モリ内のダブル・ワードまたは4ワード内に存在する全
記憶スペースを使用することができる。この機能が、本
発明によって得られる性能利得を主に担当する。
【0049】変数名の全セットが単一ワードに適合しな
い状況では、その後のデータによって占められるために
単純に次のワードが取られることに留意されたい。
い状況では、その後のデータによって占められるために
単純に次のワードが取られることに留意されたい。
【0050】したがって、本発明はハードウェア・シミ
ュレーションを加速するための大きな進歩である。
ュレーションを加速するための大きな進歩である。
【0051】前述の指定では、本発明をその具体的な例
示的一実施形態を参照しながら述べた。しかし、添付の
請求の範囲に説明する本発明のより広い精神および範囲
から逸脱することなく、様々な修正および変更をそれに
加えられることが明らかである。したがって本明細書お
よび図面は、制限的意味ではなく例示的と見なすべきで
ある。
示的一実施形態を参照しながら述べた。しかし、添付の
請求の範囲に説明する本発明のより広い精神および範囲
から逸脱することなく、様々な修正および変更をそれに
加えられることが明らかである。したがって本明細書お
よび図面は、制限的意味ではなく例示的と見なすべきで
ある。
【0052】本発明は、ハードウェア、ソフトウェア、
またはハードウェアおよびソフトウェアの組合わせで実
現することができる。本発明によるモデル蓄積コンパイ
ラまたはシミュレータ・ツールは、1つのコンピュータ
・システム内に集中化された方法で、または様々な要素
がいくつかの相互接続されたコンピュータ・システム全
体に広がる分散化された方法で実現することができる。
本明細書に述べた方法を実行するように適合されたどん
な種類のコンピュータ・システムまたは他の装置も適合
する。ハードウェアとソフトウェアの典型的組合わせ
は、ロードされ実行されるときに、コンピュータ・シス
テムが、本明細書に述べた方法のクライアントまたはサ
ーバ固有のステップを実行するようにそのコンピュータ
・システムを制御するコンピュータ・プログラムを有す
る汎用コンピュータ・システムである。
またはハードウェアおよびソフトウェアの組合わせで実
現することができる。本発明によるモデル蓄積コンパイ
ラまたはシミュレータ・ツールは、1つのコンピュータ
・システム内に集中化された方法で、または様々な要素
がいくつかの相互接続されたコンピュータ・システム全
体に広がる分散化された方法で実現することができる。
本明細書に述べた方法を実行するように適合されたどん
な種類のコンピュータ・システムまたは他の装置も適合
する。ハードウェアとソフトウェアの典型的組合わせ
は、ロードされ実行されるときに、コンピュータ・シス
テムが、本明細書に述べた方法のクライアントまたはサ
ーバ固有のステップを実行するようにそのコンピュータ
・システムを制御するコンピュータ・プログラムを有す
る汎用コンピュータ・システムである。
【0053】本発明は、本明細書に述べた方法のそれぞ
れのステップの実施を可能にするすべての機能を含み1
つまたは複数のコンピュータ・システム内にロードされ
るときにこれらの方法を実行することができるコンピュ
ータ・プログラム製品内に埋込むこともできる。
れのステップの実施を可能にするすべての機能を含み1
つまたは複数のコンピュータ・システム内にロードされ
るときにこれらの方法を実行することができるコンピュ
ータ・プログラム製品内に埋込むこともできる。
【0054】この文脈におけるコンピュータ・プログラ
ム手段またはコンピュータ・プログラムは、情報処理機
能を有するシステムに、直接、あるいは次の a)他の言語、コードまたは表記への変換、 b)異なる素材形態での再生産 のいずれかまたは両方の後に特定の機能を実行させるこ
とを意図した1組の命令の、任意の言語、コードまたは
表記での任意の表現を意味する。
ム手段またはコンピュータ・プログラムは、情報処理機
能を有するシステムに、直接、あるいは次の a)他の言語、コードまたは表記への変換、 b)異なる素材形態での再生産 のいずれかまたは両方の後に特定の機能を実行させるこ
とを意図した1組の命令の、任意の言語、コードまたは
表記での任意の表現を意味する。
【0055】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0056】(1)シミュレーションのスティミュラス
が蓄積され(10)シミュレーション結果データが管理
される(14)、ハードウェア・モデルおよびシミュレ
ーション環境(10A、..N、14A、..N)を使
用してハードウェア論理回路をシミュレートする方法で
あって、同じハードウェア・モデルの複数のn個の異な
るインスタンシエーション(12A..12N)を統合
するためにコンパイルされたメタモデル(22)を使用
するステップと、インスタンシエーション固有のネーム
・スペース指定によって異なるインスタンシエーション
の機構および信号を解決するステップとを特徴とする方
法。 (2)前記メタモデルと通信するためのテスト・オブジ
ェクトを生成するステップと、同一シミュレーション・
モデルの複数のn個の異なるインスタンシエーションを
呼び出すメイン・プログラムを生成するステップとを含
む、上記(1)に記載の方法。 (3)前記モデル固有のネーム・スペース指定が、それ
ぞれの変数のプレフィックスまたはサフィックス名前拡
張子によって行われる、上記(1)に記載の方法。 (4)a.前記環境コード(10A、..N)からの複
数のn個の入力チャネルのそれぞれを、専用コード・ス
イッチ手段(24)でスティミュラス入力する目的で、
モデル・インスタンシエーション(12A、..N)の
それぞれに関連づけること、および b.前記モデル・インスタンシエーション(12
A、..N)からの複数のn個の出力チャネルのそれぞ
れを、それぞれのコード・スイッチ手段(26)を有す
る前記環境コード(14A、..N)のそれぞれの呼び
出しに関連づけること、をさらに含む、上記(1)に記
載の方法。 (5)モデル実行を実行することによって発行されるイ
ベントを監視するステップと、そのようなイベントに応
答してそれぞれの環境コード(10、12)を呼び出す
ステップとをさらに含む、上記(1)ないし上記(4)
のいずれかに記載の方法。 (6)ハードウェア設計ソースのメタモデルをコンパイ
ルするための方法であって、インスタンシエーション固
有のネーム・スペース指定を有する同じハードウェア・
シミュレーション・モデルの複数インスタンシエーショ
ン(12A、..12N)を入力するための機構を提供
するステップと、前記複数インスタンシエーション(1
2A、..12N)を単一メタモデル(22)の単一実
行形式またはオブジェクト・ファイルにコンパイルする
ステップとを含む方法。 (7)データ処理システム内で実行されるコンピュータ
・プログラムであって、上記(1)ないし上記(5)の
いずれか一項に記載の方法のそれぞれのステップを実行
するためのコンピュータ・プログラム・コード部分を備
えるか、または前記コード部分がコンピューティング・
ユニット上で実行されるときには上記(6)に記載の方
法のそれぞれのステップを実行するためのコンピュータ
・プログラム・コード部分を備えるコンピュータ・プロ
グラム。 (8)コンピュータ使用可能媒体上に格納されたコンピ
ュータ・プログラム製品であって、前記コンピュータ・
プログラム製品がコンピュータ上で実行されるときに、
上記(1)ないし上記(6)のいずれか一項の方法を、
コンピュータに実行させるためのコンピュータ可読プロ
グラム手段を含むコンピュータ・プログラム製品。
が蓄積され(10)シミュレーション結果データが管理
される(14)、ハードウェア・モデルおよびシミュレ
ーション環境(10A、..N、14A、..N)を使
用してハードウェア論理回路をシミュレートする方法で
あって、同じハードウェア・モデルの複数のn個の異な
るインスタンシエーション(12A..12N)を統合
するためにコンパイルされたメタモデル(22)を使用
するステップと、インスタンシエーション固有のネーム
・スペース指定によって異なるインスタンシエーション
の機構および信号を解決するステップとを特徴とする方
法。 (2)前記メタモデルと通信するためのテスト・オブジ
ェクトを生成するステップと、同一シミュレーション・
モデルの複数のn個の異なるインスタンシエーションを
呼び出すメイン・プログラムを生成するステップとを含
む、上記(1)に記載の方法。 (3)前記モデル固有のネーム・スペース指定が、それ
ぞれの変数のプレフィックスまたはサフィックス名前拡
張子によって行われる、上記(1)に記載の方法。 (4)a.前記環境コード(10A、..N)からの複
数のn個の入力チャネルのそれぞれを、専用コード・ス
イッチ手段(24)でスティミュラス入力する目的で、
モデル・インスタンシエーション(12A、..N)の
それぞれに関連づけること、および b.前記モデル・インスタンシエーション(12
A、..N)からの複数のn個の出力チャネルのそれぞ
れを、それぞれのコード・スイッチ手段(26)を有す
る前記環境コード(14A、..N)のそれぞれの呼び
出しに関連づけること、をさらに含む、上記(1)に記
載の方法。 (5)モデル実行を実行することによって発行されるイ
ベントを監視するステップと、そのようなイベントに応
答してそれぞれの環境コード(10、12)を呼び出す
ステップとをさらに含む、上記(1)ないし上記(4)
のいずれかに記載の方法。 (6)ハードウェア設計ソースのメタモデルをコンパイ
ルするための方法であって、インスタンシエーション固
有のネーム・スペース指定を有する同じハードウェア・
シミュレーション・モデルの複数インスタンシエーショ
ン(12A、..12N)を入力するための機構を提供
するステップと、前記複数インスタンシエーション(1
2A、..12N)を単一メタモデル(22)の単一実
行形式またはオブジェクト・ファイルにコンパイルする
ステップとを含む方法。 (7)データ処理システム内で実行されるコンピュータ
・プログラムであって、上記(1)ないし上記(5)の
いずれか一項に記載の方法のそれぞれのステップを実行
するためのコンピュータ・プログラム・コード部分を備
えるか、または前記コード部分がコンピューティング・
ユニット上で実行されるときには上記(6)に記載の方
法のそれぞれのステップを実行するためのコンピュータ
・プログラム・コード部分を備えるコンピュータ・プロ
グラム。 (8)コンピュータ使用可能媒体上に格納されたコンピ
ュータ・プログラム製品であって、前記コンピュータ・
プログラム製品がコンピュータ上で実行されるときに、
上記(1)ないし上記(6)のいずれか一項の方法を、
コンピュータに実行させるためのコンピュータ可読プロ
グラム手段を含むコンピュータ・プログラム製品。
【図1】複数のn個の異なるハードウェア・モデルを有
する従来技術のハードウェア・シミュレーションの構造
的概要を示す略図である。
する従来技術のハードウェア・シミュレーションの構造
的概要を示す略図である。
【図2】基本的な発明概念を示す、図1による略図であ
る。
る。
【図3】発明的モデル蓄積コンパイラ(上部)およびシ
ミュレータ・プログラムの発明的実施形態(下部)を示
す略図である。
ミュレータ・プログラムの発明的実施形態(下部)を示
す略図である。
【図4】具体的変数名のための例示的記憶表現を示す略
図である。
図である。
10A 環境コード
10B 環境コード
10N 環境コード
12A モデル・インスタンシエーション
12B モデル・インスタンシエーション
12N モデル・インスタンシエーション
14A 環境コード
14B 環境コード
14N 環境コード
22 メタモデル
24 コード・スイッチ・インタフェース手段
26 コード・スイッチ・インタフェース手段
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 フランク・アルムブルーズター
ドイツ ディー−71032 ボエブリンゲン
タオヌスシュトラーセ 45
(72)発明者 ボド・エバーハルド・ホッペ
ドイツ ディー−71732 タム リンデン
シュトラーセ 70
(72)発明者 ヨハネス・コエズタース
ドイツ ディー−71088 ホルツゲルリン
ゲン ボイーレンシュトラーセ 94
(72)発明者 クラウスディーター・シューベルト
ドイツ ディー−71101 ショーエンアイ
ヒ ハルトマンスドルファー・シュトラー
セ 16
Fターム(参考) 5B046 AA08 BA03 JA05
Claims (8)
- 【請求項1】シミュレーションのスティミュラスが蓄積
され(10)シミュレーション結果データが管理される
(14)、ハードウェア・モデルおよびシミュレーショ
ン環境(10A、..N、14A、..N)を使用して
ハードウェア論理回路をシミュレートする方法であっ
て、 同じハードウェア・モデルの複数のn個の異なるインス
タンシエーション(12A..12N)を統合するため
にコンパイルされたメタモデル(22)を使用するステ
ップと、 インスタンシエーション固有のネーム・スペース指定に
よって異なるインスタンシエーションの機構および信号
を解決するステップとを特徴とする方法。 - 【請求項2】前記メタモデルと通信するためのテスト・
オブジェクトを生成するステップと、 同一シミュレーション・モデルの複数のn個の異なるイ
ンスタンシエーションを呼び出すメイン・プログラムを
生成するステップとを含む、請求項1に記載の方法。 - 【請求項3】前記モデル固有のネーム・スペース指定
が、それぞれの変数のプレフィックスまたはサフィック
ス名前拡張子によって行われる、請求項1に記載の方
法。 - 【請求項4】a.前記環境コード(10A、..N)か
らの複数のn個の入力チャネルのそれぞれを、専用コー
ド・スイッチ手段(24)でスティミュラス入力する目
的で、モデル・インスタンシエーション(12A、..
N)のそれぞれに関連づけること、および b.前記モデル・インスタンシエーション(12
A、..N)からの複数のn個の出力チャネルのそれぞ
れを、それぞれのコード・スイッチ手段(26)を有す
る前記環境コード(14A、..N)のそれぞれの呼び
出しに関連づけること、 をさらに含む、請求項1に記載の方法。 - 【請求項5】モデル実行を実行することによって発行さ
れるイベントを監視するステップと、 そのようなイベントに応答してそれぞれの環境コード
(10、12)を呼び出すステップとをさらに含む、請
求項1ないし4のいずれかに記載の方法。 - 【請求項6】ハードウェア設計ソースのメタモデルをコ
ンパイルするための方法であって、 インスタンシエーション固有のネーム・スペース指定を
有する同じハードウェア・シミュレーション・モデルの
複数インスタンシエーション(12A、..12N)を
入力するための機構を提供するステップと、 前記複数インスタンシエーション(12A、..12
N)を単一メタモデル(22)の単一実行形式またはオ
ブジェクト・ファイルにコンパイルするステップとを含
む方法。 - 【請求項7】データ処理システム内で実行されるコンピ
ュータ・プログラムであって、請求項1ないし5のいず
れか一項に記載の方法のそれぞれのステップを実行する
ためのコンピュータ・プログラム・コード部分を備える
か、または前記コード部分がコンピューティング・ユニ
ット上で実行されるときには請求項6に記載の方法のそ
れぞれのステップを実行するためのコンピュータ・プロ
グラム・コード部分を備えるコンピュータ・プログラ
ム。 - 【請求項8】コンピュータ使用可能媒体上に格納された
コンピュータ・プログラム製品であって、前記コンピュ
ータ・プログラム製品がコンピュータ上で実行されると
きに、請求項1ないし6のいずれか一項の方法を、コン
ピュータに実行させるためのコンピュータ可読プログラ
ム手段を含むコンピュータ・プログラム製品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01111833 | 2001-05-16 | ||
EP01111833.8 | 2001-05-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003030269A true JP2003030269A (ja) | 2003-01-31 |
Family
ID=8177445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002138462A Pending JP2003030269A (ja) | 2001-05-16 | 2002-05-14 | メタモデルを用いた単一マイクロプロセッサ上の並列シミュレーションのための方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7353159B2 (ja) |
JP (1) | JP2003030269A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008117473A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | エミュレーション装置、エミュレータ生成方法、およびエミュレータ実行方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873506B2 (en) * | 2003-06-30 | 2011-01-18 | Agere Systems Inc. | Simulation framework with support for multiple integrated circuits having potentially differing characteristics |
US7231616B1 (en) * | 2003-08-20 | 2007-06-12 | Adaptec, Inc. | Method and apparatus for accelerating test case development |
US8930890B2 (en) * | 2006-12-05 | 2015-01-06 | International Business Machines Corporation | Software model skinning |
US8756561B2 (en) * | 2006-12-05 | 2014-06-17 | International Business Machines Corporation | Software model normalization and mediation |
US7945433B2 (en) * | 2007-04-30 | 2011-05-17 | International Business Machines Corporation | Hardware simulation accelerator design and method that exploits a parallel structure of user models to support a larger user model size |
US20110144775A1 (en) * | 2009-12-10 | 2011-06-16 | Peter Killisperger | Method and apparatus for adapting a process instance |
US9552281B2 (en) * | 2011-12-28 | 2017-01-24 | Verisign, Inc. | Utilizing a test automation tool in a test automation environment |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197016A (en) * | 1988-01-13 | 1993-03-23 | International Chip Corporation | Integrated silicon-software compiler |
US5363319A (en) * | 1990-09-29 | 1994-11-08 | Kabushiki Kaisha Toshiba | Logic simulator |
US5680584A (en) * | 1991-03-07 | 1997-10-21 | Digital Equipment Corporation | Simulator system for code execution and debugging within a multi-architecture environment |
WO1993016433A1 (en) * | 1992-02-07 | 1993-08-19 | Seiko Epson Corporation | Hardware emulation accelerator and method |
US6067639A (en) * | 1995-11-09 | 2000-05-23 | Microsoft Corporation | Method for integrating automated software testing with software development |
US5970242A (en) * | 1996-01-24 | 1999-10-19 | Sun Microsystems, Inc. | Replicating code to eliminate a level of indirection during execution of an object oriented computer program |
US6233540B1 (en) * | 1997-03-14 | 2001-05-15 | Interuniversitair Micro-Elektronica Centrum | Design environment and a method for generating an implementable description of a digital system |
US5905987A (en) * | 1997-03-19 | 1999-05-18 | Microsoft Corporation | Method, data structure, and computer program product for object state storage in a repository |
US6192504B1 (en) * | 1997-05-14 | 2001-02-20 | International Business Machines Corporation | Methods and systems for functionally describing a digital hardware design and for converting a functional specification of same into a netlist |
US6289491B1 (en) * | 1998-02-20 | 2001-09-11 | Lsi Logic Corporation | Netlist analysis tool by degree of conformity |
US6453276B1 (en) * | 1998-12-22 | 2002-09-17 | Unisys Corporation | Method and apparatus for efficiently generating test input for a logic simulator |
US6505328B1 (en) * | 1999-04-27 | 2003-01-07 | Magma Design Automation, Inc. | Method for storing multiple levels of design data in a common database |
US6427223B1 (en) * | 1999-04-30 | 2002-07-30 | Synopsys, Inc. | Method and apparatus for adaptive verification of circuit designs |
US6874146B1 (en) * | 1999-06-30 | 2005-03-29 | Unisys Corporation | Metadata driven system for effecting extensible data interchange based on universal modeling language (UML), meta object facility (MOF) and extensible markup language (XML) standards |
GB2353610A (en) * | 1999-08-21 | 2001-02-28 | Ibm | Computerised testcase management system |
US6591403B1 (en) * | 2000-10-02 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | System and method for specifying hardware description language assertions targeting a diverse set of verification tools |
US7174534B2 (en) * | 2001-01-22 | 2007-02-06 | Symbol Technologies, Inc. | Efficient system and method for running and analyzing multi-channel, multi-modal applications |
US6857110B1 (en) * | 2001-01-30 | 2005-02-15 | Stretch, Inc. | Design methodology for merging programmable logic into a custom IC |
US6477689B1 (en) * | 2001-06-13 | 2002-11-05 | The Boeing Company | Architectural structure of a process netlist design tool |
US7316000B2 (en) * | 2001-08-27 | 2008-01-01 | International Business Machines Corporation | Interactive agent for a topological multi-tier business application composer |
US7366951B2 (en) * | 2002-05-24 | 2008-04-29 | Fujitsu, Limited | Method and apparatus for test program generation based on an instruction set description of a processor |
US7725888B2 (en) * | 2003-09-26 | 2010-05-25 | Wind River Systems, Inc. | Systems and methods for dynamically linking application software into a running operating system kernel |
US7213225B2 (en) * | 2004-05-28 | 2007-05-01 | International Business Machines Corporation | Method, system and program product for specifying and using register entities to configure a simulated or physical digital system |
-
2002
- 2002-05-14 JP JP2002138462A patent/JP2003030269A/ja active Pending
- 2002-05-15 US US10/146,331 patent/US7353159B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008117473A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | エミュレーション装置、エミュレータ生成方法、およびエミュレータ実行方法 |
JPWO2008117473A1 (ja) * | 2007-03-27 | 2010-07-08 | 富士通株式会社 | エミュレーション装置、エミュレータ生成方法、およびエミュレータ実行方法 |
US8626485B2 (en) | 2007-03-27 | 2014-01-07 | Fujitsu Limited | Emulation apparatus, emulator generating method and emulator executing method |
Also Published As
Publication number | Publication date |
---|---|
US7353159B2 (en) | 2008-04-01 |
US20020173943A1 (en) | 2002-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078290B (zh) | 一种用于可扩展指令集的编译器及编译方法 | |
JP4014080B2 (ja) | デジタル回路の設計装置および設計方法、並びに、プログラムおよび格納媒体 | |
US7493606B2 (en) | Method for compiling and executing a parallel program | |
US6467082B1 (en) | Methods and apparatus for simulating external linkage points and control transfers in source translation systems | |
CN110955410A (zh) | 一种代码自动生成方法、装置、设备及介质 | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
JP2011096107A (ja) | 並列化方法、システム、及びプログラム | |
Fauth et al. | Automated generation of DSP program development tools using a machine description formalism | |
JP2003030269A (ja) | メタモデルを用いた単一マイクロプロセッサ上の並列シミュレーションのための方法 | |
Mittra | Principles of Verilog PLI | |
Daily et al. | Using the Global Arrays Toolkit to Reimplement NumPy for Distributed Computation. | |
CN114489861A (zh) | 目标组件转化方法、装置、电子设备及可读存储介质 | |
Klaus et al. | Automatic generation of scheduled SystemC models of embedded systems from extended task graphs | |
EP0598476B1 (en) | Compilation mechanism for a simulation model | |
Page | Parameterised processor generation | |
JPH11296359A (ja) | プログラム開発支援ツール | |
JP2002132502A (ja) | 言語機能解釈による分散オブジェクト自動生成システム及び方法 | |
Zhang et al. | PDSDL: A dynamic system description language | |
Pachev et al. | GPUMap: A Transparently GPU-accelerated Python Map Function | |
Mermet et al. | Three decades of hardware description languages in Europe | |
Dubois | An Introduction to Cosimulation and Compilation Methods | |
CN114817403A (zh) | 区块链的部署方法、装置、设备及存储介质 | |
Goudarzi et al. | The ODYSSEY approach to early simulation-based equivalence checking at ESL level using automatically generated executable transaction-level model | |
Maurer | Converting command‐line applications into binary components | |
Jacob et al. | Simplifying the development and deployment of MapReduce algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050817 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051108 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051111 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060509 |