JP2009535726A - シミュレーション結果を表示するための信号の仕様をサポートする方法、システム、およびプログラム製品 - Google Patents

シミュレーション結果を表示するための信号の仕様をサポートする方法、システム、およびプログラム製品 Download PDF

Info

Publication number
JP2009535726A
JP2009535726A JP2009508341A JP2009508341A JP2009535726A JP 2009535726 A JP2009535726 A JP 2009535726A JP 2009508341 A JP2009508341 A JP 2009508341A JP 2009508341 A JP2009508341 A JP 2009508341A JP 2009535726 A JP2009535726 A JP 2009535726A
Authority
JP
Japan
Prior art keywords
signal
signal group
entity
name
entry
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.)
Granted
Application number
JP2009508341A
Other languages
English (en)
Other versions
JP2009535726A5 (ja
JP5039130B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009535726A publication Critical patent/JP2009535726A/ja
Publication of JP2009535726A5 publication Critical patent/JP2009535726A5/ja
Application granted granted Critical
Publication of JP5039130B2 publication Critical patent/JP5039130B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】シミュレーション処理のための方法、システム、およびプログラム製品を提供する。
【解決手段】データ処理の方法に従って、所定の信号グループ名によって信号グループを指定する少なくとも1つのエントリを含むデータ・セットが、データ処理システムによって受け取られる。このデータ・セットの受け取りに応答して、信号グループ名を識別するためにデータ・セット内のエントリが処理される。信号グループのメンバである複数信号の信号名を決定するために、シミュレーション結果を含むイベント・トレース・ファイルに関連付けられた信号グループ情報がアクセスされる。その後、当該複数の信号のインスタンスに関連付けられたイベント・トレース・ファイルからのシミュレーション結果が、シミュレーション結果のプレゼンテーション内に含められる。
【選択図】図4

Description

本発明は、一般に、デジタル・デバイス、モジュール、およびシステムのシミュレートに関し、具体的には、デジタル・デバイス、モジュール、およびシステムのコンピュータ・シミュレーションに関する。
デジタル設計の論理的正確さの検証、および、必要であれば設計のデバッグは、ほとんどのデジタル設計プロセスにおいて非常に重要なステップである。論理ネットワークは、実際にネットワークを構築すること、またはコンピュータ上でネットワークをシミュレートすることの、いずれかによってテストされる。論理ネットワークが非常に複雑になるにつれて、設計が実際に構築される前に設計をシミュレートすることが必要になってきている。これは特に、集積回路の製造にかなりの時間を必要とし、ミスの訂正にかなりのコストがかかることから、設計が集積回路として実装される場合に当てはまる。デジタル設計シミュレーションの目的は、設計の論理的正確さの検証である。
従来の電子コンピュータ支援設計(ECAD)システムによってサポートされる典型的な自動設計プロセスでは、設計者は、VHDLなどのハードウェア記述言語(HDL)を使用して高水準の記述を入力し、様々な回路ブロックおよびそれらの相互接続の表現を生成する。ECADシステムは、設計記述を、シミュレーションに最適なフォーマットにコンパイルする。次にシミュレータを使用して、回路レイアウトを展開するのに先立って設計の論理的正確さを検証する。
シミュレータとは、典型的には、デジタル表現、または回路のシミュレーション・モデル、およびデジタル・システムの入力を表現する入力刺激(input stimuli)のリスト(すなわちテストケース)で動作する、ソフトウェア・ツールである。シミュレータは、回路の応答の数値表現を生成し、これが、値のリストとしてディスプレイ画面上に表示されるか、または、しばしば別のソフトウェア・プログラムによってさらに解釈され、グラフの形でディスプレイ画面上に提示される可能性がある。シミュレータは、シミュレーション用に特別に設計された、汎用コンピュータまたは通常は汎用コンピュータに接続された他の電子装置上で、実行可能である。全体として汎用コンピュータ上のソフトウェア内で実行するシミュレータを、以下では「ソフトウェア・シミュレータ」と呼ぶ。特別に設計された電子装置の支援を受けて実行されるシミュレータを、以下では「ハードウェア・シミュレータ」と呼ぶ。
通常、ソフトウェア・シミュレータは非常に多くの計算を実行し、ユーザの観点からゆっくりと動作する。性能を最適化するために、シミュレーション・モデルのフォーマットは、シミュレータが非常に効率良く使用するように設計される。ハードウェア・シミュレータは、本質的に、回路記述を備えるシミュレーション・モデルが特別に設計されたフォーマットで通信されることを必要とする。いずれの場合も、以下ではシミュレーション実行可能モデルと呼ばれる、HDL記述からシミュレーション・フォーマットへの変換が必要である。
シミュレータによるシミュレーション実行可能モデルへのテストケースの適用の結果は、本明細書では「全イベント・トレース」(AET)と呼ばれる。AETは、シミュレーション実行可能モデル内の信号あるいはストレージ要素またはその両方の論理値を含む。AETビューアは、再検討および分析のためにAETのコンテンツによってユーザに提示するために使用することができる。
大規模なシミュレーション実行可能モデルの場合、莫大な量のデータがAETに存在することになり、それらのすべてがユーザに関係する訳ではないことを理解されよう。したがって従来のAETビューアでは、ユーザは、ユーザが表示したいシミュレーション実行可能モデル内の信号を指定する入力/出力(I/O)リストを入力することができる。これに応答して、従来のAETビューアは、I/Oリスト内で識別されたシミュレーション実行可能モデル内の信号のみをユーザに提示する。
本発明は、特に複雑なシミュレーション実行可能モデルの場合、I/Oリストの(たとえばキーボードを利用した)ユーザ入力が退屈で時間のかかるものであることを理解している。したがって本発明は、シミュレーション処理のための方法、システム、およびプログラム製品を提供する。
例示的方法によれば、所定の信号グループ名によって信号グループを指定する少なくとも1つのエントリを含むデータ・セットが、データ処理システムによって受け取られる。このデータ・セットの受け取りに応答して、信号グループ名を識別するためにデータ・セット内のエントリが処理される。信号グループのメンバである複数の信号の信号名を特定するために、シミュレーション結果を含むイベント・トレース・ファイルに関連付けられた信号グループ情報にアクセスする。その後、当該複数の信号のインスタンスに関連付けられたイベント・トレース・ファイルからのシミュレーション結果が、シミュレーション結果のプレゼンテーションに含められる。
本発明のすべての目的、特徴、および利点は、以下の詳細な説明で明らかになろう。
本発明の新規な機能であるとみなされる特徴は、添付の特許請求の範囲に示される。しかしながら、本発明それ自体、ならびに好ましい使用モード、それらの他の目的および利点は、添付の図面に関して例示的実施形態の以下の詳細な説明を参照することによって、最も良く理解されるであろう。
次に図面を参照すると、また特に図1を参照すると、これによって本発明が有利に使用できる、データ処理システム10の絵画図が示されている。図に示されるように、データ処理システム10は、1つまたは複数のノード13が接続されたワークステーション12を備える。ワークステーション12は、好ましくは、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ(IBM)コーポレーションから入手可能なPOWERライン・コンピュータ・システムのうちの1つなどの、高性能マルチプロセッサ・コンピュータを備える。ワークステーション12は、好ましくは、本発明の方法およびシステムに従ってデジタル回路設計を開発および検証するために使用可能なECADシステムを備えるソフトウェア・アプリケーションを格納するための、不揮発性および揮発性の内部ストレージを含む。図に示されるように、ノード13は、ディスプレイ・デバイス14、キーボード16、およびマウス20を含む。ワークステーション12内で実行されるECADソフトウェア・アプリケーションは、好ましくは、デジタル回路設計者がキーボード16およびマウス20を使用して対話することが可能なグラフィック・ユーザ・インターフェース(GUI)を、ディスプレイ・デバイス14のディスプレイ画面22内に表示する。したがって、キーボード16およびマウス20を利用して適切な入力を実行することによって、デジタル回路設計者は、以下でより詳細に説明する方法に従ってデジタル回路設計を開発および検証することができる。
図2は、データ処理システム10を示すより詳細なブロック図である。図に示されるように、データ処理システム10は、従来のマイクロプロセッサなどの1つまたは複数の中央処理ユニット(CPU)、および、システム相互接続26を介して相互接続された、いくつかの他の構成要素を含む。図2には示されていないが、CPU 24などのCPUは、通常、コンピュータ・メモリ内のデータおよびプログラム・ストレージを編成し、このデータおよび他の情報をコンピュータ・システムの様々な部分間で転送する、制御ユニットを含む。CPUは一般に、加算、比較、乗算などの算術的および論理的演算を実行する、1つまたは複数の演算論理ユニットも含む。
データ処理システム10は、ランダム・アクセス・メモリ(RAM)28、読み取り専用メモリ(ROM)30、ディスプレイ・デバイス14の接続をサポートするディスプレイ・アダプタ32、および周辺デバイス(たとえばディスクおよびテープ・ドライブ33)を接続するためのI/Oアダプタ34を、さらに含む。データ処理システム10は、データ処理システム10を通信ネットワークに接続するための通信アダプタ42と、キーボード16、マウス20、スピーカ38、マイクロフォン40、あるいは他のユーザ・インターフェース・デバイスまたはそれらすべてを、システム相互接続26に接続するための、ユーザ・インターフェース・アダプタ36とを、さらに含む。
当業者であれば理解されるように、データ処理システム10は、RAM 28、ROM 30、磁気ディスク、磁気テープ、または光ディスク(最後の3つはディスクおよびテープ・ドライブ33内に配置される)などの、任意の好適なコンピュータ読み取り可能媒体に常駐可能な、オペレーティング・システム(たとえばAIX)および1つまたは複数の他のプログラムの制御の下で動作する。
シミュレートされたデジタル回路設計モデルは、以下で設計エンティティと呼ばれる、少なくとも1つ、通常は多くの、サブユニットからなる。図3は、その内部に本発明の方法およびシステムが実装可能な、例示的設計エンティティ300のブロック図である。設計エンティティ300は、エンティティ名、エンティティ・ポート、および設計エンティティ300によって実行される機能の表現という、いくつかの構成要素によって定義される。所与のモデル内の各エンティティは、各エンティティのHDL記述で宣言された固有名(図3には明示的に図示せず)を有する。さらに各エンティティは、通常、ポートと呼ばれる、エンティティ外部の信号へのいくつかの信号相互接続を含む。これらの外部信号は、全体設計内の他のエンティティに接続している全体設計または信号の主入力/出力(I/O)とすることができる。
通常、ポートは、入力ポート、出力ポート、および双方向ポートという、3つの別個のタイプのうちの1つに属するものと分類される。設計エンティティ300は、設計エンティティ300内に信号を搬送するいくつかの入力ポート303を有するものとして示される。入力ポート303は入力信号301に接続される。加えて、設計エンティティ300は、設計エンティティ300外部へ信号を搬送するいくつかの出力ポート306を含む。出力ポート306は出力信号304のセットに接続される。双方向ポート305は、設計ポート300の内部および外部へ信号を搬送するために使用される。双方向ポート305は、双方向信号309のセットに接続される。設計エンティティ300などのエンティティは、3つすべてのタイプのポートを含む必要がなく、悪くすると、まったくポートを含まない。エンティティ・ポートの外部信号への接続を実施するために、「ポート・マップ」と呼ばれるマッピング技法が使用される。ポート・マップ(図3には明示的に図示せず)は、エンティティ・ポート名とエンティティが接続された外部信号との間の指定された対応関係からなる。シミュレーション・モデルを構築する場合、ECADソフトウェアを使用し、ポート・マップ指定に従って、外部信号をエンティティの適切なポートに接続する。
最後に、設計エンティティ300は、設計エンティティ300によって実行される1つまたは複数の機能を記述した本体部分308を含む。デジタル設計の場合、本体部分308は、他のエンティティのインスタンス化に加えて、論理ゲート、ストレージ要素などの相互接続を含む。他のエンティティ内にエンティティをインスタンス化することによって、全体設計の階層記述が達成される。たとえばマイクロプロセッサは、同一機能ユニットの複数インスタンスを含む場合がある。したがって、マイクロプロセッサそれ自体は、しばしば単一エンティティとしてモデル化されることになる。マイクロプロセッサ・エンティティ内では、任意の重複する機能エンティティの複数のインスタンス化が存在することになる。
次に図4を参照すると、本発明の好ましい実施形態で使用可能な例示的シミュレーション・モデル329の概略図が示されている。シミュレーション・モデル329は、複数の階層的な設計エンティティを含む。視覚的に単純かつ明瞭にするために、シミュレーション・モデル329内のエンティティを相互接続するポートおよび信号の多くは明示的に示されていない。いかなるモデルにおいても、唯一のエンティティがいわゆる「最上位エンティティ」である。最上位エンティティ320は、シミュレーション・モデル329内のすべての他のエンティティを包含するエンティティである。すなわち、最上位エンティティ320は、設計内のすべての下位(descendant)エンティティを直接または間接的にインスタンス化する。シミュレーション・モデル329は、FXUエンティティ321の2つのインスタンスである321aおよび321bを直接インスタンス化する、最上位エンティティ320からなる。各インスタンス化は、エンティティ名および固有のインスタンス化名を含む関連記述を有する。最上位エンティティ320の場合、記述310は「TOP:TOP」とラベル表示される。記述310は、コロンに先行する「TOP」としてラベル表示されたエンティティ名312を含み、コロンに続く「TOP」としてラベル表示されたインスタンス化名314も含む。
FXUエンティティ321のインスタンス化321aおよび321bで示されるように、特定のエンティティを複数回インスタンス化することが可能である。インスタンス化321aおよび321bは、それぞれ、インスタンス化名FXU0およびFXU1を備えた、FXUエンティティ321の別個のインスタンス化である。最上位エンティティ320は、シミュレーション・モデル329の階層内の最高レベルにある。下位エンティティをインスタンス化するエンティティは、以下では、下位エンティティの「上位(ancestor)」と呼ばれる。したがって、最上位エンティティ320は、FXUエンティティ・インスタンス化321aおよび321bを直接インスタンス化する上位である。シミュレーション・モデル階層の任意の所与のレベルで、すべてのインスタンス化のインスタンス化名が固有でなければならない。
FXUエンティティ321のインスタンス化321a内では、エンティティA 325およびエンティティB 326の単一インスタンス・エンティティ325aおよび326aが、それぞれ直接インスタンス化される。同様に、同じFXUエンティティのインスタンス化321bは、それぞれエンティティA 325およびエンティティB 326のインスタンス化325bおよび326bを含む。同様に、インスタンス化326aおよびインスタンス化326bはそれぞれ、エンティティC 327の単一インスタンスを、それぞれエンティティ327aおよび327bとして直接インスタンス化する。
インスタンス化されたすべてのエンティティが、別個または複合的にかかわらず固有のエンティティ名を有し、任意の所与のレベルの階層のインスタンス化名が互いに固有であると想定すると、他のエンティティ内にエンティティをネストすることは、任意レベルの複雑さまで続行することができる。各エンティティは、エンティティを記述するために必要な情報を含む1つまたは複数のHDLファイルから構築される。
各エンティティのインスタンス化との関連付けが、いわゆる「インスタンス化識別子」である。所与のインスタンス化のインスタンス化識別子は、最上位エンティティ・インスタンス化名から始まるエンクロージング・エンティティ・インスタンス化名からなる文字列である。たとえば、FXUエンティティ321のインスタンス化321a内にあるエンティティC 327のインスタンス化327aのインスタンス化識別子は、「TOP.FXU0.B.C」である。この識別子は、シミュレーション・モデル内の各インスタンス化を固有に識別する働きをする。
例示的シミュレーション・モデル329内では、様々な信号がインスタンス化される(たとえば信号E、F0、F1、G、H0、H1、L、M、N、P、およびQ)。各信号は、関連する信号名(たとえば「M」)と、好ましい実施形態では最上位レベル・エンティティ・インスタンス化名から始まり信号名で終わる、エンクロージング・エンティティ・インスタンス化名からなる文字列である、信号インスタンス化識別子とを有する。したがって、FXUエンティティ321のインスタンス化321a内にある信号Mのインスタンス化識別子は「TOP.FXU0.A.M」である。このインスタンス化識別子は、シミュレーション・モデル内の各信号インスタンス化を固有に識別する働きをする。たとえば信号P(0..4)などの信号は、マルチビット信号ベクトルとすることができることに留意されたい。また、いくつかの信号(たとえば信号TOP.FXU0.E、TOP.FXU1.E、TOP.FXU0.G、TOP.FXU1.G)は、設計エンティティの境界線を越えると(それぞれ、信号TOP.FXU0.F0、TOP.FXU1.F1、TOP.FXU0.H0、TOP.FXU1.H1として)改名されることにも留意されたい。
次に図5を参照すると、本発明の好ましい実施形態で実装可能なモデル構築プロセスの流れ図が示されている。このプロセスは、1つまたは複数の設計エンティティHDLソース・コード・ファイル340、および、潜在的には、HDLコンパイラ342の以前のランから入手可能な、以下では「プロト・ファイル」345と呼ばれる1つまたは複数の設計エンティティ中間フォーマット・ファイル345で始まる。HDLコンパイラ342は、シミュレーション・モデルの最上位エンティティで始まり、完全なシミュレーション・モデルを記述するすべてのHDLまたはプロト・ファイルを介して再帰的に進行する、HDLファイル340を処理する。
コンパイル・プロセス中の各HDLファイル340について、HDLコンパイラ342は、以前にコンパイルされたプロト・ファイルが使用可能であり整合性を持つかどうかを判別するために、プロト・ファイル345を検査する。こうしたファイルが使用可能であり整合性を持つ場合、HDLコンパイラ342はその特定のファイルを再コンパイルせず、むしろ現存のプロト・ファイルを参照することになる。使用可能なこうしたプロト・ファイルがなく、プロト・ファイルが整合性を持たない場合、HDLコンパイラ342は当該のHDLファイル340を明示的に再コンパイルし、その後のコンパイルで使用するためにプロト・ファイル344を作成する。こうしたプロセスは、以下では「増分コンパイル」と呼ばれ、シミュレーション実行可能モデル348を作成するプロセスを大幅にスピードアップすることができる。HDLコンパイラ342によっていったん作成されると、プロト・ファイル344は、その後のコンパイルでプロト・ファイル345として働くように使用可能である。
プロト・ファイル344に加えて、HDLコンパイラ342は、コンピュータ・システム10のメモリ44内に、設計エンティティ・プロト・データ構造341および設計エンティティ・インスタンス・データ構造343という、2つのデータ構造セットも作成する。設計エンティティ・プロト・データ構造341および設計エンティティ・インスタンス・データ構造343は、シミュレーション実行可能モデル348のコンテンツのメモリ・イメージとして働く。データ構造341および343は、メモリ44を介して、データ構造341および343をシミュレーション実行可能モデル348に処理するモデル構築ツール346へと渡される。
以下では、各エンティティが単一のHDLファイルによって記述されるものと想定される。本発明が実施される規則または特定のHDLに応じて、この制約が必要な可能性がある。しかしながら、特定の環境では、または特定のHDLについては、複数のHDLファイルを使用することによってエンティティを記述することができる。当業者であれば、エントリが複数のHDLファイルによって記述できる場合に、本発明を実施するために必要な拡張を理解されよう。さらに、各エンティティについて、エンティティ名と、エンティティを表すHDLファイルの名前およびそのエンティティのプロト・ファイルの名前の両方との間に、直接の対応関係があるものと想定される。
以下の説明では、所与のエンティティに対応するHDLソース・コード・ファイルは、エンティティ名の後に「.vhdl」を付けて呼ばれることになる。たとえば、最上位エンティティ320を記述するHDLソース・コード・ファイルは、TOP.vhdlと呼ばれることになる。このラベル表示規則は、単なる表記上の便宜として働くものであり、本発明の適用可能性をVHDL以外のHDLに限定するものと解釈すべきではない。
図4に戻ると、各エンティティが、1つまたは複数の他のエンティティを直接または間接的にインスタンス化できることがわかる。たとえば、FXUエンティティは、Aエンティティ325およびBエンティティ326を直接インスタンス化する。さらにBエンティティ326はCエンティティ327を直接インスタンス化する。したがって、FXUエンティティ321は、Aエンティティ325、Bエンティティ326、およびCエンティティ327を、直接または間接的にインスタンス化する。他のエンティティによって直接または間接的にインスタンス化されるそうしたエンティティを、以下では「下位」と呼ぶ。最上位エンティティ320の下位は、FXUエンティティ321、Aエンティティ325、Bエンティティ326、およびCエンティティ327である。各エンティティが下位の固有セットを有すること、ならびに、エンティティがインスタンス化されるごとに、エンティティの固有インスタンスおよびその下位が作成されることがわかる。シミュレーション・モデル329内では、FXUエンティティ321は、最上位エンティティ320によって、FXU:FXU0 321aおよびFXU:FXU1 321bの2回インスタンス化される。FXUエンティティ321の各インスタンス化は、FXU、A、B、およびCエンティティのインスタンスの固有セットを作成する。
各エンティティについて、「部品表」またはBOMと呼ばれるものを定義することができる。BOMは、エンティティそれ自体およびエンティティの下位の日付および時刻スタンプを有する、HDLファイルのリストである。再度図5を参照すると、エンティティのコンパイル後、エンティティのBOMはプロト・ファイル344に格納される。したがって、HDLコンパイラ342がHDLファイル340の中の特定のHDLソース・コード・ファイルをコンパイルする場合、もしもあれば、エンティティおよびエンティティの下位を構成するHDLファイル340をリスト表示するBOMを含むプロト・ファイル344が生成される。BOMは、HDLファイルがコンパイルされていたときにコンピュータ・システム10のディスク/テープ33上に出現するたびに参照された、HDLファイルのそれぞれについての日付および時刻スタンプも含む。
エンティティまたはエンティティの下位を構成するいずれかのHDLファイルが後に変更された場合、プロト・ファイル344は不整合としてフラグが立てられ、以下でより詳細に説明するように、HDLコンパイラ342は後続の再コンパイルでHDLファイル340を再コンパイルすることになる。たとえば図4に戻ると、FXUエンティティ321のBOMによって参照されるHDLファイルは、それぞれ適切な日付および時刻スタンプを備えた、FXU.vhdl、A.vhdl、B.vhdl、およびC.vhdlである。最上位エンティティ320のBOMによって参照されるファイルは、適切な日付および時刻スタンプを備えた、TOP.vhdl、FXU.vhdl、A.vhdl、B.vhdl、C.vhdl、およびFPU.vhdlである。
図5に戻ると、HDLコンパイラ342は、コンピュータ・システム10のメイン・メモリ44内にシミュレーション・モデルの構造のイメージを作成する。このメモリ・イメージは、「プロト」データ構造341および「インスタンス」データ構造343という構成要素からなる。プロトとは、モデル内の各エンティティについて、エンティティのポートに関する情報、エンティティの本体コンテンツ、およびエンティティによって直接インスタンス化された他のエンティティへの参照のリストを含む、データ構造のことである(以下では、「プロト」という用語は、前述のメモリ内データ構造を言い表すために利用され、「プロト・ファイル」という用語は、中間フォーマット・ファイル344を記述するために利用される)。したがってプロト・ファイル344は、HDLコンパイラ342によって生成されるメモリ内プロト・データ構造のディスク上表現である。
インスタンス・データ構造とは、モデル内のエンティティの各インスタンスについて、インスタンスのインスタンス名、インスタンスが参照するエンティティの名前、および、エンティティを外部信号と相互接続するために必要なポート・マップ情報を含む、データ構造のことである。コンパイル時に、各エンティティはプロト・データ構造を1つだけ有することになるが、エンティティの複数のインスタンス化の場合、各エンティティは1つまたは複数のインスタンス・データ構造を有することができる。
モデルを効率よく増分的にコンパイルするために、HDLコンパイラ342は、プロト・ファイル345が使用可能であり、それらのエンティティおよびそれらの下位を構成するHDLソース・ファイルと整合性を持つ場合、モデルの連続エンティティがこうしたファイルから考慮およびロードされる、再帰的コンパイル方法に従う。既存のプロト・ファイル345からロードできない各エンティティの場合、HDLコンパイラ342はエンティティの下位を再帰的に検査し、プロト・ファイル345から使用可能なそれらの下位エンティティをロードし、プロト・ファイル345と不整合なそれらの下位について、必要に応じてプロト・ファイル344を作成する。HDLコンパイラ342のメイン制御ループに関する擬似コードが、以下に示される(擬似コードの右側のライン番号は擬似コードの一部ではなく、単に表記上の便宜としての働きをする)。
Figure 2009535726
コンパイラ342が初期に呼び出された場合、プロト・データ構造341またはインスタンス・データ構造343がコンピュータ・システム10のメモリ44内に存在する。メイン制御ループである、ルーチンprocess_HDL_file()(ライン5)が呼び出され、パラメータ「file」によって、最上位エンティティの名前が渡される。アルゴリズムは第1に、現在のエンティティに関するプロト・データ構造がメモリ44内に存在するかどうかを、ルーチンproto_loaded()(ライン15)を使用して判別する。いかなるプロト・データ構造もメモリ44にロードされることなくプロセスが開始されるため、最上位エンティティに関するプロト・データ構造は、決してメモリ内に存在しないことに留意されたい。メモリ44内に合致するプロト・データ構造が存在する場合、現在のエンティティおよび現在のエンティティの下位に関するインスタンス・データ構造があれば、必要に応じて、ルーチンcreate_instance()(ライン75)によって、メモリ44内に作成される。
しかしながら、合致するプロト・データ構造がメモリ44内に存在しない場合、制御はライン20に渡され、ここでルーチンexists_proto_file()は、エンティティに関するプロト・ファイルが存在するかどうかを判別するために、プロト・ファイル345を検査する。合致するプロト・ファイルが存在する場合、および存在する場合にのみ、プロト・ファイル345が整合性を持つかどうかを判別するために、ルーチンcheck_bom()が呼び出される。プロト・ファイルが整合性を持つかどうかを判別するために、プロト・ファイルに関するBOMが検査される。ルーチンcheck_bom()は、HDLソース・コード・ファイルに関する日付または時刻スタンプが変更されたかどうか、あるいは、HDLソース・コード・ファイルが削除されたかどうかを判別するために、BOM内にリスト表示された各HDLソース・コード・ファイルを検査する。BOM内の任意のファイルに対していずれかの状態が発声した場合、プロト・ファイルは不整合であり、ルーチンcheck_bom()は失敗する。しかしながら、check_bom()が成功した場合、制御はライン25に渡され、ここでルーチンload_proto()はプロト・ファイルおよび任意の下位プロト・ファイルをメモリ44内にロードし、現在のエンティティおよび、あれば現在のエンティティの下位に関するプロト・データ構造341を作成する。process_HDL_file()の構造は、いったんプロト・ファイルが整合性を持つとして検証されると、その下位プロト・ファイルもすべて整合性を持つことを保証する。
プロト・ファイルが実在しないか、または不整合である場合、制御はライン35に渡され、ここでルーチンparse_HDL_file()は、現在のエンティティに関するHDLソース・コード・ファイルをロードする。ルーチンparse_HDL_file()(ライン35)は、構文上の正確さについてHDLソース・コード・ファイルを検査し、もしもあれば、どちらの下位エンティティが現在のエンティティによってインスタンス化されるかを決定する。ライン40、45、および50は、現在のエンティティによって呼び出される下位エンティティを処理するために、ルーチンprocess_HDL_file()が再帰的に呼び出されるループを構成する。このプロセスでは、現在のエンティティのすべての下位のプロト・データ構造341およびプロト・データ・ファイル344を作成する縦型様式(depth-first fashion)で、現在のエンティティのすべての下位のトラバースを再帰的に繰り返す。下位エンティティが処理されると、制御はライン55に渡され、ここでルーチンcreate_proto()によって、メモリ44内に現在のエンティティに対して新しいプロト・データ構造が作成される。次に、制御はライン60に渡され、ここで、関連するBOMを含む新しいプロト・ファイル344がルーチンwrite_proto_file()によってディスク33に書き込まれる。最終的に、制御はライン75に渡され、ここでルーチンcreate_instance()は、現在のエンティティおよび必要に応じて任意の下位エンティティに対してインスタンス・データ構造343を作成する。このようにして、process_HDL_file()(ライン5)は、プロト・データ構造341およびインスタンス・データ構造343からなるモデルのメモリ内イメージを作成するシミュレーション・モデル全体を、再帰的に処理する。
さらに図5に示されるように、さらに本発明は、シミュレーション実行可能モデル348のシミュレートの結果を表示する際に注目される可能性が高い特定の信号を識別する、1つまたは複数の信号グループ指示350を、設計者が設計エンティティHDLファイル340内に含められるようにする。信号グループ指示350に対する例示的なセマンティクスについて、図12〜図13を参照しながら以下で説明する。前述の処理に加えて、HDLコンパイラ342は、任意の便利なデータ構造(たとえばリンク付きリスト、テーブルなど)を使用する注目される信号の信号インスタンス化識別子を表す信号グループ情報(SGI)400を生成するために、好ましくは信号グループ指示350を処理する。モデル構築ツール346は、次に、オプションで何らかのフォーマットの追加変換を使用して、信号グループ情報(SGI)400をシミュレーション実行可能モデル348内に配置する。
ここで図6を参照すると、本発明の好ましい実施形態で実装可能な、コンパイル済みデータ構造を表すブロック図が示されている。メモリ44は、シミュレーション・モデル329内で参照されるエンティティそれぞれについて1つの、プロト・データ構造361を含む。加えて、シミュレーション・モデル329におけるインスタンス化はインスタンス・データ構造362によって示される。インスタンス・データ構造362は、シミュレーション・モデル329内のエンティティのインスタンス化の階層的性質を示すポインタによって接続される。最終的に、メモリ44はSGI 400を含む。図5のモード構築ツール346は、シミュレーション実行可能モデル348を生成するために、メモリ44のコンテンツをメモリ・データ構造に処理する。
次に図7を参照すると、本発明に従って設計をシミュレートし、シミュレーション結果を表示するためのプロセスの流れ図が示されている。図に示されるように、図5のプロセスによってシミュレーション実行可能モデル348が取得されると、デジタル設計の動作をシミュレートするためのテストケース402を利用してシミュレーション実行可能モデル348をシミュレートするために、ソフトウェアあるいはハードウェアまたはその両方のシミュレータ404が使用される。シミュレーション時には、全イベント・トレース(AET)ファイル406が、テストケース402に対するシミュレーション実行可能モデル348の応答を表すデータを記録する。AETファイル406内のデータは、経時的にシミュレーション実行可能モデル348ならびにSGI400内の様々な信号あるいはストレージ要素またはその両方の値を含む。
AETファイル406のコンテンツを再検討するために、ユーザは一般に、本明細書ではAETビューア410と呼ばれる、別個のまたは一体化されたビューア・プログラムを採用する。たとえばユーザは、AETファイル406からのデータを、ディスプレイ画面22内にグラフィカル・フォーマットで、またはハードコピー・フォーマットで提示するように、AETビューア410に要求することができる。前述のようにユーザは、データ・セット(本明細書ではI/Oリスト408と呼ばれる)内に注目する信号を指定することによって、AETビューア410によるデータのプレゼンテーションを、注目する特定の信号に有利に限定することができる。
図8に示されるように、従来技術に従った従来のI/Oリスト500は、それぞれが注目する信号のうちの1つの信号インスタンス化識別子を示す大量のエントリを含むリストであり、この場合は図4のFXUインスタンス化321a内のすべての信号を備える。したがって、図8で与えられた簡略化された例から理解されるように、従来技術では、ユーザは、潜在的に大量の信号インスタンス化識別子のそれぞれを、キーボード16を使用して入力しなければならない。信号インスタンス化識別子を手動でキー入力するこの従来の技法は、退屈でエラーの起こりやすいものである。
加えて、一部のシミュレータ404は、設計エンティティの境界線をより高水準の設計エンティティへと越境する下位設計エンティティ内の信号の信号名を保持しない。その代わりに、AETファイルにおける信号の重複をなくすために、こうしたシミュレータ404は、その内部に出現する最高位設計エンティティ内のその信号名によってのみ、AETファイル内の信号を識別する。したがって、信号名を保持しないシミュレータ404が採用される場合、ユーザは、信号が出現する最高水準設計エンティティからの信号の信号名を採用する信号インスタンス化識別子を利用して、I/Oリスト500内に信号を指定しなければならない。たとえば、図8のエントリ502と図9のI/Oリスト500’の対応するエントリ504とを比較することでわかるように、信号名を保持しないシミュレータ404のユーザは、参照番号502で示されるような信号インスタンス化識別子FXU.Eではなく、参照番号504で示されるような信号インスタンス化識別子F0を利用しなければならない。理解されるように、作業が主に下位設計エンティティに関連するAETビューア410のユーザは、ユーザが精通している低水準設計エンティティをインスタンス化する、より高水準の設計エンティティ内で使用される信号名を決定すること、または容易に想起することが、困難な可能性がある。
従来のI/Oリスト500または500’の代わりに、本発明は、AETビューア410のユーザが、図10に従って、1つまたは複数の改良されたI/Oリスト408を利用してAETファイル406からのデータのプレゼンテーションを代わりにフィルタリングできるようにする。図10に示されるように、I/Oリスト408は、1つまたは複数のエントリを含むリストである。図8または図9に示されるような従来の信号インスタンス化識別子を含むゼロまたはそれ以上のエントリに加えて、エントリ510などのI/Oリスト408のエントリは、SGI400内の情報に対応する信号グループ・インスタンス化識別子によって、注目する1つまたは複数の信号のグループを識別することができる。
図に示されるように、信号グループ・インスタンス化識別子は、信号インスタンス化識別子と同様に形成され、最高位エンティティ・インスタンス化名から始まり、括弧付きコンテンツが別の信号グループ名前空間のメンバであることを示す1対の山括弧(「<」および「>」)によって囲まれた信号グループ名で終わる、エンクロージング・エンティティ・インスタンス化名の文字列からなる。したがって、FXUエンティティ・インスタンス化321a内で注目する6つの信号は、信号インスタンス化識別子をI/Oリスト408内に個々に入力するのではなく、単一エントリ「FXU0.<FXU_Group>」によって簡単に識別することができる。前述のように、信号グループFXU_Groupを備える個々の信号は、設計エンティティHDLファイル340内の信号グループ指示350を利用して指定される。
次に、図12を参照すると、本発明に従った設計エンティティHDLファイル340aの例示的実施形態が示される。当業者であれば理解されるように、設計エンティティHDLファイル340aは、この場合は設計エンティティFXU 321である、設計エンティティを記述する従来のHDLソース・コードを含む。従来のHDLソース・コードは、ポート・マップ600および信号割り当てステートメント602を含む。加えて、設計エンティティHDLファイル340aは、本発明に従った信号グループ指示350(図5)を含む従来のHDLコメントを含む。
設計エンティティHDLファイル340aでは、信号グループ指示350は、信号グループ宣言610および信号保持指示620という、2つの異なるタイプの信号グループ指示を含む。信号グループ宣言610は「−−!!Signal Group signal_group_name;」の形のHDLコメントで始まり、「−−!!END Signal Group signal_group_name;」の形のHDLコメントで終わるが、ここでsignal_group_nameは所与のターゲット設計エンティティに対して固有の信号グループ名(この例ではFXU_Group)である。信号グループ宣言610の最初と最後の間に、注目する1つまたは複数の信号の信号名が、AETビューア410によって所望のプレゼンテーション順にリスト表示される。この実施形態では、信号名はターゲット設計エンティティ(たとえばFXU設計エンティティ321)に関して指定される。本発明の少なくとも一部の実施形態は、設計エンティティ階層内で、次に高位の階層を示すために、慣用構文「..\」を利用して、ターゲット設計エンティティに関してより上位の信号名を指定することができる。
ユーザは、好ましくは、信号グループ宣言610内の信号のプレゼンテーションに関して、追加の属性をさらに指定することができる。たとえば、ユーザは、信号の所望の色、
波形またはバイナリ信号表現のデフォルト、非整列ビット・ベクトルの所望の位置合わせなどを指定することができる。したがって、信号グループ宣言610のステートメント612では、ユーザは5ビット信号ベクトルB.C.P(0..4)の左位置合わせを指定している。
さらに図13の設計エンティティHDLファイル340bに示されるように、信号グループ宣言630などの信号グループ宣言も、好ましくは、ユーザが任意の正当な深さまでネストされた信号グループを指定できるようにする。より大規模な信号グループの一部を含むネストされた信号グループを指定するために、ユーザは、山括弧(すなわち「<」および「>」)に囲まれた信号グループを備えたネストされた信号グループのインスタンス化識別子を参照する信号グループ宣言内に、ステートメントを含めるだけである。山括弧を使用することで、HDLコンパイラ342は、信号の名前空間と信号グループ名との間を区別することができる。
再度図12を参照すると、信号保持指示620を利用して、特定の改名された信号(たとえば信号G)を保存するために、デフォルトでは、改名された信号より低位の信号名を保存しないことをシミュレータ404に指示する。したがって、シミュレータ404がデフォルトでは改名された信号の低位の名前を保持しないものと想定すると、AETファイル406は、信号インスタンス化識別子TOP.FXU0.GおよびTOP.FXU1.Gに関するデータを含むことになる。図9に関して上記で述べたように、精通した信号名を保持するための機能により、ユーザが、保持された信号Gの信号データを表示するために、精通していない可能性のある信号インスタンス化識別子TOP.FXU1.H0およびTOP.FXU1.H1をI/Oリストに入力する必要がなくなる。
次に図14〜図16を参照すると、本発明に従った、AETビューア410がI/Oリスト408を処理する際に使用する例示的プロセスの高水準論理流れ図が示される。論理流れ図として、動作は順番ではなく論理的に示され、示された動作の多くは並行して、または代替順で実行することができる。
図に示されるように、プロセスは図14のブロック700で始まり、その後、ユーザがI/Oリスト408の参照有効範囲、すなわち、参照によりすべての他のI/Oリスト・エントリが解析されるシミュレーション実行可能モデル348の有効範囲に入ったか否かの判別を示す、ブロック702へと進む。デフォルトでは、参照有効範囲は、シミュレーション実行可能モデル348内の最上位設計エンティティ・インスタンス、たとえば図4の最上位設計エンティティ・インスタンスである。一実施形態では、ユーザは「Scope limit:instance_string0.[design_entity].instance_string1」の形の参照有効範囲をさらに限定するコマンドを入力することが可能であり、ここでinstance_string0およびinstance_string1はオプションの設計エンティティ・インスタンス文字列であり(instance_string0は最上位設計エンティティ・インスタンスで始まる)、角括弧で囲まれたdesign_entityはオプションの設計エンティティ名である。正当な参照有効範囲コマンドは、3つのオプション・フィールド、instance_string0、[design_entity]、およびinstance_string1のうちの少なくとも1つを含む。参照有効範囲コマンドは、たとえばコマンド行を介してAETビューア410に、またはI/Oリスト408内に送ることができる。I/Oリスト408に挿入された場合、参照有効範囲コマンドは、好ましくはそのI/Oリスト408内のすべてのエントリに適用される。
ブロック702で示されるように、ユーザが異なる参照有効範囲を入力していない場合、ブロック704で示されるように、AETビューア410はデフォルトで、参照有効範囲をシミュレーション実行可能モデル348の最上位設計エンティティ・インスタンスに設定する。その後、プロセスはページ連結子Aを通って図15へと進む。AETビューア410がブロック702で、ユーザが異なる参照有効範囲を入力したものと判別した場合、AETビューア410は、ブロック710で、参照有効範囲コマンドが括弧付き構文(たとえば[design_entity])を含むか否かを判別するために参照有効範囲コマンドをさらに解析する。含まない場合、プロセスは、参照有効範囲コマンドによって指定された設計エンティティ・インスタンスがシミュレーション実行可能モデル348内に存在するか否かを、AETビューア410が判別することを示す、ブロック713に進む。存在しない場合、プロセスはブロック715でエラー終了する。存在する場合、プロセスはブロック713からブロック720へと渡され、ここでAETビューア410は、参照有効範囲を、参照有効範囲コマンドのinstance_string0フィールド内に指定された特定の設計エンティティ・インスタンスに設定する。たとえば、図4のシミュレーション実行可能モデル329を想定すると、参照有効範囲コマンド「Scope limit:TOP.FXU0」は、参照有効範囲をFXU設計エンティティ321のインスタンス321aに設定する。この参照有効範囲の場合、図10のI/Oリスト408のエントリ510は<FXU_Group>として簡略化することができる。その後、プロセスはページ連結子Aを通って図15へと進む。
ブロック710に戻ると、参照有効範囲コマンドが括弧付き構文を採用しているとの決定に応答して、AETビューア410は次に、ブロック712で、名前付き設計エンティティがシミュレーション実行可能モデル348内に存在するか否かを判別する。存在しない場合、プロセスはブロック714でエラー終了する。しかしながら、指定された設計エンティティがシミュレーション実行可能モデル348内に存在する場合、AETビューア410は、存在する場合はinstance_string0で定義されるシミュレーション実行可能モデル348の一部分に存在する設計エンティティのすべてのインスタンスを識別するために、シミュレーション実行可能モデル348を再帰的に検索する。ブロック718で示されるように、指定された設計エンティティのインスタンスが指定された有効範囲内に存在しない場合、プロセスはブロック714でエラー終了する。AETビューア410がブロック718で、指定された有効範囲内に、指定された設計エンティティの少なくとも1つのインスタンスの位置が突き止められたものと判別した場合、さらにAETビューア410は、ブロック722で、指定された有効範囲内に設計エンティティの単一のインスタンスのみが見つけられたかどうかを判別する。見つけられた場合、プロセスはブロック720へと渡され、ここでAETビューア410は、設計エンティティの単一のインスタンスを参照有効範囲として設定する。その後、プロセスはページ連結子Aを通って図15へと進む。
AETビューア410が、ブロック722で、指定された有効範囲内に指定された設計エンティティの複数のインスタンスが見つけられたものと判別した場合、AETビューア410は、たとえばディスプレイ画面22内に表示されるグラフィカル・メニューを介して選択するために、設計エンティティ・インスタンスのリストをユーザに提示する(ブロック724)。その後AETビューア410は、ブロック726で示されるように、所望の参照範囲を定義する複数の設計エンティティ・インスタンスのうちの1つを指定するユーザ入力を受け取る。たとえば、図4のシミュレーション実行可能モデル329および図11のI/Oリスト408’を想定すると、図11の参照番号512で与えられた参照有効範囲コマンド「Scope limit:[FXU]」は、AETビューア410に、シミュレーション実行可能モデル329内でFXUインスタンス321aおよび321bの位置を突き止めさせ、インスタンス321aおよび321bのインスタンス識別子を選択のためにユーザに提示させる。有利なことに、FXUインスタンス321aおよび321bのどちらが注目される、ユーザによって選択されるかに関わらず、信号グループは、図11のI/Oリスト408’のエントリ512に示されるように<FXU_Group>として指定することができる。その後プロセスは、これまでに説明したブロック720に渡される。
次に図15を参照すると、プロセスはページ連結子Aで始まり、その後ブロック730へと進んで、AETファイル406のプレゼンテーションを構築するために、AETビューア410が1つまたは複数のI/Oリスト408内の各エントリを処理する、処理ループを提示する。ブロック730でAETビューア410が、I/Oリスト内のすべてのエントリが処理されたものと決定した場合、プロセスは以下で説明するブロック732へと渡される。しかしながら、I/Oリスト408内に、処理されるべき少なくとも1つのエントリが残っている場合、プロセスはブロック740へと進み、ここでAETビューア410は第1または次の信号識別エントリへと移動して、エントリの作業有効範囲を参照有効範囲へと初期化する。I/Oリスト408内の信号識別エントリは、参照有効範囲に関して処理され(すなわち参照有効範囲によって暗に限定され)、以下の形を取り、
instance_string2.[design_entity].instance_string3.signals
上式で、instance_string2およびinstance_string3はオプションの設計エンティティ・インスタンス文字列であり、
角括弧(すなわち「[」および「]」)で囲まれたdesign_entityはオプションの設計エンティティ名であり、
は、指定された有効範囲内のすべてのdesign_entityインスタンスを示すオプションのユニバーサル演算子であり、
signalsは、信号名、山括弧(すなわち「<」および「>」)で囲まれた信号グループ名、または指定された有効範囲内のすべての信号グループを示す空の山括弧を指定する、必須パラメータである。
図15に示されるプロセスは、ブロック740からブロック742へと進み、ここでAETビューア410は、現在の信号識別エントリが先行設計エンティティ・インスタンス修飾子(たとえばinstance_string2)を有するかどうかを判別する。有さない場合、プロセスは以下で説明するブロック752へと渡される。有する場合、プロセスはブロック742からブロック744へと進み、ここでAETビューア410は、シミュレーション実行可能モデル348の参照有効範囲内に指定された設計エンティティ・インスタンスが存在するか否かを判別する。存在しない場合、プロセスはブロック746でエラー終了する。存在する場合、プロセスはブロック750へ進む。ブロック750は、現在の有効範囲を、設計エンティティ・インスタンス修飾子によって定義された有効範囲を参照有効範囲に追加することによって形成された有効範囲に設定する。次に、AETビューア410は、ブロック752で、I/Oリスト408の信号識別エントリ内の次のフィールドが、角括弧に囲まれたdesign_entity修飾子であるか否かを判別する。括弧付き修飾子でない場合、プロセスはページ連結子Bを通って図16へと進む。括弧付き修飾子である場合、信号識別エントリの処理はブロック754へと続く。
ブロック754は、AETビューア410が、指定された設計エンティティ名に合致するエンティティ名を有する現在の有効範囲内で、すべての設計エンティティ・インスタンスの位置を突き止めるために、シミュレーション実行可能モデル348を再帰的に検索することを示す。その後AETビューア410は、ブロック756で、何らかのこうした設計エンティティ・インスタンスが存在するか否かを判別する。存在しない場合、処理はブロック746でエラー状態で終了する。存在する場合、さらにAETビューア410は、ブロック760で、括弧付き構文が、指定された有効範囲内へのすべての設計エンティティ・インスタンスの包含を示すアスタリスクを含むか否かを判別する。含む場合、AETビューア410は、エントリの作業有効範囲を、ブロック754で突き止められた1つまたは複数の設計エンティティ・インスタンスまで狭める(ブロック761)。その後プロセスは、ページ連結子Bを通って図16へと進む。
ブロック760に戻ると、否定の決定に応答して、プロセスはブロック762へと進み、ここでAETビューア410は、単一の設計エンティティ・インスタンスがブロック754で発見されたかどうかを判別する。発見された場合、ブロック764で、作業有効範囲は単一の設計エンティティ・インスタンスに設定される。その後プロセスは、ページ連結子Bを通って図16へと進む。これに対して、ブロック762でAETビューア410が、ブロック754で複数の設計エンティティ・インスタンスが発見されたものと決定した場合、AETビューア410は、たとえばディスプレイ画面22内に表示されるグラフィカル・メニューを介して選択するために、設計エンティティ・インスタンスのリストをユーザに提示する(ブロック770)。その後、AETビューア410は、ブロック772で示されるように、所望の作業有効範囲を定義する複数の設計エンティティ・インスタンスのうちの1つまたは複数を指定するユーザ入力を受け取る。その後、プロセスはブロック764に渡され、ここでAETビューア410は、ユーザの選択に従って1つまたは複数の作業有効範囲を確立する。その後プロセスは、ページ連結子Bを通って図16へと進む。
次に図16を参照すると、プロセスはページ連結子Bで開始され、その後ブロック774へ進み、ここでさらにAETビューア410は、エントリが作業有効範囲を制限するための他のインスタンス修飾子(たとえばinstance_string3)を含むかどうかを判別するために、信号識別エントリを解析する。含まない場合、プロセスは以下で説明するブロック780へ渡される。含む場合、AETビューア410は、ブロック776で、指定された設計エンティティ・インスタンスが存在するか否かを判別する。存在しない場合、プロセスはブロック786でエラー終了する。指定された設計エンティティ・インスタンスが存在する場合、AETビューアは、現在の信号識別エントリの作業有効範囲を、第2のインスタンス修飾子によって示された設計エンティティ・インスタンスまで狭める(ブロック778)。その後、プロセスはブロック780に渡される。
ブロック780で、さらにAETビューア410は、エントリの終端signalsフィールドが単一の信号名または信号グループ名を含むかどうかを判別するために、I/Oリスト408の信号識別エントリを解析する。signalsフィールドが信号名を含む場合、次にAETビューア410は、ブロック781で、指定された信号が作業有効範囲内に存在するかどうかを判別する。存在しない場合、プロセスはブロック786でエラー状態で終了する。存在する場合、AETビューア410は、指定された信号をAETファイル406のプレゼンテーションに追加する(ブロック782)。その後プロセスは、ページ連結子Cを介して図15のブロック730に戻る。
再度ブロック780を参照すると、信号識別エントリのsignalsフィールドが信号名を含まないとの決定に応答して、プロセスはブロック783へ渡され、ここでAETビューア410は、signalsフィールドが空の山括弧を含むかどうかを判別する。含む場合、AETビューア410は、ブロック784に示されるように、作業有効範囲内にある設計エンティティ・インスタンス内のすべての信号グループ・インスタンスの位置を再帰的に突き止める。AETビューアがブロック785で、何も存在しないと決定した場合、プロセスはブロック786でエラー終了する。これに対して、AETビューア410がブロック785で、1つまたは複数の信号グループが存在すると決定した場合、AETビューア410は、個々の信号がSGI 400からの信号グループを備えることを決定し、ブロック790で、すべてのこうした信号をプレゼンテーションに追加する。その後プロセスは、ページ連結子Cを通って図15に戻る。
ブロック783に戻り、AETビューア410が、I/Oリスト408の信号識別エントリのsignalsフィールドが空の山括弧を含まないが、その代わりに山括弧内に信号グループ名を指定するものと決定した場合、プロセスはブロック787に渡される。ブロック787で、AETビューア410は、作業有効範囲内にある設計エンティティ・インスタンス内の指定された信号グループ・インスタンスのインスタンスの位置を再帰的に突き止める。ブロック788によって表されるように、信号グループ・インスタンスの位置が突き止められない場合、プロセスはブロック786でエラー状態で終了する。別の方法として、名前付き信号グループの少なくとも1つのインスタンスの位置が突き止められた場合、プロセスはブロック790へと進み、以前に説明したブロックへと続く。
以上説明してきたように、本発明は、シミュレーション結果をプレゼンテーション用に処理するための方法、システム、およびプログラム製品を提供する。本発明によれば、シミュレーション結果のプレゼンテーションをフィルタリングするために必要なユーザ入力の量は、所定の信号グループの使用、およびオプションで有効範囲コマンドの使用によって、大幅に削減される。加えて、信号改名が存在する中で信号名が保持されることになる信号を設計者が指定できるようにする信号保持指示のサポートを通じて、シミュレーション結果の理解しやすさが向上する。
以上、本発明について、好ましい実施形態を参照しながら具体的に説明してきたが、当業者であれば、本発明の趣旨および範囲を逸脱することなく、形式および細部における様々な変更が実行可能であることを理解されよう。たとえば、本発明の諸実施形態のうちの1つは、図1および図2で説明されたように全体として構成される1つまたは複数のコンピュータ・システムの、ランダム・アクセス・メモリ28または不揮発性ストレージ内に常駐するプログラム・コードを使用して、実装可能である。プログラム・コードのセットは、ユーザによって所望された場合、コンピュータ・システム10によって要求されるまで、ディスク・ドライブ33またはCD−ROMなどの他のコンピュータ読み取り可能ストレージ・デバイス内、あるいは他のコンピュータのデータ・ストレージ内に格納すること、および、ローカル・エリア・ネットワークまたはインターネットなどのワイド・エリア・ネットワークを介して伝送することが可能である。コンピュータ使用可能媒体内で具体化されたプログラム・コードは、コンピュータ・プログラム製品と呼ぶことができる。
本発明に従ったデータ処理システムを示す絵画図である。 図1に示されたデータ処理システムの代表的なハードウェア環境を示す図である。 本発明の教示に従ったデジタル設計エンティティを示す簡易ブロック図である。 本発明の教示に従ったシミュレーション・モデルを示す概略図である。 本発明の教示に従ったモデル構築プロセスを示す流れ図である。 本発明の教示に従った設計を表すシミュレーション・モデル・データ構造を示すブロック図である。 シミュレーション実行可能モデルのシミュレーションおよびシミュレーションの結果をユーザに提示することを示す流れ図である。 従来技術に従った第1の従来のI/Oリストを示す図である。 従来技術に従った第2の従来のI/Oリストを示す図である。 本発明に従った例示的I/Oリストを示す図である。 本発明に従った例示的I/Oリストを示す図である。 本発明に従った、信号グループ記述子を含む例示的設計エンティティHDLファイルを示す図である。 本発明に従った、ネストされた信号グループ記述子を含む例示的設計エンティティHDLファイルを示す図である。 本発明に従った、AETビューアがAETファイルのプレゼンテーションを生成するためにI/Oリストを処理する際に使用する例示的プロセスを示す、高水準論理流れ図の一部である。 本発明に従った、AETビューアがAETファイルのプレゼンテーションを生成するためにI/Oリストを処理する際に使用する例示的プロセスを示す、高水準論理流れ図の一部である。 本発明に従った、AETビューアがAETファイルのプレゼンテーションを生成するためにI/Oリストを処理する際に使用する例示的プロセスを示す、高水準論理流れ図の一部である。

Claims (18)

  1. データ処理システムにおけるデータ処理の方法であって、
    所定の信号グループ名によって信号グループを指定する少なくとも1つのエントリを含むデータ・セットを入力として受け取るステップと、
    前記データ・セットの受け取りに応答して、
    前記信号グループ名を識別するために、前記データ・セット内の前記エントリを処理するステップと、
    前記信号グループのメンバである複数の信号の信号名を決定するために、シミュレーション結果を含むイベント・トレース・ファイルに関連付けられた信号グループ情報にアクセスするステップと、
    前記複数の信号のインスタンスに関連付けられた前記イベント・トレース・ファイルからのそれらのシミュレーション結果を、プレゼンテーションに含めるステップと、
    を有する、方法。
  2. シミュレーション実行可能モデル内でインスタンス化された設計エンティティを記述するHDLソース・コード・ファイルに対して、参照により前記信号グループ内の前記信号名のメンバシップを確立するステップをさらに有する、請求項1に記載の方法。
  3. 前記信号グループが第1の信号グループを備え、前記第1の信号グループが、前記複数の信号をメンバとして集合的に有する第2および第3の信号グループを備える、請求項1または2に記載の方法。
  4. 改名から関連する信号名が保持されることになる特定の信号を識別する保持指示を受け取るステップと、
    前記保持指示に応答して、プレゼンテーションにおいて前記関連する信号名によって前記信号を識別するステップと、
    をさらに有する、請求項1、2、または3に記載の方法。
  5. 前記シミュレーション実行可能モデル内の設計エンティティ・インスタンスに関して、参照有効範囲を示す有効範囲コマンドを入力として受け取るステップと、
    前記有効範囲コマンドの受け取りに応答して、前記参照有効範囲に関する前記データ・セット内の前記少なくとも1つのエントリを解釈するステップと、
    をさらに有する、請求項1から4のいずれか一項に記載の方法。
  6. 前記シミュレーション実行可能モデル内に複数の設計エンティティ・インスタンスを有する設計エンティティ名を、エントリ内で識別するために、前記データ・セット内の前記エントリを処理するステップと、
    前記設計エンティティ名の識別に応答して、ユーザの選択のために、前記複数の設計エンティティ・インスタンスのインスタンス識別子を提示するステップと、
    前記インスタンス識別子のうちの1つのユーザ選択に応答して、前記信号グループに属する信号のインスタンスが位置する有効範囲を狭めるステップと、
    をさらに有する、請求項1から5のいずれか一項に記載の方法。
  7. コンピュータ読み取り可能媒体と、
    前記コンピュータ読み取り可能媒体内のプログラム・コードと、を備えるプログラムであって、前記プログラム・コードがデータ処理システムに、
    所定の信号グループ名によって信号グループを指定する少なくとも1つのエントリを含むデータ・セットを入力として受け取るステップと、
    前記データ・セットの受け取りに応答して、
    前記信号グループ名を識別するために、前記データ・セット内の前記エントリを処理するステップと、
    前記信号グループのメンバである複数の信号の信号名を決定するために、シミュレーション結果を含むイベント・トレース・ファイルに関連付けられた信号グループ情報にアクセスするステップと、
    前記複数の信号のインスタンスに関連付けられた前記イベント・トレース・ファイルからのそれらのシミュレーション結果を、プレゼンテーションに含めるステップと、
    を含む方法を実行させる、プログラム。
  8. 前記方法が、シミュレーション実行可能モデル内でインスタンス化された設計エンティティを記述するHDLソース・コード・ファイルに対して、参照により前記信号グループ内の前記信号名のメンバシップを確立するステップをさらに含む、請求項7に記載のプログラム。
  9. 前記信号グループが第1の信号グループを備え、前記第1の信号グループが、前記複数の信号をメンバとして集合的に有する第2および第3の信号グループを備える、請求項7または8に記載のプログラム。
  10. 前記方法が、
    改名から関連する信号名が保持されることになる特定の信号を識別する保持指示を受け取るステップと、
    前記保持指示に応答して、プレゼンテーションにおいて前記関連する信号名によって前記信号を識別するステップと、
    をさらに含む、請求項7、8、または9に記載のプログラム。
  11. 前記方法が、
    前記シミュレーション実行可能モデル内の設計エンティティ・インスタンスに関して、参照有効範囲を示す有効範囲コマンドを入力として受け取るステップと、
    前記有効範囲コマンドの受け取りに応答して、前記参照有効範囲に関する前記データ・セット内の前記少なくとも1つのエントリを解釈するステップと、
    をさらに含む、請求項7から10のいずれか一項に記載のプログラム。
  12. 前記方法が、
    前記シミュレーション実行可能モデル内に複数の設計エンティティ・インスタンスを有する設計エンティティ名を、エントリ内で識別するために、前記データ・セット内の前記エントリを処理するステップと、
    前記設計エンティティ名の識別に応答して、ユーザの選択のために、前記複数の設計エンティティ・インスタンスのインスタンス識別子を提示するステップと、
    前記インスタンス識別子のうちの1つのユーザ選択に応答して、前記信号グループに属する信号のインスタンスが位置する有効範囲を狭めるステップと、
    をさらに含む、請求項7から11のいずれか一項に記載のプログラム。
  13. プロセッサと、
    前記プロセッサに結合されたデータ・ストレージと、を備える、データ処理システムであって、前記データ・ストレージが、前記データ処理システムに、
    所定の信号グループ名によって信号グループを指定する少なくとも1つのエントリを含むデータ・セットを入力として受け取るステップと、
    前記データ・セットの受け取りに応答して、
    前記信号グループ名を識別するために、前記データ・セット内の前記エントリを処理するステップと、
    前記信号グループのメンバである複数の信号の信号名を決定するために、シミュレーション結果を含むイベント・トレース・ファイルに関連付けられた信号グループ情報にアクセスするステップと、
    前記複数の信号のインスタンスに関連付けられた前記イベント・トレース・ファイルからのそれらのシミュレーション結果を、プレゼンテーションに含めるステップと、
    を含む方法を実行させる、プログラム・コードを含む、データ処理システム。
  14. 前記方法が、シミュレーション実行可能モデル内でインスタンス化された設計エンティティを記述するHDLソース・コード・ファイルに対して、参照により前記信号グループ内の前記信号名のメンバシップを確立するステップをさらに含む、請求項13に記載のデータ処理システム。
  15. 前記信号グループが第1の信号グループを備え、前記第1の信号グループが、前記複数の信号をメンバとして集合的に有する第2および第3の信号グループを備える、請求項13または14に記載のデータ処理システム。
  16. 前記方法が、
    改名から関連する信号名が保持されることになる特定の信号を識別する保持指示を受け取るステップと、
    前記保持指示に応答して、プレゼンテーションにおいて前記関連する信号名によって前記信号を識別するステップと、
    をさらに含む、請求項13、14、または15に記載のデータ処理システム。
  17. 前記方法が、
    前記シミュレーション実行可能モデル内の設計エンティティ・インスタンスに関して、参照有効範囲を示す有効範囲コマンドを入力として受け取るステップと、
    前記有効範囲コマンドの受け取りに応答して、前記参照有効範囲に関する前記データ・セット内の前記少なくとも1つのエントリを解釈するステップと、
    をさらに含む、請求項13から16のいずれか一項に記載のデータ処理システム。
  18. 前記方法が、
    前記シミュレーション実行可能モデル内に複数の設計エンティティ・インスタンスを有する設計エンティティ名を、エントリ内で識別するために、前記データ・セット内の前記エントリを処理するステップと、
    前記設計エンティティ名の識別に応答して、ユーザの選択のために、前記複数の設計エンティティ・インスタンスのインスタンス識別子を提示するステップと、
    前記インスタンス識別子のうちの1つのユーザ選択に応答して、前記信号グループに属する信号のインスタンスが位置する有効範囲を狭めるステップと、
    をさらに含む、請求項13から17のいずれか一項に記載のデータ処理システム。
JP2009508341A 2006-05-03 2007-05-02 シミュレーション結果を表示するための信号の仕様をサポートする方法、システム、およびプログラム製品 Expired - Fee Related JP5039130B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/381,437 2006-05-03
US11/381,437 US7711537B2 (en) 2006-05-03 2006-05-03 Signals for simulation result viewing
PCT/EP2007/054255 WO2007128753A1 (en) 2006-05-03 2007-05-02 Method, system and program product supporting specification of signals for simulation result viewing

Publications (3)

Publication Number Publication Date
JP2009535726A true JP2009535726A (ja) 2009-10-01
JP2009535726A5 JP2009535726A5 (ja) 2012-04-12
JP5039130B2 JP5039130B2 (ja) 2012-10-03

Family

ID=38268901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009508341A Expired - Fee Related JP5039130B2 (ja) 2006-05-03 2007-05-02 シミュレーション結果を表示するための信号の仕様をサポートする方法、システム、およびプログラム製品

Country Status (5)

Country Link
US (2) US7711537B2 (ja)
EP (1) EP2021963A1 (ja)
JP (1) JP5039130B2 (ja)
CN (1) CN101410841B (ja)
WO (1) WO2007128753A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146260B2 (en) 2001-04-24 2006-12-05 Medius, Inc. Method and apparatus for dynamic configuration of multiprocessor system
US8453080B2 (en) * 2008-12-16 2013-05-28 International Business Machines Corporation Model build in the presence of a non-binding reference
US8160857B2 (en) 2008-12-16 2012-04-17 International Business Machines Corporation Selective compilation of a simulation model in view of unavailable higher level signals
US9665836B2 (en) * 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
US9652726B2 (en) 2010-08-10 2017-05-16 X Systems, Llc System and method for analyzing data
US9665916B2 (en) 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
JP6101725B2 (ja) * 2015-03-24 2017-03-22 アンリツ株式会社 フェージングシミュレータ及び移動体端末試験システム
JP6307474B2 (ja) * 2015-07-17 2018-04-04 アンリツ株式会社 フェージングシミュレータ及びフェージング信号生成方法
US10635766B2 (en) 2016-12-12 2020-04-28 International Business Machines Corporation Simulation employing level-dependent multitype events
CN109918742B (zh) * 2019-02-15 2023-09-08 湖南高至科技有限公司 一种基于仿真系统的数据分发及管理方法
CN113779918A (zh) * 2021-08-03 2021-12-10 北京爱芯科技有限公司 SoC仿真方法、装置、计算设备和计算机存储介质
CN116776787B (zh) * 2023-08-22 2023-11-17 北京云枢创新软件技术有限公司 信号别名的自动识别方法、电子设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03116276A (ja) * 1989-09-29 1991-05-17 Ricoh Co Ltd 論理シミュレーションの波形データ処理方法
JPH05151304A (ja) * 1991-11-28 1993-06-18 Nec Corp 電子回路波形解析装置
JPH05342296A (ja) * 1992-06-09 1993-12-24 Ricoh Co Ltd 波形データ表示装置
JPH1166114A (ja) * 1997-08-25 1999-03-09 Nec Corp シミュレーション解析装置及びシミュレーション解析方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212650A (en) * 1986-09-12 1993-05-18 Digital Equipment Corporation Procedure and data structure for synthesis and transformation of logic circuit designs
US5369763A (en) 1989-02-01 1994-11-29 Kansas State University Research Foundation Data storage and retrieval system with improved data base structure
EP0461926B1 (en) * 1990-06-15 1998-09-02 Compaq Computer Corporation Multilevel inclusion in multilevel cache hierarchies
US5604895A (en) * 1994-02-22 1997-02-18 Motorola Inc. Method and apparatus for inserting computer code into a high level language (HLL) software model of an electrical circuit to monitor test coverage of the software model when exposed to test inputs
US6117181A (en) * 1996-03-22 2000-09-12 Sun Microsystems, Inc. Synchronization mechanism for distributed hardware simulation
EP1010076A1 (en) * 1996-11-27 2000-06-21 1Vision Software, L.L.C. File directory and file navigation system
US5842213A (en) * 1997-01-28 1998-11-24 Odom; Paul S. Method for modeling, storing, and transferring data in neutral form
US6053947A (en) * 1997-05-31 2000-04-25 Lucent Technologies, Inc. Simulation model using object-oriented programming
US6052809A (en) * 1997-10-16 2000-04-18 Teradyne, Inc. Method for generating test patterns
KR100492007B1 (ko) * 1997-12-30 2005-08-29 매그나칩 반도체 유한회사 내부상태궤적비교에의한칩검증방법
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US7016811B2 (en) * 2001-08-15 2006-03-21 National Instruments Corporation Network-based system for configuring a programmable hardware element in a measurement system using hardware configuration programs generated based on a user specification
US20020152060A1 (en) * 1998-08-31 2002-10-17 Tseng Ping-Sheng Inter-chip communication system
US6195629B1 (en) * 1998-11-09 2001-02-27 International Business Machines Corporation Method and system for selectively disabling simulation model instrumentation
US6195627B1 (en) * 1998-11-09 2001-02-27 International Business Machines Corporation Method and system for instrumenting simulation models
US6202042B1 (en) * 1998-11-09 2001-03-13 International Business Machines Corporation Hardware simulator instrumentation
US6295623B1 (en) * 1999-01-29 2001-09-25 Credence Systems Corporation System for testing real and simulated versions of an integrated circuit
US6438735B1 (en) * 1999-05-17 2002-08-20 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US6470478B1 (en) * 1999-06-29 2002-10-22 International Business Machines Corporation Method and system for counting events within a simulation model
US6720565B2 (en) * 1999-06-30 2004-04-13 Applied Materials, Inc. Real-time prediction of and correction of proximity resist heating in raster scan particle beam lithography
US20030121011A1 (en) * 1999-06-30 2003-06-26 Cirrus Logic, Inc. Functional coverage analysis systems and methods for verification test suites
US6230114B1 (en) * 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
US6263302B1 (en) * 1999-10-29 2001-07-17 Vast Systems Technology Corporation Hardware and software co-simulation including simulating the cache of a target processor
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6687710B1 (en) * 1999-12-03 2004-02-03 Synchronicity Software, Inc. Intellectual property library management system
US8302072B2 (en) * 2000-06-05 2012-10-30 National Instruments Corporation System and method for programmatically generating a graphical program based on a sequence of motion control, machine vision, and data acquisition (DAQ) operations
US6546532B1 (en) * 2000-06-20 2003-04-08 Unisys Corporation Method and apparatus for traversing and placing cells using a placement tool
WO2002003310A1 (en) * 2000-07-05 2002-01-10 Meyer Steven J Mixed signal simulation
JP2002073719A (ja) * 2000-08-31 2002-03-12 Hitachi Ltd 回路動作モデル記述の生成方法および論理設計検証装置
US6920418B2 (en) * 2000-12-30 2005-07-19 International Business Machines Corporation Detecting events within simulation models
US20020128809A1 (en) * 2000-12-30 2002-09-12 International Business Machines Corporation Randomized simulation model instrumentation
DE10127170A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Fehlersuchverfahren und Fehlersuchvorrichtung
US6754763B2 (en) * 2001-07-30 2004-06-22 Axis Systems, Inc. Multi-board connection system for use in electronic design automation
US7080365B2 (en) * 2001-08-17 2006-07-18 Sun Microsystems, Inc. Method and apparatus for simulation system compiler
US6957318B2 (en) * 2001-08-17 2005-10-18 Sun Microsystems, Inc. Method and apparatus for controlling a massively parallel processing environment
US7224689B2 (en) * 2001-08-17 2007-05-29 Sun Microsystems, Inc. Method and apparatus for routing of messages in a cycle-based system
US7143019B2 (en) * 2001-10-30 2006-11-28 International Business Machines Corporation Maintaining data integrity within a distributed simulation environment
DE10329147A1 (de) * 2003-06-27 2005-01-20 Siemens Ag Verknüpfung und Darstellung von Signalen einer Vorrichtung zur Hardware-Simulation und Elementen eines Listings eines Programms
US7283944B2 (en) * 2003-12-15 2007-10-16 Springsoft, Inc. Circuit simulation bus transaction analysis
CN1560743A (zh) * 2004-03-11 2005-01-05 浙江大学 多媒体处理器协同仿真验证平台
US20060015314A1 (en) * 2004-06-30 2006-01-19 International Business Machines Corporation Methods, systems and program products for annotating system traces with control program information and presenting annotated system traces
US7437282B2 (en) * 2005-09-22 2008-10-14 International Business Machines Corporation Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03116276A (ja) * 1989-09-29 1991-05-17 Ricoh Co Ltd 論理シミュレーションの波形データ処理方法
JPH05151304A (ja) * 1991-11-28 1993-06-18 Nec Corp 電子回路波形解析装置
JPH05342296A (ja) * 1992-06-09 1993-12-24 Ricoh Co Ltd 波形データ表示装置
JPH1166114A (ja) * 1997-08-25 1999-03-09 Nec Corp シミュレーション解析装置及びシミュレーション解析方法

Also Published As

Publication number Publication date
CN101410841A (zh) 2009-04-15
US20070260443A1 (en) 2007-11-08
US20080229193A1 (en) 2008-09-18
CN101410841B (zh) 2011-01-12
WO2007128753A1 (en) 2007-11-15
US7711537B2 (en) 2010-05-04
US7617085B2 (en) 2009-11-10
JP5039130B2 (ja) 2012-10-03
EP2021963A1 (en) 2009-02-11

Similar Documents

Publication Publication Date Title
JP5039130B2 (ja) シミュレーション結果を表示するための信号の仕様をサポートする方法、システム、およびプログラム製品
JP2009535726A5 (ja)
US9612806B2 (en) Verification of computer-executable code generated from a model
US8869103B2 (en) Using intermediate representations to verify computer-executable code generated from a model
US8271936B2 (en) Non-graphical model dependencies in graphical modeling environments
US7475000B2 (en) Apparatus and method for managing integrated circuit designs
US8341594B1 (en) Version control in modeling environments
WO1990011569A1 (en) Computer-aided engineering
US10915302B2 (en) Identification and visualization of associations among code generated from a model and sources that affect code generation
EP1025492B1 (en) Method for the generation of isa simulators and assemblers from a machine description
US8160857B2 (en) Selective compilation of a simulation model in view of unavailable higher level signals
US7236918B2 (en) Method and system for selective compilation of instrumentation entities into a simulation model of a digital design
US20070260441A1 (en) Method, system and program product supporting phase events in a simulation model of a digital system
KR101425235B1 (ko) 플라즈마 프로세싱 시스템 컴포넌트 분석 소프트웨어 및 이를 생성하기 위한 방법 및 시스템
US7835899B2 (en) Sequential logic in simulation instrumentation of an electronic system
Cheng et al. Formalizing and integrating the dynamic model for object-oriented modeling
EP2718821B1 (en) Verification of computer-executable code generated from a model
Mathaikutty Metamodeling driven IP reuse for system-on-chip integration and microprocessor design
US11782682B2 (en) Providing metric data for patterns usable in a modeling environment
Kamppi Library management implementation on Kactus2 IP-XACT tool
Foltz Dr. Jones: a software design explorer's crystal ball
Ayewah VAMP Explorer: An interactive framework for navigating a complex hierarchy of PVS theorems
Khurram et al. IDEs SHOULD BE AVAILABLE TO HARDWARE ENGINEERS TOO!
Edwards 15 Design and Verification Languages
Page Vantage Spreadsheet-a new approach to VHDL simulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120213

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20120213

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120214

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120613

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120613

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees