(57)【要約】【課題】テスト動作時の消費電力を低減することのできるクロック信号ゲーティング技術を利用した半導体集積回路およびそのテスト方法の提供を図る。【解決手段】複数のクロックゲーティング回路１１〜１３と、該各クロックゲーティング回路によりクロック信号の伝播が制御される複数のフリップフロップ２０，２０’，２０”と、前記複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態を制御するクロックゲーティング制御回路５と、を有し、前記クロックゲーティング制御回路５は、テスト動作モード時に、前記複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態の制御を、ユーザー論理３１〜３３の信号に従って行うか、或いは、前記ユーザー論理の信号に関わらず任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかを制御するように構成する。【選択図】図２
2010223793.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロックゲーティング回路と、
該各クロックゲーティング回路によりクロック信号の伝播が制御される複数のフリップフロップと、
前記複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態を制御するクロックゲーティング制御回路と、を有し、
前記クロックゲーティング制御回路は、テスト動作モード時に、前記複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態の制御を、ユーザー論理の信号に従って行うか、或いは、前記ユーザー論理の信号に関わらず任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかを制御することを特長とする半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記クロックゲーティング制御回路は、前記テスト動作モード時に、前記ユーザー論理の信号に関わらず非アクティブ状態にする前記任意の組み合わせのクロックゲーティング回路を規定するための制御信号を生成する制御信号生成回路を有することを特長とする半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路において、
該半導体集積回路は、複数のモード信号に従って所定のモードに設定され、
前記制御信号生成回路は、前記複数のモード信号に従って前記制御信号を生成することを特長とする半導体集積回路。
【請求項４】
請求項２または３に記載の半導体集積回路において、さらに、
前記テスト動作モード時に、前記複数のクロックゲーティング回路の各イネーブル端子に対して、前記ユーザー論理からの信号か、任意の組み合わせのクロックゲーティング回路を非アクティブ状態にする信号を供給する第１論理回路を有することを特徴とする半導体集積回路。
【請求項５】
請求項２〜４のいずれか１項に記載の半導体集積回路において、
前記制御信号生成回路は、前記複数のクロックゲーティング回路の数をＮとして、該Ｎ個のクロックゲーティング回路のうち、任意の１個のクロックゲーティング回路を選択する第１デコーダと、任意の２個のクロックゲーティング回路を選択する第２デコーダと、……、任意のＮ−１個のクロックゲーティング回路を選択する第Ｎ−１デコーダと、を有することを特長とする半導体集積回路。
【請求項６】
請求項５に記載の半導体集積回路において、
前記制御信号生成回路は、前記第１〜第Ｎ−１デコーダのいずれか１つのデコーダの出力信号を選択し、前記制御信号として出力する選択回路を有することを特長とする半導体集積回路。
【請求項７】
請求項２〜６のいずれか１項に記載の半導体集積回路において、さらに、
クロックゲーティング回路を介さないで前記クロック信号を直接受け取る複数の直接受信フリップフロップと、
該直接受信フリップフロップのイネーブル端子に設けられ、前記クロック信号と前記制御信号との論理を取る第２論理回路と、を有することを特長とする半導体集積回路。
【請求項８】
請求項１〜７のいずれか１項に記載の半導体集積回路において、
前記複数のクロックゲーティング回路は、複数のグループに分割され、
前記クロックゲーティング制御回路は、複数設けられ、
前記各クロックゲーティング制御回路が分割された前記各グループの前記クロックゲーティング回路を制御することを特長とする半導体集積回路。
【請求項９】
複数のクロックゲーティング回路、および、該各クロックゲーティング回路によりクロック信号の伝播が制御される複数のフリップフロップを有する半導体集積回路のテスト方法であって、
テスト動作モード時に、前記複数のクロックゲーティング回路を、ユーザー論理の信号に従ってアクティブ状態／非アクティブ状態の制御を行うか、或いは、前記ユーザー論理の信号に関わらず任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかを制御することを特長とする半導体集積回路のテスト方法。
【請求項１０】
請求項９に記載の半導体集積回路のテスト方法において、
前記半導体集積回路は、複数のモード信号に従って所定のモードに設定され、
前記テストモード時に、前記ユーザー論理の信号に関わらず前記非アクティブ状態にされる前記任意の組み合わせのクロックゲーティング回路は、複数のモード信号に従って制御されることを特長とする半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願で言及する実施例は、半導体集積回路およびそのテスト方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路（ＬＳＩ）は、時代と共に高機能化および高集積化されており、ＬＳＩの動作時に過度の電力消費やＩＲドロップが生じることになっている。
【０００３】
すなわち、ＬＳＩの動作時に過度の電力消費やＩＲドロップが生じる大きな原因のひとつは、回路内に設けられた多数のフリップフロップ（ＦＦ）に同時にクロック信号が入ることで、それらが同時に動作するためである。
【０００４】
そこで、最近のＬＳＩ設計では、クロック信号ゲーティング技術を実現するクロックゲーティング回路（ＣＧＣ：Clock Gating Circuit）を用いて、同時に動作するＦＦの数を制限するように設計している。
【０００５】
ところで、テスト時の回路動作は、通常動作時の回路動作とは大きく異なるため、消費電力やＩＲドロップが設計時に想定していたものよりも大きくなる傾向にあり、誤動作の原因にもなっている。
【０００６】
特に、近年、クロック信号ゲーティング技術を利用して低消費電力化を図るＬＳＩが提供されているが、このようなＬＳＩのテスト動作時には、通常動作時のクロック信号ゲーティング技術を生かすことができず、過度な電力消費やＩＲドロップが生じている。
【０００７】
従来、クロック信号ゲーティング技術を適用した半導体集積回路のテスト方法としては、様々なものが提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−１９７６０３号公報
【特許文献２】特開平１１−１０８９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、近年、クロック信号ゲーティング技術を利用したＬＳＩが提供されているが、テスト動作時には、低消費電力化の利点を生かすことができず、テスト動作時の大きな消費電力、および、それに基づくＩＲドロップの発生が問題になっている。
【００１０】
この出願は、上述した課題に鑑み、テスト動作時の消費電力を低減することのできるクロック信号ゲーティング技術を利用した半導体集積回路およびそのテスト方法の提供を目的とする。
【課題を解決するための手段】
【００１１】
第１実施形態によれば、複数のクロックゲーティング回路と、該各クロックゲーティング回路によりクロック信号の伝播が制御される複数のフリップフロップと、クロックゲーティング制御回路と、を有する半導体集積回路が提供される。
【００１２】
クロックゲーティング制御回路は、複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態を制御する。
【００１３】
そして、クロックゲーティング制御回路は、テスト動作モード時に、複数のクロックゲーティング回路の制御を、ユーザー論理の信号に従って行うか、或いは、任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかの制御を行う。
【発明の効果】
【００１４】
各実施例によれば、テスト動作時の消費電力を低減することのできるクロック信号ゲーティング技術を利用した半導体集積回路およびそのテスト方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】テスト対象とする半導体集積回路の一例を示すブロック図である。
【図２】第１実施例の半導体集積回路を示すブロック図である。
【図３】第１実施例の半導体集積回路におけるモード信号とその役割を説明するための図である。
【図４】第１実施例の半導体集積回路における制御信号生成回路の一例を示すブロック図である。
【図５】図４の制御信号生成回路における第１デコーダを説明するための図である。
【図６】図４の制御信号生成回路における第２デコーダを説明するための図である。
【図７】第１実施例の半導体集積回路における各動作モードと制御信号生成回路の入出力値との関係を説明するための図である。
【図８】第２実施例の半導体集積回路を示すブロック図である。
【図９】第３実施例の半導体集積回路を示すブロック図である。
【発明を実施するための形態】
【００１６】
まず、半導体集積回路およびそのテスト方法の各実施例を詳述する前に、図１を参照してテスト対象とする半導体集積回路の一例、並びに、その半導体集積回路における問題点を説明する。
【００１７】
前述したように、最近のＬＳＩ設計では、クロック信号ゲーティング技術を実現するクロックゲーティング回路を用いて、同時に動作するＦＦの数を制限するように設計している。
【００１８】
しかしながら、ＬＳＩのテスト動作時にクロックゲーティング回路を利用して、消費電力の低減やＩＲドロップの抑制を図るには、以下のような問題がある。
【００１９】
図１はテスト対象とする半導体集積回路（ＬＳＩ）の一例を示すブロック図である。
図１において、参照符号１１１〜１１４はクロックゲーティング回路（ＣＧＣ）、１２０，１２０’，１２１，１２２はフリップフロップ（ＦＦ）、１３１〜１３６はユーザー論理、そして，１４１はオアゲートを示している。
【００２０】
ここで、ＦＦ１２０は、ＣＧＣ１１２により制御される複数のフリップフロップを示し、また、ＦＦ１２０’は、ＣＧＣ１１３により制御される複数のフリップフロップを示している。
【００２１】
ＣＧＣ１１１〜１１４は、各イネーブル端子ＥＮが、例えば、”１”（高レベル『Ｈ』）に設定されると、アクティブ状態になってクロック信号ＣＫをそのままその先のＦＦに伝播させるようになっている。
【００２２】
一方、各イネーブル端子ＥＮが、例えば、”０”（低レベル『Ｌ』）に設定されると、非アクティブ状態になってクロック信号ＣＫをその先のＦＦに伝播させないようになっている。
【００２３】
ここで、図１における信号線Ｌ１の立ち上がり遷移故障を検出（テスト）するには、例えば、ＣＧＣ１１１およびＣＧＣ１１４をアクティブ状態にするために、それらのイネーブル端子ＥＮを”１”に設定する必要がある。
【００２４】
すなわち、信号線Ｌ１の立ち上がり遷移故障をテストするには、ＣＧＣ１１１をアクティブ状態にしてＦＦ１２１にクロック信号を伝播して動作させると共に、ＣＧＣ１１４をアクティブ状態にしてＦＦ１２２にクロック信号を伝播して動作させる。
【００２５】
そして、例えば、ユーザー論理１３６からの信号が”０”のとき、ＦＦ１２１のＱ出力を”０”→”１”に変化させ、信号線Ｌ１の値をＦＦ１２２によりクロック信号ＣＫで取り込む。そして、そのＦＦ１２２のＱ出力から、信号線Ｌ１の立ち上がり遷移故障が存在するか否かが確認される。
【００２６】
この信号線Ｌ１の立ち上がり遷移故障をテストするとき、できる限り消費電力やＩＲドロップを抑制したければ、同時に動作するＦＦの数をできる限り少なくする必要がある。
【００２７】
具体的に、例えば、ＣＧＣ１１２および１１３を非アクティブ状態にするためにイネーブル端子ＥＮ（ＥＮ端子）に”０”を設定して、複数のＦＦ１２０および１２０’に対するクロック信号の伝播をすべて停止させるのが好ましい。
【００２８】
すなわち、ＦＦ１２０および１２０’に対するクロック信号の伝播を停止することにより、すべてのＦＦ１２０および１２０’の動作を停止して消費電力およびＩＲドロップを抑制することが可能になる。
【００２９】
しかしながら、通常、ユーザー論理はすべて独立しているものではなく、例えば、ユーザー論理１３１，１３２および１３３に重複している論理があると、その影響で複数のＦＦ１２０および１２０’を停止させることができない場合がある。
【００３０】
すなわち、ユーザー論理１３１からＣＧＣ１１１のＥＮ端子に供給する信号を”１”に設定すると、ユーザー論理１３２，１３３からＣＧＣ１１２，１１３のＥＮ端子に供給する信号を”０”に設定することができない場合がある。
【００３１】
このように、図１に示すＬＳＩでは、例えば、設計の段階で挿入されたＣＧＣのＥＮ端子に接続しているユーザー論理をそのままテスト時にも使用することが前提になっているため、同時に動作するＦＦの数はそのユーザー論理に依存してしまう。
【００３２】
そのため、例えば、ＣＧＣ１１２や１１３により制御される複数のＦＦ１２０や１２０’の動作を停止することができず、特定の故障の検出に関係のない多数のＦＦも同時に動作して、消費電力の増大やＩＲドロップが発生することになる。
【００３３】
また、たとえユーザー論理１３２および１３３から”０”が出力されるように設定できたとしても、そのための論理を生成するための論理計算が増加し、また、テストパターン数やテストパターン生成に要する時間の増加を来すことにもなる。
【００３４】
以下、半導体集積回路およびそのテスト方法の実施例を、添付図面を参照して詳述する。
【００３５】
図２は第１実施例の半導体集積回路（ＬＳＩ）を示すブロック図である。
図２において、参照符号１１〜１３はクロックゲーティング回路（ＣＧＣ）、２０，２０’，２０”はフリップフロップ（ＦＦ）、２１〜２３はスキャン用フリップフロップ（ＳＦＦ）、そして、３１〜３３はユーザー論理を示している。
【００３６】
さらに、参照符号５はクロックゲーティング回路１１〜１３を制御するクロックゲーティング制御回路（ＣＧＣ制御回路）、５０は制御信号生成回路、４１〜４３および５１はアンドゲート、４４〜４６および５２はオアゲートを示している。
【００３７】
ここで、ＦＦ２０はＣＧＣ１１により制御される複数のフリップフロップを示し、ＦＦ２０’はＣＧＣ１２により制御される複数のフリップフロップを示し、そして、ＦＦ２０”はＣＧＣ１３により制御される複数のフリップフロップを示している。
【００３８】
また、ＳＦＦ２１〜２３は、クロック信号ＣＫに従ったスキャンシフト動作により、各ＳＦＦに保持する値を自由に決めることができるようになっている。なお、制御信号生成回路５０に供給するクロック信号は、クロック信号ＣＫでもよいが異なるクロック信号であってもよい。
【００３９】
また、図２に示すブロック図では、説明を簡略化するために、クロック信号ツリーを３分割しているが、実際のＬＳＩでは、さらに多数のＣＧＣおよびＦＦが配置されるのはいうまでもない。
【００４０】
まず、ＣＧＣ１１〜１３は、それら各ＣＧＣ１１〜１３のイネーブル端子ＥＮ（ＥＮ端子）に”１”が設定されると、アクティブ状態になってクロック信号ＣＫをそのままその先のＦＦ２０，２０’，２０”に伝播させる。これにより、ＦＦ２０，２０’，２０”は、それらの入力端子Ｄの値を取り込む（キャプチャする）。
【００４１】
逆に、ＣＧＣ１１〜１３は、それら各ＣＧＣ１１〜１３のＥＮ端子に”０”が設定されると、非アクティブ状態になってクロック信号ＣＫをその先のＦＦ２０，２０’，２０”に伝播させない。これにより、ＦＦ２０，２０’，２０”は、動作しないことになる。
【００４２】
なお、ＣＧＣ１１〜１３のＥＮ端子の論理とアクティブ状態／非アクティブ状態の関係は単なる例であり、逆の論理関係にすることもできるのはもちろんである。
【００４３】
図２に示されるように、ＣＧＣ制御回路５は、制御信号生成回路５０、アンドゲート５１およびオアゲート５２を有する。ここで、ＣＧＣ制御回路５は、５つのモード信号ＴＭＳ，ＳＭＳ，ＡＯＳ，ＭＳ１およびＭＳ２により制御されるようになっている。
【００４４】
なお、これらのモード信号ＡＯＳ，ＭＳ１およびＭＳ２は、ＬＳＩの外部端子を介して直接供給することもできる。また、モード信号ＡＯＳ，ＭＳ１およびＭＳ２は、スキャンフリップフロップを使用せずに、ＬＳＩの内部で生成してもよい。
【００４５】
図３は第１実施例の半導体集積回路におけるモード信号とその役割を説明するための図である。
【００４６】
図３に示されるように、モード信号ＴＭＳは、例えば、テスト動作と通常動作を切り替えるためのテストモード信号であり、”０”のときに通常動作が設定され、”１”のときにテスト動作が設定される。
【００４７】
モード信号ＳＭＳは、スキャンテスト時のシフト動作とキャプチャ動作の切り替えを行うスキャンテスト時モード切り替え信号であり、テスト動作モードにおいて、”０”のときにキャプチャ動作が設定され、”１”のときにシフト動作が設定される。
【００４８】
モード信号ＭＳ１は、ＣＧＣ制御回路５の使用を制御する第１モード信号であり、”１”のときにユーザー論理４１〜４３のみが使用され、”０”のときにユーザー論理４１〜４３およびＣＧＣ制御回路５が使用される。
【００４９】
モード信号ＭＳ２は、制御信号生成回路５０に設けられた第１および第２デコーダのどちらを使用するかを決める第２モード信号であり、”０”のときに第１デコーダ５０１を使用し、”１”のときに第２デコーダ５０２を使用する。なお、第１および第２デコーダ５０１，５０２は、後に図４〜図６を参照して詳述する。
【００５０】
モード信号ＡＯＳは、すべてのＦＦに対して強制的にクロック信号を伝播するか否かを決めるオールオンモード信号であり、”０”のときはユーザー論理４１〜４３やＣＧＣ制御回路５の論理に従ってクロック信号を伝播する。また、信号ＡＯＳが”１”のときは、すべてのＦＦに対して強制的にクロック信号を伝播する。
【００５１】
再び、図２を参照して、モード信号ＴＭＳは、アンドゲート５１の一方の入力および制御信号生成回路５０の入力ＴＭに供給され、また、モード信号ＳＭＳは、オアゲート５２の一方の入力に供給されている。
【００５２】
オアゲート５２の他方の入力には、ＳＦＦ２１の出力信号であるモード信号ＡＯＳが供給され、オアゲート５２の出力信号は、アンドゲート５１の他方の入力に供給されている。
【００５３】
制御信号生成回路５０の入力Ｍ１には、ＳＦＦ２２の出力信号である第１モード信号ＭＳ１が供給され、また、制御信号生成回路５０の入力Ｍ２には、ＳＦＦ２３の出力信号である第２モード信号ＭＳ２が供給されている。なお、制御信号生成回路５０の入力CLOCKには、クロック信号ＣＫが供給されている。
【００５４】
アンドゲート５１の出力信号Cnt0は、オアゲート４４〜４６の各一方の入力に供給され、また、オアゲート４４〜４６の各他方の入力には、それぞれアンドゲート４１〜４３の出力信号が供給されている。
【００５５】
アンドゲート４１〜４３の各一方の入力には、それぞれ制御信号生成回路５０からの制御信号Cnt1〜Cnt3が供給され、また、アンドゲート４１〜４３の各他方の入力には、それぞれユーザー論理３１〜３３が供給されている。
【００５６】
そして、オアゲート４４〜４６の出力信号は、それぞれＣＧＣ１１〜１３の各ＥＮ端子に供給されている。なお、図２では、３つのＣＧＣ１１〜１３のみを描いているが、より多くのＣＧＣの各ＥＮ端子に対して、それぞれ信号（オアゲート４４〜４６の出力信号に対応する信号）を供給することができるのはいうまでもない。
【００５７】
図２において、テストモード信号ＴＭＳが”１”、すなわち、テスト動作のとき、スキャンテスト時モード切り替え信号ＳＭＳまたはオールオンモード信号ＡＯＳが”１”になると制御信号Cnt0が”１”になる。
【００５８】
これにより、オアゲート４４，４５，４６の出力が”１”になり、すべてのＣＧＣ１１〜１３がアクティブ状態になって後段のＦＦ２０，２０’２０”に対してクロック信号を伝播させる。
【００５９】
また、モード信号ＳＭＳおよびＡＯＳが共に”０”だと、テストモード信号ＴＭＳのレベルに関わらず制御信号Cnt0は”０”になり、アンドゲート４１〜４３の出力信号がそのままＣＧＣ１１〜１３のＥＮ端子に供給される。
【００６０】
図４は第１実施例の半導体集積回路における制御信号生成回路５０の一例を示すブロック図である。図４において、参照符号５０１は第１デコーダ、５０２は第２デコーダ、そして、５３１〜５３３はマルチプレクサ（ＭＵＸ）を示している。
【００６１】
図４に示されるように、制御信号生成回路５０は、第１デコーダ５０１、第２デコーダ５０２、ＭＵＸ５３１〜５３３、インバータ５４１、オアゲート５４２〜５４５およびＳＦＦ５５１，５５２およびを有する。
【００６２】
ここで、ＳＦＦ５５１，５５２は、前述したＳＦＦ２１〜２３と同様に、スキャンシフト動作でその値を自由に決めることができ、例えば、ＳＦＦ５５１，５５２およびＳＦＦ２１〜２３の５つのＳＦＦに対してクロック信号ＣＫに従ってデータを設定する。
【００６３】
オアゲート５４２の一方の入力には、インバータ５４１を介して論理反転されたテストモード信号ＴＭＳが供給され、オアゲート５４２の他方の入力には、第１モード信号ＭＳ１が供給される。
【００６４】
各ＭＵＸ５３１〜５３３の一方の入力には、第１デコーダ５０１の出力out11〜out13が供給され、各ＭＵＸ５３１〜５３３の他方の入力には、第２デコーダ５０２の出力out21〜out23が供給され、第２モード信号ＭＳ２によりいずれか一方が選択して出力される。
【００６５】
第１デコーダ５０１の入力in11およびinn12には、ＳＦＦ５５１および５５２のＱ出力が供給され、第２デコーダ５０２の入力in21およびinn22には、ＳＦＦ５５１および５５２のＱ出力が供給されている。
【００６６】
オアゲート５４３〜５４５の一方の入力には、オアゲート５４２の出力信号が供給され、オアゲート５４３〜５４５の他方の入力には、ＭＵＸ５３１〜５３３の出力信号が供給されている。
【００６７】
そして、オアゲート５４３〜５４５の出力信号が、出力端子Ｃ１〜Ｃ３を介して制御信号Cnt1〜Cnt3として、前述したアンドゲート４１〜４３の一方の入力に供給されることになる。
【００６８】
図５は図４の制御信号生成回路５０における第１デコーダ５０１を説明するための図であり、図５（ａ）は第１デコーダ５０１の真理値表を示し、図５（ｂ）は第１デコーダ５０１の回路例を示している。
【００６９】
図５（ａ）に示されるように、第１デコーダ（１ホットデコーダ：1 Hot-Decoder）５０１は、入力in11,in12の論理により、３つの出力out11〜out13のうちの１つを”１”とし他の２つを”０”にするか、或いは、３つすべてを”０”にするデコーダである。
【００７０】
図５（ｂ）に示されるように、第１デコーダ５０１は、例えば、インバータ５１１，５１２、アンドゲート５１３，５１４、および、ノアゲート５１５を有する。なお、第１デコーダ５０１は、図５（ｂ）に示す回路に限定されるものではなく、様々な回路により実現することができる。
【００７１】
図６は図４の制御信号生成回路５０における第２デコーダ５０２を説明するための図であり、図６（ａ）は第２デコーダ５０２の真理値表を示し、図６（ｂ）は第２デコーダ５０２の回路例を示している。
【００７２】
図６（ａ）に示されるように、第２デコーダ（２ホットデコーダ：2 Hot-Decoder）５０２は、入力in21,in22の論理により、３つの出力out21〜out23のうちの２つを”１”とし他の１つを”０”にするか、或いは、３つすべてを”０”にするデコーダである。
【００７３】
図６（ｂ）に示されるように、第２デコーダ５０２は、例えば、インバータ５２１，５２２、アンドゲート５２３，５２４、および、オアゲート５２５を有する。なお、第２デコーダ５０２も、図６（ｂ）に示す回路に限定されるものではなく、様々な回路により実現することができる。
【００７４】
さらに、前述したように、ＭＵＸ５３１〜５３３に供給する第２モード信号ＭＳ２により、第１デコーダ５０１の出力out11〜out13または第２デコーダ５０２の出力out21〜out23のいずれかを選択してオアゲート５４３〜５４５の他方の入力に供給する。
【００７５】
そして、テストモード信号ＴＭＳを”１”にすると共に第１モード信号ＭＳ１を”０”にしてオアゲート５４２の出力信号を”０”にすると、ＭＵＸ５３１〜５３３の出力信号がオアゲート５４３〜５４５を介してそのまま制御信号Cnt1〜Cnt3になる。
【００７６】
なお、テストモード信号ＴＭＳが”０”、すなわち、通常動作のとき、オアゲート５４２の出力は”１”になり、制御信号Cnt1〜Cnt3はすべて”１”になり、図２のアンドゲート４１〜４３からは、ユーザー論理３１〜３３の信号が出力される。これは、第１モード信号ＭＳ１が”１”の場合も同様である。
【００７７】
以上において、第１実施例では、クロック信号ツリーを３分割する例（ＣＧＣが３個の例）であるため、第１および第２デコーダ５０１および５０２は３出力になっている。例えば、クロック信号ツリーをＮ個に分割するとき（ＣＧＣがＮ個のとき）は、Ｎ出力のデコーダ回路を使用することになる。
【００７８】
すなわち、制御信号生成回路５０は、Ｎ個のＣＧＣのうち、任意の１個のＣＧＣを選択する１ホットデコーダと、任意の２個のＣＧＣを選択する２ホットデコーダと、……、任意のＮ−１個のＣＧＣを選択するＮ−１ホットデコーダと、を有することになる。そして、これらのデコーダは、それぞれＣＧＣの数に対応したＮ個のデコードされた信号を出力することになる。
【００７９】
具体的に、Ｎ＝４の場合、制御信号生成回路５０は、さらに、４つの出力のうちの３つを”１”とし他の１つを”０”にするか、或いは、４つすべてを”０”にする第３デコーダ（３ホットデコーダ：3 Hot-Decoder）を有することになる。
【００８０】
なお、Ｎ＝４の場合の第１デコーダ（１ホットデコーダ）は、４つの出力のうちの１つを”１”とし他の３つを”０”にするか、或いは、４つすべてを”０”にするデコーダとなる。
【００８１】
また、Ｎ＝４の場合の第２デコーダ（２ホットデコーダ）は、４つの出力のうちの２つを”１”とし他の２つを”０”にするか、或いは、４つすべてを”０”にするデコーダとなる。
【００８２】
なお、制御信号生成回路５０が有する３つ以上のデコーダを有し、その出力を選択して使用する場合には、モード信号ＭＳ２をそのデコーダの数に対応した複数ビットにすることになる。
【００８３】
ただし、例えば、Ｎ＝４の場合、制御信号生成回路５０は、必ず第１〜第３デコーダのすべてを設けなくても、テストの内容によって、例えば、４つの出力のうちの３つを”１”にする必要がなければ、第３デコーダを省くことも可能である。
【００８４】
図７は第１実施例の半導体集積回路における各動作モードと制御信号生成回路の入出力値との関係を説明するための図である。図７において、”０”は低レベル『Ｌ』、”１”は高レベル『Ｈ』、そして、”Ｘ”は不定（低レベル『Ｌ』でも高レベル『Ｈ』でもよい）を示している。
【００８５】
図７に示されるように、通常動作時には、テストモード信号ＴＭＳのみを”０”にすることで制御信号Cnt0が”０”で制御信号Cnt1〜Cnt3が”１”になり、図２のアンドゲート４１〜４３からは、ユーザー論理３１〜３３の信号が出力される。なお、他のモード信号ＳＭＳ，ＭＳ１，ＭＳ２，ＡＯＳは”０”または”１”のいずれでもよい（不定”Ｘ”）。
【００８６】
次に、テスト動作時には、まず、テストモード信号ＴＭＳを”１”に設定する。そして、スキャンテスト時モード切り替え信号ＳＭＳを”１”にすることでスキャンモードとしてＳＦＦ２１〜２３およびＳＦＦ５５１，５５２にデータをシフトして設定する。
【００８７】
まず、スルーモードは、テストモード信号ＴＭＳおよび第１モード信号ＭＳ１を”１”に設定し、スキャンテスト時モード切り替え信号ＳＭＳおよび第１モード信号ＭＳ１を”０”に設定する。なお、第２モード信号ＭＳ２は不定”Ｘ”でよい。
【００８８】
これにより、制御信号Cnt0が”０”で制御信号Cnt1〜Cnt3が”１”になって，ユーザー論理３１〜３３の信号が，アンドゲート４１〜４３およびオアゲート４４〜４６をスルーしてそのままＣＧＣ１１〜１３の各ＥＮ端子に供給される。
【００８９】
また、１ホットモードは、テストモード信号ＴＭＳを”１”に設定し、第２モード信号ＭＳ２および他のモード信号ＳＭＳ，ＭＳ１，ＡＯＳを”０”に設定する。
【００９０】
これにより、第１デコーダ（１ホットデコーダ）５０１の出力信号out11〜out13が制御信号Cnt1〜Cnt3として出力され、その制御信号Cnt1〜Cnt3（out11〜out13）およびユーザー論理を用いてＣＧＣ１１〜１３を制御する。
【００９１】
さらに、２ホットモードは、テストモード信号ＴＭＳおよび第２モード信号ＭＳ２を”１”に設定し、他のモード信号ＳＭＳ，ＭＳ１，ＡＯＳを”０”に設定する。
【００９２】
これにより、第２デコーダ（２ホットデコーダ）５０２の出力信号out21〜out23が制御信号Cnt1〜Cnt3として出力され、その制御信号Cnt1〜Cnt3（out21〜out23）およびユーザー論理を用いてＣＧＣ１１〜１３を制御する。
【００９３】
そして、アクティブモードは、テストモード信号ＴＭＳおよびオールオンモード信号ＡＯＳを”１”に設定し、スキャンテスト時モード切り替え信号ＳＭＳを”０”に設定する。なお、他のモード信号ＭＳ１，ＭＳ２は不定”Ｘ”でよい。
【００９４】
これにより、すべてのＣＧＣ１１〜１３がアクティブ状態になり、すべてのＦＦ２０，２０’，２０”に対して同時にクロック信号が供給される。なお、モード信号ＡＯＳ，ＭＳ１，ＭＳ２は、ＳＦＦ２１〜２３の設定値を変更することにより切り替えることができる。
【００９５】
このように、本第１実施例によれば、テスト動作モード時に、ユーザー論理の信号に関わらず任意の組み合わせのＣＧＣを非アクティブ状態にすることができる。これにより、同時に動作するＦＦの数を自由に設定することができるため、消費電力やＩＲドロップを確実に抑制することが可能になる。
【００９６】
また、ＣＧＣの制御に、単純な構成の制御信号生成回路を使用することでテストパターンを生成するソフトウェアの負荷を低減することができ、テストパターン生成時間およびテストパターン数の増加を抑えることも可能になる。
【００９７】
図８は第２実施例の半導体集積回路を示すブロック図である。
図８と図２との比較から明らかなように、本第２実施例では、ＣＧＣを通さないでクロック信号ＣＫを直接受け取る複数のフリップフロップ（クロック直接受信フリップフロップ）２０”に対して、アンドゲート１３０を設けるようになっている。
【００９８】
すなわち、テスト動作モードにおいて、フリップフロップ２０”を動作させる必要がない場合、制御信号生成回路５０からの制御信号Cnt3およびアンドゲート５１からの制御信号Cnt0を”０”にしてアンドゲート１３０の出力信号を”０”にする。
【００９９】
このように、ＣＧＣが設けられていないフリップフロップに対してもテスト動作モード時のクロック信号の供給を停止することでより一層の低消費電力化およびＩＲドロップの抑制を行うことが可能になる。
【０１００】
図９は第３実施例の半導体集積回路を示すブロック図である。図９において、参照符号３１１，…，３１ｍおよび３２１，…，３２ｍはユーザー論理、６１１，…，６１ｍおよび６２１，…，６２ｍはＣＧＣ、そして、５１０，５２０，５３０はＣＧＣ制御回路を示している。
【０１０１】
なお、ＣＧＣ制御回路５３０が制御する回路ＰＣは、ＣＧＣ制御回路５２０が制御する回路ＰＣと同様のものである。
【０１０２】
図９から明らかなように、本第３実施例では、半導体集積回路が多数のＣＧＣを有する場合、そのＣＧＣを複数のグループに分割し、グループごとにＣＧＣ制御回路５１０，５２０，５３０を設けるようになっている。
【０１０３】
具体的に、例えば、ＣＧＣが９個の場合（Ｎ＝３のとき）、９個のＣＧＣに対して１つのＣＧＣ制御回路を設けるのではなく、３分割して、３つのＣＧＣに対してそれぞれＣＧＣ制御回路を設ける。すなわち、ＣＧＣ制御回路は３つになり、各ＣＧＣ制御回路がそれぞれ３個のＣＧＣを制御することになる。
【０１０４】
これにより、例えば、ＣＧＣ制御回路の制御信号生成回路に設けられるデコーダの出力信号が少なくなり、ＣＧＣ制御回路全体としての回路規模を小さくするこができ、より一層の低消費電力化およびＩＲドロップの抑制を行うことが可能になる。
【０１０５】
なお、上述した各実施例におけるモード信号ＴＭＳ，ＳＭＳ，ＡＯＳ，ＭＳ１，ＭＳ２は単なる例であり、様々なモード信号を使用することができ、また、その論理も上述した実施例に限定されるものではない。
【０１０６】
さらに、各実施例における論理ゲート４１〜４６，５４１〜５４５や制御信号生成回路５０における第１および第２デコーダ５０１，５０２等は単なる例であり、様々なものを適用することができるのはいうまでもない。
【０１０７】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
複数のクロックゲーティング回路と、
該各クロックゲーティング回路によりクロック信号の伝播が制御される複数のフリップフロップと、
前記複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態を制御するクロックゲーティング制御回路と、を有し、
前記クロックゲーティング制御回路は、テスト動作モード時に、前記複数のクロックゲーティング回路のアクティブ状態／非アクティブ状態の制御を、ユーザー論理の信号に従って行うか、或いは、前記ユーザー論理の信号に関わらず任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかを制御することを特長とする半導体集積回路。
【０１０８】
（付記２）
付記１に記載の半導体集積回路において、
前記クロックゲーティング制御回路は、前記テスト動作モード時に、前記ユーザー論理の信号に関わらず非アクティブ状態にする前記任意の組み合わせのクロックゲーティング回路を規定するための制御信号を生成する制御信号生成回路を有することを特長とする半導体集積回路。
【０１０９】
（付記３）
付記２に記載の半導体集積回路において、
該半導体集積回路は、複数のモード信号に従って所定のモードに設定され、
前記制御信号生成回路は、前記複数のモード信号に従って前記制御信号を生成することを特長とする半導体集積回路。
【０１１０】
（付記４）
付記３に記載の半導体集積回路において、
前記複数のモード信号は、テスト動作と通常動作を切り替えるためのテストモード信号、スキャンテスト時のシフト動作とキャプチャ動作の切り替えを行うスキャンテスト時モード切り替え信号、および、前記クロックゲーティング制御回路から出力される前記制御信号を設定するモード信号を含むことを特長とする半導体集積回路。
【０１１１】
（付記５）
付記３または４に記載の半導体集積回路において、さらに、
前記複数のモード信号を設定する複数の第１スキャン用フリップフロップを有することを特長とする半導体集積回路。
【０１１２】
（付記６）
付記２〜５のいずれか１項に記載の半導体集積回路において、さらに、
前記テスト動作モード時に、前記複数のクロックゲーティング回路の各イネーブル端子に対して、前記ユーザー論理からの信号か、任意の組み合わせのクロックゲーティング回路を非アクティブ状態にする信号を供給する第１論理回路を有することを特徴とする半導体集積回路。
【０１１３】
（付記７）
付記２〜６のいずれか１項に記載の半導体集積回路において、
前記制御信号生成回路は、前記複数のクロックゲーティング回路の数をＮとして、該Ｎ個のクロックゲーティング回路のうち、任意の１個のクロックゲーティング回路を選択する第１デコーダと、任意の２個のクロックゲーティング回路を選択する第２デコーダと、……、任意のＮ−１個のクロックゲーティング回路を選択する第Ｎ−１デコーダと、を有することを特長とする半導体集積回路。
【０１１４】
（付記８）
付記７に記載の半導体集積回路において、
前記制御信号生成回路は、前記第１〜第Ｎ−１デコーダのいずれか１つのデコーダの出力信号を選択し、前記制御信号として出力する選択回路を有することを特長とする半導体集積回路。
【０１１５】
（付記９）
付記７または８に記載の半導体集積回路において、
前記制御信号生成回路は、前記第１〜第Ｎ−１デコーダに供給する信号を設定する複数の第２スキャン用フリップフロップを有することを特長とする半導体集積回路。
【０１１６】
（付記１０）
付記２〜９のいずれか１項に記載の半導体集積回路において、さらに、
クロックゲーティング回路を介さないで前記クロック信号を直接受け取る複数の直接受信フリップフロップと、
該直接受信フリップフロップのイネーブル端子に設けられ、前記クロック信号と前記制御信号との論理を取る第２論理回路と、を有することを特長とする半導体集積回路。
【０１１７】
（付記１１）
付記１〜１０のいずれか１項に記載の半導体集積回路において、
前記複数のクロックゲーティング回路は、複数のグループに分割され、
前記クロックゲーティング制御回路は、複数設けられ、
前記各クロックゲーティング制御回路が分割された前記各グループの前記クロックゲーティング回路を制御することを特長とする半導体集積回路。
【０１１８】
（付記１２）
複数のクロックゲーティング回路、および、該各クロックゲーティング回路によりクロック信号の伝播が制御される複数のフリップフロップを有する半導体集積回路のテスト方法であって、
テスト動作モード時に、前記複数のクロックゲーティング回路を、ユーザー論理の信号に従ってアクティブ状態／非アクティブ状態の制御を行うか、或いは、前記ユーザー論理の信号に関わらず任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかを制御することを特長とする半導体集積回路のテスト方法。
【０１１９】
（付記１３）
付記１２に記載の半導体集積回路のテスト方法において、
前記半導体集積回路は、複数のモード信号に従って所定のモードに設定され、
前記テストモード時に、前記ユーザー論理の信号に関わらず前記非アクティブ状態にされる前記任意の組み合わせのクロックゲーティング回路は、複数のモード信号に従って制御されることを特長とする半導体集積回路のテスト方法。
【０１２０】
（付記１４）
付記１３に記載の半導体集積回路のテスト方法において、
前記複数のモード信号は、テスト動作と通常動作を切り替えるためのテストモード信号、スキャンテスト時のシフト動作とキャプチャ動作の切り替えを行うスキャンテスト時モード切り替え信号、および、前記クロックゲーティング制御回路から出力される前記制御信号を設定するモード信号を含むことを特長とする半導体集積回路のテスト方法。
【０１２１】
（付記１５）
付記１２〜１４のいずれか１項に記載の半導体集積回路のテスト方法において、
前記複数のクロックゲーティング回路を複数のグループに分割し、
前記テスト動作モード時に、前記各グループにおいて、当該各グループのクロックゲーティング回路を、前記ユーザー論理の信号に従ってアクティブ状態／非アクティブ状態の制御を行うか、或いは、前記ユーザー論理の信号に関わらず任意の組み合わせのクロックゲーティング回路を非アクティブ状態にするかを制御することを特長とする半導体集積回路のテスト方法。
【符号の説明】
【０１２２】
５；５１０，５２０，５３０    クロックゲーティング制御回路（ＣＧＣ制御回路）
１１，１２，１３；１１１，１１２，１１３，１１４；６１１〜６１ｍ，６２１〜６２ｍ    クロックゲーティング回路（ＣＧＣ）
２０，２０’，２０”；１２０，１２０’    フリップフロップ（ＦＦ）
２１，２２，２３；５５１，５５２    スキャン用フリップフロップ（ＳＦＦ）
３１，３２，３３；１３１〜１３６；３１１〜３１ｍ，３２１〜３２ｍ    ユーザー論理
５０    制御信号生成回路
５０１    第１デコーダ（１ホットデコーダ：1 Hot-Decoder）
５０２    第２デコーダ（２ホットデコーダ：2 Hot-Decoder）
５３１，５３２，５３３    マルチプレクサ（ＭＵＸ）
【図１】
2010223793.tif 000003
【図２】
2010223793.tif 000004
【図３】
2010223793.tif 000005
【図４】
2010223793.tif 000006
【図５】
2010223793.tif 000007
【図６】
2010223793.tif 000008
【図７】
2010223793.tif 000009
【図８】
2010223793.tif 000010
【図９】
2010223793.tif 000011