(57)【要約】ウェルバイアスを、そのようなバイアスが必要な、または望ましいＰＬＤの部分のみに選択的にかける、たとえば正のウェルバイアスをユーザの設計内の重要経路上のトランジスタのみにかけるための構造および方法である。集積回路用基板は、各々が同じかまたは異なるウェルバイアス電圧で独立してかつプログラム可能にバイアスをかけられ得る複数のウェルを含む。一実施例では、ＦＰＧＡ実現ソフトウェアが重要経路を自動的に判断し、重要経路に加わっているトランジスタのみについて、またはそれらのトランジスタを含むプログラマブルロジック素子（たとえばＣＬＢまたはルックアップテーブル）のみについて正のウェルバイアス印加を可能にする設定ビットストリームを生成する。別の実施例では、漏洩電流を減少させるため、負のウェルバイアス印加が選択的にかけられる。
2005503668.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックデバイス（ＰＬＤ）においてユーザ回路を実現する方法であって、
コスト基準に基づいて、ユーザ回路から第１の論理グルーピングを選択するステップと、
コスト基準に基づいて、ユーザ回路から第２の論理グルーピングを選択するステップと、
第１の論理グルーピングのためのウェルバイアス印加の第１のレベル、および第２の論理グルーピングのためのウェルバイアス印加の第２のレベルを可能にする設定データファイルを生成するステップとを含む、方法。
【請求項２】
ウェルバイアス印加の第１のレベルは、正のウェルバイアスであり、
ウェルバイアス印加の第２のレベルは、印加ウェルバイアスなしである、請求項１に記載の方法。
【請求項３】
ウェルバイアス印加の第１のレベルは、負のウェルバイアスであり、
ウェルバイアス印加の第２のレベルは、印加ウェルバイアスなしである、請求項１に記載の方法。
【請求項４】
ウェルバイアス印加の第１のレベルは、正のウェルバイアスであり、
ウェルバイアス印加の第２のレベルは、負のウェルバイアスである、請求項１に記載の方法。
【請求項５】
ウェルバイアス印加の第１および第２のレベルは、極性は同じだが値は異なる、請求項１に記載の方法。
【請求項６】
コスト基準は、第１の論理グルーピングの性能を含む、請求項１に記載の方法。
【請求項７】
コスト基準は、ユーザ回路の電力消費を含む、請求項１に記載の方法。
【請求項８】
第２の論理グルーピングは、第１の論理グルーピングに含まれていないユーザ回路のすべての部分を含む、請求項１に記載の方法。
【請求項９】
集積回路用基板であって、
基板内に形成された第１のウェルと、
第１のウェルに第１のウェルバイアス電圧をプログラム可能に提供するための第１の手段と、
基板内に形成された第２のウェルと、
第２のウェルに第２のウェルバイアス電圧をプログラム可能に印加するための第２の手段とを含み、
第１および第２の手段は互いに独立している、基板。
【請求項１０】
第１の手段は、第１のウェルバイアス電圧を第１のウェルに印加するようプログラムされ、
第２の手段は、第２のウェルバイアス電圧を第２のウェルに印加しないようプログラムされている、請求項９に記載の基板。
【請求項１１】
第１のウェルバイアス電圧は、正のウェルバイアスであり、
第２のウェルバイアス電圧は、負のウェルバイアスである、請求項９に記載の基板。
【請求項１２】
第１のウェルバイアス電圧は、第１の正のウェルバイアスであり、
第２のウェルバイアス電圧は、第２の正のウェルバイアスである、請求項９に記載の基板。
【請求項１３】
第１のウェルバイアス電圧は、第１の負のウェルバイアスであり、
第２のウェルバイアス電圧は、第２の負のウェルバイアスである、請求項９に記載の基板。
【請求項１４】
第１の手段は、複数の支持されたウェルバイアス電圧のうちの１つを、第１のウェルにプログラム可能に提供する、請求項９に記載の基板。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明はプログラマブルロジックデバイス（ＰＬＤ）に関する。より特定的には、この発明は、ＰＬＤの選択された一部にプログラマブルウェルバイアスをかけるための構造および方法に関する。
【背景技術】
【０００２】
発明の背景
プログラマブルロジックデバイス（ＰＬＤ）は、特定のロジック機能を実行するようユーザによってプログラムされ得る周知の種類のデジタル集積回路である。ＰＬＤの１種類であるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は通常、プログラマブル入力／出力ブロック（ＩＯＢ）のリングによって包囲された設定可能ロジックブロック（ＣＬＢ）のアレイを含む。ＣＬＢおよびＩＯＢは、プログラム可能相互接続構造によって相互接続される。ＦＰＧＡの中には、特殊な目的を有するさらなるロジックブロック（たとえばＤＬＬ、ＲＡＭなど）を含むものもある。
【０００３】
ＣＬＢ、ＩＯＢ、配線、および他のロジックブロックは通常、設定データの流れ（ビットストリーム）を、ＣＬＢ、ＩＯＢ、および配線の設定方法を規定する内部設定メモリセルにロードすることによって、プログラムされる。設定データは、メモリ（たとえば外部ＰＲＯＭ）から読出されてもよく、または外部装置によってＦＰＧＡに書込まれてもよい。個々のメモリセルの集団状態が次にＦＰＧＡの機能を決定する。
【０００４】
ＰＬＤでは、他の集積回路（ＩＣ）と同様に、さまざまなＣＬＢ、ＩＯＢ、および配線が単一の基板上に形成されている。図１Ａは、ＮＭＯＳトランジスタ１０１およびＰＭＯＳトランジスタ１０２が上に形成された第１のシリコン基板を示す。シリコン基板１００は正にドーピングされている（Ｐ型）。したがって、ＰＭＯＳトランジスタを形成するために、「Ｎウェル」（負にドーピングされた領域）１１２が基板１００内へ拡散され、ＰＭＯＳトランジスタ１０２がＮウェル１１２内に形成される。
【０００５】
図１Ｂは、「トリプルウェル」プロセスを使用して形成されたＣＭＯＳ集積回路（ＩＣ）用の第２のシリコン基板を示す。トリプルウェルプロセスを使用する場合、ＮＭＯＳトランジスタ１０１は「Ｐウェル」（正にドーピングされた領域）１１１内に形成され、それはより大きいＮウェル１１３内にあり、そしてそれはＰ型基板１００内にある。同様に、すべてのＰＭＯＳトランジスタ１０２はＮウェル１１２内に形成され、それもＰ型基板１００内にある。このため、Ｐウェル１１１およびＮウェル１１２は、互いから、かつ基板内の他のすべてのウェルから電気的に分離される。
【０００６】
図１Ｃは、「ＳＯＩ」、つまりシリコン・オン・インシュレータ・プロセスを使用して形成された第３のシリコン基板を示す。ＳＯＩプロセスを使用する場合、ＮＭＯＳトランジスタ１０１はＰウェル１１１内に形成され、ＰＭＯＳトランジスタ１０２はＮウェル１１２内に形成される。Ｐウェル１１１およびＮウェル１１２の各々は、電気的に絶縁性の基板１１０内にある。このため基板は、ＰウェルおよびＮウェルを、互いから、かつ基板内の他のすべてのウェルから分離する。
【０００７】
ＩＣ設計者たちは時間をかけて、「ＶＣＣ」、つまり、ＩＣが動作するよう設計されている電源ハイ電圧レベルを低下させている。このＶＣＣの低下は、ＩＣにおける電力消費の低減という利点を有する。しかしながら、それはＩＣにおける性能の低下という望ましくない影響も有する。したがって、この性能の低下を打消す方法を見つけることが望ましい。１つの方法は、トランジスタが存在するウェルに電圧バイアスをかけることである。
【０００８】
トリプルウェルプロセスまたはＳＯＩプロセスのいずれかを使用する場合、ＰウェルおよびＮウェルは、互いに異なり、かつ同じ種類の他のウェルと異なる電圧レベルにバイアスをかけられ得る。かけられた電圧差は、「基板バイアス」、または（ウェルにかけられた場合には）「ウェルバイアス」と呼ばれる。
【０００９】
図１Ｂおよび図１Ｃは、ＰウェルおよびＮウェルへのウェルバイアス印加の適用例を示す。たとえば、ＮＭＯＳトランジスタ１０１については、約０．４〜０．６ボルトの正のウェルバイアス１０５をＰウェル１１１にかけることができる。言換えれば、Ｐウェル１１１が通常接地されている（０ボルト）場合には、Ｐウェルは約０．４〜０．６ボルトへ駆動される。
【００１０】
同様に、ＰＭＯＳトランジスタ１０２については、約−０．４〜−０．６ボルトの正のウェルバイアス１０６をＮウェル１１２にかけることができる。言換えれば、いわゆる「正のウェルバイアス」はＮウェルを、元の電圧レベルに対して負の電圧へ駆動する。たとえば、ＰＭＯＳトランジスタ１０２については、Ｎウェルが通常ＶＣＣ（電源ハイ）にある場合には、Ｎウェルは約ＶＣＣ−０．４〜ＶＣＣ−０．６ボルトへ駆動される。
【００１１】
ここで用語が使用されているように、より多くの正の電圧をＰウェルにかけること、または、より多くの負の電圧をＮウェルにかけることは、「正のウェルバイアス」をかけると呼ばれる。このため、正のウェルバイアスをかけることは、ウェル内のトランジスタの逆のウェルバイアスを効果的に低減させる。また、ここで使用されているように、より多くの負の電圧をＰウェルにかけること、または、より多くの正の電圧をＮウェルにかけることは、「負のウェルバイアス」をかけると呼ばれる。このため、負のウェルバイアスをかけることは、ウェル内のトランジスタの逆のウェルバイアスを効果的に増加させる。
【００１２】
ウェルの電圧レベルを変えることによって、ウェル内のトランジスタのしきい値電圧（Ｖｔ）が変更される。たとえば、Ｐウェルにおける正の電圧の増加（つまり正のウェルバイアス）は、ウェル内のＮＭＯＳトランジスタのしきい値電圧の低下をもたらす。このより低いしきい値電圧は次に、飽和ドレイン電流を増加させ、それは、バイアスがかかったウェル内のすべてのＮＭＯＳトランジスタの性能を向上させる。
【００１３】
逆の状況も真である。たとえば、Ｐウェルにおけるより低い電圧（つまり負のウェルバイアス）は、ウェル内のＮＭＯＳトランジスタのしきい値電圧の上昇をもたらし、結果として漏洩電流の減少をもたらす。ジトリン（Gitlin）他は、米国特許第５，８８０，６２０号「ボディバイアス制御を有するパスゲート回路（Pass Gate Circuit with Body Bias
Control）」において、漏洩電流を減少させるために負のウェルバイアスを使用する一例を記載している。しかしながら、負のウェルバイアスをかけることは、トランジスタの性能を低下させるという影響も有する。
【００１４】
正のウェルバイアスをかけることはトランジスタの性能を向上させるものの、より速い動作はその代償を有する。飽和ドレイン電流を増加させることに加え、正のウェルバイアスは、不活性のトランジスタを通って流れる電流の量も増加させる。この電流は、ＣＭＯＳ集積回路（ＩＣ）における漏洩電流の主な構成要素である。したがって、ＩＣ上のすべてのトランジスタに正のウェルバイアスをかけることは、素子の性能を確実に向上させるが、容認できないほど大きい漏洩電流ももたらし得る。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
この限界に対処するため、（プログラマブルロジックデバイスすなわちＰＬＤとは対照的な）「固定機能」ロジックデバイスが、特に速度が重要な回路のみに正のウェルバイアスをかけることで設計可能である。この手法を適用することによって、必要なところでのみ速度の利点が得られつつ、漏洩電流の増加は許容可能な範囲内にとどめられる。
【００１６】
しかしながら、正の印加ウェルバイアスによる漏洩電流の増加の問題は、ＰＬＤではそれほど簡単には対処されない。ＰＬＤでは、重要な回路および経路は、素子の特定の領域または特定のトランジスタに限定されていない。たとえば、ＦＰＧＡでは、ユーザは、速度が重要な機能を実行するよう、ＣＬＢをどれでもプログラムすることができ、２つのそのようなＣＬＢ間の経路は、多数の配線経路をどれでも横断可能である。したがって、かつては、ＰＬＤにおいて正のウェルバイアス印加を利用するには、バイアスがかかったトランジスタを重要経路が確実に使用するようにするために、素子のプログラマブル領域における各トランジスタのウェルバイアス印加が必要だったであろう。何百万ものトランジスタが各ＰＬＤにおいて使用されるという程度までＰＬＤのサイズが増加するにつれ、漏洩電流は多くの設計において限定要因となってきている。したがって、大型ＰＬＤの設計において正のウェルバイアス印加を利用することは、不可能であった。
【００１７】
したがって、大型ＰＬＤへのウェルバイアス印加手法の適用を可能にする構造および方法を提供することが望ましい。
【課題を解決するための手段】
【００１８】
発明の概要
この発明は、各々が同じかまたは異なるウェルバイアス電圧で独立してかつプログラム可能にバイアスをかけられ得る複数のウェルを含む集積回路用基板を提供する。
【００１９】
いくつかの実施例では、集積回路は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）といったプログラマブルロジックデバイス（ＰＬＤ）である。そのような一実施例では、各ウェルまたはウェルのグループに対するバイアスは、バイアス発生器回路から、プログラマブルメモリセルにより制御されるパストランジスタを介して、プログラム可能にかけられる。プログラマブルメモリセルは、ＦＰＧＡ内のＣＬＢ、ＩＯＢ、および配線のプログラミングを制御するのと同じ設定ビットストリームを用いてプログラムされる。ＦＰＧＡは、ウェルバイアス印加が別々に制御される２つ以上の部分に分割される。ＦＰＧＡ部分は、ルックアップテーブル、パストランジスタなどの個々のトランジスタ、マルチプレクサ、全ＣＬＢ、または素子の任意の他の部分を含み得る。
【００２０】
いくつかの実施例では、複数のウェルバイアス電圧レベルが提供される。２つ以上のＳＲＡＭセルに記憶された値がデコードされて、各ウェルに対し、複数のウェルバイアス値のうちの１つを選択する。
【００２１】
この発明の別の局面は、ウェルバイアスを、そのようなバイアスが必要な、または望ましいＰＬＤの部分のみに選択的にかける、たとえば正のウェルバイアスをユーザの設計内の重要経路上のトランジスタのみにかけるための方法を提供する。
【００２２】
この発明の一実施例によれば、ＦＰＧＡユーザは、ユーザ回路の規定時に、自分の設計における重要経路を規定する。ＦＰＧＡ実現ソフトウェア（設計記述を受入れ、記述された設計をＦＰＧＡにおいて実現する設定ビットストリームを生成するソフトウェア）は、指定された重要経路に注目し、重要経路に加わっているトランジスタのみについて、またはそれらのトランジスタを含むプログラマブルロジック素子（たとえばＣＬＢまたはルックアップテーブル）のみについて正のウェルバイアス印加を可能にする設定ビットストリームを生成する。
【００２３】
別の実施例では、ＦＰＧＡ実現ソフトウェアは、ユーザの設計における重要経路を自動的に判断するタイミングソフトウェア（当該技術分野において周知のものなど）を含む。このソフトウェアはひいては、これらの判断された重要経路上のトランジスタについて正のウェルバイアス印加を可能にする。
【００２４】
一実施例では、ＦＰＧＡ実現ソフトウェアは、正のウェルバイアスがかかったトランジスタの数をモニタし、これらのトランジスタの数が、素子についての特定された最大漏洩電流が超過されるようなものであった場合に、エラーメッセージを発行する。別の実施例では、負のウェルバイアス印加電圧レベルがプログラム可能に提供される。言換えれば、Ｐウェルにより低い電圧へプログラム可能にバイアスをかけることが可能であり、Ｎウェルにより高い電圧へプログラム可能にバイアスをかけることが可能である。この負のウェルバイアス印加は、ウェル内のトランジスタの性能の低下、および付随する漏洩電流の減少をもたらす。そのような一実施例では、ＦＰＧＡ実現ソフトウェアは、非重要経路におけるトランジスタに負にウェルバイアスをかけることによって、さもなくば容認できないほど多数の正にウェルバイアスがかかったトランジスタを補償する。一実施例では、ユーザがこれらの非重要経路を特定する。別の実施例では、ＦＰＧＡ実現ソフトウェアが、ユーザの設計において最も重要でない経路を自動的に判断する。
【００２５】
別の実施例では、負のウェルバイアス印加を用いて非重要経路上の漏洩電流を減少させる一方、正のウェルバイアス印加は起こらない。
【００２６】
以下の図面において、この発明を、限定のためではなく例示のために説明する。図中、同じ参照符号は同様の要素を指す。
【発明を実施するための最良の形態】
【００２７】
図面の詳細な説明
この発明はさまざまなプログラマブルロジックデバイス（ＰＬＤ）に適用可能である。この発明は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）について特に適用可能であり、有益であることがわかっている。この発明はそのようには限定されていないものの、この発明の認識は、この場合ではＳＲＡＭセルを用いてプログラムされたＦＰＧＡを用いた特定の例によって、提示されている。
【００２８】
以下の説明では、この発明のより完全な理解を提供するために多数の特定の詳細が述べられている。しかしながら、この発明がこれらの特定の詳細なしで実践され得ることは、当業者には明らかであろう。
【００２９】
回路設定
ウェルバイアス印加は、トランジスタの性能を高めるため（正のウェルバイアス印加）、または漏洩電流を減少させるため（負のウェルバイアス印加）に使用可能である。図２Ａ−図２Ｆは、この発明のさまざまな実施例に従って使用可能なさまざまなシリコン基板および例示的なバイアス印加設定を示す。
【００３０】
図２Ａは、プログラマブルウェルバイアスがかけられる第１のシリコン基板を示す。シリコン基板２００およびその上に形成されたさまざまな構造は、トリプルウェルプロセスを用いて形成された図１Ｂのそれらと同様である。図２Ａの例では、正のウェルバイアス２０５がスイッチ２０３によってＰウェル２１１に選択的にかけられ得る。スイッチ２０３は、プログラマブルメモリセル２０４によって制御される。一実施例では、スイッチ２０３はＮＭＯＳパスゲートであり、一方、メモリセル２０４はＦＰＧＡにおける設定メモリセルである。
【００３１】
また、図２Ａでは、正のウェルバイアス２０６がスイッチ２０７によってＮウェル２１２に選択的にかけられ得る（つまり、より多くの負の電圧がＮウェルにかけられる）。スイッチ２０７は、プログラマブルメモリセル２０８によって制御される。一実施例では、スイッチ２０７はＰＭＯＳパスゲートであり、一方、メモリセル２０８はＦＰＧＡにおける設定メモリセルである。
【００３２】
図２Ａの２０５および２０６と標記されたもの（および図２Ｃ−２Ｈに示すもの）のようなバイアス発生器回路は、当該技術分野においては周知であり、したがって、ここでは詳細には説明しない。
【００３３】
図２Ａの実施例では、スイッチ２０３、２０７およびバイアス発生器回路２０５、２０６も、基板２００内に実現されている。しかしながら、他の実施例では、ウェルバイアスは外部から提供される。
【００３４】
図２Ｂは、図１Ｃのそれと同様のＳＯＩ基板を用いて実現された、同じ正のウェルバイアス印加設定を示す。
【００３５】
図２Ｃは、ＰウェルおよびＮウェルへの負のウェルバイアス印加の適用を示す。図２Ｃの例では、負のウェルバイアス２１５がスイッチ２０３によってＰウェル２１１に選択的にかけられ得る。スイッチ２０３は、プログラマブルメモリセル２０４によって制御される。同様に、負のウェルバイアス２１６がスイッチ２０７によってＮウェル２１２に選択的にかけられ得る（つまり、より多くの正の電圧がＮウェルにかけられる）。スイッチ２０７は、プログラマブルメモリセル２０８によって制御される。
【００３６】
図２Ｄは、図１Ｃのそれと同様のＳＯＩ基板を用いて実現された、同じ負のウェルバイアス印加設定を示す。
【００３７】
図２Ｅは、図１Ｂのトリプルウェル基板の別の設定を示し、正のウェルバイアス印加または負のウェルバイアス印加の間でプログラム可能な選択がなされる。
【００３８】
図２Ｆは、ＳＯＩ基板に適用される同じ設定を示す。
【００３９】
図２Ｇは、図１Ｂのトリプルウェル基板の別の設定を示し、ウェルバイアス電圧発生器２２１−２２４によって提供される４つの異なるウェルバイアス電圧間でプログラム可能な選択がなされる。ＮＭＯＳトランジスタ２０１については、２つのプログラマブルメモリセル２２５および２２６によって制御されるマルチプレクサ２２０を介して、選択がなされる。なお、この実施例では、スイッチ回路は、図２Ａ−２Ｆの実施例でのようにＮＭＯＳまたはＰＭＯＳパスゲートとして実現されるというよりはむしろ、マルチプレクサとして実現されている。たとえば、マルチプレクサは並列接続の複数のパスゲートとして実現可能である。この発明を実現するために使用可能な周知の種類のスイッチ回路は多くある。加えて、スイッチ回路はプログラマブルメモリセル以外の手段によって制御可能である。たとえば、スイッチ回路はフリップフロップによって制御可能であり、フリップフロップはユーザ回路内の他のプログラマブルロジックによって駆動される。このため、スイッチ回路は、ウェルバイアスがかけられるのに十分な時間が許容されているならば、動的に制御可能である。多くの他の種類のスイッチ制御も使用可能である。
【００４０】
４つのバイアス電圧Ｖ１−Ｖ４は、全部正のウェルバイアス電圧、全部負のウェルバイアス電圧、その混合などであり得る。４つのウェルバイアス電圧のうちの１つはゼロバイアスであってもよく、その場合、ウェルバイアス電圧発生器２２１−２２４のうちの１つは省略可能である。ＰＭＯＳトランジスタ２０２については、２つのプログラマブルメモリセル２３５および２３６によって制御されるマルチプレクサ２３０を介して、選択がなされる。４つのバイアス電圧Ｖ５−Ｖ８は、４つのバイアス電圧Ｖ１−Ｖ４と同じであってもよく、または異なっていてもよい。
【００４１】
図２Ｈは、ＳＯＩ基板に適用された同じ設定を示す。
【００４２】
多くの他の設定が可能である。たとえば、単一のメモリセルが多数のスイッチを制御する役割を果たすことが可能である。たとえば、図２Ａ−２Ｆのメモリセル２０４および２０８は同じメモリセルであり得る。同様に、メモリセル２２５および２２６は、メモリセル２３５および２３６と同じであり得る。
【００４３】
例示的なユーザ回路
図３は、ユーザロジックがマッピングされ、配置されたＦＰＧＡのロジック素子を示す。「マッピング」とは、ユーザのロジック回路の特定の部分を、ＦＰＧＡ内のロジック素子に適合するセットへグループ化することである。「配置」とは、ＦＰＧＡ内の特定の位置にある特定のロジック素子へ、１つのセットを割当てることである。
【００４４】
図３では、図示されたロジック素子は、規則的なアレイに構成された設定可能ロジックブロック、つまりＣＬＢである。図３に示すユーザロジックの簡単な例は、ＣＬＢのＣＬＢ０２、ＣＬＢ０１、ＣＬＢ１１、およびＣＬＢ２１に配置された４つのロジックセットを含む。回路を通る経路は２つある。第１の経路３０１は、ノードＡからＣＬＢ０２を通ってノードＢへ、それからＣＬＢ２１を通ってノードＣへ延びている。第２の経路３００は、ノードＤからＣＬＢ０１を通ってノードＥへ、ＣＬＢ１１を通ってノードＦへ、そしてＣＬＢ２１を通ってノードＣへ延びている。この例では、ＣＬＢの各々におけるロジックは、ＣＬＢ２１以外では、１つのルックアップテーブルのみを横断しており、ルックアップテーブルの出力値はフリップフロップに記憶され、フリップフロップの出力はノードＣに配置される。
【００４５】
第１の経路３０１がルックアップテーブルを２つしか横断しないのに対し、第２の経路３００は３つのルックアップテーブルを横断するため、明らかに第２の経路は横断するのに時間がより長くかかる（簡略化のため、これらの短距離にわたるルーチン遅延は比較的取るに足らないものであると仮定する）。したがって、ユーザ回路の全体的な速度を決定するのは、第２の経路の速度である。このため、第２の経路は「重要経路」と呼ばれ、第１の経路は「非重要経路」と呼ばれる。
【００４６】
重要経路は、ユーザが設計記述を入力する際にユーザによって指定可能であり、または、この情報は、ＦＰＧＡ実現ソフトウェアを起動する際にユーザによって、または情報をファイルに配置することによって、もしくは実現中に双方向に、あるいは何か他の手段によって供給可能である。しかしながら、この情報を実現ソフトウェアによって設計から抽出することも可能であり、このためユーザの介入の必要性がなくなる。
【００４７】
たとえば、実現前、実現中、および実現後にユーザ設計からタイミング情報を抽出して、結果を最適化し、かつ結果として生じる設計の性能について報告することは、ＦＰＧＡソフトウェア設計の技術分野において周知である。この手法は、たとえば、現在ザイリンクス・インコーポレイテッド（Xilinx, Inc.）から入手可能なＦＰＧＡ実現ソフトウェアによって一般に使用されている。
【００４８】
ＦＰＧＡ実現ソフトウェアは通常、ＦＰＧＡにおいてユーザ回路を実現する一連のステップを実行する。たとえば、これらのステップはマッピング、配置、およびルーティングを含み得る。マッピングおよび配置は前述した。「ルーティング」とは、さまざまな経路を、ＦＰＧＡにおいて利用可能なさまざまなプログラム可能相互接続資源に割当てることである。（重要経路指定を含む）タイミング情報は通常、３つのステップすべてにおいて使用される。マッピングステップ中、重要経路上のロジックを単一のロジック素子内にともにグループ化する取組みがなされる。配置ステップ中、図３の例と同様に、重要経路上のロジックは通常、連続するロジックセット間の物理的距離が最小限となるように配置される。このため、重要経路上のルーティング遅延はできるだけ最小限に抑えられ、ユーザ回路の性能に対するこの最も遅い経路の影響を低減させる。ルーティングステップ中、最も速い相互接続資源が最も重要な経路に割当てられる。
【００４９】
一実施例では、ＦＰＧＡ実現ソフトウェアは以下のように機能する。ＦＰＧＡは部分に分割され、その各々は別々に制御されるウェルバイアス印加を有する。たとえば、この実施例では、各ルックアップテーブル（ＬＵＴ）は別々に制御されるウェルバイアス印加を有する。各ＬＵＴは、速い（正のウェルバイアス印加を有する）か、または遅い（ウェルバイアス印加なし）のいずれかであるとしてモデル化される。速いモデルに関連するコストがある。配置および／またはルーティング段階中、遅延および電力制約に基づいて２つのモデルのうちの一方が選択される。たとえば、ルータは、正にバイアスがかかったウェルによって消費される静的電力を、システムにおける全接続からの動的電力と釣合わせることができる。
【００５０】
別の実施例では、低電力モデルという追加モデルが提供される。低電力モデルは、負のウェルバイアスがかけられたＬＵＴに関連する。別の実施例では、さまざまなレベルのバイアスがかけられたいくつかのモデルが使用される。
【００５１】
この発明は、重要経路上の遅延を最小限に抑えるさらなる方法を提供する。この発明の一局面によれば、重要経路上の遅延は、正のウェルバイアスを、経路上のロジックを実現するトランジスタに選択的にかけることによって、最小限に抑えられる。たとえば図３のユーザ回路では、正のウェルバイアスがＣＬＢのＣＬＢ０１、ＣＬＢ１１、およびＣＬＢ２１全体にかけられ得る。このため、正のウェルバイアスの全速力の利点が得られる（限定経路ができるだけ加速されるため）が、追加漏洩電流は重要経路上のＣＬＢに限定される。重要経路上にないＣＬＢ、たとえば、ＣＬＢのＣＬＢ０２、ＣＬＢ１２などにはウェルバイアスはかけられない。
【００５２】
別の実施例では、正のウェルバイアスは、重要経路上のトランジスタのうちのいくつかのみにかけられる。経路は、特定されたタイミング要件が満たされる程度まで加速されるだけでよい。したがって、トランジスタのサブセットのみにバイアスをかけることによってタイミング要件が満たされる場合、そのサブセット内のトランジスタのみが正にバイアスをかけられる。このアプローチは、かけられた正のバイアス印加によって追加される追加漏洩電流を最小限に抑える。
【００５３】
いくつかの実施例では、重要経路は２つ以上ある。各経路上のトランジスタのうちのいくつかのみに正にバイアスをかける必要があり、多数の重要経路間でいくつかのトランジスタが共有されている場合、共有されたトランジスタを含むウェルは、好ましくは最初にバイアスをかけられる。次に、タイミング要件が満たされていない場合、各経路上のさらなるトランジスタが必要に応じて正にバイアスをかけられ得る。
【００５４】
別の実施例では、重要経路上のＣＬＢに正のウェルバイアスがかけられている間、最も遅い経路上のＣＬＢ（ＣＬＢ０２）および／またはユーザ回路内で使用されていないＣＬＢ（ＣＬＢのＣＬＢ１２、ＣＬＢ２２、ＣＬＢ００、ＣＬＢ１０、およびＣＬＢ２０）には負のウェルバイアスがかけられる。このため、非重要経路は実際に減速し、漏洩電流を減少させて、重要経路上の正のウェルバイアスから生じる漏洩電流の増加を補償する。
【００５５】
他の実施例では、ユーザ回路によって実際に使用されているＣＬＢの部分のみにウェルバイアスがかけられる。たとえば、図３の回路では、ルックアップテーブル（ＬＵＴ）のみがＣＬＢのＣＬＢ０２、ＣＬＢ０１、およびＣＬＢ１１において使用されている。つまり、これらのＣＬＢに設けられたフリップフロップは使用されていない。したがって、これらのＣＬＢでは、ウェルバイアスはＣＬＢ内のＬＵＴのみにかけられている。別の実施例では、ＬＵＴおよび配線とのアクセスを可能にするパストランジスタにもウェルバイアスがかけられている。他の実施例（ＣＬＢおよびＬＵＴ以外のプログラム可能な下位区分を有するＰＬＤにおいて実現されるものを含む）では、ウェルバイアスはプログラマブルロジックの他のグルーピングに選択的にかけられている。
【００５６】
一実施例では、正のウェルバイアスが、ユーザロジック内の全トランジスタ（またはその予め定められたサブセット）にかけられる。このため、多数のトランジスタが最初にそれらの最高速度に設定される。ウェルバイアスは次に、予測される漏洩電流をモニタする一方で、非重要トランジスタから順次除去される。予測される漏洩電流が特定された値よりも低くなる場合、正のバイアスが、バイアスがかかった残りのトランジスタ上に保持される。
【００５７】
プログラム可能電圧発生器は、プログラマブルロジック設計の分野において公知である。たとえば、リー（Lee）他は、米国特許第５，６６１，６８５号「設定可能電源を有するプログラマブルロジックデバイス（Programmable Logic Device with Configurable Power Supply）」において、多数の例示的なプログラマブルチャージポンプ回路を記載している。プログラマブルチャージポンプは一般に、チャージポンプの出力電圧に変化をもたらし得る作成中のプロセス変動を補償するよう電圧レベルが変更できるように、調節可能に設計されている。
【００５８】
しかしながら、プログラム可能電圧発生器は、それらから選択する２つ以上の異なるウェルバイアス印加電圧を提供することによって、この発明に別のレベルの複雑性を付加するために使用可能である。いくつかのウェルバイアス値が利用可能である場合、ＦＰＧＡ実現ソフトウェアは、重要経路上のタイミング遅延と次に最も遅い経路のそれとの差を比較することによって、重要経路の速度をどれだけ増加させなければならないかを計算することができる。速度の若干の増加しか必要でない場合、小さなウェルバイアスをかけることができ、それに応じて漏洩電流が若干増加する。重要経路が次に最も重要な経路よりもはるかに遅い場合、利用可能な最強のウェルバイアスがかけられる。いくつかのトランジスタ（またはより大きいＦＰＧＡ部分）の速度が調節されている場合、実現ソフトウェアは、最適な設定が達成されるまで、さまざまなトランジスタおよびさまざまな経路に、さまざまなウェルバイアスレベルの組合せを試みることができる。
【００５９】
一実施例では、４つの正のウェルバイアス電圧レベルがＰウェルについて利用可能である。つまり、０ボルト、＋Ｘ／３ボルト、＋２Ｘ／３ボルト、および＋Ｘボルトであり、ここでＸは正の値である。たとえば、Ｘ＝０．６である場合、４つの利用可能な正のウェルバイアス電圧レベルは、０ボルト、０．２ボルト、０．４ボルト、および０．６ボルトである。これらの選択肢のうち、０ボルトの正のウェルバイアス（つまりバイアスはかかっていない）は最低の性能をもたらすが、漏洩電流は最も低く、一方、０．６ボルトの正のウェルバイアスは最良の性能をもたらすが、漏洩電流は最も高い。４つの選択肢を用いて、適切なビット値を有する２つのメモリセルを（設定ビットストリームを介して）プログラミングすることにより、選択がなされる。
【００６０】
いくつかの実施例では、利用可能なウェルバイアス電圧レベルは負のウェルバイアスレベルである。たとえば、Ｐウェルについて、利用可能な値は、０ボルト、−Ｘ／３ボルト、−２Ｘ／３ボルト、および−Ｘボルトであってもよく、ここでＸは正の値である。
【００６１】
他の実施例では、単一のウェルについて、正および負のウェルバイアス印加が双方とも利用可能である。たとえば、Ｐウェルについて、利用可能な値は、−Ｘボルト、０ボルト、および＋Ｘボルトであってもよく、ここでＸは正の値である。
【００６２】
例示的な方法
図４−１０は、この発明によって包含されるいくつかの例示的な方法を示す。これらの方法は、この発明のいくつかの用途を実証するために図示および説明される。しかしながら、この発明は図示された変形に限定されない。
【００６３】
図４は、この発明の第１の実施例を示す。ステップ４０１で、ユーザ設計の第１の重要経路におけるトランジスタが判断される。ステップ４０２で、重要経路上の各トランジスタが識別される。一実施例では、設計ファイルにおける各トランジスタの参照は、そのトランジスタを重要経路トランジスタとして識別する識別子を用いて「タグを付けられる」。ステップ４０３で、設定ファイルが生成され、設定ファイルは、重要経路トランジスタとして識別されたトランジスタに対する正のウェルバイアス印加を可能にする情報を含む。
【００６４】
ステップ４０１および４０２と同時に起り得る随意の一連のステップで、第２の重要経路上のトランジスタが同様に判断され（ステップ４０４）、識別される（ステップ４０５）。この実施例では、設定データファイルは、双方の重要経路上のトランジスタについての正のウェルバイアス印加を可能にする。
【００６５】
別の随意の一連のステップで、ＰＬＤの漏洩電流が容認できないレベルへ増加することを回避するために、重要経路トランジスタの数がモニタされる（ステップ４０６）。重要経路トランジスタの数が予め定められた容認可能な数を超える場合、エラーまたは警告メッセージがユーザへ発行される。
【００６６】
図５は、この発明の第２の実施例を示す。ステップ５０１で、ユーザ設計の重要経路におけるトランジスタが判断される。ステップ５０２で、重要経路上の各トランジスタが識別される。ステップ５０１および５０２と同時に起り得る一連のステップで、非重要経路上のトランジスタも判断され（ステップ５０４）、識別される（ステップ５０５）。ステップ５０３で、設定ファイルが生成され、設定データファイルは、重要経路トランジスタとして識別されたトランジスタに対する正のウェルバイアス印加を可能にし（ステップ５０８）、さらに、非重要経路トランジスタとして識別されたトランジスタに対する負のウェルバイアス印加を可能にする（ステップ５０９）情報を含む。
【００６７】
トランジスタは、たとえば図３のＣＬＢのＣＬＢ２１におけるトランジスタのように、重要経路および非重要経路双方の一部であってもよい。その場合、トランジスタは好ましくは、重要経路トランジスタとして扱われる。
【００６８】
図６に示す実施例は図５の実施例と同様であるが、重要経路上のトランジスタの数がモニタされる（ステップ６０６）点が異なっており、非重要経路上のトランジスタに対する負のウェルバイアス印加は、重要経路トランジスタの数が予め定められた数を超えた場合のみ可能とされる。
【００６９】
図７は、この発明の第４の実施例を示す。ステップ７０１で、ユーザ回路が、２つの経路のタイミング遅延を判断するために評価される。ステップ７０２で、２つのタイミング遅延は比較され、速い方の経路および遅い方の経路が判断される。ステップ７０３で、設定データファイルが生成され、設定データファイルは、経路のうちの少なくとも１つの上にある少なくとも１つのトランジスタに対するウェルバイアス印加（正または負のウェルバイアス印加のいずれか、または双方）を可能にする。
【００７０】
図８の実施例は図７の実施例と同様であるが、速い方および遅い方の経路が判断された（ステップ８０２）後で、２つの経路間のタイミングの差が、たとえば遅い方の経路のタイミング遅延から速い方の経路のタイミング遅延を減算することによって判断される（ステップ８１０）点が異なる。このタイミングの差に基づいて、好ましいウェルバイアス値が、利用可能なウェルバイアス電圧値のグループから選択される（ステップ８１１）。これらの値は、ウェルバイアスを各トランジスタへ提供する電圧発生器回路によって支持される値である。前述のように、そのような回路はたとえば、ＦＰＧＡの２つの設定メモリセルに記憶された２つのロジック値に基づいて４つの利用可能な値から選択することができる。ステップ８１２で、設定データファイルが生成され、設定データファイルは、経路のうちの少なくとも１つの上にある少なくとも１つのトランジスタに対する、好ましい値へのウェルバイアス印加を可能にする。
【００７１】
図９は、この発明の第６の実施例を示す。ステップ９０１で、ユーザ回路が、２つの経路のタイミング遅延を判断するために評価される。ステップ９０２で、２つのタイミング遅延間の差が判断される。ステップ９０３で、各トランジスタがどの経路上に属するかが判断される。前述のように、双方の経路上にあるトランジスタは、好ましくは、２つの経路のうち遅い方に属するとして扱われる。（ステップ９０２および９０３の順序は逆であってもよい。）ステップ９０４で、判断されたタイミングの差、および各トランジスタが属する経路に基づいて、好ましいウェルバイアス値が、利用可能なウェルバイアス電圧値のグループから選択される。ステップ９０５で、設定データファイルが生成され、設定データファイルは、経路のうちの少なくとも１つの上にある少なくとも１つのトランジスタに対する、好ましい値へのウェルバイアス印加を可能にする。
【００７２】
図１０は、この発明の第７の実施例を示す。ステップ１００１で、たとえば、正のウェルバイアスをかけることにより得られる速度の増加、正のウェルバイアスから結果として生じる漏洩電流の増加、負の印加ウェルバイアスから結果として生じる速度の低下、負の印加ウェルバイアスからの漏洩電流の減少、および、ユーザ回路のさまざまな要素間の配線からの漏洩電流といった他の電力消費問題を含み得るコスト基準に基づいて、ユーザ回路が評価される。
【００７３】
ステップ１００２で、ステップ１００１で行なわれた評価に基づいて、第１および第２の論理グルーピングがユーザ回路から選択される。（いくつかの実施例では、ステップ１００１および１００２は同時に行なわれる。）ステップ１００３で、設定データファイルが生成され、設定データファイルは、第１のグルーピングにおける第１の値への、および第２のグルーピングにおける第２の値へのウェルバイアス印加を可能にする。
【００７４】
一実施例では、第１のグルーピングは正の印加バイアスを有し、一方、第２のグルーピングは印加バイアスを有していない。別の実施例では、第１のグルーピングは負の印加バイアスを有し、一方、第２のグルーピングは印加バイアスを有していない。さらに別の実施例では、グルーピングは双方とも正の印加バイアスを有するが、値は異なる、などとなっている。多くの他の変形が、この発明のこの実施例を用いて可能であり、当業者にはここの開示に基づいて明らかであろう。
【００７５】
この発明の関連技術分野の当業者であれば、ここの開示の結果としてなされ得るさまざまな変更および追加を理解するであろう。たとえば、上述の文は、シリコン基板上にＣＭＯＳトランジスタを用いて実現されたＦＰＧＡという文脈において、この発明の構造および方法を説明している。しかしながら、この発明は、ＮＭＯＳ、ＰＭＯＳ、バイポーラなどを含むがそれらに限定されない、他の基板上および他の種類のロジック内に実現された素子を含む、他のプログラマブルロジックデバイスにも適用可能である。さらに、ここに記載されたもの以外のチャージポンプ、プログラム可能電圧発生器、メモリセル、トランジスタ、基板、ＮウェルおよびＰウェル、および設定データファイルが、この発明を実現するために使用可能である。さらに、この発明の方法は好ましくはコンピュータソフトウェアによって実行されるが、この発明はそれに限定されない。したがって、そのような変更および追加はすべて、添付された特許請求の範囲およびそれらの均等物のみによって限定されるこの発明の範囲内にあると考えられる。
【図面の簡単な説明】
【００７６】
【図１Ａ】例示的なＣＭＯＳ集積回路の基板を示す図である。
【図１Ｂ】トリプルウェルプロセスを用いた例示的なＣＭＯＳ集積回路の基板を示す図である。
【図１Ｃ】ＳＯＩ（シリコン・オン・インシュレータ）プロセスを用いた例示的なＣＭＯＳ集積回路の基板を示す図である。
【図２Ａ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｂ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｃ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｄ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｅ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｆ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｇ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図２Ｈ】この発明の一実施例に従ってプログラマブルウェルバイアス印加が適用される例示的なシリコン基板を示す図である。
【図３】ＦＰＧＡのいくつかの設定可能ロジックブロック（ＣＬＢ）において実現されるユーザ回路を示す図である。
【図４】この発明に従ったＰＬＤを実現する第１の方法を示す。
【図５】この発明に従ったＰＬＤを実現する第２の方法を示す。
【図６】この発明に従ったＰＬＤを実現する第３の方法を示す。
【図７】この発明に従ったＰＬＤを実現する第４の方法を示す。
【図８】この発明に従ったＰＬＤを実現する第５の方法を示す。
【図９】この発明に従ったＰＬＤを実現する第６の方法を示す。
【図１０】この発明に従ったＰＬＤを実現する第７の方法を示す。
【図１Ａ】
2005503668.tif 000003
【図１Ｂ】
2005503668.tif 000004
【図１Ｃ】
2005503668.tif 000005
【図２Ａ】
2005503668.tif 000006
【図２Ｂ】
2005503668.tif 000007
【図２Ｃ】
2005503668.tif 000008
【図２Ｄ】
2005503668.tif 000009
【図２Ｅ】
2005503668.tif 000010
【図２Ｆ】
2005503668.tif 000011
【図２Ｇ】
2005503668.tif 000012
【図２Ｈ】
2005503668.tif 000013
【図３】
2005503668.tif 000014
【図４】
2005503668.tif 000015
【図５】
2005503668.tif 000016
【図６】
2005503668.tif 000017
【図７】
2005503668.tif 000018
【図８】
2005503668.tif 000019
【図９】
2005503668.tif 000020
【図１０】
2005503668.tif 000021
【国際公開パンフレット】
2005503668.tif 000022
2005503668.tif 000023
2005503668.tif 000024
2005503668.tif 000025
2005503668.tif 000026
2005503668.tif 000027
2005503668.tif 000028
2005503668.tif 000029
2005503668.tif 000030
2005503668.tif 000031
2005503668.tif 000032
2005503668.tif 000033
2005503668.tif 000034
2005503668.tif 000035
2005503668.tif 000036
2005503668.tif 000037
2005503668.tif 000038
2005503668.tif 000039
2005503668.tif 000040
2005503668.tif 000041
2005503668.tif 000042
2005503668.tif 000043
2005503668.tif 000044
2005503668.tif 000045
2005503668.tif 000046
2005503668.tif 000047
2005503668.tif 000048
2005503668.tif 000049
2005503668.tif 000050
2005503668.tif 000051
2005503668.tif 000052
2005503668.tif 000053
2005503668.tif 000054
2005503668.tif 000055
2005503668.tif 000056
【国際公開パンフレット（コレクトバージョン）】
2005503668.tif 000057
【国際調査報告】
2005503668.tif 000058
2005503668.tif 000059
2005503668.tif 000060