"回路設計の合成のための方法であって、前記方法は、複数の遅延値を記述する遅延-電圧データを入力するステップを備え、前記遅延値は目標素子の動作電圧値に対応し、前記方法は、前記回路設計の解析から、前記回路設計のための最大ゲートレベル遅延を決定するステップと、前記最大ゲートレベル遅延に対応する最小電圧値と初期ゲートレベル遅延に対応する初期電圧値とを決定するステップと、前記最小電圧値と前記初期電圧値とに対応する電圧スケーリング因子を決定するステップと、前記回路設計を合成するステップとをさらに備え、前記合成された回路設計は、前記電圧スケーリング因子を含み、前記合成された回路設計は、動作電圧を、前記電圧スケーリング因子によって縮小された起動電圧値の値に設定することを規定し、前記起動電圧値は、前記合成された回路設計を実現するための目標デバイスに記憶される、方法。最大ゲートレベル遅延を決定するステップは、前記最大ゲートレベル遅延がユーザ定義された遅延制約の範囲内であるかどうかを判断するステップを含む、請求項1に記載の方法。最大ゲートレベル遅延を決定するステップは、前記遅延-電圧データにおける前記最大ゲートレベル遅延に対応する電圧値が、ユーザ定義された遅延制約の範囲内であるかどうかを判断するステップを含む、請求項1に記載の方法。最大ゲートレベル遅延を決定するステップは、ユーザ定義された電圧スケーリングパラメータが、前記最大ゲートレベル遅延を選択された遅延値に縮小するかどうかを判断するステップを含む、請求項1に記載の方法。最大ゲートレベル遅延を決定するステップは、前記遅延-電圧データにおける前記最大ゲートレベル遅延に対応する電圧値が、ユーザ定義された動作電圧パラメータに等しいかどうかを判断するステップを含む、請求項1に記載の方法。前記回路設計の各々の経路の最大遅延要求を決定するステップと、各々の経路の前記最大遅延要求に従って、配置-経路最適化を実行するステップとをさらに備え、前記電圧-遅延データは、さらに、前記目標デバイスの領域のためのそれぞれの遅延パラメータを規定する、請求項1から5のいずれか1項に記載の方法。最大ゲートレベル遅延を決定するステップは、前記回路設計を、前記初期遅延に等しいゲートレベルでシミュレートするステップと、前記シミュレーションの出力が正しいか否かを確定するステップと、前記シミュレーションの前記出力が正しいことが確定されたことに応答して、選択された量だけシミュレーション遅延を増加させるステップと、増加されたシミュレーション遅延を用いて、回路設計のシミュレーションと出力の確定とを繰り返すステップとを含む、請求項1に記載の方法。最大ゲートレベル遅延を決定するステップは、前記回路設計を、前記初期電圧に等しい供給電圧でシミュレートするステップと、前記シミュレーションの出力が正しいか否かを確定するステップと、前記シミュレーションの前記出力が正しいことが確定されたことに応答して、選択された量だけ前記供給電圧を減少させるステップと、前記減少された供給電圧を用いて、回路設計のシミュレーションと出力の確定とを繰り返すステップと、前記回路設計のシミュレーションが正しい出力を生成しているときに、少なくとも供給電圧を決定するステップと、前記少なくとも供給電圧に対応する前記シミュレーションのゲートレベル遅延を決定するステップとを含む、請求項1に記載の方法。前記合成された回路設計からビットストリームを生成するステップをさらに備え、前記ビットストリームは、さらに、外部電源をシグナリングすることによって、目標デバイスをプログラムして前記目標デバイスの動作電圧を設定するように構成される、請求項1から8のいずれか1項に記載の方法。プログラマブル集積回路であって、複数のプログラマブル資源と、前記プログラマブル資源を結合させるための複数のプログラマブルルーティング資源と、前記プログラマブル資源および前記プログラマブルルーティング資源に結合される複数のコンフィギュレーションメモリセルと、不揮発性メモリユニットと、前記不揮発性メモリユニットに結合された電源コントローラユニットとを備え、前記電源コントローラユニットは、前記動作電圧を、前記不揮発性メモリユニットに記憶された最小値に設定するように構成される、プログラマブル集積回路。前記電源コントローラユニットは、さらに出力ポートに結合され、前記電源コントローラユニットは、前記出力ポートに前記最小値を出力することにより、前記動作電圧を設定するように構成される、請求項10に記載のプログラマブル集積回路。前記不揮発性メモリユニットに記憶された前記最小値は、最大動作遅延に要求される、決定された最小動作電圧に等しい、請求項10または11に記載のプログラマブル集積回路。前記電源コントローラユニットは、前記動作電圧を、前記不揮発性メモリユニットに記憶された電圧パラメータによって縮小された、前記不揮発性メモリユニットに記憶された前記最小値に等しい値に設定するように構成される、請求項10または12に記載のプログラマブル集積回路。前記電源コントローラユニットは、前記コンフィギュレーションメモリセルのサブセットを用いて、前記プログラマブル資源および前記プログラマブルルーティング資源のサブセットにおいて実現される、請求項10から13のいずれか1項に記載のプログラマブル集積回路。前記電源コントローラユニットは、専用のハードウェアで実現される、請求項10から13のいずれか1項に記載のプログラマブル集積回路。デバイス間のばらつきにより、保証された仕様を大多数の印刷されたデバイスに適用するためには、その保証された電圧仕様および遅延仕様が、ある特定の量のヘッドルームheadroomを含むために相殺される。たとえば、測定は、大多数の製造されたデバイスが、1Vの動作電圧で平均して110メガヘルツMHz以上で動作可能であるが、数パーセントのデバイスが、同じ電圧で102MHzといった低速で動作するであろう。仕様は、デバイスがその仕様の中で示されるように動作することを確保するために、平均速度を110MHzとして、ヘッドルームを10MHzとして相殺することができる。プロセスばらつきの存在は、製造者が顧客に保証することができる性能および電力の仕様を低下させる。ばらつきの量が多くなるほど、ヘッドルームによって相殺される仕様も大きくなる。含まれているヘッドルームのために、製品設計における多くの印刷されたデバイスは、ベンダーの製造仕様において保証されるよりも、よりよい電圧および遅延パラメータで動作することができる。1以上の実施の形態は、1以上の上記の問題に向けられることができる。概要1つの実施の形態において、回路設計の合成のための方法が提供される。複数の遅延値を記述する遅延-電圧データが入力されることができる。遅延値は目標素子の動作電圧値に対応づけられることができる。回路設計は、解析されて、回路設計のための最大ゲートレベル遅延を決定することができる。最大ゲートレベル遅延に対応する最小電圧値と初期ゲートレベル遅延に対応する初期電圧値とを、初期ゲートレベル遅延に対応する初期電圧値に従って決定することができる。最小電圧値と初期電圧値とに対応する電圧スケーリング因子を決定することができる。合成された回路設計が、電圧スケーリング因子を含むように、回路設計を合成することができる。合成された回路設計は、動作電圧を、電圧スケーリング因子によって縮小された起動電圧値の値に設定することを規定することができる。起動電圧値は、合成された回路設計を実現するための目標デバイスに記憶される値とすることができる。この実施の形態において、最大ゲートレベル遅延を決定するステップは、最大ゲートレベル遅延がユーザ定義された遅延制約の範囲内であるかどうかを判断するステップを含むことができる。最大ゲートレベル遅延を決定するステップは、遅延-電圧データにおける最大ゲートレベル遅延に対応する電圧値が、ユーザ定義された遅延制約の範囲内であるかどうかを判断するステップを含むことができる。最大ゲートレベル遅延を決定するステップは、ユーザ定義された電圧スケーリングパラメータが、最大ゲートレベル遅延を選択された遅延値に縮小するかどうかを判断するステップを含むことができる。最大ゲートレベル遅延を決定するステップは、遅延-電圧データにおける最大ゲートレベル遅延に対応する電圧値が、ユーザ定義された動作電圧パラメータに等しいかどうかを判断するステップを含むことができる。方法のこの実施の形態は、回路設計の各々の経路の最大遅延要求を決定するステップと、各々の経路の最大遅延要求に従って、配置-経路最適化を実行するステップとをさらに備えることができる。電圧-遅延データは、さらに、目標デバイスの領域のためのそれぞれの遅延パラメータを規定することができる。最大ゲートレベル遅延を決定するステップは、回路設計を、初期遅延に等しいゲートレベルでシミュレートするステップと、シミュレーションの出力が正しいか否かを確定するステップと、シミュレーションの出力が正しいことが確定されたことに応答して、選択された量だけシミュレーション遅延を増加させるステップと、増加されたシミュレーション遅延を用いて、回路設計のシミュレーションと出力の確定とを繰り返すステップとを含むことができる。この実施の形態において、最大ゲートレベル遅延を決定するステップは、回路設計を、初期電圧に等しい供給電圧でシミュレートするステップと、シミュレーションの出力が正しいか否かを確定するステップと、シミュレーションの出力が正しいことが確定されたことに応答して、選択された量だけ供給電圧を減少させるステップと、減少された供給電圧を用いて、回路設計のシミュレーションと出力の確定とを繰り返すステップと、回路設計のシミュレーションが正しい出力を生成しているときに、少なくとも供給電圧を決定するステップと、少なくとも供給電圧に対応するシミュレーションのゲートレベル遅延を決定するステップとを含むことができる。方法のこの実施の形態は、合成された回路設計からビットストリームを生成するステップをさらに備えることができる。ビットストリームは、さらに、外部電源をシグナリングすることによって、目標デバイスをプログラムして目標デバイスの動作電圧を設定するように構成されることができる。別の実施の形態において、プログラマブル集積回路が提供される。プログラマブル集積回路は、複数のプログラマブル資源と、プログラマブル資源を結合させるための複数のプログラマブルルーティング資源とを含むことができる。複数のコンフィギュレーションメモリセルが、プログラマブル資源およびプログラマブルルーティング資源に結合されることができる。プログラマブル集積回路は、また、不揮発性メモリユニットと、不揮発性メモリユニットに結合された電源コントローラユニットとを含むことができる。電源コントローラユニットは、動作電圧を、不揮発性メモリユニットに記憶された最小値に設定するように結合されるとともに構成されることができる。この実施の形態において、電源コントローラユニットは、さらに出力ポートに結合されることができる。電源コントローラユニットは、出力ポートに最小値を出力することにより、動作電圧を設定するように構成されることができる。不揮発性メモリユニットに記憶された最小値は、最大動作遅延に要求される、決定された最小動作電圧に等しくされることができる。電源コントローラユニットは、動作電圧を、不揮発性メモリユニットに記憶された電圧パラメータによって縮小された、不揮発性メモリユニットに記憶された最小値に等しい値に設定するように構成されることができる。電源コントローラユニットは、コンフィギュレーションメモリセルのサブセットを用いて、プログラマブル資源およびプログラマブルルーティング資源のサブセットにおいて実現されることができる。電源コントローラユニットは、専用のハードウェアで実現されることができる。さらに別の実施の形態において、回路設計の合成のための方法が提供される。複数の遅延値を記述する遅延-電圧データが入力されることができる。回路設計のための最大ゲートレベル遅延が、プロセッサによって、回路設計の解析から決定することができる。決定された最大ゲートレベル遅延と等価な、複数の遅延値のうちの1つに対応する、1つの動作電圧値を決定することができる。回路設計は、合成された回路設計が、電圧スケーリング値を不揮発性メモリに記憶することを規定するように合成されることができる。合成された設計は、さらに、合成された設計の実現された回路の動作電圧を、ある動作電圧値の値に設定することを規定することができる。さらに別の実施の形態において、回路設計の合成のための方法が提供される。方法のこの実施の形態は、複数の遅延値を記述する遅延-電圧データを入力するステップを備えることができ、遅延値は目標素子の動作電圧値に対応することができる。方法は、回路設計の解析から、回路設計のための最大ゲートレベル遅延を決定するステップと、決定された最大ゲートレベル遅延と等価な、複数の遅延値のうちの1つに対応する、1つの動作電圧値を決定するステップと、回路設計を合成するステップとをさらに備え、合成された回路設計は、電圧スケーリング値を不揮発性メモリに記憶することと、合成された回路設計の実現された回路の動作電圧を、ある動作電圧値の値に設定することを規定する。方法のこの実施の形態は、さらに、設計制約を入力するステップを含むことができる。回路設計のための最大ゲートレベル遅延を決定するステップは、設計制約を満たす最大ゲートレベル遅延を決定するステップを含むことができる。合成は、動作電圧値のうちの決定された1つが、設計制約以下であることに応答して実行されることができる。設計制約は、最大動作電圧とされることができる。設計制約は、最大のユーザ定義されたゲートレベル遅延とされることができる。さまざまな他の実施の形態が、以下の続く詳細な説明および請求項で説明されることが理解されるであろう。さまざまな局面および利点が、以下に続く詳細な説明および図面を参照して明らかとなるであろう。図面の詳細な説明この開示のさまざまな実施の形態は、プログラマブル電圧を用いて集積回路における電力遅延ばらつきを改善する方法を与える。集積回路製造のリソグラフィプロセスにおける変動により、同じ設計の異なるデバイスは、同じゲートスイッチング速度を達成するために異なる電圧を必要とする。より高速のデバイスは、特定されたタイミング要求を、より低い電圧で満たすことができ、より低速のデバイスは、より高い電圧により、速度を上げて、特定されたタイミング要求を達成することができる。電力および遅延の分布の変動を減少することは、製品設計の電力および遅延の仕様の両方を改善することができる。1つの実施の形態において、各々のデバイスは、製造仕様において示された公称の遅延のための最小動作電圧Vminを決定するためにテストされる。この電圧は、ダイにおける不揮発性メモリに保存される。Vminは、次に、そのデバイスの動作電圧をVminに設定するために、プログラマブル電源に信号を与えるために用いられることができる。たとえば、図1-1は、同じウェハから切出された5つの仮想的デバイスに対する電圧対速度性能のグラフを示す。各々のデバイスは、デバイスの印刷におけるばらつきにより、所与の動作電圧においてわずかに異なる速度で動作し得る。製造者からのデバイスの仕様は、1.0ボルトの動作電圧において、120メガヘルツMHzの動作を保証し得る。このことは、1.0ボルトでは、製造者によって売られたすべてのデバイスが、規定されるように動作するであろうことを保証するだろう。しかしながら、4つのデバイスが、より低い動作電圧102未満で、120MHzで動作可能である。仕様で示されるであろう速度に対する最小動作電圧を決定するために各々のデバイスを測定することにより、その決定された最小動作電圧は、各々のデバイスの不揮発性メモリに記憶されて、起動時の動作電圧を設定するために用いられることができる。各々の実現されたデバイスに対してVminを効率的に決定するために、製造でのテストにおいて、異なる最終テストフローが適用される。いくつかの全体オープン/ショートテストおよび全体の欠陥テストの後に、特別な速度テストがテストフローの最初に配置される。これらの特別な速度テストは、典型的仕様と最小保証レベルとの間の異なる電圧レベルにおいて実行される。製造品の仕様において用いられるであろう要求を通すため、すべてのテストされるデバイスに対して必要とされる最低電圧レベルが記録される。デバイスが要求速度を達成することができる機能的テスト電圧レベルが決定される。デバイスは、次に機能テスト電圧レベルでテストされて、プログラムされたVminレベルにおける機能が保証される。各々のデバイスは、別々に測定される必要がないことが理解される。同じデバイスから切出された複数のデバイスは、そのウェハの最小電圧を一般化するために用いられることができる。各々のウェハを複数の領域に分割することができるならば、同じ領域から切出された複数のデバイスを、ウェハの最小電圧を一般化するために用いられることができる。1つの実施の形態において、さらなるテストが複数の印刷されたデバイスに実行されて、第1の速度で各々のデバイスを動作させるために必要な最小電圧の第1の組と、第2の速度で各々のデバイスを動作させるために必要な最小電圧の第2の組との間の一般的なスケーリングが決定される。最小電圧のいくつかの共通のスケーリング因子は、デバイスの仕様に提供されて、複数の異なる動作速度でデバイスを動作させるために必要な電圧を示す。スケーリングが共通であるため、同じスケーリング因子は、いくつかのデバイスに記憶されたVminで使用されて、ある特定の動作速度で各々のデバイスを動作させるために必要な縮小された動作電圧を決定することができる。たとえば、図1-1におけるグラフは、複数のクロック速度で5つのデバイスに必要な電圧を示す。120MHzで動作させるために必要な電圧102を、100MHzで動作させるために必要な電圧104に縮小するために、共通のスケーリング因子を決定することができる。この例において、100MHzで動作するために必要なデバイスの電圧V100MHzは、次の式で与えられる。V100MHz=Vscale100×V120MHzここで、V120MHzは、120MHzで動作させるために必要なデバイスの動作電圧であり、Vscale100は、2つの動作速度の間で縮小するためのスケーリング因子である。この例において、デバイスの間での共通のスケーリングは、線形式である。いくつかの製品設計は、動作スピードの共通のスケーリングを示すために非線形の式を必要とする可能性があることが理解されるであろう。デバイス仕様における複数のスケーリング因子を含むことにより、自動設計ツールは、これらのスケーリング因子の所望の1つを合成された設計またはビットストリームにプログラムするために、設計者によって用いられることができる。その設計が印刷され、あるいはプログラマブルロジックへとプログラムされる場合、スケーリング因子は、不揮発性メモリに記憶された最小電圧値に従って起動時に読出されることができる。スケーリング因子は、記憶された最小電圧値を縮小して、所望の動作速度に対応する電圧レベルを達成することができる。この方式において、設計者は、その設計のための必要とされる動作速度を決定して、要求される動作速度を達成するために最小必要電圧で動作させるための設計を構成することができる。スケーリング因子は、デバイスの内部または外部の不揮発性メモリに記憶されてもよい。たとえば、スケーリング因子がFPGAのビットストリームに記憶される場合、そのビットストリームは、起動時におけるデバイスの構成に先立って内部あるいは外部の不揮発性メモリに記憶されてもよい。スケーリング因子は、線形的である必要はない。たとえば、図1-1では、120MHzから115MHzへ縮小するためのスケーリング因子は、115MHzから110MHzへと縮小するためのスケーリング因子とは異なり得る。電圧スケーリング因子がデバイスに記憶されたVminとともに用いられるならば、各々のデバイスのVminは、1つの動作速度に対応するであろう。この方式において、同じスケーリング因子は、各々のデバイスのVminを縮小するために用いられることができる。同様に、用いられるビットストリームにプログラムされるスケーリング因子は、ある動作速度の電圧を、設計された動作速度でデバイスを動作させるために必要な電圧へと縮小するであろう。設計者が異なる動作速度での最適な電圧でデバイスを動作させることを可能にするために、複数のスケーリング因子をデバイス仕様に含めることができる。図1-2は、電圧スケーリング因子と対応する遅延スケーリング因子の表を示し、図1-1における120MHzの電圧102を、示される他の動作速度での電圧に縮小する。遅延スケーリング因子Vbelayは、1つの電圧における遅延を別の電圧における遅延に縮小する。図1-2に示されるスケーリング因子の表に加えて、あるいはその代りに、遅延スケーリング因子を電圧スケーリング因子へと変換する式を、デバイスの仕様に含めることができる。たとえば、図1-3は、4Vdelay2-9Vdelay6.6という式のグラフを示し、その式は、図1-2に示される表において含まれていない遅延スケーリング因子の場合の電圧スケーリング因子を計算するために用いられることができる。電圧スケーリングは、電力消費を低減するために電圧を低減するため、あるいは性能を改善するために電圧を増大させるために用いられることができる。図2は、公称電圧で動作する5つのテストデバイスの電力対遅延分布を示す。デバイスa208とデバイスb210とは、公称電圧よりも低い電圧で動作することにより速度を低下させることができる。デバイスd206とデバイスe204とは、公称電圧よりも高い電圧で動作することにより速度を上昇させることができる。結果として、すべてのデバイスは、遅延D0202で動作する。その結果、タイミング仕様は、DvarからD0へと改善されて、電力の仕様はPvarからPnewと改善される。なお、デバイスのスケーリング電圧において、低い電圧はデバイスの機能に影響を与え得るとともに、高い電圧は逆に信頼性に影響を与え得る。製造仕様は、安全動作電圧範囲を含み、動作電圧が安全動作範囲外に縮小されないことを確保し得る。いくつかの実施の形態において、ソフトウェア設計ツールを、最大動作速度、最大動作電圧他といったユーザ制約に基づく、低減された電圧で目標デバイスが動作できるかどうかを判断するために用いられることができる。設計ツールが、ユーザの制限が電圧スケーリングを通じて満たされることができると判断した場合、適切な電圧スケーリング因子が決定されて、ビットストリームへとプログラムされるか、そうでなければ実現された回路設計に取込まれる。ソフトウェア設計ツールは、定義された回路設計のための正しい出力を生成する最大遅延を決定するために用いられることができる。たとえば、設計ツールは、回路設計を解析して、仕様で示されたよりも遅延パラメータが1低くても仕様のタイミング制約が満たされることができることを判断する。ツールは、図1-2に示された例示的表を用いて、遅延スケーリング因子1.1が、電圧スケーリング因子0.88に対応することを判断することができる。電圧スケーリング因子0.88は、合成回路設計のビットストリームの中に記憶されて、不揮発性メモリに記憶された最小電圧に従って用いられて、デバイスに電源が投入されたときにプログラマブル電源の動作電圧を設定することができる。1つの実施の形態において、タイミング解析が、回路設計において繰返し実行される。各々の繰返しにおいて、ますます増大するスケーリング因子によって、目標デバイスの遅延仕様における遅延パラメータが低下する。その繰返しは、設計がタイミングの制約を満たさない場合に停止する。タイミングの制約を満たす最後の遅延スケーリング因子が、遅延スケーリング因子として用いられる。図3は、特定の回路設計のための電圧スケーリング因子を決定するための例示的プロセスのフローチャートを示す。回路設計302と電圧/遅延仕様304とは、ステップ306において入力される。電圧/遅延仕様304は、回路設計302を実現するために用いられるであろう目標デバイスに対応する。ステップ306において、電圧/遅延仕様304から、目標デバイスのために初期ゲートレベル遅延が決定される。初期ゲートレベル遅延は、目標デバイスにおいてプログラムされるVmin動作電圧に対応する。たとえば、仕様において公称電圧において示される最大保証遅延は、初期ゲートレベル遅延として用いられることができる。ステップ309においてタイミング解析が実行されて、設定されたゲートレベル遅延で回路設計302の性能および機能を決定する。いくつかの実施の形態において、ステップ308において最適化を実行して、回路の機能および性能を改善してもよい。たとえば、回路設計は、再マップされる、再配置される、および/または再度経路付けられて、スループットを改善するかあるいは回路設計のタイミング制約を満たすことができる。機能的に正しい出力を生成することに加えて、タイミングおよび設計の制約は、特定の動作電圧、特定の電圧スケーリング因子、特定のゲートレベル遅延、目標デバイスの特定の動作周波数他のような多数のユーザ定義の制約を含むことができる。判断ステップ310において、回路設計が、正しい出力を生成すると判断されて、タイミングおよび/または設計制約が満たされるならば、現在のゲートレベル遅延または初期ゲートレベル遅延のスケーリング因子がステップ312において記憶される。ゲートレベル遅延は、ステップ316において増大して、ステップ309において回路設計におけるタイミング解析が実行される。回路設計は、また、さらにステップ308において最適化されてもよい。このプロセスは、判断ステップ310において、不正確な出力を生成する、あるいはタイミングおよび/または設計制約を満たしていないと、回路設計302が判断されるまで繰返される。回路設計302が、正しい出力を生成しない、あるいは設計/タイミング制約を満たさない後に、最大の機能ゲートレベル遅延に対応する、直前に記憶された遅延がステップ318において検索される。遅延スケーリング因子は、電圧スケーリング因子322に変換されてステップ320において出力される。遅延スケーリング因子を電圧スケーリング因子にマッピングすることは、複数の電圧でFPGA遅延パラメータを特徴付けることによって決定されるとともに、上記のように説明された表または式によって与えられることができる。いくつかの他の実施の形態において特定の回路設計および目標デバイスのための電圧スケーリング因子が、繰返し減少する動作電圧レベルを用いて、目標デバイスのモデル上での回路設計を繰返しシミュレートすることによって決定されることができる。各々の繰返しにおいて、シミュレーションは、現在の電圧レベルのための目標デバイスのトランジスタのラッチ速度をシミュレートすることができる。繰返しは、その設計がタイミングまたは設計の制約を満たさない場合に停止する。その設計がタイミングおよび設計制約を満たす最後の動作電圧レベルが、デバイスの動作電圧として用いられる。電圧スケーリング因子が一旦決定されると、特定の電圧または電圧スケーリング因子を含む設計のビットストリームが生成されるとともに目標デバイスへとロードされ得る。他の実施の形態において、ユーザは、設計ツールに、十分な性能ヘッドルームを有する設計を生成させて、動作電圧が、ある特定の電圧スケーリング因子によって縮小されることを可能にすることができる。その代わりに、ユーザは、正確な動作電圧を要求してもよい。ツールは、図1-2における例示的なマッピング表を用いて必要な遅延スケーリング因子を決定するとともに、遅延スケーリング因子によって遅延パラメータが低下する、仕様において示される公称電圧を用いてタイミング駆動実現例を実行する。ツールが、タイミング制約をうまく満たす場合に、結果の設計は、ユーザによって要求される電圧スケーリング因子または実際の電圧で動作することができるであろう。電源コントローラは、プログラマブル電源に信号を与えて、電圧スケーリング因子によって縮小されたVminに動作電圧を設定する。たとえば、ユーザは、ツールに対して、0.88Vすなわちスケーリング因子0.88で動作可能なVirtex-5設計を生成することができる。ツールは、遅延スケーリング因子1.10によって低下した、仕様において示されるタイミング遅延でその設計が動作しなければならないことを決定する。ツールは、仕様において示された、1.10に調整された遅延パラメータを用いてタイミング駆動のフローを実行する。成功した場合、結果の設計は、0.88Vでのタイミングを満たすことができる。Vminが用いられる場合、電源コントローラは、各々の部分において0.88×Vminを設定する。Vminが用いられない場合、電源コントローラは固定電圧0.88Vに各々の部分を設定する。いくつかの実施の形態において、Vminは用いられないか、または目標デバイスにおいて記憶されないかもしれない。これらの実施の形態において、特定の動作電圧は、ビットストリームにプログラムされてもよい。その代わりに、製造仕様において示された公称電圧を縮小するためのスケーリング因子を決定することができる。定義されたユーザ制約を満たす特定のスケーリング因子が、上記で説明された方法を用いて決定することができる。決定されたスケーリング因子は、次に、ビットストリームにプログラムされて、目標デバイスへとロードされる。目標デバイスに電源が投入されると、電源コントローラ回路は、電圧スケール因子によって縮小された公称の電圧で単純に電源電圧を設定することができる。図4-1は、プログラマブル電圧制御を実装した目標デバイスのブロック図を示す。集積回路デバイス404において、部分の最小供給電圧Vminについての情報が不揮発性メモリ410に記憶される。デバイスが起動されると、Vmin410は、電源コントローラ406によって検索されて、デバイスを、初期動作電圧に構成するために用いられる。動作電圧をVminの地に設定するために、電源コントローラ406は、目標動作電圧に対応する電圧指定コードVID414を電源402に送る。電源402は、次に、受取ったVIDに対応する電圧で集積回路に電源を投入する。1つの実施の形態においえ、電源コントローラは、また、ステータス信号416を電源に送り、VIB信号が妥当であることを示す。ステータス信号の状態に依存して、電源は、Vcc入力412に固定の公称電圧またはVID電圧のいずれかを出力する。これは、目標デバイスがFPGAである場合に有用であり得る。いくつかの実施の形態において、初期電圧が、プルアップ抵抗およびプルダウン抵抗を用いてFPGAが構成される前に妥当なVIDを設定することが可能である。他の実施の形態において、目標デバイスは、プログラマブル電源の代わりに、初めに目標デバイスの所望の動作電圧を設定または調整するための動作電圧レギュレータを含むことができる。図4-2は、内部電源レギュレータを実装した目標デバイスのブロック図を示す。部分の最小供給電圧Vminについての情報が集積回路デバイス404における不揮発性メモリ410に記憶される。電源420は、固定の公称電圧をVcc入力412に出力するように構成される。デバイスが起動されると、電源レギュレータ422は、目標デバイス404に含まれる電源ロジックに用いられるVcc内部電圧を出力する。電源コントローラ406は、Vmin410および電圧スケーリング因子408を検索して、動作電圧を決定し、電源レギュレータ422に、その決定された動作電圧を出力するために信号を送るように構成される。図5は、複数の実施の形態に従うプログラマブルロジックにおいて実現される電源コントローラを有する目標FPGAデバイスが電圧を調整することができる例示的プロセスのフローチャートを示す。目標デバイスは、ステップ502において電源が投入され、電源は、Vccを初期の公称の値に設定する。この電圧は、プルアップ抵抗およびプルダウン抵抗によって設定されるか、またはステータス信号に応答して予め設定されるかのいずれかであってもよい。ステータス信号が用いられる場合、FPGAが構成される前にそのステータス信号は妥当でなければならない。ステップ504において、FPGAプログラマブルロジックが構成される。FPGAの構成の後、電源コントローラ506は、ステップ506において不揮発性メモリからVminおよび/またはVscaleを読出して、目標デバイスのための最小動作電圧を決定する。ステップ508において、電源コントローラは、妥当なVIDを用いてプログラマブル電源にその最小動作電圧を指定する。電源は、ステップ510においてVIDにおいて示された電圧にVccを設定する。さまざまな実施の形態では、回路設計が多数の目標デバイスにおいて実現されてもよい。目標デバイスは、特定用途集積回路ASICまたはFPGAのようなプログラマブルロジック集積回路であってもよいことが理解される。目標デバイスがプログラマブルロジックを実現する場合、電源制御ロジックは、専用のハードウェア、またはプログラマブルロジックにおいて実現されてもよい。ステータス信号が、プログラマブル電源に信号を与えるために用いられない場合、電源コントローラは、専用のハードウェアまたはプログラマブルロジックであってもよい。しかしながら、ステータス信号が、FPGAが構成される前に初期電圧を設定するために用いられるならば、電源コントローラは、専用のハードウェアであり、したがってデバイスが構成される前に起動されるであろう。電源コントローラは、したがってステータス信号を、FPGAが構成されて、VIDが現在妥当であることを示すために設定されることができる。ステータス信号が用いられない場合、このステップをスキップしてもよい。図6は、複数の実施の形態に従う、専用のハードウェアにおいて実現される電源コントローラを有する目標FPGAが電圧を調整し得る例示的プロセスのフローチャートを示す。目標デバイスは、ステップ602において電源が投入されて、電源はVccを初期の公称の値に設定する。専用の電源コントローラが、ステップ604において不揮発性メモリからVminを読出すとともにコンフィギュレーションメモリからVscaleを読出し、最小動作電圧を決定する。ステップ606において、電源コントローラは、電源信号線を最小動作電圧Vminに設定する。FPGAがステップ608において構成される。電源コントローラは、ステップ610において信号VIDが妥当であるとステータスを設定する。電源は、ステップ612においてVccを最小動作電圧に設定する。図7は、さまざまな実施の形態に従う、プログラマブル動作電圧を有する回路設計の実現において用いられ得る、例示的なプログラマブル集積回路のブロック図である。電源コントローラは、これまで述べたように、プログラマブル集積回路のプログラマブルロジックおよびインターコネクト資源において実現されることができる。FPGAは、複数の異なる種類のプログラマブルロジックブロックをアレイ中に含むことができる。たとえば、図7はFPGAアーキテクチャ700を示し、FPGAアーキテクチャ700は、マルチギガビットトランシーバMGT701と、コンフィギュラブルロジックブロックCLB702と、ランダムアクセスメモリブロックBRAM703と、入力/出力ブロックIOB704と、コンフィギュレーションおよびクロックロジックCONFIG/CLOCKS705と、デジタル信号処理ブロックDSP706と、特殊入力/出力ブロックI/O707たとえばコンフィギュレーションポートおよびクロックポートと、デジタルクロックマネージャ、アナログデジタル変換器、システム監視ロジックなどといった他のプログラマブルロジック708を含む、多数の異なるプログラマブルタイルを含む。いくつかのFPGAはまた、専用のプロセッサブロックPROC710と、外部リコンフィギュレーションポート図示せずを含む。いくつかのFPGAにおいて、各プログラマブルタイルは、プログラマブルインターコネクト要素INT711を含み、そのプログラマブルインターコネクト要素は、各隣り合うタイル中の対応するインターコネクト要素への、およびそのインターコネクト要素からの標準化された接続を有する。したがって、集められたプログラマブルインターコネクト要素は、図示されたFPGAに対するプログラマブルインターコネクト構造を実現する。プログラマブルインターコネクト要素INT711はまた、図7の上部に含まれる例によって示されるように、同じタイル内のプログラマブルロジック要素へのそのプログラマブルロジック要素からの接続を含む。たとえば、CLB702は、単一のプログラマブルインターコネクト要素INT711を加えたユーザロジックを実現するためにプログラムされることが可能なコンフィギュラブルロジック要素CLE712を含むことができる。BRAM703は、1以上のプログラマブルインターコネクト要素に加えてBRAMロジック要素BRL713およびトランザクションアービタ716を含むことができる。典型的には、タイルに含まれるインターコネクト要素の数はタイルの高さに依存する。図示された実施の形態においては、BRAMタイルは4つのCLBと同じ高さを有するが、他の数たとえば5もまた用いられることができる。同様に、DSPタイル706は適切な数のプログラマブルインターコネクト要素に加えてDSPロジック要素を含むことができる。IOB704は、プログラマブルインターコネクト要素INT711の1つのインスタンスに加えて入力/出力ロジック要素IOL715の2つのインスタンスを含むことができる。当業者にとっては明らかであるように、たとえばI/Oロジック要素715に接続される実際のI/Oパッドは、さまざまな図示されたロジックブロック上に層形成された金属を用いて製造され、典型的には入力/出力ロジック要素715の領域に限定されない。図示された実施の形態において、ダイの中心近くの縦領域図7において網かけで示すは、コンフィギュレーション、クロックおよび他の制御ロジックのために用いられる。この列から延びる水平領域709は、FPGAの幅を横切るクロックおよびコンフィギュレーション信号を分配するために用いられる。図7に示されたアーキテクチャを利用するいくつかのFPGAは、FPGAの大部分を形成する規則的な列構造を満たす、付加的なロジックブロックを含む。その付加的なロジックブロックは、プログラマブルブロックおよび/または専用ロジックとされることができる。たとえば、図7に示されたプロセッサブロックPROC710は、CLBおよびBRAMの複数の列に及ぶ。図7は、単に例示的なFPGAアーキテクチャを示すことを意図していることに注意すべきである。1列中のロジックブロックの数、列の相対的な幅、列の数および順序、列に含まれるロジックブロックの種類、ロジックブロックの相対的なサイズ、図7の上部に含まれる相互接続/ロジック構成は、純粋に例示的なものである。たとえば、実際のFPGAにおいては、ユーザロジックの効率的な構成を促進するために、CLBが現れるところではどこでも、CLBの1以上の隣り合う列が典型的に含まれる。プログラムコードで構成された1以上のプロセッサおよびメモリ構成を含むさまざまな代替的な演算構成が、異なる実施の形態のプロセスおよびデータ構造を穂スティングするために適しているであろうことを、当業者は理解するであろう。図8は、本明細書で説明されるプロセスが汎用目的プロセッサを用いて実現され得る例示的な演算構成のブロック図である。当業者は、1以上のプロセッサおよびプログラムコードで構成されたメモリ構成を含むさまざまな代替的な演算構成が、プロセスおよびデータ構造をホスティングするとともに1以上の実施の形態のアルゴリズムを実現するために適切なものとなるかもしれないことが理解されるであろう。プロセッサが実行可能なフォーマットで符号化されたプロセスを含むコンピュータコードが記憶され得るとともに、磁気または光ディスクまたはテープ、電子記憶装置、またはネットワークでのアプリケーションサービスのようなさまざまなコンピュータ読取可能な記憶媒体または配信チャネルを介して提供され得る。プロセッサ演算構成800は、1以上のプロセッサ802と、クロック信号生成器804と、メモリユニット806と、記憶ユニット808と、ホストバス812に結合された入力/出力制御ユニット810とを含む。構成800は、回路ボード上の別々の構成要素で実現されてもよく、あるいは集積回路の中で実現されてもよい。集積回路の中で実現される場合、プロセッサ演算構成は、マイクロコントローラとして知られる。コンピュータ構成のアーキテクチャは、当業者によって認識されている実現の要請に依存する。プロセッサ802は、1つ以上の汎用目的プロセッサ、または1つ以上の汎用目的プロセッサと適切なコプロセッサとの組合せ、あるいは1つ以上の専用プロセッサたとえばRISC,CISC,パイプライン他であり得る。メモリ構成806は、典型的には複数レベルのキャッシュメモリとメインメモリとを含む。記憶構成808は、磁気ディスク図示せず、フラッシュ、EPROM、または他の不揮発性データ記憶によって与えられるようなローカルおよび/またはリモートの永久的記憶装置を含んでもよい。記憶ユニットは、読取可能または読取/書込可能であってもよい。さらに、メモリ806と記憶装置808とは、単一の構成に組合されてもよい。プロセッサ構成802は、記憶装置808および/または記憶装置806におけるソフトウェアを実行し、記憶装置808および/または記憶装置806からデータを読出すとともにデータを記憶し、入力/出力制御構成810を介して外部デバイスと通信する。これらの機能は、クロック信号生成器804によって同期される。演算構成の資源は、オペレーティングシステム図示せずまたはハードウェア制御ユニット図示せずのいずれかによって管理されてもよい。1つ以上の実施の形態が、プログラマブルロジックを実現するさまざまなデバイスおよび回路設計に適用可能であると考えられる。他の局面および実施の形態は、この明細書の中で開示される実施例の実現と明細書の考慮から当業者にとって明らかであるだろう。明細書および図示された実施の形態は、例示のみと見なされることを意図しており、発明の真の範囲および精神は、続く請求項によって示される。"