JP2009031933A - Scalable reconfigurable prototype system and method - Google Patents
Scalable reconfigurable prototype system and method Download PDFInfo
- Publication number
- JP2009031933A JP2009031933A JP2007193721A JP2007193721A JP2009031933A JP 2009031933 A JP2009031933 A JP 2009031933A JP 2007193721 A JP2007193721 A JP 2007193721A JP 2007193721 A JP2007193721 A JP 2007193721A JP 2009031933 A JP2009031933 A JP 2009031933A
- Authority
- JP
- Japan
- Prior art keywords
- tool
- programmable logic
- user
- signal
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
Description
本発明は回路設計の自動化と検証(validation)技術に関し、特に、本発明はシステム・オン・チップ型(SoC)回路の設計の自動化と検証技術に関する。 The present invention relates to circuit design automation and validation techniques, and in particular, the present invention relates to system on-chip (SoC) circuit design automation and validation techniques.
集積度の向上に伴い、多くの複雑な論理システムが現在1つの集積回路上で実現される。このような集積回路はシステム・オン・チップ(SoC)と呼ばれる。SoCには一般に、マイクロプロセッサや周辺設備、メモリコントローラ等、いくつかの複雑なユニットが含まれる。多くのSoCはいくつかの他メーカーの既存の回路設計を採用しており、これらの回路設計を業界では「IPコア」と呼んでいる。 With increasing integration, many complex logic systems are currently implemented on a single integrated circuit. Such an integrated circuit is called a system on chip (SoC). The SoC generally includes several complex units such as a microprocessor, peripheral equipment, and a memory controller. Many SoCs employ existing circuit designs from several other manufacturers, and these circuit designs are referred to in the industry as “IP cores”.
現有技術においては、ユーザデザインを含む1つまたは複数のサードパーティのIPコアを統合したシステムにデバッグを行なうことは非常に困難であり、これは、ユーザが往々にしてユーザデザインとIPコアのインターフェースを介しIPコアのタイミングと論理動作を完全に制御できないからである。例えば、ユーザデザインの不正確な出力信号がIPコアに予期できない動作を発生させ、さらにIPコアの動作がユーザデザインにフィードバックされてユーザデザインを予期できない状態にさせてしまう。このようなエラーは診断とポジショニングが極めて難しい。このため、設計者がユーザデザインとIPコア間のインターフェースを制御できるようにする設計ツールが必要とされている。 In current technology, it is very difficult to debug into a system that integrates one or more third party IP cores, including user designs, which is often the user interface between user designs and IP cores. This is because the timing and logic operation of the IP core cannot be completely controlled via the network. For example, an incorrect output signal of the user design causes an unexpected operation in the IP core, and the operation of the IP core is fed back to the user design to make the user design in an unpredictable state. Such errors are extremely difficult to diagnose and position. For this reason, there is a need for a design tool that allows the designer to control the interface between the user design and the IP core.
本発明の目的は、再構成可能型プラットフォームを介しユーザデザインの設計とエミュレーションに用いるシステム及びその方法を提供することにある。 It is an object of the present invention to provide a system and method for use in user design design and emulation via a reconfigurable platform.
本発明の方法は特にIPベースの設計方法学に適用でき、例えばユーザが自己設計したユーザデザインとサードパーティのIPコアを実行できるSoCタイプの設計に適用することができる。本発明はメモリと一定数量のフィールド・プログラマブル・ロジック・デバイス(field programmable logic device)から構成されるプラットフォーム上で実現することができる。ここにおけるフィールド・プログラマブル・ロジック・デバイスは、プログラマブル・ゲート・アレイ(programmable gate array)とすることができる。さまざまなカスタマイズされた回路をユーザデザインと相互作用させて構成し、デバッグやパフォーマンス分析、シミュレータとの接続等の機能を提供することができる。 The method of the present invention is particularly applicable to IP-based design methodology, for example, a user design self-designed by a user and a SoC type design capable of executing a third party IP core. The present invention can be implemented on a platform composed of a memory and a certain number of field programmable logic devices. The field programmable logic device herein can be a programmable gate array. Various customized circuits can be configured to interact with the user design to provide functions such as debugging, performance analysis, and simulator connection.
本発明の具体的な一実施例において、ユーザデザインの設計とエミュレーションに用いるシステムは、(1)ユーザワークステーションと接続されるインターフェースとデータ通信インターフェースを備えたシステムコントローラと、(2)前記データ通信インターフェースと接続される模擬プラットフォームを含み、前記模擬プラットフォームが複数のフィールド・プログラマブル・ロジック・デバイスとメモリデバイスを含み、ユーザデザインとサードパーティIPコアの実現に用いられ、前記プラットフォームはさらにターゲットシステムに接続するインターフェースを含み、実行時にユーザデザインと相互作用する。前記データ通信インターフェースは一組のコンフィギュレーションバス、一組のシステムアクセスバス、一組のクロックバスを含む。前記のターゲットシステムに接続するインターフェースは一組プログラマブルデバイスの入力/出力ポートからの信号を含む。 In a specific embodiment of the present invention, a system used for designing and emulating a user design includes (1) a system controller having an interface connected to a user workstation and a data communication interface, and (2) the data communication. Including a simulated platform connected to an interface, wherein the simulated platform includes a plurality of field programmable logic devices and memory devices and is used to implement a user design and a third party IP core, the platform further connected to a target system Interface that interacts with the user design at runtime. The data communication interface includes a set of configuration buses, a set of system access buses, and a set of clock buses. The interface connected to the target system includes signals from the input / output ports of a set of programmable devices.
本発明の具体的な一実施例に基づき、ユーザデザインの設計とエミュレーションに用いるシステムを使用して、ユーザはユーザデザインと1つまたは複数のサードパーティIPコアを含む最上位モジュールを生成する。続いてユーザはユーザデザインを統合することができる。ユーザデザインとサードパーティIPコアは合理的に複数のブロックに区分され、各ブロックは1つまたは複数のプログラマブル・ロジック・デバイスで実現される。このほか、各プログラマブル・ロジック・デバイスと各IPコアはすべて1つのインターフェースモジュールが割り当てられる。前記インターフェースモジュールを介していずれかのプログラマブル・ロジック・デバイス内に実現されたIPコアに別のいずれかの同じプログラマブル・ロジック・デバイス内のブロック、または別のプログラマブル・ロジック・デバイス内のいずれかのブロックと通信させることもできる。これらブロックとインターフェースモジュールは後に配線され、プログラマブル・ロジック・デバイス内に物理的に実現される。 In accordance with a specific embodiment of the present invention, using the system used for user design design and emulation, the user generates a top-level module that includes the user design and one or more third-party IP cores. The user can then integrate the user design. The user design and the third party IP core are reasonably partitioned into multiple blocks, each block being implemented with one or more programmable logic devices. In addition, each programmable logic device and each IP core are all assigned one interface module. Any of the blocks in any one of the same programmable logic devices to the IP core implemented in any of the programmable logic devices via the interface module, or in any of the other programmable logic devices You can also communicate with the block. These blocks and interface modules are later wired and physically implemented in the programmable logic device.
本発明の具体的な一実施例に基づき、前記各IPコアまたは各プログラマブル・ロジック・デバイス内に割り当てられるインターフェースモジュールは、制御回路と一組の可変数量の入力/出力ユニットを含み、各ユニットが1ビット(1−bit)の相互接続ポートを提供する。前記実施例において、各入力/出力ユニットは動的再構成可能型のメモリモジュール、1ビットの相互接続ポートに出力する出力信号を選択するためのマルチパスセレクタ及び一定数量のラッチを含み、各ラッチは1ビットの相互接続ポートから受信される信号を選択的に捕らえることができる。前記マルチパスセレクタとラッチは動的再構成可能型メモリモジュールのメモリに保存された数値で制御することができる。前記動的再構成可能型メモリモジュールは1つまたは複数の動的再構成可能型メモリユニットから構成することができ、且つステートマシン(例:カウンター)が生成するアドレスにアクセスする。動的再構成可能型メモリモジュールは通常ユーザデザインで使用するクロック周波数より高いクロックを使用して操作することができる。 In accordance with a specific embodiment of the present invention, the interface module allocated within each IP core or each programmable logic device includes a control circuit and a set of variable quantity input / output units, each unit comprising: Provides a 1-bit interconnect port. In the embodiment, each input / output unit includes a dynamically reconfigurable memory module, a multipath selector for selecting an output signal to be output to a 1-bit interconnection port, and a certain number of latches. Can selectively capture signals received from a 1-bit interconnect port. The multi-pass selector and the latch can be controlled by numerical values stored in the memory of the dynamically reconfigurable memory module. The dynamically reconfigurable memory module may be composed of one or more dynamically reconfigurable memory units and accesses an address generated by a state machine (eg, a counter). A dynamically reconfigurable memory module can be operated using a clock that is higher than the clock frequency normally used in the user design.
前記インターフェースモジュールは出力ポート、入力ポート、双方向ポートまたは3ステートポートを実現するために用いることができる。また、インターフェースモジュール内に実現されるポートのタイプは動態的に変更することができる。根據指定のテストまたはデバッグ状況(例えばバウンダリスキャン操作中など)に基づき、インターフェースモジュールは1つのプログラマブル・ロジック・デバイス中のIPコアとその他同一または異なるプログラマブル・ロジック・デバイス中のIPコアを隔離するよう構成して用いることもできる。 The interface module can be used to implement an output port, an input port, a bidirectional port, or a three-state port. Also, the type of port implemented in the interface module can be dynamically changed. Based on a definitive test or debug situation (such as during a boundary scan operation), the interface module may isolate an IP core in one programmable logic device from another in the same or different programmable logic device. It can also be configured and used.
本発明の具体的な一実施例に基づき、1つまたは複数のプログラマブル・ロジック・デバイスは検証IPコアに割り当て、ユーザ回路の機能検証に用いることができる。例えば、このような検証IPコアは業界標準バスのシミュレーション操作を含むことができる。 In accordance with a specific embodiment of the present invention, one or more programmable logic devices can be assigned to a verification IP core and used for functional verification of a user circuit. For example, such a verification IP core can include industry standard bus simulation operations.
本発明の別の具体的な一実施例に基づき、1つまたは複数のプログラマブル・ロジック・デバイスはパフォーマンス分析IPコアに割り当てることができる。例えば、パフォーマンス分析IPコアはバス帯域幅を分析するために用いるIPコアを含むことができる。 In accordance with another specific embodiment of the present invention, one or more programmable logic devices can be assigned to a performance analysis IP core. For example, the performance analysis IP core can include an IP core used to analyze bus bandwidth.
本発明の具体的な一実施例に基づき、前記システムは選択したプログラマブル・ロジック・デバイス中の論理回路の動的再構成に用いるコンフィギュレーションツールを提供する。前記コンフィギュレーションツールは、複数のプログラマブル・ロジック・デバイスを備えた回路板上のバスを動的再構成するために用いるバックプレーンコンフィギュレーションツールを含むことができる。 In accordance with a specific embodiment of the present invention, the system provides a configuration tool for use in dynamic reconfiguration of logic circuits in selected programmable logic devices. The configuration tool may include a backplane configuration tool used to dynamically reconfigure a bus on a circuit board with a plurality of programmable logic devices.
本発明の具体的な一実施例に基づき、前記システムは進行時に複数のプログラマブル・ロジック・デバイス間の信号を監視測定し分析するシステムデバッグツールを提供する。前記システムデバッグツールは、FPGA(フィールド・プログラマブル・ゲート・アレイ)リードバックツール、システムアクセスバス操作ツール、内部ロジックアナライザツール、帯域幅分析ツール、コード/イベント抽出ツールとシミュレータ接続ツールを含むことができる。前記内部ロジックアナライザツールは1つまたは複数のプログラマブル・ロジック・デバイス中にロジックアナライザ回路を挿入する。コード/イベント抽出ツールはユーザに1つまたは複数の信号を関連付け、1つのコード名を設定するか、複数の信号から構成する1つのイベントを設定させることができる。1つのイベントは一定時間内の一組の信号波形で設定することができる。デバッグツールはイベントの発生を検知し、且つコード名の方式でユーザに報告することができる。シミュレータ接続ツールはユーザにユーザワークステーション上で実行されるシミュレーションプログラムと相互作用させ、共同でソフト/ハードウェア協調検証環境を構築することができる。 In accordance with a specific embodiment of the present invention, the system provides a system debug tool that monitors and measures signals between multiple programmable logic devices as they progress. The system debug tools may include an FPGA (Field Programmable Gate Array) readback tool, a system access bus operation tool, an internal logic analyzer tool, a bandwidth analysis tool, a code / event extraction tool, and a simulator connection tool. . The internal logic analyzer tool inserts a logic analyzer circuit in one or more programmable logic devices. The code / event extraction tool can associate one or more signals with a user, set one code name, or set one event composed of multiple signals. One event can be set by a set of signal waveforms within a certain period of time. The debug tool can detect the occurrence of an event and report it to the user in a code name manner. The simulator connection tool allows the user to interact with a simulation program executed on the user workstation and jointly construct a software / hardware co-verification environment.
本発明のシステムと方法はシステム・オン・チップタイプのユーザデザインをより容易に設計し、エミュレーションできるようにする。ユーザデザインのうちのネットリストは複数のフィールド・プログラマブル・ゲート・アレイ・デバイスを含むプラットフォームを使用し、カスタマイズされたまたは最適化されたサードパーティ回路のネットリストに含むことができ、さまざまなカスタマイズされた回路をユーザデザインと相互作用させて構成し、デバッグやパフォーマンス分析、シミュレータとの接続等の機能を提供することができる。 The system and method of the present invention allows system on chip type user designs to be designed and emulated more easily. Netlists in user designs can be included in customized or optimized third-party circuit netlists using platforms that include multiple field programmable gate array devices, and can be customized The circuit can be configured by interacting with the user design, and functions such as debugging, performance analysis, and simulator connection can be provided.
図1に本発明の具体的な実施例の電気再構成可能型プロトタイプシステム100を示す。この図に示すように、電気再構成可能型プロトタイプシステム100はスケーラブル再構成可能型プロトタイププラットフォーム103を含み、前記プロトタイププラットフォーム1031つまたは複数のFPGA回路から構成することができる。スケーラブル再構成可能型プロトタイププラットフォーム103はターゲットシステム104とプログラマブルな入力/出力ポート105を介して相互作用を行なうことができる。これら入力/出力ポートはFPGAにより駆動することができる。スケーラブル再構成可能型プロトタイププラットフォーム103はシステムコントローラ102により一組または複数組のデータバスを介して制御される。本実施例において、これらデータバスは、システムコンフィギュレーションバス108、システムアクセスバス(SUB)107、クロックバス(パルスバス)106を含む。システムコンフィギュレーションバス108はFPGA回路のコンフィギュレーションに用いられる。システムアクセスバス(SUB)107はシステムコントローラ102とスケーラブル再構成可能型プロトタイププラットフォーム103間でのデータ通信に用いられる。パルスバス106はスケーラブル再構成可能型プロトタイププラットフォーム103の操作に1つまたは複数の時間基準を提供する。
FIG. 1 shows an electrically
ユーザワークステーション101はユーザに図形化されたユーザインターフェースを提供し、電気再構成可能型プロトタイプシステム100の動作を制御する。この図形化されたインターフェースを介して、ユーザワークステーション101のユーザはユーザデザインにアクセスし、ユーザデザインをスケーラブル再構成可能型プロトタイププラットフォーム103に適用するコンフィギュレーション信号に変換するコンパイラを操作して、各種IPライブラリを使用し、電子設計自動化ソフトウェアと実行時のソフトウェアを使用することができる。ユーザワークステーション101はエンジニアリングワークステーションまたはパーソナルコンピュータとすることができる。本実施例において、ユーザワークステーション101とシステムコントローラ102は業界標準通信インターフェース109を介して通信を行なう。前記インターフェース109はUSB、PCI、IEEE−1394(「ファイアワイヤ」とも呼ばれる)またはその他各種業界標準通信バスとすることができる。
本実施例において、ユーザデザインは一般的な回路図ツールを介して入力または編集するか、動作(Behavior)またはハードウェア記述言語(例:SystemC、 Verilog、System Verilog、VHDL等)を用いて表現することができ、その後論理ゲートレベルの回路図に統合される。本発明はハードウェアプロトタイプシステム、すなわち電気再構成可能型プロトタイプシステム100内に統合済みの回路に対するエミュレーションと検証を実現することができる。
In this embodiment, the user design is input or edited through a general circuit diagram tool, or expressed using an operation (Behavior) or a hardware description language (eg, SystemC, Verilog, System Verilog, VHDL, etc.). Can then be integrated into a logic gate level circuit diagram. The present invention can provide emulation and verification of a circuit integrated within a hardware prototype system, ie, an electrically
図2にシステムコントローラ102のダイアグラムを示す。システムコントローラ102は、通信インターフェース204、システムアクセスバスコントローラ202、パルス生成器(クロック生成器)203、コンフィギュレーションコントローラ201を含む。コンフィギュレーションコントローラ201はコンフィギュレーション信号プロトコルを処理し、且つユーザワークステーション101からコンフィギュレーションバス108を介しコンフィギュレーションデータをスケーラブル再構成可能型プロトタイププラットフォーム103に伝送する。これにより、コンフィギュレーションコントローラ201は定義された形式のユーザデザインをスケーラブル再構成可能型プロトタイププラットフォーム103中のFPGAにコンフィギュレーションまたはダウンロードすることができる。システムコンフィギュレーションバス108も各FPGA中の設計をリードバックし、検証するため用いたり、或いは実行時ユーザデザイン中の状態情報とデータを取得するために用いることができる。リードバック操作は通常一般的な技術を介して、またはSelectMapやJTAG(バウンダリスキャン)など、供給元が提供するプロトコルを使用する。本実施例において、システムコンフィギュレーションバス108は電気再構成可能型プロトタイプシステム100中のスケーラブル再構成可能型プロトタイププラットフォーム103のプログラマブル・ゲート・アレイをテストするために用いることができる。
FIG. 2 shows a diagram of the
システムアクセスバスコントローラ202は通過システムアクセスバス(SUB)を介し実行時にデザインとシステム特定部材中のレジスタ、FIFO(先入れ先出しキュー)、メモリ、およびコンパイラからユーザデザインに挿入された特殊論理ユニットなどその他状態ユニットにアクセスする。システムアクセスバス107もスケーラブル再構成可能型プロトタイププラットフォーム103中のFPGAを特定の動作状態に戻すまたは初期化するために用いることができる。
The system
パルス生成器203はパルスバス106を駆動しFPGAに各種クロック信号を提供する。これらクロック信号の周波数とデューティサイクルはすべてプログラマブルであるものとする。これらクロックがスケーラブル再構成可能型プロトタイププラットフォーム103中のユーザデザインにダウンロードされて使用される。
The
上述のように、スケーラブル再構成可能型プロトタイププラットフォーム103は1つまたは複数のスケーラブルパネル(または回路板)、FPGA、動的再構成可能型のスイッチから構成することができる。スケーラブル再構成可能型プロトタイププラットフォーム103は任意の数量のFPGAとスイッチを含むことができる。図3にスケーラブル再構成可能型プロトタイププラットフォーム103の構成を示す。図3に示すように、スケーラブル再構成可能型プロトタイププラットフォームはFPGA304−1から304−nより構成される。304−1から304−n中の各FPGAはすべて一組以上の接続線を有し、その他FPGAと相互に接続される。本実施例においては、1つまたは複数のバス(例えばバス301−303)がFPGA 304−1から304−nの接続に用いられる。このような方式において、信号はいずれかのFPGAからその他任意のFPGAに接続することができる。バス301−303は「ユニバーサルバス」(即ち、各FPGAがすべてアクセスできるバス)として設置することができる。または、バス301−303は各種コンフィギュレーションに割り当てることもでき、この場合各バスはある一組の特定のFPGA専用にコンフィギュレーションすることができる。これらバスは、動的再構成可能な回路スイッチを介して相互に接続することもできる。これら回路スイッチは特殊なスイッチ回路により提供するか、またはFPGA304−1から304−n中にコンフィギュレーションすることができる。これらFPGAはレイヤ化した構造にコンフィギュレーションすることができる。この構造において、FPGAはグループ分けすることができる。この場合、各グループ中のFPGAは「局部」的相互接続バスにより相互に接続され、これら局部の相互接続バスは一層または多層の動的再構成可能型スイッチにより相互に接続される。このほか、各FPGAは1つまたは複数の入力或いは出力信号が入力/出力ポート105上に接続され、ターゲットシステム104と通信することができる。これら入力/出力信号も一層または多層の動的再構成可能型スイッチにより相互に接続し、FPGA間で信号を相互接続させることができる。いずれにしても、技術の進化と向上に伴い、これら相互接続する数量は制限されない。これら相互接続バスとスイッチは通常1つまたは複数のパネルまたは回路板上に実現することが望ましい。また、あらゆる相互接続バス(例えばバス301−303、システムコンフィギュレーションバス108、SUBバス107またはパルスバス106中のいずれか)はケーブル、光ファイバ、その他相互接続方法で実現することもできる。
As described above, the scalable
一つの複雑な数字システム(例えば1つのSoC或いは1つの専用回路)は通常複数のサブシステムを含む。例えば、1つのSoC設計はマルチメディアサブシステム、信号処理サブシステム、外部制御システムと中央処理装置などを含むことができる。各サブシステムは1本の共用の局部バスにより接続された一組のFPGAにコンフィギュレーションすることができる。そして動的再構成可能型スイッチでこの局部バスをシステムのその他バスに接続する。この共用局部バスを「オフ」モード(接続切断)のユニバーサルバスに設定すると、サブシステム中専用の局部バスとなる。各本の局部バス間のスイッチを「オン」モードに設定すると、サブシステム間の通信を行なうことができる。ユニバーサルバスはサブシステム間の通信またはFPGA間の点対点の通信に用いることができる。 One complex number system (eg, one SoC or one dedicated circuit) typically includes multiple subsystems. For example, one SoC design can include a multimedia subsystem, a signal processing subsystem, an external control system, a central processing unit, and the like. Each subsystem can be configured into a set of FPGAs connected by a single shared local bus. The local bus is then connected to the other buses of the system with a dynamically reconfigurable switch. When this shared local bus is set as a universal bus in the “off” mode (disconnected), it becomes a local bus dedicated to the subsystem. When the switches between the local buses of each book are set to the “on” mode, communication between subsystems can be performed. The universal bus can be used for communication between subsystems or point-to-point communication between FPGAs.
1つのユーザデザインをスケーラブル再構成可能型プロトタイププラットフォーム103中で実現するため、ユーザはユーザワークステーション101上でコンパイラを使用する。図4に本発明の一実施例のコンパイラプログラムのフロー図を示す。図4に示すように、手順401においてシステム設計者は最上位モジュール生成器を使用しユーザデザインに1つの最上位モジュールを生成することができる。ユーザデザインは特殊な設計ユニットとサードパーティIPコアを含むことができる。この最上位モジュール生成器はユーザ自身のライブラリとサードパーティ供給元からの各種デザインとIPコアの説明と集成に用いられる。前記生成器は標準のバス定義とユーザ自ら定義するバスと信号の相互接続関係に基づき、ユーザデザインユニットとサードパーティIPコアを自動接続する。また、システム設計者は最上位モジュールを手動で構築し、自動最上位モジュール生成器を使用しなくてもよい。
To implement a single user design in the scalable
手順402において、システムまたは回路設計者はコンパイラを使用して最上位モジュール中の各デザインユニットを導入する(例えば「デザイン導入」コマンドを使用する)。このデザインは通常あるハードウェア記述言語またはネットリストで記述される。コンパイラがデザインの語法、統合可能性、完全性を検査する(例えばデザインソースコード中のすべての論理ユニットがあらかじめ定義されたライブラリまたは論理データベース内で利用可能または接続して取得可能か否かなど)。導入したデザイン中にエラーが存在する、またはある論理ブロックが利用できない場合、コンパイラソフトウェアが導入エラーを報告する。必要に応じ、手順402はすべての入力ソースコードが検査で正確であると確認され、且つコンパイラに受け入れられるまで何度も繰り返すことができる。
In
デザインが導入された後、手順403では例えばコンパイラ中の「統合」コマンドまたはコンパイラにより使用されるサードパーティ統合ツールの使用を介して、設計者がデザイン中のすべてのハードウェア記述(ハードウェア記述言語またはその他形式)を統合することができる。実施例において、コンパイラは下から上に向かう方法でサードパーティIPコアを統合し、サードパーティIPコアのバウンダリ信号を保持すると共に、実行時の性能を保持する。統合後のデザインはスケーラブル再構成可能型プロトタイププラットフォーム103中のFPGA内にコンフィギュレーションするために用いることができるネットリスト(例:EDIFファイル)を含む。実施例において、コンパイラはすべてのEDIFファイルを1つのEDIF文書に併合してユーザデザインを代表する。
After the design has been introduced, in
本実施例において、手順404では1つのデザインが統合された後、設計者はコンパイラ中の「コード定義」コマンドを用いてコード定義過程を開始することができる。コード定義過程でユーザはあらゆる1つの単独の信号または一組の信号を定義1つのコードとして定義することができる。任意の数量の信号を1つのコードとして定義することができる。このほか、ユーザは1つのイベント、すなわち、一組の特定のコードまたは信号の一連のイベント、または一組の任意の長さの波形を定義することもできる。信号またはコードの状態がイベントにおいて指定される一定長さの波形に合うものに変わると、前記イベントが発生したとみなす。例えば、図5に1つの保存デバイスの典型的「書き込み操作」のイベント波形を示す。図5に示すように、この「書き込み操作」イベントは5つのコードの波形を含む:単独の信号「パルス(clk)」、「書き込み(write)」、「チップ選択(chipselect)」、バス信号「アドレス(address)」、「データ(data)」である。この例において、このイベントは2つのパルス周期長さである。図5に示すように、周期1と周期2は0ナノ秒から100ナノ秒の間である。この時間内に「チップ選択(chipselect)」と「書き込み(write)」制御信号が有効な1つの「パルス(clk)」信号の周期長さに置かれる。これら2つのパルス周期内の信号波形がこのイベントを定義する。イベントの発生を検査するため、電気再構成可能型プロトタイプシステム100は実行時に指定の信号を検査し、信号の変化とあらかじめ定めたイベント中の信号変化を比較するよう設定してもよい。現有技術と異なるのは、イベントの発生が検知されると、ソフトウェアがユーザに対してイベントの発生を報告する点であり、ユーザにたくさんの信号状態を解読させるのではない点である。この方法において、イベントはハイレベルの抽象的方法でユーザに報告され、デバッグの説明に用いられる。1つの実施例において、信号状態はサンプリングされてボード上のメモリに保存されるか、或いはユーザワークステーション101上のメモリまたは文書に保存され、更なる分析の実施に用いられる。コードとイベントはデバッグモード下で特に有用であり、デバッグ模式下での信号比較とイベント検出メカニズムはすべて前述の実行時と完全に一致する。回路設計者は必要に応じて任意の数のコードとイベントを定義し、これにより、大量実行時の信号情報がハイレベルの抽象レイヤで定義され、デバッグに便利になる。デバッグモード下で定義されるコードとイベントは変換されて実行時に使用と観察を行なうことができる。
In this embodiment, after one design is integrated in
手順405において、ユーザはコンパイラ中の「分割」コマンドでデザインを複数のブロックに分割することができ、各ブロックは1つの単独のFPGA中で実現される。サードパーティIPコアも分割され、各FPGA中で実現される。大きいIPコアは複数のFPGA中に分割することができる。一実施例において、分割コマンドはサードパーティの分割ツールを用いる。後述する「TAI−IPユニット」の相互接続方法のため、電気再構成可能型プロトタイプシステム100中の分割ツールはFPGAの容量利用率を最大化しFPGAのピンに制限される必要がないという原則に沿って最適化して分割することができる。分割ツールはスケーラブルFPGA中の各FPGAの単独のネットリストを生成する。分割手順405はあらゆるユーザデザインの情報と機能すべてを維持する。または、サードパーティ分割器或いは手動分割もデザインの分割に用いることができる。分割器は制限条件の設定を受け入れることができ、分割器に指示してスケーラブル再構成可能型プロトタイププラットフォーム103のハードウェアに対するネットリストを生成させるために用いることができる。
In
手順406において、ユーザデザインが分割された後、コンパイラが各FPGAブロック中に特製の回路構造を挿入し「測定可能性」、「分析可能性」、「相互接続」機能を提供する。この「TAI−IP」と呼ばれる特製の回路構造はまた、各IPまたは複数のFPGAに分割された1つのIPの各部分に挿入される。図6(a)に分割後の回路トポロジー構造の論理図を示す。図6(a)に示すように、本発明の一実施例において、ユーザデザイン回路とサードパーティIPを含むシステム・オン・チップ設計620は、デザインが回路625−1から625−n中に分割され、TAI−IP626−1から626−nにそれぞれ対応する。625−1から625−n中の各回路がそれぞれ1つのFPGA中に実現されるユーザデザインの1つのブロック、1つのIP或いは1つのIPの1つの部分である。いくつかの実施例において、1つのユーザデザインのブロックは同一のFPGAに割り当てられる。625−1から625−n中の各ブロックの回路はそれらに関連するTAI−IP626−1から626−n及び1本または複数本の通信バス或いは経路(図に示すバス630−1から630−02など)を通過してその他部分と相互通信を行なう。(図6(a)中には2本のバスのみしか示していないが、ユーザの選択と回路間の相互接続関係に基づき、1つの通信経路は1本または複数本の信号バスを含むことができる。)
In
図6(b)に構造ブロック図を示す。この図においてはTAI−IP602−1から601−nがスケーラブル再構成可能型プロトタイププラットフォーム103中に実現され、FPGA602−1から602−n間のインターフェースとなる。図6(b)に示すように、各FPGA中のTAI−IPとその他FPGA中のTAI−IPは相互に接続され、スケーラブル再構成可能型プロトタイププラットフォーム103中のFPGA間の相互接続を提供する。1つのFPGA中の各IPもそれに関連するTAI−IPと前記FPGA中に割り当てられたその他回路及びその他FPGA中の回路を経由して通信する。このような構造において、1つのIPの入力と出力はTAI−IPを介して制御される。例えば、IPの各出力信号はユーザデザイン上から隔離されることができ、信号状態はデバッグに便利なように固定値に変換されることができる。このほか、IPの入力と出力信号は独立して監視測定され、測定可能性を向上することができる。
FIG. 6B shows a structural block diagram. In this figure, TAI-IPs 602-1 to 601-n are implemented in the scalable
図7に本発明の一実施例のTAI−IP700のダイアグラムを示す。図7に示すように、TAI−IP700は制御回路701を含み、TAI−IP構造ブロック回路(「TAI−IPユニット」)702−1から702−nを制御するために用いられる。各TAI−IP中のTAI−IPユニットの数量は1つのプログラマブルな設計パラメータであり、通常はFPGA回路板上の相互接続が必要なFPGAの数量、ユーザデザインの入力出力要求、ユーザの指定に基づいて決定される。各TAI−IPユニットは1つの1ビットの相互接続ポート(例えば相互接続ポート703−1から703−n中のいずれか)を介してスケーラブル再構成可能型プロトタイププラットフォーム103回路板上の1本のバスに接続される。これら要求に基づき、コンパイラが必要なTAI−IPユニットの数量を決定し、且つ必要な各FPGA中のTAI−IP中のTAI−IPユニットと制御回路を生成する。
FIG. 7 shows a diagram of a TAI-
図8に本発明の一実施例のTAI−IPユニット800を示す。図8に示すように、TAI−IPユニット800は動的再構成可能型タグメモリ801と802、マルチパス信号セレクタ803、双方向バッファ806(出力バッファ806aと入力バッファ806bを含む)、信号ラッチ807を含む。動的再構成可能型タグメモリ801が制御するデータ出力信号808とそれに対応する出力イネーブル信号805のマルチパス選択である。データ出力信号809と対応する出力イネーブル信号805はFPGA中にコンフィギュレーションされたユーザデザインの出力信号と指定の内部論理ノード信号を含む。このほか、固定信号810(1つの固定の「0」と1つの固定の「1」を含む)も信号出力マルチパスセレクタにより選択され相互接続ポート703を介して伝送されることができる。このような構造において、1つの出力信号はあらゆるときに相互接続ポート703上に出力されることができる。データ出力信号809中の割り当てられていない信号は任意の値にリンクすることができる。後述するように、このような構成は実行時の増加信号コンフィギュレーションに完全な再コンパイルを必要としない。未使用の出力イネーブル信号は「ディスエーブル」の信号状態が割り当てられ、これにより意図せず値が相互接続ポート703に出力されるのを防ぐ。
FIG. 8 shows a TAI-
動的再構成可能型タグメモリ802は一組の信号ラッチを制御し、各ラッチは選択されて相互接続ポート703上の入力信号をラッチすることができる。上述のように、相互接続ポート703は1ビットの相互接続バスを介してその他FPGAから信号を受信する。信号ラッチ807の出力信号がデータ出力信号808を駆動し、データ出力信号808がユーザデザイン中のデバイスの入力ポートに接続される。データ出力信号808中の割り当てられていない信号は空きとしておくことができる。
The dynamically
動的再構成可能型タグメモリ801、802は制御カウンターによりアドレッシングが行なわれ、これにより動的再構成可能型タグメモリ801、802は実行時にSUBバス107よりロードすることができる。マルチパスセレクタ804が双方向バッファ806の方向を制御し、これにより相互接続ポート703を入力ポート、出力ポート或いは双方向ポートとするかが決定される。マルチパスセレクタ804の選択信号は実行時に動的割当てポートタイプが変更される。図8に示す実施例において、マルチパス信号セレクタ803、マルチパスセレクタ804は同時に動的再構成可能型タグメモリ801が生成する制御信号により制御され、且つ同じ数量の信号が選択される。このようなコンフィギュレーション下で対応するマルチパス信号セレクタ803、マルチパスセレクタ804の入力信号が選択される。このような構造は当然必須ではない。複数のマルチパスセレクタも動的再構成可能型タグメモリ801の出力文字列中の異なるフィールドで制御することができ、データ出力信号809と出力イネーブル信号805の選択設計に用いることができる。
The dynamically
3ステート出力ポートはデータ出力信号をデータ出力信号809中の1つとし、且つ対応する出力イネーブル信号を対応する出力イネーブル信号805中の1つとして実現することができる。対応する出力イネーブル信号が無効にされるとハイインピーダンス状態が得られる。同様に、双方向信号は同時にデータ出力信号809とデータ出力信号808とし、及び対応する出力イネーブル信号を出力イネーブル信号805中の1つとすることで実現することができる。コンパイラは双方向ポートが正確にマップされるよう確保し、これにより対応する動的再構成可能型タグメモリ中の対応するアドレスが常に同時に選択される。一実施例において、双方向信号は動的再構成可能型タグメモリ801、802中の同じアドレスにマッピングされる。
A three-state output port can be implemented with a data output signal as one of the data output signals 809 and a corresponding output enable signal as one of the corresponding output enable signals 805. A high impedance state is obtained when the corresponding output enable signal is disabled. Similarly, the bidirectional signal can be realized by simultaneously using the data output signal 809 and the
1つのTAI−IP(例えばTAI−IP601−1から601−nのうちのいずれか)はユーザデザインより速いパルスで動作することができる。この速いパルスでカウンターの増減を制御し、且つカウンターが動的再構成可能型タグメモリ801、802のアクセスに用いるアドレスを生成する。各カウンターはプログラマブルな最大と最小の計数値を有する。通常、カウンターに最大または最小計数値が選択されると、カウンターは戻って計数を行なう。計数上限が選択されると、カウンターは0に戻される。カウンターが1つのユーザデザインのパルス周期内で少なくとも1回0に戻され、ユーザデザインの入力出力信号とラッチされる信号が共にすでに正確に伝送されたことになる。この実施例において、各カウンター中の最大または最小計数値はSUB107を介して実行時にプログラミングすることができる。これにより、速いパルスの各周期内で相互作用される信号を動態的に変えることができる。動的再構成可能型タグメモリ801、802はユーザまたはリアルタイムソフトウェアによりSUB107を介して書き込みを行なうことができ、相互接続ポート703の入力または出力信号をユーザのパルスに基づき動態的に調整することができる。このような能力で信号値または接続をテスト或いはデバッグモード下で変化させることができる。
One TAI-IP (eg, any of TAI-IP 601-1 to 601-n) can operate with faster pulses than the user design. The increase / decrease of the counter is controlled by this fast pulse, and the counter generates an address used for accessing the dynamically
TAI−IPが挿入された後、手順407において、コンパイラが配線プログラムを使用して各FPGAのネットリストを処理する。配線プログラムは通常FPGA供給元の定めるプログラムであり、各ネットリストをバイナリファイルまたはテキストファイルに変換するために用いられる。この出力されたファイルをスケーラブル再構成可能型プロトタイププラットフォーム103中のFPGAにダウンロードすることができる。一実施例において、配線プログラムは1つ以上のユーザワークステーションまたはプロセッサ上で実行され、FPGAの配線を平行処理することができる。配線後のバイナリまたはテキストファイルはユーザワークステーション101上に保存し、リアルタイムソフトウェアの更なる処理を待つことができる。
After the TAI-IP is inserted, in
1つのIPライブラリはTAI−IPのほか、その他の提供される回路検証、回路デバッグ、パフォーマンス分析機能のIPを含むことができる。システム設計者は1つまたは複数のこのようなIPをユーザデザインに加えることができる。このようなIPのユーザデザインへの追加は、システム設計者がコンパイラに指示または手動でユーザデザインのソースコード中にこれらIPをインスタンス化して行なうことができる。 One IP library can include TAI-IP as well as other provided IP for circuit verification, circuit debugging, and performance analysis functions. The system designer can add one or more such IPs to the user design. Such addition of IP to the user design can be performed by instructing the compiler by the system designer or by instantiating these IPs in the source code of the user design.
回路検証に用いるIP(検証IP)はUSBバスまたはPCIバスをシミュレーションした回路を含み、USBバスまたはPCIバスに相互作用のあるユーザデザインの動作の検証に用いることができる。電気再構成可能型プロトタイプシステム100中に用いられる検証IPはユーザまたはリアルタイムソフトウェアにSUB107を介して検証IPの作成者或いは供給元が提供する動作情報にアクセスさせることができる。通常、検証IPはユーザデザインの動作を検出し、ユーザデザインと標準通信または信号プロトコルの互換性をチェックするか、ユーザデザインの動作と特定の動作モード(正確なモード)を比較する。検証IPは分析報告とエラーまたは警告情報をユーザまたはリアルタイムソフトウェアに提供することができる。
The IP used for circuit verification (verification IP) includes a circuit that simulates a USB bus or a PCI bus, and can be used for verification of user-designed operations that interact with the USB bus or the PCI bus. The verification IP used in the electrically
例えば、デバッグに用いるIPコア(デバッグIPコア)は内部ロジックアナライザ機能のIPコア(内部ロジックアナライザIPコア)或いはデータフロー/状態分析器を含む。これらIPコアはシステム設計者に実行時すでにコンフィギュレーションが完了したシステムのデバッグを行なわせることができる。例えば、内部ロジックアナライザIPコアは指定のトリガポイントでユーザデザイン中の信号値をサンプリングしてメモリユニットに保存し、後続の分析に用いることができる。実行ソフトウェアは実行時にこれらデバッグIPコアにアクセスし、操作することができる。 For example, an IP core used for debugging (debug IP core) includes an IP core having an internal logic analyzer function (internal logic analyzer IP core) or a data flow / state analyzer. These IP cores allow system designers to debug systems that have already been configured at runtime. For example, the internal logic analyzer IP core can sample a signal value in the user design at a specified trigger point and store it in a memory unit for subsequent analysis. Execution software can access and manipulate these debug IP cores at runtime.
パフォーマンス分析に用いるIPコア(パフォーマンス分析IPコア)は、帯域幅分析に用いるIPコアを含むことができる。これらIPコアはパフォーマンス情報の収集とユーザデザインのパフォーマンス分析に用いることができる。その他IPコアと同様に、パフォーマンス分析IPコアはSUB107を介してユーザまたは実行時ソフトウェアと通信し共同でパフォーマンス分析を完了することができる。
The IP core used for performance analysis (performance analysis IP core) may include an IP core used for bandwidth analysis. These IP cores can be used for performance information collection and user design performance analysis. Like other IP cores, the performance analysis IP core can communicate with the user or runtime software via the
電気再構成可能型プロトタイプシステム100中の実行ソフトウェアは動的コンフィギュレーションキットとシステムデバッグキットを含むことができる。動的コンフィギュレーションキットはユーザのコマンドを受けてスケーラブル再構成可能型プロトタイププラットフォーム103中のFPGA、バックプレーンとTAI−IPをコンフィギュレーションして操作モード、相互作用、さらにはリアルタイムのデザイン機能を修正する。一実施例において、FPGAコマンドに対して応答した後、FPGAコンフィギュレーションツールがバイナリまたはASCIIのFPGAコンフィギュレーションファイルを読取り、且つファイルをシステムコントローラ102中のコンフィギュレーションコントローラ201に伝送する。FPGAコンフィギュレーションツールは単独で1つまたは複数のスケーラブル再構成可能型プロトタイププラットフォーム103中のFPGA、さらには必要なFPGA中の部分をコンフィギュレーションすることができる。例えば、ユーザはFPGA中の論理ブロックを修正することができる。FPGAコンフィギュレーションツールを使用して修正した論理ブロックをFPGA中にダウンロードすることができ、別のFPGAを再構成する必要はない。
Execution software in the electrically
回路板コンフィギュレーションコマンドに応答し、パネルコンフィギュレーションツールは回路板上またはスケーラブル再構成可能型プロトタイププラットフォーム103中のバックプレーン上のプログラマブルスイッチをコンフィギュレーションする。典型では、いずれのスイッチも「オン」状態または「オフ」状態に設置することができる。スイッチが「オン」状態のとき、スイッチは導通される。スイッチが「オフ」状態のとき、スイッチは開となる。パネルコンフィギュレーションツールは、選択的に一部の相互接続バスをローカルバスにコンフィギュレーションするなどのことができる。
In response to the circuit board configuration command, the panel configuration tool configures programmable switches on the circuit board or on the backplane in the scalable
TAI−IPコンフィギュレーションコマンドに応答し、TAI−IPコンフィギュレーションツールはSUB107を介してTAI−IPユニット中に保存する1つまたは複数の動的再構成可能型タグメモリ中のデータを生成する。これらデータはFPGA間の相互関係またはユーザの特殊要求を代表する。例えば、あるユーザは指定のFPGAのある入力信号に「1」の値を提供し、リコンパイルしないことを希望するかもしれない。このような効果を選択できるようにするため、TAI−IPコンフィギュレーションツールは必要なタグメモリ内の値を再計算してこの入力値を生成し、同時に修正後のタグメモリの値を特定の動的再構成可能型タグメモリに書き込む。
In response to the TAI-IP configuration command, the TAI-IP configuration tool generates data in one or more dynamically reconfigurable tag memories that are stored in the TAI-IP unit via the
システムデバッグキットはデザインとデバッグ情報を収集・分析し、且つ特殊な条件と信号を設置してリアルタイムでユーザデザインの動作を制御する。一実施例において、システムデバッグキットは(a)FPGAリードバックツール、(b)SUBアクセスツール、(c)内部ロジックアナライザツール、(d)帯域幅分析ツール、(e)コード/イベント抽出ツール、(f)シミュレータ接続ツールを含む。 The system debug kit collects and analyzes design and debug information, and sets special conditions and signals to control the operation of the user design in real time. In one embodiment, the system debug kit includes (a) an FPGA readback tool, (b) a SUB access tool, (c) an internal logic analyzer tool, (d) a bandwidth analysis tool, (e) a code / event extraction tool, ( f) Includes simulator connection tool.
FPGAリードバックツールは、実行時指定のFPGAの内容またはユーザデザイン中の指定の信号の状態を読み取る。FPGAリードバックツールは供給元から得ることができ、且つJTAGやSelectMAPなど、供給元が指定するプロトコルを使用して指定のFPGAの内容を読み取ることができる。多くのFPGA供給元はツールを提供してFPGA中のあらゆるレジスタ或いはメモリユニットの内容を読み取るようにしている。この実施例において、データがFPGAからリードバックされた後、FPGAリードバックツールがこれら情報を信号値に変換し、且つユーザデザイン中の信号名とコードにマッピングする。このような方法を通してFPGA内のあらゆる信号の完全な観察可能性を得ることができる。 The FPGA readback tool reads the contents of the FPGA specified at the time of execution or the state of the specified signal in the user design. The FPGA readback tool can be obtained from the supplier, and can read the contents of the specified FPGA using a protocol specified by the supplier, such as JTAG or SelectMAP. Many FPGA suppliers provide tools to read the contents of every register or memory unit in the FPGA. In this embodiment, after data is read back from the FPGA, the FPGA readback tool converts these information into signal values and maps them to signal names and codes in the user design. Through such a method, full observability of any signal in the FPGA can be obtained.
SUBアクセスツールはSUB107と相互に接続されたユーザデザイン中の、または電気再構成可能型プロトタイプシステム100中のデバイスにアクセスするために用いられる。デバイスはすべてアドレス空間にマッピングされ、これによりSUBアクセスツールを用いてデバイスにアクセスし、即ち、コマンド、アドレスとデータをシステムコントローラ102中のSUBコントローラ202に発してデバイスのデータの読取りまたは書き込みを行う。一実施例において、SUB107は読み書き可能なスケーラブル再構成可能型プロトタイププラットフォーム103回路板中のあらゆるデバイスに拡張される。
The SUB access tool is used to access devices in the user design interconnected with the
内部ロジックアナライザツールは電気再構成可能型プロトタイプシステム100中に組み込まれたロジックアナライザにトリガ条件を設定する。このロジックアナライザはスケーラブル再構成可能型プロトタイププラットフォーム103中にダウンロードされる1つまたは複数のFPGA内の特殊なIP(内部ロジックアナライザIP)である。このロジックアナライザIPは従来のロジックアナライザと同じ機能を提供することができる。FPGA内でTAI−IPと共同で作用し、このロジックアナライザIPは大量な信号のサンプリングを提供し、且つ大量のトリガ条件を処理することができる。一実施例において、この内部ロジックアナライザツールは組み込まれたロジックアナライザIP内にトリガ条件を設定し、トリガ条件またはイベントの発生を待ち、その後ロジックアナライザIP中に組み込まれたサンプリングメモリ中からサンプリングされた信号データを読み取り、関連のサンプリングデータをユーザ定義のコードの形式に変換する。一実施例において、この内部ロジックアナライザツールはロジックアナライザIPに組み込まれた複雑なイベントステートマシンを設置する。このイベントステートマシンは取得された信号データ動作に基づきデバッグを説明する。内部ロジックアナライザツールとロジックアナライザIPは共同でユーザにリアルタイムの信号モニタリング機能を提供し(例えばオンライン実行モード下で)、ユーザデザインの実行状況に干渉しない。
The internal logic analyzer tool sets trigger conditions on the logic analyzer incorporated in the electrically
コード/イベント抽出ツールはサンプリングで得られた信号データをコードとイベントレベルの情報に解釈する。コード/イベント抽出ツールはサンプリングで得られた信号データをコードとイベントにマッピングし、且つコードの形式でユーザに対し表現する。例えば、前文で描写したバスの「書込み操作」イベントにおいて、コード/イベント抽出ツールが1つの「書込み操作」イベントの実例を見つけると、1つの情報が作成されてユーザバスに「書込み操作」イベントの発生時間、「書込み操作」イベント中の書込み操作のアドレスとデータを提供する。このような能力は、例えばファームウェア設計者がファームウェアプログラムの設計とデバッグを行なうときなど、非常に価値がある。 The code / event extraction tool interprets signal data obtained by sampling into code and event level information. The code / event extraction tool maps signal data obtained by sampling to codes and events, and expresses them to the user in the form of codes. For example, in the “write operation” event of the bus described in the previous sentence, when the code / event extraction tool finds an example of one “write operation” event, one piece of information is created and the “write operation” event of the user bus is created. Provides the time of occurrence, the address and data of the write operation during the "write operation" event. Such a capability is very valuable, for example, when a firmware designer designs and debugs a firmware program.
シミュレータ接続ツールはユーザワークステーション101上で実行されるシミュレータとスケーラブル再構成可能型プロトタイププラットフォーム103内のコンフィギュレーションしたユーザデザインを相互に接続し、ハードウェア/ソフトウェアの強調検証を完了する。シミュレータ接続ツールは各種現有の方式でシミュレータにアクセスすることができる。例えば、一実施例において、PLIまたはVPIインターフェースを用いてVerilogシミュレータとの通信を提供したり、FLIインターフェースを用いてVHDLシミュレータとの通信を提供したり、SCEMIインターフェースを用いてSCEMIインターフェースを有するシミュレータとの通信を提供する。シミュレータ接続ツールはその他標準インターフェース或いはユーザが定義するインターフェースをサポートすることもできる。
The simulator connection tool connects the simulator executed on the
上文の詳細な説明は、本発明のいくつかの特定の実施例を描写したものであるが、本発明はこれら実施例に制限されない。本発明の範囲内において多くの変更と代替が可能であり、これらはすべて本発明の開示と保護範囲を逸脱しないものとみなす。 While the above detailed description depicts several specific embodiments of the invention, the invention is not limited to these embodiments. Many variations and substitutions are possible within the scope of the present invention, all of which are deemed not to depart from the disclosure and protection scope of the present invention.
100 電気再構成可能型プロトタイプシステム
101 ユーザワークステーション
102 システムコントローラ
103 スケーラブル再構成可能型プロトタイププラットフォーム
104 ターゲットシステム
105 プログラマブルな入力/出力ポート
106 パルスバス
107 システムアクセスバス(SUB)
108 システムコンフィギュレーションバス
109 業界標準通信インターフェース
201 コンフィギュレーションコントローラ
202 システムアクセスバスコントローラ
203 パルス生成器
204 通信インターフェース
301,302,303 バス
304−1〜304−n FPGA
601−1〜601−n TAI−IP
602−1〜602−n FPGA
620 システム・オン・チップ設計
625−1〜625−n 回路
626−1〜626−n TAI−IP
630−1〜630−2 バス
700 TAI IP
701 制御回路
702−1・702−n TAI−IP構造ブロック回路
703 相互接続ポート
703−703−n 相互接続ポート
801、802 動的再構成可能型タグメモリ
803 マルチパス信号セレクタ
804 マルチパスセレクタ
805 出力イネーブル信号
806 双方向バッファ
806a 双方向バッファ
806b 入力バッファ
807 信号ラッチ
808 データ出力信号
809 データ出力信号
810 固定信号
100 Electrically
104
108
601-1 to 601-n TAI-IP
602-1 to 602-n FPGA
620 system on chip design 625-1 to 625 -n circuit 626-1 to 626 -n TAI-IP
630-1 to 630-2
701 Control circuit 702-1 / 702-n TAI-IP
Claims (64)
前記システムコントローラが、
(a)ユーザワークステーションと相互接続されたインターフェースと;
(b)データ通信インターフェースと;
を含み、前記シミュレーションプラットフォームが前記データ通信インターフェースと相互接続され、さらに、
(a)ユーザデザインとサードパーティIPコアを実現することができる複数のフィールド・プログラマブル・ロジック・デバイスと;
(b)実行時にユーザデザインと相互作用し、ターゲットシステムに接続されたインターフェースと;
を含むことを特徴とする、ユーザデザインの設計とエミュレーションに用いるシステム。 A system for user design and emulation, including a system controller and simulation platform,
The system controller is
(A) an interface interconnected with a user workstation;
(B) a data communication interface;
The simulation platform is interconnected with the data communication interface; and
(A) a plurality of field programmable logic devices capable of implementing a user design and a third party IP core;
(B) an interface that interacts with the user design at runtime and connected to the target system;
A system used for design and emulation of user designs, characterized in that
(a)制御回路と;
(b)複数の入力/出力ユニットと;
を含み、前記各入力/出力ユニットが1ビット(1−bit)の相互接続ポートを提供することを特徴とする、請求項1に記載のシステム。 The interface module is
(A) a control circuit;
(B) a plurality of input / output units;
The system of claim 1, wherein each input / output unit provides a 1-bit interconnect port.
(a) 動的再構成可能型メモリモジュールと;
(b) 前記動的再構成可能型メモリモジュールにより制御され、複数のプログラマブル・ロジック・デバイスのコンフィギュレーション信号中から前記1ビットの相互接続ポートに出力する1つの出力信号を選択する、第一マルチパスセレクタと;
(c) 複数の動的再構成可能型メモリモジュールにより選択され、1ビット相互接続ポートの信号を受信するラッチと;
を含むことを特徴とする、請求項8に記載のシステム。 Each of the input / output units is
(A) a dynamically reconfigurable memory module;
(B) a first multi which is controlled by the dynamically reconfigurable memory module and selects one output signal to be output to the 1-bit interconnect port from among a plurality of programmable logic device configuration signals; With a path selector;
(C) a latch that is selected by a plurality of dynamically reconfigurable memory modules and receives a signal of a 1-bit interconnect port;
The system of claim 8, comprising:
システムコントローラを提供し、前記システムコントローラが、
(a)ユーザワークステーションと相互に接続されたインターフェースと;
(b)データ通信インターフェースと;を含み、
前記データ通信インターフェースと相互に接続されたシミュレーションプラットフォームを提供し、前記シミュレーションプラットフォームが、
(a)ユーザデザインを実現可能な複数のフィールド・プログラマブル・ロジック・デバイスと;
(b)ターゲットシステムに接続され、実行時にユーザデザインと相互作用するインターフェースと;を含み、
ユーザデザインと1つまたは複数のサードパーティIPコアを含む最上位モジュールを生成し、
ユーザデザインを統合し、
ユーザデザインとサードパーティIPコアをいくつかのブロックに分け、各ブロックが1つのプログラマブル・ロジック・デバイスにより実現され、
各プログラマブル・ロジック・デバイスに1つのインターフェースモジュールを割り当て、インターフェースモジュールを介してプログラマブル・ロジック・デバイス内で実現されるブロックにその他プログラマブル・ロジック・デバイス内のその他ブロックとの通信を実現させ、
前記ブロックと前記インターフェースモジュールを配線し、
プログラマブル・ロジック・デバイス内に配線されたブロックを実現する。 A method for emulating a user design, which includes the following steps:
Providing a system controller, the system controller comprising:
(A) an interface interconnected with the user workstation;
(B) a data communication interface;
Providing a simulation platform interconnected with the data communication interface, the simulation platform comprising:
(A) a plurality of field programmable logic devices capable of realizing a user design;
(B) an interface connected to the target system and interacting with the user design at runtime;
Generate a top-level module containing the user design and one or more third-party IP cores;
Integrate user design,
Dividing user design and third party IP core into several blocks, each block is realized by one programmable logic device,
One interface module is allocated to each programmable logic device, and a block realized in the programmable logic device via the interface module is allowed to communicate with other blocks in the other programmable logic device.
Wiring the block and the interface module;
Implements a wired block in a programmable logic device.
(a) 制御回路と;
(b) 複数の入力/出力ユニットと;を含み、各ユニットが1つの1ビットの相互接続ポートを提供することを特徴とする、請求項34に記載の方法。 The interface module is
(A) a control circuit;
35. The method of claim 34, comprising: (b) a plurality of input / output units; each unit providing one 1-bit interconnect port.
(a) 動的再構成可能型メモリモジュールと;
(b) 動的再構成可能型メモリモジュールに制御され、複数のプログラマブル・ロジック・デバイスのコンフィギュレーション信号から1ビット相互接続ポートに出力する出力信号を選択する第一マルチパスセレクタと;
(c) 複数の動的再構成可能型メモリモジュールに選択されるラッチと;
を含み、1ビット相互接続ポートの信号を受信することを特徴とする、請求項40に記載の方法。 Each of the input / output units is
(A) a dynamically reconfigurable memory module;
(B) a first multipath selector that is controlled by the dynamically reconfigurable memory module and selects an output signal to be output to a 1-bit interconnect port from a configuration signal of a plurality of programmable logic devices;
(C) a latch selected for a plurality of dynamically reconfigurable memory modules;
41. The method of claim 40, comprising receiving a signal of a 1-bit interconnect port.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007193721A JP2009031933A (en) | 2007-07-25 | 2007-07-25 | Scalable reconfigurable prototype system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007193721A JP2009031933A (en) | 2007-07-25 | 2007-07-25 | Scalable reconfigurable prototype system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009031933A true JP2009031933A (en) | 2009-02-12 |
Family
ID=40402389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007193721A Pending JP2009031933A (en) | 2007-07-25 | 2007-07-25 | Scalable reconfigurable prototype system and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009031933A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012168946A (en) * | 2011-02-11 | 2012-09-06 | Springsoft Inc | Method and apparatus for versatile controllability and observability in prototype system |
WO2013062692A1 (en) * | 2011-10-28 | 2013-05-02 | Teradyne, Inc. | Test instrument having a configurable interface |
WO2013062691A1 (en) * | 2011-10-28 | 2013-05-02 | Teradyne, Inc. | Programmable test instrument |
JP2014154173A (en) * | 2013-02-11 | 2014-08-25 | Dspace Digital Signal Processing & Control Engineering Gmbh | Method for randomly accessing signal value of fpga at runtime, data processing device, computer program, digital storage medium, and method for executing fpga build |
US9449138B2 (en) | 2010-02-12 | 2016-09-20 | Synopsys, Inc. | Prototype and emulation system for multiple custom prototype boards |
US10311193B2 (en) | 2013-02-11 | 2019-06-04 | Dspace Digital Signal Processing And Control Engineering Gmbh | Alteration of a signal value for an FPGA at runtime |
CN110262342A (en) * | 2019-06-21 | 2019-09-20 | 深圳市三旺通信股份有限公司 | CAN server based on programmable logic device online acquisition CAN signal |
US10776233B2 (en) | 2011-10-28 | 2020-09-15 | Teradyne, Inc. | Programmable test instrument |
-
2007
- 2007-07-25 JP JP2007193721A patent/JP2009031933A/en active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9449138B2 (en) | 2010-02-12 | 2016-09-20 | Synopsys, Inc. | Prototype and emulation system for multiple custom prototype boards |
JP2012168946A (en) * | 2011-02-11 | 2012-09-06 | Springsoft Inc | Method and apparatus for versatile controllability and observability in prototype system |
WO2013062692A1 (en) * | 2011-10-28 | 2013-05-02 | Teradyne, Inc. | Test instrument having a configurable interface |
WO2013062691A1 (en) * | 2011-10-28 | 2013-05-02 | Teradyne, Inc. | Programmable test instrument |
US9470759B2 (en) | 2011-10-28 | 2016-10-18 | Teradyne, Inc. | Test instrument having a configurable interface |
US9759772B2 (en) | 2011-10-28 | 2017-09-12 | Teradyne, Inc. | Programmable test instrument |
US10776233B2 (en) | 2011-10-28 | 2020-09-15 | Teradyne, Inc. | Programmable test instrument |
JP2014154173A (en) * | 2013-02-11 | 2014-08-25 | Dspace Digital Signal Processing & Control Engineering Gmbh | Method for randomly accessing signal value of fpga at runtime, data processing device, computer program, digital storage medium, and method for executing fpga build |
US10083043B2 (en) | 2013-02-11 | 2018-09-25 | Dspace Digital Signal Processing And Control Engineering Gmbh | Random access to signal values of an FPGA at runtime |
US10311193B2 (en) | 2013-02-11 | 2019-06-04 | Dspace Digital Signal Processing And Control Engineering Gmbh | Alteration of a signal value for an FPGA at runtime |
CN110262342A (en) * | 2019-06-21 | 2019-09-20 | 深圳市三旺通信股份有限公司 | CAN server based on programmable logic device online acquisition CAN signal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7353162B2 (en) | Scalable reconfigurable prototyping system and method | |
US7340693B2 (en) | System for designing re-programmable digital hardware platforms | |
US7072825B2 (en) | Hierarchical, network-based emulation system | |
US8997034B2 (en) | Emulation-based functional qualification | |
US8136065B2 (en) | Integrated prototyping system for validating an electronic system design | |
US6389558B1 (en) | Embedded logic analyzer for a programmable logic device | |
JP3911007B1 (en) | Method and system for simulating a modular test system | |
JP2009031933A (en) | Scalable reconfigurable prototype system and method | |
US7185293B1 (en) | Universal hardware device and method and tools for use therewith | |
US8214195B2 (en) | Testing in a hardware emulation environment | |
JPH0773066A (en) | Method and apparatus for constitution of memory circuit | |
TW201428521A (en) | System, device and method for designing and emulating | |
US20140108865A1 (en) | Fault support in an emulation environment | |
US10235485B1 (en) | Partial reconfiguration debugging using hybrid models | |
CN103870390A (en) | Method and Apparatus For Supporting Unified Debug Environment | |
WO2024130861A1 (en) | Cloud native hardware logic simulation fpga acceleration method and system | |
US20020108094A1 (en) | System and method for designing integrated circuits | |
US20090182544A1 (en) | Multiple chassis emulation environment | |
EP1984830A1 (en) | Ring bus in an emulation environment | |
US7703054B2 (en) | Circuit emulation and debugging method | |
EP1233341B1 (en) | Embedded logic analyser | |
EP1236222B1 (en) | Universal hardware device and method and tools for use therewith | |
US12073155B2 (en) | Method and system for building hardware images from heterogeneous designs for electronic systems | |
US11474844B1 (en) | Emulator synchronization subsystem with enhanced slave mode | |
CN116594830B (en) | Hardware simulation tool, debugging method and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100112 |