[go: up one dir, main page]

JP3995751B2 - メモリをエミュレートするためのシステム及び方法 - Google Patents

メモリをエミュレートするためのシステム及び方法 Download PDF

Info

Publication number
JP3995751B2
JP3995751B2 JP05975397A JP5975397A JP3995751B2 JP 3995751 B2 JP3995751 B2 JP 3995751B2 JP 05975397 A JP05975397 A JP 05975397A JP 5975397 A JP5975397 A JP 5975397A JP 3995751 B2 JP3995751 B2 JP 3995751B2
Authority
JP
Japan
Prior art keywords
memory
address
emulation
circuit
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP05975397A
Other languages
English (en)
Other versions
JPH1055288A (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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of JPH1055288A publication Critical patent/JPH1055288A/ja
Application granted granted Critical
Publication of JP3995751B2 publication Critical patent/JP3995751B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、回路エミュレーションシステムの分野に関し、特に、エミュレーションシステム内のメモリ回路設計をエミュレートするためのシステムに関するものである。
【0002】
【従来の技術】
電子回路設計の速度および複雑さが高まるのに伴い、様々な開発段階における回路設計のテストがますます重大になっている。論理エミュレータは、複雑な回路設計の開発が進行するのに伴って、該回路設計をテストする。論理エミュレータは、回路設計の機能をエミュレートする、ソフトウエアによって構成可能なハードウエアを含むことができる。回路設計は、該回路設計の機能および作用を記述するデータセットによって詳述される。
【0003】
メモリ回路設計は、エミュレートされる必要がある回路設計の1つの構成要素である。回路設計は、例えば、単一ポート・ランダムアクセイメモリ(RAM)および多重ポート・ビデオRAM(VRAM)などの、多種類のメモリ回路設計を含むことができる。これらのメモリ回路設計のサイズは、高さおよび幅において異なることもできる。例えば、1つのメモリ回路設計は、各々が24ビットの幅を有する3072個のエントリ(3Kの高さ)を有するものであってよい。また、他のメモリ回路設計は、各々が128ビットの幅を有する128個のエントリ高さを有するものであってよい。
【0004】
【発明が解決しようとする課題】
従来の論理エミュレータの場合、設計者は、自分自身のメモリ回路設計作業バージョンを配線しなければならなかった。その場合、前記設計者は、配線したメモリ回路を前記論理エミュレータにインターフェイス接続している。しかし、これは、多くの理由により望ましくない。第1に、前記メモリ回路設計は除去またはディスエーブル(不能)状態にされなければならないので、設計者は、簡単に、前記回路設計に関するソフトウエア記述を前記論理エミュレータに直接的に使用することができない。第2に、設計者は、前記論理エミュレータにインターフェイス接続すべき物理的なメモリ回路を構築しなければならない。これは、時間がかかり、エラーを生じやすく、高いコストがかかる手続きであり、設計者の新たなメモリ回路設計を容易にテスト能力を制限するものである。第3に、前記論理エミュレータは、前記メモリ回路設計の配線済バージョンと直接的にインターフェイス接続されなければならない。これは、前記論理エミュレータのコストを高くし、該論理エミュレータを他の外部回路とインターフェイス接続するために使用可能なハードウエアインターフェイス資源を拘束する。
【0005】
米国特許No.5,448,522は、タグレジスタを使用して多重ポートメモリ回路エミュレーションを支援するシステムを開示している。エミュレートされる多重ポートメモリ回路と同数の読出しポートおよび書込みポートを実現するために、メモリアレイの多数のコピーが作成される。しかし、これには多くの問題点がある。例えば、メモリアレイの多数のコピーが必要であるので、前記エミュレータにおいて大量のメモリが使用される。さらに、メモリアレイの1つのコピーにおける書込みは、追跡され、前記メモリアレイの他のコピーに反映されなければならない。しかし、このためには、前記メモリアレイに付加的な論理が使用されなければならない。
故に、現在、改良された論理エミュレータが要求されている。
この発明は、上述の点に鑑みてなされたもので、効率的に且つ確実に、多数のメモリ回路設計をエミュレートできるようにするシステムおよび方法を提供しようとするものである。
【0006】
【課題を解決するための手段】
この発明に係るシステムは、多数のメモリ回路設計を同時にエミュレートする。前記メモリ回路設計のアドレススペースは、前記システムのエミュレーションメモリのアドレススペースにマッピングされる。また、前記メモリ回路設計のアドレススペースは、多数の時間周期全体にわたってマッピングされる。こうして、前記システムは、多重ポートを有するメモリをエミュレートできる。
メモリ回路設計をエミュレートするためのシステムおよび方法が開示されている。このシステムは、タイムスライスされた論理エミュレータを備えている。このタイムスライスされた論理エミュレータは、1組のタイムスライスにおける機能の一部をエミュレートすることによって、ターゲット設計の1サイクルに実行される機能をエミュレートする。すなわち、1組のタイムスライスは、前記ターゲット設計における1つのクロックサイクルを示す。前記システムは、ターゲット設計に含まれる多くの異なる種類のメモリ設計をエミュレートする。このシステムは、エミュレーションメモリを備えている。前記メモリ設計は、プログラマブルなアドレス発生ブロックを介して、前記エミュレーションメモリにマッピングされる。ある特定のタイムスライスにおいて、前記プログラマブルなアドレス発生ブロックは、メモリ設計アドレスの全部または一部を1つのエミュレーションメモリのアドレスにマッピングするアドレスを発生する。前記プログラマブルなアドレス発生ブロックによって、多数のメモリ設計が1つのエミュレーションメモリにマッピング可能になり、また、1つのメモリ設計が多数のエミュレーションメモリにマッピング可能になる。このようにして、多数のタイムスライスにわたって、前記システムは、多くの異なる種類のメモリをエミュレートすることができる。
【0007】
【発明の実施の形態】
以下、添付図面を参照してこの発明の一実施の形態を詳細に説明する。
a.エミュレーションシステム
図1は、様々な種類のメモリ設計を含む回路設計をエミュレートするためのエミュレーションシステムを示すものである。該エミュレーションシステムは、コンピュータシステム100と論理エミュレータ150とを具備している。
前記コンピュータシステム100は、相互に接続されたプロセッサ110とコンピュータメモリ105と外部インターフェイス120とを備えている。前記プロセッサ110は、各種処理を実行し、且つ、前記コンピュータメモリ105および外部インターフェイス120を制御するためのものである。前記コンピュータメモリ105は、プログラムおよびデータを格納する。また、前記外部インターフェイス120は、前記論理エミュレータ150と通信を行う。
【0008】
前記データは回路設計190を含む。ターゲット(目標)設計としても知られている回路設計190は、前記論理エミュレータ150によってエミュレートされるべき回路を示す。一実施の形態において、前記回路設計190は、回路のVHDL記述を含んでいる。また、他の実施の形態において、前記回路設計190は、回路のVerilog記述を含んでいてよい。重要なことは、前記回路設計190が任意の数のメモリ回路設計195を含んでいることである。該メモリ回路設計195は、様々な種類のものであってよい。例えば、該メモリ回路設計195は、単純なRAMメモリ設計と、多重ポート・キャッシュメモリ設計と、EEPROMと、レジスタファイルとを含んでいてよい。回路設計190に含まれることができるメモリ回路設計の種類および数は、この発明の一実施の形態に関する商業的に重要な事項である。設計者は、従来のシステムより容易に、より多くの回路をエミュレートすることができる。
【0009】
一実施の形態において、前記コンピュータシステム100は、米国カルフォルニア州、Mountain Viewに在るSun Microsystemsから供給されるワークステーションである。他の実施の形態において、前記コンピュータシステム100および論理エミュレータ150が、1つのコンピュータシステムに含まれる。
前記論理エミュレータ150は、米国特許No.08/追補に詳細に開示されている。一実施の形態において、前記論理エミュレータ150は、タイムスライシングと呼ばれる技術を使用して、回路設計190の機能をエミュレートする。このタイムスライシングによって、前記論理エミュレータ150は、多数のクロックサイクルを使用して、前記回路設計190の1つのクロックサイクル中に実行される機能をエミュレートすることができる。1つのエミュレータクロックサイクルからの出力は、新たな出力を発生するためにエミュレーション回路にフィードバックされる。該エミュレーション回路は、エミュレータクロックサイクル間に再構成され、前記論理エミュレータ150が前記回路設計190の機能をエミュレートすることを可能にする。
【0010】
前記論理エミュレータ150は、多数のプロセッサボード160を含んでいる。各プロセッサボード160は、ボードインターフェイス回路162に接続された多数の集積回路170を備えている。これらの集積回路170は、前記プロセッサボード160間で情報を交換することができ、従って、共働して前記回路設計190をエミュレートすることができる。一実施の形態において、1つの集積回路170は多数の小さなメモリ設計をエミュレートすることができ、多数の集積回路170で1つの大きなメモリ設計をエミュレートすることができる。
前記集積回路170は、次のような相互接続を有する多数の回路ブロックを含んでいる。前記集積回路170に対する入力は、ルーティングおよび制御ブロック172と、バックプレーンセレクタ174と、制御および出力回路171に接続されている。前記ルーティングおよび制御ブロック172およびバックプレーンセレクタ174は、出力セレクタ176に接続されている。該出力セレクタ176の出力は、レジスタ178、フィードバックセレクタ179、エミュレーションメモリ180および前記集積回路170の出力に接続されている。前記制御および出力回路171は、前記集積回路170の出力にも接続されている。
【0011】
前記制御および出力回路171は、前記集積回路170の入力からの制御信号を受け取る。前記制御および出力回路171は、前記集積回路170内の回路を制御するための制御信号を発生する。また、前記制御および出力回路171は、プログラムされた出力を発生するためのプログラマブル出力メモリを含んでいる。
前記バックプレーンセレクタ174は、32個の32:1セレクタを含んでいる。こうして、前記集積回路170は、(ボードインターフェイス162から)任意の順序で、32のバックプレーン入力のうちの任意のものを選択できるようになっている。
【0012】
前記ルーティングおよび制御ブロック172は、多数のセレクタ群、レジスタ群およびプログラマブル論理ブロック群を含んでいる。回路設計190のエミュレーション時において、前記ルーティングおよび制御ブロック172は、入力およびその出力端子からのフィードバックの供給を受けながら、絶えずプログラムおよび再プログラムされる。こうして、前記ルーティングおよび制御ブロック172は、エミュレーション処理の大きな部分を実行する。エミュレーション時において、前記ルーティングおよび制御ブロック172は、エミュレーションメモリ180のためのアドレスおよびデータを発生するようプログラムされる。
前記レジスタ178は、前記セレクタ176からの出力を後での使用(例えば、プログラマブルなパイプラインすなわち逐次制御)のために格納する。
【0013】
前記フィードバックセレクタ179は、前記出力セレクタ176からの直線的フィードバック、または、前記レジスタ178の出力からの直線的フィードバックを選択する。
前記エミュレーションメモリ180は、前記エミュレータ150が多くの種類のメモリ設計をエミュレートすることを可能にする。前記エミュレーションメモリ180は、前記出力セレクタ176からからの入力を受け取り、該出力セレクタ176にフィードバックされる出力を発生する。
る。
【0014】
b.エミュレーションメモリ
図2は、図1のエミュレーションメモリ180の一実施の形態を示す図である。一実施の形態において、前記エミュレーションメモリ180は、前記集積回路170上に集積される。他の実施の形態において、前記エミュレーションメモリ180は、個別の集積回路または多数の集積回路上に集積される。
前記エミュレーションメモリ180は、次のような接続を有する回路を含んでいる。前記エミュレーションデータセレクタ200およびエミュレーションアドレスセレクタは、前記エミュレーションメモリ180の入力に接続されている。前記エミュレーションデータセレクタ200の出力は、4K×32のRAM230のデータ入力(32ビットWデータ)に接続されている。前記エミュレーションアドレスセレクタ210の出力は、エミュレーションアドレスレジスタ220に接続されている。前記エミュレーションアドレスレジスタ220の出力は、前記RAM230のアドレス入力(12ビット)と書込みイネーブル入力(4ビット)に接続されている。前記RAM230は、チップセレクトライン240をさらに有する。該RAM230の出力(32ビットRデータ)は、メモリ出力セレクタ240に接続されている。該メモリ出力セレクタ240の出力は、前記エミュレーションメモリ180の出力に接続されている。
【0015】
前記エミュレーションデータセレクタ200は、32個の32:1セレクタを含んでいる。その32本の入力ラインは、前記エミュレーションメモリ180の32ビット幅の入力データバスから来ている。これらの32個の32:1セレクタによって、前記エミュレーションデータセレクタ200は、任意の入力ラインを任意のWデータ入力に接続することができる。こうして、前記32ビットのデータラインのうちの任意のものに前記RAM230用のデータを発生させることによって、当該システムにおける融通性が提供される。
【0016】
前記エミュレーションアドレスセレクタ210は、16個の35:1セレクタを含んでいる。各前記35:1セレクタは、前記エミュレーションメモリ180の32本の入力ラインと、1本のグラウンドラインと、1本のVCCラインと、エミュレーションアドレスレジスタ220からの1本の対応する出力ラインとを含む35本の入力ラインを有する。例えば、前記エミュレーションアドレスレジスタ220のためのアドレス224のビット7を出力する前記35:1セレクタは、次のような入力を有する。すなわち、前記エミュレーションメモリ180の入力バスからのビット31〜0、VCC、グラウンド、および、前記エミュレーションアドレスレジスタ220によって出力されるアドレス224のビット7である。このようにして、前記エミュレーションアドレスセレクタ210は、前記エミュレーションメモリ180の入力、前記エミュレーションアドレスレジスタ220からのフィードバック、設定値(前記VCCラインおよびグラウンドラインからの0もしくは1)、または、これらのラインの組合わせを選択する。
【0017】
前記エミュレーションアドレスレジスタ220は、前記エミュレーションアドレスセレクタ210からの出力を格納する。前記エミュレーションアドレスレジスタ220の出力は、12ビットのアドレス224と、4本の書込みイネーブルラインとを含むものである。前記アドレス224は前記RAM230における1つの32ビットエントリのアドレスを選択し、前記4本の書込みイネーブルラインは前記エントリの4バイトのうちのどのバイトに書込みを行うべきかを選択するものである。このようにして、前記アドレス224と書込みイネーブル222との組合わせを使用することによって、前記RAM230における任意のバイトに選択的に書込みを行うことができる。
【0018】
前記エミュレーションアドレスレジスタ220によって、前記エミュレーションメモリ180は、エミュレーション時における多数のタイムスライスにわたるアドレスを格納することができる。例えば、1つのタイムスライスにおいて、32ビットのデータエントリの下位16ビットのみが前記ルーティングおよび制御ブロック172によって発生される、と仮定する。また、前記データエントリのアドレスも発生される、と仮定する。前記エミュレーションアドレスレジスタ220は、第1のタイムスライス時に前記アドレスを格納することができるが、前記RAM230におけるエントリの2つの下位バイトのみをイネーブル状態にする。次のタイムスライスにおいて、前記ルーティングおよび制御ブロック172によって、上位16ビットの情報が発生される。この場合、上記と同じアドレスが使用されるが、前記RAM230におけるエントリの2つの上位バイトのみがイネーブル状態にされる。従って、同一のメモリ一に対する多重メモリアクセスのために、アドレスを発生しなおす必要がない。
【0019】
前記RAM230の出力(Rデータ)は、メモリ出力セレクタ240に接続されている。該メモリ出力セレクタ240は、32個の32:1マルチプレクサを含んでいる。これら32個の32:1マルチプレクサによって、前記RAM230からのデータラインのうちの任意のものが、前記エミュレーションメモリ180の出力の任意のデータに接続可能になる。
前記エミュレーションデータセレクタ200、エミュレーションアドレスセレクタ210、エミュレーションアドレスレジスタ220、セレクタ240および前記RAM230のチップセレクトは、すべて、前記制御および出力回路171によって制御される。
【0020】
前記RAM230は、読出しポートと書込みポートとを有する、4K×32ビットのスタティックRAMを含んでいる。該RAM230はライトスルー(write-through)メモリである(すなわち、1クロックサイクル中にある値Xが書かれた場合、該値Xは、同じクロックサイクル中に、前記RAM230の出力に現れる)。他の実施の形態において、前記RAM230の代りに、および/または、該RAM230に加えて、16K×64のEEPROMまたは1M×1のDRAMのような他の種類のメモリが使用される。さらに、前記RAM230は、前記集積回路170上に含まれている必要はない。こうして、一実施の形態において、前記RAM230は前記集積回路170である。これら多種類のメモリの場合、前記エミュレーションデータセレクタ200、エミュレーションアドレスセレクタ210、エミュレーションアドレスレジスタ220およびメモリ出力セレクタ240に対して、対応する変更がなされる。
【0021】
c.多数のメモリ設計をエミュレートする方法の一実施の形態
図3は、多数のメモリ回路設計195をエミュレートする方法の一実施の形態を示すものである。この実施の形態は、前記コンピュータシステム100およびエミュレータ150において実施されることができる。一般に、この実施の形態は、前記メモリ回路設計195を1つまたは複数のエミュレーションメモリ180にマッピングする。このマッピング処理は、メモリ回路設計195を識別し、該メモリ回路設計195のアドレススペースと前記エミュレーションメモリ180のアドレススペースとの間の有効相関関係を決定することを含むものである。
【0022】
ブロック310において、前記コンピュータシステム100は、回路設計190内におけるメモリ回路設計195を識別する。これは、ターゲット回路設計195の動作に関する記述を分析することによって実行可能である。前記コンピュータシステム100は、各前記メモリ回路設計のビット幅およびエントリ高さを識別する。こうして、各前記メモリ回路設計は、該メモリ回路設計におけるエントリ数、および、各エントリにおけるビット数によって識別される。さらに、各前記メモリ回路設計ごとのポートの数および種類が識別される。例えば、前記コンピュータシステム100は、あるメモリ回路設計を、1Kのエントリおよび32ビット幅のエントリを有するデュアルポートRAMとして識別することができる。
【0023】
次に、ステップ320において、すべてのメモリの種類が処理されたか否かが判定される。ノーである場合、ブロック323および325の処理が実行される。
ブロック323では、各メモリ回路設計の幅が、前記RAM230の最も近い書込みイネーブル境界にパディングされる。例えば、あるメモリ回路設計が4ビット幅のエントリを有するが、前記RAM230のための書込みイネーブルが8ビット境界上にある場合、前記メモリ回路設計の幅が8ビットに増加される。従って、このブロックは、前記RAM230の最小細分性を、前記メモリ回路設計のエントリの幅に一致させる。前記出力セレクタ240はメモリ値が個々のビットとしてアクセスされ得るようにするので、読出し専用メモリの場合はすべて、前記パディングは必要ではない。
【0024】
次に、ステップ325において、各前記メモリ回路設計のビットサイズが求められる。これは、前記パディングされた幅をエントリの数と乗算することによって行われる。例えば、図2のエミュレーションメモリ180の場合、1K×32のメモリ回路設計は32768ビットを有し、1K×4のメモリ回路設計は8192(1K×8−8にパディングされる幅)ビットを有する。
すべてのメモリ回路設計が処理された後、ブロック330において、該メモリ回路設計195がサイズ別に分類される。もっとも大きなメモリが、分類リストの最初にくる。
【0025】
次に、ブロック340において、前記コンピュータシステム100は、すべてのメモリ回路設計195が前記エミュレーションメモリ180にマッピングされたか否かを判定する。すべてのメモリ回路設計195がマッピングされてない場合、ブロック343およびブロック345が実行される。こうして、ブロック343およびブロック345が、もっとも大きなサイズのメモリ回路設計195から、各メモリ回路設計195ごとに実行される。
ブロック343において、特定のメモリ回路設計195のアドレススペースが、前記エミュレーションメモリ180のアドレススペースにマッピングされる。前記エミュレーションメモリ180のアドレススペースは、1つの大きなメモリスペース(メモリパレット)として扱われる。そして、各メモリ回路設計が、前記メモリパレットの対応する部分に割り当てられる。図4はブロック343を示している。
【0026】
ブロック345において、必要に応じて、複数の異なるサブスペースについて付加的なタイムスライスが割り当てられる。理想的には、すべてのメモリ回路設計195は、RAM230の一部に割り当てられる。しかし、前記メモリ回路設計が多重ポートメモリのためのものである場合、付加的なタイムスライスが必要になる。第1のタイムスライスにおいて、前記エミュレーションメモリ180は第1のポートによるアクセスをエミュレートでき、第2のタイムスライスにおいて、前記エミュレーションメモリ180は第2のポートによるアクセスをエミュレートできる。このように、一実施の形態において、前記付加的なタイムスライスが、1を超える各メモリ回路設計ごとに追加される。
【0027】
前記RAM230の幅より広いメモリ回路設計195について、さらに付加的なタイムスライスが追加されてよい。例えば、前記メモリ回路設計が64ビットの幅であり、前記RAM230が32ビットの幅である、と仮定する。さらに、前記マッピングブロック343が前記メモリ回路設計のアドレススペースを示す2つのアドレスサブスペースを作成する、と仮定する。また、前記2つのアドレスサブスペースが1つのRAM230のアドレススペースにマッピングされる、と仮定する。そして、第1のタイムスライスにおいて、前記メモリ回路設計のエントリの下位32ビットが前記RAM230に書き込まれ、第2のタイムスライスにおいて、前記メモリ回路設計のエントリの上位32ビットが前記RAM230に書き込まれる。
【0028】
付加的なタイムスライスを追加する他の理由は、複数の異なるメモリのアドレススペースが前記RAM230のアドレススペースにマッピングされ、前記RAM230に対するアクセスに衝突が生じる、場合に発生する。例えば、2つのメモリ回路設計195が前記RAM230のアドレススペースにマッピングされ、これら2つのメモリ回路設計が同一のサイクル内にアクセスされるべきことが回路設計190によって定義されている場合、付加的なタイムスライスが必要になる。
【0029】
すべてのメモリ回路設計195のアドレススペースがマッピングされた後、ブロック350において、前記エミュレータ150が前記コンピュータシステム100によってプログラムされる。これは、前記制御および出力回路171に制御プログラムをロードすることを含む。このロードの一部は、前記ルーティングおよび制御ブロック172および前記集積回路170の他の構成要素が前記メモリ回路のアドレススペースを前記エミュレーションメモリ180のアドレススペースにマッピングするための正しいアドレスおよびデータ情報を前記エミュレーションメモリ180に供給する、ことを保証する制御信号を含む。次に、エミュレーションが実行される。これは、前記回路設計190を実施するためのテストベクトルを前記エミュレータ150に供給することを含むものである。
【0030】
図4は、前記メモリ回路設計を前記エミュレーションメモリ180のアドレススペースにマッピングする方法の一実施の形態を示すものである。
ブロック410において、1つまたは複数の部分的アドレスサブスペースを発生するために、前記メモリ回路のアドレススペースが、前記RAM230の高さによって割られる。このブロック410は、前記RAM230全体に前記メモリ回路のアドレススペースを配分することによって、前記RAM230の高さより大きな高さを有するメモリ回路設計を前記エミュレーションメモリ180のアドレススペースにはめ込む、という課題を解決するものである。
【0031】
ブロック420では、必要に応じて、前記部分的アドレスサブスペースがさらに分割される。ブロック410において作成された部分的アドレスサブスペースが、アドレスサブスペースを発生するために、前記RAM230の幅によって割られる。こうして、ブロック410は、前記RAM230における多数のエントリ全体に前記メモリ回路設計のアドレススペースを配分することによって、前記RAM230の幅より大きな幅を有するメモリ回路設計を前記エミュレーションメモリ180のアドレススペースにはめ込む、という課題を解決するものである。
【0032】
ブロック430では、前記コンピュータシステム100は、前記アドレスサブスペースと前記エミュレーションアドレススペースとの間の関係を求める。これは、前記論理エミュレータにおいて、特定のサブスペースをRAM230の特定の部分に割り当てることを含むものである。
【0033】
d.メモリ設計をエミュレーションメモリにマッピングする例
図5は、1つの設計における多数のメモリが前記エミュレーションメモリ180にマッピングされる一例を示すものである。上述の如く、ソフトウエアツールは、前記エミュレーションメモリ180のアドレススペースを1つの大きなメモリパレットとして扱う。前記メモリ回路設計195は、該メモリパレット500にマッピングされる。
この例において、前記回路設計190は、8K×64ビットのメモリ510、3K×32ビットのデュアルポートメモリ520、4×256ビットのメモリ530、128×128ビットのメモリ540、および、32×32ビットのメモリ550であるメモリ回路設計195を含んでいる。これらのメモリ回路設計195は、図3のステップを使用して前記メモリパレット500にマッピングされる。
【0034】
この例の目的のために、前記メモリパレット500は、4K×32ビットの6倍のアドレススペースのみを示している。あるシステムにおいて、前記メモリパレット500は、これよりはるかに大きなメモリスペースを有する。一例として、前記メモリパレット500は、前記RAM230の物理的なアドレススペースを示す4K×32ビットの境界を有する。
【0035】
図3および図4に説明された実施の形態に続いて、前記メモリ回路設計195は、次のように前記メモリパレット500にマッピングされる。
先ず、ブロック310において、すべての前記メモリ回路設計195が識別される。次に、ブロック323およびブロック345の処理が各前記メモリ回路設計195ごとに実行される。前記RAM230の書込みイネーブル境界がバイト境界上にあるこの例において、ブロック323は、1K×4ビットのメモリ530を1K×8ビットのメモリ530にパッディングする。このため、次のメモリは、次の表1に示すようなサイズを有する。
【0036】
【表1】
Figure 0003995751
次の表2は、前記ブロック330の実行後におけるメモリ回路設計195の分類リストを示すものである。
【0037】
【表2】
Figure 0003995751
【0038】
次に、各前記メモリ回路設計195が、前記メモリパレット500にマッピングされる。ブロック410において、前記8K×64ビットのメモリ510のアドレススペースは、各々が4K×64ビットである2つの部分的サブスペースに分けられる。そして、ブロック420において、前記2つの部分的サブスペースは、さらに、各々が4K×32ビットである完成サブスペースに分けられる。ブロック430において、これら4つの完成サブスペースは、前記メモリパレット500の第1の利用可能アドレススペース(最初の4つのエミュレーションメモリ180のアドレススペース)にマッピングされる。ブロック410およびブロック420の処理は、前記3K×32ビットのメモリ520について実行され、1つの3K×24ビットのアドレスサブスペースを発生する。このアドレスサブスペースは、ブロック430において、前記メモリパレット500の次の利用可能な部分にマッピングされる。次に、128×128ビットのメモリ540が、ブロック410およびブロック420の処理を受ける。ブロック410は、128×128ビットの部分的アドレスサブスペースを形成する。ブロック420は、128×32ビットの完成アドレスサブスペースを形成する。そして、前記コンピュータシステム100は、これらのサブスペースを前記メモリパレット500における次の利用可能なスペースにマッピングする。その後、ブロック410およびブロック420が、1K×4ビットのメモリ530について実行され、1K×8のアドレスサブスペースを形成する。第5番目のエミュレーションメモリ180のアドレススペースには未だ余裕があるので、前記1K×8のアドレスサブスペースが1K×24のアドレスサブスペースの次のスペースにマッピングされる。次に、32×32ビットのメモリ550が、ブロック410およびブロック420の処理を受ける。これは、前記メモリパレット500の次の利用可能なエリアにマッピングされる。
【0039】
表3はブロック345の結果を示すものである。前記マッピングが1つのメモリ回路設計195について行われた後、ブロック345の処理が実行される。表3は、タイムスライス割り当ての結果を示す。
このタイムスライス割り当てにおいて、多数の衝突が付加的なタイムスライスを必要とする。1つのメモリ回路設計の多重ポート(例えば、34×24のデュアルポートメモリ520)が存在する場合に、このような衝突が発生する。さらに、前記回路設計190(例えば、3K×24のメモリ520、1K×4のメモリ530および32×32のメモリ550)の同一クロックサイクルにおいて、2つまたは3つ以上メモリ回路設計195が書込まれ、または、読み出されるべき場合に、このような衝突が発生する。例えば、前記回路設計190のすべてのクロックサイクルにおいて、すべてのメモリ回路設計195が書込まれ、または、読み出されるべき場合を仮定する。多くの回路設計190において、実際はそうではなく、衝突が発生しないので、多数のタイムスライスの分解は必要とならない。
【0040】
【表3】
Figure 0003995751
【0041】
この発明の他の実施の形態は、上述した基本的なマッピングアルゴリズムに対する多くの改善点を有する。例えば、一実施の形態において、付加的なタイムスライスを追加する必要性を回避するために、前記回路設計190の同一クロックサイクルでアクセスされるメモリ回路設計195は、複数の異なるRAM230にマッピングされる。また、他の実施の形態において、32ビットより広いメモリ回路設計195から形成されるサブスペース組は、前記複数のRAM230全体にマッピングされる。これは、前記ルーティングおよび論理ブロック172における潜在的に重複した処理を犠牲にして必要とされるタイムスライスの数を減少させる。
【0042】
【発明の効果】
以上のように、この発明は、効率的に且つ確実に、多数のメモリ回路設計をエミュレートできる、という優れた効果を奏するものである。
【図面の簡単な説明】
【図1】エミュレーションメモリ回路を有するエミュレーションシステムを示す図。
【図2】前記エミュレーションシステムに使用されるエミュレーションメモリ回路を示す図。
【図3】メモリ回路設計を含む回路設計エミュレートする方法の一実施の形態を示す図。
【図4】メモリ回路設計を前記エミュレーションメモリにマッピングする方法の一実施の形態を示す図。
【図5】メモリ回路設計をエミュレーションメモリアドレススペースにマッピングする一例を示す図。
【符号の説明】
100 コンピュータシステム
105 コンピュータメモリ
110 プロセッサ
150 論理エミュレータ
170 集積回路
180 エミュレーションメモリ

Claims (18)

  1. 1又は複数のターゲットメモリを含むターゲット回路設計の機能をエミュレートするための論理エミュレータのためのエミュレーションメモリであって、
    アドレスポートおよびデータポートを有するメモリ回路と、
    前記アドレスポートに接続されたアドレス出力ポートを有するプログラム可能なアドレス回路であって、エミュレーション時において前記ターゲット回路設計における1クロックサイクルに相当する複数のタイムスライスにわたるアドレスを格納するための格納手段を含むものと、
    を具備し、前記格納手段には、エミュレーション時において、前記ターゲット回路設計の1クロックサイクルにおいてアクセスされるべき前記1又は複数のターゲットメモリの各アドレスを前記メモリ回路のアドレススペース内のメモリアドレスにそれぞれマッピングしたものが前記論理エミュレータから入力されて前記複数のタイムスライスに対応づけてそれぞれ格納され、前記アドレス回路は、該格納手段に格納された前記メモリ回路の前記メモリアドレスを前記複数のタイムスライスに対応して前記アドレス出力ポートから出力することで前記メモリ回路にアクセスすることを特徴とするエミュレーションメモリ。
  2. 前記メモリ回路が4096×32ビットのランダムアクセスメモリを有し、前記アドレスポートが12ビットの入力ポートであり、前記データポートが、32ビットの幅を有し、書込みポートと読出しポートとを有し、前記メモリ回路が4つの書込みイネーブルポートを有する請求項1に記載のエミュレーションメモリ。
  3. 前記メモリ回路が第1の半導体基板上に集積されており、前記アドレス回路が第2の半導体基板上に集積されている請求項1に記載のエミュレーションメモリ。
  4. 前記論理エミュレータは前記マッピングされた前記メモリ回路の前記メモリアドレスを発生するプログラマブルなルーティング及び制御回路を含んでおり、該発生された前記メモリ回路の前記メモリアドレスが前記格納手段に入力されて格納される請求項1に記載のエミュレーションメモリ。
  5. 前記アドレス回路が複数のエミュレーションアドレスセレクタ回路を含み、各前記エミュレーションアドレスセレクタ回路が、1つのエミュレーションメモリアドレスの1つのアドレスビットを発生するものである請求項1に記載のエミュレーションメモリ。
  6. 前記アドレス回路の前記格納手段は、前記アドレスセレクタ回路に接続されていて前記1つのエミュレーションメモリアドレスを格納するアドレスレジスタを含み、前記アドレスレジスタの出力が前記アドレス出力ポートに対応している請求項5に記載のエミュレーションメモリ。
  7. 前記ターゲットメモリ、第1のタイプの第1のターゲットメモリと、第2のタイプの第2のターゲットメモリとを含んでおり、該第1のターゲットメモリおよび第2のターゲットメモリ実際の動作時において、前記ターゲット回路設計の1クロックサイクルにおいてそれぞれアドレスを受け取ってアクセスされる性格のものであり、
    前記アドレス回路エミュレーション時において、前記エミュレーションメモリの第1のタイムスライスにおいて第1のターゲットメモリアドレスに対応する第1のエミュレーションアドレスを発生し、前記エミュレーションメモリの第2のタイムスライスにおいて第2のターゲットメモリアドレスに対応する第2のエミュレーションアドレスを発生するものであり、これにより、第1のターゲットメモリおよび第2のターゲットメモリのエミュレーションを行うことを特徴とする請求項1に記載のエミュレーションメモリ。
  8. 前記メモリ回路は、各々がNワードのデータを格納する第1のメモリ回路と第2のメモリ回路とを含み
    前記ターゲット回路設計が、Mワードのデータを格納するための第1のターゲットメモリを含んでおり、前記Mが前記Nより大きな値であり、
    前記格納手段には、エミュレーション時において、前記ターゲット回路設計の1クロッ クサイクルにおいてアクセスされるべき前記第1のターゲットメモリの前記Mワードのデータのアドレスを、前記Mワードのデータのうちの前記Nワードのデータに対応する前記第1のメモリ回路のための第1エミュレーションアドレスと、前記MワードのデータのうちのM−Nワードのデータに対応する前記第2のメモリ回路のための第2エミュレーションアドレスとに分割してマッピングしたものが前記論理エミュレータから入力されてそれぞれ異なるタイムスライスに対応づけてそれぞれ格納される、
    ことを特徴とする請求項1に記載のエミュレーションメモリ。
  9. 前記Nが4096であって、前記Mが6144であり、前記第1エミュレーションアドレスが、前記Mワードのデータのワード0からワード4095に対応し、前記第2エミュレーションアドレスが、前記Mワードのデータのワード4096からワード6143に対応するものである請求項8に記載のエミュレーションメモリ。
  10. 前記メモリ回路は、Nビット幅のデータワードを格納するための第1のメモリ回路を含み
    前記ターゲット回路設計がMビット幅のデータワードを格納するための第1のターゲットメモリを含み、前記Mが前記Nより大きな値であり、
    前記格納手段には、エミュレーション時において、前記ターゲット回路設計の1クロックサイクルにおいてアクセスされるべき前記第1のターゲットメモリの前記Mワードのデータのアドレスを、前記Mワードのデータのうちの前記Nワードのデータに対応する前記第1のメモリ回路のための第1のエミュレーションアドレスと、前記MワードのデータのうちのM−Nワードのデータに対応する前記第1のメモリ回路のための第2のエミュレーションアドレスとに分割してマッピングしたものが前記論理エミュレータから入力されてそれぞれ異なるタイムスライスに対応づけてそれぞれ格納される、
    ことを特徴とする請求項1に記載のエミュレーションメモリ。
  11. 前記Nが32であり、前記Mが64である請求項10に記載のエミュレーションメモリ。
  12. メモリ回路を備えた論理エミュレータを使用して、1又は複数のターゲットメモリを含むターゲット回路設計の機能をエミュレートする方法であって、
    コンピュータに、前記ターゲット回路設計の1クロックサイクルにおいてアクセスされるべき前記1又は複数のターゲットメモリの各アドレスを、複数のタイムスライスに対応づけて、前記メモリ回路のアドレススペース内のメモリアドレスにそれぞれマッピングする処理を行わせるステップと、
    エミュレーション時において、前記マッピングされた前記メモリ回路の前記メモリアドレスを使用して、前記論理エミュレータにより、該メモリアドレスを前記複数のタイムスライスに対応づけて実時間で発生し、前記メモリ回路のアドレスに入力するステップと、
    前記メモリ回路への前記メモリアドレスの入力に応じて、前記複数のタイムスライスにおいて、前記論理エミュレータにより、前記ターゲット回路設計の1クロックサイクルにおける前記1又は複数のターゲットメモリの機能をエミュレートするステップと
    を具備する方法。
  13. 前記マッピングするステップの前に、前記ターゲット回路設計を前記1又は複数のターゲットメモリのサイズに従って分類するステップをさらに含む請求項12に記載の方法。
  14. 前記メモリ回路が複数のエミュレーションメモリを備え、各前記エミュレーションメモリのサイズがNビットであり、1つの前記ターゲットメモリのサイズがMビットであり、前記Mが前記Nより大きな値であり、前記マッピングするステップが、
    1つの前記ターゲットメモリのN個の下位ビットを第1のエミュレーションメモリにマッピングすることと、
    1つの前記ターゲットメモリのM−N個の上位ビットを第2のエミュレーションメモリにマッピングすることと
    前記コンピュータに実行させることからなる請求項12に記載の方法。
  15. 前記Nが131072ビットである請求項14に記載の方法。
  16. 前記メモリ回路が、32ビットワードを有するエミュレーションメモリを含み、1つの前記ターゲットメモリが64ビット幅のワードを有し、前記マッピングするステップが、
    前記64ビット幅のワードのビット31〜0を、前記エミュレーションメモリにおける第1の対のワードの第1のワードにマッピングすることと、
    前記64ビット幅のワードのビット63〜32を、前記第1の対のワードの第2のワードにマッピングすることと
    前記コンピュータに実行させることからなる請求項12に記載の方法。
  17. 前記マッピングするステップが、所定のサイズより大きなサイズを有する各前記ターゲットメモリを、該所定のサイズより小さなサイズに分割することを前記コンピュータに実行させるステップをみ、分割されたサイズに従い前記マッピングを行うことを特徴とする請求項12に記載の方法。
  18. 前記所定のサイズが、前記メモリ回路の前記アドレスのバイト数に等しいものである請求項17に記載の方法。
JP05975397A 1996-02-06 1997-02-06 メモリをエミュレートするためのシステム及び方法 Expired - Fee Related JP3995751B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/597,197 US5819065A (en) 1995-06-28 1996-02-06 System and method for emulating memory
US08/597,197 1996-02-06

Publications (2)

Publication Number Publication Date
JPH1055288A JPH1055288A (ja) 1998-02-24
JP3995751B2 true JP3995751B2 (ja) 2007-10-24

Family

ID=24390505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05975397A Expired - Fee Related JP3995751B2 (ja) 1996-02-06 1997-02-06 メモリをエミュレートするためのシステム及び方法

Country Status (4)

Country Link
US (1) US5819065A (ja)
EP (1) EP0789311B1 (ja)
JP (1) JP3995751B2 (ja)
DE (1) DE69737757T2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031842A (en) * 1996-09-11 2000-02-29 Mcdata Corporation Low latency shared memory switch architecture
US6141636A (en) * 1997-03-31 2000-10-31 Quickturn Design Systems, Inc. Logic analysis subsystem in a time-sliced emulator
US6173419B1 (en) * 1998-05-14 2001-01-09 Advanced Technology Materials, Inc. Field programmable gate array (FPGA) emulator for debugging software
US6279146B1 (en) 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
JP3943277B2 (ja) * 1999-03-23 2007-07-11 セイコーエプソン株式会社 マイクロコンピュータ及び電子機器
US6618698B1 (en) 1999-08-12 2003-09-09 Quickturn Design Systems, Inc. Clustered processors in an emulation engine
US6611796B1 (en) * 1999-10-20 2003-08-26 Texas Instruments Incorporated Method and apparatus for combining memory blocks for in circuit emulation
US6230114B1 (en) 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US6477624B1 (en) * 1999-11-08 2002-11-05 Ondotek, Inc. Data image management via emulation of non-volatile storage device
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
TWI220192B (en) * 2001-11-06 2004-08-11 Mediatek Inc Memory access method and apparatus in ICE system
US20030188278A1 (en) * 2002-03-26 2003-10-02 Carrie Susan Elizabeth Method and apparatus for accelerating digital logic simulations
US6871328B1 (en) * 2002-11-14 2005-03-22 Altera Corporation Method for mapping logic design memory into physical memory device of a programmable logic device
US7440884B2 (en) * 2003-01-23 2008-10-21 Quickturn Design Systems, Inc. Memory rewind and reconstruction for hardware emulator
US8145469B2 (en) 2005-04-06 2012-03-27 Quickturn Design Systems, Inc. System and method for providing compact mapping between dissimilar memory systems
US7577558B2 (en) * 2005-04-06 2009-08-18 Quickturn Design Systems, Inc. System and method for providing compact mapping between dissimilar memory systems
EP1720100B1 (de) * 2005-05-02 2007-07-18 Accemic GmbH & Co. KG Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8169233B2 (en) 2009-06-09 2012-05-01 Google Inc. Programming of DIMM termination resistance values
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8438328B2 (en) * 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US7386656B2 (en) * 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
DE112006004263B4 (de) * 2005-09-02 2015-05-13 Google, Inc. Speicherbaustein
US7493519B2 (en) * 2005-10-24 2009-02-17 Lsi Corporation RRAM memory error emulation
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7555424B2 (en) 2006-03-16 2009-06-30 Quickturn Design Systems, Inc. Method and apparatus for rewinding emulated memory circuits
JP5043500B2 (ja) * 2006-05-12 2012-10-10 三星電子株式会社 状態回復を有する回路エミュレーション
KR101282963B1 (ko) * 2006-05-12 2013-07-08 삼성전자주식회사 에뮬레이션 시스템 및 그 방법
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US20100161308A1 (en) * 2008-12-22 2010-06-24 Unity Semiconductor Corporation Multi-structured memory
US8595683B1 (en) 2012-04-12 2013-11-26 Cadence Design Systems, Inc. Generating user clocks for a prototyping environment
CN115563909A (zh) * 2021-07-02 2023-01-03 长鑫存储技术有限公司 仿真方法、装置、设备及存储介质
US11487925B1 (en) 2021-07-02 2022-11-01 Changxin Memory Technologies, Inc. Simulation method, apparatus, and device, and storage medium

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3955180A (en) * 1974-01-02 1976-05-04 Honeywell Information Systems Inc. Table driven emulation system
US4277827A (en) * 1979-01-02 1981-07-07 Texas Instruments Incorporated Microprocessor based system for the development and emulation of programmable calculator control read only memory software
US4281392A (en) * 1979-05-01 1981-07-28 Allen-Bradley Company Memory circuit for programmable machines
US4306286A (en) * 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4357678A (en) * 1979-12-26 1982-11-02 International Business Machines Corporation Programmable sequential logic array mechanism
US4400794A (en) * 1981-11-17 1983-08-23 Burroughs Corporation Memory mapping unit
US4656580A (en) * 1982-06-11 1987-04-07 International Business Machines Corporation Logic simulation machine
US4527249A (en) * 1982-10-22 1985-07-02 Control Data Corporation Simulator system for logic design validation
US4583169A (en) * 1983-04-29 1986-04-15 The Boeing Company Method for emulating a Boolean network system
US4587625A (en) * 1983-07-05 1986-05-06 Motorola Inc. Processor for simulating digital structures
WO1985002033A1 (en) * 1983-11-03 1985-05-09 Prime Computer, Inc. Digital system simulation method and apparatus
US4642759A (en) * 1984-04-02 1987-02-10 Targa Electronics Systems Inc. Bubble memory disk emulation system
US4782461A (en) * 1984-06-21 1988-11-01 Step Engineering Logical grouping of facilities within a computer development system
US4697241A (en) * 1985-03-01 1987-09-29 Simulog, Inc. Hardware logic simulator
US4819150A (en) * 1985-04-05 1989-04-04 Unisys Corporation Array for simulating computer functions for large computer systems
US4958315A (en) * 1985-07-02 1990-09-18 The United States Of America As Represented By The Secretary Of The Navy Solid state electronic emulator of a multiple track motor driven rotating magnetic memory
US4769817A (en) * 1986-01-31 1988-09-06 Zycad Corporation Concurrent fault simulation for logic designs
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
US4862347A (en) * 1986-04-22 1989-08-29 International Business Machine Corporation System for simulating memory arrays in a logic simulation machine
US5088033A (en) * 1986-04-28 1992-02-11 Xerox Corporation Data processing system emulation in a window with a coprocessor and I/O emulation
US5126966A (en) * 1986-06-25 1992-06-30 Ikos Systems, Inc. High speed logic simulation system with stimulus engine using independent event channels selectively driven by independent stimulus programs
US4787061A (en) * 1986-06-25 1988-11-22 Ikos Systems, Inc. Dual delay mode pipelined logic simulator
US4787062A (en) * 1986-06-26 1988-11-22 Ikos Systems, Inc. Glitch detection by forcing the output of a simulated logic device to an undefined state
JPS63223869A (ja) * 1987-03-13 1988-09-19 Hitachi Ltd プログラム生成方法
US5329471A (en) * 1987-06-02 1994-07-12 Texas Instruments Incorporated Emulation devices, systems and methods utilizing state machines
US5025364A (en) * 1987-06-29 1991-06-18 Hewlett-Packard Company Microprocessor emulation system with memory mapping using variable definition and addressing of memory space
JP2589713B2 (ja) * 1987-11-20 1997-03-12 株式会社日立製作所 データプロセッサ及びデータ処理システム
US4868822A (en) * 1988-02-19 1989-09-19 John Fluke Mfg. Co., Inc. Memory emulation method and system for testing and troubleshooting microprocessor-based electronic systems
US5377123A (en) * 1992-06-08 1994-12-27 Hyman; Edward Programmable logic device
US4914612A (en) * 1988-03-31 1990-04-03 International Business Machines Corporation Massively distributed simulation engine
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
EP1462964A3 (en) * 1988-10-05 2006-06-07 Quickturn Design Systems, Inc. Method for stimulating functional logic circuit with logical stimulus
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US4984213A (en) * 1989-02-21 1991-01-08 Compaq Computer Corporation Memory block address determination circuit
US5031129A (en) * 1989-05-12 1991-07-09 Alcatel Na Network Systems Corp. Parallel pseudo-random generator for emulating a serial pseudo-random generator and method for carrying out same
US5068812A (en) * 1989-07-18 1991-11-26 Vlsi Technology, Inc. Event-controlled LCC stimulation
US5084824A (en) * 1990-03-29 1992-01-28 National Semiconductor Corporation Simulation model generation from a physical data base of a combinatorial circuit
US5259006A (en) * 1990-04-18 1993-11-02 Quickturn Systems, Incorporated Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like
US5345580A (en) * 1990-11-29 1994-09-06 Kabushiki Kaisha Toshiba Microprocessor device and emulator device thereof
FR2670299B1 (fr) * 1990-12-07 1993-01-22 Thomson Composants Militaires Circuit integre avec controleur de test peripherique.
US5114353A (en) * 1991-03-01 1992-05-19 Quickturn Systems, Incorporated Multiple connector arrangement for printed circuit board interconnection
US5321828A (en) * 1991-06-07 1994-06-14 Step Engineering High speed microcomputer in-circuit emulator
US5291584A (en) * 1991-07-23 1994-03-01 Nexcom Technology, Inc. Methods and apparatus for hard disk emulation
US5325365A (en) * 1991-10-04 1994-06-28 John Fluke Mfg. Co., Inc. In a memory emulation test apparatus, a method of and system for fast functional testing of memories in microprocessor-based units
JP2941135B2 (ja) * 1992-01-24 1999-08-25 富士通株式会社 疑似lsi装置及びそれを用いたデバッグ装置
US5475830A (en) * 1992-01-31 1995-12-12 Quickturn Design Systems, Inc. Structure and method for providing a reconfigurable emulation circuit without hold time violations
US5475624A (en) * 1992-04-30 1995-12-12 Schlumberger Technologies, Inc. Test generation by environment emulation
JP3620860B2 (ja) * 1992-06-05 2005-02-16 株式会社メガチップス シミュレーション装置
US5352123A (en) * 1992-06-08 1994-10-04 Quickturn Systems, Incorporated Switching midplane and interconnection system for interconnecting large numbers of signals
US5331571A (en) * 1992-07-22 1994-07-19 Nec Electronics, Inc. Testing and emulation of integrated circuits
US5572710A (en) * 1992-09-11 1996-11-05 Kabushiki Kaisha Toshiba High speed logic simulation system using time division emulation suitable for large scale logic circuits
US5425036A (en) * 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
US5452239A (en) * 1993-01-29 1995-09-19 Quickturn Design Systems, Inc. Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system
US5515525A (en) * 1993-09-28 1996-05-07 Bull Hn Information Systems Inc. Emulating the memory functions of a first system on a second system
US5640542A (en) * 1993-10-29 1997-06-17 Intel Corporation On-chip in-circuit-emulator memory mapping and breakpoint register modules
US5473765A (en) * 1994-01-24 1995-12-05 3Com Corporation Apparatus for using flash memory as a floppy disk emulator in a computer system
US5448522A (en) * 1994-03-24 1995-09-05 Quickturn Design Systems, Inc. Multi-port memory emulation using tag registers
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation

Also Published As

Publication number Publication date
US5819065A (en) 1998-10-06
JPH1055288A (ja) 1998-02-24
DE69737757T2 (de) 2008-01-31
EP0789311A2 (en) 1997-08-13
EP0789311A3 (en) 2001-03-28
DE69737757D1 (de) 2007-07-12
EP0789311B1 (en) 2007-05-30

Similar Documents

Publication Publication Date Title
JP3995751B2 (ja) メモリをエミュレートするためのシステム及び方法
JP2989518B2 (ja) 多重プロセッサ・エミュレーション・システム
KR100458371B1 (ko) 프로그램가능한 논리 셀 어레이의 구성 방법 및 구성 장치
US6035106A (en) Method and system for maintaining hierarchy throughout the integrated circuit design process
US6035117A (en) Tightly coupled emulation processors
US6629296B1 (en) Functional verification of integrated circuit designs
US6691287B2 (en) Functional verification system
CA1246743A (en) Array for simulating computer functions for large computer systems
US5574692A (en) Memory testing apparatus for microelectronic integrated circuit
JPH0680511B2 (ja) シミユレーシヨン・エンジン
US8706469B2 (en) Method and apparatus for increasing the efficiency of an emulation engine
JP2009527858A (ja) 可変入力プリミティブを有するハードウェアエミュレータ
JP3934434B2 (ja) 回路の試験装置
US6629297B2 (en) Tracing the change of state of a signal in a functional verification system
US20010025238A1 (en) Emulation system and method
US6470480B2 (en) Tracing different states reached by a signal in a functional verification system
US6367066B1 (en) System for synthesizing a circuit by re-writing signed variables into unsigned variables and sharing resources for identical operations having different timing
US6144930A (en) Method for providing a memory model of a memory device for use in simulation
US6480988B2 (en) Functional verification of both cycle-based and non-cycle based designs
US7043417B1 (en) High speed software driven emulator comprised of a plurality of emulation processors with improved multiplexed data memory
JPH0462648A (ja) 記憶装置
US7089538B1 (en) High speed software driven emulator comprised of a plurality of emulation processors with a method to allow memory read/writes without interrupting the emulation
JP3516834B2 (ja) 半導体集積回路
US20020120907A1 (en) Run-time controller in a functional verification system
JP2824853B2 (ja) パターンデータ書込み方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060425

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060725

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070801

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130810

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees