JP2004094950A - プログラム可能なデバイスをプログラムするための装置および方法 - Google Patents

プログラム可能なデバイスをプログラムするための装置および方法 Download PDF

Info

Publication number
JP2004094950A
JP2004094950A JP2003300760A JP2003300760A JP2004094950A JP 2004094950 A JP2004094950 A JP 2004094950A JP 2003300760 A JP2003300760 A JP 2003300760A JP 2003300760 A JP2003300760 A JP 2003300760A JP 2004094950 A JP2004094950 A JP 2004094950A
Authority
JP
Japan
Prior art keywords
circuit
sub
programmable
design
user interface
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
Application number
JP2003300760A
Other languages
English (en)
Inventor
Howard C Anderson
ハワード・チャールズ・アンダーソン
Danny Austin Bersch
ダニー・オースティン・バーシュ
Ian Craig Macbeth
イアン・クレイグ・マクベス
Christopher Robin Schene
クリストファー・ロビン・シーン
Timothy James Streit
ティモシー・ジェームズ・ストリート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anadigm Inc
Original Assignee
Anadigm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anadigm Inc filed Critical Anadigm Inc
Publication of JP2004094950A publication Critical patent/JP2004094950A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

 【課題】 少なくとも1つの回路構成要素を一緒に配線することにより、少なくとも1つのサブ回路を実現することができるプログラム可能な回路デバイスをプログラムするための装置を提供する。
 【解決手段】 プログラム可能な回路デバイスは、プログラム可能な計算デバイス、ユーザ・インタフェース、および設計ツールを含む。ユーザ・インタフェースは、プログラム可能な計算デバイスに関連している。設計ツールは、プログラム可能な計算デバイスに関連していて、ユーザ・インタフェースのところでユーザと相互作用を行うように構成されている。設計ツールは、プログラム可能なデバイスのサブ回路の複数の構成、トポロジー、およびパラメータのうちの少なくとも1つを定義するための情報を含むサブ回路定義を含むプログラム可能な計算デバイスで実施されたコンピュータ・プログラム・コードを含む。本発明は、また、この目的のための方法も含む。
【選択図】   図1

Description

 本発明は、構成可能なデバイスに関し、特にアナログ回路構成要素のようなサブ回路および回路に構成することができる回路構成要素を有するプログラム可能なデバイスのプログラミングに関する。
(コンピュータ・プログラムのリストの付録への相互参照)
 本明細書の一部であるCD−ROM付録Aは、1つのファイルからなるCD−ROM付録である。CD−ROM付録Aは、ソフトウェア・プログラムを含むコンピュータ・プログラムのリストの付録である。付録Aは、引用によって本明細書の記載に援用する。コピーを含むCD−ROMの数は全部で2つであり、それぞれが、下記の1つのファイルを含む。
     名称        大きさ          作成日  
  GAINHALF    32,361     12−01−00
(著作権について)
 本特許明細書の開示の一部は、著作権により保護されている資料を含む。著作権の所有者は、特許商標庁の特許ファイルまたは記録に記載されている本特許明細書または特許の開示をファクシミリでコピーすることをすべての人に許可するが、そうでない場合には、すべての著作権を留保する。
 回路設計のいろいろな問題を解決するために、最近、構成可能なデバイスが盛んに使用されるようになってきている。構成可能なデバイスの一例としては、サブ回路および回路に構成することができる回路構成要素を含むプログラム可能なデバイスがある。構成可能なデバイスの一例としては、フィールド・プログラマブル・アナログ・アレイ(FPAA)がある。
 フィールド・プログラマブル・アナログ・アレイ(FPAA)は、アナログ回路構成要素およびスイッチの集合体からなる。特定の回路設計を実現する目的で、構成要素を相互に接続するためにスイッチを使用することができる。スイッチは、また、個々のアナログ回路構成要素の値を設定するためにも使用することができる。FPAAのスイッチを設定するために、任意のビット・ストリームをFPAAにダウンロードすることができ、FPAAは特定の回路を定義することができる。しかし、どんなに小さいFPAAでも、設定を必要とする数千のスイッチを有する。それ故、回路設計の問題およびスイッチ設定の問題を簡単に行うための技術の開発が待望されている。さらに、特定のアナログ回路設計をシミュレートするための技術の改善も待望されている。
 例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)は、種々のサブ回路および回路を実現するために、デジタル回路構成要素の集合体、およびデジタル構成要素を一緒に接続するために使用することができるスイッチの集合体を含む。しかし、フィールド・プログラマブル・アナログ・アレイ(FPAA)内のアナログ構成要素の設計および接続は、フィールド・プログラマブル・ゲート・アレイ(FPGA)内のデジタル構成要素の設計および接続よりかなり異なる。第一に、デジタル設計ソフトウェア・ツールは、アナログ領域で使用するように容易に適合させることができない。第二に、アナログ構成要素は、多くの場合、利得、周波数、抵抗等のような調整可能な値を含む。第三に、フィールド・プログラマブル・ゲート・アレイ(FPGA)と一緒に使用するシミュレータは、通常、アナログ回路には適用できないデジタル論理シミュレータである。
 周知の技術の場合、全カスタム集積回路設計は、比較的時間の掛かるもので、広範なアナログ設計の専門知識を必要とした。特に、プログラム可能なデバイスおよびFPAAを使用した場合には、アレイをプログラムするための適当なデータがあれば、回路を迅速に生産および変更することができる。しかし、そうするには、複雑で、アレイを構成する技術を使用する回路のアレイ・アーキテクチャおよび設計の両方の深い知識を必要とするカスタム・プログラミング・データを生成しなければならない。
 FPAAにより実施した回路機能の態様を変更するために、FPAAに隣接してマイクロプロセッサを設置しなければならない場合には、回路設計者は、アレイ・アーキテクチャ、その技術を使用する、FPAAが形成されている回路の設計、FPAAでそのような回路を実現するための特定のデータ・シーケンスの構造についての深い知識が必要であった。
