JPH11505645A - プロセッサに基づくデジタルシステムをシミュレートするための装置および方法 - Google Patents

プロセッサに基づくデジタルシステムをシミュレートするための装置および方法

Info

Publication number
JPH11505645A
JPH11505645A JP8527587A JP52758796A JPH11505645A JP H11505645 A JPH11505645 A JP H11505645A JP 8527587 A JP8527587 A JP 8527587A JP 52758796 A JP52758796 A JP 52758796A JP H11505645 A JPH11505645 A JP H11505645A
Authority
JP
Japan
Prior art keywords
digital
processor
digital model
event information
simulator
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
Application number
JP8527587A
Other languages
English (en)
Inventor
エル フェルナンデス ニューフィート
ジェイ デューダ ケネス
プラット アルフレッド
Original Assignee
シーメンス ビジネス コミュニケーション システムズ インコーポレイテッド
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 シーメンス ビジネス コミュニケーション システムズ インコーポレイテッド filed Critical シーメンス ビジネス コミュニケーション システムズ インコーポレイテッド
Publication of JPH11505645A publication Critical patent/JPH11505645A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26—Functional testing
    • G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 シミュレートされたプロセッサ環境とシミュレートされたデジタル環境を相互に作用させることによりプロセッサに基づくシステムをシミュレートするための装置と方法。本願発明の実施例では、プロセッサ環境にデジタル環境に関連した「重要イベント」(読み出しや書き込み等)のリストを与えることにより、プロセッサ環境とデジタル環境間の相互作用が行われる。本願発明の実施例ではまた、動作をプロセッサ環境またはデジタル環境のいずれか一方、すなわち両方同時にでなく実行することにより、プロセッサ環境とデジタル環境間の同期が得られる。

Description

