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

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

Info

Publication number
JP6068805B2
JP6068805B2 JP2012026121A JP2012026121A JP6068805B2 JP 6068805 B2 JP6068805 B2 JP 6068805B2 JP 2012026121 A JP2012026121 A JP 2012026121A JP 2012026121 A JP2012026121 A JP 2012026121A JP 6068805 B2 JP6068805 B2 JP 6068805B2
Authority
JP
Japan
Prior art keywords
verification module
emulation interface
fpga
interface
control information
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.)
Active
Application number
JP2012026121A
Other languages
English (en)
Other versions
JP2012168946A5 (ja
JP2012168946A (ja
Inventor
チャン,イン−ツァイ
マオ,ファ
シェイ,スウェイ−ヤン
ワン,ミン−ヤン
スウ,ユー−チン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synopsys Taiwan Co Ltd
Synopsys Inc
Original Assignee
Synopsys Taiwan Co Ltd
Synopsys Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/025,809 external-priority patent/US8281280B2/en
Application filed by Synopsys Taiwan Co Ltd, Synopsys Inc filed Critical Synopsys Taiwan Co Ltd
Publication of JP2012168946A publication Critical patent/JP2012168946A/ja
Publication of JP2012168946A5 publication Critical patent/JP2012168946A5/ja
Application granted granted Critical
Publication of JP6068805B2 publication Critical patent/JP6068805B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

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

Claims (17)

  1. 回路設計をエミュレートするためのシステムであって、
    前記回路設計をエミュレートするための少なくとも1つのフィールド・プログラマブル・ゲート・アレイ(FPGA)を備えるボードであって、前記少なくとも1つのFPGAは、前記回路設計の少なくとも一部をエミュレートするように構成され、前記少なくとも1つのFPGAは、タイミング及び制御情報を前記回路設計の前記少なくとも一部に提供し、かつ、前記回路設計の前記少なくとも一部に関連付けられた信号をプローブする検証モジュールを含むように構成されている、ボードと、
    前記回路設計の前記少なくとも一部及び前記検証モジュールを表すデータを前記少なくとも1つのFPGAに提供して、前記少なくとも1つのFPGAを構成するためのホストワークステーションと、
    コントローラ及びメモリデバイスを備えるエミュレーションインタフェースであって、前記ホストワークステーションと前記ボードとの間に接続され、タイミング及び制御情報を少なくとも記検証モジュールに提供するように構成されたエミュレーションインタフェースと
    を備え、
    前記コントローラは、前記プローブされた信号に関連付けられた信号値を受け取り、かつ、処理し、前記処理された信号値を前記メモリデバイスに格納するように構成されている、システム。
  2. 前記エミュレーションインタフェースは、前記ホストワークステーションからの要求に応じて、前記少なくとも1つのFPGAを再構成するためのコマンドを送信するように更に構成されている、請求項1に記載のシステム。
  3. 前記エミュレーションインタフェースの前記コントローラは、前記ホストワークステーションから受信された制御情報に応じて、トリガ条件を作成するように構成されている、請求項1に記載のシステム。
  4. リガ条件が、前記エミュレーションインタフェースから受信されたタイミング情報に応じて作成される、請求項1に記載のシステム。
  5. 前記検証モジュールは、前記エミュレーションインタフェースから受信された制御情報に応じて、前記信号をプローブするように構成されている、請求項1に記載のシステム。
  6. 前記エミュレーションインタフェースの前記コントローラは、クロック及びリセット信号を前記検証モジュールに提供するように更に構成されている、請求項1に記載のシステム。
  7. 前記検証モジュールは、前エミュレーションインタフェースと交換されたデータの復号又は符号化のうち少なくとも1つを行うように構成されている、請求項1に記載のシステム。
  8. 前記プローブされた信号は、前記ホストワークステーションに関連付けられた設計データベースに含まれたレジスタ転送言語(RTL)情報によって定義される、請求項に記載のシステム。
  9. 前記検証モジュールは、前記エミュレーションインタフェースからのクロック及び制御信号を受信することに応じて、協調シミュレーション及び協調エミュレーション検証のうち少なくとも1つを行うように構成されている、請求項1に記載のシステム。
  10. 回路設計をエミュレートするための方法であって、
    プロトタイプボードの検証モジュールから、プローブされた信号に関連付けられた信号値を、エミュレーションインタフェースで受信するステップであって、前記プロトタイプボードは、前記エミュレーションインタフェースの外部にあり、かつ、少なくとも1つのフィールド・プログラマブル・ゲート・アレイ(FPGA)を備えるものであり、前記プロトタイプボードの前記少なくとも1つのFPGAは、前記回路設計の少なくとも一部をエミュレートし、前記検証モジュールを提供するように構成されている、ステップと、
    前記エミュレーションインタフェースによって前記プローブされた信号値を処理するステップであって、前記プローブされた信号値は、エミュレートされる前記回路設計の前記少なくも一部に関連付けられたものであり、前記エミュレーションインタフェースは、ホストワークステーションと前記プロトタイプボードとの間に接続され、前記エミュレーションインタフェースは、タイミング及び制御情報を少なくとも前記検証モジュールに提供し、前記エミュレーションインタフェースは、コントローラ及びメモリデバイスを備え、前記コントローラは、前記プローブされた信号値を受信するように構成されている、ステップと、
    前記コントローラによって前記プローブされた信号値を処理することにより得られた、当該処理された情報を、前記エミュレーションインタフェースによって格納するステップと、
    前記処理された情報を前記ホストワークステーションに前記エミュレーションインタフェースによって送信するステップと
    を含む方法。
  11. 前記エミュレーションインタフェースによって、前記ホストワークステーションから受信された制御情報に応じて、トリガ条件を作成するステップを更に含、請求項10に記載の方法。
  12. 前記検証モジュールは、前記エミュレーションインタフェースから受信された制御情報に応じて、前記信号をプローブするように構成されている、請求項10に記載の方法。
  13. 前記検証モジュールは、前記エミュレーションインタフェースから受信されたタイミング及び制御情報のうち少なくとも1つに応じて、協調シミュレーション及び協調エミュレーション検証のうち少なくとも1つを行うように構成されている、請求項10に記載の方法。
  14. 前記エミュレーションインタフェースは、前記ワークステーションからの要求に応じて、前記少なくとも1つのFPGAを再構成するためのコマンドを送信するように更に構成されている、請求項10に記載の方法。
  15. 前記少なくとも1つのFPGAを再構成することは、
    記検証モジュールを再構成するこ
    を含む、請求項14に記載の方法。
  16. 前記信号値を処理することは、前記信号値を復号することを含む、請求項1に記載のシステム。
  17. 前記信号値を処理することは、前記信号値を復号することを含む、請求項10に記載の方法。
JP2012026121A 2011-02-11 2012-02-09 プロトタイプシステムにおける汎用的な可制御性及び可観測性のための方法及び装置 Active JP6068805B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/025,809 US8281280B2 (en) 2010-02-12 2011-02-11 Method and apparatus for versatile controllability and observability in prototype system
US13/025,809 2011-02-11

Publications (3)

Publication Number Publication Date
JP2012168946A JP2012168946A (ja) 2012-09-06
JP2012168946A5 JP2012168946A5 (ja) 2016-09-08
JP6068805B2 true JP6068805B2 (ja) 2017-01-25

Family

ID=46981168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012026121A Active JP6068805B2 (ja) 2011-02-11 2012-02-09 プロトタイプシステムにおける汎用的な可制御性及び可観測性のための方法及び装置

Country Status (1)

Country Link
JP (1) JP6068805B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163456A (ja) * 1998-11-25 2000-06-16 Hitachi Ltd 論理検証方法
US8099273B2 (en) * 2003-06-05 2012-01-17 Mentor Graphics Corporation Compression of emulation trace data
JP4890086B2 (ja) * 2006-04-21 2012-03-07 アオイ電子株式会社 回路検証装置及び回路検証方法
US8412990B2 (en) * 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
JP2009031933A (ja) * 2007-07-25 2009-02-12 S2C Inc スケーラブル再構成可能型プロトタイプシステムと方法

Also Published As

Publication number Publication date
JP2012168946A (ja) 2012-09-06

Similar Documents

Publication Publication Date Title
US8281280B2 (en) Method and apparatus for versatile controllability and observability in prototype system
US8839179B2 (en) Prototype and emulation system for multiple custom prototype boards
US10288681B2 (en) Test architecture with a small form factor test board for rapid prototyping
US8732650B2 (en) Method and apparatus for versatile controllability and observability in prototype system
US8997034B2 (en) Emulation-based functional qualification
JP4456420B2 (ja) ネットワークベースの階層エミュレーションシステム
US7353162B2 (en) Scalable reconfigurable prototyping system and method
US9032344B2 (en) Verification module apparatus for debugging software and timing of an embedded processor design that exceeds the capacity of a single FPGA
US9495492B1 (en) Implementing synchronous triggers for waveform capture in an FPGA prototyping system
US8356272B2 (en) Logic verification module apparatus to serve as a hyper prototype for debugging an electronic design that exceeds the capacity of a single FPGA
US20110307847A1 (en) Hybrid system combining TLM simulators and HW accelerators
US10678976B2 (en) Generic protocol analyzer for circuit design verification
US10664563B2 (en) Concurrent testbench and software driven verification
US10664637B2 (en) Testbench restoration based on capture and replay
JP6068805B2 (ja) プロトタイプシステムにおける汎用的な可制御性及び可観測性のための方法及び装置
Cho et al. A full-system VM-HDL co-simulation framework for servers with PCIe-connected FPGAs
Chang et al. A unified GDB-based source-transaction level SW/HW co-debugging
US9581643B1 (en) Methods and circuits for testing partial circuit designs
JP2012168946A5 (ja)
CN116594830B (zh) 硬件仿真工具、调试方法和存储介质
US9608871B1 (en) Intellectual property cores with traffic scenario data
Kashai Soc block-based design and ip assembly
Kuitunen SoC FPGA based integration testing platform
Gindac et al. Open-source SoC-based Off-the-shelf Industrial-Grade Low-Cost Logic Analyzer
Jamro et al. B04: Heterogeneous hardware-software prototyping system for PC-controlled FPGA-based designs

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20120920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141120

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160404

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160712

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20160712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161226

R150 Certificate of patent or registration of utility model

Ref document number: 6068805

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250