(57)【特許請求の範囲】
【請求項１】
論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部と、
各前記論理ブロックの停止時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定手段と、
前記決定手段により決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御手段と、
を備えることを特徴とする論理ブロック制御システム。
【請求項２】
前記決定手段は、
前記プログラマブル論理回路部の動作時間が予め定められる開始時間を越えるまでは動作を停止させる論理ブロックの決定を行わずに前記論理ブロックの全てを動作させる論理ブロックに決定し、
前記動作時間が前記開始時間を超えると動作を停止させる論理ブロックの決定を開始する
ことを特徴とする請求項１記載の論理ブロック制御システム。
【請求項３】
動作を停止している前記論理ブロックから、動作を停止している前記論理ブロックの停止時間に基づく値が動作している全ての前記論理ブロックの停止時間に基づく値に対して予め定められた範囲に含まれていない論理ブロックを検出する検出手段をさらに備え、
前記制御手段は、前記検出手段により検出される動作を停止している前記論理ブロックを動作させることを特徴とする請求項１記載の論理ブロック制御システム。
【請求項４】
各前記論理ブロックに対応して、制御信号が第１論理状態のときにクロック信号を通過させ、前記制御信号が第２論理状態のときにはクロック信号の通過を遮断するクロックゲート手段をさらに備え、
前記制御手段は、前記決定手段により決定される前記論理ブロックに対応する前記クロックゲート手段に供給する前記制御信号を前記第２論理状態にすることによって当該論理ブロックの動作を停止させることを特徴とする請求項１記載の論理ブロック制御システム。
【請求項５】
各前記論理ブロックに対応して、制御信号が第１論理状態のときに前記論理ブロックを電源と電気的に接続し、前記制御信号が第２論理状態のときに当該論理ブロックを前記電源と電気的に遮断する電源遮断手段をさらに備え、
前記制御手段は、前記決定手段により決定される前記論理ブロックに対応する前記電源遮断手段に供給する前記制御信号を前記第２論理状態にすることによって当該論理ブロックの動作を停止させることを特徴とする請求項１記載の論理ブロック制御システム。
【請求項６】
論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部と、
各前記論理ブロックの動作時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定手段と、
前記決定手段により決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御手段と、
を備えることを特徴とする論理ブロック制御システム。
【請求項７】
論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部において、各前記論理ブロックの動作を制御する論理ブロック制御方法であって、
各前記論理ブロックの停止時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定ステップと、
前記決定ステップにより決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御ステップと、
を有することを特徴とする論理ブロック制御方法。
【請求項８】
論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部において、各前記論理ブロックの動作を制御する論理ブロック制御方法であって、
各前記論理ブロックの動作時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定ステップと、
前記決定ステップにより決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御ステップと、
を有することを特徴とする論理ブロック制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Field Programmable Gate Array）や再構成可能ロジック等のプログラムにより機能を変更することが可能なプログラマブル論理回路に関する。
【背景技術】
【０００２】
論理演算処理を行う論理ブロックを複数有し、各論理ブロック間の配線状態をプログラマブルにすることにより異なる回路動作を可能にするデバイスとして、ＦＰＧＡや再構成可能ロジック等のプログラマブル論理回路が知られている。
また、携帯端末のようなシステムに用いる回路での消費電力を抑える技術として、動作する必要がないフリップフロップ（以下、ＦＦという。）などへのクロック供給を止めるゲーディドクロック技術が知られている。また、回路での消費電力を抑える技術として、電源とモジュールとの間に配置されたスイッチを必要に応じてオフ状態にし、リーク電流を削減する技術（以下、電源遮断技術という。）が知られている。
【０００３】
そして、消費電力を抑えるゲーディドクロック技術や電源遮断技術をプログラマブル論理回路に適用することにより、低消費電力のプログラマブル論理回路を実現することができる（例えば、特許文献１参照。）。低消費電力のプログラマブル論理回路の実現の際に問題となるのがクロックスキューである。
ここで、クロックスキューについて説明する。
【０００４】
現在、ＬＳＩ（Large Scale Integration）設計において多く用いられている同期設計方式では、制御用のクロック信号が、例えば、状態を保持するレジスタに同じタイミングで印加される。実際のＬＳＩでは、クロック供給回路の構成の相違により、レジスタ間において、クロック発生源からレジスタまでの間でクロック信号に生じる遅延（以下、クロック遅延という。）に遅延差が発生することがある。この遅延差はクロックスキューと呼ばれる。一定以上のクロックスキューが発生すると、レジスタ間のデータの受け渡しに誤りが生じ、プログラマブル論理回路が動作不良を起こす。
【０００５】
さらに、クロックスキューによるプログラマブル論理回路の動作不良について図１２及び図１３を参照して説明する。図１２及び図１３はクロックスキューに起因するプログラマブル論理回路の動作不良を説明するための図である。なお、図１３（ａ）は、レジスタ１００１とレジスタ１００２との間で正常にデータの受け渡しが行われている場合を示しており、図１３（ｂ）はレジスタ１００１とレジスタ１００２との間で正常にデータの受け渡しが行えていない場合を示している。
【０００６】
図１２に示す回路例では、レジスタ１００１の出力データがレジスタ１００２に入力データとして入力される。レジスタ１００１、１００２には、夫々、クロック信号ＣＬＫ１、ＣＬＫ２が入力される。
クロック信号ＣＬＫ１が立ち上がってからクロック信号ＣＬＫ２が立ち上がるまでの時間（クロック信号ＣＬＫ１とクロック信号ＣＬＫ２との遅延差）をＴ１００１、Ｔ１０１１とする。また、クロック信号ＣＬＫ１が立ち上がってからレジスタ１００２の入力が変化するまでの時間をＴ１００２、Ｔ１０１２とする。
【０００７】
時間Ｔ１００１が時間Ｔ１００２より小さい図１３（ａ）の場合、区間Ｒ１０００で示すように、レジスタ１００２の入力が遷移する前にクロック信号ＣＬＫ２が立ち上がる。このため、レジスタ１００２がクロック信号ＣＬＫ２の立ち上がりで取り込むデータは、レジスタ間のデータの受け渡しが正常になされているときにレジスタ１００２が取り込むことになる、クロック信号ＣＬＫ１が立ち上がる前にレジスタ１００１が出力していたデータとなる。
【０００８】
時間Ｔ１０１１が時間Ｔ１０１２より大きい図１３（ｂ）の場合、区間Ｒ１０１０で示すように、レジスタ１００２の入力が遷移した後にクロック信号ＣＬＫ２が立ち上がる。このため、レジスタ１００２がクロック信号ＣＬＫ２の立ち上がりで取り込むデータは、クロック信号ＣＬＫ１の立ち上がりでレジスタ１００１が取り込んだデータとなる。このように、レジスタ１００１とレジスタ１００２との間のデータの受け渡しが正常に行われないことになる。
【０００９】
上述したとおり、一定以上のクロックスキューが発生する場合、レジスタ間のデータの受け渡しに誤りが生じる。このため、一般に、レジスタ間にクロックスキューを相殺する遅延素子を挿入し、クロックスキューに起因するレジスタ間のデータの受け渡しの誤りを回避する。
【特許文献１】特開２００３−１７４３５８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、プログラム論理回路はトランジスタを含む。特に、ＰチャネルＭＯＳトランジスタ（以下、ＰＭＯＳトランジスタという。）は、ＮＢＴＩ（Negative Bias Temperature Instability）やＨＣＩ（HotCarrier Injection）などによって、経時劣化することが知られている。例えば、ＮＢＴＩは、高温の条件下でＰＭＯＳトランジスタがオン状態のときにゲート絶縁膜とシリコン基板との界面に存在する水素が乖離して固定電荷が形成され、これによって閾値電圧が上昇し、ＰＭＯＳトランジスタの電流能力が低下する現象である。
【００１１】
トランジスタの経時劣化はクロックスキューの原因となり、これについて図１４及び図１５を用いて説明する。図１４及び図１５はトランジスタの経時劣化に起因するクロックスキューの発生を説明するための図である。
クロック信号ＣＬＫはデューティ比５０％のクロック信号であり、クロック信号ＣＬＫがゲート回路２０１０、２０２０に入力される。
【００１２】
例えば、初期状態から所定時間、ゲート回路２０１０に供給されるイネーブル信号ＥＮ１がハイレベルであり、ゲート回路２０２０に供給されるイネーブル信号ＥＮ２がローレベルであるとする。
イネーブル信号ＥＮ１がハイレベルのとき、ゲート回路２０１０からクロック信号が出力される。これにより、ＰＭＯＳトランジスタＰ２０１１、Ｐ２０１２は、ほぼ同じ時間だけオン状態になり、ほぼ同じだけＮＢＴＩの影響を受け、ほぼ同じだけ電流能力が低下する。
【００１３】
イネーブル信号ＥＮ２がローレベルのとき、ゲート回路２０２０から常にローレベルの信号が出力され、ＰＭＯＳトランジスタＰ２０２１は常にオン状態になり、常にＮＢＴＩの影響を受け、電流能力は著しく低下する。逆に、ＰＭＯＳトランジスタＰ２０２２は常にオフ状態になり、ＮＢＴＩの影響を受けず、電流能力は低下しない。
なお、ここでは、ＮチャネルＭＯＳトランジスタ（以下、ＮＭＯＳトランジスタという。）Ｎ２０１１、Ｎ２０１２、Ｎ２０２１、Ｎ２０２２では電流能力の低下は起こらないものとする。
【００１４】
上記の所定期間経過後、図１５に示すように、イネーブル信号ＥＮ１、ＥＮ２がともにハイレベルになったとする。
クロック信号ＣＬＫの立ち上がりエッジＥ２０１０に対して、ノードＮ１、Ｎ４の信号は所定時間遅れて立ち上がる。ノードＮ２、Ｎ５の信号はノードＮ１、Ｎ４の信号が立ち上がってから所定時間遅れて立ち下がる。ノードＮ３、Ｎ６の信号はノードＮ２、Ｎ４の信号が立ち下がってから時間Ｔ２０１２、Ｔ２０２２遅れて立ち上がる。図１５に示すように、ＰＭＯＳトランジスタＰ２０１２はＰＭＯＳトランジスタＰ２０２２より電流能力の低下が大きいので、時間Ｔ２０１２は時間Ｔ２０２２より大きい。
【００１５】
クロック信号ＣＬＫの立ち下がりエッジＥ２０２０に対して、ノードＮ１、Ｎ４の信号は所定時間遅れて立ち下がる。ノードＮ２、Ｎ５の信号はノードＮ１、Ｎ４の信号が立ち下がってから時間Ｔ２０１１、Ｔ２０２１遅れて立ち上がる。ノードＮ３、Ｎ６の信号はノードＮ２、Ｎ４の信号が立ち上がってから所定時間遅れて立ち下がる。図１５に示すように、ＰＭＯＳトランジスタＰ２０１１はＰＭＯＳトランジスタＰ２０２１より電流能力の低下が小さいので、時間Ｔ２０１１は時間Ｔ２０２１より小さい。
【００１６】
このように、トランジスタの経時劣化に起因してクロックスキューが発生し、このクロックスキューがレジスタ間のデータの受け渡しの誤りの原因になるため、ＬＳＩの設計においてはトランジスタの経時劣化に起因するクロックスキューを考慮する必要がある。
なお、図１５に一例を示すように、ＰＭＯＳトランジスタなど経時劣化する素子を含む様々な回路間で経時劣化する素子の動作時間が異なることによって入力に対する出力の遅延量に差が生じる。
【００１７】
ところが、上記の特許文献１はトランジスタの経時劣化に起因するクロックスキューを考慮していないため、プログラマブル論理回路はトランジスタの経時劣化に起因するクロックスキューによって誤動作する恐れがある。
そこで、本発明は、論理ブロック内の素子の経時劣化に起因するクロックスキューなどによって論理ブロック間のデータの受け渡しの誤動作が起こることを防ぐことが可能な論理ブロック制御システム及び論理ブロック制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために本発明の論理ブロック制御システムは、論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部と、各前記論理ブロックの停止時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定手段と、前記決定手段により決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御手段と、を備える。
【００１９】
本発明の論理ブロック制御方法は、論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部において、各前記論理ブロックの動作を制御する論理ブロック制御方法であって、各前記論理ブロックの停止時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定ステップと、前記決定ステップにより決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御ステップと、を有する。
【発明の効果】
【００２０】
上記論理ブロック制御システム及び論理ブロック制御方法の夫々によれば、各論理ブロックの停止時間を基に動作を停止させる論理ブロックを決定するため、論理ブロックの動作量を論理ブロック間で均等にすることが可能になる。このため、論理ブロック間で劣化度を均等にすることができ、論理ブロック内の素子の経時劣化に起因するクロックスキューなどによる論理ブロック間のデータの受け渡しの誤りを防ぐことができる。
【００２１】
上記論理ブロック制御システムにおいて、前記決定手段は、前記プログラマブル論理回路部の動作時間が予め定められる開始時間を越えるまでは動作を停止させる論理ブロックの決定を行わずに前記論理ブロックの全てを動作させる論理ブロックに決定し、前記動作時間が前記開始時間を超えると動作を停止させる論理ブロックの決定を開始するようにしてもよい。
【００２２】
例えば、ＰチャネルＭＯＳトランジスタは、オン時間が短いときには急激に劣化が進み、オン時間が長くなるにつれて劣化が進みにくくなることが知られている。このため、オン時間が短いときには各論理ブロック間の停止時間が少し異なるだけで、各論理ブロック間の劣化の度合いが大きく異なる可能性がある。
上記の論理ブロック制御システムによれば、論理ブロック内の例えばＰチャネルＭＯＳトランジスタのオン時間が短いときには全ての論理ブロックを動作させるようにして、全ての論理ブロック内の例えばＰチャネルＭＯＳトランジスタを劣化させるようにしている。このため、例えばＰチャネルＭＯＳトランジスタの劣化が急激に進むオン時間が短いときでも、論理ブロック間の劣化度の差が大きくなることを回避でき、論理ブロック間のデータの受け渡しを正常に行うことが可能になる。
【００２３】
上記論理ブロック制御システムにおいて、動作を停止している前記論理ブロックから、動作を停止している前記論理ブロックの停止時間に基づく値が動作している全ての前記論理ブロックの停止時間に基づく値に対して予め定められた範囲に含まれていない論理ブロックを検出する検出手段をさらに備え、前記制御手段は、前記検出手段により検出される動作を停止している前記論理ブロックを動作させるようにしてもよい。
【００２４】
これによれば、論理ブロック間の劣化度の差を常に一定範囲内に抑えることが可能になって、論理ブロック間のデータの受け渡しを正常に行うことが可能になる。
上記論理ブロック制御システムにおいて、各前記論理ブロックに対応して、制御信号が第１論理状態のときにクロック信号を通過させ、前記制御信号が第２論理状態のときにはクロック信号の通過を遮断するクロックゲート手段をさらに備え、前記制御手段は、前記決定手段により決定される前記論理ブロックに対応する前記クロックゲート手段に供給する前記制御信号を前記第２論理状態にすることによって当該論理ブロックの動作を停止させるようにしてもよい。
【００２５】
これによれば、論理ブロックの停止制御に既知の技術であるゲーディドクロック技術を使用するため、論理ブロックの停止制御のための開発負担を軽減することができる。
上記論理ブロック制御システムにおいて、各前記論理ブロックに対応して、制御信号が第１論理状態のときに前記論理ブロックを電源と電気的に接続し、前記制御信号が第２論理状態のときに当該論理ブロックを前記電源と電気的に遮断する電源遮断手段をさらに備え、前記制御手段は、前記決定手段により決定される前記論理ブロックに対応する前記電源遮断手段に供給する前記制御信号を前記第２論理状態にすることによって当該論理ブロックの動作を停止させるようにしてもよい。
【００２６】
これによれば、論理ブロックの停止制御に既知の技術である電源遮断技術を使用するため、論理ブロックの停止制御のための開発負担を軽減することができる。
本発明の論理ブロック制御システムは、論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部と、各前記論理ブロックの動作時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定手段と、前記決定手段により決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御手段と、を備える。
【００２７】
本発明の論理ブロック制御方法は、論理演算処理を行う論理ブロックを複数有し、各前記論理ブロック間の配線状態をプログラマブルに設定変更可能なプログラマブル論理回路部において、各前記論理ブロックの動作を制御する論理ブロック制御方法であって、各前記論理ブロックの動作時間に基づいて、複数の前記論理ブロックの中から、対象の処理を実行する上で動作を停止させることが可能な論理ブロックのブロック数分、動作を停止させる論理ブロックを決定する決定ステップと、前記決定ステップにより決定される前記論理ブロックの動作を停止させ、前記対象の処理を実行可能となるように各前記論理ブロック間の配線状態の設定変更を行う制御ステップと、を有する。
【００２８】
上記論理ブロック制御システム及び論理ブロック制御方法の夫々によれば、各論理ブロックの動作時間を基に動作を停止させる論理ブロックを決定するため、論理ブロックの動作量を論理ブロック間で均等にすることが可能になる。このため、論理ブロック間で劣化度を均等にすることができ、論理ブロック内の素子の経時劣化に起因するクロックスキューなどによる論理ブロック間のデータの受け渡しの誤りを防ぐことができる。
【発明を実施するための最良の形態】
【００２９】
≪第１の実施の形態≫
以下、本発明の第１の実施の形態について図面を参照しつつ説明する。
＜全体構成＞
本実施の形態のプログラマブル論理回路の構成について図１を参照しつつ説明する。図１は本実施の形態のプログラマブル論理回路の構成図である。
【００３０】
図１において、プログラマブル論理回路部１は外部の制御回路２に制御される。制御回路２は記憶部３にデータの書き込みや記憶部３からのデータの読み込みを行う。
プログラマブル論理回路部１は、複数の論理ブロック１０（図１では４個のみ図示）と、各論理ブロック１０間を接続する各論理ブロック１０間でデータを受け渡すためのデータ配線３０と、各論理ブロック１０間のデータ配線３０の接続をプログラムにより設定変更するための配線切替スイッチ２０と、を備える。
【００３１】
プログラマブル論理回路部１は、さらに、制御回路５０を備え、制御回路５０は、例えば、動作を停止させる論理ブロックを除く論理ブロックで対象の処理を実現するために配線切替スイッチ２０の切り替え制御を行う。
プログラマブル論理回路部１は、さらに、動作量保持部６０を備える。動作量保持部６０は、不図示の発振回路によって発振されるクロック信号ＣＬＫをカウントすることによって、プログラマブル論理回路部１の動作量に対応する動作クロック数を保持する。動作量保持部６０と制御回路５０とは動作量転送線８０ａによって接続されており、動作量保持部６０に保持されている動作クロック数が制御回路５０によって読み出され、動作クロック数が制御回路５０によってリセットされる。
【００３２】
プログラマブル論理回路部１には、制御回路５０と各論理ブロック１０との間に論理ブロック１０の動作を制御するための制御信号線７０と、制御回路５０と各論理ブロック１０との間に論理ブロック１０に保持されている動作クロック数を読み出すための動作量転送線８０とが配設されている。
なお、図１では、１つの論理ブロック１０のみデータ配線３０に接続されている様子を示しているが、全ての論理ブロックがデータ配線３０に接続されている。
（記憶部３の記憶内容）
図１の記憶部３の記憶内容について図２を参照しつつ説明する。図２は図１の記憶部３の記憶内容を示す図である。
【００３３】
記憶部３は、プログラマブル論理回路部１全体の動作量に対応する動作クロック数を記憶する。図２では、フィールド「ブロック」の“全体”がプログラマブル論理回路部１全体を示す。
また、記憶部３は、論理ブロック１０毎に、論理ブロック１０の動作量に対応する動作クロック数を記憶する。図２ではフィールド「ブロック」の“論理ブロックａ”、“論理ブロックｂ”、“論理ブロックｃ”、“論理ブロックｄ”が論理ブロック１０を示す。
（論理ブロック１０の構成）
図１の論理ブロック１０の構成について図３を参照しつつ説明する。図３は図１の論理ブロック１０の構成図である。
【００３４】
論理ブロック１０は、論理演算処理を行うものであって、クロック信号に同期して動作するフリップフロップなどの論理素子１１（図３では１個のみ図示）を複数含む。
論理ブロック１０は、入力端がクロック配線４０及び制御信号線７０に接続されたクロックゲート回路１２を備える。制御信号線７０の信号レベルがハイレベルのとき、クロックゲート回路１２はクロック配線４０を介して供給されるクロック信号を通過させて、出力端からクロック信号を出力する。一方、制御信号線７０の信号レベルがローレベルのとき、クロックゲート回路１２はクロック配線４０を介して供給されるクロック信号を遮断し、出力端からローレベルの信号を出力する。このように、クロックゲート回路１２によってクロック信号を遮断することにより、クロックゲート回路１２の後段にある論理素子１１などの動作が停止させられる。
【００３５】
クロックゲート回路１２の出力は、２つのインバータ回路１３ａ、１３ｂを介して、論理素子１１の制御端子に入力される。インバータ回路１３ａ、１３ｂは、例えば、ＰＭＯＳトランジスタとＮＭＯＳトランジスタとを含むＣＭＯＳ型のインバータである。なお、クロックゲート回路１２と論理素子１１との間のインバータ回路１３ａ、１３ｂの個数は２個に限られるものではない。
【００３６】
動作量保持部１４は、クロックゲート回路１２の出力をカウントすることによって、論理ブロック１０の動作クロック数を保持する。クロックゲート回路１２は、制御信号線７０の信号がハイレベルのときクロック信号を出力し、制御信号線７０の信号がローレベルのときクロック信号を出力しないので、動作量保持部１４は論理ブロック１０が動作している期間のクロック数をカウントすることになる。
【００３７】
動作量保持部１４は動作量転送線８０に接続されており、動作量保持部１４に保持されている動作クロック数が制御回路５０によって読み出され、動作クロック数が制御回路５０によってリセットされる。
（制御回路２、制御回路５０の構成）
図１の制御回路２及び制御回路５０の構成について図４を参照しつつ説明する。図４は図１の制御回路２及び制御回路５０の構成図である。
「制御回路５０の構成」
制御回路５０は、動作クロック数転送部５１と、制御信号生成部５２とを備える。
【００３８】
動作クロック数転送部５１は、所定の周期、及びプログラマブル論理回路部１の論理構成（以下、構成という。）を切り替えるタイミングで、動作量保持部６０に保持された動作クロック数を動作量転送線８０ａを介して読み出し、読み出した動作クロック数を制御回路２の後述する動作クロック数取得部２ｂへ出力する。また、動作クロック数転送部５１は、動作量保持部６０に保持された動作クロック数を読み出すと、動作保持部６０に保持された動作クロック数をリセットする。
【００３９】
また、動作クロック数転送部５１は、論理ブロック１０の各々について、所定の周期、及びプログラマブル論理回路部１の構成を切り替えるタイミングで、動作量保持部１４に保持された動作クロック数を動作量転送線８０を介して読み出し、読み出した動作クロック数を動作クロック数取得部２ｂへ出力する。また、動作クロック数転送部５１は、動作量保持部１４に保持された動作クロック数を読み出すと、動作保持部１４に保持された動作クロック数をリセットする。
【００４０】
制御信号生成部５２は、制御回路２の後述する停止ブロック決定部２ｄから動作を止めると指定された論理ブロック１０に対応する制御信号線７０の信号をローレベルにする。これによって、クロックゲート回路１２は供給されるクロック信号を遮断し、クロックゲート回路１２の出力はローレベルに固定される。
また、制御信号生成部５２は、停止ブロック決定部２ｄから動作を止めると指定された論理ブロック１０以外の論理ブロック１０に対応する制御信号線７０の信号をハイレベルにする。これによって、クロックゲート回路１２は供給されるクロック信号を通過させ、クロックゲート回路１２からクロック信号が出力される。
「制御回路２の構成」
制御回路２は、停止可能ブロック数取得部２ａと、動作クロック数取得部２ｂと、停止率算出部２ｃ、停止ブロック決定部２ｄと、を備える。
【００４１】
停止可能ブロック数取得部２ａは、対象の処理を実行する上で動作を停止させることが可能な論理ブロック１０のブロック数（以下、停止可能ブロック数という。）を取得する。
動作クロック数取得部２ｂは、動作クロック数転送部５１から入力される動作量に対応する動作クロック数を、記憶部３に記憶されている該当するブロック（全体、論理ブロックａなど）の動作クロック数に加算する。なお、動作クロック数を該当するブロックの動作クロック数に加算することを可能にするために、例えば、動作クロック数転送部５１がいずれの動作量保持部１４、６０の動作クロック数であるかを示す情報を動作クロック数取得部２ｂへ出力する。
【００４２】
停止率算出部２ｃは、プログラマブル論理回路部１全体の動作時間Ｔａｌｌを、記憶部３に記憶されているフィールド「ブロック」の“全体”に対応する動作クロック数に、クロック信号の１周期分の時間Ｔを乗算することによって算出する。
停止率算出部２ｃは、論理ブロック１０の動作時間Ｔｒｕｎを、記憶部３に記憶されているフィールド「ブロック」の当該論理ブロック１０に対応する動作クロック数に上記の時間Ｔを乗算することによって算出する。
【００４３】
そして、停止率算出部２ｃは、論理ブロック１０の停止時間Ｔｓｔｏｐを、算出した動作時間Ｔａｌｌから当該論理ブロック１０の動作時間Ｔｒｕｎを減算することによって算出する。
さらに、停止率算出部２ｃは、論理ブロック１０の停止率を、算出した当該論理ブロック１０の停止時間Ｔｓｔｏｐを算出した動作時間Ｔａｌｌで除算することによって算出する。
【００４４】
停止率算出部２ｃは、上記の処理を各々の論理ブロック１０について行い、各々の論理ブロックの停止率を算出する。
停止ブロック決定部２ｄは、複数の論理ブロック１０の中から、停止率算出部２ｃによって算出された停止率が低い順番に停止可能ブロック数分の論理ブロック１０を選ぶ。そして、停止ブロック決定部２ｄは、選んだ論理ブロック１０を動作を停止させる論理ブロック（以下、停止ブロックという。）に決定し、停止ブロックを示す情報を制御回路５０の制御信号生成部５２へ出力する。
＜動作＞
図１から図４を参照して構成を示したプログラマブル論理回路の動作について図５を参照しつつ説明する。図５は図１のプログラマブル論理回路が行う論理ブロック制御処理のフローチャートである。
【００４５】
停止可能ブロック数取得部２ａは、構成が切り替わるとき、これから行われる構成に関連して、対象の処理を実行する上で動作を停止させることが可能な論理ブロック１０の停止可能ブロック数Ｎを取得する（ステップＳ１０１）。
続いて、論理クロック数取得部２ｂは動作クロック数転送部５１から入力される動作クロック数を基に記憶部３の内容を更新し、停止率算出部２ｃは各論理ブロック１０の停止率を算出する（ステップＳ１０２）。
【００４６】
停止ブロック決定部２ｄは変数ｊの値を０に設定する（ステップＳ１０３）。
停止ブロック決定部２ｄは変数ｊの値が停止可能ブロック数Ｎ以上であるかを判定する（ステップＳ１０４）。
変数ｊの値が停止可能ブロック数Ｎ以上でなければ（Ｓ１０４：ＮＯ）、停止ブロック決定部２ｄは、停止ブロックとして、既に停止ブロックとして決定された論理ブロックを除いて、停止率が最も低い論理ブロックを停止ブロックに決定する（ステップＳ１０５）。
【００４７】
停止ブロック決定部２ｄは変数ｊの値を１インクリメントし（ステップＳ１０６）、次にステップＳ１０４の処理が行われる。
変数ｊの値が停止可能ブロック数Ｎ以上であれば（Ｓ１０４：ＹＥＳ）、制御信号生成部５２は停止ブロックに決定された論理ブロック１０に対応する制御信号線７０の信号をローレベルにすることによって停止ブロックの動作を止める。また、制御信号生成部５２は停止ブロックに決定された論理ブロック１０を除く論理ブロック（以下、動作ブロックという。）１０に対応する制御信号線７０の信号をハイレベルにする。制御部５０は、動作ブロックで対象の処理の実行を可能にするめに動作ブロック及び停止ブロックに基づいて論理ブロック間の配線状態を設定する（ステップＳ１０７）。
＜具体例＞
図１から図５を参照しつつ説明したプログラマブル論理回路の動作の具体例について図６を参照しつつ説明する。図６は図１のプログラマブル論理回路が行う論理ブロック制御処理の具体例を示す図ある。
【００４８】
本具体例では、プログラマブル論理回路部１は、４個の論理ブロック１０ａ〜１０ｄを備え、対象となる処理を実行する上で動作させる必要がある論理ブロックのブロック数が４個である構成（構成Ａ）と、対象となる処理を実行する上で動作させる必要がある論理ブロックのブロック数が１個である構成（構成Ｂ、Ｃ、Ｄ、Ｅ）とを繰り返し行うものとする。なお、構成Ｂ、Ｃ、Ｄ、Ｅでの動作時間は同じであるとする。
【００４９】
時間Ｔ０〜時間Ｔ１では、制御部２は論理ブロック１０ａ〜１０ｄの全てを動作させる動作ブロックに決定する（構成Ａ）。
時間Ｔ１〜時間Ｔ２では、制御部２は、論理ブロック１０ａ〜１０ｄの停止率が同じであるので、論理ブロック１０ｂ〜１０ｄを停止ブロックに決定し、論理ブロック１０ａを動作ブロックに決定する（構成Ｂ）。
【００５０】
時間Ｔ２〜時間Ｔ３では、制御部２は、論理ブロック１０ａ〜１０ｄの全てを動作ブロックに決定する（構成Ａ）。
時間Ｔ３〜時間Ｔ４では、制御部２は、論理ブロック１０ａの停止率が最も低いので、論理ブロック１０ａを停止ブロックに決定する。また、制御部２は、論理ブロック１０ｂ〜１０ｄの停止率が同じであるので、論理ブロック１０ｂ、１０ｄを停止ブロックに決定し、論理ブロック１０ｃを動作ブロックに決定する（構成Ｃ）。
【００５１】
時間Ｔ４〜時間Ｔ５では、制御部２は、論理ブロック１０ａ〜１０ｄの全てを動作ブロックに決定する（構成Ａ）。
時間Ｔ５〜時間Ｔ６では、制御部２は、論理ブロック１０ａ、１０ｃの停止率が最も低いので、論理ブロック１０ａ、１０ｃを停止ブロックに決定する。また、制御部２は、論理ブロック１０ｂ、１０ｄの停止率が同じであるので、論理ブロック１０ｂを停止ブロックに決定し、論理ブロック１０ｄを動作ブロックに決定する（構成Ｄ）。
【００５２】
時間Ｔ６〜時間Ｔ７では、制御部２は、論理ブロック１０ａ〜１０ｄの全てを動作ブロックに決定する（構成Ａ）。
時間Ｔ７〜時間Ｔ８では、制御部２は、論理ブロック１０ａ、１０ｃ、１０ｄの停止率が最も低いので、論理ブロック１０ａ、１０ｃ、１０ｄを停止ブロックに決定し、論理ブロック１０ｂを動作ブロックに決定する（構成Ｅ）。
【００５３】
本具体例において、構成Ａの動作時間をＴＡ、構成Ｂ、Ｃ、Ｄ、Ｅの動作時間をＴＢとすると、論理ブロック間の停止率の差は、最大でＴＢ／（ＴＡ＋ＴＢ）であるが、この値を超えることはない。
論理ブロック間の論理ブロックの経時劣化に起因する最大のクロックスキューは、構成Ｂの処理が終わった後の論理ブロック１０ａとそれ以外の論理ブロックとの間のクロックスキューである。このため、構成Ｂの処理が終わった後の論理ブロック１０ａとそれ以外の論理ブロックとの間のクロックスキューに対処可能なスキューマージンを論理ブロック間にいれればよい。
【００５４】
スキューマージンの設け方としては、全ての論理ブロックの停止率が同じになるまでの全期間において、最大のクロックスキューに対処可能なスキューマージンを全ブロック間に設けてもよい。また、各構成におけるクロック遅延変動量を算出して、算出したクロック遅延変動量に基づいたスキューマージンを、必要なブロック間に設けてもよい。
＜効果＞
上述した本実施の形態によれば、各論理ブロックの停止時間に関連する停止率を基に、停止率が低い順に、停止ブロックを決定するようにしているため、論理ブロック１０の動作量を論理ブロック間で均等にすることが可能になる。従って、論理ブロック間のクロックスキューの大きさを抑えることが可能になって、論理ブロックの経時劣化に起因するクロックスキューによる論理ブロック間のデータの受け渡しの誤りを防ぐことができる。
【００５５】
また、より小さいクロックスキューに基づいたプログラマブル論理回路の設計を行うなうことが可能なため、論理ブロック間などに挿入する遅延素子の数を少なくすることができる。これにより、プログラマブル論理回路部などでの消費電力を抑えることができ、配線混雑を緩和し、プログラマブル論理回路の面積の増大を抑えることができる。
≪第２の実施の形態≫
以下、本発明の第２の実施の形態について図面を参照しつつ説明する。
【００５６】
ただし、第１の実施の形態は、論理ブロックの動作を停止させるために論理素子などにクロックの供給を止めるゲーディドクロック技術を用いたものであるが、本実施の形態は論理ブロックの動作を停止させるために論理素子などを電源と遮断する電源遮断技術を用いるものである。
本実施の形態では、プログラマブル論理回路部１が備える論理ブロックの構成及び論理ブロックの動作を停止させる制御信号線７０のレベルが第１の実施の形態と異なっており、その他の構成は第１の実施の形態と実質的に同じである。
【００５７】
なお、第２の実施の形態では、第１の実施の形態と実質的に同じ構成要素には第１の実施の形態と同じ符号を付し、説明を省略する。
＜構成＞
（制御回路５０ａ、論理ブロック２００の構成）
第２の実施の形態の制御回路５０ａ及び論理ブロック２００の構成について図７を参照しつつ説明する。図７は本実施の形態の制御回路５０ａ及び論理ブロック２００の構成図である。
「制御回路５０ａの構成」
制御回路５０ａは、動作クロック数転送部５１と、制御信号生成部５２ａとを備える。
【００５８】
制御信号生成部５２ａは制御回路２の停止ブロック決定部２ｄによって停止ブロックに決定された論理ブロック１０に対応する制御信号線７０の信号をハイレベルにし、停止ブロック以外の論理ブロック１０に対応する制御信号線７０の信号をローレベルにする。
「論理ブロック２００」
論理ブロック２００は、論理演算処理を行うものであって、クロック信号に同期して動作するフリップフロップなどの論理素子２１０（図７では１個のみ図示）を複数含む。
【００５９】
電源遮断回路２２０は、制御信号線７０の信号がローレベルのときに論理素子２１０や動作量保持部２３０を電源と電気的に接続し、制御信号線７０の信号がハイレベルのときに論理素子２１０や動作量保持部２３０を電源と電気的に遮断する。
動作量保持部２３０は、電源と電気的に接続されている期間、つまり、論理ブロック２００が動作している期間、不図示の発振回路によって発振されるクロック信号をカウントし、論理ブロック２００の動作量に対応する動作クロック数を保持する。
【００６０】
動作量保持部２３０は動作量転送線８０に接続されており、動作量保持部２３０に保持されている動作クロック数が動作クロック数転送部５１によって読み出され、動作クロック数が動作クロック数転送部５１によってリセットされるようになっている。
（電源遮断回路の構成）
図７の電源遮断回路２２０の構成について図８を参照しつつ説明する。図８は図７の電源遮断回路２２０の構成図である。
【００６１】
モジュール２６０は図７の論理素子２１０や動作量保持部２３０などである。なお、モジュール２６０に動作量保持部２３０が含まれない構成であってもよい。
電源遮断回路２２０は、ソースが電源に接続され、ドレインがモジュール２６０に接続されたＰＭＯＳトランジスタＰ２０１と、ドレインがモジュール２６０に接続され、ソースがグランド板に接続されたＮＭＯＳトランジスタＮ２０１を備える。
【００６２】
ＰＭＯＳトランジスタＰ２０１とＮＭＯＳトランジスタＮ２０１の夫々のゲートは制御信号線７０に接続されている。
制御信号線７０の信号がローレベルのとき、モジュール２６０は電源に電気的に接続されて、モジュール２６０に電力供給が行われ、モジュール２６０は動作を行う。これに対して、制御信号線７０の信号がハイレベルのとき、モジュール２６０は電源に電気的に遮断されて、モジュール２６０に電力供給が行われず、モジュール２６０は動作を停止する。
≪第３の実施の形態≫
以下、本発明の第３の実施の形態について図面を参照しつつ説明する。
【００６３】
ただし、第１の実施の形態は各論理ブロック１０の停止率に基づく停止ブロックの決定処理をプログラマブル論理回路部１の動作時間にかかわらず常に行うのに対し、本実施の形態は各論理ブロック１０の停止率に基づく停止ブロックの決定処理をプログラマブル論理回路部１の動作時間が所定範囲にある場合にのみ行うものである。
また、第２の実施の形態は、第１の実施の形態の停止率と異なる後述する停止率を利用する。
【００６４】
本実施の形態では、プログラマブル論理回路部１の外部に設けられた制御回路の構成が第１の実施の形態と異なっており、その他の構成は第１の実施の形態と実質的に同じである。
なお、第２の実施の形態では、第１の実施の形態と実質的に同じ構成要素には第１の実施の形態と同じ符号を付し、説明を省略する。
＜トランジスタの経時劣化の概要＞
ＰＭＯＳトランジスタの経時劣化の概要について図９を参照しつつ説明する。図９はＰＭＯＳトランジスタの経時劣化の概要を示す図である。
【００６５】
ＰＭＯＳトランジスタは、オン時間が短いときにはオン時間の増加に対して急激に劣化し、オン時間が長くなるとオン時間の増加に対して劣化はあまり進まなくなる。なお、上述したとおり、ＰＭＯＳトランジスタの劣化はＰＭＯＳトランジスタの閾値電圧の上昇につながり、ＰＭＯＳトランジスタの閾値電圧の増加は、ＰＭＯＳトランジスタを含む論理素子における入力に対する出力の遅延量の増大につながる。
【００６６】
そこで、論理素子やクロックゲート回路から当該論理素子までの間に配置されたインバータ回路などの経時劣化を考慮して、論理ブロック毎に、時間を変数とするその遅延変動量を表す関数Ｆを用意し、論理ブロックの停止率の算出に当該関数Ｆを利用する。なお、論理ブロックの停止時間が増加するにつれて当該論理ブロックに関する遅延変動量は増大する。
【００６７】
クロックゲート回路から論理素子などのインバータ回路の段数など論理ブロックの構成によって、停止時間が同じ論理ブロック間であってもそれらの遅延変動量が異なることがある。このため、停止時間を全体の動作時間で減算して停止率を求め、当該停止率を基に停止ブロックを決定した場合には、論理ブロックの実際の遅延変動量を反映したものとはならないことがある。
【００６８】
これに対して、遅延変動量を表す関数Ｆを用意し、当該関数Ｆを利用して停止ブロックの決定を行えば、論理ブロックの実際の遅延変動量を反映したものになるという利点がある。
＜構成＞
（制御回路３００の構成）
制御回路３００は、停止可能ブロック数取得部２ａと、動作クロック数取得部２ｂと、閾値比較部３０１と、停止率算出部３０２、停止ブロック決定部３０３とを備える。
【００６９】
閾値比較部３０１は、記憶部３に記憶されているフィールド「ブロック」の“全体”に対応する動作クロック数にクロック信号の周期を乗算した全体の動作量を第１閾値と比較するとともに、全体の動作量を第２閾値と比較する。
第１閾値及び第２閾値について述べる。
例えば、一部の論理ブロックを停止させた場合に、論理ブロック間の劣化度の相違に起因する論理ブロック間のデータの受け渡しにエラーが生じる可能性があると推定される、プログラマブル論理回路の最大の動作量以上の動作量を第１閾値にする。
【００７０】
また、停止時間に基づく停止ブロックの決定処理を行わずに、停止ブロックを任意に決定しても、論理ブロック間の劣化度の相違に起因する論理ブロック間のデータの受け渡しにエラーが生じないと推定されるプログラマブル論理回路の最小の動作量以上の動作量を第２閾値にする。
なお、第１閾値は第２閾値より小さい。
【００７１】
停止率算出部３０２は、停止率算出部２ｃと実質的に同じ処理を行って、プログラマブル論理回路部１全体の動作時間Ｔａｌｌと、論理ブロック１０の停止時間Ｔｓｔｏｐとを算出する。
停止率算出部３０２は、Ｆ（Ｔａｌｌ）と論理ブロック１０のＦ（Ｔｓｔｏｐ）とを算出し、当該論理ブロック１０の停止率をＦ（Ｔｓｔｏｐ）をＦ（Ｔａｌｌ）で除算することによって算出する。
【００７２】
停止率算出部３０２は、上記の処理を各々の論理ブロック１０について行い、各々の論理ブロックの停止率を算出する。
停止ブロック決定部３０３は、閾値比較部３０１の比較の結果、全体の動作量が第１閾値未満の場合には、停止ブロックをなしとし、全ての論理ブロック１０を動作ブロックに決定する。
【００７３】
停止ブロック決定部３０３は、閾値比較部３０１の比較の結果、全体の動作量が第１閾値以上で第２閾値未満の場合、停止ブロック２ｄと同じ処理を行い、停止ブロックの決定を行う。
停止ブロック決定部３０３は、閾値比較部３０１の比較の結果、全体の動作量が第２閾値以上の場合、プログラマブル論理回路部１が備える複数の論理ブロックから、任意に停止可能ブロック数分の論理ブロック１０を停止ブロックに決定する。
【００７４】
なお、全体の動作量が第２閾値以上の場合に停止ブロックを複数の論理ブロックから任意に決定することによって、停止ブロックの決定処理の負荷が軽減され、動作量保持部の規模を小さくすることができる。
＜動作＞
図１０を参照して説明したプログラマブル論理回路の動作について図１１を参照しつつ説明する。図１１は図１０のプログラマブル論理回路が行う論理ブロック制御処理のフローチャートである。
【００７５】
閾値比較部３０１は、プログラマブル論理回路部１の全体の動作量が第１閾値未満であるかを判定する（ステップＳ２０１）。
全体の動作量が第１閾値未満であれば（Ｓ２０１：ＹＥＳ）、停止ブロック決定部３０２は、停止ブロックをなしに決定し、制御部５０は全ての論理ブロックを動作させる（ステップＳ２０２）。
【００７６】
全体の動作量が第１閾値未満でなければ（Ｓ２０１：ＮＯ）、閾値比較部３０１は、プログラマブル論理回路部１の全体の動作量が第２閾値未満であるかを判定する（ステップＳ２０３）。
全体の動作量が第２閾値未満であれば（Ｓ２０３：ＹＥＳ）、ステップＳ２０４〜ステップＳ２１０で行われる。ステップＳ２０４〜ステップＳ２１０では、論理ブロックの停止率の算出の仕方を除き、図５のステップＳ１０１〜ステップＳ１０７と実質的に同じ処理が行われる。
【００７７】
全体の動作量が第２閾値未満でなければ（Ｓ２０３：ＮＯ）、停止可能ブロック数取得部２ａは、対象の処理を実行する上で動作を停止させることが可能な論理ブロック１０の停止可能ブロック数Ｎを取得する（ステップＳ２１１）。
停止ブロック決定部３０３は、動作を停止させる論理ブロックとして、プログラマブル論理回路１が備える複数の論理ブロックから、任意に、停止可能ブロック数Ｎ分の論理ブロックを選び、選んだ論理ブロックを停止ブロックに決定する（ステップＳ２１２）。
【００７８】
制御部５０は、ステップＳ２１２で決定された停止ブロックの動作を停止させる（ステップＳ２１３）。
≪補足≫
なお、本発明は上記各実施の形態で説明した内容に限定されず、本発明の目的とそれに関連又は付随する目的を達成するためのいかなる形態においても実施可能であり、例えば、以下であってもよい。
（１）上記の実施の形態では、論理ブロックの停止時間を基に動作を停止させる論理ブロックを決定するようにしているが、論理ブロックの動作時間を基に動作を停止させる論理ブロックを決定するようにしてもよい。
【００７９】
例えば、各々の論理ブロックについて、論理ブロックの動作時間Ｔｒｕｎをプログラマブル論理回路の全体の動作時間Ｔａｌｌで除算し、論理ブロックの稼働率を算出する。そして、プログラマブル論理回路部が備える複数の論理ブロックの中から、稼働率が高い順番に、停止可能な論理ブロックのブロック数分の論理ブロックを停止ブロックに決定するようにしてもよい。
（２）上記の第１及び第２の実施の形態においても、第３の実施の形態と同じく、プログラマブル論理回路部１の動作量が第１閾値以上で第２閾値未満の場合にだけ、停止時間に基づく停止率を利用した停止ブロックの決定処理を実行するようにしてもよい。
（３）上記実施の形態では各論理ブロックの停止率を利用して停止ブロックを決定するようにしているが、各論理ブロックの停止時間そのものを利用してもよく、各論理ブロックの停止回数を利用するようにしてもよい。
（４）上記実施の形態に、例えば、プログラム論理回路が動作している期間中、各論理ブロックの停止率を算出し、停止ブロックの停止率が全ての動作ブロックの停止率に対して所定の範囲にあるかを判断し、停止率が何れかの動作ブロックの停止率に対して所定の範囲内になかった停止ブロックを検出し、検出した停止ブロックを強制的に動作させる機能を付加してもよい。ここで、所定の範囲は、論理ブロック間の劣化度の差により論理ブロック間でデータの受け渡しができなくなる可能性があると推定される論理ブロック間の停止率の差を基に定められる設計事項である。例えば、所定の範囲は、動作している論理ブロックの停止率の９０％以上である。
（５）上記の実施の形態では、プログラム論理回路部の全体の動作量や各論理ブロックの動作量を計測するために、不図示の発振回路が発振するクロック信号のクロック数をカウントするようにしているが、不図示の発振回路が発振するクロック信号を分周回路で分周し、分周したクロック信号をカウントするようにしてもよい。
（６）上記実施の形態では、プログラマブル論理回路部１が備える論理ブロックを夫々独立して論理ブロックの停止などの動作状態を制御しているが、複数の論理ブロックを複数のグループに分け、グループ単位で論理ブロックの停止などの動作状態を制御するようにしてもよい。この場合、論理ブロックの停止などの動作状態の制御に必要な配線資源や論理資源を節約することができる。
（７）上記実施の形態では、論理ブロックの停止制御などを行う制御機構を、プログラマブル論理回路部１の外部と内部の夫々に分割して設けた制御回路で実現しているが、外部のみに設けた制御回路又は内部のみに設けた制御回路で実現するようにしてもよい。さらに、上記制御機構の機能の一部を有する制御回路を論理ブロック内に設けるようにしてもよい。
（８）上記実施の形態では、制御回路を論理ブロックとは別に設けているが、論理ブロックの何れかを制御回路に利用するようにしてもよい。この場合、制御に適した論理粒度の論理ブロックを制御回路に用いれば、プログラマブル論理回路の小型化や低消費電力化を実現することができる。
（９）上記実施の形態に、各論理ブロックの停止状況を示すレジスタを設けてもよい。この場合、レジスタ値を利用することによって、動作開始後に、構成が追加変更される場合でも各論理ブロックの動作状況にあった制御を行うことができる。
（１０）上記実施の形態では、実動作中に構成が切り替わるときに停止ブロックの選択処理を行うようにしているが、処理を行う構成及び当該構成の実行時間を利用して予め停止ブロックの選択処理を行ってもよい。
（１１）上記実施の形態では、クロックゲート回路や電源遮断回路を論理ブロックの内部に設けた場合であるが、全ての論理ブロックにおいてクロックゲート回路や電源遮断回路を論理ブロックの外部に設けてもよく、一部の論理ブロックにおいてのみクロックゲート回路や電源遮断回路を論理ブロックの外部に設けてもよい。
（１２）第２の実施の形態では、電源とモジュールの間を電気的に接続するか切断するかによって論理ブロックの動作状態を制御しているが、電源電圧のレベルを切り替えることによって論理ブロックの動作状態を制御するようにしてもよい。
（１３）第２の実施の形態では、電源とモジュール２６０とを電気的に接続し或いは遮断するためのスイッチ手段（ＰＭＯＳトランジスタＰ２０１）と、モジュール２６０とグランド板とを電気的に接続し或いは遮断するためのスイッチ手段（ＮＭＯＳトランジスタＮ２０１）とを設けているが、電源とモジュール２６０とを電気的に接続し或いは遮断するスイッチ手段のみを設けるようにしてもよく、モジュール２６０とグランド板とを電気的に接続し或いは遮断するスイッチ手段のみを設けるようにしてもよい。
（１４）上記実施の形態のプログラマブル論理回路を携帯電話機に適用する場合、無線基地局が送信するビーコン信号を間欠受信するタイミングで、動作を停止させる論理ブロックの決定処理を行うようにしてもよい。
（１５）上記実施の形態において、動作量保持部がクロック信号をカウントすることによってプログラマブル論理回路部全体や論理ブロックの動作クロック数を保持するようにしているが、動作量保持部を不揮発性のメモリなどで構成するとともに、クロック信号をカウントする専用のカウンタ回路を設け、制御回路が動作している論理ブロックやプログラマブル論理回路部に対応する動作量保持部の値をカウンタ回路の出力に応じて１インクリメントするようにしてもよい。
【００８０】
上記実施の形態において、記憶部３を不揮発性メモリやＨＤＤ（Hard Disk Drive）などで構成してもよい。
【産業上の利用可能性】
【００８１】
本発明は、プログラマブル論理回路が備える論理ブロックの動作制御に利用することができる。
【図面の簡単な説明】
【００８２】
【図１】第１の実施の形態のプログラマブル論理回路の構成図。
【図２】図１の記憶部３の記憶内容を示す図。
【図３】図１の論理ブロック１０の構成図。
【図４】図１の制御回路２及び制御回路５０の構成図。
【図５】第１の実施の形態の論理ブロック制御処理のフローチャート。
【図６】第１の実施の形態の論理ブロック制御処理の具体例を示す図。
【図７】第２の実施の形態の制御回路５０ａ及び論理ブロック２００の構成図。
【図８】図７の電源処断回路２２０の構成図。
【図９】ＰチャネルＭＯＳトランジスタの経時劣化の概要を示す図。
【図１０】第３の実施の形態の制御回路３００の構成図。
【図１１】第３の実施の形態の論理ブロック制御処理のフローチャート。
【図１２】クロックスキューに起因するプログラマブル論理回路の動作不良を説明するための図。
【図１３】クロックスキューに起因するプログラマブル論理回路の動作不良を説明するための図。
【図１４】トランジスタの経時劣化に起因するクロックスキューの発生を説明するための図。
【図１５】トランジスタの経時劣化に起因するクロックスキューの発生を説明するための図。
【符号の説明】
【００８３】
１  プログラマブル論理回路部
２  制御回路
２ａ  停止可能ブロック数取得部
２ｂ  動作クロック数取得部
２ｃ  停止率算出部
２ｄ  停止ブロック決定部
３  記憶部
１０  論理ブロック
１２  クロックゲート回路１２
１４  動作量保持部
５０  制御回路
５１  動作クロック数転送部
５２  制御信号生成部
６０  動作量保持部
【図１】
0004806417.tif 000002
【図２】
0004806417.tif 000003
【図３】
0004806417.tif 000004
【図４】
0004806417.tif 000005
【図５】
0004806417.tif 000006
【図６】
0004806417.tif 000007
【図７】
0004806417.tif 000008
【図８】
0004806417.tif 000009
【図９】
0004806417.tif 000010
【図１０】
0004806417.tif 000011
【図１１】
0004806417.tif 000012
【図１２】
0004806417.tif 000013
【図１３】
0004806417.tif 000014
【図１４】
0004806417.tif 000015
【図１５】
0004806417.tif 000016