(57)【要約】【課題】従来の遅延テスト方法では、遅延テスト用の故障検査用データは２つのクロック印加後の期待値を求めるなど故障検査用データの生成が複雑化する。また、スキャン制御回路内部を構成する回路が複雑となる。【解決手段】本発明のスキャンテスト回路は、制御信号を入力する制御用ＦＦと、その出力が第１状態値の時シフト動作モードに、出力が第２の状態値の時通常動作モードとなる記憶素子のスキャンパスチェーンとを有し、制御用ＦＦは、制御信号が第１から第２の状態値に遷移した場合は、複数の記憶素子に与えられるクロックの遷移後の最初のクロックパルスに同期して、第２の状態値を複数の記憶素子に出力し、制御信号が第２から第１の状態値に遷移した場合は、制御信号が遷移したタイミングで第１の状態値を複数のスキャン記憶素子に出力することを特徴とする。【選択図】図１
2008275479.tif 000002
【特許請求の範囲】
【請求項１】
スキャン制御信号を入力する制御用フリップフロップと、
前記制御用フリップフロップの出力が第１の状態値の時シフト動作を行う第１のモードに、前記制御用フリップフロップの出力が第２の状態値の時通常動作を行う第２のモードとなる複数のスキャン記憶素子がシリアルに接続されたスキャンパスチェーンとを有し、
前記制御用フリップフロップは、
前記スキャン制御信号が第１の状態値から第２の状態値に遷移した場合は、前記複数のスキャン記憶素子に与えられるクロックの前記遷移後の最初のクロックパルスに同期して、前記第２の状態値を前記複数のスキャン記憶素子に出力し、
前記スキャン制御信号が前記第２の状態値から前記第１の状態値に遷移した場合は、前記スキャン制御信号が遷移したタイミングで前記第１の状態値を前記複数のスキャン記憶素子に出力することを特徴とするスキャンテスト回路。
【請求項２】
前記スキャン制御信号を入力する前記制御用フリップフロップは、
前記スキャン制御信号が第１の状態値の時、前記クロックに非同期に予め決められた固定値を出力し、
前記スキャン制御信号が第２の状態値の時、入力された前記スキャン制御信号の状態値を前記クロックに同期して出力する請求項１に記載のスキャンテスト回路。
【請求項３】
前記制御用フリップフロップは、
半導体集積回路内に複数形成されていることを特徴とする請求項１または請求項２に記載のスキャンテスト回路。
【請求項４】
前記制御用フリップフロップは、
半導体集積回路内に複数形成され、複数の前記制御用フリップフロップ各々は前記スキャン制御信号を入力し、前記制御用フリップフロップ各々はそれぞれ対応する前記スキャン記憶素子に前記制御用フリップフロップ各々の出力を供給する請求項１または請求項２に記載のスキャンテスト回路。
【請求項５】
前記制御用フリップフロップは、
前記半導体集積回路内の前記複数のスキャン記憶素子の近傍に形成されることを特徴とする請求項３または請求項４に記載のスキャンテスト回路。
【請求項６】
前記制御用フリップフロップはセット付フリップフロップより構成されていることを特徴とする請求項１記載のスキャンテスト回路
【請求項７】
前記制御用フリップフロップはセット端子に前記スキャン制御信号が、データ入力端子に論理値０が入力される請求項５記載のスキャンテスト回路
【請求項８】
前記制御用フリップフロップはリセット付フリップフロップより構成されていることを特徴とする請求項１記載のスキャンテスト回路
【請求項９】
前記制御用フリップフロップの出力と前記スキャン記憶素子との間にさらに選択回路を備え、
前記選択回路は、第２のスキャン制御信号に応じて、前記スキャン記憶素子に、前記制御用フリップフロップの出力または前記スキャン制御信号のいずれか一方を出力する請求項１記載のスキャンテスト回路。
【請求項１０】
請求項１から請求項９の１つに記載のスキャンテスト回路を少なくとも１以上有する半導体集積回路。
【請求項１１】
通常動作を行うキャプチャ動作モードとシフト動作を行うシフト動作モードを有するスキャンテスト回路のスキャンテスト制御方法であって、
スキャン制御信号が第１の状態値から第２の状態値になった後、スキャンチェーンに最初に入力される同期クロックに応じて前記スキャンチェーンをキャプチャ動作モードとし、
スキャン制御信号が前記第２の状態値から前記第１の状態値になったタイミングに応じて、前記スキャンチェーンをシフト動作モードとする
ことを特徴とするスキャンテスト制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路内の、縮退故障および遅延故障を検出するためのスキャンテスト回路に関する。
【背景技術】
【０００２】
近年、ＬＳＩ等の半導体集積回路は、高速化・高集積化されている。従来製造された半導体集積回路が、所望の機能動作するかをテストする機能テストに加え、所望の動作周波数で動作するかをテストする遅延テスト（あるいは実レートテスト）が行われる。
【０００３】
このような半導体集積回路に対する遅延テスト方法の１つとして、従来機能テストに用いられたスキャンテスト回路を使った遅延テスト手法が行われていた。以下図８から図１１を参照してスキャンテスト回路を用いた遅延テストについて概略を説明する。なお、図８に従来のスキャンテスト回路の構成の一例、図９に図８のスキャン記憶素子の構成の一例、図１０に図８のスキャンテスト回路の機能テストにおけるタイミングチャート、図１１に図８のスキャンテスト回路の遅延テストにおけるタイミングチャートをそれぞれ示す。
【０００４】
図８に示すようにスキャンテスト回路は、所望の機能を実現するために組み合わせ回路と順序回路等とを有する半導体集積回路１に組み込まれる。この従来のスキャンテスト回路は、半導体集積回路１の順序回路の一部または全部をスキャン記憶素子に置換え、置き換えられたスキャン記憶素子３１から３６の入力に前段のスキャン記憶素子の出力を順にシリアルに接続しシフトレジスタを構成したものである。なお、スキャン記憶素子３１から３６は一般的には図９に示すようなＤフリップフロップ５６（以下Ｄ−ＦＦと称す）とセレクタ５５から構成されたスキャンフリップフロップ５８などが利用される。スキャンフリップフロップ５８は、データ端子（Ｄ）５１、スキャンイン端子（ＳＩＮ）５２、スキャンイネーブル端子（ＳＥＮ）５３およびクロック端子（ＣＬＫ）５４とを備える。そして、スキャンイネーブル端子５３に設定されるスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）の設定値にしたがって、データ端子５１あるいはスキャンイン端子５２のいずれか一方からの入力値をＤ−ＦＦ５６に入力する。
【０００５】
また、このシフトレジスタの初段のスキャン記憶素子３１はスキャンイン端子１２から入力を受け、最終段のスキャン記憶素子３６はその出力をスキャンアウト端子４２に出力する。こうして、スキャンイン端子１２、スキャン記憶素子３１から３６、スキャンアウト端子４２までのスキャンパスチェーン（あるいはスキャンパス）を構成する。このようにスキャンパスを構成する接続をここではスキャン接続、スキャンパスあるいはシフトレジスタを構成するスキャン記憶素子の数をスキャン長とそれぞれ称する。図８の例ではスキャン記憶素子３１から３６の計６つのためスキャン長は６ビットとなる。
【０００６】
スキャン記憶素子３１から３６の各々は、スキャンイネーブル信号入力端子１３に入力されるスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）によりスキャンパスを通じた入力、あるいは組み合わせ回路２１から２３からの入力のいずれか一方を選択する。したがって、従来のスキャンテスト回路は、スキャンイネーブル信号（ｓｃａｎ＿ｅｎ）により、上述のスキャンパスを活性化するシフト動作モードと、組み合わせ回路の出力を順序回路が取り込むキャプチャ動作モードとを切り替えることができる。なお、キャプチャ動作モードは半導体集積回路１の通常の動作モード（通常モード）でもある。
【０００７】
このように構成されたスキャンテスト回路の機能テスト時の動作は次のとおりである。まずスキャンイネーブル信号入力端子１３の設定を"１"（シフト動作モード）として、スキャンイン端子１２よりスキャンデータをクロック端子１４から印加するクロック（ｃｌｋ）に同期させて入力し、スキャン記憶素子３１から３６にスキャンテストのための初期値を設定する。入力されるクロックのクロックパルスはスキャンパスを構成するスキャン記憶素子３１から３６の数であって、図１０ではタイミング１００１のクロック印加により初期値が設定完了する。
【０００８】
そして、初期値設定完了後、スキャンイネーブル信号入力端子１３の設定を"０"（通常モード）としクロックパルスを１つ印加する（タイミング１００２）。こうしてスキャン記憶素子３１から３６に初期値に基づいた組み合わせ回路の演算結果をスキャン記憶素子３１から３６に格納するキャプチャ動作を行う。最後に再びシフト動作モードに変え、クロック（ｃｌｋ）を印加しながら演算結果を半導体集積回路１の外部に取り出し、予め求められた期待値と照合して半導体装置１の機能テストを行う。図１０ではタイミング１００３以降順次結果が出力される。
【０００９】
上述の機能テストでは、一般にスキャンパスのデータ遅延が半導体集積回路１の動作クロックの１周期の時間よりも長いため、半導体集積回路１が所望の動作スピードではテストが行えない。また、キャプチャ動作モード／シフト動作モードを切り替えるスキャンイネーブル信号をスキャン記憶素子に分配するための時間も一般には半導体集積回路の動作クロックの１周期の時間よりも長い。それゆえ、従来の機能テストでは、実際の半導体集積回路の動作周波数よりも低い動作周波数でテストが行われる。
【００１０】
このように低い動作周波数でしかスキャンテスト回路が動作しないスキャンテスト回路を用いた初期値の設定は時間を要するため、初期値設定が完了した時点で組みあわせ回路の演算は終了してしまう。それゆえ、スキャン記憶素子３１から３６にはさまれた組み合わせ回路２１から２４の演算時間が所望のスピードで動作（演算動作）できるかをテストすることができない。
【００１１】
したがって図１１に示すように、キャプチャ動作時に所望とする動作スピードのクロック周波数でクロックパルスを２回印加することにより遅延テストを行う。ここでキャプチャ動作時の最初のクロック印加（タイミング１１０３）により、スキャン記憶素子３１から３６には組み合わせ回路２１から２３の第１の演算結果が格納され、２つめのクロック印加（タイミング１１０４）により格納された第１の演算結果を元とした第２の演算結果がスキャン記憶素子３１から３６に格納される。ここで２つめのクロック印加による組み合わせ回路２１から２４の演算が所望とする動作スピードで半導体集積回路１が動作した演算結果を格納したこととなり、この演算結果をあらかじめ求められた期待値と照合することにより遅延テストが行われる。なお、機能テストや遅延テストにおいて、スキャン記憶素子にテスト結果である組み合わせ回路の演算結果を取り込むクロックをキャプチャクロック、組み合わせ回路の演算のための元のデータを出力するクロックをラウンチクロックと呼ぶ。したがって図１１のような遅延テストにおいては、タイミング１１０３で印加される1つめのクロックがラウンチクロックであり、タイミング１１０４で印加される２つめクロックがキャプチャクロックである。
【００１２】
なお、半導体集積回路に対する遅延テストを行うテスト回路の他の技術が特開２００４−２９４４２４号公報に開示されている。
【特許文献１】特開２００４−２９４４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述のように、機能テスト時はスキャンテスト回路によるスキャン記憶素子３１から３６への初期値設定し、１つのクロック印加した場合の組み合わせ回路２１から２４の演算結果と期待値との照合を行うのに対し、従来のスキャンテスト回路を用いた遅延テスト方法では、遅延テスト時は２つのクロック印加後の組み合わせ回路２１から２４の演算結果と期待値との照合を行っている。このため、従来のスキャンテスト回路を用いた遅延テスト方法では、スキャン記憶素子への設定値と演算結果の期待値とから構成される故障検査用データ（あるいは単にテストパターン）は、機能テスト時と遅延テスト時とで異なったものとなり、遅延テスト用の故障検査用データは２つのクロック印加後の期待値を求めるなど故障検査用データの生成が複雑化する。
【００１４】
また、特許文献１では、スキャン制御回路がスキャン選択信号と通常動作クロックとテストクロックの３つの入力信号により、スキャン選択内部信号とスキャンクロック（ラウンチクロックとキャプチャクロックを含む）を生成している。このため、スキャン制御回路内部を構成する回路が複雑となってしまう。
【課題を解決するための手段】
【００１５】
本発明にかかるスキャンテスト回路によれば、スキャン制御信号を入力する制御用フリップフロップと、前記制御用フリップフロップの出力が第１の状態値の時シフト動作を行う第１のモードに、前記制御用フリップフロップの出力が第２の状態値の時通常動作を行う第２のモードとなる複数のスキャン記憶素子がシリアルに接続されたスキャンパスチェーンとを有し、前記制御用フリップフロップは、前記スキャン制御信号が第１の状態値から第２の状態値に遷移した場合は、前記複数のスキャン記憶素子に与えられるクロックの前記遷移後の最初のクロックパルスに同期して、前記第２の状態値を前記複数のスキャン記憶素子に出力し、前記スキャン制御信号が前記第２の状態値から前記第１の状態値に遷移した場合は、前記スキャン制御信号が遷移したタイミングで前記第１の状態値を前記複数のスキャン記憶素子に出力することを特徴とするものである。
【００１６】
本発明にかかるスキャンテスト回路によれば、遅延故障テストにおいて、例えばセット付きフリップフロップのような入力クロックに対して出力が非同期に制御される制御用フリップフロップを用いることで複数の組み合わせ回路を考慮しない遅延故障検出用のテストパターンを利用することができる。
【発明の効果】
【００１７】
本発明によれば、スキャンテストに用いる遅延故障検出用のテストパターンの効率が上がり、遅延故障検出用テストパターン長の削減が簡単な回路構成で可能になる。
【発明を実施するための最良の形態】
【００１８】
＜発明の実施の形態１＞
以下、本発明を適用した具体的な実施の形態１について、図面を参照しながら詳細に説明する。
図１に本実施の形態１にかかるスキャンテスト回路の構成の一例を示す。なお、図に示された符号のうち、図８と同じ符号を付した構成は、図８と同じか又は類似の構成を示している。
【００１９】
本実施の形態においては、所望の機能を実現するため組み合わせ回路２１から２４、フリップフロップ等の順序回路、クロック端子１４、入力端子１１および出力端子４１とを有する半導体集積回路１に対して、本スキャンテスト回路を構成した場合を示す。ここでは、半導体集積回路１のすべての組み合わせ回路２１から２４、フリップフロップ等の順序回路をあわせた回路を回路ユニット１１１と定義する。
【００２０】
クロック端子１４は、半導体集積回路１を動作させるクロック信号を外部から入力する端子であり、本スキャンテスト回路を用いたテスト時のテスト用クロックも入力する。なお、本スキャンテスト回路においてテスト時のテストクロックは、半導体集積回路１の外部から半導体テスタなどによって与えられる。よって、本スキャンテスト回路の設定に応じて、印加されるクロックのタイミングやパルス幅等のモジュレーションは、半導体テスタ等によってなされるものとする。テストのためのテストパターンも後述のように半導体テスタなどによって与えられ、期待値照合なども半導体テスタなどでなされる。また、入力端子１１および出力端子４１はそれぞれ半導体集積回路１の外部端子である。
【００２１】
半導体集積回路１は、本実施の形態のスキャンテスト回路用に、その外部端子として、スキャンイネーブル信号入力端子１３、スキャンイン端子１２、スキャンアウト端子４２を有する。
【００２２】
順序回路は、スキャンテストのため図９に示すスキャンフリップフロップに置き換えられ、スキャン記憶素子３１から３６として組み込まれる。スキャン記憶素子３１から３６のデータ端子（Ｄ）には組み合わせ回路からの演算結果を入力するように接続される。
【００２３】
一方、スキャン記憶素子３１から３６は、図８と同様スキャンパスを構成する。このため、スキャン記憶素子３１から３６のスキャンイン端子（ＳＩＮ）には前段のスキャン記憶素子の出力端子（Ｑ）が接続される。ただし、スキャンパス初段のスキャン記憶素子３１のスキャンイン端子（ＳＩＮ）には半導体集積回路１の外部端子であるスキャンイン端子１２、スキャンパス最終段のスキャン記憶素子３６の出力端子（Ｑ）には半導体集積回路１の外部端子であるスキャンアウト端子４２にそれぞれ接続される。なお本実施形態のスキャンテスト回路においても図８と同様にスキャン長は６ビットである。
【００２４】
図１に示す本実施の形態１に係るスキャンテスト回路は、図８に示す従来のスキャンテスト回路に対し、新たにセット付きフリップフロップである制御用フリップフロップ１０１を有する。なお、本明細書において、セット付きフリップフロップとは、後述するように、このフリップフロップに与えるクロックとは無関係（非同期）に、その出力をセットするフリップフロップである。また、セットするとは、その出力値（特に正出力）を論理値"１"とすることを言う。
【００２５】
本実施の形態で用いられるセット付きフリップフロップである制御用フリップフロップ１０１は、図１に示すように、セット端子（Ｓ）、データ入力端子（Ｄ）、クロック入力端子（ＣＬＫ）、データ出力端子（Ｑ）を有する。制御用フリップフロップ１０１のセット端子（Ｓ）、クロック端子（ＣＬＫ）、データ入力端子（Ｄ）は、スキャンイネーブル信号入力端子１３、クロック端子１４、外部入力端子１５がそれぞれ接続される。また、制御用フリップフロップ１０１のデータ出力端子（Ｑ）は、スキャン記憶素子３１から３６のスキャンイネーブル信号入力端子５３（図９参照）に接続され、データ出力端子（Ｑ）からの出力信号（ｃｎｔｌ＿ｓｃａｎ＿ｅｎ）がスキャン記憶素子３１から３６に分配される。また、外部入力端子１５の入力は"０"固定である。
【００２６】
スキャン記憶素子３１から３６は、制御用フリップフロップ１０１が出力したスキャンイネーブル信号（ｃｎｔｌ＿ｓｃａｎ＿ｅｎ）により、組み合わせ回路２１から２４からの入力、スキャンパスからの入力のいずれか一方を選択する。本実施の形態においては、ｃｎｔｌ＿ｓｃａｎ＿ｅｎが"０"のとき組み合わせ回路２１から２４からの入力を、ｃｎｔｌ＿ｓｃａｎ＿ｅｎが"１"のときスキャンパスからの入力を選択する。その他の構成は、図８と同様であり説明は省略する。
【００２７】
ここで、制御用フリップフロップ１０１に用いるセット付フリップフロップの動作を図２に示すタイミングチャートを用いて説明する。また、図３に制御用フリップフロップ１０１に用いるセット付フリップフロップの動作に基づく真理値表を示す。
【００２８】
図２において、タイミング２０１では、セット端子（Ｓ）の入力データが"０"、データ入力端子（Ｄ）の入力データが"１"であるため、クロック端子（ＣＬＫ）の入力クロックの立ち上がりに同期してデータ入力端子（Ｄ）の入力データ"０"をデータ出力端子（Ｑ）に出力する。タイミング２０２では、セット端子（Ｓ）の入力データが"０"、データ入力端子（Ｄ）の入力データが"１"であるため、クロック端子（ＣＬＫ）のクロック立ち上がりに同期してデータ入力端子（Ｄ）の入力データ"１"をデータ出力端子（Ｑ）に出力する。タイミング２０３では、セット端子（Ｓ）の入力データが"０"、データ入力端子（Ｄ）の入力データが"０"であるため、クロック端子（ＣＬＫ）のクロック立ち上がりに同期してデータ入力端子（Ｄ）の入力データ"０"をデータ出力端子（Ｑ）に出力する。タイミング２０４では、セット端子（Ｓ）の入力データが"１"となり、クロック端子（ＣＬＫ）のクロック立ち上がりに非同期でデータ"１"をデータ出力端子（Ｑ）に出力する。タイミング２０５では、セット端子（Ｓ）の入力データが"１"であり、データ"１"をデータ出力端子（Ｑ）に出力する。タイミング２０６では、セット端子（Ｓ）の入力データが"０"となるが、クロック端子（ＣＬＫ）のクロックが立ち上がりでないためデータ"１"の出力を保持し、データ出力端子（Ｑ）に出力する。タイミング２０７では、セット端子（Ｓ）の入力データが"０"であり、データ入力端子（Ｄ）の入力データが"０"であるため、クロック端子（ＣＬＫ）のクロック立ち上がりに同期してデータ入力端子（Ｄ）の入力データ"０"をデータ出力端子（Ｑ）に出力する。ただし、タイミング２０１以前は不定である。
【００２９】
上述ならびに図３の真理値表にも示すように、セット端子（Ｓ）の入力データが"１"の場合は、データ入力端子（Ｄ）の入力データが何であっても"１"を出力する。ただし、セット端子（Ｓ）の入力データが"１"から"０"に変化しても、クロックの立ち上がりが入力されるまで出力は"１"を保持する。
【００３０】
本実施の形態において、制御用フリップフロップ１０１であるセット付フリップフロップのデータ入力端子（Ｄ）の入力を"０"固定、すなわち０クランプとしている。従って、制御用フリップフロップ１０１は予めデータ入力端子（Ｄ）の入力を"０"固定としているため、図２の範囲Ｘの動作は起こさず、もっぱら範囲Ｙの動作しか起こさない。
【００３１】
つまり、制御用フリップフロップ１０１は、半導体集積回路１の外部から与えられるスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）（すなわちスキャン制御信号）が、"１"（第１の状態値）から"０"（第２の状態値）に変わるときは、同じく外部から与えられるクロック信号（ｃｌｋ）の立ち上がりに同期して、スキャン記憶素子３１から３６へ分配されるｃｎｔｌ＿ｓｃａｎ＿ｅｎを"１"から"０"に切り替え、逆にスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）が"０"から"１"に変わるときは、クロック信号（ｃｌｋ）に関係なく（ｃｌｋに対し非同期で）、スキャン記憶素子３１から３６へ分配されるｃｎｔｌ＿ｓｃａｎ＿ｅｎを"０"から"１"に切り替えるように動作する。
【００３２】
次に図４および図５により、本実施の形態におけるスキャンテスト回路の動作を説明する。なお図５は図４のタイミング４０２から４０５の部分のｃｌｋ、ｓｃａｎ_ｅｎおよびｃｎｔｌ_ｓｃａｎ_ｅｎ信号について拡大したものである。ここで図中Ｊ１１からＪ１６、Ｊ２１からＪ２６は、スキャンイン端子１２から入力されるスキャンデータである。また、Ｊ１７は、後述の遅延テスト時のスキャンイン端子１２の設定値である。図中Ｈ１１からＨ１６は、スキャン動作によってスキャンテストのための初期値設定される前にスキャン記憶素子に格納されたデータである。図中Ｋ１１からＫ１６は、キャプチャ動作モード時にスキャン記憶素子３１から３６に入力される、それぞれの組み合わせ回路からのロジック動作データ（演算結果）である。図中ＡからＦは、図１のノードＡからノードＦ（スキャン記憶素子３１から３６からの出力）にあらわれるデータを示している。また、その他の符号は図１の符号と一致する端子から出力されるデータである。
【００３３】
図４では、タイミング４０９から新たにスキャンテストが行われるものとして記載している。タイミング４０９の時点で、スキャン記憶素子３１から３６それぞれに格納されている値はＨ１６、Ｈ１５、Ｈ１４、Ｈ１３、Ｈ１２、Ｈ１１であったものとする。従ってタイミング４０９では、ノードＡからＦはそれぞれＨ１６、Ｈ１５、Ｈ１４、Ｈ１３、Ｈ１２、Ｈ１１の状態値である。
【００３４】
まず、タイミング４０９において、スキャンイネーブル信号入力端子１３より入力されるスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）を"１"とする。スキャンイネーブル信号（ｓｃａｎ＿ｅｎ）は、制御用フリップフロップ１０１のセット端子（Ｓ）に入力されているため、スキャンイネーブル信号（ｓｃａｎ＿ｅｎ）を"１"とすることによって、制御用フリップフロップ１０１の出力であるｃｎｔｌ＿ｓｃａｎ＿ｅｎは"１"となる。ｃｎｔｌ＿ｓｃａｎ＿ｅｎはスキャン記憶素子３１から３６のスキャンイネーブル端子５３に分配されているため、スキャン記憶素子３１から３６は、スキャンパスの入力を選択し、本スキャンテスト回路はシフト動作モードに切り替えられる。この切り替えはクロック（ｃｌｋ）とは無関係に、換言すれば、クロック（ｃｌｋ）とは非同期に行われる。
【００３５】
タイミング４０９よりスキャンイン端子１２には、スキャン記憶素子３１から３６にスキャンテストの初期値となるスキャンデータＪ１１からＪ１６を順次入力する。最初にスキャンデータＪ１１をスキャンイン端子に入力した後、タイミング４００でのクロック端子１４からのクロック印加によって、スキャンデータＪ１１をスキャン記憶素子３１に入力するとともに、スキャン記憶素子３２から３６へはそれぞれスキャン記憶素子３１から３５が保持していたデータＨ１６からＨ１２が、シフト動作して格納される。以下タイミング４０１のクロック印加まで同様に、スキャンイン端子１２からのスキャンデータ入力とクロック端子１４からのクロック印加を交互に繰り返す。タイミング４０１のクロック印加が終了した時点で、スキャン記憶素子３１から３６には、それぞれＪ１５からＪ１１、Ｈ１６が格納される。タイミング４０１のクロック印加の終了した時点は、ちょうどスキャン記憶素子３１から３６への初期値の設定が、あと１ビット分のデータ設定を残した時点である。そして、スキャンデータＪ１６をスキャンイン端子１２に入力し、さらにタイミング４０２において、スキャンイネーブル入力信号端子１３の入力を"０"にする。
【００３６】
なお、タイミング４０２でスキャンイネーブル入力信号端子１３の入力は"０"となるが、この時点では制御用フリップフロップ１０１のセット信号が解除されただけであり、制御用フリップフロップ１０１の保持値は依然"１"のままである。ｃｎｔｌ＿ｓｃａｎ＿ｅｎが"１"のままであるため、本スキャンテスト回路はシフト動作モードのままである。これは、図２の制御用フリップフロップ１０１のタイミングチャートのタイミング２０６に相当する。
【００３７】
次に、クロック端子１４に所望の動作スピードにあったクロックパルスを２つ、それぞれタイミング４０３、タイミング４０４で印加する。ここで、所望の動作スピードにあったクロックパルスとは、少なくともタイミング４０３とタイミング４０４との時間差が、所望とする半導体集積回路１のクロック動作周波数の１サイクル分の長さと同じであればよい。また、タイミング４０３で印加された１つめのクロックパルスがラウンチクロック、タイミング４０４で印加された２つめのクロックパルスがキャプチャクロックとして印加する。
【００３８】
ラウンチクロックによって、スキャンイン端子１２に入力されたスキャンデータＪ１６がスキャン記憶素子３１に格納されるとともに、スキャン記憶素子３２から３６にはそれぞれスキャンデータＪ１５からＪ１１が格納される。従って、この時点でスキャン記憶素子３１から３６の、スキャンテストのための初期値の設定が完了するとともに、スキャン記憶素子３１から３６は、その格納値を後段の組み合わせ回路に出力（ラウンチ）する。なお、出力端子４２はスキャン記憶素子３６の出力データＪ１１を出力する。また、制御用フリップフロップ１０１のデータ入力端子（Ｄ）は入力を"０"としているため、ラウンチクロックの立ち上がりに同期して、制御用フリップフロップ１０１のデータ出力端子（Ｑ）から出力されるｃｎｔｌ_ｓｃａｎ_ｅｎは"０"となる。これは、図２のタイミングチャートのタイミング２０７に相当する。
【００３９】
従って、スキャンテスト回路によるスキャン記憶素子３１から３６への初期値の設定が完了するとともに、スキャン記憶素子３１から３６の入力はスキャンパス側に切り替わって本スキャンテスト回路のキャプチャ動作モードへの切り替えが完了する。なお、ここで、ｃｎｔｌ_ｓｃａｎ_ｅｎのクロック信号（ｃｌｋ）に同期した"１"から"０"への切り替えは、タイミング４０３のラウンチクロックの立ち上がり以降、タイミング４０４のキャプチャクロックの立ち上がり前までに行う。より正確には、タイミング４０４のキャプチャクロックの立ち上がりのタイミングよりスキャン記憶素子のセットアップ時間分前までに行う。
【００４０】
ここで実際には、制御用フリップフロップ１０１が出力し、スキャン記憶素子３１から３６に入力されるｃｎｔｌ_ｓｃａｎ_ｅｎ信号の立下りのタイミング（タイミング４０７）は、図５に示すＴｑｄの遅延時間をもって各スキャン記憶素子に入力される。よって、ラウンチクロックの立ち上がりが各スキャン記憶素子に入力されるタイミング（タイミング４０３）には、スキャン記憶素子３１から３６に入力されるｃｎｔｌ_ｓｃａｎ_ｅｎは"１"のままである。このため、スキャン記憶素子３１から３６は、シフト動作モードの動作を行い、スキャンデータを格納する。
【００４１】
タイミング４０４においてクロック端子１４からキャプチャクロックが入力されるが、制御用フリップフロップ１０１のＤ端子からの入力データが"０"固定のため制御用フリップフロップ１０１のデータ出力端子（Ｑ）から出力されるｃｎｔｌ_ｓｃａｎ_ｅｎは"０"のままである。これは、図２の制御用フリップフロップ１０１のタイミングチャートのタイミング２０１に相当する。
【００４２】
すなわちスキャンテスト回路はキャプチャ動作モード（通常動作モード）であり、スキャン記憶素子３１から３６は、キャプチャ動作を行う。具体的には、クロック端子１４が入力したクロック（キャプチャクロック）の立ち上がりに同期して、スキャン記憶素子３１、３２は組み合わせ回路２１からの出力Ｋ１６、Ｋ１５をそれぞれ格納する。また同様に、スキャン記憶素子３３、３４は組み合わせ回路２２からの出力Ｋ１４、Ｋ１３を、スキャン記憶素子３５、３６は組み合わせ回路２３からの出力Ｋ１２、Ｋ１１をそれぞれ格納する。
【００４３】
ここで、ラウンチクロックとキャプチャクロック各々の立ち上がりエッジ間の時間差は、上述のように、半導体集積回路１が所望とする動作スピード（換言すれば、半導体集積回路１の動作クロックの１サイクルの時間）と等しい。つまり、ラウンチクロックでスキャン記憶素子３１から３６に初期値が設定され、その初期値をもとに各組み合わせ回路２１から２４が演算した結果を、半導体集積回路１の動作クロックの１サイクルの時間後に印加されるキャプチャクロックによりスキャン記憶素子３１から３６に格納する動作をおこなうことになる。従って、タイミング４０３で印加されるラウンチクロックからタイミング４０４で印加されるキャプチャクロックまでが、半導体集積回路１の所望の動作スピードで動作させることと等価であり、この部分が、遅延テストのコアである。
【００４４】
こうして得られた遅延テストの結果は、次のように半導体集積回路１の外部に取り出され期待値と照合される。まず、タイミング４０５にてスキャンイネーブル信号入力端子１３より入力されるスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）を再び"１"に戻す。スキャンイネーブル信号（ｓｃａｎ＿ｅｎ）を再び"１"に戻すことにより、制御用フリップフロップ１０１のセット端子（Ｓ）が"１"となるため、上述のようにクロック（ｃｌｋ）とは無関係（非同期）にｃｎｔｌ_ｓｃａｎ_ｅｎは"１"となる。
【００４５】
したがって、これ以降は、本実施例のスキャンテスト回路は再びシフト動作モードになり、クロックに同期してテスト対象の組み合わせ回路からの出力Ｋ１１からＫ１６を順次スキャンアウト端子４２にスキャンアウトする。従って、キャプチャクロックによってスキャン記憶素子３１から３６に格納された各組み合わせ回路２１から２４の演算結果を、予め求められた期待値と照合することによって、遅延テストが行える。つまり、これら遅延テストされた組み合わせ回路の演算結果Ｋ１１からＫ１６からテスト対象の組み合わせ回路の遅延故障があるかどうかの判断が可能となる。
【００４６】
また、本スキャンテスト回路による遅延テストは、上述のように、ラウンチクロックの印加によって、スキャン記憶素子３１から３６にスキャンテストのための初期値設定を完了したのち、次のキャプチャクロックによって遅延テストを行うものである。このため、従来のスキャンテスト回路による機能テストと同様、本スキャンテスト回路による遅延テストは、初期値設定から演算結果を得るまでスキャン遅延素子３１から３６の状態遷移は１回である。したがって、本実施の形態にかかるスキャンテスト回路で使用される遅延テストのための故障検出用パターン（遅延テストパターン）が、従来のスキャンテスト回路による機能テストのための故障検出用パターン（縮退故障検出用パターンあるいは機能テストパターン）と同様のパターン作成アルゴリズムを利用して作成することが可能である。
【００４７】
場合によっては、従来のスキャンテスト回路による機能テストのための縮退故障検出用パターンを用い、半導体テスタ等で単に、クロック信号やスキャンイネーブル信号のタイミングモジュレーション変更のみで遅延テストを行うことが可能となる。遅延テストパターンと機能テストパターンとをほぼ同様のものとすることができる。初期値設定から演算結果を得るまでスキャン遅延素子３１から３６の状態遷移は１回であるがゆえに、効率的な故障検出パターンを作成でき故障検出率向上にも寄与する。また、本発明では、図１１に示した従来のタイミングチャートのタイミング１１０１と１１０３のクロック印加を１つのラウンチクロックで行っているので、その分パターンが不要となる。
【００４８】
また、スキャンイネーブル信号により入力クロックに非同期に出力が制御される制御用フリップフロップ（一般的なセット付きフリップフロップ）を用いることで、特許文献１のような「第１のクロック周波数と第２のクロック周波数とを独立に制御する回路」が必要なく、スキャンテスト回路の構成をシンプルにできる。
【００４９】
つまり、本発明によれば、スキャンテスト回路に用いる遅延故障検出用のテストパターンの作成アルゴリズムとして、従来のスキャンテストの機能テストパターン生成アルゴリズムが使用できるのでテストパターンの作成効率が上がり、検出率の向上および遅延故障検出用テストパターン長の削減が簡単な回路構成で可能になる。
【００５０】
なお、本実施の形態において、制御用フリップフロップのデータ入力端子（Ｄ）に半導体集積回路１の外部端子１５から"０"を設定する構成として示したが、半導体集積回路１内部で"０"クランプにしてもよい。
【００５１】
また、上述の実施の形態において、制御用フリップフロップを論理反転してリセット付きフリップフロップを使用して実現してもよい。なお、ここで言うリセット付きフリップフロップとは、クロックとは無関係（非同期に）、その出力をリセットするフリップフロップであって、リセットするとは、その出力値（特に正出力）を論理値"０"とするもことを言う。すなわち、上述の実施の形態では、シフト動作モードをスキャンイネーブル信号が"１"の場合としているが、これは単なる取り決め事項に過ぎず変更可能であるからである。すなわち、スキャン記憶素子３１から３６あるいはスキャンパスチェーンをシフト動作モード（第１のモード）と通常モード（第２のモード）との切り替えが、シフト動作モードから通常モードに変更する場合は、クロック（ｃｌｋ）と無関係（非同期）に行われ、通常モードからシフト動作モードに変更する場合は、クロック（ｃｌｋ）に同期して行われるようにスキャンテスト回路が構成されていればよい。
【００５２】
なお、上記の例では、スキャンイネーブル信号（ｓｃａｎ＿ｅｎ）の切り替えタイミング４０２、４０５を、クロック（ｃｌｋ）の印加タイミング４０１、４０３および４０４、４０６から十分離れた時点において設定した例を示している。切り替えタイミング４０２を、クロック（ｃｌｋ）の印加タイミング４０１から十分離れた時点に設定しているのは、タイミング４０１のクロックに同期して半導体集積回路内の全てのスキャン記憶素子がシフトインデータを記憶することを確実にし、また、タイミング４０２におけるスキャンイネーブル信号の立下りを制御用フリップフロップに対して確実に入力するためである。つまり、半導体集積回路内の全てのスキャン記憶素子に入力されるスキャンイネーブル信号とクロックのタイミング調整の必要をなくすために、スキャンイネーブル信号とクロックとを時間間隔をマージンとしてとったものである。従って、遅延的にこれらの問題が無いのであれば、このようなマージンをとる必要はない。
【００５３】
＜発明の実施の形態２＞
以下、本発明を適用した具体的な実施の形態２について、図面を参照しながら詳細に説明する。
図６に本実施の形態２にかかるスキャンテスト回路の構成の一例を示す。なお、図に示された符号のうち、図１と同じ符号を付した構成は、図１と同じか又は類似の構成を示している。
【００５４】
図６に示すように、本実施の形態のスキャンテスト回路は、複数の回路ユニット（本例ではユニット１１２から１１５）と複数の制御用フリップフロップ（本例では制御用フリップフロップ１０２から１０５）から構成される。回路ユニット１１２から１１５は、実施の形態１の回路ユニット１１１と同様な回路構成である。ただし、各回路ユニットが有する組み合わせ回路は同一ではなく任意の構成である。また、制御用フリップフロップ１０２から１０５も実施の形態１の制御用フリップフロップ１０１と同様な回路構成である。よって、各構成の説明は省略する。
【００５５】
ここで、各回路ユニットへのスキャンデータの入出力、クロックの入力については様々な形態をとってもかまわない。各回路ユニットそれぞれに対し、独立に、スキャンイン端子１２、スキャンアウト端子４２、クロック端子１４を半導体集積回路１の外部端子として設けて、回路ユニットへスキャンインデータ、クロック信号を供給したり、スキャンアウトデータを出力する構成としてもよいし、いくつかの信号を１つの端子から各回路ユニットに分配、あるいは選択出力する構成としてもよい。さらにまた、スキャンイン端子１２、スキャンアウト端子４２、クロック端子１４は半導体集積回路１に１つのみ設け、すべての回路ユニットのスキャン記憶素子を１つスキャンパスとして構成し、すべてのスキャン記憶素子に対してクロックを供給する構成としてもよい。スキャンインデータ入力端子への入力データおよびスキャンアウトデータ出力端子からの出力データは、図１の構成と同様に外部、もしくは他の回路ユニットから入出力される。またここで、キャプチャ動作時にデータが他の回路ユニットからスキャン記憶素子に入力される場合、図１の組み合わせ回路２１、２４が、他の回路ユニットに相当する。
【００５６】
ここで、図６に本実施の形態のスキャンテスト回路の接続構成を示す。まず、半導体集積回路１の外部端子であるスキャンイネーブル入力信号端子１３から入力されたスキャンイネーブル信号（ｓｃａｎ_ｅｎ）は、制御用フリップフロップ１０２から１０５のセット端子（Ｓ）に入力される。同じく外部入力端子であるクロック端子１４から入力されたクロック信号（ｃｌｋ）は、制御用フリップフロップのクロック端子（ＣＬＫ）および回路ユニット１１２から１１５内のスキャン記憶素子（不図示）に入力される。外部入力端子１５から入力された"０"は、制御用フリップフロップのデータ入力端子（Ｄ）に入力される。制御用フリップフロップ１０２のデータ入力端子（Ｑ）から出力されたｃｎｔｌ_ｓｃｓｎ_ｅｎ１０２からｃｎｔｌ_ｓｃｓｎ_ｅｎ１０５は、回路ユニット１１２から１１５内のスキャン記憶素子（不図示）へ入力される。よって、各回路ユニットの動作は、それぞれの回路ユニットへ入力されるｃｎｔｌ_ｓｃｓｎ_ｅｎ信号により制御され実施の形態１と同様の動作を行い、それぞれの回路ユニットの遅延故障テストが行える。
【００５７】
このように、半導体集積回路内の組み合わせ回路と順序回路とを複数の回路ユニットに分け、それぞれの回路ユニットの順序回路であるスキャン記憶素子を制御する制御用フリップフロップを並列に接続することで、各制御用フリップフロップと回路ユニット内のスキャン記憶素子間のタイミングを補償することが容易にできる。
【００５８】
つまり実施の形態１に記したように、ｃｎｔｌ_ｓｃａｎ_ｅｎのクロック信号（ｃｌｋ）に同期した"１"から"０"への切り替えを、タイミング４０３のラウンチクロックの立ち上がり以降、タイミング４０４のキャプチャクロックの立ち上がり前までに実現するためには、制御用フリップフロップとスキャン記憶素子とが半導体集積回路１内においてそれぞれ近傍に配置されていれば簡単となる。近傍に配置されることによってｃｎｔｌ_ｓｃａｎ_ｅｎのスキャン記憶素子への分配遅延を小さくできるからである。つまり、制御用フリップフロップが回路ユニットの近傍に設置されるほど効果的である。ただし、必ずしも前述したような回路ユニットの近傍に設置しなくとも上述の条件が満足できていれば、制御用フリップフロップの設置場所や数は、半導体集積回路１に存在するスキャン記憶素子数や回路レイアウト状況に応じて決定してよい。
【００５９】
なお、実施の形態２において、半導体集積回路１が回路ユニット１１１を複数備えた例として示したが、回路ユニット１１１は、半導体集積回路１の機能単位として分割されたものであってもよいし、あるいは、半導体集積回路１の機能単位とは別に、単に１つの制御用フリップフロップ１０１がｃｎｔｌ＿ｓｃａｎ＿ｅｎを分配するスキャン記憶素子の単位としてとらえてもよい。
【００６０】
以上のことから、本実施の形態２のスキャンテスト回路を用いることで、ＬＳＩの様な大規模な半導体集積回路の回路構成においても本実施の形態１で示した効果をともなった遅延故障テストを行うができる。
【００６１】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能であり、例えば、図７に示すように、制御用フリップフロップ１０６が１つで複数の回路ユニット（本例では、回路ユニット１１６、１１７）を制御しても良い。
【００６２】
また、特に図示はしないが、図１の実施例において、制御用フリップフロップ１０１の出力の先に新たにセレクタ(選択回路）を備え、ｃｎｔｌ＿ｓｃａｎ＿ｅｎとスキャンイネーブル信号入力端子１３より入力されるスキャンイネーブル信号（ｓｃａｎ＿ｅｎ）を制御信号（第２のスキャン制御信号）によって任意に切り替える構成としてもよい。このように、この制御信号によりｓｃａｎ＿ｅｎを選択する構成とすれば、従来のスキャンテスト回路と同じ構成となり、従来のテスト（機能テストや従来の遅延テスト）にも対応が可能となる。
【００６３】
上述のように、本発明のスキャンテスト回路は、１つ半導体集積回路に１つ備えられるものの他、複数の本発明のスキャンテスト回路を１つの半導体集積回路に備える構成としてよい。例えば、半導体集積回路が複数のクロックそれぞれに同期動作する内部回路（回路ユニット）をもつ場合に、それぞれの内部回路に対応した本発明のスキャンテスト回路を複数備えることも可能である。
【図面の簡単な説明】
【００６４】
【図１】実施形態１にかかるスキャンテスト回路構成の一例
【図２】実施形態１にかかるスキャンテスト回路の制御用フリップフロップのタイミングチャートの一例
【図３】実施形態１にかかるスキャンテスト回路の制御用フリップフロップの真理値表の一例
【図４】実施形態１にかかるスキャンテスト回路のタイミングチャートの一例
【図５】図４のタイミングチャートの一部拡大図
【図６】実施形態２にかかるスキャンテスト回路構成の一例
【図７】その他の実施形態にかかるスキャンテスト回路構成の一例
【図８】従来技術にかかるスキャンテスト回路構成の一例
【図９】従来技術にかかるスキャンテスト回路構成のスキャン記憶素子回路構成の一例
【図１０】従来技術１にかかるスキャンテスト回路のタイミングチャートの一例
【図１１】従来技術２にかかるスキャンテスト回路のタイミングチャートの一例
【符号の説明】
【００６５】
１２  スキャンイン端子
１３  スキャンイネーブル信号入力端子
１４  クロック端子
１５  外部端子
２１、２２、２３、２４  組み合わせ回路
３１、３２、３３、３４、３５、３６  スキャン記憶素子
４１  出力端子
４２  スキャンアウト端子
１０１、１０２、１０３、１０４、１０５、１０６  制御用フリップフロップ
１１１、１１２、１１３、１１４、１１５、１１６、１１７  回路ユニット
【図１】
2008275479.tif 000003
【図２】
2008275479.tif 000004
【図３】
2008275479.tif 000005
【図４】
2008275479.tif 000006
【図５】
2008275479.tif 000007
【図６】
2008275479.tif 000008
【図７】
2008275479.tif 000009
【図８】
2008275479.tif 000010
【図９】
2008275479.tif 000011
【図１０】
2008275479.tif 000012
【図１１】
2008275479.tif 000013