米国特許第6,272,669 B1号 米国特許出願番号10/171,334
 それ故、上記技術は、実施するのが難しく非常な労力を必要とする複雑なカスタム・プログラミング・データの生成を含む。それ故、この問題を克服するためには改善が必要である。
 従って、アナログ構成要素を含むプログラム可能なデバイスをプログラムすることができるようにするためにも改善を行う必要がある。
 コンピュータ援用設計(CAD)ツールでサブ回路のグループを組み立てて回路を設計するための方法および装置が開発されている。CADツールを使用すれば、回路設計を回路を実現するプログラム可能なデバイスをプログラムするのに必要な、適当にフォーマットされたデータに変換することができる。
 ある態様によれば、本発明は、少なくとも1つの回路構成要素を一緒に配線することにより少なくとも1つのサブ回路を実現することができるプログラム可能な回路デバイスをプログラムするための装置を提供する。プログラム可能な回路デバイスは、プログラム可能な計算デバイス、ユーザ・インタフェース、および設計ツールを含む。ユーザ・インタフェースは、プログラム可能な計算デバイスに関連している。設計ツールは、プログラム可能な計算デバイスに関連していて、ユーザ・インタフェースのところでユーザと相互作用を行うことができるように構成されている。設計ツールは、プログラム可能なデバイスのサブ回路の複数の構成、トポロジー、およびパラメータのうちの少なくとも1つを定義するための情報を含むサブ回路定義を含むプログラム可能な計算デバイスで実施されたコンピュータ・プログラム・コードを含む。
 他の態様によれば、本発明は、プログラム可能なデバイスをプログラムするための装置を提供する。この装置は、プログラム可能なコンピュータ、ユーザ・インタフェース、およびコンピュータ・プログラム・コードを含む。ユーザ・インタフェースは、プログラム可能なコンピュータに関連している。コンピュータ・プログラム・コードは、プログラム可能なコンピュータで実施され、少なくとも1つのサブ回路定義を含む。少なくとも1つのサブ回路定義は、プログラム可能なデバイスでサブ回路を実現する目的で、回路構成要素を一緒に配線するために、ユーザ・インタフェースのところでユーザ入力に応答するサブ回路の少なくとも1つのパラメータに対する複数の値を定義するのに使用することができるプログラム可能なデバイスのサブ回路に関する情報を含む。
 さらに他の態様によれば、本発明は、プログラム可能な回路デバイスをプログラムするための方法を提供する。この方法は、プログラム可能なコンピュータに、回路構成要素に対する設計ツールおよびサブ回路定義を供給するステップと、プログラム可能なコンピュータにより、プログラム可能な回路デバイスでサブ回路を実現するために、回路構成要素を一緒に配線する回路設計を生成するステップとを含む。
 さらに他の態様によれば、本発明は、回路に構成することができる回路構成要素を有するプログラム可能なデバイスをプログラムするための装置を提供する。この装置は、プログラム可能なコンピュータおよびコンピュータ・プログラム・コードを含む。コンピュータ・プログラム・コードは、少なくとも1つのサブ回路定義を含むプログラム可能なコンピュータで実施される。サブ回路定義は、プログラム可能なデバイスのサブ回路構成要素を回路設計内に一緒に配線するための情報を含む。サブ回路定義は、サブ回路の一意の複数の構成を定義するために使用することができる。
 さらに他の態様によれば、本発明は、プログラマブル・アナログ・アレイ(FPAA)で回路を実現することができるようにするために、回路構成要素を一緒に構成するための方法を提供する。この方法は、ユーザが、プログラム可能なコンピュータのユーザ・インタフェースを通して、FPAAでサブ回路を実現するために、回路構成要素の構成を定義することができるサブ回路定義を含む命令によりプログラム可能なコンピュータをプログラムするステップと、ユーザ・インタフェースを通して、FPAAでサブ回路を実現する回路構成要素の特定の構成を定義するステップとを含む。
 添付の図面を参照しながら、本発明の好ましい実施形態について以下に説明する。
 米国特許法の本質的な目的、すなわち、「科学および有用な技術の進歩を促進する目的」(第1条第8節)を推進するために本明細書を提出する。
 本出願人の発明の好ましい実施形態について説明する。図面を参照しながら、プログラム可能な回路デバイスをプログラムするためのシステムおよび方法を含む例示としての実施例について以下に説明し、記述する。好ましい実施形態を参照しながら本発明について説明するが、本発明はこのような実施形態に制限されるものではなく、上記実施形態よりは広い場合があるが、添付の特許請求の範囲内に含まれる別のもの、等価のもの、および変形したものを含むことを理解されたい。
 本発明が分りにくくなるのを避けるために、本発明の実施に密接に関連している詳細な点だけを詳細に説明するが、必要に応じて、現在分かっている周辺の詳細な点を、該当する技術において現在分かっているものとして引用により本明細書の記載に援用するものとする。
 本明細書においては、「サブ回路」という用語は、より大きい回路のマクロ構成要素として使用するために入手することができる接続している構成要素のネットワークを意味する。サブ回路は、ある回路の一部または全部を形成することができる。回路は、複数の接続しているサブ回路を含むことができる。例えば、スーパーヘテロダイン受信機回路は、完全なスーパーヘテロダイン受信機回路を形成するために一緒に接続している無線周波(RF)増幅器サブ回路、発振器サブ回路、ミキサ・サブ回路、中間周波(IF)増幅器サブ回路、検出器サブ回路、オーディオ増幅器サブ回路、および電源サブ回路を備える。
 本明細書においては、「フィールド・プログラマブル・アナログ・アレイ(FPAA)」という用語は、プログラム可能な相互接続および構成可能なアナログ・ブロックのアレイを使用するアナログ回路を実施するためにプログラムし、構成することができる集積回路を意味する。より詳細に説明すると、FPAAは、アナログ回路構成要素およびスイッチの集合体を含む。特定の回路設計を実現する目的で構成要素を相互に接続するためにスイッチを使用することができる。スイッチは、また、個々のアナログ回路構成要素の値を設定するためにも使用することができる。2進ビット・ストリームをプログラム可能なデバイスまたはFPAAにダウンロードすることにより、デバイスをプログラムするためにスイッチを設定することができ、デバイスは、デバイス上の特定の回路またはサブ回路を定義する。どんなに簡単なFPAAでも、特定の回路設計を実現するために設定しなければならない数千のスイッチを有する。それ故、回路設計の問題およびスイッチ設定の問題を簡単に行うために、本明細書に記載する改善が使用される。さらに、同様に、本明細書に記載した改善による特定のアナログ回路設計をシミュレートするために設置されている。
 本明細書においては、「C」コードという用語は、プログラム・コードの特定の例を意味する。PASCAL、ビジュアル・ベーシック、Fortranおよび他の周知のプログラム・コードを含む他の特定のプログラム・コードも使用することができることを理解されたい。
 図1は、参照番号10で示すプログラム可能な回路デバイスをプログラムするために、基本的なシステム構成を使用する本出願人の発明の好ましい実施形態を示す。システム10は、パーソナル・コンピュータ(PC)14のようなプログラム可能な計算デバイス12を含む。
 図1に示すように、システム10は、プログラム可能な制御デバイス18を使用するプログラム可能な回路デバイス20をプログラムすることができるような方法で、ソフトウェアおよびハードウェアの組合わせにより実行される。より詳細に説明すると、ソフトウェアは、中央処理装置(CPU)プログラムによりコントローラ・プログラムを開発する際に使用するために、緊密に結合している制御を必要とする情報を入手することができるように、プログラム可能な回路デバイス20をプログラムするためのエクスポートされたデバイス情報の形で供給される。プログラム可能な制御デバイス18は、次に、(a)構成データの全部または一部を修正し、次に、構成データをプログラム可能な回路デバイス20のレジスタに適用することにより、または(b)プログラム可能な回路デバイス20のレジスタ内に含まれている構成データの全部または一部を直接修正することにより、プログラム可能な回路デバイス20が、修正した構成データを使用できるようにする。構成データを使用して、プログラム可能な回路デバイス20は、ソフトウェアの結果としてプログラムされる。システムのソフトウェアの態様は、従来技術のシステムの通常の構成データの他に、プログラム可能な回路デバイス20の機能の全部または一部を修正するために、第2の構成可能なデバイスが使用することができるコードを生成する。
 図1に示すように、ある形のプログラム可能な計算デバイス12は、パーソナル・コンピュータ(PC)14を備える。PC14は、マイクロコントローラ・ユニット(MCU)22、メモリ28、設計ツール30、ユーザ・インタフェース34、および構成可能なアナログ・モジュール(CAM)ライブラリ40を含む。MCU22は、処理回路26を含む中央処理装置(CPU)24を含む。設計ツール30は、1つまたはそれ以上の回路設計36が生成され、モデル化されるコンピュータ援用設計(CAD)ツール32を含む。各回路設計36は、ネット・リスト38の形をしている回路モデル情報を含む。
 CAMライブラリ40は、各サブ回路に関する情報を含む複数のサブ回路定義42を含む。ある場合には、サブ回路定義は、構成可能なアナログ・モジュール(CAM)である。それ故、CAMライブラリ40は、複数のCAMを備える。プログラム可能な制御デバイス18は、アプリケーション・プログラム44およびユーザ・インタフェース46を含む。動作中、アプリケーション・プログラム44は、関連するアプリケーション・システムで、ソフトウェアの監視および制御機能を実施するためのコンピュータ・プログラム・コードを含む。ユーザ・インタフェース46により上記監視および制御機能が可能になる。
 ある形のプログラム可能な回路デバイス20は、フィールド・プログラマブル・アナログ・アレイ(FPAA)21を備える。FPAA21は、ハードウェア48およびメモリ56を含む。ハードウェア48は、プログラミングにより複数の一意の構成に構成することができる。より詳細に説明すると、回路50は、サブ回路52および回路構成要素54を必要な構成に配線または接続することによりFPAA21で実現される。
 設計ツール30は、AnadigmDesigner2を備える。初期のバージョンであるAnadigmDesignerは、現在、英国のAnadigm社が公開していて、http://www.anadigm.comからダウンロードして使用することができ、引用によって本明細書の記載に援用する。将来のリリース・バージョンは、AnadigmDesignerの上記初期のバージョンに追加される本発明の態様を含むものと思われる。その詳細については以下に説明する。
 上記技術によれば、プログラミング・データの生成が、コンピュータ援用設計(CAD)ツールの使用により非常に簡単になる。CADツールは、回路設計者に周知の方法で設計を表し、FPAAをプログラムするのに必要な対応するデータを自動的に生成する。コンピュータ援用設計(CAD)ツールを使用しない場合には、このようなプログラミングを修正または生成する機能は制限され、ほとんど実際には使用できない。
 動作中、設計ツール30は、構成データの最初の一組を生成する。構成データは、エクスポートしたデバイス情報によりPC16内のコンパイラ(図示せず)に供給される。さらに、またはそうしたい場合には、構成データは、PC16のユーザ・プログラム(図示せず)によりコンパイラに供給される。引用によって本明細書の記載に援用する、「プログラム可能な半導体デバイスを構成するための方法」(Method for Configuring a Programmable Semiconductor Device)という名称の米国特許第6,272,669 B1号が、プログラム可能な半導体デバイスの構成方法をより詳細に開示している。引用によって本明細書の記載に援用する、「構成可能なハードウェア・デバイスでアナログ素子を構成するためのシステムおよび方法」(System and Method for Configuring Analog Elements in a Configurable Hardware Device)という名称の米国特許出願番号10/171,334が、構成可能なハードウェア・デバイスでアナログ素子を構成するための装置および方法をさらに詳細に開示している。
 公開されていて使用することができる市販のAnadigmDesignerで現在入手できるこれらの上のAnadigmDesigner2に追加された特定の改善としては、CADツールで、サブ回路設計のグループを一緒に組み立てることにより回路を設計する機能等がある。設計が済むと、回路(またはサブ回路)設計を、フィールド・プログラマブル・アナログ・アレイ(FPAA)のようなプログラム可能なデバイスで実現することができる。CADツールは、回路設計をデバイスをプログラムするのに必要な適当にフォーマットされたデータに変換するための機構を供給する。各サブ回路に対するサブ回路定義は、CADツールと互換性を持つが、CADツールの一部ではない。サブ回路定義は、個々にまたはグループで携帯することができる。より詳細に説明すると、サブ回路定義は、それをCADツールと一緒に使用するために、コンパイルする必要はない。それ故、サブ回路定義は、CADツールとの互換性を維持しながら、関連するサブ回路の機能を変更するために、容易に生成または修正することができる。
 サブ回路定義は、いくつかのことを行うために必要なサブ回路に関する情報を含む。第1に、サブ回路定義は、サブ回路の複数の構成、トポロジーおよびパラメータを定義するために必要なサブ回路に関する情報を含む。第2に、サブ回路定義は、これらの複数の構成の制御を可能にするユーザ・インタフェースを定義し、制御するために必要なサブ回路に関する情報を含む。第3に、サブ回路定義は、ユーザの選択に基づくサブ回路の構成を修正するのに必要なサブ回路に関する情報を含む。第4に、サブ回路定義は、サブ回路の正しい使用に関するエラーのチェックを行うために必要なサブ回路に関する情報を含む。第5に、サブ回路定義は、もっと大きなアナログ回路でのサブ回路の動作をシミュレートするのに必要なサブ回路に関する情報を含む。第6に、サブ回路定義は、サブ回路の記号的表示を行うのに必要なサブ回路に関する情報を含む。第7に、サブ回路定義は、サブ回路のバージョン数を決定するのに必要なサブ回路に関する情報を含む。第8に、サブ回路定義は、特定のCADツールとのサブ回路の互換性、または特定のCADツールのバージョン数を決定するのに必要なサブ回路に関する情報を含む。第9に、サブ回路定義は、FPAAのようなプログラム可能なデバイスとのサブ回路の互換性を決定するのに必要なサブ回路に関する情報を含む。
 サブ回路に関する情報の中のあるものは、インタープリタ・コードに実現することができるアルゴリズムの形で含まれている。アルゴリズム内の情報が、CADツール内に記憶しているデータ、およびCADツールが作動したユーザ・インタフェースから入手したデータと結合すると、アルゴリズムは、必要な情報をCADツールに返送する。例えば、ユーザの選択(上記項目3)に応じて、サブ回路の構成の修正に関する情報はこの方法で処理される。
 (図1の)CADツール32はいくつかのことを実行する機能を有する。第1に、CADツールは、サブ回路定義に含まれるデータを読み出すことができる。第2に、CADツールは、ユーザが、サブ回路をもっと大きい回路に組み立てることができるユーザ・インタフェースを供給する。第3に、CADツールは、ユーザが、そのサブ回路設計の構成および動作を変更することができるように、各サブ回路に対してユーザ・インタフェースを供給することができる。第4に、CADツールは、サブ回路定義に含まれているインタープリタ・コードを作動させることができる。第5に、CADツールは、ユーザ・インタフェースに、特殊なプログラム可能なデバイスに特有な機能を供給することができる。第6に、CADツールは、サブ回路定義に含まれる回路設計および情報によりシミュレーションをセットアップおよび実行することができる。第7に、CADツールは、シミュレーションの結果を表示することができる。第8に、CADツールは、プログラム可能なデバイスにダウンロードするために、回路設計を適当にフォーマットされたデータに変換することができる。第9に、CADツールは、適当にフォーマットされたデータをプログラム可能なデバイスに容易にダウンロードすることができる。
 本発明の実施例により、有意な設計の専門知識を、シミュレーションにより示すように、サブ回路トポロジー、サブ回路トポロジーおよび構成要素の値のユーザ・インタフェースが表示するもっと高いレベルのパラメータとの関係、およびサブ回路の性能を含むサブ回路定義内に入れることができる。サブ回路定義は、CADツールと一緒に、プログラム可能なデバイス・アーキテクチャの特定の詳細を含む。それ故、この技術を使用する人は、回路設計またはプログラム可能なデバイスの専門家でなくてもよい。それどころか、ユーザは、サブ回路のユーザ・インタフェースおよびCADツールが表すもっと高いレベルの抽出を行うことができる。それ故、回路の設計、およびFPAAチップをプログラムするための適当なフォーマットへの回路の変換の両方を比較的迅速に容易に行うことができる。
 構成可能なアナログ・モジュール(CAM)の形をしているサブ回路定義は、FPAAチップのようなプログラム可能なデバイスで構成することができる1つまたはそれ以上のサブ回路(回路)の完全な内蔵定義を含む。サブ回路定義は、サブ回路定義の内蔵部分を形成し、他のサブ回路と密接に相互作用を行う「C」コードを含む。CAMは、構成およびシミュレーション・モデルを定義する「C」コードの「断片」(snippet)または比較的小さなセグメントを含む。
 図2〜図7は、本発明の1つの可能な実施例を示す。しかし、もっと広い適用を有する他の実施例も可能であり、添付の特許請求の範囲内に含まれることを理解されたい。
 図2は、AnadigmDesigner2の半サイクル利得段58を実現する特定のアナログ回路(またはサブ回路)のセットアップである。AnadigmDesigner2のアプリケーションをスタートすると、ユーザに対して、設計ツール・アプリケーション・ウィンドウ62内に図2のスクリーン画像60が提示される。特定のチップ設計ができるようにするために、AN220E04のFPAAチップ設計64が、作業スペース66内に表示される。
 スクリーン画像60は、ヘッダ68、ユーザが選択できるように複数のメニュー項目71〜73が表示されるメニューバー70、複数の選択することができるツールバー・ボタン76および78が表示されるツールバー74を含む。
 図2に示す「編集」、「シミュレーション」、「構成」および「設定」に対する特定のメニュー項目を除いて、メニューバー70の残りのメニュー項目は、AnadigmDesigner、すなわち、AnadigmDesigner2の初期のバージョンで現在使用できる。それ故、このような他のメニュー項目の機能的詳細は、本発明が分かりにくくなると困るので、本明細書においてはあまり詳細には説明しない。代わりに、「編集」および「シミュレーション」メニュー項目71および73が供給する追加の機能および詳細について以下により詳細に説明する。
 チップ設計64は、AnadigmDesigner2により特定のチップ設計が生成する最初のテンプレートを供給する。より詳細に説明すると、チップ設計64は、入力セル67および69のような複数の入力セル、および出力セル77および79のような複数の出力セルを含む。
 本発明の実施例によれば、サブ回路定義は、CADツールのCAMライブラリ内に位置する構成可能なアナログ・モジュール(CAM)を備える。一実施例によれば、CAMは、サブ回路記述に対応する特殊なサブ回路を定義するために必要なすべての情報を含む1つのテキスト・ファイルである。図2の半サイクル利得段58は、CAMの一例である。
 図2に示すように、一組の信号発生器95および97が、入力セル67の入力リードに接続している。各信号発生器95および97は、後で必要な入力ピンのところにマウスおよびカーソルにより置かれる信号発生器95および97に対するアイコンを始動させるツールバー・ボタン78を選択することにより生成される。信号発生器95または97のアイコンを選択するために右クリックすることによりメニュー項目が表示される。次に、「信号発生器設定」というタイトルの選択したメニュー項目が表示される。このようなメニュー項目を選択すると、図4のスクリーン画像124が、すなわち、(図4の)信号発生器制御ダイアログ・ボックス125が始動する。
 さらに、ツールバー・ボタン76を選択することにより、サブ回路設計内の選択した位置に複数のオシロスコープ・プローブ87,89,91および93を適用することができる。それにより、マウスを一回左クリックすることにより、コンピュータのマウスおよびカーソルにより位置決めおよび設置することができる移動可能なオシロスコープ・アイコンが表示され、カーソルは適当なノードのところに位置している。設置すると、ユーザは、「オシロスコープ」メニュー項目を含むメニューを始動するオシロスコープ・プローブ・アイコン87,89,91または93上を右クリックすることができる。マウスおよびカーソルによりメニューを選択すると、図5のオシロスコープ・ダイアログ・ボックス157が始動する。
 スクリーン画像60は、対応する「半サイクル利得段」サブ回路の適当な構成を決定するために、インタープリタ・コードと一緒に使用することができるユーザが選択したオプションをユーザにレンダリングすることができる。構成は、対応するCAM内に含まれているネット・リストの中の1つにより指定される。各ネット・リストは、コンデンサ、演算増幅器(オペアンプ)、およびFPAAまたはチップ上に位置するその他のアナログ構成要素への参照を含む。ネット・リストは、また、「半サイクル利得段」のユーザが選択した構成を実現するするための、これらの構成要素の接続方法を示す接続情報も含む。
 より詳細に説明すると、図3は、(図2の)半サイクル利得段58用のCAMパラメータ・ダイアログ・ボックス81に対するスクリーン画像80である。ユーザは、(図2の)「編集」ボタン71を選択することによりスクリーン画像80へとナビゲートし、次に、「編集」ボタン71から垂れ下がっているプルダウン・メニューから「新しいCAM挿入」(図示せず)を選択する。次に、「CAM選択」ダイアログ・ボックス(図示せず)が表示されるので、ユーザは、図3の半サイクル利得段CAM記述に対する、対応するディスプレイ・スクリーン80およびユーザ・インタフェース83をスタートするためには、スクロール・ダウン・リストから複数のCAMの中の1つを選択し、「OK」ボタンをクリックしさえすればよい。
 図3に示すように、CAMは、ユーザ・インタフェース83を表示する「CAMパラメータ設定」ダイアログ・ボックス81を設定するために使用される情報を含む。図2の半サイクル利得段CAMに対するユーザ・インタフェース83は、それによりユーザが、サブ回路定義に基づいて、結果として得られるサブ回路の特性を調整することができる種々のオプションを含む。
 ユーザ・インタフェース83は、「CAMパラメータ設定」へのダイアログ・ボックス81の機能を記述しているヘッダ82を含む。ユーザ・インタフェース83は、また、「事例の名称およびクロック周波数」フィールド84、「注」フィールド86、「記号」フィールド88、「CAMオプション」フィールド90、および「CAMパラメータ」フィールド92を含む。ユーザ・インタフェース83は、さらに、「OK」ボタン94、「キャンセル」ボタン96、「ヘルプ」ボタン98、および「MCUコード」ボタン100を含む。
 「事例の名称およびクロック周波数」フィールド84は、「事例の名称」記述子ボックス104、および「クロック周波数」スクローリング・リスト・ボックス106を含む。記述子ボックス104内の事例の名称は、サブ回路定義により現在構成中のサブ回路の名称を識別する。「クロック周波数」スクローリング・リスト・ボックス106により、ユーザは、ダイアログ・ボックス81内で識別され、記号88により表示される各CAMのサブ回路のクロック周波数を選択的に構成することができる。
 「注」フィールド86は、ダイアログ・ボックス81に関連するCAMに対応するサブ回路定義により、現在構成中のサブ回路に関する情報を含む。例えば、特定の回路特性を「注」フィールド86内にテキストにより表示することができる。
 「記号」フィールド88は、各CAMにより識別され、ダイアログ・ボックス81により、関連するサブ回路定義により構成されるサブ回路の図形的記述を含む。図3に示すように、半サイクル利得段回路の表示は、「記号」フィールド88内に表示される。
 「CAMオプション」フィールド90は、ユーザが、ユーザ・インタフェース83により、ダイアログ・ボックス81内で識別した、結果として得られるサブ回路設計に対するサブ回路記述の構成をさらに調整することができる「極性」ラジオ・ボタン108および110、および「サンプリング入力」ラジオ・ボタン112および114を含む。例えば、ユーザは、ラジオ・ボタン108および110をそれぞれ選択することにより、結果として得られる半サイクル利得段サブ回路を非倒置とするか、倒置とするかを選択することができる。さらに、サンプリング入力段階を、「段階1」ラジオ・ボタン112および「段階2」ラジオ・ボタン114をそれぞれ選択することにより選択することができる。
 「CAMパラメータ」フィールド92は、パラメータとして「利得」を識別する「パラメータ」記述子フィールド116、「値」入力フィールド118、「制限」範囲フィールド120、および「実行済み」記述子フィールド122を含む。図3に示すように、フィールド92は、「パラメータ」記述子フィールド116内に「利得」を含み、フィールド118内に「1」の「値」を有し、フィールド120内に0.01〜100の「制限」範囲を有し、フィールド122内には、1.00の「実行済み」値を有する。
 「OK」ボタン94により、ユーザは、ダイアログ・ボックス81により選択したかまたは入力した構成オプションを選択的に受け入れることができる。「キャンセル」ボタン96により、ユーザは、ダイアログ・ボックス81により現在表示されているが、未決定の構成オプションをキャンセルすることができる。「ヘルプ」ボタン98を押すと、ユーザに対してヘルプ・メニューが表示され、ダイアログ・ボックス81の使用に関する使用方法およびナビゲーションのためのヘルプを提供する。最後に、「Cコード」ボタン102を押すと、新しいウィンドウが表示され、それによりユーザは、マイクロプロセッサを使用している場合には、FPAAを動的に更新するために、マイクロプロセッサと一緒に使用することができる機能を選択することができる。
 付録Aの図3の「半サイクル利得段」の構成可能なアナログ・モジュール(CAM)は、また、半サイクル利得段に対する利得および極性のような対応する回路(または、サブ回路)に対する種々のパラメータをユーザが設定することができるようにするために使用することができる情報も含む。図3は、付録AのCAM内に含まれる情報から生成されるスクリーン画像80内のダイアログ・ボックス81を示す。例示としての「半サイクル利得段」CAMは、付録Aに示す通りで、図3のダイアログ・ボックス81を生成するために使用されるCAMファイルの内容を含む。図3のダイアログ・ボックス81が示す半サイクル利得段CAMは、また、ユーザが供給する値に基づいて、フィールド・プログラマブル・アナログ・アレイ(FPAA)内のアナログ構成要素に対する値を計算するのに使用することができる式を含む。例えば、利得は2つのコンデンサの値の比により決定される。ユーザは単に利得に対する値を入力しさえすれば、必要な利得を実現または決定する比を発見する目的で、2つのコンデンサに対する適当な値を計算するために、CAM内の式の解釈が行われる。
 さらに、(図3の)付録AのCAMは、回路設計中に使用した場合、CAMの動作をシミュレートするために使用することができる「C」コードの形をしている式を含む。これらの式は、シミュレーションを実行中に、「C」インタープリタで使用することができる。
 CAMは、また、ビットマップ情報、およびその上にまたはその代わりとして、表示することができる線画情報を含む。CAMは、また、複数のビットマップ、およびそうしたい場合、またはさらに、CAMサブ回路の異なる構成に対応する線画を含むこともできる。
 図1に戻って説明すると、CADツール32は、AN20シリーズのFPAA(またはチップ)と一緒に使用するために構成されたAnadigmDesignerを備える。次に、CAMは、すでに定義したように、ユーザの制御の下で、CADツール32内に読み込まれる。CADツール32の目的は、ユーザがCAMを選択することができるようにし、CAMに対する構成を選択することができるようにし、(利得または周波数のような)CAMに対するパラメータを設定できるようにし、CAMをコンピュータ・スクリーン上に設置することができるようにし、CAMをコンピュータ・スクリーンの周囲で移動させることができるようにし、CAMに対応する回路内の接点に「ワイヤ」を取り付けることができるようにし、もっと複雑な回路を形成するために、回路設計で回路素子を一緒に配線することができるようにし、回路をシミュレートすることができるようにし、シミュレーションの結果を表示することができるようにし、FPAA(またはチップ)にダウンロードした場合に、回路を実施するビット・ストリームを生成することができるようにし、また、実際に、回路をテストすることができるように、FPAA(または、チップ)にビット・ストリームを実際にダウンロードすることができるようにすることである。
 図4は、「信号発生器制御」ダイアログ・ボックス125用のスクリーン画像124である。ダイアログ・ボックス125は、「信号発生器制御」ヘッダ126、波形ボタン128,130,132,134,136および138、および「波形データ生成」フィールド140、および「終了」ボタン142を含む。ボタン128,130,132,134,136および138は、(図2の)信号発生器ボタン78が選択された場合、(図2の)信号発生器95または97が、すでに設置されている指定のピンまたはセルのところで、対応する信号を生成するために、必要な信号発生器を構成するためにそれぞれ選択される。
 例えば、波形ボタン128を選択すると、選択したピンのところに正弦波を供給するように信号発生器が構成される。波形ボタン130を選択すると、方形波を供給するように信号発生器が構成される。波形ボタン132を選択すると、三角波を供給するように信号発生器が構成される。波形ボタン134を選択すると、のこぎり波を供給するように信号発生器が構成される。波形ボタン136を選択すると、ディラック・インパルスを供給するように信号発生器が構成される。最後に、波形ボタン138を選択すると、任意の波形を供給するように信号発生器が構成される。
 「波形データ生成」フィールド140は、「振幅設定」フィールド144、「電圧オフセット設定」フィールド146、および「周波数設定」フィールド148を含む。「振幅設定」フィールド144は、信号発生器に対して選択した信号の電圧振幅を入力するための「ボルト」入力フィールド150を含む。「電圧オフセット設定」フィールド146は、ユーザが、信号発生器に対して選択した信号の電圧オフセットを設定することができる「ボルト」入力フィールド152を含む。「周波数設定」フィールド148は、ユーザが、信号発生器に対して選択した信号の周波数を設定することができる「ボルト」入力フィールド154を含む。
 図5は、「オシロスコープ」ダイアログ・ボックス157に対するスクリーン画像156である。(図2の)「オシロスコープ」ボタン78を選択すると、(図2の)チップ設計64内の特定の位置にマウスカーソルにより位置させ、設置することができる移動可能なオシロスコープ・アイコンが表示される。マウスカーソルでクリックすることにより、アイコンが適当なノードのところに位置すると、ユーザは、オシロスコープ・プローブ・アイコン87(図2参照)上で右クリックすることができ、それにより、「オシロスコープ」メニュー項目を含むメニューが表示される。マウスカーソルにより、「オシロスコープ」メニュー項目を選択すると、図5のオシロスコープ・ダイアログ・ボックス157が表示される。
 それ故、「オシロスコープ」ダイアログ・ボックス157は、「チャネル選択」ボックス170,172,174および176が識別したチャネルに対応するチャネル1〜4に対して、時間領域出力162,164,166および168が表示される信号出力表示フィールド158を含む。例を挙げて説明すると、オシロスコープ出力波形162は、「チャネル1」に対応する(図2の)オシロスコープ・プローブ・アイコン87が識別したオシロスコープ出力に対応する。同様に、「チャネル2」に対する出力は、(図2の)オシロスコープ・プローブ89に対応する出力164からなる。「チャネル3」に対する出力166は、(図2の)オシロスコープ・プローブ・アイコン91に対応する「チャネル3」に対するものである。最後に、出力168は、(図2の)オシロスコープ・プローブ・アイコン93からの「チャネル4」に対応する。
 「オシロスコープ」ダイアログ・ボックス157は、チャネル選択ボックス170,172,174および176が表示される「データ表示」フィールド160を含む。「区分毎のボルト」スクローリング・リスト・ボックス178は、縦座標、すなわち、y軸の電圧のスケールに対応する各チャネルのためのものである。第2のスクローリング・リスト・ボックス180は、「位置」スクローリング・リスト・ボックス180に対するチャネル1〜4のためのものである。各チャネル1〜4は、また、表示フィールド158内の横座標、すなわち、x軸に沿った対応する時間における各チャネルに対して、特定の電圧値が表示される「電圧」データ入力フィールド182を含む。さらに、「区分毎の時間」スクローリング入力フィールド184により、ユーザは、信号出力表示フィールド158内で区分毎の時間を調整することができる。さらに、「時間」入力フィールド186は、表示フィールド158内のカーソル・ラインの位置が示す選択した時間に対応し、また、個々のデータ入力フィールド182内に表示された電圧に対応する時間を表示する。
 スクローリング時間ラインバー188により、ユーザは、表示フィールド158内の横座標時間ラインに沿って特定の位置を選択することができ、次に、チャネル1〜4に対する入力フィールド182内、および時間入力フィールド186内に対応する電圧を表示することができる。それ故、スクローリング時間ラインバー188は、データ・フィールド158の横座標、すなわち、時間領域に対応する。
 「グリッド」ボタン190により、ユーザは、(図5の)信号出力表示フィールド158内に示すように、グリッド・ラインをオン/オフすることができる。「カーソル」ボタン192は、ユーザがマウスにより移動することができるカーソルをスクリーン画像156上に置く。「電圧」データ入力フィールド182および「時間」入力フィールド186は、カーソル位置のところのデータに対応する値を表示する。「閉じる」ボタン194により、ユーザは、スクリーン画像156を閉じることができる。
 図6は、プログラム可能な回路デバイスをプログラムするための例示としての1つの方法である。図6に示すように、論理的流れ図は、プログラム可能な回路デバイス、特に、フィールド・プログラマブル・アナログ・アレイ(FPAA)のようなアナログ素子を有するプログラム可能な回路デバイスをプログラムするステップを示す。
 ステップ「S1」において、プログラム可能なコンピュータに、設計ツール、サブ回路定義、およびユーザ・インタフェースが供給される。ステップ「S1」を実行した後で、プロセスはステップ「S2」に進む。
 ステップ「S2」において、回路設計を生成するステップは、特定のサブ回路定義内に含まれているデータを読み出す。ステップ「S2」の後で、プロセスはステップ「S3」に進む。
 ステップ「S3」において、回路設計を生成するステップは、ユーザ・インタフェース設計によるサブ回路設計の構成を実行する。ステップ「S3」の後で、プロセスはステップ「S4」に進む。
 ステップ「S4」において、システムは、プログラム可能な回路デバイス内でサブ回路を実現するために、回路構成要素を一緒に配線する回路設計またはサブ回路設計を生成する。ステップ「S4」を実行した後で、プロセスはステップ「S5」に進む。
 ステップ「S5」において、回路設計およびサブ回路定義に含まれている情報によりシミュレーションをセットアップし、実行するために、ユーザは、設計ツールによりシステムを構成する。ステップ「S5」を実行した後で、プロセスはステップ「S6」に進む。
 ステップ「S6」において、プロセスは、設計ツールによる回路設計に対する回路シミュレーションの結果を表示する。ステップ「S6」を実行した後で、プロセスはステップ「S7」に進む。
 ステップ「S7」において、プロセスは、プログラム可能なデバイスにダウンロードするために、回路設計またはサブ回路設計を、適当にフォーマットされたデータに変換する。ステップ「S7」を実行した後で、プロセスは終了する。
 図7は、フィールド・プログラマブル・アナログ・アレイ(FPAA)内で回路を実現することができるように、回路構成要素を一緒に構成するための例示としてのもう1つの方法を示す。
 ステップ「S1」において、プログラム可能なコンピュータに、設計ツール、サブ回路定義、およびユーザ・インタフェースが供給される。ステップ「S1」を実行した後で、プロセスはステップ「S2」に進む。
 ステップ「S2」において、プロセスは、FPAAでサブ回路を実現する目的で、ユーザがプログラム可能なコンピュータのユーザ・インタフェースにより回路構成要素の構成を定義することができるようにするサブ回路定義を含む命令によりプログラム可能なコンピュータをプログラムする。ステップ「S2」を実行した後で、プロセスはステップ「S3」に進む。
 ステップ「S3」において、プロセスは、対応するサブ回路のトポロジーを定義する。ステップ「S3」を実行した後で、プロセスはステップ「S4」に進む。
 ステップ「S4」において、プロセスは、サブ回路のパラメータを定義する。ステップ「S4」を実行した後で、プロセスはステップ「S5」に進む。
 ステップ「S5」において、プロセスは、さらに、命令によりユーザ・インタフェースを制御する。ステップ「S5」を実行した後で、プロセスはステップ「S6」に進む。
 ステップ「S6」において、プロセスは、サブ回路の構成を修正するために、ユーザ・インタフェースによりユーザの選択を供給する。ステップ「S6」を実行した後で、プロセスはステップ「S7」に進む。
 ステップ「S7」において、プロセスは、回路構成要素をサブ回路および回路のうちの1つと一緒の配線を含む構成を定義する。ステップ「S7」を実行した後で、プロセスはステップ「S8」に進む。
 ステップ「S8」において、プロセスは、回路構成要素をFPAAのための回路設計に組み立てる。ステップ「S8」を実行した後で、プロセスは終了する。
 特許法に従って、構造上および方法上の機能に多かれ少なかれ特有の言語により本発明を説明してきた。しかし、本発明は、図面に示し今迄説明してきた特定の機能に限定されないことを理解されたい。何故なら、本明細書で開示した手段は、本発明を実行するための好適な形からなるからである。それ故、本発明は、等価の原則に従って正しく解釈した添付の特許請求の範囲の正しい範囲内で任意の形にし、また任意の修正を行うことができる。
 本発明で使用するコンピュータープログラムリスト(付録A)は下記のとおりである。
GAINHALF
// Invention Title:
// APPARATUS FOR PROGRAMMING
// A PROGRAMMABLE DEVICE, AND METHOD
//
// Computer Program Listing Using CD-ROM Contents:
//
ADVERSION: 2.0.16
MODULE:

MODULE_TYPE: STANDARD
MODULE_ID: GainHalf
IPCHECKSUM: 205POL333P6MP2
MODULE_NAME: Half Cycle Gain Stage
MODULE_VERSION: 1.0.3
ADVERSION: 2.0.16
CHIPVERSION: AN220E04, AN120E04

// Created 1 DEC 2000 - TJS
// Copyright (C) 2000, 2001, 2002 Anadigm. All rights reserved.

CIRCUIT:
NETLIST: noninv_p1
INPUT: In 1 0 left 0 18
OUTPUT: Out 0 1 right 49 18
CLOCKA:
SUBNET:
dynswitch3 Din node1 In SigGnd clockA phase1
cap Cin node2 node1
cap Cout node2 node3
dynswitch3 Dout node3 Out SigGnd clockA phase2
dynswitch2 Doff node2 Out clockA phase1
opamp A1 Out node2
ENDSUBNET:
ENDNETLIST:

NETLIST: noninv_p2
INPUT: In 0 1 left 0 18
OUTPUT: Out 1 0 right 49 18
CLOCKA:
SUBNET:
dynswitch3 Din node1 In SigGnd clockA phase2
cap Cin node2 node1
cap Cout node2 node3
dynswitch3 Dout node3 Out SigGnd clockA phase1
dynswitch2 Doff node2 Out clockA phase2
opamp A1 Out node2
ENDSUBNET:
ENDNETLIST:

NETLIST: inv_p1
INPUT: In 1 0 left 0 18
OUTPUT: Out 1 0 right 49 18
CLOCKA:
SUBNET:
dynswitch3 Din node1 In SigGnd clockA phase1
cap Cin node2 node1
cap Cout node2 node3
dynswitch3 Dout node3 Out SigGnd clockA phase1
dynswitch2 Doff node2 Out clockA phase2
opamp A1 Out node2
ENDSUBNET:
ENDNETLIST:

NETLIST: inv_p2
INPUT: In 0 1 left 0 18
OUTPUT: Out 0 1 right 49 18
CLOCKA:
SUBNET:
dynswitch3 Din node1 In SigGnd clockA phase2
cap Cin node2 node1
cap Cout node2 node3
dynswitch3 Dout node3 Out SigGnd clockA phase2
dynswitch2 Doff node2 Out clockA phase1
opamp A1 Out node2
ENDSUBNET:
ENDNETLIST:
ENDCIRCUIT:

DIALOGITEMS:
DIALOGITEMLIST: DEFAULT
VALUE: G Gain 1.0 "0.01 to 100"
RADIO: pol Polarity "Non-inverting" "Inverting"
RADIO: isp "Input Sampling Phase" "Phase 1" "Phase 2"
ENDDIALOGITEMLIST:
ENDDIALOGITEMS:

CCODE:

FUNCTIONS:

FUNCTION: setGainHalf(double G):double
DESCRIPTION:
A full floating point method for setting the gain of this module.
ENDDESCRIPTION:
BODY:
DataType::Byte cap1;
DataType::Byte cap2;

ApiCall::ChooseCapRatio(G, &cap1, &cap2);

ApiCall::SetCapValue(Component::Cin,cap1);
ApiCall::SetCapValue(Component::Cout,cap2);
return (double) cap1 / (double) cap2;
ENDBODY:
ENDFUNCTION:

FUNCTION: fixed_setGainHalf(double G):double
DESCRIPTION:
A full fixed-point method for setting the gain of the module. It
accepts floating-point inputs and returns a floating-point result.
ENDDESCRIPTION:
BODY:
DataType::Byte cap1;
DataType::Byte cap2;

ApiCall::FixedChooseCapRatio(G, &cap1, &cap2);

ApiCall::SetCapValue(Component::Cin,cap1);
ApiCall::SetCapValue(Component::Cout,cap2);
return ApiCall::FixedToFloat(ApiCall::FixedDivide(ApiCall:: _
IntToFixed(cap1),ApiCall::IntToFixed(cap2)));
ENDBODY:
ENDFUNCTION:

ENDFUNCTIONS:

CODEGROUP: DEFAULT
FUNCTIONSET: Gain
setGainHalf
fixed_setGainHalf
ENDFUNCTIONSET:
ENDCODEGROUP:

ENDCCODE:

NOTES:
NOTETEXT: clock4
*******************WARNING*******************
It is not recommended to run this CAM's clock (CLOCKA) at a frequency
greater than 4 MHz.
*******************WARNING*******************
ENDNOTETEXT:

NOTETEXT: none
This chip's remaining resources are not sufficient to implement a Half
Cycle Gain Stage.

It may be possible to fit this Module by reducing the chip resources
used by other CAMs.
ENDNOTETEXT:
ENDNOTES:

DIALOGEQUATIONS:

//*********************************************************
int adjustCap( double Cap )
{
int fixedCap;
if ( Cap < 1.0 ) fixedCap = 1;
else if ( Cap > 255.0 ) fixedCap = 255;
else fixedCap = Round(Cap);
return fixedCap;
}
//*********************************************************

double aG;
int C1 = 1, C2 = 1;
int dC1, dC2=255;
double err =99999;
double bestErr = 999;
string result, symbolID, circuitID, notesID="NAMENULL";

//Set limits based on Gain Bandwidth passed in (GBW_MHz)
double GBW = GBW_MHz*1000000.0*2.0*3.14159;
double maxG = Max(.01,Min(100,(-1.0+(GBW/(4.6*clocka*2)))));

//Clamp desired value if it exceeds new limit due to clock change
if (G>maxG) G=Round(maxG,(2 - Int(Log10(maxG))));

while ( dC2 >0 && err!=0)
{
dC1 = adjustCap(G*dC2);
aG = 1.0 * dC1/dC2 ;
bestErr = Abs( ( G - aG) / G);
if( bestErr < err )
{
err = bestErr;
C1 = dC1;
C2 = dC2;
}
dC2 --;
}

aG = 1.0* C1/C2;

if (pol == 1 && isp == 1)
{ symbolID = "noninv_p1";
circuitID = "noninv_p1";
}
else if (pol == 1 && isp == 2)
{ symbolID = "noninv_p2";
circuitID = "noninv_p2";
}
else if (pol == 2 && isp == 1)
{ symbolID = "inv_p1";
circuitID = "inv_p1";
}
else if (pol == 2 && isp == 2)
{ symbolID = "inv_p2";
circuitID = "inv_p2";
}
if (inv_p2_available == 0)
//this circuit can't be fit in this chip
notesID = "none";
else if (clocka > 4000100)
notesID = "clock4";
//warn about recommended clock limit

result = "VALUE: G " + StrMake(aG,(2 - Int(Log10(aG))))
+ " CAPACITOR: Cin " + StrMake(C1)
+ " CAPACITOR: Cout " + StrMake(C2)
+ " SYMBOL: " + symbolID
+ " CIRCUIT: " + circuitID
+ " NOTES: " + notesID
+ " DIALOGITEMS: DEFAULT"
+ " PLIMITS: G 0.01 "+ StrMake(maxG,(3 - Int(Log10(maxG))))
+ " CODEGROUP: DEFAULT";

ENDDIALOGEQUATIONS:

//SIMSTEP: FROMCLOCK

SIMEQUATIONS:
string answer;
double Vout, Vin;
int outputZEROonPhase1;

if (pol == 1 && isp == 1)
{ Vin = In_CLOCKA_1;
outputZEROonPhase1 = 1;
}
else if (pol == 1 && isp == 2)
{ Vin = In_CLOCKA_1;
outputZEROonPhase1 = 0;
}
else if (pol == 2 && isp == 1)
{ Vin = -In_CLOCKA_0;
outputZEROonPhase1 = 0;
}
else if (pol == 2 && isp == 2)
{ Vin = -In_CLOCKA_0;
outputZEROonPhase1 = 1;
}

if(CLOCKAPHASE1 == outputZEROonPhase1) Vout = 0;
else Vout = Vin*Cin/Cout;

if (Vout > 4.0) Vout = 4.0;
if (Vout < -4.0) Vout = -4.0;
answer = "Out "+StrMake(Vout);
return answer;
ENDSIMEQUATIONS:

SYMBOL:
BITMAP: noninv_p1
BEGIN_BITMAP_FILE_HEADER:
424D860B00000000000036040000
END_BITMAP_FILE_HEADER:

BEGIN_BITMAPINFOHEADER:
280000003200000024000000010008000000000050070000230B0000230B00000001000
000010000
END_BITMAPINFOHEADER:

BEGIN_BITMAP_COLOR_MAP_TABLE:
00000000330000006600000099000000CC000000FF00000000003300330033006600330
099003300CC003300FF0033000000
6600330066006600660099006600CC006600FF006600000099003300990066009900990
09900CC009900FF0099000000CC00
3300CC006600CC009900CC00CC00CC00FF00CC000000FF003300FF006600FF009900FF0
0CC00FF00FF00FF00003300003333
00006633000099330000CC330000FF33000000333300333333006633330099333300CC3
33300FF3333000033660033336600
6633660099336600CC336600FF33660000339900333399006633990099339900CC33990
0FF3399000033CC003333CC006633
CC009933CC00CC33CC00FF33CC000033FF003333FF006633FF009933FF00CC33FF00FF3
3FF00006600003366000066660000
99660000CC660000FF66000000663300336633006666330099663300CC663300FF66330
00066660033666600666666009966
6600CC666600FF66660000669900336699006666990099669900CC669900FF669900006
6CC003366CC006666CC009966CC00
CC66CC00FF66CC000066FF003366FF006666FF009966FF00CC66FF00FF66FF000099000
0339900006699000099990000CC99
0000FF99000000993300339933006699330099993300CC993300FF99330000996600339
966006699660099996600CC996600
FF99660000999900339999006699990099999900CC999900FF9999000099CC003399CC0
06699CC009999CC00CC99CC00FF99
CC000099FF003399FF006699FF009999FF00CC99FF00FF99FF0000CC000033CC000066C
C000099CC0000CCCC0000FFCC0000
00CC330033CC330066CC330099CC3300CCCC3300FFCC330000CC660033CC660066CC660
099CC6600CCCC6600FFCC660000CC
990033CC990066CC990099CC9900CCCC9900FFCC990000CCCC0033CCCC0066CCCC0099C
CCC00CCCCCC00FFCCCC0000CCFF00
33CCFF0066CCFF0099CCFF00CCCCFF00FFCCFF0000FF000033FF000066FF000099FF000
0CCFF0000FFFF000000FF330033FF
330066FF330099FF3300CCFF3300FFFF330000FF660033FF660066FF660099FF6600CCF
F6600FFFF660000FF990033FF9900
66FF990099FF9900CCFF9900FFFF990000FFCC0033FFCC0066FFCC0099FFCC00CCFFCC0
0FFFFCC0000FFFF0033FFFF0066FF
FF0099FFFF00CCFFFF00FFFFFF000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000
END_BITMAP_COLOR_MAP_TABLE:

BEGIN_BITMAP_DATA:
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000910000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000091919100000000000000000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000BC91919191000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCC8C8919191910000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000BCC8C8C8C89191919
10000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000BCC8C8C8C8C8C
89191910000000000000000000000
00000000000000000000000000000000000000AFAFAF0000000000AF000000BCC8C8C8C
8C8C8C8C891919100000000000000
00000000000000000000000000000000000000000000AF000000000000AF000000BCC8C
8C8C8C8C8C8C8C891919191000000
00000000000000000000000000000000000000000000AFAFAFAFAF00000000AF000000B
CC8C8C8C8C8C8C8C8C8C8C8919191
9100000000000000000000000000000000000000000000AF0000AF0000AF000000AF000
000BCC8C8C8C8C8C8C8C8C8C8C8C8
C8919191910000000000000000000000000000000000000000AF0000AF0000AF0000AFA
F000000BCC8C8C8C8C8C8C8C8C8C8
C8C8C8C8C89191910000000000000000000000000000000000000000AFAFAFAFAF00000
000AF000000BCC8C8C8C8C8C8C8C8
C84F4F4F4FC8C8C8C89191910000000000000000000000000000000000000000AF00000
000000000000000BCC8C8C8C8C8C8
C8C84FC8C8C84F4FC8C8C8C8919191910000000000000000000000000000000000AFAFA
F000000000000000000BCC8C8C8C8
C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8919191910000000000000000000000000000000
00000000000000000000000BCC8C8
C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8C8C891919191000000000000000000009B9
B9B9B9B9B9B9B9B9B9B9B9B9B9BBC
C8C8C8C8C8C8C84FC8C8C84F4F4FC8C8C8C8C8C8C8C8C8C8D7D7BC9B9B9B9B9B9B9B000
00000000000000000000000000000
00BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
000000BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
0000000000BCC8C8C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
00000000000000BCC8C8C8C8C8C8C8C84FC8C8C84FC8C8C8C8D7D7D7000000AFAFAF000
000AFAFAFAF000000000000000000
000000000000000000BCC8C8C8C8C8C8C8C8C84F4F4F4FC8C8D7D7D7000000000000AF0
000000000AF000000000000000000
0000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D70000000000AFA
FAFAFAF00000000AF000000000000
00000000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000A
F0000AF0000AF00000000AF000000
000000000000000000000000000000BCC8C8C8C8C8C8C8C8C8D7D7D7D70000000000000
000AF0000AF0000AF00AF0000AF00
0000000000000000000000000000000000BCC8C8C8C8C8C8C8C8D7D7D70000000000000
000000000AFAFAFAFAF000000AFAF
AF000000000000000000000000000000000000BCC8C8C8C8C8C8D7D7D70000000000000
00000000000000000AF0000000000
000000000000000000000000000000000000000000BCC8C8C8C8D7D7D7D700000000000
0000000000000000000AFAFAF0000
0000000000000000000000000000000000000000000000BCC8C8D7D7D7D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCD7D7D7D700000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000D7D7D700000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000
END_BITMAP_DATA:

ENDBITMAP:

BITMAP: noninv_p2
BEGIN_BITMAP_FILE_HEADER:
424D860B00000000000036040000
END_BITMAP_FILE_HEADER:

BEGIN_BITMAPINFOHEADER:
280000003200000024000000010008000000000050070000230B0000230B00000001000
000010000
END_BITMAPINFOHEADER:

BEGIN_BITMAP_COLOR_MAP_TABLE:
00000000330000006600000099000000CC000000FF00000000003300330033006600330
099003300CC003300FF0033000000
6600330066006600660099006600CC006600FF006600000099003300990066009900990
09900CC009900FF0099000000CC00
3300CC006600CC009900CC00CC00CC00FF00CC000000FF003300FF006600FF009900FF0
0CC00FF00FF00FF00003300003333
00006633000099330000CC330000FF33000000333300333333006633330099333300CC3
33300FF3333000033660033336600
6633660099336600CC336600FF33660000339900333399006633990099339900CC33990
0FF3399000033CC003333CC006633
CC009933CC00CC33CC00FF33CC000033FF003333FF006633FF009933FF00CC33FF00FF3
3FF00006600003366000066660000
99660000CC660000FF66000000663300336633006666330099663300CC663300FF66330
00066660033666600666666009966
6600CC666600FF66660000669900336699006666990099669900CC669900FF669900006
6CC003366CC006666CC009966CC00
CC66CC00FF66CC000066FF003366FF006666FF009966FF00CC66FF00FF66FF000099000
0339900006699000099990000CC99
0000FF99000000993300339933006699330099993300CC993300FF99330000996600339
966006699660099996600CC996600
FF99660000999900339999006699990099999900CC999900FF9999000099CC003399CC0
06699CC009999CC00CC99CC00FF99
CC000099FF003399FF006699FF009999FF00CC99FF00FF99FF0000CC000033CC000066C
C000099CC0000CCCC0000FFCC0000
00CC330033CC330066CC330099CC3300CCCC3300FFCC330000CC660033CC660066CC660
099CC6600CCCC6600FFCC660000CC
990033CC990066CC990099CC9900CCCC9900FFCC990000CCCC0033CCCC0066CCCC0099C
CCC00CCCCCC00FFCCCC0000CCFF00
33CCFF0066CCFF0099CCFF00CCCCFF00FFCCFF0000FF000033FF000066FF000099FF000
0CCFF0000FFFF000000FF330033FF
330066FF330099FF3300CCFF3300FFFF330000FF660033FF660066FF660099FF6600CCF
F6600FFFF660000FF990033FF9900
66FF990099FF9900CCFF9900FFFF990000FFCC0033FFCC0066FFCC0099FFCC00CCFFCC0
0FFFFCC0000FFFF0033FFFF0066FF
FF0099FFFF00CCFFFF00FFFFFF000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000
END_BITMAP_COLOR_MAP_TABLE:

BEGIN_BITMAP_DATA:
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000910000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000091919100000000000000000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000BC91919191000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCC8C8919191910000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000BCC8C8C8C89191919
10000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000BCC8C8C8C8C8C
89191910000000000000000000000
00000000000000000000000000000000000000AFAFAF000000AFAFAFAF0000BCC8C8C8C
8C8C8C8C891919100000000000000
00000000000000000000000000000000000000000000AF0000000000AF00000000BCC8C
8C8C8C8C8C8C8C891919191000000
00000000000000000000000000000000000000000000AFAFAFAFAF00000000AF000000B
CC8C8C8C8C8C8C8C8C8C8C8919191
9100000000000000000000000000000000000000000000AF0000AF0000AF00000000AF0
000BCC8C8C8C8C8C8C8C8C8C8C8C8
C8919191910000000000000000000000000000000000000000AF0000AF0000AF00AF000
0AF0000BCC8C8C8C8C8C8C8C8C8C8
C8C8C8C8C89191910000000000000000000000000000000000000000AFAFAFAFAF00000
0AFAFAF0000BCC8C8C8C8C8C8C8C8
C84F4F4F4FC8C8C8C89191910000000000000000000000000000000000000000AF00000
000000000000000BCC8C8C8C8C8C8
C8C84FC8C8C84F4FC8C8C8C8919191910000000000000000000000000000000000AFAFA
F000000000000000000BCC8C8C8C8
C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8919191910000000000000000000000000000000
00000000000000000000000BCC8C8
C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8C8C891919191000000000000000000009B9
B9B9B9B9B9B9B9B9B9B9B9B9B9BBC
C8C8C8C8C8C8C84FC8C8C84F4F4FC8C8C8C8C8C8C8C8C8C8D7D7BC9B9B9B9B9B9B9B000
00000000000000000000000000000
00BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
000000BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
0000000000BCC8C8C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
00000000000000BCC8C8C8C8C8C8C8C84FC8C8C84FC8C8C8C8D7D7D7000000AFAFAF000
0000000AF00000000000000000000
000000000000000000BCC8C8C8C8C8C8C8C8C84F4F4F4FC8C8D7D7D7000000000000AF0
00000000000AF0000000000000000
0000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D70000000000AFA
FAFAFAF00000000AF000000000000
00000000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000A
F0000AF0000AF000000AF00000000
000000000000000000000000000000BCC8C8C8C8C8C8C8C8C8D7D7D7D70000000000000
000AF0000AF0000AF0000AFAF0000
0000000000000000000000000000000000BCC8C8C8C8C8C8C8C8D7D7D70000000000000
000000000AFAFAFAFAF00000000AF
00000000000000000000000000000000000000BCC8C8C8C8C8C8D7D7D70000000000000
00000000000000000AF0000000000
000000000000000000000000000000000000000000BCC8C8C8C8D7D7D7D700000000000
0000000000000000000AFAFAF0000
0000000000000000000000000000000000000000000000BCC8C8D7D7D7D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCD7D7D7D700000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000D7D7D700000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000
END_BITMAP_DATA:

ENDBITMAP:

BITMAP: inv_p1
BEGIN_BITMAP_FILE_HEADER:
424D860B00000000000036040000
END_BITMAP_FILE_HEADER:

BEGIN_BITMAPINFOHEADER:
280000003200000024000000010008000000000050070000230B0000230B00000001000
000010000
END_BITMAPINFOHEADER:

BEGIN_BITMAP_COLOR_MAP_TABLE:
00000000330000006600000099000000CC000000FF00000000003300330033006600330
099003300CC003300FF0033000000
6600330066006600660099006600CC006600FF006600000099003300990066009900990
09900CC009900FF0099000000CC00
3300CC006600CC009900CC00CC00CC00FF00CC000000FF003300FF006600FF009900FF0
0CC00FF00FF00FF00003300003333
00006633000099330000CC330000FF33000000333300333333006633330099333300CC3
33300FF3333000033660033336600
6633660099336600CC336600FF33660000339900333399006633990099339900CC33990
0FF3399000033CC003333CC006633
CC009933CC00CC33CC00FF33CC000033FF003333FF006633FF009933FF00CC33FF00FF3
3FF00006600003366000066660000
99660000CC660000FF66000000663300336633006666330099663300CC663300FF66330
00066660033666600666666009966
6600CC666600FF66660000669900336699006666990099669900CC669900FF669900006
6CC003366CC006666CC009966CC00
CC66CC00FF66CC000066FF003366FF006666FF009966FF00CC66FF00FF66FF000099000
0339900006699000099990000CC99
0000FF99000000993300339933006699330099993300CC993300FF99330000996600339
966006699660099996600CC996600
FF99660000999900339999006699990099999900CC999900FF9999000099CC003399CC0
06699CC009999CC00CC99CC00FF99
CC000099FF003399FF006699FF009999FF00CC99FF00FF99FF0000CC000033CC000066C
C000099CC0000CCCC0000FFCC0000
00CC330033CC330066CC330099CC3300CCCC3300FFCC330000CC660033CC660066CC660
099CC6600CCCC6600FFCC660000CC
990033CC990066CC990099CC9900CCCC9900FFCC990000CCCC0033CCCC0066CCCC0099C
CCC00CCCCCC00FFCCCC0000CCFF00
33CCFF0066CCFF0099CCFF00CCCCFF00FFCCFF0000FF000033FF000066FF000099FF000
0CCFF0000FFFF000000FF330033FF
330066FF330099FF3300CCFF3300FFFF330000FF660033FF660066FF660099FF6600CCF
F6600FFFF660000FF990033FF9900
66FF990099FF9900CCFF9900FFFF990000FFCC0033FFCC0066FFCC0099FFCC00CCFFCC0
0FFFFCC0000FFFF0033FFFF0066FF
FF0099FFFF00CCFFFF00FFFFFF000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000
END_BITMAP_COLOR_MAP_TABLE:

BEGIN_BITMAP_DATA:
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000910000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000091919100000000000000000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000BC91919191000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCC8C8919191910000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000BCC8C8C8C89191919
10000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000BCC8C8C8C8C8C
89191910000000000000000000000
00000000000000000000000000000000000000AFAFAF0000000000AF000000BCC8C8C8C
8C8C8C8C891919100000000000000
00000000000000000000000000000000000000000000AF000000000000AF000000BCC8C
8C8C8C8C8C8C8C891919191000000
00000000000000000000000000000000000000000000AFAFAFAFAF00000000AF000000B
CC8C8C8C8C8C8C8C8C8C8C8919191
9100000000000000000000000000000000000000000000AF0000AF0000AF000000AF000
000BCC8C8C8C8C8C8C8C8C8C8C8C8
C8919191910000000000000000000000000000000000000000AF0000AF0000AF0000AFA
F000000BCC8C8C8C8C8C8C8C8C8C8
C8C8C8C8C89191910000000000000000000000000000000000000000AFAFAFAFAF00000
000AF000000BCC8C8C8C8C8C8C8C8
C84F4F4F4FC8C8C8C89191910000000000000000000000000000000000000000AF00000
000000000000000BCC8C8C8C8C8C8
C8C84FC8C8C84F4FC8C8C8C8919191910000000000000000000000000000000000AFAFA
F000000000000000000BCC8C8C8C8
C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8919191910000000000000000000000000000000
00000000000000000000000BCC8C8
C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8C8C891919191000000000000000000009B9
B9B9B9B9B9B9B9B9B9B9B9B9B9BBC
4F4F4F4F4FC8C84FC8C8C84F4F4FC8C8C8C8C8C8C8C8C8C8D7D7BC9B9B9B9B9B9B9B000
00000000000000000000000000000
00BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
000000BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
0000000000BCC8C8C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
00000000000000BCC8C8C8C8C8C8C8C84FC8C8C84FC8C8C8C8D7D7D7000000AFAFAF000
0000000AF00000000000000000000
000000000000000000BCC8C8C8C8C8C8C8C8C84F4F4F4FC8C8D7D7D7000000000000AF0
00000000000AF0000000000000000
0000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D70000000000AFA
FAFAFAF00000000AF000000000000
00000000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000A
F0000AF0000AF000000AF00000000
000000000000000000000000000000BCC8C8C8C8C8C8C8C8C8D7D7D7D70000000000000
000AF0000AF0000AF0000AFAF0000
0000000000000000000000000000000000BCC8C8C8C8C8C8C8C8D7D7D70000000000000
000000000AFAFAFAFAF00000000AF
00000000000000000000000000000000000000BCC8C8C8C8C8C8D7D7D70000000000000
00000000000000000AF0000000000
000000000000000000000000000000000000000000BCC8C8C8C8D7D7D7D700000000000
0000000000000000000AFAFAF0000
0000000000000000000000000000000000000000000000BCC8C8D7D7D7D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCD7D7D7D700000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000D7D7D700000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000
END_BITMAP_DATA:

ENDBITMAP:

BITMAP: inv_p2
BEGIN_BITMAP_FILE_HEADER:
424D860B00000000000036040000
END_BITMAP_FILE_HEADER:

BEGIN_BITMAPINFOHEADER:
280000003200000024000000010008000000000050070000230B0000230B00000001000
000010000
END_BITMAPINFOHEADER:

BEGIN_BITMAP_COLOR_MAP_TABLE:
00000000330000006600000099000000CC000000FF00000000003300330033006600330
099003300CC003300FF0033000000
6600330066006600660099006600CC006600FF006600000099003300990066009900990
09900CC009900FF0099000000CC00
3300CC006600CC009900CC00CC00CC00FF00CC000000FF003300FF006600FF009900FF0
0CC00FF00FF00FF00003300003333
00006633000099330000CC330000FF33000000333300333333006633330099333300CC3
33300FF3333000033660033336600
6633660099336600CC336600FF33660000339900333399006633990099339900CC33990
0FF3399000033CC003333CC006633
CC009933CC00CC33CC00FF33CC000033FF003333FF006633FF009933FF00CC33FF00FF3
3FF00006600003366000066660000
99660000CC660000FF66000000663300336633006666330099663300CC663300FF66330
00066660033666600666666009966
6600CC666600FF66660000669900336699006666990099669900CC669900FF669900006
6CC003366CC006666CC009966CC00
CC66CC00FF66CC000066FF003366FF006666FF009966FF00CC66FF00FF66FF000099000
0339900006699000099990000CC99
0000FF99000000993300339933006699330099993300CC993300FF99330000996600339
966006699660099996600CC996600
FF99660000999900339999006699990099999900CC999900FF9999000099CC003399CC0
06699CC009999CC00CC99CC00FF99
CC000099FF003399FF006699FF009999FF00CC99FF00FF99FF0000CC000033CC000066C
C000099CC0000CCCC0000FFCC0000
00CC330033CC330066CC330099CC3300CCCC3300FFCC330000CC660033CC660066CC660
099CC6600CCCC6600FFCC660000CC
990033CC990066CC990099CC9900CCCC9900FFCC990000CCCC0033CCCC0066CCCC0099C
CCC00CCCCCC00FFCCCC0000CCFF00
33CCFF0066CCFF0099CCFF00CCCCFF00FFCCFF0000FF000033FF000066FF000099FF000
0CCFF0000FFFF000000FF330033FF
330066FF330099FF3300CCFF3300FFFF330000FF660033FF660066FF660099FF6600CCF
F6600FFFF660000FF990033FF9900
66FF990099FF9900CCFF9900FFFF990000FFCC0033FFCC0066FFCC0099FFCC00CCFFCC0
0FFFFCC0000FFFF0033FFFF0066FF
FF0099FFFF00CCFFFF00FFFFFF000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000
END_BITMAP_COLOR_MAP_TABLE:

BEGIN_BITMAP_DATA:
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000910000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000091919100000000000000000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000BC91919191000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCC8C8919191910000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000BCC8C8C8C89191919
10000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000BCC8C8C8C8C8C
89191910000000000000000000000
00000000000000000000000000000000000000AFAFAF000000AFAFAFAF0000BCC8C8C8C
8C8C8C8C891919100000000000000
00000000000000000000000000000000000000000000AF0000000000AF00000000BCC8C
8C8C8C8C8C8C8C891919191000000
00000000000000000000000000000000000000000000AFAFAFAFAF00000000AF000000B
CC8C8C8C8C8C8C8C8C8C8C8919191
9100000000000000000000000000000000000000000000AF0000AF0000AF00000000AF0
000BCC8C8C8C8C8C8C8C8C8C8C8C8
C8919191910000000000000000000000000000000000000000AF0000AF0000AF00AF000
0AF0000BCC8C8C8C8C8C8C8C8C8C8
C8C8C8C8C89191910000000000000000000000000000000000000000AFAFAFAFAF00000
0AFAFAF0000BCC8C8C8C8C8C8C8C8
C84F4F4F4FC8C8C8C89191910000000000000000000000000000000000000000AF00000
000000000000000BCC8C8C8C8C8C8
C8C84FC8C8C84F4FC8C8C8C8919191910000000000000000000000000000000000AFAFA
F000000000000000000BCC8C8C8C8
C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8919191910000000000000000000000000000000
00000000000000000000000BCC8C8
C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8C8C8C8C891919191000000000000000000009B9
B9B9B9B9B9B9B9B9B9B9B9B9B9BBC
4F4F4F4F4FC8C84FC8C8C84F4F4FC8C8C8C8C8C8C8C8C8C8D7D7BC9B9B9B9B9B9B9B000
00000000000000000000000000000
00BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
000000BCC8C8C8C8C8C8C84FC8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
0000000000BCC8C8C8C8C8C8C84FC8C8C8C8C84FC8C8C8C8D7D7D7D7000000000000000
00000000000000000000000000000
00000000000000BCC8C8C8C8C8C8C8C84FC8C8C84FC8C8C8C8D7D7D7000000AFAFAF000
000AFAFAFAF000000000000000000
000000000000000000BCC8C8C8C8C8C8C8C8C84F4F4F4FC8C8D7D7D7000000000000AF0
000000000AF000000000000000000
0000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8C8C8D7D7D7D70000000000AFA
FAFAFAF00000000AF000000000000
00000000000000000000000000BCC8C8C8C8C8C8C8C8C8C8C8D7D7D7D7000000000000A
F0000AF0000AF00000000AF000000
000000000000000000000000000000BCC8C8C8C8C8C8C8C8C8D7D7D7D70000000000000
000AF0000AF0000AF00AF0000AF00
0000000000000000000000000000000000BCC8C8C8C8C8C8C8C8D7D7D70000000000000
000000000AFAFAFAFAF000000AFAF
AF000000000000000000000000000000000000BCC8C8C8C8C8C8D7D7D70000000000000
00000000000000000AF0000000000
000000000000000000000000000000000000000000BCC8C8C8C8D7D7D7D700000000000
0000000000000000000AFAFAF0000
0000000000000000000000000000000000000000000000BCC8C8D7D7D7D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000BCD7D7D7D700000000000
00000000000000000000000000000
000000000000000000000000000000000000000000000000000000D7D7D700000000000
00000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000D700000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
00000000000000000000000000000000000000000000
END_BITMAP_DATA:

ENDBITMAP:

ENDSYMBOL:

REVISION_HISTORY:

REVISION_ENTRY: 1.0.1
Updated C Code for API functions and enumerated types.
END_REVISION_ENTRY:

REVISION_ENTRY: 1.0.2
Corrected notes typo.
END_REVISION_ENTRY:

REVISION_ENTRY: 1.0.3
Added warning for maximum recommended clock rate.
END_REVISION_ENTRY:

END_REVISION_HISTORY:

ENDMODULE:
本発明の一実施形態によるプログラム可能なデバイスをプログラムするための例示としてのシステムの基本的なシステム構成の全体的なブロック図である。 図1の設計ツール・アプリケーション・ウィンドウおよび半サイクル利得段のスクリーン画像である。 図2のスクリーン画像のポップアップ・ウィンドウの形をしているユーザ・インタフェースを備える「CAMモジュール・パラメータ設定」ダイアログ・ボックスである。 図2のスクリーン画像のポップアップ・ウィンドウを備える信号発生器制御ダイアログ・ボックスである。 図2のスクリーン画像のポップアップ・ウィンドウを備えるオシロスコープ・ダイアログ・ボックスである。 プログラム可能な回路デバイスのプログラミングを実施するためのプロセス段階を示すプロセスの流れ図である。 フィールド・プログラマブル・アナログ・アレイ(FPAA)内で回路を実現することができるようにするために、回路構成要素を一緒に構成するためのプロセス段階を示す他のプロセスの流れ図である。

