(57)【要約】【課題】半導体装置のスキャンチェーンのフリップフロップ段数に差が生じている場合に、スキャンテスト時にスキャンチェーンのフリップフロップの段数を平均化して動作させることにより、スキャンテスト時間を短縮する。【解決手段】スキャンテスト時に、フリップフロップ段数の多いスキャンチェーン７１、７２を分割し、セレクタ９３、９４を挿入して部分スキャンチェーン２１０、２１９、および２２０、２２９を形成する機能と、部分スキャンチェーン２１０、２２０に対してフリップフロップ段数の少ないスキャンチェーン７３を連結するセレクタ９１、９２、およびゲート回路１１１、１１２を挿入して新たなスキャンチェーンを形成する機能とを備える。【選択図】  図１
2004286549.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置のスキャンテスト時に、フリップフロップ段数の多いスキャンチェーンを分割して部分スキャンチェーンを形成する機能と、前記部分スキャンチェーンに対してフリップフロップ段数の少ないスキャンチェーンを連結して新たなスキャンチェーンを形成する機能とを備えるスキャンテスト装置。
【請求項２】
前記部分スキャンチェーンおよび前記フリップフロップ段数の少ないスキャンチェーンが複数連結されて形成されたスキャンチェーンにおいて、１対多の並列連結がなされた場合に、前記並列連結されたスキャンチェーンあるいは部分スキャンチェーンを切り替えるタイミング制御機能を備える請求項１記載のスキャンテスト装置。
【請求項３】
半導体装置のスキャンチェーンの総フリップフロップ数を総スキャンチェーン数で除した値を基準値に対して、それぞれのスキャンチェーンのフリップフロップ段数を所定の幅において比較し、比較結果に基づいてフリップフロップ段数の多いスキャンチェーンを分割して部分スキャンチェーンを形成する機能と、前記部分スキャンチェーンに対してフリップフロップ段数の少ないスキャンチェーンを連結して新たなスキャンチェーンを形成する機能との採否を判断するスキャンテスト装置の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体装置のスキャンテスト技術に係り、特に、スキャンテスト時間を短縮することができるスキャンテスト装置およびその設計方法に関する。
【０００２】
【従来の技術】
スキャンテスト技術は、半導体装置の回路を構成するすべての論理素子および配線の縮退故障を検出するための技術である。フリップフロップをシフトレジスタ状に構成したスキャンチェーンを構築し、半導体装置外部からスキャンチェーンのシフト動作によりテストパターンを与え、論理素子および配線の縮退故障のスクリーニングを実施するスキャンテストが一般的に行われている。
【０００３】
近年は半導体装置の大規模化に伴いテスト時間の増加が問題となっていた。その背景の中で、特許文献１や非特許文献１に示されているように、半導体装置の回路を構成する複数のブロックについて、それぞれ並列にスキャンチェーンを張ることで、各ブロックのスキャンテストを並列に実施することが有効なテスト手法の１つとなっている。また、各スキャンチェーンを構成するフリップフロップの数は、スキャンテスト時間が最も短くなるように均一にしている。
【０００４】
【特許文献１】
特開平１０−２９３８号公報（図１）
【非特許文献１】
ＬＳＩテストのための内部回路、１−２  スキャンデザイン、［ｏｎｌｉｎｅ］、特許庁ホームページ、標準技術集、［平成１４年１１月２７日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｊｐｏ．ｇｏ．ｊｐ／ｔｅｃｈｎｏ／ｈｙｏｕｊｕｎ＿ｇｉｊｕｔｓｕ／ｌｓｉ＿ｔｅｓｔ／ｌｓｉ−ｔｅｓｔ−１−２．ｈｔｍ＞
【０００５】
【発明が解決しようとする課題】
近年、半導体装置に含まれるメモリの増大や市場での不良減少を目的として、メモリＢＩＳＴやバーンインテスト等のテスト手法が採用されている。バーンインテスト時には、スキャンテスト時と同様にスキャンチェーンを使用してフリップフロップにテストパターンを入力し、またメモリＢＩＳＴを動作させ、半導体装置の内部回路にストレスを与える。
【０００６】
バーンインテスト時のテストパターンを発生させるための機能およびテスト結果を圧縮するための機能やメモリＢＩＳＴには、スキャン動作ではなくそれぞれの制御動作をさせるため、これらで使用される少数のフリップフロップに対してはスキャンテストのために別のスキャンチェーンを張る必要がある。
【０００７】
バーインテスト時にスキャン動作をしないこれらのフリップフロップを含むスキャンチェーンの段数は、他のスキャンチェーンの段数より一般に少なくなる。しかしながら、スキャンテスト時にテストパターンを各フリップフロップに印加するシフト動作に必要な時間は段数の多いスキャンチェーンに依存してしまうため、スキャンテスト時間を短縮できないという問題があった。
【０００８】
従来の半導体装置に内蔵されるスキャンテスト装置における上記問題を図面を用いて説明する。図５はスキャンチェーンを張るためのフリップフロップの構成を示すブロック図であり、図６は従来の並列に張られたスキャンチェーンを有するスキャンテスト装置の構成を示すブロック図である。
【０００９】
図５において、スキャンチェーンを張るためのフリップフロップ２は、セレクタとＤ型フリップフロップで構成されている。テストパターンの印加およびキャプチャ結果を出力するためのシフト動作と、各フリップフロップに印加したテストパターンでノーマル動作を行うキャプチャ動作とを切り替える信号はＮＴ信号６である。
【００１０】
これらのフリップフロップはスキャンクロック５により同期して動作する。セレクタはＮＴ信号６によってセレクトされ、シフト動作時にはスキャンイン３からスキャンアウト４へのパスが有効になり、キャプチャ動作時には組合せ回路１からのパスが有効になるように制御される。
【００１１】
図６に示すスキャンテスト装置においては、上記のようなフリップフロップ２１１〜２１８、２２１〜２２８がそれぞれ８段のスキャンチェーン７１、７２に構成される。さらに、バーンインテスト用のフリップフロップ２３１および２３２もスキャンフリップフロップを用いて２段のスキャンチェーン７３に構成されている。これらのフリップフロップがスキャンクロック５により動作し、ＮＴ信号６によりシフト動作とキャプチャ動作とが切り替えられる。
【００１２】
スキャンテスト時に１つのテストパターンをテストするために要する時間は、テストパターン入力時のシフト時間、テスト時のキャプチャ時間、および結果出力のシフト時間の合計になる。図６のような構成の半導体装置をスキャンテストする場合のテスト時間は、スキャンチェーン７１、７２において、テストパターン入力シフト時間８ステップ、キャプチャ時間１ステップ、結果出力シフト時間８ステップの合計１７ステップを要することになる。
【００１３】
このように、スキャンチェーン７３のようなバーンインテスト用のスキャンチェーンの場合は他のスキャンチェーンと異なりフリップフロップの段数の少ないスキャンチェーンが形成されることがあるが、実際のスキャンテスト時間はスキャンチェーン７１、７２のようなフリップフロップの段数の多いスキャンチェーンのシフト時間により決定されてしまうという問題があった。
【００１４】
本発明は上記従来の問題点を解決するもので、半導体装置においてスキャンテスト以外の目的のためにスキャンチェーンのフリップフロップの段数に差が生じている場合に、スキャンテストのシフト動作時のみスキャンチェーンのフリップフロップの段数を平均化して動作させることを可能にするスキャンテスト装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
請求項１のスキャンテスト装置は、半導体装置のスキャンテスト時に、フリップフロップ段数の多いスキャンチェーンを分割して部分スキャンチェーンを形成する機能と、前記部分スキャンチェーンに対してフリップフロップ段数の少ないスキャンチェーンを連結して新たなスキャンチェーンを形成する機能と、を備えるものである。
【００１６】
上記構成によれば、バーンインテスト用等のスキャンチェーンによりスキャンチェーンのフリップフロップの段数に差が生じている場合に、スキャンテスト時に段数の多いスキャンチェーンを分割し、段数の少ないスキャンチェーンを連結することができるため、スキャンチェーンのフリップフロップの段数を平均化することが可能になり、スキャンテスト時間を短縮することができる。
【００１７】
請求項２のスキャンテスト装置は、請求項１記載のスキャンテスト装置において、前記部分スキャンチェーンおよび前記フリップフロップ段数の少ないスキャンチェーンが複数連結されて形成されたスキャンチェーンで１対多の並列連結がなされた場合に、この並列連結されたスキャンチェーンあるいは部分スキャンチェーンを切り替えるタイミング制御機能を備えるものである。
【００１８】
上記構成によれば、１対多の並列連結を切り替えるタイミング制御ができるため、部分スキャンチェーンおよびフリップフロップ段数の少ないスキャンチェーンを複数連結してスキャンチェーンを形成する際に、１対多の並列連結を採用することができ、スキャンチェーンのフリップフロップ段数の平均化を効率的に行うことができる。
【００１９】
請求項３のスキャンテスト装置の設計方法は、半導体装置のスキャンチェーンの総フリップフロップ数を総スキャンチェーン数で除した値を基準値に対して、それぞれのスキャンチェーンのフリップフロップ段数を所定の幅において比較し、比較結果に基づいてフリップフロップ段数の多いスキャンチェーンを分割して部分スキャンチェーンを形成する機能と、前記部分スキャンチェーンに対してフリップフロップ段数の少ないスキャンチェーンを連結して新たなスキャンチェーンを形成する機能との採否を判断するものである。
【００２０】
上記構成によれば、フリップフロップ段数の多いスキャンチェーンを分割して部分スキャンチェーンを形成する機能、および部分スキャンチェーンに対してフリップフロップ段数の少ないスキャンチェーンを連結して新たなスキャンチェーンを形成する機能の採用を適切に判断することができるため、請求項１あるいは請求項２記載のスキャンテスト装置を最適に設計することができる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図１は本発明の一実施の形態に係る半導体装置に内蔵されるスキャンテスト装置の構成を示すブロック図である。図１において、図５および図６と同様の構成要素には同一符号を付している。
【００２２】
図１に示すスキャンテスト装置においては、フリップフロップ２１１〜２１８、２２１〜２２８がそれぞれ８段のスキャンチェーン７１、７２に構成される。さらに、バーンインテスト用のフリップフロップ２３１および２３２も２段のスキャンチェーン７３に構成されている。これらのフリップフロップがスキャンクロック５により動作し、ＮＴ信号６によりシフト動作とキャプチャ動作とが切り替えられる。
【００２３】
スキャンチェーン７１、７２、７３はスキャン入力端子として、それぞれＳＣＡＮＩＮ１、ＳＣＡＮＩＮ２、ＳＣＡＮＩＮ３を備え、スキャン出力端子として、それぞれＳＣＡＮＯＵＴ１、ＳＣＡＮＯＵＴ２、ＳＣＡＮＯＵＴ３を備える。
【００２４】
さらにスキャンテスト装置は、スキャンテストまたはバーンインテストを選択するモード信号８、スキャンチェーンの入力を選択するセレクタ９１〜９４、１３、スキャンチェーンの連結の切り替えを制御する制御回路１４、ゲート回路１０１、１０２、１１１、１１２、オア回路１２を備えている。
【００２５】
スキャンチェーン７１は、フリップフロップ２１１と２１２からなるフリップフロップ群２１０と、フリップフロップ２１３〜２１８からなるフリップフロップ群２１９に分けられ、スキャンチェーン７２は、フリップフロップ２２１と２２２からなるフリップフロップ群２２０と、フリップフロップ２２３〜２２８からなるフリップフロップ群２２９に分けられる。また、フリップフロップ２３１および２３２をフリップフロップ群２３０とする。
【００２６】
セレクタ９３、９４はモード信号８に応じて、それぞれフリップフロップ群２１９、フリップフロップ群２２９の入力を選択し、セレクタ９１、９２、１３は制御回路１４の出力に応じて、それぞれフリップフロップ群２１０、フリップフロップ群２２０、フリップフロップ群２３０の入力を選択する。
【００２７】
以上のように構成されたスキャンテスト装置は、モード信号８およびスキャンテスト時のＮＴ信号６を受けた制御回路１４の出力により各セレクタおよびゲート回路の動作を制御することで、スキャンテストまたはバーンインテストの動作をするように切り替えられる。
【００２８】
バーンインテスト時には、セレクタ９１はＳＣＡＮＩＮ１からの入力を選択し、セレクタ９３はフリップフロップ群２１０の出力を選択し、セレクタ９２はＳＣＡＮＩＮ２からの入力を選択し、セレクタ９４はフリップフロップ群２２０の出力を選択することにより、スキャンチェーン７１、７２はそれぞれ１本のスキャンチェーンとして動作する。また、フリップフロップ群２３０はスキャン動作をせずバーンインテスト時の制御動作をする。
【００２９】
スキャンテスト時には、各セレクタおよびゲート回路がモード信号８および制御回路１４により、スキャンチェーンが短くなるように制御される。制御回路１４はスキャンクロック５とＮＴ信号６によりカウントするカウンタ１４１と、カウンタ１４１の出力をデコードするデコーダ１４２から構成され、スキャンチェーンの連結の切り替えを制御するタイミングを与える。
【００３０】
図２は制御回路１４が出力する制御信号を示すタイミングチャートである。カウンタ１４１は短縮したスキャンチェーンの段数分の６進カウンタで、ＮＴ信号６を条件にしてスキャンクロック５の立ち上がりを０から５までカウントする。すなわち、キャプチャ動作時はカウントを１回停止する。
【００３１】
スキャン入力時は、スキャンチェーン７１のフリップフロップ群２１９でセレクタ９３はＳＣＡＮＩＮ１からの入力を選択し、スキャンチェーン７２のフリップフロップ群２２９でセレクタ９４はＳＣＡＮＩＮ２からの入力を選択する。また、フリップフロップ群２１０でセレクタ９１はＳＣＡＮＩＮ３からの入力を最初の２クロック期間選択し、フリップフロップ群２２０でセレクタ９２はＳＣＡＮＩＮ３からの入力を次に２クロック期間選択する。
【００３２】
このように、フリップフロップ群２１０、２２０にはＳＣＡＮＩＮ３からテストパターンを入力するが、フリップフロップに１回入力したテストパターンを保持するために、選択したフリップフロップ群のみにクロックが供給されるようにゲート回路１０１、１０２を制御回路１４で制御する。
【００３３】
キャプチャ動作後は、スキャンチェーン７１のフリップフロップ群２１９はＳＣＡＮＯＵＴ１からテスト結果を出力し、スキャンチェーン７２のフリップフロップ群２２９はＳＣＡＮＯＵＴ２からテスト結果を出力する。また、フリップフロップ群２１０とフリップフロップ群２２０からのテスト結果は、セレクタ１３を介してスキャンチェーン７３によりＳＣＡＮＯＵＴ３から出力される。
【００３４】
セレクタ１３の制御信号は制御回路１４で生成される。このとき、セレクタ１３の入力の衝突を避けるために、フリップフロップ群２１０とフリップフロップ群２２０からの出力をそれぞれゲートするようにゲート回路１１１、１１２を制御回路１４で制御する。
【００３５】
以上のように、従来の方法では１テストパターンをテストするために要するテスト時間が１７ステップであったのに対して、本実施形態では、フリップフロップの段数の多いスキャンチェーンを分割し、フリップフロップの段数の少ないスキャンチェーンを連結することで、テストパターン入力シフト時間は６ステップ、キャプチャ時間は１ステップ、結果出力シフト時間は６ステップとなり、合計１３ステップで１テストパターンのテストを行うことができる。また、外部端子を追加することなく上記効果を実現することが可能である。
【００３６】
図３および図４は、スキャンテスト時のスキャンチェーンの連結切り替えを行うために、セレクタの挿入位置を決定するアルゴリズムを示すフローチャートである。ここで、スキャンチェーンのスキャン入力をそのスキャンチェーンの途中のフリップフロップから入力するためのセレクタをセレクタＡ、段数が少ない他のスキャンチェーンのスキャン入力をスキャンチェーンの初段に入力するためのセレクタをセレクタＢとする。
【００３７】
図１に示したスキャンテスト装置の場合であれば、セレクタ９３、９４がセレクタＡに該当し、セレクタ９１、９２がセレクタＢに該当する。スキャンテスト装置において、これらセレクタＡとセレクタＢをスキャンチェーンに挿入する位置を決定するアルゴリズムを図３および図４のフローチャートにより説明する。
【００３８】
まず、すべてのフリップフロップ数（Ｓ３１０）をすべてのスキャンチェーン数（Ｓ３１１）で割る（Ｓ３１２）。その割った値＋１よりフリップフロップ数が多いスキャンチェーンが無い場合（Ｓ３２０）、あるいは、その値−１よりフリップフロップ数が少ないスキャンチェーンが無い場合であれば（Ｓ３３０）、セレクタを挿入する必要は無い（Ｓ３３１）。
【００３９】
上記以外の場合であれば、すべてのフリップフロップ数をスキャンチェーン数で割った値−１よりフリップフロップ数が少ないスキャンチェーンが１本であり（Ｓ３４０）、割った値に余りが無い場合は（Ｓ３５０）、割った値よりフリップフロップ数が多い各スキャンチェーンの最終段から割った値分のフリップフロップを遡り、その直前にセレクタＡを挿入し（Ｓ３５１）、同じスキャンチェーンの初段のフリップフロップの直前にセレクタＢを挿入する（Ｓ３５２）。
【００４０】
割った値に余りがある場合は（Ｓ３５０）、割った値＋１よりフリップフロップ数が多い各スキャンチェーンの最終段から割った値＋１分のフリップフロップを遡り、その直前にセレクタＡを挿入し（Ｓ３５３）、同じスキャンチェーンの初段のフリップフロップの直前にセレクタＢを挿入する（Ｓ３５４）。
【００４１】
すべてのフリップフロップ数をスキャンチェーン数で割った値−１よりフリップフロップ数が少ないスキャンチェーンが複数ある場合は、まず割った値に余りが無い場合は（Ｓ３６０）、割った値よりフリップフロップ数が多い各スキャンチェーンの最終段から割った値分のフリップフロップを遡り、その直前にセレクタＡを挿入する（Ｓ３６１）。
【００４２】
また、割った値に余りがある場合は、割った値＋１よりフリップフロップ数が多い各スキャンチェーンの最終段から割った値＋１分のフリップフロップを遡り、その直前にセレクタＡを挿入する（Ｓ３６２）。
【００４３】
セレクタＡによって切り離されたフリップフロップが無いスキャンチェーンが１本の場合は（Ｓ３７０）、その１本のスキャンチェーンから複数のスキャンチェーンに対してテストパターンを入力できるように、他スキャンチェーンの初段のフリップフロップの直前にセレクタＢを挿入する（Ｓ３７１）。
【００４４】
セレクタＡによって切り離されたフリップフロップの無いスキャンチェーンが複数の場合は（Ｓ３７０）、それらのスキャンチェーンから複数のスキャンチェーンに対してテストパターンを入力できるようになる可能性がある。
【００４５】
それらのスキャンチェーンからテストパターンを入力するためのフリップフロップ数を調べ（Ｓ３７２）、すべてのフリップフロップ数をスキャンチェーン数で割った値、あるいはその値＋１になるように、セレクタＡによって切り離されたフリップフロップを除くすべてのフリップフロップのあるスキャンチェーンの残りの連続するフリップフロップ数を区切り（Ｓ３７３）、その区切った箇所にセレクタＢを挿入する（Ｓ３７４）。
【００４６】
上記アルゴリズムにより、フリップフロップの段数が異なる各スキャンチェーンをシフト時に適宜連結し、各スキャンチェーンのフリップフロップ数が均一になるように動作させることが可能になる。
【００４７】
【発明の効果】
以上説明したように、本発明によれば、バーンインテスト用等のスキャンチェーンによりスキャンチェーンのフリップフロップの段数に差が生じている場合に、スキャンテスト時に段数の多いスキャンチェーンを分割し、段数の少ないスキャンチェーンを連結することにより、スキャンチェーンのフリップフロップの段数を平均化することが可能になり、スキャンテスト時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るスキャンテスト装置の構成を示すブロック図。
【図２】本発明のスキャンテスト装置における制御信号を示すタイミングチャート。
【図３】本発明のスキャンテスト装置におけるセレクタの挿入位置を決定するアルゴリズムを示すフローチャート。
【図４】本発明のスキャンテスト装置におけるセレクタの挿入位置を決定するアルゴリズムを示すフローチャート。
【図５】スキャンチェーンを張るためのフリップフロップの構成を示すブロック図。
【図６】従来のスキャンテスト装置の構成を示すブロック図。
【符号の説明】
１  組合せ回路
２  スキャンチェーンを張るためのフリップフロップ
２１０、２１９、２２０、２２９、２３０  フリップフロップ群
２１１〜２１８、２２１〜２２８、２３１、２３２  フリップフロップ
３  スキャンイン
４  スキャンアウト
５  スキャンクロック
６  ＮＴ信号
７１、７２、７３  スキャンチェーン
８  モード信号
９１〜９４  セレクタ
１０１、１０２、１１１、１１２  ゲート回路
１２  オア回路
１３  セレクタ
１４  制御回路
１４１  カウンタ
１４２  デコーダ
【図１】
2004286549.tif 000003
【図２】
2004286549.tif 000004
【図３】
2004286549.tif 000005
【図４】
2004286549.tif 000006
【図５】
2004286549.tif 000007
【図６】
2004286549.tif 000008