JP3995751B2 - メモリをエミュレートするためのシステム及び方法 - Google Patents
メモリをエミュレートするためのシステム及び方法 Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 282
- 238000000034 method Methods 0.000 title claims description 21
- 238000013461 design Methods 0.000 claims description 139
- 238000013507 mapping Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 239000004065 semiconductor Substances 0.000 claims 2
- 239000000758 substrate Substances 0.000 claims 2
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000013479 data entry Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design 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
【発明の属する技術分野】
この発明は、回路エミュレーションシステムの分野に関し、特に、エミュレーションシステム内のメモリ回路設計をエミュレートするためのシステムに関するものである。
【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】
次の表2は、前記ブロック330の実行後におけるメモリ回路設計195の分類リストを示すものである。
【0037】
【表2】
【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】
【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又は複数のターゲットメモリの各アドレスを前記メモリ回路のアドレススペース内のメモリアドレスにそれぞれマッピングしたものが前記論理エミュレータから入力されて前記複数のタイムスライスに対応づけてそれぞれ格納され、前記アドレス回路は、該格納手段に格納された前記メモリ回路の前記メモリアドレスを前記複数のタイムスライスに対応して前記アドレス出力ポートから出力することで前記メモリ回路にアクセスすることを特徴とするエミュレーションメモリ。 - 前記メモリ回路が4096×32ビットのランダムアクセスメモリを有し、前記アドレスポートが12ビットの入力ポートであり、前記データポートが、32ビットの幅を有し、書込みポートと読出しポートとを有し、前記メモリ回路が4つの書込みイネーブルポートを有する請求項1に記載のエミュレーションメモリ。
- 前記メモリ回路が第1の半導体基板上に集積されており、前記アドレス回路が第2の半導体基板上に集積されている請求項1に記載のエミュレーションメモリ。
- 前記論理エミュレータは前記マッピングされた前記メモリ回路の前記メモリアドレスを発生するプログラマブルなルーティング及び制御回路を含んでおり、該発生された前記メモリ回路の前記メモリアドレスが前記格納手段に入力されて格納される請求項1に記載のエミュレーションメモリ。
- 前記アドレス回路が複数のエミュレーションアドレスセレクタ回路を含み、各前記エミュレーションアドレスセレクタ回路が、1つのエミュレーションメモリアドレスの1つのアドレスビットを発生するものである請求項1に記載のエミュレーションメモリ。
- 前記アドレス回路の前記格納手段は、前記アドレスセレクタ回路に接続されていて前記1つのエミュレーションメモリアドレスを格納するアドレスレジスタを含み、前記アドレスレジスタの出力が前記アドレス出力ポートに対応している請求項5に記載のエミュレーションメモリ。
- 前記ターゲットメモリは、第1のタイプの第1のターゲットメモリと、第2のタイプの第2のターゲットメモリとを含んでおり、該第1のターゲットメモリおよび第2のターゲットメモリは、実際の動作時において、前記ターゲット回路設計の1クロックサイクルにおいてそれぞれアドレスを受け取ってアクセスされる性格のものであり、
前記アドレス回路は、エミュレーション時において、前記エミュレーションメモリの第1のタイムスライスにおいて第1のターゲットメモリアドレスに対応する第1のエミュレーションアドレスを発生し、前記エミュレーションメモリの第2のタイムスライスにおいて第2のターゲットメモリアドレスに対応する第2のエミュレーションアドレスを発生するものであり、これにより、第1のターゲットメモリおよび第2のターゲットメモリのエミュレーションを行うことを特徴とする請求項1に記載のエミュレーションメモリ。 - 前記メモリ回路は、各々がNワードのデータを格納する第1のメモリ回路と第2のメモリ回路とを含み、
前記ターゲット回路設計が、Mワードのデータを格納するための第1のターゲットメモリを含んでおり、前記Mが前記Nより大きな値であり、
前記格納手段には、エミュレーション時において、前記ターゲット回路設計の1クロッ クサイクルにおいてアクセスされるべき前記第1のターゲットメモリの前記Mワードのデータのアドレスを、前記Mワードのデータのうちの前記Nワードのデータに対応する前記第1のメモリ回路のための第1のエミュレーションアドレスと、前記MワードのデータのうちのM−Nワードのデータに対応する前記第2のメモリ回路のための第2のエミュレーションアドレスとに分割してマッピングしたものが前記論理エミュレータから入力されてそれぞれ異なるタイムスライスに対応づけてそれぞれ格納される、
ことを特徴とする請求項1に記載のエミュレーションメモリ。 - 前記Nが4096であって、前記Mが6144であり、前記第1のエミュレーションアドレスが、前記Mワードのデータのワード0からワード4095に対応し、前記第2のエミュレーションアドレスが、前記Mワードのデータのワード4096からワード6143に対応するものである請求項8に記載のエミュレーションメモリ。
- 前記メモリ回路は、Nビット幅のデータワードを格納するための第1のメモリ回路を含み、
前記ターゲット回路設計がMビット幅のデータワードを格納するための第1のターゲットメモリを含み、前記Mが前記Nより大きな値であり、
前記格納手段には、エミュレーション時において、前記ターゲット回路設計の1クロックサイクルにおいてアクセスされるべき前記第1のターゲットメモリの前記Mワードのデータのアドレスを、前記Mワードのデータのうちの前記Nワードのデータに対応する前記第1のメモリ回路のための第1のエミュレーションアドレスと、前記MワードのデータのうちのM−Nワードのデータに対応する前記第1のメモリ回路のための第2のエミュレーションアドレスとに分割してマッピングしたものが前記論理エミュレータから入力されてそれぞれ異なるタイムスライスに対応づけてそれぞれ格納される、
ことを特徴とする請求項1に記載のエミュレーションメモリ。 - 前記Nが32であり、前記Mが64である請求項10に記載のエミュレーションメモリ。
- メモリ回路を備えた論理エミュレータを使用して、1又は複数のターゲットメモリを含むターゲット回路設計の機能をエミュレートする方法であって、
コンピュータに、前記ターゲット回路設計の1クロックサイクルにおいてアクセスされるべき前記1又は複数のターゲットメモリの各アドレスを、複数のタイムスライスに対応づけて、前記メモリ回路のアドレススペース内のメモリアドレスにそれぞれマッピングする処理を行わせるステップと、
エミュレーション時において、前記マッピングされた前記メモリ回路の前記メモリアドレスを使用して、前記論理エミュレータにより、該メモリアドレスを前記複数のタイムスライスに対応づけて実時間で発生し、前記メモリ回路のアドレスに入力するステップと、
前記メモリ回路への前記メモリアドレスの入力に応じて、前記複数のタイムスライスにおいて、前記論理エミュレータにより、前記ターゲット回路設計の1クロックサイクルにおける前記1又は複数のターゲットメモリの機能をエミュレートするステップと
を具備する方法。 - 前記マッピングするステップの前に、前記ターゲット回路設計を前記1又は複数のターゲットメモリのサイズに従って分類するステップをさらに含む請求項12に記載の方法。
- 前記メモリ回路が複数のエミュレーションメモリを備え、各前記エミュレーションメモリのサイズがNビットであり、1つの前記ターゲットメモリのサイズがMビットであり、前記Mが前記Nより大きな値であり、前記マッピングするステップが、
1つの前記ターゲットメモリのN個の下位ビットを第1のエミュレーションメモリにマッピングすることと、
1つの前記ターゲットメモリのM−N個の上位ビットを第2のエミュレーションメモリにマッピングすることと
を前記コンピュータに実行させることからなる請求項12に記載の方法。 - 前記Nが131072ビットである請求項14に記載の方法。
- 前記メモリ回路が、32ビットワードを有するエミュレーションメモリを含み、1つの前記ターゲットメモリが64ビット幅のワードを有し、前記マッピングするステップが、
前記64ビット幅のワードのビット31〜0を、前記エミュレーションメモリにおける第1の対のワードの第1のワードにマッピングすることと、
前記64ビット幅のワードのビット63〜32を、前記第1の対のワードの第2のワードにマッピングすることと
を前記コンピュータに実行させることからなる請求項12に記載の方法。 - 前記マッピングするステップが、所定のサイズより大きなサイズを有する各前記ターゲットメモリを、該所定のサイズより小さなサイズに分割することを前記コンピュータに実行させるステップを含み、分割されたサイズに従い前記マッピングを行うことを特徴とする請求項12に記載の方法。
- 前記所定のサイズが、前記メモリ回路の前記アドレスのバイト数に等しいものである請求項17に記載の方法。
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)
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)
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 |
-
1996
- 1996-02-06 US US08/597,197 patent/US5819065A/en not_active Expired - Lifetime
-
1997
- 1997-02-05 DE DE69737757T patent/DE69737757T2/de not_active Expired - Lifetime
- 1997-02-05 EP EP97101802A patent/EP0789311B1/en not_active Expired - Lifetime
- 1997-02-06 JP JP05975397A patent/JP3995751B2/ja not_active Expired - Fee Related
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 |