(57)【特許請求の範囲】
【請求項１】
集積回路内の電力を制御するための回路であって、
複数の回路ブロックと、
前記集積回路内で送信されるグローバル制御信号と、
複数の電力制御ブロックであって、各電力制御ブロックは、前記複数の回路ブロックのうちの対応する回路ブロックに結合され、基準電圧を受信するように結合された第１の入力および制御信号を受信するように結合された第２の入力を有するパワーゲートを備える、複数の電力制御ブロックと
を備え、
各電力制御ブロックが、前記グローバル制御信号を受信するように結合された第１の入力、ユーザ制御信号を受信するように結合された第２の入力、および、静的な制御信号を受信するように結合された第３の入力を有する選択回路をさらに備え、前記選択回路が電力制御信号に応答して前記制御信号として、前記グローバル制御信号、前記ユーザ制御信号、又は、前記静的な制御信号を選択し、
前記複数の回路ブロックの各回路ブロックについて、対応する電力制御ブロックの静的な制御信号は、回路ブロックを静的動作モードにおいてオン又はオフにすることができるように選択可能であり、
前記グローバル制御信号が、各回路ブロックに対して、前記パワーゲートを経由して前記対応する回路ブロックの第１の入力への前記基準電圧の結合を可能にし、
前記選択回路が、各電力制御ブロックごとに、前記グローバル制御信号を無効にするために、前記対応する電力制御ブロックに対する前記電力制御信号に基づいて、前記対応する回路ブロックのための前記静的な制御信号の選択を可能にする、回路。
【請求項２】
前記複数の回路ブロックの入力への前記グローバル制御信号の前記結合における可変の遅延が、前記複数の回路ブロックのスタガ起動を可能にする、請求項１に記載の回路。
【請求項３】
各パワーゲートが、前記制御信号を受信するように結合された制御端子を有するスイッチを備え、
前記スイッチが、前記対応する回路ブロックへの前記基準電圧の前記結合を可能にする、請求項１または請求項２に記載の回路。
【請求項４】
前記ユーザ制御信号がユーザ生成信号を含む、請求項１に記載の回路。
【請求項５】
各電力制御ブロックが、起動段階中に前記複数の回路ブロックへの前記基準電圧の前記結合を可能にするためのイネーブル信号を受信するようにさらに結合される、請求項１から４のいずれか一項に記載の回路。
【請求項６】
集積回路内の電力を制御する方法であって、
複数の回路ブロックを提供することと、
前記集積回路内でグローバル制御信号を送信することと、
前記複数の回路ブロックの各回路ブロックを複数の電力制御ブロックのうちの対応する電力制御ブロックに結合することであって、各電力制御ブロックがパワーゲートを備える、結合することと、
前記複数の回路ブロックの各電力制御ブロックに対して、基準電圧を前記電力制御ブロックの前記パワーゲートの第１の入力に結合することと、
各電力制御ブロックに対して、制御信号を前記電力制御ブロックの前記パワーゲートの第２の入力に結合することと、
前記制御信号に応答して、前記複数の回路ブロックの各回路ブロックに対して、前記パワーゲートを経由して前記基準電圧を対応する回路ブロックに結合することと、
各電力制御ブロックに対して、前記グローバル制御信号を受信するように結合された第１の入力、ユーザ制御信号を受信するように結合された第２の入力、および、静的な制御信号を受信するように結合された第３の入力を有する選択回路を実装することであって、前記複数の回路ブロックの各回路ブロックについて、対応する電力制御ブロックの前記静的な制御信号は、前記回路ブロックを静的動作モードにおいてオン又はオフにすることができるように選択可能である、実装することと、
第１の電力制御信号に応答して前記対応する回路ブロックについての前記グローバル制御信号を無効にするために、前記選択回路により、各電力制御ブロックごとに、前記対応する回路ブロックのための前記静的な制御信号の選択を可能にすることと
を含む方法。
【請求項７】
前記対応する回路ブロックへの前記基準電圧の前記結合が、前記複数の回路ブロックのスタガ起動を提供することを含む、請求項６に記載の方法。
【請求項８】
各電力制御ブロックに対して、前記制御信号をスイッチの制御端子に結合することをさらに含み、前記制御信号が前記対応する回路ブロックへの前記基準電圧の前記結合を可能にする、請求項６または請求項７に記載の方法。
【請求項９】
前記選択回路を実装することが、ユーザ生成信号を前記第３の入力に結合することを含む、請求項６から８のいずれか一項に記載の方法。
【請求項１０】
各電力制御ブロックに対して、起動段階中に前記基準電圧の前記結合を可能にするためのイネーブル信号を結合することをさらに含む、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、集積回路装置、ならびに、特に集積回路装置内の電力を制御するための回路およびその方法に関する。
【背景技術】
【０００２】
電力制御および電力低減は、プログラマブルロジックデバイス（ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）または特定用途向け集積回路（ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの集積回路装置を実装するに当たっての重要な側面である。フロアプランが複数のパワードメインに分割され、個々の電力制御信号が各ドメインに提供される集積回路においては、動的なパワーゲーティング制御が実装され得る。個々のパワードメインは、電力制御信号をアサートすることによってオフ／オンが切り替られ得る。しかしながら、パワーゲーティング制御信号がロバストなパワーゲーティングソリューションを提供するには、様々な設計上の制約が満たされる必要がある。例えば、供給バウンスおよび突入電流は、パワードメインのスリープおよびウェイクアップシーケンスにおいて制御されなければならない。
【０００３】
グローバルパワーゲーティングの用途の例は、ＰＬＤなどの集積回路内の冗長ラインカードである。冗長ラインカードは外部割込みに応答して機能するようになるため、ファブリック全体が、明確に定義された突入電流および供給バウンスでウェイクアップする必要がある。そのためには、ユーザ設計内に専用のスタガされた制御信号が必要であり、それが設計内のファブリック／ロジックの組を起動する。しかしながら、専用のスタガパワーゲーティング信号を分配する電力スリープ制御（ＰＳＣ：Ｐｏｗｅｒ  Ｓｌｅｅｐ  Ｃｏｎｔｒｏｌ）という従来のソリューションは、この信号を送信し、かつ制御信号をスタガするための専用のバッファを有する必要があることから、高コストである。
【発明の概要】
【０００４】
集積回路内の電力を制御するための回路が説明される。本回路は、複数の回路ブロックと、集積回路内で送信されるグローバル制御信号と、複数の電力制御ブロックとを備える。各電力制御ブロックは、複数の回路ブロックのうちの対応する回路ブロックに結合され、基準電圧を受信するように結合された第１の入力およびグローバル制御信号を受信するように結合された第２の入力を有する。グローバル制御信号は、各回路ブロックに対して、対応する回路ブロックの第１の入力への基準電圧の結合を可能にする。
【０００５】
別の実装に従って、集積回路内の電力を制御するための回路は、複数の回路ブロックと、集積回路内で送信されるグローバル制御信号を含む複数の制御信号と、複数の電力制御ブロックとを備える。各電力制御ブロックは、複数の回路ブロックのうちの対応する回路ブロックに結合され、グローバル制御信号を受信するように結合された第１の入力および複数の制御信号のうちの第２の制御信号を受信するように結合された第２の入力を有する選択回路を有する。グローバル制御信号が電力制御ブロックの選択回路によって選択されるとき、複数の回路ブロックへの基準電圧の送信における可変の遅延が、複数の回路ブロックのスタガ起動を可能にする。
【０００６】
集積回路内の電力を制御する方法も説明される。本方法は、複数の回路ブロックを提供することと、集積回路内でグローバル制御信号を送信することと、複数の回路ブロックの各回路ブロックを複数の電力制御ブロックのうちの対応する電力制御ブロックに結合することと、複数の回路ブロックの各電力制御ブロックに対して、基準電圧を電力制御ブロックの第１の入力に結合することと、各電力制御ブロックに対して、グローバル制御信号を電力制御ブロックの第２の入力に結合することと、複数の回路ブロックの各回路ブロックに対して、グローバル制御信号に応答して基準電圧を対応する回路ブロックに結合することとを含む。
【図面の簡単な説明】
【０００７】
【図１】電力を制御するための回路を有する集積回路装置のブロック図である。
【図２】グローバル制御信号を受信する図１のプログラマブルリソースの一部分のブロック図である。
【図３】複数の制御信号を受信する図１のプログラマブルリソースの一部分のブロック図である。
【図４】複数の制御信号および静的制御モード信号を受信する図１のプログラマブルリソースの一部分のブロック図である。
【図５】集積回路の構成可能な論理素子と共に使用され得る電力制御ブロックのブロック図である。
【図６】例示的な電力制御ブロックの様々な動作モードと関連付けられた信号値を示す表である。
【図７】静的モードにある電力制御ブロックの動作を示すタイミング図である。
【図８】ユーザ制御モードにある電力制御ブロックの動作を示すタイミング図である。
【図９】グローバル制御モードにある電力制御ブロックの動作を示すタイミング図である。
【図１０】プログラマブルリソースを有する装置をプログラムするためのシステムのブロック図である。
【図１１】図１〜５の回路を実装し得るプログラマブルリソースを有する装置のブロック図である。
【図１２】図１〜５および図１１の装置の構成可能な論理素子のブロック図である。
【図１３】集積回路内の電力を制御する方法を示すフローチャートである。
【発明を実施するための形態】
【０００８】
本明細書は、新規と見なされる本発明の１つまたは複数の実装の特徴を定義する特許請求項を含むが、本回路および方法は、図面と併せて説明を検討することからより良好に理解されるものと考えられる。様々な回路および方法が開示されるが、本回路および方法は単に、様々な形態で具現され得る発明の配置の例にすぎないことが理解される。したがって、本明細書内に開示される特定の構造的および機能的詳細は、限定するものとして解釈されるべきではなく、単に特許請求項の基盤として、および適切に詳細説明された事実上いかなる構造においても発明の配置を様々に用いることを当業者に教示するための代表的な基盤として解釈されるべきである。さらに、本明細書内で使用される用語および表現は、限定することを意図せず、むしろ本回路および方法の理解可能な説明を提供することを意図する。
【０００９】
以下に明記される回路および方法は、既存のグローバル制御信号のパワーゲーティング制御としての再利用を可能にする電力スリープ制御（ＰＳＣ）アーキテクチャと、ウェイクアップ−スリープノイズを制御するためのグローバル制御信号内に構築された固有のスタガリングの使用と、共通信号がパワーゲーティングまたは通常機能として使用されることを可能にするために多重化の最後のレベルを実装することと、明確に定義された起動／停止シーケンスを有する低コストＰＳＣアーキテクチャと、ユーザ設計によって制御されるパワーゲーティングを提供するユーザ制御モードを含む、動作の様々なモードとを説明する。本明細書に開示される回路および方法は、ＦＰＧＡ内のＰＳＣアーキテクチャのための特定の用途を見出すが、それらは他の集積回路にも適用され得る。それらは、既存のグローバル制御信号を使用して、明確に定義されたウェイクアップおよびスリーププロトコルを集積回路内で実施する。これらの回路および方法の利点は、ウェイクアップおよびスリープ中に突入電流および供給バウンスを制御するために、既存のグローバル制御信号をその固有のスタガ分配機序と共に活用することにある。本回路および方法は、以下に明記されるように、柔軟なパワーゲーティングドメインのために他の制御モードも支援し得る。
【００１０】
例えば、集積回路内の電力を制御するための回路は、集積回路内で送信されるグローバル制御信号と、複数の電力制御ブロックとを備えることができ、各電力制御ブロックは、複数の回路ブロックのうちの対応する回路ブロックに結合され、かつ基準電圧を受信するように結合された第１の入力およびグローバル制御信号を受信するように結合された第２の入力を有し、グローバル制御信号は、各回路ブロックに対して、対応する回路ブロックへの基準電圧の結合を可能にする。グローバル制御信号は、集積回路全体にわたって送信され、かつ異なる時間に異なる回路ブロックに達することから、グローバル制御信号は、回路ブロックのスタガ起動を可能にする。
【００１１】
まず図１を見ると、電力を制御するための回路を有する集積回路装置のブロック図が示される。具体的には、入力／出力ポート１０２が、構成メモリ１０８を有するプログラマブルリソース１０６を制御する制御回路１０４に結合される。図１０〜１２を参照して以下により詳細に説明される構成データは、構成制御装置１１０によって構成メモリ１０８に提供され得る。構成データは、図１２を参照してより詳細に説明される構成可能な素子１０９の動作を可能にする。ＣＬＥは以下に詳細に示され、かつ説明されるが、スタガ起動を可能にするためのグローバル制御信号の使用は、いかなる種類の集積回路にも適用され得、ＣＬＥ以外の回路ブロックのスタガ起動を可能にし得ることを理解されたい。例えば不揮発性メモリであり得る別個のメモリ１１２が、制御回路１０４およびプログラマブルリソース１０６に結合され得る。別の回路１１４が、制御回路１０４およびメモリ１１２に結合され得、Ｉ／Ｏポート１１６を経由して集積回路装置の外部へ信号を伝達し得る。示されるように制御回路１０４に結合されるＩ／Ｏポート１１８など、他のＩ／Ｏポートが集積回路装置の回路に結合され得る。
【００１２】
ここで図２を見ると、グローバル制御信号（「グローバル」）を受信するプログラマブルリソース１０６の一部分のブロック図が示される。図２の回路は複数のＣＬＥ１０９を備え、それぞれが、ここでは電力基準電圧ＶＤＤとして示される基準電圧を基準電圧入力２０３で受信する対応する電力制御ブロック２０２に結合される。電力制御ブロック２０２のそれぞれは、示されるように同じ基準電圧を受信するが、電力制御ブロックのすべてが同じ基準電圧に結合される必要はなく、いくつかの電力制御ブロックは、複数の基準電圧に結合されることさえあり得ることを理解されたい。各電力制御ブロック２０２はまた、ここではグローバル制御信号として示される電力制御信号を受信するように結合された電力制御入力２０４を含む。出力２０６が、信号ライン２０８によってＣＬＥの入力２１０に結合される。グローバル制御信号は、集積回路装置の異なる領域に物理的に位置するＣＬＥまで異なる距離を移動するため、ＣＬＥの起動がスタガされる。すなわち、図２の回路配置は、グローバル制御信号のＣＬＥまでの送信経路における遅延を活かして、ＣＬＥのスタガ起動または停止を可能にする。
【００１３】
ここで図３を見ると、複数の制御信号を受信するプログラマブルリソース１０６の一部分のブロック図が示される。図３の例に従って、グローバル制御信号に加えて、例えばＣＬＥの回路によって生成され得るユーザ制御信号などのユーザ生成信号が提供される。すなわち、ユーザ制御信号が、ここではマルチプレクサ回路として示される選択回路３０２に第１の入力３０４において提供される一方、グローバル制御信号は、選択回路３０２の第２の入力３０６に提供される。制御信号３１０は、以下に説明されるように構成メモリ内に記憶される構成ビットであり得、制御端子３１２を経由して出力３１４でユーザ制御信号またはグローバル制御信号を選択することを可能にする。
【００１４】
ここで図４を見ると、複数の制御信号および静的制御モード信号を受信するプログラマブルリソースの一部分のブロック図が示される。すなわち、集積回路の回路によって生成されるユーザ制御信号を含む異なるユーザ生成信号、または集積回路のメモリ素子によって生成される静的な制御信号が実装され得る。図４の実装に従って、静的な制御信号を含む複数の制御信号は、図５を参照して詳細に説明される電力制御ブロック４０２に結合される。より具体的には、グローバル制御信号は第１の入力４０４に結合され、ユーザ制御信号は第２の入力４０６に結合され、第１のイネーブル信号（イネーブル１）は第３の入力４０８に結合され、第２のイネーブル信号（イネーブル２）は第４の入力４１０に結合される。静的な信号はまた、第５の入力４１２に結合され得、構成メモリ内に記憶された構成ビット４１３と関連付けられた別のユーザ生成信号を含み得る。電力制御ブロックの入力４１４は、信号ライン４１８を経由して入力４１６に結合される。複数の制御信号の選択および実装を可能にするための回路は、図５〜９を参照して以下に示され、かつ説明される。
【００１５】
ここで図５を見ると、集積回路の構成可能な論理素子と共に使用され得る電力制御ブロックのブロック図が示される。具体的には、電力制御ブロック４０２は、複数の入力５０３を有し、かつ第１および第２の電力制御信号ＭＣ＿Ｓ０およびＭＣ＿Ｓ１を対応する入力５０４および５０５において受信する選択回路５０２を備える。選択回路５０２の出力５０６は、ＮＯＲゲート５０８の第１の入力５０７に結合される。ＮＯＲゲートの第２の入力５０９は、イネーブル１信号を受信するように結合される。
【００１６】
選択回路５０２は、複数の電力制御信号のうちの１つに結合される第１、第２、および第３の入力５１０〜５１４を備える。具体的には、ラッチ５１６は、データ入力である第１の入力５１８においてグローバル制御信号を、および制御入力である第２の入力５２０においてイネーブル２信号を受信するように結合される。ラッチ５１６は、第２の入力５２０でのロジック低制御信号入力でトリガされる。ラッチ５１６の出力５２１は、第１の入力５１０に結合される。ユーザ制御信号が、選択回路５０２の第２の入力５１２に結合される一方、静的な制御信号（ＭＣ＿Ｓ）（ここでは構成ビット５２２として示される）は、選択回路５０２の入力５１４に結合される。ユーザ制御信号は、集積回路の別のＣＬＥなどの回路によって生成され得るが、静的な制御信号は、例えば構成メモリ内に記憶された構成ビットなどのメモリ素子によって生成され得る。
【００１７】
ＮＯＲゲート５０８の出力５２３は、ここではｐチャネルトランジスタとして示されるパワーゲート５２４に結合される。すなわち、ＮＯＲゲート５０８の出力５２３がゲート５２６に結合される一方、ドレイン５２８（ＣＬＥ１０９に結合される）は、ソース５３０からＣＬＥ１０９へ仮想電力信号（仮想ＶＤＤ）を提供する。基準電圧ＶＤＤは、パワーゲート５２４の入力５３２においてソース５３０に結合され、ここで、選択された制御信号は、スイッチとして機能するパワーゲートがＣＬＥのための仮想電力信号ＶＤＤを生成するために基準電圧を送信することを可能にする。パワーゲート５２４は、例えば、電力制御ブロック２０２内に実装され得ることに留意されたい。
【００１８】
パワードメインのための例示的なＰＳＣアーキテクチャは、図６の表に示されるように、ユーザ制御モード、静的モード、およびグローバル制御モードを含む３つの制御モードを有するように定義され、ここでＸは「ドントケア」値に指定される。静的モードでは、パワーゲート５２４の状態は、メモリ制御ビットＭＣ＿Ｓによって定義され、ここでＭＣ＿Ｓ＝０のときパワードメインはオフであり、ＭＣ＿Ｓ＝１のときパワードメインはオンである。メモリ制御ビットＭＣ＿Ｓは、以下により詳細に説明されるように、構成ビットとしてダウンロードされ得る。したがって、静的モードでは、ゲートパワーは、未使用のＣＬＥを停止するか、または特定のＣＬＥをそれが常にオンであるようにプログラムするために使用される。図６に示されるように、イネーブル１は、ＮＯＲゲート５０８が選択回路５０２の出力に従うことを可能にするために論理ゼロであり、ＭＣ＿Ｓ０およびＭＣ＿Ｓ１は、静的な制御信号を選択するために「００」である。すなわち、メモリ素子５２２によって提供された静的な制御信号が論理ゼロである（かつイネーブル１も論理ゼロである）とき、ＮＯＲゲート５０８の出力が高くなって、パワーゲート５２４をオフにする一方で、論理１を有する静的な制御信号は、パワーゲート５２４をオンにする。
【００１９】
図７のタイミング図に示されるように、最初に時間ｔ０に電力信号ＶＤＤが印加され、時間ｔ１にフルパワーに達した後、ＭＣ＿Ｓ０およびＭＣ＿Ｓ１が静的モードにおいて論理ゼロである最初の構成ビットストリームが書き出される。イネーブル１が最初に高（すなわち、論理１）であるため、およびイネーブル２の状態とは無関係に、仮想ＶＤＤは高であり、かつＣＬＥのためのパワードメインはオンにされている。回路は静的モードにある。イネーブル１またはイネーブル２のうち立ち下がりが遅い方が、時間ｔ２に、任意のグローバル制御またはＭＣ制御を無効にする。次いで仮想ＶＤＤは、時間ｔ３におけるＭＣ＿Ｓの値に従って、低下するか、または高に留まって、ＣＬＥを遮断静的モード／常時オンモードにする。
【００２０】
ユーザ制御モードでは、パワーゲート５２４の状態は、ユーザ制御信号によって定義され、ここでＭＣ＿Ｓ０およびＭＣ＿Ｓ１は「０１」であり、かつイネーブル１信号は、パワーゲート５２４に結合された電力制御信号がユーザ制御信号に従うことを可能にするために論理ゼロである。すなわち、ユーザ制御モードでは、ユーザは、大きなスイッチング領域のスリープ／ウェイクアップのための制御信号のスタガリングを確実にし、かつカスタムパワードメインの実装を考慮に入れなければならない。図８のタイミング図に示されるように、ステートマシン出力（例えば、集積回路の回路のレジスタ出力）が、パワーゲート５２４のデフォルト起動状態を駆動する。したがって、パワーゲート５２４のデフォルト起動状態を提供するレジスタの正確なリセット値は、プログラミングシーケンス中にロードされる。時間ｔ２における「ｇｒｅｓｔｏｒｅ」アサーションは、任意のビットプログラミングシーケンス内で発生し、ユーザがレジスタを所望の通りにデフォルト起動状態として初期化することを可能にする。
【００２１】
最後に、グローバル制御モードでは、ＣＬＥの電力制御は、著しい突入電流を回避するためにスタガスリープ／ウェイクアップシーケンス内に実装されたグローバル制御信号によって制御される。図９のタイミング図は、機能シーケンス中のある時間においてはパワーゲーティングのために、そして後の時間においては他の機能のために同じグローバル制御信号を使用することを図示している。同じグローバル制御信号によって制御される仮想ＶＤＤは、所望の通りにオンまたはオフにされ得る。イネーブル１またはイネーブル２のうち遅い方の立ち下がりの後、時間ｔ２に、グローバル制御信号はアクティブであり、パワードメインは、グローバル制御信号の状態によって、オンのままであるか、または時間ｔ３にオフになる。イネーブル２が高くなる時間ｔ４に、仮想ＶＤＤは、グローバル制御信号の前の値がパワーゲーティングの目的のために捕捉されるため、その前の（すなわち、電気的に高い）状態に留まる。時間ｔ４およびｔ５間のグローバル制御信号の遷移は、パワーゲーティングによって無視される。グローバル制御信号が時間ｔ５に再び高くなると、アクティブグローバル制御信号は、パワードメイン制御のために再び捕捉される。グローバルを使用した別のシステムは、ｔ４およびｔ５間のグローバルな任意の遷移に応答し得る。グローバル制御は、時間ｔ５に他の機能から解放され、パワーゲーティング回路は、この時にグローバル制御信号における遷移に応答するようになる。
【００２２】
例示的な回路においては、明確に定義された起動、および他のタスクのための共有制御を使用することを考慮に入れるために、ＰＳＣの２つの追加の機能状態が存在する。第１の追加状態は、「起動」状態であり、ここではＰＳＣ動作が、機能モードのいずれかがアクティブになる前にデフォルト起動状態を定義しなければならない。示されるＰＳＣ動作は、常にオンとして起動されるように、そして、例えば、パワーオンリセット（ＰＯＲ）信号またはグローバルイネーブル（ｅｎ＿ｇｌｏｂ）信号などの既存の信号であり得る既存のイネーブル１信号を使用して設計される。さらに、「ホールド」状態は、他の機能のためにグローバル制御信号を共有することを可能にする。グローバル制御の現在の状態は、他の制御モードを伝えるイネーブル２制御信号に基づいて捕捉される。例えば、グローバルパワーゲーティング制御として使用される「ｇｈｉｇｈ」信号は、部分再構成における再編成にも使用され得る。部分再構成の開始時（イネーブル２信号として「ｇｗｅ＿ｂ」によりアサートされる）、パワーゲーティング領域は、イネーブル２信号によって伝えられるように、制御が部分再構成によって解放されるまで現在の状態を保持する。
【００２３】
ここで図１０を見ると、プログラマブルリソースを有する装置をプログラムするためのシステムのブロック図が示される。具体的には、コンピュータ１００２は、メモリ１００６から回路設計１００４を受信するように結合され、不揮発性メモリ１００６内に記憶される構成ビットストリームを生成する。以下により詳細に説明されるように、回路設計は、ハードウェア記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で定義される回路設計など、高水準設計であり得る。また、コンピュータは、不揮発性メモリ１００８内に記憶され、かつ図１１において以下に説明される集積回路などのプログラム可能な集積回路であり得る集積回路９１０に提供される構成ビットストリームを生成するソフトウェアを実行するように構成され得る。以下により詳細に説明されるように、構成ビットストリームのビットは、集積回路のプログラマブルリソースを構成するために使用される。
【００２４】
ここで図１１を見ると、図１〜５の回路を含むプログラマブルリソースを有する装置のブロック図が示される。プログラマブルリソースを有する装置は、プログラマブルリソースを有する特定用途向け集積回路（ＡＳＩＣ）など、いかなる種類の集積回路装置にも実装され得るが、他の装置は、専用のプログラマブルロジックデバイス（ＰＬＤ）を備える。ＰＬＤの一種は、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ：Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）である。ＣＰＬＤは、相互接続スイッチマトリックスによって、互いおよび入力／出力（Ｉ／Ｏ）源に接続された２つ以上の「機能ブロック」を含む。ＣＰＬＤの各機能ブロックは、プログラマブルロジックアレイ（ＰＬＡ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）またはプログラマブルアレイロジック（ＰＡＬ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｒａｙ  Ｌｏｇｉｃ）デバイスに使用されるものに類似した２レベルのＡＮＤ／ＯＲ構造を含む。別の種類のＰＬＤは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。典型的なＦＰＧＡでは、構成可能な論理ブロック（ＣＬＢ：Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｌｏｇｉｃ  Ｂｌｏｃｋ）のアレイは、プログラム可能な入力／出力ブロック（ｌＯＢ）に結合される。ＣＬＢおよびｌＯＢは、プログラム可能な送信リソースの階層によって相互接続される。これらのＣＬＢ、ｌＯＢ、およびプログラム可能な送信リソースは、構成ビットストリームを、典型的にはオフチップメモリからＦＰＧＡの構成メモリセルにロードすることによってカスタマイズされる。これらの種類のプログラマブルロジックデバイスの両方とも、装置の機能性は、その目的のために装置に提供される構成ビットストリームの構成データビットによって制御される。構成データビットは、揮発性メモリ（例えば、ＦＰＧＡおよびいくつかのＣＰＬＤに見られるような静的メモリセル）、不揮発性メモリ（例えば、いくつかのＣＰＬＤに見られるようなフラッシュメモリ）、または任意の他の種類のメモリセル内に記憶され得る。
【００２５】
図１１の装置は、マルチギガビットトランシーバ（ＭＧＴ）１１０１、ＣＬＢ１１０２、ランダムアクセスメモリブロック（ＢＲＡＭ）１１０３、入力／出力ブロック（ｌＯＢ）１１０４、構成およびクロック論理（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ）１１０５、デジタル信号処理ブロック（ＤＳＰ）１１０６、特殊入力／出力ブロック（Ｉ／Ｏ）１１０７（例えば、構成ポートおよびクロックポート）、ならびにデジタルクロックマネージャ、アナログ−デジタル変換器、システム監視論理などの他のプログラマブル論理１１０８を含む、多数の異なるプログラマブルタイルを有するＦＰＧＡアーキテクチャ１１００を備える。いくつかのＦＰＧＡは、例えば、ソフトウェアアプリケーションを実装するために使用され得る専用のプロセッサブロック（ＰＲＯＣ）１１１０も含む。
【００２６】
いくつかのＦＰＧＡにおいて、各プログラマブルタイルは、各隣接タイル内の対応する相互接続素子間の標準化された接続を有するプログラム可能な相互接続素子（ＩＮＴ）１１１１を含む。したがって、プログラム可能な相互接続素子が一緒になって、図示されるＦＰＧＡのためのプログラム可能な相互接続構造を実装する。プログラム可能な相互接続素子１１１１は、図１１の上部に含まれる例によって示されるように、同じタイル内のプログラム可能な論理素子間の接続も含む。
【００２７】
例えば、ＣＬＢ１１０２は、ユーザ論理を実装するようにプログラムされ得る構成可能な論理素子（ＣＬＥ）１１１２、さらに単一のプログラム可能な相互接続素子１１１１を含み得る。ＢＲＡＭ１１０３は、１つまたは複数のプログラム可能な相互接続素子に加えて、ＢＲＡＭ論理素子（ＢＲＬ）１１１３を含み得る。ＢＲＡＭは、構成論理ブロックの分散ＲＡＭとは別の専用のメモリを含む。典型的には、タイルに含まれる相互接続素子の数は、タイルの高さに依存する。描かれた例では、ＢＲＡＭタイルは、５つのＣＬＢと同じ高さを有するが、他の数も使用され得る。ＤＳＰタイル１１０６は、適切な数のプログラム可能な相互接続素子に加えて、ＤＳＰ論理素子（ＤＳＰＬ）１１１４を含み得る。ＩＯＢ１１０４は、例えば、プログラム可能な相互接続素子１１１１の１つのインスタンスに加えて、入力／出力論理素子（ＩＯＬ）１１１５の２つのインスタンスを含み得る。装置の接続の場所は、その目的のために装置に提供される構成ビットストリームの構成データビットによって制御される。プログラム可能な相互接続は、構成ビットストリームのビットに応答して、プログラム可能な論理に実装される回路、またはＢＲＡＭもしくはプロセッサなどの他の回路に様々な信号を結合するために使用されることになる相互接続ラインを含む接続を可能にする。
【００２８】
描かれた例において、ダイの中心に近いカラム区域は、構成、クロック、および他の制御論理のために使用される。このカラムから延在する構成／クロック分配領域１１０９は、クロックおよび構成信号をＦＰＧＡの幅にわたって分配するために使用される。図１１に図示されるアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構成する規則的なカラム構造を分断する追加の論理ブロックを含む。追加の論理ブロックは、プログラム可能なブロックおよび／または専用の論理であり得る。例えば、図１１に示されるプロセッサブロックＰＲＯＣ１１１０は、ＣＬＢおよびＢＲＡＭのいくつかのカラムに及ぶ。
【００２９】
図１１は、例示的なＦＰＧＡアーキテクチャを図示することのみが意図されることに留意されたい。カラム内の論理ブロックの数、カラムの相対幅、カラムの数および順序、カラム内に含まれる論理ブロックの種類、論理ブロックの相対サイズ、ならびに図１１の上部に含まれる相互接続／論理実装は、全くの例示である。例えば、実際のＦＰＧＡにおいては、ユーザ論理の効率的な実装を促進するために、典型的には、ＣＬＢの２つ以上の隣接カラムが、ＣＬＢが現れる場所には必ず含まれる。図１１の例はプログラマブルリソースを有する集積回路に関するが、以下により詳細に明記される回路および方法は、ＡＳＩＣなどの任意の種類の集積回路に実装され得ることを理解されたい。
【００３０】
ここで図１２を見ると、図１１の装置の構成可能な論理素子のブロック図が示される。具体的には、図１２は、図１１の構成論理ブロック１１０２の構成可能な論理素子を簡略化した形態で図示している。図１２の例では、スライスＭ１２０１は、４つのルックアップテーブル（ＬＵＴ）１２０１Ａ〜１２０１Ｄを含み、それぞれが６つのＬＵＴデータ入力端子Ａ１〜Ａ６、Ｂ１〜Ｂ６、Ｃ１〜Ｃ６、およびＤ１〜Ｄ６によって駆動され、かつそれぞれが２つのＬＵＴ出力信号Ｏ５およびＯ６を提供する。ＬＵＴ１２０１Ａ〜１２０１ＤからのＯ６出力端子は、それぞれスライス出力端子Ａ〜Ｄを駆動する。ＬＵＴデータ入力信号は、プログラム可能な相互接続素子１２１１によって実装され得る入力マルチプレクサを介したＦＰＧＡ相互接続構造によって供給され、またＬＵＴ出力信号も相互接続構造に供給される。スライスＭはまた、出力端子ＡＭＵＸ〜ＤＭＵＸを駆動する出力選択マルチプレクサ１２１１Ａ〜１２１１Ｄと、メモリ素子１２０２Ａ〜１２０２Ｄのデータ入力端子を駆動するマルチプレクサ１２１２Ａ〜１２１２Ｄと、組み合わせマルチプレクサ１２１６、１２１８、および１２１９と、バウンスマルチプレクサ回路１２２２〜１２２３と、インバータ１２０５およびマルチプレクサ１２０６（入力クロックパスに任意的な反転を一緒に提供する）で表される回路と、マルチプレクサ１２１４Ａ〜１２１４Ｄ、１２１５Ａ〜１２１５Ｄ、１２２０〜１２２１、および排他的論理和ゲート１２１３Ａ〜１２１３Ｄを有する桁上げ論理とを含む。これらの素子のすべては、図１２に示されるように一緒に結合される。選択入力は図１２に図示されるマルチプレクサでは示されないが、選択入力は構成メモリセルによって制御される。すなわち、構成メモリセル内に記憶された構成ビットストリームの構成ビットは、マルチプレクサへの正しい入力を選択するために、マルチプレクサの選択入力に結合される。周知であるこれらの構成メモリセルは、図を見やすくするために、図１２ならびに本明細書内の他の選択された図からは省略されている。
【００３１】
描かれた例において、各メモリ素子１２０２Ａ〜１２０２Ｄは、同期式または非同期式のフリップフロップまたはラッチとして機能するようにプログラムされ得る。同期式の機能と非同期式の機能間の選択は、同期／非同期選択回路１２０３をプログラムすることによって、スライス内の４つすべてのメモリ素子に対して行われる。Ｓ／Ｒ（セット／リセット）入力信号がセット機能を提供するようにメモリ素子がプログラムされるとき、ＲＥＶ入力端子はリセット機能を提供する。Ｓ／Ｒ入力信号がリセット機能を提供するようにメモリ素子がプログラムされるとき、ＲＥＶ入力端子はセット機能を提供する。メモリ素子１２０２Ａ〜１２０２Ｄは、例えば、グローバルクロックネットワークまたは相互接続構造によって提供され得るクロック信号ＣＫによってクロックされる。そのようなプログラム可能なメモリ素子は、ＦＰＧＡ設計の技術において周知である。各メモリ素子１２０２Ａ〜１２０２Ｄは、登録された出力信号ＡＱ〜ＤＱを相互接続構造に提供する。各ＬＵＴ１２０１Ａ〜１２０１Ｄが２つの出力信号、Ｏ５およびＯ６を提供することから、ＬＵＴは、５つの共有入力信号（ＩＮ１〜ＩＮ５）を有する２つの５入力ＬＵＴとして、または入力信号ＩＮ１〜ＩＮ６を有する１つの６入力ＬＵＴとして機能するように構成され得る。
【００３２】
図１２の例では、各ＬＵＴ１２０１Ａ〜１２０１Ｄは、いくつかのモードのうちのいずれかで機能し得る。ルックアップテーブルモードにあるとき、各ＬＵＴは、入力マルチプレクサを介してＦＰＧＡ相互接続構造によって供給される６つのデータ入力信号ＩＮ１〜ＩＮ６を有する。６４個のデータ値のうちの１つは、信号ＩＮ１〜ＩＮ６の値に基づいて構成メモリセルからプログラム可能に選択される。ＲＡＭモードにあるとき、各ＬＵＴは、単一の６４ビットＲＡＭ、または共有アドレス指定で２つの３２ビットＲＡＭとして機能する。ＲＡＭ書き込みデータは、入力端子ＤＩ１を介して（ＬＵＴ１２０１Ａ〜１２０１Ｃではマルチプレクサ１２１７Ａ〜１２１７Ｃを介して）６４ビットＲＡＭに、または入力端子ＤＩ１およびＤＩ２を介して２つの３２ビットＲＡＭに供給される。ＬＵＴ  ＲＡＭ内のＲＡＭ書き込み動作は、マルチプレクサ１２０６からのクロック信号ＣＫによって、およびマルチプレクサ１２０７からの書き込みイネーブル信号ＷＥＮによって制御され、それらはクロックイネーブル信号ＣＥまたは書き込みイネーブル信号ＷＥのいずれかを選択的に通過し得る。シフトレジスタモードでは、各ＬＵＴは、２つの１６ビットシフトレジスタとして機能するか、または単一の３２ビットシフトレジスタを作成するために２つの１６ビットシフトレジスタが直列に結合される。シフトイン信号は、入力端子ＤＩ１およびＤＩ２のうちの１つまたは両方を介して提供される。１６ビットおよび３２ビットのシフトアウト信号は、ＬＵＴ出力端子によって提供され得、３２ビットのシフトアウト信号はまた、ＬＵＴ出力端子ＭＣ３１を介してより直接的に提供され得る。ＬＵＴ１２０１Ａの３２ビットのシフトアウト信号ＭＣ３１はまた、出力選択マルチプレクサ１２１１ＤおよびＣＬＥ出力端子ＤＭＵＸを介して、シフトレジスタチェインのための一般的な相互接続構造に提供され得る。したがって、上に明記された回路および方法は、図１２および１２の装置、または任意の他の好適な装置などの装置に実装され得る。
【００３３】
ここで図１３を見ると、フローチャートは、集積回路内の電力を制御する方法を示す。具体的には、それぞれが対応する電力制御ブロックに結合された複数の回路ブロックがブロック１３０２で提供される。ブロック１３０４で、グローバル制御信号が集積回路内に送信される。ブロック１３０６で、グローバル制御信号を含む複数の制御信号を受信するように結合された選択回路が、各電力制御ブロックについて実装される。ブロック１３０８で、基準電圧が、複数の回路ブロックの各電力制御ブロックについて、電力制御ブロックの第１の入力に結合される。ブロック１３１０で、選択された制御信号が、各電力制御ブロックについてスイッチの制御端子に結合され、この選択された制御信号が、基準電圧を回路ブロックに結合することを可能にする。複数の回路ブロックのスタガ起動は、グローバル制御信号がブロック１３１２で選択されるときに提供される。
【００３４】
図１３の方法の様々な要素は、説明されるような図１〜１２の回路を使用して、またはいくつかの他の好適な回路を使用して実装され得る。本方法の特定の要素が説明されるが、本方法の追加の要素、または要素に関する追加の詳細が図１〜１２の開示に従って実装され得ることを理解されたい。
【００３５】
集積回路内の電力を制御するための回路のいくつかの例が説明される。
【００３６】
例えば、集積回路内の電力を制御するための回路は、複数の回路ブロックと、集積回路内で送信されるグローバル制御信号と、複数の電力制御ブロックとを含み得、各電力制御ブロックが、複数の回路ブロックのうちの対応する回路ブロックに結合され、かつ基準電圧を受信するように結合された第１の入力およびグローバル制御信号を受信するように結合された第２の入力を有し、グローバル制御信号が、各回路ブロックに対して、対応する回路ブロックの第１の入力への基準電圧の結合を可能にする。
【００３７】
いくつかのそのような回路において、複数の回路ブロックの入力へのグローバル制御信号の結合における可変の遅延が、複数の回路ブロックのスタガ起動を可能にする。
【００３８】
いくつかのそのような回路において、各電力制御ブロックは、グローバル制御信号を受信するように結合された制御端子を有するスイッチを備え、このスイッチは、対応する回路ブロックへの基準電圧の結合を可能にする。いくつかのそのような回路において、各電力制御ブロックは、グローバル制御信号を受信するように結合された第１の入力および第２の制御信号を受信するように結合された第２の入力を有する選択回路をさらに備える。
【００３９】
いくつかのそのような回路において、第２の制御信号はユーザ生成信号を含む。
【００４０】
いくつかのそのような回路において、ユーザ生成信号は静的な制御信号を含む。
【００４１】
いくつかのそのような回路において、各電力制御ブロックは、起動段階中に複数の回路ブロックへの基準電圧の結合を可能にするためのイネーブル信号を受信するようにさらに結合される。
【００４２】
別の実装に従って、集積回路内の電力を制御するための別の例が提供され得る。そのような回路は、複数の回路ブロックと、集積回路内で送信されるグローバル制御信号を含む複数の制御信号と、複数の電力制御ブロックとを含み得、各電力制御ブロックが、複数の回路ブロックのうちの対応する回路ブロックに結合され、かつグローバル制御信号を受信するように結合された第１の入力および複数の制御信号のうちの第２の制御信号を受信するように結合された第２の入力を有する選択回路を有し、グローバル制御信号が電力制御ブロックの選択回路によって選択されるときに、複数の回路ブロックへの基準電圧の送信における可変の遅延が、複数の回路ブロックのスタガ起動を可能にする。
【００４３】
いくつかのそのような回路において、複数の回路ブロックは、構成可能な論理ブロックを備える。
【００４４】
いくつかのそのような回路において、各電力制御ブロックは、電力制御信号に結合された制御端子を有するスイッチを備え、
この電力制御信号が、回路ブロックへの基準電圧の結合を可能にする。
【００４５】
いくつかのそのような回路において、第２の制御信号はユーザ生成信号を含む。
【００４６】
いくつかのそのような回路において、ユーザ生成信号はユーザ制御信号を含む。
【００４７】
いくつかのそのような回路において、ユーザ生成信号は静的な制御信号を含む。
【００４８】
いくつかのそのような回路において、各電力制御ブロックは、複数の回路ブロックの起動中に基準電圧の結合を可能にするためのイネーブル信号を受信するようにさらに結合される。
【００４９】
別の実装において、集積回路内の電力を制御する方法が説明され得る。集積回路内の電力を制御するそのような方法は、複数の回路ブロックを提供することと、集積回路内でグローバル制御信号を送信することと、複数の回路ブロックの各回路ブロックを複数の電力制御ブロックのうちの対応する電力制御ブロックに結合することと、複数の回路ブロックの各電力制御ブロックに対して、基準電圧を電力制御ブロックの第１の入力に結合することと、各電力制御ブロックに対して、グローバル制御信号を電力制御ブロックの第２の入力に結合することと、複数の回路ブロックの各回路ブロックに対して、グローバル制御信号に応答して基準電圧を対応する回路ブロックに結合することとを含み得る。
【００５０】
いくつかのそのような方法において、対応する回路ブロックへの基準電圧の結合は、複数の回路ブロックのスタガ起動を提供することを含む。
【００５１】
いくつかのそのような方法は、各電力制御ブロックに対して、電力制御信号をスイッチの制御端子に結合することをさらに含み得、電力制御信号が、対応する回路ブロックへの基準電圧の結合を可能にする。
【００５２】
いくつかのそのような方法は、各電力制御ブロックに対して、グローバル制御信号を受信するように結合された第１の入力および第２の制御信号を受信するように結合された第２の入力を有する選択回路を実装することをさらに含み得る。
【００５３】
いくつかのそのような方法において、選択回路を実装することは、ユーザ生成信号を第２の入力に結合することを含む。
【００５４】
いくつかのそのような方法は、各電力制御ブロックに対して、起動段階中に基準電圧の結合を可能にするためのイネーブル信号を結合することをさらに含み得る。
【００５５】
故に、集積回路内の電力を制御するための新しい回路またはその方法が説明されてきたことが理解されよう。開示された発明を組み込む多数の代替物および等価物が存在するということは当業者によって理解されよう。結果として、本発明は先述の例によって制限されるものではなく、以下の特許請求項によってのみ制限されるものである。
【図１】
0006718442.tif 000002
【図２】
0006718442.tif 000003
【図３】
0006718442.tif 000004
【図４】
0006718442.tif 000005
【図５】
0006718442.tif 000006
【図６】
0006718442.tif 000007
【図７】
0006718442.tif 000008
【図８】
0006718442.tif 000009
【図９】
0006718442.tif 000010
【図１０】
0006718442.tif 000011
【図１１】
0006718442.tif 000012
【図１２】
0006718442.tif 000013
【図１３】
0006718442.tif 000014