【発明の詳細な説明】 プロセッサに基づくデジタルシステムをシミュレー トするための装置および方法 発明の背景 1.発明の分野 本願発明は、プロセッサシミュレータをハードウェアのデジタルモデルと接続 することによりプロセッサに基づくデジタルシステムをシミュレートするための 装置および方法に関する。より詳細には、本願発明はシミュレートされた環境の もとで、プロセッサとデジタルハードウェアを有するシステムをテストするため の装置および方法に関する。シミュレーション環境内でプロセッサシミュレータ とデジタルモデルを相互に作用させることにより、実際のプロセッサとデジタル ハードウェア間の相互作用(interaction)がシミュレートされる。これにより、 実際のコンポーネントの組立て前に行うシステムおよび特にデジタルハードウェ アのテストが改善される。 2.関連情報 今日のハイテク環境において、車、電話システム、家庭用器具等、コンピュー タプロセッサを使用した装置の数は増える一方である。また、そのようなプロセ ッサを使用した汎用コンピュータの数も増加している 。これらいずれのシステムにおいても、ソフトウェアによりプロセッサの動作が 制御され、そして典型的にはプロセッサによりシステム内のデジタルハードウェ アが制御(およびそれに対して反応)される。例えば電話システムにおいて、プ ロセッサがあるデータをメモリの特定の(デジタルハードウェアの一部に対応す る)アドレスへ書き込むことにより、特定の電話が鳴る。もちろんこのようなシ ステムには、様々な動作およびその組み合わせを何百万回にもわたって、しかも 比較的短い時間内に実行できるものもある。 上記のような、1つあるいは複数のプロセッサとそれに対応するデジタルハー ドウェアを有した複雑なシステムを開発する場合、テストが非常に重要かつ時間 のかかる工程となる。通常の開発スキームにおいては、プロセッサは数あるベン ダから購入できる「既製」の部品として扱われる。そして典型的にはそのプロセ ッサ用のソフトウェアが特定の目的用に書かれるか、あるいは購入したソフトウ ェアが変更ないし修正されて使用される。デジタルハードウェアは通常、意図さ れる目的に合わせて特注で製造され、プロセッサを作動させるためのソフトウェ アとは独立してテストされる。ハードウェアテストが終われば、ハードウェアが 製作、組み立てを経て、プロセッサおよびそれに関連するソフトウェアとインタ フェースされる。 たいていの場合、プロセッサと製作されたデジタル ハードウェアを一緒にテストすると、個別のテスト段階では見つからなかった問 題点が浮上してくるため、ハードウェアとソフトウェアの両方にさらに手を加え る必要が出てくる。プロセッサ用のソフトウェアを作り直す作業も多大な労力を 要するが、ハードウェアを作り直す作業は特にコストと時間がかかり、ASIC 技術が関わってくればなおさらである。作り直し作業を一回でも避けることがで きれば、企業にとっては時間とコストの両面における多大な節約となる。さらに 、上記のような通常の開発スキームにおいては、ソフトウェア開発担当者はハー ドウェアの作り直し完了を待たなければテストが再開できないということが珍し くない。 コンピュータ技術の出現により、ハードウェアエンジニアによるデジタルハー ドウェア単体でのテスト能力は概して向上した。例えば、コンピュータをベース とした製品であれば、エンジニアはハードウェアを実際に作る前にデジタルモデ ルを構築して理論を検証することができる。典型的には、ハードウェアを正確に 評価するために、テスト対象となるハードウェアのほとんど全ての信号がシミュ レートされる。残念ながら、デジタルシミュレータを使用して実行可能なテスト は、製造されたデジタルハードウェアにプロセッサを接続した場合ほどには完全 でない。これは、プロセッサの方がより忠実かつ実際的にデジタルハードウェア を、システム内で起り得る様々な状況および変更に対処しつつ相互作用的(inter active)に駆動することができるということによる。 ソフトウェアもある程度までは、プロセッサシミュレータ等のデバイスを使用 してテストすることができる。しかしながら、実際にはデジタルハードウェアに 情報を送るか又はそこから受け取るはずのソフトウェア命令が発生した場合には 、シミュレーションでは実際のシステムの反応を正確に再現することはできない 。 部分的な解決方法が、「埋め込みシステムソフトウェアデバッギンッグのため の、マルチスレッド化プログラミング言語の使用による汎用ハードウェアシミュ レータの拡張」と題する、1993年5月公表のKenneth J.Duda氏のマサチュ ーセッツ工科大学論文において論ぜられており、ここに参照する。この部分的な 解決方法によれば、プロセスシミュレータが、何らかの形でデジタルモデルとし て振る舞うプロセスと交信するよう構成される。しかしながら、そこで想定され ていたのはソフトウェア部分のテストのみであり、仮想のハードウェアをテスト するためには全く不適当であった。よって、このコンセプトによってもソフトウ ェア・ハードウェアシステムをテストすることはできなかった。 このように、プロセッサとハードウェアの組み合わ せをより正確に、デジタルハードウェアの製作に先立ってテストするための方法 が必要とされている。 発明の概要 本願発明は上記の問題点に以下のように対処している。すなわち、シミュレー トされたプロセッサ環境とシミュレートされたデジタル環境とを相互に作用させ ることにより、プロセッサに基づくシステムをシミュレートする。これにより、 個々のコンポーネントを別々にテストする場合に比べてより厳密に、ハードウェ アの製作に先だってシステムをテストすることが可能になる。 本願発明の実施例では、デジタル環境に関連する「重要イベント」リストをプ ロセッサ環境に付与することにより、プロセッサ環境とデジタル環境間の相互作 用が実現される。これら重要イベントは例えば、テストされている特定のデジタ ルモデルのアドレスに対応するメモリアドレスからの読み出しまたはそこへの書 き込みである。このようにして、ソフトウェアプログラムを実行中にプロセッサ 環境により重要なイベントが識別されると、プロセッサ環境は適切な情報をデジ タル環境に送ることにより反応する。本願発明の実施例によればこの目的でカス タムプロセッサ環境が作られるか、または既製のプロセッサ環境に変更ないし修 正を加えて利用される。 本願発明の実施例ではさらに、動作をプロセッサ環 境とデジタル環境の何れかのみで発生させ双方において同時に発生することを避 けることにより、プロセッサ環境とデジタル環境とが同期される。よって、プロ セッサ環境の方からソフトウェア命令が処理される。重要イベントが検出される と、適切な情報がデジタル環境に送られ、プロセッサ環境は以後の命令の実行を 保留する。そしてデジタル環境がいわば眠りから起こされ、プロセッサ環境に時 間的に「追いつい」た後、前記重要イベントに関する情報が処理される。その結 果生じる情報と肯定応答(acknowledgement)のいずれか又は両方がその後プロセ ッサ環境に返送され、それによってプロセッサ環境は動作を再開し、一方デジタ ル環境は動作を保留する。 上記以外の構成ないし組み合わせも本願発明において可能であることは言うま でもない。 図面の簡単な説明 本願発明の様々な目的、特徴ならびに利点は以下の詳細な説明と図面を参照す ることにより、より明らかとなる。 図1は本願発明の実施例と各環境を示す図である。 図2は本願発明の実施例におけるプロセッサおよびデジタル環境のブロック図 である。 図3は本願発明の実施例における様々な動作のシーケンスを示すタイミング図 である。 図4は本願発明の実施例における方法の、プロセッ サ環境の動作に関する流れ図である。 図5は本願発明の実施例におけるデジタル環境のブロック図である。 図6は本願発明の実施例における方法の、デジタル環境の動作に関する流れ図 である。 詳細な説明 本願発明は、プロセッサシミュレータとハードウェアのデジタルモデルを接続 することによりプロセッサに基づくデジタルシステムをシミュレートするための 装置及び方法に関する。より詳細には、本願発明はシミュレートされた環境内で プロセッサとデジタルハードウェアを有するシステムをテストする装置と方法に 関する。このシミュレーション環境内ではプロセッサシミュレータとデジタルモ デル間の通信が行われ、実際のプロセッサとデジタルハードウェア間の相互作用 がシミュレートされる。それにより、システムおよび特にはデジタルハードウェ アのテストを、実際のコンポーネントの製作に先だってより良好に行うことがで きる。 本願発明によればこのテストは、模擬(emulated)プロセッサ環境を模擬デジタ ル環境と結合することにより行われる。本願発明では、一方または両方の環境が カスタム開発されるか、または以下に説明するように一方または両方の環境の既 存の製品が購入される。いずれにしろ、本願発明を実現するためにはいくつかの 困難な点を克服する必要があった。例えば、プロセッサシミュレータの世界はメ モリ、レジスタおよび命令から構成される(命令形式)一方、デジタルシミュレ ータの世界はデジタル信号を伝達するためのシミュレートされたワイヤから構成 される(バス信号形式)。これら2つの世界を互いにやりとりさせる必要がある のである。また、模擬プロセッサ環境を模擬デジタル環境と同期させることも困 難である、なぜなら実際のプロセッサの実際のデジタルハードウェアに対する速 度に比べて、模擬プロセッサ部分の方がデジタル部分よりはるかに速く動作する からである。言い換えれば、模擬デジタルハードウェアが実際の、すなわち被模 擬デジタルハードウェアに対して動作する速度よりも、模擬プロセッサの方が実 際のプロセッサにより近い速度で動作するのである。よって、プロセッサ部分は デジタル部分に比べてはるかに短い時間で1秒間の実際(すなわちシミュレート されてない)動作を実行することができる。さらに、模擬デジタル環境にとって 重要なイベントを模擬プロセッサ環境に知らせておかなければならない。 本願発明の実施例および各環境を図1を参照して説明する。図1には、単一ユ ーザ型または複数ユーザ型の、1つまたは複数のプロセッサを有したコンピュー タのコンピュータ環境が示されている。さらに、このコンピュータ環境はマイク ロコンピュータないしワー クステーション、ミニコンピュータ、メインフレームおよび超並列処理コンピュ ータに関わるものでもよい。マイクロコンピュータないしワークステーションの 例としてはIBM(Armonk,NY)社製のIBM PC及びSun Microsystems社(Mountain Vie w,California)のSpark-Stationがある。またミニコンピュータの例としては、D igital Equipment社(Maynard,Massachusetts)のVAX750およびIBM社のAS/400 がある。メインフレームの例としてはIBM社のSystem-390シリーズがある。さら に超並列処理コンピュータとしてはCray Research社(Eagan,Minnesota)製のC ray T3Dがある。もちろん本願発明ではその他数多くの種類のコンピュータシス テムが使用できる。また本願発明においては上記したようなコンピュータ環境を 2つまたはそれ以上結合して使用することもできる。 さらに、本願発明において使用されるコンピュータ環境では数多くのオペレー ティングシステムが使用できる。例えばUNIXの様々なバージョン、Digital Equi pment社のVMS、またはIBM社のOS/2がある。使用するオペレーティングシステム は数多くの種類から選択できるが、良好なプロセス間コミュニケーション機能を 有したオペレーティングシステムを選択するのが有利である。 図1において、コンピュータ100の様々なコンポーネントがバス116によ り接続されている。特に、 バスには1つまたは複数のCPU102が取り付けられている。本願発明の実施 例において使用されるCPU102は上記したようなコンピュータにおいて頻繁 に見られるものが使用でき、またはその他のCPUを必要な数だけ使用すること もできる。例えばマイクロコンピュータの場合、Intel 80X86シリーズ、Pentium またはIntel社の将来開発されるであろうCPUが使用できる。 RAM110には色々な要素、例えば様々な実施例における本願発明の一部が 含まれる。図示された要素の1つはプロセッサ環境112であり、それによって コンピュータプロセッサ環境がエミュレートされる。RAM110内にはまたデ ジタル環境114も含まれており、それによって1つまたは複数のデジタルハー ドウェアがエミュレートされる。 リンク118から明らかなように、2つの環境112と114は互いに交信し ている。例えば、プロセッサ環境112内でアセンブリ言語プログラムが実行さ れている時に、プログラム内命令によってデータをデジタル環境114内のシミ ュレートされたハードウェアの一部に対応する特定のメモリアドレスから読み出 さなければならないとする。その場合、本願発明の実施例によれば、特定のアド レスからデータを読み出す要求がリンク118を介して送られる。その結果、要 求されたデータは特定のアドレスからリンク118を 介してデジタル環境114からプロセッサ環境112へと送出される。以下にこ の点を説明する。 RAM110はいずれのタイプのメモリデバイスでもよく、例えばDRAMお よびSRAMが使用できる。以下に詳細に説明するように、プロセッサ環境11 2およびデジタル環境114の全体あるいは一部をその他のタイプの記憶装置内 に配設することも可能である。 本願発明の実施例においてROM104にはコンピュータ100が必要とする 様々な情報が記憶される。例えば、初期化ルーチンに関する情報や、プロセッサ 環境112とデジタル環境114の一部または全て、すなわち様々なコンポーネ ントのテストおよびシミュレーションの間概して変更されることのない部分をR OM104内に記憶させておくことができる。本願発明の実施例では、ROM1 04は例えばPROM,EPROM,EEPROM等様々なタイプのデバイスに より構成できる。 記憶装置106は大容量記憶装置であればその種類を問わず、例えば磁気的、 電気的、光学的および生物学的記憶装置が使用できる。ここでも、本願発明の様 々な実施例においては、プロセッサ環境112とデジタル環境114が全体とし て、または部分的に記憶装置106内に包含される。 I/O装置108としては本願発明の実施例ではキ ーボード、プリンタその他の、コンピュータシステム100に情報を出し入れで きる装置が使用される。これにより付加的情報が環境112と114間でやりと りされる。 ディスプレイスクリーン120には、環境112と114間の相互作用ならび にシミュレーションの最終結果の両方または一方が表示される。ディスプレイス クリーン120用のディスプレイとしては様々な解像度のディスプレイ、例えば CRTやフラットパネルディスプレイが使用できる。 環境112および114の様々な実施例を図2を参照して説明する。図2にお いて、プロセッサ環境112の実施例が複数のコンポーネントを有している。特 に、プロセッサシミュレータ204が示されている。本願発明の実施例において はこのプロセッサシミュレータは既製または特注のプロセッサシミュレータであ る。さらに、異なるプロセッサを不特定数シミュレートすることもできる。例と して、Zylog 8000または日立SHプロセッサをシミュレートするGNUシミュレ ータがある。そのようなシミュレータはFree Software Foundation,Inc.,675 Massachusetts Avenue,Cambridge,MA.に問い合わせて入手可能である。もち ろん、典型的にはシミュレーションの対象となる実際のシステムで使用されるプ ロセッサに対応するシミュレータが使用される。 重要イベント識別手段206により、デジタル環境114に関連する重要なイ ベントがプロセッサシミュレータ204に供給される。重要なイベントとしては 例えばデジタル環境114上に存在(およびそれに関連)するメモリ場所での読 み出しおよび書き込みが含まれる。 本願発明の様々な実施例では、重要イベント識別手段206はプロセッサシミ ュレータ204から分離しているか又はその一部分を構成している。本願発明の 実施例では、プロセッサシミュレータ204はイベントを認識するよう修正され る。すでに紹介したプロセッサシミュレータはそのように修正されるシミュレー タの例である。特に、シミュレータがCプログラミング言語により書かれている 場合、以下のような構造を有していると想定される: このようなシミュレータに重要イベントを認識させ、デジタル環境114と相互 作用させるために、様々な実施例では例えば以下のような修正を行う: 上記の例では、様々な実施例におけるサブルーチンread_significant_address() およびwrite_significant_address()はデジタルシミュレータインタフェース2 02(以下に詳述)の一部であり、またaddress_is_significant()は重要イベン ト識別手段の一部である。 いずれのイベントにおいても、サブルーチン″address_is_significant″では 、重要と見なされるすべてのアドレスのリストが考慮される。よって、サブルー チ ンが真として戻ってきたアドレスはデジタル環境114にとって重要である。そ のようなサブルーチンはシミュレートする特定のデジタルハードウェアに応じて 置換したり更新できる。本願発明の実施例ではイベント識別手段206はプロセ ッサシミュレータ204により初期化手続きの一部としてアクセスされるため、 プロセッサシミュレータ204はどのイベントを重要と見なすべきかを始めから 認識している。 テストドライバ208はプロセッサシミュレータ204に対して、実行すべき ソフトウェア命令を与える。また本願発明の実施例においては、テストドライバ 208は、重要イベント識別手段206により使用される重要イベントのリスト を供給する。いくつかの実施例では重要イベント識別手段206とテストドライ バ208は互いを兼ねている、すなわち同一要素である。最後に、本願発明の実 施例のいくつかは、テストドライバ208によりデジタル環境114に対して所 定の刺激が与えられるように構成されている。 本願発明の実施例のいくつかにおいては、プロセッサ環境112はプログラマ ブルである。すなわち特別な、または公知のプログラミング言語を用いてプログ ラムし、解釈(interpret)またはコンパイルできる。さらに、プロセッサ環境1 12が起動すると、プログラムが記憶装置106から読み込まれ、そのプログラ ムにより例えば、重要イベント識別手段206を重要 イベントの発生源として使用するよう指示される。このようにして、プロセッサ 環境112はテストしている特定のデジタルモデルから独立に保たれる。よって 、プロセッサ環境112は数多くの異なるデジタルモデルをテストすることがで きる。 プロセッサシミュレータ204においてソフトウェア命令を実行中に重要なイ ベントが検出されると、プロセッサシミュレータ204はそのイベントをデジタ ルシミュレータインタフェース202に送る。よって、例えば、実際のデジタル ハードウェア上に存在するはずのアドレスにデータを書き込めという指示が検出 された場合、当該アドレス、書き込みデータ、および書き込み「コマンド」がデ ジタルシミュレータインタフェース202に対して「イベント情報」として送ら れる(いくつかの実施例においてはコマンドは必要とされないが、それはデータ の存在自体によって「書き込み」が指示されるからである)。デジタルシミュレ ータインタフェース202はさらにこのイベント情報を、デジタル環境114が 受け取りかつ理解できる形式にする。そしてイベント情報はリンク118を介し てデジタル環境114に送られる。様々な実施例においては、以下に説明するよ うにイベント情報と共にリンク118を介して「タイムスタンプ」が送られる。 リンク118を介してデジタル環境114に送られたイベント情報はプロセッ サシミュレータインタフェ ース210により受け取られ、データが解釈されて、デジタル環境114の他の 部分が理解可能な形式にされる。イベント情報はその後デジタルモデル212に 送られて処理される。上記したごとく、デジタルモデルはエンジニアが作ろうと しているデジタルハードウェア(メモリデバイス等)をシミュレートするもので ある。本願発明によれば、不特定数の様々なハードウェアをシミュレートの対象 装置とすることができ、さらにそれら装置を別の(シミュレートされた、又はそ うでない)他の不特定数の装置と相互接続することもできる。 このようなコンセプトの一例として、例えばデジタルモデル212に関連する アドレスに対する「書き込み」という重要イベントが生じた場合、リンク118 を介して送られたデータが該特定されたアドレスに書き込まれる。本願発明の実 施例では、書き込み動作が行われたという肯定応答がプロセッサ環境112にリ ンク118を介して返送される。また、本願発明の様々な実施例においては、書 き込みの後の影響(例えば、書き込みに伴うデジタルモデル212による別の場 所(図示せず)からのデータの検索等)もまた、プロセッサ環境112に返送可 能である。 システム全体を適切にシミュレートするために、プロセッサ環境112をデジ タル環境114と同期させる必要がある。すなわち、2つの環境112と114 が同じ時間感覚を有していなければならない(シミュレートされた一秒間が両方 の環境にとっても同じものを意味していなければならない)。しかしこの課題は 、すでに述べたようにプロセッサシミュレータとデジタルハードウェアシミュレ ータの速度をそれぞれの実際の物と較べた場合前者の方がはるかに速いため、簡 単には解決できない。 本願発明の実施例による1つの方法では、この同期化の問題は以下のようにし て対処される。イベント情報はプロセッサシミュレータ204からデジタルシミ ュレータインタフェース202へ送られる。デジタルシミュレータインタフェー ス202は1つまたは複数のルーチンを有しており、それによりイベント情報が 調整されリンク118を介して送り出される。本願発明の実施例ではリンク11 8はUNIX環境における名前付きパイプであるが、その他の様々なリンク方法 も可能であることは言うまでもない。いずれにしろ、イベント情報がプロセッサ シミュレータインタフェース210にリンク118を介して送られると、プロセ ッサ環境112上のすべての動作(すなわち時間)が凍結される。本願発明の実 施例においては、これは名前付きパイプの「入力(incoming)」端にREADシス テムコールを発生することによりなされる。UNIXカーネルは何かを受け取る まで、以後の処理をブロックする。 さらに本願発明の様々な実施例では、デジタル環境114上の動作もまた、リ ンク118を介してイベント情報を受け取るまで凍結される。上記したように、 本願発明の実施例ではプロセッサ環境112からタイムスタンプが送られる。こ れは、プロセッサ環境112が最後に何らかのイベント情報(又は、以下に説明 するようなその他のコマンド)をデジタル環境114に送ってからの経過時間を 示す。 このタイムスタンプを受け取ると、デジタル環境114は、最後にイベント情 報(又は、その他のコマンド)受け取って以降経過した時間に対応する適切なク ロックサイクル数を実行する。その後、実際に受け取った重要イベントが処理さ れる。よって、例えばもしプロセッサシミュレータインタフェース210が、特 定のアドレスからデータを読み取るというイベント情報を受け取り、さらに最後 のイベント情報を受け取ってから500ナノ秒経過したと知らされると、デジタ ル環境114はまず500ナノ秒分のクロックサイクルを経た後に初めて、読み 出しコマンドを発生する。 デジタル環境114がイベント情報を処理した後、肯定応答がリンク118を 介してデジタルシミュレータインタフェース202に返送される。本願発明の実 施例では、読み出し等の結果が肯定応答としての役割を果たすことができる。い ずれのイベントにおいても、肯定応答を送ることによりシミュレートされたデジ タル環境114は再び動作停止状態になり、次のイベント情報(又はコマンド) を待つ。肯定応答を受け取ると、プロセッサ環境112は時間凍結状態から解放 される。 リンク118としてUNIX名前付きパイプのようなプロセス間コミュニケー ションシステムを使用することにより、環境112と114をそれぞれ、イベン ト(又は肯定確認)情報がパイプから受け取られた時に再開可能なプロセスとし て取り扱うことができるという利点が得られる。よってタイムスタンプは、デジ タル環境114が次に時間を凍結すべきタイミングを示す手段として使用できる 。ただし、本願発明の実施例においては、環境112と114が同時に実行し続 けることができるように、それらを同期させることも可能である。その場合、2 環境間の同期が維持される。さらに本願発明によれば、リンク118として異な る種類のリンクをいくつでも使用できる。例えばTCP等のローカルエリアネッ トワークプロトコルを使用して、環境112と114(又はその一部ないし複数 プロセッサシミュレータとデジタルモデルのいずれか又は両方)がそれぞれ別の コンピュータシステム100上にあるように構成することができる。 読み出しや書き込みイベント等のイベント情報をデジタル環境114に対して 送る他に、本願発明の実施例ではプロセッサ環境112により、様々なその他の 種類の情報がリンク118を介して送られる。例えば、プロセッサ環境112が 、時間凍結されたデジタル環境114に対して先行し過ぎないように、本願発明 の実施例では「サイクル」コマンドがデジタル環境114に送られる。このコマ ンドによりデジタル環境114は所定の数のクロックサイクルを実行させられ、 時間的にプロセッサ環境112に追い付く。こうして、デジタル環境114にお いて発生しかつプロセッサ環境112にとって重要なイベント(割り込み等)が 、実際のプロセッサ・ハードウェア環境に酷似した形で処理され得る。 本願発明の実施例においてはデジタル環境114にはさらに「ポール(poll)」 コマンドを送ることができる。これによりデジタルモデル212の特定のシミュ レート信号の状態が把握できる。このコマンドを使用した様々な実施例では、こ のコマンドがテストドライバ208により直接デジタルシミュレータインタフェ ース202に(さらにはリンク118上に)送られる、すなわちプロセッサシミ ュレータ204がバイパスされる。さらに、ポールコマンドから得られた結果も またプロセッサシミュレータ204をバイパスしてデジタルシミュレータインタ ーフェース202からテストドライバ208に送られる。この結果を受け取った 後、テストドライバ208は結果に応じて何らかの適切な動作を行う。もちろん 本願発明の実施例では、そ の他の構成、例えばプロセッサシミュレータ204を上記処理に関与させること も可能である。 本願発明の実施例では、デジタル環境114が、エミュレートされている実際 のデジタルハードウェアに対して動作する速度に比較して、プロセッサ環境11 2の方が実際のプロセッサの速度により近い速度で動作するため、本願発明の実 施例では、特定の状況においてタイムスタンプにより示される時間を意図的に大 幅に減らすことができる。例えば、デジタル環境114に対してイベント情報が 最後に送られてから100,000ナノ秒が経過したとすれば、デジタル環境1 14が追い付かなければならないのは10,000ナノ秒分だけであると示すこ とができる。多くの状況においてはこれで良いが、例えば10,001ナノ秒と 100,000ナノ秒間において割り込みが起きる可能性が高い場合には、その ような実施例は適切でない。 上記の説明から明らかなように、本願発明の実施例ではプロセッサ環境112 が「マスター」として、イベント情報を送ることによりデジタル環境114の実 行をトリガする。もちろん、本願発明の様々な実施例においては逆の関係も可能 であり、または2つを同位環境(peer)として動作させることも可能である。 上記したコンポーネントとそれらの相互作用に関する構成は本願発明の単なる 例示であり、その他の異な る構成も可能であることは言うまでもない。 本願発明の様々な実施例におけるコンポーネント間のタイミングを図3に示す 。特に、この図を参照して重要イベントであるメモリ読み出しとメモリ書き込み について説明する。図3において、イベントシーケンスは時間的に上から下へ向 かって進行する。よって、図において最初に起こるイベントは、プロセッサシミ ュレータ204からデジタルシミュレータインタフェース202が受け取るメモ リ読み出しまたはメモリ書き込み要求である。これはブロック302により示さ れている。上記のごとく、この要求は関連するアドレスやデータ等の情報を含む 。 デジタルシミュレータインタフェース202が要求を受け取ると、コマンドが (リンク118を介して)プロセッサシミュレータインタフェース210に、経 過時間を示すタイムスタンプと共に送られる。これはブロック304により示さ れている。すでに説明したように、本願発明の実施例ではこのタイムスタンプの 送信によりプロセッサ環境112は以降のソフトウェア命令の実行を中断し、デ ジタル環境114は実行を開始する。 プロセッサシミュレータインタフェース210はタイムスタンプを受け取り、 最終的にはデジタルモデル212に対して、最後にイベント情報が受け取られて 以降経過したシミュレーション時間に対応する数の適切なバスサイクルを実行さ せる。これはブロック306で示されている。デジタルモデル212が「追い付 いて」いる最中、割り込み等のイベントがデジタルモデル212により発生され る場合がある。その場合、割り込み要求がデジタルシミュレータインタフェース 202およびプロセッサ環境112に(リンク118を介して)返送され、処理 される。これはブロック308により示してある。割り込み処理については以下 に説明する。 必要な数のバスサイクルを実行することによりデジタル環境114がプロセッ サ環境112に「追い付く」と、当初のメモリ読み出し又は書き込みコマンドに 対応するメモリ読み出し又は書き込みバスサイクルがデジタルモデル212に送 られる。これはブロック310により示されている。次にデジタルモデル212 はメモリ読み出し又は書き込み要求の結果を、ブロック312に示すようにプロ セッサシミュレータインタフェース210に送る。メモリ読み出しが要求された 場合、この結果は特定のアドレスから読み出されたデータである。メモリ書き込 みの場合は、この結果は当該要求が処理されたことに対する単なる肯定応答であ る。いずれの場合でも、結果はブロック314で示すようにデジタルシミュレー タインタフェース202に送られる。 プロセッサシミュレータインタフェース210がこの情報を受け取ると、プロ セッサ環境112は動作を再開し、メモリ読み出し又は書き込み結果が、ブロッ ク316に示すようにプロセッサシミュレータ204に送られる。この後ようや く、割り込み要求等のデジタルモデル212から発生されたイベントが処理され る。この状況は実際のプロセッサ環境でしばしば起こる状況に似ている、という のも割り込み要求は必ずしも即座に処理されるとは限らないからである。しかし ながら、割り込み要求等の処理タイミングが非常に重要なシミュレーションでは 、本願発明によれば「サイクル」コマンドを比較的頻繁に使用することができる 。こうして、割り込み要求が発生されてから実際にプロセッサシミュレータ20 4がそれに反応して動作を開始するまでの時間が短縮される。 プロセッサ環境112とデジタル環境114との相互作用に関する本願発明の 動作方法の実施例を以下に図4の流れ図を参照して説明する。図4において、第 1のステップとしてはプロセッサシミュレータ204を含むプロセッサ環境11 2がブロック402に示すように起動される。これには、デジタルモデル212 が重要イベント認識手段206等を介して重要であると見なす必要のあるイベン トを識別するなどの初期化作業が含まれる。 初期化シーケンスが終わると、次はブロック404 により示すように次のソフトウェア命令を実行するステップである。本願発明の 様々な実施例では、この命令はテストドライバ208によって指定されたファイ ルまたはテストドライバ208自身から取り出される。 本願発明によれば、プロセッサ命令の実行中に重要なイベントが認識されない と、所定の時間内にデジタルモデル212に何らかのイベント情報(コマンド等 )が送られたかどうかが判断される。これは判断ブロック406と418により 示されている。言い換えれば、デジタルモデル212を所定のサイクル数だけ動 作させてプロセッサ環境112に時間的に追い付かせるかどうかの判断がなされ る。答えが「イエス」であれば、「サイクル」コマンドがデジタルモデル212 に送られる。本願発明の実施例においては、静的または動的手段を必要数使用し て、いつサイクルコマンドを送るか否かの判断をすることができる。 ブロック416に示すようにデジタルモデルに「追い付き」を認めると、割り 込み等のイベントがデジタルモデル212から発生される可能性があるので、サ イクリングの結果がさらに別の処理を必要とするかどうかが判断される。これは 判断ブロック420で示されている。デジタルモデル212からの結果が、割り 込み等の発生により別の処理を必要としないならば、ソフトウェア命令はブロッ ク422で示すように完了 される。すなわち、命令を完了するために必要な動作がすべて実行される。例え ば、デジタルモデル212の所定アドレスのメモリ読み出しは、そのアドレスの 値を取り出してプロセッサシミュレータ204内の特定のレジスタ上に置くよう 指示するソフトウェア命令に基づいているとする。その場合、ブロック422は その命令の後半部分、すなわち得られた値を特定のレジスタに置くという命令部 分を表している。それが終了すると、ブロック404に示すように次の順序のソ フトウェア命令が実行される。同様に、判断ブロック418において、もし「サ イクル」コマンドをデジタル環境114に送る必要がないならば、制御は再びブ ロック404に向けられる。 言うまでもなく、本願発明の実施例においてはメモリ読み出しまたは書き込み 等を利用する様々な種類のソフトウェア命令をいくつでも使用することができる 。 判断ブロック420に対す答えが「イエス」であれば、プロセッサシミュレー タ204はそのように伝えられ、「結果」がさらなる処理を必要としていること を認識する。これはブロック424により示されている。しかしこの別の処理に 取りかかる前に、ブロック422に示すように目下のソフトウェア命令が完了さ れる。そして、ブロック404に従って次のソフトウェア命令が実行されるが、 この命令は、その前に割り 込みが検知されていた場合は、割り込みイベントハンドラの命令である可能性が 高い。 上記の様々な状況において、判断ブロック406において重要イベントが認識 されたなら、デジタルモデル上の関連メモリアドレス、該イベントが「書き込み 」であればそのアドレスに書き込む値、および経過時間を決定しなければならな い。これはブロック408に示されている。これらの情報は次にブロック410 に示すようにデジタルモデル212に送られる。本願発明においてはその後、判 断ブロック412と414で示すようにデジタルモデル212から反応(確認応 答)があるまで待機する。換言すると、そのような反応があるまで時間が凍結さ れる。本願発明の様々な実施例では、読み出し又は「ポール」コマンドの場合、 要求された情報がプロセッサ環境112により受け取られたことをもってして前 記反応とすることができる。その他の種類のコマンドの場合、前記反応はただ単 にコマンド(例えば「書き込み」)が処理されたということを示す肯定応答でも よい。 デジタルモデルから反応が受け取られると、次は、判断ブロック420に関し てすでに説明したように、結果が別の処理を必要とするかどうかを判断するステ ップである。ここでもまた、割り込み要求を処理するか、またはその他の、例え ば読み出しまたはポールコマンドの結果により必要とされる何か別の動作を行う ことになる場合もある。 本願発明におけるデジタル環境114とそのコンポーネントの様々な実施例が 図5に示されている。図5において、プロセッサシミュレータインタフェース2 10は上記のようなイベント情報を受け取り、それをコマンドインタプリタ50 2に送る。コマンドインタプリタは受け取ったコマンドのタイプを判定し、それ に応じて動作する。例えば、コマンドが「ポール」コマンドであれば、要求され た信号の状態が信号読み取りモジュール506を介して得られる。このために本 願発明の実施例では、デジタルモデル212により信号読み取りモジュール50 6はデジタルモデル212内の全ての信号の状態を常に知らされる。より詳細に は、本願発明の様々な実施例では、デジタルモデル212内の信号が変化すると 信号読み取りモジュール506が「アクティブ」になる。このようにして様々な シミュレートされたワイヤ等の状態を効率的に知ることができる。そして、要求 された信号の状態はプロセッサシミュレータインタフェース212に送られて、 リンク118を介して運ばれる。 コマンドインタプリタ502により、受け取られたコマンドが読み出しまたは 書き込みであると判断されたなら、まず最初にデジタルモデル212を適当な数 のバスサイクルだけ(受け取ったタイムスタンプに従って)実行させて、プロセ ッサシミュレータに「追い 付か」せる。そして、バスモデル504により特定の情報の読み出しや書き込み が行われる。より詳細には、バスモデル504はデジタルモデル212のすべて の必要なシミュレートされた線路を作動(すなわち書き込み可能)して要求され た動作を行う。読み出しコマンドの場合、バスモデル504は要求されたデータ を得た後プロセッサシミュレータインタフェース210に転送し、さらにリンク 118を介して送る。「書き込み」コマンドの場合、特定のデータが要求された アドレスへ書かれた後、バスモデル504は書き込みが実施されたことを示す肯 定応答をプロセッサシミュレータインタフェース210に送る。 「サイクル」コマンドが受け取られると、バスモデル504はデジタルモデル 210を所定数(使用者の選択による任意の静的数または動的に変化する数)の バスサイクルだけ実行する。割り込み要求等のイベントが発生された場合、バス モデル504はそれをプロセッサシミュレータインタフェース210さらにはリ ンク118に送る。これは、読み出しまたは書き込みコマンドにおいて、デジタ ルモデル212が上記したようにプロセッサ環境112に追い付いている最中に 割り込み要求が発生された場合の手順と同じである。 上記コンポーネントとそれらの相互反応に関する構成は本願発明の単なる例示 であり、その他の構成も可能である。 デジタル環境114に関する本願発明の動作方法の実施例を以下に図6を参照 して説明する。図6において、プロセッサ環境112からイベント情報が受け取 られるまでは、何の動作も起こらない。これは判断ブロック602と604によ り示されている。イベント情報が一旦受け取られると、次はデジタルモデル21 2を、タイムスタンプまたはサイクルコマンドに従って所定のサイクル数だけ実 行するステップである。これはブロック606により示されている。この結果割 り込みがもし起これば、その割り込みは判断ブロック608と610により示さ れるようにプロセッサ環境112へ送られる。そして割り込みはすでに説明した ように処理される。 残りのステップはプロセッサ環境112から受け取られた特定のコマンドに依 存する。すでに述べた通り、本願発明の実施例ではブロック612に示すように 4つのコマンドが受け取られる。よって、例えば受け取ったコマンドが「読み出 し」だったとすると、次はデジタルモデル212の特定のアドレスからデータを 読み出すステップであり、これはブロック614により示されている。このデー タは次に、ブロック616で示すようにプロセッサ環境112に転送される。そ の後、本願発明の実施例ではデジタル環境114が再び、次のイベント情報を受 け取るまで待機する。これはブロック604と判断ブロック602に示されてい る。 受け取ったコマンドが「書き込み」コマンドの場合、プロセッサ環境112か ら受け取られたデータはデジタルモデル212の、イベントデータにより特定さ れたアドレスに書き込まれる。これはブロック618により示されている。その 後、書き込みがなされたことを示す肯定応答112がプロセッサ環境112に送 られる。そしてデジタル環境114は次のイベント情報を受け取るよう待機する 。 コマンドが「ポール」コマンドの場合、特定された信号の状態がブロック62 2に示すようにアクセスされる。そしてブロック624に示すように、信号の状 態はプロセッサ環境112に転送され、環境114は再びイベント情報を待つ。 コマンドが「サイクル」コマンドであれば、すでにサイクリングがブロック6 06で起こったと想定される。サイクリングが完了すると、ブロック626に示 すように肯定確認がプロセッサ環境112に転送される。 本願発明の実施例では、プロセッサ環境112はC言語やすでに参照したKenn eth Duda氏の論文において記載されているSOTL言語等のコンピュータ言語を 使用して構築することができる。同様にデジタル環境114も数多くのコンピュ ータ言語により構築することができる。しかし、特定の言語が所期の目的により 適している。例えば、デジタル環境114は米国オレゴン州のMentor Corporati on製のQuicksimを使用してVHDL言語で書くことができる。 概して、本願発明の実施例の様々なコンポーネントはハードウェア、ソフトウ ェアまたはそれらの組み合わせにより実施することができる。そのような実施例 において、様々なコンポーネントおよびステップは本願発明の機能を達成するた めにハードウェアとソフトウェアの両方またはいずれか一方において実施される 。現在利用可能な、または将来開発されるコンピュータソフトウェア言語ならび にハードウェアコンポーネントの両方またはいずれかを本願発明の実施例に使用 することができる。 上記した本願発明の特定の実施例は発明の原理を単に例示するものであり、こ の原理に一致するその他様々な変更ないし変形が当業者によって可能である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケネス ジェイ デューダ アメリカ合衆国 カリフォルニア 94025 メンローパーク ローブル アヴェニュ ー 687 アパートメント ナンバー3 (72)発明者 アルフレッド プラット アメリカ合衆国 カリフォルニア 95014 キュペルティーノ チャドウィック プ レイス 11120

Claims (1)

  1. 【特許請求の範囲】 1.プロセッサとデジタルデバイスを有した仮想のシステムをテストする装置で あり、 プロセッサシミュレータとデジタルモデルを有したシミュレーション環境と 、 識別手段と、 インタフェース手段を具備しており、 デジタルモデルにとって重要である1つ又は複数の重要イベントが前記識別 手段によりプロセッサシミュレータのために識別され、 前記1つまたは複数の重要イベントは対応するイベント情報を有しており、 前記インタフェース手段によりイベント情報がデジタルモデルに送出されか つ命令形式からバス信号形式へ変換され、 デジタルモデルはイベント情報を受け取り処理することによりイベント結果 を発生し、 イベント結果がインタフェース手段によりプロセッサシミュレータに送られ るよう構成されている装置。 2.前記イベント情報が、デジタルモデルが最後にイベント情報を受け取ってか ら以降シミュレートされた時間を示すタイムスタンプを含み、 タイムスタンプを受け取るとデジタルモデルが適 当な数のバスサイクルを実行するよう構成された、請求項1記載の装置。 3.所定の時間内にデジタルモデルに対してイベント情報が送られなかった場合 に前記タイムスタンプがデジタルモデルに送られるよう構成された、請求項2記 載の装置。 4.デジタルモデルにより発生された割り込みがプロセスシミュレータに送られ 、プロセスシミュレータは前記イベント結果を受け取るとこの割り込みを処理す るよう構成された、請求項2記載の装置。 5.前記イベント情報がポールコマンドを有し、該ポールコマンドによりデジタ ルモデルの特定のシミュレーション信号の状態が得られ、前記インタフェース手 段によってプロセッサシミュレータへ送られるよう構成された、請求項1記載の 装置。 6.プロセッサとデジタルデバイスを有した仮想のシステムをテストするための 装置において、 プロセッサシミュレータとデジタルモデルを有するシミュレーション環境と 、 重要イベント識別手段と、 デジタルシミュレータインタフェースと、 プロセッサシミュレータインタフェースを具備し、 前記重要イベント識別手段によりデジタルモデルにとって重要な1つ又は複 数の重要イベントが識別 され、 前記1つかまたは複数の重要イベントは関連するイベント情報を含み、 前記デジタルシミュレータインタフェースによりイベント情報がデジタルモ デルに送られ、 前記デジタルモデルはイベント情報を受け取り処理することによりイベント 結果を発生し、 前記プロセッサシミュレータインタフェースによりイベント結果がプロセッ サシミュレータに送られ、 デジタルシミュレータとプロセスシミュレータは前記イベント情報を命令形 式からバス信号形式へ、およびその逆へと変換するよう構成された装置。 7.前記1つまたは複数の重要イベントがメモリ読み出し又はメモリ書き込みを 含む、請求項6記載の装置。 8.前記イベント情報が、デジタルモデルが最後にイベント情報を受け取ってか ら以降経過した時間を示すタイムスタンプを含み、 デジタルモデルは前記タイムスタンプを受け取ると適切な数のバスサイクル を実行するよう構成された、請求項6記載の装置。 9.所定時間内にデジタルモデルに対してイベント情報が送られなかった場合に 、前記タイムスタンプがデジタルモデルに転送されるよう構成された、請求 項8記載の装置。 10.デジタルモデルから発生された割り込みがプロセスシミュレータに送られ、 プロセスシミュレータは前記イベント結果を受け取ると該割り込みを処理するよ う構成された、請求項8記載の装置。 11.プロセッサとデジタルデバイスを有した仮想のシステムをテストする装置で あって、 プロセッサシミュレータとデジタルモデルを有したシミュレーション環境と 、 識別手段と、 プロセッサインタフェース手段と、 デジタルインタフェース手段と、 デジタル再開手段と、 デジタル中断手段を具備し、 前記識別手段により、デジタルモデルにとって重要な1つかまたは複数の重 要イベントがプロセッサシミュレータのために識別され、 前記1つまたは複数の重要イベントは関連したイベント情報を有し、 前記プロセッサインタフェースにより前記イベント情報がデジタルモデルに を送られ、 前記デジタルインタフェース手段により、プロセッサインタフェース手段か らのイベント情報が受け取られ、 前記再開手段により、デジタルインタフェース手 段に反応してデジタルモデル上での動作が開始または再開され、 前記デジタル中断手段により、デジタルインタフェース手段に反応してデジ タルモデル上の動作が中断され、 前記イベント情報は命令形式からバス信号形式へ変換され、 デジタルモデルはデジタルインタフェース手段からイベント情報を受け取り 処理することによりイベント結果を発生し、該イベント結果は前記インタフェー ス手段により前記デジタルインタフェース手段を介してプロセッサシミュレータ へ送られるよう構成された装置。 12.前記プロセッサインタフェース手段に反応してプロセッサシミュレータ上の 動作を中断するためのプロセッサ中断手段と、 前記プロセッサインタフェース手段に反応してプロセッサシミュレータ上の 動作を再開するためのプロセッサ再開手段をさらに具備した、請求項11記載の 装置。 13.前記プロセッサ中断手段および再開手段と、前記デジタル中断手段および再 開手段がUNIX名前付きパイプを利用して構成された、請求項12記載の装置 。 14.前記イベント情報が、デジタルモデルが最後に受 け取った、すなわち前回のイベント情報以降経過した時間を示すタイムスタンプ を含み、 デジタルモデルは前記タイムスタンプを受け取ると適切な数のバスサイクル を実行するよう構成されている、請求項11記載の装置。 15.デジタルモデルに対して所定の時間内に何のイベント情報も送られない場合 に、前記タイムスタンプがデジタルモデルに送られるよう構成された、請求項1 4記載の装置。 16.デジタルモデルにより発生された割り込みがプロセスシミュレータに送られ 、プロセスシミュレータは前記イベント結果を受け取ると該割り込みを処理する よう構成された、請求項14記載の装置。 17.プロセッサとデジタルデバイスを有した仮想のシステムをテストする方法に おいて、プロセッサシミュレータとデジタルモデルを有したシミュレーション環 境が利用され、以下のステップすなわち、 (1)デジタルモデルにとって重要である1つか又は複数の重要イベントを 識別し、重要イベントは対応するイベント情報を有しており、 (2)デジタルモデルにステップ(1)のイベント情報を送り、 (3)ステップ(2)によって送られたイベント情報を、命令形式からバス 信号形式に変換し、デジタルモデルは受け取ったイベント情報を処理してイ ベント結果を発生し、 (4)ステップ(3)の前記イベント結果をプロセッサシミュレータに送る ステップを有する方法。 18.イベントステップ(1)のイベント情報が、デジタルモデルが最後にイベン ト情報を受け取ってから経過した時間を示すタイムスタンプを有し、 デジタルモデルは前記タイムスタンプを受け取ると適切な数のバスサイクル を実行するよう構成された、請求項17記載の方法。 19.所定時間内にデジタルモデルに対してイベント情報が送られない場合、前記 タイムスタンプがデジタルモデルに転送されるよう構成された、請求項18記載 の方法。 20.ステップ(1)のイベント情報がポールコマンドを有し、該ポールコマンド によりデジタルモデルの特定のシミュレーション信号の状態が得られ、プロセッ サシミュレータに送られるよう構成された、請求項17記載の方法。
