JP2004110771A - 構成可能なハードウェア・デバイスにおけるアナログ素子を構成するためのシステムおよび方法 - Google Patents
構成可能なハードウェア・デバイスにおけるアナログ素子を構成するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2004110771A JP2004110771A JP2003167120A JP2003167120A JP2004110771A JP 2004110771 A JP2004110771 A JP 2004110771A JP 2003167120 A JP2003167120 A JP 2003167120A JP 2003167120 A JP2003167120 A JP 2003167120A JP 2004110771 A JP2004110771 A JP 2004110771A
- Authority
- JP
- Japan
- Prior art keywords
- configuration data
- programmable
- configurable
- configurable hardware
- control device
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/38—Circuit design at the mixed level of analogue and digital signals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
- Networks Using Active Elements (AREA)
- Oscillators With Electromechanical Resonators (AREA)
Abstract
【課題】構成可能な半導体デバイスをプログラムするためのシステムを提供する。
【解決手段】設計ツールは、プログラム可能な計算デバイスに内蔵されている第1のコンピュータ・プログラム・コードを含む。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コード内で発生し、a)構成可能なハードウェア・デバイスを構成するために、構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、b)(i)構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定するために、c)構成可能なハードウェア・デバイス内のメモリ位置、および(ii)構成データのうちの少なくとも一方のサブセットに適用される新しいデータ値を決定するために、プログラム可能な制御デバイスで実行される。
【選択図】 図1
【解決手段】設計ツールは、プログラム可能な計算デバイスに内蔵されている第1のコンピュータ・プログラム・コードを含む。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コード内で発生し、a)構成可能なハードウェア・デバイスを構成するために、構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、b)(i)構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定するために、c)構成可能なハードウェア・デバイス内のメモリ位置、および(ii)構成データのうちの少なくとも一方のサブセットに適用される新しいデータ値を決定するために、プログラム可能な制御デバイスで実行される。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、構成可能なデバイスに関し、特に、第2の構成可能なデバイスにより第1の構成可能なデバイスをプログラムするための、ソフトウェアが開発される再構成可能なデバイスのようなプログラム可能な、構成可能なデバイスに関する。
【0002】
【発明の背景】
構成可能なデバイスは、使用している間に進歩し、広く使用されるようになった。構成可能なデバイスの一例としては、プログラム可能なデバイスがある。プログラム可能なデバイスは、現在では、あるプログラム可能なデバイスを他のプログラム可能なデバイスにより構成するための、実用的で望ましいものにまで進化している。例えば、プログラム可能なロジック・デバイス(PLD)のような、構成可能なハードウェア・デバイスをプログラムするために、マイクロコントローラを使用することができる。他の方法としては、マイクロプロセッサ・チップ、フィールド・プログラム可能なゲート・アレー(FPGA)チップ、またはデジタル信号プロセッサ(DSP)チップを、フィールド・プログラム可能なアナログ・アレー(FPAA)チップ、FPGAチップまたは、DSPチップをプログラムするために使用することができる。
【0003】
一例を挙げると、構成は、第1のデバイスを、第2のデバイス内の構成データ・レジスタの一部または全部を、構成データを書き込むようにプログラムすることにより行われる。多くの場合、第2のデバイスを構成した後で、第1のデバイスが、第2のデバイスの性能パラメータの一部または全部を調整することができれば便利である。さらに、またはそうしたい場合には、第2のデバイスが内蔵している全回路を変更することが望ましい。両方の場合、(a)構成データの全部または一部を修正し、次に、その構成データを第2のデバイス内のレジスタに適用することにより、または(b)第2のデバイスのレジスタ内に含まれている構成データの全部または一部を直接修正することにより調整または変更を行うことができる。しかし、現在の設計ツールでは、この修正を簡単に行うことはできない。
【0004】
集積回路用の現在のコンピュータ支援設計(CAD)ツールは、構成可能なデバイスをプログラムするために使用されてきたが、目標デバイスをプログラムすることもできるように設計されている。しかし、このようなCADツールは、他のデバイスにより、または他のデバイスからそのデバイスを構成することはできない。より詳細に説明すると、回路設計の流れは、通常、ユーザの設計、デバイスのアーキテクチャ、および潜在的に1つまたはそれ以上の予め定義した素子に関する情報を結合するために、内部アルゴリズムを使用する。そのため、この設計の流れを使用すると、目標デバイスの構成に適している構成データ・セットが得られる。デバイスが読出し専用メモリ(ROM)からロードされる場合のように、構成可能なデバイス全体をロードする場合には、この技術は比較的うまくいく。しかし、この技術を使用すると、構成可能なデバイス(または、チップ)内に1つまたはそれ以上の完全な構成を単にロードするというタスクに、高性能のコントローラを使用することになりもったいない。何故なら、コントローラ・コードがコンパイルされる時に使用することができる元の設計情報の一部だけが、結果として得られる生の構成データになるからである。
【0005】
図1および図2は、このような従来技術のシステムの構成可能なハードウェア、およびコントローラのフローチャートである。より詳細に説明すると、アナログ構成要素を有する構成可能なハードウェア・デバイス10は、中央処理装置(CPU)のような制御デバイス12により構成することができるようになっている。構成可能なハードウェアの流れ14は、コントローラの流れ16と関連しているが、この場合、デバイス記述18、機能ライブラリ20、ユーザ機能記述22、およびCADツール24は、CADツールが構成データ26を生成するように相互に作用する。次に、このような構成データは、構成可能なデバイス10に送られる。一例を挙げて説明すると、そのための1つの方法は、読出し専用メモリ(ROM)内にデータを記憶するステップと、フィールド・プログラム可能なアナログ・アレー(FPAA)が、ROMから直接構成できるようにするステップを含む。さらに、構成データ26は、さらにコントローラの流れ16に送られる。
【0006】
コントローラの流れ16について説明すると、ユーザ・プログラム28、ライブラリ30、CPUデバイス記述32、およびコンパイラ34は、コンパイラ34がCPUプログラム36を生成するように相互に作用する。コンパイラ34は、構成可能なハードウェアの流れ14から、および/またはユーザ・プログラム28を通して間接的に構成データ26を受信する。CPUプログラム36は、制御デバイス12に送られ、次に、制御デバイス12は、ユーザの設計、デバイス・アーキテクチャおよび予め定義した素子に関する情報を結合するために内部アルゴリズムを使用する。次に、制御デバイス12は、構成データ・セットまたはプログラムを、このようなデバイスを構成するのに適している構成可能なデバイス10に送る。
【0007】
デバイス記述18は、デバイス・トポロジー38に関する情報、およびリソース利用度40に関する情報を含む。機能ライブラリ20は、リソース要件42、シミュレーション・モデル44、および、機能タイミング46に関する情報を含む。ユーザ機能記述22は、機能記述に関する情報、および「概略」または、「VHDL)(VHSICハードウェア記述言語)に関する情報を含む。CADツール24は、リソース割当てに関する情報52、位置および経路情報54、ネットリスト変換情報56、および構成生成情報58を含む。
【0008】
ユーザ・プログラム28は、「C」言語、アセンブリ言語、PASCALを含むがこれらに限定されない、多数のプログラミング言語の中の任意の言語で供給することができる。ライブラリ30は、浮動小数点ライブラリ60、周辺ライブラリ62、および、アルゴリズム・ライブラリ64を含む。CPUデバイス記述32は、デバイス・トポロジー66およびリソース利用度68に関する情報を含む。
【0009】
現在のCADツールは、構成データしか含んでいないし、デバイス・アーキテクチャ、およびサブ回路設置に関する詳細な説明は含んでいない。それ故、制御デバイス12のような制御デバイス上の任意の外部プログラムは、構成可能なハードウェアを構成可能なデバイス10上に、盲目的にロードすることぐらいしかできない。CPUプログラム36が、構成可能なデバイス10内の回路またはパラメータを、役に立つように変更することができるようにするためには、構成要素の設置位置、このような構成要素に対する値の設定基準に関する情報が必要になる。しかし、現在知られている技術では、このような情報を供給することはできない。
【0010】
例えば、いくつかのフィールド・プログラム可能なゲート・アレー(FPGA)を含む従来の方法を使用した場合、ユーザが更新できるのは、FPGA内のアレーの選択した一部だけである。この更新は、いくつかのもっと小さなFPGAを1つのパッケージ内に入れるのと機能的に同じことである。しかし、関連する構成ソフトウェアは、ユーザに基本的構成データに関する情報を供給しないし、データ変更の効果も供給しない。さらに、構成ソフトウェアは、ユーザが記述したパラメータの変更を構成データ上にマッピングすることができない。
【0011】
第2の例を挙げて説明すると、マイクロコントローラおよびサンプル・ソース・コード・リストを含む製品用のマイクロコントローラ周辺機器の販売業者は、アプリケーション・ノートを発行している。しかし、これらのソース・コードのリストは、あるポートを入力ポートまたは出力ポートとして定義するような特定のデバイス内の物理的に組み込まれたオプションの構成を解決することしかできないし、または、いくつかの予め定義したボー速度の中の1つを設定するために、さらに、このようなアプリケーション・ノートは、固定ハードウェアおよび固定機能アプリケーションだけにしか適用できない。
【0012】
【発明が解決しようとする課題】
本発明は、構成要素の設定場所およびプログラム可能なデバイス内のこのような構成要素の設定値に対する基準を供給する情報を供給するための方法および装置に関する。上記情報および基準は、プログラム可能で、構成可能なデバイスの構成可能な構成要素、またはハードウェアに対する構成データを局部的に修正できるようにするために、プログラミング・デバイスの設計プロセスの流れ内で容易に使用することができる形で供給される。
【0013】
【課題を解決するための手段】
ある態様によれば、本発明は、構成可能な半導体デバイスをプログラムするためのシステムを提供する。このシステムは、プログラム可能な制御デバイス、プログラム可能な計算デバイス、通信リンク、構成可能なハードウェア・デバイス、第1のコンピュータ・プログラム・コードと第2のコンピュータ・プログラム・コードを含む設計ツールを含む。構成可能なハードウェア・デバイスは、複数のメモリ位置を含み、通信リンクを通してプログラム可能な制御デバイスに接続しているメモリを有する。設計ツールは、プログラム可能な計算デバイスに内蔵されている第1のコンピュータ・プログラム・コードを含む。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コード内で発生し、a)構成可能なハードウェア・デバイスを構成するために、構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、b)(i)構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの中の少なくとも一方のサブセットの位置を決定するために、c)構成可能なハードウェア・デバイス内のメモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために、プログラム可能な制御デバイス内で実行される。設計ツールは、構成データ、アドレス・データ、およびa)、b)およびc)の中の少なくとも1つを実行する際に使用することができるデータ値アルゴリズムの中の少なくとも1つを供給する。
【0014】
他の態様によれば、本発明は、プログラム可能なデバイスを構成するためのシステムを提供する。このシステムは、第1のプログラム可能なデバイス、第2のプログラム可能なデバイス、第1のコンピュータ・プログラム・コードおよび、第2のコンピュータ・プログラム・コードを含む設計ツールを持つプログラム可能な計算デバイスを含む。第2のプログラム可能なデバイスは、構成可能なハードウェアおよび構成可能なハードウェアを構成するための構成データ・レジスタを有する。第2のプログラム可能なデバイスは、第1のプログラム可能なデバイスと通信する。プログラム可能な計算デバイスは、構成データ、アドレス・データ、およびアルゴリズムの中の少なくとも1つを生成するための第1のコンピュータ・プログラム・コードを含む設計ツールを有する。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コードにより生成する。第2のコンピュータ・プログラム・コードは、データ値を決定するための、発生した構成データ、アドレス・データ、およびアルゴリズムの中の少なくとも1つを内蔵する。第2のコンピュータ・プログラム・コードは、a)構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、b)(i)構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの中の少なくとも一方のサブセットの位置を決定するために、c)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために、第1のプログラム可能なデバイスで実行される。
【0015】
さらに他の態様によれば、本発明は、構成可能なハードウェア・デバイス内に位置するアナログ素子を構成または再構成するための方法を提供する。この方法は、プログラム可能な制御デバイスと通信する、構成可能なハードウェア・デバイスを供給するステップと、アナログ素子を含むハードウェア設計を生成するステップと、構成可能なハードウェア・デバイス内の、選択したメモリ位置に構成データを適用することによりアナログ素子を構成するステップと、(i)プログラム可能なメモリ位置、および(ii)修正対象の構成データのうちの少なくとも一方のサブセットの位置を決定するステップと、(i)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するステップのうちの少なくとも1つのステップを実行する際に使用することができるデータおよびアルゴリズムのうちの少なくとも1つを供給するコンピュータ・プログラム・コードを生成するステップと、構成可能なハードウェア・デバイスの構成を更新するために、アプリケーション内にコンピュータ・プログラム・コードを内蔵させるステップと、構成可能なハードウェア・デバイスを再構成するために、このアプリケーションをプログラム可能な制御デバイスに供給するステップとを含む。
【0016】
さらに他の態様によれば、本発明は、フィールド・プログラム可能なアナログ・アレーを構成するための方法を提供する。フィールド・プログラム可能なアナログ・アレーは、プログラム可能な制御デバイスに接続している。この方法は、プログラム可能なアナログ・アレー内の少なくとも1つのアナログ素子に対してハードウェア設計を供給するステップと、構成可能なアナログ・アレー内の選択したプログラム可能なメモリ位置に構成データを適用することによりアナログ素子を構成するために、(i)メモリ位置、および(ii)修正対象の構成データのうちの少なくとも一方のサブセットの位置を決定するために、(i)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために使用することができるデータ・セットおよびプロセスのうちの少なくとも一方を含むコンピュータ・プログラム・コードを生成するステップと、フィールド・プログラム可能なアナログ・アレーの構成を更新するために動作するコンピュータ・プログラム・コードの少なくとも一部を内蔵するアプリケーション・プログラムを生成するステップと、プログラム可能な制御デバイスのところでアプリケーション・プログラムを受信するステップと、アプリケーション・プログラムによりフィールド・プログラム可能なアナログ・アレー内の少なくとも1つの構成データ・レジスタに構成データを書き込むための命令によりプログラム可能な制御デバイスをプログラムするステップと、フィールド・プログラム可能なアナログ・アレーの中の少なくとも1つの構成データ・レジスタに構成データを書き込むステップと、少なくとも1つの構成データ・レジスタへの構成データの書き込みに応じて、フィールド・プログラム可能なアナロ・アレー内でハードウェアを構成するステップとを含む。
【0017】
本発明の1つの利点は、緊密に結合した制御を行うために必要な情報が、構成可能なハードウェア・デバイスを構成するために使用されるプログラム可能な制御デバイス用の制御プログラムを開発する際に使用できるように、設計および構成ソフトウェアに追加の機能を供給することができることである。
【0018】
添付の図面を参照しながら、本発明の好ましい実施形態について説明する。
【0019】
【発明の実施の形態】
(コンピュータ・プログラムのリストを示す付録への相互参照)
本明細書の一部であるCD−ROM付録Aは、13のファイルからなるCD−ROM付録である。CD−ROM付録Aは、ソフトウェア・プログラムを含む、コンピュータ・プログラムのリストが記載されている付録である。付録Aは、引用によって本明細書の記載に援用する。コピーを含むCD−ROMの枚数は全部で2枚であり、それぞれのCD−ROMは、下記の13のファイルを含む。
【0020】
名称 長さ 作成日
916Y3.H 42,479 03−12−02
AN20E30.C 7,159 03−12−02
AN20E30.H 232 03−12−02
APICODE.C 37,721 03−12−02
APICODE.H 31,170 03−12−02
GEDEMO.C 24,051 03−12−02
GENTYPES.H 342 03−12−02
IPMODU〜1.C 5,677 03−12−02
IPMODU〜1.H 5,272 03−12−02
LCDDISP.C 15,755 03−12−02
LCDDISP.H 373 03−12−02
QSPI.C 3,608 03−12−02
QSPI.H 202 03−12−02
(著作権通知)
本明細書の一部は、著作権により保護されている資料を含む。著作権の所有者は、特許商標庁の特許ファイルまたは記録に記載されている場合には、特許文書または特許開示のどちらでもファクシミリによりコピーを許可する。しかし、そうでない場合には、すべての著作権の権利を留保する。
【0021】
「科学および有用な技術を促進するための」米国特許法の本質的な目的を推進するために本明細書を提出する(第1条、第8節)。
【0022】
出願人の発明の好ましい実施形態について説明する。構成可能な半導体デバイスをプログラムするためのシステムおよび方法を示す図面を参照しながら、1つの例示としての実施形態について説明する。好ましい実施形態を参照しながら本発明を説明するが、この説明は本発明を上記実施形態に制限するものではなく、他の実施形態、ほぼ類似の実施形態、および上記実施形態より広義であるが、本出願の範囲に含まれるものを含むことを理解することができるだろう。
【0023】
本発明の説明が曖昧になるのを防止するために、本発明を実行するのに密接な関係がある詳細な点については非常に詳細に説明するが、当業者が現在知っている周辺の詳細な知識についても必要に応じて説明する。
【0024】
本明細書においては、「フィールド・プログラム可能なアナログ・アレー(FPAA)」という用語は、プログラム可能な相互接続、および構成可能なアナログ・ブロックのアレーによりアナログ回路を実行するようにプログラムでき、構成することができる集積回路を意味するものと理解されたい。より詳細に説明すると、FPAAは、アナログ回路構成要素およびスイッチの集合体を含む。スイッチは、特定の回路設計を実現するために構成要素を一緒に接続する。スイッチは、また、個々のアナログ回路構成要素の値をセットするために使用される。FPAA(または、チップ)に2進ビット・ストリームをダウンロードすることによりFPAAスイッチをセットすることができ、それにより特定の回路が定義される。比較的簡単なFPAAでも、特定の回路設計を実現するために、セットしなければならない数千のスイッチを有する。それ故、本明細書に記載する改善は、回路設計およびスイッチ設定の問題を簡単にするために使用される。さらに、特定のアナログ回路設計をシミュレートするための装置も備える。
【0025】
本明細書においては、「C」コードという用語は、プログラム・コードの特定の例を意味する。PASCAL、ビジュアル・ベーシック、フォートランおよび他の周知のプログラム・コードを含む他の特定のプログラム・コードも使用することができることを理解されたい。
【0026】
従来技術の場合には、全カスタム集積回路設計は、比較的時間が掛かるものであり、広範なアナログ設計の専門知識を必要とした。特に、プログラム可能なデバイスおよびFPAAを使用すれば、アレーをプログラムするために、適切なデータが与えられた場合には、回路を迅速に形成し、変更することができる。このような技術を使用すれば、回路設計者がよく知っている方法で設計を表し、FPAAをプログラムするために、対応するデータを自動的に発生するコンピュータ支援設計ツールによりプログラミング・データの生成が非常に簡単になる。このようなコンピュータ支援設計ツールがなければ、このプログラミングの修正または生成は制限されるか、ほとんど不可能である。例えば、FPAAが実行する回路機能の面を変更するために、FPAAに隣接するマイクロプロセッサが必要である場合には、回路設計者は、アレー・アーキテクチャ、FPAAの基礎になる技術を使用する回路設計、およびFPAAにこのような回路を実現させるための、特定のデータ・シーケンスの構造についての深い知識が必要になる。
【0027】
しかし、上記技術は、非常に労力を必要とするもので、複雑で実行するのが難しい。本明細書に記載する改善は、この問題を解決する。
【0028】
図3および図4は、基本的なシステム構成が、構成可能な半導体デバイスをプログラムするために供給され、参照番号61により識別される、本出願人の発明の好ましい実施形態である。システム61は、パソコン(PC)53、もう1台のPC65、プログラム可能な制御デバイス67、および構成可能なハードウェア・デバイス69のようなプログラム可能な計算デバイス63を含む。
【0029】
図3および図4に示すように、システム61は、プログラム可能な制御デバイス67により、構成可能なハードウェア・デバイス69をプログラムすることができるような方法で、ソフトウェアおよびハードウェアと一緒に実行される。より詳細に説明すると、ソフトウェアは、密接な制御のために必要な情報が、中央処理装置(CPU)プログラム75を通してコントローラ・プログラムを開発する際に使用できるように、構成可能なハードウェア・デバイス69をプログラムするための、エクスポートされたデバイス情報73の形で供給される。次に、プログラム可能な制御デバイス67は、(a)構成データの全部または一部を修正し、次に、その構成データを構成可能なハードウェア・デバイス69内のレジスタに適用することにより、または、(b)構成可能なハードウェア・デバイス69のレジスタ内に含まれる構成データの全部または一部を直接修正することにより、構成可能なハードウェア・デバイス69が、修正した構成データ77を使用できるようにする。構成データ77を使用して、構成可能なハードウェア・デバイス69は、ソフトウェアによりプログラムされる。システムのソフトウェア機能は、従来技術システムの普通構成データの他に、構成可能なハードウェア・デバイス69の機能の全部または一部を修正するために、第2の構成可能なデバイスが使用することができるコードを発生する。
【0030】
プログラム可能な計算デバイス63は、マイクロコントローラ・ユニット(MCU)55、メモリ81、設計ツール83、および構成可能なアナログ・モジュール(CAM)ライブラリ85を含む。MCU55は、処理回路76を備える中央処理装置(CPU)79を含む。
【0031】
設計ツール83は、Anadigm Designer2を備える。Anadigm Designerの初期のバージョンは、現在公開でダウンロードすることができ、英国、Anadigm社から、http://www.anadigm.comで現在公開でダウンロードして使用することができる。この設計ツールは、引用によって本明細書の記載に援用する。今後の公開バージョンは、Anadigm Designerの初期のバージョンに追加される本発明のいくつかの機能を含む。
【0032】
図3および図4に示すように、設計ツール83は、構成コンピュータ支援設計(CAD)ツール78を含む。構成(CAD)ツール78は、構成データ82、アドレス・データ84、および1つまたはそれ以上のデータ値アルゴリズム86を含むコンピュータ・プログラム・コード80を含む。
【0033】
PC65は、中央処理装置(CPU)94、メモリ96、ユーザ・インタフェース87、ユーザ・プログラム98、コンパイラ100、ライブラリ102、およびCPUデバイス記述104を含む。CPU94は、処理回路106を含む。
【0034】
プログラム可能な制御デバイス67は、ユーザ・アプリケーション・プログラム108、メモリ101、およびユーザ・インタフェース89を含む。ある実施形態の場合には、プログラム可能な制御デバイス67は、中央処理装置(CPU)57を含む。アプリケーション・プログラム108は、アプリケーション・システム内でソフトウェアの監視および制御機能を行うためのコンピュータ・プログラム・コード110を含む。
【0035】
図3および図4に示すように、構成可能なハードウェア・デバイス69は、上記のある実施形態のように、フィールド・プログラム可能なアナログ・アレー(FPAA)59を備える。FPAA59は、メモリ112、および半導体デバイス上に位置するマイクロミニアチュア化した電子回路にようなハードウェア116を含む。メモリ112は、ハードウェア116を電気的に構成するための構成データを受信し、記憶するためのメモリ位置114を含む。ハードウェア116は、その機能が、メモリ112内に記憶されている構成データにより決まる電気的状態により変えることができるように、少なくとも一部を構成できるようになっている。ハードウェア116は、アナログ信号を処理するためのアナログ回路素子118を含む。
【0036】
動作中、構成データの初期セット71は、設計ツール83により生成される。構成データ71は、エクスポートされたデバイス情報73によりコンパイラ100に供給される。さらに、またはそうしたい場合には、構成データ71は、ユーザ・プログラム98を通してコンパイラ100に供給される。引用によって本明細書の記載に援用する、「プログラム可能な半導体デバイスを構成するための方法」という米国特許第6,272,669 B1号が、構成可能な半導体デバイスの構成方法をさらに詳細に開示している。
【0037】
あるシステム構成の場合には、構成可能なハードウェア・デバイス69は、メモリ112内に複数のメモリ位置114を含む。構成可能なハードウェア・デバイス69は、直列周辺インタフェース(SPI)バス93のような通信リンク91を通してプログラム可能な制御デバイス67に接続している。ある場合には、コンピュータ・プログラム・コード80は、第1のコンピュータ・プログラム・コードを備え、コンピュータ・プログラム・コード110は、第2のコンピュータ・プログラム・コードを含む。第1のコンピュータ・プログラム・コードは、プログラム可能な計算デバイス63で実行される。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コードにより生成される。ある場合には、第2のコンピュータ・プログラム・コード全体が、第1のコンピュータ・プログラム・コードにより生成される。しかし、このような場合は非常に希である。他の場合には、第2のコンピュータ・プログラム・コードの一部は、第1のコンピュータ・プログラム・コードにより生成され、他の一部はユーザ・インタフェース87を通してユーザ入力により生成される。例えば、(図3および図4の)任意のユーザ・インタフェース89を生成するために追加のコードを供給することもできる。
【0038】
動作中、第2のコンピュータ・プログラム・コードは、構成可能なハードウェア・デバイス69内の選択したメモリ位置に構成データ77を適用することにより構成可能なハードウェア・デバイス69を構成するために、プログラム可能な制御デバイス67内で実行される。第2のコンピュータ・プログラム・コードも、構成に関連する新しい情報を含むように修正されるメモリ位置114のようなプログラム可能なメモリ位置のサブセットの位置を決定するために、プログラム可能な制御デバイス67で実行される。さらに、第2のコンピュータ・プログラム・コードは、メモリ位置114のサブセットに適用される新しいデータ値を決定するために、プログラム可能な制御デバイス67で実行される。
【0039】
手動プログラミングを必要とする代わりに、設計ツール83は、構成、位置の決定、および新しいデータ値の決定の中の少なくとも1つを実行する際に使用することができる構成データ、アドレス・データ、およびデータ値アルゴリズムの中の少なくとも1つを供給する。ある場合には、設計ツール83は、構成データ、アドレス・データ、およびデータ値アルゴリズムの中の少なくとも1つを自動的に供給する。
【0040】
図6〜図10を参照しながら以下に説明するように、プログラム可能な制御デバイス67は、構成可能なハードウェア・デバイス69の構成可能なハードウェア116内に予めコンパイルした構成を単にロードすることに限定されない制御デバイスを供給する。代わりに、プログラム可能な制御デバイス67には、動的動作中に、修正した構成データを生成するために必要な情報が供給され、それにより、プログラマによる手動コーディングが必要なくなる。例えば、利得機能の特定の例の上の利得パラメータを変更するために、ユーザにその利得機能に対する利得を設定するために、単にソフトウェア・ルーチンを呼出すための機能が供給される。一方、従来は、ユーザは、(i)新しい利得を得るために必要な新しい構成要素値を決定しなければならなかったし、(ii)低いレベルの分析により、デバイス自身内で、または上記構成要素値を設定するための構成データ内で、プログラミング・データの位置を推理しなければならなかったし、(iii)ソフトウェア内である機構を組立て、それにより、データ値の置き換えを実行しなければならなかった。さらに、この結果により、デバイス69の所与の基本的構成に対する性能パラメータを、修正することができるばかりでなく、デバイス69に対する全く新しい機能に対する構成データを生成することもできる。他の方法としては、同じ機能を行うためにデバイス・リソースに再割当てを、異なる方法またはレイアウトで行うこともできるようになる。上記のすべてのことは、リアルタイムで、もとの構成CADツール78とは独立して行うことができる。
【0041】
ある場合には、プログラム可能な計算デバイス63、PC65、およびプログラム可能な制御デバイス67は、設計ツール83を備える1台の共通のパソコンにより供給される。他の方法としては、プログラム可能な計算デバイス63およびPC65は、独立コンピュータ支援設計コンピュータにより供給され、またプログラム可能な制御デバイス67は、アプリケーション・ボード上に常駐するマイクロコントローラにより供給される。さらに他の方法としては、プログラム可能な計算デバイス63、PC65、およびプログラム可能な制御デバイス67は、すべて個々のデバイスとして供給される。さらに、プログラム可能な制御デバイス67は、実行目的により、構成可能なハードウェア・デバイス69に密接に接続している。
【0042】
種々の実施形態の場合、プログラム可能な制御デバイス67は、マイクロプロセッサ、マイクロコントローラ、フィールド・プログラム可能なゲート・アレー(FPGA)、またはデジタル信号プロセッサ(DSP)およびその他の多くの素子を備える。また、種々の実施形態の場合、構成可能なハードウェア・デバイス69は、プログラム可能な論理デバイス(PLD)、フィールド・プログラム可能なアナログ・アレー(FPAA)、フィールド・プログラム可能なゲート・アレー(FPGA)、または、デジタル信号プロセッサ(DSP)およびその他の多くの素子を備える。
【0043】
図5は、簡単な設計式、空の構成可能なデバイス、および代表的な構成データとともに、デバイスに対する構成プログラムにより構成することができる4つの可能な構成を含む必要な回路設計を示す仮定の構成可能なハードウェア・デバイスのための例示としての回路設計を示す。より詳細に説明すると、図3のブロック(a)内の回路レイアウト122は、仮定の構成可能なハードウェア・デバイスを示す。回路レイアウト122は、第1の回路素子「X」123、第2の回路素子「Y」124、および利得素子125を含む。さらに、簡単な設計式、「(Y/X)=5に設定せよ」が供給される。ブロック(b)は、空の構成可能なデバイスを示す。ブロック(c)〜(f)は、ブロック(a)に示す、仮定の構成可能なハードウェア・デバイスのための構成プログラムにより構成することができるいくつかの可能な構成を示す。残りの4つのブロック(c)〜(f)も、代表的な構成データを示す。入手できる唯一の情報が構成データである場合であって、デバイス・アーキテクチャおよびサブ回路の設置のより詳細なデータが入手できない場合には、任意の外部プログラムは、盲目的に構成ハードウェアをロードするくらいしかできない。回路またはそのパラメータに有用な変更を行うことができる任意のプログラムは、構成要素の設置位置および上記構成要素の値の設定基準についての他の情報も必要とする。それ故、構成可能なハードウェアのための構成データの一部の変更を可能にするために、プログラミング・デバイスの設計の流れ中に容易に使用することができる形のこのようなタイプの情報を供給する方法の開発が待望されている。
【0044】
図6および図7は、緊密な制御のために必要な情報が、コントローラ・プログラムの開発の際の使用のために供給されるように、設計および構成ソフトウェアに追加される機能を示す。より詳細に説明すると、構成可能なデバイスをプログラムするためのソフトウェアがすでに開発されている。上記ソフトウェアは、構成データの他に、第1のデバイスの機能の全部または一部を修正するために、第2の構成可能なデバイスが使用することができるコードを生成する。
【0045】
図6および図7は、CPUプログラム開発の流れ216に関連して、構成可能なハードウェアの開発の流れ214を示す。CADツール78は、デバイス記述218、機能ライブラリ85、およびユーザ機能記述222の形で、入力を受信する。CADツール78は、2進ビット・ストリームを含む構成データ71を出力する。ユーザ・プログラム98またはエクスポートされたデバイス情報73のパケットには、構成データ71が供給される。
【0046】
デバイス記述218は、デバイス・トポロジーに関する情報38、リソース利用度に関する情報40、およびデバイス制御アルゴリズム126を含む。
【0047】
機能ライブラリ85は、リソース要件に関する情報42、シミュレーション・モデル44、機能タイミングに関する情報46、およびパラメータ計算アルゴリズム128を含む。
【0048】
ユーザ機能記述222は、機能記述48、および、「簡単な」または「VHDL」ハードウェア表現50を含む。
【0049】
CADツール78は、リソース割当てに関する情報52、位置および経路情報54、ネットリスト変換情報56、構成発生情報58、および設計/デバイス情報エクスポートの詳細130を含む。構成可能なハードウェア開発の流れ214を実行すると、CPUプログラム開発の流れ216内のユーザ・プログラム98に送られる、エクスポートされたデバイス情報73が発生する。
【0050】
CPUプログラム開発の流れ216は、ユーザ・プログラム98、コンパイラ100、ライブラリ102、CPUデバイス記述104、CPUプログラム75、およびCPU57を含む。
【0051】
ユーザ・プログラム98は、「C」言語、アセンブリ言語、PASCALを含む、種々のプログラミング言語、または任意の他の類似のプログラミング言語で供給することができる。ライブラリ102は、浮動小数点ライブラリ60、周辺ライブラリ62、およびアルゴリズム・ライブラリ64を含む。CPUデバイス記述104は、デバイス・トポロジーに関する情報66、およびリソース利用度に関する情報68を含む。
【0052】
動作中、ユーザ・プログラム98は、エクスポートされたデバイス情報73を含み、コンパイラ100は、(「C」言語のような)比較的高いレベルのプログラミング言語から機械語に、結果として得られるプログラムをコンパイル、または変換するために、ユーザ・プログラム98、ライブラリ102、およびCPUデバイス記述104を受信する。コンパイラ100は、最初、アセンブリ言語を生成し、次に、アセンブリ言語を機械語に変換する。それ故、コンパイラ100は、ビット・ストリーム出力を含むCPUプログラム75を生成する。
【0053】
CPUプログラム75は、プログラム可能な制御デバイス67に送られる。ある形の場合には、プログラム可能な制御デバイス67は、CPU57の形で供給される。この場合、プログラム可能な制御デバイス67は、構成データ77を発生するために、CPUプログラム75を処理する。次に、上記構成データ77は、構成可能なハードウェア・デバイス69内のアナログ素子を構成または再構成するために、構成可能なハードウェア・デバイス69に送られる。すでに図2で示したように、プログラム可能な制御デバイス67は、SPIバス93のような通信リンク91を通して、構成可能なハードウェア・デバイス69と通信する。
【0054】
エクスポートされたデバイス情報73は、デバイス特定マッピング情報およびアルゴリズム132、および設計特定マッピング情報およびアルゴリズム144を含む。デバイス特定マッピング情報およびアルゴリズム132は、デバイス特定アルゴリズム134、設計−デバイス・マッピング情報136、ハードウェア構成データ138、設計−デバイス・メモリ・マップ情報140、および設計修正アルゴリズム142を含む。設計特定マッピング情報およびアルゴリズム144は、機能パラメータ計算アルゴリズム146、および機能パラメータの設置と設置された構成要素148との間の関係マッピング情報を含む。これについては、図8および図9を参照しながら、以下にさらに詳細に説明する。
【0055】
機能ライブラリ85は、リソース要件に関する情報42、シミュレーション・モデル情報44、機能タイミング情報46、およびパラメータ計算アルゴリズム128を含む。
【0056】
CADツール78は、ユーザ機能記述222、およびデバイス記述218を含む。ユーザ機能記述222は、簡単な捕捉情報150を含む。デバイス記述218は、デバイス・トポロジーに関する情報38、リソース利用度情報40、およびデバイス制御アルゴリズム126を含む。
【0057】
図5に示すように、機能ライブラリ85は、CADツール78に、CAMライブラリ内の構成可能なアナログ・モジュール(CAM)の形で入力を供給する。すべては、構成可能なハードウェア開発の流れ214内にある。CADツール78は、最初、構成可能なハードウェア・デバイス69、またはCPUプログラム開発の流れ216中に、直接コンパイラ100に供給される構成可能なデバイス・データ・セット97を生成する。構成可能なデバイス・データ・セット97は、(図6および図7の)エクスポートされたデバイス情報73のサブセットを供給する。構成可能なデバイス・データ・セット97は、デバイス・ライブラリ152、設計ライブラリ154、および構成データ77を含む。
【0058】
デバイス・ライブラリ152は、デバイス・タイプに関する情報156、チェックサム計算情報158、データ・フォーマット情報160、デバイス構成ルーチン情報162、およびデバイス特定アルゴリズム164を含む。
【0059】
設計ライブラリ154は、初期構成データ71、サブ回路および構成要素設置データ168、およびデータ・フォーマット情報170を含む。
【0060】
ユーザ・プログラム98、コンパイラ100、ライブラリ102、CPUデバイス記述104、およびCPUプログラム75の詳細は、図6および図7のところで説明したものとほぼ同じである。
【0061】
図8および図9のソフトウェア強化は、機能ライブラリ85内のCAM内、およびプログラム・コード・ルーチン、およびCADツール78内に位置するCADソフトウェア内に位置するアルゴリズムにより行われる。より詳細に説明すると、CAM内のアルゴリズムは、ユーザ特定パラメータを構成要素値およびトポロジーに変換するのに必要な、アルゴリズムを記述するための動作する。ある実施形態の場合には、このようなアルゴリズムは、「C」言語ルーチンとして実行される。しかし、このようなアルゴリズムは、高級言語でも同様に表示することができ、目的コードとしてコンパイルすることさえできる。これらのコード・ルーチンは、特に、回路設計の設計段階中に、ユーザが生成した回路を修正するために生成される。
【0062】
一組のコード・ルーチンが、構成データ・アセンブリ、チェックサム再生成、デバイス内での機能の再配置、およびよく使用される計算ルーチンのような基本的機能を実行する。
【0063】
CADツール78内のCADソフトウェアは、構成データにより実行される回路のための一組のコードを生成するために、位置および経路ルーチン情報を上記の一組のコード・ルーチンと結合する。発生した一組のコードは、プログラム可能な制御デバイス67を通して構成可能なハードウェア・デバイス69を再構成する際に使用するための、修正構成データを生成することができるCPUプログラム75を生成するために、(コンパイラ100のような)ユーザの「C」コンパイラにより直接送ることができる。
【0064】
上記技術は、(図8および図9の)CADツール78のようなCADツール内の一組のサブ・アセンブリ回路(または、サブ回路)をアセンブルすることにより、1つの回路を設計するための方法を供給する。設計すると、FPAAのようなプログラム可能なデバイス内で回路を実行することができる。(図8および図9の)CADツール83は、回路設計を、デバイスをプログラムするために必要な正しくフォーマットされたデータに変換するための機構である。CADツールにアセンブルすることができるサブアセンブリ回路は、CADツールと互換性を持つが、CADツールの一体部分ではない。サブアセンブリ回路は、個々にまたはグループで持ち運ぶことができる回路と定義することができる。それ故、サブアセンブリ回路の定義は、CADツールとの互換性を維持しながら、その機能を変更するために容易に生成または修正することができるものということになる。
【0065】
サブアセンブリ回路の定義は、いくつかのことを実行するために必要なサブアセンブリ回路に関する情報を含む。サブアセンブリ回路の定義は、サブアセンブリ回路の複数の構成、トポロジー、およびパラメータを定義するために必要な情報を含む。
【0066】
さらに、アルゴリズムの形をしている情報は、CADツール内に記憶しているデータ、およびCADツールにより実行したユーザ・インタフェースからのデータと結合した場合、必要な情報をCADツールに戻すような方法で実行することができる。例えば、ユーザの選択に応じて行うサブアセンブリ回路の構成の修正に関する情報は、この方法で処理することができる。
【0067】
それ故、図8および図9のCADツール83は、サブアセンブリ回路定義内に含まれているデータを読み出すことができ、ユーザが、サブアセンブリ回路をもっと大きな回路にアセンブルすることができるユーザ・インタフェースを供給することができ、ユーザが、そのサブアセンブリ回路の構成および/または行動を変更することができるように、各サブアセンブリ回路用のユーザ・インタフェースを供給することができ、サブアセンブリ回路定義に含まれているインタープリタ・コードを実行することができ、特定のプログラム可能なデバイス向けの機能を含むユーザ・インタフェースを供給することができ、サブアセンブリ回路定義内に含まれている回路設計および情報を使用して、シミュレーションを設定および実行することができ、シミュレーションの結果を見ることができ、プログラム可能なデバイスにデータをダウンロードするために、回路設計を適当にフォーマットしたデータに変換することができ、プログラム可能なデバイスへの適当にフォーマットしたデータのダウンロードを簡単に行うことができる。
【0068】
上記技術を使用することにより、サブアセンブリ回路のトポロジー、サブアセンブリ回路のトポロジーと、ユーザ・インタフェースが表示するより高度なパラメータへの構成要素の値との関係、およびシミュレーションが示すサブアセンブリ回路の性能を含む有意の設計の専門知識をサブアセンブリ回路定義内に収容することができる。サブアセンブリ回路の定義は、CADツールと協力して、プログラム可能なデバイスのアーキテクチャの特定の詳細を含むものということになる。それ故、この技術を使用する人は、回路設計の専門家である必要もなく、またはプログラム可能なデバイスの専門家である必要もなく、サブアセンブリ回路、およびCADツールのユーザ・インタフェースが表す、より高度な要約内で作業することができる。それにより、回路設計およびこれら回路のFPAAチップをプログラムするための適当なフォーマットへの変換を迅速にまた容易に行うことができる。
【0069】
図8および図9に示すように、機能ライブラリ85内のCAM内のアルゴリズムは、ユーザが指定したパラメータを、構成要素値およびトポロジーに変換するために必要なアルゴリズムを記述するために動作する。本質的には、各CAM内には、アルゴリズムのコアを供給するプログラミング・コードの小さなセグメントが存在する。アプリケーション・プログラミング・インタフェース(API)ソース・コードを生成する場合に、特定のCAMに関連するプログラミング・コードのすべての小さなセグメントは結果として得られる設計内に一体に集められる。本質的には、ソース・コードの小さなセグメントは、Anadigm Designer2が、回路設計の各CAM内に存在するこれらからの、すべてのソース・コード・セグメントの集合体を含むAPIソース・コード・ファイルのグルーブを生成するようにアセンブルされる。それは、また、以下に説明するように、他の有用なシステム・レベルの機能定義、およびメモリ・マップを含む。このようなプログラミング・コード・セグメントは、一緒に集められ、(図8および図9の)CPUプログラム75が表す、結果として得られるアプリケーション・プログラムに容易にコンパイルされる形にされる一組のAPIソース・コード・ファイルに集められる。
【0070】
各プログラミング・コード・セグメンは、回路設計の際に使用される各CAMに、上記CAMに関連する全回路構造に、およびその回路を実行するFPAAのアーキテクチャに絶対的に特有なものである。ユーザが、3つの一意のサブアセンブリ回路構成要素(または、CAM)を含む回路を組立てた場合には、上記の3つの各機能デバイスは、抽出されるそれ自身の機能特定プログラミング・コード・セグメントを持つ。次に、このような3つの機能すべては、CAMプログラミング・コード・ファイル内の機能定義となる。
【0071】
より詳細に説明すると、Anadigm Designer2は、ユーザが、(図14に示す)略図の中に描く特定の回路設計を採用し、Anadigm Designer2は、フィールド・プログラム可能なアナログ・アレー用のシリコン・レイアウト内で使用することができるリソースからユーザが供給する機能を含む。Anadigm Designer2は、実際に、本物のリソースを使用するトポロジーを選択し、結果として得られる回路構造を実行するために、どの物理的構成要素を使用するのかを決定する。Anadigm Designer2が、どの物理的構成要素を使用しようとしているのかを決定した場合には、Anadigm Designer2は、これら物理的構成要素が、FPAA(または、チップ)内に物理的に常駐している場所を知る。それ故、更新する必要があるメモリ位置のアドレスは分かっている。
【0072】
ユーザが回路を形成すると、Anadigm Designer2は、それを実行するためにFPAA内で既知の低いレベルのリソースを割り当てるので、これらリソースをプログラムするメモリ位置のアドレスを記述することができる。設計が終了すると、Anadigm Designer2は、その設計に一意の構成データ、およびその設計に一意のコンパイルすることができる「C」コード・ファイルの集合体の両方を生成する。上記設計は、FPAA内のメモリ位置への値の再割当て方法に関するアルゴリズム情報、およびこれらの対応するメモリ位置が存在する場所に関するアドレス情報を含む機能定義の階層を含む。「C」コードは、簡単なハイレベルの機能呼出しにより、アルゴリズム、およびアドレス情報を呼び出すための非常に便利な手段を供給する。ユーザが、自分自身のコード内に、このようなハイレベルの機能呼出しを内蔵させると、(実行中)ソフトウェアは、回路設計に必要な変更を行うために、プログラミング命令を自動的に形成し、FPAAに対して発行する。
【0073】
それ故、「C」コードは、アルゴリズムを結合し、新しい値を計算し、更新しなければならない、またアプリケーションにより絶対に一意なメモリ・アドレスの点で規範的な他の機能呼出しを含む。
【0074】
例えば、Anadigm Designer2は、特定のサブアセンブリ回路に対して、例えば、低域フィルタ・ブロック内に位置する容量を割り当てる。上記容量は、デバイス内のどこかでなくなり、そのプログラミングは特定のアドレスを持つ。しかし、Anadigm Designer2は、回路が形成されるまで、そのアドレスを知らない。アドレスが分かると、そのアドレス位置が物理的に報告され、1つの数字として「C」コードに内蔵される。「C」コードがコンパイルされて、その特定の設計のために使用されると、その一意のアドレスが分かり、ユーザは、「利得の変更」という機能を呼び出すだけでよく、コンパイルされた「C」コードを実行しているマイクロプロセッサが、(新しいデータおよびデータ自身の目標アドレスを含む)動的更新データ・セグメントを組立て、そのデータを、FPAAに送りそれによりその行動を修正する。
1.設計例
図10〜図15は、付録Aと一緒に、フィールド・プログラム可能なアナログ・アレー(FPAA)の部分的更新のための設計例を示す。付録A内の「IPモジュール」という用語は、構成可能なアナログ・モジュール(CAM)を意味する。CAMは、(FPAAのような)構成可能なデバイス内で実行される、利得反転機能のような、回路機能のソフトウェアの実施形態である。
【0075】
始めに、図10〜図15は、下記の仕様および付録Aと一緒に、埋設アプリケーション内のフィールド・プログラム可能なアナログ・アレーの部分的更新を行うためのプロセスを示す。この設計例の目的は、Anadigm AN220E04 FPAAを構成する際に、Anadigm Designer2から生成した「C」コードにより、比較的簡単にCAMを更新することができることを示すことである。
【0076】
この設計例により、最初に、Anadigm Designer2によるある設計を生成するプロセスを説明する。次に、「C」コードを発生するために、Anadigm Designer2を使用するプロセスを説明する。最後に、発生した「C」コードを例示としてのアプリケーションに内蔵させるプロセスを説明する。
【0077】
この設計例のために、図10に示すAnadigm AN20PDS30開発システム90の形の、ユーザ・アプリケーションを実行するためのアプリケーション環境が供給される。開発システム90は、ユーザ・アプリケーション・プログラム108を実行するためのデジタル・ボード92、およびアナログ回路(または、アナログ回路素子)118を実行するためのアナログ・ボード95を含む。
【0078】
図10に示すように、プログラム可能な計算デバイス63およびPC65は、両方とも、プログラム可能な制御デバイス67と通信する共通のデバイス63/65内に位置する。プログラム可能な制御デバイス67は、通信リンクを通して構成可能なハードウェア・デバイス69と直接通信する。デバイス63/65は、CAD設計ツールのような設計ツール83を含む。設計ツール83は、図4および5のところですでに説明した構成可能なハードウェア開発の流れ14、およびCPUプログラム開発の流れ16を含む。
【0079】
デジタル・ボード92は、ユーザ・アプリケーション・プログラム108、デバイス63/65と通信するためのRS−232ポート176、デジタル・ボード92に電力を供給するための電力コネクタ184、マイクロコントローラ・ユニット(MCU)55、LCDディスプレイ172、アプリケーション・スイッチ178、構成スイッチ180、およびリセット・スイッチ182を含む。MCU55は、処理回路を含む中央処理装置(CPU)57を含む。
【0080】
アナログ・ボード95は、アナログ回路素子118、ドーターボード・コネクタ186、AN220E04 FPAA59、ブレッドボード領域188、直列EEPROMソケット190、デイジー・チェーン・コネクタ192、一連のシングルエンド入力194、および一連のシングルエンド出力196を含む。
【0081】
ユーザ・アプリケーション・プログラム118が、MCU55上で稼動している場合には、ソフトウェアは、FPAA59に構成情報を送り、それにより必要な更新を行うことができる。
【0082】
図11は、FPAA59内に位置するアナログ・マルチプレクサ(MUX)の使用法および利得反転CAMの使用法を説明するための抵抗ネットワークである。この機能を説明するために、抵抗ネットワーク回路198をセットアップし、次に、いくつかの抵抗の両端の電圧降下を測定する。図11は、FPAA59と一緒に、このようなネットワークの基本的な略図を示す。
【0083】
図11に示すように、抵抗ネットワーク198は、FPAA59に対して配列されている抵抗200−205を含む。
【0084】
より詳細に説明すると、AN220E04 FPAA59の入力セル4は、複数の入力を備える。これらの複数の入力は、Anadigm Designer2により、または「C」コード機能により選択することができる。より詳細に説明すると、(図10の)設計ツール83で示す、Anadigm Designer2から一次構成が実行される。他の構成は、(図10の)ユーザ・アプリケーション・プログラム108により、動的更新により実行することができる。複数の入力を選択することができるので、ユーザ・アプリケーション・プログラムは、任意の特定の時間に、どの抵抗を測定すべきかを決定することができる。ブレッドボード(図10のブレッドボード領域188)を使用することにより、検査中の設計への結果としての影響をチェックするために、任意の時間に抵抗を変更することができる。
【0085】
図12は、利得反転段206として図示してある利得反転CAMの詳細図である。図11のフィールド・プログラム可能なアナログ・アレー内には、各入力の両端でユーザが測定する電圧を増幅するために、利得反転段206が設置されている。図12のブロック図は、Anadigm Designer2内の利得反転CAMが供給するような上記利得反転段のレイアウトを示す。
【0086】
図13〜図15は、Anadigm Designer2内で、図12の利得反転段206を実行する特定のアナログ回路のセットアップを示す。Anadigm Designer2のアプリケーションをスタートすることにより、ユーザに対して、設計ツール・アプリケーション・ウィンドウ208内の、図13に示すスクリーン・ディスプレイ210が表示される。AN220E04 FPAAチップ設計220は、特定のチップ設計の形成ができるように、作業空間212内に位置する。
【0087】
スクリーン・ディスプレイ210は、ヘッダ224、ユーザが選択できるように、複数のメニュー項目228が表示されているメニュー・バー226、複数の選択可能なツール・バー・ボタン232が表示されているツール・バー230を含む。
【0088】
図13に示す特定のメニュー項目228および229を除いて、メニュー・バー226の残りのメニュー項目は、Anadigm Designer2の初期のバージョンであるAnadigm Designerで現在使用することができる。さらに、本発明がわかりにくくなると困るので、このような他のメニュー項目の機能については、本明細書では詳細に説明しない。代わりに、「C」コード・メニュー項目228および「目標」メニュー項目229の追加の機能、および詳細について以下に詳細に説明する。チップ設計220は、特定のチップ設計がAnadigm Designer2により生成される初期テンプレートを供給する。より詳細に説明すると、チップ設計220は、複数の入力セル234、236、238および240、および複数の出力セル242および244を含む。
【0089】
図14の回路のところに行き着くために、図13の斜視図から下記のステップが行われる。最初に、ユーザは、入力セル238をダブルクリックし、チョッパ・アンプおよび偽信号防止フィルタをオフにする。この動作により、入力セル238はバイパス・モードになり、そのため、ユーザは、結果として得られる入力を(図12の)利得反転段206に対応する、必要なCAMに直接接続することができる。
【0090】
その後で、ユーザは、出力セル242をダブルクリックし、このセルをバイパス・モードにする。さらに、ユーザは、出力セル242をダブルクリックし、バイパス・モードにする。次に、ユーザは、チップ220上に、(図12の)利得反転段206に対応する利得反転段CAMを置く。次に、ユーザは、モジュールの利得を10に設定する。次に、ユーザは、ツール・バー230内の適当なツール・バー・ボタン232により、入力セル238の出力を利得反転CAM246の入力に送る。(図14参照)。その後で、ユーザは、利得反転CAM246の出力を、図14に示すように出力セル242および、244に送る。図14に示すように、これらステップの最終結果は、チップ220により実行された有線利得反転CAMとなる。
【0091】
一般に使用することができ、市販のAnadigm Designerで現在使用することができる機能に対して、Anadigm Designer2に行われた改善としては、図14の利得反転CAM246のようなCAM構造から「C」コードを生成する機能等がある。アナログ回路の特定のレイアウトが設計されると、ユーザは、必要なアプリケーションに対して「C」コードを生成することができる。「C」コード機能を持つすべてのCAMおよびI/Oセルは、デフォールトで、対応する「C」コードを発生するように構成される。このような結果は、本明細書に記載する目的に適していて、本発明により実行される。図10の「C」コード・メニュー項目228を選択することにより、種々の位置へ構成(図示せず)を書き込むための複数のオプションに対して、プルダウン・メニューが表示される。例えば、「C」コード・メニュー項目228を選択すると、「C」コードを「生成する」ための選択項目を含むプルダウン・メニューが表示される。さらに、プルダウン・メニューは、「生成オプション」をチェックするための選択項目を含む。さらに、構成プルダウン・メニューは、「CAM機能」をチェックするための選択項目も含む。
【0092】
「生成オプション」選択項目(図示せず)は、一般的な情報、再構成情報、一次構成情報、およびクロック情報を含む、生成オプションの調整を含む。例えば、名前をつける場合に起こる恐れがある現存のコードとの重複を避けるために、各タイプ、定数、変数オプション1機能名に、1つの文字列を前に付加することができる。例えば、発生する恐れがある名前の重畳を避けるために、すべての生成した「C」コードの前に、接頭語「an_」を付加することができる。さらに、ANSI C規格に適合するように、名前を内部名称の最初の31文字に制限するように、限定された文字数に名前の頭切りを調整する機能もある。
【0093】
「生成」選択項目を選択する場合には、図15に示すように、ポップアップ「C」コード生成対話ウィンドウ252が表示される。図15の対話ウィンドウ252は、「C」コード・メニュー項目228の対応するプルダウン・メニューから、「生成」選択項目を選択すると表示される。そうしたい場合には、「C」コード・メニュー項目228を、図15の対話ボックス252に直接入れることもできるが、このような実行は、1つの方法で構成データを書き込む場合にしか使用できない。
【0094】
図13および図14に示すように、「目標」メニュー項目229は、ボード情報を表示したり、および/または選択したフラッシュ・メモリ位置に、アプリケーションをダウンロードするためのものである。「目標」メニュー項目229を選択すると、「ボード情報を表示」するために、選択項目を表示するプルダウン・メニューが表示される。さらに、「フラッシュ1にアプリケーションをダウンロードする」ために、選択項目が表示される。さらに、「フラッシュ2にアプリケーションをダウンロードする」ために、選択項目が表示される。それ故、ユーザは、対応する結果を生成するために、プルダウン・メニューから項目の中の1つを選択することができる。
【0095】
結果として得られる「C」コードが、デフォールトで、ユーザがすでに回路ファイルをセーブしているディレクトリ中にセーブされる。ユーザがそうしたい場合には、ユーザは、結果として得られるプルダウン・メニュー内の他の項目を選択するというように、結果として得られる「C」コードをセーブするために、他の位置を選択することができる。さらに、ユーザは、ファイル名を変更することもできるが、この例示としての説明のためには、デフォールト値を使用する。対話ウィンドウ252を生成した場合には、ユーザは、発生ボタン278をクリックする。次に、結果として得られる「C」コードが、特定のディレクトリに書き込まれると、ユーザに通知が行われる。本明細書の付録Aは、このような動作の結果として得られるコードを示すが、これは単に例示としてのものに過ぎない。
【0096】
図15に示すように、ポップアップ対話ウィンドウ252は、ヘッダ254、生成ボタン278、API「C」コード・ファイル・フィールド256、CAM「C」コード・ファイル・フィールド258、および宛先ディレクトリ・フィールド260を含む。API「C」コード・ファイル・フィールド256は、一組のAPIファイル入力フィールド262および264を含む。CAM「C」コード・ファイル・フィールド258は、一組のCAMフィールド入力フィールド266および268を含む。宛先ディレクトリ・フィールド260は、一組の選択可能なラジオ・ボタン270および272を含む。ラジオ・ボタン270は、関連ディレクトリ・ファイル入力フィールド274を含み、一方、ラジオ・ボタン272は、関連ディレクトリ・ファイル入力フィールド276を含む。
【0097】
さらに、ポップアップ対話ウィンドウ252は、クローズ・ボタン280、ヘルプ・ボタン282、生成オプション・ボタン284、およびCAM機能ボタン286を含む。
【0098】
この設計例のところで説明したように、Anadigm Designer2が生成した「C」コードは、必ずしもそれ自身有用ではない。「C」コードは、通常、必要に応じて、他の種々のコード・ルーチンを呼び出す、もっと大きなソフトウェア・プロジェクトに内蔵させなければならない。例えば、デバイス情報73は、図3および図4に示すように、設計ツール83からPC65にエクスポートされる。PC65内においては、ユーザ・プログラム98、ライブラリ102、およびユーザ・インタフェース87により、他の入力を、(図3および図4の)CPUプログラム75を生成するもっと大きなプロジェクト内に収容することができる。
【0099】
上記例の設計アプリケーションも、付録Aに詳細に示すように、追加のコードをもっと大きなプロジェクトに収容している。例示としての設計アプリケーションは、入力セル238のいくつかの入力を切り替えるために、設計のいくつかの利点を利用する(図14参照)。例示としての設計アプリケーションは、また、各チャネル用の利得モジュールに対して独立している設定を持つ。ユーザがチャネルを切り替えると、利得モジュールは、それぞれ適当な設定に更新される。それ故、このような例示としての設計アプリケーションにより、ユーザは、どのチャネルが現在使用中なのかを制御することができる。第二に、このアプリケーションと使用すれば、ユーザは使用時に各チャネルの利得を制御することができる。第三に、このアプリケーションにより、ユーザは、(図14の)4つのチャネルを通して絶えず回転することができる。最後に、このアプリケーションにより、ユーザは、4つのチャネルを必要な出力設定に校正することができる。付録Aは、結果として得られる例示としての設計アプリケーションを示す。この付録Aは、各ソース・コードを含む本明細書に含まれている。
【0100】
ソフトウェアの動作中、この例示としての設計アプリケーションは、「C」コード・ライブラリを初期化し、CAMを必要に応じて調整し、AN220E04FPAAを更新する目的で、データ・ストリームを生成するために、いくつかの機能を呼び出す必要がある。より詳細に説明すると、この例示としての設計アプリケーションは、APIおよびCAM「C」コード機能を呼び出さなければならない。
【0101】
最初に、「C」コード・APIライブラリを初期化しなければならない。この初期化は、InitializeRecordingDataルーチンを呼び出すことにより行うことができる。
【0102】
an_InitializeReconfigData(an_chip1);
この呼出しは、どのチップが再構成可能なCAMであるかにより、チップ毎に行われる。
【0103】
チップが他の何らかの方法で構成されていない限りは、このアプリケーションがスタートした場合に、おそらく最初に構成を行わなければならない。ユーザは、GetPrimaryConfigDataルーチンを呼び出すことにより、一次構成に対するデータ・ストリームを検索することができる。
【0104】
PrimaryConfigPtr = (unsigned short int *)
an_GetPrimaryConfigData(an_chip1,&ConfigSize);
これは、バッファへのポインタおよび構成のサイズを検索する。データがチップに到着する方法は、特定のアプリケーションにより異なる。この場合、データをチップにストリームの形で供給するために、HC16のQSPIポートを使用することができる。
【0105】
ソフトウェアの動作中、CAM特性を「C」コードにより変更しなければならない場合には、このアプリケーションは、そのモジュールのための「C」コード機能を呼び出さなければならない。アナログMUXの場合には、SetPadSelect機能を呼び出すことができる。
【0106】
an_setPadSelect(an_chip1_InputCell4, MuxBit(ChannelLoop));
利得モジュールの場合には、SetGain機能を呼び出すことができる。
【0107】
an_setGain(an_chip1_GainInv, GainMid);
これらの機能の詳細を知りたい場合には、ユーザは、Anadigm Designer2のCAM特性の、「C」コード・ボタンをクリックすることができる。
【0108】
CAM機能は、チップのいかなる特性も変更しないことに留意されたい。CAM機能は、単に、構成ストリームをセットアップするだけである。このストリームがチップにダウンロードされると、特性が変化する。
【0109】
このアプリケーションが、AN220E04 FPAAを更新する準備ができている場合には、このアプリケーションは、GetReconfigDataルーチンを呼び出す。
【0110】
ConfigPtr = (unsigned short int *)an_GetReconfigData(an_chip1,&ConfigSize);
次に、この場合、ユーザは、QSPIポートを通して、チップにデータをストリームの形で送る。データが転送済みの場合には、ユーザは、ClearReconfigDataルーチンを呼び出すことにより、構成バッファをリセットすることができる。
【0111】
an_ClearReconfigData(an_chip1);
ある特定の例の場合には、これは適用されないが、ユーザが構成バッファをクローズしなければならない場合には、ユーザは、各チップに対してShutdownReconfigDataルーチンを呼び出すことができる。
【0112】
「C」コードをこのアプリケーションに内蔵させた後で、ユーザは、任意の使用中のコンパイラによりコンパイルおよびリンクすることができる。HC16の場合には、使用することができる適当なコンパイラは、Cosmic C Compilerスーツである。
【0113】
アプリケーションがコンパイルされ、リンクされた後で、ユーザは、HC16(フラッシュ・メモリ)にS19アプリケーション・ファイルをダウンロードすることができる。このダウンロードは、Anadigm Designer2内の「Target−>Download application to flash1]」メニュー・コマンドにより行うことができる。ユーザは、使用するためにS19ファイルを選択することができ、その後で、Anadigm Designer2は、それをHC16に送る。Anadigm Designer2は、ダウンロードが終了すると、ベルの音を送り、HC16上のABKは、LCDディスプレイ上に、「Download App」を表示する。
【0114】
さて、ユーザは、AN220E04 FPAAに、抵抗ネットワークを接続しなければならないし、また、出力をチェックするために装置を試験しなければならない。ユーザが、利得を校正したい場合には、ユーザは、AN220E04 FPAAに、HC16のアナログ/デジタル・コンバータを接続しなければならない。
【0115】
次に、電圧計を、出力の極性に注意しながら、出力セル1のピンの両端に接続しなければならない。差動出力が使用され、差動−シングルエンド変換回路は無視される。アナログ・ボード上のJ8およびJ7ジャンパを取り外すことにより、入力セルから、シングルエンド−差動変換回路を取り外す。
【0116】
図11に示すように、抵抗ネットワークを接続する。ネットワークのアースをAN220E04 FPAAのアースに接続し、ネットワークのVccをAN220E04 FPAAのAVDDに接続する。この接続により、この回路に必要な電圧が供給される。必ず、入力セル4の各入力の極性に注意し、マイナスの側(すなわち、14NA)をアースに接続している抵抗の側に、正の側(すなわち、14PA)をVccに接続している抵抗の側に接続してほしい。
【0117】
アナログ回路の利得を校正するために、出力セル2をHC16のA/D回路に接続してほしい。アナログ・ボード(AN220E04 FPAAのO2P)のP2〜7をデジタル・ボードのP5〜7(HC16のAN0)に接続してほしい。アナログ・ボード(AN220E04 FPAAのO2N)のピンP2〜8をデジタル・ボードのP5〜5(HC16のAN2)に接続してほしい。
【0118】
ユーザは、デジタル・ボード上のスイッチS1を押して、アプリケーションをスタートすることができる。アプリケーションが始動し、現在必要な設計のためのAN220E04 FPAAの構成を始める。
【0119】
構成が終了した後で、回路は正常に動作し、ソフトウェアは、ユーザの入力を受け入れることができるようになる。この場合には、我々の目的のために、デジタル・ボードのキーはすでに定義されている。より詳細に説明すると、二つのアプリケーション・スイッチ178(図10参照)は、第1のアプリケーション・スイッチがチャネルを校正し、第2のアプリケーション・スイッチが、チャネルを通して回転する(他のスイッチをオフにする)ように再度定義されている。さらに、構成スイッチもすでに定義されている。より詳細に説明すると、第1の構成スイッチは、利得を+0.5だけ増大するように定義されている。第2の構成スイッチは、利得を−0.5だけ低減するように定義されている。第3の構成スイッチは、「チャネル・アップ」するように定義されている。第4の構成スイッチは、「チャネル・ダウン」するように定義されている。
【0120】
LCDディスプレイ172(図10参照)も、ユーザ・アプリケーション・プログラム108の現在の状態をユーザに示すために使用される。より詳細に説明すると、LCDディスプレイは、多重化ユニット(FPAAのMUX)が現在設定されているチャネル、およびそのチャネルに割り当てられている利得を示す。
【0121】
Channel Up/Downボタン(スイッチS5およびS6)により、ユーザは、アナログMUXチャネルを切り替えることができる。Gain Up/Downボタン(スイッチS3および、S4)を押すことにより、ユーザは、モジュール内の利得のレベルを制御することができる。
【0122】
再びS1を押すと、回転アルゴリズムがスタートする。1秒または2秒毎に、アプリケーションは、自動的に、(FPAAの)アナログMUXを次のチャネルに切り替えるか、(または、始めにラップアラウンドする)。アプリケーションは、また、そのチャネル上で最後に使用された利得に利得CAMを設定する。再び、S1を押すと、回転が停止する。回転中は、(リセットを除く)他のすべてのボタンは機能しない。
【0123】
S2を押すと、校正シーケンスがスタートする。アプリケーションは、校正する電圧は何ボルトであるのか問い合わせる。利得反転CAMが使用中なので、出力は負の電圧である。ボタンS−S6は、電圧を制御する。必要な校正点に達した場合再びS2を押せば、校正アルゴリズムがスタートする。アルゴリズムが進行するにつれて、ユーザは、LCDディスプレイおよび電圧計上でアルゴリズムの動作を見ることができる。校正が終了した後で、LCDディスプレイは、「Cal done!」メッセージを表示する。その後で、ユーザは、任意のボタンを押すことにより、正常な動作に戻ることができる。
【0124】
校正後、ユーザは、各チャネルの出力がかなり安定しているかどうかを、見るために個々のチャネルをチェックすることができる。そうしたい場合には、ユーザは、電圧の変化を見るために抵抗をチェックし、必要な出力に戻すために再校正することができる。
【0125】
本発明の「C」コード機能は、AN220E04 FPAA内のCAMを動的に制御するための強力な方法を供給する。ユーザの埋設ソフトウェアに接続しているので、これは本当に柔軟なアナログ的解決方法である。
【0126】
図16は、例示としての、構成可能なハードウェア・デバイス内に位置するアナログ素子の構成または再構成を実行するための方法を示す。
【0127】
図16に示すように、論理のフローチャートは、構成可能なハードウェア・デバイス内のアナログ素子のための構成または再構成の実行ステップを示す。ステップ「S1」において、構成可能なハードウェア・デバイスは、プログラム可能な制御デバイスと通信している。ステップ「S1」を実行した後で、プロセスはステップ「S2」に進む。
【0128】
ステップ「S2」において、システムは、アナログ素子を含むハードウェア設計を生成する。ステップ「S2」を実行した後で、プロセスは、ステップ「S3」に進む。
【0129】
ステップ「S3」において、システムは、構成可能なハードウェア・デバイス内の選択したメモリ位置に、構成データを適用することによるアナログ素子の構成、(i)プログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置の決定、(i)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値の決定の中の少なくとも1つを実行する際に使用することができる、データおよびアルゴリズムの中の少なくとも一方を供給するコンピュータ・プログラム・コードを生成する。ステップ「S3」を実行した後で、プロセスは、ステップ「S4」に進む。
【0130】
ステップ「S4」において、システムは、エクスポートされたデバイス情報を含むコンピュータ・プログラム・コードを、プログラム可能な計算デバイスから、コンパイラにエクスポートする。ステップ「S4」を実行した後で、プロセスは、ステップ「S5」に進む。
【0131】
ステップ「S5」において、システムは、ハードウェアの再構成ができるように、パラメータの変更を構成データ上にマッピングする。ステップ「S5」を実行した後で、プロセスは、ステップ「S6」に進む。
【0132】
ステップ「S6」において、システムは、コンパイルしたプログラム・コードにより、構成可能なハードウェア・デバイスのハードウェアのための、構成データの選択的な修正ができるように、プログラム可能な制御デバイスが使用できるように、コンピュータ・プログラム・コードをコンパイルする。ステップ「S6」を実行した後で、プロセスは、ステップ「S7」に進む。
【0133】
ステップ「S7」において、システムは、構成可能なハードウェア・デバイスの構成を更新するために、コンピュータ・プログラム・コードを、アプリケーション・プログラムに内蔵させる。ステップ「S7」を実行した後で、プロセスは、ステップ「S8」に進む。
【0134】
ステップ「S8」において、システムは、構成可能なハードウェア・デバイス内のハードウェアを再構成するために、生成したコンピュータ・プログラム・コードを、プログラム可能な制御デバイスから構成可能なハードウェア・デバイスに転送することにより、構成可能なハードウェア・デバイスを再構成するために、プログラム可能な制御デバイスにアプリケーション・プログラムを送る。ステップ「S8」を実行した後で、プロセスは、ステップ「S9」に進む。
【0135】
ステップ「S9」において、システムは、構成可能なハードウェア・デバイスのハードウェアを再構成するために、プログラム可能な制御デバイスにより、構成可能なハードウェア・デバイスの構成データを更新する。ステップ「S9」を実行した後で、プロセスは終了する。
【0136】
図17および図18は、フィールド・プログラム可能なアナログ・アレーを構成するためのもう1つの例示としての方法である。この方法を実行する場合、フィールド・プログラム可能なアナログ・アレーは、プログラム可能な制御デバイスに接続している。
【0137】
図17および図18に示すように、論理のフローチャートは、フィールド・プログラム可能なアナログ・アレーの構成ステップを示す。ステップ「S1」において、プログラム可能な制御デバイスに接続している、フィールド・プログラム可能なアナログ・アレー(FPAA)内で、少なくとも1つのアナログ素子に対してハードウェア設計が供給される。ステップ「S1」を実行した後で、プロセスは、ステップ「S2」に進む。
【0138】
ステップ「S2」において、システムは、FPAA内の選択したプログラム可能なメモリ位置に、構成データを適用することによりアナログ素子を構成する際に、(i)メモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定する際に、(i)メモリ位置、および(ii)構成データのうちの少なくとも一方のサブセットに適用される新しいデータ値を決定する際に使用することができるデータ・セットおよびプロセスのうちの少なくとも一方を含むコンピュータ・プログラム・コードを生成する。ステップ「S2」を実行した後で、プロセスは、ステップ「S3」に進む。
【0139】
ステップ「S3」において、システムは、コンピュータ・プログラム・コードの少なくとも一部を含むアプリケーション・プログラムを生成する。アプリケーション・プログラムは、フィールド・プログラム可能なアナログ・アレーの構成を更新するために動作する。ステップ「S3」を実行した後で、プロセスは、ステップ「S4」に進む。
【0140】
ステップ「S4」において、システムは、プログラム可能な制御デバイスのところで、アプリケーション・プログラムを受信する。ステップ「S4」を実行した後で、プロセスは、ステップ「S5」に進む。
【0141】
ステップ「S5」において、システムは、プログラム可能な制御デバイスのメモリ内に記憶しているコンピュータ・プログラム・コードおよびアルゴリズムを実行するコンピュータ・プログラムを実行する。アルゴリズムは、フィールド・プログラム可能なアナログ・アレー(FPAA)を、必要なデバイス構成にマッピングするため、および/または機能パラメータ計算を行うために供給される。ステップ「S5」を実行した後で、プロセスは、ステップ「S6」に進む。
【0142】
ステップ「S6」において、アプリケーション・プログラムにより、システムは、フィールド・プログラム可能なアナログ・アレー(FPAA)内の少なくとも1つの構成データ・レジスタに構成データを書き込むための命令により、プログラム可能な制御デバイスをプログラムする。ステップ「S6」を実行した後で、プロセスは、ステップ「S7」に進む。
【0143】
ステップ「S7」において、システムは、プログラム可能な制御デバイスから、フィールド・プログラム可能なアナログ・アレー(FPAA)に構成データをエクスポートする。ステップ「S7」を実行した後で、プロセスは、ステップ「S8」に進む。
【0144】
ステップ「S8」において、システムは、フィールド・プログラム可能なアナログ・アレー(FPAA)の少なくとも1つの構成データ・レジスタに構成データを書き込む。ステップ「S8」を実行した後で、プロセスは、ステップ「S9」に進む。
【0145】
ステップ「S9」において、システムは、少なくとも1つの構成データ・レジスタへの構成データの書込みに応じて、フィールド・プログラム可能なアナログ・アレー(FPAA)内のハードウェアを構成する。ステップ「S9」を実行した後で、プロセスは終了する。
【0146】
法令に従って、構造上の機能および方法上の機能の多かれ少なかれ特有の言語により本発明を説明してきた。しかし、本発明は、図示し、説明してきた特定の機能に制限されないことを理解されたい。何故なら、本明細書に記載した手段は、本発明を実行するための好適な形を含んでいるからである。それ故、本発明は、添付の特許請求の範囲の原則に従って正しく解釈した、添付の特許請求の範囲の正しい範囲内のすべてのその形式および修正に記載する通りのものである。
【0147】
本発明で使用するコンピュータープログラムリスト(付録A)は下記のとおりである。
【図面の簡単な説明】
【図1および図2】半導体デバイスを構成するための、従来技術のシステムのブロック図であり、構成可能なハードウェアの動作の流れおよびコントローラの動作の流れも示す。
【図3および図4】本発明のある実施形態による、構成可能な半導体デバイスをプログラムするための例示としてのシステムの基本的システム構成全体のブロック図である。
【図5】簡単な設計式、空の構成可能なデバイス、および代表的な構成データとともに、デバイスに対する構成プログラムにより構成することができる4つの可能な構成を含む必要な回路設計を示す仮定のプログラム可能なハードウェア・デバイスのための例示としての回路設計を示すブロック図である。
【図6および図7】構成可能なハードウェアの動作の流れおよびコントローラの動作の流れを再度示す、図3および図4のシステムのブロック図である。
【図8および図9】構成可能なデバイスを再構成する際に使用するために、修正構成データを生成することができるプログラムを生成するための、ユーザの「C」コンパイラにより直接導入される構成可能なデバイス・データ・セットの詳細を再度示す、図6および図7のシステムのブロック図である。
【図10】プログラム可能な制御デバイス上で稼動する設計ツールが生成したコンピュータ・プログラム・コードにより構成可能なハードウェア・デバイスを更新するための、ユーザ・プログラムを実行するためのアプリケーション・システムを示すブロック図である。
【図11】ユーザ・アプリケーションおよび設計ツールを通して、図6の構成可能なデバイスのためのアナログ・マルチプレクサ(MUX)による例示としての抵抗ネットワーク回路を示す簡単な略図である。
【図12】図11のアナログ・マルチプレクサ(MUX)内のアナログ回路のブロック図を示す簡単な略図である。
【図13】ユーザ・ディスプレイ内の設計ツール・アプリケーション・ウィンドウのスクリーン・ディスプレイである。
【図14】図13の設計ツール・アプリケーション・ウィンドウ用のスクリーン・ディスプレイであり、設計ツールが発生した例示としてのアナログ回路を示し、図12のアナログ・マルチプレクサ(MUX)の機能を実行する入力ポートを含む。
【図15】図15のスクリーン・ディスプレイ内のポップアップ・ウィンドウを備える「C」コード生成アナログ・ボックスである。
【図16】図3、図4、図6〜図9のシステムにより構成可能なハードウェア・デバイスでアナログ素子の構成/再構成を行うためのプロセス段階を示す処理フローチャートである。
【図17および図18】フィールド・プログラム可能なアナログ・アレー(FPAA)の構成を行うための処理段階を示す処理フローチャートである。
【発明の属する技術分野】
本発明は、構成可能なデバイスに関し、特に、第2の構成可能なデバイスにより第1の構成可能なデバイスをプログラムするための、ソフトウェアが開発される再構成可能なデバイスのようなプログラム可能な、構成可能なデバイスに関する。
【0002】
【発明の背景】
構成可能なデバイスは、使用している間に進歩し、広く使用されるようになった。構成可能なデバイスの一例としては、プログラム可能なデバイスがある。プログラム可能なデバイスは、現在では、あるプログラム可能なデバイスを他のプログラム可能なデバイスにより構成するための、実用的で望ましいものにまで進化している。例えば、プログラム可能なロジック・デバイス(PLD)のような、構成可能なハードウェア・デバイスをプログラムするために、マイクロコントローラを使用することができる。他の方法としては、マイクロプロセッサ・チップ、フィールド・プログラム可能なゲート・アレー(FPGA)チップ、またはデジタル信号プロセッサ(DSP)チップを、フィールド・プログラム可能なアナログ・アレー(FPAA)チップ、FPGAチップまたは、DSPチップをプログラムするために使用することができる。
【0003】
一例を挙げると、構成は、第1のデバイスを、第2のデバイス内の構成データ・レジスタの一部または全部を、構成データを書き込むようにプログラムすることにより行われる。多くの場合、第2のデバイスを構成した後で、第1のデバイスが、第2のデバイスの性能パラメータの一部または全部を調整することができれば便利である。さらに、またはそうしたい場合には、第2のデバイスが内蔵している全回路を変更することが望ましい。両方の場合、(a)構成データの全部または一部を修正し、次に、その構成データを第2のデバイス内のレジスタに適用することにより、または(b)第2のデバイスのレジスタ内に含まれている構成データの全部または一部を直接修正することにより調整または変更を行うことができる。しかし、現在の設計ツールでは、この修正を簡単に行うことはできない。
【0004】
集積回路用の現在のコンピュータ支援設計(CAD)ツールは、構成可能なデバイスをプログラムするために使用されてきたが、目標デバイスをプログラムすることもできるように設計されている。しかし、このようなCADツールは、他のデバイスにより、または他のデバイスからそのデバイスを構成することはできない。より詳細に説明すると、回路設計の流れは、通常、ユーザの設計、デバイスのアーキテクチャ、および潜在的に1つまたはそれ以上の予め定義した素子に関する情報を結合するために、内部アルゴリズムを使用する。そのため、この設計の流れを使用すると、目標デバイスの構成に適している構成データ・セットが得られる。デバイスが読出し専用メモリ(ROM)からロードされる場合のように、構成可能なデバイス全体をロードする場合には、この技術は比較的うまくいく。しかし、この技術を使用すると、構成可能なデバイス(または、チップ)内に1つまたはそれ以上の完全な構成を単にロードするというタスクに、高性能のコントローラを使用することになりもったいない。何故なら、コントローラ・コードがコンパイルされる時に使用することができる元の設計情報の一部だけが、結果として得られる生の構成データになるからである。
【0005】
図1および図2は、このような従来技術のシステムの構成可能なハードウェア、およびコントローラのフローチャートである。より詳細に説明すると、アナログ構成要素を有する構成可能なハードウェア・デバイス10は、中央処理装置(CPU)のような制御デバイス12により構成することができるようになっている。構成可能なハードウェアの流れ14は、コントローラの流れ16と関連しているが、この場合、デバイス記述18、機能ライブラリ20、ユーザ機能記述22、およびCADツール24は、CADツールが構成データ26を生成するように相互に作用する。次に、このような構成データは、構成可能なデバイス10に送られる。一例を挙げて説明すると、そのための1つの方法は、読出し専用メモリ(ROM)内にデータを記憶するステップと、フィールド・プログラム可能なアナログ・アレー(FPAA)が、ROMから直接構成できるようにするステップを含む。さらに、構成データ26は、さらにコントローラの流れ16に送られる。
【0006】
コントローラの流れ16について説明すると、ユーザ・プログラム28、ライブラリ30、CPUデバイス記述32、およびコンパイラ34は、コンパイラ34がCPUプログラム36を生成するように相互に作用する。コンパイラ34は、構成可能なハードウェアの流れ14から、および/またはユーザ・プログラム28を通して間接的に構成データ26を受信する。CPUプログラム36は、制御デバイス12に送られ、次に、制御デバイス12は、ユーザの設計、デバイス・アーキテクチャおよび予め定義した素子に関する情報を結合するために内部アルゴリズムを使用する。次に、制御デバイス12は、構成データ・セットまたはプログラムを、このようなデバイスを構成するのに適している構成可能なデバイス10に送る。
【0007】
デバイス記述18は、デバイス・トポロジー38に関する情報、およびリソース利用度40に関する情報を含む。機能ライブラリ20は、リソース要件42、シミュレーション・モデル44、および、機能タイミング46に関する情報を含む。ユーザ機能記述22は、機能記述に関する情報、および「概略」または、「VHDL)(VHSICハードウェア記述言語)に関する情報を含む。CADツール24は、リソース割当てに関する情報52、位置および経路情報54、ネットリスト変換情報56、および構成生成情報58を含む。
【0008】
ユーザ・プログラム28は、「C」言語、アセンブリ言語、PASCALを含むがこれらに限定されない、多数のプログラミング言語の中の任意の言語で供給することができる。ライブラリ30は、浮動小数点ライブラリ60、周辺ライブラリ62、および、アルゴリズム・ライブラリ64を含む。CPUデバイス記述32は、デバイス・トポロジー66およびリソース利用度68に関する情報を含む。
【0009】
現在のCADツールは、構成データしか含んでいないし、デバイス・アーキテクチャ、およびサブ回路設置に関する詳細な説明は含んでいない。それ故、制御デバイス12のような制御デバイス上の任意の外部プログラムは、構成可能なハードウェアを構成可能なデバイス10上に、盲目的にロードすることぐらいしかできない。CPUプログラム36が、構成可能なデバイス10内の回路またはパラメータを、役に立つように変更することができるようにするためには、構成要素の設置位置、このような構成要素に対する値の設定基準に関する情報が必要になる。しかし、現在知られている技術では、このような情報を供給することはできない。
【0010】
例えば、いくつかのフィールド・プログラム可能なゲート・アレー(FPGA)を含む従来の方法を使用した場合、ユーザが更新できるのは、FPGA内のアレーの選択した一部だけである。この更新は、いくつかのもっと小さなFPGAを1つのパッケージ内に入れるのと機能的に同じことである。しかし、関連する構成ソフトウェアは、ユーザに基本的構成データに関する情報を供給しないし、データ変更の効果も供給しない。さらに、構成ソフトウェアは、ユーザが記述したパラメータの変更を構成データ上にマッピングすることができない。
【0011】
第2の例を挙げて説明すると、マイクロコントローラおよびサンプル・ソース・コード・リストを含む製品用のマイクロコントローラ周辺機器の販売業者は、アプリケーション・ノートを発行している。しかし、これらのソース・コードのリストは、あるポートを入力ポートまたは出力ポートとして定義するような特定のデバイス内の物理的に組み込まれたオプションの構成を解決することしかできないし、または、いくつかの予め定義したボー速度の中の1つを設定するために、さらに、このようなアプリケーション・ノートは、固定ハードウェアおよび固定機能アプリケーションだけにしか適用できない。
【0012】
【発明が解決しようとする課題】
本発明は、構成要素の設定場所およびプログラム可能なデバイス内のこのような構成要素の設定値に対する基準を供給する情報を供給するための方法および装置に関する。上記情報および基準は、プログラム可能で、構成可能なデバイスの構成可能な構成要素、またはハードウェアに対する構成データを局部的に修正できるようにするために、プログラミング・デバイスの設計プロセスの流れ内で容易に使用することができる形で供給される。
【0013】
【課題を解決するための手段】
ある態様によれば、本発明は、構成可能な半導体デバイスをプログラムするためのシステムを提供する。このシステムは、プログラム可能な制御デバイス、プログラム可能な計算デバイス、通信リンク、構成可能なハードウェア・デバイス、第1のコンピュータ・プログラム・コードと第2のコンピュータ・プログラム・コードを含む設計ツールを含む。構成可能なハードウェア・デバイスは、複数のメモリ位置を含み、通信リンクを通してプログラム可能な制御デバイスに接続しているメモリを有する。設計ツールは、プログラム可能な計算デバイスに内蔵されている第1のコンピュータ・プログラム・コードを含む。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コード内で発生し、a)構成可能なハードウェア・デバイスを構成するために、構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、b)(i)構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの中の少なくとも一方のサブセットの位置を決定するために、c)構成可能なハードウェア・デバイス内のメモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために、プログラム可能な制御デバイス内で実行される。設計ツールは、構成データ、アドレス・データ、およびa)、b)およびc)の中の少なくとも1つを実行する際に使用することができるデータ値アルゴリズムの中の少なくとも1つを供給する。
【0014】
他の態様によれば、本発明は、プログラム可能なデバイスを構成するためのシステムを提供する。このシステムは、第1のプログラム可能なデバイス、第2のプログラム可能なデバイス、第1のコンピュータ・プログラム・コードおよび、第2のコンピュータ・プログラム・コードを含む設計ツールを持つプログラム可能な計算デバイスを含む。第2のプログラム可能なデバイスは、構成可能なハードウェアおよび構成可能なハードウェアを構成するための構成データ・レジスタを有する。第2のプログラム可能なデバイスは、第1のプログラム可能なデバイスと通信する。プログラム可能な計算デバイスは、構成データ、アドレス・データ、およびアルゴリズムの中の少なくとも1つを生成するための第1のコンピュータ・プログラム・コードを含む設計ツールを有する。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コードにより生成する。第2のコンピュータ・プログラム・コードは、データ値を決定するための、発生した構成データ、アドレス・データ、およびアルゴリズムの中の少なくとも1つを内蔵する。第2のコンピュータ・プログラム・コードは、a)構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、b)(i)構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの中の少なくとも一方のサブセットの位置を決定するために、c)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために、第1のプログラム可能なデバイスで実行される。
【0015】
さらに他の態様によれば、本発明は、構成可能なハードウェア・デバイス内に位置するアナログ素子を構成または再構成するための方法を提供する。この方法は、プログラム可能な制御デバイスと通信する、構成可能なハードウェア・デバイスを供給するステップと、アナログ素子を含むハードウェア設計を生成するステップと、構成可能なハードウェア・デバイス内の、選択したメモリ位置に構成データを適用することによりアナログ素子を構成するステップと、(i)プログラム可能なメモリ位置、および(ii)修正対象の構成データのうちの少なくとも一方のサブセットの位置を決定するステップと、(i)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するステップのうちの少なくとも1つのステップを実行する際に使用することができるデータおよびアルゴリズムのうちの少なくとも1つを供給するコンピュータ・プログラム・コードを生成するステップと、構成可能なハードウェア・デバイスの構成を更新するために、アプリケーション内にコンピュータ・プログラム・コードを内蔵させるステップと、構成可能なハードウェア・デバイスを再構成するために、このアプリケーションをプログラム可能な制御デバイスに供給するステップとを含む。
【0016】
さらに他の態様によれば、本発明は、フィールド・プログラム可能なアナログ・アレーを構成するための方法を提供する。フィールド・プログラム可能なアナログ・アレーは、プログラム可能な制御デバイスに接続している。この方法は、プログラム可能なアナログ・アレー内の少なくとも1つのアナログ素子に対してハードウェア設計を供給するステップと、構成可能なアナログ・アレー内の選択したプログラム可能なメモリ位置に構成データを適用することによりアナログ素子を構成するために、(i)メモリ位置、および(ii)修正対象の構成データのうちの少なくとも一方のサブセットの位置を決定するために、(i)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために使用することができるデータ・セットおよびプロセスのうちの少なくとも一方を含むコンピュータ・プログラム・コードを生成するステップと、フィールド・プログラム可能なアナログ・アレーの構成を更新するために動作するコンピュータ・プログラム・コードの少なくとも一部を内蔵するアプリケーション・プログラムを生成するステップと、プログラム可能な制御デバイスのところでアプリケーション・プログラムを受信するステップと、アプリケーション・プログラムによりフィールド・プログラム可能なアナログ・アレー内の少なくとも1つの構成データ・レジスタに構成データを書き込むための命令によりプログラム可能な制御デバイスをプログラムするステップと、フィールド・プログラム可能なアナログ・アレーの中の少なくとも1つの構成データ・レジスタに構成データを書き込むステップと、少なくとも1つの構成データ・レジスタへの構成データの書き込みに応じて、フィールド・プログラム可能なアナロ・アレー内でハードウェアを構成するステップとを含む。
【0017】
本発明の1つの利点は、緊密に結合した制御を行うために必要な情報が、構成可能なハードウェア・デバイスを構成するために使用されるプログラム可能な制御デバイス用の制御プログラムを開発する際に使用できるように、設計および構成ソフトウェアに追加の機能を供給することができることである。
【0018】
添付の図面を参照しながら、本発明の好ましい実施形態について説明する。
【0019】
【発明の実施の形態】
(コンピュータ・プログラムのリストを示す付録への相互参照)
本明細書の一部であるCD−ROM付録Aは、13のファイルからなるCD−ROM付録である。CD−ROM付録Aは、ソフトウェア・プログラムを含む、コンピュータ・プログラムのリストが記載されている付録である。付録Aは、引用によって本明細書の記載に援用する。コピーを含むCD−ROMの枚数は全部で2枚であり、それぞれのCD−ROMは、下記の13のファイルを含む。
【0020】
名称 長さ 作成日
916Y3.H 42,479 03−12−02
AN20E30.C 7,159 03−12−02
AN20E30.H 232 03−12−02
APICODE.C 37,721 03−12−02
APICODE.H 31,170 03−12−02
GEDEMO.C 24,051 03−12−02
GENTYPES.H 342 03−12−02
IPMODU〜1.C 5,677 03−12−02
IPMODU〜1.H 5,272 03−12−02
LCDDISP.C 15,755 03−12−02
LCDDISP.H 373 03−12−02
QSPI.C 3,608 03−12−02
QSPI.H 202 03−12−02
(著作権通知)
本明細書の一部は、著作権により保護されている資料を含む。著作権の所有者は、特許商標庁の特許ファイルまたは記録に記載されている場合には、特許文書または特許開示のどちらでもファクシミリによりコピーを許可する。しかし、そうでない場合には、すべての著作権の権利を留保する。
【0021】
「科学および有用な技術を促進するための」米国特許法の本質的な目的を推進するために本明細書を提出する(第1条、第8節)。
【0022】
出願人の発明の好ましい実施形態について説明する。構成可能な半導体デバイスをプログラムするためのシステムおよび方法を示す図面を参照しながら、1つの例示としての実施形態について説明する。好ましい実施形態を参照しながら本発明を説明するが、この説明は本発明を上記実施形態に制限するものではなく、他の実施形態、ほぼ類似の実施形態、および上記実施形態より広義であるが、本出願の範囲に含まれるものを含むことを理解することができるだろう。
【0023】
本発明の説明が曖昧になるのを防止するために、本発明を実行するのに密接な関係がある詳細な点については非常に詳細に説明するが、当業者が現在知っている周辺の詳細な知識についても必要に応じて説明する。
【0024】
本明細書においては、「フィールド・プログラム可能なアナログ・アレー(FPAA)」という用語は、プログラム可能な相互接続、および構成可能なアナログ・ブロックのアレーによりアナログ回路を実行するようにプログラムでき、構成することができる集積回路を意味するものと理解されたい。より詳細に説明すると、FPAAは、アナログ回路構成要素およびスイッチの集合体を含む。スイッチは、特定の回路設計を実現するために構成要素を一緒に接続する。スイッチは、また、個々のアナログ回路構成要素の値をセットするために使用される。FPAA(または、チップ)に2進ビット・ストリームをダウンロードすることによりFPAAスイッチをセットすることができ、それにより特定の回路が定義される。比較的簡単なFPAAでも、特定の回路設計を実現するために、セットしなければならない数千のスイッチを有する。それ故、本明細書に記載する改善は、回路設計およびスイッチ設定の問題を簡単にするために使用される。さらに、特定のアナログ回路設計をシミュレートするための装置も備える。
【0025】
本明細書においては、「C」コードという用語は、プログラム・コードの特定の例を意味する。PASCAL、ビジュアル・ベーシック、フォートランおよび他の周知のプログラム・コードを含む他の特定のプログラム・コードも使用することができることを理解されたい。
【0026】
従来技術の場合には、全カスタム集積回路設計は、比較的時間が掛かるものであり、広範なアナログ設計の専門知識を必要とした。特に、プログラム可能なデバイスおよびFPAAを使用すれば、アレーをプログラムするために、適切なデータが与えられた場合には、回路を迅速に形成し、変更することができる。このような技術を使用すれば、回路設計者がよく知っている方法で設計を表し、FPAAをプログラムするために、対応するデータを自動的に発生するコンピュータ支援設計ツールによりプログラミング・データの生成が非常に簡単になる。このようなコンピュータ支援設計ツールがなければ、このプログラミングの修正または生成は制限されるか、ほとんど不可能である。例えば、FPAAが実行する回路機能の面を変更するために、FPAAに隣接するマイクロプロセッサが必要である場合には、回路設計者は、アレー・アーキテクチャ、FPAAの基礎になる技術を使用する回路設計、およびFPAAにこのような回路を実現させるための、特定のデータ・シーケンスの構造についての深い知識が必要になる。
【0027】
しかし、上記技術は、非常に労力を必要とするもので、複雑で実行するのが難しい。本明細書に記載する改善は、この問題を解決する。
【0028】
図3および図4は、基本的なシステム構成が、構成可能な半導体デバイスをプログラムするために供給され、参照番号61により識別される、本出願人の発明の好ましい実施形態である。システム61は、パソコン(PC)53、もう1台のPC65、プログラム可能な制御デバイス67、および構成可能なハードウェア・デバイス69のようなプログラム可能な計算デバイス63を含む。
【0029】
図3および図4に示すように、システム61は、プログラム可能な制御デバイス67により、構成可能なハードウェア・デバイス69をプログラムすることができるような方法で、ソフトウェアおよびハードウェアと一緒に実行される。より詳細に説明すると、ソフトウェアは、密接な制御のために必要な情報が、中央処理装置(CPU)プログラム75を通してコントローラ・プログラムを開発する際に使用できるように、構成可能なハードウェア・デバイス69をプログラムするための、エクスポートされたデバイス情報73の形で供給される。次に、プログラム可能な制御デバイス67は、(a)構成データの全部または一部を修正し、次に、その構成データを構成可能なハードウェア・デバイス69内のレジスタに適用することにより、または、(b)構成可能なハードウェア・デバイス69のレジスタ内に含まれる構成データの全部または一部を直接修正することにより、構成可能なハードウェア・デバイス69が、修正した構成データ77を使用できるようにする。構成データ77を使用して、構成可能なハードウェア・デバイス69は、ソフトウェアによりプログラムされる。システムのソフトウェア機能は、従来技術システムの普通構成データの他に、構成可能なハードウェア・デバイス69の機能の全部または一部を修正するために、第2の構成可能なデバイスが使用することができるコードを発生する。
【0030】
プログラム可能な計算デバイス63は、マイクロコントローラ・ユニット(MCU)55、メモリ81、設計ツール83、および構成可能なアナログ・モジュール(CAM)ライブラリ85を含む。MCU55は、処理回路76を備える中央処理装置(CPU)79を含む。
【0031】
設計ツール83は、Anadigm Designer2を備える。Anadigm Designerの初期のバージョンは、現在公開でダウンロードすることができ、英国、Anadigm社から、http://www.anadigm.comで現在公開でダウンロードして使用することができる。この設計ツールは、引用によって本明細書の記載に援用する。今後の公開バージョンは、Anadigm Designerの初期のバージョンに追加される本発明のいくつかの機能を含む。
【0032】
図3および図4に示すように、設計ツール83は、構成コンピュータ支援設計(CAD)ツール78を含む。構成(CAD)ツール78は、構成データ82、アドレス・データ84、および1つまたはそれ以上のデータ値アルゴリズム86を含むコンピュータ・プログラム・コード80を含む。
【0033】
PC65は、中央処理装置(CPU)94、メモリ96、ユーザ・インタフェース87、ユーザ・プログラム98、コンパイラ100、ライブラリ102、およびCPUデバイス記述104を含む。CPU94は、処理回路106を含む。
【0034】
プログラム可能な制御デバイス67は、ユーザ・アプリケーション・プログラム108、メモリ101、およびユーザ・インタフェース89を含む。ある実施形態の場合には、プログラム可能な制御デバイス67は、中央処理装置(CPU)57を含む。アプリケーション・プログラム108は、アプリケーション・システム内でソフトウェアの監視および制御機能を行うためのコンピュータ・プログラム・コード110を含む。
【0035】
図3および図4に示すように、構成可能なハードウェア・デバイス69は、上記のある実施形態のように、フィールド・プログラム可能なアナログ・アレー(FPAA)59を備える。FPAA59は、メモリ112、および半導体デバイス上に位置するマイクロミニアチュア化した電子回路にようなハードウェア116を含む。メモリ112は、ハードウェア116を電気的に構成するための構成データを受信し、記憶するためのメモリ位置114を含む。ハードウェア116は、その機能が、メモリ112内に記憶されている構成データにより決まる電気的状態により変えることができるように、少なくとも一部を構成できるようになっている。ハードウェア116は、アナログ信号を処理するためのアナログ回路素子118を含む。
【0036】
動作中、構成データの初期セット71は、設計ツール83により生成される。構成データ71は、エクスポートされたデバイス情報73によりコンパイラ100に供給される。さらに、またはそうしたい場合には、構成データ71は、ユーザ・プログラム98を通してコンパイラ100に供給される。引用によって本明細書の記載に援用する、「プログラム可能な半導体デバイスを構成するための方法」という米国特許第6,272,669 B1号が、構成可能な半導体デバイスの構成方法をさらに詳細に開示している。
【0037】
あるシステム構成の場合には、構成可能なハードウェア・デバイス69は、メモリ112内に複数のメモリ位置114を含む。構成可能なハードウェア・デバイス69は、直列周辺インタフェース(SPI)バス93のような通信リンク91を通してプログラム可能な制御デバイス67に接続している。ある場合には、コンピュータ・プログラム・コード80は、第1のコンピュータ・プログラム・コードを備え、コンピュータ・プログラム・コード110は、第2のコンピュータ・プログラム・コードを含む。第1のコンピュータ・プログラム・コードは、プログラム可能な計算デバイス63で実行される。第2のコンピュータ・プログラム・コードの少なくとも一部は、第1のコンピュータ・プログラム・コードにより生成される。ある場合には、第2のコンピュータ・プログラム・コード全体が、第1のコンピュータ・プログラム・コードにより生成される。しかし、このような場合は非常に希である。他の場合には、第2のコンピュータ・プログラム・コードの一部は、第1のコンピュータ・プログラム・コードにより生成され、他の一部はユーザ・インタフェース87を通してユーザ入力により生成される。例えば、(図3および図4の)任意のユーザ・インタフェース89を生成するために追加のコードを供給することもできる。
【0038】
動作中、第2のコンピュータ・プログラム・コードは、構成可能なハードウェア・デバイス69内の選択したメモリ位置に構成データ77を適用することにより構成可能なハードウェア・デバイス69を構成するために、プログラム可能な制御デバイス67内で実行される。第2のコンピュータ・プログラム・コードも、構成に関連する新しい情報を含むように修正されるメモリ位置114のようなプログラム可能なメモリ位置のサブセットの位置を決定するために、プログラム可能な制御デバイス67で実行される。さらに、第2のコンピュータ・プログラム・コードは、メモリ位置114のサブセットに適用される新しいデータ値を決定するために、プログラム可能な制御デバイス67で実行される。
【0039】
手動プログラミングを必要とする代わりに、設計ツール83は、構成、位置の決定、および新しいデータ値の決定の中の少なくとも1つを実行する際に使用することができる構成データ、アドレス・データ、およびデータ値アルゴリズムの中の少なくとも1つを供給する。ある場合には、設計ツール83は、構成データ、アドレス・データ、およびデータ値アルゴリズムの中の少なくとも1つを自動的に供給する。
【0040】
図6〜図10を参照しながら以下に説明するように、プログラム可能な制御デバイス67は、構成可能なハードウェア・デバイス69の構成可能なハードウェア116内に予めコンパイルした構成を単にロードすることに限定されない制御デバイスを供給する。代わりに、プログラム可能な制御デバイス67には、動的動作中に、修正した構成データを生成するために必要な情報が供給され、それにより、プログラマによる手動コーディングが必要なくなる。例えば、利得機能の特定の例の上の利得パラメータを変更するために、ユーザにその利得機能に対する利得を設定するために、単にソフトウェア・ルーチンを呼出すための機能が供給される。一方、従来は、ユーザは、(i)新しい利得を得るために必要な新しい構成要素値を決定しなければならなかったし、(ii)低いレベルの分析により、デバイス自身内で、または上記構成要素値を設定するための構成データ内で、プログラミング・データの位置を推理しなければならなかったし、(iii)ソフトウェア内である機構を組立て、それにより、データ値の置き換えを実行しなければならなかった。さらに、この結果により、デバイス69の所与の基本的構成に対する性能パラメータを、修正することができるばかりでなく、デバイス69に対する全く新しい機能に対する構成データを生成することもできる。他の方法としては、同じ機能を行うためにデバイス・リソースに再割当てを、異なる方法またはレイアウトで行うこともできるようになる。上記のすべてのことは、リアルタイムで、もとの構成CADツール78とは独立して行うことができる。
【0041】
ある場合には、プログラム可能な計算デバイス63、PC65、およびプログラム可能な制御デバイス67は、設計ツール83を備える1台の共通のパソコンにより供給される。他の方法としては、プログラム可能な計算デバイス63およびPC65は、独立コンピュータ支援設計コンピュータにより供給され、またプログラム可能な制御デバイス67は、アプリケーション・ボード上に常駐するマイクロコントローラにより供給される。さらに他の方法としては、プログラム可能な計算デバイス63、PC65、およびプログラム可能な制御デバイス67は、すべて個々のデバイスとして供給される。さらに、プログラム可能な制御デバイス67は、実行目的により、構成可能なハードウェア・デバイス69に密接に接続している。
【0042】
種々の実施形態の場合、プログラム可能な制御デバイス67は、マイクロプロセッサ、マイクロコントローラ、フィールド・プログラム可能なゲート・アレー(FPGA)、またはデジタル信号プロセッサ(DSP)およびその他の多くの素子を備える。また、種々の実施形態の場合、構成可能なハードウェア・デバイス69は、プログラム可能な論理デバイス(PLD)、フィールド・プログラム可能なアナログ・アレー(FPAA)、フィールド・プログラム可能なゲート・アレー(FPGA)、または、デジタル信号プロセッサ(DSP)およびその他の多くの素子を備える。
【0043】
図5は、簡単な設計式、空の構成可能なデバイス、および代表的な構成データとともに、デバイスに対する構成プログラムにより構成することができる4つの可能な構成を含む必要な回路設計を示す仮定の構成可能なハードウェア・デバイスのための例示としての回路設計を示す。より詳細に説明すると、図3のブロック(a)内の回路レイアウト122は、仮定の構成可能なハードウェア・デバイスを示す。回路レイアウト122は、第1の回路素子「X」123、第2の回路素子「Y」124、および利得素子125を含む。さらに、簡単な設計式、「(Y/X)=5に設定せよ」が供給される。ブロック(b)は、空の構成可能なデバイスを示す。ブロック(c)〜(f)は、ブロック(a)に示す、仮定の構成可能なハードウェア・デバイスのための構成プログラムにより構成することができるいくつかの可能な構成を示す。残りの4つのブロック(c)〜(f)も、代表的な構成データを示す。入手できる唯一の情報が構成データである場合であって、デバイス・アーキテクチャおよびサブ回路の設置のより詳細なデータが入手できない場合には、任意の外部プログラムは、盲目的に構成ハードウェアをロードするくらいしかできない。回路またはそのパラメータに有用な変更を行うことができる任意のプログラムは、構成要素の設置位置および上記構成要素の値の設定基準についての他の情報も必要とする。それ故、構成可能なハードウェアのための構成データの一部の変更を可能にするために、プログラミング・デバイスの設計の流れ中に容易に使用することができる形のこのようなタイプの情報を供給する方法の開発が待望されている。
【0044】
図6および図7は、緊密な制御のために必要な情報が、コントローラ・プログラムの開発の際の使用のために供給されるように、設計および構成ソフトウェアに追加される機能を示す。より詳細に説明すると、構成可能なデバイスをプログラムするためのソフトウェアがすでに開発されている。上記ソフトウェアは、構成データの他に、第1のデバイスの機能の全部または一部を修正するために、第2の構成可能なデバイスが使用することができるコードを生成する。
【0045】
図6および図7は、CPUプログラム開発の流れ216に関連して、構成可能なハードウェアの開発の流れ214を示す。CADツール78は、デバイス記述218、機能ライブラリ85、およびユーザ機能記述222の形で、入力を受信する。CADツール78は、2進ビット・ストリームを含む構成データ71を出力する。ユーザ・プログラム98またはエクスポートされたデバイス情報73のパケットには、構成データ71が供給される。
【0046】
デバイス記述218は、デバイス・トポロジーに関する情報38、リソース利用度に関する情報40、およびデバイス制御アルゴリズム126を含む。
【0047】
機能ライブラリ85は、リソース要件に関する情報42、シミュレーション・モデル44、機能タイミングに関する情報46、およびパラメータ計算アルゴリズム128を含む。
【0048】
ユーザ機能記述222は、機能記述48、および、「簡単な」または「VHDL」ハードウェア表現50を含む。
【0049】
CADツール78は、リソース割当てに関する情報52、位置および経路情報54、ネットリスト変換情報56、構成発生情報58、および設計/デバイス情報エクスポートの詳細130を含む。構成可能なハードウェア開発の流れ214を実行すると、CPUプログラム開発の流れ216内のユーザ・プログラム98に送られる、エクスポートされたデバイス情報73が発生する。
【0050】
CPUプログラム開発の流れ216は、ユーザ・プログラム98、コンパイラ100、ライブラリ102、CPUデバイス記述104、CPUプログラム75、およびCPU57を含む。
【0051】
ユーザ・プログラム98は、「C」言語、アセンブリ言語、PASCALを含む、種々のプログラミング言語、または任意の他の類似のプログラミング言語で供給することができる。ライブラリ102は、浮動小数点ライブラリ60、周辺ライブラリ62、およびアルゴリズム・ライブラリ64を含む。CPUデバイス記述104は、デバイス・トポロジーに関する情報66、およびリソース利用度に関する情報68を含む。
【0052】
動作中、ユーザ・プログラム98は、エクスポートされたデバイス情報73を含み、コンパイラ100は、(「C」言語のような)比較的高いレベルのプログラミング言語から機械語に、結果として得られるプログラムをコンパイル、または変換するために、ユーザ・プログラム98、ライブラリ102、およびCPUデバイス記述104を受信する。コンパイラ100は、最初、アセンブリ言語を生成し、次に、アセンブリ言語を機械語に変換する。それ故、コンパイラ100は、ビット・ストリーム出力を含むCPUプログラム75を生成する。
【0053】
CPUプログラム75は、プログラム可能な制御デバイス67に送られる。ある形の場合には、プログラム可能な制御デバイス67は、CPU57の形で供給される。この場合、プログラム可能な制御デバイス67は、構成データ77を発生するために、CPUプログラム75を処理する。次に、上記構成データ77は、構成可能なハードウェア・デバイス69内のアナログ素子を構成または再構成するために、構成可能なハードウェア・デバイス69に送られる。すでに図2で示したように、プログラム可能な制御デバイス67は、SPIバス93のような通信リンク91を通して、構成可能なハードウェア・デバイス69と通信する。
【0054】
エクスポートされたデバイス情報73は、デバイス特定マッピング情報およびアルゴリズム132、および設計特定マッピング情報およびアルゴリズム144を含む。デバイス特定マッピング情報およびアルゴリズム132は、デバイス特定アルゴリズム134、設計−デバイス・マッピング情報136、ハードウェア構成データ138、設計−デバイス・メモリ・マップ情報140、および設計修正アルゴリズム142を含む。設計特定マッピング情報およびアルゴリズム144は、機能パラメータ計算アルゴリズム146、および機能パラメータの設置と設置された構成要素148との間の関係マッピング情報を含む。これについては、図8および図9を参照しながら、以下にさらに詳細に説明する。
【0055】
機能ライブラリ85は、リソース要件に関する情報42、シミュレーション・モデル情報44、機能タイミング情報46、およびパラメータ計算アルゴリズム128を含む。
【0056】
CADツール78は、ユーザ機能記述222、およびデバイス記述218を含む。ユーザ機能記述222は、簡単な捕捉情報150を含む。デバイス記述218は、デバイス・トポロジーに関する情報38、リソース利用度情報40、およびデバイス制御アルゴリズム126を含む。
【0057】
図5に示すように、機能ライブラリ85は、CADツール78に、CAMライブラリ内の構成可能なアナログ・モジュール(CAM)の形で入力を供給する。すべては、構成可能なハードウェア開発の流れ214内にある。CADツール78は、最初、構成可能なハードウェア・デバイス69、またはCPUプログラム開発の流れ216中に、直接コンパイラ100に供給される構成可能なデバイス・データ・セット97を生成する。構成可能なデバイス・データ・セット97は、(図6および図7の)エクスポートされたデバイス情報73のサブセットを供給する。構成可能なデバイス・データ・セット97は、デバイス・ライブラリ152、設計ライブラリ154、および構成データ77を含む。
【0058】
デバイス・ライブラリ152は、デバイス・タイプに関する情報156、チェックサム計算情報158、データ・フォーマット情報160、デバイス構成ルーチン情報162、およびデバイス特定アルゴリズム164を含む。
【0059】
設計ライブラリ154は、初期構成データ71、サブ回路および構成要素設置データ168、およびデータ・フォーマット情報170を含む。
【0060】
ユーザ・プログラム98、コンパイラ100、ライブラリ102、CPUデバイス記述104、およびCPUプログラム75の詳細は、図6および図7のところで説明したものとほぼ同じである。
【0061】
図8および図9のソフトウェア強化は、機能ライブラリ85内のCAM内、およびプログラム・コード・ルーチン、およびCADツール78内に位置するCADソフトウェア内に位置するアルゴリズムにより行われる。より詳細に説明すると、CAM内のアルゴリズムは、ユーザ特定パラメータを構成要素値およびトポロジーに変換するのに必要な、アルゴリズムを記述するための動作する。ある実施形態の場合には、このようなアルゴリズムは、「C」言語ルーチンとして実行される。しかし、このようなアルゴリズムは、高級言語でも同様に表示することができ、目的コードとしてコンパイルすることさえできる。これらのコード・ルーチンは、特に、回路設計の設計段階中に、ユーザが生成した回路を修正するために生成される。
【0062】
一組のコード・ルーチンが、構成データ・アセンブリ、チェックサム再生成、デバイス内での機能の再配置、およびよく使用される計算ルーチンのような基本的機能を実行する。
【0063】
CADツール78内のCADソフトウェアは、構成データにより実行される回路のための一組のコードを生成するために、位置および経路ルーチン情報を上記の一組のコード・ルーチンと結合する。発生した一組のコードは、プログラム可能な制御デバイス67を通して構成可能なハードウェア・デバイス69を再構成する際に使用するための、修正構成データを生成することができるCPUプログラム75を生成するために、(コンパイラ100のような)ユーザの「C」コンパイラにより直接送ることができる。
【0064】
上記技術は、(図8および図9の)CADツール78のようなCADツール内の一組のサブ・アセンブリ回路(または、サブ回路)をアセンブルすることにより、1つの回路を設計するための方法を供給する。設計すると、FPAAのようなプログラム可能なデバイス内で回路を実行することができる。(図8および図9の)CADツール83は、回路設計を、デバイスをプログラムするために必要な正しくフォーマットされたデータに変換するための機構である。CADツールにアセンブルすることができるサブアセンブリ回路は、CADツールと互換性を持つが、CADツールの一体部分ではない。サブアセンブリ回路は、個々にまたはグループで持ち運ぶことができる回路と定義することができる。それ故、サブアセンブリ回路の定義は、CADツールとの互換性を維持しながら、その機能を変更するために容易に生成または修正することができるものということになる。
【0065】
サブアセンブリ回路の定義は、いくつかのことを実行するために必要なサブアセンブリ回路に関する情報を含む。サブアセンブリ回路の定義は、サブアセンブリ回路の複数の構成、トポロジー、およびパラメータを定義するために必要な情報を含む。
【0066】
さらに、アルゴリズムの形をしている情報は、CADツール内に記憶しているデータ、およびCADツールにより実行したユーザ・インタフェースからのデータと結合した場合、必要な情報をCADツールに戻すような方法で実行することができる。例えば、ユーザの選択に応じて行うサブアセンブリ回路の構成の修正に関する情報は、この方法で処理することができる。
【0067】
それ故、図8および図9のCADツール83は、サブアセンブリ回路定義内に含まれているデータを読み出すことができ、ユーザが、サブアセンブリ回路をもっと大きな回路にアセンブルすることができるユーザ・インタフェースを供給することができ、ユーザが、そのサブアセンブリ回路の構成および/または行動を変更することができるように、各サブアセンブリ回路用のユーザ・インタフェースを供給することができ、サブアセンブリ回路定義に含まれているインタープリタ・コードを実行することができ、特定のプログラム可能なデバイス向けの機能を含むユーザ・インタフェースを供給することができ、サブアセンブリ回路定義内に含まれている回路設計および情報を使用して、シミュレーションを設定および実行することができ、シミュレーションの結果を見ることができ、プログラム可能なデバイスにデータをダウンロードするために、回路設計を適当にフォーマットしたデータに変換することができ、プログラム可能なデバイスへの適当にフォーマットしたデータのダウンロードを簡単に行うことができる。
【0068】
上記技術を使用することにより、サブアセンブリ回路のトポロジー、サブアセンブリ回路のトポロジーと、ユーザ・インタフェースが表示するより高度なパラメータへの構成要素の値との関係、およびシミュレーションが示すサブアセンブリ回路の性能を含む有意の設計の専門知識をサブアセンブリ回路定義内に収容することができる。サブアセンブリ回路の定義は、CADツールと協力して、プログラム可能なデバイスのアーキテクチャの特定の詳細を含むものということになる。それ故、この技術を使用する人は、回路設計の専門家である必要もなく、またはプログラム可能なデバイスの専門家である必要もなく、サブアセンブリ回路、およびCADツールのユーザ・インタフェースが表す、より高度な要約内で作業することができる。それにより、回路設計およびこれら回路のFPAAチップをプログラムするための適当なフォーマットへの変換を迅速にまた容易に行うことができる。
【0069】
図8および図9に示すように、機能ライブラリ85内のCAM内のアルゴリズムは、ユーザが指定したパラメータを、構成要素値およびトポロジーに変換するために必要なアルゴリズムを記述するために動作する。本質的には、各CAM内には、アルゴリズムのコアを供給するプログラミング・コードの小さなセグメントが存在する。アプリケーション・プログラミング・インタフェース(API)ソース・コードを生成する場合に、特定のCAMに関連するプログラミング・コードのすべての小さなセグメントは結果として得られる設計内に一体に集められる。本質的には、ソース・コードの小さなセグメントは、Anadigm Designer2が、回路設計の各CAM内に存在するこれらからの、すべてのソース・コード・セグメントの集合体を含むAPIソース・コード・ファイルのグルーブを生成するようにアセンブルされる。それは、また、以下に説明するように、他の有用なシステム・レベルの機能定義、およびメモリ・マップを含む。このようなプログラミング・コード・セグメントは、一緒に集められ、(図8および図9の)CPUプログラム75が表す、結果として得られるアプリケーション・プログラムに容易にコンパイルされる形にされる一組のAPIソース・コード・ファイルに集められる。
【0070】
各プログラミング・コード・セグメンは、回路設計の際に使用される各CAMに、上記CAMに関連する全回路構造に、およびその回路を実行するFPAAのアーキテクチャに絶対的に特有なものである。ユーザが、3つの一意のサブアセンブリ回路構成要素(または、CAM)を含む回路を組立てた場合には、上記の3つの各機能デバイスは、抽出されるそれ自身の機能特定プログラミング・コード・セグメントを持つ。次に、このような3つの機能すべては、CAMプログラミング・コード・ファイル内の機能定義となる。
【0071】
より詳細に説明すると、Anadigm Designer2は、ユーザが、(図14に示す)略図の中に描く特定の回路設計を採用し、Anadigm Designer2は、フィールド・プログラム可能なアナログ・アレー用のシリコン・レイアウト内で使用することができるリソースからユーザが供給する機能を含む。Anadigm Designer2は、実際に、本物のリソースを使用するトポロジーを選択し、結果として得られる回路構造を実行するために、どの物理的構成要素を使用するのかを決定する。Anadigm Designer2が、どの物理的構成要素を使用しようとしているのかを決定した場合には、Anadigm Designer2は、これら物理的構成要素が、FPAA(または、チップ)内に物理的に常駐している場所を知る。それ故、更新する必要があるメモリ位置のアドレスは分かっている。
【0072】
ユーザが回路を形成すると、Anadigm Designer2は、それを実行するためにFPAA内で既知の低いレベルのリソースを割り当てるので、これらリソースをプログラムするメモリ位置のアドレスを記述することができる。設計が終了すると、Anadigm Designer2は、その設計に一意の構成データ、およびその設計に一意のコンパイルすることができる「C」コード・ファイルの集合体の両方を生成する。上記設計は、FPAA内のメモリ位置への値の再割当て方法に関するアルゴリズム情報、およびこれらの対応するメモリ位置が存在する場所に関するアドレス情報を含む機能定義の階層を含む。「C」コードは、簡単なハイレベルの機能呼出しにより、アルゴリズム、およびアドレス情報を呼び出すための非常に便利な手段を供給する。ユーザが、自分自身のコード内に、このようなハイレベルの機能呼出しを内蔵させると、(実行中)ソフトウェアは、回路設計に必要な変更を行うために、プログラミング命令を自動的に形成し、FPAAに対して発行する。
【0073】
それ故、「C」コードは、アルゴリズムを結合し、新しい値を計算し、更新しなければならない、またアプリケーションにより絶対に一意なメモリ・アドレスの点で規範的な他の機能呼出しを含む。
【0074】
例えば、Anadigm Designer2は、特定のサブアセンブリ回路に対して、例えば、低域フィルタ・ブロック内に位置する容量を割り当てる。上記容量は、デバイス内のどこかでなくなり、そのプログラミングは特定のアドレスを持つ。しかし、Anadigm Designer2は、回路が形成されるまで、そのアドレスを知らない。アドレスが分かると、そのアドレス位置が物理的に報告され、1つの数字として「C」コードに内蔵される。「C」コードがコンパイルされて、その特定の設計のために使用されると、その一意のアドレスが分かり、ユーザは、「利得の変更」という機能を呼び出すだけでよく、コンパイルされた「C」コードを実行しているマイクロプロセッサが、(新しいデータおよびデータ自身の目標アドレスを含む)動的更新データ・セグメントを組立て、そのデータを、FPAAに送りそれによりその行動を修正する。
1.設計例
図10〜図15は、付録Aと一緒に、フィールド・プログラム可能なアナログ・アレー(FPAA)の部分的更新のための設計例を示す。付録A内の「IPモジュール」という用語は、構成可能なアナログ・モジュール(CAM)を意味する。CAMは、(FPAAのような)構成可能なデバイス内で実行される、利得反転機能のような、回路機能のソフトウェアの実施形態である。
【0075】
始めに、図10〜図15は、下記の仕様および付録Aと一緒に、埋設アプリケーション内のフィールド・プログラム可能なアナログ・アレーの部分的更新を行うためのプロセスを示す。この設計例の目的は、Anadigm AN220E04 FPAAを構成する際に、Anadigm Designer2から生成した「C」コードにより、比較的簡単にCAMを更新することができることを示すことである。
【0076】
この設計例により、最初に、Anadigm Designer2によるある設計を生成するプロセスを説明する。次に、「C」コードを発生するために、Anadigm Designer2を使用するプロセスを説明する。最後に、発生した「C」コードを例示としてのアプリケーションに内蔵させるプロセスを説明する。
【0077】
この設計例のために、図10に示すAnadigm AN20PDS30開発システム90の形の、ユーザ・アプリケーションを実行するためのアプリケーション環境が供給される。開発システム90は、ユーザ・アプリケーション・プログラム108を実行するためのデジタル・ボード92、およびアナログ回路(または、アナログ回路素子)118を実行するためのアナログ・ボード95を含む。
【0078】
図10に示すように、プログラム可能な計算デバイス63およびPC65は、両方とも、プログラム可能な制御デバイス67と通信する共通のデバイス63/65内に位置する。プログラム可能な制御デバイス67は、通信リンクを通して構成可能なハードウェア・デバイス69と直接通信する。デバイス63/65は、CAD設計ツールのような設計ツール83を含む。設計ツール83は、図4および5のところですでに説明した構成可能なハードウェア開発の流れ14、およびCPUプログラム開発の流れ16を含む。
【0079】
デジタル・ボード92は、ユーザ・アプリケーション・プログラム108、デバイス63/65と通信するためのRS−232ポート176、デジタル・ボード92に電力を供給するための電力コネクタ184、マイクロコントローラ・ユニット(MCU)55、LCDディスプレイ172、アプリケーション・スイッチ178、構成スイッチ180、およびリセット・スイッチ182を含む。MCU55は、処理回路を含む中央処理装置(CPU)57を含む。
【0080】
アナログ・ボード95は、アナログ回路素子118、ドーターボード・コネクタ186、AN220E04 FPAA59、ブレッドボード領域188、直列EEPROMソケット190、デイジー・チェーン・コネクタ192、一連のシングルエンド入力194、および一連のシングルエンド出力196を含む。
【0081】
ユーザ・アプリケーション・プログラム118が、MCU55上で稼動している場合には、ソフトウェアは、FPAA59に構成情報を送り、それにより必要な更新を行うことができる。
【0082】
図11は、FPAA59内に位置するアナログ・マルチプレクサ(MUX)の使用法および利得反転CAMの使用法を説明するための抵抗ネットワークである。この機能を説明するために、抵抗ネットワーク回路198をセットアップし、次に、いくつかの抵抗の両端の電圧降下を測定する。図11は、FPAA59と一緒に、このようなネットワークの基本的な略図を示す。
【0083】
図11に示すように、抵抗ネットワーク198は、FPAA59に対して配列されている抵抗200−205を含む。
【0084】
より詳細に説明すると、AN220E04 FPAA59の入力セル4は、複数の入力を備える。これらの複数の入力は、Anadigm Designer2により、または「C」コード機能により選択することができる。より詳細に説明すると、(図10の)設計ツール83で示す、Anadigm Designer2から一次構成が実行される。他の構成は、(図10の)ユーザ・アプリケーション・プログラム108により、動的更新により実行することができる。複数の入力を選択することができるので、ユーザ・アプリケーション・プログラムは、任意の特定の時間に、どの抵抗を測定すべきかを決定することができる。ブレッドボード(図10のブレッドボード領域188)を使用することにより、検査中の設計への結果としての影響をチェックするために、任意の時間に抵抗を変更することができる。
【0085】
図12は、利得反転段206として図示してある利得反転CAMの詳細図である。図11のフィールド・プログラム可能なアナログ・アレー内には、各入力の両端でユーザが測定する電圧を増幅するために、利得反転段206が設置されている。図12のブロック図は、Anadigm Designer2内の利得反転CAMが供給するような上記利得反転段のレイアウトを示す。
【0086】
図13〜図15は、Anadigm Designer2内で、図12の利得反転段206を実行する特定のアナログ回路のセットアップを示す。Anadigm Designer2のアプリケーションをスタートすることにより、ユーザに対して、設計ツール・アプリケーション・ウィンドウ208内の、図13に示すスクリーン・ディスプレイ210が表示される。AN220E04 FPAAチップ設計220は、特定のチップ設計の形成ができるように、作業空間212内に位置する。
【0087】
スクリーン・ディスプレイ210は、ヘッダ224、ユーザが選択できるように、複数のメニュー項目228が表示されているメニュー・バー226、複数の選択可能なツール・バー・ボタン232が表示されているツール・バー230を含む。
【0088】
図13に示す特定のメニュー項目228および229を除いて、メニュー・バー226の残りのメニュー項目は、Anadigm Designer2の初期のバージョンであるAnadigm Designerで現在使用することができる。さらに、本発明がわかりにくくなると困るので、このような他のメニュー項目の機能については、本明細書では詳細に説明しない。代わりに、「C」コード・メニュー項目228および「目標」メニュー項目229の追加の機能、および詳細について以下に詳細に説明する。チップ設計220は、特定のチップ設計がAnadigm Designer2により生成される初期テンプレートを供給する。より詳細に説明すると、チップ設計220は、複数の入力セル234、236、238および240、および複数の出力セル242および244を含む。
【0089】
図14の回路のところに行き着くために、図13の斜視図から下記のステップが行われる。最初に、ユーザは、入力セル238をダブルクリックし、チョッパ・アンプおよび偽信号防止フィルタをオフにする。この動作により、入力セル238はバイパス・モードになり、そのため、ユーザは、結果として得られる入力を(図12の)利得反転段206に対応する、必要なCAMに直接接続することができる。
【0090】
その後で、ユーザは、出力セル242をダブルクリックし、このセルをバイパス・モードにする。さらに、ユーザは、出力セル242をダブルクリックし、バイパス・モードにする。次に、ユーザは、チップ220上に、(図12の)利得反転段206に対応する利得反転段CAMを置く。次に、ユーザは、モジュールの利得を10に設定する。次に、ユーザは、ツール・バー230内の適当なツール・バー・ボタン232により、入力セル238の出力を利得反転CAM246の入力に送る。(図14参照)。その後で、ユーザは、利得反転CAM246の出力を、図14に示すように出力セル242および、244に送る。図14に示すように、これらステップの最終結果は、チップ220により実行された有線利得反転CAMとなる。
【0091】
一般に使用することができ、市販のAnadigm Designerで現在使用することができる機能に対して、Anadigm Designer2に行われた改善としては、図14の利得反転CAM246のようなCAM構造から「C」コードを生成する機能等がある。アナログ回路の特定のレイアウトが設計されると、ユーザは、必要なアプリケーションに対して「C」コードを生成することができる。「C」コード機能を持つすべてのCAMおよびI/Oセルは、デフォールトで、対応する「C」コードを発生するように構成される。このような結果は、本明細書に記載する目的に適していて、本発明により実行される。図10の「C」コード・メニュー項目228を選択することにより、種々の位置へ構成(図示せず)を書き込むための複数のオプションに対して、プルダウン・メニューが表示される。例えば、「C」コード・メニュー項目228を選択すると、「C」コードを「生成する」ための選択項目を含むプルダウン・メニューが表示される。さらに、プルダウン・メニューは、「生成オプション」をチェックするための選択項目を含む。さらに、構成プルダウン・メニューは、「CAM機能」をチェックするための選択項目も含む。
【0092】
「生成オプション」選択項目(図示せず)は、一般的な情報、再構成情報、一次構成情報、およびクロック情報を含む、生成オプションの調整を含む。例えば、名前をつける場合に起こる恐れがある現存のコードとの重複を避けるために、各タイプ、定数、変数オプション1機能名に、1つの文字列を前に付加することができる。例えば、発生する恐れがある名前の重畳を避けるために、すべての生成した「C」コードの前に、接頭語「an_」を付加することができる。さらに、ANSI C規格に適合するように、名前を内部名称の最初の31文字に制限するように、限定された文字数に名前の頭切りを調整する機能もある。
【0093】
「生成」選択項目を選択する場合には、図15に示すように、ポップアップ「C」コード生成対話ウィンドウ252が表示される。図15の対話ウィンドウ252は、「C」コード・メニュー項目228の対応するプルダウン・メニューから、「生成」選択項目を選択すると表示される。そうしたい場合には、「C」コード・メニュー項目228を、図15の対話ボックス252に直接入れることもできるが、このような実行は、1つの方法で構成データを書き込む場合にしか使用できない。
【0094】
図13および図14に示すように、「目標」メニュー項目229は、ボード情報を表示したり、および/または選択したフラッシュ・メモリ位置に、アプリケーションをダウンロードするためのものである。「目標」メニュー項目229を選択すると、「ボード情報を表示」するために、選択項目を表示するプルダウン・メニューが表示される。さらに、「フラッシュ1にアプリケーションをダウンロードする」ために、選択項目が表示される。さらに、「フラッシュ2にアプリケーションをダウンロードする」ために、選択項目が表示される。それ故、ユーザは、対応する結果を生成するために、プルダウン・メニューから項目の中の1つを選択することができる。
【0095】
結果として得られる「C」コードが、デフォールトで、ユーザがすでに回路ファイルをセーブしているディレクトリ中にセーブされる。ユーザがそうしたい場合には、ユーザは、結果として得られるプルダウン・メニュー内の他の項目を選択するというように、結果として得られる「C」コードをセーブするために、他の位置を選択することができる。さらに、ユーザは、ファイル名を変更することもできるが、この例示としての説明のためには、デフォールト値を使用する。対話ウィンドウ252を生成した場合には、ユーザは、発生ボタン278をクリックする。次に、結果として得られる「C」コードが、特定のディレクトリに書き込まれると、ユーザに通知が行われる。本明細書の付録Aは、このような動作の結果として得られるコードを示すが、これは単に例示としてのものに過ぎない。
【0096】
図15に示すように、ポップアップ対話ウィンドウ252は、ヘッダ254、生成ボタン278、API「C」コード・ファイル・フィールド256、CAM「C」コード・ファイル・フィールド258、および宛先ディレクトリ・フィールド260を含む。API「C」コード・ファイル・フィールド256は、一組のAPIファイル入力フィールド262および264を含む。CAM「C」コード・ファイル・フィールド258は、一組のCAMフィールド入力フィールド266および268を含む。宛先ディレクトリ・フィールド260は、一組の選択可能なラジオ・ボタン270および272を含む。ラジオ・ボタン270は、関連ディレクトリ・ファイル入力フィールド274を含み、一方、ラジオ・ボタン272は、関連ディレクトリ・ファイル入力フィールド276を含む。
【0097】
さらに、ポップアップ対話ウィンドウ252は、クローズ・ボタン280、ヘルプ・ボタン282、生成オプション・ボタン284、およびCAM機能ボタン286を含む。
【0098】
この設計例のところで説明したように、Anadigm Designer2が生成した「C」コードは、必ずしもそれ自身有用ではない。「C」コードは、通常、必要に応じて、他の種々のコード・ルーチンを呼び出す、もっと大きなソフトウェア・プロジェクトに内蔵させなければならない。例えば、デバイス情報73は、図3および図4に示すように、設計ツール83からPC65にエクスポートされる。PC65内においては、ユーザ・プログラム98、ライブラリ102、およびユーザ・インタフェース87により、他の入力を、(図3および図4の)CPUプログラム75を生成するもっと大きなプロジェクト内に収容することができる。
【0099】
上記例の設計アプリケーションも、付録Aに詳細に示すように、追加のコードをもっと大きなプロジェクトに収容している。例示としての設計アプリケーションは、入力セル238のいくつかの入力を切り替えるために、設計のいくつかの利点を利用する(図14参照)。例示としての設計アプリケーションは、また、各チャネル用の利得モジュールに対して独立している設定を持つ。ユーザがチャネルを切り替えると、利得モジュールは、それぞれ適当な設定に更新される。それ故、このような例示としての設計アプリケーションにより、ユーザは、どのチャネルが現在使用中なのかを制御することができる。第二に、このアプリケーションと使用すれば、ユーザは使用時に各チャネルの利得を制御することができる。第三に、このアプリケーションにより、ユーザは、(図14の)4つのチャネルを通して絶えず回転することができる。最後に、このアプリケーションにより、ユーザは、4つのチャネルを必要な出力設定に校正することができる。付録Aは、結果として得られる例示としての設計アプリケーションを示す。この付録Aは、各ソース・コードを含む本明細書に含まれている。
【0100】
ソフトウェアの動作中、この例示としての設計アプリケーションは、「C」コード・ライブラリを初期化し、CAMを必要に応じて調整し、AN220E04FPAAを更新する目的で、データ・ストリームを生成するために、いくつかの機能を呼び出す必要がある。より詳細に説明すると、この例示としての設計アプリケーションは、APIおよびCAM「C」コード機能を呼び出さなければならない。
【0101】
最初に、「C」コード・APIライブラリを初期化しなければならない。この初期化は、InitializeRecordingDataルーチンを呼び出すことにより行うことができる。
【0102】
an_InitializeReconfigData(an_chip1);
この呼出しは、どのチップが再構成可能なCAMであるかにより、チップ毎に行われる。
【0103】
チップが他の何らかの方法で構成されていない限りは、このアプリケーションがスタートした場合に、おそらく最初に構成を行わなければならない。ユーザは、GetPrimaryConfigDataルーチンを呼び出すことにより、一次構成に対するデータ・ストリームを検索することができる。
【0104】
PrimaryConfigPtr = (unsigned short int *)
an_GetPrimaryConfigData(an_chip1,&ConfigSize);
これは、バッファへのポインタおよび構成のサイズを検索する。データがチップに到着する方法は、特定のアプリケーションにより異なる。この場合、データをチップにストリームの形で供給するために、HC16のQSPIポートを使用することができる。
【0105】
ソフトウェアの動作中、CAM特性を「C」コードにより変更しなければならない場合には、このアプリケーションは、そのモジュールのための「C」コード機能を呼び出さなければならない。アナログMUXの場合には、SetPadSelect機能を呼び出すことができる。
【0106】
an_setPadSelect(an_chip1_InputCell4, MuxBit(ChannelLoop));
利得モジュールの場合には、SetGain機能を呼び出すことができる。
【0107】
an_setGain(an_chip1_GainInv, GainMid);
これらの機能の詳細を知りたい場合には、ユーザは、Anadigm Designer2のCAM特性の、「C」コード・ボタンをクリックすることができる。
【0108】
CAM機能は、チップのいかなる特性も変更しないことに留意されたい。CAM機能は、単に、構成ストリームをセットアップするだけである。このストリームがチップにダウンロードされると、特性が変化する。
【0109】
このアプリケーションが、AN220E04 FPAAを更新する準備ができている場合には、このアプリケーションは、GetReconfigDataルーチンを呼び出す。
【0110】
ConfigPtr = (unsigned short int *)an_GetReconfigData(an_chip1,&ConfigSize);
次に、この場合、ユーザは、QSPIポートを通して、チップにデータをストリームの形で送る。データが転送済みの場合には、ユーザは、ClearReconfigDataルーチンを呼び出すことにより、構成バッファをリセットすることができる。
【0111】
an_ClearReconfigData(an_chip1);
ある特定の例の場合には、これは適用されないが、ユーザが構成バッファをクローズしなければならない場合には、ユーザは、各チップに対してShutdownReconfigDataルーチンを呼び出すことができる。
【0112】
「C」コードをこのアプリケーションに内蔵させた後で、ユーザは、任意の使用中のコンパイラによりコンパイルおよびリンクすることができる。HC16の場合には、使用することができる適当なコンパイラは、Cosmic C Compilerスーツである。
【0113】
アプリケーションがコンパイルされ、リンクされた後で、ユーザは、HC16(フラッシュ・メモリ)にS19アプリケーション・ファイルをダウンロードすることができる。このダウンロードは、Anadigm Designer2内の「Target−>Download application to flash1]」メニュー・コマンドにより行うことができる。ユーザは、使用するためにS19ファイルを選択することができ、その後で、Anadigm Designer2は、それをHC16に送る。Anadigm Designer2は、ダウンロードが終了すると、ベルの音を送り、HC16上のABKは、LCDディスプレイ上に、「Download App」を表示する。
【0114】
さて、ユーザは、AN220E04 FPAAに、抵抗ネットワークを接続しなければならないし、また、出力をチェックするために装置を試験しなければならない。ユーザが、利得を校正したい場合には、ユーザは、AN220E04 FPAAに、HC16のアナログ/デジタル・コンバータを接続しなければならない。
【0115】
次に、電圧計を、出力の極性に注意しながら、出力セル1のピンの両端に接続しなければならない。差動出力が使用され、差動−シングルエンド変換回路は無視される。アナログ・ボード上のJ8およびJ7ジャンパを取り外すことにより、入力セルから、シングルエンド−差動変換回路を取り外す。
【0116】
図11に示すように、抵抗ネットワークを接続する。ネットワークのアースをAN220E04 FPAAのアースに接続し、ネットワークのVccをAN220E04 FPAAのAVDDに接続する。この接続により、この回路に必要な電圧が供給される。必ず、入力セル4の各入力の極性に注意し、マイナスの側(すなわち、14NA)をアースに接続している抵抗の側に、正の側(すなわち、14PA)をVccに接続している抵抗の側に接続してほしい。
【0117】
アナログ回路の利得を校正するために、出力セル2をHC16のA/D回路に接続してほしい。アナログ・ボード(AN220E04 FPAAのO2P)のP2〜7をデジタル・ボードのP5〜7(HC16のAN0)に接続してほしい。アナログ・ボード(AN220E04 FPAAのO2N)のピンP2〜8をデジタル・ボードのP5〜5(HC16のAN2)に接続してほしい。
【0118】
ユーザは、デジタル・ボード上のスイッチS1を押して、アプリケーションをスタートすることができる。アプリケーションが始動し、現在必要な設計のためのAN220E04 FPAAの構成を始める。
【0119】
構成が終了した後で、回路は正常に動作し、ソフトウェアは、ユーザの入力を受け入れることができるようになる。この場合には、我々の目的のために、デジタル・ボードのキーはすでに定義されている。より詳細に説明すると、二つのアプリケーション・スイッチ178(図10参照)は、第1のアプリケーション・スイッチがチャネルを校正し、第2のアプリケーション・スイッチが、チャネルを通して回転する(他のスイッチをオフにする)ように再度定義されている。さらに、構成スイッチもすでに定義されている。より詳細に説明すると、第1の構成スイッチは、利得を+0.5だけ増大するように定義されている。第2の構成スイッチは、利得を−0.5だけ低減するように定義されている。第3の構成スイッチは、「チャネル・アップ」するように定義されている。第4の構成スイッチは、「チャネル・ダウン」するように定義されている。
【0120】
LCDディスプレイ172(図10参照)も、ユーザ・アプリケーション・プログラム108の現在の状態をユーザに示すために使用される。より詳細に説明すると、LCDディスプレイは、多重化ユニット(FPAAのMUX)が現在設定されているチャネル、およびそのチャネルに割り当てられている利得を示す。
【0121】
Channel Up/Downボタン(スイッチS5およびS6)により、ユーザは、アナログMUXチャネルを切り替えることができる。Gain Up/Downボタン(スイッチS3および、S4)を押すことにより、ユーザは、モジュール内の利得のレベルを制御することができる。
【0122】
再びS1を押すと、回転アルゴリズムがスタートする。1秒または2秒毎に、アプリケーションは、自動的に、(FPAAの)アナログMUXを次のチャネルに切り替えるか、(または、始めにラップアラウンドする)。アプリケーションは、また、そのチャネル上で最後に使用された利得に利得CAMを設定する。再び、S1を押すと、回転が停止する。回転中は、(リセットを除く)他のすべてのボタンは機能しない。
【0123】
S2を押すと、校正シーケンスがスタートする。アプリケーションは、校正する電圧は何ボルトであるのか問い合わせる。利得反転CAMが使用中なので、出力は負の電圧である。ボタンS−S6は、電圧を制御する。必要な校正点に達した場合再びS2を押せば、校正アルゴリズムがスタートする。アルゴリズムが進行するにつれて、ユーザは、LCDディスプレイおよび電圧計上でアルゴリズムの動作を見ることができる。校正が終了した後で、LCDディスプレイは、「Cal done!」メッセージを表示する。その後で、ユーザは、任意のボタンを押すことにより、正常な動作に戻ることができる。
【0124】
校正後、ユーザは、各チャネルの出力がかなり安定しているかどうかを、見るために個々のチャネルをチェックすることができる。そうしたい場合には、ユーザは、電圧の変化を見るために抵抗をチェックし、必要な出力に戻すために再校正することができる。
【0125】
本発明の「C」コード機能は、AN220E04 FPAA内のCAMを動的に制御するための強力な方法を供給する。ユーザの埋設ソフトウェアに接続しているので、これは本当に柔軟なアナログ的解決方法である。
【0126】
図16は、例示としての、構成可能なハードウェア・デバイス内に位置するアナログ素子の構成または再構成を実行するための方法を示す。
【0127】
図16に示すように、論理のフローチャートは、構成可能なハードウェア・デバイス内のアナログ素子のための構成または再構成の実行ステップを示す。ステップ「S1」において、構成可能なハードウェア・デバイスは、プログラム可能な制御デバイスと通信している。ステップ「S1」を実行した後で、プロセスはステップ「S2」に進む。
【0128】
ステップ「S2」において、システムは、アナログ素子を含むハードウェア設計を生成する。ステップ「S2」を実行した後で、プロセスは、ステップ「S3」に進む。
【0129】
ステップ「S3」において、システムは、構成可能なハードウェア・デバイス内の選択したメモリ位置に、構成データを適用することによるアナログ素子の構成、(i)プログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置の決定、(i)メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値の決定の中の少なくとも1つを実行する際に使用することができる、データおよびアルゴリズムの中の少なくとも一方を供給するコンピュータ・プログラム・コードを生成する。ステップ「S3」を実行した後で、プロセスは、ステップ「S4」に進む。
【0130】
ステップ「S4」において、システムは、エクスポートされたデバイス情報を含むコンピュータ・プログラム・コードを、プログラム可能な計算デバイスから、コンパイラにエクスポートする。ステップ「S4」を実行した後で、プロセスは、ステップ「S5」に進む。
【0131】
ステップ「S5」において、システムは、ハードウェアの再構成ができるように、パラメータの変更を構成データ上にマッピングする。ステップ「S5」を実行した後で、プロセスは、ステップ「S6」に進む。
【0132】
ステップ「S6」において、システムは、コンパイルしたプログラム・コードにより、構成可能なハードウェア・デバイスのハードウェアのための、構成データの選択的な修正ができるように、プログラム可能な制御デバイスが使用できるように、コンピュータ・プログラム・コードをコンパイルする。ステップ「S6」を実行した後で、プロセスは、ステップ「S7」に進む。
【0133】
ステップ「S7」において、システムは、構成可能なハードウェア・デバイスの構成を更新するために、コンピュータ・プログラム・コードを、アプリケーション・プログラムに内蔵させる。ステップ「S7」を実行した後で、プロセスは、ステップ「S8」に進む。
【0134】
ステップ「S8」において、システムは、構成可能なハードウェア・デバイス内のハードウェアを再構成するために、生成したコンピュータ・プログラム・コードを、プログラム可能な制御デバイスから構成可能なハードウェア・デバイスに転送することにより、構成可能なハードウェア・デバイスを再構成するために、プログラム可能な制御デバイスにアプリケーション・プログラムを送る。ステップ「S8」を実行した後で、プロセスは、ステップ「S9」に進む。
【0135】
ステップ「S9」において、システムは、構成可能なハードウェア・デバイスのハードウェアを再構成するために、プログラム可能な制御デバイスにより、構成可能なハードウェア・デバイスの構成データを更新する。ステップ「S9」を実行した後で、プロセスは終了する。
【0136】
図17および図18は、フィールド・プログラム可能なアナログ・アレーを構成するためのもう1つの例示としての方法である。この方法を実行する場合、フィールド・プログラム可能なアナログ・アレーは、プログラム可能な制御デバイスに接続している。
【0137】
図17および図18に示すように、論理のフローチャートは、フィールド・プログラム可能なアナログ・アレーの構成ステップを示す。ステップ「S1」において、プログラム可能な制御デバイスに接続している、フィールド・プログラム可能なアナログ・アレー(FPAA)内で、少なくとも1つのアナログ素子に対してハードウェア設計が供給される。ステップ「S1」を実行した後で、プロセスは、ステップ「S2」に進む。
【0138】
ステップ「S2」において、システムは、FPAA内の選択したプログラム可能なメモリ位置に、構成データを適用することによりアナログ素子を構成する際に、(i)メモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定する際に、(i)メモリ位置、および(ii)構成データのうちの少なくとも一方のサブセットに適用される新しいデータ値を決定する際に使用することができるデータ・セットおよびプロセスのうちの少なくとも一方を含むコンピュータ・プログラム・コードを生成する。ステップ「S2」を実行した後で、プロセスは、ステップ「S3」に進む。
【0139】
ステップ「S3」において、システムは、コンピュータ・プログラム・コードの少なくとも一部を含むアプリケーション・プログラムを生成する。アプリケーション・プログラムは、フィールド・プログラム可能なアナログ・アレーの構成を更新するために動作する。ステップ「S3」を実行した後で、プロセスは、ステップ「S4」に進む。
【0140】
ステップ「S4」において、システムは、プログラム可能な制御デバイスのところで、アプリケーション・プログラムを受信する。ステップ「S4」を実行した後で、プロセスは、ステップ「S5」に進む。
【0141】
ステップ「S5」において、システムは、プログラム可能な制御デバイスのメモリ内に記憶しているコンピュータ・プログラム・コードおよびアルゴリズムを実行するコンピュータ・プログラムを実行する。アルゴリズムは、フィールド・プログラム可能なアナログ・アレー(FPAA)を、必要なデバイス構成にマッピングするため、および/または機能パラメータ計算を行うために供給される。ステップ「S5」を実行した後で、プロセスは、ステップ「S6」に進む。
【0142】
ステップ「S6」において、アプリケーション・プログラムにより、システムは、フィールド・プログラム可能なアナログ・アレー(FPAA)内の少なくとも1つの構成データ・レジスタに構成データを書き込むための命令により、プログラム可能な制御デバイスをプログラムする。ステップ「S6」を実行した後で、プロセスは、ステップ「S7」に進む。
【0143】
ステップ「S7」において、システムは、プログラム可能な制御デバイスから、フィールド・プログラム可能なアナログ・アレー(FPAA)に構成データをエクスポートする。ステップ「S7」を実行した後で、プロセスは、ステップ「S8」に進む。
【0144】
ステップ「S8」において、システムは、フィールド・プログラム可能なアナログ・アレー(FPAA)の少なくとも1つの構成データ・レジスタに構成データを書き込む。ステップ「S8」を実行した後で、プロセスは、ステップ「S9」に進む。
【0145】
ステップ「S9」において、システムは、少なくとも1つの構成データ・レジスタへの構成データの書込みに応じて、フィールド・プログラム可能なアナログ・アレー(FPAA)内のハードウェアを構成する。ステップ「S9」を実行した後で、プロセスは終了する。
【0146】
法令に従って、構造上の機能および方法上の機能の多かれ少なかれ特有の言語により本発明を説明してきた。しかし、本発明は、図示し、説明してきた特定の機能に制限されないことを理解されたい。何故なら、本明細書に記載した手段は、本発明を実行するための好適な形を含んでいるからである。それ故、本発明は、添付の特許請求の範囲の原則に従って正しく解釈した、添付の特許請求の範囲の正しい範囲内のすべてのその形式および修正に記載する通りのものである。
【0147】
本発明で使用するコンピュータープログラムリスト(付録A)は下記のとおりである。
【図面の簡単な説明】
【図1および図2】半導体デバイスを構成するための、従来技術のシステムのブロック図であり、構成可能なハードウェアの動作の流れおよびコントローラの動作の流れも示す。
【図3および図4】本発明のある実施形態による、構成可能な半導体デバイスをプログラムするための例示としてのシステムの基本的システム構成全体のブロック図である。
【図5】簡単な設計式、空の構成可能なデバイス、および代表的な構成データとともに、デバイスに対する構成プログラムにより構成することができる4つの可能な構成を含む必要な回路設計を示す仮定のプログラム可能なハードウェア・デバイスのための例示としての回路設計を示すブロック図である。
【図6および図7】構成可能なハードウェアの動作の流れおよびコントローラの動作の流れを再度示す、図3および図4のシステムのブロック図である。
【図8および図9】構成可能なデバイスを再構成する際に使用するために、修正構成データを生成することができるプログラムを生成するための、ユーザの「C」コンパイラにより直接導入される構成可能なデバイス・データ・セットの詳細を再度示す、図6および図7のシステムのブロック図である。
【図10】プログラム可能な制御デバイス上で稼動する設計ツールが生成したコンピュータ・プログラム・コードにより構成可能なハードウェア・デバイスを更新するための、ユーザ・プログラムを実行するためのアプリケーション・システムを示すブロック図である。
【図11】ユーザ・アプリケーションおよび設計ツールを通して、図6の構成可能なデバイスのためのアナログ・マルチプレクサ(MUX)による例示としての抵抗ネットワーク回路を示す簡単な略図である。
【図12】図11のアナログ・マルチプレクサ(MUX)内のアナログ回路のブロック図を示す簡単な略図である。
【図13】ユーザ・ディスプレイ内の設計ツール・アプリケーション・ウィンドウのスクリーン・ディスプレイである。
【図14】図13の設計ツール・アプリケーション・ウィンドウ用のスクリーン・ディスプレイであり、設計ツールが発生した例示としてのアナログ回路を示し、図12のアナログ・マルチプレクサ(MUX)の機能を実行する入力ポートを含む。
【図15】図15のスクリーン・ディスプレイ内のポップアップ・ウィンドウを備える「C」コード生成アナログ・ボックスである。
【図16】図3、図4、図6〜図9のシステムにより構成可能なハードウェア・デバイスでアナログ素子の構成/再構成を行うためのプロセス段階を示す処理フローチャートである。
【図17および図18】フィールド・プログラム可能なアナログ・アレー(FPAA)の構成を行うための処理段階を示す処理フローチャートである。
Claims (82)
- 構成可能な半導体デバイスをプログラムするためのシステムであって、
プログラム可能な制御デバイスと、
プログラム可能な計算デバイスと、
通信リンクと、
複数のメモリ位置を含み、前記通信リンクを通して前記プログラム可能な制御デバイスに接続しているメモリを有する構成可能なハードウェア・デバイスと、
プログラム可能な計算デバイス内に位置する第1のコンピュータ・プログラム・コードを含む設計ツールと、
a)前記構成可能なハードウェア・デバイスを構成するために、前記構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、
b)(i)前記構成可能なハードウェア・デバイス内のプログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定するために、
c)前記構成可能なハードウェア・デバイス内の前記メモリ位置、および(ii)前記構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために、
前記第1のコンピュータ・プログラム・コードにより少なくとも一部が生成され、前記プログラム可能な制御デバイスで実行される第2のコンピュータ・プログラム・コードとを備えていて、
前記設計ツールが、構成データ、アドレス・データ、およびa)、b)およびc)のうちの少なくとも1つを実行する際に使用することができるデータ値アルゴリズムのうちの少なくとも1つを供給するシステム。 - 前記設計ツールが、構成データ、アドレス・データ、およびデータ値アルゴリズムのうちの少なくとも1つを自動的に供給する、請求項1に記載のシステム。
- 前記構成データ、アドレス・データ、およびデータ値アルゴリズムのうちの少なくとも1つが、a)、b)およびc)のうちの少なくとも1つを実行するために使用される、請求項1に記載のシステム。
- 前記プログラム可能な計算デバイスおよび前記プログラム可能な制御デバイスが、共通なデバイスにより供給される、請求項1に記載のシステム。
- 前記プログラム可能な計算デバイスが、独立コンピュータ支援設計コンピュータを備え、前記プログラム可能な制御デバイスが、アプリケーション・ボード上に常駐するマイクロコントローラを備える、請求項1に記載のシステム。
- 前記プログラム可能な制御デバイスが、前記構成可能なハードウェア・デバイスに緊密に接続している、請求項1に記載のシステム。
- 前記プログラム可能な制御デバイスが、マイクロプロセッサを備える、請求項1に記載のシステム。
- 前記プログラム可能な制御デバイスが、マイクロコントローラを備える、請求項1に記載のシステム。
- 前記プログラム可能な制御デバイスが、フィールド・プログラム可能なゲート・アレーを備える、請求項1に記載のシステム。
- 前記プログラム可能な制御デバイスが、デジタル信号プロセッサを備える、請求項1に記載のシステム。
- 前記構成可能なハードウェア・デバイスが、プログラム可能な論理デバイスを備える、請求項1に記載のシステム。
- 前記構成可能なハードウェア・デバイスが、フィールド・プログラム可能なアナログ・アレーを備える、請求項1に記載のシステム。
- 前記構成可能なハードウェア・デバイスが、フィールド・プログラム可能なゲート・アレーを備える、請求項1に記載のシステム。
- 前記構成可能なハードウェア・デバイスが、デジタル信号プロセッサを備える、請求項1に記載のシステム。
- 前記プログラム可能な制御デバイスが、修正した構成データを動的に生成するように構成されている、請求項1に記載のシステム。
- 前記構成可能なハードウェア・デバイスが、構成可能なハードウェアおよび前記構成可能なハードウェアを構成する構成データを受信するための構成データ・レジスタとを備える、請求項1に記載のシステム。
- 前記第1のコンピュータ・プログラム・コードが、前記設計ツールが受信したユーザ指定パラメータを構成要素値およびトポロジーに変換するために動作するアルゴリズムを含むコントローラ・プログラムを備える、請求項1に記載のシステム。
- 前記アルゴリズムが、コード・ルーチンを含む、請求項17に記載のシステム。
- 前記コード・ルーチンが、「C」言語コードを含む、請求項18に記載のシステム。
- 前記コード・ルーチンが、前記設計ツールにより、前記構成可能なハードウェアの設計中に、ユーザが前に生成した回路の修正を実行するために生成される、請求項18に記載のシステム。
- 前記コントローラ・プログラムが、計算ルーチンを実行するように構成された一組のプログラム・コード・ルーチンを含む、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、構成データ・アセンブリを実行するように構成された一組のプログラム・コード・ルーチンを含む、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、チェックサム生成を実行するように構成された一組のプログラム・コード・ルーチンを含む、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、前記構成可能なデバイス内の機能の再配置を実行するように構成された一組のプログラム・コード・ルーチンを含む、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、位置および経路回路情報を一組のプログラム・コード・ルーチンと結合し、前記構成データにより実行した回路に特有の「C」コードを生成するコンピュータ支援設計コンピュータ・プログラム・コードを含む、請求項24に記載のシステム。
- 前記「C」コードから入手した目的コードが、前記構成可能なデバイスの再構成ができるように、前記第2のコンピュータ・プログラム・コードを生成する場合に、コンパイラを通して直接輸入することができる、請求項25に記載のシステム。
- 前記第1のコンピュータ・プログラム・コードが、前記制御デバイスに対する修正した構成データを動的に生成できるようにする目的で、前記構成可能なデバイスに関する情報を供給するために動作するアルゴリズムを含むデバイス構成プログラムを含む、請求項1に記載のシステム。
- 前記コントローラ・プログラムが、ユーザが、前記構成可能なデバイスの初期構成に対応する回路性能パラメータから回路性能パラメータを修正できるようにする、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、ユーザが、前記構成可能なデバイスに最初に与えた機能上に、前記構成可能なデバイスに新しい機能を付与するプログラム可能な制御デバイスを通して構成データを生成できるようにする、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、ユーザが、前記構成可能なデバイスの他の構成に匹敵する機能を達成する前記構成可能なデバイスの構成を実行するためにデバイス・リソースを再配置できるようにする、請求項17に記載のシステム。
- 前記コントローラ・プログラムが、前記構成可能なデバイスを最初に構成するために使用した前記設計ツールから独立して、前記制御デバイスに対する修正した構成データを生成できるようにする、請求項17に記載のシステム。
- 前記構成可能なハードウェア・デバイスを構成した後で、前記プログラム可能な制御デバイスが、前記構成可能なハードウェア・デバイスの性能パラメータを調整し、前記プログラム可能な制御デバイスで実行された前記コンピュータ・プログラム・コードが、前記構成可能なハードウェア・デバイスに対する性能パラメータを調整するために新しい構成データを生成する、請求項1に記載のシステム。
- プログラム可能なデバイスを構成するためのシステムであって、
第1のプログラム可能なデバイスと、
構成可能なハードウェアと、構成可能なハードウェアを構成するための構成データ・レジスタを含み、前記第1の構成可能なデバイスと通信する第2のプログラム可能なデバイスと、
構成データ、アドレス・データ、およびアルゴリズムのうちの少なくとも1つを発生するための第1のコンピュータ・プログラム・コードを含む設計ツールを有するプログラム可能な計算デバイスと、
前記生成した構成データ、アドレス・データ、およびデータ値を決定するためのアルゴリズムのうちの少なくとも1つを含み、前記第1のプログラム可能なデバイスで、
a)前記構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用するために、
b)(i)前記構成可能なハードウェア・デバイス内の前記プログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定するために、
c)前記メモリ位置、および(ii)前記構成データの中の少なくとも一方のサブセットに適用される新しいデータ値を決定するために、
第1のプログラム可能な制御デバイスで実行される第2のコンピュータ・プログラム・コードとを備えるシステム。 - 前記第1のプログラム可能なデバイスと前記第2のプログラム可能なデバイスの間に位置する両方向通信リンクをさらに備える、請求項33に記載のシステム。
- 前記第1のプログラム可能なデバイスが、プログラム可能な制御デバイスを備える、請求項33に記載のシステム。
- 前記第2のプログラム可能なデバイスが、構成可能なハードウェア・デバイスを備える、請求項33に記載のシステム。
- 前記第1のコンピュータ・プログラム・コードが、ユーザ指定パラメータを構成要素値およびトポロジーに変換するために使用するアルゴリズムを含むコントローラ・プログラムを備える、請求項33に記載のシステム。
- 前記第1のコンピュータ・プログラム・コードが、前記制御デバイスに対する修正した構成データの動的生成ができるように、前記構成可能なデバイスに関する情報を供給するアルゴリズムを含む、請求項33に記載のシステム。
- 前記第1のプログラム可能なデバイスが、前記第2のプログラム可能なデバイスを構成するために、前記第2のプログラム可能なデバイス内の前記構成データ・レジスタの中の少なくとも1つに構成データを書き込むようにプログラムされる、請求項33に記載のシステム。
- 前記第1のプログラム可能なデバイスが、前記第2のプログラム可能なデバイスに密接に接続していて、前記第2のプログラム可能なデバイスを構成するように形成され、配置されている、請求項33に記載のシステム。
- 前記第2のプログラム可能なデバイスの構成の後で、前記第1のプログラム可能なデバイスが、前記第2のプログラム可能なデバイスの前記構成データ・レジスタ内の構成データを修正することにより、前記第2のプログラム可能なデバイスに対する少なくとも1つの性能パラメータを調整するように形成され、配置されている、請求項40に記載のシステム。
- 前記第2のプログラム可能なデバイスの構成の後で、前記第1のプログラム可能なデバイスが、前記第2のプログラム可能なデバイスの前記構成データ・レジスタ内の構成データを修正することができるようにすることにより、前記第2のプログラム可能なデバイスに対して回路実行ができるように形成され、配置されている、請求項40に記載のシステム。
- 構成可能なハードウェア・デバイス内に位置するアナログ素子を構成または再構成するための方法であって、
プログラム可能な制御デバイスと通信する構成可能なハードウェア・デバイスを供給するステップと、
アナログ素子を含むハードウェア設計を生成するステップと、
前記構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用することによるアナログ素子の構成、
(i)前記プログラム可能なメモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置の決定、
前記メモリ位置、および(ii)構成データの中の少なくとも一方のサブセットに適用される新しいデータ値の決定のうちの少なくとも1つを実行する際に使用することができるデータ、およびアルゴリズムの中の少なくとも一方を供給するコンピュータ・プログラム・コードを生成するステップと、
前記構成可能なハードウェア・デバイスの構成を更新するために、前記コンピュータ・プログラム・コードをアプリケーションに内蔵させるステップと、
前記構成可能なハードウェア・デバイスを再構成するために、前記プログラム可能な制御デバイスに前記アプリケーションを供給するステップとを含む方法。 - 前記構成可能なハードウェア・デバイスのハードウェアを再構成するために、前記プログラム可能な制御デバイスを通して、前記構成可能なハードウェア・デバイスの前記構成データを更新するステップをさらに含む、請求項43に記載の方法。
- 前記内蔵させるステップが、前記コンパイルしたプログラム・コードにより、前記構成可能なハードウェア・デバイスのハードウェアに対する前記構成データの選択的な修正を行うことができるようにするために、前記プログラム可能な制御デバイスが使用するための前記コンピュータ・プログラム・コードをコンパイルするステップを含む、請求項43に記載の方法。
- 前記構成可能なハードウェア・デバイスが、構成可能なハードウェアと前記構成可能なハードウェアを構成するための構成データ・レジスタを備え、さらに、前記構成可能なハードウェアを再構成するために、前記構成データ・レジスタ内に前記生成した構成データを記憶するステップを含む、請求項43に記載の方法。
- 前記構成可能なハードウェア・デバイス内の前記ハードウェアを再構成するために、前記プログラム可能な制御デバイスから前記構成可能なハードウェア・デバイスへ、前記生成したコンピュータ・プログラム・コードを転送するステップをさらに含む、請求項43に記載の方法。
- 前記プログラム可能な制御デバイスが、ユーザ・インタフェースを含み、さらに、前記ユーザ・インタフェースのところで、ユーザから、前記ハードウェアに対する前記構成データを修正するパラメータの変更を受信するステップを含む、請求項43に記載の方法。
- 前記ハードウェアの再構成ができるように、前記構成データ上に前記パラメータの変更をマッピングするステップをさらに含む、請求項48に記載の方法。
- コンピュータ・プログラム・コードを生成するステップが、前記ハードウェアを構成するために、前記構成データに適用される前記構成可能なハードウェア・デバイスのアナログ回路素子に、変更を表すデータ値を内蔵させるステップを含む、請求項43に記載の方法。
- 前記プログラム可能な制御デバイスに、前記構成可能なハードウェア・デバイス内のハードウェア構成要素の設置に関する情報を自動的に供給するステップをさらに含む、請求項43に記載の方法。
- 前記構成可能なハードウェア・デバイスが、フィールド・プログラム可能なアナログ・アレーを備え、さらに、前記フィールド・プログラム可能なアナログ・アレーの構成データ・レジスタに構成データを書き込むために、前記プログラム可能な制御デバイスから前記構成可能なハードウェア・デバイスへのアプリケーション・プログラムの移動に応じて、前記フィールド・プログラム可能なアナログ・アレーの少なくとも1つのアナログ素子を再構成するステップを含む、請求項43に記載の方法。
- 前記少なくとも1つのアナログ素子を再構成するために、ユーザ入力と一緒に、前記生成したコンピュータ・プログラム・コードにより、前記フィールド・プログラム可能なアナログ・アレーに対する前記構成データを修正するステップをさらに含む、請求項52に記載の方法。
- プログラム可能な制御デバイスに接続しているフィールド・プログラム可能なアナログ・アレーを構成するための方法であって、
前記フィールド・プログラム可能なアナログ・アレー内の少なくとも1つのアナログ素子に対してハードウェア設計を供給するステップと、
前記フィールド・プログラム可能なアナログ・アレー内の選択したメモリ位置に構成データを適用することにより、前記アナログ素子を構成する際に、また(i)前記メモリ位置、および(ii)修正対象の構成データの少なくとも一方のサブセットの位置を決定する際に、また前記メモリ位置および(ii)前記構成データの中の少なくとも一方のサブセットに適用される新しいデータ値の決定する際に使用することができるデータ・セットおよびプロセスのうちの少なくとも一方を含むコンピュータ・プログラム・コードを生成するステップと、
前記フィールド・プログラム可能なアナログ・アレーの構成を更新するために動作する前記コンピュータ・プログラム・コードの少なくとも一部を含むアプリケーション・プログラムを生成するステップと、
前記プログラム可能な制御デバイスのところで、前記アプリケーション・プログラムを受信するステップと、
前記アプリケーション・プログラムにより、前記フィールド・プログラム可能なアナログ・アレー内の少なくとも1つの構成データ・レジスタに構成データを書き込むための命令により前記プログラム可能な制御デバイスをプログラムするステップと、
前記フィールド・プログラム可能なアナログ・アレーの前記少なくとも1つの構成データ・レジスタに前記構成データを書き込むステップと、
前記フィールド・プログラム可能なアナログ・アレーへの前記構成データの書き込みに応じて、前記フィールド・プログラム可能なアナログ・アレー内でハードウェアを構成するステップとを含む方法。 - 前記プログラム可能な制御デバイスから前記フィールド・プログラム可能なアナログ・アレーに、構成データをエクスポートするステップをさらに含む、請求項54に記載の方法。
- 前記アプリケーション・プログラムが、デバイス指定マッピング情報を含む、請求項54に記載の方法。
- 前記フィールド・プログラム可能なアナログ・アレーを必要なデバイス構成内にマッピングするために、前記プログラム可能な制御デバイスのメモリ内に記憶しているアルゴリズムでコンピュータ・プログラム・コードを実行するステップをさらに含む、請求項56に記載の方法。
- 前記アプリケーション・プログラムが、設計−デバイス・マッピング情報を含む、請求項54に記載の方法。
- 前記設計−デバイス・マッピング情報が、ハードウェア構成データ、設計−デバイス・メモリ・マッピング・データ、および設計修正アルゴリズムを含む、請求項58に記載の方法。
- 前記アプリケーション・プログラムが、設計特定マッピング情報を含む、請求項54に記載の方法。
- 機能パラメータ計算を行うために、前記プログラム可能な制御デバイスのメモリ内に記憶しているアルゴリズムでコンピュータ・プログラム・コードを実行するステップをさらに含む、請求項60に記載の方法。
- コンピュータ・システムで構成可能なハードウェア・デバイス内のアナログ・ハードウェアを再構成するための方法であって、
アナログ・ハードウェア設計を供給するステップと、
下記の動作、すなわち、
a)前記構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用することによるアナログ素子の構成、
b)(i)前記プログラム可能なメモリ位置および(ii)修正対象の前記構成データの少なくとも一方のサブセットの位置の決定、
c)(i)前記メモリ位置および(ii)前記構成データのうちの少なくとも一方のサブセットに適用される新しいデータ値の決定、
のうちの少なくとも1つを実行する際に使用することができるアルゴリズムおよびデータのうちの少なくとも一方を自動的に内蔵するコンピュータ・プログラム・コードを供給するステップと、
前記構成可能なハードウェア・デバイスの構成を更新するために、前記コンピュータ・プログラム・コード上に少なくともその一部に基づいてアプリケーション・プログラムを供給するステップと、
前記プログラム可能な制御デバイスを通して、前記構成可能なハードウェア・デバイス内のアナログ・ハードウェアを構成するための少なくとも1つの構成データ・レジスタ内に構成データを有する構成可能なハードウェア・デバイスと通信するステップと、
前記構成可能なハードウェア・デバイス内の構成データ・レジスタに新しい構成データを書き込むために、前記アプリケーション・プログラムと協力する命令を含む前記プログラム可能な制御デバイスのところでユーザ入力を受信するステップと、
前記少なくとも1つの構成データ・レジスタへ前記新しい構成データを書き込むステップと、
前記新しい構成データにより前記構成可能なハードウェア・デバイス内のアナログ・ハードウェアを再構成するステップとを含む方法。 - 前記構成可能なハードウェア・デバイスが、フィールド・プログラム可能なアナログ・アレーを備える、請求項62に記載の方法。
- 前記コンピュータ・プログラム・コードが、前記構成可能なハードウェア・デバイスのアナログ・ハードウェアを再構成するために、前記プログラム可能な制御デバイスが使用するためのエクスポート・デバイス情報を含む、請求項62に記載の方法。
- 前記アナログ・ハードウェア、を再構成するために、前記構成データ・レジスタ内に前記新しい構成データを記憶するステップをさらに含む、請求項62に記載の方法。
- 前記新しい構成データが、前記構成可能なハードウェア・デバイス内の前記ハードウェアを再構成するために、前記プログラム可能な制御デバイスから前記構成可能なハードウェア・デバイスへ、コンピュータ・データを転送するステップを含む、請求項62に記載の方法。
- ユーザ入力が、前記プログラム可能な制御デバイスのユーザ・プログラムを通して受信され、前記ユーザ入力が、アナログ回路のユーザ機能記述を含むコンピュータ支援設計ツールからの構成データと結合される、請求項62に記載の方法。
- 構成可能なハードウェア・デバイスを再構成するための方法であって、
構成可能なハードウェア・デバイスと通信するプログラム可能な制御デバイスを供給するステップと、
前記構成可能なハードウェア・デバイス内の、選択したメモリ位置に構成データを適用することによるアナログ素子の構成、
(i)前記プログラム可能なメモリ位置および(ii)修正対象の構成データの少なくとも一方のサブセットの位置の決定、および
前記メモリ位置および(ii)構成データの中の少なくとも一方の前記サブセットに適用される新しいデータ値の決定
のうちの少なくとも1つを実行する際に、使用することができるアルゴリズムおよびデータの中の少なくとも一方を内蔵する前記プログラム可能な制御デバイスのところでコンピュータ・プログラム・コードを受信するステップと、
前記プログラム可能な制御デバイスのところでユーザ入力を受信するステップと、
前記コンピュータ・プログラム・コードと前記ユーザ入力とを使用して、前記構成可能なハードウェア・デバイスを第1の構成から第2の構成に再構成するステップとを含む方法。 - 前記構成可能なハードウェア・デバイス内の少なくとも1つの構成データ・レジスタに構成データを書き込むための命令により、前記プログラム可能な制御デバイスをプログラムすステップをさらに含む、請求項68に記載の方法。
- 前記プログラム可能な制御デバイスが、前記構成可能なハードウェア・デバイスを第2の構成に構成する目的で、前記構成可能なハードウェア・デバイス内のデータ・レジスタに構成データを書き込むことができるようにするために、前記プログラム可能な制御デバイスに、前記構成可能なハードウェア・デバイスに対するデバイス情報を供給するステップをさらに含む、請求項68に記載の方法。
- エクスポート・デバイス情報が、前記構成可能なハードウェア・デバイスに対して構成データをエクスポートするステップを含む、請求項70に記載の方法。
- 構成データをエクスポートするステップが、回路を表すデータを含む構成ファイルをエクスポートするステップを含む、請求項71に記載の方法。
- 前記構成ファイルが、他のデータ・セットと対応する関係を持つ一組のデータを含むマップ・ファイルを含む、請求項72に記載の方法。
- 構成のためのホスト・プロセッサと接続している前記フィールド・プログラム可能なアナログ・アレーを構成するための方法であって、
設計ツールにより、構成データ、アドレス・データ、およびアルゴリズムの中の少なくとも1つを供給する第1のコンピュータ・プログラム・コードを生成するステップと、
前記第1のコンピュータ・プログラム・コードの少なくとも一部により、第2のコンピュータ・プログラム・コードを生成するステップと、
前記第2のコンピュータ・プログラム・コードを前記ホスト・プロセッサに転送するステップと、
前記構成可能なハードウェア・デバイス内の選択したメモリ位置に構成データを適用することにより前記フィールド・プログラム可能なアナログ・アレーを構成するステップと、
(i)前記プログラム可能なメモリ位置および(ii)修正対象の前記構成データの少なくとも一方のサブセットの位置を決定するステップと、
前記メモリ位置および(ii)構成データの中の少なくとも一方の前記サブセットに適用される新しいデータ値を決定するステップと、
新しい構成データを含む前記ホスト・プロセッサのところでユーザ入力を受信するステップとを含む方法。 - 前記フィールド・プログラム可能なアナログ・アレー内の前記構成データ・レジスタに、前記新しい構成データを書き込むステップをさらに含む、請求項74に記載の方法。
- 前記新しい構成データにより、前記フィールド・プログラム可能なアナログ・アレーを再構成するステップをさらに含む、請求項75に記載の方法。
- プログラム可能な制御デバイスをプログラムする前に、構成データの初期セットにより前記フィールド・プログラム可能なアナログ・アレーを構成する、請求項74に記載の方法。
- 前記フィールド・プログラム可能なアナログ・アレーを構成した後で、構成データの前記初期セットの少なくとも一部に、前記新しい構成データを重ね書きすることにより前記フィールド・プログラム可能なアナログ・アレーを再構成する、請求項75に記載の方法。
- 前記新しい構成を書き込むステップが、前記フィールド・プログラム可能なアナログ・アレーを動的に再構成するために、、前記構成データ・レジスタに前記新しい構成データを動的に更新するステップを含む、請求項74に記載の方法。
- 前記第1のコンピュータ・プログラム・コードが、構成データ、アドレス・データ、およびアルゴリズムのうちの少なくとも1つを自動的に供給する、請求項74に記載の方法。
- 構成可能な半導体デバイスをプログラムするための方法であって、
a)前記構成可能な半導体デバイス内の選択したメモリ位置に構成データを適用することにより、前記構成可能な半導体デバイスを構成するために、
b)(i)前記プログラム可能なメモリ位置および(ii)修正対象の前記構成データの中の少なくとも一方のサブセットの位置を決定するために、
c)(i)前記メモリ位置および(ii)前記構成データの中の少なくとも一方の前記サブセットに適用される新しいデータ値を決定するために、
d)前記プログラム可能な半導体デバイスの少なくとも1つのアナログ構成要素を再構成するために、前記プログラム可能な半導体デバイスに接続しているプログラム可能な制御デバイスを通して、ユーザが相互に作用することができるようにするために、
構成可能な半導体デバイスを構成するプログラミング・データを受け入れるように、特に形成されたプログラム可能な半導体デバイスを備えるシステム。 - 前記プログラム可能な半導体デバイスが、フィールド・プログラム可能なアナログ・アレーを備える、請求項81に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/171,334 US7024654B2 (en) | 2002-06-11 | 2002-06-11 | System and method for configuring analog elements in a configurable hardware device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110771A true JP2004110771A (ja) | 2004-04-08 |
Family
ID=29711063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003167120A Withdrawn JP2004110771A (ja) | 2002-06-11 | 2003-06-11 | 構成可能なハードウェア・デバイスにおけるアナログ素子を構成するためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7024654B2 (ja) |
EP (1) | EP1376416B1 (ja) |
JP (1) | JP2004110771A (ja) |
AT (1) | ATE307360T1 (ja) |
DE (1) | DE60301915D1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013153851A1 (ja) * | 2012-04-11 | 2013-10-17 | 太陽誘電株式会社 | 再構成可能な半導体装置 |
JP2014132418A (ja) * | 2013-01-07 | 2014-07-17 | Renesas Electronics Corp | 半導体装置及びそのコマンド制御方法 |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7086014B1 (en) * | 2001-11-19 | 2006-08-01 | Cypress Semiconductor Corporation | Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
EP1537464A2 (en) * | 2002-08-30 | 2005-06-08 | Koninklijke Philips Electronics N.V. | Version-programmable circuit module |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US7131097B1 (en) * | 2002-09-24 | 2006-10-31 | Altera Corporation | Logic generation for multiple memory functions |
US7418574B2 (en) | 2002-10-31 | 2008-08-26 | Lockheed Martin Corporation | Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction |
US7159204B2 (en) * | 2003-01-28 | 2007-01-02 | Altera Corporation | System and method for design entry and synthesis in programmable logic devices |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US7200703B2 (en) * | 2004-06-08 | 2007-04-03 | Valmiki Ramanujan K | Configurable components for embedded system design |
US20050283542A1 (en) * | 2004-06-18 | 2005-12-22 | Xiaomao Xiao | Method and system for programming a plurality of different memory devices during development and production with a single controllable interface tool |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8612772B1 (en) * | 2004-09-10 | 2013-12-17 | Altera Corporation | Security core using soft key |
US8566616B1 (en) * | 2004-09-10 | 2013-10-22 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like |
US7676649B2 (en) | 2004-10-01 | 2010-03-09 | Lockheed Martin Corporation | Computing machine with redundancy and related systems and methods |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7493578B1 (en) | 2005-03-18 | 2009-02-17 | Xilinx, Inc. | Correlation of data from design analysis tools with design blocks in a high-level modeling system |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US7439764B2 (en) * | 2005-05-16 | 2008-10-21 | Georgia Tech Research Corporation | Systems and methods for programming large-scale field-programmable analog arrays |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US7496869B1 (en) | 2005-10-04 | 2009-02-24 | Xilinx, Inc. | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit |
US7363599B1 (en) | 2005-10-04 | 2008-04-22 | Xilinx, Inc. | Method and system for matching a hierarchical identifier |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US7380232B1 (en) | 2006-03-10 | 2008-05-27 | Xilinx, Inc. | Method and apparatus for designing a system for implementation in a programmable logic device |
US8402409B1 (en) * | 2006-03-10 | 2013-03-19 | Xilinx, Inc. | Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit |
US7761272B1 (en) | 2006-03-10 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for processing a dataflow description of a digital processing system |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US8176457B2 (en) * | 2006-12-04 | 2012-05-08 | Fujitsu Limited | Apparatus and method updating diagram of circuit based on pin swap performed in package design with respect to PLD |
EP1930830A3 (en) * | 2006-12-04 | 2011-06-29 | Fujitsu Limited | Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, and printed-circuit-board manufacturing method |
CN101196945B (zh) * | 2006-12-04 | 2010-06-02 | 富士通株式会社 | 电路设计支持装置及方法、印刷电路板制造方法 |
EP1930823A3 (en) * | 2006-12-04 | 2011-06-08 | Fujitsu Limited | Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method |
US8255844B2 (en) * | 2006-12-04 | 2012-08-28 | Fujitsu Limited | Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, printed-circuit-board manufacturing method, circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method |
EP1930825A3 (en) * | 2006-12-04 | 2011-06-29 | Fujitsu Limited | Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8402410B2 (en) * | 2007-08-27 | 2013-03-19 | Samsung Electronics Co., Ltd. | Method and apparatus for managing configuration memory of reconfigurable hardware |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US8365111B2 (en) * | 2008-02-29 | 2013-01-29 | Et International, Inc. | Data driven logic simulation |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8201126B1 (en) * | 2009-11-12 | 2012-06-12 | Altera Corporation | Method and apparatus for performing hardware assisted placement |
CN103729490A (zh) * | 2012-10-15 | 2014-04-16 | 飞思卡尔半导体公司 | 混合信号ip核原型设计系统 |
CN103048955B (zh) * | 2012-12-04 | 2015-10-28 | 常州大学 | 一种基于fpaa和fpga的智能重构柔性电机控制系统 |
US8997033B1 (en) * | 2014-03-05 | 2015-03-31 | Altera Corporation | Techniques for generating a single configuration file for multiple partial reconfiguration regions |
US9740809B2 (en) * | 2015-08-27 | 2017-08-22 | Altera Corporation | Efficient integrated circuits configuration data management |
US10152566B1 (en) * | 2016-09-27 | 2018-12-11 | Altera Corporation | Constraint based bit-stream compression in hardware for programmable devices |
CN109086068A (zh) * | 2017-06-14 | 2018-12-25 | 浙江昱能科技有限公司 | 一种fpga控制单元的配置数据更新系统及方法 |
US11043951B2 (en) * | 2018-11-30 | 2021-06-22 | Palo Alto Research Center Incorporated | Analog computer architecture for fast function optimization |
EP3736712A1 (de) | 2019-05-10 | 2020-11-11 | Carl Zeiss Industrielle Messtechnik GmbH | Verfahren zum zugriff auf einen speicher eines integrierten schaltkreises, programm, vorrichtung zur datenverarbeitung und netzwerk |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5598344A (en) * | 1990-04-06 | 1997-01-28 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
US5493672A (en) * | 1994-05-16 | 1996-02-20 | Sun Microsystems, Inc. | Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution |
WO1995032478A1 (en) | 1994-05-24 | 1995-11-30 | Imp, Inc. | Integrated circuit having programmable analog functions and computer aided techniques for programming the circuit |
US5794062A (en) | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
GB9508932D0 (en) * | 1995-05-02 | 1995-06-21 | Xilinx Inc | FPGA with parallel and serial user interfaces |
US5583450A (en) * | 1995-08-18 | 1996-12-10 | Xilinx, Inc. | Sequencer for a time multiplexed programmable logic device |
US5745734A (en) * | 1995-09-29 | 1998-04-28 | International Business Machines Corporation | Method and system for programming a gate array using a compressed configuration bit stream |
US6346824B1 (en) | 1996-04-09 | 2002-02-12 | Xilinx, Inc. | Dedicated function fabric for use in field programmable gate arrays |
US5838165A (en) | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
US5841967A (en) * | 1996-10-17 | 1998-11-24 | Quickturn Design Systems, Inc. | Method and apparatus for design verification using emulation and simulation |
US6006022A (en) * | 1996-11-15 | 1999-12-21 | Microsystem Synthesis, Inc. | Cross-linked development and deployment apparatus and method |
US5931959A (en) | 1997-05-21 | 1999-08-03 | The United States Of America As Represented By The Secretary Of The Air Force | Dynamically reconfigurable FPGA apparatus and method for multiprocessing and fault tolerance |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US5966532A (en) * | 1997-07-10 | 1999-10-12 | National Instruments Corporation | Graphical code generation wizard for automatically creating graphical programs |
US6219628B1 (en) | 1997-08-18 | 2001-04-17 | National Instruments Corporation | System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations |
US6339827B1 (en) | 1997-11-12 | 2002-01-15 | International Business Machines Corporation | Method for securing sensitive data in a LDAP directory service utilizing a client and/or server control |
US6091263A (en) | 1997-12-12 | 2000-07-18 | Xilinx, Inc. | Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM |
US6272669B1 (en) | 1997-12-15 | 2001-08-07 | Motorola, Inc. | Method for configuring a programmable semiconductor device |
US6230307B1 (en) | 1998-01-26 | 2001-05-08 | Xilinx, Inc. | System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects |
US6327253B1 (en) | 1998-04-03 | 2001-12-04 | Avid Technology, Inc. | Method and apparatus for controlling switching of connections among data processing devices |
US6092174A (en) | 1998-06-01 | 2000-07-18 | Context, Inc. | Dynamically reconfigurable distributed integrated circuit processor and method |
US6356862B2 (en) * | 1998-09-24 | 2002-03-12 | Brian Bailey | Hardware and software co-verification employing deferred synchronization |
US6041400A (en) * | 1998-10-26 | 2000-03-21 | Sony Corporation | Distributed extensible processing architecture for digital signal processing applications |
US6314553B1 (en) | 1998-11-02 | 2001-11-06 | Intel Corporation | Circuit synthesis and verification using relative timing |
US6357037B1 (en) | 1999-01-14 | 2002-03-12 | Xilinx, Inc. | Methods to securely configure an FPGA to accept selected macros |
US6324676B1 (en) | 1999-01-14 | 2001-11-27 | Xilinx, Inc. | FPGA customizable to accept selected macros |
US6260139B1 (en) | 1999-01-26 | 2001-07-10 | Xilinx, Inc. | FPGA control structure for self-reconfiguration |
US6308253B1 (en) * | 1999-03-31 | 2001-10-23 | Sony Corporation | RISC CPU instructions particularly suited for decoding digital signal processing applications |
US6308311B1 (en) | 1999-05-14 | 2001-10-23 | Xilinx, Inc. | Method for reconfiguring a field programmable gate array from a host |
JP3743487B2 (ja) | 1999-07-14 | 2006-02-08 | 富士ゼロックス株式会社 | プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路の再構成方法、プログラマブル論理回路装置用の回路情報の圧縮方法 |
US6288566B1 (en) | 1999-09-23 | 2001-09-11 | Chameleon Systems, Inc. | Configuration state memory for functional blocks on a reconfigurable chip |
US6255849B1 (en) * | 2000-02-04 | 2001-07-03 | Xilinx, Inc. | On-chip self-modification for PLDs |
US6584601B1 (en) * | 2000-02-07 | 2003-06-24 | National Instruments Corporation | System and method for converting graphical programs into hardware implementations which utilize probe insertion |
US6438737B1 (en) * | 2000-02-15 | 2002-08-20 | Intel Corporation | Reconfigurable logic for a computer |
US6326806B1 (en) | 2000-03-29 | 2001-12-04 | Xilinx, Inc. | FPGA-based communications access point and system for reconfiguration |
-
2002
- 2002-06-11 US US10/171,334 patent/US7024654B2/en not_active Expired - Lifetime
-
2003
- 2003-06-11 EP EP03253707A patent/EP1376416B1/en not_active Expired - Lifetime
- 2003-06-11 AT AT03253707T patent/ATE307360T1/de not_active IP Right Cessation
- 2003-06-11 DE DE60301915T patent/DE60301915D1/de not_active Expired - Lifetime
- 2003-06-11 JP JP2003167120A patent/JP2004110771A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013153851A1 (ja) * | 2012-04-11 | 2013-10-17 | 太陽誘電株式会社 | 再構成可能な半導体装置 |
JP2013217865A (ja) * | 2012-04-11 | 2013-10-24 | Taiyo Yuden Co Ltd | 再構成可能な半導体装置 |
US9287877B2 (en) | 2012-04-11 | 2016-03-15 | Taiyo Yuden Co., Ltd. | Reconfigurable semiconductor device |
JP2014132418A (ja) * | 2013-01-07 | 2014-07-17 | Renesas Electronics Corp | 半導体装置及びそのコマンド制御方法 |
Also Published As
Publication number | Publication date |
---|---|
DE60301915D1 (de) | 2005-11-24 |
ATE307360T1 (de) | 2005-11-15 |
EP1376416A1 (en) | 2004-01-02 |
US20030229877A1 (en) | 2003-12-11 |
EP1376416B1 (en) | 2005-10-19 |
US7024654B2 (en) | 2006-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004110771A (ja) | 構成可能なハードウェア・デバイスにおけるアナログ素子を構成するためのシステムおよび方法 | |
TW527549B (en) | Method for implementing a physical design for a dynamically reconfigurable logic circuit | |
US6898703B1 (en) | System and method for creating a boot file utilizing a boot template | |
US6971004B1 (en) | System and method of dynamically reconfiguring a programmable integrated circuit | |
US6425116B1 (en) | Automated design of digital signal processing integrated circuit | |
US9058447B2 (en) | Modifying a virtual processor model for hardware/software simulation | |
JP4896243B2 (ja) | マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス | |
US8171436B2 (en) | Converting portions of a software program executing on a processing system to hardware descriptions | |
JP3587095B2 (ja) | 情報処理装置 | |
US20190034175A1 (en) | System providing automatic source code generation for personalization and parameterization of user modules | |
JP2001504958A (ja) | ロジックデバイスのアレイを構成するための方法およびシステム | |
EP1004085A1 (en) | System and method for converting graphical programs into hardware implementations | |
WO2006020897A2 (en) | Design model for a hardware device-independent method of defining embedded firmware for programmable systems | |
KR20010067048A (ko) | 필드 프로그램가능 게이트 어레이를 프로그래밍하는 방법및 시스템 | |
US6978435B2 (en) | Apparatus for programming a programmable device, and method | |
Fawcett | Tools to speed FPGA development | |
JP4642304B2 (ja) | 汎用のハードウエアデバイス及び方法とそれと共に使用するツール | |
JP2008097131A (ja) | 回路構成情報生成装置、制御装置、回路検証システム、回路検証方法、回路構成情報生成プログラム及び制御プログラム | |
US20040122643A1 (en) | Apparatus and method for simulating switched-capacitor circuits | |
Moraes et al. | Development of a tool-set for remote and partial reconfiguration of FPGAs | |
JP4208919B2 (ja) | 活性化コードの生成方法 | |
JP4573328B2 (ja) | 半導体デバイス、半導体設計装置および半導体設計方法 | |
Jaafar et al. | Three Bit Subtraction Circuit via Field Programmable Gate Array | |
Leeser | Field Programmable Gate Arrays | |
Dillier | A Boot-Manager Core for a Processor Network on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |