(57)【要約】【課題】簡単な回路構成で、ダイナミックバーイン試験での半導体装置の内部の論理回路の活性化率を確実に上げること。【解決手段】複数のスキャンフリップフロップ13a-13cが直列に接続されたスキャンチェーン4と、論理回路5と、を備える半導体装置1のバーイン試験装置であって、スキャンシフトクロックCLKをカウントして所定数ごとにトリガー信号TGを発生するカウンタ3と、スキャンチェーン4が出力するスキャン出力信号がシリアルデータとして入力され、トリガー信号に応じてシリアルデータに対して所定の演算を行って、シリアルデータを変化させるシリアルデータ変更回路2と、を備え、シリアルデータ変更回路2の出力する変化したシリアルデータFBをスキャンチェーン4のスキャン入力信号として入力する。【選択図】図１
2010190852.tif 000002
【特許請求の範囲】
【請求項１】
複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、前記複数のスキャンフリップフロップの出力信号が入力される論理回路と、を備える半導体装置のバーイン試験方法であって、
前記スキャンチェーンにスキャンシフトクロックを供給してスキャン出力信号をシリアルデータとして出力させ、
前記スキャンシフトクロックをカウントして所定数の前記スキャンシフトクロックごとにトリガー信号を発生し、
前記トリガー信号に応じて、前記シリアルデータに対して所定の演算を行って前記シリアルデータを変化させ、
変化させた前記シリアルデータを前記スキャンチェーンのスキャン入力信号として入力することを特徴とする半導体装置のバーイン試験方法。
【請求項２】
複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、前記複数のスキャンフリップフロップの出力信号が入力される論理回路と、を備える半導体装置のバーイン試験装置であって、
前記スキャンチェーンに供給するスキャンシフトクロックをカウントして所定数の前記スキャンシフトクロックごとにトリガー信号を発生するカウンタと、
前記スキャンチェーンが前記スキャンシフトクロックに応じて出力するスキャン出力信号がシリアルデータとして入力され、前記トリガー信号に応じて前記シリアルデータに対して所定の演算を行って、前記シリアルデータを変化させるシリアルデータ変更回路と、を備え、
前記シリアルデータ変更回路の出力する、変化した前記シリアルデータを前記スキャンチェーンのスキャン入力信号として入力することを特徴とする半導体装置のバーイン試験装置。
【請求項３】
前記シリアルデータ変更回路の行う所定の演算は、１の加算であることを特徴とする請求項２に記載の半導体装置のバーイン試験装置。
【請求項４】
前記カウンタは、前記スキャンシフトクロックを、前記スキャンチェーンの前記複数のスキャンフリップフロップの総個数をカウントするカウント回路を備え、
前記スキャンチェーンの前記複数のスキャンフリップフロップの総個数をカウントするごとに、前記トリガー信号を発生する請求項２に記載の半導体装置のバーイン試験装置。
【請求項５】
複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、
前記複数のスキャンフリップフロップの出力信号が入力される論理回路と、
前記スキャンチェーンに供給するスキャンシフトクロックをカウントして所定数の前記スキャンシフトクロックごとにトリガー信号を発生するカウンタと、
前記スキャンチェーンが前記スキャンシフトクロックに応じて出力するスキャン出力信号がシリアルデータとして入力され、前記トリガー信号に応じて前記シリアルデータに対して所定の演算を行って、前記シリアルデータを変化させるシリアルデータ変更回路と、を備え、
前記シリアルデータ変更回路の出力する、変化した前記シリアルデータを前記スキャンチェーンのスキャン入力信号として入力することを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンチェーンを備える半導体装置をバーイン試験する方法、装置およびスキャンチェーンを備える半導体装置に関する。
【背景技術】
【０００２】
半導体装置の製造工程では、不良品を除くための選別試験が行われる。選別試験では、半導体装置の入力に所定の信号を印加して動作させ、その時の出力信号によって良否を判定する動作試験が行われる。選別試験では、動作試験で良品と判定された半導体装置を高温状態などの厳しい環境条件で動作させ、初期不良の発生を加速させた後、動作試験を行うダイナミックバーイン試験（以下、単にバーインと称する）も行われる。バーインでは、半導体装置内のすべての回路を十分に動作させて、すべての回路に十分なストレスを与えることが重要である。バーインの時間は限られているので、すべての回路に十分なストレスを与えるためには、すべての回路ができるだけ均等に動作する必要がある。例えば、ゲート回路は、出力を頻繁に変化させることにより大きなストレスが与えられる。そのため、バーイン時に出力がほとんど変化しないゲート回路は、不十分なストレスしか与えられず、十分なバーインが行えないことになる。バーインで、どれだけ回路にストレスを与えられるかは、活性化率をつかって表している。活性化率が高いと、すべての回路に十分なストレスが与えられ、活性化率が低いと、一部の回路にばかりストレスが与えられ、少しのストレスしか与えられない回路が存在することになる。
【０００３】
ＣＰＵ内蔵の半導体装置（たとえばワンチップマイコンなど）のバーインは、内蔵されたバーイン専用のＲＯＭに書き込まれたプログラムをＣＰＵが実行する方法で行なっていた。半導体装置の論理回路のうち、変更したレジスタの出力に接続される部分の状態が変化し、さらにそれらの部分が変化することによりさらに状態変化する部分が存在し、これらの部分にストレスを与えられる。しかし、この場合、ＣＰＵからアクセス可能なレジスタだけしか変更できないため、半導体装置の論理回路のすべての状態が変化するとは限らず、状態が変化しない部分が存在し、それらの部分にはストレスを与えられないことになる。また、たとえ論理回路のすべての部分が変化しても、各部分が同じ頻度で変化するとは限らない。そのため、バーイン時に設定可能な状態やデータの組合せは制限され、活性化率を上げることが困難であった。
【０００４】
近年の半導体装置の回路規模が増大しており、バーインで大規模で複雑な回路を効率よく活性化させることが要求されている。そこで、半導体装置内に設けられるフリップフロップ（ＦＦ）を、試験用のシフトデータ信号線でシリアルに接続してスキャンチェーンを形成し、外部端子から内部のＦＦに対して、シリアルに値を設定できるようにするスキャン設計が導入されている。ＦＦの出力には論理回路が接続されており、ＦＦの設定値を変更することにより、論理回路の状態を変化させることができる。半導体装置内には多数のＦＦが設けられており、スキャンチェーンによりＦＦの値を変更することにより、論理回路のほとんどの部分を変化させることができ、バーイン時の活性化率を高くすることができる。
【０００５】
最近では低コストが要求されるワンチップマイコンでも微細なプロセスを使用することにより集積度が向上し、スキャン設計（ＤＦＴ技術）を導入しても回路の増加によるコスト的な影響が少なくなり、また、高品質な要求も重なって、スキャン設計を導入する品種が増加している。
【０００６】
なお、スキャンチェーンは、本来、バーイン時の活性化率の向上ではなく、動作試験を行うことに利用される。このため、スキャン中に、内部の論理回路の出力値をスキャンチェーンを形成するフリップフロップ（以下スキャンＦＦと称する）に取り込むキャプチャー動作を行えるようになっている。そして、正常に動作しているかの判定は、最終段のスキャンＦＦから外部端子に出力される出力値に基づいて行う。
【０００７】
バーイン時のスキャンチェーンを利用した内部状態の設定には各種の方法が行われている。
【０００８】
たとえば、各スキャンチェーンのデータ入力端子から、分周したクロックを入力させることで“１”と“０”の繰り返しパターンを入力し、スキャンシフト動作を行うことで、スキャンチェーンを形成するフリップフロップ（以下スキャンＦＦと称する）が交互に“１”と“０”になる方法が行われている。この方法は、特別な回路追加は不要で、スキャンのための回路構成が簡単である。しかし、“１”と“０”の繰り返しパターンをスキャンチェーンに入力する方法は、スキャンチェーンを構成するスキャンＦＦ自体は活性化されるが、入力パターンが単純なため、半導体装置の大部分を占める論理回路を活性化させるには不十分であり、確実に活性化度を向上できるとは限らず、高いバーインの効果が期待できない。
【０００９】
また、スキャンチェーンを利用する動作試験で使用するキャプチャー動作とシフト動作を繰り返し、論理回路の出力値をスキャンＦＦに取り込むことで、スキャンチェーンを形成するスキャンＦＦにランダムな値を設定する方法も行われている。
【００１０】
キャプチャー動作を利用する方法では、論理回路の出力値によってスキャンＦＦに設定される値は、乱数的な値になることを期待することができる。しかし、スキャンＦＦに設定される値は論理回路の構造に依存することになるため、その場合でも確実に活性化度が向上されるとは限らず、活性化できなかった場合にシミュレーションなどで検証して対処することや検証も困難である。
【００１１】
さらに、バーインでスキャンチェーンに入力するシリアルデータを、自動生成プログラムを使用して発生し、発生したシリアルデータを外部メモリに記憶しておき、バーイン時に外部メモリから読み出したシリアルデータをスキャンチェーンに入力する方法もある。この方法は、スキャンＦＦおよび内部の論理回路を確実に効率よく活性化できることが期待できる。
【００１２】
しかし、この方法は、外部メモリを含めその制御回路が必要になりバーインテスト用の回路の規模やコストが増大するといった問題が生じる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０００−２８４０２１号公報
【特許文献２】特開２００７−１８３１３０号公報
【特許文献３】特開２００５−１４０７７０号公報
【特許文献４】特開２００４−１０８８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
以上のように、これまで行われている方法では、簡単な回路構成で、ダイナミックバーイン試験で半導体装置の内部の論理回路の活性化率を確実に上げることは困難な場合があった。
【課題を解決するための手段】
【００１５】
実施形態のバーイン試験装置は、スキャンチェーンのスキャン出力信号がシリアルデータとして入力され、そのシリアルデータを変化させるシリアルデータ変更回路を備える。シリアルデータ変更回路の出力する変化されたシリアルデータは、スキャンチェーンにスキャン入力信号として入力される。カウンタがスキャンシフトクロックをカウントして所定数のスキャンシフトクロックごとにトリガー信号を発生する。シリアルデータ変更回路は、トリガー信号の発生時のスキャンチェーンの各スキャンフリップフロップの値をビット列とするスキャンデータに対して所定の演算を行って、シリアルデータを変化させる。
【００１６】
スキャンチェーンを形成するスキャンＦＦの値をビット列とするスキャンデータを、例えば、１ずつ増加または減少すれば、すべてのスキャンデータをすべての状態をとるように順に変化させることができる。
【発明の効果】
【００１７】
実施形態のバーイン試験装置によれば、簡単な回路を追加するだけで、スキャンチェーンを形成するスキャンＦＦの値を、順に変化させることが可能である。これにより、半導体装置内部の論理回路への入力値の組合せを、カウンタのデコード条件などの簡単な変更でバーイン時間に合わせて設定することができるため、効率よく活性化率を上げることが可能となる。したがって、半導体装置の多くの初期故障を確実に除去することができるダイナミックバーインが実現できる。
【図面の簡単な説明】
【００１８】
【図１】図１は、第１実施形態のバーイン試験装置および試験対象の半導体装置の構成を示すブロック図である。
【図２】図２は、第１実施形態のカウンタの回路図である。
【図３】図３は、第１実施形態のシリアルデータ変更回路の動作の真理値表および回路図である。
【図４】図４は、第１実施形態のバーイン試験装置の動作を説明するための、スキャンＦＦが３個であるとした場合の回路図および真理値表である。
【図５】図５は、スキャンＦＦが３個であるとした場合の第１実施形態のバーイン試験装置の動作を示すタイムチャートである。
【図６】図６は、第２実施形態の半導体装置の構成を示すブロック図である。
【図７】図７は、第３実施形態のバーイン試験装置および試験対象の半導体装置の構成を示すブロック図である。
【図８】図８は、第４実施形態のバーイン試験装置および試験対象の半導体装置の構成を示すブロック図である。
【図９】図９は、第４実施形態における動作を示す真理値表である。
【図１０】図１０は、カウンタの変形例の回路図である。
【発明を実施するための形態】
【００１９】
図１は、第１実施形態のバーイン試験装置および試験対象の半導体装置の構成を示すブロック図である。
【００２０】
試験対象の半導体装置１は、スキャン設計された半導体装置であり、内部にスキャンチェーン４と、論理回路５と、スキャン試験のため外部端子としてスキャン信号入力端子ＳＩＮと、スキャン信号出力端子ＳＯＮと、スキャン動作を制御するスキャンモード端子ＳＭＮと、スキャンシフトクロック（以下、単にクロックと称する）ＣＬＫを入力するクロック入力端子ＣＬＫＮと、を備えている。スキャンチェーン４は、半導体装置内に設けられ、通常動作時には回路の一部として動作するスキャンフリップフロップ（スキャンＦＦ）を、試験用のシフトデータ信号線でシリアルに接続して形成したチェーンである。スキャンチェーン４の初段のスキャンＦＦには、スキャン信号入力端子ＳＩＮに入力されるスキャン入力信号が入力される。スキャンチェーン４の最終段のスキャンＦＦの出力は、スキャン信号出力端子ＳＯＮから、スキャン出力信号ＳＯとして出力される。スキャンチェーン４は、スキャンシフトクロックＣＬＫに応じて、各スキャンＦＦの保持するデータを１段ずつ後段にシフトする。
【００２１】
スキャンチェーン４の各スキャンＦＦの出力は、論理回路５の各部に入力される。スキャンモード端子ＳＭＮは、スキャンシフト動作を行うか通常動作を行うかを制御するスキャンモード信号が入力される端子であり、半導体装置１はスキャンモード信号が“１（Ｈ）”でスキャンシフト動作する。したがって、スキャンモード端子ＳＭＮは、バーイン時にはスキャンシフト動作を行うように"H”レベルに固定される。
【００２２】
また、前述のように、スキャンチェーン４が、論理回路５の出力値をスキャンＦＦに取り込むキャプチャー動作を行えるようにすることも可能である。
【００２３】
以上のようなスキャン設計された半導体装置は、広く知られているので、これ以上の詳しい説明は省略する。
【００２４】
第１実施形態のバーイン試験装置は、シリアルデータ変更回路２と、カウンタ３と、を備える。なお、バーイン試験装置が、クロックＣＬＫを発生するスキャンシフトクロック発生回路およびリセット信号Ｒｅｓｅｔを発生するリセット信号発生回路を、備えるようにしてもよい。バーイン試験装置は、試験対象の半導体装置１が搭載可能なバーインボードの形で作られる。
【００２５】
カウンタ３は、クロックＣＬＫとリセット信号Ｒｅｓｅｔを受けて、トリガー信号ＴＧを発生（アサート）する。第１実施形態では、カウンタ３は、スキャンチェーン４を形成するスキャンＦＦの個数分のクロックＣＬＫをカウントするとトリガー信号ＴＧを発生する。言い換えれば、スキャンチェーン４が１周分のシフトを完了するごとにトリガー信号ＴＧを発生する。なお、ここでは、スキャンチェーン４を形成するスキャンＦＦの値を一連のシリアルデータとする。このシリアルデータはスキャンチェーン４内をシフトされる。シリアルデータの最下位ビット（ＬＳＢ）が最終段のスキャンＦＦに、最上位ビット（ＭＳＢ）が初段のスキャンＦＦに位置した時を基準とし、この時にカウンタ３がトリガー信号ＴＧを発生する。
【００２６】
図２は、カウンタ３の回路図である。図２に示すように、カウンタ３は、複数（ここでは１０個）のフリップフロップ（ＦＦ）１５ａから１５ｊで形成されるＦＦ列と、デコード回路１６と、フリップフロップ（ＦＦ）１９と、ＯＲゲート２０と、を備える。ＦＦ列は、各段のＦＦのキャリー出力ｃ０〜ｃ８が後段のクロックとして入力し、初段のＦＦ１５ａにはスキャンシフトクロックＣＬＫがクロックとして入力され、ＯＲゲート２０の出力が各段のＦＦのデータとして入力される。このようなＦＦ列は、広く知られているように、０から１０２３までの値をカウントすることが可能な１０ビットのカウンタを構成し、ＯＲゲート２０の出力が“Ｌ”の間カウント動作を行い、ＯＲゲート２０の出力が“Ｈ”になるとゼロにリセットされる。ＯＲゲート２０にはリセット信号ＲｅｓｅｔとＦＦ１９の出力Ｑが入力され、一方が“Ｈ”になるとＦＦ列のカウント値がクロックＣＬＫに同期してゼロにリセットされる。
【００２７】
デコード回路１６は、ＦＦ列のＦＦ１５ａから１５ｊの出力をデコードし、スキャンチェーン４を形成するスキャンＦＦの個数と同じ値をカウントすると “Ｈ”となり、それ以外の時には”Ｌ“となるトリガー信号ＴＧを発生する。トリガー信号ＴＧはＦＦ１９にデータとして入力される。ＦＦ１９の出力Ｑは、トリガー信号ＴＧが“Ｌ”の時には“Ｌ”であるが、トリガー信号ＴＧが“Ｈ”に変化するとＣＬＫに同期して“Ｈ”に変化し、ＯＲゲート２０の出力が“Ｈ”に変化してＦＦ列のＦＦ１５ａから１５ｊをゼロにリセットする。これにより、デコード回路１６の出力するトリガー信号ＴＧはふたたび”Ｌ“に戻り、ＣＬＫに同期してＦＦ１９の出力ＱおよびＯＲゲート２０の出力が”Ｌ“になり、ＦＦ列はカウント動作を開始する。したがって、トリガー信号ＴＧは、カウンタ３をリセットするカウンタリセット信号として機能する。
【００２８】
したがって、カウンタ３は、リセット信号Ｒｅｓｅｔ信号が”Ｈ“になるとゼロにリセットされ、リセット信号Ｒｅｓｅｔ信号が”Ｌ“状態である間、スキャンシフトクロックＣＬＫをスキャンＦＦの個数と同じ値をカウントするとトリガー信号ＴＧを発生する動作を繰り返す。この動作は、スキャンチェーン４を構成するフリップフロップを長大なビット長のレジスタと見なして、ある特定のビットのレジスタがスキャン出力信号に出力するたびにトリガー信号をアサートすることを意味する。
【００２９】
図１に戻り、シリアルデータ変更回路２は、クロックＣＬＫと、リセット信号Ｒｅｓｅｔと、半導体装置１のスキャン出力信号ＳＯと、カウンタ３の出力するトリガー信号ＴＧと、を受け、フィードバック信号ＦＢを出力する。フィードバック信号ＦＢは、半導体装置１のスキャン入力端子ＳＩＮにスキャン入力信号として入力される。
【００３０】
図３の（Ａ）は、第１実施形態のシリアルデータ変更回路２の出力信号であるフィードバック信号ＦＢと、桁上げ情報の内部フラグであるキャリー用フラグに書き込むキャリー信号ＣＹの真理値表である。キャリー用フラグは、リセット信号Ｒｅｓｅｔに応じてゼロにリセットされる。上記のように、ＴＧはトリガー信号を、ＳＯはスキャン出力信号を、ＣＹはキャリーフラグの値を、ＣＹ（ｎ＋１）は次のクロックでセットされるキャリーフラグの値を示している。
【００３１】
前述のように、ここでは、スキャンチェーン４を形成するスキャンＦＦの値を一連のシリアルデータとする。シリアルデータはクロックＣＬＫに応じてシフトされて出力されるので、カウンタ３がトリガー信号ＴＧを発生する時を基準とし、最終段のスキャンＦＦの値を最下位ビット（ＬＳＢ）に、初段のスキャンＦＦの値を最上位ビット（ＭＳＢ）にする。シリアルデータ変更回路２が、図３の（Ａ）の真理値表の処理を、クロックＣＬＫに応じて入力されるシリアルデータに対して、スキャンチェーン４におけるシフトの１周期分行うと、基準時のシリアルデータに対して１を加算する処理が行われる。言い換えれば、シリアルデータ変更回路２は、シリアルデータに対して１を加算するだけのインクリメンタとして動作する。図３の（Ａ）に示すように、シリアルデータ変更回路２では、最下位ビットのデータを示すＴＧが“１”の時は、それまでのＣＹは無視してＳＯの値を＋１するためＦＢの値はＳＯを反転した値となり、ＣＹはＳＯが“１”にセットされるためＳＯと同じ値になる。
【００３２】
また、ＴＧが“０”の時は、最下位ビットでキャリーが発生してＣＹが“１”の場合は、ＳＯの値が“１”の場合のみ継続してキャリーが発生するためＣＹを“１”とし、それ以外はＣＹは“０”となる。ＦＢは、ＳＯとＣＹの加算した値となるため、ＦＢとＳＯのＥＯＲの値が出力されることになる。
【００３３】
図３の（Ｂ）は、シリアルデータ変更回路２の論理回路例であり、図３の（Ａ）の真理値表の処理を行う具体的な回路例である。
【００３４】
図３の（Ｂ）に示すように、選択回路２２、２３はいずれもトリガー信号ＴＧで制御され、ＴＧの値が“０”の場合に端子Ａに接続された信号と同じ値が端子Ｘに出力され、ＴＧの値が“１”の場合に、端子Ｂに接続された信号と同じ値が端子Ｘに出力される。このため、ＣＹ信号を記憶するフリップフロップ（ＦＦ）２１のデータ入力信号は、ＴＧが“０”の場合には、ＦＦ２１の出力信号、すなわち直前のＣＹの値とＳＯの値のＡＮＤ値が入力され、ＴＧが“１”の場合は、ＳＯの値が入力されることになり、図３の（Ａ）に示した真理値表の動作となる。
【００３５】
同様に、シリアルデータ変更回路２の出力信号であるＦＢも、ＴＧが“０”の場合には、ＦＦ２１の出力信号であるＣＹの値と、ＳＯの値のＥＯＲ値が出力され、ＴＧが“１”の場合は、ＳＯの値をインバータ２６によって反転した値が出力されることになり、図３の（Ａ）の真理値表の動作となる。
【００３６】
次に、第１実施形態におけるバーイン方法について説明する。
【００３７】
ダイナミックバーインは、一般的にバーイン装置が作られたバーインボードに試験対象の半導体装置１を搭載し、バーインボードにクロックＣＬＫ、リセット信号Ｒｅｓｅｔおよび電源などを供給する。バーインボードは内部を高温にした状態の恒温槽に収容され、半導体装置１をバーイン試験動作させる。これにより、半導体装置１に高温動作ストレスを与えて潜在する不良を顕在化させ、バーイン後に実施する最終試験にて不良として検出する。
【００３８】
まず、バーインボードにリセット信号Ｒｅｓｅｔを印加して、カウンタ３のカウンタを初期状態にする。本実施例の場合はスキャンチェーンのスキャンＦＦをすべて０にクリアにする。同様に、シリアルデータ変更回路２は、リセット信号Ｒｅｓｅｔに応じて、キャリー信号ＣＹを示すフラグを０に初期化する。以下、バーイン装置にスキャンシフトクロックＣＬＫを供給すると、スキャンチェーン４においてシリアルデータのシフトが行われる。シリアルデータは、スキャンチェーン４において１周期分のシフトが完了するごとに順次変化する。これにより、スキャンチェーン４のスキャンＦＦから出力されるデータも変化し、論理回路５の活性化率が高くなる。
【００３９】
ここで、第１実施形態のバーイン試験装置を使用した場合の動作を、スキャンチェーン４を形成するスキャンＦＦが３個の場合を例にして説明をする。
【００４０】
図４の（Ａ）はスキャンチェーン４が３個のスキャンＦＦ１３ａ，１３ｂ，１３ｃで形成された場合の回路構成を簡略して示したブロック図であり、図４の（Ｂ）は初期状態からのクロック毎の各信号の状態を示す真理値表である。図４の（Ｂ）において、Ｎはクロック数を、ｃｏｕｎｔはカウント値を、１，２，３は３個のスキャンＦＦ１３ａ，１３ｂ，１３ｃの値を示す。したがって、３で示すスキャンＦＦ１３ｃの値はそのままスキャン出力ＳＯの値となる。ＦＢはフィードバック信号を、ＣＹはシリアルデータ変更回路２の内部のキャリーフラグの値を示している。
【００４１】
図５は、図４の（Ａ）のバーイン試験装置の動作を示すタイミングチャートである。信号名は図４と同じであるがスキャンＦＦの値はスキャン出力ＳＯの波形を示し、２進数の３ビットの値が３個のスキャンＦＦ全体の値を示している。さらに、ＴＧはトリガー信号である。
【００４２】
なお、図４の（Ａ）では、スキャンＦＦはリセット信号Ｒｅｓｅｔで初期化されるようには示していないが、各スキャンＦＦの値はすべてリセット信号Ｒｅｓｅｔに応じて“１”に初期化されるものとする。
【００４３】
ここで、カウンタ３のデコード回路１６は、３個のスキャンシフトクロックＣＬＫをカウントするごとに、言い換えればカウント値ｃｏｕｎｔの２をデコードするごとに、カウンタをクリアするカウンタリセット信号とトリガー信号ＴＧを発生する。この場合、カウンタ３は、２個のＦＦ１５ａ，１５ｂを備えればよい。したがって、図４の（Ｂ）においてカウント値ｃｏｕｎｔが２の場合にのみＴＧがアサートされることになる。このため、カウント値ｃｏｕｎｔが２以外の場合は、ＣＹの値が“０”ならばスキャンＦＦの値は単に右シフトされ、ＳＯの値がＦＢとなってそのまま１番目のスキャンＦＦ１３ａに設定され、ＣＹの値“１”ならば、ＳＯの値の反転した値がＦＢとなって１番目のスキャンＦＦ１３ａに設定される。
【００４４】
また、カウント値ｃｏｕｎｔが２から０になるタイミングで２の時のＳＯ（３番目のスキャンＦＦ１３ｃの値）がそのままＣＹに設定され、ＦＢはＳＯが反転された値になり、その値がそのまま、スキャン入力となっているので１番目のスキャンＦＦ１３ａの値となる。
【００４５】
このような動作を繰り返していくと、３個のスキャンＦＦの値は、図４の（Ｂ）に示すように変化していく。ここで信号ＴＧがアサートされるカウント値ｃｏｕｎｔが２の時を基準状態とする。この基準状態の時の各スキャンＦＦの値に注目すると、Ｎ＝２の時の“１１１”は、Ｎ＝５の時に “０００”、Ｎ＝８の時に “００１”となる。このように、スキャンチェーンを構成する３個のスキャンフリップフロップの値は、３ビットのシリアルデータとして１ずつ増加（＋１）されていくことがわかる。
【００４６】
このように、シリアルデータ変更回路２は、トリガー信号ＴＧがアサート時にはスキャン出力信号ＳＯを最下位ビットとして＋１したデータになるようにフィードバック信号ＦＢを生成する。そのため、データが一巡して次にトリガー信号ＴＧがアサートされる時には前回のデータから＋１された値がスキャンチェーンを構成するフリップフロップに設定される。これを繰り返すことにより、最終的にはスキャンチェーンを構成するフリップフロップ全体に対してすべての組合せの値が設定することが可能になり、活性化すべき回路である論理回路５の入力となるフリップフロップの値を偏りなく網羅的に組合せることができる。これにより、論理回路５を確実に活性化させることでき、活性化度を高くすることができる。
【００４７】
図６は、第２実施形態の半導体装置１の構成を示すブロック図である。
【００４８】
第２実施形態の半導体装置１は、半導体装置１内に、第１実施形態のバーイン装置のシリアルデータ変更回路２およびカウンタ３を備える。さらに、第２実施形態の半導体装置１は、セレクタ１２と、リセット信号Ｒｅｓｅｔの入力端子ＲＳＴＮと、を備える。セレクタ１２は、バーインモードを示す信号ＢＩ−ｍｏｄｅに応じて、シリアルデータ変更回路２の出力するフィードバック信号ＦＢと外部端子ＳＩＮから入力される外部スキャン入力ＳＩのいずれかを選択する。具体的には、セレクタ１２は、バーインモードであるときにシリアルデータ変更回路２からのフィードバック信号ＦＢを選択し、バーインモード以外の場合には外部スキャン入力ＳＩからの信号を選択する。セレクタ１２が選択した信号は、スキャンチェーン４にスキャン入力信号として入力される。
【００４９】
図６に示すように、第２実施形態の半導体装置１では、スキャンチェーン４は、ｎ個のスキャンフリップフロップ（ＳＦＦ）１３ａ，１３ｂ，…，１３ｃ，１３ｄで形成されている。シリアルデータ変更回路２およびカウンタ３は、第１実施形態のものと同じ構成を有する。
【００５０】
上記のように、第２実施形態は、シリアルデータ変更回路２、カウンタ３およびセレクタ１２を半導体装置１内に設けたことが第１実施形態と異なる。これにより、半導体装置１がバーインモードであるときに、スキャンチェーン４にはシリアルデータ変更回路２からのフィードバック信号ＦＢがスキャン入力信号として入力され、第１実施形態と同様のバーイン動作が行われる。バーインモード以外の場合は、スキャンチェーン４には外部端子ＳＩＮからの外部スキャン入力ＳＩが入力され、通常のスキャン試験が行える。したがって、第１実施形態に比べてバーイン試験装置を簡略化することができる。
【００５１】
次に第２実施形態でのバーイン方法について説明する。
【００５２】
ここで、図６では省略しているが、バーインを行なうためには半導体装置１にスキャンシフト動作を行わせる必要があるため、図１に示したのと同様に、半導体装置１の端子ＳＭＮはスキャンシフト動作になるように固定する。そして、バーイン試験装置からのクロック信号ＣＬＫとリセット信号Ｒｅｓｅｔは、それぞれクロック端子ＣＬＫＮとリセット端子ＲＳＴＮに入力される。
【００５３】
また、図６では、バーインモード信号ＢＩ−ｍｏｄｅ（登録商標）の設定機構を省略しているが、スキャンモード端子ＳＭＮと同様に外部端子を用意して端子入力の設定だけでバーインモードになるように端子を固定する。このため、バーイン時には、外部端子の設定により、バーインモード信号ＢＩ−ｍｏｄｅ（登録商標）はバーインモード状態で固定される。この状態では、上記のように、セレクタ１２はフィードバック信号ＦＢを選択することになり、第１実施形態と同じ動作を行う。
【００５４】
図７は、第３実施形態のバーイン装置および半導体装置１の構成を示すブロック図である。第３実施形態では、試験対象の半導体装置１は、複数のスキャンチェーン４ａ，４ｂを備える。このように複数のスキャンチェーンが存在する場合は、バーイン装置は、各スキャンチェーンに対応して複数のシリアルデータ変更回路２ａ，２ｂと、複数のカウンタ３ａ，３ｂを備える。もちろん、複数あるすべてのスキャンチェーンのビット数（スキャンＦＦの個数）が同一であればカウンタは１個でよい。
【００５５】
第３実施形態でのバーイン方法は、第１実施形態と同様であるため説明は省略する。
【００５６】
また、第３実施形態の試験対象の半導体装置１のような複数のスキャンチェーンを備える場合に、第２実施形態の構成を適用することも可能である。言い換えれば、複数のスキャンチェーンを備える半導体装置で、各スキャンチェーンに対応した複数のシリアルデータ変更回路および複数のカウンタを、内部に設けるようにすることも可能である。
【００５７】
なお、第３実施形態の試験対象の半導体装置１は、複数のスキャンチェーンを有しているが、１個のスキャンチェーンのスキャン出力を次のスキャンチェーンのスキャン入力に接続して全体をひとつのスキャンチェーンとして扱うことも可能である。この場合には、バーイン装置は、図１の第１実施形態と同様に、１個のシリアルデータ変更回路２とカウンタ３を備えることになる。
【００５８】
第１および第２実施形態では、現実的にはスキャンチェーンを構成するフリップフロップの数が増加すると、バーイン時間内にシリアルデータをすべての値をとるように変化させられないことが考えられる。
【００５９】
例えば、図４の（Ａ）に示したスキャンチェーンが３個のスキャンＦＦで形成される場合、スキャンデータは、３個のスキャンシフトクロックＣＬＫを１周期として変化される。スキャンデータがとりえる値は２３＝８であるから、上記の例で、スキャンデータがすべての状態に変化するには、３×８＝２４個のスキャンシフトクロックＣＬＫをカウントすることが必要である。
【００６０】
しかし、現実的にはスキャンチェーンは多数のスキャンＦＦで形成され、例えばスキャンチェーンが１００個のスキャンＦＦで形成される場合には、２１００×１００個のスキャンシフトクロックＣＬＫをカウントする必要がある。スキャンシフトクロックＣＬＫを１ＭＨｚとすると、スキャンデータすべての状態に変化するには、２１００×１００×１０−６＝１×１０２６秒を必要とする。そのため、２４時間程度のバーインではスキャンデータをすべての状態に変化させることはできない。なお、ＣＬＫが１ＭＨｚの場合、スキャンデータをすべての状態に変化させるのに要する時間は、スキャンチェーンを形成するスキャンＦＦの個数が１０個であれば１０ｍｓ、２０個であれば２０秒である。
【００６１】
そこで、第３実施形態のように、スキャンチェーンの個数を増加して、１個のスキャンチェーン当たりのビット数を減らすことにより、スキャンデータをすべての状態に変化させるのに要する時間を短縮できる。また、外部端子数などの制限のためにスキャンチェーン数を増加させられない場合は、外部端子ＳＩＮおよび外部端子ＳＯＮを共通にして半導体装置内部で分割することでひとつのチェーン当たりのビット数を減らすことができる。
【００６２】
また、第１から第３実施形態では、スキャンチェーンの総ビット数、すなわちシリアルデータのビット長をカウントするとトリガー信号ＴＧを発生するように、カウンタのデコード回路の設定値が決められている。この設定値をスキャンチェーンのビット長をＮ等分した値に設定することで、実際にスキャンチェーンを分割しなくても、カウンタに設定したビット数の間隔でデータを設定して加算することができる。このような例を、次の第４実施形態で説明する。
【００６３】
図８は、第４実施形態のバーイン装置およびスキャンチェーンの構成を簡略して示したブロック図であり、図４の（Ａ）に対応する図である。
【００６４】
図８に示すように、第４実施形態では、半導体装置のスキャンチェーンは、１２個のスキャンＦＦ１３ａ〜１３ｌで形成される。シリアルデータ変更回路２は、第１実施例のものと同じであるが、カウンタ３が異なる。第４実施形態では、カウンタ３は、１２個のスキャンＦＦを３等分にした長さに相当する４ビットごとにトリガー信号ＴＧをアサートする。
【００６５】
図９は、第４実施形態において、初期状態からのスキャンシフトクロックＣＬＫ毎の各信号の状態を示す表であり、図４の（Ｂ）に対応する図である。
【００６６】
図９に示すように、スキャンフＦＦはリセット信号によりすべて“１”に初期化される。シリアルデータ変更回路２は第１実施形態のものと同じであるが、トリガー信号ＴＧが４クロックごとにアサートされるため、図９の表のような値になる。
【００６７】
ＴＧが“１”となるのはｃｏｕｎｔ値が０，４，８の時である。この時の各スキャンＦＦの値に注目すると、スキャン入力側から４ビットごとに値が前回のＴＧのアサート時に対して１加算された値になっていることがわかる。このように、スキャンチェーンを分割しなくても、カウンタに設定したビット数の間隔でシリアルデータに１加算することができる。そのため、スキャンチェーンを分割した場合と同じようにスキャンチェーンを構成するスキャンＦＦの値を設定することができる。
【００６８】
ただし、第３実施形態のように、スキャンチェーンを分割して複数のシリアルデータ変更回路を設けると、複数のスキャンチェーンを同時に設定するため、第４実施形態のデータを分割する方法よりも早くデータの設定が進むことになり、データの活性化が早く進む。このため第３実施形態のようにスキャンチェーンを分割する方法と、第４実施形態のようにデータを分割する方法と、を組み合わせて利用することが、効率的に活性化する上で好ましい。第３および第４実施形態のように、シリアルデータデータやスキャンチェーンを分割する場合、半導体装置全体の論理回路の入力に対してすべての組合せの値を実現することにならないが、半導体装置の内部に非常に多数のスキャンＦＦが存在するとなるとすべての組合せのデータを設定することは現実的ではない。
【００６９】
そのため、擬似ランダムパターンを入力データに利用する従来技術もあるが、この場合は全組み合わせの中から擬似ランダムパターン発生回路が出力するデータの組み合わせだけがサンプルされてバーインの活性化に利用されることになる。この時の活性化率は、当然使用する擬似ランダムパターン発生回路の質に依存することになる。例えば、Ｍ系列、既約多項式を利用した擬似ランダムパターン発生回路でフィードバックシフトレジスタによって２Ｎ−１で一巡するパターンを発生させるためには、Ｎビットのシフトレジスタとビット数Ｎによって決まったビット位置にフィードバック用のＥＯＲ回路が必要になるが、Ｎの値が大きくなると必要な回路も増加するだけでなくどのビットのデータをフィードバックすると生成パターンの周期がどうなるかを検証することも困難である。
【００７０】
また、被試験回路である論理回路の構造を解析せずに確実にバーインでの活性化率を上げるためには、対象が論理回路であるため、単純に、実際のバーイン時間でできるだけ多くのデータの組み合わせを実現させることで必要である。そのため、実際のバーイン時間で入力されるクロック数以上で一巡するようなパターンをわずかな追加回路で実現させることがもっとも効率的といえる。
【００７１】
第１から第３実施形態では、データはスキャンチェーンを毎クロックシフトしているため加算するポイント（データの最下位ビット）がひとつだけでも一巡すればすべてのスキャンＦＦ自体は必ず変化して活性化される。しかし、被試験回路である論理回路の入力値としてはデータをばらつかせる必要がある。そのため、なるべくバーイン期間中で設定可能な最大データが設定されても、設定データの値のビット長が重ならない程度のデータ間隔（データ長）でトリガー信号をアサートするポイントを増やしたほうがよい。
【００７２】
したがって、スキャンチェーンの総ビット数と同一数のクロックをカウントするカウンタを用意し、スキャンチェーンを構成するスキャンＦＦのビット位置とカウンタのカウント値が対応するようにする。その上で、バーイン時間での総クロックをスキャンチェーンのビット数で割ってバーイン時間内で何回データが巡回されるかを算出する。その回数が２進数で何桁になるかを目安に、データビット数に設定することでデータの組合せとしては、バーイン時間中のトリガー発生回数は確実に異なる値をとることになる。
【００７３】
また、当然シフト動作でも値は変化するためデータの組合せとしては増加するため、実際に計算した必要クロック数にならなくてもデータの組み合わせとしてはトリガー発生回数以上に実現されることが期待できる。たとえば、２４時間のバーインを行なうとして、スキャンチェーンのスキャンＦＦが１０００個、入力するクロック周波数を１ＭＨｚとする。この場合、バーイン期間である２４時間での総クロック数は、２４×６０×６０×１０６＝８６．４×１０９回、スキャンチェーンの総ビット数の１０００で除すと、８６．４×１０６回となる。これは、２進数で２７ビットで表現できるので２７ビット未満で総ビット数の約数となるビット数（２５×４０＝１０００）をカウントするカウンタを用意するか、キャリー信号を利用するのであれば２４となる１６ビットごとに設定する。
【００７４】
また、スキャンチェーンのビット数が等分に分割できない場合は、チェーンの総ビット数をカウントするカウンタの下位ビットだけをデコード回路の処理に利用しても、任意のビットの桁上げ信号を利用してトリガー信号を生成させることでデータが巡回する毎に決まったビット位置でデータを加算することができるためスキャンチェーンを分割したのと同等な効果がある。
【００７５】
図１０の（Ａ）は、任意のビットのキャリー信号（桁上げ信号）を利用してトリガー信号を生成させるカウンタ３の回路構成を示す図である。図１０の（Ａ）では、７番目のＦＦ１５ｇのキャリー信号ｃ６をトリガー信号として利用する。したがって、スキャンチェーンのビット数と一致した時にデコード回路１６が発生する信号は、トリガー信号としては利用されず、カウンタリセット信号としてのみ利用される。図１０の（Ａ）のカウンタは、スキャンチェーン全体をひとつのデータとして扱うのではなく、データビット数を２のベキ数とする場合に用いることができる。
【００７６】
図１０の（Ｂ）は、キャリー信号ではなく下位のデータをデコードしてトリガー信号ＴＧを発生する別のデコード回路１８を設けたカウンタ３の回路構成を示す図である。図１０の（Ｂ）のカウンタは、スキャンチェーン全体をひとつのデータとして扱うのではなく、スキャンチェーン全体の最大値より小さい値でトリガー信号を発生するのに用いることができる。
【００７７】
以上、実施形態を説明したが、開示の技術は、記載した実施形態に限定されるものでなく、各種の変形例が可能であることは、当業者には容易に理解されることである。
【００７８】
上記の実施形態では、シリアルデータ変更回路が、シリアルデータを１ずつ増加させるインクリメンタである例を説明したが、１ずつ減少させるディクリメンタであってもよい。また、シリアルデータを所定値（例えば３）ずつ増加または減少させるシリアルデータ変更回路も可能である。ただし、この場合にはシリアルデータ変更回路は、２ビット分以上のシリアルデータに対して処理を行う必要があり、その分回路構成が複雑になる。
【００７９】
以下、実施形態に関し、更に以下の付記を開示する。
（付記１）
複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、前記複数のスキャンフリップフロップの出力信号が入力される論理回路と、を備える半導体装置のバーイン試験方法であって、
前記スキャンチェーンにスキャンシフトクロックを供給してスキャン出力信号をシリアルデータとして出力させ、
前記スキャンシフトクロックをカウントして所定数の前記スキャンシフトクロックごとにトリガー信号を発生し、
前記トリガー信号に応じて前記シリアルデータに対して所定の演算を行って、前記シリアルデータを変化させ、
変化させた前記シリアルデータを前記スキャンチェーンのスキャン入力信号として入力することを特徴とする半導体装置のバーイン試験方法。
（付記２）
複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、前記複数のスキャンフリップフロップの出力信号が入力される論理回路と、を備える半導体装置のバーイン試験装置であって、
前記スキャンチェーンに供給するスキャンシフトクロックをカウントして所定数の前記スキャンシフトクロックごとにトリガー信号を発生するカウンタと、
前記スキャンチェーンが前記スキャンシフトクロックに応じて出力するスキャン出力信号がシリアルデータとして入力され、前記トリガー信号に応じて前記シリアルデータに対して所定の演算を行って、前記シリアルデータを変化させるシリアルデータ変更回路と、を備え、
前記シリアルデータ変更回路の出力する、変化した前記シリアルデータを前記スキャンチェーンのスキャン入力信号として入力することを特徴とする半導体装置のバーイン試験装置。
（付記３）
前記シリアルデータ変更回路の行う所定の演算は、１の加算であることを特徴とする付記２に記載の半導体装置のバーイン試験装置。
（付記４）
前記カウンタは、前記スキャンシフトクロックを、前記スキャンチェーンの前記複数のスキャンフリップフロップの総個数をカウントするカウント回路を備え、
前記スキャンチェーンの前記複数のスキャンフリップフロップの総個数をカウントするごとに、前記トリガー信号を発生する付記２に記載の半導体装置のバーイン試験装置。
（付記５）
前記カウンタは、前記スキャンチェーンの前記複数のスキャンフリップフロップの総個数の１／Ｎ（Ｎは任意の整数）をカウントするごとに、前記トリガー信号を発生する付記２に記載の半導体装置のバーイン試験装置。
（付記６）
前記カウンタは、前記スキャンシフトクロックを、前記スキャンチェーンの前記複数のスキャンフリップフロップの総個数をカウントするカウント回路と、
前記カウント回路の所定の下位ビット数のカウント値が所定値に一致したことを検出する比較回路と、を備え、
前記所定の下位ビット数のカウント値が所定値に一致するごとに、前記トリガー信号を発生する付記２に記載の半導体装置のバーイン試験装置。
（付記７）
複数のスキャンフリップフロップが直列に接続されたスキャンチェーンと、
前記複数のスキャンフリップフロップの出力信号が入力される論理回路と、
前記スキャンチェーンに供給するスキャンシフトクロックをカウントして所定数の前記スキャンシフトクロックごとにトリガー信号を発生するカウンタと、
前記スキャンチェーンが前記スキャンシフトクロックに応じて出力するスキャン出力信号がシリアルデータとして入力され、前記トリガー信号に応じて前記シリアルデータに対して所定の演算を行って、前記シリアルデータを変化させるシリアルデータ変更回路と、を備え、
前記シリアルデータ変更回路の出力する、変化した前記シリアルデータを前記スキャンチェーンのスキャン入力信号として入力することを特徴とする半導体装置。
（付記８）
前記スキャンチェーンの入力部に設けられ、前記シリアルデータ変更回路の出力する変化した前記シリアルデータと、外部入力信号と、のいずれかを前記スキャン入力信号として選択する選択回路を備えることを特徴とする付記７に記載の半導体装置。
【符号の説明】
【００８０】
１    半導体装置
２，２ａ，２ｂ    シリアルデータ変更回路
３，３ａ，３ｂ    カウンタ
４，４ａ，４ｂ    スキャンチェーン
５    論理回路（被試験回路）
１２    セレクタ
１３ａ，１３ｂ，１３ｃ    スキャンフリップフロップ（スキャンＦＦ）
１５ａ−１５ｊ    カウンタ用フリップフロップ
１６    デコード回路
ＣＬＫ    スキャンシフトクロック
ＦＢ    フィードバック信号
ＳＯ    スキャン出力信号
Ｒｅｓｅｔ    リセット信号
ＴＧ，ＴＧＡ，ＴＧＢ    トリガー信号
【図１】
2010190852.tif 000003
【図２】
2010190852.tif 000004
【図３】
2010190852.tif 000005
【図４】
2010190852.tif 000006
【図５】
2010190852.tif 000007
【図６】
2010190852.tif 000008
【図７】
2010190852.tif 000009
【図８】
2010190852.tif 000010
【図９】
2010190852.tif 000011
【図１０】
2010190852.tif 000012