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

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

Info

Publication number
JPH1055288A
JPH1055288A JP9059753A JP5975397A JPH1055288A JP H1055288 A JPH1055288 A JP H1055288A JP 9059753 A JP9059753 A JP 9059753A JP 5975397 A JP5975397 A JP 5975397A JP H1055288 A JPH1055288 A JP H1055288A
Authority
JP
Japan
Prior art keywords
memory
emulation
address
circuit
design
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9059753A
Other languages
English (en)
Other versions
JP3995751B2 (ja
Inventor
John E Chilton
チルトン ジョン
Tony R Sarno
サルノ トニー
Ingo Schaefer
シェーファー インゴ
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

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)

Abstract

(57)【要約】 (修正有) 【課題】 効率的に且つ確実に、多数のメモリ設計をエ
ミュレートする。 【解決手段】 このシステムは、エミュレーションメモ
リを備えている。前記メモリ設計は、プログラマブルな
アドレス発生ブロックを介して、前記エミュレーション
メモリにマッピングされる。ある特定のタイムスライス
において、前記プログラマブルなアドレス発生ブロック
は、メモリ設計アドレスの全部または一部を1つのエミ
ュレーションメモリのアドレスにマッピングするアドレ
スを発生する。前記プログラマブルなアドレス発生ブロ
ックによって、多数のメモリ設計が1つのエミュレーシ
ョンメモリにマッピング可能になり、また、1つのメモ
リ設計が多数のエミュレーションメモリにマッピング可
能になる。このようにして、多数のタイムスライスにわ
たって、前記システムは、多くの異なる種類のメモリを
エミュレートすることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、回路エミュレー
ションシステムの分野に関し、特に、エミュレーション
システム内のメモリ回路設計をエミュレートするための
システムに関するものである。
【0002】
【従来の技術】電子回路設計の速度および複雑さが高ま
るのに伴い、様々な開発段階における回路設計のテスト
がますます重大になっている。論理エミュレータは、複
雑な回路設計の開発が進行するのに伴って、該回路設計
をテストする。論理エミュレータは、回路設計の機能を
エミュレートする、ソフトウエアによって構成可能なハ
ードウエアを含むことができる。回路設計は、該回路設
計の機能および作用を記述するデータセットによって詳
述される。
【0003】メモリ回路設計は、エミュレートされる必
要がある回路設計の1つの構成要素である。回路設計
は、例えば、単一ポート・ランダムアクセイメモリ(R
AM)および多重ポート・ビデオ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および外部インターフェイス12
0を制御するためのものである。前記コンピュータメモ
リ105は、プログラムおよびデータを格納する。ま
た、前記外部インターフェイス120は、前記論理エミ
ュレータ150と通信を行う。
【0008】前記データは回路設計190を含む。ター
ゲット(目標)設計としても知られている回路設計19
0は、前記論理エミュレータ150によってエミュレー
トされるべき回路を示す。一実施の形態において、前記
回路設計190は、回路のVHDL記述を含んでいる。ま
た、他の実施の形態において、前記回路設計190は、
回路のVerilog記述を含んでいてよい。重要なことは、
前記回路設計190が任意の数のメモリ回路設計195
を含んでいることである。該メモリ回路設計195は、
様々な種類のものであってよい。例えば、該メモリ回路
設計195は、単純なRAMメモリ設計と、多重ポート
・キャッシュメモリ設計と、EEPROMと、レジスタ
ファイルとを含んでいてよい。回路設計190に含まれ
ることができるメモリ回路設計の種類および数は、この
発明の一実施の形態に関する商業的に重要な事項であ
る。設計者は、従来のシステムより容易に、より多くの
回路をエミュレートすることができる。
【0009】一実施の形態において、前記コンピュータ
システム100は、米国カルフォルニア州、Mountain V
iewに在るSun Microsystemsから供給されるワークステ
ーションである。他の実施の形態において、前記コンピ
ュータシステム100および論理エミュレータ150
が、1つのコンピュータシステムに含まれる。前記論理
エミュレータ150は、米国特許No.08/追補に詳細に開
示されている。一実施の形態において、前記論理エミュ
レータ150は、タイムスライシングと呼ばれる技術を
使用して、回路設計190の機能をエミュレートする。
このタイムスライシングによって、前記論理エミュレー
タ150は、多数のクロックサイクルを使用して、前記
回路設計190の1つのクロックサイクル中に実行され
る機能をエミュレートすることができる。1つのエミュ
レータクロックサイクルからの出力は、新たな出力を発
生するためにエミュレーション回路にフィードバックさ
れる。該エミュレーション回路は、エミュレータクロッ
クサイクル間に再構成され、前記論理エミュレータ15
0が前記回路設計190の機能をエミュレートすること
を可能にする。
【0010】前記論理エミュレータ150は、多数のプ
ロセッサボード160を含んでいる。各プロセッサボー
ド160は、ボードインターフェイス回路162に接続
された多数の集積回路170を備えている。これらの集
積回路170は、前記プロセッサボード160間で情報
を交換することができ、従って、共働して前記回路設計
190をエミュレートすることができる。一実施の形態
において、1つの集積回路170は多数の小さなメモリ
設計をエミュレートすることができ、多数の集積回路1
70で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セレクタを含んでいる。こうして、前記集積回路17
0は、(ボードインターフェイス162から)任意の順
序で、32のバックプレーン入力のうちの任意のものを
選択できるようになっている。
【0012】前記ルーティングおよび制御ブロック17
2は、多数のセレクタ群、レジスタ群およびプログラマ
ブル論理ブロック群を含んでいる。回路設計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の出力は、エミュレーションアドレスレジスタ2
20に接続されている。前記エミュレーションアドレス
レジスタ220の出力は、前記RAM230のアドレス
入力(12ビット)と書込みイネーブル入力(4ビッ
ト)に接続されている。前記RAM230は、チップセ
レクトライン240をさらに有する。該RAM230の
出力(32ビットRデータ)は、メモリ出力セレクタ2
40に接続されている。該メモリ出力セレクタ240の
出力は、前記エミュレーションメモリ180の出力に接
続されている。
【0015】前記エミュレーションデータセレクタ20
0は、32個の32:1セレクタを含んでいる。その3
2本の入力ラインは、前記エミュレーションメモリ18
0の32ビット幅の入力データバスから来ている。これ
らの32個の32:1セレクタによって、前記エミュレ
ーションデータセレクタ200は、任意の入力ラインを
任意のWデータ入力に接続することができる。こうし
て、前記32ビットのデータラインのうちの任意のもの
に前記RAM230用のデータを発生させることによっ
て、当該システムにおける融通性が提供される。
【0016】前記エミュレーションアドレスセレクタ2
10は、16個の35:1セレクタを含んでいる。各前
記35:1セレクタは、前記エミュレーションメモリ1
80の32本の入力ラインと、1本のグラウンドライン
と、1本のVCCラインと、エミュレーションアドレス
レジスタ220からの1本の対応する出力ラインとを含
む35本の入力ラインを有する。例えば、前記エミュレ
ーションアドレスレジスタ220のためのアドレス22
4のビット7を出力する前記35:1セレクタは、次の
ような入力を有する。すなわち、前記エミュレーション
メモリ180の入力バスからのビット31〜0、VC
C、グラウンド、および、前記エミュレーションアドレ
スレジスタ220によって出力されるアドレス224の
ビット7である。このようにして、前記エミュレーショ
ンデータセレクタ200は、前記エミュレーションメモ
リ180の入力、前記エミュレーションアドレスレジス
タ220からのフィードバック、設定値(前記VCCラ
インおよびグラウンドラインからの0もしくは1)、ま
たは、これらのラインの組合わせを選択する。
【0017】前記エミュレーションアドレスレジスタ2
20は、前記エミュレーションアドレスセレクタ210
からの出力を格納する。前記エミュレーションアドレス
レジスタ220の出力は、12ビットのアドレス224
と、4本の書込みイネーブルラインとを含むものであ
る。前記アドレス224は前記RAM230における1
つの32ビットエントリのアドレスを選択し、前記4本
の書込みイネーブルラインは前記エントリの4バイトの
うちのどのバイトに書込みを行うべきかを選択するもの
である。このようにして、前記アドレス224と書込み
イネーブル222との組合わせを使用することによっ
て、前記RAM230における任意のバイトに選択的に
書込みを行うことができる。
【0018】前記エミュレーションアドレスレジスタ2
20によって、前記エミュレーションメモリ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のチ
ップセレクトは、すべて、前記制御および出力回路17
1によって制御される。
【0020】前記RAM230は、読出しポートと書込
みポートとを有する、4K×32ビットのスタティック
RAMを含んでいる。該RAM230はライトスルー
(write-through)メモリである(すなわち、1クロッ
クサイクル中にある値Xが書かれた場合、該値Xは、同
じクロックサイクル中に、前記RAM230の出力に現
れる)。他の実施の形態において、前記RAM230の
代りに、および/または、該RAM230に加えて、1
6K×64のEEPROMまたは1M×1のDRAMの
ような他の種類のメモリが使用される。さらに、前記R
AM230は、前記集積回路170上に含まれている必
要はない。こうして、一実施の形態において、前記RA
M230は前記集積回路170である。これら多種類の
メモリの場合、前記エミュレーションデータセレクタ2
00、エミュレーションアドレスセレクタ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のメモリ回路設計は327
68ビットを有し、1K×4のメモリ回路設計は819
2(1K×8−8にパディングされる幅)ビットを有す
る。すべてのメモリ回路設計が処理された後、ブロック
330において、該メモリ回路設計195がサイズ別に
分類される。もっとも大きなメモリが、分類リストの最
初にくる。
【0025】次に、ブロック340において、前記コン
ピュータシステム100は、すべてのメモリ回路設計1
95が前記エミュレーションメモリ180にマッピング
されたか否かを判定する。すべてのメモリ回路設計19
5がマッピングされてない場合、ブロック343および
ブロック345が実行される。こうして、ブロック34
3およびブロック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ビットの幅で
ある、と仮定する。さらに、前記マッピングブロック3
43が前記メモリ回路設計のアドレススペースを示す2
つのアドレスサブスペースを作成する、と仮定する。ま
た、前記2つのアドレスサブスペースが1つのRAM2
30のアドレススペースにマッピングされる、と仮定す
る。そして、第1のタイムスライスにおいて、前記メモ
リ回路設計のエントリの下位32ビットが前記RAM2
30に書き込まれ、第2のタイムスライスにおいて、前
記メモリ回路設計のエントリの上位32ビットが前記R
AM230に書き込まれる。
【0028】付加的なタイムスライスを追加する他の理
由は、複数の異なるメモリのアドレススペースが前記R
AM230のアドレススペースにマッピングされ、前記
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の幅より大きな幅を
有するメモリ回路設計を前記エミュレーションメモリ1
80のアドレススペースにはめ込む、という課題を解決
するものである。
【0032】ブロック430では、前記コンピュータシ
ステム100は、前記アドレスサブスペースと前記エミ
ュレーションアドレススペースとの間の関係を求める。
これは、前記論理エミュレータにおいて、特定のサブス
ペースをRAM230の特定の部分に割り当てることを
含むものである。
【0033】d.メモリ設計をエミュレーションメモリ
にマッピングする例 図5は、1つの設計における多数のメモリが前記エミュ
レーションメモリ180にマッピングされる一例を示す
ものである。上述の如く、ソフトウエアツールは、前記
エミュレーションメモリ180のアドレススペースを1
つの大きなメモリパレットとして扱う。前記メモリ回路
設計195は、該メモリパレット500にマッピングさ
れる。この例において、前記回路設計190は、8K×
64ビットのメモリ510、3K×32ビットのデュア
ルポートメモリ520、4×256ビットのメモリ53
0、128×128ビットのメモリ540、および、3
2×32ビットのメモリ550であるメモリ回路設計1
95を含んでいる。これらのメモリ回路設計195は、
図3のステップを使用して前記メモリパレット500に
マッピングされる。
【0034】この例の目的のために、前記メモリパレッ
ト500は、4K×32ビットの6倍のアドレススペー
スのみを示している。あるシステムにおいて、前記メモ
リパレット500は、これよりはるかに大きなメモリス
ペースを有する。一例として、前記メモリパレット50
0は、前記RAM230の物理的なアドレススペースを
示す4K×32ビットの境界を有する。
【0035】図3および図4に説明された実施の形態に
続いて、前記メモリ回路設計195は、次のように前記
メモリパレット500にマッピングされる。先ず、ブロ
ック310において、すべての前記メモリ回路設計19
5が識別される。次に、ブロック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×12
8ビットのメモリ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およびブロック4
20の処理を受ける。これは、前記メモリパレット50
0の次の利用可能なエリアにマッピングされる。
【0039】表3はブロック345の結果を示すもので
ある。前記マッピングが1つのメモリ回路設計195に
ついて行われた後、ブロック345の処理が実行され
る。表3は、タイムスライス割り当ての結果を示す。こ
のタイムスライス割り当てにおいて、多数の衝突が付加
的なタイムスライスを必要とする。1つのメモリ回路設
計の多重ポート(例えば、34×24のデュアルポート
メモリ520)が存在する場合に、このような衝突が発
生する。さらに、前記回路設計190(例えば、3K×
24のメモリ520、1K×4のメモリ530および3
2×32のメモリ550)の同一クロックサイクルにお
いて、2つまたは3つ以上メモリ回路設計195が書込
まれ、または、読み出されるべき場合に、このような衝
突が発生する。例えば、前記回路設計190のすべての
クロックサイクルにおいて、すべてのメモリ回路設計1
95が書込まれ、または、読み出されるべき場合を仮定
する。多くの回路設計190において、実際はそうでは
なく、衝突が発生しないので、多数のタイムスライスの
分解は必要とならない。
【0040】
【表3】
【0041】この発明の他の実施の形態は、上述した基
本的なマッピングアルゴリズムに対する多くの改善点を
有する。例えば、一実施の形態において、付加的なタイ
ムスライスを追加する必要性を回避するために、前記回
路設計190の同一クロックサイクルでアクセスされる
メモリ回路設計195は、複数の異なるRAM230に
マッピングされる。また、他の実施の形態において、3
2ビットより広いメモリ回路設計195から形成される
サブスペース組は、前記複数のRAM230全体にマッ
ピングされる。これは、前記ルーティングおよび論理ブ
ロック172における潜在的に重複した処理を犠牲にし
て必要とされるタイムスライスの数を減少させる。
【0042】
【発明の効果】以上のように、この発明は、効率的に且
つ確実に、多数のメモリ回路設計をエミュレートでき
る、という優れた効果を奏するものである。
【図面の簡単な説明】
【図1】エミュレーションメモリ回路を有するエミュレ
ーションシステムを示す図。
【図2】前記エミュレーションシステムに使用されるエ
ミュレーションメモリ回路を示す図。
【図3】メモリ回路設計を含む回路設計エミュレートす
る方法の一実施の形態を示す図。
【図4】メモリ回路設計を前記エミュレーションメモリ
にマッピングする方法の一実施の形態を示す図。
【図5】メモリ回路設計をエミュレーションメモリアド
レススペースにマッピングする一例を示す図。
【符号の説明】
100 コンピュータシステム 105 コンピュータメモリ 110 プロセッサ 150 論理エミュレータ 170 集積回路 180 エミュレーションメモリ
フロントページの続き (72)発明者 トニー サルノ アメリカ合衆国 カリフォルニア 95067, スコッツ バレー, ピーオーボックス 66692 (72)発明者 インゴ シェーファー アメリカ合衆国 カリフォルニア 94089, サニーベール, ラ ローシェル テラ ス 1143−E

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 アドレスポートおよびデータポートを有
    するメモリ回路と、前記アドレスポートに接続されたア
    ドレス出力ポートを有するプログラム可能なアドレス回
    路であって、1組の時間周期にわたって、複数のターゲ
    ットメモリの1組のアドレスを、1組のエミュレーショ
    ンメモリアドレスにマッピングするものとを具備したエ
    ミュレーションメモリ。
  2. 【請求項2】 前記メモリ回路が4096×32ビット
    のランダムアクセスメモリを有し、前記アドレスポート
    が12ビットの入力ポートであり、前記データポート
    が、32ビットの幅を有し、書込みポートと読出しポー
    トとを有し、前記メモリ回路が4つの書込みイネーブル
    ポートを有する請求項1に記載のエミュレーションメモ
    リ。
  3. 【請求項3】 前記メモリ回路が第1の半導体基板上に
    集積されており、前記アドレス回路が第2の半導体基板
    上に集積されている請求項1に記載のエミュレーション
    メモリ。
  4. 【請求項4】 前記1組のアドレスをに対応する1組の
    データ値を、1組のエミュレーションメモリデータ値に
    マッピングするプログラマブルなルーティングおよび制
    御回路をさらに具備した請求項1に記載のエミュレーシ
    ョンメモリ。
  5. 【請求項5】 前記アドレス回路が複数のエミュレーシ
    ョンアドレスセレクタ回路を含み、各前記エミュレーシ
    ョンアドレスセレクタ回路が、1つのエミュレーション
    メモリアドレスの1つのアドレスビットを発生するもの
    である請求項1に記載のエミュレーションメモリ。
  6. 【請求項6】 前記アドレス回路が、前記アドレスセレ
    クタ回路に接続されていて前記1つのエミュレーション
    メモリアドレスを格納するアドレスレジスタを含み、前
    記アドレスレジスタの出力が前記アドレス出力ポートに
    対応している請求項5に記載のエミュレーションメモ
    リ。
  7. 【請求項7】 前記1組のターゲットメモリが、第1の
    タイプの第1のターゲットメモリと、第2のタイプの第
    2のターゲットメモリとを含んでおり、該第1のターゲ
    ットメモリおよび第2のターゲットメモリが、1つのタ
    ーゲット設計の1つのサイクル中にアドレスを受け取る
    ものであり、前記アドレス回路が、前記エミュレーショ
    ンメモリの第1のサイクル中に第1のターゲットメモリ
    アドレスに対応する第1のエミュレーションアドレスを
    発生し、前記エミュレーションメモリの第2のサイクル
    中に第2のターゲットメモリアドレスに対応する第2の
    エミュレーションアドレスを発生するものである請求項
    1に記載のエミュレーションメモリ。
  8. 【請求項8】 各々がNワードのデータを格納する第1
    のメモリ回路と第2のメモリ回路とをさらに具備し、前
    記1組のターゲットメモリが、Mワードのデータを格納
    するための第1のターゲットメモリ設計を含んでおり、
    前記Mが前記Nより大きな値であり、前記アドレス回路
    が、前記Mワードのデータのうちの前記Nワードのデー
    タに対応する前記第1のメモリのための第1の組のエミ
    ュレーションアドレスを発生するための第1のアドレス
    回路を含み、さらに、前記アドレス回路が、前記Mワー
    ドのデータのうちのM−Nワードのデータに対応する前
    記第2のメモリのための第2の組のエミュレーションア
    ドレスを発生するための第2のアドレス回路を含んでい
    る請求項1に記載のエミュレーションメモリ。
  9. 【請求項9】 前記Nが4096であって、前記Mが6
    144であり、前記第1の組のエミュレーションアドレ
    スが、前記Mワードのデータのワード0からワード40
    95に対応し、前記第2の組のエミュレーションアドレ
    スが、前記Mワードのデータのワード4096からワー
    ド6143に対応するものである請求項8に記載のエミ
    ュレーションメモリ。
  10. 【請求項10】 Nビット幅のデータワードを格納する
    ための第1のメモリ回路をさらに具備し、前記1組のタ
    ーゲットメモリがMビット幅のデータワードを格納する
    ための第1のターゲットメモリ設計を含み、前記Mが前
    記Nより大きな値であり、前記アドレス回路が、前記M
    ビット幅のデータワードのうちのNビットに対応する前
    記第1のメモリのための第1のエミュレーションアドレ
    スを発生するための第1のアドレス回路を含み、さら
    に、前記第1のアドレス回路が、前記Mビット幅のデー
    タワードのうちのM−Nビットに対応する前記第1のメ
    モリ回路のための第2のエミュレーションアドレスを発
    生するものである請求項1に記載のエミュレーションメ
    モリ。
  11. 【請求項11】 前記Nが32であり、前記Mが64で
    ある請求項10に記載のエミュレーションメモリ。
  12. 【請求項12】 アドレス回路とメモリ回路とを備えた
    エミュレータにおいて1組のメモリ設計をエミュレート
    する方法であって、各前記メモリ設計を、前記メモリ回
    路のアドレススペース、および、各前記メモリ設計にお
    ける1サイクルに対応する1組のタイムスライスにマッ
    ピングするステップと、 メモリ設計機能コマンドの受取りに応答して、対応する
    1組のタイムスライスにわたって前記アドレススペース
    における1組のメモリアドレスを発生するステップと、 メモリ設計機能コマンドの受取りに応答して、前記対応
    する1組のタイムスライスにわたって、および、前記1
    組のメモリアドレスを使用して、前記メモリ回路に関す
    るメモリ機能をエミュレートする1組のメモリ機能を実
    行するステップとを具備する方法。
  13. 【請求項13】 前記マッピングするステップの前に、
    前記1組のメモリ設計をサイズに従って分類するステッ
    プをさらに含む請求項12に記載の方法。
  14. 【請求項14】 前記メモリ回路が1組のエミュレーシ
    ョンメモリを備え、各前記エミュレーションメモリのサ
    イズがNビットであり、第1のメモリ設計のサイズがM
    ビットであり、前記Mが前記Nより大きな値であり、前
    記マッピングするステップが、 前記第1のメモリ設計のN個の下位ビットを第1のエミ
    ュレーションメモリにマッピングすることと、 前記第1のメモリ設計のM−N個の上位ビットを第2の
    エミュレーションメモリにマッピングすることとをさら
    に具備するものである請求項12に記載の方法。
  15. 【請求項15】 前記Nが131072ビットである請
    求項14に記載の方法。
  16. 【請求項16】 前記メモリ回路が、32ビットワード
    を有するエミュレーションメモリを含み、第1のメモリ
    設計が64ビット幅のワードを有し、前記マッピングす
    るステップが、 前記64ビット幅のワードのビット31〜0を、前記エ
    ミュレーションメモリにおける第1の対のワードの第1
    のワードにマッピングすることと、 前記64ビット幅のワードのビット63〜32を、前記
    第1の対のワードの第2のワードにマッピングすること
    とをさらに具備する請求項12に記載の方法。
  17. 【請求項17】 所定のサイズより大きなサイズを有す
    る各メモリ設計を、1組の分割されたメモリ設計に分割
    するステップをさらに含む請求項12に記載の方法。
  18. 【請求項18】 前記所定のサイズが、前記メモリ回路
    内のエミュレーションメモリ回路のバイト数に等しいも
    のである請求項17に記載の方法。
  19. 【請求項19】 エミュレータにおいてメモリ回路設計
    のアドレススペースをマッピングする方法であり、前記
    エミュレータがプログラマブルな論理ブロックと複数の
    エミュレーションメモリを備えており、第1の前記エミ
    ュレーションメモリが、メモリ位置における第1の高さ
    と第1のビット幅とを有し、前記エミュレータにおける
    1組の時間周期が前記メモリ回路設計の1サイクルに対
    応するものであり、 前記アドレススペースを、各々が前記第1の高さおよび
    第1のビット幅より大きくない1つまたは複数のアドレ
    スサブスペースに分割するステップと、 前記アドレスサブスペースを前記複数のエミュレーショ
    ンメモリにマッピングするステップと、 前記エミュレータが前記複数のエミュレーションメモリ
    における前記アドレスサブスペースにアクセスできるよ
    う、前記1組の時間周期に付加的な時間周期を割り当て
    るステップとを具備する方法。
  20. 【請求項20】 各前記サブスペースの幅を、少なくと
    も、前記複数のエミュレーションメモリのうちの1つの
    エミュレーションメモリのエントリにおけるアクセス可
    能な最小ビット数の幅に増加させるステップをさらに含
    む請求項19に記載の方法。
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 1996-02-06
US08/597,197 US5819065A (en) 1995-06-28 1996-02-06 System and method for emulating memory

Publications (2)

Publication Number Publication Date
JPH1055288A true JPH1055288A (ja) 1998-02-24
JP3995751B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006294033A (ja) * 2005-04-06 2006-10-26 Quickturn Design Syst Inc 異なるメモリシステム間での簡潔なマッピングを提供するためのシステム及び方法
JP2007305126A (ja) * 2006-05-12 2007-11-22 Samsung Electronics Co Ltd 状態回復を有する回路エミュレーション
KR101282963B1 (ko) * 2006-05-12 2013-07-08 삼성전자주식회사 에뮬레이션 시스템 및 그 방법

Families Citing this family (51)

* 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
DE502005001065D1 (de) * 2005-05-02 2007-08-30 Accemic Gmbh & Co Kg Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
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
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
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
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
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
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8438328B2 (en) * 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
KR101303518B1 (ko) * 2005-09-02 2013-09-03 구글 인코포레이티드 Dram 적층 방법 및 장치
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
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
WO2010144624A1 (en) 2009-06-09 2010-12-16 Google Inc. Programming of dimm termination resistance values
US8595683B1 (en) 2012-04-12 2013-11-26 Cadence Design Systems, Inc. Generating user clocks for a prototyping environment
US11487925B1 (en) 2021-07-02 2022-11-01 Changxin Memory Technologies, Inc. Simulation method, apparatus, and device, and storage medium
CN115563909A (zh) * 2021-07-02 2023-01-03 长鑫存储技术有限公司 仿真方法、装置、设备及存储介质

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
US4787061A (en) * 1986-06-25 1988-11-22 Ikos Systems, Inc. Dual delay mode pipelined logic simulator
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
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
AU4347189A (en) * 1988-10-05 1990-05-01 Mentor Graphics Corporation Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5329470A (en) * 1988-12-02 1994-07-12 Quickturn Systems, Inc. Reconfigurable hardware emulation system
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware 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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006294033A (ja) * 2005-04-06 2006-10-26 Quickturn Design Syst Inc 異なるメモリシステム間での簡潔なマッピングを提供するためのシステム及び方法
JP2007305126A (ja) * 2006-05-12 2007-11-22 Samsung Electronics Co Ltd 状態回復を有する回路エミュレーション
KR101282963B1 (ko) * 2006-05-12 2013-07-08 삼성전자주식회사 에뮬레이션 시스템 및 그 방법

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3995751B2 (ja) メモリをエミュレートするためのシステム及び方法
EP0931380B1 (en) Reconfigurable computing system
US4787061A (en) Dual delay mode pipelined logic simulator
US6629296B1 (en) Functional verification of integrated circuit designs
US4819150A (en) Array for simulating computer functions for large computer systems
JPH07334384A (ja) 多重プロセッサ・エミュレーション・システム
US5574692A (en) Memory testing apparatus for microelectronic integrated circuit
JPH0680511B2 (ja) シミユレーシヨン・エンジン
EP0665998A1 (en) Microprocessor-based fpga
US5832251A (en) Emulation device
US4296467A (en) Rotating chip selection technique and apparatus
US4333142A (en) Self-configurable computer and memory system
GB2216306A (en) Load and synchronize computer architecture and process
JP2005524852A (ja) 多目的メモリを有するテスタシステム
US8090568B2 (en) Hardware emulator having a variable input primitive
US20010025238A1 (en) Emulation system and method
US6144930A (en) Method for providing a memory model of a memory device for use in simulation
US7043417B1 (en) High speed software driven emulator comprised of a plurality of emulation processors with improved multiplexed data memory
JPH0462648A (ja) 記憶装置
JP2824853B2 (ja) パターンデータ書込み方式
JPH03128475A (ja) 論理テスト機能付き論理回路
JPH0311435B2 (ja)
JPH023147B2 (ja)
JPH01217531A (ja) キャッシュメモリシステムのテスト方法
JPH1145208A (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