(57)【要約】【課題】テスト時の消費電力を低減することができる半導体集積回路を提供すること。【解決手段】本発明にかかる半導体集積回路１００は、フリップフロップＦＦ、制御回路１０及び排他的論理和ブロックを有する。フリップフロップＦＦは、テスト入力Ｔにテストデータ信号ＴＩＮが入力する。排他的論理和ブロック２０は、一方の入力がフリップフロップＦＦのテスト入力Ｔと接続され、他方の入力がフリップフロップＦＦの出力Ｑと接続される。制御回路１０は、排他的論理和ブロック２０の出力ＸＯＲとクロック信号ＣＬＫとが入力し、排他的論理和ブロックの出力ＸＯＲの値に応じてフリップフロップＦＦへのクロック信号ＣＬＫの出力を制御する。【選択図】図１
2013019743.tif 000002
【特許請求の範囲】
【請求項１】
テスト入力にテストデータが入力するフリップフロップと、
一方の入力が前記フリップフロップの前記テスト入力と接続され、他方の入力が前記フリップフロップの出力と接続される排他的論理和ブロックと、
前記排他的論理和ブロックの出力とクロック信号とが入力し、前記排他的論理和ブロックの前記出力の値に応じて前記フリップフロップへの前記クロック信号の出力を制御する制御回路と、を備える、
半導体集積回路。
【請求項２】
前記制御回路は、
前記排他的論理和ブロックの前記出力の値が「１」である場合に前記クロック信号を出力し、
前記排他的論理和ブロックの前記出力の値が「０」である場合に前記クロック信号の出力を停止することを特徴とする、
請求項１に記載の半導体集積回路。
【請求項３】
前記制御回路は、
一方の入力が前記排他的論理和ブロックの前記出力と接続され、他方の入力に前記クロック信号が入力する論理積ブロックを備えることを特徴とする、
請求項２に記載の半導体集積回路。
【請求項４】
前記制御回路は、
外部からの制御信号により制御され、通常動作時には一方の入力に入力する前記クロック信号を前記フリップフロップに出力し、テスト動作時には他方の入力と接続される前記論理積ブロックの前記出力からの信号を前記フリップフロップに出力するマルチプレクサを更に備えることを特徴とする、
請求項３に記載の半導体集積回路。
【請求項５】
前記フリップフロップ、前記排他的論理和ブロック及び前記制御回路は、１つのテスト用フリップフロップを構成することを特徴とする、
請求項１乃至４のいずれか一項に記載の半導体集積回路。
【請求項６】
従属接続された複数の前記テスト用フリップフロップを備え、
前記テスト用フリップフロップの前記フリップフロップの出力が後段の前記テスト用フリップフロップの前記フリップフロップの前記テスト入力と接続されることにより、シフトレジスタが構成されることを特徴とする、
請求項５に記載の半導体集積回路。
【請求項７】
前記シフトレジスタはスキャンチェーンを構成し、
前記シフトレジスタには前記テストデータとしてスキャンテストパターンが入力することを特徴とする、
請求項６に記載の半導体集積回路。
【請求項８】
テスト入力に入力する信号をラッチし、ラッチした信号を出力するフリップフロップと、
前記フリップフロップの前記テスト入力の値と、前記フリップフロップの出力の値との排他的論理和を出力する排他的論理和ブロックと、
前記排他的論理和ブロックの出力の値に応じて、前記フリップフロップへの前記クロック信号の出力を制御する制御回路と、を備える、
半導体集積回路。
【請求項９】
前記制御回路は、
前記排他的論理和ブロックの前記出力の値が「１」である場合に前記クロック信号を出力し、
前記排他的論理和ブロックの前記出力の値が「０」である場合に前記クロック信号の出力を停止することを特徴とする、
請求項８に記載の半導体集積回路。
【請求項１０】
前記制御回路は、
前記排他的論理和ブロックの前記出力と前記クロック信号との論理積を出力する論理積ブロックを備えることを特徴とする、
請求項９に記載の半導体集積回路。
【請求項１１】
前記制御回路は、
外部からの制御信号により制御され、通常動作時には前記クロック信号を前記フリップフロップに出力し、テスト動作時には前記論理積ブロックの出力からの信号を前記フリップフロップに出力するマルチプレクサを更に備えることを特徴とする、
請求項１０に記載の半導体集積回路。
【請求項１２】
前記フリップフロップ、前記排他的論理和ブロック及び前記制御回路は、１つのテスト用フリップフロップを構成することを特徴とする、
請求項８乃至１１のいずれか一項に記載の半導体集積回路。
【請求項１３】
従属接続された複数の前記テスト用フリップフロップを備え、
前記テスト用フリップフロップの前記フリップフロップの出力が後段の前記テスト用フリップフロップの前記フリップフロップの前記テスト入力と接続されることにより、シフトレジスタが構成されることを特徴とする、
請求項１２に記載の半導体集積回路。
【請求項１４】
前記シフトレジスタはスキャンチェーンを構成し、
前記シフトレジスタにはテストデータとしてスキャンテストパターンが入力することを特徴とする、
請求項１３に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路に関し、特にテストが実施可能な半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路においては、論理回路の機能テストを容易にするため、半導体集積回路内部にテスト回路を挿入している。この論理回路の機能テストを容易化する手法として、スキャンテスト方式が幅広く使用されている。スキャンテスト用の回路は複数のスキャン用フリップフロップを使用して構成され、テスト時にスキャン用フリップフロップがシフトレジスタを構成（スキャンチェーン）する。
【０００３】
近年、プロセスの微細化に伴い、半導体集積回路は大規模化が進んでいる。半導体集積回路の大規模化に伴い、テスト時の電力消費も大きくなってきている。特に、多数のススキャン用フリップフロップが同時に動作するスキャンシフト時には、瞬間的に非常に大きな電力を消費する。スキャンシフト時に瞬間的に大きな電力消費が生じると、スキャンチェーン内の電圧が降下してしまう場合がある。その結果、電圧降下の影響でスキャン用フリップフロップが正常に値を取得できず、パタン不一致が発生する場合がある。一般的なテストパタン作成ツールでは、トグルが発生しないようなパタンを作成するがそれだけでは十分ではない。
【０００４】
このような問題を解決するため、スキャンテスト時の消費電力を低減する手法が提案されている（特許文献１）。この手法では、クロックラインにクロックゲーティングを挿入し、各クロックドメインへのクロック供給を制御する方法がとられる。なお、ここでいうクロックドメインとは、フリップフロップが従属接続された１つのスキャンチェーンを指す。よって、各クロックドメインへのクロック供給を制御するとは、複数のスキャンチェーンのそれぞれへのクロック信号の供給を制御することを意味する。
【０００５】
本手法では、クロック信号の供給を制御することにより、各クロックドメインのフリップフロップの動作タイミングを分散させる。具体的には、クロックラインに挿入されているクロックゲーティングにより、クロック信号を反転させた反転クロック信号を生成する。そして、２群に分けられたクロックドメインの一方の群にはクロック信号をそのまま供給し、他方の群には反転クロック信号を供給する。これにより、２つの群の間の動作タイミングはクロック信号の半周期分ずれることとなり、その結果、瞬間的な消費電力を低減することができる。
【０００６】
他にも、フリップフロップへの入力データを制御することにより、フリップフロップの消費電力を低減する手法が提案されている（特許文献２）。この手法では、フリップフロップへの入力データの値が「１」となる場合の比率を多くする。これにより、入力データの値の遷移回数を削減し、消費電力を低減することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２２２６４４号公報
【特許文献２】特開２００９−１５０８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが発明者は、上述の手法には、以下に示す問題点が有ることを見出した。上述のように、クロックドメインの動作タイミングが分散するように制御することは可能であるが、近年の大規模化した半導体集積回路では多数のクロックドメインが存在する。よって、多数のクロックドメインのそれぞれの動作タイミングをずらすように制御をすることがそもそも困難である。また、同一のクロックドメイン内の複数のフリップフロップが同一のタイミングで動作することは避けられない。よって、大規模な半導体集積回路において、同一のクロックドメイン内のフリップフロップ数が多い場合には、スキャンシフト時の瞬間的な電力消費が大きくなってしまう。すなわち、上述の手法では、今後進展する半導体集積回路の大規模化に対応したスキャンテスト時の消費電力低減を実現することはできない。
【課題を解決するための手段】
【０００９】
本発明の一態様である半導体集積回路は、テスト入力にテストデータが入力するフリップフロップと、一方の入力が前記フリップフロップの前記テスト入力と接続され、他方の入力が前記フリップフロップの出力と接続される排他的論理和ブロックと、前記排他的論理和ブロックの出力とクロック信号とが入力し、前記排他的論理和ブロックの前記出力の値に応じて前記フリップフロップへの前記クロック信号の出力を制御する制御回路と、を備えるものある。この半導体集積回路によれば、フリップフロップに同じテストデータが連続して入力する場合に、フリップフロップへのクロック信号の供給を停止できる。その結果、フリップフロップを個別に停止し、消費電力の低減を図ることができる。
【００１０】
本発明の一態様である半導体集積回路は、テスト入力に入力する信号をラッチし、ラッチした信号を出力するフリップフロップと、前記フリップフロップの前記テスト入力の値と、前記フリップフロップの出力の値との排他的論理和を出力する排他的論理和ブロックと、前記排他的論理和ブロックの出力の値に応じて、前記フリップフロップへの前記クロック信号の出力を制御する制御回路と、を備えるものである。この半導体集積回路によれば、フリップフロップに同じテストデータが連続して入力する場合に、フリップフロップへのクロック信号の供給を停止できる。その結果、フリップフロップを個別に停止し、消費電力の低減を図ることができる。
【発明の効果】
【００１１】
本発明によれば、テスト時の消費電力を低減することができる半導体集積回路を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる半導体集積回路１００の要部の構成を示すブロックである。
【図２】実施の形態１にかかる半導体集積回路１００のテスト動作を示すタイミングチャートである。
【図３】実施の形態１にかかる半導体集積回路１００の要部のより詳細な構成を示すブロック図。
【図４】実施の形態２にかかる半導体集積回路２００の要部の構成を示すブロック図であるである。
【図５】実施の形態２にかかる半導体集積回路２００のテスト動作を示すタイミングチャートである。
【図６】実施の形態３にかかるフリップフロップセル３００の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
【００１４】
実施の形態１
まず、実施の形態１にかかる半導体集積回路１００について説明する。図１は、実施の形態１にかかる半導体集積回路１００の要部の構成を示すブロック図である。半導体集積回路１００は、フリップフロップＦＦ、制御回路１０及び排他的論理和ブロック２０を有する。なお、フリップフロップＦＦ、制御回路１０及び排他的論理和ブロック２０は、一体として１つのテスト用フリップフロップＴＦＦを構成する。
【００１５】
フリップフロップＦＦは、外部から与えられる制御信号ＣＯＮにより、入力の切替えが可能なフリップフロップである。以下では、通常動作時のデータ入力と、テスト動作時のテスト入力と、を切り替え可能な場合について説明する。フリップフロップＦＦは、データ入力Ｄ、テスト入力Ｔ、制御信号入力Ｃｏｎ、クロック信号入力Ｃｌｋ及び出力Ｑを有する。データ入力Ｄには、通常動作時に外部からデータ信号が入力する。テスト入力Ｔは、テストデータ端子Ｔｔと接続され、テスト動作時にテストデータ信号ＴＩＮが入力する。制御信号入力Ｃｏｎは、制御信号端子Ｔｃｏｎと接続され、制御信号ＣＯＮが入力する。出力Ｑは、出力端子Ｔｏｕｔと接続される。
【００１６】
排他的論理和ブロック２０の一方の入力はフリップフロップＦＦのテスト入力Ｔと接続され、他方の入力はフリップフロップＦＦの出力Ｑと接続される。排他的論理和ブロック２０の出力は、制御回路１０と接続される。これにより、排他的論理和ブロック２０は、テストデータ信号ＴＩＮと出力データＯＵＴとの排他的論理和に対応する出力ＸＯＲを、制御回路１０に出力する。
【００１７】
制御回路１０の入力は、制御信号端子Ｔｃｏｎ、クロック信号端子Ｔｃｌｋ及び排他的論理和ブロック２０の出力ＸＯＲと接続される。制御回路１０の出力は、フリップフロップＦＦのクロック信号入力Ｃｌｋと接続される。これにより、制御回路１０は、制御信号端子Ｔｃｏｎ及び出力ＸＯＲに基づいて、フリップフロップＦＦにクロック信号ＣＬＫを供給する。
【００１８】
次に、半導体集積回路１００の動作について説明する。上述のように、半導体集積回路１００の動作は、通常動作とテスト動作とに大別される。通常動作とテスト動作との切り替えは、制御信号ＣＯＮにより制御される。本実施の形態では、制御信号ＣＯＮが「０」の場合は通常動作、制御信号ＣＯＮが「１」の場合がテスト動作となる。フリップフロップＦＦは、通常動作時にはデータ入力Ｄに入力するデータ信号を選択し、テスト動作時にはテスト入力Ｔに入力するテストデータ信号ＴＩＮを選択する。
【００１９】
まず、通常動作を行う場合について説明する。通常動作では、制御信号ＣＯＮである「０」がフリップフロップＦＦの制御信号入力Ｃｏｎ及び制御回路１０に入力する。フリップフロップＦＦは、制御信号ＣＯＮの値「０」に応じて、データ入力Ｄに入力するデータ信号を入力データとして使用する。また、制御回路１０は、制御信号ＣＯＮの値「０」に応じて、クロック信号ＣＬＫをそのまま通過させる。よって、フリップフロップＦＦのクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。フリップフロップＦＦは、例えばクロック信号ＣＬＫの立ち上がりで、データ信号をラッチする。そして、一定の遅延ののち、ラッチしたデータを出力データＯＵＴとして出力する。
【００２０】
次いで、テスト動作を行う場合について説明する。図２は、実施の形態１にかかる半導体集積回路１００のテスト動作を示すタイミングチャートである。テスト動作では、制御信号ＣＯＮである「１」がフリップフロップＦＦの制御信号入力Ｃｏｎ及び制御回路１０に入力する。フリップフロップＦＦは、制御信号ＣＯＮの値「１」に応じて、テスト入力Ｔに入力するテストデータ信号ＴＩＮを入力データとして使用する。
【００２１】
排他的論理和ブロック２０は、テストデータ信号ＴＩＮの値及び出力データＯＵＴの値が共に「０」又は「１」である場合には、出力ＸＯＲとして「０」を出力する。つまり、フリップフロップＦＦのテスト入力Ｔ及び出力Ｑの論理値が同じである場合には出力ＸＯＲは「０」となる。また、排他的論理和ブロック２０は、テストデータ信号ＴＩＮ及び出力Ｑの一方の値が「０」で、他方の値が「１」である場合には、出力ＸＯＲとして「１」を出力する。つまり、フリップフロップＦＦのテスト入力Ｔ及び出力Ｑの論理値が異なる場合には出力ＸＯＲは「１」となる。
【００２２】
制御回路１０は、制御信号ＣＯＮの値「１」と出力ＸＯＲの値とに応じて、クロック信号ＣＬＫを出力する。具体的には、出力ＸＯＲの値が「１」である場合には、通常動作時と同様、クロック信号ＣＬＫをそのまま通過させる。すなわち、フリップフロップＦＦのテスト入力Ｔ及び出力Ｑの論理値が異なる場合には、フリップフロップＦＦのクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。フリップフロップＦＦは、例えばクロック信号ＣＬＫの立ち上がり（図２のタイミングＴ１）で、テストデータ信号ＴＩＮをラッチする。そして、一定の遅延ののち、ラッチしたデータを出力データＯＵＴとして出力する（図２のタイミングＴ２）。
【００２３】
一方、出力ＸＯＲの値が「０」である場合には、クロック信号ＣＬＫの出力を停止する。すなわち、フリップフロップＦＦのテスト入力Ｔ及び出力Ｑの論理値が同じである場合には、フリップフロップＦＦへのクロック信号ＣＬＫの供給が停止する（図２のタイミングＴ３）。よって、フリップフロップＦＦでのラッチ動作は発生せず、データはそのまま保持される。そして、出力ＸＯＲの値が「０」から「１」に変化したら、上述のように制御回路１０は、クロック信号に同期したラッチ動作を再開する（図２のタイミングＴ４）。
【００２４】
よって、半導体集積回路１００は、フリップフロップＦＦのテスト入力Ｔと出力Ｑの論理値が異なる場合にラッチ動作を行い、テスト入力Ｔと出力Ｑの論理値が同じ場合、すなわち同じ値のデータが２回以上連続して与えられる場合には、ラッチ動作が停止する。これにより、トグルが生じないデータが供給された場合にラッチ動作を停止し、消費電力を低減することができる。なお、クロック信号ＣＬＫの供給停止時には、フリップフロップＦＦには同じ信号が連続して与えられているので、そもそも出力Ｑの論理値は変化しない。よって、フリップフロップの動作が停止しても、同様の結果が得られる。従って、半導体集積回路１００によれば、フリップフロップにおける消費電力を低減することが可能となる。
【００２５】
続いて、制御回路１０の構成例について説明する。図３は、実施の形態１にかかる半導体集積回路１００の要部のより詳細な構成を示すブロック図である。図３に示すように、制御回路１０は、マルチプレクサＭＵＸ及び論理積ブロックＡＮＤを有する。論理積ブロックＡＮＤの一方の入力はクロック信号端子Ｔｃｌｋと接続され、他方の入力は排他的論理和ブロック２０の出力ＸＯＲと接続される。マルチプレクサＭＵＸの一方の入力は論理積ブロックＡＮＤの出力と接続され、他方の入力はクロック信号端子Ｔｃｌｋと接続される。マルチプレクサＭＵＸの出力は、フリップフロップＦＦのクロック信号入力Ｃｌｋと接続される。また、マルチプレクサＭＵＸの制御端子は、制御信号端子Ｔｃｏｎと接続される。制御回路１０以外の構成は、図１と同様であるので説明を省略する。
【００２６】
次いで、制御回路１０の動作について説明する。通常動作では、制御信号ＣＯＮである「０」がマルチプレクサＭＵＸに入力する。マルチプレクサＭＵＸは、制御信号ＣＯＮの値「０」に応じて、クロック信号ＣＬＫを選択し、クロック信号ＣＬＫをそのまま通過させる。よって、フリップフロップＦＦのクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。
【００２７】
テスト動作では、制御信号ＣＯＮである「１」がマルチプレクサＭＵＸに入力する。マルチプレクサＭＵＸは、制御信号ＣＯＮの値「１」に応じて、論理積ブロックＡＮＤの出力を選択し、論理積ブロックＡＮＤの出力値を出力する。よって、フリップフロップＦＦのクロック信号入力Ｃｌｋには、論理積ブロックＡＮＤの出力値が入力する。
【００２８】
論理積ブロックＡＮＤは、クロック信号ＣＬＫと排他的論理和ブロック２０の出力ＸＯＲとの論理積に対応する値を出力する。具体的には、出力ＸＯＲの値が「１」である場合には、通常動作時と同様、クロック信号ＣＬＫの値がそのまま出力される。すなわち、フリップフロップＦＦのテスト入力Ｔ及び出力Ｑの論理値が異なる場合には、フリップフロップＦＦのクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。
【００２９】
一方、出力ＸＯＲの値が「０」である場合には、クロック信号ＣＬＫの値にかかわりなく、論理積ブロックＡＮＤの出力は「０」となる。すなわち、フリップフロップＦＦのテスト入力Ｔ及び出力Ｑの論理値が同じである場合には、フリップフロップＦＦへのクロック信号ＣＬＫの供給が停止する。半導体集積回路１００のその他の構成は、図１の場合と同様であるので、説明を省略する。
【００３０】
よって、制御回路１０を図３に示す構成とすることで、図１に示す制御回路１０の機能を具体的に実現することが可能である。但し、図３に示す制御回路１０の構成は例示にすぎない。同様の動作を実現できるならば、制御回路１０は別の構成とすることが可能である。
【００３１】
実施の形態２
次に、実施の形態２にかかる半導体集積回路２００について説明する。実施の形態１にかかる半導体集積回路１００は１つのテスト用フリップフロップを有しているが、半導体集積回路２００は、複数のテスト用フリップフロップ回路を有している。図４は、実施の形態２にかかる半導体集積回路２００の要部の構成を示すブロック図である。半導体集積回路２００は、従属接続された複数のテスト用フリップフロップを有する。以下では、３つのテスト用フリップフロップＴＦＦ１〜ＴＦＦ３が従属接続されている例について説明する。テスト用フリップフロップＴＦＦ１〜ＴＦＦ３は、それぞれ実施の形態１にかかるテスト用フリップフロップＴＦＦに相当する。排他的論理和ブロック２１〜２３の出力は、それぞれＸＯＲ１〜ＸＯＲ３と表示している。
【００３２】
テスト用フリップフロップＴＦＦ１〜ＴＦＦ３は、それぞれフリップフロップＦＦ１〜ＦＦ３、制御回路１１〜１３及び排他的論理和ブロック２１〜２３を有する。フリップフロップＦＦ１〜ＦＦ３は、テスト用フリップフロップＴＦＦのフリップフロップＦＦに相当する。制御回路１１〜１３は、テスト用フリップフロップＴＦＦの制御回路１０に相当する。排他的論理和ブロック２１〜２３は、テスト用フリップフロップＴＦＦの排他的論理和ブロック２０に相当する。テスト用フリップフロップＴＦＦ１〜ＴＦＦ３のそれぞれの内部構成は、テスト用フリップフロップＴＦＦと同様であるので、説明を省略する。
【００３３】
フリップフロップＦＦ１のテスト入力Ｔは、テストデータ端子Ｔｔと接続される。フリップフロップＦＦ１の出力Ｑは、フリップフロップＦＦ２のテスト入力Ｔと接続される。フリップフロップＦＦ２の出力Ｑは、フリップフロップＦＦ３のテスト入力Ｔと接続される。フリップフロップＦＦ３の出力Ｑは、出力端子Ｔｏｕｔと接続される。これにより、フリップフロップＦＦ１〜ＦＦ３は従属接続され、１つのシフトレジスタを構成する。
【００３４】
続いて、半導体集積回路２００の動作について説明する。半導体集積回路２００の動作は、半導体集積回路１００と同様に、通常動作とテスト動作とに大別される。制御信号ＣＯＮが「０」の場合は通常動作、制御信号ＣＯＮが「１」の場合がテスト動作となる。通常動作時のテスト用フリップフロップＴＦＦ１〜ＴＦＦ３の動作は、半導体集積回路１００のテスト用フリップフロップＴＦＦと同様であるので、説明を省略する。
【００３５】
次いで、テスト動作を行う場合について説明する。図５は、実施の形態２にかかる半導体集積回路２００のテスト動作を示すタイミングチャートである。図５では、フリップフロップＦＦ１〜ＦＦ３のそれぞれのクロック信号入力をＦＦ１＿Ｃｌｋ〜ＦＦ３＿Ｃｌｋと表示している。また、フリップフロップＦＦ１〜ＦＦ３のそれぞれの出力をＦＦ１＿Ｑ〜ＦＦ３＿Ｑと表示している。テスト動作では、制御信号ＣＯＮである「１」がフリップフロップＦＦ１〜ＦＦ３の制御信号入力Ｃｏｎ及び制御回路１１〜１３に入力する。
【００３６】
まず、テスト用フリップフロップＴＦＦ１の動作を説明する。テスト用フリップフロップＴＦＦ１の動作は、実施の形態１におけるテスト用フリップフロップＴＦＦと同様である。フリップフロップＦＦ１は、制御信号ＣＯＮの値「１」に応じて、テスト入力Ｔに入力するテストデータ信号ＴＩＮを入力データとして使用する。
【００３７】
排他的論理和ブロック２１は、テストデータ信号ＴＩＮの値及び出力データＯＵＴ１の値が共に「０」又は「１」である場合には、出力ＸＯＲ１として「０」を出力する。つまり、フリップフロップＦＦ１のテスト入力Ｔ及び出力Ｑの論理値が同じである場合には出力ＸＯＲ１は「０」となる。また、排他的論理和ブロック２１は、テストデータ信号ＴＩＮ及び出力データＯＵＴ１の一方の値が「０」で、他方の値が「１」である場合には、出力ＸＯＲ１として「１」を出力する。つまり、フリップフロップＦＦ１のテスト入力Ｔ及び出力Ｑの論理値が異なる場合には出力ＸＯＲ１は「１」となる。
【００３８】
制御回路１１は、出力ＸＯＲ１の値が「１」である場合には、通常動作時と同様、クロック信号ＣＬＫをそのまま通過させる。すなわち、フリップフロップＦＦ１のテスト入力Ｔ及び出力Ｑの論理値が異なる場合には、フリップフロップＦＦ１のクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。フリップフロップＦＦ１は、例えばクロック信号ＣＬＫの立ち上がり（図５のタイミングＴ１１）で、テストデータ信号ＴＩＮをラッチする。そして、一定の遅延ののち、ラッチしたデータを出力データＯＵＴ１として、後段のフリップフロップＦＦ２へ出力する（図５のタイミングＴ１２）。
【００３９】
一方、出力ＸＯＲ１の値が「０」である場合には、クロック信号ＣＬＫの出力を停止する。すなわち、フリップフロップＦＦ１のテスト入力Ｔ及び出力Ｑの論理値が同じである場合には、フリップフロップＦＦ１へのクロック信号ＣＬＫの供給が停止する（図５のタイミングＴ３）。よって、フリップフロップＦＦ１でのラッチ動作は発生せず、データはそのまま保持される。そして、出力ＸＯＲ１の値が「０」から「１」に変化したら、フリップフロップＦＦ１は、クロック信号ＣＬＫに同期したラッチ動作を再開する（図５のタイミングＴ１４）。
【００４０】
次いで、テスト用フリップフロップＴＦＦ２の動作を説明する。テスト用フリップフロップＴＦＦ２の動作は、テスト用フリップフロップＴＦＦ１と同様である。上述のように、テスト用フリップフロップＴＦＦ２のフリップフロップＦＦ２のテスト入力Ｔには、テスト用フリップフロップＴＦＦ１からの出力信号が入力する。よって、テスト用フリップフロップＴＦＦ２は、テスト用フリップフロップＴＦＦ１よりも１サイクル遅れて動作する。フリップフロップＦＦ２は、制御信号ＣＯＮの値「１」に応じて、テスト入力Ｔに入力するフリップフロップＦＦ１の出力Ｑからの出力データＯＵＴ１を入力データとして使用する。
【００４１】
排他的論理和ブロック２２は、出力データＯＵＴ１の値及び出力データＯＵＴ２の値が共に「０」又は「１」である場合には、出力ＸＯＲ２として「０」を出力する。つまり、フリップフロップＦＦ２のテスト入力Ｔ及び出力Ｑの論理値が同じである場合には出力ＸＯＲ２は「０」となる。また、排他的論理和ブロック２２は、出力データＯＵＴ１及び出力データＯＵＴ２の一方の値が「０」で、他方の値が「１」である場合には、出力ＸＯＲ２として「１」を出力する。つまり、フリップフロップＦＦ２のテスト入力Ｔ及び出力Ｑの論理値が異なる場合には出力ＸＯＲ２は「１」となる。
【００４２】
制御回路１２は、出力ＸＯＲ２の値が「１」である場合には、通常動作時と同様、クロック信号ＣＬＫをそのまま通過させる。すなわち、フリップフロップＦＦ２のテスト入力Ｔ及び出力Ｑの論理値が異なる場合には、フリップフロップＦＦ２のクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。フリップフロップＦＦ２は、例えばクロック信号ＣＬＫの立ち上がり（図５のタイミングＴ２１）で、出力データＯＵＴ１をラッチする。そして、一定の遅延ののち、ラッチしたデータを出力データＯＵＴ２として、後段のフリップフロップＦＦ３へ出力する（図５のタイミングＴ２２）。
【００４３】
一方、出力ＸＯＲ２の値が「０」である場合には、クロック信号ＣＬＫの出力を停止する。すなわち、フリップフロップＦＦ２のテスト入力Ｔ及び出力Ｑの論理値が同じである場合には、フリップフロップＦＦ２へのクロック信号ＣＬＫの供給が停止する（図５のタイミングＴ２３）。よって、フリップフロップＦＦ２でのラッチ動作は発生せず、データはそのまま保持される。そして、出力ＸＯＲ２の値が「０」から「１」に変化したら、フリップフロップＦＦ２は、クロック信号ＣＬＫに同期したラッチ動作を再開する（図５のタイミングＴ２４）。
【００４４】
図５に示すように、フリップフロップＦＦ２の動作のタイミングＴ２１〜Ｔ２４は、フリップフロップＦＦ１の動作のタイミングＴ１１〜Ｔ１４に対して１サイクル遅れる。よって、フリップフロップＦＦ２へのクロック信号ＣＬＫの供給が停止される期間も１サイクル遅れる。しかし、テスト入力Ｔ及び出力Ｑの論理値が同じ場合には、フリップフロップＦＦ１と同様に、クロック信号ＣＬＫの供給を停止し、消費電力を低減することができる。
【００４５】
次いで、テスト用フリップフロップＴＦＦ３の動作を説明する。テスト用フリップフロップＴＦＦ３の動作は、テスト用フリップフロップＴＦＦ１及びＴＦＦ２と同様である。上述のように、テスト用フリップフロップＴＦＦ３のフリップフロップＦＦ３のテスト入力Ｔには、テスト用フリップフロップＴＦＦ２からの出力信号が入力する。よって、テスト用フリップフロップＴＦＦ３は、テスト用フリップフロップＴＦＦ２よりも１サイクル遅れて動作する。フリップフロップＦＦ３は、制御信号ＣＯＮの値「１」に応じて、テスト入力Ｔに入力するフリップフロップＦＦ２の出力Ｑからの出力データＯＵＴ２を入力データとして使用する。
【００４６】
排他的論理和ブロック２３は、出力データＯＵＴ２の値及び出力データＯＵＴ３の値が共に「０」又は「１」である場合には、出力ＸＯＲ３として「０」を出力する。つまり、フリップフロップＦＦ３のテスト入力Ｔ及び出力Ｑの論理値が同じである場合には出力ＸＯＲ３は「０」となる。また、排他的論理和ブロック２３は、出力データＯＵＴ２及び出力データＯＵＴ３の一方の値が「０」で、他方の値が「１」である場合には、出力ＸＯＲ３として「１」を出力する。つまり、フリップフロップＦＦ３のテスト入力Ｔ及び出力Ｑの論理値が異なる場合には出力ＸＯＲ３は「１」となる。
【００４７】
制御回路１３は、出力ＸＯＲ３の値が「１」である場合には、通常動作時と同様、クロック信号ＣＬＫをそのまま通過させる。すなわち、フリップフロップＦＦ３のテスト入力Ｔ及び出力Ｑの論理値が異なる場合には、フリップフロップＦＦ３のクロック信号入力Ｃｌｋには、クロック信号ＣＬＫが入力する。フリップフロップＦＦ３は、例えばクロック信号ＣＬＫの立ち上がり（図５のタイミングＴ３１）で、出力データＯＵＴ２をラッチする。そして、一定の遅延ののち、ラッチしたデータを出力データＯＵＴ３として、出力端子Ｔｏｕｔへ出力する（図５のタイミングＴ３２）。
【００４８】
一方、出力ＸＯＲ３の値が「０」である場合には、クロック信号ＣＬＫの出力を停止する。すなわち、フリップフロップＦＦ３のテスト入力Ｔ及び出力Ｑの論理値が同じである場合には、フリップフロップＦＦ３へのクロック信号ＣＬＫの供給が停止する（図５のタイミングＴ３３）。よって、フリップフロップＦＦ３でのラッチ動作は発生せず、データはそのまま保持される。そして、出力ＸＯＲ３の値が「０」から「１」に変化したら、上フリップフロップＦＦ３は、クロック信号ＣＬＫに同期したラッチ動作を再開する（図５のタイミングＴ３４）。
【００４９】
図５に示すように、フリップフロップＦＦ３の動作のタイミングＴ３１〜Ｔ３４は、フリップフロップＦＦ２の動作のタイミングＴ２１〜Ｔ２４に対して１サイクル遅れる。よって、フリップフロップＦＦ３へのクロック信号ＣＬＫの供給が停止される期間も１サイクル遅れる。しかし、テスト入力Ｔ及び出力Ｑの論理値が同じ場合には、フリップフロップＦＦ１及びＦＦ２と同様に、クロック信号ＣＬＫの供給を停止し、消費電力を低減することができる。
【００５０】
よって、半導体集積回路２００では、シフトレジスタを構成する従属接続されたフリップフロップのテスト入力及び出力の論理値が同じ場合、各フリップフロップへのクロック信号ＣＬＫの供給を独立して停止することができる。これにより、同一のクロックドメイン内においても、半導体集積回路の消費電力を効率的に低減することが可能となる。
【００５１】
また、本実施の形態では、シフトレジスタを用いてスキャンチェーンを構成する場合に、特に有効である。この場合、半導体集積回路２００には、テストデータＴＩＮとして、スキャンテストパターンが入力する。また、制御信号ＣＯＮは、スキャンイネーブル信号となる。すなわち、半導体集積回路２００では、同一のスキャンチェーン内における従属接続されたフリップフロップのそれぞれを、個別に停止することができる。よって、一般的なスキャンチェーンでは実現できない、同一スキャンチェーン内での効率的な消費電力低減を実現できる。その結果、同一のクロックドメイン内でのフリップフロップ動作が同期することによる、スキャンシフト時の瞬間的な消費電力の増大を抑制することができる。
【００５２】
さらに、半導体集積回路２００は、制御回路及び排他的論理和ブロックを設けるだけで、自動的にフリップフロップを停止できる。従って、特許文献１のようにクロック信号を反転させる必要がない。また、特許文献２のようにフリップフロップに入力するデータを加工する必要もない。さらに、半導体集積回路２００では、テストデータ信号を参照してフリップフロップを停止するので、フリップフロップを停止させるための信号を別途生成する必要もない。従って、通常のテストデータ信号及びクロック信号を用いた一般的なテスト実施と消費電力の低減とを両立することができる。
【００５３】
実施の形態３
次に、実施の形態３にかかるフリップフロップセル３００について説明する。本実施の形態では、実施の形態１及び２におけるテスト用フリップフロップを、１つのセルとして扱うことを特徴とする。図６は、実施の形態３にかかるフリップフロップセル３００の構成を示すブロック図である。フリップフロップセル３００は、半導体集積回路の設計時において、ライブラリに格納されたセルの１つとして取り扱われる。
【００５４】
図６に示すように、フリップフロップセル３００は、図１のテスト用フリップフロップＴＦＦと同様の構成を有する。フリップフロップＦＦ、制御回路１０及び排他的論理和ブロック２０の構成及び接続関係については、図１と同様であるので、説明を省略する。
【００５５】
半導体集積回路の設計時に通常のフリップフロップの代わりにフリップフロップセル３００を配置することで、容易に半導体集積回路１００又は２００を設計することが可能となる。つまり、ライブラリに登録されているセル情報を変更するだけで、半導体集積回路の設計ツールを変更することなく、テスト時の消費電力を低減できる半導体集積回路を容易に設計することが可能となる。
【００５６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態２にかかる制御回路１１〜１３は、図３に示す制御回路１０と同一の構成とすることができる。同様に、実施の形態３にかかるフリップフロップセル３００の制御回路１０も、図３に示す制御回路１０と同一の構成とすることができる。
【００５７】
実施の形態２では、３つのテスト用フリップフロップが従属接続される例について説明したが、当該構成は例示に過ぎない。すなわち、２つ以上の任意の個数のテスト用フリップフロップが従属接続された半導体集積回路を構成できることは勿論である。
【符号の説明】
【００５８】
１０〜１３  制御回路
２０〜２３  排他的論理和ブロック
１００、２００  半導体集積回路
３００  フリップフロップセル
ＡＮＤ  論理積ブロック
ＣＬＫ  クロック信号
Ｃｌｋ  クロック信号入力
ＣＯＮ  制御信号
Ｃｏｎ  制御信号入力
Ｄ  データ入力
ＦＦ、ＦＦ１〜ＦＦ３  フリップフロップ
ＭＵＸ  マルチプレクサ
ＯＵＴ、ＯＵＴ１〜ＯＵＴ３  出力データ
Ｑ  出力
Ｔ  テスト入力
Ｔｃｌｋ  クロック信号端子
Ｔｃｏｎ  制御信号端子
Ｔｄ  データ端子
ＴＦＦ、ＴＦＦ１〜ＴＦＦ３  テスト用フリップフロップ
ＴＩＮ  テストデータ信号
Ｔｏｕｔ  出力端子
Ｔｔ  テストデータ端子
ＴＴＦ  テスト用フリップフロップ
ＸＯＲ  出力
【図１】
2013019743.tif 000003
【図２】
2013019743.tif 000004
【図３】
2013019743.tif 000005
【図４】
2013019743.tif 000006
【図５】
2013019743.tif 000007
【図６】
2013019743.tif 000008