(57)【要約】【課題】  再構成可能型プラットフォームを介しユーザデザインの設計とエミュレーションに用いるシステム及びその方法の提供。【解決手段】  本発明は再構成可能型プラットフォームを介したユーザデザインの設計およびエミュレーションに用いるシステム及びその方法を提供する。このシステムと方法はシステム・オン・チップタイプのユーザデザインをより容易に設計し、エミュレーションできるようにする。ユーザデザインのうちのネットリスト（ｎｅｔｌｉｓｔ）は複数のフィールド・プログラマブル・ゲート・アレイ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）デバイスを含むプラットフォームを使用し、カスタマイズされたまたは最適化されたサードパーティ回路のネットリストに含むことができ、さまざまなカスタマイズされた回路をユーザデザインと相互作用させて構成し、デバッグやパフォーマンス分析、シミュレータとの接続等の機能を提供することができる。【選択図】  図１
2009031933.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデザインの設計とエミュレーションに用いるシステムであって、システムコントローラとシミュレーションプラットフォームを含み、
前記システムコントローラが、
（ａ）ユーザワークステーションと相互接続されたインターフェースと；
（ｂ）データ通信インターフェースと；
を含み、前記シミュレーションプラットフォームが前記データ通信インターフェースと相互接続され、さらに、
（ａ）ユーザデザインとサードパーティＩＰコアを実現することができる複数のフィールド・プログラマブル・ロジック・デバイスと；
（ｂ）実行時にユーザデザインと相互作用し、ターゲットシステムに接続されたインターフェースと；
を含むことを特徴とする、ユーザデザインの設計とエミュレーションに用いるシステム。
【請求項２】
前記データ通信インターフェースがコンフィギュレーションバスを含むことを特徴とする、請求項１に記載のシステム。
【請求項３】
前記データ通信インターフェースがシステムアクセスバスを含むことを特徴とする、請求項１に記載のシステム。
【請求項４】
前記データ通信インターフェースがパルス信号バスを含むことを特徴とする、請求項１に記載のシステム。
【請求項５】
前記ターゲットシステムに接続されるインターフェースが、プログラマブル・ロジック・デバイスをソースとするプログラマブル入力／出力ターミナルの信号を含むことを特徴とする、請求項１に記載のシステム。
【請求項６】
前記フィールド・プログラマブル・ロジック・デバイスが、フィールドプログラマブル論理ゲートアレイを含むことを特徴とする、請求項１に記載のシステム。
【請求項７】
前記各プログラマブル・ロジック・デバイスが、１つのインターフェースモジュールを割り当てられ、前記インターフェースモジュールを介して前記プログラマブル・ロジック・デバイスに割り当てる一部ユーザデザインとその他プログラマブル・ロジック・デバイスのその他部分に割り当てるユーザデザイン間の通信を実現することを特徴とする、請求項１に記載のシステム。
【請求項８】
前記インターフェースモジュールが、
（ａ）制御回路と；
（ｂ）複数の入力／出力ユニットと；
を含み、前記各入力／出力ユニットが１ビット（１−ｂｉｔ）の相互接続ポートを提供することを特徴とする、請求項１に記載のシステム。
【請求項９】
前記各入力／出力ユニットが、
（ａ）  動的再構成可能型メモリモジュールと；
（ｂ）  前記動的再構成可能型メモリモジュールにより制御され、複数のプログラマブル・ロジック・デバイスのコンフィギュレーション信号中から前記１ビットの相互接続ポートに出力する１つの出力信号を選択する、第一マルチパスセレクタと；
（ｃ）  複数の動的再構成可能型メモリモジュールにより選択され、１ビット相互接続ポートの信号を受信するラッチと；
を含むことを特徴とする、請求項８に記載のシステム。
【請求項１０】
前記動的再構成可能型メモリモジュールが、１つまたは複数の動的再構成可能型メモリユニットを含むことを特徴とする、請求項９に記載のシステム。
【請求項１１】
前記動的再構成可能型メモリモジュールがさらに、動的再構成可能型メモリモジュールにより制御される第二マルチパスセレクタを含み、前記第二マルチパスセレクタが複数の出力イネーブル信号中から１つの出力イネーブル信号を選択し、バッファを制御して信号を１ビット相互接続ポートに出力することを特徴とする、請求項９に記載のシステム。
【請求項１２】
前記バッファがハイインピーダンス状態を呈することを特徴とする、請求項１１に記載のシステム。
【請求項１３】
前記各出力信号が１つの出力イネーブル信号に対応することを特徴とする、請求項１１に記載のシステム。
【請求項１４】
前記出力信号が固定の信号を含むことを特徴とする、請求項１１に記載のシステム。
【請求項１５】
複数の選択されたプログラマブル・ロジック・デバイスがサードパーティＩＰコアに割り当てられることを特徴とする、請求項１に記載のシステム。
【請求項１６】
１つまたは複数のプログラマブル・ロジック・デバイスが１つのユーザ回路機能を検証する検証ＩＰコアに割り当てられることを特徴とする、請求項１に記載のシステム。
【請求項１７】
前記検証ＩＰコアが、業界標準データバス操作をシミュレーションする回路を含むことを特徴とする、請求項１６に記載のシステム。
【請求項１８】
１つまたは複数のプログラマブル・ロジック・デバイスが１つのパフォーマンス分析ＩＰコアに割り当てられることを特徴とする、請求項１に記載のシステム。
【請求項１９】
前記パフォーマンス分析ＩＰコアが帯域幅分析ＩＰコアを含むことを特徴とする、請求項１８に記載のシステム。
【請求項２０】
前記システムがさらに、動的再構成可能型論理回路を１つの選択されたプログラマブル・ロジック・デバイスに割り当てることができるコンフィギュレーションツールを含むことを特徴とする、請求項１に記載のシステム。
【請求項２１】
前記システムがさらに、複数のプログラマブル・ロジック・デバイスが設置された回路板上のバスを動的に再構成することができるパネルコンフィギュレーションツールを含むことを特徴とする、請求項１に記載のシステム。
【請求項２２】
前記システムがさらに、システムデバッグツールを含み、前記システムデバッグツールが実行時にプログラマブル・ロジック・デバイス内部と複数のプログラマブル・ロジック・デバイス間の信号を監視し、分析することを特徴とする、請求項１に記載のシステム。
【請求項２３】
前記システムデバッグツールがフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）リードバックツールを含むことを特徴とする、請求項２２に記載のシステム。
【請求項２４】
前記システムデバッグツールがシステムアクセスバスアクセスツールを含むことを特徴とする、請求項２２に記載のシステム。
【請求項２５】
前記システムデバッグツールが内部ロジックアナライザツールを含むことを特徴とする、請求項２２に記載のシステム。
【請求項２６】
前記内部ロジックアナライザツールが１つまたは複数のプログラマブル・ロジック・デバイス中にロジックアナライザ回路を挿入することを特徴とする、請求項２５に記載のシステム。
【請求項２７】
前記システムデバッグツールが帯域幅分析ツールを含むことを特徴とする、請求項２２に記載のシステム。
【請求項２８】
前記システムデバッグツールがコード／イベント抽出ツールを含むことを特徴とする、請求項２２に記載のシステム。
【請求項２９】
前記コード／イベント抽出ツールが、ユーザに１つまたは複数の信号をコード名と関連付けることを可能にすることを特徴とする、請求項２８に記載のシステム。
【請求項３０】
前記コード／イベント抽出ツールが、ユーザに信号イベントを設定する方式を介して信号波形中に複数の信号を含むイベントを設定することを可能にすることを特徴とする、請求項２９に記載のシステム。
【請求項３１】
前記コード／イベント抽出ツールが、関連するコード名を介して設定イベントの検知結果を報告することを特徴とする、請求項３０に記載のシステム。
【請求項３２】
前記システムデバッグツールがシミュレータ接続ツールを含むことを特徴とする、請求項２２に記載のシステム。
【請求項３３】
前記シミュレータ接続ツールが、ユーザデザインに協調検証環境下においてユーザワークステーションで実行されるシミュレータプログラムとの相互作用を可能にすることを特徴とする、請求項３２に記載のシステム。
【請求項３４】
ユーザデザインをエミュレーションする方法であって、次の手順を含む：
システムコントローラを提供し、前記システムコントローラが、
（ａ）ユーザワークステーションと相互に接続されたインターフェースと；
（ｂ）データ通信インターフェースと；を含み、
前記データ通信インターフェースと相互に接続されたシミュレーションプラットフォームを提供し、前記シミュレーションプラットフォームが、
（ａ）ユーザデザインを実現可能な複数のフィールド・プログラマブル・ロジック・デバイスと；
（ｂ）ターゲットシステムに接続され、実行時にユーザデザインと相互作用するインターフェースと；を含み、
ユーザデザインと１つまたは複数のサードパーティＩＰコアを含む最上位モジュールを生成し、
ユーザデザインを統合し、
ユーザデザインとサードパーティＩＰコアをいくつかのブロックに分け、各ブロックが１つのプログラマブル・ロジック・デバイスにより実現され、
各プログラマブル・ロジック・デバイスに１つのインターフェースモジュールを割り当て、インターフェースモジュールを介してプログラマブル・ロジック・デバイス内で実現されるブロックにその他プログラマブル・ロジック・デバイス内のその他ブロックとの通信を実現させ、
前記ブロックと前記インターフェースモジュールを配線し、
プログラマブル・ロジック・デバイス内に配線されたブロックを実現する。
【請求項３５】
前記データ通信インターフェースがコンフィギュレーションバスを含むことを特徴とする、請求項３４に記載の方法。
【請求項３６】
前記データ通信インターフェースがシステムアクセスバスを含むことを特徴とする、請求項３４に記載の方法。
【請求項３７】
前記データ通信インターフェースがパルス信号バスを含むことを特徴とする、請求項３４に記載の方法。
【請求項３８】
前記ターゲットシステムに接続されるインターフェースが、プログラマブル・ロジック・デバイスをソースとするプログラマブル入力／出力ターミナルの信号を含むことを特徴とする、請求項３４に記載の方法。
【請求項３９】
前記フィールド・プログラマブル・ロジック・デバイスが、フィールドプログラマブル論理ゲートアレイを含むことを特徴とする、請求項３４に記載の方法。
【請求項４０】
前記インターフェースモジュールが、
（ａ）  制御回路と；
（ｂ）  複数の入力／出力ユニットと；を含み、各ユニットが１つの１ビットの相互接続ポートを提供することを特徴とする、請求項３４に記載の方法。
【請求項４１】
前記各入力／出力ユニットが、
（ａ）  動的再構成可能型メモリモジュールと；
（ｂ）  動的再構成可能型メモリモジュールに制御され、複数のプログラマブル・ロジック・デバイスのコンフィギュレーション信号から１ビット相互接続ポートに出力する出力信号を選択する第一マルチパスセレクタと；
（ｃ）  複数の動的再構成可能型メモリモジュールに選択されるラッチと；
を含み、１ビット相互接続ポートの信号を受信することを特徴とする、請求項４０に記載の方法。
【請求項４２】
前記動的再構成可能型メモリモジュールが、１つまたは複数の動的再構成可能型メモリユニットを含むことを特徴とする、請求項４１に記載の方法。
【請求項４３】
前記動的再構成可能型メモリモジュールがさらに、動的再構成可能型メモリモジュールにより制御される第二マルチパスセレクタを含み、前記第二マルチパスセレクタが、複数の出力イネーブル信号の中から１つの出力イネーブル信号を選択し、バッファを制御して信号を１ビット相互接続ポートに出力することを特徴とする、請求項４１に記載の方法。
【請求項４４】
前記バッファがハイインピーダンス状態を呈することを特徴とする、請求項４３に記載の方法。
【請求項４５】
前記各出力信号が１つの出力イネーブル信号に対応することを特徴とする、請求項４３に記載の方法。
【請求項４６】
前記出力信号が固定の信号を含むことを特徴とする、請求項４１に記載の方法。
【請求項４７】
前記方法がさらに、１つまたは複数のプログラマブル・ロジック・デバイスに１つのユーザ回路検証機能を持つ検証ＩＰコアを割り当てる、という手順を含むことを特徴とする、請求項３４に記載の方法。
【請求項４８】
前記検証ＩＰコアが、業界標準データバス操作をシミュレーションする回路を含むことを特徴とする、請求項４７に記載の方法。
【請求項４９】
前記方法がさらに、１つまたは複数のプログラマブル・ロジック・デバイスにパフォーマンス分析ＩＰコアを割り当てる、という手順を含むことを特徴とする、請求項３４に記載の方法。
【請求項５０】
前記パフォーマンス分析ＩＰコアが、帯域幅分析ＩＰコアを含むことを特徴とする、請求項４９に記載の方法。
【請求項５１】
前記方法がさらに、動的再構成可能型論理回路を選択されたプログラマブル・ロジック・デバイスに割り当てることができるコンフィギュレーションツールを提供する、という手順を含むことを特徴とする、請求項３４に記載の方法。
【請求項５２】
前記方法がさらに、複数のプログラマブル・ロジック・デバイスが設置された回路板上のバスを動的に再構成することができるパネルコンフィギュレーションツールを提供する、という手順を含むことを特徴とする、請求項３４に記載の方法。
【請求項５３】
前記方法がさらに、システムデバッグツールを提供するという手順を含み、前記システムデバッグツールが実行時にプログラマブル・ロジック・デバイス内部と複数のプログラマブル・ロジック・デバイス間の信号を監視・分析することを特徴とする、請求項３４に記載の方法。
【請求項５４】
前記システムデバッグツールが、フィールド・プログラマブル・ゲート・アレイのリードバックツールを含むことを特徴とする、請求項５３に記載の方法。
【請求項５５】
前記システムデバッグツールがシステムアクセスバスアクセスツールを含むことを特徴とする、請求項５３に記載の方法。
【請求項５６】
前記システムデバッグツールが内部ロジックアナライザツールを含むことを特徴とする、請求項５３に記載の方法。
【請求項５７】
ロジックアナライザ回路中に１つまたは複数のプログラマブル・ロジック・デバイスを含むことを特徴とする、請求項５６に記載の方法。
【請求項５８】
前記システムデバッグツールが帯域幅分析ツールを含むことを特徴とする、請求項５３に記載の方法。
【請求項５９】
前記システムデバッグツールがコード／イベント抽出ツールを含むことを特徴とする、請求項５３に記載の方法。
【請求項６０】
前記コード／イベント抽出ツールが、ユーザに１つまたは複数の信号を１つのコード名と関連付けることを可能にすることを特徴とする、請求項５９に記載の方法。
【請求項６１】
前記コード／イベント抽出ツールが、ユーザに設定信号イベントを設定する方式で信号波形中に１つの複数の信号を含むイベントを設定することを可能にすることを特徴とする、請求項５９に記載の方法。
【請求項６２】
前記コード／イベント抽出ツールが、関連するコード名を介して設定イベントの検知結果を報告することを特徴とする、請求項５９に記載の方法。
【請求項６３】
前記システムデバッグツールがシミュレータ接続ツールを含むことを特徴とする、請求項５３に記載の方法。
【請求項６４】
前記シミュレータ接続ツールが、ユーザデザインに協調検証環境下においてユーザワークステーションで実行されるシミュレータプログラムとの相互作用を可能にすることを特徴とする、請求項６３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路設計の自動化と検証（ｖａｌｉｄａｔｉｏｎ）技術に関し、特に、本発明はシステム・オン・チップ型（ＳｏＣ）回路の設計の自動化と検証技術に関する。
【背景技術】
【０００２】
集積度の向上に伴い、多くの複雑な論理システムが現在１つの集積回路上で実現される。このような集積回路はシステム・オン・チップ（ＳｏＣ）と呼ばれる。ＳｏＣには一般に、マイクロプロセッサや周辺設備、メモリコントローラ等、いくつかの複雑なユニットが含まれる。多くのＳｏＣはいくつかの他メーカーの既存の回路設計を採用しており、これらの回路設計を業界では「ＩＰコア」と呼んでいる。
【０００３】
現有技術においては、ユーザデザインを含む１つまたは複数のサードパーティのＩＰコアを統合したシステムにデバッグを行なうことは非常に困難であり、これは、ユーザが往々にしてユーザデザインとＩＰコアのインターフェースを介しＩＰコアのタイミングと論理動作を完全に制御できないからである。例えば、ユーザデザインの不正確な出力信号がＩＰコアに予期できない動作を発生させ、さらにＩＰコアの動作がユーザデザインにフィードバックされてユーザデザインを予期できない状態にさせてしまう。このようなエラーは診断とポジショニングが極めて難しい。このため、設計者がユーザデザインとＩＰコア間のインターフェースを制御できるようにする設計ツールが必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、再構成可能型プラットフォームを介しユーザデザインの設計とエミュレーションに用いるシステム及びその方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の方法は特にＩＰベースの設計方法学に適用でき、例えばユーザが自己設計したユーザデザインとサードパーティのＩＰコアを実行できるＳｏＣタイプの設計に適用することができる。本発明はメモリと一定数量のフィールド・プログラマブル・ロジック・デバイス（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）から構成されるプラットフォーム上で実現することができる。ここにおけるフィールド・プログラマブル・ロジック・デバイスは、プログラマブル・ゲート・アレイ（ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）とすることができる。さまざまなカスタマイズされた回路をユーザデザインと相互作用させて構成し、デバッグやパフォーマンス分析、シミュレータとの接続等の機能を提供することができる。
【０００６】
本発明の具体的な一実施例において、ユーザデザインの設計とエミュレーションに用いるシステムは、（１）ユーザワークステーションと接続されるインターフェースとデータ通信インターフェースを備えたシステムコントローラと、（２）前記データ通信インターフェースと接続される模擬プラットフォームを含み、前記模擬プラットフォームが複数のフィールド・プログラマブル・ロジック・デバイスとメモリデバイスを含み、ユーザデザインとサードパーティＩＰコアの実現に用いられ、前記プラットフォームはさらにターゲットシステムに接続するインターフェースを含み、実行時にユーザデザインと相互作用する。前記データ通信インターフェースは一組のコンフィギュレーションバス、一組のシステムアクセスバス、一組のクロックバスを含む。前記のターゲットシステムに接続するインターフェースは一組プログラマブルデバイスの入力／出力ポートからの信号を含む。
【０００７】
本発明の具体的な一実施例に基づき、ユーザデザインの設計とエミュレーションに用いるシステムを使用して、ユーザはユーザデザインと１つまたは複数のサードパーティＩＰコアを含む最上位モジュールを生成する。続いてユーザはユーザデザインを統合することができる。ユーザデザインとサードパーティＩＰコアは合理的に複数のブロックに区分され、各ブロックは１つまたは複数のプログラマブル・ロジック・デバイスで実現される。このほか、各プログラマブル・ロジック・デバイスと各ＩＰコアはすべて１つのインターフェースモジュールが割り当てられる。前記インターフェースモジュールを介していずれかのプログラマブル・ロジック・デバイス内に実現されたＩＰコアに別のいずれかの同じプログラマブル・ロジック・デバイス内のブロック、または別のプログラマブル・ロジック・デバイス内のいずれかのブロックと通信させることもできる。これらブロックとインターフェースモジュールは後に配線され、プログラマブル・ロジック・デバイス内に物理的に実現される。
【０００８】
本発明の具体的な一実施例に基づき、前記各ＩＰコアまたは各プログラマブル・ロジック・デバイス内に割り当てられるインターフェースモジュールは、制御回路と一組の可変数量の入力／出力ユニットを含み、各ユニットが１ビット（１−ｂｉｔ）の相互接続ポートを提供する。前記実施例において、各入力／出力ユニットは動的再構成可能型のメモリモジュール、１ビットの相互接続ポートに出力する出力信号を選択するためのマルチパスセレクタ及び一定数量のラッチを含み、各ラッチは１ビットの相互接続ポートから受信される信号を選択的に捕らえることができる。前記マルチパスセレクタとラッチは動的再構成可能型メモリモジュールのメモリに保存された数値で制御することができる。前記動的再構成可能型メモリモジュールは１つまたは複数の動的再構成可能型メモリユニットから構成することができ、且つステートマシン（例：カウンター）が生成するアドレスにアクセスする。動的再構成可能型メモリモジュールは通常ユーザデザインで使用するクロック周波数より高いクロックを使用して操作することができる。
【０００９】
前記インターフェースモジュールは出力ポート、入力ポート、双方向ポートまたは３ステートポートを実現するために用いることができる。また、インターフェースモジュール内に実現されるポートのタイプは動態的に変更することができる。根據指定のテストまたはデバッグ状況（例えばバウンダリスキャン操作中など）に基づき、インターフェースモジュールは１つのプログラマブル・ロジック・デバイス中のＩＰコアとその他同一または異なるプログラマブル・ロジック・デバイス中のＩＰコアを隔離するよう構成して用いることもできる。
【００１０】
本発明の具体的な一実施例に基づき、１つまたは複数のプログラマブル・ロジック・デバイスは検証ＩＰコアに割り当て、ユーザ回路の機能検証に用いることができる。例えば、このような検証ＩＰコアは業界標準バスのシミュレーション操作を含むことができる。
【００１１】
本発明の別の具体的な一実施例に基づき、１つまたは複数のプログラマブル・ロジック・デバイスはパフォーマンス分析ＩＰコアに割り当てることができる。例えば、パフォーマンス分析ＩＰコアはバス帯域幅を分析するために用いるＩＰコアを含むことができる。
【００１２】
本発明の具体的な一実施例に基づき、前記システムは選択したプログラマブル・ロジック・デバイス中の論理回路の動的再構成に用いるコンフィギュレーションツールを提供する。前記コンフィギュレーションツールは、複数のプログラマブル・ロジック・デバイスを備えた回路板上のバスを動的再構成するために用いるバックプレーンコンフィギュレーションツールを含むことができる。
【００１３】
本発明の具体的な一実施例に基づき、前記システムは進行時に複数のプログラマブル・ロジック・デバイス間の信号を監視測定し分析するシステムデバッグツールを提供する。前記システムデバッグツールは、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）リードバックツール、システムアクセスバス操作ツール、内部ロジックアナライザツール、帯域幅分析ツール、コード／イベント抽出ツールとシミュレータ接続ツールを含むことができる。前記内部ロジックアナライザツールは１つまたは複数のプログラマブル・ロジック・デバイス中にロジックアナライザ回路を挿入する。コード／イベント抽出ツールはユーザに１つまたは複数の信号を関連付け、１つのコード名を設定するか、複数の信号から構成する１つのイベントを設定させることができる。１つのイベントは一定時間内の一組の信号波形で設定することができる。デバッグツールはイベントの発生を検知し、且つコード名の方式でユーザに報告することができる。シミュレータ接続ツールはユーザにユーザワークステーション上で実行されるシミュレーションプログラムと相互作用させ、共同でソフト／ハードウェア協調検証環境を構築することができる。
【発明の効果】
【００１４】
本発明のシステムと方法はシステム・オン・チップタイプのユーザデザインをより容易に設計し、エミュレーションできるようにする。ユーザデザインのうちのネットリストは複数のフィールド・プログラマブル・ゲート・アレイ・デバイスを含むプラットフォームを使用し、カスタマイズされたまたは最適化されたサードパーティ回路のネットリストに含むことができ、さまざまなカスタマイズされた回路をユーザデザインと相互作用させて構成し、デバッグやパフォーマンス分析、シミュレータとの接続等の機能を提供することができる。
【発明を実施するための最良の形態】
【００１５】
図１に本発明の具体的な実施例の電気再構成可能型プロトタイプシステム１００を示す。この図に示すように、電気再構成可能型プロトタイプシステム１００はスケーラブル再構成可能型プロトタイププラットフォーム１０３を含み、前記プロトタイププラットフォーム１０３１つまたは複数のＦＰＧＡ回路から構成することができる。スケーラブル再構成可能型プロトタイププラットフォーム１０３はターゲットシステム１０４とプログラマブルな入力／出力ポート１０５を介して相互作用を行なうことができる。これら入力／出力ポートはＦＰＧＡにより駆動することができる。スケーラブル再構成可能型プロトタイププラットフォーム１０３はシステムコントローラ１０２により一組または複数組のデータバスを介して制御される。本実施例において、これらデータバスは、システムコンフィギュレーションバス１０８、システムアクセスバス（ＳＵＢ）１０７、クロックバス（パルスバス）１０６を含む。システムコンフィギュレーションバス１０８はＦＰＧＡ回路のコンフィギュレーションに用いられる。システムアクセスバス（ＳＵＢ）１０７はシステムコントローラ１０２とスケーラブル再構成可能型プロトタイププラットフォーム１０３間でのデータ通信に用いられる。パルスバス１０６はスケーラブル再構成可能型プロトタイププラットフォーム１０３の操作に１つまたは複数の時間基準を提供する。
【００１６】
ユーザワークステーション１０１はユーザに図形化されたユーザインターフェースを提供し、電気再構成可能型プロトタイプシステム１００の動作を制御する。この図形化されたインターフェースを介して、ユーザワークステーション１０１のユーザはユーザデザインにアクセスし、ユーザデザインをスケーラブル再構成可能型プロトタイププラットフォーム１０３に適用するコンフィギュレーション信号に変換するコンパイラを操作して、各種ＩＰライブラリを使用し、電子設計自動化ソフトウェアと実行時のソフトウェアを使用することができる。ユーザワークステーション１０１はエンジニアリングワークステーションまたはパーソナルコンピュータとすることができる。本実施例において、ユーザワークステーション１０１とシステムコントローラ１０２は業界標準通信インターフェース１０９を介して通信を行なう。前記インターフェース１０９はＵＳＢ、ＰＣＩ、ＩＥＥＥ−１３９４（「ファイアワイヤ」とも呼ばれる）またはその他各種業界標準通信バスとすることができる。
【００１７】
本実施例において、ユーザデザインは一般的な回路図ツールを介して入力または編集するか、動作（Ｂｅｈａｖｉｏｒ）またはハードウェア記述言語（例：ＳｙｓｔｅｍＣ、  Ｖｅｒｉｌｏｇ、Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ、ＶＨＤＬ等）を用いて表現することができ、その後論理ゲートレベルの回路図に統合される。本発明はハードウェアプロトタイプシステム、すなわち電気再構成可能型プロトタイプシステム１００内に統合済みの回路に対するエミュレーションと検証を実現することができる。
【００１８】
図２にシステムコントローラ１０２のダイアグラムを示す。システムコントローラ１０２は、通信インターフェース２０４、システムアクセスバスコントローラ２０２、パルス生成器（クロック生成器）２０３、コンフィギュレーションコントローラ２０１を含む。コンフィギュレーションコントローラ２０１はコンフィギュレーション信号プロトコルを処理し、且つユーザワークステーション１０１からコンフィギュレーションバス１０８を介しコンフィギュレーションデータをスケーラブル再構成可能型プロトタイププラットフォーム１０３に伝送する。これにより、コンフィギュレーションコントローラ２０１は定義された形式のユーザデザインをスケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡにコンフィギュレーションまたはダウンロードすることができる。システムコンフィギュレーションバス１０８も各ＦＰＧＡ中の設計をリードバックし、検証するため用いたり、或いは実行時ユーザデザイン中の状態情報とデータを取得するために用いることができる。リードバック操作は通常一般的な技術を介して、またはＳｅｌｅｃｔＭａｐやＪＴＡＧ（バウンダリスキャン）など、供給元が提供するプロトコルを使用する。本実施例において、システムコンフィギュレーションバス１０８は電気再構成可能型プロトタイプシステム１００中のスケーラブル再構成可能型プロトタイププラットフォーム１０３のプログラマブル・ゲート・アレイをテストするために用いることができる。
【００１９】
システムアクセスバスコントローラ２０２は通過システムアクセスバス（ＳＵＢ）を介し実行時にデザインとシステム特定部材中のレジスタ、ＦＩＦＯ（先入れ先出しキュー）、メモリ、およびコンパイラからユーザデザインに挿入された特殊論理ユニットなどその他状態ユニットにアクセスする。システムアクセスバス１０７もスケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡを特定の動作状態に戻すまたは初期化するために用いることができる。
【００２０】
パルス生成器２０３はパルスバス１０６を駆動しＦＰＧＡに各種クロック信号を提供する。これらクロック信号の周波数とデューティサイクルはすべてプログラマブルであるものとする。これらクロックがスケーラブル再構成可能型プロトタイププラットフォーム１０３中のユーザデザインにダウンロードされて使用される。
【００２１】
上述のように、スケーラブル再構成可能型プロトタイププラットフォーム１０３は１つまたは複数のスケーラブルパネル（または回路板）、ＦＰＧＡ、動的再構成可能型のスイッチから構成することができる。スケーラブル再構成可能型プロトタイププラットフォーム１０３は任意の数量のＦＰＧＡとスイッチを含むことができる。図３にスケーラブル再構成可能型プロトタイププラットフォーム１０３の構成を示す。図３に示すように、スケーラブル再構成可能型プロトタイププラットフォームはＦＰＧＡ３０４−１から３０４−ｎより構成される。３０４−１から３０４−ｎ中の各ＦＰＧＡはすべて一組以上の接続線を有し、その他ＦＰＧＡと相互に接続される。本実施例においては、１つまたは複数のバス（例えばバス３０１−３０３）がＦＰＧＡ  ３０４−１から３０４−ｎの接続に用いられる。このような方式において、信号はいずれかのＦＰＧＡからその他任意のＦＰＧＡに接続することができる。バス３０１−３０３は「ユニバーサルバス」（即ち、各ＦＰＧＡがすべてアクセスできるバス）として設置することができる。または、バス３０１−３０３は各種コンフィギュレーションに割り当てることもでき、この場合各バスはある一組の特定のＦＰＧＡ専用にコンフィギュレーションすることができる。これらバスは、動的再構成可能な回路スイッチを介して相互に接続することもできる。これら回路スイッチは特殊なスイッチ回路により提供するか、またはＦＰＧＡ３０４−１から３０４−ｎ中にコンフィギュレーションすることができる。これらＦＰＧＡはレイヤ化した構造にコンフィギュレーションすることができる。この構造において、ＦＰＧＡはグループ分けすることができる。この場合、各グループ中のＦＰＧＡは「局部」的相互接続バスにより相互に接続され、これら局部の相互接続バスは一層または多層の動的再構成可能型スイッチにより相互に接続される。このほか、各ＦＰＧＡは１つまたは複数の入力或いは出力信号が入力／出力ポート１０５上に接続され、ターゲットシステム１０４と通信することができる。これら入力／出力信号も一層または多層の動的再構成可能型スイッチにより相互に接続し、ＦＰＧＡ間で信号を相互接続させることができる。いずれにしても、技術の進化と向上に伴い、これら相互接続する数量は制限されない。これら相互接続バスとスイッチは通常１つまたは複数のパネルまたは回路板上に実現することが望ましい。また、あらゆる相互接続バス（例えばバス３０１−３０３、システムコンフィギュレーションバス１０８、ＳＵＢバス１０７またはパルスバス１０６中のいずれか）はケーブル、光ファイバ、その他相互接続方法で実現することもできる。
【００２２】
一つの複雑な数字システム（例えば１つのＳｏＣ或いは１つの専用回路）は通常複数のサブシステムを含む。例えば、１つのＳｏＣ設計はマルチメディアサブシステム、信号処理サブシステム、外部制御システムと中央処理装置などを含むことができる。各サブシステムは１本の共用の局部バスにより接続された一組のＦＰＧＡにコンフィギュレーションすることができる。そして動的再構成可能型スイッチでこの局部バスをシステムのその他バスに接続する。この共用局部バスを「オフ」モード（接続切断）のユニバーサルバスに設定すると、サブシステム中専用の局部バスとなる。各本の局部バス間のスイッチを「オン」モードに設定すると、サブシステム間の通信を行なうことができる。ユニバーサルバスはサブシステム間の通信またはＦＰＧＡ間の点対点の通信に用いることができる。
【００２３】
１つのユーザデザインをスケーラブル再構成可能型プロトタイププラットフォーム１０３中で実現するため、ユーザはユーザワークステーション１０１上でコンパイラを使用する。図４に本発明の一実施例のコンパイラプログラムのフロー図を示す。図４に示すように、手順４０１においてシステム設計者は最上位モジュール生成器を使用しユーザデザインに１つの最上位モジュールを生成することができる。ユーザデザインは特殊な設計ユニットとサードパーティＩＰコアを含むことができる。この最上位モジュール生成器はユーザ自身のライブラリとサードパーティ供給元からの各種デザインとＩＰコアの説明と集成に用いられる。前記生成器は標準のバス定義とユーザ自ら定義するバスと信号の相互接続関係に基づき、ユーザデザインユニットとサードパーティＩＰコアを自動接続する。また、システム設計者は最上位モジュールを手動で構築し、自動最上位モジュール生成器を使用しなくてもよい。
【００２４】
手順４０２において、システムまたは回路設計者はコンパイラを使用して最上位モジュール中の各デザインユニットを導入する（例えば「デザイン導入」コマンドを使用する）。このデザインは通常あるハードウェア記述言語またはネットリストで記述される。コンパイラがデザインの語法、統合可能性、完全性を検査する（例えばデザインソースコード中のすべての論理ユニットがあらかじめ定義されたライブラリまたは論理データベース内で利用可能または接続して取得可能か否かなど）。導入したデザイン中にエラーが存在する、またはある論理ブロックが利用できない場合、コンパイラソフトウェアが導入エラーを報告する。必要に応じ、手順４０２はすべての入力ソースコードが検査で正確であると確認され、且つコンパイラに受け入れられるまで何度も繰り返すことができる。
【００２５】
デザインが導入された後、手順４０３では例えばコンパイラ中の「統合」コマンドまたはコンパイラにより使用されるサードパーティ統合ツールの使用を介して、設計者がデザイン中のすべてのハードウェア記述（ハードウェア記述言語またはその他形式）を統合することができる。実施例において、コンパイラは下から上に向かう方法でサードパーティＩＰコアを統合し、サードパーティＩＰコアのバウンダリ信号を保持すると共に、実行時の性能を保持する。統合後のデザインはスケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡ内にコンフィギュレーションするために用いることができるネットリスト（例：ＥＤＩＦファイル）を含む。実施例において、コンパイラはすべてのＥＤＩＦファイルを１つのＥＤＩＦ文書に併合してユーザデザインを代表する。
【００２６】
本実施例において、手順４０４では１つのデザインが統合された後、設計者はコンパイラ中の「コード定義」コマンドを用いてコード定義過程を開始することができる。コード定義過程でユーザはあらゆる１つの単独の信号または一組の信号を定義１つのコードとして定義することができる。任意の数量の信号を１つのコードとして定義することができる。このほか、ユーザは１つのイベント、すなわち、一組の特定のコードまたは信号の一連のイベント、または一組の任意の長さの波形を定義することもできる。信号またはコードの状態がイベントにおいて指定される一定長さの波形に合うものに変わると、前記イベントが発生したとみなす。例えば、図５に１つの保存デバイスの典型的「書き込み操作」のイベント波形を示す。図５に示すように、この「書き込み操作」イベントは５つのコードの波形を含む：単独の信号「パルス（ｃｌｋ）」、「書き込み（ｗｒｉｔｅ）」、「チップ選択（ｃｈｉｐｓｅｌｅｃｔ）」、バス信号「アドレス（ａｄｄｒｅｓｓ）」、「データ（ｄａｔａ）」である。この例において、このイベントは２つのパルス周期長さである。図５に示すように、周期１と周期２は０ナノ秒から１００ナノ秒の間である。この時間内に「チップ選択（ｃｈｉｐｓｅｌｅｃｔ）」と「書き込み（ｗｒｉｔｅ）」制御信号が有効な１つの「パルス（ｃｌｋ）」信号の周期長さに置かれる。これら２つのパルス周期内の信号波形がこのイベントを定義する。イベントの発生を検査するため、電気再構成可能型プロトタイプシステム１００は実行時に指定の信号を検査し、信号の変化とあらかじめ定めたイベント中の信号変化を比較するよう設定してもよい。現有技術と異なるのは、イベントの発生が検知されると、ソフトウェアがユーザに対してイベントの発生を報告する点であり、ユーザにたくさんの信号状態を解読させるのではない点である。この方法において、イベントはハイレベルの抽象的方法でユーザに報告され、デバッグの説明に用いられる。１つの実施例において、信号状態はサンプリングされてボード上のメモリに保存されるか、或いはユーザワークステーション１０１上のメモリまたは文書に保存され、更なる分析の実施に用いられる。コードとイベントはデバッグモード下で特に有用であり、デバッグ模式下での信号比較とイベント検出メカニズムはすべて前述の実行時と完全に一致する。回路設計者は必要に応じて任意の数のコードとイベントを定義し、これにより、大量実行時の信号情報がハイレベルの抽象レイヤで定義され、デバッグに便利になる。デバッグモード下で定義されるコードとイベントは変換されて実行時に使用と観察を行なうことができる。
【００２７】
手順４０５において、ユーザはコンパイラ中の「分割」コマンドでデザインを複数のブロックに分割することができ、各ブロックは１つの単独のＦＰＧＡ中で実現される。サードパーティＩＰコアも分割され、各ＦＰＧＡ中で実現される。大きいＩＰコアは複数のＦＰＧＡ中に分割することができる。一実施例において、分割コマンドはサードパーティの分割ツールを用いる。後述する「ＴＡＩ−ＩＰユニット」の相互接続方法のため、電気再構成可能型プロトタイプシステム１００中の分割ツールはＦＰＧＡの容量利用率を最大化しＦＰＧＡのピンに制限される必要がないという原則に沿って最適化して分割することができる。分割ツールはスケーラブルＦＰＧＡ中の各ＦＰＧＡの単独のネットリストを生成する。分割手順４０５はあらゆるユーザデザインの情報と機能すべてを維持する。または、サードパーティ分割器或いは手動分割もデザインの分割に用いることができる。分割器は制限条件の設定を受け入れることができ、分割器に指示してスケーラブル再構成可能型プロトタイププラットフォーム１０３のハードウェアに対するネットリストを生成させるために用いることができる。
【００２８】
手順４０６において、ユーザデザインが分割された後、コンパイラが各ＦＰＧＡブロック中に特製の回路構造を挿入し「測定可能性」、「分析可能性」、「相互接続」機能を提供する。この「ＴＡＩ−ＩＰ」と呼ばれる特製の回路構造はまた、各ＩＰまたは複数のＦＰＧＡに分割された１つのＩＰの各部分に挿入される。図６(ａ)に分割後の回路トポロジー構造の論理図を示す。図６(ａ)に示すように、本発明の一実施例において、ユーザデザイン回路とサードパーティＩＰを含むシステム・オン・チップ設計６２０は、デザインが回路６２５−１から６２５−ｎ中に分割され、ＴＡＩ−ＩＰ６２６−１から６２６−ｎにそれぞれ対応する。６２５−１から６２５−ｎ中の各回路がそれぞれ１つのＦＰＧＡ中に実現されるユーザデザインの１つのブロック、１つのＩＰ或いは１つのＩＰの１つの部分である。いくつかの実施例において、１つのユーザデザインのブロックは同一のＦＰＧＡに割り当てられる。６２５−１から６２５−ｎ中の各ブロックの回路はそれらに関連するＴＡＩ−ＩＰ６２６−１から６２６−ｎ及び１本または複数本の通信バス或いは経路（図に示すバス６３０−１から６３０−０２など）を通過してその他部分と相互通信を行なう。（図６(ａ)中には２本のバスのみしか示していないが、ユーザの選択と回路間の相互接続関係に基づき、１つの通信経路は１本または複数本の信号バスを含むことができる。）
【００２９】
図６(ｂ)に構造ブロック図を示す。この図においてはＴＡＩ−ＩＰ６０２−１から６０１−ｎがスケーラブル再構成可能型プロトタイププラットフォーム１０３中に実現され、ＦＰＧＡ６０２−１から６０２−ｎ間のインターフェースとなる。図６(ｂ)に示すように、各ＦＰＧＡ中のＴＡＩ−ＩＰとその他ＦＰＧＡ中のＴＡＩ−ＩＰは相互に接続され、スケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡ間の相互接続を提供する。１つのＦＰＧＡ中の各ＩＰもそれに関連するＴＡＩ−ＩＰと前記ＦＰＧＡ中に割り当てられたその他回路及びその他ＦＰＧＡ中の回路を経由して通信する。このような構造において、１つのＩＰの入力と出力はＴＡＩ−ＩＰを介して制御される。例えば、ＩＰの各出力信号はユーザデザイン上から隔離されることができ、信号状態はデバッグに便利なように固定値に変換されることができる。このほか、ＩＰの入力と出力信号は独立して監視測定され、測定可能性を向上することができる。
【００３０】
図７に本発明の一実施例のＴＡＩ−ＩＰ７００のダイアグラムを示す。図７に示すように、ＴＡＩ−ＩＰ７００は制御回路７０１を含み、ＴＡＩ−ＩＰ構造ブロック回路（「ＴＡＩ−ＩＰユニット」）７０２−１から７０２−ｎを制御するために用いられる。各ＴＡＩ−ＩＰ中のＴＡＩ−ＩＰユニットの数量は１つのプログラマブルな設計パラメータであり、通常はＦＰＧＡ回路板上の相互接続が必要なＦＰＧＡの数量、ユーザデザインの入力出力要求、ユーザの指定に基づいて決定される。各ＴＡＩ−ＩＰユニットは１つの１ビットの相互接続ポート（例えば相互接続ポート７０３−１から７０３−ｎ中のいずれか）を介してスケーラブル再構成可能型プロトタイププラットフォーム１０３回路板上の１本のバスに接続される。これら要求に基づき、コンパイラが必要なＴＡＩ−ＩＰユニットの数量を決定し、且つ必要な各ＦＰＧＡ中のＴＡＩ−ＩＰ中のＴＡＩ−ＩＰユニットと制御回路を生成する。
【００３１】
図８に本発明の一実施例のＴＡＩ−ＩＰユニット８００を示す。図８に示すように、ＴＡＩ−ＩＰユニット８００は動的再構成可能型タグメモリ８０１と８０２、マルチパス信号セレクタ８０３、双方向バッファ８０６（出力バッファ８０６ａと入力バッファ８０６ｂを含む）、信号ラッチ８０７を含む。動的再構成可能型タグメモリ８０１が制御するデータ出力信号８０８とそれに対応する出力イネーブル信号８０５のマルチパス選択である。データ出力信号８０９と対応する出力イネーブル信号８０５はＦＰＧＡ中にコンフィギュレーションされたユーザデザインの出力信号と指定の内部論理ノード信号を含む。このほか、固定信号８１０（１つの固定の「０」と１つの固定の「１」を含む）も信号出力マルチパスセレクタにより選択され相互接続ポート７０３を介して伝送されることができる。このような構造において、１つの出力信号はあらゆるときに相互接続ポート７０３上に出力されることができる。データ出力信号８０９中の割り当てられていない信号は任意の値にリンクすることができる。後述するように、このような構成は実行時の増加信号コンフィギュレーションに完全な再コンパイルを必要としない。未使用の出力イネーブル信号は「ディスエーブル」の信号状態が割り当てられ、これにより意図せず値が相互接続ポート７０３に出力されるのを防ぐ。
【００３２】
動的再構成可能型タグメモリ８０２は一組の信号ラッチを制御し、各ラッチは選択されて相互接続ポート７０３上の入力信号をラッチすることができる。上述のように、相互接続ポート７０３は１ビットの相互接続バスを介してその他ＦＰＧＡから信号を受信する。信号ラッチ８０７の出力信号がデータ出力信号８０８を駆動し、データ出力信号８０８がユーザデザイン中のデバイスの入力ポートに接続される。データ出力信号８０８中の割り当てられていない信号は空きとしておくことができる。
【００３３】
動的再構成可能型タグメモリ８０１、８０２は制御カウンターによりアドレッシングが行なわれ、これにより動的再構成可能型タグメモリ８０１、８０２は実行時にＳＵＢバス１０７よりロードすることができる。マルチパスセレクタ８０４が双方向バッファ８０６の方向を制御し、これにより相互接続ポート７０３を入力ポート、出力ポート或いは双方向ポートとするかが決定される。マルチパスセレクタ８０４の選択信号は実行時に動的割当てポートタイプが変更される。図８に示す実施例において、マルチパス信号セレクタ８０３、マルチパスセレクタ８０４は同時に動的再構成可能型タグメモリ８０１が生成する制御信号により制御され、且つ同じ数量の信号が選択される。このようなコンフィギュレーション下で対応するマルチパス信号セレクタ８０３、マルチパスセレクタ８０４の入力信号が選択される。このような構造は当然必須ではない。複数のマルチパスセレクタも動的再構成可能型タグメモリ８０１の出力文字列中の異なるフィールドで制御することができ、データ出力信号８０９と出力イネーブル信号８０５の選択設計に用いることができる。
【００３４】
３ステート出力ポートはデータ出力信号をデータ出力信号８０９中の１つとし、且つ対応する出力イネーブル信号を対応する出力イネーブル信号８０５中の１つとして実現することができる。対応する出力イネーブル信号が無効にされるとハイインピーダンス状態が得られる。同様に、双方向信号は同時にデータ出力信号８０９とデータ出力信号８０８とし、及び対応する出力イネーブル信号を出力イネーブル信号８０５中の１つとすることで実現することができる。コンパイラは双方向ポートが正確にマップされるよう確保し、これにより対応する動的再構成可能型タグメモリ中の対応するアドレスが常に同時に選択される。一実施例において、双方向信号は動的再構成可能型タグメモリ８０１、８０２中の同じアドレスにマッピングされる。
【００３５】
１つのＴＡＩ−ＩＰ（例えばＴＡＩ−ＩＰ６０１−１から６０１−ｎのうちのいずれか）はユーザデザインより速いパルスで動作することができる。この速いパルスでカウンターの増減を制御し、且つカウンターが動的再構成可能型タグメモリ８０１、８０２のアクセスに用いるアドレスを生成する。各カウンターはプログラマブルな最大と最小の計数値を有する。通常、カウンターに最大または最小計数値が選択されると、カウンターは戻って計数を行なう。計数上限が選択されると、カウンターは０に戻される。カウンターが１つのユーザデザインのパルス周期内で少なくとも１回０に戻され、ユーザデザインの入力出力信号とラッチされる信号が共にすでに正確に伝送されたことになる。この実施例において、各カウンター中の最大または最小計数値はＳＵＢ１０７を介して実行時にプログラミングすることができる。これにより、速いパルスの各周期内で相互作用される信号を動態的に変えることができる。動的再構成可能型タグメモリ８０１、８０２はユーザまたはリアルタイムソフトウェアによりＳＵＢ１０７を介して書き込みを行なうことができ、相互接続ポート７０３の入力または出力信号をユーザのパルスに基づき動態的に調整することができる。このような能力で信号値または接続をテスト或いはデバッグモード下で変化させることができる。
【００３６】
ＴＡＩ−ＩＰが挿入された後、手順４０７において、コンパイラが配線プログラムを使用して各ＦＰＧＡのネットリストを処理する。配線プログラムは通常ＦＰＧＡ供給元の定めるプログラムであり、各ネットリストをバイナリファイルまたはテキストファイルに変換するために用いられる。この出力されたファイルをスケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡにダウンロードすることができる。一実施例において、配線プログラムは１つ以上のユーザワークステーションまたはプロセッサ上で実行され、ＦＰＧＡの配線を平行処理することができる。配線後のバイナリまたはテキストファイルはユーザワークステーション１０１上に保存し、リアルタイムソフトウェアの更なる処理を待つことができる。
【００３７】
１つのＩＰライブラリはＴＡＩ−ＩＰのほか、その他の提供される回路検証、回路デバッグ、パフォーマンス分析機能のＩＰを含むことができる。システム設計者は１つまたは複数のこのようなＩＰをユーザデザインに加えることができる。このようなＩＰのユーザデザインへの追加は、システム設計者がコンパイラに指示または手動でユーザデザインのソースコード中にこれらＩＰをインスタンス化して行なうことができる。
【００３８】
回路検証に用いるＩＰ（検証ＩＰ）はＵＳＢバスまたはＰＣＩバスをシミュレーションした回路を含み、ＵＳＢバスまたはＰＣＩバスに相互作用のあるユーザデザインの動作の検証に用いることができる。電気再構成可能型プロトタイプシステム１００中に用いられる検証ＩＰはユーザまたはリアルタイムソフトウェアにＳＵＢ１０７を介して検証ＩＰの作成者或いは供給元が提供する動作情報にアクセスさせることができる。通常、検証ＩＰはユーザデザインの動作を検出し、ユーザデザインと標準通信または信号プロトコルの互換性をチェックするか、ユーザデザインの動作と特定の動作モード（正確なモード）を比較する。検証ＩＰは分析報告とエラーまたは警告情報をユーザまたはリアルタイムソフトウェアに提供することができる。
【００３９】
例えば、デバッグに用いるＩＰコア（デバッグＩＰコア）は内部ロジックアナライザ機能のＩＰコア（内部ロジックアナライザＩＰコア）或いはデータフロー／状態分析器を含む。これらＩＰコアはシステム設計者に実行時すでにコンフィギュレーションが完了したシステムのデバッグを行なわせることができる。例えば、内部ロジックアナライザＩＰコアは指定のトリガポイントでユーザデザイン中の信号値をサンプリングしてメモリユニットに保存し、後続の分析に用いることができる。実行ソフトウェアは実行時にこれらデバッグＩＰコアにアクセスし、操作することができる。
【００４０】
パフォーマンス分析に用いるＩＰコア（パフォーマンス分析ＩＰコア）は、帯域幅分析に用いるＩＰコアを含むことができる。これらＩＰコアはパフォーマンス情報の収集とユーザデザインのパフォーマンス分析に用いることができる。その他ＩＰコアと同様に、パフォーマンス分析ＩＰコアはＳＵＢ１０７を介してユーザまたは実行時ソフトウェアと通信し共同でパフォーマンス分析を完了することができる。
【００４１】
電気再構成可能型プロトタイプシステム１００中の実行ソフトウェアは動的コンフィギュレーションキットとシステムデバッグキットを含むことができる。動的コンフィギュレーションキットはユーザのコマンドを受けてスケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡ、バックプレーンとＴＡＩ−ＩＰをコンフィギュレーションして操作モード、相互作用、さらにはリアルタイムのデザイン機能を修正する。一実施例において、ＦＰＧＡコマンドに対して応答した後、ＦＰＧＡコンフィギュレーションツールがバイナリまたはＡＳＣＩＩのＦＰＧＡコンフィギュレーションファイルを読取り、且つファイルをシステムコントローラ１０２中のコンフィギュレーションコントローラ２０１に伝送する。ＦＰＧＡコンフィギュレーションツールは単独で１つまたは複数のスケーラブル再構成可能型プロトタイププラットフォーム１０３中のＦＰＧＡ、さらには必要なＦＰＧＡ中の部分をコンフィギュレーションすることができる。例えば、ユーザはＦＰＧＡ中の論理ブロックを修正することができる。ＦＰＧＡコンフィギュレーションツールを使用して修正した論理ブロックをＦＰＧＡ中にダウンロードすることができ、別のＦＰＧＡを再構成する必要はない。
【００４２】
回路板コンフィギュレーションコマンドに応答し、パネルコンフィギュレーションツールは回路板上またはスケーラブル再構成可能型プロトタイププラットフォーム１０３中のバックプレーン上のプログラマブルスイッチをコンフィギュレーションする。典型では、いずれのスイッチも「オン」状態または「オフ」状態に設置することができる。スイッチが「オン」状態のとき、スイッチは導通される。スイッチが「オフ」状態のとき、スイッチは開となる。パネルコンフィギュレーションツールは、選択的に一部の相互接続バスをローカルバスにコンフィギュレーションするなどのことができる。
【００４３】
ＴＡＩ−ＩＰコンフィギュレーションコマンドに応答し、ＴＡＩ−ＩＰコンフィギュレーションツールはＳＵＢ１０７を介してＴＡＩ−ＩＰユニット中に保存する１つまたは複数の動的再構成可能型タグメモリ中のデータを生成する。これらデータはＦＰＧＡ間の相互関係またはユーザの特殊要求を代表する。例えば、あるユーザは指定のＦＰＧＡのある入力信号に「１」の値を提供し、リコンパイルしないことを希望するかもしれない。このような効果を選択できるようにするため、ＴＡＩ−ＩＰコンフィギュレーションツールは必要なタグメモリ内の値を再計算してこの入力値を生成し、同時に修正後のタグメモリの値を特定の動的再構成可能型タグメモリに書き込む。
【００４４】
システムデバッグキットはデザインとデバッグ情報を収集・分析し、且つ特殊な条件と信号を設置してリアルタイムでユーザデザインの動作を制御する。一実施例において、システムデバッグキットは（ａ）ＦＰＧＡリードバックツール、（ｂ）ＳＵＢアクセスツール、（ｃ）内部ロジックアナライザツール、（ｄ）帯域幅分析ツール、（ｅ）コード／イベント抽出ツール、（ｆ）シミュレータ接続ツールを含む。
【００４５】
ＦＰＧＡリードバックツールは、実行時指定のＦＰＧＡの内容またはユーザデザイン中の指定の信号の状態を読み取る。ＦＰＧＡリードバックツールは供給元から得ることができ、且つＪＴＡＧやＳｅｌｅｃｔＭＡＰなど、供給元が指定するプロトコルを使用して指定のＦＰＧＡの内容を読み取ることができる。多くのＦＰＧＡ供給元はツールを提供してＦＰＧＡ中のあらゆるレジスタ或いはメモリユニットの内容を読み取るようにしている。この実施例において、データがＦＰＧＡからリードバックされた後、ＦＰＧＡリードバックツールがこれら情報を信号値に変換し、且つユーザデザイン中の信号名とコードにマッピングする。このような方法を通してＦＰＧＡ内のあらゆる信号の完全な観察可能性を得ることができる。
【００４６】
ＳＵＢアクセスツールはＳＵＢ１０７と相互に接続されたユーザデザイン中の、または電気再構成可能型プロトタイプシステム１００中のデバイスにアクセスするために用いられる。デバイスはすべてアドレス空間にマッピングされ、これによりＳＵＢアクセスツールを用いてデバイスにアクセスし、即ち、コマンド、アドレスとデータをシステムコントローラ１０２中のＳＵＢコントローラ２０２に発してデバイスのデータの読取りまたは書き込みを行う。一実施例において、ＳＵＢ１０７は読み書き可能なスケーラブル再構成可能型プロトタイププラットフォーム１０３回路板中のあらゆるデバイスに拡張される。
【００４７】
内部ロジックアナライザツールは電気再構成可能型プロトタイプシステム１００中に組み込まれたロジックアナライザにトリガ条件を設定する。このロジックアナライザはスケーラブル再構成可能型プロトタイププラットフォーム１０３中にダウンロードされる１つまたは複数のＦＰＧＡ内の特殊なＩＰ（内部ロジックアナライザＩＰ）である。このロジックアナライザＩＰは従来のロジックアナライザと同じ機能を提供することができる。ＦＰＧＡ内でＴＡＩ−ＩＰと共同で作用し、このロジックアナライザＩＰは大量な信号のサンプリングを提供し、且つ大量のトリガ条件を処理することができる。一実施例において、この内部ロジックアナライザツールは組み込まれたロジックアナライザＩＰ内にトリガ条件を設定し、トリガ条件またはイベントの発生を待ち、その後ロジックアナライザＩＰ中に組み込まれたサンプリングメモリ中からサンプリングされた信号データを読み取り、関連のサンプリングデータをユーザ定義のコードの形式に変換する。一実施例において、この内部ロジックアナライザツールはロジックアナライザＩＰに組み込まれた複雑なイベントステートマシンを設置する。このイベントステートマシンは取得された信号データ動作に基づきデバッグを説明する。内部ロジックアナライザツールとロジックアナライザＩＰは共同でユーザにリアルタイムの信号モニタリング機能を提供し（例えばオンライン実行モード下で）、ユーザデザインの実行状況に干渉しない。
【００４８】
コード／イベント抽出ツールはサンプリングで得られた信号データをコードとイベントレベルの情報に解釈する。コード／イベント抽出ツールはサンプリングで得られた信号データをコードとイベントにマッピングし、且つコードの形式でユーザに対し表現する。例えば、前文で描写したバスの「書込み操作」イベントにおいて、コード／イベント抽出ツールが１つの「書込み操作」イベントの実例を見つけると、１つの情報が作成されてユーザバスに「書込み操作」イベントの発生時間、「書込み操作」イベント中の書込み操作のアドレスとデータを提供する。このような能力は、例えばファームウェア設計者がファームウェアプログラムの設計とデバッグを行なうときなど、非常に価値がある。
【００４９】
シミュレータ接続ツールはユーザワークステーション１０１上で実行されるシミュレータとスケーラブル再構成可能型プロトタイププラットフォーム１０３内のコンフィギュレーションしたユーザデザインを相互に接続し、ハードウェア／ソフトウェアの強調検証を完了する。シミュレータ接続ツールは各種現有の方式でシミュレータにアクセスすることができる。例えば、一実施例において、ＰＬＩまたはＶＰＩインターフェースを用いてＶｅｒｉｌｏｇシミュレータとの通信を提供したり、ＦＬＩインターフェースを用いてＶＨＤＬシミュレータとの通信を提供したり、ＳＣＥＭＩインターフェースを用いてＳＣＥＭＩインターフェースを有するシミュレータとの通信を提供する。シミュレータ接続ツールはその他標準インターフェース或いはユーザが定義するインターフェースをサポートすることもできる。
【００５０】
上文の詳細な説明は、本発明のいくつかの特定の実施例を描写したものであるが、本発明はこれら実施例に制限されない。本発明の範囲内において多くの変更と代替が可能であり、これらはすべて本発明の開示と保護範囲を逸脱しないものとみなす。
【図面の簡単な説明】
【００５１】
【図１】本発明の具体的な一実施例の電気再構成可能型プロトタイプシステム１００である。
【図２】本発明の電気再構成可能型プロトタイプシステム１００のシステムコントローラ１０２のダイアグラムである。
【図３】本発明のスケーラブル再構成可能型プロトタイププラットフォーム１０３の構成図である。
【図４】本発明の具体的な一実施例のコンパイルフロー例である。
【図５】本発明のメモリデバイス中によく見受けられる「書込み操作（ｗｒｉｔｅ）」のイベント波形である。
【図６】（ａ）は、本発明の具体的な一実施例のＳｏＣ設計６２０の構成図であり、前記ＳｏＣ設計はユーザデザイン回路とＩＰを含み、前記ユーザデザインとＩＰは回路６２５−１から６２５−ｎ上に区分され、ＴＡＩ−ＩＰ６２６−１から６２６−ｎとそれぞれ接続される。（ｂ）は、本発明のダイアグラムであり、ＴＡＩ−ＩＰ６０１−１から６０１−ｎがスケーラブル再構成可能型プロトタイププラットフォーム１０３内に実現され、且つＦＰＧＡ６０２−１から６０２−ｎのインターフェースとして用いられる状態を示す。
【図７】本発明の具体的な一実施例のＴＡＩ−ＩＰ７００のダイアグラムである。
【図８】本発明の具体的な一実施例のＴＡＩ−ＩＰユニット８００のダイアグラムである。
【符号の説明】
【００５２】
１００    電気再構成可能型プロトタイプシステム
１０１    ユーザワークステーション
１０２    システムコントローラ
１０３    スケーラブル再構成可能型プロトタイププラットフォーム  
１０４    ターゲットシステム
１０５    プログラマブルな入力／出力ポート
１０６    パルスバス
１０７    システムアクセスバス（ＳＵＢ）
１０８    システムコンフィギュレーションバス
１０９    業界標準通信インターフェース
２０１    コンフィギュレーションコントローラ
２０２    システムアクセスバスコントローラ
２０３    パルス生成器
２０４    通信インターフェース
３０１，３０２，３０３    バス
３０４−１〜３０４−ｎ    ＦＰＧＡ
６０１−１〜６０１−ｎ    ＴＡＩ−ＩＰ
６０２−１〜６０２−ｎ    ＦＰＧＡ
６２０    システム・オン・チップ設計
６２５−１〜６２５−ｎ    回路
６２６−１〜６２６−ｎ    ＴＡＩ−ＩＰ
６３０−１〜６３０−２    バス
７００    ＴＡＩ  ＩＰ
７０１    制御回路
７０２−１・７０２−ｎ      ＴＡＩ−ＩＰ構造ブロック回路
７０３    相互接続ポート
７０３−７０３−ｎ    相互接続ポート
８０１、８０２    動的再構成可能型タグメモリ
８０３    マルチパス信号セレクタ
８０４    マルチパスセレクタ
８０５    出力イネーブル信号
８０６    双方向バッファ
８０６ａ    双方向バッファ
８０６ｂ    入力バッファ
８０７    信号ラッチ
８０８    データ出力信号
８０９    データ出力信号
８１０    固定信号
【図１】
2009031933.tif 000003
【図２】
2009031933.tif 000004
【図３】
2009031933.tif 000005
【図４】
2009031933.tif 000006
【図５】
2009031933.tif 000007
【図６】
2009031933.tif 000008
【図７】
2009031933.tif 000009
【図８】
2009031933.tif 000010
【手続補正書】
【提出日】平成19年7月26日(2007.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザデザインの設計とエミュレーションに用いるシステムであって、システムコントローラとシミュレーションプラットフォームを含み、
前記システムコントローラが、
（ａ）ユーザワークステーションと相互接続されたインターフェースと；
（ｂ）データ通信インターフェースと；
を含み、前記シミュレーションプラットフォームが前記データ通信インターフェースと相互接続され、さらに、
（ａ）ユーザデザインとサードパーティＩＰコアを実現することができる複数のフィールド・プログラマブル・ロジック・デバイスと；
（ｂ）実行時にユーザデザインと相互作用し、ターゲットシステムに接続されたインターフェースと；
を含むことを特徴とする、ユーザデザインの設計とエミュレーションに用いるシステム。
【請求項２】
前記データ通信インターフェースがコンフィギュレーションバスまたはシステムアクセスバス或いはパルス信号バスを含むことを特徴とする、請求項１に記載のシステム。
【請求項３】
前記ターゲットシステムに接続されるインターフェースが、プログラマブル・ロジック・デバイスをソースとするプログラマブル入力/出力ターミナルの信号を含み、前記フィールド・プログラマブル・ロジック・デバイスが、フィールドプログラマブル論理ゲートアレイを含み、前記各プログラマブル・ロジック・デバイスが、１つのインターフェースモジュールを割り当てられ、前記インターフェースモジュールを介して前記プログラマブル・ロジック・デバイスに割り当てる一部ユーザデザインとその他プログラマブル・ロジック・デバイスのその他部分に割り当てるユーザデザイン間の通信を実現することを特徴とする、請求項１に記載のシステム。
【請求項４】
前記インターフェースモジュールが、
（ａ）制御回路と；
（ｂ）複数の入力/出力ユニットと；
を含み、前記各入力/出力ユニットが１ビット(１-bit)の相互接続ポートを提供し、そのうち前記各入力/出力ユニットが、
（ａ）動的再構成可能型メモリモジュールを含み、前記動的再構成可能型メモリモジュールがさらに、１つまたは複数の動的再構成可能型メモリユニットと、前記動的再構成可能型メモリモジュールにより制御される第二マルチパスセレクタを含み、前記第二マルチパスセレクタが複数の出力イネーブル信号中から１つの出力イネーブル信号を選択し、バッファを制御して信号を１ビット相互接続ポートに出力し；
（ｂ）前記動的再構成可能型メモリモジュールにより制御され、複数のプログラマブル・ロジック・デバイスのコンフィギュレーション信号中から前記１ビットの相互接続ポートに出力する１つの出力信号を選択する、第一マルチパスセレクタと；
（ｃ）複数の動的再構成可能型メモリモジュールにより選択され、１ビット相互接続ポートの信号を受信するラッチと；
を含むことを特徴とする、請求項１に記載のシステム。
【請求項５】
複数の選択されたプログラマブル・ロジック・デバイスがサードパーティＩＰコアに割り当てられ、１つまたは複数のプログラマブル・ロジック・デバイスが１つのユーザ回路機能を検証する検証ＩＰコアに割り当てられ、前記検証ＩＰコアが、業界標準データバス操作をシミュレーションする回路を含み、１つまたは複数のプログラマブル・ロジック・デバイスが１つのパフォーマンス分析ＩＰコアに割り当てられ、前記パフォーマンス分析ＩＰコアが帯域幅分析ＩＰコアを含むことを特徴とする、請求項１に記載のシステム。
【請求項６】
前記システムがさらに、システムデバッグツールを含み、前記システムデバッグツールが実行時にプログラマブル・ロジック・デバイス内部と複数のプログラマブル・ロジック・デバイス間の信号を監視し、分析することを特徴とする、請求項１に記載のシステム。
【請求項７】
ユーザデザインをエミュレーションする方法であって、次の手順を含む：
システムコントローラを提供し、前記システムコントローラが、
（ａ）ユーザワークステーションと相互に接続されたインターフェースと；
（ｂ）データ通信インターフェースと；を含み、
前記データ通信インターフェースと相互に接続されたシミュレーションプラットフォームを提供し、前記シミュレーションプラットフォームが、
（ａ）ユーザデザインを実現可能な複数のフィールド・プログラマブル・ロジック・デバイスと；
（ｂ）ターゲットシステムに接続され、実行時にユーザデザインと相互作用するインターフェースと；を含み、
ユーザデザインと１つまたは複数のサードパーティＩＰコアを含む最上位モジュールを生成し、
ユーザデザインを統合し、
ユーザデザインとサードパーティＩＰコアをいくつかのブロックに分け、各ブロックが１つのプログラマブル・ロジック・デバイスにより実現され、
各プログラマブル・ロジック・デバイスに１つのインターフェースモジュールを割り当て、インターフェースモジュールを介してプログラマブル・ロジック・デバイス内で実現されるブロックにその他プログラマブル・ロジック・デバイス内のその他ブロックとの通信を実現させ、
前記ブロックと前記インターフェースモジュールを配線し、
プログラマブル・ロジック・デバイス内に配線されたブロックを実現する。
【請求項８】
前記ターゲットシステムに接続されるインターフェースが、プログラマブル・ロジック・デバイスをソースとするプログラマブル入力/出力ターミナルの信号を含み、前記フィールド・プログラマブル・ロジック・デバイスが、フィールドプログラマブル論理ゲートアレイを含むことを特徴とする、請求項７に記載の方法。
【請求項９】
前記インターフェースモジュールが、
（ａ）制御回路と；
（ｂ）複数の入力/出力ユニットと；を含み、各ユニットが１つの１ビットの相互接続ポートを提供することを特徴とする、請求項７に記載の方法。
【請求項１０】
前記方法がさらに、
動的再構成可能型論理回路を選択されたプログラマブル・ロジック・デバイスに割り当てることができるコンフィギュレーションツールを提供する；及び
システムデバッグツールを提供する；
という手順を含み、前記システムデバッグツールが実行時にプログラマブル・ロジック・デバイス内部と複数のプログラマブル・ロジック・デバイス間の信号を監視・分析することを特徴とする、請求項７に記載の方法。