(57)【要約】【課題】従来のスキャンテスト方法では、電源電圧変動を抑制しながら動作クロックの周波数の高い半導体装置をテストできない問題があった。【解決手段】本発明のスキャンテスト方法は、クロック信号ＳＣＬＫをスキャンフリップフロップ２１〜２ｎに入力して第１のテストパターンをスキャンフリップフロップ２１〜２ｎに設定し、クロック信号ＳＣＬＫよりも周波数の高いクロック信号ＲＣＬＫをスキャンフリップフロップ２１〜２ｎに入力すると共に、スキャンフリップフロップ２１〜２ｎをクロック信号ＲＣＬＫによらず保持する値を維持するホールドモードに制御し、ホールドモードを解除すると共にスキャンフリップフロップ２１〜２ｎをテスト対象回路の出力に応じて保持する値を更新するテスト結果取得モードに制御し、テスト結果取得モードにおいてクロック信号ＲＣＬＫを２パルス用いてスキャンフリップフロップ２１〜２ｎに保持されている値を更新する。【選択図】図３
2013036960.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象回路と、
従属接続された複数のスキャンフリップフロップと、
前記複数のスキャンフリップへのクロック分配経路に設けられたクロックバッファ群と、を有し、
前記テスト対象回路を前記複数のスキャンフリップフロップによりテストする半導体装置の遅延スキャンテスト方法であって、
第１のクロック信号を前記複数のスキャンフリップフロップに入力して前記テスト対象回路に入力する第１のテストパターンを前記複数のスキャンフリップフロップに設定し、
前記第１のクロック信号よりも周波数の高い第２のクロック信号を前記複数のスキャンフリップフロップに入力すると共に、前記複数のスキャンフリップフロップを前記第２のクロック信号によらず保持する値を維持するホールドモードに制御し、
前記ホールドモードを解除すると共に前記複数のスキャンフリップフロップを前記テスト対象回路の出力に応じて保持する値を更新するテスト結果取得モードに制御し、
前記テスト結果取得モードにおいて前記第２のクロック信号を２パルス用いて前記複数のスキャンフリップフロップに保持されている値を更新し、
前記テスト結果取得モードを解除した後に前記第１のクロック信号を前記複数のスキャンフリップフロップに入力して、前記複数のスキャンフリップフロップに保持されている値をテスト結果として外部出力する遅延スキャンテスト方法。
【請求項２】
前記複数のスキャンフリップフロップに、スキャンモード制御信号と、キャプチャイネーブル信号と、を入力し、
前記スキャンモード制御信号を第１の論理レベルとすることで、前記複数のスキャンフリップフロップを保持している値を次段に配置されるスキャンフリップフロップに遷移させるシフトモードに制御し、
前記スキャンモード制御信号を第２の論理レベルとすることで、前記複数のスキャンフリップフロップに保持されている値を前記テスト対象回路からの出力信号により更新するキャプチャモードに制御し、
前記キャプチャモード中において、前記キャプチャイネーブル信号をディスイネーブル状態とすることで、前記複数のスキャンフリップフロップを前記ホールドモードに制御し、
前記キャプチャモード中において、前記キャプチャイネーブル信号をイネーブル状態とすることで、前記複数のスキャンフリップフロップを前記テスト結果取得モードに制御する請求項１に記載の遅延スキャンテスト方法。
【請求項３】
前記ホールドモードと前記テスト結果取得モードとにおいて前記複数のスキャンフリップフロップには、前記第２のクロック信号が連続して与えられる請求項１又は２に記載の遅延スキャンテスト方法。
【請求項４】
前記キャプチャイネーブル信号は、
前記スキャンモード制御信号が前記第２の論理レベルとなった後に入力される前記第２のクロック信号のクロック数が所定の値に達したことに応じてディスイネーブル状態からイネーブル状態に遷移し、
イネーブル状態となった後に前記ラウンチクロックと前記キャプチャクロックとが前記複数のスキャンフリップフロップに入力された後にディスイネーブル状態に遷移する請求項２に記載の遅延スキャンテスト方法。
【請求項５】
前記シフトモード中において前記キャプチャイネーブル信号がイネーブル状態であるかディスイネーブル状態であるかに関わらず、第１のテストパターンを前記複数のスキャンフリップフロップに設定する請求項２に記載の遅延スキャンテスト方法。
【請求項６】
前記キャプチャイネーブル信号を前記シフトモード中においてイネーブル状態として、第１のテストパターンを前記複数のスキャンフリップフロップに設定する請求項２に記載の遅延スキャンテスト方法。
【請求項７】
テスト対象回路と、
前記テスト対象回路をテストし、従属接続される複数のスキャンフリップフロップと、
前記複数のスキャンフリップへのクロック分配経路に設けられたクロックバッファ群と、を有する半導体装置であって、
前記複数のスキャンフリップフロップは、それぞれ
入力されるクロック信号に応じて保持する値を更新すると共に、外部から入力されるスキャンパターンにより保持する値を更新するシフトモードと、前記テスト対象回路の出力する値に応じて保持する値を更新するキャプチャモードと、がスキャンモード制御信号の論理レベルに応じて切り換えられる基本スキャンフリップフロップと、
前記キャプチャモードにおいて、キャプチャイネーブル信号がイネーブル状態である場合には前記基本スキャンフリップフロップが保持する値を更新し、前記キャプチャイネーブル信号がディスイネーブル状態である場合には前記基本スキャンフリップフロップが保持する値を維持するホールド回路と、有し、
前記基本スキャンフリップフロップには、キャプチャイネーブル信号がイネーブル状態である期間に前記クロック信号に含まれる連続した２つのクロックパルスが入力される半導体装置。
【請求項８】
前記ホールド回路は、前記キャプチャイネーブル信号のディスイネーブル状態である場合は前記基本スキャンフリップフロップの出力値を前記基本スキャンフリップフロップの入力に与え、前記キャプチャイネーブル信号のイネーブル状態である場合は前記テスト対象回路の出力値を前記基本スキャンフリップフロップの入力に与えるセレクタを有する請求項７に記載の半導体装置。
【請求項９】
前記ホールド回路は、前記キャプチャイネーブル信号のディスイネーブル状態である場合は前記基本スキャンフリップフロップへの前記クロック信号の供給を停止し、前記キャプチャイネーブル信号のイネーブル状態である場合は前記基本スキャンフリップフロップに前記クロック信号を供給するセレクタを有する請求項７又は８に記載の半導体装置。
【請求項１０】
前記スキャンモード制御信号が前記キャプチャモードを示す期間に入力される前記クロック信号のクロック数が所定の値に達したことに応じて前記キャプチャイネーブル信号をディスイネーブル状態からイネーブル状態に切り換えるキャプチャ制御回路を有する請求項７乃至９のいずれか１項に記載の半導体装置。
【請求項１１】
前記キャプチャ制御回路は、前記シフトモード中は、前記キャプチャイネーブル信号をイネーブル状態とする請求項１０に記載の半導体装置。
【請求項１２】
外部から入力される第１のクロック信号と、前記第１のクロック信号より周波数が高い第２のクロック信号と、のいずれか一方を前記スキャンモード制御信号に応じて選択して前記クロック信号として出力するクロックセレクタを有し、
前記クロックセレクタは、前記スキャンモード制御信号が前記シフトモードを示す場合は前記第１のクロック信号を前記クロック信号として出力し、前記スキャンモード制御信号が前記キャプチャモードを示す場合は前記第２のクロック信号を前記クロック信号として出力する請求項７乃至１１のいずれか１項に記載の半導体装置。
【請求項１３】
テスト対象回路と、
前記テスト対象回路をテストし、従属接続される複数のスキャンフリップフロップと、を有する半導体装置の設計方法であって、
前記テスト対象回路を含む回路を含む第１のネットリストを読み込み、前記テスト対象回路に対応する位置に、スキャンモード制御信号の値に応じて保持する値を前段のスキャンフリップフロップの出力により更新するか前記テスト対象回路の出力に応じて更新するかを切り換える前記複数の基本スキャンフリップフロップのネット情報を生成し、
前記複数の基本スキャンフリップフロップのそれぞれに対して、キャプチャイネーブル信号に応じて前記複数の基本スキャンフリップフロップが保持する値を更新するか維持するかを切り換えるホールド回路のネット情報を生成し、
前記複数の基本スキャンフリップフロップが保持する値を前段のスキャンフリップフロップの出力により更新するか前記テスト対象回路の出力に応じて更新するかを指示するスキャンモード制御信号と、前記複数のスキャンフリップフロップに与えられるクロック信号と、に応じて前記キャプチャイネーブル信号をイネーブル状態とするかディスイネーブル状態とするかを切り換えるスキャン制御回路のネット情報を生成し、
前記第１のネットリストに、前記複数の基本スキャンフリップフロップのネット情報、前記ホールド回路のネット情報及び前記スキャン制御回路のネット情報を追加して、第２のネットリストを生成する半導体装置の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法に関し、特に半導体装置内の回路の遅延時間をテストする遅延スキャンテスト方法、遅延スキャンテストを行うテスト回路を含む半導体装置及び半導体装置の設計方法に関する。
【背景技術】
【０００２】
近年、半導体装置では、回路動作の信頼性を高めるために、スキャンテストにより、外部から直接動作を観察できない回路の遅延故障をテストすることが行われている。このスキャンテストの一例が特許文献１に開示されている。
【０００３】
特許文献１では、非同期の動作クロックで動作する複数のクロックドメインに対して遅延故障テストを行う場合に、複数のクロックドメインのそれぞれに対応して設けられるスキャンフリップフロップに対して１回のシフトモードを利用して一括してテストパターンを設定する。そして、特許文献１では、１回のラウンチ−キャプチャ期間に、クロックドメイン毎にラウンチクロックとキャプチャクロックとの組を順次入力する。これにより、特許文献１では、複数のクロックドメインに対する遅延故障テストのテスト時間を短縮する。
【０００４】
しかしながら、スキャンテストにおいては、ラウンチクロック及びキャプチャクロックは、シフトモードで利用されるシフトクロックよりも高速なクロック信号が用いられることが一般的である。そのため、ラウンチクロックとキャプチャクロックとを入力した場合、この高速なクロック信号によりテスト対象の半導体装置の電源電圧が降下する。このような電源電圧降下が生じた場合、電源電圧の降下の影響を受けてテスト対象回路の遅延時間が本来の遅延時間よりも長くなり、テスト結果の誤判定が生じる問題がある。
【０００５】
特許文献１では、クロックドメイン毎に異なるタイミングでラウンチクロックとキャプチャクロックとが入力されるが、このような場合であっても少なくとも最初に入力されるラウンチクロックとキャプチャクロックとにより電源電圧降下が生じる。
【０００６】
そこで、特許文献２では、クロック信号の周波数の上昇による電源電圧の降下を防止する技術が開示されている。特許文献２では、半導体装置にクロック信号を与える場合に、クロック信号の周波数を徐々に上昇又は下降させることで、クロック信号の周波数の急激な変化による電源電圧の変動を抑制する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２７５４８０号公報
【特許文献２】特開２００５−２４９５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献２の技術をスキャンテストに適用した場合、シフトモードで利用するシフトクロック信号の周波数を、特許文献２の手法を利用して徐々に高め、その後ラウンチクロックとキャプチャクロックとを入力するキャプチャモードに移行する必要がある。この場合、キャプチャモードに移行する直前の状態におけるシフトクロック信号の周波数を、ラウンチクロックとキャプチャクロックとの周波数にほぼ等しくする必要がある。シフトクロック信号を上記のように制御した場合、スキャンチェーンを構成するスキャンフリップフロップ間のタイミング制約が厳しくなり、設計が困難になる問題がある。
【０００９】
ここで、ラウンチクロックとキャプチャクロックは、半導体装置の動作クロックの周波数と等しいか、それ以上の周波数に設定される。そのため、半導体装置の動作クロックの周波数が向上するほど上記したスキャンフリップフロップ間のタイミング制約の問題は顕著になる。
【課題を解決するための手段】
【００１０】
本発明にかかる半導体装置の遅延スキャンテスト方法は、テスト対象回路と、従属接続された複数のスキャンフリップフロップと、前記複数のスキャンフリップへのクロック分配経路に設けられたクロックバッファ群と、を有し、前記テスト対象回路を前記複数のスキャンフリップフロップによりテストする半導体装置の遅延スキャンテスト方法であって、第１のクロック信号を前記複数のスキャンフリップフロップに入力して前記テスト対象回路に入力する第１のテストパターンを前記複数のスキャンフリップフロップに設定し、前記第１のクロック信号よりも周波数の高い第２のクロック信号を前記複数のスキャンフリップフロップに入力すると共に、前記複数のスキャンフリップフロップを前記第２のクロック信号によらず保持する値を維持するホールドモードに制御し、前記ホールドモードを解除すると共に前記複数のスキャンフリップフロップを前記テスト対象回路の出力に応じて保持する値を更新するテスト結果取得モードに制御し、前記テスト結果取得モードにおいて前記第２のクロック信号を２パルス用いて前記複数のスキャンフリップフロップに保持されている値を更新し、前記テスト結果取得モードを解除した後に前記第１のクロック信号を前記複数のスキャンフリップフロップに入力して、前記複数のスキャンフリップフロップに保持されている値をテスト結果として外部出力する。
【００１１】
本発明にかかる半導体装置の一態様は、テスト対象回路と、前記テスト対象回路をテストし、従属接続される複数のスキャンフリップフロップと、前記複数のスキャンフリップへのクロック分配経路に設けられたクロックバッファ群と、を有する半導体装置であって、前記複数のスキャンフリップフロップは、それぞれ入力されるクロック信号に応じて保持する値を更新すると共に、外部から入力されるテストモードにより保持する値を更新するシフトモードと、前記テスト対象回路の出力する値に応じて保持する値を更新するキャプチャモードと、がスキャンモード制御信号の論理レベルに応じて切り換えられる基本スキャンフリップフロップと、前記キャプチャモードにおいて、キャプチャイネーブル信号がイネーブル状態である場合には前記基本スキャンフリップフロップが保持する値を更新し、前記キャプチャイネーブル信号がディスイネーブル状態である場合には前記基本スキャンフリップフロップが保持する値を維持するホールド回路と、を有し、前記基本スキャンフリップフロップには、キャプチャイネーブル信号がイネーブル状態である期間に前記クロック信号に含まれる連続した２つのクロックパルスが入力される。
【００１２】
本発明にかかる半導体装置の設計方法の一態様は、テスト対象回路と、前記テスト対象回路をテストし、従属接続される複数のスキャンフリップフロップと、を有する半導体装置の設計方法であって、前記テスト対象回路を含む回路を含む第１のネットリストを読み込み、前記テスト対象回路に対応する位置に、スキャンモード制御信号の値に応じて保持する値を前段のスキャンフリップフロップの出力により更新するか前記テスト対象回路の出力に応じて更新するかを切り換える前記複数の基本スキャンフリップフロップのネット情報を生成し、前記複数の基本スキャンフリップフロップのそれぞれに対して、キャプチャイネーブル信号に応じて前記複数の基本スキャンフリップフロップが保持する値を更新するか維持するかを切り換えるホールド回路のネット情報を生成し、前記複数の基本スキャンフリップフロップが保持する値を前段のスキャンフリップフロップの出力により更新するか前記テスト対象回路の出力に応じて更新するかを指示するスキャンモード制御信号と、前記複数のスキャンフリップフロップに与えられるクロック信号と、に応じて前記キャプチャイネーブル信号をイネーブル状態とするかディスイネーブル状態とするかを切り換えるスキャン制御回路のネット情報を生成し、前記第１のネットリストに、前記複数の基本スキャンフリップフロップのネット情報、前記ホールド回路のネット情報及び前記スキャン制御回路のネット情報を追加して、第２のネットリストを生成する。
【００１３】
本発明にかかる半導体装置の遅延スキャンテスト方法によれば、遅延テストに利用される高速な２パルスの第２のクロック信号（例えば、ラウンチクロックとキャプチャクロック）が入力される前にスキャンフリップフロップに保持された値を維持しながら、スキャンフリップフロップに第２のクロック信号を入力する。これにより、半導体装置の電源電圧を第２のクロック信号が入力された状態で適切な電圧とした上で遅延スキャンテストを行うことができる。また、本発明にかかる半導体装置及び半導体装置の設計方法によれば、上記遅延スキャンテスト方法を実行可能な半導体装置を提供できる。
【発明の効果】
【００１４】
本発明にかかる遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法によれば、遅延スキャンテスト時の電源電圧の変動を抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかるスキャンフリップフロップ及びテスト制御回路のブロック図である。
【図３】実施の形態１にかかる半導体装置のテスト方法の手順を示すタイミングチャートである。
【図４】実施の形態２にかかるスキャンフリップフロップ及びテスト制御回路のブロック図である。
【図５】実施の形態２にかかる半導体装置のテスト方法の手順を示すタイミングチャートである。
【図６】実施の形態３にかかる半導体装置のブロック図である。
【図７】実施の形態４にかかる半導体装置の設計支援装置である。
【図８】実施の形態４にかかる半導体装置の設計方法のフローチャートである。
【発明を実施するための形態】
【００１６】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。実施の形態１にかかる半導体装置１のブロック図を図１に示す。図１に示すように、半導体装置１は、組合せ回路１１ａ〜１１ｃ、テスト制御回路１２、テスト回路２０、を有する。この組合せ回路１１ａ〜１１ｃは、テスト対象回路の一例である。
【００１７】
テスト制御回路１２は、動作モードに応じてテスト回路２０に与えるクロック信号ＣＬＫの周波数及びキャプチャイネーブル信号ＣＥＮの状態を切り換える。テスト制御回路１２は、クロック制御回路１３、キャプチャ制御回路１６を有する。クロック制御回路１３、スキャンモード制御信号ＳＭＣに応じてテスト回路２０に与えるクロック信号ＣＬＫを第１のクロック信号（例えば、シフトクロックＳＣＬＫ）とするか、第２のクロック信号（リアルタイムクロックＲＣＬＫ）とするかを切り換える。また、キャプチャ制御回路１６は、スキャンモード制御信号ＳＭＣとクロック信号ＣＬＫとに基づきスキャンフリップフロップがキャプチャ動作を行うタイミングを制御するキャプチャイネーブル信号ＣＥＮを生成する。このクロック制御回路１３とキャプチャ制御回路１６の詳細は後述する。
【００１８】
テスト回路２０は、スキャンモード制御信号ＳＭＣと、キャプチャイネーブル信号ＣＥＮと、クロック信号ＣＬＫと、テストパターンＳＩＮとが入力され、テスト対象回路に対するテストを行う。より具体的には、テスト回路２０は、スキャンモード制御信号ＳＭＣがシフトモードを示す場合（例えば、ハイレベル）には、外部から入力されるテストパターンＳＩＮをテスト回路内の複数のスキャンフリップフロップに設定する。また、テスト回路２０は、スキャンモード制御信号ＳＭＣがキャプチャモードを示す場合（例えば、ローレベル）には、テスト回路２０において保持されているテストパターンＳＩＮに基づくテスト値により遅延スキャンテストを実施する。ここで、実施の形態１にかかるテスト回路２０は、スキャンモード制御信号ＳＭＣがキャプチャモード中の動作モードとして、ホールドモードとテスト結果取得モードとを有する。テスト回路２０は、キャプチャ制御回路１６が出力するキャプチャイネーブル信号ＣＥＮがディスイネーブル状態であればホールドモードとなり、イネーブル状態であればテスト結果取得モードとなる。ホールドモードでは、スキャンフリップフロップに入力されるクロック信号ＣＬＫに関わらずスキャンフリップフロップで保持している値を維持する。また、テスト結果取得モードでは、スキャンフリップフロップに入力されるクロック信号ＣＬＫに応じてスキャンフリップフロップで保持している値を組合せ回路から出力される値で更新する。
【００１９】
ここで、テスト回路２０の詳細な構成について説明する。図１に示すように、テスト回路２０は、スキャンフリップフロップ２１〜２ｎ（ｎは整数、以下同じ）、クロックバッファ群３１〜３ｎを有する。なお、クロックバッファ群３１〜３ｎは、クロック信号ＣＬＫがスキャンフリップフロップ２１〜２ｎに到達するタイミングを制御するために設けられるものであり、クロックバッファ群３１〜３ｎに含まれるクロックバッファの数及びその配置は設計時に適宜設定されるものである。
【００２０】
スキャンフリップフロップ２１〜２ｎは、それぞれスキャンモード制御信号ＳＭＣと、キャプチャイネーブル信号ＣＥＮと、クロック信号ＣＬＫと、テストパターンＳＩＮと、データ入力信号ＤＩＮが入力され、出力信号Ｑを出力する。以下の説明では、スキャンモード制御信号ＳＭＣが入力される入力端子をスキャンモード制御信号入力端子ＳＭＣ、キャプチャイネーブル信号ＣＥＮが入力される入力端子をキャプチャイネーブル信号入力端子ＣＥＮ、クロック信号ＣＬＫが入力される入力端子をクロック入力端子ＣＬＫ、テストパターンＳＩＮが入力される入力端子をテストパターン入力端子ＳＩＮ、データ入力信号ＤＩＮが入力される入力端子をデータ入力端子ＤＩＮ、出力信号Ｑが出力される出力端子を出力端子Ｑと称す。
【００２１】
スキャンフリップフロップ２１〜２ｎは、スキャンモード制御信号ＳＭＣが第１のモード（例えば、シフトモード）を示す状態（例えば、ハイレベル）である場合、テストパターンＳＩＮに基づくテスト値をクロック信号ＣＬＫに同期して保持し、出力端子Ｑから出力する。また、スキャンフリップフロップ２１〜２ｎは、スキャンモード制御信号ＳＭＣが第２のモード（例えば、キャプチャモード）を示す状態（例えば、ローレベル）である場合、データ入力信号ＤＩＮに基づくテスト値をクロック信号ＣＬＫに同期して保持するとともに出力信号Ｑとして出力する。さらに、スキャンフリップフロップ２１〜２ｎは、キャプチャイネーブル信号ＣＥＮがディスイネーブル状態（例えば、ローレベル）である場合、その時点で保持している値を維持する。
【００２２】
スキャンフリップフロップ２１〜２ｎは、従属接続され、スキャンチェーン回路を構成する。より具体的には、スキャンフリップフロップは、テストパターン入力端子ＳＩＮが前段に配置されるスキャンフリップフロップの出力端子Ｑと接続される入力される。スキャンフリップフロップ２１〜２ｎのデータ入力端子ＤＩＮは、組合せ回路１１ａ、１１ｂのいずれかに接続される。スキャンフリップフロップ２１〜２ｎの出力端子Ｑは、後段に配置されるスキャンフリップフロップ２１〜２ｎのテストパターン入力端子ＳＩＮと、組合せ回路１１ｂ、１１ｃと、に接続される。なお、スキャンチェーン回路の初段に配置されるスキャンフリップフロップ２１のテストパターン入力端子ＳＩＮは、外部からテストパターンＳＩＮの供給を受ける。また、スキャンチェーン回路の最後段に配置されるスキャンフリップフロップ２ｎの出力端子Ｑは、外部に対してテスト結果信号を出力端子ＳＯＵＴから出力する。
【００２３】
実施の形態１にかかるスキャンフリップフロップ２１〜２ｎは、一般的なスキャンフリップフロップとは異なる構成を有する。具体的には、スキャンフリップフロップ２１〜２ｎは、特徴の１つとしてキャプチャイネーブル信号ＣＥＮに応じて保持している値を更新するか維持するかを切り換えることができる構成を有する。そこで、スキャンフリップフロップ２１〜２ｎの構成について詳細に説明する。スキャンフリップフロップ２１〜２ｎは、同一の構成を有するため、以下の説明では、スキャンフリップフロップ２１を例に実施の形態１にかかるスキャンフリップフロップについて説明する。また、スキャンフリップフロップ２１〜２ｎを制御するテスト制御回路１２の詳細な構成についてもスキャンフリップフロップ２１と共に説明する。
【００２４】
スキャンフリップフロップ２１及びテスト制御回路１２の詳細なブロック図を図２に示す。図２に示すように、スキャンフリップフロップ２１は、基本スキャンフリップフロップ４０にホールド回路５０を有する。ホールド回路５０は、キャプチャイネーブル信号ＣＥＮがディスイネーブル状態（例えば、０）である場合に、基本スキャンフリップフロップ４０で保持している値が入力されるクロック信号ＣＬＫに応じて更新されることを防止する。一方、ホールド回路５０は、キャプチャイネーブル信号ＣＥＮがイネーブル状態（例えば、１）である場合には、基本スキャンフリップフロップ４０で保持している値が入力されるクロック信号ＣＬＫに応じて更新されることを許可する。
【００２５】
基本スキャンフリップフロップ４０は、フリップフロップ回路４１及び第１のセレクタ４２を有する。フリップフロップ回路４１は、クロック入力端子、保持値入力端子Ｄ、出力端子Ｑを有する。フリップフロップ回路４１は、クロック信号ＣＬＫに応じて保持値入力端子Ｄに与えられる信号に基づくテスト値を保持する。第１のセレクタ４２は、テストパターンＳＩＮが第１の入力端子（スキャンモード制御信号ＳＭＣがシフトモード（例えば、１）を示すのときに選択される端子）に与えられ、ホールド回路５０の第２のセレクタ５１の出力値が第２の入力端子（スキャンモード制御信号ＳＭＣがキャプチャモード（例えば、０）を示すときに選択される）に与えられる。そして、第１のセレクタ４２は、スキャンモード制御信号ＳＭＣの値に応じてフリップフロップ回路４１の保持値入力端子Ｄに与える値を切り換える。
【００２６】
ホールド回路５０は、第２のセレクタ５１を有する。第２のセレクタ５１は、テスト対象回路の出力値（例えば、データ入力信号ＤＩＮ）と、フリップフロップ回路４１の出力値と、が入力され、キャプチャイネーブル信号ＣＥＮの状態に応じて第１のセレクタ４２の第２の入力端子に与える信号を切り換える。より具体的には、キャプチャイネーブル信号ＣＥＮがディスイネーブル状態（例えば、０）である場合、第２のセレクタ５１は、フリップフロップ回路４１の出力値を第１のセレクタ４２の第２の入力端子に与える。また、キャプチャイネーブル信号ＣＥＮがイネーブル状態（例えば、１）である場合、第２のセレクタ５１は、データ入力信号ＤＩＮを第１のセレクタ４２の第２の入力端子に与える。
【００２７】
また、図２に示すように、テスト制御回路１２は、クロック制御回路１３、キャプチャ制御回路１６を有する。クロック制御回路１３は、ＰＬＬ回路１４と、セレクタ１５とを有する。ＰＬＬ回路１４は、外部から入力される基準クロックＲＥＦＣを逓倍して第２のクロック信号（例えば、リアルタイムクロックＲＣＬＫ）を生成する。セレクタ１５は、シフトクロックＳＣＬＫとリアルタイムクロックＲＣＬＫとのいずれか一方をスキャンモード制御信号ＳＭＣに応じて選択して、選択した信号をクロック信号ＣＬＫとして出力する。より具体的には、セレクタ１５は、スキャンモード制御信号ＳＭＣがシフトモード（例えば、１）を示す場合にはシフトクロックＳＣＬＫをクロック信号ＣＬＫとして出力する。また、セレクタ１５は、スキャンモード制御信号ＳＭＣがキャプチャモード（例えば、０）を示す場合にはリアルタイムクロックＲＣＬＫをクロック信号ＣＬＫとして出力するなお、リアルタイムクロックＲＣＬＫは、スキャンテストで利用されるラウンチクロックとキャプチャクロックの周波数と同じ周波数を有するクロック信号である。
【００２８】
キャプチャ制御回路１６は、スキャンモード制御信号ＳＭＣとクロック信号ＣＬＫとに基づきスキャンフリップフロップがキャプチャ動作を行うタイミングを制御するキャプチャイネーブル信号ＣＥＮを生成する。キャプチャ制御回路１６は、ゲーティング回路（例えば、ＡＮＤ回路１７）、カウンタ１８を有する。ＡＮＤ回路１７の一方の入力端子は、正転入力端子である。この正転入力端子には、クロック信号ＣＬＫが入力される。ＡＮＤ回路１７の他方の入力端子は、反転入力端子である。この反転入力端子には、スキャンモード制御信号ＳＭＣが入力される。ＡＮＤ回路１７は、スキャンモード制御信号ＳＭＣの反転論理とクロック信号ＣＬＫとの論理積演算結果を出力する。つまり、ＡＮＤ回路１７は、スキャンモード制御信号ＳＭＣがシフトモード（例えば、１）を示す場合にはクロック信号ＣＬＫが後段の回路（例えば、カウンタ１８）に伝達されることを防止する。一方、ＡＮＤ回路１７は、スキャンモード制御信号ＳＭＣがキャプチャモード（例えば、０）を示す場合にはクロック信号ＣＬＫを後段の回路（例えば、カウンタ１８）に伝達する。
【００２９】
カウンタ１８は、ＡＮＤ回路１７を介して入力されるクロック信号ＣＬＫのクロック数をカウントする。カウンタ１８は、設定レジスタ（不図示）に所定の値（例えば、キャプチャ判定値）を有する。そして、カウンタ１８は、クロック信号ＣＬＫのクロック数がキャプチャ判定値に達したことに応じて、キャプチャイネーブル信号ＣＥＮをディスイネーブル状態からイネーブル状態に切り換える。そして、カウンタ１８は、カウント値がさらに２つ進むとキャプチャイネーブル信号ＣＥＮをイネーブル状態からディスイネーブル状態に切り換える。これは、実施の形態１にかかる半導体装置１では、キャプチャイネーブル信号ＣＥＮがイネーブル状態である期間にラウンチクロックパルスとキャプチャクロックパルスの２クロックパルスを要するためである。なお、カウンタ１８は、キャプチャイネーブル信号ＣＥＮをイネーブル状態からディスイネーブル状態に切り換えたことに応じてカウント値をリセットすることが好ましい。
【００３０】
続いて、実施の形態１にかかる半導体装置１のテスト方法について説明する。まず、実施の形態１にかかる半導体装置１のテスト方法の手順を示すタイミングチャートを図３に示す。半導体装置１のテスト方法は、遅延スキャンテストと呼ばれるものである。図３に示すように、半導体装置１のテストでは、まず、スキャンモード制御信号ＳＭＣをシフトモード（例えば、１）とする。そして、シフトモードにおいてテストパターンＳＩＮを第１のクロック信号（例えば、シフトクロックＳＣＬＫ）に同期して内蔵されたスキャンフリップフロップ２１〜２ｎに入力する。ここで、実施の形態１にかかる半導体装置１では、シフトモードにおいてスキャンフリップフロップ２１〜２ｎに入力されたテストパターンＳＩＮを一度テスト対象回路に入力し、当該テスト対象回路がテストパターンＳＩＮに基づき出力した出力値に基づき遅延スキャンテストを実行する。そこで、シフトモードにおいてスキャンフリップフロップ２１〜２ｎに入力されたテストパターンＳＩＮを以下では第１のテストパターンと称し、当該テスト対象回路が第１のテストパターンに基づき生成した出力値を第２のテストパターンと称す。また、シフトモードで利用されるシフトクロックＳＣＬＫは、キャプチャモードで利用されるリアルタイムクロックＲＣＬＫも周波数が低いクロック信号である。
【００３１】
続いて、実施の形態１にかかる遅延スキャンテスト方法では、スキャンモード制御信号ＳＭＣをキャプチャモード（例えば、０）とする。そして、スキャンモード制御信号ＳＭＣをキャプチャモードとしたことに応じて、クロック制御回路１３は、出力するクロック信号ＣＬＫをシフトクロックＳＣＬＫからリアルタイムクロックＲＣＬＫに切り換える。また、スキャンモード制御信号ＳＭＣをキャプチャモードとしたことに応じて、ＡＮＤ回路１７を介してカウンタ１８にリアルタイムクロックＲＣＬＫが入力される。そして、カウンタ１８は、リアルタイムクロックＲＣＬＫのクロック数がキャプチャ判定値に達するまでの期間キャプチャイネーブル信号ＣＥＮをディスイネーブル状態（例えば、０）とする。ここで、キャプチャイネーブル信号ＣＥＮがディスイネーブル状態となる期間の半導体装置１の動作モードをホールドモードと称す。このホールドモードでは、スキャンフリップフロップ２１〜２ｎの第１のセレクタ４２は、スキャンモード制御信号ＳＭＣの値に応じて第２のセレクタ５１の出力値を選択する。また、ホールドモードでは、スキャンフリップフロップ２１〜２ｎの第２セレクタ５１は、キャプチャイネーブル信号ＣＥＮの値に応じてフリップフロップ回路４１の出力値を出力する。そのため、スキャンフリップフロップ２１〜２ｎは、ホールドモードでは、キャプチャモードに移行した時点で保持している値を維持すると共にテスト対象回路に第１のテストパターンを出力する。そして、テスト対象回路は、この第１のテストパターンに基づき第２のテストパターンを生成する。また、ホールドモードでは、リアルタイムクロックＲＣＬＫがクロックバッファ群３１〜３ｎに入力される。そのため、ホールドモードでは、クロックバッファ群３１〜３ｎは、動作状態であり、半導体装置１の消費電流が増加する。そして、半導体装置１に電源電圧を供給する電源回路（不図示）は、増加した消費電力に起因した電源電圧の変動を抑制するように電流供給能力を引き上げる。
【００３２】
続いて、カウンタ１８のカウント値がキャプチャ判定値に達すると、カウンタ１８がキャプチャイネーブル信号ＣＥＮをディスイネーブル状態からイネーブル状態（例えば、１）に切り換える。これにより、半導体装置１は、動作モードをテスト結果取得モードに切り換える。このテスト結果取得モードでは、スキャンフリップフロップ２１〜２ｎの第１のセレクタ４２は、スキャンモード制御信号ＳＭＣの値に応じて第２のセレクタ５１の出力値を選択する。また、テスト結果取得モードでは、スキャンフリップフロップ２１〜２ｎの第２セレクタ５１は、キャプチャイネーブル信号ＣＥＮの値に応じてテスト対象回路の出力値を出力する。これにより、テスト結果取得モードでは、スキャンフリップフロップ２１〜２ｎは、リアルタイムクロックＲＣＬＫに同期して保持している値をテスト対象回路の出力値により更新する状態となる。テスト結果取得モードは、カウンタ１８にさらにリアルタイムクロックＲＣＬＫが２クロックパルス入力されるまで継続される。このとき、２クロックパルスのうちホールドモード終了後に入力される１つ目のクロックパルスをラウンチクロックパルスと称し、２つ目のクロックパルスをキャプチャクロックパルスと称す。半導体装置１では、ラウンチクロックパルスをスキャンフリップフロップ２１〜２ｎに入力することで、スキャンフリップフロップ２１〜２ｎが保持している値をテスト対象回路が出力する第２のテストパターンで更新する。さらに、半導体装置１では、更新後のスキャンフリップフロップ２１〜２ｎの保持値である第２のテストパターンをテスト対象回路に出力する。次いで、スキャンフリップフロップ２１〜２ｎにキャプチャクロックパルスが入力されると、スキャンフリップフロップ２１〜２ｎは、第２のテストパターンに基づきテスト対象回路が出力する出力値をテスト結果として取得する。
【００３３】
このとき、ラウンチクロックパルスとキャプチャクロックパルスの周期は、テスト対象回路に許容される最大遅延許容時間よりも短く設定する。つまり、キャプチャクロックパルスにより取得されたテスト結果が予め定められた値と異なる値であった場合、テスト対象回路の遅延時間が規定を満たしていないと判定することができる。
【００３４】
続いて、キャプチャクロックパルスが入力されると、カウンタ１８は、キャプチャイネーブル信号ＣＥＮをイネーブル状態からディスイネーブル状態に切り換える。そして、スキャンモード制御信号ＳＭＣをシフトモードに切り換える。このシフトモードにおいて、シフトクロックＳＣＬＫを入力することで、スキャンフリップフロップに取り込まれたテスト結果を出力端子ＳＯＵＴから取り出すことができる。
【００３５】
上記説明より、実施の形態１にかかる半導体装置１は、テスト対象回路をテストするスキャンフリップフロップ２１〜２ｎを有する。そして、スキャンフリップフロップ２１〜２ｎは、それぞれ、基本スキャンフリップフロップ４０と、ホールド回路５０とを有する。基本スキャンフリップフロップ４０は、入力されるクロック信号ＣＬＫに応じて保持する値を更新すると共に、外部から入力されるスキャンパターンにより保持する値を更新するシフトモードと、テスト対象回路の出力する値に応じて保持する値を更新するキャプチャモードと、がスキャンモード制御信号ＳＭＣの論理レベルに応じて切り換えられる。ホールド回路５０は、キャプチャモードにおいて、キャプチャイネーブル信号がイネーブル状態である場合には基本スキャンフリップフロップが保持する値を更新し、キャプチャイネーブル信号がディスイネーブル状態である場合には前記基本スキャンフリップフロップが保持する値を維持する。そして、実施の形態１にかかる半導体装置１では、テスト制御回路により、基本スキャンフリップフロップにキャプチャイネーブル信号がイネーブル状態である期間にクロック信号に含まれる連続した２つのクロックパルスを入力する。
【００３６】
また、実施の形態１にかかる半導体装置１では、上記スキャンフリップフロップ２１〜２ｎを用いて、遅延スキャンテストを行う。この遅延スキャンテストでは、まず、第１のクロック信号（例えば、シフトクロックＳＣＬＫ）をスキャンフリップフロップ２１〜２ｎに入力してテスト対象回路に入力する第１のテストパターンをスキャンフリップフロップ２１〜２ｎに設定する。続いて、シフトクロックＳＣＬＫよりも周波数の高い第２のクロック信号（例えば、リアルタイムクロックＲＣＬＫ）をスキャンフリップフロップ２１〜２ｎに入力すると共に、スキャンフリップフロップ２１〜２ｎをリアルタイムクロックＲＣＬＫによらず保持する値を維持するホールドモードに制御し、ホールドモードを解除すると共にスキャンフリップフロップ２１〜２ｎをテスト対象回路の出力に応じて保持する値を更新するテスト結果取得モードに制御し、テスト結果取得モードにおいてリアルタイムクロックＲＣＬＫを２パルス用いてスキャンフリップフロップ２１〜２ｎに保持されている値を更新する。続いて、テスト結果取得モードを解除した後にシフトクロックＳＣＬＫをスキャンフリップフロップ２１〜２ｎに入力して、スキャンフリップフロップ２１〜２ｎに保持されている値をテスト結果として外部出力する。
【００３７】
実施の形態１にかかる半導体装置１では、スキャンフリップフロップ２１〜２ｎを利用して、上記遅延スキャンテストを実行する。これにより、実施の形態１にかかる半導体装置１は、ホールドモードの期間中に、リアルタイムクロックに起因して大きな電流が流れたとしても、半導体装置に電源電圧を供給する電源回路が当該電源電圧を維持できる程度に電源供給能力を引き上げることができる。そして、テスト結果取得モードでは、電源回路が十分な電源供給能力を有する状態で、リアルタイムクロックとして与えられるラウンチクロックパルスとキャプチャクロックパルスを入力して遅延スキャンテストを行う。これにより、実施の形態１にかかる半導体装置１では、ラウンチクロックパルスとキャプチャクロックパルスとに起因した電源電圧の低下を防止して、遅延スキャンテストの精度を向上させることができる。
【００３８】
また、遅延スキャンテストの別のテスト方法としては、本実施の形態におけるテスト結果取得モード中に入力されるキャプチャクロックパルスが入力される期間のみ半導体装置１をキャプチャモードに制御する方法がある。しかし、この別のテスト方法を利用した場合、リアルタイムクロックＲＣＬＫの周波数の上昇する（或いは、テスト対象回路の最大遅延許容時間が短くなる）と、スキャンモード制御信号ＳＭＣの周波数を高くする必要がある。しかし、スキャンモード制御信号ＳＭＣは、一般的には半導体テスタからケーブルを介してテスト対象の半導体装置１に伝達される。そのため、スキャンモード制御信号ＳＭＣの周波数の上限が、リアルタイムクロックＲＣＬＫの周波数よりも低くなる場合がある。このようなことから、別のテスト方法を利用した場合、リアルタイムクロックＲＣＬＫの周波数がスキャンモード制御信号ＳＭＣの周波数の上限により制限される問題が生じる。
【００３９】
しかし、実施の形態１にかかる遅延スキャンテスト方法では、半導体装置１をキャプチャモードとしている期間中に、スキャンフリップフロップ２１〜２ｎが保持する値を維持するホールドモードと、テスト対象回路に対するテストを実施するテスト結果取得モードとの２つの動作モードを有する。そして、実施の形態１にかかる半導体装置１では、ホールドモード中にリアルタイムクロックＲＣＬＫの複数のクロックパルスを入力し、テスト結果取得モード中にリアルタイムクロックＲＣＬＫを利用したラウンチクロックパルス及びキャプチャクロックパルスを入力する。つまり、実施の形態１にかかる遅延スキャンテスト方法では、スキャンモード制御信号ＳＭＣをキャプチャモードとしている期間にリアルタイムクロックＲＣＬＫの複数のクロックパルスが含まれる。これにより、実施の形態１にかかる遅延スキャンテスト方法では、スキャンモード制御信号ＳＭＣの周波数に制限を受けることなくリアルタイムクロックＲＣＬＫの周波数を高くすることができる。また、リアルタイムクロックＲＣＬＫの周波数を高くすることができることから、実施の形態１にかかる遅延スキャンテスト方法では、より動作速度が速い半導体装置１の遅延スキャンテストを実行することができる。
【００４０】
また、実施の形態１にかかる半導体装置１では、ホールドモードとテスト結果取得モードとを切り換えるキャプチャイネーブル信号ＣＥＮの状態をリアルタイムクロックＲＣＬＫのクロック数をカウントする半導体装置１内のカウンタ１８により切り換える。つまり、実施の形態１にかかる半導体装置１では、キャプチャイネーブル信号ＣＥＮの状態の切り替わりタイミングを半導体装置１の設計段階で調整することができる。これにより、半導体装置１では、半導体装置１のテスタの性能等のテスト環境の影響を受けることなく、リアルタイムクロックＲＣＬＫの周波数の上昇に対応してキャプチャイネーブル信号ＣＥＮの状態の切り替わりタイミングを容易に調整することができる。
【００４１】
実施の形態２
実施の形態２では、スキャンフリップフロップ２１〜２ｎの別の形態について説明する。そこで、スキャンフリップフロップ２１〜２ｎの別の形態を示すスキャンフリップフロップ２１ａ〜２ｎａについて説明する。なお、以下では、スキャンフリップフロップ２１ａ〜２ｎａは同じ回路であるため、スキャンフリップフロップ２１ａを例にスキャンフリップフロップ２１ａ〜２ｎａの構成について説明する。
【００４２】
また、実施の形態２では、スキャンフリップフロップの構成の変更に応じてキャプチャ制御回路１６の構成を変更する。そこで、実施の形態２では、キャプチャ制御回路１６の別の形態を示すキャプチャ制御回路１６ａについて説明する。なお、実施の形態１と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【００４３】
図４に実施の形態２にかかるスキャンフリップフロップ２１ａ及びテスト制御回路１２ａのブロック図を示す。なお、テスト制御回路１２ａは、キャプチャ制御回路１６に代えてキャプチャ制御回路１６ａを有する。
【００４４】
図４に示すように、スキャンフリップフロップ２１ａは、基本スキャンフリップフロップ６０、ホールド回路７０を有する。ホールド回路７０は、キャプチャイネーブル信号ＣＥＮがディスイネーブル状態（例えば、０）である場合に、基本スキャンフリップフロップ６０で保持している値が入力されるクロック信号ＣＬＫに応じて更新されることを防止する。一方、ホールド回路７０は、キャプチャイネーブル信号ＣＥＮがイネーブル状態（例えば、１）である場合には、基本スキャンフリップフロップ６０で保持している値が入力されるクロック信号ＣＬＫに応じて更新されることを許可する。
【００４５】
基本スキャンフリップフロップ６０は、フリップフロップ回路６１及び第１のセレクタ６２を有する。フリップフロップ回路６１は、クロック入力端子、保持値入力端子Ｄ、出力端子Ｑを有する。フリップフロップ回路６１は、ホールド回路７０を介してクロック信号ＣＬＫを受信する。そしてフリップフロップ回路６１は、クロック信号ＣＬＫのエッジに応じて保持値入力端子Ｄに与えられる信号に基づくテスト値を保持する。第１のセレクタ６２は、テストパターンＳＩＮが第１の入力端子（スキャンモード制御信号ＳＭＣがシフトモード（例えば、１）を示すのときに選択される端子）に与えられ、テスト対象回路の出力値（例えば、データ入力信号ＤＩＮ）が第２の入力端子（スキャンモード制御信号ＳＭＣがキャプチャモード（例えば、０）を示すときに選択される）に与えられる。そして、第１のセレクタ６２は、スキャンモード制御信号ＳＭＣの値に応じてフリップフロップ回路６１の保持値入力端子Ｄに与える値を切り換える。
【００４６】
ホールド回路７０は、第２のセレクタ７１を有する。第２のセレクタ７１は、クロック信号ＣＬＫと、固定値（例えば、０）と、が入力される。第２のセレクタ７１は、キャプチャイネーブル信号ＣＥＮの状態に応じてフリップフロップ回路６１のクロック入力端子にクロック信号ＣＬＫを供給するか停止するかを切り換える。より具体的には、キャプチャイネーブル信号ＣＥＮがイネーブル状態（例えば、１）である場合、第２のセレクタ７１は、フリップフロップ回路６１のクロック入力端子にクロック信号ＣＬＫを与える。また、キャプチャイネーブル信号ＣＥＮがディスイネーブル状態（例えば、０）である場合、第２のセレクタ７１は、フリップフロップ回路６１のクロック入力端子へのクロック信号ＣＬＫの供給を停止する。
【００４７】
また、図４に示すように、テスト制御回路１２ａは、クロック制御回路１３、キャプチャ制御回路１６ａを有する。ここで、クロック制御回路１３は、実施の形態１と同じ構成であるため説明を省略する。キャプチャ制御回路１６ａは、実施の形態１にかかるキャプチャ制御回路１６にＯＲ回路１９を追加したものである。ＯＲ回路１９の一方の入力端子には、スキャンモード制御信号ＳＭＣが入力される。ＯＲ回路１９の他方の入力端子には、カウンタ１８の出力信号が入力される。そして、ＯＲ回路１９は、２つの入力信号の論理和演算結果をキャプチャイネーブル信号ＣＥＮとして出力する。つまり、実施の形態２にかかるキャプチャ制御回路１６ａは、スキャンモード制御信号ＳＭＣがシフトモード（例えば、１）を示す場合と、カウンタ１８が出力する信号（実施の形態１におけるキャプチャイネーブル信号ＣＥＮ）がイネーブル状態である場合と、のいずれか一方の場合にキャプチャイネーブル信号ＣＥＮをイネーブル状態とする。
【００４８】
続いて、スキャンフリップフロップ２１ａ〜２ｎａを用いた実施の形態２にかかる半導体装置の遅延スキャンテストの手順について説明する。図５に実施の形態２にかかる半導体装置の遅延スキャンテストの手順を示すタイミングチャートを示す。
【００４９】
図５に示すように、実施の形態２にかかる半導体装置においても、キャプチャモード時に半導体装置をホールドモードとテスト結果取得モードとに制御する。このホールドモードとテスト結果取得モードにおけるキャプチャイネーブル信号ＣＥＮの制御方法は、実施の形態１と同じである。一方、スキャンフリップフロップ２１ａ〜２ｎａは、フリップフロップ回路にシフトモード中おいてクロック信号ＣＬＫを供給するにはキャプチャイネーブル信号ＣＥＮをイネーブル状態としなければならない。そのため、実施の形態２にかかるキャプチャ制御回路１６ａでは、スキャンモード制御信号ＳＭＣがシフトモードのときにもキャプチャイネーブル信号ＣＥＮをイネーブル状態（例えば、１）とする。これにより、実施の形態２にかかる半導体装置では、シフトモードにおいてもフリップフロップ回路６１にクロック信号ＣＬＫ（或いはシフトクロックＳＣＬＫ）を与える。
【００５０】
上記説明より、実施の形態２にかかる半導体装置では、スキャンフリップフロップとして図４で示したスキャンフリップフロップ２１ａ〜２１ｎａを有する。しかし、このスキャンフリップフロップ２１ａ〜２１ｎａを用いても、実施の形態１と同様の手順でキャプチャモード時の制御を行うことができる。また、シフトモードにおいてもキャプチャイネーブル信号ＣＥＮをイネーブル状態とすることで、実施の形態１と同じ動作を行うことができる。このように、スキャンフリップフロップの形態を変更しても、スキャンフリップフロップをキャプチャモードにおいてホールドモードとテスト結果取得モードとに制御できれば実施の形態１と同様に、ラウンチクロックパルスとキャプチャクロックパルスとによる電源電圧の変動を抑制し、高精度な遅延スキャンテストを実行することができる。また、実施の形態２にかかる遅延キャプチャテストでは、キャプチャモード時の動作が実施の形態１と同じであるため、実施の形態１と同様にリアルタイムクロックＲＣＬＫの周波数をテスト環境に依存せずに高めることができる。
【００５１】
実施の形態３
実施の形態３にかかる半導体装置３のブロック図を図６に示す。図６に示すように、実施の形態３にかかる半導体装置３では、テスト制御回路としてクロック制御回路１３のみを有する。そして、実施の形態３にかかる半導体装置３では、キャプチャイネーブル信号ＣＥＮを外部（例えば、テスタ）から供給する。
【００５２】
図３又は図５において示したように、本発明にかかる遅延スキャンテスト方法では、キャプチャイネーブル信号ＣＥＮをラウンチクロックパルス及びキャプチャクロックパルスが入力される期間だけイネーブル状態とできればよい。つまり、本発明にかかる遅延スキャンテスト方法では、キャプチャイネーブル信号ＣＥＮの周波数は、リアルタイムクロックＲＣＬＫの周波数よりも低い。このようなことから、テスタを含むテスト環境においてキャプチャイネーブル信号ＣＥＮの周波数を十分な速度とすることができるのであれば、キャプチャ制御回路１６を省略することも可能である。また、キャプチャ制御回路１６を除くことで半導体装置３のチップ面積は、実施の形態１の半導体装置１のチップ面積よりも小さくすることができる。
【００５３】
実施の形態４
実施の形態４では、実施の形態１〜３において説明した半導体装置を設計する設計支援装置及び設計方法について説明する。図７に実施の形態４にかかる設計支援装置４のブロック図を示す。
【００５４】
図７に示すように、実施の形態４にかかる設計支援装置４は、演算部８０、記憶装置８１、表示部８２、操作指示入力部８３を有する。演算部８０は、半導体装置の設計を支援する設計支援プログラムを実行する。記憶装置８１は、設計支援プログラム及び回路設計に利用する各種情報を格納する。以下の説明では、各種情報に回路設計情報、第１、第２のネットリスト回路ライブラリ、テストパターン情報が含まれる例について説明する。表示部８２は、設計支援プログラムを操作するためのユーザーインタフェース画面を表示する。操作指示入力部８３は、例えば、キーボードとマウスのような装置により設計支援プログラムへの操作指示を入力する装置である。
【００５５】
ここで、演算部８０についてさらに詳細に説明する。演算部８０は、記憶装置８１に格納されている設計支援プログラムを読み出して実行する。そして、演算部８０は、設計支援プログラムを実行することで、論理合成部８４、テスト回路情報付加部８５及びテスト回路情報検証部８６の機能を実現する。論理合成部８４は、論理合成処理部９０、ネットリスト生成部９１を有する。論理合成処理部９０は、記憶装置８１から回路設計情報を読み出して回路設計情報に記載される回路の動作を実現するゲートレベルの回路を生成する。なお、回路設計情報は、回路の動作を記述したものであって、ＨＤＬ（Hardware Description Language）等の情報である。ネットリスト生成部９１は、論理合成処理部９０により生成されたゲートレベルの回路情報に含まれるゲート間の接続情報を記述した第１のネットリストを生成する。この第１のネットリストは、記憶装置８１に格納される。また、回路設計情報には、テスト回路２０（例えばＤＦＴ（Design For Test）回路）の情報は含まれていないため、第１のネットリストにはテスト回路２０の情報が含まれない。
【００５６】
テスト回路情報付加部８５は、ＤＦＴ回路挿入処理部９２、ＤＦＴ回路修正処理部９３を有する。ＤＦＴ回路挿入処理部９２は、第１のネットリストを記憶装置８１から読み出す。また、ＤＦＴ回路挿入処理部９２は、回路ライブラリ群に含まれる基本フリップフロップの回路ライブラリを記憶装置８１から読み出す。そして、ＤＦＴ回路挿入処理部９２は、第１のネットリストに含まれるテスト対象回路に対して基本フリップフロップのネットリスト情報を付加する。
【００５７】
ＤＦＴ回路修正処理部９３は、回路ライブラリ群に含まれるセレクタ及びテスト制御回路の回路ライブラリを記憶装置８１から読み出す。ここで、回路ライブラリ群から読み出したセレクタは、図２で示したホールド回路５０又は図４で示したホールド回路７０を構成するセレクタである。そして、ＤＦＴ回路修正処理部９３は、ＤＦＴ回路挿入処理部９２で追加された基本フリップフロップに対してセレクタを付加する。また、ＤＦＴ回路修正処理部９３は、テスト制御回路の回路ライブラリを第１のネットリストに追加する。
【００５８】
テスト回路情報検証部８６は、テストパターン生成部９４、故障検出率算出部９５を有する。テストパターン生成部９４は、ＤＦＴ回路修正処理部９３において生成されたネットリストにより生成される半導体装置に対するテストパターンを生成する。このテストパターンはテストパターン情報として記憶装置８１に格納される。故障検出率算出部９５は、記憶装置８１からテストパターン情報を読み出して当該テストパターンによる故障検出率を算出する。そして、算出された故障検出率が基準を満たしていればＤＦＴ回路修正処理部９３により生成された第２のネットリストとして出力する。この第２のネットリストには、図２或いは図４で示したスキャンフリップフロップと、図２、図４或いは図５で示したテスト制御回路と、が含まれる。一方、算出された故障検出率が基準を満たしていない場合、再度ＤＦＴ回路挿入処理部９２によるテスト回路の生成処理を行う。
【００５９】
続いて、実施の形態４にかかる設計支援装置４を用いた半導体装置の設計方法について説明する。図８に実施の形態４にかかる半導体装置の設計方法のフローチャートを示す。
【００６０】
図８に示すように、実施の形態４にかかる設計方法では、まず、ＲＴＬ（Register Transfer Level）設計により回路設計情報Ｆ１を生成する（ステップＳ１）。続いて、論理合成部８４により回路設計情報Ｆ１に対して論理合成処理を施して第１のネットリストＦ２を生成する（ステップＳ２）。次いで、基本スキャンフリップフロップの回路ライブラリ群Ｆ３を読み出して、基本スキャンフリップフロップのネット情報を第１のネットリストＦ２に追加する。（ステップＳ３）。次いで、ステップＳ３で第１のネットリストＦ２に追加した基本スキャンフリップフロップにセレクタの回路ライブラリ情報を追加して、本基本スキャンフリップフロップを本発明にかかるスキャンフリップフロップ（例えば、スキャンフリップフロップ２１、２１ａ）に修正する。また、本発明にかかるスキャンフリップフロップを制御するためにテスト制御回路に関する回路ライブラリを第１のネットリストに追加する（ステップＳ４）。なお、ステップＳ３、Ｓ４で読み出される回路ライブラリは、回路ライブラリ群Ｆ３に含まれるものである。
【００６１】
次いで、ステップＳ４で修正されたネットリストを用いて形成される半導体装置の故障検出率を確認する（ステップＳ５）。このステップＳ５において、故障検出率が基準を満たしていなければ、再度ステップＳ３に戻って、テスト回路の構成を見直す。一方、ステップＳ５において、故障検出率が基準を満たしていれば、ステップＳ４で生成されたネットリストを第２のネットリストＦ５として出力する。その後、この第２のネットリストＦ５を用いてレイアウト工程が行われる。また、レイアウト工程で生成されるレイアウト情報を用いて上記実施の形態にかかる半導体装置が形成される。
【００６２】
上記説明より、実施の形態４にかかる半導体装置の設計支援装置及び設計方法では、テスト対象回路を含む回路を含む第１のネットリストＦ２を読み込み、テスト対象回路に対応する位置に、スキャンモード制御信号の値に応じて保持する値を前段のスキャンフリップフロップの出力により更新するかテスト対象回路の出力に応じて更新するかを切り換える複数の基本スキャンフリップフロップ（例えば、基本スキャンフリップフロップ４０）のネット情報を生成する。そして、複数の基本スキャンフリップフロップのそれぞれに対して、キャプチャイネーブル信号ＣＥＮに応じて複数のスキャンフリップフロップが保持する値を更新するか維持するかを切り換えるホールド回路（例えば、セレクタ５１）のネット情報を生成する。そして、複数の基本スキャンフリップフロップが保持する値を前段のスキャンフリップフロップの出力により更新するかテスト対象回路の出力に応じて更新するかを指示するスキャンモード制御信号ＳＭＣと、複数のスキャンフリップフロップに与えられるクロック信号ＣＬＫと、に応じてキャプチャイネーブル信号ＣＥＮをイネーブル状態とするかディスイネーブル状態とするかを切り換えるスキャン制御回路のネット情報を生成する。このスキャン制御回路の情報は、テスト制御回路の回路ライブラリ中に含まれるものである。そして、第１のネットリストＦ２に、複数の基本スキャンフリップフロップのネット情報、ホールド回路のネット情報及びスキャン制御回路のネット情報を追加して、第２のネットリストを生成する。
【００６３】
このような処理を行うことにより、実施の形態４にかかる半導体装置の設計支援装置及び設計方法では、実施の形態１〜３に記載の半導体装置を形成することができる。また、形成された半導体装置に対しては、実施の形態１〜３に記載の半導体装置に対する遅延スキャンテストを実施することができる。
【００６４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６５】
１、３    半導体装置
４    設計支援装置
１１ａ〜１１ｃ    組合せ回路
１２、１２ａ    テスト制御回路
１３    クロック制御回路
１４    ＰＬＬ回路
１５    セレクタ
１６、１６ａ    キャプチャ制御回路
１７    ＡＮＤ回路
１８    カウンタ
１９    ＯＲ回路
２１〜２ｎ、２１ａ    スキャンフリップフロップ
２０    テスト回路
３１〜３ｎ    クロックバッファ群
４０、６０    基本スキャンフリップフロップ
４１、６１    フリップフロップ回路
４２、５１、６２、７１    セレクタ
５０、７０    ホールド回路
８０    演算部
８１    記憶装置
８２    表示部
８３    操作指示入力部
８４    論理合成部
８５    テスト回路情報付加部
８６    テスト回路情報検証部
９０    論理合成処理部
９１    ネットリスト生成部
９２    ＤＦＴ回路挿入処理部
９３    ＤＦＴ回路修正処理部
９４    テストパターン生成部
９５    故障検出率算出部
ＣＥＮ    キャプチャイネーブル信号
ＣＬＫ    クロック信号
ＲＣＬＫ    リアルタイムクロック
ＲＥＦＣ    基準クロック
ＳＣＬＫ    シフトクロック
ＳＩＮ    テストパターン
ＳＭＣ    スキャンモード制御信号
【図１】
2013036960.tif 000003
【図２】
2013036960.tif 000004
【図３】
2013036960.tif 000005
【図４】
2013036960.tif 000006
【図５】
2013036960.tif 000007
【図６】
2013036960.tif 000008
【図７】
2013036960.tif 000009
【図８】
2013036960.tif 000010