JP8527587A 1995-03-14 1996-02-12 プロセッサに基づくデジタルシステムをシミュレートするための装置および方法 Pending JPH11505645A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/403,597 US5857091A (en) 1995-03-14 1995-03-14 Machine and method for simulating a processor-based digital system
US08/403,597 1995-03-14
PCT/US1996/001856 WO1996028788A1 (en) 1995-03-14 1996-02-12 Machine and method for simulating a processor-based digital system

Publications (1)

Publication Number Publication Date
JPH11505645A true JPH11505645A (ja) 1999-05-21

Family

ID=23596354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8527587A Pending JPH11505645A (ja) 1995-03-14 1996-02-12 プロセッサに基づくデジタルシステムをシミュレートするための装置および方法

Country Status (4)

Country Link
US (1) US5857091A (ja)
EP (1) EP0815521A1 (ja)
JP (1) JPH11505645A (ja)
WO (1) WO1996028788A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012226444A (ja) * 2011-04-15 2012-11-15 Canon Inc 情報処理装置及びプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
GB9814017D0 (en) * 1998-06-29 1998-08-26 Sgs Thomson Microelectronics Design of an application specific processor (ASP)
GB9814015D0 (en) * 1998-06-29 1998-08-26 Sgs Thomson Microelectronics Design of an application specific processor (ASP)
GB9814014D0 (en) 1998-06-29 1998-08-26 Sgs Thomson Microelectronics Design of an application specific processor (ASP)
US6442514B1 (en) * 1998-12-04 2002-08-27 Xilinx, Inc. Method and system for simulating a communications bus
US6466898B1 (en) * 1999-01-12 2002-10-15 Terence Chan Multithreaded, mixed hardware description languages logic simulation on engineering workstations
US6564178B1 (en) * 1999-04-13 2003-05-13 Hewlett-Packard Company Method and apparatus for evaluating processors for architectural compliance
US6230114B1 (en) 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US7224689B2 (en) * 2001-08-17 2007-05-29 Sun Microsystems, Inc. Method and apparatus for routing of messages in a cycle-based system
US20040054515A1 (en) * 2002-09-18 2004-03-18 Todi Rajat Kumar Methods and systems for modeling the performance of a processor
FR2845497B1 (fr) * 2002-10-08 2004-12-24 Renault Sa Dispositif de simulation d'un systeme embarque dans un vehicule automobile
US7424703B1 (en) 2003-04-01 2008-09-09 Cadence Design Systems, Inc. Method and system for simulation of mixed-language circuit designs
CN100378667C (zh) * 2004-09-03 2008-04-02 中国洛阳浮法玻璃集团有限责任公司 开关量控制过程的智能化模拟仿真方法
US8983823B1 (en) 2005-12-29 2015-03-17 The Mathworks, Inc. Verification harness for automatically generating a text-based representation of a graphical model
US9317628B1 (en) * 2005-12-29 2016-04-19 The Mathworks, Inc. Automatic comparison and performance analysis between different implementations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62182939A (ja) * 1986-02-07 1987-08-11 Hitachi Ltd 情報処理装置の論理シミユレ−シヨン方法
US5081601A (en) * 1989-09-22 1992-01-14 Lsi Logic Corporation System for combining independently clocked simulators
US5404496A (en) * 1992-07-01 1995-04-04 Hewlett-Packard Company Computer-based system and method for debugging a computer system implementation
US5363501A (en) * 1992-12-22 1994-11-08 Sony Electronics, Inc. Method for computer system development verification and testing using portable diagnostic/testing programs
US5557774A (en) * 1993-03-22 1996-09-17 Hitachi, Ltd. Method for making test environmental programs
US5493672A (en) * 1994-05-16 1996-02-20 Sun Microsystems, Inc. Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution
US5530804A (en) * 1994-05-16 1996-06-25 Motorola, Inc. Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012226444A (ja) * 2011-04-15 2012-11-15 Canon Inc 情報処理装置及びプログラム

Also Published As

Publication number Publication date
EP0815521A1 (en) 1998-01-07
US5857091A (en) 1999-01-05
WO1996028788A1 (en) 1996-09-19

Similar Documents

Publication Publication Date Title
US5768567A (en) Optimizing hardware and software co-simulator
US5630049A (en) Method and apparatus for testing software on a computer network
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
EP1508858A2 (en) A method and system for executing software on non-native platforms
US5546562A (en) Method and apparatus to emulate VLSI circuits within a logic simulator
US6256659B1 (en) System and method for performing hybrid preemptive and cooperative multi-tasking in a computer system
US6014512A (en) Method and apparatus for simulation of a multi-processor circuit
US5857091A (en) Machine and method for simulating a processor-based digital system
US5363501A (en) Method for computer system development verification and testing using portable diagnostic/testing programs
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
US6389383B1 (en) System and method for interfacing software and hardware
US20030093258A1 (en) Method and apparatus for efficient simulation of memory mapped device access
CN1312583C (zh) 仿真装置和仿真方法
JPH08502375A (ja) コンピュータにて並列実行処理可能なオブジェクト指向プログラムの少なくとも1つのオブジェクトにおける少なくとも1つのテストの実施方法
Wilson Hardware/software selected cycle solution
US6629174B1 (en) Synchronization using bus arbitration control for system analysis
JP3085730B2 (ja) 複合cpuシステムの並列シミュレーション方式
JP3424548B2 (ja) 組み込み機器用ソフトウエア論理シミュレータ
JPH07121405A (ja) シミュレーション方式
Devins SoC Verification Software–Test Operating System
JP2001256072A (ja) システムエミュレータ
JP3137094B2 (ja) シミュレーション方法、シミュレーション装置及びその記録媒体
Furukawa et al. A hardware/software cosimulator with RTOS supports for multiprocessor embedded systems
Ashton et al. SunOS Minix: a tool for use in Operating System Laboratories