説明

フィールドプログラマブルゲートアレイの性能を向上させるための装置および関連方法

【課題】性能が向上されたフィールドプログラマブルゲートアレイ(FPGA)を提供する。
【解決手段】フィールドプログラマブルゲートアレイ(FPGA)103であって、該FPGAは、該FPGA内の少なくとも1つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセット115と、該少なくとも1つの回路に対するプロセス、電圧、および温度の該表示から該少なくとも1つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラ140と、該少なくとも1つの回路内の少なくとも1つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器とを含み、該ボディバイアス信号は、該ボディバイアス値の範囲内の値を有する。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への引用)
本出願は、____に出願された「Apparatus for Configuring Performance of Field Programmable Gate Arrays and Associated Methods」という題目の米国特許出願第____号(代理人整理番号ALTR104)に関連する。
【0002】
(技術分野)
本明細書で開示される概念は、概して、電子回路網およびデバイス(例えば、フィールドプログラマブルゲートアレイ(FPGA))に関し、より具体的には、FPGAの性能を向上させるための装置および関連する方法に関する。
【背景技術】
【0003】
エレクトロニクスにおける発展は、半導体デバイス(例えば、FPGAのような集積回路(IC))によって実現される機能および能力の数がますます増加することをもたらす。それらの機能および能力を提供するために、半導体デバイス(例えば、FPGA)は、継続的に、ますます増加する数のトランジスターを含む。
【0004】
コストを減らし、なお多くの機能および能力のための仕様を満たすために、半導体テクノロジーは、より高いデバイス密度およびより小さなデバイス形状に向う傾向を推進し続けてきた。それらの傾向は、次に結果としてIC(例えば、FPGA)おける増大された電力損失をもたらす。
【発明の概要】
【課題を解決するための手段】
【0005】
(要約)
本明細書に開示された概念に従う幅広いさまざまな実施形態は、電子回路網(例えば、FPGA)の性能を向上させるために使用され得る。1つの例示的実施形態に従って、FPGAは、FPGA内の少なくとも1つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、少なくとも1つの回路に対するプロセス、電圧、および温度の表示から少なくとも1つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラとを含む。FPGAは、少なくとも1つの回路内の少なくとも1つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器をさらに含む。ボディバイアス信号は、ボディバイアス値の範囲内の値を有する。
【0006】
別の例示的実施形態に従って、FPGAを動作させる方法は、FPGA内の少なくとも1つの回路に関連するプロセス、電圧および温度についての情報を提供する監視信号を受信することと、少なくとも部分的にプロセス、電圧および温度についての情報に基づいてボディバイアス値の範囲を決定することとを含む。方法は、ボディバイアス値の範囲内の値を有するボディバイアス信号を生成することと、少なくとも1つの回路内の少なくとも1つのトランジスターにボディバイアス信号を適用することとをさらに含む。
【0007】
なお別の例示的実施形態に従って、FPGAは、それぞれ、FPGA内の少なくとも2つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された少なくとも2つの監視回路を含む。FPGAは、少なくとも2つの回路に対するプロセス、電圧、および温度の表示と、少なくとも2つの回路に対する構成情報とから少なくとも2つの回路に対するそれぞれのボディバイアス値の少なくとも2つの範囲を導出するように適合されたコントローラをさらに含む。加えて、FPGAは、少なくとも2つの回路内のそれぞれの少なくとも1つのトランジスターに少なくとも2つのボディバイアス信号を提供するように適合されたボディバイアス生成器を含む。ボディバイアス信号は、少なくとも2つの回路のボディバイアス値のそれぞれの範囲内の値を有する。
【0008】
本発明は、例えば、以下の項目を提供する。
(項目1)
フィールドプログラマブルゲートアレイ(FPGA)であって、該FPGAは、
該FPGA内の少なくとも1つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、
該少なくとも1つの回路に対するプロセス、電圧、および温度の該表示から該少なくとも1つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラと、
該少なくとも1つの回路内の少なくとも1つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該ボディバイアス値の範囲内の値を有する、FPGA。
(項目2)
上記少なくとも1つの回路は、プログラマブル論理を含む、上記項目に記載のFPGA。
(項目3)
上記少なくとも1つの回路は、プログラマブル相互接続を含む、上記項目のいずれかに記載のFPGA。
(項目4)
上記ボディバイアス信号は、上記少なくとも1つのトランジスターに適用される順方向ボディバイアスを引き起こす、上記項目のいずれかに記載のFPGA。
(項目5)
上記ボディバイアス信号は、上記少なくとも1つのトランジスターに適用される逆方向ボディバイアスを引き起こす、上記項目のいずれかに記載のFPGA。
(項目6)
上記コントローラは、ルックアップテーブルを用いて上記ボディバイアス値の範囲を導出するように適合されている、上記項目のいずれかに記載のFPGA。
(項目7)
プロセスの表示は、上記FPGAを製造するために使用される製造プロセスに関連する1つ以上のパラメータを含む、上記項目のいずれかに記載のFPGA。
(項目8)
温度の表示は、上記少なくとも1つの回路の少なくとも1つの温度を含む、上記項目のいずれかに記載のFPGA。
(項目9)
電圧の表示は、上記少なくとも1つの回路の電源電圧を含む、上記項目のいずれかに記載のFPGA。
(項目10)
上記電源電圧は、該電源電圧のDC成分を含む、上記項目のいずれかに記載のFPGA。
(項目11)
上記電源電圧は、該電源電圧のDC成分およびAC成分を含む、上記項目のいずれかに記載のFPGA。
(項目12)
フィールドプログラマブルゲートアレイ(FPGA)を動作させる方法であって、該方法は、
該FPGA内の少なくとも1つの回路に関連するプロセス、電圧および温度についての情報を提供する監視信号を受信することと、
少なくとも部分的にプロセス、電圧および温度についての該情報に基づいてボディバイアス値の範囲を決定することと、
該ボディバイアス値の範囲内の値を有するボディバイアス信号を生成することと、
該少なくとも1つの回路内の少なくとも1つのトランジスターに該ボディバイアス信号を適用することと
を含む、方法。
(項目13)
上記監視信号は、上記FPGAを製造するために使用される半導体製造プロセスについての情報を提供する、上記項目のいずれかに記載の方法。
(項目14)
上記監視信号は、上記少なくとも1つの回路の少なくとも1つの温度についての情報を提供する、上記項目のいずれかに記載の方法。
(項目15)
上記監視信号は、上記少なくとも1つの回路の少なくとも1つの供給電圧ついての情報を提供する、上記項目のいずれかに記載の方法。
(項目16)
上記少なくとも1つの供給電圧についての情報は、(a)該少なくとも1つの供給電圧のDC成分;(b)該少なくとも1つの供給電圧のAC成分;または(c)該少なくとも1つの供給電圧のDC成分およびAC成分を含む、上記項目のいずれかに記載の方法。
(項目17)
フィールドプログラマブルゲートアレイ(FPGA)であって、該FPGAは、
それぞれ、該FPGA内の第1および第2の回路に対するプロセス、電圧、および温度の表示を提供するように適合された第1および第2の監視回路と、
該第1および第2の回路に対するプロセス、電圧、および温度の該表示と、該第1および第2の回路に対する構成情報とから該第1および第2の回路に対するそれぞれのボディバイアス値の第1および第2の範囲を導出するように適合されたコントローラと、
該第1および第2の回路内のそれぞれの少なくとも1つのトランジスターに第1および第2のボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該第1および第2の回路の該ボディバイアス値のそれぞれの範囲内の値を有する、FPGA。
(項目18)
上記第1および第2のボディバイアス信号の値は、上記第1および第2の回路についての構成情報にさらに基づく、上記項目のいずれかに記載のFPGA。
(項目19)
上記第1および第2の回路のうちの少なくとも1つに対する上記構成情報は、該第1および第2の回路のうちの該少なくとも1つの動作速度についての情報を含む、上記項目のいずれかに記載のFPGA。
(項目20)
上記第1および第2の回路のうちの少なくとも1つに対する上記構成情報は、該第1および第2の回路のうちの該少なくとも1つの電力消費についての情報を含む、上記項目のいずれかに記載のFPGA。
【0009】
(摘要)
フィールドプログラマブルゲートアレイ(FPGA)は、FPGA内の少なくとも1つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、少なくとも1つの回路に対するプロセス、電圧、および温度の表示から少なくとも1つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラとを含む。FPGAは、少なくとも1つの回路内の少なくとも1つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器をさらに含む。ボディバイアス信号は、ボディバイアス値の範囲内の値を有する。
【0010】
添付した図面は、単に、例示的実施形態を例示するものであり、それ故に、それらの範囲を限定するものとして考慮されるべきではない。当業者は、本明細書で開示される概念が、当業者に他の同等の有効な実施形態を与えることを認識する。図面において、2つ以上の図面に使用された同じ数値の指示子は、同じ、類似、または同等の機能、構成要素、またはブロックを示す。
【図面の簡単な説明】
【0011】
【図1】図1は、例示的実施形態に従うFPGAのブロックダイヤグラムを例示する。
【図2】図2は、例示的実施形態に従うFPGAにおいて使用される金属酸化膜半導体(MOS)トランジスターを示す
【図3】図3は、例示的実施形態に従うFPGAの平面図を描く。
【図4】図4は、例示的実施形態に従うFPGAにおけるプログラマブル論理およびプログラマブル相互接続のブロックダイヤグラムを例示する。
【図5】図5は、例示的実施形態に従うボディバイアスコントローラのブロックダイヤグラムを示す。
【図6】図6は、例示的実施形態に従うボディバイアス範囲を使用するためのフローダイヤグラムを描く。
【発明を実施するための形態】
【0012】
本明細書で開示される概念は、概して、電子回路網およびデバイス(例えば、フィールドプログラマブルゲートアレイ(FPGA))に関し、より具体的には、FPGAの性能を向上させるための装置および関連する方法に関する。本明細書で開示される概念の1つの局面は、プロセス、電圧、および温度(PVT)の監視されたレベルまたは表示に基づいて、FPGAの少なくともいくつかのパーツ、ブロック、回路、またはリソースのボディバイアスレベルを調整し、または提供することに関する。一般的に言えば、プロセス、電圧および温度は、ボディバイアスをFPGAの1つ以上の回路に提供するために、プロセス、電圧、および温度の表示を決定するように、FPGAの1つ以上の回路に対して監視される。
【0013】
次に、ボディバイアス値の範囲は、少なくとも部分的にプロセス、電圧、および温度の表示または監視された値に基づいて決定される。いくつかの実施形態において、回路についての構成情報も考慮に入れられ得る。例えば、ボディバイアス値の範囲は、回路またはブロックが比較的に低速度かつ比較的に低電力消費に対して構成されているか、または、回路またはブロックが比較的に高速度かつ比較的に高電力消費に対して構成されているかに基づいて決定され得る。概して、構成情報は、回路、ブロック等の所望、最大、最小の動作速度および/または電力消費についての情報を含み得る。
【0014】
ボディバイアス信号は、それぞれの回路のうちの少なくとも1つ以上の回路の少なくとも1つのトランジスターに提供または適用される。ボディバイアス信号は、ボディバイアス値のそれぞれの範囲内の値を有し得る。ボディバイアス信号は、回路、従ってFPGAの電力の消費または損失を向上させるように選択される。いくつかの実施形態において、前述のように、回路についての構成情報はまた、ボディバイアス値を決定することにおいて考慮に入れられ得る。
【0015】
図1は、例示的実施形態に従うFPGA103の一般的ブロックダイヤグラムを例示する。FPGA103は、構成回路網130、構成メモリ(CRAM)133、ボディバイアスコントローラ140、プログラマブル論理106、プログラマブル相互接続109、およびI/O回路網112を含む。加えて、FPGA103は、必要に応じて、テスト/デバッグ回路網115、1つ以上のプロセッサ118、1つ以上の通信回路網121、1つ以上のメモリ124、1つ以上のコントローラ127、および初期化回路139を含み得る。
【0016】
図面が、FPGA103の一般的ブロックダイヤグラムを示すことに留意する。従って、FPGA103は、当業者に理解されるように、他のブロックおよび回路網を含み得る。このような回路網の例は、クロック生成および分配回路等を含む。さらに、FPGA103は、必要に応じて、アナログ回路網、他のデジタル回路網、および/または混合信号回路網、ヒューズ、アンチヒューズ等を含み得る。
【0017】
プログラマブル論理106は、構成可能またはプログラマブル論理回路網、例えば、ルックアップテーブル(LUT)、積項論理、パスゲート、マルチプレクサー(MUX)、論理ゲート、レジスタ、メモリ等を含む。プログラマブル相互接続109は、プログラマブル論理106に結合し、(例えば、パスゲートおよび/またはMUXを使用することによって)プログラマブル論理106内のさまざまなブロックと、FPGA103内または外側の他の回路網との間に構成可能な相互接続(結合機構)を提供する。いくつかの実施形態において、プログラマブル論理106および/またはプログラマブル相互接続109は、追加の柔軟性またはプログラム化を提供するために、ヒューズおよび/またはアンチヒューズを含み得る。
【0018】
初期化回路139は、FPGA103のリセットまたは電力アップでさまざまな機能の実行を生じさせ得る。電力アップ時またはその後に、FPGA103は、一般的に外部デバイスから構成情報を得る。構成情報に基づいて、FPGA103のFPGAコアまたは骨組、または他のブロックまたはリソース内のさまざまなブロックまたはデバイスが、構成されまたはプログラム化される。例は、プログラマブル論理106およびプログラマブル相互接続109を含む。
【0019】
I/O回路網112は、幅広い種類のI/Oデバイスまたは回路を構成し得る。I/O回路網112は、FPGA103のさまざまな部分、例えば、プログラマブル論理106およびプログラマブル相互接続109に結合し得る。I/O回路網112は、外部の回路網またはデバイスと通信するために、FPGA103内のさまざまなブロックに機構および回路網を提供する。
【0020】
テスト/デバッグ回路網115は、FPGA103内のさまざまなブロックおよび回路のテストおよびトラブルシュートを容易にする。テスト/デバッグ回路網115は、当業者に公知のさまざまなブロックまたは回路を含み得る。例えば、テスト/デバッグ回路網115は、必要に応じて、FPGA103が電力アップの後、またはリセットした後にテストを行うための回路を含み得る。テスト/デバッグ回路網115はまた、必要に応じて、コーディングおよびパリティー回路を含み得る。
【0021】
FPGA103は、1つ以上のプロセッサ118を含み得る。プロセッサ118は、FPGA103内の他のブロックおよび回路に結合し得る。プロセッサ118は、当業者に理解されるように、FPGA103内または外部の回路からデータおよび情報を受信し、幅広い種類の方法で情報を処理し得る。1つ以上のプロセッサ118は、デジタル信号プロセッサ(DSP)を構成し得る。DSPは、必要に応じて、幅広い種類の信号処理タスク、例えば、圧縮、解凍、オーディオ処理、ビデオ処理、フィルターリング等を行うことを可能にする。
【0022】
FPGA103はまた、1つ以上の通信回路121を含み得る。通信回路121は、当業者に理解されるように、FPGA103内のさまざまな回路とFPGA103外部の回路との間のデータおよび情報の交換を容易にし得る。通信回路121の例は、トランシーバー、ネットワークインターフェース回路等を含む。
【0023】
FPGA103は、1つ以上のメモリ124および1つ以上のコントローラ127をさらに含み得る。メモリ124は、FPGA103内のさまざまなデータおよび情報(例えば、ユーザーデータ、中間結果、計算結果等)の格納を可能にする。メモリ124は、必要に応じて、粒状またはブロックの形態を有し得る。
【0024】
メモリコントローラ127は、FPGAの外側の回路にインターフェースで接続することと、FPGAの外側の回路の動作およびさまざまな機能を制御することを可能にする。例えば、メモリコントローラ127は、外部同期の動的ランダムアクセスメモリ(SDRAM)にインターフェースでつなぎ、かつ制御し得る。
【0025】
ボディバイアスコントローラ140は、FPGA103の1つ以上の回路に対してボディバイアス値を提供する。より具体的には、前述のように、ボディバイアス値は、FPGA103の1つ以上の回路に対してボディバイアス値の範囲から選択される。ボディバイアス値は、FPGA103内の1つ以上のトランジスター、またはトランジスターのグループの性能を決定する。例えば、ボディバイアス値は、トランジスターの動作の速度、トランジスターが属する回路の電力損失等に影響する。
【0026】
図2は、例示的実施形態に従うFPGAにおいて使用されるMOSトランジスターを示す。MOSトランジスターは、ボディ(または基板)領域203、ソース領域206、ドレイン領域209、ゲート絶縁体215、およびゲート212を含む。動作の飽和領域におけるMOSトランジスターのドレイン電流は、トランジスターの閾値電圧およびゲート−ソース電圧に依存する:
=K(νGS−V (1)
ここで、
=全ドレイン電流(すなわち、AC成分およびDC成分を含む)、
K=定数、
νGS=全ゲート−ソース電圧(すなわち、AC成分およびDC成分を含む)、
および
=閾値電圧。
【0027】
閾値電圧Vは、多くの因子(例えば、トランジスターのソース領域206とボディ領域203との間の電圧)に依存する。以下の方程式は、閾値電圧をボディ−ソース電圧の関数として提供する:
【0028】
【数1】

代替的には、ソース−ボディ電圧に関して方程式2Aを表し得る:
【0029】
【数2】

ここで、
T(0)=ソース−ボディ電圧(またはボディ−ソース電圧)がゼロにセットされた場合の閾値電圧、
γ=ボディ因子(ボディのドーピングレベルに依存する定数)、
Φ=定数、
νBS=全ボディ−ソース電圧(すなわち、AC成分およびDC成分を含む)、
νSB=全ソース−ボディ電圧(すなわち、AC成分およびDC成分を含む)。
ボディ−ソース電圧νBS(またはソース−ボディ電圧νSB)がゼロに等しいときに、閾値電圧VはVT(0)に等しいことを留意する。
【0030】
方程式2Bは、有限のボディ因子γに対して、トランジスター閾値電圧が、ソース−ボディ電圧νSBが増大するにつれて増大することを示す。しかしながら、方程式1は、所与のゲート−ソース電圧に対して、閾値電圧の増大がトランジスターのドレイン電流iを減少させることを示す。言い換えると、方程式1および2Bに従って、一定のゲート−ソース電圧νGSに対して、ソース−ボディ電圧νSBの増大は、閾値電圧Vの増大を引き起こす。
【0031】
次に、増大された閾値電圧Vは、量(νGS−V)の減少を引き起こし、その結果、トランジスターのドレイン電流iを減少させる。従って、一定のゲート−ソース電圧νGSに対して、ソース−ボディ電圧νSBの増大は、トランジスターの電流ドライブ容量(性能の1つの測度)の減少を引き起こす。次に、トランジスターの減少された電流ドライブ容量は、より遅い回路動作を引き起こし、最終的に、トランジスターを含むFPGAのより遅い動作を引き起こす。
【0032】
トランジスターの電力損失はまた、その閾値電圧の変動に従って変化する。より具体的には、より小さい閾値電圧は、トランジスターのオフ状態の漏れ電流(Ioff)を増大させ、その逆の場合も当てはまる。トランジスターのIoffは、その静的(非スイッチング)電力損失に影響する。加えて、より小さい閾値電圧は、トランジスターの動的またはスイッチング電力損失を減少させる。従って、ボディバイアスを調整することによって閾値電圧を変化させることは、MOSトランジスターの電力損失に影響する。
【0033】
さらに、所与の供給電圧VDDに対して、閾値電圧Vの増大は、トランジスターが、パストランジスターとして動作する場合に伝送し得る最大電圧を制限する。言い換えると、閾値電圧Vが、それがゲート−ソース電圧νGS以上であるポイントまで増大する場合に、ドレイン電流は、ゼロまで減少する。従って、トランジスターのドレインに適用された電圧(例えば、論理1に対応する電圧)は、トランジスターのソースまで正しく伝送することができない。その結果、トランジスターは、パストランジスターとして確実に動作することができない。
【0034】
ソース−ボディ電圧νSBが正または負であり得ることに留意する。正のソース−ボディ電圧νSBは、順方向ボディバイアスを提供する。逆に、負のソース−ボディ電圧νSBは、トランジスターの逆方向ボディバイアスを引き起こす。順方向ボディバイアスの一部は、ボディまたは基板内に流れる。それにもかかわらず、順方向ボディバイアスは、比較的に大きい漏れ電流が存在するトランジスターの動作速度を増大させ、または向上させることが可能である。
【0035】
前述が示しているように、MOSトランジスターのボディバイアス、従ってそのソース−ボディ電圧を調整する(最終的にその閾値電圧の変動をもたらす)ことによってMOSトランジスターの性能に影響し得る。ボディバイアスを調整することは、性能の測度(例えば、電流ドライブ容量、動作の速度、電力損失等)に影響する。
【0036】
例示的実施形態において、必要に応じて、個々のトランジスター、FPGA内の個々の回路またはブロック、トランジスターまたはブロックのグループ、またはさらに全FPGA等のボディバイアスを調整し得る。さらに、必要に応じて、個々のNMOSまたはPMOSトランジスターのボディバイアス、またはNMOSおよびPMOSトランジスターのグループのボディバイアスを制御し得る。以下の説明は、その詳細を提供する。
【0037】
上述されたように、いくつかの実施形態において、FPGAの骨組またはコアが、1つ以上の構成に対応する回路ブロックとして割り当てられ得る。FPGA103の骨組またはコアは、さまざまな形態をとり得る。いくつかの実施形態において、FPGA103のコア回路網は、回路網の中でもとりわけ、プログラマブル論理106およびプログラマブル相互接続109を含む。
【0038】
プログラマブル論理106およびプログラマブル相互接続109は、しばしば、アレイまたは規則的な構造、例えば、2次元アレイのFPGA103内にある。従って、いくつかの実施形態において、FPGA103の骨組またはコアが、行と列で配列され得る。
【0039】
図3は、例示的実施形態に従うFPGA103の平面図を描く。FPGA103は、2次元アレイとして配列されたプログラマブル論理106を含む。水平相互接続セグメントおよび垂直相互接続セグメントとして配列されたプログラマブル相互接続109は、プログラマブル論理106のブロックを互いに結合する。
【0040】
当業者に理解されるように、ユーザーの設計を実装するように特定の方式でブロックを置き得る。ブロック、ブロックの一部分、またはブロックのセットは、FPGA103のタイルまたは領域を構成し得る。従って、FPGA103は、当業者に理解されるように、所望の配置で(2等分、4等分等のように)配列されるいくつかのタイルを含み得る。他の実施形態において、FPGA103は、行および/または列の回路網または回路網のブロックを含み得る。
【0041】
FPGA103のコアまたは骨組は、プログラマブル回路網(プログラマブル論理、プログラマブル相互接続等)のより小さい粒状の構造を含み得る。図4は、例示的実施形態に従うFPGA103のプログラマブル論理106およびプログラマブル相互接続109のブロックダイヤグラムを示す。示される例示的実施形態において、プログラマブル論理106は、論理要素またはプログラマブル論理要素、回路、またはブロック150、ローカル相互接続152、インターフェース回路153、およびインターフェース回路156を含む。
【0042】
論理要素150は、当業者に理解されるように、構成可能またはプログラマブル論理機能、例えば、LUT、フリップフロップ、レジスタ、積項論理等を提供する。ローカル相互接続152は、必要に応じて、論理要素150のための構成可能またはプログラマブル機構を提供し、論理要素150を互いに、またはプログラマブル相互接続109(ときどき、「グローバル相互接続」と呼ばれる)に結合する。インターフェース回路156およびインターフェース回路153は、回路網のプログラマブル論理106ブロックための構成可能またはプログラマブル方法を提供し、プログラマブル論理106ブロックをプログラマブル相互接続109(および、従って他のプログラマブル論理106)に結合する。
【0043】
インターフェース回路156およびインターフェース回路153は、当業者に理解されるように、MUX、DEMUX、レジスタ、バッファー、パスゲート、ドライバー等を含み得る。より高いレベルにおいて、より大きなプログラマブルブロックを実現するために、いくつかの論理要素150および関連の回路網を組み合わせ得る。所望のレベルの粒度のプログラム化を有する回路網のプログラマブルブロックを生成するために、所与の状況で所望または適切のように、このプロセスを繰り返し得る。
【0044】
FPGA103内のさまざまな回路またはブロックは、回路要素として扱われ、かつボディバイアスに対応するレベルを有し得る。例示的実施形態において、回路要素の割り当てのための粒度のさまざまなレベルが使用され得る。例えば、いくつかの実施形態において、個々のトランジスター(例えば、パスゲートとして働くトランジスター)を回路要素として扱い得る。別の例として、プログラマブル論理106の回路要素は、1つ以上のボディバイアスレベルを有し得る。
【0045】
さらに、必要に応じて、個々または全体ベースで他の回路網とは無関係に回路網の各部分またはブロックのボディバイアスを調整し得る。回路網の各部分またはブロック内において、必要に応じて、個々または全体ベースで各サブブロックまたはトランジスター、またはサブブロックまたはトランジスターのグループのボディバイアスを調整し得る。
【0046】
いくつかの実施形態において、論理要素(または論理要素内の部品またはブロック)または論理要素のセットは、対応するボディバイアスレベルを有し得る。他の例は、当業者にとって明白であり、例えば、論理要素のブロック、タイル、四分円、行、列等である。
【0047】
例示的実施形態に従うFPGA内の以下の回路網:図1のブロックのうちの1つ以上のブロック(例えば、プログラマブル論理106、プログラマブル相互接続109等);1つ以上のプログラマブル論理ブロック106内の1つ以上の論理要素150;1つ以上のプログラマブル論理ブロック106内の1つ以上のインターフェース回路256および/または259;1つ以上のプログラマブル論理106内の1つ以上のローカル相互接続;および1つ以上のインターフェース回路256および/または259内の1つ以上のMUX、ドライバー、バッファー等の全部または一部分のボディバイアスを調整し得る。
【0048】
同様に、プログラマブル相互接続109内の回路網のさまざまな部分またはブロックは、対応するボディバイアスレベルを有し得る。例えば、1つ以上のローカル相互接続は、対応するボディバイアスレベルを有し得る。別の例として、1つ以上のグローバル相互接続(または1つ以上のこのような相互接続の一部分)は、対応するボディバイアスレベルを有し得る。他の例が、対象のFPGAの構造のような因子、FPGAのコアまたは骨組の粒度のレベル等に依存することは、当業者にとって明白である。
【0049】
プログラマブル論理106およびプログラマブル相互接続109に加えて、または代わりに、FPGA103内の他の回路またはブロックが、対応するボディバイアスレベルを有し得る。例えば、いくつかの実施形態において、メモリ124が、FPGA103内のメモリのブロックとして実装され得る。メモリ124内の1つ以上のメモリのブロックは、対応するボディバイアスレベルを有し得る。
【0050】
プロセッサ118、通信回路121、I/O回路網112等に対して、同様な可能性が存在する。一般的に言えば、FPGA103の1つ以上の回路または回路のブロックの一部分または全部は、例示的実施形態に従って調整されまたは設定され得る対応するボディバイアスレベルを有し得る。
【0051】
上述されたように、粒度の任意の所望のレベルでボディバイアス調整を加え得る。言い換えると、必要に応じて適切に、個々のトランジスター、トランジスターのグループ、サブブロック、ブロック、または全FPGAに適用可能な調整を加え得る。例えば、必要に応じて、1つ以上のPMOSトランジスターとは無関係に1つ以上のNMOSトランジスターにボディバイアス調整を加え得る。
【0052】
さらに、必要に応じて、他の要素のすべてとは無関係のFPGA103内の1つの要素のボディバイアスを調整し得る。当業者に理解されるように、FPGAのいくつかのパーツのボディバイアスを調整し得るが、必要に応じて、FPGAの他のパーツに対して固定またはデフォルトのボディバイアスを提供し得る。
【0053】
図5は、例示的実施形態に従うボディバイアスコントローラ140のブロックダイヤグラムを示す。ボディバイアスコントローラ140は、コントローラエンジンまたは回路253を含む。コントローラエンジン253は、1つ以上の回路(示されていない)から監視入力信号250を1つ以上の入力として受信する。
【0054】
必要に応じて、多くの監視回路が、FPGA103内に使用され得る。監視回路の数および位置は、いくつかの因子(例えば、ボディバイアス調整または制御の粒度のレベル)に依存する。例えば、いくつかの実施形態において、監視回路は、ボディバイアスが制御され、または調整されることが求められる各FPGAリソースに対して使用され得る。それ故、FPGAリソースの位置は、FPGA103内の監視回路の位置を決定する。例えば、議論のFPGAリソースがFPGA103のコアまたは骨組内にプログラマブル論理およびプログラマブル相互接続を構成する場合に、監視信号は、FPGA103内に、例えば、図3に示された2次元パターンで分散され得る。
【0055】
いくつかの実施形態において、監視回路は、ボディバイアスが制御され、または調整されることが求められるFPGAリソースのセットに対して使用され得る。それ故に、FPGAリソースの位置は、この状況において監視回路の適切な位置を決定する。例えば、監視回路は、リソースに対して中央に、またはその付近に位置決めされ得る。
【0056】
監視信号250は、FPGA103内の1つ以上のリソースのプロセス、電圧、および温度のうちの1つ以上の特性の表示を含む。このようなリソースの例は、回路、トランジスター、ブロック等を含む。
【0057】
プロセスの特性は、概してFPGA103、具体的にそれぞれの回路、トランジスター、ブロック等を製造するように使用された製造プロセスに関連する1つ以上の特性またはパラメータを含み得る。このようなパラメータの例は、公称閾値電圧、トランジスターの動作の速度の測度、トランジスターの電流ドライブ容量等を含む。
【0058】
温度特性は、概して、それぞれの回路、トランジスター、ブロック等の温度の測度を含み得る。例えば、温度特性は、1つ以上の接合部温度、このような温度の平均等を含み得る。
【0059】
電圧特性は、概してそれぞれの回路、トランジスター、ブロック等に対する供給電圧を含み得る。いくつかの実施形態において、監視回路は、供給電圧のDC成分を監視し、または測定する。いくつかの実施形態は、監視回路は、供給電圧のDC成分およびAC成分を監視し、または測定する。後者の例において、監視回路、従ってボディバイアスコントローラ140は、供給電圧内に存在するリップルまたは過渡に応答し得る。
【0060】
コントローラエンジン253は、参照情報回路256からボディバイアス情報を受信する。参照情報回路256は、さまざまな形態を取り得る。いくつかの実施形態において、当業者に理解されるように、参照情報回路256は、ルックアップテーブル、メモリデバイス等を構成し得る。いくつかの実施形態において、参照情報回路256は。1つ以上の式を用いて参照情報を提供し得る。コントローラエンジン253は、監視入力信号250と参照情報回路256からの情報とを使用して、FPGA103のそれぞれの回路、トランジスター、ブロック等に対するボディバイアスレベルの範囲を決定する。
【0061】
1つの例示的実施形態において、参照情報回路256は、ボディバイアスの適切な範囲に対するルックアップ情報を含む。コントローラエンジン253は、監視入力信号250を使用して、ルックアップ索引を決定し、ルックアップ索引を使用して、参照情報回路256から1つ以上のボディバイアス範囲を検索する。
【0062】
いくつかの実施形態において、それぞれの回路、トランジスター、ブロック等についての構成情報も考慮に入れられ得る。例えば、ボディバイアス値の範囲は、回路またはブロックが比較的に低速度かつ比較的に低電力消費に対して構成されているか、または、回路またはブロックが比較的に高速度かつ比較的に高電力消費に対して構成されているかに基づいて決定され得る。概して、構成情報は、回路、ブロック等の所望、最大、最小の動作速度および/または電力消費についての情報を含み得る。
【0063】
コントローラエンジン253は、ボディバイアス範囲の情報および監視された入力信号を使用して、それぞれのリソース(例えば、FPGA103の回路、トランジスター、ブロック等)に対するボディバイアスを決定する。例えば、比較的に低温において、比較的に高い順方向ボディバイアスの上限(ボディバイアス範囲の上限)が使用され得る。逆に、比較的に高温において、比較的に低い順方向ボディバイアスの下限(ボディバイアス範囲の下限)が使用され得る。いくつかの実施形態において、前述のように、それぞれの回路、トランジスター、ブロック等についての構成情報はまた、ボディバイアス値を決定することにおいて考慮に入れられ得る。
【0064】
ボディバイアス生成器259は、1つ以上のボディバイアス信号262を比較的に低温でのそれぞれのリソースに提供し、比較的に高い順方向ボディバイアス上限(ボディバイアス範囲の上限)が使用され得る。ボディバイアスに対する範囲に依存して、コントローラエンジン253は、ボディバイアスレベルが決定された範囲内に残るように、ボディバイアス生成器259にボディバイアス信号を調整させ得る。このように、FPGA103の1つ以上のパーツ、ブロック、回路、トランジスター等の性能(例えば、電力損失、動作の速度等)は、それぞれのボディバイアスレベルを動的に調整し、または制御することによって制御され、向上され、または最適化され得る。
【0065】
図6は、例示的実施形態に従うボディバイアス範囲を使用するためのフローダイヤグラムを描く。303において、FPGAは、ユーザーの設計に関連するデータを用いて、FPGAリソース(例えば、前述のFPGA)を介して実装されるように構成される。一旦構成されると、FPGAは、ユーザーモードにおいて設置され、すなわち、ユーザーの回路、所望の機能等を実装し得る。
【0066】
306において、監視信号が受信され、または得られる。監視信号は、FPGA103のリソース(例えば、回路、トランジスター、ブロック等)のプロセス、電圧、および温度のレベルおよび/または特性の表示またはそれらについての情報を構成し、または提供し得る。
【0067】
309において、監視信号に基づいて、1つ以上のボディバイアス範囲が決定される。
当業者に理解されるように、ボディバイアス範囲は、さまざまな方法(例えば、ルックアップデータまたはテーブル、式等)で決定され得る。それぞれのFPGAリソースに対する構成情報(例えば、動作の比較的に速い測度または遅い速度)はまた、ボディバイアス範囲の決定において考慮に入れられ得る。
【0068】
例えば、ボディバイアス値の範囲は、FPGAリソースが比較的に低速度かつ比較的に低電力消費に対して構成されているか、または、リソースが比較的に高速度かつ比較的に高電力消費に対して構成されているかに基づいて決定され得る。概して、構成情報は、リソース等の所望、または最大、または最小の動作速度および/または電力消費についての情報を含み得る。
【0069】
312において、ボディバイアス値またはレベルが、それぞれのFPGAリソース(例えば、回路、トランジスター、ブロック)に対して決定される。315において、それぞれのFPGAリソースのボディバイアス値は、例えば、312において決定されたボディバイアス値またはレベルを使用することによって調整され、制御され、またはプログラム化される。309における決定と同様に、それぞれのFPGAリソースに対する構成情報(例えば、動作の比較的に速い測度または遅い速度)はまた、315におけるボディバイアスレベルまたは値の決定において考慮に入れられ得る。
【0070】
318において、FPGAがユーザーモードで動作しているか否かを決定するためにチェックがなされる。ユーザーモードで動作している場合に、制御は306に戻る。フローダイヤグラムにおいて例示された技術を用いて、1つ以上のFPGAリソースのボディバイアスが、調整され、プログラム化され、または制御され得る。このように、FPGA103の1つ以上のパーツ、ブロック、回路、トランジスター等の性能(例えば、電力損失、動作の速度等)は、それぞれのボディバイアスレベルを動的に調整し、または制御することによって制御され、向上され、または最適化され得る。
【0071】
上記の開示は、FPGAの性能を向上させるための技術および回路網を部分的に議論するが、本明細書で開示された概念は、概して、プログラマブルまたは構成可能な回路網を有するICに適用される。このようなICは、プログラマブル論理デバイス(PLD)、複雑なPLD(CPLD)等として当業者に公知であり得る。
【0072】
図面を参照すると、当業者は、さまざまな示されたブロックが、主に概念的機能および信号フローを描き得ることを留意する。実際の回路実装は、さまざまな機能的ブロックに対して別個の識別可能なハードウェアを含み得、または含まない場合もあり、示される特定の回路網を含み得、または含まない場合もある。例えば、必要に応じて、1つの回路ブロック内にさまざまなブロックの機能を組み合わせ得る。さらに、必要に応じて、いくつかの回路ブロックにおいて、単一のブロックの機能を実現し得る。回路実装の選択肢は、当業者に理解されるように、所与の実装のための特定の設計および性能仕様のようなさまざまな因子に依存する。ここで説明された実施形態に加えて、他の変更および代替的な実施形態は、当業者によって明白である。従って、この説明は、当業者に、開示された概念を実行する方式を教示し、そして単に例示として解釈されるべきである。
【0073】
示され、説明された形状および実施形態は、例示的な実施形態としてとられるべきである。当業者は、この文書に開示された概念の範囲から逸脱することなしに、パーツの形状、大きさおよび配列においてさまざまな変更を行い得る。例えば、当業者は、本明細書で例示され、説明された要素に対して同等の要素を代わりに用い得る。さらに、当業者は、本明細書で開示された概念の範囲から逸脱することなしに、他の特徴の使用に独立して、本明細書で開示された概念のある特徴を使用し得る。

【特許請求の範囲】
【請求項1】
フィールドプログラマブルゲートアレイ(FPGA)であって、該FPGAは、
該FPGA内の少なくとも1つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、
該少なくとも1つの回路に対するプロセス、電圧、および温度の該表示から該少なくとも1つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラと、
該少なくとも1つの回路内の少なくとも1つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該ボディバイアス値の範囲内の値を有する、FPGA。
【請求項2】
前記少なくとも1つの回路は、プログラマブル論理を含む、請求項1に記載のFPGA。
【請求項3】
前記少なくとも1つの回路は、プログラマブル相互接続を含む、請求項1に記載のFPGA。
【請求項4】
前記ボディバイアス信号は、前記少なくとも1つのトランジスターに適用される順方向ボディバイアスを引き起こす、請求項1に記載のFPGA。
【請求項5】
前記ボディバイアス信号は、前記少なくとも1つのトランジスターに適用される逆方向ボディバイアスを引き起こす、請求項1に記載のFPGA。
【請求項6】
前記コントローラは、ルックアップテーブルを用いて前記ボディバイアス値の範囲を導出するように適合されている、請求項1に記載のFPGA。
【請求項7】
プロセスの表示は、前記FPGAを製造するために使用される製造プロセスに関連する1つ以上のパラメータを含む、請求項1に記載のFPGA。
【請求項8】
温度の表示は、前記少なくとも1つの回路の少なくとも1つの温度を含む、請求項1に記載のFPGA。
【請求項9】
電圧の表示は、前記少なくとも1つの回路の電源電圧を含む、請求項1に記載のFPGA。
【請求項10】
前記電源電圧は、該電源電圧のDC成分を含む、請求項9に記載のFPGA。
【請求項11】
前記電源電圧は、該電源電圧のDC成分およびAC成分を含む、請求項9に記載のFPGA。
【請求項12】
フィールドプログラマブルゲートアレイ(FPGA)を動作させる方法であって、該方法は、
該FPGA内の少なくとも1つの回路に関連するプロセス、電圧および温度についての情報を提供する監視信号を受信することと、
少なくとも部分的にプロセス、電圧および温度についての該情報に基づいてボディバイアス値の範囲を決定することと、
該ボディバイアス値の範囲内の値を有するボディバイアス信号を生成することと、
該少なくとも1つの回路内の少なくとも1つのトランジスターに該ボディバイアス信号を適用することと
を含む、方法。
【請求項13】
前記監視信号は、前記FPGAを製造するために使用される半導体製造プロセスについての情報を提供する、請求項12に記載の方法。
【請求項14】
前記監視信号は、前記少なくとも1つの回路の少なくとも1つの温度についての情報を提供する、請求項12に記載の方法。
【請求項15】
前記監視信号は、前記少なくとも1つの回路の少なくとも1つの供給電圧ついての情報を提供する、請求項12に記載の方法。
【請求項16】
前記少なくとも1つの供給電圧についての情報は、(a)該少なくとも1つの供給電圧のDC成分;(b)該少なくとも1つの供給電圧のAC成分;または(c)該少なくとも1つの供給電圧のDC成分およびAC成分を含む、請求項15に記載の方法。
【請求項17】
フィールドプログラマブルゲートアレイ(FPGA)であって、該FPGAは、
それぞれ、該FPGA内の第1および第2の回路に対するプロセス、電圧、および温度の表示を提供するように適合された第1および第2の監視回路と、
該第1および第2の回路に対するプロセス、電圧、および温度の該表示と、該第1および第2の回路に対する構成情報とから該第1および第2の回路に対するそれぞれのボディバイアス値の第1および第2の範囲を導出するように適合されたコントローラと、
該第1および第2の回路内のそれぞれの少なくとも1つのトランジスターに第1および第2のボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該第1および第2の回路の該ボディバイアス値のそれぞれの範囲内の値を有する、FPGA。
【請求項18】
前記第1および第2のボディバイアス信号の値は、前記第1および第2の回路についての構成情報にさらに基づく、請求項17に記載のFPGA。
【請求項19】
前記第1および第2の回路のうちの少なくとも1つに対する前記構成情報は、該第1および第2の回路のうちの該少なくとも1つの動作速度についての情報を含む、請求項17に記載のFPGA。
【請求項20】
前記第1および第2の回路のうちの少なくとも1つに対する前記構成情報は、該第1および第2の回路のうちの該少なくとも1つの電力消費についての情報を含む、請求項17に記載のFPGA。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−46068(P2013−46068A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2012−181065(P2012−181065)
【出願日】平成24年8月17日(2012.8.17)
【出願人】(597154922)アルテラ コーポレイション (163)
【氏名又は名称原語表記】Altera Corporation
【Fターム(参考)】