(57)【要約】【課題】通常動作時の動作速度の低下を招くことなくトランジスタ数を削減することのできるスキャンフリップフロップ、およびこのスキャンフリップフロップを用いるスキャンテスト回路を提供する。【解決手段】実施形態のスキャンフリップフロップは、選択回路とフリップフロップとを有する。選択回路は、通常データが入力されるクロックドインバータと、スキャンテスト用データが入力されるトランスミッションゲートとを備え、通常データとスキャンテスト用データのいずれかを選択して出力する。その選択回路の出力が入力されるフリップフロップは、出力の極性が、通常データに対しては正転極性であり、スキャンテスト用データに対しては反転極性である。【選択図】  図１
2012057997.tif 000002
【特許請求の範囲】
【請求項１】
通常データとスキャンテスト用データのいずれかの入力を選択して出力する選択回路と、前記選択回路の出力が入力されるフリップフロップとを有するスキャンフリップフロップであって、
前記選択回路が、前記通常データが入力されるクロックドインバータと、前記スキャンテスト用データが入力されるトランスミッションゲートとを備え、
前記フリップフロップの出力の極性が、前記通常データに対しては正転極性であり、前記スキャンテスト用データに対しては反転極性である
ことを特徴とするスキャンフリップフロップ。
【請求項２】
請求項１記載のスキャンフリップフロップを用いて構成されたスキャンチェーンと、
前記スキャンチェーンの最終段の前記スキャンフリップフロップの出力端子に接続されて、スキャンテストのスキャンアウトモード時に、前記スキャンチェーンから出力されるスキャンアウトデータの極性を１クロックおきに反転させる第１の極性補正回路と
を備えることを特徴とするスキャンテスト回路。
【請求項３】
前記スキャンチェーンの初段の前記スキャンフリップフロップの前記スキャンテスト用データの入力端子に接続された第２の極性補正回路をさらに備え、
前記第２の極性補正回路が、スキャンテストのスキャンインモード時に、前記スキャンチェーンへ入力されるスキャンインデータの極性を１クロックおきに反転させる
ことを特徴とする請求項２に記載のスキャンテスト回路。
【請求項４】
前記第１の極性補正回路が、
前記スキャンアウトモードの開始まではリセット状態であり、前記スキャンアウトモードの開始時にリセット状態が解除されて、前記スキャンチェーンへ入力されるクロック信号を２分周する２分周回路と、
前記２分周回路の出力信号が‘０’のときは前記スキャンアウトデータを正転出力し、前記２分周回路の出力信号が‘１’のときは前記スキャンアウトデータを反転出力する極性切り換え回路と
を備えることを特徴とする請求項２に記載のスキャンテスト回路。
【請求項５】
前記第２の極性補正回路が、
前記スキャンインモードの開始まではセット状態であり、前記スキャンインモードの開始時にセット状態が解除されて、前記スキャンチェーンへ入力されるクロック信号を２分周する２分周回路と、
前記２分周回路の出力信号が‘１’のときは前記スキャンインデータを反転出力し、前記２分周回路の出力信号が‘０’のときは前記スキャンインデータを正転出力する極性切り換え回路と
を備えることを特徴とする請求項３に記載のスキャンテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、スキャンフリップフロップおよびスキャンテスト回路に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化手法として、論理回路中のフリップフロップをテスト時のみシリアルに接続してシフトレジスタとして動作させることでスキャンパスを形成する、スキャンテスト手法がよく用いられる。このスキャンテスト手法を用いる場合、通常のフリップフロップをスキャンフリップフロップに代替する必要がある。
【０００３】
スキャンフリップフロップとしては、通常のフリップフロップのデータ入力端子に、通常データとスキャンテスト用データのいずれかをテストイネーブル信号により選択する選択回路を接続するようにしたものがある。
【０００４】
この選択回路の構成方式としては、クロックドインバータ方式と、トランスミッションゲート方式がある。一般に、トランスミッションゲートは、クロックドインバータに比べて入力容量が大きく、動作速度が低下するため、通常、選択回路には、クロックドインバータ方式が採用される。
【０００５】
ただし、クロックドインバータは４個のトランジスタ（２個のＰＭＯＳトランジスタと２個のＮＭＯＳトランジスタ）で構成され、トランスミッションゲートは２個のトランジスタ（１個のＰＭＯＳトランジスタと１個のＮＭＯＳトランジスタ）で構成されるため、通常のフリップフロップをスキャンフリップフロップへ置換したときのトランジスタ数の増加は、クロックドインバータ方式の方が大きい。
【０００６】
近年、半導体集積回路の大規模化が進み、１チップのＬＳＩに搭載されるフリップフロップの数が数十万個に及ぶことがある。したがって、そのようなＬＳＩでは、通常のフリップフロップをスキャンフリップフロップへ置換したときのトランジスタ数の増加も膨大なものとなる。そのため、チップサイズの増加、消費電力の増加が、大きな問題となってくる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−３００００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そこで、本発明の目的は、通常動作時の動作速度の低下を招くことなくトランジスタ数を削減することのできるスキャンフリップフロップ、およびこのスキャンフリップフロップを用いるスキャンテスト回路を提供することにある。
【課題を解決するための手段】
【０００９】
実施形態のスキャンフリップフロップは、選択回路とフリップフロップとを有する。選択回路は、通常データが入力されるクロックドインバータと、スキャンテスト用データが入力されるトランスミッションゲートとを備え、通常データとスキャンテスト用データのいずれかを選択して出力する。その選択回路の出力が入力されるフリップフロップは、出力の極性が、通常データに対しては正転極性であり、スキャンテスト用データに対しては反転極性である。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係るスキャンフリップフロップの構成の例を示す回路図。
【図２】本発明の第１の実施形態に係るスキャンフリップフロップの動作説明のための波形図。
【図３】本発明の第２の実施形態に係るスキャンテスト回路の構成の例を示すブロック図。
【図４】本発明の第２の実施形態に係るスキャンテスト回路の動作説明のための波形図。
【図５】本発明の第３の実施形態に係るスキャンテスト回路の構成の例を示すブロック図。
【図６】本発明の第３の実施形態に係るスキャンテスト回路の動作説明のための波形図。
【図７】本発明の第３の実施形態に係るスキャンテスト回路の動作説明のための波形図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。なお、図中、同一または相当部分には同一の符号を付して、その説明は繰り返さない。
【００１２】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るスキャンフリップフロップの構成の例を示す回路図である。
【００１３】
本実施形態のスキャンフリップフロップ１は、通常データＤとスキャンテスト用データＴＩＮのいずれかの入力を選択して出力する選択回路１１と、選択回路１１の出力が入力されるフリップフロップ１２と、を有する。
【００１４】
選択回路１１は、通常データＤが入力されるクロックドインバータＣＩＶ１と、スキャンテスト用データＴＩＮが入力されるトランスミッションゲートＴＧ１と、を備える。
【００１５】
クロックドインバータＣＩＶ１は、テストイネーブル信号ＴＥをインバータＩＶ３２で反転させた反転テストイネーブル信号ＴＥＮが‘１’（ＴＥ＝‘０’）のとき、通常データＤを反転させて出力する。また、トランスミッションゲートＴＧ１は、テストイネーブル信号ＴＥが‘１’（ＴＥ＝‘１’）のとき、スキャンテスト用データＴＩＮを正転で出力する。すなわち、選択回路１１は、ＴＥ＝‘０’のとき、通常データＤの反転信号を出力し、ＴＥ＝‘１’のとき、スキャンテスト用データＴＩＮの正転信号を出力する。
【００１６】
フリップフロップ１２は、マスターラッチ部１２Ａとスレーブラッチ部１２Ｂから構成されるマスタースレーブ方式のＤ型フリップフロップである。
【００１７】
マスターラッチ部１２Ａは、トランスミッションゲートＴＧ１１、インバータＩＶ１１、インバータＩＶ１２およびトランスミッションゲートＴＧ１２で構成され、クロック信号ＣＫが‘０’のときに選択回路１１の出力を取り込み、クロック信号ＣＫが‘１’の間、取り込んだ値を保持する。
【００１８】
スレーブラッチ部１２Ｂは、トランスミッションゲートＴＧ２１、インバータＩＶ２１、インバータＩＶ２２、トランスミッションゲートＴＧ２２およびインバータＩＶ２３で構成され、クロック信号ＣＫが‘１’のときにマスターラッチ部１２Ａの出力を取り込み、クロック信号ＣＫが‘０’の間、取り込んだ値を保持する。
【００１９】
インバータＩＶ２３の出力がフリップフロップ１２の出力となるため、フリップフロップ１２の出力極性は、フリップフロップ１２の入力に対して反転している。
【００２０】
これを、スキャンフリップフロップ１の入出力の関係で見ると、スキャンフリップフロップ１の出力Ｑの極性は、通常データＤに対しては正転極性となり、スキャンテスト用データＴＩＮに対しては反転極性となる。
【００２１】
図２に、スキャンフリップフロップ１の動作の様子を波形図で示す。
【００２２】
通常動作モードのときはテストイネーブル信号ＴＥを‘０’とし、選択回路１１が通常データＤを選択するようにすると、スキャンフリップフロップ１は、クロック信号ＣＫの立ち上りに同期して、通常データＤと同極性の信号を出力する。すなわち、通常動作モードのとき、スキャンフリップフロップ１の出力Ｑの極性は、通常データＤに対して正転極性となる。
【００２３】
一方、スキャンテストモードのときはテストイネーブル信号ＴＥを‘１’とし、選択回路１１がスキャンテスト用データＴＩＮを選択するようにする。これにより、スキャンフリップフロップ１は、クロック信号ＣＫの立ち上りに同期して、スキャンテスト用データＴＩＮと逆極性の信号を出力する。すなわち、スキャンテストモードのとき、スキャンフリップフロップ１の出力Ｑの極性は、スキャンテスト用データＴＩＮに対して反転極性となる。
【００２４】
このような本実施形態では、選択回路１１の構成において、スキャンテスト用データＴＩＮの入力側をトランスミッションゲートとしているため、クロックドインバータを用いるよりも、使用トランジスタ数を２個少なくすることができる。
【００２５】
この場合、トランスミッションゲートはクロックドインバータよりも入力容量が大きいが、スキャンテスト時の動作速度は通常動作よりも遅くてよいため、この入力容量の増加は問題とならない。また、通常動作モードでは、トランスミッションゲートＴＧ１はオフしているため、通常データＤが入力される端子から見た入力容量は増加しない。したがって、通常動作モード時の動作速度の低下は生じない。
【００２６】
（第２の実施形態）
図３に、第１の実施形態のスキャンフリップフロップ１を用いたスキャンテスト回路の構成の例を示す。
【００２７】
本実施形態のスキャンテスト回路は、ｎ個のスキャンフリップフロップ１−１、１−２、・・・、１−ｎにより形成されたスキャンチェーン１００と、スキャンチェーン１００の最終段のスキャンフリップフロップ１−ｎの出力端子に接続された極性補正回路２００と、を備えている。
【００２８】
スキャンチェーン１００は、初段のスキャンフリップフロップ１−１のＴＩＮ入力端子にスキャンイン入力が入力され、２段目以降のスキャンフリップフロップ１の入力端子に前段のＱ出力端子が接続されて、スキャンテスト時には、ｎ段のシフトレジスタとして動作する。
【００２９】
また、スキャンフリップフロップ１−１、１−２、・・・、１−ｎの各Ｄ入力端子へはランダムロジック回路部１０００からの信号が入力され、スキャンフリップフロップ１−１、１−２、・・・、１−ｎの各Ｑ出力信号は、ランダムロジック回路部１０００へ出力される。
【００３０】
スキャンアウト動作時、ランダムロジック回路部１０００からスキャンフリップフロップ１−１、１−２、・・・、１−ｎへ取り込まれたデータは、スキャンチェーン１００のシフトレジスタ動作により順次後段へ転送され、最終段のスキャンフリップフロップ１−ｎからスキャンアウトされる。
【００３１】
このとき、スキャンフリップフロップ１のＱ出力はＴＩＮ入力に対して反転しているため、ランダムロジック回路部１０００からの出力データに対して、偶数個のスキャンフリップフロップ１を経由してスキャンアウトされたデータは正転データとなるが、奇数個のスキャンフリップフロップ１を経由してスキャンアウトされたデータは反転データとなる。すなわち、スキャンフリップフロップ１−ｎからスキャンアウトされるデータは、ランダムロジック回路部１０００から入力されたデータに対して、１クロックおきに反転している。
【００３２】
そこで、本実施例では、極性補正回路２００を設け、この極性補正回路２００でスキャンアウトデータの極性を１クロックおきに反転させることにより、スキャンアウトデータを総て正転データとしている。
【００３３】
極性補正回路２００は、インバータＩＶ４１による出力反転信号の入力によりクロック信号ＣＫの２分周クロック信号Ｋ１を出力するフリップフロップＦＦ１と、２分周クロック信号Ｋ１の極性に応じて、スキャンフリップフロップ１−ｎの出力Ｑｎか、インバータＩＶ４２によるＱｎの反転信号ＱｎＮのいずれかを出力するマルチプレクサＭＵＸ１と、を備える。
【００３４】
フリップフロップＦＦ１はリセット端子付であり、リセット信号が‘１’のときフリップフロップＦＦ１はリセット状態となり、出力の２分周クロック信号Ｋ１は‘０’となる。
【００３５】
マルチプレクサＭＵＸ１は、２分周クロック信号Ｋ１が‘０’のときはスキャンフリップフロップ１−ｎの出力Ｑｎを出力し、２分周クロック信号Ｋ１が‘１’のときはＱｎの反転信号ＱｎＮを出力する。マルチプレクサＭＵＸ１の出力がスキャンアウト出力となる。
【００３６】
図４に、本実施形態のスキャンテスト回路の動作波形の例を示す。
【００３７】
テストイネーブル信号ＴＥを‘０’から‘１’へ変化させて、システム動作からスキャンアウトモードへ切り換えるのに合わせて、極性補正回路２００のフリップフロップＦＦ１へ入力するリセット信号を‘１’から‘０’ へ変化させる。これにより、フリップフロップＦＦ１はリセット状態が解除され、２分周クロック信号Ｋ１の出力が開始される。
【００３８】
スキャンチェーン１００の最終段のスキャンフリップフロップ１−ｎの出力Ｑｎには、システム動作時はランダムロジック回路部１０００からの出力データＤｎが出力されるが、スキャンアウトモード時は前段からＴＩＮ端子へ順次シフトインされたデータ、すなわち、Ｄｎ−１Ｎ、Ｄｎ−２、Ｄｎ−３Ｎ、Ｄｎ−４、Ｄｎ−５Ｎ、Ｄｎ−６、Ｄｎ−７Ｎ、・・・が、順次シフトアウトされる。ここで、データ末尾のＮは、反転を示す符号である。
【００３９】
極性補正回路２００のマルチプレクサＭＵＸ１は、２分周クロック信号Ｋ１が‘０’のときはスキャンフリップフロップ１−ｎの出力Ｑｎをそのまま出力し、２分周クロック信号Ｋ１が‘１’のときはＱｎの反転信号を出力する。
【００４０】
したがって、マルチプレクサＭＵＸ１の出力であるスキャンアウト出力は、Ｄｎ、Ｄｎ−１、Ｄｎ−２、Ｄｎ−３、Ｄｎ−４、Ｄｎ−５、Ｄｎ−６、Ｄｎ−７、・・・となる。すなわち、スキャンアウト出力は、ランダムロジック回路部１０００からの出力に対して正転出力となる。
【００４１】
このような本実施例によれば、ＴＩＮ入力に対して出力が反転するスキャンフリップフロップ１を用いてスキャンチェーンを形成しても、スキャンアウト出力が、ランダムロジック回路部からの出力に対して正転出力となるスキャンテスト回路を構成することができる。そのため、本実施例では４０個程度のトランジスタを使用する極性補正回路２００を設けるが、通常、スキャンチェーンは、数千〜数十万個のスキャンフリップフロップを使用するので、使用トランジスタ数の少ないスキャンフリップフロップ１を用いることで、ＬＳＩ全体のトランジスタ数の削減に大きく寄与することができる。また、このことは、ＬＳＩの消費電力の削減、およびチップサイズ削減によるコスト削減にも大きなメリットとなる。
【００４２】
（第３の実施形態）
第２の実施の形態のスキャンテスト回路では、スキャンチェーン１００から出力されるデータの極性を補正したが、スキャンインされるテストデータを所望のスキャンフリップフロップ１へロードするためには、スキャンイン端子から見て奇数番目のスキャンフリップフロップ１に格納されるべきデータを予め反転させておく必要がある。一般的には、スキャンインデータは正転データとして生成されるので、上述のような反転処理は煩わしい。
【００４３】
そこで、本実施形態では、スキャンフリップフロップ１でスキャンチェーンを形成しても、スキャンインデータの反転処理を行う必要のないスキャンテスト回路の例を示す。
【００４４】
図５は、本実施形態のスキャンテスト回路の構成の例を示すブロック図である。
【００４５】
本実施形態のスキャンテスト回路は、第２の実施の形態のスキャンテスト回路の初段のスキャンフリップフロップ１−１のＴＩＮ入力端子に接続される極性補正回路３００を設けたものである。極性補正回路３００は、スキャンテストのスキャンインモード時に、スキャンチェーン１００へ入力されるスキャンインデータの極性を１クロックおきに反転させる。
【００４６】
極性補正回路３００は、インバータＩＶ５１による出力反転信号の入力によりクロック信号ＣＫの２分周クロック信号Ｋ２を出力するフリップフロップＦＦ２と、２分周クロック信号Ｋ２の極性に応じて、スキャンイン入力か、インバータＩＶ５２によるスキャンイン入力の反転信号のいずれかを出力するマルチプレクサＭＵＸ２と、を備える。
【００４７】
フリップフロップＦＦ２はセット端子付であり、セット信号が‘１’のときフリップフロップＦＦ１はセット状態となり、出力の２分周クロック信号Ｋ２は‘１’となる。
【００４８】
マルチプレクサＭＵＸ２は、２分周クロック信号Ｋ２が‘１’のときはスキャンイン入力の反転信号を出力し、２分周クロック信号Ｋ２が‘０’のときはスキャンイン入力を出力する。マルチプレクサＭＵＸ２の出力が、スキャンチェーン１００へのスキャンテスト入力ＴＩとなる。
【００４９】
図６および図７に、本実施形態のスキャンテスト回路の動作波形の例を示す。
【００５０】
図６は、スキャンチェーン１００を構成するフリップフロップＦＦ１の数ｎが奇数（ｎ＝奇数）のときの動作波形である。
【００５１】
テストイネーブル信号ＴＥを‘０’から‘１’へ変化させて、スキャンインモードへ切り換えるのに合わせて、極性補正回路３００のフリップフロップＦＦ２へ入力するセット信号を‘１’から‘０’ へ変化させる。これにより、フリップフロップＦＦ２はセット状態が解除され、２分周クロック信号Ｋ２の出力が開始される。
【００５２】
スキャンイン端子からは、最終段のスキャンフリップフロップ１−ｎに格納するテストデータＴｎを先頭に、Ｔｎ−１、Ｔｎ−２、Ｔｎ−３、・・・、Ｔ２、Ｔ１と、各段のスキャンフリップフロップ１に格納するテストデータが順次入力される。
【００５３】
ｎ＝奇数のとき、最終段のスキャンフリップフロップ１−ｎは、スキャンイン端子から見て奇数番目のスキャンフリップフロップである。したがって、テストデータＴｎは反転させて、スキャンチェーン１００へ入力する必要がある。
【００５４】
そこで、スキャンイン入力は、２分周クロック信号Ｋ２が‘１’のとき入力を開始する。これにより、極性補正回路３００のマルチプレクサＭＵＸ２の出力ＴＩは、ＴｎＮ、Ｔｎ−１、Ｔｎ−２Ｎ、Ｔｎ−３、・・・、Ｔ２、Ｔ１Ｎとなる。ここで、データ末尾のＮは、反転を示す符号である。
【００５５】
このＴＩが、スキャンチェーン１００でスキャンシフトされ、スキャンインモード終了時には、スキャンチェーン１００のスキャンフリップフロップ１−ｎ〜１−１には、所望のテストデータＴｎ、Ｔｎ−１、Ｔｎ−２、Ｔｎ−３、・・・、Ｔ２、Ｔ１が、それぞれ格納される。
【００５６】
図７は、スキャンチェーン１００を構成するフリップフロップＦＦ１の数ｎが偶数（ｎ＝偶数）のときの動作波形である。
【００５７】
ｎ＝偶数のとき、最終段のスキャンフリップフロップ１−ｎは、スキャンイン端子から見て偶数番目のスキャンフリップフロップである。したがって、この場合、テストデータＴｎは正転で、スキャンチェーン１００へ入力する必要がある。
【００５８】
そこで、ｎ＝偶数のときは、スキャンイン入力を、２分周クロック信号Ｋ２が‘０’のとき開始するようにする。これにより、極性補正回路３００のマルチプレクサＭＵＸ２の出力ＴＩは、Ｔｎ、Ｔｎ−１Ｎ、Ｔｎ−２、Ｔｎ−３Ｎ、・・・、Ｔ２、Ｔ１Ｎとなる。
【００５９】
このＴＩが、スキャンチェーン１００でスキャンシフトされ、スキャンインモード終了時には、スキャンチェーン１００のスキャンフリップフロップ１−ｎ〜１−１には、所望のテストデータＴｎ、Ｔｎ−１、Ｔｎ−２、Ｔｎ−３、・・・、Ｔ２、Ｔ１が、それぞれ格納される。
【００６０】
このような本実施例によれば、ＴＩＮ入力に対して出力が反転するスキャンフリップフロップ１を用いてスキャンチェーンを形成しても、スキャンインデータの反転処理を行う必要がない。すなわち、使用者にとって、従来のスキャンインデータ作成と同じ処理方法を踏襲することができる。
【００６１】
以上説明した実施形態のスキャンフリップフロップによれば、通常動作時の動作速度の低下を招くことなくトランジスタ数を削減することができる。また、このスキャンフリップフロップを用いてスキャンテスト回路を形成することにより、ＬＳＩ全体のトランジスタ数を大きく削減することができる。
【００６２】
また、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６３】
１、１−１〜１−ｎ  スキャンフリップフロップ
１１  選択回路
１２  フリップフロップ
１２Ａ  マスターラッチ部
１２Ｂ  スレーブラッチ部
１００  スキャンチェーン
２００、３００  極性補正回路
ＣＩＶ１  クロックドインバータ
ＴＧ１  トランスミッションゲート
ＦＦ１、ＦＦ２  フリップフロップ
ＭＵＸ１、ＭＵＸ２  マルチプレクサ
ＩＶ４１、ＩＶ４２、ＩＶ５１、ＩＶ５２  インバータ
【図１】
2012057997.tif 000003
【図２】
2012057997.tif 000004
【図３】
2012057997.tif 000005
【図４】
2012057997.tif 000006
【図５】
2012057997.tif 000007
【図６】
2012057997.tif 000008
【図７】
2012057997.tif 000009