(57)【要約】　【課題】　フィールド・プログラマブル・アナログ・アレイ（ＦＰＡＡ）で実現可能なスイッチドキャパシタ回路のシミュレーションを行うことができるようにする装置および方法を提供すること。　【解決手段】　スイッチドキャパシタ回路をシミュレートするための装置。この装置は、プログラム可能な計算デバイス、設計ツール、および動作シミュレータを含む。設計ツールは、プログラム可能な計算デバイスに関連していて、ユーザと相互作用を行うように構成されている。設計ツールは、プログラム可能な回路デバイスのサブ回路を定義するためのサブ回路定義を含む。動作シミュレータは、設計ツールに関連している。動作シミュレータは、サブ回路の出力をサブ回路への入力の関数として与える一組の個々の時間領域方程式により、各サブ回路を表示するように構成されている。【選択図】　　　図１
2004094956.tif 000002
【特許請求の範囲】
【請求項１】
　スイッチドキャパシタ回路をシミュレートするための装置であって、
　プログラム可能な計算デバイスと、
　前記プログラム可能な計算デバイスに関連していて、ユーザと相互作用を行うように構成されていて、プログラム可能な回路デバイスのサブ回路を定義するためのサブ回路定義を含む前記プログラム可能な計算デバイスで実施されるコンピュータ・プログラム・コードを含む設計ツールと、
　前記設計ツールと関連していて、前記サブ回路の出力を前記サブ回路への入力の関数として与える一組の個々の時間領域方程式により各サブ回路を表示するように構成されている動作シミュレータとを備える装置。
【請求項２】
　さらに、前記プログラム可能な計算デバイスに関連しているユーザ・インタフェースを備え、ユーザが前記ユーザ・インタフェースのところで前記設計ツールと相互作用を行うことができるように構成されている、請求項１に記載の装置。
【請求項３】
　前記一組の個々の時間領域方程式が、前記サブ回路に対するサブ回路シミュレーション・モデルにより供給される、請求項２に記載の装置。
【請求項４】
　各サブ回路シミュレーション・モデルが、前記設計ツールと互換性を持ち、前記設計ツールにより使用されるが、前記設計ツールの一部ではない、請求項３に記載の装置。
【請求項５】
　各サブ回路シミュレーション・モデルがサブ回路定義の一部である、請求項３に記載の装置。
【請求項６】
　前記サブ回路定義が、新しいサブ回路が生成されるか、または現在のサブ回路が前記設計ツールのユーザにより修正された場合に、前記設計ツールを再コンパイルする必要がないような方法で、サブ回路シミュレーション・モデルを供給する、請求項５に記載の装置。
【請求項７】
　サブ回路シミュレーション・モデルが、１つまたはそれ以上のアルゴリズムを備える、請求項３に記載の装置。
【請求項８】
　前記１つまたはそれ以上のアルゴリズムそれぞれの少なくとも一部が、インタープリタ・コードで実現される、請求項７に記載の装置。
【請求項９】
　前記設計ツールが、シミュレートされている回路の状態についてのデータを記憶するように構成されている、請求項８に記載の装置。
【請求項１０】
　前記動作シミュレータが、前記アルゴリズムをシミュレートされている前記回路の状態についての前記データと結合し、前記サブ回路の状態についての情報を返送するように構成されている、請求項９に記載の装置。
【請求項１１】
　前記動作シミュレータが、前記サブ回路の出力電圧についての情報を返送する、請求項１０に記載の装置。
【請求項１２】
　前記設計ツールが、フィールド・プログラマブル・アナログ・アレイのサブ回路を定義するように構成されている、請求項１に記載の装置。
【請求項１３】
　前記サブ回路が、フィールド・プログラマブル・アナログ・アレイ内で実現されたスイッチドキャパシタ回路を備える、請求項１２に記載の装置。
【請求項１４】
　前記動作シミュレータが、入力信号を前記サブ回路の選択した回路ノードに供給するように構成されている、請求項１に記載の装置。
【請求項１５】
　前記動作シミュレータが、前記サブ回路の選択した回路ノードからの出力データを表示するように構成されている、請求項１に記載の装置。
【請求項１６】
　前記設計ツールにより、ユーザが、複数の各サブ回路に、１つまたはそれ以上のクロック信号を割り当てることができる、請求項１に記載の装置。
【請求項１７】
　前記動作シミュレータが、クロックのチクタク音をシミュレートし、少なくとも一部がクロックのチクタク音および前記サブ回路を相互に接続している配線レイアウトで決まる特定の順序で個々の動作サブ回路モデルを実行するように構成されている、請求項１６に記載の装置。
【請求項１８】
　前記サブ回路シミュレーション・モデルが、前記設計ツールが読むことができるテキスト・ファイルの形の構成可能なアナログ・モジュールにより供給される、請求項３に記載の装置。
【請求項１９】
　前記構成可能なアナログ・モジュールが選択され、前記プログラム可能な計算デバイスのメモリ内の、他のサブ回路に対して検出できる位置に置かれ、次に、前記サブ回路が一緒に配線される、請求項１８に記載の装置。
【請求項２０】
　フィールド・プログラマブル回路デバイスで実現される、スイッチドキャパシタ回路をシミュレートするための方法であって、
　プログラム可能な計算デバイスと、前記プログラム可能な計算デバイスに関連する設計ツールと、前記設計ツールに関連する動作シミュレータとを供給するステップと、
　プログラム可能な回路デバイスのサブ回路を定義するためのサブ回路定義を含む、前記プログラム可能な計算デバイスでコンピュータ・プログラム・コードを実施するステップと、
　出力を入力の関数として与える一組の個々の時間領域方程式により表される各サブ回路により、１つまたはそれ以上のサブ回路の集合体として回路をモデル化するステップとを含む方法。
【請求項２１】
　前記プログラム可能な計算デバイスに関連するユーザ・インタフェースを供給するステップと、前記ユーザ・インタフェース上にモデル化した回路を視覚的にレンダリングするステップをさらに含む、請求項２０に記載の方法。
【請求項２２】
　前記ユーザ・インタフェース上に複数のサブ回路を視覚的にレンダリングするステップと、前記サブ回路の中の少なくとも２つを相互に配線するステップとをさらに含む、請求項２１に記載の方法。
【請求項２３】
　少なくとも１つの信号発生器を、前記一緒に配線したサブ回路に関連する前記ユーザ・インタフェース上に設置するステップをさらに含む、請求項２２に記載の方法。
【請求項２４】
　少なくとも１つのオシロスコープ・プローブを、前記一緒に配線したサブ回路に関連する前記ユーザ・インタフェース上に設置するステップをさらに含む、請求項２２に記載の方法。
【請求項２５】
　サブ回路が、前記設計ツールが読むことができるテキスト・ファイルの形の構成可能なアナログ・モジュールにより供給される、請求項２０に記載の方法。
【請求項２６】
　スイッチドキャパシタ回路をシミュレートするための方法であって、
　ユーザ・インタフェースを有するプログラム可能な計算デバイスと、前記プログラム可能な計算デバイスに関連する設計ツールと、前記構成可能なアナログ・モジュールの出力を前記構成可能なアナログ・モジュールの入力の関数として与える一組の個々の時間領域方程式により、個々の構成可能なアナログ・モジュールを表示するための前記設計ツールに関連するシミュレータを供給するステップと、
　前記ユーザ・インタフェースにより特定の構成可能なアナログ・モジュールを選択するステップと、
　前記選択した構成可能なアナログ・モジュールを、他の構成可能なアナログ・モジュールに関連する前記ユーザ・インタフェース上に置くステップと、
　前記選択した構成可能なアナログ・モジュールを、前記ユーザ・インタフェースにより、前記他の構成可能なアナログ・モジュールと一緒に配線するステップとを含む方法。
【請求項２７】
　前記シミュレータが、前記ある構成可能なアナログ・モジュールを他の構成可能なアナログ・モジュールと一緒に接続するために、ユーザが行った配線のリストを含む配線リストを使用する、請求項２６に記載の方法。
【請求項２８】
　個々の時間領域方程式の各組が、シミュレーション方程式を供給し、さらに、各構成可能なアナログ・モジュールに関連するクロックが決めた順序で順次シミュレーション方程式を実行するステップを含む、請求項２６に記載の方法。
【請求項２９】
　正確にシミュレートできないサブ回路の回路内のゼロ遅延ループを検出するステップと、ゼロ遅延ループを検出した場合、ユーザに警告するステップとをさらに含む、請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、プログラム可能で、構成可能なデバイスに関する。より詳細には、本発明は、スイッチドキャパシタ回路の設計およびシミュレーションに関する。
【背景技術】
【０００２】
（関連出願への相互参照）
　本出願は、引用によって本明細書の記載に援用する、２００２年８月２９日付けの「スイッチドキャパシタ回路をシミュレートするための装置および方法」という名称の米国仮特許出願番号６０／４０７，５０９の優先権を主張する。
【０００３】
　現在、いくつかのスイッチドキャパシタ・シミュレータが使用されている。トランジスタ・レベルのシミュレータは、スイッチドキャパシタ回路をシミュレートする場合、動作が遅くて使いものにならない。
【０００４】
　スイッチドキャパシタ回路は、個々のタイム・サンプルしたデータ・システムと見なすことができるので、回路の一時的な動作はモデル化する必要はない。このタイプのシミュレーションは、トランジスタ・レベルのシミュレーションより高速でなければならない。
【特許文献１】米国仮特許出願番号６０／４０７，５０９
【発明の開示】
【発明が解決しようとする課題】
【０００５】
　種々のソフトウェア・パッケージを使用する差分方程式に基づいて、カスタム・シミュレーションをより高速で書き込むことができるが、再構成可能なＦＰＡＡで可能な各回路に対して、カスタム・プログラムを書くことは実際には不可能である。
【課題を解決するための手段】
【０００６】
　本発明は、フィールド・プログラマブル・アナログ・アレイ（ＦＰＡＡ）で実現可能なスイッチドキャパシタ回路のシミュレーションを行うことができるようにする装置および方法を提供する。この技術を使用すれば、シミュレーションが行われるＦＰＡＡ設計システムを再度コンパイルしなくてもすむ。
【０００７】
　ある態様によれば、本発明は、スイッチドキャパシタ回路をシミュレートするための装置を提供する。この装置は、プログラム可能な計算デバイス、設計ツール、および動作シミュレータを含む。設計ツールは、プログラム可能な計算デバイスに関連していて、ユーザと相互作用を行うように構成されている。設計ツールは、プログラム可能な回路デバイスのサブ回路を定義するためのサブ回路定義を含む。動作シミュレータは、設計ツールに関連している。動作シミュレータは、サブ回路の出力をサブ回路への入力の関数として与える一組の個々の時間領域方程式により各サブ回路を表示するように構成されている。
【０００８】
　他の態様によれば、本発明は、フィールド・プログラマブル回路デバイスで実現されるスイッチドキャパシタ回路をシミュレートするための方法を提供する。該方法は、プログラム可能な計算デバイスと、プログラム可能な計算デバイスに関連する設計ツールと、設計ツールに関連する動作シミュレータとを供給するステップと；プログラム可能な回路デバイスのサブ回路を定義するためのサブ回路定義を含むプログラム可能な計算デバイスでコンピュータ・プログラム・コードを実施するステップと；出力を入力の関数として与える一組の個々の時間領域方程式により表される各サブ回路により、１つまたはそれ以上のサブ回路の集合体として回路をモデル化するステップとを含む。
【０００９】
　さらに他の態様によれば、本発明は、スイッチドキャパシタ回路をシミュレートするための方法を提供する。該方法は、ユーザ・インタフェースを有するプログラム可能な計算デバイスと、プログラム可能な計算デバイスに関連する設計ツールと、構成可能なアナログ・モジュールの出力を構成可能なアナログ・モジュールの入力の関数として与える一組の個々の時間領域方程式により、個々の構成可能なアナログ・モジュールを表示するための設計ツールに関連するシミュレータを供給するステップと；ユーザ・インタフェースにより特定の構成可能なアナログ・モジュールを選択するステップと；選択した構成可能なアナログ・モジュールを他の構成可能なアナログ・モジュールに関連するユーザ・インタフェース上に設置するステップと；選択した構成可能なアナログ・モジュールをユーザ・インタフェースにより他の構成可能なアナログ・モジュールと一緒に配線するステップとを含む。
【００１０】
　下記の添付の図面を参照しながら、本発明の好ましい実施形態について以下に説明する。
【発明を実施するための最良の形態】
【００１１】
　米国特許法の本質的な目的、すなわち、「科学および有用な技術の進歩を促進する目的」（第１条第８節）を推進するために本明細書を提出する。
【００１２】
　フィールド・プログラマブル・アナログ・アレイ（ＦＰＡＡ）で実現することができるスイッチドキャパシタ回路をシミュレートするには、ある装置および方法が必要である。上記方法は、新しいサブ回路を迅速に実施することができるように、非常に柔軟なものでなければならない。新しいサブ回路を追加した場合に、シミュレーションが行われるＦＰＡＡ設計システムを再度コンパイルしなくてもすむものでなければならない。シミュレーション時間は、最短でなければならない。
【００１３】
　本発明は、回路がサブ回路の集合体としてモデル化されるスイッチドキャパシタ回路をシミュレートするための方法を提供する。この方法は、シミュレーションを、設計に使用される同じＣＡＤツール内で実行することができるように、ＣＡＤツールにより回路を設計するための方法と互換性を持つ。「動作」シミュレータは、各サブ回路が、その出力をその入力の関数として与える一組の個々の時間領域方程式により表されるように考案された。
【００１４】
　サブ回路シミュレーションは、ＣＡＤツールと互換性を持ち、ＣＡＤツールにより使用されるが、ＣＡＤツールの一部ではない。サブ回路シミュレーション・モデルは、サブ回路定義の一部である。この方法を使用すれば、新しいサブ回路に対するシミュレーション・サポートを迅速に開発し、試験することができる。この方法を使用すれば、新しいサブ回路が生成された場合、または古いサブ回路を修正した場合、ＣＡＤツールを再度コンパイルする必要がなくなる。
【００１５】
　サブ回路シミュレーション・モデルは、インタープリタ・コードで実行することができるアルゴリズムの形をしている。ＣＡＤツール内に記憶しているシミュレート中の回路の状態に関するデータと結合した場合、これらのアルゴリズムは、出力電圧のようなサブ回路の状態に関する情報を返送する。
【００１６】
　シミュレータは、選択した回路ノードに入力記号を供給するための手段と、選択したノードから出力データを表示するための手段とを含む。ユーザは、各サブ回路に、１つまたはそれ以上のクロック信号を割り当てることができる。シミュレータは、また、クロックのチクタク音をシミュレートする。シミュレータは、特定の順序で個々の動作サブ回路モデルを実行することにより動作する。この実行順序は、クロックのチクタク音および種々のサブ回路を接続している配線により決まる。各サブ回路モデルは、サブ回路に関連する任意のクロックの遷移のところでだけ実行される。前の実行の結果は、動作モデル化への入力状態を決定するために使用される。この方法は、スイッチドキャパシタ回路を個々のタイム・サンプルしたシステムとしてモデル化する。
【００１７】
　以下の説明は、本発明の１つの可能な実施方法の説明であるが、より広い適用範囲を持つ他の実施方法も容易に生成することができる。
【００１８】
　シミュレーション・モデルは、この実施形態の場合にはＡＮ２０に対するＡｎａｄｉｇｍＤｅｓｉｇｎｅｒであるＣＡＤツールにより任意の時間に読み出すことができる構成可能なアナログ・モジュール（ＣＲＭ）と呼ばれるテキスト・ファイルである。方程式は、Ｃコード・テキストの形をしている。シミュレータは、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ内に常駐している。ユーザは、コンピュータ・スクリーン上でＣＡＭを選択し、設置し、それらＣＡＭを一緒に「配線」することにより、複雑な回路を生成するためにＡｎａｄｉｇｍＤｅｓｉｇｎｅｒを使用することができる。ユーザは、次に、シミュレーションのための回路をセットアップするために、「信号発生器」および「オシロスコープ・プローブ」を設置することができる。信号発生器は、入力源として機能する。オシロスコープ・プローブは、特定の出力ノードからの出力データを収集し、記憶し、シミュレーションが終了した後でデータを表示する。ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒの各ＣＡＭは、内部では「オブジェクト」として表現される。各ＣＡＭオブジェクトは、ＣＡＭファイルからＣコード・テキストの形で、その方程式を入手し、それらを内部のシミュレーションの実行中に使用できる場所に記憶する。
【００１９】
　シミュレーションの実行中には、シミュレータは、「ワイヤ・リスト」、すなわち、各ＣＡＭに対する入力が始まる場所を決定する目的で、ユーザがＣＡＭを接続するために行った配線のリストを使用する。ユーザが使用することができる配線作業は、確実に、有効な接続だけが行われるようにする。シミュレーション方程式は、各ＣＡＭに関連するクロックが決める順序で順次実行される。ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒは、また、正しくシミュレートできない「ゼロ遅延ループ」を検出するためのロジックを含み、このようなループが存在する場合にユーザに警告する。ＣＡＭへの入力は、ユーザが行った配線により、他のＣＡＭまたは信号発生器からくる。方程式は、これらの式およびその適当な入力値および式が必要とする内部にセーブした任意の値をＣインタープリタに送ることにより実行される。Ｃインタープリタは、実際にかなりの高速で動作し、シミュレートは短時間で行われる。
【００２０】
　図１は、本発明の好ましい実施形態である。この図は、参照番号１０で示す、スイッチドキャパシタ回路をシミュレートするための基本的システム構成を示す。システム１０は、パーソナル・コンピュータ（ＰＣ）１４のようなプログラム可能な計算デバイス１２を含む。
【００２１】
　図１に示すように、システム１０は、プログラム可能な制御デバイス１８により、プログラム可能な回路デバイス２０をプログラミングすることができる方法で、ソフトウェアおよびハードウェアを組み合わせることにより実施される。より詳細に説明すると、密接な結合制御を使用できるようにするために必要な情報を、中央処理装置（ＣＰＵ）プログラムにより、コントローラ・プログラムの開発の際に使用することができるようにするために、ソフトウェアは、プログラム可能な回路デバイス２０をプログラミングするためのエクスポートされたデバイス情報の形で供給される。プログラム可能な制御デバイス１８は、次に、（ａ）構成データの全部または一部を修正し、プログラム可能な回路デバイス２０のレジスタに構成データを適用するか、（ｂ）プログラム可能な回路デバイス２０のレジスタ内に含まれている構成データの全部または一部を直接修正することにより、プログラム可能な回路デバイス２０が修正した構成データを使用できるようにする。構成データを使用して、プログラム可能な回路デバイス２０は、一連のソフトウェアとしてプログラムされる。システムのソフトウェア態様は、従来技術のシステムの通常の構成データの他に、プログラム可能な回路デバイス２０の機能の全部または一部を修正するために、第２の構成可能なデバイスが使用することができるコードを生成する。
【００２２】
　図１に示すように、あるタイプのプログラム可能な計算デバイス１２は、パーソナル・コンピュータ（ＰＣ）１４を備える。ＰＣ１４は、マイクロコントローラ・ユニット（ＭＣＵ）２２、メモリ２８、設計ツール３０、ユーザ・インタフェース３４、および構成可能なアナログ・モジュール（ＣＡＭ）ライブラリ４０を含む。ＭＣＵ２２は、処理回路２６を含む中央処理装置（ＣＰＵ）２４を含む。設計ツール３０は、１つまたはそれ以上の回路設計３６が生成され、モデル化されるコンピュータ援用設計（ＣＡＤ）ツール３２を含む。各回路設計３６は、ネットリスト３８の形をしている回路モデル情報を含む。
【００２３】
　ＣＡＭライブラリ４０は、スイッチドキャパシタ回路のような各サブ回路に関する情報を含む複数のサブ回路定義４２を含む。ある場合には、サブ回路定義は、構成可能なアナログ・モジュール（ＣＡＭ）である。それ故、ＣＡＭライブラリ４０は、複数のＣＡＭを備える。プログラマブル制御デバイス１８は、アプリケーション・プログラム４４およびユーザ・インタフェース４６を含む。動作中、アプリケーション・プログラム４４は、関連するアプリケーション・システムで、ソフトウェアの監視および制御機能を実施するためのコンピュータ・プログラム・コードを含む。ユーザ・インタフェース４６により、上記監視および制御機能が可能になる。
【００２４】
　ある形のプログラマブル回路デバイス２０は、フィールド・プログラマブル・アナログ・アレイ（ＦＰＡＡ）２１を備える。ＦＰＡＡ２１は、ハードウェア４８およびメモリ５６を含む。ハードウェア４８は、プログラミングにより複数の一意の構成に構成することができる。より詳細に説明すると、回路５０は、サブ回路（スイッチドキャパシタ回路など）５２および回路構成要素５４を必要な構成に配線または接続することによりＦＰＡＡ２１内で実現される。
【００２５】
　設計ツール３０は、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ２を備える。初期のバージョンであるＡｎａｄｉｇｍＤｅｓｉｇｎｅｒは、英国のＡｎａｄｉｇｍ社が公開していて、ｈｔｔｐ：／／ｗｗｗ．ａｎａｄｉｇｍ．ｃｏｍからダウンロードして使用することができる。ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒは、引用によって本明細書の記載に援用する。
【００２６】
　上記技術によれば、回路のシミュレーションおよびプログラミング・データの生成が、コンピュータ援用設計（ＣＡＤ）ツールの使用により非常に簡単になる。ＣＡＤツールは、回路設計者に周知の方法で設計を表し、ＦＰＡＡをプログラムするのに必要な対応するデータを自動的に生成する方法で設計を表示する。このようなコンピュータ援用設計（ＣＡＤ）ツールを使用しない場合には、このようなプログラミングを修正または生成する機能は制限され、ほとんど実際には使用できない。
【００２７】
　動作中、設計ツール３０は、構成データの最初の一組を生成する。構成データは、エクスポートしたデバイス情報により、ＰＣ１６内のコンパイラ（図示せず）に供給される。さらに、またはそうしたい場合には、構成データは、ＰＣ１６のユーザ・プログラム（図示せず）によりコンパイラに供給される。引用によって本明細書の記載に援用する「プログラム可能な半導体デバイスを構成するための方法」という名称の米国特許第６，２７２，６６９Ｂ１号に、プログラム可能な半導体デバイスの構成方法がより詳細に開示されている。引用によって本明細書の記載に援用する「構成可能なハードウェア・デバイスでアナログ素子を構成するためのシステムおよび方法」（Ｓｙｓｔｅｍ　ａｎｄ　Ｍｅｔｈｏｄ　ｆｏｒ　Ｃｏｎｆｉｇｕｒｉｎｇ　Ａｎａｌｏｇ　Ｅｌｅｍｅｎｔｓ　ｉｎ　ａ　Ｃｏｎｆｉｇｕｒａｂｌｅ　Ｈａｒｄｗａｒｅ　Ｄｅｖｉｃｅ）という名称の米国特許出願番号１０／１７１，３３４に構成可能なハードウェア・デバイスでアナログ素子を構成するための装置および方法がさらに詳細に開示されている。
【００２８】
　公開されていて使用することができる市販のＡｎａｄｉｇｍＤｅｓｉｇｎｅｒで現在使用することができる改善に追加された特定の改善としては、スイッチドキャパシタ回路をシミュレートする機能、およびＣＡＤツールで、サブ回路設計のグルーブを一緒に組み立てることにより回路を設計する機能等がある。設計が済むと、回路（またはサブ回路）設計を、フィールド・プログラマブル・アナログ・アレイ（ＦＰＡＡ）のようなプログラム可能なデバイスで実現することができる。ＣＡＤツールは、回路設計をデバイスをプログラムするのに必要な適当にフォーマットされたデータに変換するための機構を供給する。各サブ回路に対するサブ回路定義は、ＣＡＤツールと互換性を持つが、ＣＡＤツールの一部ではない。サブ回路定義は、個々にまたはグループで携帯することができる。より詳細に説明すると、サブ回路定義は、それをＣＡＤツールと一緒に使用するために、コンパイルする必要はない。それ故、サブ回路定義は、ＣＡＤツールとの互換性を維持しながら、関連するサブ回路の機能を変更するために、容易に生成または修正することができる。
【００２９】
　サブ回路定義は、いくつかのことを行うために必要なサブ回路に関する情報を含む。第１に、サブ回路定義は、サブ回路の複数の構成、トポロジーおよびパラメータを定義するために必要なサブ回路に関する情報を含む。第２に、サブ回路定義は、これらの複数の構成の制御を可能にするユーザ・インタフェースを定義し、制御するために必要なサブ回路に関する情報を含む。第３に、サブ回路定義は、ユーザの選択に基づくサブ回路の構成を修正するのに必要なサブ回路に関する情報を含む。第４に、サブ回路定義は、サブ回路の正しい使用に関するエラーのチェックを行うために必要なサブ回路に関する情報を含む。第５に、サブ回路定義は、もっと大きなアナログ回路でのサブ回路の動作をシミュレートするのに必要なサブ回路に関する情報を含む。第６に、サブ回路定義は、サブ回路の記号的表示を行うのに必要なサブ回路に関する情報を含む。第７に、サブ回路定義は、サブ回路のバージョン数を決定するのに必要なサブ回路に関する情報を含む。第８に、サブ回路定義は、特定のＣＡＤツールとのサブ回路の互換性、または特定のＣＡＤツールのバージョン数を決定するのに必要なサブ回路に関する情報を含む。第９に、サブ回路定義は、ＦＰＡＡのようなプログラム可能なデバイスとのサブ回路の互換性を決定するのに必要なサブ回路に関する情報を含む。
【００３０】
　サブ回路に関する情報の中のあるものは、インタープリタ・コードに実現することができるアルゴリズムの形で含まれている。アルゴリズム内の情報が、ＣＡＤツール内に記憶しているデータ、およびＣＡＤツールが作動したユーザ・インタフェースから入手したデータと結合すると、アルゴリズムは、必要な情報をＣＡＤツールに返送する。例えば、ユーザの選択（上記項目３）に応じて、サブ回路の構成の修正に関する情報はこの方法で処理される。
【００３１】
　（図１の）ＣＡＤツール３２はいくつかのことを実行する機能を有する。第１に、ＣＡＤツールは、サブ回路定義に含まれるデータを読み出すことができる。第２に、ＣＡＤツールは、ユーザが、サブ回路をもっと大きい回路に組み立てることができるユーザ・インタフェースを供給する。第３に、ＣＡＤツールは、ユーザが、そのサブ回路設計の構成および動作を変更することができるように、各サブ回路に対してユーザ・インタフェースを供給することができる。第４に、ＣＡＤツールは、サブ回路定義に含まれているインタープリタ・コードを作動させることができる。第５に、ＣＡＤツールは、ユーザ・インタフェースに、特殊なプログラム可能なデバイスに特有な機能を供給することができる。第６に、ＣＡＤツールは、サブ回路定義に含まれる回路設計および情報によりシミュレーションをセットアップおよび実行することができる。第７に、ＣＡＤツールは、シミュレーションの結果をチェックすることができる。第８に、ＣＡＤツールは、プログラム可能なデバイスにダウンロードするために、回路設計を適当にフォーマットされたデータに変換することができる。第９に、ＣＡＤツールは、適当にフォーマットされたデータをプログラム可能なデバイスに容易にダウンロードすることができる。
【００３２】
　上記特徴により、有意な設計の専門知識を、シミュレーションにより示すように、サブ回路トポロジー、サブ回路トポロジーおよび構成要素の値のユーザ・インタフェースが表示するもっと高いレベルのパラメータとの関係、およびサブ回路の性能を含むサブ回路定義内に入れることができる。サブ回路定義は、ＣＡＤツールと一緒に、プログラム可能なデバイス・アーキテクチャの特定の詳細を含む。それ故、この技術を使用する人は、回路設計またはプログラム可能なデバイスの専門家でなくてもよい。それどころか、ユーザは、サブ回路のユーザ・インタフェースおよびＣＡＤツールが表すもっと高いレベルの抽出を行うことができる。それ故、回路の設計、およびＦＰＡＡチップをプログラムするための適当なフォーマットへの回路の変換の両方を比較的迅速に容易に行うことができる。
【００３３】
　構成可能なアナログ・モジュール（ＣＡＭ）の形をしているサブ回路定義は、ＦＰＡＡチップのようなプログラム可能なデバイスで構成することができる１つまたはそれ以上のサブ回路（スイッチドキャパシタ回路のような回路）の完全な内蔵定義を含む。サブ回路定義は、サブ回路定義の内蔵部分を形成し、他のサブ回路と密接に相互作用を行う「Ｃ」コードを含む。ＣＡＭは、構成およびシミュレーション・モデルを定義する「Ｃ」コードの「断片」（ｓｎｉｐｐｅｔ）または比較的小さなセグメントを含む。
【００３４】
　図２〜図４は、本発明の１つの可能な実施形態を示す。しかし、もっと広い適用性を有する他の実施形態も可能であり、添付の特許請求の範囲に入ることを理解されたい。
【００３５】
　図２は、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ２、すなわち、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒの新しいバージョンの半サイクル利得段５８を実現する特定のアナログ回路（またはサブ回路）のセットアップである。ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ２（ＣＡＤツール）のアプリケーションをスタートすると、ユーザに対して、設計ツール・アプリケーション・ウィンドウ６２に図２のスクリーン画像６０が表示される。特定のチップ設計ができるようにするために、ＡＮ２２０Ｅ０４　ＦＰＡＡチップ設計６４が作業スペース６６内に表示される。
【００３６】
　スクリーン・ディスプレイ６０は、ヘッダ６８、ユーザが選択できるように複数のメニュー項目７１〜７３が表示されるメニューバー７０、複数の選択することができるツールバー・ボタン７６および７８が表示されるツールバー７４を含む。
【００３７】
　図２に示す「編集」、「シミュレーション」、「構成」および「設定」、およびスイッチドキャパシタ回路のシミュレーションに対する特定のメニュー項目を除いて、メニューバー７０の残りのメニュー項目は、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ、すなわち、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ２の初期のバージョンで現在使用できる。それ故、このような他のメニュー項目の機能的詳細は、本発明が分かりにくくなると困るので、本明細書においてはあまり詳細には説明しない。代わりに、「編集」メニュー項目７１および「シミュレーション」メニュー項目７３が供給する追加の機能および詳細について以下により詳細に説明する。
【００３８】
　チップ設計６４は、ＡｎａｄｉｇｍＤｅｓｉｇｎｅｒ２により特定のチップ設計が生成される最初のテンプレートを供給する。より詳細に説明すると、チップ設計６４は、入力セル６７および６９のような複数の入力セル、および出力セル７７および７９のような複数の出力セルを含む。
【００３９】
　この実施形態によれば、サブ回路定義は、ＣＡＤツールのＣＡＭライブラリ内に位置する構成可能なアナログ・モジュール（ＣＡＭ）を備える。ある実施形態によれば、ＣＡＭは、サブ回路記述に対応する特殊なサブ回路を定義するために必要なすべての情報を含む１つのテキスト・ファイルである。図２の半サイクル利得段５８は、ＣＡＭの一例である。
【００４０】
　図２に示すように、一組の信号発生器９５および９７が、入力セル６７の入力リードに接続している。各信号発生器９５および９７は、後で必要な入力ピンのところにマウスおよびカーソルにより置かれる信号発生器９５および９７に対するアイコンを始動させる、ツールバー・ボタン７８を選択することにより生成される。信号発生器９５または９７のアイコンを選択するために右クリックすることによりメニュー項目が表示される。次に、「信号発生器設定」というタイトルの選択したメニュー項目が表示される。このようなメニュー項目を選択すると、図３のスクリーン・ディスプレイ１２４が、すなわち、（図３の）信号発生器制御ダイアログ・ボックス１２５が始動する。
【００４１】
　さらに、ツールバー・ボタン７６を選択することにより、サブ回路設計内の選択した位置に複数のオシロスコープ・プローブ８７，８９，９１および９３が適用される。それにより、マウスを１回左クリックすることにより、コンピュータのマウスおよびカーソルにより位置決めおよび設置することができる移動可能なオシロスコープ・アイコンが表示され、カーソルはすでに適当なノードのところに位置している。設置すると、ユーザは、「オシロスコープ」メニュー項目を含むメニューを始動するオシロスコープ・プローブ・アイコン８７，８９，９１または９３上を右クリックすることができる。マウスおよびカーソルによりあるメニューを選択すると、図４のオシロスコープ・ダイアログ・ボックス１５７が始動する。
【００４２】
　スクリーン・ディスプレイ６０は、対応する「半サイクル利得段」サブ回路の適当な構成を決定するために、インタープリタ・コードと一緒に使用することができるユーザが選択したオプションを、ユーザが使用できるようにする。構成は、対応するＣＡＭに含まれているネットリストの中の１つにより指定される。各ネットリストは、コンデンサ、演算増幅器（オペアンプ）、およびＦＰＡＡまたはチップ上に位置するその他のアナログ構成要素への参照を含む。ネットリストは、また、「半サイクル利得段」のユーザが選択した構成を実現するするためのこれら構成要素の接続方法を示す接続情報も含む。
【００４３】
　図３は、「信号発生器制御」ダイアログ・ボックス１２５用のスクリーン画像１２４である。ダイアログ・ボックス１２５は、「信号発生器制御」ヘッダ１２６、波形ボタン１２８，１３０，１３２，１３４，１３６および１３８、および「波形データ発生」フィールド１４０、および「終了」ボタン１４２を含む。ボタン１２８，１３０，１３２，１３４，１３６および１３８は、（図２の）信号発生器９５または９７が、（図２の）信号発生器ボタン７８を選択することにより、すでに設置されている指定のピンまたはセルのところで、対応する信号を発生するために必要な信号発生器を構成するためにそれぞれ選択される。
【００４４】
　例えば、波形ボタン１２８を選択すると、選択したピンのところに正弦波を供給するように信号発生器が構成される。波形ボタン１３０を選択すると、方形波を供給するように信号発生器が構成される。波形ボタン１３２を選択すると、三角波を供給するように信号発生器が構成される。波形ボタン１３４を選択すると、のこぎり波を供給するように信号発生器が構成される。波形ボタン１３６を選択すると、ディラック・インパルスを供給するように信号発生器が構成される。最後に、波形ボタン１３８を選択すると、任意の波形を供給するように信号発生器が構成される。
【００４５】
　「波形データ発生」フィールド１４０は、「振幅設定」フィールド１４４、「電圧オフセット設定」フィールド１４６、および「周波数設定」フィールド１４８を含む。「振幅設定」フィールド１４４は、信号発生器に対して選択した信号の電圧振幅を入力するための「ボルト」入力フィールド１５０を含む。「電圧オフセット設定」フィールド１４６は、ユーザが、信号発生器に対して選択した信号の電圧オフセットを設定することができる、「ボルト」入力フィールド１５２を含む。「周波数設定」フィールド１４８は、ユーザが、信号発生器に対して選択した信号の周波数を設定することができる「ボルト」入力フィールド１５４を含む。
【００４６】
　図４は、「オシロスコープ」ダイアログ・ボックス１５７に対するスクリーン画像１５６である。（図２の）「オシロスコープ」ボタン７８を選択すると、（図２の）チップ設計６４内の特定の位置にマウスカーソルにより位置させ、設置することができる移動可能なオシロスコープ・アイコンが表示される。マウスカーソルを１回クリックすることにより、アイコンが適当なノードのところに位置すると、ユーザは、オシロスコープ・プローブ・アイコン８７上で右クリックすることができ（図２参照）、それにより、「オシロスコープ」メニュー項目を含むメニューが表示される。マウスカーソルにより、「オシロスコープ」メニュー項目を選択すると、図４のオシロスコープ・ダイアログ・ボックス１５７が表示される。
【００４７】
　それ故、「オシロスコープ」ダイアログ・ボックス１５７は、「チャネル選択」ボックス１７０，１７２，１７４および１７６が識別したチャネルに対応するチャネル１〜４に対して、時間領域出力１６２，１６４，１６６および１６８が表示される信号出力表示フィールド１５８を含む。例を挙げて説明すると、オシロスコープ出力波形１６２は、「チャネル１」に対応する（図２の）オシロスコープ・プローブ・アイコン８７が識別したオシロスコープ出力に対応する。同様に、「チャネル２」に対する出力は、（図２の）オシロスコープ・プローブ８９に対応する出力１６４からなる。「チャネル３」に対する出力１６６は、（図２の）オシロスコープ・プローブ・アイコン９１に対応する。最後に、出力１６８は、（図２の）オシロスコープ・プローブ・アイコン９３からの「チャネル４」に対応する。
【００４８】
　「オシロスコープ」ダイアログ・ボックス１５７は、チャネル選択ボックス１７０，１７２，１７４および１７６が表示される「データ表示」フィールド１６０を含む。「区分毎のボルト」スクローリング・リスト・ボックス１７８は、縦座標、すなわち、ｙ軸の電圧のスケールに対応する各チャネルのためのものである。第２のスクローリング・リスト・ボックス１８０は、「位置」スクローリング・リスト・ボックス１８０に対するチャネル１〜４のためのものである。各チャネル１〜４は、また、表示フィールド１５８内の横座標、すなわち、ｘ軸に沿った対応する時間における各チャネルに対して特定の電圧値が表示される「電圧」データ入力フィールド１８２を含む。さらに、「区分毎の時間」スクローリング入力フィールド１８４により、ユーザは、信号出力表示フィールド１５８内で区分毎の時間を調整することができる。さらに、「時間」入力フィールド１８６は、表示フィールド１５８内のカーソル・ラインの位置が示す選択した時間に対応し、また、個々のデータ入力フィールド１８２内に表示された電圧に対応する時間を表示する。
【００４９】
　スクローリング時間ラインバー１８８により、ユーザは、表示フィールド１５８内の横座標時間ラインに沿って特定の位置を選択することができ、次に、チャネル１〜４に対する入力フィールド１８２内に対応する電圧を表示し、時間入力フィールド１８６内に時間を表示する。それ故、スクローリング時間ラインバー１８８は、データ・フィールド１５８の横座標、すなわち、時間領域に対応する。
【００５０】
　「グリッド」ボタン１９０により、ユーザは、（図４の）信号出力表示フィールド１５８内に示すように、グリッド・ラインをオン／オフすることができる。「カーソル」ボタン１９２は、ユーザがマウスにより移動することができるカーソルをスクリーン・ディスプレイ１５６上に置く。「電圧」データ入力フィールド１８２および「時間」入力フィールド１８６は、カーソル位置のところのデータに対応する数値を表示する。「クローズ」ボタン１９４により、ユーザは、スクリーン・ディスプレイ１５６を閉じることができる。
【００５１】
　本発明を、スイッチドキャパシタ回路の例示としての特定の実施例として説明してきたが、本発明の装置および方法は、任意のサンプリングしたデータ・システムに対しても同様に使用することができる。例えば、本発明の装置および方法は、また、スイッチドキャパシタ回路、デジタル信号処理、パルスをベースとするシステム、または任意の他のサンプリングしたデータ・システムにも適用することができる。
【００５２】
　特許法に従って、構造上および方法上の機能に多かれ少なかれ特有の言語により本発明を説明してきた。しかし、本発明は、図面に示し今迄説明してきた特定の機能に限定されないことを理解されたい。何故なら、本明細書で開示した手段は、本発明を実行するための好適な形からなるからである。それ故、本発明は、等価の原則に従って正しく解釈した添付の特許請求の範囲の正しい範囲内で任意の形にし、また任意の修正を行うことができる。
【図面の簡単な説明】
【００５３】
【図１】プログラム可能なデバイスのスイッチドキャパシタ回路をシミュレートするための例示としてのシステムの基本システム構成全体のブロック図である。
【図２】設計ツール・アプリケーション・ウィンドウ用のスクリーン・ディスプレイであり、半サイクル利得段サブ回路設計ウィンドウを示す。
【図３】図２のスクリーン・ディスプレイ内のポップアップ・ウィンドウを含む信号発生器制御ダイアログ・ボックスである。
【図４】図２のスクリーン・ディスプレイ内のポップアップ・ウィンドウを含むオシロスコープ・ダイアログ・ボックスである。
【図１】
2004094956.tif 000003
【図２】
2004094956.tif 000004
【図３】
2004094956.tif 000005
【図４】
2004094956.tif 000006