説明

プロトタイプシステムにおける汎用的な可制御性及び可観測性のための方法及び装置

【課題】プロトタイプの試験を行うための方法及びシステムを提供することである。
【解決手段】この方法は、第1のインタフェース・コンポーネントにおいて、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成画像に関連付けられた構成パラメータと、ランタイム制御情報とを受信することを含む。この方法は、さらに、第1のインタフェース・コンポーネントを使用して、構成画像をデバイスへ送信することを含む。第2のインタフェース・コンポーネントは、第1のインタフェース・コンポーネントから受信された構成画像及びランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を検証モジュールへ送信するように構成され得る。第2のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、検証モジュールは、デバイスを制御し、且つ/又は、ユーザ設計の少なくとも一部のデバイス状態を監視する。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2010年2月12日に出願した「Method and Apparatus for Versatile Controllability and Observability in Prototype System」という名称の米国仮特許出願第61304,328号の優先権の権利を主張するものであり、その出願の内容が参照により全体として本明細書に組み込まれる。
【0002】
本開示は一般に、半導体及び集積回路システムに関し、より詳細には、プロトタイプシステムを利用する設計検証システム及び設計検証方法に関する。
【背景技術】
【0003】
高集積システムオンチップ(SoC)デバイスは、幅広い種類の製品に力を与えて、さらにより幅広い種類のソフトウェアアプリケーションの要求を満たしている。これらの要求を満たすため、SoCデバイスのサイズ及び複雑性は増し続けている。先行の半導体処理技術及びシリコン実証済みの第三者の知的財産が助けにはなるが、高集積SoCの開発によって、設計検証チームへの負担が増している。場合によっては、検証がSoC開発サイクルの大部分を消費することになる。
【0004】
SoC設計の検証アプローチは、様々なものがある。速度、ソフトウェア開発、ハードウェア開発、又はシステム確認について最適化されるため、各アプローチは、様々なレベルの可観測性及び制御を提供することになる。フィールド・プログラマブル・ゲート・アレイ(FPGA)プロトタイプシステムは、例えば、システム実行時間の改善をもたらす場合がある。いくつかのFPGA SoC検証システムは、それにもかかわらず、設計内の信号値に対する可視性の欠如しているため、発見された誤りの根本的原因を分離する能力がない。FPGAベンダ固有の検証ツールの共通の欠陥としては、アクセスされる信号の数の制限と、サンプルキャプチャの深さの制限がある。外部ロジックアナライザと組み合わせたとしても、FPGAベンダ固有の検証ツールは、SoC検証中に誤りの根本的原因を分離するための十分な機能がない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、あるアプリケーションにおける高集積SoCデバイスの設計検証要求を満たすことができ、又は、FPGAベースの電子プロトタイプシステムにおける信号の制御及びその信号の可観測性が向上されたSoC設計検証システムを提供することができる方法又は装置が望まれる。
【課題を解決するための手段】
【0006】
本開示のいくつかの実施形態と一致して、試験システムは、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成画像と、ランタイム制御情報とを提供するように構成された第1のインタフェース・コンポーネントと、第1のインタフェース・コンポーネントから受信された、構成画像及びランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を関連付けられた検証モジュールに提供するように構成された第2のインタフェース・コンポーネントとを含み得る。関連付けられた検証モジュールは、第2のインタフェース・コンポーネントと結合され得る。検証モジュールはまた、第2のインタフェース・コンポーネントから受信されたタイミング及び制御情報に応答して、デバイスを制御するように、且つ、ユーザ設計の少なくとも一部のデバイス状態を監視するように構成され得る。
【0007】
本開示のいくつかの実施形態と一致して、試験の方法は、第1のインタフェース・コンポーネントにおいて、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成画像に関連付けられた構成パラメータと、ランタイム制御情報とを受信することを含み得る。この方法はさらに、第1のインタフェース・コンポーネントを使用して、構成画像をデバイスへ送信することと、第2のインタフェース・コンポーネントを使用して、第1のインタフェース・コンポーネントから受信された構成画像及びランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を検証モジュールへ送信することとを含み得る。いくつかの実施形態では、第2のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、検証モジュールは、デバイスを制御し、且つ/又は、ユーザ設計の少なくとも一部のデバイス状態を監視し得る。
【0008】
本開示のいくつかの実施形態と一致して、コンピュータ可読媒体は、プロセッサに試験の方法を実行させるための命令を備える。試験の方法は、第1のインタフェース・コンポーネントにおいて、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成画像に関連付けられた構成パラメータと、ランタイム制御情報とを受信することを含み得る。この方法は、更に、第1のインタフェース・コンポーネントを使用して、構成画像をデバイスへ送信することと、第2のインタフェース・コンポーネントを使用して、第1のインタフェース・コンポーネントから受信された構成画像及びランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を検証モジュールへ送信することとを含み得る。いくつかの実施形態では、第2のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、検証モジュールは、デバイスを制御し、且つ/又は、ユーザ設計の少なくとも一部のデバイス状態を監視してもよい。
【0009】
本開示の追加の特徴及び利点を、以下の説明で部分的に述べる。開示された実施形態の特徴及び利点は、添付の特許請求の範囲において特に指摘された要素とそれらの組み合わせによって実現され、達成される。
【0010】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、説明と共に、本明細書に開示された実施形態を例示し、開示された実施形態の原理を説明する役目を果たすものである。
【図面の簡単な説明】
【0011】
【図1】開示された実施形態と一致する例示的なプロトタイプのシステム図である。
【図2】開示された実施形態と一致する例示的なワークステーションのブロック図である。
【図3】開示された実施形態と一致する例示的なホスト側インタフェースカードのブロック図である。
【図4】開示された実施形態と一致する例示的なプロトタイプ・システム・インタフェースカードのブロック図である。
【図5】開示された実施形態と一致する、プロトタイプシステムを実装するための例示的な方法のフロー図である。
【発明を実施するための形態】
【0012】
添付の図面に例示された、開示された実施形態を以下で詳細に参照する。可能な限り、同じ又は同様の部分を示すために、図面を通じて同じ参照番号が使用される。なお、図面は大幅に簡略化された形式になっており、正確な縮尺通りではない。
【0013】
以下の説明では、「結合された(coupled)」及び「接続された(connected)」という表現が、それら派生語と共に使用され得る。これらの語は、互いに同義語であるようには意図していないことを理解されたい。むしろ、いくつかの特定の実施形態では、「接続された」及び/又は「結合された」は、2つ以上の要素が互いに物理的又は電子的に直接接触していることを示すために使用され得る。しかしながら、「結合された」という表現は、また、2つ以上の要素が互いに直接接触していないが、それでもなお、互いに協同し、通信し、且つ/又は、相互的に作用することを意味する場合もある。
【0014】
図1は、開示された実施形態と一致する例示的なプロトタイプシステム100の図を示す。図1に示すように、プロトタイプシステム100は、ハードウェアコンポーネントと、インタフェースカードと、設計検証処理中に被試験デバイスの可視性及び制御を向上させるように適合された再構成可能検証モジュールとの組み合わせを含み得る。例えば、いくつかの実施形態では、プロトタイプシステム100は、ホストワークステーション110と、ホストインタフェースカード120と、プロトタイプ・システム・インタフェースカード130と、1つ又は複数の被試験デバイス(DUT)からなるプロトタイプカード150とを含む。加えて、検証モジュール160は、各FPGAチップのための被試験デバイスDUTの部分と組み合わされて構成され得る。
【0015】
ホストワークステーション110は、コンピュータインタフェース規格の1つなど、インタフェース通信プロトコルを使用して、ホスト通信チャネル115を介してホストインタフェースカード120に結合され得る。例えば、いくつかの実施形態では、ホスト通信チャネル115は、ペリフェラル・コンポーネント・インターコネクト(PCI)エクスプレス、イーサネット(登録商標)、又は、ホストワークステーション110とホストインタフェースカード120の間でコマンド及び情報の交換を可能にする他のインタフェース方法などの有線通信方法であってもよい。
【0016】
図2は、開示された実施形態と一致する例示的なホストワークステーション110のブロック図を示す。例として、図2に示すように、ホストワークステーション110は、以下のコンポーネントのうち1つ又は複数を含んでもよく、このコンポーネントとしては、少なくとも1つのプロセッサ200と、メモリ210と、設計データベース220と、値変更データベース230と、I/Oデバイス240と、インタフェース250である。プロセッサ200は、コンピュータプログラム命令を実行して、様々なプロトタイプのシステム命令及び方法を実行するように構成されている。メモリ100は、情報及びコンピュータプログラム命令を格納且つ提供するように構成されている。設計データベース220は、ランタイムソフトウェア及び設計情報を維持するように構成されている。値変更データベース230は、プロトタイプカード150から受信された情報を格納する。
【0017】
本明細書で使用されるとき、「プロセッサ」という語は、1つ又は複数の命令を実行する電気回路を含み得る。例えば、このようなプロセッサは、1つ又は複数の集積回路、マイクロチップ、マイクロコントローラ、マイクロプロセッサ、組み込みプロセッサ、中央処理装置(CPU)の全部又は一部、デジタル信号プロセッサ(DSP)、FPGA、又は、命令を実行する若しくは論理演算を行うのに適した他の回路を含み得る。プロセッサ200は、コマンド及びデータをプロトタイプカード150と交換するようにプログラムされた検証プロセッサとして動作するように構成且つプログラムされ得るという点で、専用プロセッサであり得る。例えば、プロセッサ200は、メモリ210、設計データベース220、値変更データベース230、I/Oデバイス240、インタフェース250、又は、コンポーネント(不図示)から出力された命令及びデータに基づいて動作してもよい。いくつかの実施形態では、プロセッサ200は、データ又はコマンドを、メモリ210、設計データベース220、及び、値変更データベース230と交換するように結合され得る。例えば、プロセッサ200は、プロトタイプシステムがダウンロードしている間に、検証モジュール160及び被試験デバイスDUTの一部を含むFPGA画像データを、1つ又は複数のFPGAチップ155a〜155dへ送信する命令を実行してもよい。
【0018】
いくつかの実施形態によれば、検証モジュール160は、従来の論理解析計装機能(analysis instrumentation function)を行うように構成された、少なくとも1つの計装回路及びロジックモジュールであってもよい。検証モジュール160によって行われる論理解析機能は、例えば、信号値のサンプリング、状態解析、プロトコル解析、及び、トリガリングを含み得る。いくつかの実施形態では、検証モジュール160は、論理合成可能(synthesizable)又はソフトの知的財産(IP)であってもよい。検証モジュール160を定義する構成パラメータは、FGPAチップをプログラミングするためのフローに類似したやり方などで、設計検証セットアップ処理中に設定されてもよい。例えば、いくつかの実施形態におけるセットアップ中において、セットアップのフローは、自動的にサードパーティ合成を統合し、ツールを配置且つ経路指定し、自動的又は手動的に設計を分割し、ランタイムソフトウェア利用のための設計データベースを構築してもよい。セットアップのフローは、例えば、事前分割された設計のための自動処理を含んでもよく、レジスタ転送言語(RTL)分割ツールには、サードパーティ・ツール又はユーザ自身の手動の分割が含まれる。代替のやり方又は追加のやり方として、セットアップのフローはまた、ユーザの設計がRTLレベルで手動で分割されなかったフローを含んでもよい。
【0019】
特定のプロトタイプカード150で使用可能な物理的ピンリソースを最適化するため、検証モジュール160は、設計依存及び設計非依存の回路の両方を含む。例えば、検証モジュール160は、特定の信号に接続し、特定の信号をプローブするように構成された設計依存回路を含み得る。プローブ又は信号プローブは、個々の信号を解析し、且つ、トラブルシューティングを行うように構成された回路を含み得る。被試験デバイスに関連付けられた設計データベース220へのアクセスを利用して、データ依存回路は、プローブを修正、除去又は追加するように、試験処理中に再構成され得る。また、検証モジュール160は、データを符号化且つ復号するように構成された設計非依存回路を含んでもよい。例えば、データ非依存回路は、他の回路タイプの中でも、先入力先出力(FIFO)及び制御状態マシンを含んでよい。ここで、先入力先出力(FIFO)及び制御状態マシンは、検証モジュール160によって取り込まれたデータを、処理のためにコントローラ400及びホストワークステーション110のうち少なくとも1つへ送信するものである。検証モジュール160を定義する構成パラメータは、設計検証セットアップ処理中に設定され得る。
【0020】
動作的には、検証モジュール160は、セットアップ処理中に設定されたか、又は試験中に修正された構成パラメータに応答してもよい。これらのパラメータに基づいて、検証モジュール160は、被試験デバイスの部分の全設計状態スナップショットを取り込み、送信し、サイクルごとの解析を行い、協調シミュレーション(co-simulation)又は協調エミュレーション(co-emulation)を行い、どの信号がプローブされるべきであるかを増分的に修正する。協調シミュレーションは、一般的には、当業者に知られているように、同期的なサイクル精度の、ホストワークステーション110上で実行するソフトウェアベースのシミュレーション、及び、プロトタイプカード150上で実行するFPGAベースのエミュレーションを指すが、これに限定されない。協調エミュレーションは、一般的には、当業者に知られているように、非同期的なトランザクション駆動型の、ホストワークステーション110上で実行するソフトウェアベースのシミュレーション、及び、プロトタイプカード150上で実行するFPGAベースのエミュレーションを指すが、これに限定されない。検証モジュール160によって取り込まれたデータは、プロトタイプ・システム・インタフェースカード130、ホストワークステーション110、又は、検証モジュール160によって送信されたデータを受信するように結合された適切な計算デバイスなどの、計算デバイス又はコンポーネントによって後処理され得る。後処理には、タイミング、状態及びプロトコル解析が含まれるが、それらに限定されない。検証モジュール160によって取り込まれたデータの処理に先立って、取り込まれたデータは、値変更データベース230に格納され得る。他の実施形態では、取り込まれたデータは、処理の後、値変更データベースに格納され得る。
【0021】
いくつかの実施形態によれば、2つ以上のプロセッサが、独立して、又は協調的に動作するように構成されてもよい。すべてのプロセッサは、類似の構造であってもよく、又は、電気的に接続されるか若しくは互いから切り離された異なる構造であってもよい。本明細書において、「構造(construction)」という表現が使用されるとき、この表現は、プロセッサの物理的、電気的又は機能的特性を含み得る。これらのプロセッサは、物理的又は機能的に別々の回路であってもよく、又は、単一の回路に統合されてもよい。これらのプロセッサは、電気的に、磁気的に、光学的に、音響的に、機械的に、無線によって、又は、プロセッサ間の通信を可能にする任意の他の方法で結合され得る。
【0022】
いくつかの実施形態によれば、メモリ210は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスク、光ディスク、磁気媒体、フラッシュメモリ、他の永久的な固定の揮発性メモリ、不揮発性メモリ、又は、プロセッサ200若しくは類似のコンポーネントに命令を提供可能な任意の他の有形の機構など、コンピュータ可読メモリであってもよい。例えば、メモリ210は、設計データベース220に格納された情報に従って、プロトタイプカード150上で検証機能を行うために、命令及びデータを格納してもよい。メモリ210は、分散されてもよい。すなわち、メモリ210の部分は、リムーバブルであっても非リムーバブルであってもよく、地理的に異なる場所に位置してもよい。
【0023】
いくつかの実施形態によれば、設計データベース220は、設計検証セットアップ及びランタイム実行のためのテーブル、リスト又は他のデータの構造化された集まりであってもよい。したがって、この構造は、リレーショナルデータベース又はオブジェクト指向データベースとして編成されてもよい。他の実施形態では、設計データベース220は、ハードウェアシステムであってもよく、このハードウェアシステムは、物理的なコンピュータ可読記憶媒体と、テーブル、リスト又は他のデータ構造を受信し、それらへのアクセスを提供するように構成された入力及び/又は出力デバイスとを含む。さらに、ハードウェアシステムとして構成されると、設計データベース220は、1つ又は複数のプロセッサ及び/又はディスプレイを含み得る。構造は類似しているが、値変更データベース230は、プロトタイプカード150から受信された情報を格納するように構成され得る。例えば、値変更データベースは、信号プローブ関連の検証モジュール160によって取り込まれた信号値に関連する情報を格納するように構成されてもよい。
【0024】
いくつかの実施形態によれば、I/Oデバイス240は、マウス、スタイラス、キーボード、オーディオ入力/出力デバイス、イメージングデバイス、印刷デバイス、表示デバイス、センサ、無線トランシーバ、又は他の類似のデバイスのうち、1つ又は複数であってもよい。また、I/Oデバイス240は、データ及び命令をメモリ210、プロセッサ200、設計データベース220、又は、値変更データベース230に提供するデバイスを含んでもよい。
【0025】
いくつかの実施形態によれば、インタフェース250は、PCIエクスプレス、イーサネット(登録商標)、FireWire(登録商標)、USB、及び、無線通信プロトコルなど、外部又は一体型のインタフェースカード又はインタフェースポートを含み得る。例えば、インタフェース250は、ホスト通信チャネル115を使用してホストインタフェースカード120と通信するように結合された、PCIエクスプレスカードであってもよい。IOデバイス240はまた、グラフィカルユーザインタフェース、又は、データを提示するように構成された、人間が知覚可能な他のインタフェースを含んでもよい。
【0026】
図3は、開示された実施形態と一致する例示的なホストインタフェースカード120のブロック図を示す。例として、図3に示すように、ホストインタフェースカード120は、ホスト側インタフェース310と、コントローラ300と、信号変換器320と、トランシーバ330とのうちの1つ又は複数を含み得る。ホスト側インタフェース310は、インタフェース250に類似していてもよく、ホスト通信チャネル115を使用したホストワークステーション110との通信を容易にするように構成されてもよい。他の実施形態では、ホスト側インタフェース310は、インタフェース250とは異なってもよく、ホストワークステーション110との通信を容易にするために、物理的又は論理的信号変換コンポーネントを含んでもよい。
【0027】
いくつかの実施形態によれば、コントローラ300は、プロセッサ200に類似したコンポーネントであってもよい。いくつかの実施形態では、コントローラ300は、ホストワークステーション110から、信号変換器320から、又は、トランシーバ330を通じてプロトタイプ・システム・インタフェースカード130から受信されたデータ又は命令に基づいて動作してもよい。例えば、コントローラ300は、1つ又は複数の検証モジュール160とコマンド及びデータを交換して、FPGAデバイス155a〜155dのうち1つ又は複数に関連付けられたデバイス状態を制御且つ監視するようにしてもよい。他の実施形態では、コントローラ300は、コマンド又はデータを検証モジュール160へ送信し、検証モジュール160に、特に、取り込まれるデータの量、及び、プローブされる信号の数又はタイプを修正させてもよい。信号変換器320は、インタフェースカード通信チャネル125上で交換されたデータを、ホストワークステーション110による処理のために適したフォーマットに変換するように構成されたプロセッサを含んでもよい。
【0028】
トランシーバ330は、データを送信し、プロトタイプカード150からデータを受信する任意の適切なタイプの送信器及び受信器を含み得る。いくつかの実施形態では、トランシーバ330は、符号化/復号、変調/復調、及び、ホストインタフェースカード120とプロトタイプカード150との間の通信チャネルに関連する他の機能を行うための、所望の(1つ又は複数の)機能的コンポーネント及び(1つ又は複数の)プロセッサのうち1つ又はそれらの組み合わせを含んでもよい。トランシーバ330は、インタフェースカード通信チャネル125を介してプロトタイプ・システム・インタフェースカード130と通信するように結合され得る。いくつかの実施形態では、インタフェースカード通信チャネル125は、ファイバチャネルなど、高スループット、低レイテンシの通信チャネル技術を利用してもよい。
【0029】
図4は、開示された実施形態と一致する例示的プロトタイプ・システム・インタフェースカード130のブロック図を示す。例として、図4に示すように、プロトタイプ・システム・インタフェースカード130は、コントローラ400と、メモリ410と、トランシーバ420と、プロトタイプコネクタ430a〜430dのうちの1つ又は複数を含み得る。概して、コントローラ400、メモリ410、及びトランシーバ420は、コントローラ300、メモリ210、及びトランシーバ330にそれぞれ類似していてもよい。図4に示すように、コントローラ400は、メモリ410及びトランシーバ420からデータ又は命令を受信するように結合され得る。例えば、コントローラ400は、いくつかの命令に基づいて動作して、プロトタイプカード150上の各FPGAチップ内に位置する検証モジュール160にタイミング及び制御情報を送信してもよい。命令は、ホストインタフェースカード120から受信された構成パラメータ及びランタイム制御情報を含み得るが、それらに限定されない。
【0030】
タイミング及び制御情報は、デバイス又はデバイス状態に関連付けられた時間ベース又は状態ベースの情報を集めるために、信号をプローブすることに関連付けられたコマンド及びデータを含み得るが、それらに限定されない。タイミング情報は、コントローラ400によって生成、受信又は処理されたクロック信号を含み得る。また、タイミング信号は、開始、停止及びリセット信号を含んでもよい。検証モジュール160によって受信されると、タイミング情報は、被試験デバイスに関連付けられたタイミング及び状態解析データをプローブし、取り込み、且つ処理するための基礎としての役割を果たし得る。例えば、コントローラ400によって送信されたタイミング及び制御情報は、トリガ・シーケンスを作成し、被試験デバイスからデータを取り込み、取り込まれたデータに時間基準を割り当て、信号値をサンプリングし、FPGA内の1つ又は複数の信号を、状態解析を行う際にクロックとして使用されるように構成するための基礎を提供してもよい。いくつかの実施形態では、コントローラ400は、FPGAチップから取り込まれたデータをメモリ410に格納するように構成され得る。データは、タイミングデータと、状態データと、取り込まれたデータに関連付けられたメタデータとを含み得る。メタデータは、特に、時間基準又は信号名を含み得る。メモリ410に格納された1つ又は複数の個々の信号に関連付けられた、取り込まれたデータは、その後に取り込まれた同じ信号に関連付けられたデータと比較されてもよい。また、いくつかの実施形態では、コントローラ400は、各FPGAチップ内に位置する1つ又は複数の検証モジュール160と交換されたデータを符号化且つ/又は復号するように構成されてもよい。
【0031】
プロトタイプ・システム・インタフェースカード130はまた、コントローラ400に結合された、1つ又は複数のプロトタイプコネクタを含んでもよい。例えば、プロトタイプコネクタ430a〜430dは、コントローラ400とプロトタイプカード150との間でコマンド及びデータを交換するために適した信号送信特性を有する、Jコネクタ又は他のコネクタタイプであってもよい。プロトタイプコネクタ430a〜430dは、それぞれ対応するJコネクタ互換ケーブル135a〜135dを受けるように構成されてもよい。いくつかの実施形態では、プロトタイプ・システム・インタフェースカード130は、特定のシステム要件に従って、4つより多いか又は少ないプロトタイプコネクタを含んでもよい。プロトタイプ・システム・インタフェースカード130は、事前定義され構成可能な様々な論理構成を、FPGAチップに物理的に接続できるように構成され得る。
【0032】
いくつかの実施形態では、プロトタイプ・システム・インタフェースカード130の構造的及び機能的コンポーネントの組み合わせは、プロトタイプカード150内に埋め込まれてもよく、そうでない場合は物理的にプロトタイプカード150内の同一場所に位置してもよい。例えば、コントローラ400、メモリ410、及びトランシーバ420というコンポーネントの一部又は全部は、プロトタイプカード150上に位置してもよい。他の実施形態では、コントローラ400、メモリ410、及びトランシーバ420のうち1つ又は複数の機能性は、プロトタイプカード150上に位置するか又はプロトタイプカード150と通信するように結合された他のコンポーネントに統合されてもよい。プロトタイプ・システム・インタフェースカード130のコンポーネント又は機能性の一部又は全部がプロトタイプカード150上に存在する構成では、ホストインタフェースカード120は、インタフェースカード通信チャネル125又は他の適切な通信方法を使用して、プロトタイプカード150に結合されてもよい。
【0033】
図1に戻ると、例示的なプロトタイプカード150は、1つ又は複数のFPGAチップに実装された被試験設計を試験するために適した、事前製作又はカスタマイズされたテストボードであってもよい。例として、図1に示すように、プロトタイプカード150は、コネクタ140を通じてホストワークステーション110と通信するように結合された1つ又は複数のFPGAデバイス155a〜155dを含み得る。単一のコネクタとして図示されるが、コネクタ140は、Jコネクタ又は同様に適切なコネクタなどの1つ又は複数のコネクタであってもよい。同様に、4つのFPGAデバイスを含むように図示されるが、プロトタイプカード150は、特定のシステム要件に従って、より多く又はより少ないFPGAデバイスを有してもよい。いくつかの実施形態では、プロトタイプカード150は、複数のFPGA、プリント回路基板、又は、FPGAデバイスを使用した設計検証試験を容易にするために適した他のハードウェアの組み合わせにわたって、論理的又は物理的に分割されてもよい。
【0034】
図5は、開示された実施形態と一致する、プロトタイプシステムを実装するための例示的な方法500のフロー図を示す。図5に示すように、ステップ502において、第1のインタフェース・コンポーネントは、ある構成された画像(以下、構成画像という)を受信するように構成され得る。この構成画像は、ユーザ設計の少なくとも一部と、ある関連付けられた検証モジュールとを表すものである。構成画像は、特に、ユーザ設計の一部及び検証モジュール160の両方又はいずれか一方に関連付けられた1つ又は複数の構成パラメータを含み得る。例えば、構成パラメータは、設計のフローのセットアップと、検証モジュール160の機能性と、設計データベース220の構造に関連付けられたパラメータとを含み得る。より具体的には、構成パラメータはまた、FPGA、コネクタ及び相互接続などの詳細なプロトタイプボード情報も含み得る。ステップ504において、第1のインタフェース・コンポーネントは、ある構成された検証モジュール160を被試験デバイスへ送るように構成され得る。いくつかの実施形態では、ステップ504が、システムセットアップ処理中に発生する場合がある。他の実施形態では、ステップ504は、検証モジュール160の機能性を再構成するために、デバイス試験中に発生する場合がある。構成画像の再構成では、ホストインタフェースカード120などの第1のインタフェース・コンポーネントは、あるコマンドを送信してもよく、このコマンドは、設計データベース220に含まれた設計情報に基づいて、数、タイプ、及び、信号が解析され得るやり方を再構成するように動作可能なホストワークステーション110から受信したものである。他の実施形態では、ホストインタフェースカード120は、ユーザ設計の一部を再構成するように動作可能なホストワークステーション110から受信されたコマンドを、検証モジュール160の再構成につながるコマンドとは別に又はこのコマンドに加えて、送信してもよい。
【0035】
ステップ506において、第2のインタフェース・コンポーネントは、第1のインタフェース・コンポーネントから受信された構成パラメータ及びランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を検証モジュール160へ送信するように構成され得る。いくつかの実施形態では、タイミング情報は、プロトタイプ・システム・インタフェースカード130などの第2のインタフェース・コンポーネントから生成されたか、又は、第2のインタフェース・コンポーネントによって処理されたクロック信号を含み得る。いくつかの実施形態では、制御情報は、解析トリガ・シーケンス又は条件に関連付けられた情報を含み得る。制御情報は、選択された信号の解析のための信号プローブを作成することに関連付けられたコマンドを含み得るが、それらに限定されない。ステップ508において、検証モジュール160は、第2のインタフェース・コンポーネントからタイミング及び制御情報を受信することに応答して、被試験デバイスを制御するように構成され得る。例えば、被試験デバイスを制御することは、第2のインタフェース・コンポーネントから受信されたタイミング情報に基づいた、所定のセットの信号の値の設定又はサンプリングを含み得る。いくつかの実施形態では、サンプリングは同期的に行われ得る。他の実施形態では、サンプリングは非同期的に行われ得る。被試験デバイスを制御することはまた、検証モジュール160を使用して、協調シミュレーション又は協調エミュレーションタイプの試験を行うことを含んでもよい。
【0036】
代替として又はこれに加えて、ステップ510において、検証モジュール160は、被試験デバイス内の所定の信号を監視してもよい。例えば、検証モジュール160は、1つ又は複数の信号を解析するように構成されたプローブを含み得る。代替として又はこれに加えて、ステップ512において、検証モジュール160は、デバイスに関連付けられたデバイス状態を表す情報を取り込んでもよい。例えば、検証モジュール160は、特定の信号に関連付けられたデータを取り込むためのプローブが装備された設計依存回路を含み得る。被試験デバイスに関連付けられた設計データベース220へのアクセスを利用して、検証モジュール160は、試験処理中に、プローブを修正、除去又は追加するように再構成されて、同じか又は異なる信号を取り込むようにしてもよい。検証モジュール160を定義する構成パラメータは、どの信号がプローブされるかを決定するために使用され得る。これらのパラメータは、設計検証セットアップ処理中に設定され得る。代替として、検証モジュール160は、試験中に修正され得る。これらのパラメータに基づいて、検証モジュール160は、被試験デバイスの全設計状態スナップショットを取り込み、送信し、サイクルごとの解析及び取り込みを行い、協調シミュレーション又は協調エミュレーションを行い、どの信号がプローブされるかを増分的に修正してもよい。代替として又はこれに加えて、ステップ514において、検証モジュール160によって取り込まれたデータは、プロトタイプ・システム・インタフェースカード130、ホストワークステーション110、又は、検証モジュール160によって送信されたデータを受信するように結合された適切な計算デバイスなど、計算デバイス又はコンポーネントによって処理され得る。
【0037】
上述の開示された実施形態に対して、その幅広い発明概念から逸脱することなく、変更を行うことができることは、当業者には理解されよう。したがって、開示された実施形態は、開示された特定の例に限定されず、以下の特許請求の範囲によって定義されるような、開示された実施形態の精神及び範囲内における修正を包含することを理解されたい。
【符号の説明】
【0038】
110 ホストワークステーション
120 ホストインタフェースカード
130 プロトタイプ・システム・インタフェースカード
140 コネクタ
150 プロトタイプカード

【特許請求の範囲】
【請求項1】
プロセッサと第1のメモリとを備え、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成画像と、ランタイム制御情報とを提供するように構成されたホストワークステーションと、
前記ホストワークステーションから受信された前記構成画像及び前記ランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を前記関連付けられた検証モジュールに提供するように構成されたインタフェースと
を備え、
前記インタフェースは、コントローラと第2のメモリとを備え、前記第2のメモリは、前記検証モジュールから受信された、被試験デバイスのためのデバイス状態データを格納するように構成され、前記コントローラは、前記受信されたデバイス状態データを処理するように構成され、
前記関連付けられた検証モジュールは、前記インタフェースと結合され、
前記関連付けられた検証モジュールは、前記インタフェースからの前記タイミング及び制御情報に応答して、前記被試験デバイスを制御し、且つ、前記被試験デバイスの少なくとも一部のデバイス状態を監視するように構成されている、試験システム。
【請求項2】
前記構成画像は、少なくとも1つのフィールド・プログラマブル・ゲート・アレイ(FPGA)画像を備える、請求項1に記載の試験システム。
【請求項3】
前記インタフェースは、前記ホストワークステーションからの要求に応答して、前記構成画像を再構成するためのコマンドを送信するように更に構成されている、請求項1に記載の試験システム。
【請求項4】
前記インタフェースの前記コントローラは、前記ホストワークステーションから受信された制御情報の少なくとも一部分に基づいて、トリガ条件を作成するように構成されている、請求項1に記載の試験システム。
【請求項5】
前記トリガ条件は、前記インタフェースから受信されたタイミング情報の少なくとも一部分に基づくものである、請求項4に記載の試験システム。
【請求項6】
前記検証モジュールは、前記インタフェースから受信された制御情報の少なくとも一部分に基づいて、信号をプローブするように構成されている、請求項1に記載の試験システム。
【請求項7】
前記インタフェースの前記コントローラは、クロック及びリセット信号を前記検証モジュールに提供するように更に構成されている、請求項1に記載の試験システム。
【請求項8】
前記検証モジュールは、
前記被試験デバイス内に位置する所定の信号に接続し、前記所定の信号をプローブするように構成された第1の回路と、
前記インタフェースと交換されたデータの復号又は符号化のうち少なくとも1つを行うように構成された第2の回路と
を備える、請求項1に記載の試験システム。
【請求項9】
前記所定の信号は、前記ホストワークステーション内の設計データベースに含まれたレジスタ転送言語(RTL)情報の部分に基づくものである、請求項8に記載の試験システム。
【請求項10】
前記検証モジュールは、前記インタフェースからのクロック及び制御信号を受信することに応答して、協調シミュレーション及び協調エミュレーション検証試験のうち少なくとも1つを行うように構成されている、請求項1に記載の試験システム。
【請求項11】
あるインタフェースにおいて、ホストワークステーションから、ユーザ設計の少なくとも一部及び関連付けられた検証モジュールを表す構成画像と、ランタイム制御情報とを受信することと、
前記インタフェースによって、前記構成画像を被試験デバイスへ送信することと、
前記インタフェースによって、前記ホストワークステーションから受信された前記構成画像及びランタイム制御情報のうち少なくとも1つに基づいて、タイミング及び制御情報を前記関連付けられた検証モジュールへ送信することと、
前記関連付けられた検証モジュールによって、前記インタフェースからの前記タイミング及び制御情報に応答して、前記被試験デバイスを制御することと、
前記インタフェースによって、前記関連付けられた検証モジュールから、前記被試験デバイスのためのデバイス状態データを受信することと、
前記インタフェース内のコントローラによって、前記関連付けられた検証モジュールから受信された前記デバイス状態データの少なくとも一部を処理し、前記インタフェース内のメモリに格納することと
を含み、
前記デバイス状態データは、前記被試験デバイスの前記デバイス状態データの少なくとも一部に対応するものである、方法。
【請求項12】
前記インタフェースによって、前記ホストワークステーションから受信された前記ランタイム制御情報に基づいて、トリガ条件を作成することを更に含み、
前記検証モジュールは、前記ユーザ設計のある部分に関連付けられた所定の信号に関連付けられたデータを取り込むものである、請求項11に記載の方法。
【請求項13】
前記トリガ条件は、前記インタフェースから受信されたタイミング情報の部分に基づくものである、請求項12に記載の方法。
【請求項14】
前記検証モジュールは、前記インタフェースから受信された制御情報に応答して、所定の信号をプローブするものである、請求項11に記載の方法。
【請求項15】
前記検証モジュールによるプローブは、同期的又は非同期的に行われる、請求項14に記載の方法。
【請求項16】
前記検証モジュールは、前記インタフェースからのタイミング及び制御情報のうち少なくとも1つに応答して、協調シミュレーション及び協調エミュレーション検証試験のうち少なくとも1つを行うように構成されている、請求項11に記載の方法。
【請求項17】
前記インタフェースは、前記構成画像を再構成するためのコマンドを送信するように更に構成されている、請求項11に記載の方法。
【請求項18】
前記構成画像を再構成することは、
修正されたFPGA画像を受信することと、
前記検証モジュールに関連付けられた、前記修正されたFPGA画像のデータ依存回路を再構成することと
を含む、請求項17に記載の方法。
【請求項19】
前記コントローラによって処理することは、前記受信されたデバイス状態データを復号することを含む、請求項1に記載の試験システム。
【請求項20】
前記コントローラによって処理するステップは、前記受信されたデバイス状態データを復号することを含む、請求項11に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−168946(P2012−168946A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−26121(P2012−26121)
【出願日】平成24年2月9日(2012.2.9)
【出願人】(511289264)スプリングソフト・インコーポレーテッド (2)
【氏名又は名称原語表記】SPRINGSOFT INCORPORATED
【出願人】(512033372)スプリングソフト ユーエスエー,インコーポレーテッド (1)
【Fターム(参考)】