【誤訳訂正書】
【提出日】平成28年7月12日(2016.7.12)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】プロトタイプシステムにおける汎用的な可制御性及び可観測性のための方法及び装置
【技術分野】
【０００１】
関連出願
本出願は、２０１０年２月１２日に出願した「Method and Apparatus for Versatile Controllability and Observability in Prototype System」という名称の米国仮特許出願第６１３０４，３２８号の優先権の権利を主張するものであり、その出願の内容が参照により全体として本明細書に組み込まれる。
【０００２】
本開示は一般に、半導体及び集積回路システムに関し、より詳細には、プロトタイプシステムを利用する設計検証システム及び設計検証方法に関する。
【背景技術】
【０００３】
高集積システムオンチップ（ＳｏＣ）デバイスは、幅広い種類の製品に力を与えて、さらにより幅広い種類のソフトウェアアプリケーションの要求を満たしている。これらの要求を満たすため、ＳｏＣデバイスのサイズ及び複雑性は増し続けている。先行の半導体処理技術及びシリコン実証済みの第三者の知的財産が助けにはなるが、高集積ＳｏＣの開発によって、設計検証チームへの負担が増している。場合によっては、検証がＳｏＣ開発サイクルの大部分を消費することになる。
【０００４】
ＳｏＣ設計の検証アプローチは、様々なものがある。速度、ソフトウェア開発、ハードウェア開発、又はシステム確認について最適化されるため、各アプローチは、様々なレベルの可観測性及び制御を提供することになる。フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）プロトタイプシステムは、例えば、システム実行時間の改善をもたらす場合がある。いくつかのＦＰＧＡ  ＳｏＣ検証システムは、それにもかかわらず、設計内の信号値に対する可視性の欠如しているため、発見された誤りの根本的原因を分離する能力がない。ＦＰＧＡベンダ固有の検証ツールの共通の欠陥としては、アクセスされる信号の数の制限と、サンプルキャプチャの深さの制限がある。外部ロジックアナライザと組み合わせたとしても、ＦＰＧＡベンダ固有の検証ツールは、ＳｏＣ検証中に誤りの根本的原因を分離するための十分な機能がない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、あるアプリケーションにおける高集積ＳｏＣデバイスの設計検証要求を満たすことができ、又は、ＦＰＧＡベースの電子プロトタイプシステムにおける信号の制御及びその信号の可観測性が向上されたＳｏＣ設計検証システムを提供することができる方法又は装置が望まれる。
【課題を解決するための手段】
【０００６】
本開示のいくつかの実施形態と一致して、試験システムは、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成イメージと、ランタイム制御情報とを提供するように構成された第１のインタフェース・コンポーネントと、第１のインタフェース・コンポーネントから受信された、構成イメージ及びランタイム制御情報のうち少なくとも１つに基づいて、タイミング及び制御情報を関連付けられた検証モジュールに提供するように構成された第２のインタフェース・コンポーネントとを含み得る。関連付けられた検証モジュールは、第２のインタフェース・コンポーネントと結合され得る。検証モジュールはまた、第２のインタフェース・コンポーネントから受信されたタイミング及び制御情報に応答して、デバイスを制御するように、且つ、ユーザ設計の少なくとも一部のデバイス状態を監視するように構成され得る。
【０００７】
本開示のいくつかの実施形態と一致して、試験の方法は、第１のインタフェース・コンポーネントにおいて、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成イメージに関連付けられた構成パラメータと、ランタイム制御情報とを受信することを含み得る。この方法はさらに、第１のインタフェース・コンポーネントを使用して、構成イメージをデバイスへ送信することと、第２のインタフェース・コンポーネントを使用して、第１のインタフェース・コンポーネントから受信された構成イメージ及びランタイム制御情報のうち少なくとも１つに基づいて、タイミング及び制御情報を検証モジュールへ送信することとを含み得る。いくつかの実施形態では、第２のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、検証モジュールは、デバイスを制御し、且つ/又は、ユーザ設計の少なくとも一部のデバイス状態を監視し得る。
【０００８】
本開示のいくつかの実施形態と一致して、コンピュータ可読媒体は、プロセッサに試験の方法を実行させるための命令を備える。試験の方法は、第１のインタフェース・コンポーネントにおいて、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成イメージに関連付けられた構成パラメータと、ランタイム制御情報とを受信することを含み得る。この方法は、更に、第１のインタフェース・コンポーネントを使用して、構成イメージをデバイスへ送信することと、第２のインタフェース・コンポーネントを使用して、第１のインタフェース・コンポーネントから受信された構成イメージ及びランタイム制御情報のうち少なくとも１つに基づいて、タイミング及び制御情報を検証モジュールへ送信することとを含み得る。いくつかの実施形態では、第２のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、検証モジュールは、デバイスを制御し、且つ/又は、ユーザ設計の少なくとも一部のデバイス状態を監視してもよい。
【０００９】
本開示の追加の特徴及び利点を、以下の説明で部分的に述べる。開示された実施形態の特徴及び利点は、添付の特許請求の範囲において特に指摘された要素とそれらの組み合わせによって実現され、達成される。
【００１０】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、説明と共に、本明細書に開示された実施形態を例示し、開示された実施形態の原理を説明する役目を果たすものである。
【図面の簡単な説明】
【００１１】
【図１】開示された実施形態と一致する例示的なプロトタイプのシステム図である。
【図２】開示された実施形態と一致する例示的なワークステーションのブロック図である。
【図３】開示された実施形態と一致する例示的なホスト側インタフェースカードのブロック図である。
【図４】開示された実施形態と一致する例示的なプロトタイプ・システム・インタフェースカードのブロック図である。
【図５】開示された実施形態と一致する、プロトタイプシステムを実装するための例示的な方法のフロー図である。
【発明を実施するための形態】
【００１２】
添付の図面に例示された、開示された実施形態を以下で詳細に参照する。可能な限り、同じ又は同様の部分を示すために、図面を通じて同じ参照番号が使用される。なお、図面は大幅に簡略化された形式になっており、正確な縮尺通りではない。
【００１３】
以下の説明では、「結合された（coupled）」及び「接続された（connected）」という表現が、それら派生語と共に使用され得る。これらの語は、互いに同義語であるようには意図していないことを理解されたい。むしろ、いくつかの特定の実施形態では、「接続された」及び/又は「結合された」は、２つ以上の要素が互いに物理的又は電子的に直接接触していることを示すために使用され得る。しかしながら、「結合された」という表現は、また、２つ以上の要素が互いに直接接触していないが、それでもなお、互いに協同し、通信し、且つ/又は、相互的に作用することを意味する場合もある。
【００１４】
図１は、開示された実施形態と一致する例示的なプロトタイプシステム１００の図を示す。図１に示すように、プロトタイプシステム１００は、ハードウェアコンポーネントと、インタフェースカードと、設計検証処理中に被試験デバイスの可視性及び制御を向上させるように適合された再構成可能検証モジュールとの組み合わせを含み得る。例えば、いくつかの実施形態では、プロトタイプシステム１００は、ホストワークステーション１１０と、ホストインタフェースカード１２０と、プロトタイプ・システム・インタフェースカード１３０と、１つ又は複数の被試験デバイス（ＤＵＴ）からなるプロトタイプカード１５０とを含む。加えて、検証モジュール１６０は、各ＦＰＧＡチップのための被試験デバイスＤＵＴの部分と組み合わされて構成され得る。
【００１５】
ホストワークステーション１１０は、コンピュータインタフェース規格の１つなど、インタフェース通信プロトコルを使用して、ホスト通信チャネル１１５を介してホストインタフェースカード１２０に結合され得る。例えば、いくつかの実施形態では、ホスト通信チャネル１１５は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）エクスプレス、イーサネット（登録商標）、又は、ホストワークステーション１１０とホストインタフェースカード１２０の間でコマンド及び情報の交換を可能にする他のインタフェース方法などの有線通信方法であってもよい。
【００１６】
図２は、開示された実施形態と一致する例示的なホストワークステーション１１０のブロック図を示す。例として、図２に示すように、ホストワークステーション１１０は、以下のコンポーネントのうち１つ又は複数を含んでもよく、このコンポーネントとしては、少なくとも１つのプロセッサ２００と、メモリ２１０と、設計データベース２２０と、値変更データベース２３０と、Ｉ／Ｏデバイス２４０と、インタフェース２５０である。プロセッサ２００は、コンピュータプログラム命令を実行して、様々なプロトタイプのシステム命令及び方法を実行するように構成されている。メモリ１００は、情報及びコンピュータプログラム命令を格納且つ提供するように構成されている。設計データベース２２０は、ランタイムソフトウェア及び設計情報を維持するように構成されている。値変更データベース２３０は、プロトタイプカード１５０から受信された情報を格納する。
【００１７】
本明細書で使用されるとき、「プロセッサ」という語は、１つ又は複数の命令を実行する電気回路を含み得る。例えば、このようなプロセッサは、１つ又は複数の集積回路、マイクロチップ、マイクロコントローラ、マイクロプロセッサ、組み込みプロセッサ、中央処理装置（ＣＰＵ）の全部又は一部、デジタル信号プロセッサ（ＤＳＰ）、ＦＰＧＡ、又は、命令を実行する若しくは論理演算を行うのに適した他の回路を含み得る。プロセッサ２００は、コマンド及びデータをプロトタイプカード１５０と交換するようにプログラムされた検証プロセッサとして動作するように構成且つプログラムされ得るという点で、専用プロセッサであり得る。例えば、プロセッサ２００は、メモリ２１０、設計データベース２２０、値変更データベース２３０、Ｉ／Ｏデバイス２４０、インタフェース２５０、又は、コンポーネント(不図示)から出力された命令及びデータに基づいて動作してもよい。いくつかの実施形態では、プロセッサ２００は、データ又はコマンドを、メモリ２１０、設計データベース２２０、及び、値変更データベース２３０と交換するように結合され得る。例えば、プロセッサ２００は、プロトタイプシステムがダウンロードしている間に、検証モジュール１６０及び被試験デバイスＤＵＴの一部を含むＦＰＧＡイメージデータを、１つ又は複数のＦＰＧＡチップ１５５ａ〜１５５ｄへ送信する命令を実行してもよい。
【００１８】
いくつかの実施形態によれば、検証モジュール１６０は、従来の論理解析計装機能（analysis instrumentation function）を行うように構成された、少なくとも１つの計装回路及びロジックモジュールであってもよい。検証モジュール１６０によって行われる論理解析機能は、例えば、信号値のサンプリング、状態解析、プロトコル解析、及び、トリガリングを含み得る。いくつかの実施形態では、検証モジュール１６０は、論理合成可能（synthesizable）又はソフトの知的財産（ＩＰ）であってもよい。検証モジュール１６０を定義する構成パラメータは、ＦＧＰＡチップをプログラミングするためのフローに類似したやり方などで、設計検証セットアップ処理中に設定されてもよい。例えば、いくつかの実施形態におけるセットアップ中において、セットアップのフローは、自動的にサードパーティ合成を統合し、ツールを配置且つ経路指定し、自動的又は手動的に設計を分割し、ランタイムソフトウェア利用のための設計データベースを構築してもよい。セットアップのフローは、例えば、事前分割された設計のための自動処理を含んでもよく、レジスタ転送言語（ＲＴＬ）分割ツールには、サードパーティ・ツール又はユーザ自身の手動の分割が含まれる。代替のやり方又は追加のやり方として、セットアップのフローはまた、ユーザの設計がＲＴＬレベルで手動で分割されなかったフローを含んでもよい。
【００１９】
特定のプロトタイプカード１５０で使用可能な物理的ピンリソースを最適化するため、検証モジュール１６０は、設計依存及び設計非依存の回路の両方を含む。例えば、検証モジュール１６０は、特定の信号に接続し、特定の信号をプローブするように構成された設計依存回路を含み得る。プローブ又は信号プローブは、個々の信号を解析し、且つ、トラブルシューティングを行うように構成された回路を含み得る。被試験デバイスに関連付けられた設計データベース２２０へのアクセスを利用して、データ依存回路は、プローブを修正、除去又は追加するように、試験処理中に再構成され得る。また、検証モジュール１６０は、データを符号化且つ復号するように構成された設計非依存回路を含んでもよい。例えば、データ非依存回路は、他の回路タイプの中でも、先入力先出力（ＦＩＦＯ）及び制御状態マシンを含んでよい。ここで、先入力先出力（ＦＩＦＯ）及び制御状態マシンは、検証モジュール１６０によって取り込まれたデータを、処理のためにコントローラ４００及びホストワークステーション１１０のうち少なくとも１つへ送信するものである。検証モジュール１６０を定義する構成パラメータは、設計検証セットアップ処理中に設定され得る。
【００２０】
動作的には、検証モジュール１６０は、セットアップ処理中に設定されたか、又は試験中に修正された構成パラメータに応答してもよい。これらのパラメータに基づいて、検証モジュール１６０は、被試験デバイスの部分の全設計状態スナップショットを取り込み、送信し、サイクルごとの解析を行い、協調シミュレーション(co-simulation)又は協調エミュレーション(co-emulation)を行い、どの信号がプローブされるべきであるかを増分的に修正する。協調シミュレーションは、一般的には、当業者に知られているように、同期的なサイクル精度の、ホストワークステーション１１０上で実行するソフトウェアベースのシミュレーション、及び、プロトタイプカード１５０上で実行するＦＰＧＡベースのエミュレーションを指すが、これに限定されない。協調エミュレーションは、一般的には、当業者に知られているように、非同期的なトランザクション駆動型の、ホストワークステーション１１０上で実行するソフトウェアベースのシミュレーション、及び、プロトタイプカード１５０上で実行するＦＰＧＡベースのエミュレーションを指すが、これに限定されない。検証モジュール１６０によって取り込まれたデータは、プロトタイプ・システム・インタフェースカード１３０、ホストワークステーション１１０、又は、検証モジュール１６０によって送信されたデータを受信するように結合された適切な計算デバイスなどの、計算デバイス又はコンポーネントによって後処理され得る。後処理には、タイミング、状態及びプロトコル解析が含まれるが、それらに限定されない。検証モジュール１６０によって取り込まれたデータの処理に先立って、取り込まれたデータは、値変更データベース２３０に格納され得る。他の実施形態では、取り込まれたデータは、処理の後、値変更データベースに格納され得る。
【００２１】
いくつかの実施形態によれば、２つ以上のプロセッサが、独立して、又は協調的に動作するように構成されてもよい。すべてのプロセッサは、類似の構造であってもよく、又は、電気的に接続されるか若しくは互いから切り離された異なる構造であってもよい。本明細書において、「構造（construction）」という表現が使用されるとき、この表現は、プロセッサの物理的、電気的又は機能的特性を含み得る。これらのプロセッサは、物理的又は機能的に別々の回路であってもよく、又は、単一の回路に統合されてもよい。これらのプロセッサは、電気的に、磁気的に、光学的に、音響的に、機械的に、無線によって、又は、プロセッサ間の通信を可能にする任意の他の方法で結合され得る。
【００２２】
いくつかの実施形態によれば、メモリ２１０は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ハードディスク、光ディスク、磁気媒体、フラッシュメモリ、他の永久的な固定の揮発性メモリ、不揮発性メモリ、又は、プロセッサ２００若しくは類似のコンポーネントに命令を提供可能な任意の他の有形の機構など、コンピュータ可読メモリであってもよい。例えば、メモリ２１０は、設計データベース２２０に格納された情報に従って、プロトタイプカード１５０上で検証機能を行うために、命令及びデータを格納してもよい。メモリ２１０は、分散されてもよい。すなわち、メモリ２１０の部分は、リムーバブルであっても非リムーバブルであってもよく、地理的に異なる場所に位置してもよい。
【００２３】
いくつかの実施形態によれば、設計データベース２２０は、設計検証セットアップ及びランタイム実行のためのテーブル、リスト又は他のデータの構造化された集まりであってもよい。したがって、この構造は、リレーショナルデータベース又はオブジェクト指向データベースとして編成されてもよい。他の実施形態では、設計データベース２２０は、ハードウェアシステムであってもよく、このハードウェアシステムは、物理的なコンピュータ可読記憶媒体と、テーブル、リスト又は他のデータ構造を受信し、それらへのアクセスを提供するように構成された入力及び/又は出力デバイスとを含む。さらに、ハードウェアシステムとして構成されると、設計データベース２２０は、１つ又は複数のプロセッサ及び/又はディスプレイを含み得る。構造は類似しているが、値変更データベース２３０は、プロトタイプカード１５０から受信された情報を格納するように構成され得る。例えば、値変更データベースは、信号プローブ関連の検証モジュール１６０によって取り込まれた信号値に関連する情報を格納するように構成されてもよい。
【００２４】
いくつかの実施形態によれば、Ｉ／Ｏデバイス２４０は、マウス、スタイラス、キーボード、オーディオ入力／出力デバイス、イメージングデバイス、印刷デバイス、表示デバイス、センサ、無線トランシーバ、又は他の類似のデバイスのうち、１つ又は複数であってもよい。また、Ｉ／Ｏデバイス２４０は、データ及び命令をメモリ２１０、プロセッサ２００、設計データベース２２０、又は、値変更データベース２３０に提供するデバイスを含んでもよい。
【００２５】
いくつかの実施形態によれば、インタフェース２５０は、ＰＣＩエクスプレス、イーサネット（登録商標）、ＦｉｒｅＷｉｒｅ（登録商標)、ＵＳＢ、及び、無線通信プロトコルなど、外部又は一体型のインタフェースカード又はインタフェースポートを含み得る。例えば、インタフェース２５０は、ホスト通信チャネル１１５を使用してホストインタフェースカード１２０と通信するように結合された、ＰＣＩエクスプレスカードであってもよい。ＩＯデバイス２４０はまた、グラフィカルユーザインタフェース、又は、データを提示するように構成された、人間が知覚可能な他のインタフェースを含んでもよい。
【００２６】
図３は、開示された実施形態と一致する例示的なホストインタフェースカード１２０のブロック図を示す。例として、図３に示すように、ホストインタフェースカード１２０は、ホスト側インタフェース３１０と、コントローラ３００と、信号変換器３２０と、トランシーバ３３０とのうちの１つ又は複数を含み得る。ホスト側インタフェース３１０は、インタフェース２５０に類似していてもよく、ホスト通信チャネル１１５を使用したホストワークステーション１１０との通信を容易にするように構成されてもよい。他の実施形態では、ホスト側インタフェース３１０は、インタフェース２５０とは異なってもよく、ホストワークステーション１１０との通信を容易にするために、物理的又は論理的信号変換コンポーネントを含んでもよい。
【００２７】
いくつかの実施形態によれば、コントローラ３００は、プロセッサ２００に類似したコンポーネントであってもよい。いくつかの実施形態では、コントローラ３００は、ホストワークステーション１１０から、信号変換器３２０から、又は、トランシーバ３３０を通じてプロトタイプ・システム・インタフェースカード１３０から受信されたデータ又は命令に基づいて動作してもよい。例えば、コントローラ３００は、１つ又は複数の検証モジュール１６０とコマンド及びデータを交換して、ＦＰＧＡデバイス１５５ａ〜１５５ｄのうち１つ又は複数に関連付けられたデバイス状態を制御且つ監視するようにしてもよい。他の実施形態では、コントローラ３００は、コマンド又はデータを検証モジュール１６０へ送信し、検証モジュール１６０に、特に、取り込まれるデータの量、及び、プローブされる信号の数又はタイプを修正させてもよい。信号変換器３２０は、インタフェースカード通信チャネル１２５上で交換されたデータを、ホストワークステーション１１０による処理のために適したフォーマットに変換するように構成されたプロセッサを含んでもよい。
【００２８】
トランシーバ３３０は、データを送信し、プロトタイプカード１５０からデータを受信する任意の適切なタイプの送信器及び受信器を含み得る。いくつかの実施形態では、トランシーバ３３０は、符号化／復号、変調／復調、及び、ホストインタフェースカード１２０とプロトタイプカード１５０との間の通信チャネルに関連する他の機能を行うための、所望の（１つ又は複数の)機能的コンポーネント及び（１つ又は複数の)プロセッサのうち１つ又はそれらの組み合わせを含んでもよい。トランシーバ３３０は、インタフェースカード通信チャネル１２５を介してプロトタイプ・システム・インタフェースカード１３０と通信するように結合され得る。いくつかの実施形態では、インタフェースカード通信チャネル１２５は、ファイバチャネルなど、高スループット、低レイテンシの通信チャネル技術を利用してもよい。
【００２９】
図４は、開示された実施形態と一致する例示的プロトタイプ・システム・インタフェースカード１３０のブロック図を示す。例として、図４に示すように、プロトタイプ・システム・インタフェースカード１３０は、コントローラ４００と、メモリ４１０と、トランシーバ４２０と、プロトタイプコネクタ４３０ａ〜４３０ｄのうちの１つ又は複数を含み得る。概して、コントローラ４００、メモリ４１０、及びトランシーバ４２０は、コントローラ３００、メモリ２１０、及びトランシーバ３３０にそれぞれ類似していてもよい。図４に示すように、コントローラ４００は、メモリ４１０及びトランシーバ４２０からデータ又は命令を受信するように結合され得る。例えば、コントローラ４００は、いくつかの命令に基づいて動作して、プロトタイプカード１５０上の各ＦＰＧＡチップ内に位置する検証モジュール１６０にタイミング及び制御情報を送信してもよい。命令は、ホストインタフェースカード１２０から受信された構成パラメータ及びランタイム制御情報を含み得るが、それらに限定されない。
【００３０】
タイミング及び制御情報は、デバイス又はデバイス状態に関連付けられた時間ベース又は状態ベースの情報を集めるために、信号をプローブすることに関連付けられたコマンド及びデータを含み得るが、それらに限定されない。タイミング情報は、コントローラ４００によって生成、受信又は処理されたクロック信号を含み得る。また、タイミング信号は、開始、停止及びリセット信号を含んでもよい。検証モジュール１６０によって受信されると、タイミング情報は、被試験デバイスに関連付けられたタイミング及び状態解析データをプローブし、取り込み、且つ処理するための基礎としての役割を果たし得る。例えば、コントローラ４００によって送信されたタイミング及び制御情報は、トリガ・シーケンスを作成し、被試験デバイスからデータを取り込み、取り込まれたデータに時間基準を割り当て、信号値をサンプリングし、ＦＰＧＡ内の１つ又は複数の信号を、状態解析を行う際にクロックとして使用されるように構成するための基礎を提供してもよい。いくつかの実施形態では、コントローラ４００は、ＦＰＧＡチップから取り込まれたデータをメモリ４１０に格納するように構成され得る。データは、タイミングデータと、状態データと、取り込まれたデータに関連付けられたメタデータとを含み得る。メタデータは、特に、時間基準又は信号名を含み得る。メモリ４１０に格納された１つ又は複数の個々の信号に関連付けられた、取り込まれたデータは、その後に取り込まれた同じ信号に関連付けられたデータと比較されてもよい。また、いくつかの実施形態では、コントローラ４００は、各ＦＰＧＡチップ内に位置する１つ又は複数の検証モジュール１６０と交換されたデータを符号化且つ/又は復号するように構成されてもよい。
【００３１】
プロトタイプ・システム・インタフェースカード１３０はまた、コントローラ４００に結合された、１つ又は複数のプロトタイプコネクタを含んでもよい。例えば、プロトタイプコネクタ４３０ａ〜４３０ｄは、コントローラ４００とプロトタイプカード１５０との間でコマンド及びデータを交換するために適した信号送信特性を有する、Ｊコネクタ又は他のコネクタタイプであってもよい。プロトタイプコネクタ４３０ａ〜４３０ｄは、それぞれ対応するＪコネクタ互換ケーブル１３５ａ〜１３５ｄを受けるように構成されてもよい。いくつかの実施形態では、プロトタイプ・システム・インタフェースカード１３０は、特定のシステム要件に従って、４つより多いか又は少ないプロトタイプコネクタを含んでもよい。プロトタイプ・システム・インタフェースカード１３０は、事前定義され構成可能な様々な論理構成を、ＦＰＧＡチップに物理的に接続できるように構成され得る。
【００３２】
いくつかの実施形態では、プロトタイプ・システム・インタフェースカード１３０の構造的及び機能的コンポーネントの組み合わせは、プロトタイプカード１５０内に埋め込まれてもよく、そうでない場合は物理的にプロトタイプカード１５０内の同一場所に位置してもよい。例えば、コントローラ４００、メモリ４１０、及びトランシーバ４２０というコンポーネントの一部又は全部は、プロトタイプカード１５０上に位置してもよい。他の実施形態では、コントローラ４００、メモリ４１０、及びトランシーバ４２０のうち１つ又は複数の機能性は、プロトタイプカード１５０上に位置するか又はプロトタイプカード１５０と通信するように結合された他のコンポーネントに統合されてもよい。プロトタイプ・システム・インタフェースカード１３０のコンポーネント又は機能性の一部又は全部がプロトタイプカード１５０上に存在する構成では、ホストインタフェースカード１２０は、インタフェースカード通信チャネル１２５又は他の適切な通信方法を使用して、プロトタイプカード１５０に結合されてもよい。
【００３３】
図１に戻ると、例示的なプロトタイプカード１５０は、１つ又は複数のＦＰＧＡチップに実装された被試験設計を試験するために適した、事前製作又はカスタマイズされたテストボードであってもよい。例として、図１に示すように、プロトタイプカード１５０は、コネクタ１４０を通じてホストワークステーション１１０と通信するように結合された１つ又は複数のＦＰＧＡデバイス１５５ａ〜１５５ｄを含み得る。単一のコネクタとして図示されるが、コネクタ１４０は、Ｊコネクタ又は同様に適切なコネクタなどの１つ又は複数のコネクタであってもよい。同様に、４つのＦＰＧＡデバイスを含むように図示されるが、プロトタイプカード１５０は、特定のシステム要件に従って、より多く又はより少ないＦＰＧＡデバイスを有してもよい。いくつかの実施形態では、プロトタイプカード１５０は、複数のＦＰＧＡ、プリント回路基板、又は、ＦＰＧＡデバイスを使用した設計検証試験を容易にするために適した他のハードウェアの組み合わせにわたって、論理的又は物理的に分割されてもよい。
【００３４】
図５は、開示された実施形態と一致する、プロトタイプシステムを実装するための例示的な方法５００のフロー図を示す。図５に示すように、ステップ５０２において、第１のインタフェース・コンポーネントは、ある構成されたイメージ（以下、構成イメージという）を受信するように構成され得る。この構成イメージは、ユーザ設計の少なくとも一部と、ある関連付けられた検証モジュールとを表すものである。構成イメージは、特に、ユーザ設計の一部及び検証モジュール１６０の両方又はいずれか一方に関連付けられた１つ又は複数の構成パラメータを含み得る。例えば、構成パラメータは、設計のフローのセットアップと、検証モジュール１６０の機能性と、設計データベース２２０の構造に関連付けられたパラメータとを含み得る。より具体的には、構成パラメータはまた、ＦＰＧＡ、コネクタ及び相互接続などの詳細なプロトタイプボード情報も含み得る。ステップ５０４において、第１のインタフェース・コンポーネントは、ある構成された検証モジュール１６０を被試験デバイスへ送るように構成され得る。いくつかの実施形態では、ステップ５０４が、システムセットアップ処理中に発生する場合がある。他の実施形態では、ステップ５０４は、検証モジュール１６０の機能性を再構成するために、デバイス試験中に発生する場合がある。構成イメージの再構成では、ホストインタフェースカード１２０などの第１のインタフェース・コンポーネントは、あるコマンドを送信してもよく、このコマンドは、設計データベース２２０に含まれた設計情報に基づいて、数、タイプ、及び、信号が解析され得るやり方を再構成するように動作可能なホストワークステーション１１０から受信したものである。他の実施形態では、ホストインタフェースカード１２０は、ユーザ設計の一部を再構成するように動作可能なホストワークステーション１１０から受信されたコマンドを、検証モジュール１６０の再構成につながるコマンドとは別に又はこのコマンドに加えて、送信してもよい。
【００３５】
ステップ５０６において、第２のインタフェース・コンポーネントは、第１のインタフェース・コンポーネントから受信された構成パラメータ及びランタイム制御情報のうち少なくとも１つに基づいて、タイミング及び制御情報を検証モジュール１６０へ送信するように構成され得る。いくつかの実施形態では、タイミング情報は、プロトタイプ・システム・インタフェースカード１３０などの第２のインタフェース・コンポーネントから生成されたか、又は、第２のインタフェース・コンポーネントによって処理されたクロック信号を含み得る。いくつかの実施形態では、制御情報は、解析トリガ・シーケンス又は条件に関連付けられた情報を含み得る。制御情報は、選択された信号の解析のための信号プローブを作成することに関連付けられたコマンドを含み得るが、それらに限定されない。ステップ５０８において、検証モジュール１６０は、第２のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、被試験デバイスを制御するように構成され得る。例えば、被試験デバイスを制御することは、第２のインタフェース・コンポーネントから受信されたタイミング情報に基づいた、所定のセットの信号の値の設定又はサンプリングを含み得る。いくつかの実施形態では、サンプリングは同期的に行われ得る。他の実施形態では、サンプリングは非同期的に行われ得る。被試験デバイスを制御することはまた、検証モジュール１６０を使用して、協調シミュレーション又は協調エミュレーションタイプの試験を行うことを含んでもよい。
【００３６】
代替として又はこれに加えて、ステップ５１０において、検証モジュール１６０は、被試験デバイス内の所定の信号を監視してもよい。例えば、検証モジュール１６０は、１つ又は複数の信号を解析するように構成されたプローブを含み得る。代替として又はこれに加えて、ステップ５１２において、検証モジュール１６０は、デバイスに関連付けられたデバイス状態を表す情報を取り込んでもよい。例えば、検証モジュール１６０は、特定の信号に関連付けられたデータを取り込むためのプローブが装備された設計依存回路を含み得る。被試験デバイスに関連付けられた設計データベース２２０へのアクセスを利用して、検証モジュール１６０は、試験処理中に、プローブを修正、除去又は追加するように再構成されて、同じか又は異なる信号を取り込むようにしてもよい。検証モジュール１６０を定義する構成パラメータは、どの信号がプローブされるかを決定するために使用され得る。これらのパラメータは、設計検証セットアップ処理中に設定され得る。代替として、検証モジュール１６０は、試験中に修正され得る。これらのパラメータに基づいて、検証モジュール１６０は、被試験デバイスの全設計状態スナップショットを取り込み、送信し、サイクルごとの解析及び取り込みを行い、協調シミュレーション又は協調エミュレーションを行い、どの信号がプローブされるかを増分的に修正してもよい。代替として又はこれに加えて、ステップ５１４において、検証モジュール１６０によって取り込まれたデータは、プロトタイプ・システム・インタフェースカード１３０、ホストワークステーション１１０、又は、検証モジュール１６０によって送信されたデータを受信するように結合された適切な計算デバイスなど、計算デバイス又はコンポーネントによって処理され得る。
【００３７】
上述の開示された実施形態に対して、その幅広い発明概念から逸脱することなく、変更を行うことができることは、当業者には理解されよう。したがって、開示された実施形態は、開示された特定の例に限定されず、以下の特許請求の範囲によって定義されるような、開示された実施形態の精神及び範囲内における修正を包含することを理解されたい。
【符号の説明】
【００３８】
１１０  ホストワークステーション
１２０  ホストインタフェースカード
１３０  プロトタイプ・システム・インタフェースカード
１４０  コネクタ
１５０  プロトタイプカード