JP2004227571A - ハードウェアエミュレータのためのメモリリワインド及び再構築 - Google Patents
ハードウェアエミュレータのためのメモリリワインド及び再構築 Download PDFInfo
- Publication number
- JP2004227571A JP2004227571A JP2004006505A JP2004006505A JP2004227571A JP 2004227571 A JP2004227571 A JP 2004227571A JP 2004006505 A JP2004006505 A JP 2004006505A JP 2004006505 A JP2004006505 A JP 2004006505A JP 2004227571 A JP2004227571 A JP 2004227571A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- verification system
- ram
- input
- 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
Links
Images
Classifications
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【解決手段】 回路設計は、ハードウェア論理エミュレータによりエミュレートされる。エミュレータによってエミュレートされるRAMは、以前の状態にリワインドされ、その後、再生される。また、エミュレータによってエミュレートされるRAMは、RAMがトレースウィンドウ中のいくつかのポイントにおいて保持されている状態に再構築される。
【選択図】 図1
Description
典型的なエミュレーションシステムは、プログラム可能に相互接続されるプログラマブル論理チップあるいはプロセッサチップを用いている。プログラマブル論理チップ(例えば、フィールドプログラマブルゲートアレイ(field programmable gate array)、すなわちFPGA)ベースのエミュレーションシステム(FPGA based emulation system)では、ユーザ設計(以下では、“検証対象である設計(design under verification)”、すなわち“DUV”という)に含まれている論理は、DUV内に設けられた論理がプログラマブル論理装置内で実際に作動するように、論理チップ内にプログラムされる。プロセッサベースのエミュレーションシステム(processor-based emulation system)では、ユーザ設計は、設計の出力を計算することによって、ユーザ設計の機能がプロセッサ内に生成されて見えるように処理される。論理自身は、プロセッサベースのエミュレーションシステム内に配設されない。すなわち、DUVは、プロセッサ内で実際に動作する形式をとらない。
プログラマブル論理装置を用いるハードウェア論理エミュレーションシステムは、米国特許第5109353号、第5036473号、第5475830号及び第5960191号等に示されている。米国特許第5109353号、第5036473号、第5475830号及び第5960191号は、参照として本明細書に組み込まれる。プロセッサチップを用いるハードウェア論理エミュレーションシステムは、米国特許第5551013号、第6035117号及び第6051030号等に示されている。米国特許第5551013号、第6035117号及び第6051030号は、参照として本明細書に組み込まれる。
ケイデンス・デザイン・システムズ・インコーポレイテッドによって製造、販売されている従来のエミュレーションシステムでは、ネットリストは、エミュレーションシステムによって使用可能な形式にコンパイルされる。FPGAベースのエミュレータでは、DUVは、論理ゲート(シーケンシャル及び結合の両方)がFPGAに実装可能な形式にコンパイルされる。プロセッサベースのエミュレーションシステムでは、DUVは、プロセッサチップ上のプロセッサによって実行される一連のステートメント(statement)にコンパイルされる。論理は、プロセッサ内に実装されない。
シミュレーションは、ソフトウェアベースの接近法である。シミュレーションでは、設計及びテストベンチ(testbench)が、マシン実行可能モデルにコンパイルされ、ワークステーションあるいはパソコン内で実行される。エミュレータ内のテストベンチは、しばしば、DUVと直接に相互作用するターゲットボード(target board)として表される。
設計者は、数時間にわたって設計信号を評価する時、少なくとも2つの問題点に遭遇する。1つの問題点は、どの信号を観察するか(すなわち、DUV内のどのモードを観察するか)である。第2の問題点は、何時(すなわち、トリガと呼ばれる、どのクロックの移動時及び/またはどのイベント合流時)信号を観察するかである。これらの2つの問題点は、シミュレーション及びエミュレーション手段に対する重大な要求を強いる。第1は、回路設計が、典型的には非常に大きい(例えば、数百万個のゲート)ことである。第2は、設計者が観察する信号の数が、比例して大きいことである。第3は、設計信号を観察する必要があるタイムウィンドウ(時間窓)(time window)(以下では、“トレースウィンドウ(trace window)“と呼ぶ)は、シミュレーションあるいはエミュレーションの前に予言困難であるため、設計をデバッグする設計者は、できるだけ大きいトレースウィンドウを選ぶことである。
1つの接近法は、DUVロックステップ(lockstep)をシミュレータ内で実行させることである。この接近法では、シミュレーションの実行は、相互作用動作で設計者によって制御される。設計者は、シミュレーションの実行、停止及び信号の観察、続行及び処理の繰り返しを行うことができる。シミュレーションが停止すると、設計者は、設計内の任意の信号のステート(state)を検査することができる。
第2の接近法は、信号ダンプとともにシミュレーションを自由に実行させることである。この“フリーランニング”接近法では、シミュレーションは、ユーザの介在なしに自由に実行され、シミュレーション中に観察される信号は、シミュレーション中にダンプ(damp)される。ダンプされる信号は、シミュレーションの開始前に特定されなければならないということを知ることが重要である。これらのシミュレーション接近法は、有効ではあるが、非常に遅い。
第3の接近法は、トレースウィンドウの固定サイズに対して十分に視認可能であるエミュレータを用いて、DUVをエミュレートすることである。この接近法では、エミュレータは、自由に実行し、全視野に対して視認可能であるエミュレータ内のDUVによって生成された信号は、任意の期間蓄積される。
最後の接近法は、制限された視認性を有するエミュレータを用いてDUVをエミュレートし、再生することである。この接近法では、制限された情報が、エミュレーション中に蓄積される。設計者は、分析のための十分な情報を入手するために、エミュレーションを数回実行させる必要がある。
また、期間的なスナップショット(snapshot)を蓄積するために検証処理を中断させあるいはスローダウンさせる必要がないデバッグ環境が必要である。
本発明は、エミュレートされる回路設計内のメモリを再蓄積することによって、メモリに蓄積されているデータを視認可能とする、新規な方法を提供する。
これらの実施の形態は、メモリが、予め設定されている時間間隔内の過去の任意のチェックポイント(すなわち、トリガが発生するポイント)に対して再蓄積されることを許容する。従来技術と異なり、各設計メモリに対する全ての書込動作が捕獲されるので、種々の実施の形態がこれを実行可能である。好ましい実施の形態では、書込動作は、循環バッファ(circular buffer)内で捕獲される。設計内のチェックポイントが発生する時、メモリの再生は、捕獲された(すなわち、蓄積された)書込動作をDUVに対して逆の順序で(必要であれば、クロックサイクル内で)適用することによって、実行される。全ての書込動作が再生された後、各設計メモリの内容は、書込動作を捕獲した循環バッファのボトム(bottom)(あるいは、第1エントリー)に対応する時点に蓄積していたものを保持するために再蓄積される。メモリを再蓄積するための時間間隔の長さは、前記循環バッファのデプス(深さ)(depth)によって決定される。
本方法は、ハードウェア論理エミュレーションシステム内の回路設計をエミュレーションする。本方法は、RAM内の複数のメモリ位置の中の選択された1つにデータを書き込む直前に、RAM内の複数のメモリ位置の中の選択された1つに蓄積されているデータを読み出す。また、本方法は、RAM内の複数のメモリ位置の中の選択された1つから読み出されたデータを、バッファ内の選択されたメモリ位置に蓄積する。本方法は、チェックポイントの後で、バッファ内の選択されたメモリ位置に蓄積されているデータを、RAM内の複数のメモリ位置の中の選択された1つに移動させる。また、本方法は、移動ステップの後で、RAM内の複数のメモリ位置の中の選択された1つに蓄積されているデータを観察する。
本装置は、書込ポートに対応するシャドウ読出ポートを有している。シャドウ読出ポートは、書込ポートのアドレス入力からのアドレスを受信するアドレス入力と、データ出力を有している。また、本装置は、バッファを備えている。バッファは、RAMのアドレス入力に接続されている。また、バッファは、シャドウ読出ポートのデータ出力に接続されている。バッファは、アドレス出力とデータ出力を有している。また、本装置は、アドレス入力を書込ポートに送る第1マルチプレクサを備えている。第1マルチプレクサは、バッファのアドレス出力に接続されている第1入力を有している。第1マルチプレクサは、RAMのアドレス入力に接続されている第2入力を有している。本装置は、データ入力を書込ポートに送る第2マルチプレクサを備えている。第2マルチプレクサは、バッファのデータ出力に接続されている第1入力を有している。第2マルチプレクサは、RAMのデータ入力に接続されている第2入力を有している。第1マルチプレクサ及び第2マルチプレクサは、それぞれ、第1モードと第2モードの間を切り替える選択入力を有している。
本装置は、第1書込ポートに対応する第1シャドウ読出ポートを有している。第1シャドウ読出ポートは、第1設計アドレス入力からのアドレスを受信するアドレス入力を有している。第1シャドウ読出ポートは、更に、データ出力を有している。また、本装置は、第2書込ポートに対応する第2シャドウ読出ポートを有している。第2シャドウ読出ポートは、第2設計アドレス入力からのアドレスを受信するアドレス入力を有している。第2シャドウ読出ポートは、更に、データ出力を有している。
また、第1設計アドレス入力と第1シャドウ読出ポートのデータ出力に接続されている第1バッファが設けられている。第1バッファは、アドレス出力とデータ出力を有している。本装置は、更に、第2バッファを備えている。第2バッファは、第2設計アドレス入力に接続されている。また、第2バッファは、第2シャドウ読出ポートのデータ出力に接続されている。第2バッファは、アドレス出力とデータ出力を有している。
第1マルチプレクサは、第1アドレス入力を第1書込ポートに送る。第1マルチプレクサは、第2バッファのアドレス出力に接続されている第1入力を有している。第1マルチプレクサは、第1設計アドレス入力に接続されている第2入力を有している。第2マルチプレクサは、第1データ入力を第1書込ポートに送る。第2マルチプレクサは、第2バッファのデータ出力に接続されている第1入力を有している。第2マルチプレクサは、第1設計データ入力に接続されている第2入力を有している。第3マルチプレクサは、第1アドレス入力を第2書込ポートに送る。第3マルチプレクサは、第1バッファのアドレス出力に接続されている第1入力を有している。第3マルチプレクサは、第2設計アドレス入力に接続されている第2入力を有している。第4マルチプレクサは、第1データ入力を第2書込ポートに送る。第4マルチプレクサは、第1バッファのデータ出力に接続されている第1入力を有している。第4マルチプレクサは、第2設計データ入力に接続されている第2入力を有している。第1マルチプレクサ、第2マルチプレクサ、第3マルチプレクサ及び第4マルチプレクサは、それぞれ、第1モードと第2モードの間を切り替える選択入力を有している。
本方法は、シャドウ読出ポートを、書込ポートに対応する回路設計に挿入する。シャドウ読出ポートは、集積回路設計からのアドレスを受信するアドレス入力を有している。シャドウ読出ポートは、更に、データ出力を有している。また、本方法は、データを、選択されたメモリアドレスに書込ポートによって書き込む前に、選択されたメモリアドレスに蓄積されているデータをシャドウ読出ポートが読み出すように計画する。また、本方法は、シャドウ読出ポートのデータ出力をバッファに相互接続する。バッファは、計画ステップで読み出されたデータを、選択されたメモリ位置に蓄積する。バッファは、データ出力とアドレス出力を有している。
また、本方法は、第1マルチプレクサがアドレス入力を書込ポートに送るように、第1マルチプレクサを回路設計に挿入する。第1マルチプレクサは、回路設計からのアドレス入力に接続されている第1入力を有している。また、本方法は、第2マルチプレクサがデータ入力を書込ポートに送るように、第2マルチプレクサを回路設計に挿入する。第2マルチプレクサは、回路設計からのデータ入力に接続されている第1入力を有している。また、本方法は、バッファのアドレス出力を第1マルチプレクサの第2入力に相互接続する。本方法は、チェックポイントの後で、バッファ内の選択されたメモリ位置に蓄積されているデータを、RAM内の複数のメモリ位置の中の選択された1つに移動させる。そして、本発明は、移動ステップの後で、RAM内の複数のメモリ位置の中の選択された1つに蓄積されているデータを観察する。
本方法は、回路設計を機能検証システム内で実行させる。データをRAM内に書き込む前に、データを読み出す。また、本方法は、データをバッファに蓄積する。チェックポイントでは、バッファに蓄積されているデータは、データがバッファに書き込まれた順序と逆の順序で読み出される。データがバッファから読み出されると、データは、RAMに書き込まれる。
更に他のアスペクトでは、回路設計が所望の機能を実行することを検証するための方法が開示されている。回路設計は、ランダムアクセスメモリ(RAM)により構成されている。RAMは、少なくとも1つの書込ポートと複数のメモリ位置を有している。
本方法は、回路設計を第1機能検証システム内で実行させる。データをRAM内に書き込む前に、このデータは読み出される。データは、第1機能検証システムから外部のシステムに送られる。チェックポイントでは、外部システム内のデータは、あらかじめ定められた時点におけるRAMの複数のメモリ位置に対応する、再構築(reconstruct)されたメモリを生成するために再構築される。再構築ステップでは、以前に蓄積されたデータをラストイン−ファーストアウトの順序で読み出し、以前に蓄積されたデータを外部のシステム内のメモリに書き込むことによって、再構築されたメモリを生成する。
本方法は、回路設計を機能検証システム内で実行させ、全ての書込動作をバッファ内に蓄える。書込動作のそれぞれは、アドレスと当該アドレスに蓄積されるデータを有している。アドレスと当該アドレスに蓄積されるデータは、書込動作が実行された順序に対応する時間的な順序で蓄積される。書込動作中にデータが変化したアドレスを少なくとも有する、RAMのイメージ(image)が、バッファに蓄積される書込動作のそれぞれを再生することによって再構築される。
本方法は、回路設計を第1機能検証システム内で実行させ、全ての書込動作をバッファに蓄える。書込動作のそれぞれは、アドレスと当該アドレスに蓄積されるデータを有している。アドレスと当該アドレスに蓄積されるデータは、前記書込動作が実行された順序に対応する時間的な順序で蓄積される。書込動作中にデータが変化したアドレスを少なくとも有する、RAMのイメージが、バッファ内に蓄積される書込動作のそれぞれを再生することによって再構築される。イメージは、第2機能検証システムに書き込まれる。
捕獲は、DUVがエミュレータ内で実行されている間に実行され、本発明の種々の実施の形態では、メモリ書込動作の捕獲として参照されている。以下に示されているように、メモリ書込動作データは、循環バッファ内に捕獲される。この循環バッファのデプスは、リワインドあるいは再構築の時間間隔の長さ、すなわち、トレースウィンドウを決定する。
プロセッサベースのエミュレーションシステムでは、本方法は、プロセッサによって実行される、論理のブーラン表現へのコンパイルによって、実施される。エミュレーションシステムのユーザにとって、プロセッサベースのエミュレータの出力は、FPGAベースのエミュレータの出力と同じである。しかしながら、エミュレータの出力が生成される方法は、異なっている。FPGAベースのエミュレーションシステムでは、以下で言及する論理は、論理要素(構成可能な論理ブロック(configurable logic block)、すなわちCLBと呼ばれることもある)によって実行される。以下に開示されている種々の実施の形態は、両タイプのエミュレータに適用可能である。
前述したように、今日では、ほとんど全てのDUVは、メモリ回路20を含んでいる。典型的なメモリ回路20は、複数のメモリ位置(図示していない)を有するように配列される。各メモリ位置は、所定数のビットを蓄積可能なアドレスを有している。
メモリ回路は、典型的には、メモリ回路が有しているメモリ位置の数(メモリ回路の“デプス”と呼ばれる)と、各位置に蓄積可能なビットの数(メモリ回路の“幅(width)”と呼ばれる)によって区分けされる。したがって、各位置が8ビットである32000位置を有するメモリ回路は、“32000×8”(すなわち、32K×8)メモリ回路と呼ばれる。メモリ回路が複数のポートを有している場合には、メモリ回路は、更に、書込ポートの数と読出ポートの数によって定義される。DUV内に設けられる典型的なマルチポートメモリでは、データは、複数の書込ポートを介してメモリ位置に書き込まれ、また、複数の読出ポートを介してメモリ位置から読み出される。
書込ポート20は、DUVのメモリに書き込まれるデータを受信するデータ入力24と、データが書き込まれる特別のメモリ位置を指示するアドレス入力22を備えている。アドレスデータは、アドレスネット34によってアドレスポート22に供給される。書込データは、ネット36によってデータ入力24に供給される。
プロセッサベースのエミュレータでは、DUV内の各メモリ書込動作は、シャドウ読出ポート30を介する実行サイクル内の全てのステップにおいて捕獲される。実行サイクルは、現時点で好ましいプロセッサベースのエミュレータ内では、以下のように発生する。
エミュレーション中、プロセッサを含む各モジュール(例えば、集積回路)上のシーケンサは、エミュレーショサポート設備によって停止されるまで、プログラムされたステップ数だけインクリメントし、そして繰り返す。シーケンサの1回転は、エミュレートされる設計の1クロックサイクルに対応する。シーケンサは、エミュレートされるパスクロックサイクル(path clock cycle)を、各ステップが、エミュレートされる設計の1つの論理ゲートの評価に対応する複数(例えば、256)のステップに効果的に分割する。
FPGAベースのエミュレータ内では、何も実行されない。
これらの修正は、アドレスネット34及びデータネット35が、ブロートオフチップ(brought off chip)であり、別々のメモリチップであることが好ましい循環バッファ40に接続されるようなものである。
このシャドウ読出動作の結果は、循環バッファ40に蓄積される(そのアドレスに蓄積されているデータとアドレス自身の両方が蓄積される)。読出動作の結果は、循環バッファ40に蓄積される。
これにより、循環バッファ40は、ユーザ設計内のメモリの内容(各メモリ位置に対して、アドレスと一緒に蓄積されるデータ)を保持する。書込アドレスネット34とシャドウ読出ポート30の出力ピン38が、同期してこの情報を循環バッファ40に書き込むため、これが適切に機能していることに注意する。
このステートマシンは、各実行サイクル毎にアドレス(すなわち、各メモリ位置に対して、DUV内のメモリ20からのアドレスと一緒にデータが蓄積される位置)をインクリメントする。図1〜3を参照して以下に説明されているリワインドモードでは、ステートマシンは、各実行サイクル毎にアドレスをデクリメントする。
リワインドは、最初の設計実行が、ユーザが定めたチェックポイントに到達した後に、実行される。リワインドは、トレースウィンドウ中に捕獲された全てのメモリ書込動作を再生する。勿論、いくつかの実施の形態では、書込動作の選択された数のみが再生される必要がある。リワインドを作動させるために、現時点で好ましい実施の形態では、付加的なリワインド論理がDUV内に存在する必要がある。シャドウ読出ポート30と同様に、現時点で好ましい実施の形態は、好ましくはコンパイル中に、このリワインド論理をDUV内に挿入する。
リワインド論理は、好ましくは、第1マルチプレクサ50と第2マルチプレクサ52により構成される。第1マルチプレクサ50は、循環バッファ40からのデータ出力である第1入力と、DUVからのアドレス信号である第2入力を有する2入力マルチプレクサであることが好ましい。第1マルチプレクサ50に対する選択入力54は、ノーマルエミュレーションモードあるいはリワインドモードのいずれかに対してセットされる信号である。また、第2マルチプレクサ52は、循環バッファからのデータ出力である第1入力と、DUVからのデータ信号である第2入力を有する2入力マルチプレクサであることが好ましい。選択入力54は、第1マルチプレクサ50と同じ、すなわち、ノーマルエミュレーションモードとリワインドモードの間を選択する信号である。
エミュレータがエミュレーションモードにある時には、第1マルチプレクサ50と第2マルチプレクサ52は、DUVからのアドレス信号と設計信号を選択する、選択入力上の信号を受信する。このことは、メモリ20が、図1に示されているように動作することを意味している。
一方、エミュレータがリワインドモードにある時には、第1マルチプレクサ50と第2マルチプレクサ52は、循環バッファ40からのアドレス信号と設計信号を選択する、選択入力上の信号を受信する。ほぼ同時に、このリワインド信号は、第1マルチプレクサ50と第2マルチプレクサ52の選択入力上に現われ、循環バッファ40を駆動するクロックは、循環バッファ40に蓄積されているデータ情報とアドレス情報が、それぞれ第1マルチプレクサ50の対応するデータ入力と第2マルチプレクサ52の対応するアドレス入力に出力されるように、デクリメントを開始する。
トレースウィンドウの間、DUVは、1あるいは複数のクロック信号の他、ターゲットシステム(target system)、テストベクタ(test vector)、シミュレーションスティムラス(simulation stimulus)からの信号等の外部信号によって作動する。エミュレートされる設計が、第1書込ポート20を介してメモリにデータを書き込む時には、データ(例えば、蓄積されるワード)は、データネット36のメモリに入力され、一方、当該ワードに対するアドレスは、アドレスネット34のメモリに入力される。データ信号は、データネット36を介してマルチプレクサ52の第2入力に入力され、アドレスは、アドレスネット34を介してマルチプレクサ50の第2入力に入力される。
トレースウィンドウの間、第1マルチプレクサ50及び第2マルチプレクサ52に対する選択入力54は、第1マルチプレクサ50及び第2マルチプレクサ52がユーザ設計からの入力を選択するようにセットされることに注意する。
メモリリワインドの実施の形態では、アドレス及びデータは、ラストイン−ファーストアウト(“LIFO”)配列で循環バッファ40に蓄積される。これにより、ユーザは、トレースウィンドウの開始位置に到達するまで、DUV内のメモリのステートをステップ順ベース(step by step basis)(1ステップは、実行サイクルの一部である)でデクリメントすることができる。前述したように、循環バッファ40のアドレスピンに接続されているステートマシン45がこれを制御する。
書込動作の間、アドレスネット34からのメモリアドレスは、マルチプレクサ50を介して、書込ポート20のアドレス入力に入力される。同様に、そのアドレスに書き込まれるデータは、ネット36を通り、マルチプレクサ52を介して、そのデータをメモリの選択されたアドレスに書き込む書込ポート20に入力される。
リワインドモードに移行するために、第1マルチプレクサ50及び第2マルチプレクサ52の選択入力54が、メモリアドレスとそのアドレスに蓄積されるデータが、それぞれマルチプレクサ50及び52を介して書込ポート20に入力されるように、セットされる。選択信号が、リワインドに切り替えられると、エミュレータは、リワインドモードで動作する。
リワインドモードでは、循環バッファ40のアドレスピンに接続されているステートマシン45がデクリメントを開始する。これにより、蓄積されるDUV内のメモリの内容は、所望のポイントに到達するまで順次デクリメントされる。メモリの内容は、トレースウィンドウの開始時におけるステートまでしかリワインドできないことに注意する。これは、循環バッファが、トレースウィンドウの外部に蓄積されていたメモリ内容を蓄積しないからである。
選択入力54の値は、再生モード時に、循環バッファ40内のメモリアドレスとそのアドレスに蓄積されているデータが第1及び第2マルチプレクサ50及び52を通過するように、第1及び第2マルチプレクサ50及び52の選択入力54が設定される値であるため、書込ポート20は、循環バッファ40に蓄積されているデータを適切なアドレスに書き込む。循環バッファ40がLIFO配列を有しているため、ユーザは、実行サイクル内でステップ順に、メモリのステートをリワインド可能である。これにより、設計がトレースウィンドウを介して実行された順序と逆の順序で、設計のステートをデクリメントすることができる。
ターゲット実行サイクルは、設計をデバッグするためにユーザがメモリステートの可視性を必要としている設計のエミュレーション内の時間ポイントである。例えば、特別の時間ポイントあるいはメモリの特別のステート等が可能である。
ステート装置の内容及び主入力の値を蓄積する方法は、本発明の範囲外である。
前述したように、本明細書に開示されている種々の実施の形態は、各書込ポートに対して、シャドウ読出ポートをDUV内に挿入することによってDUVを修正する。1以上の書込ポートを有するマルチポートメモリでは、1以上のシャドウ読出ポートが挿入される。言い換えれば、好ましい実施の形態では、ユーザ設計のメモリ内の各書込ポートに対して1つのシャドウ読出ポートが存在する。また、前述したように、種々の実施の形態は、リワインド論理を、アドレスとデータ入力を書込ポートに送るマルチプレクサにより構成されるのが好ましいDUV内に挿入する。
第1書込ポート120aは、アドレス入力とデータ入力を有している。第1書込ポート120aのアドレス入力は、マルチプレクサ150aの出力である。第1書込ポート120aのデータ入力は、マルチプレクサ152aの出力である。前述した実施の形態のように、マルチプレクサ150aは、第1入力がDUV内のメモリ内の第1書込ポートに対して書込アドレスを運ぶネットである、2つの入力を有するのが好ましい。マルチプレクサ150aへの第2入力は、第2循環バッファ140bに蓄積されるアドレスである。第2循環バッファ140bからのアドレス出力をマルチプレクサ152aの入力に配置する理由は、以下に説明する。
マルチプレクサ152aは、2つの入力を有するのが好ましい。マルチプレクサ152aへの第1入力は、DUVのメモリ内に蓄積されるデータを運ぶネットである。マルチプレクサ152aへの第2入力は、第2循環バッファ140bに蓄積されているデータである。第2循環バッファ140bからの出力であるデータをマルチプレクサ152aの入力に配置する理由は、以下に説明する。
マルチプレクサ150a及び152aは、ノーマルモードとリワインドモードの間を選択する“スイッチ(switch)”を選択入力として有している。マルチプレクサ150a及び152aは、コンパイル時に挿入されるのが好ましい。
同様に、第1シャドウ読出ポート130aは、コンパイル時にDUV内に挿入されるのが好ましい。第1シャドウ読出ポート130aへの入力は、DUVのメモリ内の第1書込ポート120aに対する書込アドレスを運ぶネット134bである。第1シャドウ読出ポート130aの出力は、第1循環バッファ140aのデータ入力に入力される。
第1循環バッファ140aは、第1ステートマシン145aからの出力を受信する入力を有している。前述したように、第1ステートマシン145aは、リワインド中、第1循環バッファ140a内のメモリ位置をアドレスする。前述したように、第1シャドウ読出ポート130aの出力は、メモリアドレスにメモリアドレスと共に蓄積されているデータである。
マルチプレクサ152bも、2つの入力を有している。マルチプレクサ152bへの第1入力は、DUVのメモリ内に蓄積されるデータを運ぶネットである。マルチプレクサ152bへの第2入力は、第1循環バッファ140aに蓄積されているデータである。第1循環バッファ140aからの出力であるデータをマルチプレクサ152bの入力に配置する理由は、以下に説明する。
マルチプレクサ150b及び152bはノーマルモードとリワインドモードの間を選択する“スイッチ(switch)”を選択入力として有している。マルチプレクサ150b及び152bは、コンパイル時に挿入されるのが好ましい。
同様に、第2シャドウ読出ポート130bは、コンパイル時にDUV内に挿入されるのが好ましい。第2シャドウ読出ポート130bへの入力は、DUVのメモリ内の第1書込ポートに対する書込アドレスを運ぶネットである。第2シャドウ読出ポート130bの出力は、メモリアドレスにメモリアドレスと共に蓄積されているデータである。
図3に示す例では、第1循環バッファ140aは、DUV内のメモリの第1書込ポートに対してDUVに挿入される第1シャドウ読出ポート130aからのデータを捕獲する。同様に、第2循環バッファ140bは、DUV内のメモリの第2書込ポートに対してDUVに挿入される第2シャドウ読出ポート130bからのデータを捕獲する。
第2循環バッファ140bは、第2ステートマシン145bからの出力を受信する入力を有している。前述したように、第2ステートマシン145bは、リワインド中、第2循環バッファ140b内のメモリ位置をアドレスする。
メモリリワインド中、第1循環バッファ140aは、第2書込ポート120bを介して同じメモリインスタンス(memory instance)(例えば、メモリアドレスに蓄積されているデータと一緒にそのメモリアドレス)を送る。
これにより、本実施の形態では、リワインド中、第2書込ポート120bは、第1書込ポート120aに対するミラー書込ポートとして機能する。同様に、第1書込ポート120aは、第2書込ポート120bに対するミラー書込ポートとして機能する。
トレースウィンドウの間、DUVは、ターゲットシステム、テストベクタ、シミュレーションスティムラスからの信号等の外部信号によって作動する。
エミュレートされる設計が、第1書込ポート120aを介してデータをメモリに書き込む時には、データ(例えば、蓄積されるワード)はデータネット136aのメモリに入力され、アドレスはアドレスネット134aのメモリに入力される。
トレースウィンドウの間、アドレスとそのアドレスに対するデータが、マルチプレクサ150a及び152aを介して第1書込ポート120aに入力されるように、マルチプレクサ150a及び152aの選択入力154が設定される。
メモリリワインドを可能とするために、シャドウ読出動作が全ての書込動作の前に計画される。シャドウ読出動作は、第1シャドウ読出ポート130aを用い、第1書込ポート120aを用いて書き込まれるアドレスと同じアドレスを含んでいる。
これにより、第1書込ポート120aに送られるアドレスも、第1シャドウ読出ポート130aに入力される。このアドレスを第1シャドウ読出ポート130aに送ることにより、DUV内のそのアドレスに蓄積されるデータは、第1シャドウ読出ポート130aのデータ出力138を介する第1循環バッファ140aへの出力である。
書込動作の間、アドレスネット134aからのメモリアドレスは、マルチプレクサ150aを介して、第1書込ポート120aに対するアドレス入力に入力される。同様に、そのアドレスに書き込まれるデータは、ネット136aを通り、マルチプレクサ152aを介して、そのデータをメモリの選択されたアドレスに書き込む第1書込ポート120aに入力される。
ミラー書込ポートを用いる理由は、以下の通りである。エミュレータがトレースウィンドウを介して実行するとき、データはメモリ内の位置に書き込まれる。各書込動作中、これらの位置に蓄積されるデータは、シャドウ読出ポートによってDUV内のメモリから読み出され、循環バッファ140a、140b内に、アドレスと同様に蓄積される。メモリがリワインドされる時、実行サイクルは後方に実行される。このことは、特別のアドレスに蓄積されるデータは、ミラー書込ポートを介して書き込まれることを意味している。
例えば、2つの書込ポートメモリの双方が同じアドレスAに書き込む数サイクルを仮定する。更に、ポート1が、ポート2による書込データD2が続くデータD1を書き込む場合を想定する。また、これらの書込動作の前におけるアドレスAのデータがDであった場合を想定する。
シャドウ読出ポート1は、アドレスAに対するデータDを蓄積し、そして、シャドウ読出ポート2は、同じアドレスAに対するデータD1を蓄積する。リワインドの間、書込ポートがミラー化されていない場合には、ポート1は、ポート2による書込データD1が続くデータDを書き込む。これらの2つの書込動作の後、アドレスAは、正しい初期値Dの代わりに、正しくない値D1を蓄積する。一方、ポートがミラー化されている場合には、リワインドの間、ポート1は、シャドウ読出ポート2を介して捕獲され、シャドウ読出ポート1を介して捕獲された書込データ、すなわちデータDがポート2によって後続する、データD1を書き込む。この場合、両書き込みの後のアドレスAには、正しい初期値Dが蓄積される。
この実施の形態では、各書込ポートに対するデータ及びアドレス値は、捕獲ステージ中に、エミュレーション時間あるいはシミュレーション時間の開始(時間「0」)から直接に記録される。データは、記録されるデータの量を減少させるために、各主クロックサイクルあるいはメモリへの書込要求があった時にのみ捕獲してもよい。書込要求があった時にのみデータを捕獲する場合には、各ブロックの開始時間のみを再蓄積ステージで知る必要があるように、データをブロック内で編成可能である。
第1マルチプレクサ62は、その出力がアドレス入力を書込ポート20に送る、2入力マルチプレクサであることが好ましい。第2マルチプレクサ64は、その出力がデータ入力を書込ポート20に送る、2入力マルチプレクサであることが好ましい。第1マルチプレクサ62への第1入力は、DUV(すなわち、ユーザ設計)からのアドレスネット34である。第2マルチプレクサ64への第1入力は、DUVからのデータネット36である。
この実施の形態では、エミュレータは、線形バッファ(linear buffer)60として機能するメモリ回路(例えば、メモリチップ)を設ける。線形バッファ60は、アドレスネット34からのアドレスデータと、データネット36からの、そのアドレスに蓄積されるデータを受信する。線形バッファ60は、メモリアドレスを第1マルチプレクサ62の第2入力に送る第1出力を有している。また、線形バッファは、特別なメモリアドレスに対するデータを第2マルチプレクサ64の第2入力に出力する第2出力を有している。第1マルチプレクサ62及び第2マルチプレクサ64は、共に、ノーマルモードと再構築モードの間を切り替える選択入力を有している。
線形バッファ60は、FIFO配列で配列されるのが好ましい。このことは、書込動作が、トレースウィンドウの時間「0」から、ユーザが再蓄積を望む時間ポイントまで実行されることを意味する。これにより、前述した循環バッファ40と異なり、線形バッファ60を駆動するステートマシン65はデクリメントする必要がない。ステートマシン65は、線形バッファ60がDUV内のメモリ20内の書込動作に同期して自身のメモリ位置をインクリメントするように、DUVを駆動するクロックと同期化されるのが好ましい。
メモリチップ(あるいは、この配列が用いられる場合にはオンチップメモリ)は、トレースウィンドウの時間「0」からメモリによって発生される全てのデータを捕獲するのに十分な大きさを有している必要があることに注意する。
この方法は大量のメモリを必要とするため、線形バッファ60の部分は、エミュレータ内に配設され、線形バッファ60の他の部分は、エミュレータを制御するワークステーション内に配設可能である。
この実施の形態では、再蓄積プロセスは、まず、最も遅く蓄えられたスナップショットからのメモリ内容をDUVのメモリに再蓄積する。再蓄積されるスナップショットは、ユーザが再蓄積を望む時間ポイントの直前にとられたスナップショットであるのが好ましい。スナップショットを有するメモリ内容を再蓄積した後に、DUVは、前述した方法を用いて、スナップショット時間から書き込み動作を再生する。
この実施の形態の利点は、トレースウィンドウの時間「0」からの書込動作の全ての履歴を蓄積するための線形バッファ60を必要としないことである。これにより、より小さい線形バッファ60を使用することができる。
実行に際して、以下に説明するいくつかの相違点がある。実行の際における大部分の相違点は、FPGAベースのシステム内では、プロセッサベースのシステム内に存在するような基本サイクルを決定するために用いられる1つの中心クロックが存在しないことに起因する。FPGAシステムは、通常、非同期であるクロック(すなわち、他のクロックから生成されないクロック)のセットを受け入れる。一方、プロセッサベースのエミュレータは、非同期クロックを用いて設計をエミュレート可能であるが、内部では同期して動作する。実際に、いくつかのFPGAシステムでは、システムは、エミュレータに入力されるどの信号がクロック信号であるかを知ることさえできない。任意の入力信号がクロックとして作用する。
第1の方法は、図5〜7を参照して説明されており、“イベント駆動(event driven)”方法論に依存している。図5は、2つの書込ポートを有するマルチポートメモリを示している。書込ポート1は、アドレス入力A1とデータ入力D1を有している。書込ポート2は、アドレス入力A2とデータ入力D2を有している。FPGAベースのシステムでは、サイクルを決定する基準クロックが存在しない(すなわち、前述したように、実行サイクルが存在しない)。代わりに、DUV内のRAMに蓄積されているデータを除く、DUVの全てのステートの内容のスナップショットが、エミュレーション中の特別の設定ポイントにおいて循環バッファに蓄積される(図6)。これは、図7に、エミュレーションの開始、第1設定ポイント及び第2設定ポイントを有するタイム線で示されている。エミュレーションの間、各書込動作は、DUVのRAM及び循環バッファに同時に蓄積される。
いくつかの実施の形態では、書込動作からのデータは、DUVのステートの他の内容とは異なる循環バッファに蓄積されることに注意する。
プロセッサベースの装置と同様に、他の装置も可能であるが、シャドウ読出ポートが、この動作に対して使用可能である。循環バッファへの各書込の後、循環バッファアドレスは、「1」だけ加算される。各設定ポイントでは、循環バッファ内のその位置に蓄積されている書込動作が設定ポイントに対応していることを示すマーカーが、循環バッファに書き込まれる。これは、図6に示されている。設定ポイントは、検証システムのユーザによって設定されるのが好ましい。
この実施の形態では、循環バッファに蓄積される書込動作の時間的な順序が、正しい順序を実行するために当てにされる。このことは、DUV内のRAMが実際にどのくらいの書込ポートを有しているかに拘わらず、循環バッファに蓄積されているデータが、1つの書込ポートのみを介してRAMに書き込まれる場合に、特に正しい。
同様の構成がプロセッサベースのシステムに用いられる場合には、書込ポートのミラー化は、プロセッサベースのシステムには必要でないことに注意する。
また、この実施の形態は、プロセッサベースのシステムにも用いることができることに注意する。プロセッサシステムは、プロセッサベースの検証システムの使用時に、ミラー書込ポートの使用の必要性を除去する。
この実施の形態では、基準クロックは、システムによって内部で発生される。この基準クロックは、システム内の最も速いクロックを移送し損なうことなく、全てのネットを抽出するのに十分な速さ(例えば、十分に高い周波数)を有している必要がある。言い換えれば、この基準クロックの周波数は、DUV内の信号が基準クロックの1サイクルの間に1回以上変化しないように、十分高く設定される必要がある。検証システムのユーザはDUVを熟知しているので、ユーザが基準クロックの周波数を選択すべきである。基準クロックを“サイクル”を決定するために用いることにより、基準クロックの各サイクルを、プロセッサベースのシステムの実行サイクルに類似させることができる。
このような基準クロックの各サイクル中では、任意のメモリの各書込ポートに対して、1回の書込動作のみが実行される。これにより、書込動作は、プロセッサベースのシステムと同じ方法で蓄積される。
他は、多かれ少なかれ、プロセッサベースのシステムで実行されるのと同じである。
図8は、システムが書込動作の時間的な順序の形跡を保持する方法の1例を示すテーブルである。これは、時間領域でデータを正しく配列させることによって順序が決定されるため、再構築ステージが、循環バッファからの全てのデータを1つの書込ポートを介してメモリインスタンスに実際に書き戻すことを意味する。再び、本方法は、ミラーポートの必要性を除去する。
メモリセル200は、アドレス入力A、データ入力D及び書込イネーブル入力WEを有する1ポートメモリである。このメモリセル200をデュアルポートメモリに変更するために、追加の回路が付加されている。マルチプレクサ205は、アドレス入力をメモリ200に送る。マルチプレクサ210は、データ入力をメモリセル200に送る。マルチプレクサ205は、ポート1のアドレス入力A1からの第1入力と、ポート2のアドレス入力A2からの第2入力を有している。マルチプレクサ210は、ポート1のデータ入力D1からの第1入力と、ポート2のデータ入力D2からの第2入力を有している。
ステートマシン215は、ポート1の書込イネーブルWE1からの第1入力と、ポート2の書込イネーブルWE2からの第2入力を有している。ステートマシン215は、エミュレータが実行される周波数よりはるかに速い周波数を有するのが好ましい高速クロック信号を受信するクロック入力を有している。ステートマシン215は、マルチプレクサ205及び210の選択入力を駆動する第1出力を有している。ステートマシン215は、マルチプレクサ220の選択入力を駆動する第2出力を有している。ポート1からの書込イネーブルWE1は、マルチプレクサ220の第1入力を駆動し、ポート2からの書込イネーブルWE2は、マルチプレクサ220の第2入力を駆動する。
再構築されるメモリが、DUVが本来実行されるエミュレータではなく、検証システムに書き込まれる時、捕獲ステージ中に書込動作から記録されたデータと共にDUV内のメモリの内容が、エミュレータを制御するワークステーションに移送される。そして、ソフトウェアプログラムは、前述した方法を用いてメモリの内容を再構築し、再構築されたメモリの内容を、代わりの検証システムに移送する。
ソフトウェアシミュレータのような代替の論理検証システムは、DUVのメモリ動作をシミュレータを用いて解析可能とする。再構築されたメモリが、本来DUVを実行させる同じエミュレータに書き戻される時、RAMの内容はワークステーション内に読み出される必要はない。
バッファ(トレースあるいは線形)の内容は、メモリが再構築されるワークステーションに移送される。再構築の後、ワークステーションは、変化したアドレスのみをエミュレータに戻す。
この方法を用いる場合には、書き込まれたアドレスが分かるようにアドレスを追跡し、データが間違っているアドレスに書き込まれるのを防止する必要があることに注意する。再構築されたメモリが他のエミュレータやソフトウェアエミュレータ等のエミュレータあるいは他の検証システムに移送されるか否かに拘わらず、この再構築処理は、メモリの全ての内容あるいは捕獲ステージ(すなわち、トレースウィンドウ)中に書込動作によって影響を受けるメモリの部分のいずれかで実行可能である。トレースウィンドウ中に書込動作によって影響を受ける、DUV内のメモリの部分でのみ再構築を選択的に実行することによって、エミュレータとワークステーションとの間で前方あるいは後方に移送される必要があるデータ量が著しく減少する。更に、例えば、マルチプレクサ(例えば、マルチプレクサ50、52)が書込ポートへの入力において必要とされないため、必要なネットリストの取り扱いが少なくなる。
30、130a、130b シャドウ読出ポート
40、140a、140b 循環バッファ
45、65、145a、145b、215 ステートマシン
50、52、62、64、150a、150b、152a、152b、205、210、220 マルチプレクサ
60 線形バッファ
Claims (59)
- ランダムアクセスメモリ(RAM)により構成される回路設計が所望の機能を実行することを検証する方法であって、RAMは、少なくとも1つの書込ポート及びデータを蓄積する複数のメモリ位置を有し、複数のメモリ位置の各々はアドレスを有しており、
回路設計をハードウェア論理エミュレーションシステム内にエミュレートし、
RAM内の複数のメモリ位置の中の選択された1つにデータを書き込む前に、RAM内の複数のメモリ位置の中の当該選択された1つに蓄積されているデータを読み出し、
RAM内の複数のメモリ位置の中の前記選択された1つから読み出されたデータを、バッファ内に蓄積されているデータがラストイン−ファーストアウトで出力されるようにそれぞれが配列されている、バッファ内の選択されたメモリ位置に蓄積し、
チェックポイントの後で、前記バッファ内の前記選択されたメモリ位置に蓄積されているデータを、RAM内の複数のメモリ位置の中の前記選択された1つに移動させる。 - 請求項1の方法であって、前記移動ステップの後で、RAM内の複数のメモリ位置の中の前記選択された1つに蓄積されているデータを観察する。
- 請求項1の方法であって、
RAM内の複数のメモリ位置の中の前記選択された1つに蓄積されているデータを読み出すステップでは、
RAM内の少なくとも1つの書込ポートのそれぞれに対して、対応するシャドウ読出ポートを回路設計内に挿入し、
RAM内の複数のメモリ位置の中の前記選択された1つに蓄積されているデータが前記対応するシャドウ読出ポートによって読み出されるように、前記対応するシャドウ読出ポートによって読出動作を実行する。 - 請求項1の方法であって、前記移動ステップでは、更に、
前記バッファ内の前記選択されたメモリ位置のそれぞれがラストイン−ファーストアウト方法で読み出されるように、前記バッファへのアドレス入力をデクリメントし、
前記バッファ内の前記選択されたメモリ位置のそれぞれからのデータを、RAMの少なくとも1つの書込ポートの中の1つに配置し、
RAMの少なくとも1つの書込ポートの中の1つに配置されている、前記バッファ内の前記選択されたメモリ位置のそれぞれからのデータをRAM内の複数のメモリ位置の中の前記選択された1つに書き込む。 - 請求項4の方法であって、前記観察ステップでは、更に、
前記書込ステップの後に、RAM内のメモリ位置の中の少なくともいくつかにおいて観察する。 - 回路設計が所望の機能を実行することを検証する装置であって、回路設計は、データ入力とアドレス入力を有する書込ポート、読出ポート及びデータを蓄積する複数のメモリ位置を有するRAMにより構成され、複数のメモリ位置のそれぞれはアドレスを有しており、
書込ポートに対応し、アドレス入力からのアドレスを受信するアドレス入力及びデータ出力を有するシャドウ読出ポートと、
RAMのアドレス入力及び前記シャドウ読出ポートの前記データ出力に接続され、アドレス出力及びデータ出力を有するバッファと、
前記バッファの前記アドレス出力に接続されている第1入力及びRAMのアドレス入力に接続されている第2入力を有し、アドレス入力を書込ポートに送る第1マルチプレクサと、
前記バッファの前記データ出力に接続されている第1入力及びRAMのデータ入力に接続されている第2入力を有し、データ入力を書込ポートに送る第2マルチプレクサを備え、
前記第1マルチプレクサ及び第2マルチプレクサは、それぞれ第1モードと第2モードの間を切り替える選択入力を有している。 - 請求項6の装置であって、前記バッファは、ステートマシンに接続されている。
- 請求項6の装置であって、前記第1モードは、前記第1マルチプレクサによって、RAMのアドレス入力からの信号が書込ポートのアドレス入力に送られることを可能とするとともに、第2マルチプレクサによって、RAMのデータ入力からの信号が書込ポートのデータ入力に送られることを可能とする。
- 請求項8の装置であって、前記第2モードは、前記第1マルチプレクサによって、前記バッファの前記アドレス出力からの信号が書込ポートのアドレス入力に送られることを可能とするとともに、前記第2マルチプレクサによって、前記バッファのデータ出力からの信号が書込ポートのデータ入力に送られることを可能とする。
- 請求項9の装置であって、更に、前記バッファに接続されているステートマシンを備えている。
- 請求項10の装置であって、前記ステートマシンは、装置が前記第2モードにある時、前記バッファに蓄積されているデータ及びアドレスの、前記バッファの前記アドレス出力及び前記データ出力からの読み出しを制御する。
- 回路設計が所望の機能を実行することを検証する装置であって、回路設計は、第1データ入力及び第1アドレス入力を有する第1書込ポートと、第2データ入力及び第2アドレス入力を有する第2書込ポートと、第1設計データ入力と、第1設計アドレス入力と、第2設計データ入力と、第2設計アドレス入力と、データを蓄積する複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成され、複数のメモリ位置のそれぞれはアドレスを有しており、
第1書込ポートに対応し、第1設計アドレス入力からのアドレスを受信するアドレス入力及びデータ出力を有する第1シャドウ読出ポートと、
第2書込ポートに対応し、第2設計アドレス入力からのアドレスを受信するアドレス入力及びデータ出力を有する第2シャドウ読出ポートと、
第1設計アドレス入力及び前記第1シャドウ読出ポートの前記データ出力に接続され、アドレス出力及びデータ出力を有する第1バッファと、
第2設計アドレス入力及び前記第2シャドウ読出ポートの前記データ出力に接続され、アドレス出力及びデータ出力を有する第2バッファと、
前記第2バッファの前記アドレス出力に接続されている第1入力及び第1設計アドレス入力に接続されている第2入力を有し、第1アドレス入力を第1書込ポートに送る第1マルチプレクサと、
前記第2バッファの前記データ出力に接続されている第1入力及び第1設計データ入力に接続されている第2入力を有し、第1データ入力を第1書込ポートに送る第2マルチプレクサと、
前記第1バッファの前記アドレス出力に接続されている第1入力及び第2設計アドレス入力に接続されている第2入力を有し、第2アドレス入力を第2書込ポートに送る第3マルチプレクサと、
前記第1バッファの前記データ出力に接続されている第1入力及び第2設計データ入力に接続されている第2入力を有し、第2データ入力を第2書込ポートに送る第4マルチプレクサを備え、
前記第1マルチプレクサ、前記第2マルチプレクサ、前記第3マルチプレクサ及び前記第4マルチプレクサは、それぞれ第1モードと第2モードの間を切り替える選択入力を有している。 - ランダムアクセスメモリ(RAM)により構成される回路設計を、デバッグ可能に製造する方法であって、RAMは、書込ポート及びデータを蓄積する複数のメモリ位置を有し、複数のメモリ位置のそれぞれはアドレスを有しており、
回路設計からのアドレスを受信するアドレス入力及びデータ出力を有するシャドウ読出ポートを、書込ポートに対応する回路設計に挿入し、
データを選択されたメモリアドレスに書込ポートにより書き込む前に、前記選択されたメモリアドレスに蓄積されているデータを前記シャドウ読出ポートにより読み出すように計画し、
前記シャドウ読出ポートの前記データ出力を、データ出力及びアドレス出力を有し、前記計画ステップにおいて読み出されたデータを選択されたメモリ位置に蓄積するバッファに相互接続し、
回路設計からのアドレス入力に接続されている第1入力を有する第1マルチプレクサが、アドレス入力を書込ポートに送るように、第1マルチプレクサを回路設計に挿入し、
回路設計からのデータ入力に接続されている第1入力を有する第2マルチプレクサが、データ入力を書込ポートに送るように、第2マルチプレクサを回路設計に挿入し、
前記バッファの前記アドレス出力を前記第1マルチプレクサの第2入力に接続し、
前記バッファの前記データ出力を前記第2マルチプレクサの第2入力に接続し、
チェックポイントの後に、前記バッファ内の前記選択されたメモリ位置に蓄積されているデータを、RAM内の複数のメモリ位置の中の選択された1つに移動させる。 - 請求項13の方法であって、前記移動ステップでは、更に、
RAM内の複数のメモリ位置の中の選択された1つのそれぞれが前記チェックポイントの前に保持されているステートにリワインドされるように、前記バッファ内の前記選択されたメモリ位置に蓄積されているデータをラストイン−ファーストアウトの順序で送る。 - 請求項13の方法であって、更に、前記移動ステップの後で、RAM内の複数のメモリ位置の中の選択された1つに蓄積されている、少なくともいくつかのデータを観察する。
- 回路設計が所望の機能を実行することを機能検証システムを用いることによって検証する方法であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)によって構成されており、
回路設計を機能検証システム内で実行させ、
データをRAMに書き込む前にデータを読み出し、
前記データをバッファに蓄積し、
チェックポイントにおいて、前記バッファに蓄積されているデータを、前記データが前記バッファに書き込まれた順序と逆の順序で読み出し、
前記データが前記バッファから読み出される時、前記データを前記RAMに書き込む。 - 請求項16の方法であって、機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 請求項17の方法であって、前記ハードウェア論理検証システムは、プロセッサベースのエミュレーションシステムである。
- 請求項17の方法であって、前記ハードウェア論理検証システムは、フィールドプログラマブルゲートアレイ(FPGA)ベースのエミュレーションシステムである。
- 請求項16の方法であって、機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 回路設計が所望の機能を実行することを検証する装置であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を機能検証システム内で実行させる手段と、
データをRAM内に書き込む前にデータを読み出す手段と、
前記データをバッファに蓄積する手段と、
前記バッファに蓄積されているデータを、チェックポイントにおいて前記バッファに書き込まれたデータから逆の順序で読み出す手段と、
前記データが前記バッファから読み出される時、前記データを前記RAMに書き込む手段を備えている。 - 請求項21の装置であって、前記機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 請求項22の装置であって、前記ハードウェア論理検証システムは、プロセッサベースのエミュレーションシステムである。
- 請求項22の装置であって、前記ハードウェア論理検証システムは、フィールドプログラマブルゲートアレイ(FPGA)ベースのエミュレーションシステムである。
- 請求項21の装置であって、機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 回路設計が所望の機能を実行することを検証する方法であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を第1機能検証システム内で実行させ、
新しいデータをRAM内のアドレスに書き込む前に、前記RAM内の前記アドレスに以前に蓄積されたデータを読み出し、
前記以前に蓄積されたデータを第1機能検証システムから外部システムに移動させ、
チェックポイントにおいて、設定された時点におけるRAMの複数のメモリ位置に対応する、再構築されたメモリを生成するために、前記外部システム内の前記以前に蓄積されたデータを再構築し、
前記再構築ステップは、
前記以前に蓄積されたデータをラストイン−ファーストアウトの順序で読み出し、
前記以前に蓄積されたデータを前記外部システム内のメモリに書き込むことによって前記再構築されたメモリを生成する。 - 請求項26の方法であって、更に、
前記データを再構築した後に、前記再構築されたメモリを前記第1機能検証システムに移動させ、
前記再構築されたメモリをRAMに書き込む。 - 請求項26の方法であって、更に、前記データを再構築した後に、前記再構築されたメモリを第2機能検証システムに移動させる。
- 請求項28の方法であって、前記第2機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 請求項26の方法であって、前記第1機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 回路設計が所望の機能を実行することを機能検証システムを用いて検証する方法であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を機能検証システム内で実行させ、
書込動作が実行された順序に対応する時間的な順序で蓄積されたアドレス及び当該アドレスに蓄積されるデータにより構成される書込動作の全てをバッファに蓄積し、
前記バッファに蓄積されている前記書込動作のそれぞれを再生することによってRAMのイメージを再構築し、
前記イメージを前記機能検証システムに書き込む。 - 請求項31の方法であって、機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 請求項32の方法であって、前記ハードウェア論理検証システムは、プロセッサベースのエミュレーションシステムである。
- 請求項32の方法であって、前記ハードウェア論理検証システムは、フィールドプログラマブルゲートアレイ(FPGA)ベースのエミュレーションシステムである。
- 請求項31の方法であって、機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 回路設計が所望の機能を実行することを第1機能検証システムを用いて検証する方法であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を第1機能検証システム内で実行させ、
書込動作が実行された順序に対応する時間的な順序で蓄積されたアドレス及び当該アドレスに蓄積されるデータにより構成される書込動作の全てをバッファに蓄積し、
前記バッファに蓄積されている前記書込動作のそれぞれを再生することによって、前記各書込動作中に書き込まれた、少なくとも前記アドレスの前記データにより構成される、RAMのイメージを再構築し、
前記イメージを第2機能検証システムに書き込む。 - 請求項36の方法であって、第1機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 請求項37の方法であって、前記ハードウェア論理検証システムは、プロセッサベースのエミュレーションシステムである。
- 請求項37の方法であって、前記ハードウェア論理検証システムは、フィールドプログラマブルゲートアレイ(FPGA)ベースのエミュレーションシステムである。
- 請求項36の方法であって、第1機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 請求項36の方法であって、第2機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 請求項36の方法であって、第2機能意検証システムは、ハードウェア論理検証システムにより構成されている。
- 回路設計が所望の機能を実行することを機能検証システムを用いて検証する装置であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を機能検証システム内で実行させる手段と、
書込動作が実行された順序に対応する時間的な順序で蓄積されたアドレス及び当該アドレスに蓄積されるデータにより構成される書込動作の全てをバッファに蓄積する手段と、
前記バッファに蓄積されている前記書込動作のそれぞれを再生することによって、前記各書込動作中に書き込まれた、少なくとも前記アドレスの前記データにより構成される、RAMのイメージを再構築する手段と、
前記イメージを前記機能検証システム内に書き込む手段とを備える。 - 請求項43の装置であって、機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 請求項44の装置であって、前記ハードウェア論理検証システムは、プロセッサベースのエミュレーションシステムである。
- 請求項44の装置であって、前記ハードウェア論理検証システムは、フィールドプログラマブルゲートアレイ(FPGA)ベースのエミュレーションシステムである。
- 請求項43の装置であって、機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 回路設計が所望の機能を実行することを第1機能検証システムを用いて検証する装置であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を第1機能検証システム内で実行させる手段と、
書込動作が実行された順序に対応する時間的な順序で蓄積されたアドレス及び当該アドレスに蓄積されるデータにより構成される書込動作の全てをバッファに蓄積する手段と、
前記バッファに蓄積されている前記書込動作のそれぞれを再生することによって、前記各書込動作中に書き込まれた、少なくとも前記アドレスの前記データにより構成される、RAMのイメージを再構築する手段と、
前記イメージを第2機能検証システム内に書き込む手段とを備える。 - 請求項48の装置であって、第1機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 請求項49に記載の装置であって、前記ハードウェア論理検証システムは、プロセッサベースのエミュレーションシステムである。
- 請求項49の装置であって、前記ハードウェア論理検証システムは、フィールドプログラマブルゲートアレイ(FPGA)ベースのエミュレーションシステムである。
- 請求項48の装置であって、第1機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 請求項48の装置であって、第2機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 請求項48の装置であって、第2機能検証システムは、ハードウェア論理検証システムにより構成されている。
- 回路設計が所望の機能を実行することを検証する装置であって、回路設計は、少なくとも1つの書込ポート及び複数のメモリ位置を有するランダムアクセスメモリ(RAM)により構成されており、
回路設計を第1機能検証システム内で実行させる手段と、
新しいデータをRAM内のアドレスに書き込む前に、RAM内の前記アドレスに以前に蓄積されたデータを読み出す手段と、
前記以前に蓄積されたデータを第1機能検証システムから外部のシステムに移動させる手段と、
設定時点におけるRAMの複数のメモリ位置に対応する、再構築されたメモリを生成するために、チェックポイントにおける前記外部システム内の前記以前に蓄積されたデータを再構築する手段を備え、
前記再構築手段は、
前記以前に蓄積されたデータをラストイン−ファーストアウトの順序で読み出す手段と、
前記以前に蓄積されたデータを前記外部システム内のメモリに書き込むことによって、前記再構築されたメモリを生成する手段を有している。 - 請求項55の装置であって、更に、
前記データを再構築した後に、前記再構築されたメモリを前記第1機能検証システムに移動させる手段と、
前記再構築されたメモリをRAMに書き込む手段を備えている。 - 請求項55の装置であって、更に、前記データを再構築した後に、前記再構築されたメモリを第2機能検証システムに移動させる手段を備えている。
- 請求項57の装置であって、前記第2機能検証システムは、ソフトウェアシミュレータにより構成されている。
- 請求項55の装置であって、前記第1機能検証システムは、ハードウェア論理検証システムにより構成されている。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US44217603P | 2003-01-23 | 2003-01-23 | |
US10/373,558 US7440884B2 (en) | 2003-01-23 | 2003-02-24 | Memory rewind and reconstruction for hardware emulator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004227571A true JP2004227571A (ja) | 2004-08-12 |
JP4439926B2 JP4439926B2 (ja) | 2010-03-24 |
Family
ID=32599725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004006505A Expired - Fee Related JP4439926B2 (ja) | 2003-01-23 | 2004-01-14 | ハードウェアエミュレータのためのメモリリワインド及び再構築 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7440884B2 (ja) |
EP (1) | EP1441296A2 (ja) |
JP (1) | JP4439926B2 (ja) |
KR (1) | KR101044169B1 (ja) |
CN (1) | CN100359473C (ja) |
TW (1) | TWI349231B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014002712A (ja) * | 2012-05-25 | 2014-01-09 | Fujitsu Ltd | シミュレーション方法、およびシミュレーションプログラム |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6659504B2 (en) * | 2001-05-18 | 2003-12-09 | Delphi Technologies, Inc. | Steering column for a vehicle |
JP3766413B2 (ja) * | 2003-09-10 | 2006-04-12 | 沖電気工業株式会社 | データ並び替え方法 |
US7379861B2 (en) * | 2004-05-28 | 2008-05-27 | Quickturn Design Systems, Inc. | Dynamic programming of trigger conditions in hardware emulation systems |
US7353162B2 (en) * | 2005-02-11 | 2008-04-01 | S2C, Inc. | Scalable reconfigurable prototyping system and method |
US20070038431A1 (en) * | 2005-08-12 | 2007-02-15 | Arm Limited | Data processing apparatus simulation |
CN100383798C (zh) * | 2005-09-07 | 2008-04-23 | 深圳市海思半导体有限公司 | 一种对随机存储器封装文件进行仿真的仿真平台及方法 |
US8108198B2 (en) * | 2006-02-21 | 2012-01-31 | Mentor Graphics Corporation | Memory tracing in an emulation environment |
WO2007098804A1 (en) | 2006-02-28 | 2007-09-07 | Mentor Graphics Corp. | Memory-based trigger generation scheme in an emulation environment |
US7555424B2 (en) * | 2006-03-16 | 2009-06-30 | Quickturn Design Systems, Inc. | Method and apparatus for rewinding emulated memory circuits |
JP4855177B2 (ja) * | 2006-08-10 | 2012-01-18 | 住友大阪セメント株式会社 | 静電チャック装置 |
US8756557B2 (en) | 2007-05-09 | 2014-06-17 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7984400B2 (en) | 2007-05-09 | 2011-07-19 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7904859B2 (en) | 2007-05-09 | 2011-03-08 | Synopsys, Inc. | Method and apparatus for determining a phase relationship between asynchronous clock signals |
US7908574B2 (en) | 2007-05-09 | 2011-03-15 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
DE102007044803A1 (de) * | 2007-09-20 | 2009-04-09 | Robert Bosch Gmbh | Schaltungsanordnung zur Signalaufnahme und -erzeugung sowie Verfahren zum Betreiben dieser Schaltungsanordnung |
US7930165B2 (en) * | 2008-02-07 | 2011-04-19 | Accemic Gmbh & Co. Kg | Procedure and device for emulating a programmable unit providing system integrity control |
US9069918B2 (en) * | 2009-06-12 | 2015-06-30 | Cadence Design Systems, Inc. | System and method implementing full-rate writes for simulation acceleration |
US9384107B2 (en) * | 2010-11-08 | 2016-07-05 | Mentor Graphics Corporation | Improper voltage level detection in emulation systems |
KR20160049200A (ko) * | 2014-10-27 | 2016-05-09 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법 |
CN104536807B (zh) * | 2014-12-30 | 2018-05-18 | 武汉理工大学 | 基于fpga的dc/dc实时仿真器及方法 |
US9286424B1 (en) * | 2015-05-04 | 2016-03-15 | Synopsys, Inc. | Efficient waveform generation for emulation |
US9852244B2 (en) | 2015-05-04 | 2017-12-26 | Synopsys, Inc. | Efficient waveform generation for emulation |
US10210294B1 (en) * | 2015-07-09 | 2019-02-19 | Xilinx, Inc. | System and methods for simulating a circuit design |
US9684746B2 (en) * | 2015-10-13 | 2017-06-20 | Synopsys, Inc. | Signal reconstruction in sequential logic circuitry |
US11038768B1 (en) * | 2016-09-15 | 2021-06-15 | Xilinx, Inc. | Method and system for correlation of a behavioral model to a circuit realization for a communications system |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0437491B1 (en) | 1988-10-05 | 1995-12-13 | Quickturn Systems Inc | Method of using electronically reconfigurable gate array logic and apparatus formed thereby |
US5109353A (en) | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
JPH05151305A (ja) * | 1991-11-29 | 1993-06-18 | Hokuriku Nippon Denki Software Kk | 論理検証装置 |
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 |
US5398330A (en) * | 1992-03-05 | 1995-03-14 | Seiko Epson Corporation | Register file backup queue |
JPH05274384A (ja) * | 1992-03-26 | 1993-10-22 | Sharp Corp | アナログ回路の設計方法 |
US5425036A (en) | 1992-09-18 | 1995-06-13 | Quickturn Design Systems, Inc. | Method and apparatus for debugging reconfigurable emulation systems |
IL109921A (en) * | 1993-06-24 | 1997-09-30 | Quickturn Design Systems | Method and apparatus for configuring memory circuits |
US5568380A (en) | 1993-08-30 | 1996-10-22 | International Business Machines Corporation | Shadow register file for instruction rollback |
US5455929A (en) * | 1993-10-14 | 1995-10-03 | Texas Instruments Incorporated | Logic simulator employing hierarchical checkpointing |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US5604889A (en) * | 1994-06-15 | 1997-02-18 | Texas Instruments Incorporated | Memory management system for checkpointed logic simulator with increased locality of data |
US5819065A (en) * | 1995-06-28 | 1998-10-06 | Quickturn Design Systems, Inc. | System and method for emulating memory |
US5777489A (en) | 1995-10-13 | 1998-07-07 | Mentor Graphics Corporation | Field programmable gate array with integrated debugging facilities |
US5822564A (en) * | 1996-06-03 | 1998-10-13 | Quickturn Design Systems, Inc. | Checkpointing in an emulation system |
JP2916420B2 (ja) * | 1996-09-04 | 1999-07-05 | 株式会社東芝 | チェックポイント処理加速装置およびデータ処理方法 |
TW379298B (en) * | 1996-09-30 | 2000-01-11 | Toshiba Corp | Memory updating history saving device and memory updating history saving method |
US5960191A (en) | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US5943490A (en) | 1997-05-30 | 1999-08-24 | Quickturn Design Systems, Inc. | Distributed logic analyzer for use in a hardware logic emulation system |
US6138266A (en) * | 1997-06-16 | 2000-10-24 | Tharas Systems Inc. | Functional verification of integrated circuit designs |
US6035117A (en) | 1998-03-31 | 2000-03-07 | International Business Machines Corporation | Tightly coupled emulation processors |
US6051030A (en) | 1998-03-31 | 2000-04-18 | International Business Machines Corporation | Emulation module having planar array organization |
US6061511A (en) | 1998-06-12 | 2000-05-09 | Ikos Systems, Inc. | Reconstruction engine for a hardware circuit emulator |
KR100337006B1 (ko) | 1998-11-17 | 2002-05-17 | 김 만 복 | 전자회로 설계검증장치 및 방법 |
US6622263B1 (en) * | 1999-06-30 | 2003-09-16 | Jack Justin Stiffler | Method and apparatus for achieving system-directed checkpointing without specialized hardware assistance |
US6697957B1 (en) | 2000-05-11 | 2004-02-24 | Quickturn Design Systems, Inc. | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
US6766428B2 (en) * | 2001-04-06 | 2004-07-20 | Sun Microsystems, Inc. | Method and apparatus for storing prior versions of modified values to facilitate reliable execution |
US6948112B2 (en) * | 2001-05-10 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | System and method for performing backward error recovery in a computer |
US6941489B2 (en) * | 2002-02-27 | 2005-09-06 | Hewlett-Packard Development Company, L.P. | Checkpointing of register file |
US7058849B2 (en) * | 2002-07-02 | 2006-06-06 | Micron Technology, Inc. | Use of non-volatile memory to perform rollback function |
-
2003
- 2003-02-24 US US10/373,558 patent/US7440884B2/en active Active
- 2003-11-21 TW TW092132739A patent/TWI349231B/zh not_active IP Right Cessation
-
2004
- 2004-01-14 JP JP2004006505A patent/JP4439926B2/ja not_active Expired - Fee Related
- 2004-01-20 KR KR1020040004109A patent/KR101044169B1/ko not_active IP Right Cessation
- 2004-01-23 EP EP04001480A patent/EP1441296A2/en not_active Withdrawn
- 2004-01-29 CN CNB2004100035577A patent/CN100359473C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014002712A (ja) * | 2012-05-25 | 2014-01-09 | Fujitsu Ltd | シミュレーション方法、およびシミュレーションプログラム |
Also Published As
Publication number | Publication date |
---|---|
KR20040067996A (ko) | 2004-07-30 |
JP4439926B2 (ja) | 2010-03-24 |
EP1441296A2 (en) | 2004-07-28 |
KR101044169B1 (ko) | 2011-06-24 |
TWI349231B (en) | 2011-09-21 |
CN100359473C (zh) | 2008-01-02 |
US20040148153A1 (en) | 2004-07-29 |
US7440884B2 (en) | 2008-10-21 |
CN1573695A (zh) | 2005-02-02 |
TW200424941A (en) | 2004-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4439926B2 (ja) | ハードウェアエミュレータのためのメモリリワインド及び再構築 | |
US7437692B2 (en) | Memory debugger for system-on-a-chip designs | |
JP4989629B2 (ja) | 複製ロジック及びトリガロジックを用いたデバッグのための方法及びシステム | |
US4769817A (en) | Concurrent fault simulation for logic designs | |
Civera et al. | Exploiting circuit emulation for fast hardness evaluation | |
EP3785124B1 (en) | Memory validity states in time-travel debugging | |
US7404160B2 (en) | Method and system for hardware based reporting of assertion information for emulation and hardware acceleration | |
US20110184713A1 (en) | Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same | |
US20060271345A1 (en) | Debugging a circuit using a circuit simulation verifier | |
US6829751B1 (en) | Diagnostic architecture using FPGA core in system on a chip design | |
US8259517B2 (en) | Random access memory for use in an emulation environment | |
US7555424B2 (en) | Method and apparatus for rewinding emulated memory circuits | |
EP1913410B1 (en) | Method and system for debug and test using replicated logic | |
Attia et al. | StateMover: Combining simulation and hardware execution for efficient FPGA debugging | |
EP1546947A2 (en) | Method and system for debugging using replicated logic | |
Gong et al. | Modeling dynamically reconfigurable systems for simulation-based functional verification | |
Attia et al. | Stop and look: A novel checkpointing and debugging flow for FPGAs | |
EP1450278B1 (en) | Methods and apparatus for verifying the operation of a circuit design | |
Gong et al. | Functional verification of dynamically reconfigurable FPGA-based systems | |
US20090055155A1 (en) | Simulating execution of software programs in electronic circuit designs | |
Chuang et al. | A snapshot method to provide full visibility for functional debugging using FPGA | |
JP3838756B2 (ja) | 回路設計支援装置 | |
Attia | Hardware Checkpointing and Productive Debugging Flows for FPGAs | |
de Andrés et al. | Fast run-time reconfiguration for SEU injection | |
Ulrich et al. | Fault Simulation of Diagnostic Programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090528 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090827 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090901 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091027 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091127 |
|
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: 20091218 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100106 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130115 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: 20130115 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |