(57)【要約】【課題】  クロックゲーティングの制御をクロック周波数に応じて実行するか否かを動的に切り替えることで、半導体装置の消費電力を削減する。【解決手段】  半導体装置は、クロックに同期して動作するクロック同期回路と、クロック同期回路を動作させる動作期間にイネーブル信号を生成するイネーブル生成回路と、クロック周波数が所定の周波数以下の場合、イネーブル信号に応じてクロックをクロック同期回路に供給または停止し、クロック周波数が所定の周波数より高い場合、イネーブル信号に拘わらずクロックをクロック同期回路に供給するクロック供給回路を有する。【選択図】    図１
2017027204.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して動作するクロック同期回路と、
前記クロック同期回路を動作させる動作期間にイネーブル信号を生成するイネーブル生成回路と、
クロック周波数が所定の周波数以下の場合、前記イネーブル信号に応じてクロックを前記クロック同期回路に供給または停止し、クロック周波数が前記所定の周波数より高い場合、前記イネーブル信号に拘わらずクロックを前記クロック同期回路に供給するクロック供給回路を有することを特徴とする半導体装置。
【請求項２】
前記クロック供給回路は、
クロック周波数が前記所定の周波数以下の場合、前記イネーブル生成回路から受信する前記イネーブル信号に基づいて有効状態または無効状態のイネーブル制御信号を出力し、クロック周波数が所定の周波数より高い場合、前記イネーブル制御信号を有効状態に設定するイネーブル制御回路と、
前記イネーブル制御回路から有効状態の前記イネーブル制御信号を受信している間、クロックを前記クロック同期回路に供給するクロックゲーティング回路を有することを特徴とする請求項１記載の半導体装置。
【請求項３】
前記半導体装置はさらに、前記クロック同期回路と前記イネーブル生成回路と前記クロック供給回路とを含む複数の回路ブロックを有し、
前記所定の周波数は、前記イネーブル信号に応じて前記クロック同期回路へのクロックの供給または停止を制御する前記クロック供給回路のタイミングマージンに基づいて、前記複数の回路ブロック毎に設定されること特徴とする請求項１または請求項２記載の半導体装置。
【請求項４】
前記半導体装置が動作可能な最大のクロック周波数において前記タイミングマージンを満足する前記クロック供給回路は、クロック周波数に拘わりなく、前記イネーブル信号に応じてクロックを前記クロック同期回路に供給または停止することを特徴とする請求項３記載の半導体装置。
【請求項５】
前記半導体装置はさらに、
前記半導体装置に設定可能なクロック周波数毎に値が異なる周波数情報を記憶するとともに、記憶している前記周波数情報のいずれかを、クロック周波数の設定値を示す周波数信号に基づいて出力する周波数設定テーブルと、
前記周波数設定テーブルから出力される周波数情報が示す周波数のクロックを生成するクロック生成回路を有し、
前記クロック供給回路は、前記周波数設定テーブルから出力される前記周波数情報を用いて、クロック周波数が前記所定の周波数であるかを検出することを特徴とする請求項１ないし請求項４のいずれか１項記載の半導体装置。
【請求項６】
前記周波数設定テーブルは、クロック周波数が下がる毎に値が反転するビットの数が増加する前記周波数情報を記憶し、
前記クロック供給回路は、前記周波数情報を示す複数ビットのうち、前記所定の周波数で反転するビット値を受け、受けたビット値に基づいてクロック周波数が前記所定の周波数であるかを識別することを特徴とする請求項５記載の半導体装置。
【請求項７】
前記半導体装置はさらに、
スイッチ制御信号に基づいて、前記周波数情報の複数ビットの値のいずれかを前記クロック供給回路に出力する試験スイッチと、
スイッチ設定信号に基づいて前記スイッチ制御信号を生成するとともに、スイッチプログラム信号に基づいて前記スイッチ制御信号の値を記憶し、記憶したスイッチ制御信号を出力するスイッチ制御回路を有することを特徴とする請求項６記載の半導体装置。
【請求項８】
前記試験スイッチは、前記クロック供給回路のタイミングマージンに基づいて決定される前記所定の周波数が互いに等しいクロック供給回路に共通に接続されることを特徴とする請求項７記載の半導体装置。
【請求項９】
クロックに同期して動作するクロック同期回路を有する半導体装置の制御方法において、
前記半導体装置が有するイネーブル生成回路が、前記クロック同期回路を動作させる動作期間にイネーブル信号を生成し、
前記半導体装置が有するクロック供給回路が、クロック周波数が所定の周波数以下の場合、前記イネーブル信号に応じてクロックを前記クロック同期回路に供給または停止し、クロック周波数が前記所定の周波数より高い場合、前記イネーブル信号に拘わらずクロックを前記クロック同期回路に供給することを特徴とする半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および半導体装置の制御方法に関する。
【背景技術】
【０００２】
クロックに同期して動作するプロセッサ等の半導体装置の消費電力を削減するために、電圧および周波数を動的に変更するＤＶＦＳ（Dynamic Voltage and Frequency Scaling）手法が提案されている。この種の半導体装置では、動作しない回路ブロックへのクロックの供給を停止するクロックゲーティング手法を採用することで、消費電力はさらに削減される（例えば、特許文献１参照）。
【０００３】
クロックゲーティング手法では、回路ブロックへのクロックの供給をイネーブル信号の論理に応じて遮断するクロックゲーティング回路が、回路ブロックへのクロックの入力経路に挿入される。クロックゲーティング回路において、クロックの遷移エッジに対するイネーブル信号の遷移エッジのタイミングは、クロックの周波数の変化とともに変化する。このため、クロックの周波数によってはクロックゲーティング回路から出力されるクロックにグリッチが発生する等、イネーブル信号のタイミング制約を満足しない場合がある。
【０００４】
回路ブロックのタイミング検証により、イネーブル信号のタイミング制約を満足しないことが判明した場合、クロックゲーティング回路は回路ブロックに挿入されず、あるいは、タイミング制約を満足する回路に変更される（例えば、特許文献２、３参照）。また、クロックに発生するグリッチは、クロックツリー上でクロックゲーティング回路を直列に配置することで抑止される（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１８７４６号公報
【特許文献２】特開２０１１−１６４９８８号公報
【特許文献３】特開２００２−１９０５２８号公報
【特許文献４】特開２０１０−４３５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クロックの周波数を動的に変更する半導体装置において、イネーブル信号のタイミング制約に基づいてクロックゲーティング回路を挿入するか否かは、半導体装置が動作可能な最大のクロック周波数で判定される。このため、最大のクロック周波数より低いクロック周波数でイネーブル信号のタイミング制約を満足する回路ブロックには、クロックゲーティング回路は挿入されず、クロックが常に供給される。したがって、半導体装置が最大のクロック周波数より低いクロック周波数で動作する場合、クロックゲーティング回路が挿入されない回路ブロックでは、クロックゲーティング回路が挿入される回路ブロックに比べて、消費電力の削減効果は少なくなる。
【０００７】
１つの側面では、本件開示の半導体装置および半導体装置の制御方法は、クロックゲーティングの制御をクロック周波数に応じて実行するか否かを動的に切り替えることで、半導体装置の消費電力を削減することを目的とする。
【課題を解決するための手段】
【０００８】
一つの観点によれば、半導体装置は、クロックに同期して動作するクロック同期回路と、クロック同期回路を動作させる動作期間にイネーブル信号を生成するイネーブル生成回路と、クロック周波数が所定の周波数以下の場合、イネーブル信号に応じてクロックをクロック同期回路に供給または停止し、クロック周波数が所定の周波数より高い場合、イネーブル信号に拘わらずクロックをクロック同期回路に供給するクロック供給回路を有する。
【０００９】
別の観点によれば、クロックに同期して動作するクロック同期回路を有する半導体装置の制御方法は、半導体装置が有するイネーブル生成回路が、クロック同期回路を動作させる動作期間にイネーブル信号を生成し、半導体装置が有するクロック供給回路が、クロック周波数が所定の周波数以下の場合、イネーブル信号に応じてクロックをクロック同期回路に供給または停止し、クロック周波数が所定の周波数より高い場合、イネーブル信号に拘わらずクロックをクロック同期回路に供給する。
【発明の効果】
【００１０】
本件開示の半導体装置および半導体装置の制御方法は、クロックゲーティングの制御をクロック周波数に応じて実行するか否かを動的に切り替えることで、半導体装置の消費電力を削減することできる。
【図面の簡単な説明】
【００１１】
【図１】半導体装置および半導体装置の制御方法の一実施形態を示す図である。
【図２】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図３】図２に示すイネーブル生成回路および論理回路の一例を示す図である。
【図４】図３に示すイネーブル生成回路および論理回路の動作の一例を示す図である。
【図５】図２に示す周波数設定テーブルの一例を示す図である。
【図６】図２に示す回路ブロック４０ａの論理回路に供給されるクロックの生成タイミングの一例を示す図である。
【図７】図２に示す回路ブロックの動作の一例を示す図である。
【図８】図２に示す半導体装置の動作の一例を示す図である。
【図９】イネーブル制御回路を持たない半導体装置の動作の一例を示す図である。
【図１０】図２に示す半導体装置のクロック周波数による消費電力の変化の一例を示す図である。
【図１１】図２に示す半導体装置の設計フローの一例を示す図である。
【図１２】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図１３】図１２に示す試験スイッチの一例を示す図である。
【図１４】図１２に示す半導体装置のクロック周波数による消費電力の変化の一例を示す図である。
【図１５】図１２に示す半導体装置の試験フローの一例を示す図である。
【図１６】図１５に示すステップＳ３００の処理の一例を示す図である。
【図１７】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図１８】図１７に示す試験スイッチの一例を示す図である。
【図１９】図１７に示す半導体装置の試験フローの一例を示す図である。
【図２０】図１９に示すステップＳ４００の処理の一例を示す図である。
【図２１】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図２２】図２１に示す半導体装置の試験フローにおけるステップＳ３００の処理の一例を示す図である。
【図２３】半導体装置および半導体装置の制御方法の別の実施形態を示す図である。
【図２４】図２３に示す半導体装置の試験フローにおけるステップＳ４００の処理の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を用いて実施形態を説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。
【００１３】
図１は、半導体装置および半導体装置の制御方法の一実施形態を示す。図１に示す半導体装置ＳＥＭ１は、イネーブル生成回路１、クロック供給回路２およびクロック同期回路３を有する。
【００１４】
イネーブル生成回路１は、入力信号ＩＮ１に基づいてクロック同期回路３を動作させる動作期間を判定した場合、イネーブル信号ＥＮを生成する。イネーブル生成回路１は、入力信号ＩＮ１に基づいてクロック同期回路３の動作を停止させる停止期間を判定した場合、イネーブル信号ＥＮの生成を停止する。例えば、イネーブル信号ＥＮの生成は、イネーブル信号ＥＮの有効状態を示す論理への変化を示し、イネーブル信号ＥＮの生成の停止は、イネーブル信号ＥＮの無効状態を示す論理への変化を示す。
【００１５】
クロック供給回路２は、イネーブル信号ＥＮおよび周波数制御信号ＦＣＮＴに基づいて、クロックＣＬＫをクロックＧＣＬＫとしてクロック同期回路３に供給し、または、クロックＧＣＬＫの生成を停止する。すなわち、クロック供給回路２は、クロックＧＣＬＫのクロック同期回路３への供給および停止を制御するクロックゲーティング回路の機能を有する。
【００１６】
例えば、半導体装置ＳＥＭ１の設計時のタイミング検証により、クロック供給回路２は、クロックＣＬＫの周波数であるクロック周波数が１．６ＧＨｚ以下の場合、イネーブル信号ＥＮの論理の変化に基づいて正常なクロックＧＣＬＫを生成することが判明している。また、クロック供給回路２は、クロック周波数が１．６ＧＨｚより高い場合、イネーブル信号ＥＮの変化に基づいて正常でないクロックＧＣＬＫを生成する場合があることが分かっている（クロックＧＣＬＫのグリッチ等が発生）。すなわち、クロック供給回路２が、クロックゲーティングの制御を可能なクロック周波数の上限であるゲーティング可能周波数は、１．６ＧＨｚである。ゲーティング可能周波数は、所定の周波数の一例である。なお、クロック同期回路３は、例えば、クロックＣＬＫの最大周波数である２．０ＧＨｚで動作することがタイミング検証により判明している。
【００１７】
クロック供給回路２が受信する周波数制御信号ＦＣＮＴは、例えば、クロック周波数が１．６ＧＨｚ以下の場合と、クロック周波数が１．６ＧＨｚより高い場合とで、異なる論理を示す。そして、クロック供給回路２は、周波数制御信号ＦＣＮＴに基づいて、クロック周波数がゲーティング可能周波数以下であるか否かを検出する。なお、クロック供給回路２のゲーティング可能周波数が１．８ＧＨｚの場合、クロック供給回路２は、クロック周波数が１．８ＧＨｚ以下の場合と、クロック周波数が１．８ＧＨｚより高い場合とで、異なる論理の周波数制御信号ＦＣＮＴを受信する。周波数制御信号ＦＣＮＴは、半導体装置ＳＥＭ１の内部で生成されてもよく、半導体装置ＳＥＭ１の外部から供給されてもよい。また、周波数が動的に変化するクロックＣＬＫは、半導体装置ＳＥＭ１の内部で生成されてもよく、半導体装置ＳＥＭ１の外部から供給されてもよい。
【００１８】
クロック供給回路２は、クロック周波数がゲーティング可能周波数以下の場合で、イネーブル信号ＥＮが有効状態を示す場合、クロックＣＬＫに同期するクロックＧＣＬＫをクロック同期回路３に供給する。また、クロック供給回路２は、クロック周波数がゲーティング可能周波数以下の場合で、イネーブル信号ＥＮが無効状態を示す場合、クロックＧＣＬＫのクロック同期回路３への供給を停止する。さらに、クロック供給回路２は、クロック周波数がゲーティング可能周波数より高い場合、イネーブル信号ＥＮの状態に拘わらずクロックＧＣＬＫをクロック同期回路３に供給する。
【００１９】
クロック同期回路３は、クロックＧＣＬＫに同期して動作し、入力信号ＩＮ２に基づく演算処理等を実行し、演算処理等の結果を出力信号ＯＵＴ２として出力する。なお、半導体装置ＳＥＭ１は、イネーブル生成回路１、クロック供給回路２およびクロック同期回路３をそれぞれ含む複数の回路ブロックを有してもよい。この場合、イネーブル生成回路１は、クロック同期回路３の動作期間をそれぞれ判定する。クロック同期回路３のゲーティング可能周波数は、回路ブロック毎に判定され、クロック供給回路２は、ゲーティング可能周波数に対応する周波数制御信号ＦＣＮＴをそれぞれ受信する。
【００２０】
以上、図１に示す実施形態では、クロック供給回路２は、クロック周波数とゲーティング可能周波数との関係に基づいて、クロックゲーティングの制御を実行するか否かを動的に切り替える。これにより、ゲーティング可能周波数が、クロックの最大周波数より低い場合であって、クロック周波数以下である場合、クロック同期回路のクロックゲーティングの制御を実行することができる。この結果、ゲーティング可能周波数がクロックの最大周波数より低い場合にクロック同期回路のクロックゲーティングの制御を実行しない半導体装置に比べて、半導体装置ＳＥＭ１の消費電力を削減することができる。
【００２１】
図２は、半導体装置および半導体装置の別の実施形態を示す。図１に示す半導体装置ＳＥＭ２は、周波数設定テーブル１０、周波数制御回路２０、ＰＬＬ（Phase Locked Loop）３０および複数の回路ブロック４０（４０ａ、４０ｂ、４０ｃ、４０ｄ）を有する。半導体装置ＳＥＭ２は、クロックＣＬＫの周波数を動的に変更するＤＦＳ（Dynamic Frequency Scaling）手法を採用している。特に限定されないが、クロックＣＬＫの周波数は、２．０ＧＨｚ、１．８ＧＨｚ、１．６ＧＨｚ、１．４ＧＨｚ、１．２ＧＨｚ、１．０ＧＨｚのいずれかに動的に変更される。なお、半導体装置ＳＥＭ２は、クロックＣＬＫの周波数および電源電圧を動的に変更するＤＶＦＳ手法を採用してもよい。
【００２２】
周波数設定テーブル１０は、回路ブロック４０で使用するクロックＣＬＫの周波数の設定値を示す周波数設定信号ＦＲＱに基づいて、５ビットの周波数信号ＦＴＢＬ［４：０］を出力する。周波数信号ＦＴＢＬ［４：０］は、半導体装置ＳＥＭ２に設定可能なクロック周波数毎に値が異なる周波数情報の一例である。周波数設定テーブル１０の例は、図５に示される。
【００２３】
”０００００（２進数）”の周波数信号ＦＴＢＬ［４：０］は、２．０ＧＨｚのクロックＣＬＫを示し、”００００１”の周波数信号ＦＴＢＬ［４：０］は、１．８ＧＨｚのクロックＣＬＫを示す。”０００１１”の周波数信号ＦＴＢＬ［４：０］は、１．６ＧＨｚのクロックＣＬＫを示し、”００１１１”の周波数信号ＦＴＢＬ［４：０］は、１．４ＧＨｚのクロックＣＬＫを示す。”０１１１１”の周波数信号ＦＴＢＬ［４：０］は、１．２ＧＨｚのクロックＣＬＫを示し、”１１１１１”の周波数信号ＦＴＢＬ［４：０］は、１．０ＧＨｚのクロックＣＬＫを示す。すなわち、周波数設定テーブル１０は、クロック周波数が下がる毎に値が”０”から”１”に反転するビットの数が増加する周波数情報ＦＴＢＬ［４：０］を記憶する。
【００２４】
周波数制御回路２０は、周波数信号ＦＴＢＬ［４：０］に基づいて、周波数信号ＦＴＢＬ［４：０］で示される周波数のクロックＣＬＫをＰＬＬ３０に生成させるための制御信号ＦＲＱＣＮＴをＰＬＬ３０に出力する。ＰＬＬ３０は、制御信号ＦＲＱＣＮＴに基づいて内部クロックＩＮＣＬＫの周波数を逓倍または分周してクロックＣＬＫを生成する。ＰＬＬ３０は、周波数設定テーブル１０から出力される周波数信号ＦＴＢＬ［４：０］が示す周波数のクロックＣＬＫを生成するクロック生成回路の一例である。クロックＣＬＫは、回路ブロック４０ａ、４０ｂ、４０ｃ、４０ｄに共通に使用される。内部クロックＩＮＣＬＫは、半導体装置ＳＥＭ２の内部で生成されてもよく、半導体装置ＳＥＭ２の外部から供給されてもよい。
【００２５】
各回路ブロック４０は、イネーブル生成回路ＥＮＧＥＮ、イネーブル制御回路ＦＳ、クロックゲーティング回路ＧＢおよびクロックＣＬＫに同期して動作する論理回路ＬＯＧＩＣを有する。なお、半導体装置ＳＥＭ２に搭載される回路ブロック４０の数は、４つに限定されない。
【００２６】
論理回路ＬＯＧＩＣは、クロックＧＣＬＫに同期して動作するフリップフロップと、フリップフロップに接続された組み合わせ回路とを有している。論理回路ＬＯＧＩＣは、クロックＧＣＬＫに同期して動作するクロック同期回路の一例である。論理回路ＬＯＧＩＣの例は、図３に示される。論理回路ＬＯＧＩＣは、動作および停止する条件が回路ブロック４０毎に相違している。
【００２７】
例えば、論理回路ＬＯＧＩＣは、論理回路ＬＯＧＩＣ内で生成され、外部に出力される信号が他の回路で使用される場合に動作し、論理回路ＬＯＧＩＣ内で生成される信号が他の回路で使用されない場合に動作を停止する。論理回路ＬＯＧＩＣの動作は、論理回路ＬＯＧＩＣに供給されるクロックＧＣＬＫを停止することで停止される。すなわち、各論理回路ＬＯＧＩＣは、クロックＧＣＬＫの供給または停止を制御するクロックゲーティングの制御により、動作または停止する。クロックゲーティングの制御は、イネーブル生成回路ＥＮＧＥＮ、イネーブル制御回路ＦＳおよびクロックゲーティング回路ＧＢにより実行される。
【００２８】
図６で説明するように、各回路ブロック４０においてクロックゲーティングの制御が可能か否かは、クロックＣＬＫの周波数に依存して決まる。各回路ブロック４０においてクロックゲーティングの制御が可能なクロックＣＬＫの周波数は、半導体装置ＳＥＭ２の設計時のタイミング検証で判定される。以下の説明では、クロックゲーティングの制御が可能なクロックＣＬＫの周波数は、ゲーティング可能周波数と称される。
【００２９】
各回路ブロック４０は、設計時のタイミング検証で判定されたゲーティング可能周波数に対応する周波数周波数信号ＦＴＢＬ［４：０］のビット値を周波数制御信号ＦＣＮＴとして受信する。すなわち、各回路ブロック４０に接続される周波数周波数信号ＦＴＢＬ［４：０］のビット値を伝達する信号線は、タイミング検証の結果に基づいて配線される。そして、各論理回路ＬＯＧＩＣを動作または停止する条件（イネーブル信号ＥＮの論理）は、イネーブル生成回路ＥＮＧＥＮによる判定と、周波数制御信号ＦＣＮＴの論理とに基づいて決定される。
【００３０】
イネーブル生成回路ＥＮＧＥＮは、クロックＣＬＫに同期して動作し、論理回路ＬＯＧＩＣを動作させる動作期間にイネーブル信号ＥＮを有効レベルに設定し、論理回路ＬＯＧＩＣの動作を停止する停止期間にイネーブル信号ＥＮを無効レベルに設定する。例えば、イネーブル信号ＥＮの有効レベルはロウレベルであり、イネーブル信号ＥＮの無効レベルはハイレベルである。イネーブル生成回路ＥＮＧＥＮは、論理回路ＬＯＧＩＣの動作期間および停止期間を、入力信号の論理に基づいて判定する。イネーブル生成回路ＥＮＧＥＮの例は、図３に示される。
【００３１】
イネーブル制御回路ＦＳは、周波数制御信号ＦＣＮＴがハイレベルの場合、イネーブル信号ＥＮの論理を反転してイネーブル制御信号ＥＮＣとして出力する。また、イネーブル制御回路ＦＳは、周波数制御信号ＦＣＮＴがロウレベルの場合、イネーブル信号ＥＮの論理に拘わらず、イネーブル制御信号ＥＮＣをハイレベルに設定する。すなわち、イネーブル制御回路ＦＳは、周波数制御信号ＦＣＮＴがハイレベルの場合、イネーブル信号ＥＮに基づいて有効状態または無効状態のイネーブル制御信号ＥＮＣを出力する。例えば、ハイレベルのイネーブル制御信号ＥＮＣは有効状態を示し、ロウレベルのイネーブル制御信号ＥＮＣは無効状態を示す。また、イネーブル制御回路ＦＳは、周波数制御信号ＦＣＮＴがロウレベルの場合、イネーブル制御信号ＥＮＣを有効状態に設定する。例えば、イネーブル制御回路ＦＳは、ナンドゲートを含む。
【００３２】
クロックゲーティング回路ＧＢは、イネーブル制御信号ＥＮＣがハイレベル（有効状態）の場合、三角形で示すバッファ回路等でクロックＣＬＫを遅延させたクロックＤＣＬＫをクロックＧＣＬＫとして論理回路ＬＯＧＩＣに出力する。クロックゲーティング回路ＧＢは、イネーブル制御信号ＥＮＣがロウレベル（無効状態）の場合、クロックＧＣＬＫの出力を停止する。例えば、クロックゲーティング回路ＧＢは、アンドゲートを含む。イネーブル制御回路ＦＳおよびクロックゲーティング回路ＧＢは、クロック供給回路の一例である。
【００３３】
図２では、クロック周波数に応じてクロックゲーティングの制御を有効または無効にするイネーブル制御回路ＦＳは、イネーブル生成回路ＥＮＧＥＮから出力されるイネーブル信号ＥＮをクロックゲーティング回路ＧＢに伝達する経路に追加される。これにより、図７および図８に示す動作を実現する半導体装置ＳＥＭ２を、既存の設計データの改良により設計することができる。例えば、既存の設計データでは、イネーブル生成回路ＥＮＧＥＮから出力されるイネーブル信号ＥＮは、クロックゲーティング回路ＧＢに直接供給される。
【００３４】
回路ブロック４０ａのゲーティング可能周波数は１．４ＧＨｚであり、回路ブロック４０ａで受信する周波数制御信号ＦＣＮＴの論理は、周波数設定テーブル１０から出力される周波数信号ＦＴＢＬ［４：０］のうちビットＦＴＢＬ［２］の論理に等しい。ビットＦＴＢＬ［２］がロウレベルの場合、クロックＣＬＫの周波数は２．０ＧＨｚ、１．８ＧＨｚまたは１．６ＧＨｚであり、ビットＦＴＢＬ［２］がハイレベルの場合、クロックＣＬＫの周波数は１．４ＧＨｚ、１．２ＧＨｚまたは１．０ＧＨｚである。このため、回路ブロック４０ａのイネーブル制御回路ＦＳは、クロックＣＬＫの周波数が１．６ＧＨｚ以上の場合、イネーブル制御信号ＥＮＣをハイレベルに固定する。また、回路ブロック４０ａのイネーブル制御回路ＦＳは、クロックＣＬＫの周波数が１．４ＧＨｚ以下の場合、イネーブル信号ＥＮの論理を反転してイネーブル制御信号ＥＮＣとして出力する。
【００３５】
回路ブロック４０ｂのゲーティング可能周波数は１．６ＧＨｚであり、回路ブロック４０ｂのイネーブル制御回路ＦＳは、周波数信号ＦＴＢＬ［４：０］のうちビットＦＴＢＬ［１］の論理を周波数制御信号ＦＣＮＴとして受信する。回路ブロック４０ｃのゲーティング可能周波数は１．８ＧＨｚであり、回路ブロック４０ｃのイネーブル制御回路ＦＳは、周波数信号ＦＴＢＬ［４：０］のうちビットＦＴＢＬ［０］の論理を周波数制御信号ＦＣＮＴとして受信する。
【００３６】
一方、回路ブロック４０ｄのゲーティング可能周波数は２．０ＧＨｚであり、どの周波数においてもクロックゲーティングの制御が可能である。このため、回路ブロック４０ｄのイネーブル制御回路ＦＳは、ハイレベル（例えば、電源電圧ＶＤＤ）を周波数制御信号ＦＣＮＴとして受信する。そして、回路ブロック４０ｄのイネーブル制御回路ＦＳは、クロックＣＬＫの周波数に拘わりなく、イネーブル生成回路ＥＮＧＥＮが生成したイネーブル信号ＥＮの論理を反転してイネーブル制御信号ＥＮＣとして出力する。これにより、クロックゲーティング回路ＧＢは、クロックＣＬＫの周波数に拘わりなく、イネーブル信号ＥＮの論理に応じて、クロックＧＣＬＫを論理回路ＬＯＧＩＣに供給または停止する。ゲーティング可能周波数が最大周波数である２．０ＧＨｚと等しい回路ブロック４０ｄにおいても、他の回路ブロック４０ａ、４０ｂ、４０ｃと同様にイネーブル制御回路ＦＳを搭載することで、回路ブロック４０の一部を共通化することができる。これにより、回路ブロック４０ｄにイネーブル制御回路ＦＳを搭載しない場合に比べて、論理設計およびタイミング検証を簡易にすることができる。
【００３７】
図３は、図２に示すイネーブル生成回路ＥＮＧＥＮおよび論理回路ＬＯＧＩＣの一例を示す。図３において、符号の末尾に”ａ”を付す信号および回路は、図２に示す回路ブロック４０ａに含まれ、符号の末尾に”ｂ”を付す信号および回路は、図２に示す回路ブロック４０ｂに含まれる。
【００３８】
図３に示す例では、イネーブル生成回路ＥＮＧＥＮａは、フリップフロップＦＦ４ａおよびノアゲートＮＯＲを有し、イネーブル生成回路ＥＮＧＥＮｂは、フリップフロップＦＦ４ｂおよびアンドゲートＡＮＤを有する。論理回路ＬＯＧＩＣａは、フリップフロップＦＦ０ａ、ＦＦ１ａ、ＦＦ２ａ、ＦＦ３ａおよび組み合わせ回路ＣＯＭＢａを有し、論理回路ＬＯＧＩＣｂは、フリップフロップＦＦ０ｂ、ＦＦ１ｂ、ＦＦ２ｂ、ＦＦ３ｂおよび組み合わせ回路ＣＯＭＢｂを有する。
【００３９】
論理回路ＬＯＧＩＣａは、組み合わせ回路ＣＯＭＢａを用いてフリップフロップＦＦ０ａ、ＦＦ１ａで受けたデータの演算を１クロックサイクル以内に実行し、次のクロックサイクルに同期してフリップフロップＦＦ２ａ、ＦＦ３ａから演算結果を出力する。同様に、論理回路ＬＯＧＩＣｂは、組み合わせ回路ＣＯＭＢｂを用いてフリップフロップＦＦ０ｂ、ＦＦ１ｂで受けたデータの演算を１クロックサイクル以内に実行し、次のクロックサイクルに同期してフリップフロップＦＦ２ｂ、ＦＦ３ｂから演算結果を出力する。
【００４０】
また、半導体装置ＳＥＭ２は、フリップフロップＦＦ５、ＦＦ６およびマルチプレクサＭＵＸを有する。フリップフロップＦＦ５は、クロックＣＬＫに同期して選択信号ＳＥＬ０１を選択信号ＳＥＬ０２としてフリップフロップＦＦ６に出力する。フリップフロップＦＦ６は、クロックＣＬＫに同期して選択信号ＳＥＬ０２を選択信号ＳＥＬとしてマルチプレクサＭＵＸに出力する。フリップフロップＦＦ５、ＦＦ６の間には、フリップフロップＦＦ５、ＦＦ６に供給されるクロックＣＬＫの位相を揃えるためのバッファ回路（三角形で示す）が挿入される。選択信号ＳＥＬ０１、ＳＥＬ０２、ＳＥＬは、論理回路ＬＯＧＩＣａを動作させ、論理回路ＬＯＧＩＣｂの動作を停止する場合に順次ハイレベルに設定される。また、選択信号ＳＥＬ０１、ＳＥＬ０２、ＳＥＬは、論理回路ＬＯＧＩＣｂを動作させ、論理回路ＬＯＧＩＣａの動作を停止する場合に順次ロウレベルに設定される。換言すれば、選択信号ＳＥＬ０１、ＳＥＬ０２、ＳＥＬは、論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂを排他的に動作させるために生成される。
【００４１】
マルチプレクサＭＵＸは、ハイレベルＨの選択信号ＳＥＬを受けている期間、論理回路ＬＯＧＩＣａが出力する出力信号ＯＵＴａを選択し、選択した出力信号ＯＵＴａを出力信号ＯＵＴとして出力する。また、マルチプレクサＭＵＸは、ロウレベルＬの選択信号ＳＥＬを受けている期間、論理回路ＬＯＧＩＣｂが出力する出力信号ＯＵＴｂを選択し、選択した出力信号ＯＵＴｂを出力信号ＯＵＴとして出力する。
【００４２】
イネーブル生成回路ＥＮＧＥＮａのフリップフロップＦＦ４ａは、クロックＣＬＫに同期して選択信号ＳＥＬ０１を受信し、選択信号ＳＥＬ０２ａとしてノアゲートＮＯＲに出力する。ノアゲートＮＯＲは、選択信号ＳＥＬ０１または選択信号ＳＥＬ０２ａがハイレベルの期間にイネーブル信号ＥＮａをロウレベルに設定し、選択信号ＳＥＬ０１、ＳＥＬ０２ａが共にロウレベルの期間にイネーブル信号ＥＮａをハイレベルに設定する。
【００４３】
イネーブル生成回路ＥＮＧＥＮｂのフリップフロップＦＦ４ｂは、クロックＣＬＫに同期して選択信号ＳＥＬ０１を受信し、選択信号ＳＥＬ０２ｂとしてアンドゲートＡＮＤに出力する。アンドゲートＡＮＤは、選択信号ＳＥＬ０１または選択信号ＳＥＬ０２ｂがロウレベルの期間にイネーブル信号ＥＮｂをロウレベルに設定し、選択信号ＳＥＬ０１、ＳＥＬ０２ｂが共にハイレベルの期間にイネーブル信号ＥＮｂをハイレベルに設定する。なお、選択信号ＳＥＬ０２ａ、ＳＥＬ０２ｂは、フリップフロップＦＦ５が出力する選択信号ＳＥＬ０２に同期して生成される。
【００４４】
図４は、図３に示すイネーブル生成回路ＥＮＧＥＮａ、ＥＮＧＥＮｂおよび論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂの動作の一例を示す。周波数制御信号ＦＣＮＴａ、ＦＮＣＴｂがハイレベルＨに設定される波形は、クロックゲーティングの制御が有効に設定される場合の動作の例を示す。周波数制御信号ＦＣＮＴａ、ＦＮＣＴｂがロウレベルＬに設定される波形は、クロックゲーティングの制御が無効に設定される場合の動作の例を示す。
【００４５】
選択信号ＳＥＬ０１、ＳＥＬ０２（ＳＥＬ０２ａ、ＳＥＬ０２ｂ）、ＳＥＬは、クロックゲーティングの制御の有効／無効に拘わりなく、クロックＣＬＫに同期して順次生成される（図４（ａ）、（ｂ））。
【００４６】
クロックゲーティングの制御が有効に設定された場合、イネーブル信号ＥＮＣａは、選択信号ＳＥＬ０１の立ち上がりエッジに同期してハイレベル（有効レベル）に変化する（図４（ｃ））。また、イネーブル信号ＥＮＣａは、選択信号ＳＥＬ０２ａの立ち下がりエッジに同期してロウレベル（無効レベル）に変化する（図４（ｄ））。イネーブル信号ＥＮＣａがハイレベルの期間、クロックＣＬＫに同期してクロックＧＣＬＫａが生成され、イネーブル信号ＥＮＣａがロウレベルの期間、クロックＧＣＬＫａの生成が停止される（図４（ｅ）、（ｆ））。論理回路ＬＯＧＩＣａは、クロックＧＣＬＫａに同期して動作し、出力信号ＯＵＴａを生成し、生成した出力信号ＯＵＴａをクロックＧＣＬＫａの立ち上がりエッジに同期して順次出力する（図４（ｇ））。破線で示す出力信号ＯＵＴａの波形は、クロックＧＣＬＫａの停止により、論理回路ＬＯＧＩＣａが出力信号ＯＵＴａの論理を保持していることを示す。
【００４７】
クロックゲーティングの制御が有効に設定された場合、イネーブル信号ＥＮＣｂは、選択信号ＳＥＬ０１の立ち下がりエッジに同期してハイレベル（有効レベル）に変化する（図４（ｈ））。また、イネーブル信号ＥＮＣｂは、選択信号ＳＥＬ０２ｂの立ち上がりエッジに同期してロウレベル（無効レベル）に変化する（図４（ｉ））。イネーブル信号ＥＮＣｂがハイレベルの期間、クロックＣＬＫに同期してクロックＧＣＬＫｂが生成され、イネーブル信号ＥＮＣｂがロウレベルの期間、クロックＧＣＬＫｂの生成が停止される（図４（ｊ）、（ｋ））。論理回路ＬＯＧＩＣｂは、クロックＧＣＬＫｂに同期して動作し、出力信号ＯＵＴｂを生成し、生成した出力信号ＯＵＴｂをクロックＧＣＬＫｂの立ち上がりエッジに同期して順次出力する（図４（ｌ））。破線で示す出力信号ＯＵＴｂの波形は、クロックＧＣＬＫｂの停止により、論理回路ＬＯＧＩＣｂが出力信号ＯＵＴｂの論理を保持していることを示す。
【００４８】
マルチプレクサＭＵＸは、選択信号ＳＥＬがハイレベルの期間、出力信号ＯＵＴａを出力信号ＯＵＴとして出力し、選択信号ＳＥＬがロウレベルの期間、出力信号ＯＵＴｂを出力信号ＯＵＴとして出力する（図４（ｍ）、（ｎ））。クロックゲーティングの制御を有効に設定し、論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂに供給するクロックＧＣＬＫａ、ＧＣＬＫｂの一方を停止することで、クロックゲーティングの制御をしない場合に比べて消費電力を削減することができる。
【００４９】
なお、各論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂが演算を実行する期間（１クロックサイクル）を考慮して、クロックＧＣＬＫａ、ＧＣＬＫｂは、選択信号ＳＥＬの切り替わりより１クロックサイクル前に生成が開始される。また、出力信号ＯＵＴａ、ＯＵＴｂを保持するために、クロックＧＣＬＫａ、ＧＣＬＫｂは、選択信号ＳＥＬの切り替わりに合わせて停止される。クロックＧＣＬＫａ、ＧＣＬＫｂを生成／停止するために、イネーブル制御信号ＥＮＣａ、ＥＮＣｂは、選択信号ＳＥＬの切り替わりより２クロックサイクル前にハイレベルに変化し、選択信号ＳＥＬの切り替わりより１クロックサイクル前にロウベルに変化する。そして、図３に示すように、イネーブル制御信号ＥＮＣａを生成するために、フリップフロップＦＦ４ａおよびノアゲートＮＯＲを含むイネーブル生成回路ＥＮＧＥＮａが設けられる。また、イネーブル制御信号ＥＮＣｂを生成するために、フリップフロップＦＦ４ｂおよびアンドゲートＡＮＤを含むイネーブル生成回路ＥＮＧＥＮｂが設けられる。
【００５０】
一方、クロックゲーティングの制御が無効に設定された場合（ＦＣＮＴａ、ＦＮＣＴｂ＝Ｌ）、選択信号ＳＥＬの論理に拘わらず、クロックＧＣＬＫａ、ＧＣＬＫｂが生成される（図４（ｏ）、（ｐ））。論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂのフリップフロップＦＦは、クロックＧＣＬＫａ、ＧＣＬＫｂに同期して常に動作する。マルチプレクサＭＵＸの動作は、クロックゲーティングの制御が有効に設定される場合と同じである。周波数制御信号ＦＣＮＴａ、ＦＮＣＴｂがロウレベルＬに設定される波形において、破線で示す出力信号ＯＵＴａ、ＯＵＴｂの波形は、無効なデータを示す。
【００５１】
なお、図４は、クロックゲーティングの制御の有効／無効の切り替えを、論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂで同時に実行される例を示す。しかしながら、クロックゲーティングの制御の有効／無効の切り替えは、各論理回路ＬＯＧＩＣａ、ＬＯＧＩＣｂで互いに独立に実行されてもよい。
【００５２】
図５は、図２に示す周波数設定テーブル１０の一例を示す。周波数設定テーブル１０は、６種類のクロックＣＬＫの周波数（２．０ＧＨｚ、１．８ＧＨｚ、１．６ＧＨｚ、１．４ＧＨｚ、１．２ＧＨｚ、１．０ＧＨｚ）のそれぞれに対応して周波数信号ＦＴＢＬ［４：０］の論理を記憶する６つの記憶領域を有する。周波数設定テーブル１０は、６種類のクロック周波数のいずれか１つを指定する周波数設定信号ＦＲＱ（例えば、１０進数で”０”から”５”）に基づいて、記憶領域のいずれかを選択する。そして、周波数設定テーブル１０は、選択した記憶領域が記憶する５ビットの周波数信号ＦＴＢＬ［４：０］を出力する。
【００５３】
図２に示すように、イネーブル制御回路ＦＳは、ＰＬＬ３０が生成するクロックＣＬＫの周波数を設定する周波数信号ＦＴＢＬ［４：０］を用いてイネーブル制御信号ＥＮＣの生成を制御する。さらに、イネーブル制御回路ＦＳは、クロック周波数が下がる毎に値が”０”から”１”に反転するビットの数が増加する周波数情報ＦＴＢＬ［４：０］のいずれかのビット値を周波数制御信号ＦＣＮＴとして受信する。すなわち、イネーブル制御回路ＦＳは、ゲーティング可能周波数を境界に論理が反転する周波数信号ＦＴＢＬ［４：０］のビット値ＦＴＢＬ［ｉ］（ｉは、４、３、２、１、０のいずれか）を受信する。これにより、周波数信号ＦＴＢＬ［４：０］のビット値ＦＴＢＬ［ｉ］をイネーブル制御回路ＦＳの入力に接続することで、イネーブル制御信号ＥＮＣの生成を制御することができる。この結果、イネーブル制御信号ＥＮＣの生成を制御する制御信号を新たな回路を用いて生成する場合に比べて、半導体装置ＳＥＭ２の設計を簡易にすることができる。
【００５４】
図６は、図２に示す回路ブロック４０ａの論理回路ＬＯＧＩＣに供給されるクロックＧＣＬＫの生成タイミングの一例を示す。回路ブロック４０ａにおいて、クロックゲーティングの制御が可能なクロックＣＬＫの周波数であるゲーティング可能周波数は１．４ＧＨｚである。図６では、クロック周波数に拘わりなく、周波数制御信号ＦＣＮＴはハイレベルＨに設定され、クロックゲーティング回路ＧＢは、クロックＣＬＫをクロックＧＣＬＫとして出力するとする。
【００５５】
イネーブル生成回路ＥＮＧＥＮは、クロックＣＬＫの立ち上がりエッジに同期して入力信号を受信した後、遅延時間ＤＬＹ１後に図示しないイネーブル信号ＥＮをハイレベルまたはロウレベルに変化させる。遅延時間ＤＬＹ１は、イネーブル生成回路ＥＮＧＥＮ内の組み合わせ回路の動作時間である。遅延時間ＤＬＹ２は、クロックＧＣＬＫをクロックゲーティング回路ＧＢから論理回路ＬＯＧＩＣのフリップフロップＦＦまで伝達する信号線の伝搬遅延時間である。このため、遅延時間ＤＬＹ１、ＤＬＹ２は、クロックＣＬＫの周波数に依存しない。クロックゲーティング回路ＧＢは、クロックＣＬＫに対して遅延時間ＤＬＹ２だけ位相の早いクロックＤＣＬＫを受信する。これにより、論理回路ＬＯＧＩＣのフリップフロップＦＦのクロック入力は、クロックＣＬＫの位相と等しい位相のクロックＧＣＬＫを受信する。なお、クロックＣＬＫに対するクロックＤＣＬＫの位相は、図２に三角形で示すバッファ回路等により調整される。
【００５６】
図６の上側と中央の波形では、遅延時間ＤＬＹ１、ＤＬＹ２の和は、クロックＣＬＫの１周期以下である。この場合、論理回路ＬＯＧＩＣのフリップフロップＦＦは、イネーブル制御信号ＥＮＣがハイレベルの期間に、クロックＣＬＫの位相と等しい位相のクロックＧＣＬＫを受信することができ、論理回路ＬＯＧＩＣは、正常に動作する。すなわち、クロック信号ＣＬＫに対するイネーブル制御信号ＥＮＣのタイミング制約は満足する。
【００５７】
一方、遅延時間ＤＬＹ１、ＤＬＹ２の和がクロックＣＬＫの１周期より大きい場合（図６の下側の波形）、イネーブル制御信号ＥＮＣの遷移エッジは、クロックＤＣＬＫの立ち上がりエッジより遅くなる。このため、イネーブル制御信号ＥＮＣがハイレベルに変化する場合におけるクロックＧＣＬＫの立ち上がりエッジの位相は、クロックＣＬＫの立ち上がりエッジの位相より遅くなる。また、イネーブル制御信号ＥＮＣがロウレベルに変化する場合にクロックＧＣＬＫにハザードが発生するおそれがある。すなわち、図６の下側の波形では、クロック信号ＣＬＫに対するイネーブル制御信号ＥＮＣのタイミング制約は満足せず、論理回路ＬＯＧＩＣが誤動作するおそれがある。
【００５８】
誤動作を避けるため、図２に示す回路ブロック４０ａでは、クロック周波数が１．４ＧＨｚより高い場合、周波数信号ＦＴＢＬ［２］の論理に基づいて周波数制御信号ＦＣＮＴがロウレベルに設定され、クロックゲーティングの制御が無効に設定される。クロックゲーティングの制御が無効に設定された場合、クロック周波数に拘わりなく、イネーブル制御信号ＥＮＣはハイレベルに固定され、クロックＣＬＫの位相と同じ位相を有するクロックＧＣＬＫが常に生成される。
【００５９】
このように、クロックゲーティングの制御を有効または無効にするクロック周波数（すなわち、ゲーティング可能周波数）は、イネーブル制御回路ＦＳおよびクロックゲーティング回路ＧＢのタイミングマージンに基づいて、回路ブロック４０毎に設定される。回路ブロック４０の電気的特性に応じて、クロックゲーティングの制御を有効または無効にするクロック周波数を回路ブロック４０毎に設定することで、図７および図８で説明するように、半導体装置ＳＥＭ２の消費電力を削減することができる。
【００６０】
図７は、図２に示す回路ブロック４０の動作の一例を示す。６種類のクロック周波数において、網掛けで示す回路ブロック４０は、クロックゲーティングの制御が有効であり、イネーブル制御信号ＥＮＣがイネーブル生成回路ＥＮＧＥＮの動作に基づいてロウレベルＬまたはハイレベルＨに変化することを示す。図７の最も左側の列のかぎ括弧内に示す周波数は、ゲーティング可能周波数を示す。６種類のクロック周波数において、白抜きで示す回路ブロック４０は、ロウレベルＬの周波数制御信号ＦＣＮＴにより、イネーブル制御信号ＥＮＣがハイレベルＨに固定されることを示す。イネーブル制御信号ＥＮＣがハイレベルＨに固定される場合、クロックゲーティングの制御は無効になり、クロックＧＣＬＫは、クロックＣＬＫに同期して常に生成される。
【００６１】
各回路ブロック４０は、クロックＣＬＫの周波数がゲーティング可能周波数以下の場合、クロックゲーティングの制御を実行する。この場合、イネーブル制御信号ＥＮＣがロウレベルＬの期間の回路ブロック４０の消費電力を、イネーブル制御信号ＥＮＣがハイレベルＨの期間の回路ブロック４０の消費電力に比べて削減することができる。
【００６２】
一方、ゲーティング可能周波数が２．０ＧＨｚの回路ブロック４０ｄを除く回路ブロック４０は、クロックＣＬＫの周波数がゲーティング可能周波数より高い場合、クロックゲーティングの制御が無効に設定される。この場合、イネーブル制御信号ＥＮＣはハイレベルＨに固定され、クロックＧＣＬＫが常に生成されるため、回路ブロック４０の消費電力は、クロックゲーティングの制御を有効に設定する場合に比べて増加する。
【００６３】
但し、半導体装置ＳＥＭ２は、回路ブロック４０毎に、クロックＣＬＫの周波数に応じて、クロックゲーティングの制御を有効または無効にする。このため、クロックゲーティングの制御を、ゲーティング可能周波数がクロックＣＬＫの最高周波数より低い回路ブロックで一律に無効に設定する場合（図９）に比べて、半導体装置ＳＥＭ２の消費電力を削減することができる。
【００６４】
図８は、図２に示す半導体装置ＳＥＭ２の動作の一例を示す。図８では、ゲーティング可能周波数が共通の回路ブロック４０（４０ａ、４０ｂ、４０ｃ、４０ｄ）が４つずつあることを示す。図８において、斜線の矩形は、イネーブル制御信号ＥＮＣがロウレベルＬに設定され、回路ブロック４０内の論理回路ＬＯＧＩＣへのクロックＧＣＬＫの供給が停止される期間を示す。白抜きの矩形は、イネーブル制御信号ＥＮＣがハイレベルＨに設定され、回路ブロック４０内の論理回路ＬＯＧＩＣにクロックＧＣＬＫが供給される期間を示す。
【００６５】
ゲーティング可能周波数が１．４ＧＨｚの４つの回路ブロック４０ａ（１）−４０ａ（４）は、クロックＣＬＫの周波数が２．０ＧＨｚ、１．８ＧＨｚ、または１．６ＧＨｚに設定される期間、クロックゲーティングの制御を無効に設定する。ゲーティング可能周波数が１．６ＧＨｚの４つの回路ブロック４０ｂ（１）−４０ｂ（４）は、クロックＣＬＫの周波数が２．０ＧＨｚまたは１．８ＧＨｚに設定される期間、クロックゲーティングの制御を無効に設定する。ゲーティング可能周波数が１．８ＧＨｚの４つの回路ブロック４０ｃ（１）−４０ｃ（４）は、クロックＣＬＫの周波数が２．０ＧＨｚに設定される期間、クロックゲーティングの制御を無効に設定する。クロックゲーティングの制御を無効にすることにより、イネーブル制御信号ＥＮＣは、図２に示すイネーブル信号ＥＮの論理に拘わらずハイレベルＨに固定され、クロックＧＣＬＫは、論理回路ＬＯＧＩＣの動作しない期間にも論理回路ＬＯＧＩＣに供給される。図８では、各回路ブロック４０において、消費電力を削減するためにクロックゲーティングの制御を実行するクロック周波数が存在することを示す。
【００６６】
図９は、イネーブル制御回路ＦＳを持たない半導体装置の動作の一例を示す。図８と同様の動作については、詳細な説明は省略する。
【００６７】
図９では、クロックゲーティングの制御は、ゲーティング可能周波数がクロックＣＬＫの最高周波数（この例では、２．０ＧＨｚ）より低い回路ブロック４０ａ、４０ｂ、４０ｃで一律に無効に設定される。このため、回路ブロック４０ａ、４０ｂ、４０ｃの論理回路ＬＯＧＩＣのフリップフロップＦＦは、クロックＣＬＫの周波数に拘わらず、論理回路ＬＯＧＩＣが動作しない期間にもクロックＧＣＬＫを受信する。
【００６８】
図８および図９において、斜線の矩形で示す領域は、論理回路ＬＯＧＩＣへのクロックＧＣＬＫの供給を停止することで、消費電力を削減する期間を示す。すなわち、図８および図９において、斜線の矩形で示す領域の数および領域で示される期間の合計は、消費電力の削減量に対応しており、図８に示す半導体装置ＳＥＭ２の消費電力は、図９に示す半導体装置の消費電力に比べて小さいことが分かる。
【００６９】
図１０は、図２に示す半導体装置ＳＥＭ２のクロック周波数による消費電力の変化の一例を示す。太い実線は、半導体装置ＳＥＭ２の消費電力の変化を示し、太い破線は、イネーブル制御回路ＦＳ（図２）を持たない半導体装置の消費電力の変化を示す。
【００７０】
イネーブル制御回路ＦＳを持たない半導体装置では、クロックＣＬＫの周波数を動的に変更するＤＦＳ手法によりクロックＣＬＫの周波数が段階的に下げられる毎に消費電力が削減される。これに対して、図２に示す半導体装置ＳＥＭ２では、クロックＣＬＫの周波数が段階的に下げられる毎に、クロックゲーティングの制御が有効になる回路ブロック４０の数が増えることで、消費電力がさらに削減される。すなわち、半導体装置ＳＥＭ２では、図８に示すように、クロックＣＬＫの周波数が下がるほど、斜線の矩形で示すクロックＧＣＬＫの供給が停止される回路ブロック４０の数が増えるため、消費電力をさらに削減することができる。
【００７１】
図１１は、図２に示す半導体装置ＳＥＭ２の設計フローの一例を示す。図１１に示す処理は、論理設計ツール、レイアウト設計ツールおよびタイミング検証ツールを使用して実行される。
【００７２】
まず、ステップＳ１００において、半導体装置ＳＥＭ２の機能を実現する論理回路ＬＯＧＩＣ等の論理設計が実行される。次に、ステップＳ１０２において、イネーブル生成回路ＥＮＧＥＮおよびクロックゲーティング回路ＧＢ等のクロックゲーティングの制御を実現するクロックゲーティング論理が、論理設計を完了した論理に追加される。次に、ステップＳ１０４において、クロックＣＬＫの周波数に応じてクロックゲーティングの制御を有効または無効に設定するイネーブル制御回路ＦＳの論理が、クロックゲーティング論理を追加した論理に挿入される。この際、ステップＳ１０８での静的タイミング検証を最大周波数（この例では、２．０ＧＨｚ）で実行するため、各回路ブロック４０に供給される周波数制御信号ＦＣＮＴは、最大周波数に対応してハイレベルに固定される。
【００７３】
次に、ステップＳ１０６において、ステップＳ１０４の完了後の論理（クロックゲーティング論理およびイネーブル制御回路ＦＳの論理を追加した論理）を用いて、半導体装置ＳＥＭ２のレイアウト設計が実行される。レイアウト設計では、周波数制御信号ＦＣＮＴの信号線は、最大周波数に対応して電源線等のハイレベルの信号線に暫定的に接続される。
【００７４】
次に、ステップＳ１０８において、クロックＣＬＫを最大周波数（この例では、２．０ＧＨｚ）に設定し、ＳＴＡ（Static Timing Analysis）等の静的タイミング検証が実行される。静的タイミング検証は、イネーブル制御信号ＥＮＣをハイレベルに固定し、クロックゲーティングの制御を無効にして実行される。次に、ステップＳ１１０において、静的タイミング検証がパスした場合、処理はステップＳ１１２に移行され、静的タイミング検証がフェイルした場合、処理はステップＳ１００の論理設計の工程に戻される。
【００７５】
ステップＳ１１２において、６種類のクロック周波数の各々において、クロックゲーティングの制御を有効にした場合の静的タイミング検証が実行される。例えば、クロックゲーティングの制御を有効にした場合の静的タイミング検証では、図６に示す遅延時間ＤＬＹ１、ＤＬＹ２の和と、クロックＣＬＫの周期との関係が検証される。すなわち、各回路ブロック４０のゲーティング可能周波数が求められる。次に、ステップＳ１１４において、静的タイミング検証がパスした場合、処理は終了し、静的タイミング検証がフェイルした場合、処理はステップＳ１１６に移行される。なお、ステップＳ１１２による初回の静的タイミング検証で使用されるレイアウトデータでは、周波数制御信号ＦＣＮＴの信号線は、最大周波数に対応して電源線（ハイレベル）等に接続される。このため、初回の静的タイミング検証がパスする場合、全ての回路ブロック４０のゲーティング可能周波数が最大周波数であることを示す。
【００７６】
ステップＳ１１６において、クロックゲーティングの制御の静的タイミング検証でフェイルした回路ブロック４０について、周波数制御信号ＦＣＮＴは、ステップＳ１１２で求めたゲーティング可能周波数に対応する周波数制御信号ＦＣＮＴに変更される。この後、処理は、ステップＳ１０６のレイアウト設計に戻される。すなわち、変更された周波数制御信号ＦＣＮＴの信号線を回路ブロック４０に接続するレイアウトが再度実行される。
【００７７】
以上、図２から図１１に示す実施形態においても、図１に示す実施形態と同様に、クロックゲーティングの制御をクロック周波数に応じて実行するか否かを動的に切り替えることで、半導体装置ＳＥＭ２の消費電力を削減することできる。すなわち、クロックゲーティングの制御を、ゲーティング可能周波数がクロックＣＬＫの最高周波数より低い回路ブロック４０で一律に無効に設定する場合（図９）に比べて、半導体装置ＳＥＭ２の消費電力を削減することができる。
【００７８】
さらに、図２から図１１に示す実施形態では、イネーブル生成回路ＥＮＧＥＮから出力されるイネーブル信号ＥＮをクロックゲーティング回路ＧＢに伝達する経路にイネーブル制御回路ＦＳが追加される。これにより、図７および図８に示す動作を実現する半導体装置ＳＥＭ２を、既存の設計データの改良により設計することができる。回路ブロック４０の電気的特性（ゲーティング可能周波数）に応じて、クロックゲーティングの制御を有効または無効にするクロック周波数を回路ブロック４０毎に設定することで、半導体装置ＳＥＭ２の消費電力を図９に比べて削減することができる。
【００７９】
ゲーティング可能周波数が最大のクロック周波数と等しい回路ブロック４０ｄにイネーブル制御回路ＦＳを搭載することで、回路ブロック４０ｄにイネーブル制御回路ＦＳを搭載しない場合に比べて、論理設計およびタイミング検証を簡易にすることができる。イネーブル制御回路ＦＳは、周波数設定テーブル１０から出力される周波数信号ＦＴＢＬ［４：０］を用いてイネーブル制御信号ＥＮＣの生成を制御する。これにより、イネーブル制御信号ＥＮＣの生成を制御する制御信号を新たな回路を用いて生成する場合に比べて、半導体装置ＳＥＭ２の設計を簡易にすることができる。
【００８０】
図１２は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２に示す要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図１２に示す半導体装置ＳＥＭ３は、図２に示す半導体装置ＳＥＭ２に試験スイッチＴＳＷ１（ＴＳＷ１０、ＴＳＷ１２、ＴＳＷ１４、ＴＳＷ１６、ＴＳＷ１８）およびスイッチ制御回路５０を追加している。半導体装置ＳＥＭ３のその他の構成は、周波数信号ＦＴＢＬ［４：０］が試験スイッチＴＳＷ１を介して回路ブロック４０ａ、４０ｂ、４０ｃに供給されることを除き、図２に示す半導体装置ＳＥＭ２と同様である。半導体装置ＳＥＭ３は、クロックＣＬＫの周波数を動的に変更するＤＦＳ手法を採用しているが、クロックＣＬＫの周波数および電源電圧を動的に変更するＤＶＦＳ手法を採用してもよい。なお、各試験スイッチＴＳＷ１から出力される周波数制御信号ＦＣＮＴは、ゲーティング可能周波数が互いに同じ回路ブロック４０に共通に供給される。
【００８１】
各試験スイッチＴＳＷ１は、スイッチ制御回路５０から出力されるスイッチ制御信号ＳＣＮＴ１（ＳＣＮＴ１０、ＳＣＮＴ１２、ＳＣＮＴ１４、ＳＣＮＴ１６、ＳＣＮＴ１８）に基づいて周波数信号ＦＴＢＬ［４：０］のビットのいずれかを選択する。そして、各試験スイッチＴＳＷ１は、選択したビットを周波数制御信号ＦＣＮＴとして出力する。各試験スイッチＴＳＷ１の例は、図１３に示される。
【００８２】
スイッチ制御回路５０は、セット信号ＳＷＳＥＴおよびプログラム信号ＳＷＰＧＭに基づいて、スイッチ制御信号ＳＣＮＴ１０、ＳＣＮＴ１２、ＳＣＮＴ１４、ＳＣＮＴ１６、ＳＣＮＴ１８を生成する。セット信号ＳＷＳＥＴは、半導体装置ＳＥＭ３の試験工程において、各スイッチ制御信号ＳＣＮＴ１を生成するためにスイッチ制御回路５０に供給される。プログラム信号ＳＷＰＧＭは、半導体装置ＳＥＭ３の動作試験後に、各スイッチ制御信号ＳＣＮＴ１の論理を、動作試験により決定した論理に設定するためにスイッチ制御回路５０に供給される。セット信号ＳＷＳＥＴおよびプログラム信号ＳＷＰＧＭは、半導体装置ＳＥＭ３の外部から供給されてもよく、半導体装置ＳＥＭ３の内部で生成されてもよい。
【００８３】
図１３は、図１２に示す試験スイッチＴＳＷ１（ＴＳＷ１０−ＴＳＷ１８）の一例を示す。各試験スイッチＴＳＷ１は、互いに同じ構成を有しており、スイッチ制御信号ＳＣＮＴ１（ＳＣＮＴ１０−ＳＣＮＴ１８）の論理に応じて３つの入力端子のいずれか１つを選択して出力する。各試験スイッチＴＳＷ１において、最も下の入力端子で受信するビット値ＦＴＢＬ［ｉ］（ｉは、４、３、２、１、０のいずれか）は、設計完了時に周波数制御信号ＦＣＮＴとして出力されるビット値（デフォルト値）を示す。なお、半導体装置ＳＥＭ３の設計フローは、図１１と同様である。
【００８４】
試験スイッチＴＳＷ１０は、ゲーティング可能周波数が１．０ＧＨｚの回路ブロック４０に供給される周波数制御信号ＦＣＮＴの論理を、周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［４］、ＦＴＢＬ［３］、ＦＴＢＬ［２］のいずれかから選択する。半導体装置ＳＥＭ３の試験工程において、ゲーティング可能周波数が１．０ＧＨｚの全ての回路ブロック４０が、１．２ＧＨｚの周波数のクロックＣＬＫでクロックゲーティングの制御が可能であることが判明した場合、ビットＦＴＢＬ［３］が選択される。試験工程において、ゲーティング可能周波数が１．０ＧＨｚの全ての回路ブロック４０が、１．４ＧＨｚの周波数のクロックＣＬＫでクロックゲーティングの制御が可能であることが判明した場合、ビットＦＴＢＬ［２］が選択される。
【００８５】
試験スイッチＴＳＷ１２は、ゲーティング可能周波数が１．２ＧＨｚの回路ブロック４０に供給される周波数制御信号ＦＣＮＴの論理を、周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［３］、ＦＴＢＬ［２］、ＦＴＢＬ［１］のいずれかから選択する。試験スイッチＴＳＷ１４は、ゲーティング可能周波数が１．４ＧＨｚの回路ブロック４０ａに供給される周波数制御信号ＦＣＮＴの論理を、周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［２］、ＦＴＢＬ［１］、ＦＴＢＬ［０］のいずれかから選択する。
【００８６】
試験スイッチＴＳＷ１６は、ゲーティング可能周波数が１．６ＧＨｚの回路ブロック４０ｂに供給される周波数制御信号ＦＣＮＴの論理を、周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［１］、ＦＴＢＬ［０］またはハイレベルの信号線のいずれかから選択する。ハイレベルの信号線は、例えば、電源線ＶＤＤである。試験スイッチＴＳＷ１８は、ゲーティング可能周波数が１．８ＧＨｚの回路ブロック４０ｃに供給される周波数制御信号ＦＣＮＴの論理を、周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［０］またはハイレベル（電源線ＶＤＤ）のいずれかから選択する。
【００８７】
試験スイッチＴＳＷ１２−ＴＳＷ１８は、試験スイッチＴＳＷ１０と同様に、試験工程において、ゲーティング可能周波数が設計値より高いことが判明した場合、判明したゲーティング可能周波数に対応するビットＦＴＢＬ［ｉ］を選択する。半導体装置ＳＥＭ３（半導体チップ）は、製造条件の変動に応じてトランジスタ等の素子の電気的特性が変化する。例えば、半導体装置ＳＥＭ３内のトランジスタの閾値電圧は、製造条件の変動に応じて同じ方向に変化するため、複数の回路ブロック４０のゲーティング可能周波数は、同じ方向に変化する。したがって、ゲーティング可能周波数の設計値が共通の複数の回路ブロック４０に供給される周波数制御信号ＦＣＮＴを共通の試験スイッチＴＳＷ１により変更することができる。
【００８８】
図１４は、図１２に示す半導体装置ＳＥＭ３のクロック周波数による消費電力の変化の一例を示す。図１０と同じ動作については、詳細な説明は省略する。図１０と同様に、太い実線は、半導体装置ＳＥＭ３の消費電力の変化を示し、太い破線は、イネーブル制御回路ＦＳを持たない半導体装置の消費電力の変化を示す。
【００８９】
図１４は、半導体装置ＳＥＭ３の試験工程により、ゲーティング可能周波数が１．６ＧＨｚの回路ブロック４０が、１．８ＧＨｚの周波数のクロックＣＬＫでクロックゲーティングの制御が可能であることが判明した例を示す。この場合、図１２に示すスイッチ制御回路５０は、プログラム信号ＳＷＰＧＭによってスイッチ制御信号ＳＣＮＴ１６の論理を設計により決定したデフォルト値から変更する。
【００９０】
図１３に示す試験スイッチＴＳＷ１６は、スイッチ制御信号ＳＣＮＴ１６によりビットＦＴＢＬ［０］を選択し、周波数制御信号ＦＣＮＴとして出力する。これにより、設計時にゲーティング可能周波数が１．６ＧＨｚと判定された回路ブロック４０ｂは、ゲーティング可能周波数が１．８ＧＨｚの回路ブロック４０ｂとして動作する。この結果、図１４に太い一点鎖線で示すように、クロックＣＬＫの周波数が１．８ＧＨｚの期間の半導体装置ＳＥＭ３の消費電力を、太い実線で示される消費電力に比べてさらに削減することができる。
【００９１】
図１５は、図１２に示す半導体装置ＳＥＭ３の試験フローの一例を示す。図１５に示すフローは、ＬＳＩ（Large Scale Integration）テスタ等の試験装置を使用して実行される。
【００９２】
まず、ステップＳ２００において、試験装置は、クロックＣＬＫの周波数を最大（例えば、２．０ＧＨｚ）に設定する。次に、ステップＳ２０２において、試験装置は、セット信号ＳＷＳＥＴをスイッチ制御回路５０に出力し、周波数制御信号ＦＣＮＴを設計値（デフォルト値）に設定する。次に、ステップＳ２０４において、試験装置は、半導体装置ＳＥＭ３の動作試験を実行する。
【００９３】
次に、ステップＳ２０６において、試験装置は、動作試験がパスした場合、処理をステップＳ３００に移行し、動作試験がフェイルした場合、半導体装置ＳＥＭ３を不良品として処理する。
【００９４】
ステップＳ３００において、試験装置は、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化する試験を実行する。ステップＳ３００の処理の例は、図１６に示される。周波数制御信号ＦＣＮＴの最適化試験の実行後、ステップＳ２０８において、試験装置は、ステップＳ３００の最適化試験で決定された周波数制御信号ＦＣＮＴの仕様に基づいて、プログラム信号ＳＷＰＧＭをスイッチ制御回路５０に出力する。そして、ステップＳ３００の最適化試験で判明したゲーティング可能周波数の実力値に対応するスイッチ制御信号ＳＣＮＴ１をスイッチ制御回路５０に出力させる。プログラム信号ＳＷＰＧＭに基づいてスイッチ制御回路５０に出力させたスイッチ制御信号ＳＣＮＴ１の論理は、半導体装置ＳＥＭ３の電源を遮断しても記憶される。
【００９５】
この後、システムに搭載され、システム上で動作する半導体装置ＳＥＭ３の各試験スイッチＴＳＷ１は、スイッチ制御信号ＳＣＮＴ１に基づいて、周波数制御信号ＦＣＮＴとして出力するビットＦＴＢＬ［ｉ］を選択する。すなわち、製造条件の変動により半導体装置ＳＥＭ３の電気的特性が標準値に対して特性のよい側に変動する場合にも、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化することができる。
【００９６】
図１６は、図１５に示すステップＳ３００の処理の一例を示す。まず、ステップＳ３０２において、試験装置は、ゲーティング可能周波数が共通の回路ブロック群４０を選択する。次に、ステップＳ３０４において、試験装置は、選択した回路ブロック群４０の周波数制御信号ＦＣＮＴをマージンが厳しくなる側（ビットＦＴＢＬ［ｉ］の番号が小さい側）に１つ変更する。例えば、ゲーティング可能周波数が１．６ＧＨｚの回路ブロック群４０ｂに供給される周波数制御信号ＦＣＮＴは、ビットＦＴＢＬ［１］からビットＦＴＢＬ［０］に変更される。
【００９７】
次に、ステップＳ３０６において、試験装置は、半導体装置ＳＥＭ３の動作試験を実行する。次に、ステップＳ３０８において、試験装置は、動作試験がパスした場合、処理をステップＳ３１０に移行し、動作試験がフェイルした場合、処理をステップＳ３１２に移行する。
【００９８】
ステップＳ３１０において、試験装置は、周波数制御信号ＦＣＮＴをマージンが厳しくなる側に変更できる場合、処理をステップＳ３０４に移行する。ステップＳ３０４では、周波数制御信号ＦＣＮＴが、マージンがさらに厳しい側に変更される。一方、試験装置は、周波数制御信号ＦＣＮＴがマージンの厳しい上限に設定されている場合、処理をステップＳ３１４に移行する。
【００９９】
ステップＳ３１２において、試験装置は、選択した回路ブロック群４０の周波数制御信号ＦＣＮＴをマージンが緩くなる側（ビットＦＴＢＬ［ｉ］の番号が大きい側）に１つ戻し、処理をステップＳ３１４に移行する。ステップＳ３１４において、試験装置は、周波数制御信号ＦＣＮＴを変更可能な他の回路ブロック群４０がある場合、処理をステップＳ３０２に戻し、周波数制御信号ＦＣＮＴを変更可能な他の回路ブロック群４０がない場合、処理を終了する。以上の処理により、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化することができ、半導体装置ＳＥＭ３の消費電力の削減に寄与することができる。なお、半導体装置ＳＥＭ３は、図７および図８と同様に動作し、半導体装置ＳＥＭ３の消費電力を図９に比べて削減することができる。
【０１００】
以上、図１２から図１６に示す実施形態においても、図１に示す実施形態と同様に、クロックゲーティングの制御をクロック周波数に応じて実行するか否かを動的に切り替えることで、半導体装置ＳＥＭ２の消費電力を削減することできる。また、図２から図１１に示す実施形態と同様に、既存の設計データを改良してイネーブル制御回路ＦＳを挿入することで、図７および図８に示す動作を実現する半導体装置ＳＥＭ３を設計することができる。ゲーティング可能周波数が最大のクロック周波数と等しい回路ブロック４０ｄにイネーブル制御回路ＦＳを搭載することで、回路ブロック４０ｄにイネーブル制御回路ＦＳを搭載しない場合に比べて、論理設計およびタイミング検証を簡易にすることができる。周波数設定テーブル１０から出力される周波数信号ＦＴＢＬ［４：０］を用いることで、イネーブル制御信号ＥＮＣの生成を制御する新たな回路を設計する場合に比べて、半導体装置ＳＥＭ３の設計を簡易にすることができる。
【０１０１】
さらに、図１２から図１６に示す実施形態では、製造条件の変動により半導体装置ＳＥＭ３の電気的特性が標準値に対して特性が良い側に変動する場合にも、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化することができる。
【０１０２】
図１７は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２および図１２に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図１７に示す半導体装置ＳＥＭ４は、図１２に示す試験スイッチＴＳＷ１０−ＴＳＷ１８の代わりに、試験スイッチＴＳＷ２（ＴＳＷ２０、ＴＳＷ２２、ＴＳＷ２４、ＴＳＷ２６、ＴＳＷ２８、ＴＳＷ２９）を有する。また、半導体装置ＳＥＭ４は、図１２に示すスイッチ制御回路５０の代わりにスイッチ制御回路６０を有する。半導体装置ＳＥＭ４のその他の構成は、図１２に示す半導体装置ＳＥＭ３と同様である。半導体装置ＳＥＭ４は、クロックＣＬＫの周波数を動的に変更するＤＦＳ手法を採用しているが、クロックＣＬＫの周波数および電源電圧を動的に変更するＤＶＦＳ手法を採用してもよい。なお、各試験スイッチＴＳＷ２から出力される周波数制御信号ＦＣＮＴは、ゲーティング可能周波数が互いに同じ回路ブロック４０に共通に供給される。
【０１０３】
各試験スイッチＴＳＷ２は、スイッチ制御回路６０から出力されるスイッチ制御信号ＳＣＮＴ２（ＳＣＮＴ２０、ＳＣＮＴ２２、ＳＣＮＴ２４、ＳＣＮＴ２６、ＳＣＮＴ２８、ＳＣＮＴ２９）に基づいて周波数信号ＦＴＢＬ［４：０］のビットのいずれかを選択する。そして、各試験スイッチＴＳＷ２は、選択したビットを周波数制御信号ＦＣＮＴとして出力する。各試験スイッチＴＳＷ２の例は、図１８に示される。
【０１０４】
スイッチ制御回路６０は、セット信号ＳＷＳＥＴおよびプログラム信号ＳＷＰＧＭに基づいて、スイッチ制御信号ＳＣＮＴ２０、ＳＣＮＴ２２、ＳＣＮＴ２４、ＳＣＮＴ２６、ＳＣＮＴ２８、ＳＣＮＴ２９を生成する。スイッチ制御回路６０は、出力するスイッチ制御信号ＳＣＮＴ２０、ＳＣＮＴ２２、ＳＣＮＴ２４、ＳＣＮＴ２６、ＳＣＮＴ２８、ＳＣＮＴ２９が異なることを除き、図１２に示すスイッチ制御回路５０と同様に動作する。
【０１０５】
図１８は、図１７に示す試験スイッチＴＳＷ２（ＴＳＷ２０−ＴＳＷ２９）の一例を示す。図１３に示す試験スイッチＴＳＷ１０−ＴＳＷ１８と同様の要素については、詳細な説明は省略する。各試験スイッチＴＳＷ２は、互いに同じ構成を有しており、スイッチ制御信号ＳＣＮＴ２の論理に応じて５つの入力端子のいずれか１つを選択して出力する。各試験スイッチＴＳＷ２において、中央の入力端子で受信するビット値ＦＴＢＬ［ｉ］（ｉは、４、３、２、１、０のいずれか）またはハイレベルＶＤＤは、設計完了時に周波数制御信号ＦＣＮＴとして出力されるビット値（デフォルト値）を示す。なお、半導体装置ＳＥＭ４の設計フローは、図１１と同様である。
【０１０６】
試験スイッチＴＳＷ２０は、ゲーティング可能周波数が１．０ＧＨｚの回路ブロック４０に供給される周波数制御信号ＦＣＮＴの論理を、周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［４］、ＦＴＢＬ［３］、ＦＴＢＬ［２］のいずれかから選択する。試験スイッチＴＳＷ２２は、ゲーティング可能周波数が１．２ＧＨｚの回路ブロック４０に供給される周波数制御信号ＦＣＮＴの論理を、ビットＦＴＢＬ［４］、ＦＴＢＬ［３］、ＦＴＢＬ［２］、ＦＴＢＬ［１］のいずれかから選択する。試験スイッチＴＳＷ２４は、ゲーティング可能周波数が１．４ＧＨｚの回路ブロック４０ａに供給される周波数制御信号ＦＣＮＴの論理を、ビットＦＴＢＬ［４］、ＦＴＢＬ［３］、ＦＴＢＬ［２］、ＦＴＢＬ［１］、ＦＴＢＬ［０］のいずれかから選択する。
【０１０７】
試験スイッチＴＳＷ２６は、ゲーティング可能周波数が１．６ＧＨｚの回路ブロック４０ｂに供給される周波数制御信号ＦＣＮＴの論理を、ビットＦＴＢＬ［３］−ＦＴＢＬ［０］またはハイレベルＶＤＤのいずれかから選択する。試験スイッチＴＳＷ２８は、ゲーティング可能周波数が１．８ＧＨｚの回路ブロック４０ｃに供給される周波数制御信号ＦＣＮＴの論理を、ビットＦＴＢＬ［２］、ＦＴＢＬ［１］、ＦＴＢＬ［０］またはハイレベルＶＤＤのいずれかから選択する。試験スイッチＴＳＷ２９は、ゲーティング可能周波数が２．０ＧＨｚの回路ブロック４０ｄに供給される周波数制御信号ＦＣＮＴの論理を、ビットＦＴＢＬ［１］、ＦＴＢＬ［０］またはハイレベルＶＤＤのいずれかから選択する。
【０１０８】
この実施形態では、試験スイッチＴＳＷ２により、周波数制御信号ＦＣＮＴを、タイミングマージンが厳しい側だけでなく、タイミングマージンが緩い側に設定することができる。これにより、半導体装置ＳＥＭ４（半導体チップ）の製造工程での製造条件の変動に応じて、回路ブロック４０のゲーティング可能周波数が低い側に遷移した場合にも、半導体装置ＳＥＭ４を不良品として処分することなく、救済することができる。
【０１０９】
図１９は、図１７に示す半導体装置ＳＥＭ４の試験フローの一例を示す。図１５と同一または同様の処理については、詳細な説明は省略する。この実施形態では、図１５に示す処理に、ステップＳ２１０、Ｓ４００、Ｓ２１２が追加される。すなわち、ステップＳ２０６において、動作試験がフェイルした場合、試験装置はステップＳ２１０の処理を実行する。
【０１１０】
ステップＳ２１０において、試験装置は、動作試験でフェイルした回路ブロック４０を識別する情報を記録する。次に、ステップＳ４００において、試験装置は、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化することで、半導体装置ＳＥＭ４を救済する救済試験を実行する。ステップＳ４００の例は、図２０に示される。救済試験の後、ステップＳ２１２において、試験装置は、周波数制御信号ＦＣＮＴをマージンが緩くなる側に変更することで半導体装置ＳＥＭ４を救済可能な場合、処理をステップＳ２０８に移行する。また、試験装置は、周波数制御信号ＦＣＮＴをマージンが緩くなる側に変更することでも半導体装置ＳＥＭ４の救済が困難と判定した場合、処理を終了する。
【０１１１】
図２０は、図１９に示すステップＳ４００の処理の一例を示す。ステップＳ４０２において、試験装置は、図１９に示すステップＳ２１０で記録したフェイルした回路ブロック４０を含む回路ブロック群４０の１つを選択する。次に、ステップＳ４０４において、試験装置は、選択した回路ブロック群４０の周波数制御信号ＦＣＮＴをマージンが緩くなる側（ビットＦＴＢＬ［ｉ］の番号が大きい側）に１つ変更する。例えば、ゲーティング可能周波数が１．６ＧＨｚの回路ブロック群４０ｂに供給される周波数制御信号ＦＣＮＴは、ビットＦＴＢＬ［１］からビットＦＴＢＬ［２］に変更される。
【０１１２】
次に、ステップＳ４０６において、試験装置は、半導体装置ＳＥＭ４の動作試験を実行する。次に、ステップＳ４０８において、試験装置は、動作試験がパスした場合、処理をステップＳ４１２に移行し、動作試験がフェイルした場合、処理をステップＳ４１０に移行する。
【０１１３】
ステップＳ４１０において、試験装置は、周波数制御信号ＦＣＮＴをマージンが緩くなる側に変更できる場合、処理をステップＳ４０４に移行する。ステップＳ４０４では、周波数制御信号ＦＣＮＴが、マージンがさらに緩い側に設定される。一方、試験装置は、周波数制御信号ＦＣＮＴがマージンの緩い下限に設定されている場合、処理をステップＳ４１４に移行する。ステップＳ４１２において、試験装置は、ステップＳ４０８でパスと判定された回路ブロック群４０を識別する情報を記録し、処理をステップＳ４１４に移行する。
【０１１４】
ステップＳ４１４において、試験装置は、周波数制御信号ＦＣＮＴを変更可能な他の回路ブロック群４０がある場合、処理をステップＳ４０２に戻し、周波数制御信号ＦＣＮＴを変更可能な他の回路ブロック群４０がない場合、処理をステップＳ４１６に移行する。ステップＳ４１６において、試験装置は、図１９に示すステップＳ２１０で記録したフェイルした回路ブロックを含む回路ブロック群４０の全てが、ステップＳ４０８の判定によりパスした場合、処理をステップＳ４１８に移行する。ここで、ステップＳ４０８の判定によりパスした回路ブロック群４０は、ステップＳ４１２で記録した情報に基づいて識別される。試験装置は、図１９に示すステップＳ２１０で記録したフェイルした回路ブロック４０のいずれかが、ステップＳ４０８の判定によりフェイルした場合、救済が困難であると判定し、処理を終了する。ステップＳ４１８において、試験装置は、半導体装置ＳＥＭ４が救済可能であると判定し、処理を終了する。
【０１１５】
そして、図１９に示すステップＳ２０８において、試験装置は、ステップＳ３００の最適化試験およびステップＳ４００の救済試験で決定された周波数制御信号ＦＣＮＴの仕様に基づいて、プログラム信号ＳＷＰＧＭをスイッチ制御回路５０に出力する。すなわち、周波数制御信号ＦＣＮＴとして選択される周波数信号ＦＴＢＬ［４：０］のビットＦＴＢＬ［ｉ］の仕様が変更される。以上の処理により、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化することができ、消費電力の削減に寄与することができるとともに、半導体装置ＳＥＭ４の良品率である歩留りを向上することができる。なお、半導体装置ＳＥＭ４は、図７および図８と同様に動作する。
【０１１６】
以上、図１７から図２０に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。さらに、図１７から図２０に示す実施形態では、製造条件の変動により半導体装置ＳＥＭ４の電気的特性が標準値に対して特性が悪い側に変動する場合にも、ゲーティング可能周波数の実力に応じて、周波数制御信号ＦＣＮＴを最適化することができる。
【０１１７】
図２１は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２および図１２に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図２１に示す半導体装置ＳＥＭ５は、図１２に示す試験スイッチＴＳＷ１（ＴＳＷ１０、ＴＳＷ１２、ＴＳＷ１４、ＴＳＷ１６、ＴＳＷ１８）の各々を含む回路ブロック４１（４１ａ、４１ｂ、４１ｃ）と図２と同じ回路ブロック４０ｄを有する。半導体装置ＳＥＭ５は、クロックＣＬＫの周波数を動的に変更するＤＦＳ手法を採用しているが、クロックＣＬＫの周波数および電源電圧を動的に変更するＤＶＦＳ手法を採用してもよい。
【０１１８】
なお、図２１では、ゲーティング可能周波数が１．０ＧＨｚと１．２ＧＨｚの回路ブロック４１の記載は省略される。図２１に示すように、試験スイッチＴＳＷ１は、ゲーティング可能周波数が共通の回路ブロック群４１毎ではなく、回路ブロック４１毎に設けられる。また、半導体装置ＳＥＭ５は、図１２に示すスイッチ制御回路５０の代わりにスイッチ制御回路５１を有する。スイッチ制御回路５１は、回路ブロック４１ａ、４１ｂ、４１ｃに設けられる試験スイッチＴＳＷ１毎にスイッチ制御信号ＳＣＮＴを生成する。半導体装置ＳＥＭ５のその他の構成は、図２に示す半導体装置ＳＥＭ２と同様である。また、半導体装置ＳＥＭ５の設計フローは、図１１と同様である。半導体装置ＳＥＭ５は、図７および図８と同様に動作する。
【０１１９】
図２２は、図２１に示す半導体装置ＳＥＭ５の試験フローにおけるステップＳ３００の処理の一例を示す。図１６に示す処理と同一または同様の処理については、詳細な説明は省略する。なお、試験フローの全体は、図１５と同様である。図２２では、図１６に示すステップＳ３０２、Ｓ３０４、Ｓ３１２、Ｓ３１４の代わりに、ステップＳ３０２ａ、Ｓ３０４ａ、Ｓ３１２ａ、Ｓ３１４ａが実行される。ステップＳ３０２ａ、Ｓ３０４ａ、Ｓ３１２ａ、Ｓ３１４ａの処理は、回路ブロック群４１毎ではなく、回路ブロック４１毎に実行されることを除き、図１６に示すステップＳ３０２、Ｓ３０４、Ｓ３１２、Ｓ３１４の処理と同様である。すなわち、この実施形態では、周波数制御信号ＦＣＮＴのマージンを厳しく設定する処理は、回路ブロック４１毎に実行される。このため、回路ブロック４１のそれぞれの電気的特性に合わせて周波数制御信号ＦＣＮＴを最適化することができる。これに対して、図１２から図１６に示す実施形態では、ゲーティング可能周波数が共通の回路ブロック群の全ての回路ブロック４０に共通の周波数制御信号ＦＣＮＴが供給される。このため、回路ブロック群４０の中で１つでもゲーティング可能周波数の実力が設計値より高くない回路ブロック４０が存在する場合、周波数制御信号ＦＣＮＴをマージンが厳しい側に設定する処理は実行されない。
【０１２０】
以上、図２１から図２２に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。さらに、図２１から図２２に示す実施形態では、回路ブロック４１のそれぞれの電気的特性に合わせて周波数制御信号ＦＣＮＴを最適化することができる。
【０１２１】
図２３は、半導体装置および半導体装置の制御方法の別の実施形態を示す。図２および図１７に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図２３に示す半導体装置ＳＥＭ６は、図１７に示す試験スイッチＴＳＷ２（ＴＳＷ２０、ＴＳＷ２２、ＴＳＷ２４、ＴＳＷ２６、ＴＳＷ２８、ＴＳＷ２９）の各々を含む回路ブロック４２（４２ａ、４２ｂ、４２ｃ、４２ｄ）を有する。半導体装置ＳＥＭ６は、クロックＣＬＫの周波数を動的に変更するＤＦＳ手法を採用しているが、クロックＣＬＫの周波数および電源電圧を動的に変更するＤＶＦＳ手法を採用してもよい。
【０１２２】
なお、図２３では、ゲーティング可能周波数が１．０ＧＨｚと１．２ＧＨｚの回路ブロック４２の記載は省略される。図２３に示すように、試験スイッチＴＳＷ２は、ゲーティング可能周波数が共通の回路ブロック群４０毎ではなく、回路ブロック４２毎に設けられる。また、半導体装置ＳＥＭ６は、図１７に示すスイッチ制御回路６０の代わりにスイッチ制御回路６１を有する。スイッチ制御回路６１は、回路ブロック４２ａ、４２ｂ、４２ｃ、４２ｄに設けられる試験スイッチＴＳＷ２毎にスイッチ制御信号ＳＣＮＴを生成する。半導体装置ＳＥＭ６のその他の構成は、図２に示す半導体装置ＳＥＭ２と同様である。また、半導体装置ＳＥＭ６の設計フローは、図１１と同様である。半導体装置ＳＥＭ６は、図７および図８と同様に動作する。
【０１２３】
図２４は、図２３に示す半導体装置ＳＥＭ６の試験フローにおけるステップＳ４００の処理の一例を示す。図２０に示す処理と同一または同様の処理については、詳細な説明は省略する。なお、試験フローの全体は、図１９と同様である。図２４では、図２０に示すステップＳ４０２、Ｓ４０４、Ｓ４１２、Ｓ４１４、Ｓ４１６の代わりに、ステップＳ４０２ａ、Ｓ４０４ａ、Ｓ４１２ａ、Ｓ４１４ａ、Ｓ４１６ａが実行される。ステップＳ４０２ａ、Ｓ４０４ａ、Ｓ４１２ａ、Ｓ４１４ａ、Ｓ４１６ａの処理は、回路ブロック群４２毎ではなく、回路ブロック４２毎に実行されることを除き、Ｓ４０２、Ｓ４０４、Ｓ４１２、Ｓ４１４、Ｓ４１６の処理と同様である。すなわち、この実施形態では、周波数制御信号ＦＣＮＴのマージンを厳しく設定する処理および周波数制御信号ＦＣＮＴのマージンを緩く設定する処理は、回路ブロック４２毎に実行される。このため、回路ブロック４２のそれぞれの電気的特性に合わせて周波数制御信号ＦＣＮＴを最適化することができる。これに対して、図１７から図２０に示す実施形態では、ゲーティング可能周波数が共通の回路ブロック群の全ての回路ブロック４０に共通の周波数制御信号ＦＣＮＴが供給される。このため、回路ブロック群４０の中で１つでもゲーティング可能周波数の実力が設計値より高くない回路ブロック４０が存在する場合、周波数制御信号ＦＣＮＴをマージンが厳しい側に設定する処理は実行されない。また、回路ブロック群４０の中で１つでもゲーティング可能周波数の実力が設計値より低い回路ブロック４０が存在する場合、回路ブロック群内の全ての回路ブロック４０の周波数制御信号ＦＣＮＴをマージンが緩い側に設定されてしまう。
【０１２４】
以上、図２３から図２４に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。さらに、図２３から図２４に示す実施形態では、回路ブロック４２のそれぞれの電気的特性に合わせて周波数制御信号ＦＣＮＴを最適化することができる。
【０１２５】
なお、上述した半導体装置ＳＥＭ１、ＳＥＭ２、ＳＥＭ３、ＳＥＭ４、ＳＥＭ５、ＳＥＭ６にＤＶＦＳ手法を採用する場合、クロックゲーティング回路ＧＢのタイミングマージンが小さくなる電源電圧のワースト条件を用いて、図１１に示す設計が実行される。また、クロックゲーティング回路ＧＢのタイミングマージンが小さくなる電源電圧のワースト条件を用いて、図１５および図１６等に示す試験が実行される。さらに、ＤＶＦＳ手法を採用する場合、周波数信号ＦＴＢＬ［４：０］だけでなく、電源電圧を設定する電圧設定テーブルが記憶する電圧信号を用いて、周波数制御信号ＦＣＮＴを生成してもよい。ここで、可変の電源電圧を生成する電圧生成回路は、電圧設定テーブルが記憶する電圧信号の論理値により示される電源電圧を生成する。
【０１２６】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１２７】
１…イネーブル生成回路；２…クロック供給回路；３…クロック同期回路；１０…周波数設定テーブル；２０…周波数制御回路；３０…ＰＬＬ；４０（４０ａ、４０ｂ、４０ｃ、４０ｄ）…回路ブロック；４１（４１ａ、４１ｂ、４１ｃ）…回路ブロック；４２（４２ａ、４２ｂ、４２ｃ、４２ｄ）…回路ブロック；５０、５１、６０、６１…スイッチ制御回路；ＣＬＫ…クロック；ＣＯＭＢａ、ＣＯＭＢｂ…組み合わせ回路；ＤＣＬＫ…クロック；ＥＮ…イネーブル信号；ＥＮＣ…イネーブル制御信号；ＥＮＧＥＮ…イネーブル生成回路；ＦＣＮＴ…周波数制御信号；ＦＲＱ…周波数設定信号；ＦＲＱＣＮＴ…制御信号；ＦＳ…イネーブル制御回路；ＦＴＢＬ［４：０］…周波数信号；ＧＢ…クロックゲーティング回路；ＧＣＬＫ…クロック；ＬＯＧＩＣ…論理回路；ＭＵＸ…マルチプレクサ；ＯＵＴ、ＯＵＴａ、ＯＵＴｂ…出力信号；ＳＣＮＴ１（ＳＣＮＴ１０、ＳＣＮＴ１２、ＳＣＮＴ１４、ＳＣＮＴ１６、ＳＣＮＴ１８）…スイッチ制御信号；ＳＥＬ、ＳＥＬ０１、ＳＥＬ０２、ＳＥＬ０２ａ、ＳＥＬ０２ｂ…選択信号；ＳＥＭ１、ＳＥＭ２、ＳＥＭ３、ＳＥＭ４、ＳＥＭ５、ＳＥＭ６…半導体装置；ＳＷＰＧＭ…プログラム信号；ＳＷＳＥＴ…セット信号；ＴＳＷ１（ＴＳＷ１０、ＴＳＷ１２、ＴＳＷ１４、ＴＳＷ１６、ＴＳＷ１８）…試験スイッチ；ＴＳＷ２（ＴＳＷ２０、ＴＳＷ２２、ＴＳＷ２４、ＴＳＷ２６、ＴＳＷ２８、ＴＳＷ２９）…試験スイッチ
【図１】
2017027204.tif 000003
【図２】
2017027204.tif 000004
【図３】
2017027204.tif 000005
【図４】
2017027204.tif 000006
【図５】
2017027204.tif 000007
【図６】
2017027204.tif 000008
【図７】
2017027204.tif 000009
【図８】
2017027204.tif 000010
【図９】
2017027204.tif 000011
【図１０】
2017027204.tif 000012
【図１１】
2017027204.tif 000013
【図１２】
2017027204.tif 000014
【図１３】
2017027204.tif 000015
【図１４】
2017027204.tif 000016
【図１５】
2017027204.tif 000017
【図１６】
2017027204.tif 000018
【図１７】
2017027204.tif 000019
【図１８】
2017027204.tif 000020
【図１９】
2017027204.tif 000021
【図２０】
2017027204.tif 000022
【図２１】
2017027204.tif 000023
【図２２】
2017027204.tif 000024
【図２３】
2017027204.tif 000025
【図２４】
2017027204.tif 000026