Claims (51)

  1.  少なくとも1つの回路構成要素を一緒に配線することにより少なくとも1つのサブ回路を実現することができるプログラム可能な回路デバイスをプログラムするための装置であって、
     プログラム可能な計算デバイスと、
     前記プログラム可能な計算デバイスに関連するユーザ・インタフェースと、
     前記プログラム可能な計算デバイスに関連していて、前記ユーザ・インタフェースのところで、ユーザと相互作用を行うことができるように構成されている設計ツールとを備え、該設計ツールが、プログラム可能なデバイスのサブ回路の複数の構成、トポロジー、およびパラメータのうちの少なくとも1つを定義するための情報を含むサブ回路定義を含む前記プログラム可能な計算デバイスで実施されたコンピュータ・プログラム・コードを備える装置。
  2.  前記サブ回路定義が、1つまたはそれ以上のアルゴリズムの形の情報を含む、請求項1に記載の装置。
  3.  前記情報の少なくとも一部が、インタープリタ・コードで実現される、請求項2に記載の装置。
  4.  前記情報が、前記設計ツールに記憶されているデータ、および前記ユーザ・インタフェースにより受信したデータと結合している、請求項2に記載の装置。
  5.  前記サブ回路定義が、サブ回路トポロジーに関する情報を含む、請求項1に記載の装置。
  6.  前記サブ回路定義が、サブ回路トポロジーと構成要素の値の関係を、前記ユーザ・インタフェースが表示するもっと高いレベルのパラメータにマッピングするために使用することができる前記サブ回路に関する情報を含む、請求項1に記載の装置。
  7.  前記サブ回路定義が、シミュレーションを通して識別された前記サブ回路の性能に関する情報を含む、請求項1に記載の装置。
  8.  前記構成可能なハードウェア・デバイスが、フィールド・プログラマブル・アナログ・アレイ(FPAA)を備える、請求項1に記載の装置。
  9.  前記サブ回路定義が、前記プログラム可能なデバイスのサブ回路に対する複数の構成を制御できるように、前記ユーザ・インタフェースを定義し、制御するための情報を含む、請求項1に記載の装置。
  10.  前記サブ回路定義が、前記プログラム可能なデバイスのサブ回路の構成を修正するための情報を含む、請求項1に記載の装置。
  11.  前記サブ回路定義が、前記ユーザ・インタフェースのところで実施されたユーザの選択からの情報を含む、請求項1に記載の装置。
  12.  前記サブ回路定義が、前記サブ回路の正しい使用に関するエラー・チェックを行うために使用することができる情報を含む、請求項1に記載の装置。
  13.  前記サブ回路定義が、もっと大きなアナログ回路内に置かれた場合に、前記サブ回路の動作をシミュレートするために使用することができる情報を含む、請求項1に記載の装置。
  14.  前記サブ回路定義が、前記サブ回路の記号的表示を形成するために使用することができる情報を含む、請求項1に記載の装置。
  15.  前記サブ回路定義が、前記サブ回路のバージョン数を決定するために使用することができる情報を含む、請求項1に記載の装置。
  16.  前記サブ回路定義が、特定の設計ツールまたは前記設計ツールのバージョンとの前記サブ回路の互換性を決定するために使用することができる情報を含む、請求項14に記載の装置。
  17.  前記サブ回路定義が、プログラム可能なデバイスとの前記サブ回路の互換性を決定するために使用することができる情報を含む、請求項13に記載の装置。
  18.  前記アルゴリズムがコード・ルーチンを含む、請求項1に記載の装置。
  19.  前記コード・ルーチンが「C」言語コードを備える、請求項18に記載の装置。
  20.  プログラム可能なデバイスをプログラムするための装置であって、
     プログラム可能なコンピュータと、
     前記プログラム可能なコンピュータに関連するユーザ・インタフェースと、
     前記プログラム可能なデバイス内でサブ回路を実現する目的で、回路構成要素を一緒に配線するために、ユーザ・インタフェースのところでユーザ入力に応答する前記サブ回路の少なくとも1つのパラメータに対する複数の値を定義するのに使用することができる前記プログラム可能なデバイスのサブ回路に関する情報を含む少なくとも1つのサブ回路定義を含む前記プログラム可能なコンピュータで実施されたコンピュータ・プログラム・コードとを備える装置。
  21.  前記情報が、前記サブ回路の複数の構成を定義するために使用することができる、請求項20に記載のシステム。
  22.  前記情報が、前記サブ回路の複数のトポロジーを定義するために使用することができる、請求項20に記載のシステム。
  23.  前記情報が、複数の構成の中から、前記サブ回路を選択的に構成することができるように、前記ユーザ・インタフェースを制御するために使用することができる、請求項20に記載のシステム。
  24.  前記ユーザ・インタフェースが、前記サブ回路の構成を修正するために使用することができる情報をユーザが選択することができるようにする、請求項20に記載のシステム。
  25.  前記サブ回路定義が複数のネット・リストを備える、請求項20に記載のシステム。
  26.  前記ネット・リストが、設計中のプログラム可能なデバイス上に位置するアナログ構成要素への参照を含む、請求項25に記載のシステム。
  27.  設計中の前記プログラム可能なデバイスが、フィールド・プログラマブル・アナログ・アレイ(FPAA)を備える、請求項26に記載のシステム。
  28.  前記ネット・リストが、サブ回路のユーザが選択した構成を実現するための回路構成要素の接続方法を詳細に記述している接続情報を含む、請求項26に記載のシステム。
  29.  前記サブ回路定義が、特定のサブ回路を定義している情報を含む1つのテキスト・ファイルを含む、請求項20に記載のシステム。
  30.  前記特定のサブ回路が、半サイクル利得段を備える、請求項29に記載のシステム。
  31.  プログラム可能な回路デバイスをプログラムするための方法であって、
     プログラム可能なコンピュータに、回路構成要素に対する設計ツールおよびサブ回路定義を供給するステップと、
     前記プログラム可能なコンピュータにより、プログラム可能な回路デバイス内でサブ回路を実現するために、回路構成要素を一緒に配線する回路設計を生成するステップとを含む方法。
  32.  回路設計を生成するステップが、特定のサブ回路定義内に含まれているデータを読み出すステップを含む、請求項31に記載の方法。
  33.  ユーザ・インタフェースを供給するステップをさらに含み、回路設計を生成するステップが、少なくとも1つのサブ回路設計をもっと大きな回路設計に組み立てるステップを含む、請求項31に記載の方法。
  34.  特定のサブ回路を設計するために使用することができる、各サブ回路定義に対してユーザ・インタフェースを供給するステップをさらに含み、回路設計を生成するステップが、前記ユーザ・インタフェースによりサブ回路設計を構成するステップを含む、請求項31に記載の方法。
  35.  前記サブ回路定義が、インタープリタ・コードを含み、回路設計を生成するステップが、前記インタープリタ・コードを実行するステップを含む、請求項31に記載の方法。
  36.  前記設計ツールと通信するユーザ・インタフェースを供給するステップと、前記ユーザ・インタフェースに特定のプログラム可能なデバイスに特有の機能を供給するステップとをさらに含む、請求項31に記載の方法。
  37.  前記設計ツールが、前記サブ回路定義に含まれている回路設計および情報によりシミュレーションをセットアップし実行するように、ユーザにより構成される、請求項31に記載の方法。
  38.  前記設計ツールにより、前記回路設計に対する回路シミュレーションの結果を表示するステップをさらに含む、請求項31に記載の方法。
  39.  プログラム可能なデバイスにダウンロードするために、前記回路設計を適当にフォーマットされたデータに変換するステップをさらに含む、請求項31に記載の方法。
  40.  前記プログラム可能なデバイスに適当にフォーマットされたデータのダウンロードを容易にするステップをさらに含む、請求項39に記載の方法。
  41.  回路に構成することができる回路構成要素を有するプログラム可能なデバイスをプログラムするための装置であって、
     プログラム可能なコンピュータと、
     プログラム可能なデバイスのサブ回路構成要素を回路設計内に一緒に配線し、前記サブ回路の一意の複数の構成を定義するために使用することができる情報を含む少なくとも1つのサブ回路定義を含む前記プログラム可能なコンピュータで実施されたコンピュータ・プログラム・コードとを備える装置。
  42.  前記サブ回路定義が複数のネット・リストを備える、請求項41に記載の装置。
  43.  選択したネット・リストが、前記プログラム可能なデバイス上に位置する回路構成要素への参照を含む、請求項41に記載の装置。
  44.  前記サブ回路定義が、ユーザが、サブ回路設計に対するパラメータを設定することができるようにする情報を含む、請求項41に記載の装置。
  45.  フィールド・プログラマブル・アナログ・アレイ(FPAA)で回路を実現することができるようにするために、回路構成要素を一緒に構成するための方法であって、
     ユーザが、プログラム可能なコンピュータのユーザ・インタフェースを通して、FPAAでサブ回路を実現するために、回路構成要素の構成を定義することができるサブ回路定義を含む命令により前記プログラム可能なコンピュータをプログラムするステップと、
     ユーザ・インタフェースを通して、FPAAでサブ回路を実現する回路構成要素の特定の構成を定義するステップとを含む方法。
  46.  前記対応するサブ回路のトポロジーを定義するステップをさらに含む、請求項45に記載の方法。
  47.  前記サブ回路のパラメータを定義するステップをさらに含む、請求項46に記載の方法。
  48.  前記命令により前記ユーザ・インタフェースを制御するステップをさらに含む、請求項47に記載の方法。
  49.  前記サブ回路の構成を修正するために、前記ユーザ・インタフェースによりユーザの選択を供給するステップをさらに含む、請求項45に記載の方法。
  50.  構成を定義するステップが、サブ回路および回路のうちの一方を形成するために回路構成要素を一緒に配線するステップを含む、請求項45に記載の方法。
  51.  前記回路構成要素を、フィールド・プログラマブル・アナログ・アレイ(FPAA)に対する回路設計に組み立てるステップをさらに含む、請求項45に記載の方法。
JP2003300760A 2002-08-29 2003-08-26 プログラム可能なデバイスをプログラムするための装置および方法 Withdrawn JP2004094950A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/232,238 US6978435B2 (en) 2002-08-29 2002-08-29 Apparatus for programming a programmable device, and method

Publications (1)

Publication Number Publication Date
JP2004094950A true JP2004094950A (ja) 2004-03-25

Family

ID=31495400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003300760A Withdrawn JP2004094950A (ja) 2002-08-29 2003-08-26 プログラム可能なデバイスをプログラムするための装置および方法

Country Status (3)

Country Link
US (1) US6978435B2 (ja)
EP (1) EP1394703A3 (ja)
JP (1) JP2004094950A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021526688A (ja) * 2018-06-06 2021-10-07 プレシエント デバイシーズ, インコーポレイテッド 分散型異種コンピューティングおよび制御システムを設計する方法およびシステム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040246001A1 (en) * 2003-06-09 2004-12-09 Sontag David N. Method and apparatus for guided establishment of a signal probe configuration
US7433749B2 (en) * 2006-01-27 2008-10-07 Nordson Corporation Adhesive system configuration tool
US8201137B1 (en) * 2009-03-06 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for AMS simulation of integrated circuit design
US8640081B2 (en) * 2012-05-07 2014-01-28 Cypress Semiconductor Corporation Graphical user interface for display of system resistance
US8751997B1 (en) * 2013-03-14 2014-06-10 Xilinx, Inc. Processing a fast speed grade circuit design for use on a slower speed grade integrated circuit
CN105592679B (zh) * 2016-03-09 2018-07-13 深圳市华星光电技术有限公司 Pcb固定结构及液晶显示装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4140543A1 (de) * 1991-12-09 1993-06-17 Bayer Ag Neue phosphorhaltige duromere aus oligophosphiten
JP3165765B2 (ja) * 1993-09-20 2001-05-14 富士通株式会社 Cad設計支援装置
US5959871A (en) * 1993-12-23 1999-09-28 Analogix/Portland State University Programmable analog array circuit
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
US5787012A (en) * 1995-11-17 1998-07-28 Sun Microsystems, Inc. Integrated circuit with identification signal writing circuitry distributed on multiple metal layers
US6023565A (en) * 1996-03-29 2000-02-08 Xilinx, Inc. Method for configuring circuits over a data communications link
US6346824B1 (en) * 1996-04-09 2002-02-12 Xilinx, Inc. Dedicated function fabric for use in field programmable gate arrays
US5887165A (en) 1996-06-21 1999-03-23 Mirage Technologies, Inc. Dynamically reconfigurable hardware system for real-time control of processes
US5838165A (en) 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture 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
US6311149B1 (en) * 1997-08-18 2001-10-30 National Instruments Corporation Reconfigurable test system
US6078736A (en) 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
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
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
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
US6326806B1 (en) * 2000-03-29 2001-12-04 Xilinx, Inc. FPGA-based communications access point and system for reconfiguration
GB0114317D0 (en) * 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
US20030097246A1 (en) * 2001-11-16 2003-05-22 Tsutomu Hara Circuit simulation method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021526688A (ja) * 2018-06-06 2021-10-07 プレシエント デバイシーズ, インコーポレイテッド 分散型異種コンピューティングおよび制御システムを設計する方法およびシステム
JP7381502B2 (ja) 2018-06-06 2023-11-15 プレシエント デバイシーズ, インコーポレイテッド 分散型異種コンピューティングおよび制御システムを設計する方法およびシステム

Also Published As

Publication number Publication date
US6978435B2 (en) 2005-12-20
EP1394703A3 (en) 2005-02-09
US20040041175A1 (en) 2004-03-04
EP1394703A2 (en) 2004-03-03

Similar Documents

Publication Publication Date Title
JP3079277B2 (ja) タスク実行順序決定方法
US8700368B1 (en) Variants in graphical modeling environments
US6738964B1 (en) Graphical development system and method
EP1004085B1 (en) System and method for converting graphical programs into hardware implementations
US20080034345A1 (en) System and Method for Enabling a Graphical Program to Propagate Attributes of Inputs and Outputs of Blocks
JP2004110771A (ja) 構成可能なハードウェア・デバイスにおけるアナログ素子を構成するためのシステムおよび方法
US10235477B2 (en) Prototyping an image processing algorithm and emulating or simulating execution on a hardware accelerator to estimate resource usage or performance
US20110202887A1 (en) Automatically Suggesting Graphical Program Elements for Inclusion in a Graphical Program
CN107766045A (zh) 为机器视觉系统提供可视化程序的装置、系统和方法
US20080109779A1 (en) System Simulation and Graphical Data Flow Programming in a Common Environment
JP2974900B2 (ja) 自律進化型ハードウェア設計システム
US7120877B2 (en) System and method for creating a graphical program including a plurality of portions to be executed sequentially
US20140214396A1 (en) Specification properties creation for a visual model of a system
US20150339127A1 (en) Configuration Change Tracking for Measurement Devices
EP1186997A2 (en) Graphical development system and method
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
JP2004094950A (ja) プログラム可能なデバイスをプログラムするための装置および方法
US20040044970A1 (en) Apparatus and method for synthesizing and designing circuits and filters
US6643836B2 (en) Displaying information relating to a logic design
US7991606B1 (en) Embedded logic analyzer functionality for system level environments
JP2004094956A (ja) スイッチドキャパシタ回路をシミュレートするための装置および方法
WO2012007955A1 (en) Method of implementing iec 61131-3 control specification through verilog hdl description for modeling, simulation and synthesis of control logic configuration for integrated circuit implementation
US8046201B1 (en) Communication system for use with a block diagram environment
US8756539B2 (en) NetList maintenance in a circuit diagram
WO2024066576A1 (zh) 软件配置方法和装置

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: 20061107