(57)【要約】【課題】各ブロックのクロックは各ブロックを制御するブロック制御部により制御される。一方電源制御部も各電源ドメインの内部状態を制御するためにクロックを制御する必要がある。独立した２つの制御部である電源制御部とブロック制御部が一つのクロックイネーブルレジスタを制御する必要があるため競合が生じ、不整合が生じる。【解決手段】ブロック制御部が設定可能な第１のクロックイネーブルレジスタと、電源制御部が設定可能な第２のクロックイネーブルレジスタと、第１のクロックイネーブルレジスタと第２のクロックイネーブルレジスタの何れかがクロックイネーブルであるときクロックを出力するクロック生成部からなるクロック発生器。【選択図】図２
2018180963.tif 000002
【特許請求の範囲】
【請求項１】
ブロック制御部が設定可能な第１のクロックイネーブルレジスタと、電源制御部が設定可能な第２のクロックイネーブルレジスタと、第１のクロックイネーブルレジスタと第２のクロックイネーブルレジスタの何れかがクロックイネーブルであるときクロックを出力するクロック生成部からなることを特徴とするクロック発生器。
【請求項２】
ブロック制御部が設定可能なクロックイネーブルレジスタと、ブロックを含む電源ドメインの電源をオンしたとき前記クロックイネーブルレジスタの値によらず前記ブロックのクロックを一定期間出力するクロック発生器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の省電力技術に関する。
【背景技術】
【０００２】
半導体集積回路の省電力技術としては、半導体集積回路内を複数の電源ドメインに分割し個別に電源を制御する電源制御技術、半導体集積回路内を複数のブロックへ分割し個別にクロックの供給を制御するクロック制御技術がある（特許文献１）。
【０００３】
複数の電源ドメインに分割することはブロックを分割し個別にクロックを供給することよりも回路面積的なコストが大きいため、一般に電源ドメイン数はブロック数より少なく、一つの電源ドメインは複数のブロックを持つ。電源ドメインの全ブロックがアイドルの時は電源ドメインを電源オフし、一部のクロックブロックがアイドルの時はアイドルのブロックのクロックを止めることにより省電力を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−９９１８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
各ブロックのクロックは各ブロックを制御するブロック制御部により制御される。一方電源制御部も各電源ドメインの内部状態を制御するためにクロックを制御する必要がある。独立した２つの制御部である電源制御部とブロック制御部が一つのクロックイネーブルレジスタを制御する必要があるため競合が生じ、例えば以下のような不整合が生じた。
有るドメインを電源オンするとき、ブロック制御ソフトがクロックオフするタイミングが重なると十分クロックが印加されずドメイン内が初期化されない、結果として不正な出力が他のドメインへ伝搬する。
【０００６】
また、ブロック制御部のソフト資産が電源制御の実装に際し流用できない恐れがある。例えば、ブロックを制御するソフトがクロックイネーブルレジスタにライトした値を読み返して異なる値が読めた場合にエラーと判断するかもしれない。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係るクロック発生器は、
ブロック制御部が設定可能な第１のクロックイネーブルレジスタと、電源制御部が設定可能な第２のクロックイネーブルレジスタと、第１のクロックイネーブルレジスタと第２のクロックイネーブルレジスタの何れかがクロックイネーブルであるときクロックを出力するクロック生成部からなることを特徴とする。
【発明の効果】
【０００８】
本発明に係るクロック発生器によれば、独立した２つの制御部である電源制御部とブロック制御部が一つのクロックイネーブルレジスタを制御することによるドメイン内の初期化不良が無くなる。
【図面の簡単な説明】
【０００９】
【図１】本発明の半導体集積回路１００の構成を示す図である。
【図２】本発明のブロック２１０に関連する構成の詳細図である。
【図３】本発明のブロック２１０の詳細図である。
【図４】本発明の電源ドメイン１２１が電源オフの状態のときとオンの状態のときの制御レジスタの設定値を示す図である。
【図５】本発明の電源ドメイン１０１が電源ドメイン１２１を電源オフ状態からオン状態へ移行させる際の制御フローチャート図である。
【図６】本発明の電源ドメイン１２１が電源オフ状態からオン状態へ移行させる際の制御信号波形図である。
【図７】従来技術のブロック２１０に関連する構成の詳細図である。
【図８】従来技術の電源ドメイン１２１が電源オフ状態からオン状態へ移行させる際の制御信号波形図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について、図面に基づいて説明する。
【実施例１】
【００１１】
図１は、本発明の実施形態１の半導体集積回路１００の構成を示す図である。
【００１２】
半導体集積回路１００は常に電圧が印加されているデフォルトドメイン１１０と電源制御可能な電源ドメイン１２１、電源ドメイン１２２、電源ドメイン１２３を持つ。ここで制御可能な電源ドメインの数は３に限らず１以上であればよい。電源ドメイン１２１から１２３はそれぞれ電源ＳＷ１３１から１３３により電源のオンオフが制御される。電源ＳＷ１３１から１３３の電源のオンオフはＳＷ分離制御部１０５が出力するＳＷ信号により制御される。
【００１３】
また、図１は本形態では電源ドメイン１２１は３つのブロックを持ち、電源ドメイン１２２は２つのブロックを持ち、電源ドメイン１２３は４つのブロックを持つ例を示す。ここでブロックとは独立して制御可能なクロックが入力される回路の範囲を意味する。各電源ドメインがもつブロックの数は本形態の例に限られるものではなく１以上であれば良い。電源制御部１０１は例えばＣＰＵと電源制御プログラムを内蔵し、各電源ドメインの電源オンオフとその際に必要となるインターフェースの分離、クロック制御、リセット制御を行う。
【００１４】
ブロック制御部１０２は例えばＣＰＵと各ブロックを動作させるプログラムを内蔵する。各ブロックを動作させるプログラムは、例えばそのブロックを動作させる前にブロックに対応するクロックをイネーブルにし、使用した後は同クロックをディセーブルにする。これらのクロック制御により省電力を実現する。ここで各ブロックはそれぞれの機能を実現するためのクロックリセット以外の図示しない入出力インターフェースを持つ。それらの入出力は電源ドメインの中または外の他のブロック、または半導体集積回路の図示しない入出力ピンと接続される。
【００１５】
図２は電源ドメイン１２１の一つのブロック２１０を例に関連する制御信号、制御部との関係を説明する構成図である。
【００１６】
クロック制御部１０３はさらにブロック２１０に対応する電源制御クロックイネーブルレジスタ２０１、ブロック制御クロックイネーブルレジスタ２０２、ＯＲ回路２０３、クロック生成部２０４をもつ。これら４つの回路はブロック毎に実装される。
【００１７】
電源制御クロックイネーブルレジスタ２０１は電源制御部１０１により制御可能な１ビットのレジスタである。ブロック制御クロックイネーブルレジスタ２０２はブロック制御部１０２により制御可能な１ビットのレジスタである。前期２つのクロック制御レジスタの出力はＯＲ回路２０３でＯＲされてその出力がクロック生成部２０４へ入力される。つまりクロック生成部２０４は前期２つのクロック制御レジスタのＯＲの論理でブロック２１０へクロックを供給する。２つのクロックイネーブルレジスタは正論理であり１のときクロック供給を意味する。
【００１８】
リセット制御部１０４はさらにリセットイネーブルレジスタ２０５を持つ。リセットイネーブルレジスタ２０５は電源制御部１０１により制御される１ビットのレジスタである。レジスタの値はそのまま電源ドメイン１２１のリセット信号として電源ドメイン１２１へ供給される。レジスタの値は負論理であり０のとき電源ドメイン１２１の状態をリセットする。
【００１９】
ＳＷ分離制御部１０５はさらにＳＷイネーブルレジスタ２１１と分離イネーブルレジスタ２１２を持つ。ＳＷイネーブルレジスタ２１１は電源制御部１０１により制御される１ビットのレジスタである。ＳＷイネーブルレジスタは正論理であり１のときＳＷ１３１を導通状態にする。分離イネーブル２１２は電源制御部１０１により制御される１ビットのレジスタである。分離イネーブルレジスタは正論理であり１のとき電源ドメイン１２１の入出力を他の回路から分離する。
【００２０】
図３はブロック２１０の詳細を示す。
【００２１】
ブロック２１０はクロックリセット以外の複数の入出力信号を持ちそれらの一部は電源ドメイン１２１の外へ接続される。入出力信号は電源ドメイン１０５の外側でＡＮＤ回路により他の電源ドメインと分離される。例えばＡＮＤ回路３１１は分離信号が１のとき入力信号をマスクして０に固定する。またＡＮＤ回路３１２は分離信号が１のとき出力信号を０にマスクする。分離信号は電源ドメイン１２１が電源オフのとき１にすることにより他のドメインから当電源ドメインを分離する。
次にブロック２１０を初期化するための条件を考察する。
【００２２】
本形態のブロック２１０は組み合わせ回路とフリップフロップを持つ。一般に半導体集積回路は組み合わせ回路とフリップフロップなどの順序回路からなる。組み合わせ回路はその出力が現時点の入力の組み合わせで決定する回路を意味し、図中では雲のマークで示される。ただしブロック２１０内のＡＮＤ回路３２１も組み合わせ回路に属する。
【００２３】
フリップフロップはＦＦ＿１、ＦＦ＿２、ＦＦ＿３の破線で囲まれた部分の各回路で入力されたレベルをクロックに同期して保持する。ここで全てのフリップフロップには単一のクロックが接続されているものとする。ブロック２１０内ではフリップフロップのみが状態を保持する順序回路なのでブロック２１０の初期化はフリップフロップの初期化に他ならない。
【００２４】
ブロック２１０へのリセット信号は、０のときリセットを示す負論理である。本形態ではＦＦ＿１のフリップフロップの入力へＡＮＤ回路を介して接続される。
【００２５】
リセット信号が０のとき１パルスのクロックが入ればＦＦ＿１のフリップフロップが０に初期化される。続いて１パルスのクロックが入ればＦＦ＿２のフリップフロップが初期化される。続いて１パルスのクロックが入ればＦＦ＿３のフリップフロップが初期化される。
【００２６】
結局ブロック２１０の全フリップフロップが初期化されるためにはリセットが０に印加された状態でクロックが３つ入力されることである。同様にブロック２１０を初期化するための条件はリセットを印加した状態でクロックを３パルス入れることである。
【００２７】
一般にリセット信号を印加した状態で何パルスクロックを入れればブロックが初期化されるかはブロック内の論理実装に依存する。全てのフリップフロップの入力にＡＮＤ回路３２１のようなＡＮＤ回路を挿入することにより１パルスのクロックで初期化を行うこともできる。ただしその場合回路規模の増加と最高動作周波数の低下する懸念がある。一般にはこのトレードオフを考慮して論理実装を行う。
【００２８】
図４は電源制御部が電源ドメイン１２１を電源オフ状態に保っているときと電源オン状態に保っているときの関連する制御レジスタの設定状態を示す。図５は電源制御部１０１が電源ドメイン１２１を電源オフ状態から電源オン状態へ移行させる際の制御フローチャートを示す。図６は電源制御部１０１が電源ドメイン１２１の電源をオフの状態からオンの状態にする場合の信号波形を示す。これらの図を元に電源制御部１０１が電源ドメイン１２１の電源をオフの状態からオンの状態にする場合の動作を説明する。
【００２９】
まず電源ドメイン１２１が電源オフの場合、関連する制御レジスタは図４の表の値にセットされている。従って図６において時刻ｔ１以前は、ＳＷ信号２１４が０で電源オフ、分離信号２１５が１で電源ドメイン１２１の入出力インターフェースが分離された状態である。また電源制御クロックイネーブルレジスタ２０１は０でありクロック生成部２０４はブロック制御クロックイネーブルレジスタ２０２の値に依存してクロックを出力している状態である。リセットイネーブルレジスタ２０７は０でリセットが印加された状態である。
【００３０】
電源制御部１０１はＳＷイネーブルレジスタ２１１に１をライトすることによりＳＷ１３１をオンにし電源ドメイン１２１に電源を供給する（ステップ１、時刻ｔ１）。電源制御部１０１は電源制御クロックイネーブルレジスタ２０１に１をライトする。これによりブロック制御クロックイネーブルレジスタ２０２の値に依らずクロック生成部２０４へはＯＲ回路２０３を介して１レベルが入力されクロック生成部２０４はクロックを生成する（ステップ２、時刻ｔ２）。
【００３１】
電源制御部１０１はクロック２０６の３サイクル以上待機する（ステップ３）。この時刻ｔ２から時刻ｔ３までの区間でブロック２１０の内部状態は初期化される。電源制御部１０１はリセットイネーブルレジスタ２０５に１をライトする。これによりリセット信号２０７が１になりリセットが解除される。（ステップ４、時刻ｔ３）。電源制御部１０１は電源制御クロックイネーブルレジスタ２０１に０をライトする。これによりブロック制御クロックイネーブルレジスタ２０２の値がＯＲ回路２０３を介してクロック生成部２０４へ入力される。つまりクロック生成部２０４はブロック制御クロックイネーブルレジスタ２０２の値に依存してクロックを出力する状態になる。（ステップ５、時刻ｔ４）。
【００３２】
電源制御部１０１は分離イネーブルレジスタ２１２に０をライトする（ステップ６、時刻ｔ５）。これにより電源ドメイン１２１の入出力は他の回路との分離が解消される。このときステップ４でブロック２１０の状態が初期化されているので電源ドメイン１２１の出力信号は初期のアクティブではない状態であり他のブロックとインターフェースが接続されても問題を生じない。ブロック２１０が初期化されていない状態は電源ドメイン１２１の出力が不定なのでその状態で他のブロックと接続すると他のブロックへ不定が伝搬する問題が生じるので注意されたい。
【００３３】
本発明の効果を説明するため図７に従来技術のブロック２１０に関連する構成図と、図８に従来技術で電源ドメイン１２１が電源オフ状態からオン状態へ移行させる際の制御信号波形を示す。図７における差分は一つのクロックイネーブルレジスタ７０２の出力がクロックのオンオフを決定することである。またそのクロックイネーブルレジスタ７０２は電源制御部１０１とブロック制御ソフト１０２の両方からアクセス可能な構成である。これにより生じる可能性のある問題を図８をもとに説明する。
【００３４】
図８において電源制御部１０１の制御フローは、電源制御クロックイネーブルレジスタ２０１をクロックイネーブルレジスタ７０２に読み替えれば同一である。ここで時刻ｔ２で電源制御部１０１がクロックイネーブルレジスタに１をライトした直後、時刻ｔ２．５でブロック制御部１０２がクロックイネーブルレジスタ７０２に０をライトした場合を考える。この場合クロックは２パルスしか発生しないのでブロック２１０の初期化は完了しない。従って電源ドメイン１２１の出力は不定状態のままであり、ｔ５で電源ドメインの出力が他の回路に接続されたとき不定伝搬問題が生じる。
【００３５】
本発明に依れば電源ドメイン１２１を電源オンへ移行させる際にブロック制御部のクロック制御状態に依らずブロック２１０を初期化することができる。電源ドメイン１２１の電源オンしたとき、ブロック制御部のクロック制御状態に依らずクロックが一定期間発生する実装形態をとってもよい。
【符号の説明】
【００３６】
１００  半導体集積回路、２１０  ブロック、１０１，１２１  電源ドメイン
【図１】
2018180963.tif 000003
【図２】
2018180963.tif 000004
【図３】
2018180963.tif 000005
【図４】
2018180963.tif 000006
【図５】
2018180963.tif 000007
【図６】
2018180963.tif 000008
【図７】
2018180963.tif 000009
【図８】
2018180963.tif 000010