(57)【特許請求の範囲】
【請求項１】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、
該ＦＰＧＡは、
該ＦＰＧＡ内の少なくとも１つの回路に対するプロセスの表示と、該少なくとも１つの回路に対する電圧の表示と、該少なくとも１つの回路に対する温度の表示とを提供するように適合された監視回路のセットと、
該少なくとも１つの回路に対する該プロセスの表示と、該少なくとも１つの回路に対する該電圧の表示と、該少なくとも１つの回路に対する該温度の表示とから該少なくとも１つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラと、
該少なくとも１つの回路内の少なくとも１つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該ボディバイアス値の範囲内の値を有する、ＦＰＧＡ。
【請求項２】
前記少なくとも１つの回路は、プログラマブル論理を含む、請求項１に記載のＦＰＧＡ。
【請求項３】
前記少なくとも１つの回路は、プログラマブル相互接続を含む、請求項１に記載のＦＰＧＡ。
【請求項４】
前記ボディバイアス信号は、前記少なくとも１つのトランジスターに適用される順方向ボディバイアスを引き起こす、請求項１に記載のＦＰＧＡ。
【請求項５】
前記ボディバイアス信号は、前記少なくとも１つのトランジスターに適用される逆方向ボディバイアスを引き起こす、請求項１に記載のＦＰＧＡ。
【請求項６】
前記コントローラは、ルックアップテーブルを用いて前記ボディバイアス値の範囲を導出するように適合されている、請求項１に記載のＦＰＧＡ。
【請求項７】
プロセスの表示は、前記ＦＰＧＡを製造するために使用される製造プロセスに関連する１つ以上のパラメータを含む、請求項１に記載のＦＰＧＡ。
【請求項８】
温度の表示は、前記少なくとも１つの回路の少なくとも１つの温度を含む、請求項１に記載のＦＰＧＡ。
【請求項９】
電圧の表示は、前記少なくとも１つの回路の電源電圧を含む、請求項１に記載のＦＰＧＡ。
【請求項１０】
前記電源電圧は、該電源電圧のＤＣ成分を含む、請求項９に記載のＦＰＧＡ。
【請求項１１】
前記電源電圧は、該電源電圧のＤＣ成分およびＡＣ成分を含む、請求項９に記載のＦＰＧＡ。
【請求項１２】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を動作させる方法であって、
該方法は、
該ＦＰＧＡ内の少なくとも１つの回路に関連するプロセスについての情報と、該少なくとも１つの回路に関連する電圧についての情報と、該少なくとも１つの回路に関連する温度についての情報とを提供する監視信号を受信することと、
該プロセスについての情報と該電圧についての情報と該温度についての情報とに少なくとも基づいてボディバイアス値の範囲を決定することと、
該ボディバイアス値の範囲内の値を有するボディバイアス信号を生成することと、
該少なくとも１つの回路内の少なくとも１つのトランジスターに該ボディバイアス信号を適用することと
を含む、方法。
【請求項１３】
前記監視信号は、前記ＦＰＧＡを製造するために使用される半導体製造プロセスについての情報を提供する、請求項１２に記載の方法。
【請求項１４】
前記監視信号は、前記少なくとも１つの回路の少なくとも１つの温度についての情報を提供する、請求項１２に記載の方法。
【請求項１５】
前記監視信号は、前記少なくとも１つの回路の少なくとも１つの供給電圧についての情報を提供する、請求項１２に記載の方法。
【請求項１６】
前記少なくとも１つの供給電圧についての情報は、（ａ）該少なくとも１つの供給電圧のＤＣ成分；（ｂ）該少なくとも１つの供給電圧のＡＣ成分；または（ｃ）該少なくとも１つの供給電圧のＤＣ成分およびＡＣ成分を含む、請求項１５に記載の方法。
【請求項１７】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、
該ＦＰＧＡは、
該ＦＰＧＡ内の第１の回路および第２の回路に対するプロセスの表示と、該第１の回路および該第２の回路に対する電圧の表示と、該第１の回路および該第２の回路に対する温度の表示とをそれぞれ提供するように適合された第１の監視回路および第２の監視回路と、
該第１の回路および該第２の回路に対する該プロセスの表示と、該第１の回路および該第２の回路に対する該電圧の表示と、該第１の回路および該第２の回路に対する該温度の表示と、該第１の回路および該第２の回路に対する構成情報とから、該第１の回路および該第２の回路に対するボディバイアス値の第１の範囲および第２の範囲をそれぞれ導出するように適合されたコントローラと、
該第１の回路および該第２の回路内の少なくとも１つのトランジスターに第１のボディバイアス信号および第２のボディバイアス信号をそれぞれ提供するように適合されたボディバイアス生成器と
を含み、
該第１のボディバイアス信号および該第２のボディバイアス信号は、該第１の回路および該第２の回路の該ボディバイアス値のそれぞれの範囲内の値を有する、ＦＰＧＡ。
【請求項１８】
前記第１のボディバイアス信号の値および前記第２のボディバイアス信号の値は、前記第１の回路および前記第２の回路についての構成情報にさらに基づく、請求項１７に記載のＦＰＧＡ。
【請求項１９】
前記第１の回路および前記第２の回路のうちの少なくとも１つに対する前記構成情報は、該第１の回路および該第２の回路のうちの該少なくとも１つの動作速度についての情報を含む、請求項１７に記載のＦＰＧＡ。
【請求項２０】
前記第１の回路および前記第２の回路のうちの少なくとも１つに対する前記構成情報は、該第１の回路および該第２の回路のうちの該少なくとも１つの電力消費についての情報を含む、請求項１７に記載のＦＰＧＡ。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への引用）
本出願は、＿＿＿＿に出願された「Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｃｏｎｆｉｇｕｒｉｎｇ  Ｐｅｒｆｏｒｍａｎｃｅ  ｏｆ  Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ｍｅｔｈｏｄｓ」という題目の米国特許出願第＿＿＿＿号（代理人整理番号ＡＬＴＲ１０４）に関連する。
【０００２】
（技術分野）
本明細書で開示される概念は、概して、電子回路網およびデバイス（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））に関し、より具体的には、ＦＰＧＡの性能を向上させるための装置および関連する方法に関する。
【背景技術】
【０００３】
エレクトロニクスにおける発展は、半導体デバイス（例えば、ＦＰＧＡのような集積回路（ＩＣ））によって実現される機能および能力の数がますます増加することをもたらす。それらの機能および能力を提供するために、半導体デバイス（例えば、ＦＰＧＡ）は、継続的に、ますます増加する数のトランジスターを含む。
【０００４】
コストを減らし、なお多くの機能および能力のための仕様を満たすために、半導体テクノロジーは、より高いデバイス密度およびより小さなデバイス形状に向う傾向を推進し続けてきた。それらの傾向は、次に結果としてＩＣ（例えば、ＦＰＧＡ）おける増大された電力損失をもたらす。
【発明の概要】
【課題を解決するための手段】
【０００５】
（要約）
本明細書に開示された概念に従う幅広いさまざまな実施形態は、電子回路網（例えば、ＦＰＧＡ）の性能を向上させるために使用され得る。１つの例示的実施形態に従って、ＦＰＧＡは、ＦＰＧＡ内の少なくとも１つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、少なくとも１つの回路に対するプロセス、電圧、および温度の表示から少なくとも１つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラとを含む。ＦＰＧＡは、少なくとも１つの回路内の少なくとも１つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器をさらに含む。ボディバイアス信号は、ボディバイアス値の範囲内の値を有する。
【０００６】
別の例示的実施形態に従って、ＦＰＧＡを動作させる方法は、ＦＰＧＡ内の少なくとも１つの回路に関連するプロセス、電圧および温度についての情報を提供する監視信号を受信することと、少なくとも部分的にプロセス、電圧および温度についての情報に基づいてボディバイアス値の範囲を決定することとを含む。方法は、ボディバイアス値の範囲内の値を有するボディバイアス信号を生成することと、少なくとも１つの回路内の少なくとも１つのトランジスターにボディバイアス信号を適用することとをさらに含む。
【０００７】
なお別の例示的実施形態に従って、ＦＰＧＡは、それぞれ、ＦＰＧＡ内の少なくとも２つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された少なくとも２つの監視回路を含む。ＦＰＧＡは、少なくとも２つの回路に対するプロセス、電圧、および温度の表示と、少なくとも２つの回路に対する構成情報とから少なくとも２つの回路に対するそれぞれのボディバイアス値の少なくとも２つの範囲を導出するように適合されたコントローラをさらに含む。加えて、ＦＰＧＡは、少なくとも２つの回路内のそれぞれの少なくとも１つのトランジスターに少なくとも２つのボディバイアス信号を提供するように適合されたボディバイアス生成器を含む。ボディバイアス信号は、少なくとも２つの回路のボディバイアス値のそれぞれの範囲内の値を有する。
【０００８】
本発明は、例えば、以下の項目を提供する。
（項目１）
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、該ＦＰＧＡは、
該ＦＰＧＡ内の少なくとも１つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、
該少なくとも１つの回路に対するプロセス、電圧、および温度の該表示から該少なくとも１つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラと、
該少なくとも１つの回路内の少なくとも１つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該ボディバイアス値の範囲内の値を有する、ＦＰＧＡ。
（項目２）
上記少なくとも１つの回路は、プログラマブル論理を含む、上記項目に記載のＦＰＧＡ。
（項目３）
上記少なくとも１つの回路は、プログラマブル相互接続を含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目４）
上記ボディバイアス信号は、上記少なくとも１つのトランジスターに適用される順方向ボディバイアスを引き起こす、上記項目のいずれかに記載のＦＰＧＡ。
（項目５）
上記ボディバイアス信号は、上記少なくとも１つのトランジスターに適用される逆方向ボディバイアスを引き起こす、上記項目のいずれかに記載のＦＰＧＡ。
（項目６）
上記コントローラは、ルックアップテーブルを用いて上記ボディバイアス値の範囲を導出するように適合されている、上記項目のいずれかに記載のＦＰＧＡ。
（項目７）
プロセスの表示は、上記ＦＰＧＡを製造するために使用される製造プロセスに関連する１つ以上のパラメータを含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目８）
温度の表示は、上記少なくとも１つの回路の少なくとも１つの温度を含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目９）
電圧の表示は、上記少なくとも１つの回路の電源電圧を含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目１０）
上記電源電圧は、該電源電圧のＤＣ成分を含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目１１）
上記電源電圧は、該電源電圧のＤＣ成分およびＡＣ成分を含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目１２）
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を動作させる方法であって、該方法は、
該ＦＰＧＡ内の少なくとも１つの回路に関連するプロセス、電圧および温度についての情報を提供する監視信号を受信することと、
少なくとも部分的にプロセス、電圧および温度についての該情報に基づいてボディバイアス値の範囲を決定することと、
該ボディバイアス値の範囲内の値を有するボディバイアス信号を生成することと、
該少なくとも１つの回路内の少なくとも１つのトランジスターに該ボディバイアス信号を適用することと
を含む、方法。
（項目１３）
上記監視信号は、上記ＦＰＧＡを製造するために使用される半導体製造プロセスについての情報を提供する、上記項目のいずれかに記載の方法。
（項目１４）
上記監視信号は、上記少なくとも１つの回路の少なくとも１つの温度についての情報を提供する、上記項目のいずれかに記載の方法。
（項目１５）
上記監視信号は、上記少なくとも１つの回路の少なくとも１つの供給電圧ついての情報を提供する、上記項目のいずれかに記載の方法。
（項目１６）
上記少なくとも１つの供給電圧についての情報は、（ａ）該少なくとも１つの供給電圧のＤＣ成分；（ｂ）該少なくとも１つの供給電圧のＡＣ成分；または（ｃ）該少なくとも１つの供給電圧のＤＣ成分およびＡＣ成分を含む、上記項目のいずれかに記載の方法。
（項目１７）
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、該ＦＰＧＡは、
それぞれ、該ＦＰＧＡ内の第１および第２の回路に対するプロセス、電圧、および温度の表示を提供するように適合された第１および第２の監視回路と、
該第１および第２の回路に対するプロセス、電圧、および温度の該表示と、該第１および第２の回路に対する構成情報とから該第１および第２の回路に対するそれぞれのボディバイアス値の第１および第２の範囲を導出するように適合されたコントローラと、
該第１および第２の回路内のそれぞれの少なくとも１つのトランジスターに第１および第２のボディバイアス信号を提供するように適合されたボディバイアス生成器と
を含み、
該ボディバイアス信号は、該第１および第２の回路の該ボディバイアス値のそれぞれの範囲内の値を有する、ＦＰＧＡ。
（項目１８）
上記第１および第２のボディバイアス信号の値は、上記第１および第２の回路についての構成情報にさらに基づく、上記項目のいずれかに記載のＦＰＧＡ。
（項目１９）
上記第１および第２の回路のうちの少なくとも１つに対する上記構成情報は、該第１および第２の回路のうちの該少なくとも１つの動作速度についての情報を含む、上記項目のいずれかに記載のＦＰＧＡ。
（項目２０）
上記第１および第２の回路のうちの少なくとも１つに対する上記構成情報は、該第１および第２の回路のうちの該少なくとも１つの電力消費についての情報を含む、上記項目のいずれかに記載のＦＰＧＡ。
【０００９】
（摘要）
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、ＦＰＧＡ内の少なくとも１つの回路に対するプロセス、電圧、および温度の表示を提供するように適合された監視回路のセットと、少なくとも１つの回路に対するプロセス、電圧、および温度の表示から少なくとも１つの回路に対するボディバイアス値の範囲を導出するように適合されたコントローラとを含む。ＦＰＧＡは、少なくとも１つの回路内の少なくとも１つのトランジスターにボディバイアス信号を提供するように適合されたボディバイアス生成器をさらに含む。ボディバイアス信号は、ボディバイアス値の範囲内の値を有する。
【００１０】
添付した図面は、単に、例示的実施形態を例示するものであり、それ故に、それらの範囲を限定するものとして考慮されるべきではない。当業者は、本明細書で開示される概念が、当業者に他の同等の有効な実施形態を与えることを認識する。図面において、２つ以上の図面に使用された同じ数値の指示子は、同じ、類似、または同等の機能、構成要素、またはブロックを示す。
【図面の簡単な説明】
【００１１】
【図１】図１は、例示的実施形態に従うＦＰＧＡのブロックダイヤグラムを例示する。
【図２】図２は、例示的実施形態に従うＦＰＧＡにおいて使用される金属酸化膜半導体（ＭＯＳ）トランジスターを示す
【図３】図３は、例示的実施形態に従うＦＰＧＡの平面図を描く。
【図４】図４は、例示的実施形態に従うＦＰＧＡにおけるプログラマブル論理およびプログラマブル相互接続のブロックダイヤグラムを例示する。
【図５】図５は、例示的実施形態に従うボディバイアスコントローラのブロックダイヤグラムを示す。
【図６】図６は、例示的実施形態に従うボディバイアス範囲を使用するためのフローダイヤグラムを描く。
【発明を実施するための形態】
【００１２】
本明細書で開示される概念は、概して、電子回路網およびデバイス（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））に関し、より具体的には、ＦＰＧＡの性能を向上させるための装置および関連する方法に関する。本明細書で開示される概念の１つの局面は、プロセス、電圧、および温度（ＰＶＴ）の監視されたレベルまたは表示に基づいて、ＦＰＧＡの少なくともいくつかのパーツ、ブロック、回路、またはリソースのボディバイアスレベルを調整し、または提供することに関する。一般的に言えば、プロセス、電圧および温度は、ボディバイアスをＦＰＧＡの１つ以上の回路に提供するために、プロセス、電圧、および温度の表示を決定するように、ＦＰＧＡの１つ以上の回路に対して監視される。
【００１３】
次に、ボディバイアス値の範囲は、少なくとも部分的にプロセス、電圧、および温度の表示または監視された値に基づいて決定される。いくつかの実施形態において、回路についての構成情報も考慮に入れられ得る。例えば、ボディバイアス値の範囲は、回路またはブロックが比較的に低速度かつ比較的に低電力消費に対して構成されているか、または、回路またはブロックが比較的に高速度かつ比較的に高電力消費に対して構成されているかに基づいて決定され得る。概して、構成情報は、回路、ブロック等の所望、最大、最小の動作速度および／または電力消費についての情報を含み得る。
【００１４】
ボディバイアス信号は、それぞれの回路のうちの少なくとも１つ以上の回路の少なくとも１つのトランジスターに提供または適用される。ボディバイアス信号は、ボディバイアス値のそれぞれの範囲内の値を有し得る。ボディバイアス信号は、回路、従ってＦＰＧＡの電力の消費または損失を向上させるように選択される。いくつかの実施形態において、前述のように、回路についての構成情報はまた、ボディバイアス値を決定することにおいて考慮に入れられ得る。
【００１５】
図１は、例示的実施形態に従うＦＰＧＡ１０３の一般的ブロックダイヤグラムを例示する。ＦＰＧＡ１０３は、構成回路網１３０、構成メモリ（ＣＲＡＭ）１３３、ボディバイアスコントローラ１４０、プログラマブル論理１０６、プログラマブル相互接続１０９、およびＩ／Ｏ回路網１１２を含む。加えて、ＦＰＧＡ１０３は、必要に応じて、テスト／デバッグ回路網１１５、１つ以上のプロセッサ１１８、１つ以上の通信回路網１２１、１つ以上のメモリ１２４、１つ以上のコントローラ１２７、および初期化回路１３９を含み得る。
【００１６】
図面が、ＦＰＧＡ１０３の一般的ブロックダイヤグラムを示すことに留意する。従って、ＦＰＧＡ１０３は、当業者に理解されるように、他のブロックおよび回路網を含み得る。このような回路網の例は、クロック生成および分配回路等を含む。さらに、ＦＰＧＡ１０３は、必要に応じて、アナログ回路網、他のデジタル回路網、および／または混合信号回路網、ヒューズ、アンチヒューズ等を含み得る。
【００１７】
プログラマブル論理１０６は、構成可能またはプログラマブル論理回路網、例えば、ルックアップテーブル（ＬＵＴ）、積項論理、パスゲート、マルチプレクサー（ＭＵＸ）、論理ゲート、レジスタ、メモリ等を含む。プログラマブル相互接続１０９は、プログラマブル論理１０６に結合し、（例えば、パスゲートおよび／またはＭＵＸを使用することによって）プログラマブル論理１０６内のさまざまなブロックと、ＦＰＧＡ１０３内または外側の他の回路網との間に構成可能な相互接続（結合機構）を提供する。いくつかの実施形態において、プログラマブル論理１０６および／またはプログラマブル相互接続１０９は、追加の柔軟性またはプログラム化を提供するために、ヒューズおよび／またはアンチヒューズを含み得る。
【００１８】
初期化回路１３９は、ＦＰＧＡ１０３のリセットまたは電力アップでさまざまな機能の実行を生じさせ得る。電力アップ時またはその後に、ＦＰＧＡ１０３は、一般的に外部デバイスから構成情報を得る。構成情報に基づいて、ＦＰＧＡ１０３のＦＰＧＡコアまたは骨組、または他のブロックまたはリソース内のさまざまなブロックまたはデバイスが、構成されまたはプログラム化される。例は、プログラマブル論理１０６およびプログラマブル相互接続１０９を含む。
【００１９】
Ｉ／Ｏ回路網１１２は、幅広い種類のＩ／Ｏデバイスまたは回路を構成し得る。Ｉ／Ｏ回路網１１２は、ＦＰＧＡ１０３のさまざまな部分、例えば、プログラマブル論理１０６およびプログラマブル相互接続１０９に結合し得る。Ｉ／Ｏ回路網１１２は、外部の回路網またはデバイスと通信するために、ＦＰＧＡ１０３内のさまざまなブロックに機構および回路網を提供する。
【００２０】
テスト／デバッグ回路網１１５は、ＦＰＧＡ１０３内のさまざまなブロックおよび回路のテストおよびトラブルシュートを容易にする。テスト／デバッグ回路網１１５は、当業者に公知のさまざまなブロックまたは回路を含み得る。例えば、テスト／デバッグ回路網１１５は、必要に応じて、ＦＰＧＡ１０３が電力アップの後、またはリセットした後にテストを行うための回路を含み得る。テスト／デバッグ回路網１１５はまた、必要に応じて、コーディングおよびパリティー回路を含み得る。
【００２１】
ＦＰＧＡ１０３は、１つ以上のプロセッサ１１８を含み得る。プロセッサ１１８は、ＦＰＧＡ１０３内の他のブロックおよび回路に結合し得る。プロセッサ１１８は、当業者に理解されるように、ＦＰＧＡ１０３内または外部の回路からデータおよび情報を受信し、幅広い種類の方法で情報を処理し得る。１つ以上のプロセッサ１１８は、デジタル信号プロセッサ（ＤＳＰ）を構成し得る。ＤＳＰは、必要に応じて、幅広い種類の信号処理タスク、例えば、圧縮、解凍、オーディオ処理、ビデオ処理、フィルターリング等を行うことを可能にする。
【００２２】
ＦＰＧＡ１０３はまた、１つ以上の通信回路１２１を含み得る。通信回路１２１は、当業者に理解されるように、ＦＰＧＡ１０３内のさまざまな回路とＦＰＧＡ１０３外部の回路との間のデータおよび情報の交換を容易にし得る。通信回路１２１の例は、トランシーバー、ネットワークインターフェース回路等を含む。
【００２３】
ＦＰＧＡ１０３は、１つ以上のメモリ１２４および１つ以上のコントローラ１２７をさらに含み得る。メモリ１２４は、ＦＰＧＡ１０３内のさまざまなデータおよび情報（例えば、ユーザーデータ、中間結果、計算結果等）の格納を可能にする。メモリ１２４は、必要に応じて、粒状またはブロックの形態を有し得る。
【００２４】
メモリコントローラ１２７は、ＦＰＧＡの外側の回路にインターフェースで接続することと、ＦＰＧＡの外側の回路の動作およびさまざまな機能を制御することを可能にする。例えば、メモリコントローラ１２７は、外部同期の動的ランダムアクセスメモリ（ＳＤＲＡＭ）にインターフェースでつなぎ、かつ制御し得る。
【００２５】
ボディバイアスコントローラ１４０は、ＦＰＧＡ１０３の１つ以上の回路に対してボディバイアス値を提供する。より具体的には、前述のように、ボディバイアス値は、ＦＰＧＡ１０３の１つ以上の回路に対してボディバイアス値の範囲から選択される。ボディバイアス値は、ＦＰＧＡ１０３内の１つ以上のトランジスター、またはトランジスターのグループの性能を決定する。例えば、ボディバイアス値は、トランジスターの動作の速度、トランジスターが属する回路の電力損失等に影響する。
【００２６】
図２は、例示的実施形態に従うＦＰＧＡにおいて使用されるＭＯＳトランジスターを示す。ＭＯＳトランジスターは、ボディ（または基板）領域２０３、ソース領域２０６、ドレイン領域２０９、ゲート絶縁体２１５、およびゲート２１２を含む。動作の飽和領域におけるＭＯＳトランジスターのドレイン電流は、トランジスターの閾値電圧およびゲート−ソース電圧に依存する：
ｉＤ＝Ｋ（νＧＳ−ＶＴ）２                            （１）
ここで、
ｉＤ＝全ドレイン電流（すなわち、ＡＣ成分およびＤＣ成分を含む）、
Ｋ＝定数、
νＧＳ＝全ゲート−ソース電圧（すなわち、ＡＣ成分およびＤＣ成分を含む）、
および
ＶＴ＝閾値電圧。
【００２７】
閾値電圧ＶＴは、多くの因子（例えば、トランジスターのソース領域２０６とボディ領域２０３との間の電圧）に依存する。以下の方程式は、閾値電圧をボディ−ソース電圧の関数として提供する：
【００２８】
【数１】
0006274719.tif 000002
代替的には、ソース−ボディ電圧に関して方程式２Ａを表し得る：
【００２９】
【数２】
0006274719.tif 000003
ここで、
ＶＴ（０）＝ソース−ボディ電圧（またはボディ−ソース電圧）がゼロにセットされた場合の閾値電圧、
γ＝ボディ因子（ボディのドーピングレベルに依存する定数）、
ΦＦ＝定数、
νＢＳ＝全ボディ−ソース電圧（すなわち、ＡＣ成分およびＤＣ成分を含む）、
νＳＢ＝全ソース−ボディ電圧（すなわち、ＡＣ成分およびＤＣ成分を含む）。
ボディ−ソース電圧νＢＳ（またはソース−ボディ電圧νＳＢ）がゼロに等しいときに、閾値電圧ＶＴはＶＴ（０）に等しいことを留意する。
【００３０】
方程式２Ｂは、有限のボディ因子γに対して、トランジスター閾値電圧が、ソース−ボディ電圧νＳＢが増大するにつれて増大することを示す。しかしながら、方程式１は、所与のゲート−ソース電圧に対して、閾値電圧の増大がトランジスターのドレイン電流ｉＤを減少させることを示す。言い換えると、方程式１および２Ｂに従って、一定のゲート−ソース電圧νＧＳに対して、ソース−ボディ電圧νＳＢの増大は、閾値電圧ＶＴの増大を引き起こす。
【００３１】
次に、増大された閾値電圧ＶＴは、量（νＧＳ−ＶＴ）の減少を引き起こし、その結果、トランジスターのドレイン電流ｉＤを減少させる。従って、一定のゲート−ソース電圧νＧＳに対して、ソース−ボディ電圧νＳＢの増大は、トランジスターの電流ドライブ容量（性能の１つの測度）の減少を引き起こす。次に、トランジスターの減少された電流ドライブ容量は、より遅い回路動作を引き起こし、最終的に、トランジスターを含むＦＰＧＡのより遅い動作を引き起こす。
【００３２】
トランジスターの電力損失はまた、その閾値電圧の変動に従って変化する。より具体的には、より小さい閾値電圧は、トランジスターのオフ状態の漏れ電流（Ｉｏｆｆ）を増大させ、その逆の場合も当てはまる。トランジスターのＩｏｆｆは、その静的（非スイッチング）電力損失に影響する。加えて、より小さい閾値電圧は、トランジスターの動的またはスイッチング電力損失を減少させる。従って、ボディバイアスを調整することによって閾値電圧を変化させることは、ＭＯＳトランジスターの電力損失に影響する。
【００３３】
さらに、所与の供給電圧ＶＤＤに対して、閾値電圧ＶＴの増大は、トランジスターが、パストランジスターとして動作する場合に伝送し得る最大電圧を制限する。言い換えると、閾値電圧ＶＴが、それがゲート−ソース電圧νＧＳ以上であるポイントまで増大する場合に、ドレイン電流は、ゼロまで減少する。従って、トランジスターのドレインに適用された電圧（例えば、論理１に対応する電圧）は、トランジスターのソースまで正しく伝送することができない。その結果、トランジスターは、パストランジスターとして確実に動作することができない。
【００３４】
ソース−ボディ電圧νＳＢが正または負であり得ることに留意する。正のソース−ボディ電圧νＳＢは、順方向ボディバイアスを提供する。逆に、負のソース−ボディ電圧νＳＢは、トランジスターの逆方向ボディバイアスを引き起こす。順方向ボディバイアスの一部は、ボディまたは基板内に流れる。それにもかかわらず、順方向ボディバイアスは、比較的に大きい漏れ電流が存在するトランジスターの動作速度を増大させ、または向上させることが可能である。
【００３５】
前述が示しているように、ＭＯＳトランジスターのボディバイアス、従ってそのソース−ボディ電圧を調整する（最終的にその閾値電圧の変動をもたらす）ことによってＭＯＳトランジスターの性能に影響し得る。ボディバイアスを調整することは、性能の測度（例えば、電流ドライブ容量、動作の速度、電力損失等）に影響する。
【００３６】
例示的実施形態において、必要に応じて、個々のトランジスター、ＦＰＧＡ内の個々の回路またはブロック、トランジスターまたはブロックのグループ、またはさらに全ＦＰＧＡ等のボディバイアスを調整し得る。さらに、必要に応じて、個々のＮＭＯＳまたはＰＭＯＳトランジスターのボディバイアス、またはＮＭＯＳおよびＰＭＯＳトランジスターのグループのボディバイアスを制御し得る。以下の説明は、その詳細を提供する。
【００３７】
上述されたように、いくつかの実施形態において、ＦＰＧＡの骨組またはコアが、１つ以上の構成に対応する回路ブロックとして割り当てられ得る。ＦＰＧＡ１０３の骨組またはコアは、さまざまな形態をとり得る。いくつかの実施形態において、ＦＰＧＡ１０３のコア回路網は、回路網の中でもとりわけ、プログラマブル論理１０６およびプログラマブル相互接続１０９を含む。
【００３８】
プログラマブル論理１０６およびプログラマブル相互接続１０９は、しばしば、アレイまたは規則的な構造、例えば、２次元アレイのＦＰＧＡ１０３内にある。従って、いくつかの実施形態において、ＦＰＧＡ１０３の骨組またはコアが、行と列で配列され得る。
【００３９】
図３は、例示的実施形態に従うＦＰＧＡ１０３の平面図を描く。ＦＰＧＡ１０３は、２次元アレイとして配列されたプログラマブル論理１０６を含む。水平相互接続セグメントおよび垂直相互接続セグメントとして配列されたプログラマブル相互接続１０９は、プログラマブル論理１０６のブロックを互いに結合する。
【００４０】
当業者に理解されるように、ユーザーの設計を実装するように特定の方式でブロックを置き得る。ブロック、ブロックの一部分、またはブロックのセットは、ＦＰＧＡ１０３のタイルまたは領域を構成し得る。従って、ＦＰＧＡ１０３は、当業者に理解されるように、所望の配置で（２等分、４等分等のように）配列されるいくつかのタイルを含み得る。他の実施形態において、ＦＰＧＡ１０３は、行および／または列の回路網または回路網のブロックを含み得る。
【００４１】
ＦＰＧＡ１０３のコアまたは骨組は、プログラマブル回路網（プログラマブル論理、プログラマブル相互接続等）のより小さい粒状の構造を含み得る。図４は、例示的実施形態に従うＦＰＧＡ１０３のプログラマブル論理１０６およびプログラマブル相互接続１０９のブロックダイヤグラムを示す。示される例示的実施形態において、プログラマブル論理１０６は、論理要素またはプログラマブル論理要素、回路、またはブロック１５０、ローカル相互接続１５２、インターフェース回路１５３、およびインターフェース回路１５６を含む。
【００４２】
論理要素１５０は、当業者に理解されるように、構成可能またはプログラマブル論理機能、例えば、ＬＵＴ、フリップフロップ、レジスタ、積項論理等を提供する。ローカル相互接続１５２は、必要に応じて、論理要素１５０のための構成可能またはプログラマブル機構を提供し、論理要素１５０を互いに、またはプログラマブル相互接続１０９（ときどき、「グローバル相互接続」と呼ばれる）に結合する。インターフェース回路１５６およびインターフェース回路１５３は、回路網のプログラマブル論理１０６ブロックための構成可能またはプログラマブル方法を提供し、プログラマブル論理１０６ブロックをプログラマブル相互接続１０９（および、従って他のプログラマブル論理１０６）に結合する。
【００４３】
インターフェース回路１５６およびインターフェース回路１５３は、当業者に理解されるように、ＭＵＸ、ＤＥＭＵＸ、レジスタ、バッファー、パスゲート、ドライバー等を含み得る。より高いレベルにおいて、より大きなプログラマブルブロックを実現するために、いくつかの論理要素１５０および関連の回路網を組み合わせ得る。所望のレベルの粒度のプログラム化を有する回路網のプログラマブルブロックを生成するために、所与の状況で所望または適切のように、このプロセスを繰り返し得る。
【００４４】
ＦＰＧＡ１０３内のさまざまな回路またはブロックは、回路要素として扱われ、かつボディバイアスに対応するレベルを有し得る。例示的実施形態において、回路要素の割り当てのための粒度のさまざまなレベルが使用され得る。例えば、いくつかの実施形態において、個々のトランジスター（例えば、パスゲートとして働くトランジスター）を回路要素として扱い得る。別の例として、プログラマブル論理１０６の回路要素は、１つ以上のボディバイアスレベルを有し得る。
【００４５】
さらに、必要に応じて、個々または全体ベースで他の回路網とは無関係に回路網の各部分またはブロックのボディバイアスを調整し得る。回路網の各部分またはブロック内において、必要に応じて、個々または全体ベースで各サブブロックまたはトランジスター、またはサブブロックまたはトランジスターのグループのボディバイアスを調整し得る。
【００４６】
いくつかの実施形態において、論理要素（または論理要素内の部品またはブロック）または論理要素のセットは、対応するボディバイアスレベルを有し得る。他の例は、当業者にとって明白であり、例えば、論理要素のブロック、タイル、四分円、行、列等である。
【００４７】
例示的実施形態に従うＦＰＧＡ内の以下の回路網：図１のブロックのうちの１つ以上のブロック（例えば、プログラマブル論理１０６、プログラマブル相互接続１０９等）；１つ以上のプログラマブル論理ブロック１０６内の１つ以上の論理要素１５０；１つ以上のプログラマブル論理ブロック１０６内の１つ以上のインターフェース回路２５６および／または２５９；１つ以上のプログラマブル論理１０６内の１つ以上のローカル相互接続；および１つ以上のインターフェース回路２５６および／または２５９内の１つ以上のＭＵＸ、ドライバー、バッファー等の全部または一部分のボディバイアスを調整し得る。
【００４８】
同様に、プログラマブル相互接続１０９内の回路網のさまざまな部分またはブロックは、対応するボディバイアスレベルを有し得る。例えば、１つ以上のローカル相互接続は、対応するボディバイアスレベルを有し得る。別の例として、１つ以上のグローバル相互接続（または１つ以上のこのような相互接続の一部分）は、対応するボディバイアスレベルを有し得る。他の例が、対象のＦＰＧＡの構造のような因子、ＦＰＧＡのコアまたは骨組の粒度のレベル等に依存することは、当業者にとって明白である。
【００４９】
プログラマブル論理１０６およびプログラマブル相互接続１０９に加えて、または代わりに、ＦＰＧＡ１０３内の他の回路またはブロックが、対応するボディバイアスレベルを有し得る。例えば、いくつかの実施形態において、メモリ１２４が、ＦＰＧＡ１０３内のメモリのブロックとして実装され得る。メモリ１２４内の１つ以上のメモリのブロックは、対応するボディバイアスレベルを有し得る。
【００５０】
プロセッサ１１８、通信回路１２１、Ｉ／Ｏ回路網１１２等に対して、同様な可能性が存在する。一般的に言えば、ＦＰＧＡ１０３の１つ以上の回路または回路のブロックの一部分または全部は、例示的実施形態に従って調整されまたは設定され得る対応するボディバイアスレベルを有し得る。
【００５１】
上述されたように、粒度の任意の所望のレベルでボディバイアス調整を加え得る。言い換えると、必要に応じて適切に、個々のトランジスター、トランジスターのグループ、サブブロック、ブロック、または全ＦＰＧＡに適用可能な調整を加え得る。例えば、必要に応じて、１つ以上のＰＭＯＳトランジスターとは無関係に１つ以上のＮＭＯＳトランジスターにボディバイアス調整を加え得る。
【００５２】
さらに、必要に応じて、他の要素のすべてとは無関係のＦＰＧＡ１０３内の１つの要素のボディバイアスを調整し得る。当業者に理解されるように、ＦＰＧＡのいくつかのパーツのボディバイアスを調整し得るが、必要に応じて、ＦＰＧＡの他のパーツに対して固定またはデフォルトのボディバイアスを提供し得る。
【００５３】
図５は、例示的実施形態に従うボディバイアスコントローラ１４０のブロックダイヤグラムを示す。ボディバイアスコントローラ１４０は、コントローラエンジンまたは回路２５３を含む。コントローラエンジン２５３は、１つ以上の回路（示されていない）から監視入力信号２５０を１つ以上の入力として受信する。
【００５４】
必要に応じて、多くの監視回路が、ＦＰＧＡ１０３内に使用され得る。監視回路の数および位置は、いくつかの因子（例えば、ボディバイアス調整または制御の粒度のレベル）に依存する。例えば、いくつかの実施形態において、監視回路は、ボディバイアスが制御され、または調整されることが求められる各ＦＰＧＡリソースに対して使用され得る。それ故、ＦＰＧＡリソースの位置は、ＦＰＧＡ１０３内の監視回路の位置を決定する。例えば、議論のＦＰＧＡリソースがＦＰＧＡ１０３のコアまたは骨組内にプログラマブル論理およびプログラマブル相互接続を構成する場合に、監視信号は、ＦＰＧＡ１０３内に、例えば、図３に示された２次元パターンで分散され得る。
【００５５】
いくつかの実施形態において、監視回路は、ボディバイアスが制御され、または調整されることが求められるＦＰＧＡリソースのセットに対して使用され得る。それ故に、ＦＰＧＡリソースの位置は、この状況において監視回路の適切な位置を決定する。例えば、監視回路は、リソースに対して中央に、またはその付近に位置決めされ得る。
【００５６】
監視信号２５０は、ＦＰＧＡ１０３内の１つ以上のリソースのプロセス、電圧、および温度のうちの１つ以上の特性の表示を含む。このようなリソースの例は、回路、トランジスター、ブロック等を含む。
【００５７】
プロセスの特性は、概してＦＰＧＡ１０３、具体的にそれぞれの回路、トランジスター、ブロック等を製造するように使用された製造プロセスに関連する１つ以上の特性またはパラメータを含み得る。このようなパラメータの例は、公称閾値電圧、トランジスターの動作の速度の測度、トランジスターの電流ドライブ容量等を含む。
【００５８】
温度特性は、概して、それぞれの回路、トランジスター、ブロック等の温度の測度を含み得る。例えば、温度特性は、１つ以上の接合部温度、このような温度の平均等を含み得る。
【００５９】
電圧特性は、概してそれぞれの回路、トランジスター、ブロック等に対する供給電圧を含み得る。いくつかの実施形態において、監視回路は、供給電圧のＤＣ成分を監視し、または測定する。いくつかの実施形態は、監視回路は、供給電圧のＤＣ成分およびＡＣ成分を監視し、または測定する。後者の例において、監視回路、従ってボディバイアスコントローラ１４０は、供給電圧内に存在するリップルまたは過渡に応答し得る。
【００６０】
コントローラエンジン２５３は、参照情報回路２５６からボディバイアス情報を受信する。参照情報回路２５６は、さまざまな形態を取り得る。いくつかの実施形態において、当業者に理解されるように、参照情報回路２５６は、ルックアップテーブル、メモリデバイス等を構成し得る。いくつかの実施形態において、参照情報回路２５６は。１つ以上の式を用いて参照情報を提供し得る。コントローラエンジン２５３は、監視入力信号２５０と参照情報回路２５６からの情報とを使用して、ＦＰＧＡ１０３のそれぞれの回路、トランジスター、ブロック等に対するボディバイアスレベルの範囲を決定する。
【００６１】
１つの例示的実施形態において、参照情報回路２５６は、ボディバイアスの適切な範囲に対するルックアップ情報を含む。コントローラエンジン２５３は、監視入力信号２５０を使用して、ルックアップ索引を決定し、ルックアップ索引を使用して、参照情報回路２５６から１つ以上のボディバイアス範囲を検索する。
【００６２】
いくつかの実施形態において、それぞれの回路、トランジスター、ブロック等についての構成情報も考慮に入れられ得る。例えば、ボディバイアス値の範囲は、回路またはブロックが比較的に低速度かつ比較的に低電力消費に対して構成されているか、または、回路またはブロックが比較的に高速度かつ比較的に高電力消費に対して構成されているかに基づいて決定され得る。概して、構成情報は、回路、ブロック等の所望、最大、最小の動作速度および／または電力消費についての情報を含み得る。
【００６３】
コントローラエンジン２５３は、ボディバイアス範囲の情報および監視された入力信号を使用して、それぞれのリソース（例えば、ＦＰＧＡ１０３の回路、トランジスター、ブロック等）に対するボディバイアスを決定する。例えば、比較的に低温において、比較的に高い順方向ボディバイアスの上限（ボディバイアス範囲の上限）が使用され得る。逆に、比較的に高温において、比較的に低い順方向ボディバイアスの下限（ボディバイアス範囲の下限）が使用され得る。いくつかの実施形態において、前述のように、それぞれの回路、トランジスター、ブロック等についての構成情報はまた、ボディバイアス値を決定することにおいて考慮に入れられ得る。
【００６４】
ボディバイアス生成器２５９は、１つ以上のボディバイアス信号２６２を比較的に低温でのそれぞれのリソースに提供し、比較的に高い順方向ボディバイアス上限（ボディバイアス範囲の上限）が使用され得る。ボディバイアスに対する範囲に依存して、コントローラエンジン２５３は、ボディバイアスレベルが決定された範囲内に残るように、ボディバイアス生成器２５９にボディバイアス信号を調整させ得る。このように、ＦＰＧＡ１０３の１つ以上のパーツ、ブロック、回路、トランジスター等の性能（例えば、電力損失、動作の速度等）は、それぞれのボディバイアスレベルを動的に調整し、または制御することによって制御され、向上され、または最適化され得る。
【００６５】
図６は、例示的実施形態に従うボディバイアス範囲を使用するためのフローダイヤグラムを描く。３０３において、ＦＰＧＡは、ユーザーの設計に関連するデータを用いて、ＦＰＧＡリソース（例えば、前述のＦＰＧＡ）を介して実装されるように構成される。一旦構成されると、ＦＰＧＡは、ユーザーモードにおいて設置され、すなわち、ユーザーの回路、所望の機能等を実装し得る。
【００６６】
３０６において、監視信号が受信され、または得られる。監視信号は、ＦＰＧＡ１０３のリソース（例えば、回路、トランジスター、ブロック等）のプロセス、電圧、および温度のレベルおよび／または特性の表示またはそれらについての情報を構成し、または提供し得る。
【００６７】
３０９において、監視信号に基づいて、１つ以上のボディバイアス範囲が決定される。
当業者に理解されるように、ボディバイアス範囲は、さまざまな方法（例えば、ルックアップデータまたはテーブル、式等）で決定され得る。それぞれのＦＰＧＡリソースに対する構成情報（例えば、動作の比較的に速い測度または遅い速度）はまた、ボディバイアス範囲の決定において考慮に入れられ得る。
【００６８】
例えば、ボディバイアス値の範囲は、ＦＰＧＡリソースが比較的に低速度かつ比較的に低電力消費に対して構成されているか、または、リソースが比較的に高速度かつ比較的に高電力消費に対して構成されているかに基づいて決定され得る。概して、構成情報は、リソース等の所望、または最大、または最小の動作速度および／または電力消費についての情報を含み得る。
【００６９】
３１２において、ボディバイアス値またはレベルが、それぞれのＦＰＧＡリソース（例えば、回路、トランジスター、ブロック）に対して決定される。３１５において、それぞれのＦＰＧＡリソースのボディバイアス値は、例えば、３１２において決定されたボディバイアス値またはレベルを使用することによって調整され、制御され、またはプログラム化される。３０９における決定と同様に、それぞれのＦＰＧＡリソースに対する構成情報（例えば、動作の比較的に速い測度または遅い速度）はまた、３１５におけるボディバイアスレベルまたは値の決定において考慮に入れられ得る。
【００７０】
３１８において、ＦＰＧＡがユーザーモードで動作しているか否かを決定するためにチェックがなされる。ユーザーモードで動作している場合に、制御は３０６に戻る。フローダイヤグラムにおいて例示された技術を用いて、１つ以上のＦＰＧＡリソースのボディバイアスが、調整され、プログラム化され、または制御され得る。このように、ＦＰＧＡ１０３の１つ以上のパーツ、ブロック、回路、トランジスター等の性能（例えば、電力損失、動作の速度等）は、それぞれのボディバイアスレベルを動的に調整し、または制御することによって制御され、向上され、または最適化され得る。
【００７１】
上記の開示は、ＦＰＧＡの性能を向上させるための技術および回路網を部分的に議論するが、本明細書で開示された概念は、概して、プログラマブルまたは構成可能な回路網を有するＩＣに適用される。このようなＩＣは、プログラマブル論理デバイス（ＰＬＤ）、複雑なＰＬＤ（ＣＰＬＤ）等として当業者に公知であり得る。
【００７２】
図面を参照すると、当業者は、さまざまな示されたブロックが、主に概念的機能および信号フローを描き得ることを留意する。実際の回路実装は、さまざまな機能的ブロックに対して別個の識別可能なハードウェアを含み得、または含まない場合もあり、示される特定の回路網を含み得、または含まない場合もある。例えば、必要に応じて、１つの回路ブロック内にさまざまなブロックの機能を組み合わせ得る。さらに、必要に応じて、いくつかの回路ブロックにおいて、単一のブロックの機能を実現し得る。回路実装の選択肢は、当業者に理解されるように、所与の実装のための特定の設計および性能仕様のようなさまざまな因子に依存する。ここで説明された実施形態に加えて、他の変更および代替的な実施形態は、当業者によって明白である。従って、この説明は、当業者に、開示された概念を実行する方式を教示し、そして単に例示として解釈されるべきである。
【００７３】
示され、説明された形状および実施形態は、例示的な実施形態としてとられるべきである。当業者は、この文書に開示された概念の範囲から逸脱することなしに、パーツの形状、大きさおよび配列においてさまざまな変更を行い得る。例えば、当業者は、本明細書で例示され、説明された要素に対して同等の要素を代わりに用い得る。さらに、当業者は、本明細書で開示された概念の範囲から逸脱することなしに、他の特徴の使用に独立して、本明細書で開示された概念のある特徴を使用し得る。
【図１】
0006274719.tif 000004
【図２】
0006274719.tif 000005
【図３】
0006274719.tif 000006
【図４】
0006274719.tif 000007
【図５】
0006274719.tif 000008
【図６】
0006274719.tif 000009