(57)【要約】【課題】ランダムパターンを用いてスキャンチェーン上の故障を検出すること。【解決手段】半導体集積回路１は、論理回路１０、パターン生成回路３０、段数調整回路４０、及び比較回路６０を備えている。論理回路１０は、Ｎ本のスキャンチェーン（１１，１２）を有する。パターン生成回路３０は、Ｎ本のスキャンチェーン（１１，１２）のそれぞれの入力端子（Ｐ１，Ｐ２）にランダムパターンＲＰＡＴを入力する。段数調整回路４０は、Ｎ個の出力端子（Ｙ１，Ｙ２）を有し、また、Ｎ本のスキャンチェーン（１１，１２）のそれぞれの出力端子（Ｑ１，Ｑ２）とＮ個の出力端子（Ｙ１，Ｙ２）のそれぞれとの間に追加フリップフロップを挿入する。比較回路６０は、Ｎ個の出力端子（Ｙ１，Ｙ２）のそれぞれから出力されるパターン（ＣＯＵＴ１，ＣＯＵＴ２）同士の比較を行う。段数調整回路４０は、追加フリップフロップの段数を０以上に、且つ、可変に設定する。【選択図】図１
2009085632.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ本（Ｎは２以上の整数）のスキャンチェーンを有する論理回路と、
前記Ｎ本のスキャンチェーンのそれぞれの入力端子にランダムパターンを入力するパターン生成回路と、
Ｎ個の出力端子を有し、前記Ｎ本のスキャンチェーンのそれぞれの出力端子と前記Ｎ個の出力端子のそれぞれとの間に追加フリップフロップを挿入する段数調整回路と、
前記Ｎ個の出力端子のそれぞれから出力されるパターン同士の比較を行う比較回路と
を備え、
前記段数調整回路は、前記追加フリップフロップの段数を０以上に、且つ、可変に設定する
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路であって、
テスト時、前記段数調整回路は、前記Ｎ本のスキャンチェーンのそれぞれの入力端子と前記Ｎ個の出力端子のそれぞれとの間のフリップフロップの段数が等しくなるように、前記追加フリップフロップの段数を設定する
半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路であって、
前記テストは、前記半導体集積回路のバーンインテスト中に実施される
半導体集積回路。
【請求項４】
請求項１乃至３のいずれかに記載の半導体集積回路であって、
更に、前記比較回路の出力を一定期間マスクするマスク回路を備える
半導体集積回路。
【請求項５】
請求項１乃至４のいずれかに記載の半導体集積回路であって、
前記段数調整回路は、前記Ｎ本のスキャンチェーンのそれぞれの出力端子と前記Ｎ個の出力端子のそれぞれとの間に接続されたＮ個のスキャンパッド回路を有し、
前記Ｎ個のスキャンパッド回路の各々が、選択信号に応じて、前記追加フリップフロップの段数を０以上に、且つ、可変に設定する
半導体集積回路。
【請求項６】
請求項５に記載の半導体集積回路であって、
前記Ｎ個のスキャンパッド回路の各々は、直列に接続された複数の調整回路を備え、
前記複数の調整回路の各々は、
セレクタと、
所定数の前記追加フリップフロップと
を含み、
前記セレクタは、前記各々の調整回路に入力される入力信号を、第１入力信号として直接受け取り、また、第２入力信号として前記所定数の追加フリップフロップを通して受け取り、
前記セレクタは、前記第１入力信号と前記第２入力信号の一方を前記選択信号に応じて選択し、前記選択された入力信号を次段の調整回路に出力する
半導体集積回路。
【請求項７】
請求項５に記載の半導体集積回路であって、
前記Ｎ個のスキャンパッド回路の各々は、
セレクタと、
所定数の前記追加フリップフロップと
を備え、
前記各々のスキャンパッド回路に入力された入力信号は、前記所定数の追加フリップフロップのうちそれぞれ異なる数の追加フリップフロップを通して複数種類の入力信号に変換され、
前記セレクタは、前記複数種類の入力信号のいずれか１つを前記選択信号に応じて選択し、前記選択された入力信号を前記比較回路に出力する
半導体集積回路。
【請求項８】
Ｎ本（Ｎは２以上の整数）のスキャンチェーンを有する論理回路と、
ランダムパターンを生成するパターン生成回路と、
前記ランダムパターンが入力されるＮ個の入力端子を有し、前記Ｎ個の入力端子のそれぞれと前記Ｎ本のスキャンチェーンのそれぞれの入力端子との間に追加フリップフロップを挿入する段数調整回路と、
前記Ｎ本のスキャンチェーンのそれぞれの出力端子から出力されるパターン同士の比較を行う比較回路と
を備え、
前記段数調整回路は、前記追加フリップフロップの段数を０以上に、且つ、可変に設定する
半導体集積回路。
【請求項９】
請求項８に記載の半導体集積回路であって、
テスト時、前記段数調整回路は、前記Ｎ個の入力端子のそれぞれと前記Ｎ本のスキャンチェーンのそれぞれの出力端子との間のフリップフロップの段数が等しくなるように、前記追加フリップフロップの段数を設定する
半導体集積回路。
【請求項１０】
請求項９に記載の半導体集積回路であって、
前記テストは、前記半導体集積回路のバーンインテスト中に実施される
半導体集積回路。
【請求項１１】
請求項８乃至１０のいずれかに記載の半導体集積回路であって、
更に、前記比較回路の出力を一定期間マスクするマスク回路を備える
半導体集積回路。
【請求項１２】
請求項８乃至１１のいずれかに記載の半導体集積回路であって、
前記段数調整回路は、前記Ｎ個の入力端子のそれぞれと前記Ｎ本のスキャンチェーンのそれぞれの入力端子との間に接続されたＮ個のスキャンパッド回路を有し、
前記Ｎ個のスキャンパッド回路の各々が、選択信号に応じて、前記追加フリップフロップの段数を０以上に、且つ、可変に設定する
半導体集積回路。
【請求項１３】
請求項１２に記載の半導体集積回路であって、
前記Ｎ個のスキャンパッド回路の各々は、直列に接続された複数の調整回路を備え、
前記複数の調整回路の各々は、
セレクタと、
所定数の前記追加フリップフロップと
を含み、
前記セレクタは、前記各々の調整回路に入力される入力信号を、第１入力信号として直接受け取り、また、第２入力信号として前記所定数の追加フリップフロップを通して受け取り、
前記セレクタは、前記第１入力信号と前記第２入力信号の一方を前記選択信号に応じて選択し、前記選択された入力信号を次段の調整回路に出力する
半導体集積回路。
【請求項１４】
請求項１２に記載の半導体集積回路であって、
前記Ｎ個のスキャンパッド回路の各々は、
セレクタと、
所定数の前記追加フリップフロップと
を備え、
前記各々のスキャンパッド回路に入力された入力信号は、前記所定数の追加フリップフロップのうちそれぞれ異なる数の追加フリップフロップを通して複数種類の入力信号に変換され、
前記セレクタは、前記複数種類の入力信号のいずれか１つを前記選択信号に応じて選択し、前記選択された入力信号を対応するスキャンチェーンに出力する
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関する。特に、本発明は、スキャンチェーンを備える半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路のテスト容易化設計（DFT: Design For Testability）の一手法として、スキャン設計が知られている。スキャン設計によれば、設計回路内のフリップフロップの全て又は一部が、スキャンフリップフロップに置き換えられる。スキャンテスト時には、スキャンフリップフロップ同士が接続され、多段のスキャンフリップフロップからなるスキャンチェーン（スキャンパス）が構成される。そのスキャンチェーンを通してテストパタンを入力及び出力することにより、スキャンテストが行なわれる（例えば、特許文献１参照）。
【０００３】
特許文献２には、スキャンチェーン自体の故障を検出するための技術が記載されている。具体的には、複数のスキャンチェーンと比較回路が設けられる。通常のスキャンテストの前に、全てのスキャンフリップフロップにデータ“０”又は“１”が供給される。そして、複数のスキャンパスの出力同士が比較回路により比較される。
【０００４】
また、バーンインテスト時に、スキャンチェーンを利用して素子にストレスを印加する技術が知られている（特許文献３、特許文献４、特許文献５参照）。
【０００５】
特許文献４には、バーンインにより素子が破壊されたか否かを簡易に検出するための技術が記載されている。具体的には、バーンインテスト時、単一のスキャンチェーンに、規則的なパターン“１０１０１０・・・”が入力される。そして、ＥＸＯＲ回路が、その単一のスキャンチェーン上の奇数段離れた２つのスキャンフリップフロップの出力同士を比較する。そのスキャンチェーン上に故障が有れば、ＥＸＯＲ回路の出力はＬレベルとなる。
【０００６】
特許文献５には、バーンインテスト中に所望のストレスが素子に印加されているか否かを判定するための技術が記載されている。具体的には、設計段階において、１本のスキャンチェーンが前半部分と後半部分に区分けされ、前半部分と後半部分のそれぞれの出力が比較回路の入力に接続される。この時、前半部分と後半部分の段数が等しくなるように区分けが行われる。１本のスキャンチェーンの段数が奇数の場合は、前半部分あるいは後半部分の出力と比較回路との間にフリップフロップが追加される。デバイス製造後のバーンインテスト時、前半部分と後半部分に同じランダムパターンが同時に供給される。そして、比較回路が、前半部分と後半部分のそれぞれの出力を比較する。比較結果が不一致の場合、それはスキャンチェーン上に故障が存在することを意味する。従って、所望のストレスが素子に印加されていないと判定される。
【０００７】
【特許文献１】特開２００５−２１４９８１号公報
【特許文献２】特開２００６−３４９５４８号公報
【特許文献３】特開２００３−３０２４５１号公報
【特許文献４】特開２００４−２１９３３６号公報
【特許文献５】特開２００４−２３３１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本願発明者は、次の点に着目した。バーンインテスト時にスキャンチェーン上の故障を検出するために、複数のスキャンチェーンの出力同士を比較することが考えられる。この時、素子の活性化率を増加させるためには、複数のスキャンチェーンに「ランダムパターン」を供給することが望ましい。ランダムパターンが用いられる場合は、複数のスキャンチェーンのそれぞれの段数が等しくなるように設計を行う必要がある。さもなければ、出力同士を比較することに意味がなくなり、スキャンチェーン上の故障を正確に検出することができない。従って、回路設計の段階で、それぞれの段数が等しくなるように複数のスキャンチェーンを構成する必要がある。
【０００９】
しかしながら、回路設計の後に不具合が発見され、回路の修正が行われることがしばしばある。その場合、回路設計を最初からやり直すと、ＴＡＴが非常に増大してしまう。従って、通常は、トランジスタ等が作りこまれた下地層の上層の配線層において、不具合を解消するために、ノード間の接続が変更される。すなわち、不具合が解消されるように、上層配線層において配線のつなぎ換えが行われる。
【００１０】
その配線のつなぎ換えは、当初のスキャンチェーンの構成に影響を及ぼす可能性が高い。つまり、配線のつなぎ換えが、設計時のスキャンチェーンの段数を乱す可能性が高い。当初、複数のスキャンチェーンのそれぞれの段数が揃うように設計されていても、その後の配線変更の結果、それぞれの段数が一致しなくなる。その場合、デバイス製造後のテスト時に、ランダムパターンを用いてスキャンチェーン上の故障を検出することができなくなる。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明の一実施の形態において、半導体集積回路（１）は、論理回路（１０）、パターン生成回路（３０）、段数調整回路（４０）、及び比較回路（６０）を備えている。論理回路（１０）は、Ｎ本（Ｎは２以上の整数）のスキャンチェーン（１１，１２）を有する。パターン生成回路（３０）は、Ｎ本のスキャンチェーン（１１，１２）のそれぞれの入力端子（Ｐ１，Ｐ２）にランダムパターン（ＲＰＡＴ）を入力する。段数調整回路（４０）は、Ｎ個の出力端子（Ｙ１，Ｙ２）を有しており、また、Ｎ本のスキャンチェーン（１１，１２）のそれぞれの出力端子（Ｑ１，Ｑ２）とＮ個の出力端子（Ｙ１，Ｙ２）のそれぞれとの間に追加フリップフロップ（５３）を挿入するように構成されている。比較回路（６０）は、Ｎ個の出力端子（Ｙ１，Ｙ２）のそれぞれから出力されるパターン（ＣＯＵＴ１，ＣＯＵＴ２）同士の比較を行う。
【００１３】
段数調整回路（４０）は、追加フリップフロップ（５３）の段数を０以上に、且つ、可変に設定する。つまり、段数調整回路（４０）は、状況に応じて、追加フリップフロップ（５３）の段数を変更することができる。例えばテスト時、Ｎ本のスキャンチェーン（１１，１２）のそれぞれの入力端子（Ｐ１，Ｐ２）とＮ個の出力端子（Ｙ１，Ｙ２）のそれぞれとの間のフリップフロップの段数を等しくすることができる。言い換えれば、比較回路（６０）の入力につながる複数のチェーンの段数を揃えることができる。その結果、ランダムパターン（ＲＰＡＴ）を用いてスキャンチェーン（１１，１２）上の故障を正確に検出することが可能となる。
【００１４】
回路設計の後に不具合が発見され、上層配線層において配線のつなぎ換えが行われたとしても、段数調整回路（４０）で対処可能である。つまり、配線のつなぎ換えにより設計時のスキャンチェーン（１１，１２）の段数が乱されたとしても、上述のように、比較回路（６０）の入力につながる複数のチェーンの段数を揃えることができる。あるいは、設計段階において、複数のスキャンチェーン（１１，１２）のそれぞれの段数を予め揃えておく必要は必ずしもない。従って、スキャン設計の自由度が向上する。
【００１５】
本発明の他の実施の形態において、半導体集積回路（１）は、論理回路（１０）、パターン生成回路（３０）、段数調整回路（４０）、及び比較回路（６０）を備えている。論理回路（１０）は、Ｎ本（Ｎは２以上の整数）のスキャンチェーン（１１，１２）を有する。パターン生成回路（３０）は、ランダムパターン（ＲＰＡＴ）を生成する。段数調整回路（４０）は、ランダムパターン（ＲＰＡＴ）が入力されるＮ個の入力端子（Ｘ１，Ｘ２）を有しており、また、そのＮ個の入力端子（Ｘ１，Ｘ２）のそれぞれとＮ本のスキャンチェーン（１１，１２）のそれぞれの入力端子（Ｐ１，Ｐ２）との間に追加フリップフロップ（５３）を挿入するように構成されている。比較回路（６０）は、Ｎ本のスキャンチェーン（１１，１２）のそれぞれの出力端子（Ｑ１，Ｑ２）から出力されるパターン（ＣＯＵＴ１，ＣＯＵＴ２）同士の比較を行う。
【００１６】
段数調整回路（４０）は、追加フリップフロップ（５３）の段数を０以上に、且つ、可変に設定する。つまり、段数調整回路（４０）は、状況に応じて、追加フリップフロップ（５３）の段数を変更することができる。例えばテスト時、Ｎ個の入力端子（Ｘ１，Ｘ２）のそれぞれとＮ本のスキャンチェーン（１１，１２）のそれぞれの出力端子（Ｑ１，Ｑ２）との間のフリップフロップの段数を等しくすることができる。言い換えれば、比較回路（６０）の入力につながる複数のチェーンの段数を揃えることができる。その結果、ランダムパターン（ＲＰＡＴ）を用いてスキャンチェーン（１１，１２）上の故障を正確に検出することが可能となる。
【００１７】
回路設計の後に不具合が発見され、上層配線層において配線のつなぎ換えが行われたとしても、段数調整回路（４０）で対処可能である。つまり、配線のつなぎ換えにより設計時のスキャンチェーン（１１，１２）の段数が乱されたとしても、上述のように、比較回路（６０）の入力につながる複数のチェーンの段数を揃えることができる。あるいは、設計段階において、複数のスキャンチェーン（１１，１２）のそれぞれの段数を予め揃えておく必要は必ずしもない。従って、スキャン設計の自由度が向上する。
【発明の効果】
【００１８】
本発明によれば、回路設計後でも、比較回路の入力につながる複数のチェーンの段数を揃えることができる。その結果、ランダムパターンを用いてスキャンチェーン上の故障を正確に検出することが可能となる。
【発明を実施するための最良の形態】
【００１９】
１．第１の実施の形態
１−１．構成
図１は、本発明の第１の実施の形態に係る半導体集積回路１の構成を示すブロック図である。半導体集積回路１は、論理回路１０、マスタシーケンサ２０、ランダムパターン生成回路３０、段数調整回路４０、比較回路６０、マスク回路７０、及びＪＴＡＧ回路８０を備えている。
【００２０】
論理回路１０は、多数の論理ゲートやフリップフロップを含んでいる。そのフリップフロップのうち少なくとも一部は、スキャンテストに用いられるスキャンフリップフロップである。スキャンテスト時には、スキャンフリップフロップ同士が接続され、多段のスキャンフリップフロップからなるスキャンチェーンが構成される。
【００２１】
本実施の形態では、論理回路１０は、Ｎ本（Ｎは２以上の整数）のスキャンチェーンを有している。例えば図１において、論理回路１０は、２本のスキャンチェーン：第１スキャンチェーン１１及び第２スキャンチェーン１２を含んでいる。第１スキャンチェーン１１は、入力端子Ｐ１及び出力端子Ｑ１を有している。第２スキャンチェーン１２は、入力端子Ｐ２及び出力端子Ｑ２を有している。スキャンチェーン１１、１２の各々は、入力端子と出力端子との間に直列に接続された多段のスキャンフリップフロップ１３から構成される。
【００２２】
マスタシーケンサ２０は、後述されるスキャンチェーンを利用したテストを制御するためのテスト制御回路である。マスタシーケンサ２０は、クロック信号ＣＬＫに基づいて動作する。また、テスト開始時、マスタシーケンサ２０は、スタート信号ＳＴをランダムパターン生成回路３０及びマスク回路７０に出力する。
【００２３】
ランダムパターン生成回路３０は、ランダムパターンＲＰＡＴを生成するための回路である。ランダムパターンＲＰＡＴとしては、Ｍ系列やＧｏｌｄ系列が例示される。ランダムパターン生成回路３０は、クロック信号ＣＬＫに基づいて動作し、また、スタート信号ＳＴに応答してランダムパターンＲＰＡＴをＮ本のスキャンチェーンのそれぞれに供給する。例えば図１において、同じランダムパターンＲＰＡＴが、第１スキャンチェーン１１の入力端子Ｐ１と第２スキャンチェーン１２の入力端子Ｐ２にパラレルに入力される。
【００２４】
段数調整回路４０は、必要に応じて、スキャンチェーンに追加フリップフロップを付け足すための回路である。具体的には、段数調整回路４０は、Ｎ本のスキャンチェーンのそれぞれに対応してＮ個のスキャンパッド回路５０を含んでいる。例えば図１において、段数調整回路４０は、２つのスキャンパッド回路５０−１、５０−２を含んでいる。
【００２５】
スキャンパッド回路５０−１は、入力端子Ｘ１及び出力端子Ｙ１を有している。入力端子Ｘ１は、第１スキャンチェーン１１の出力端子Ｑ１に接続されている。このスキャンパッド回路５０−１は、選択信号ＳＥＬ１に応じて、出力端子Ｑ１と出力端子Ｙ１との間に追加フリップフロップを挿入する。一方、スキャンパッド回路５０−２は、入力端子Ｘ２及び出力端子Ｙ２を有している。入力端子Ｘ２は、第２スキャンチェーン１２の出力端子Ｑ２に接続されている。このスキャンパッド回路５０−２は、選択信号ＳＥＬ２に応じて、出力端子Ｑ２と出力端子Ｙ２との間に追加フリップフロップを挿入する。
【００２６】
スキャンパッド回路５０−１、５０−２は、同じ構成を有している。図２は、１つのスキャンパッド回路５０の構成の一例を示しており、例えばスキャンパッド回路５０−１の構成を示している。図２に示されるように、スキャンパッド回路５０−１は、入力端子Ｘ１と出力端子Ｙ１との間に直列に接続された複数の単位調整回路５１Ａ〜５１Ｋを備えている。単位調整回路５１Ａ〜５１Ｋの各々は、セレクタ５２と１以上の追加フリップフロップ５３を含んでいる。単位調整回路５１Ａ〜５１Ｋのそれぞれに含まれる追加フリップフロップ５３の数は、互いに異なっていてもよい。例えば図２において、単位調整回路５１Ａ〜５１Ｋのそれぞれに含まれる追加フリップフロップ５３の数は、１、２、４、８、１６、３２、６４、１２８、２５６、５１２、及び１０２４である。
【００２７】
各単位調整回路５１において、セレクタ５２は、２種類の信号を受け取る。具体的には、セレクタ５２は、各単位調整回路５１に入力された入力信号を直接受け取り、また、その入力信号を追加フリップフリップ５３を通して受け取る。そして、セレクタ５２は、受け取った２種類の入力信号の一方を選択し、選択された一方を次段の単位調整回路５１（あるいは出力端子Ｙ１）に出力する。その入力信号の選択を制御するのが、上記選択信号ＳＥＬ１である。例えば選択信号ＳＥＬ１は１１ビットのデジタル信号であり、それぞれのビット（Ａ〜Ｋ）が単位調整回路５１Ａ〜５１Ｋのそれぞれのセレクタ５２に入力される。各セレクタ５２は、ビットが“０”の場合、直接受け取った入力信号を選択し、一方、ビットが“１”の場合、追加フリップフロップ５３を通して受け取った入力信号を選択する。
【００２８】
それら１１ビットの組み合わせに応じて、入力端子Ｘ１と出力端子Ｙ１との間で入力信号が通過する追加フリップフロップ５３の総数が変化する。例えば、全てのビットが“０”の場合、入力信号が通過する追加フリップフロップ５３の段数は、０段である。全てのビットが“１”の場合、入力信号が通過する追加フリップフロップ５３の段数は、２０４７段である。このように、入力端子Ｘ１と出力端子Ｙ１の間の追加フリップフロップ５３の段数は、０以上、且つ、可変に設定され得る。言い換えれば、スキャンパッド回路５０−１は、選択信号ＳＥＬ１に応じて、追加フリップフロップ５３の段数を０以上に、且つ、可変に設定する。
【００２９】
図３は、スキャンパッド回路５０−１の構成の他の例を示している。図３において、スキャンパッド回路５０−１は、複数の追加フリップフロップ５３とセレクタ５４を備えている。入力端子Ｘ１は、セレクタ５４の１つの入力と１つの追加フリップフロップ５３の入力に接続されている。ある追加フリップフロップ５３の出力は、セレクタ５４の１つの入力と他の追加フリップフロップ５３の入力に接続されている。このような構成により、スキャンパッド回路５０−１に入力された入力信号は、０以上の異なる数の追加フリップフロップ５３を通して、複数種類の入力信号に変換される。その複数種類の入力信号が、セレクタ５４に入力される。
【００３０】
セレクタ５４は、選択信号ＳＥＬ１に応じて、受け取った複数種類の入力信号のいずれか１つを選択する。そして、セレクタ５４は、選択された１つの入力信号を出力端子Ｙ１に出力する。このように、入力端子Ｘ１と出力端子Ｙ１との間で入力信号が通過する追加フリップフロップ５３の段数は、０以上、且つ、可変に設定され得る。言い換えれば、スキャンパッド回路５０−１は、選択信号ＳＥＬ１に応じて、追加フリップフロップ５３の段数を０以上に、且つ、可変に設定する。
【００３１】
再度図１を参照して、上述の段数調整回路４０が、スキャンチェーン１１、１２の後段に接続されている。上述の通り、この段数調整回路４０は、スキャンチェーン１１、１２のそれぞれの出力端子Ｑ１、Ｑ２と段数調整回路４０の出力端子Ｙ１、Ｙ２のそれぞれとの間に、追加フリップフロップ５３を挿入することができる。挿入される追加フリップフロップ５３の段数は、選択信号ＳＥＬ１、ＳＥＬ２に応じて、０以上、且つ、可変に設定され得る。
【００３２】
第１スキャンチェーン１１の入力端子Ｐ１からスキャンパッド回路５０−１の出力端子Ｙ１までのチェーンは、以下「第１テストチェーン」と参照される。一方、第２スキャンチェーン１２の入力端子Ｐ２からスキャンパッド回路５０−２の出力端子Ｙ２までのチェーンは、以下「第２テストチェーン」と参照される。段数調整回路４０は、第１テストチェーンと第２テストチェーンのそれぞれの段数を調整するための回路であるとも言える。第１テストチェーンの入力端子Ｐ１にランダムパターンＲＰＡＴが入力されると、第１テストチェーンの出力端子Ｙ１から第１チェーン出力信号ＣＯＵＴ１が出力される。また、第２テストチェーンの入力端子Ｐ２にランダムパターンＲＰＡＴが入力されると、第２テストチェーンの出力端子Ｙ２から第２チェーン出力信号ＣＯＵＴ２が出力される。
【００３３】
比較回路６０は、第１テストチェーンの出力端子Ｙ１と第２テストチェーンの出力端子Ｙ２に接続されており、第１チェーン出力信号ＣＯＵＴ１と第２チェーン出力信号ＣＯＵＴ２を受け取る。比較回路６０は、それらチェーン出力信号ＣＯＵＴ１、ＣＯＵＴ２同士の比較を行い、その比較結果を示す比較結果信号ＭＴＣＨを出力する。比較回路６０は、例えばＥＸＯＲ回路である。比較結果が一致の場合、比較結果信号ＭＴＣＨは“０”であり、比較結果が不一致の場合、比較結果信号ＭＴＣＨは“１”である。
【００３４】
マスク回路７０は、比較回路６０とマスタシーケンサ２０との間に介在している。比較回路６０が出力した比較結果信号ＭＴＣＨは、マスク回路７０を通してマスタシーケンサ２０に送られる。マスク回路７０は、スタート信号ＳＴに応答して、比較結果信号ＭＴＣＨを一定期間マスクする。例えば、マスク回路７０は、クロック信号ＣＬＫに基づいて動作するカウンタを含んでおり、そのカウンタを用いて一定期間を計測する。
【００３５】
ＪＴＡＧ回路８０は、ＪＴＡＧコードＣＯＤＥに応じて、上記選択信号ＳＥＬ１、ＳＥＬ２を生成する。ＪＴＡＧコードＣＯＤＥは、追加フリップフロップ５３の段数を設定するための制御コードである。生成された選択信号ＳＥＬ１、ＳＥＬ２は、段数調整回路４０に入力される。
【００３６】
以上に説明されたスキャンチェーン１１、１２、マスタシーケンサ２０、ランダムパターン生成回路３０、段数調整回路４０、比較回路６０、マスク回路７０、及びＪＴＡＧ回路８０は、次に説明されるテスト方法を実現するテスト回路を構成している。
【００３７】
１−２．テスト方法
仮に、スキャンチェーン１１、１２のそれぞれにおけるスキャンフリップフリップ１３の段数が互いに等しいとする。この場合、スキャンチェーン１１、１２に同じランダムパターンＲＰＡＴが入力されると、スキャンチェーン１１、１２のそれぞれから同じタイミングで同じパターンが出力されるはずである。スキャンチェーン１１、１２のそれぞれの出力同士が一致しない場合、それは、いずれかのスキャンチェーン上に故障が発生していることを意味する。このように、同じ段数のスキャンチェーン１１、１２に同じランダムパターンＲＰＡＴを入力し、出力同士を比較することによって、スキャンチェーン上の故障を検出することができる。
【００３８】
特に、スキャンチェーンにおける「ホールドエラー」を検出することができる。その理由は次の通りである。論理回路１０中のフリップフロップには、クロックツリー（図示されない）からクロック信号が供給される。一般に、スキャンチェーン上では、スキャンフリップフロップ間に他の素子が介在しておらず、スキャンフリップフロップ間のパスは短い。従って、クロックスキューが大きくなった場合に、スキャンチェーン上でホールドエラーが発生しやすい。
【００３９】
このように、スキャンチェーンはクロックスキューの変動に敏感であり、クロックスキューが大きくなった場合にホールドエラーが発生しやすい。逆に言えば、スキャンチェーンにおけるホールドエラーの発生の有無を検証することは、クロック系の安定度を調べることに相当する。スキャンチェーンを利用してホールドエラーの発生の有無を調べることにより、クロック系のテストを行うことができる。そのようなテストは、以下「タイミングテスト」と参照される。
【００４０】
上述の通り、スキャンチェーン１１、１２とランダムパターンＲＰＡＴを用いてタイミングテストを行うためには、スキャンチェーン１１、１２のそれぞれの段数が等しい必要がある。そのために、例えば回路設計の段階で、それぞれの段数が等しくなるようにスキャンチェーン１１、１２が構成される。
【００４１】
しかしながら、回路設計の後に不具合が発見され、回路の修正が行われることがしばしばある。その場合、回路設計を最初からやり直すと、ＴＡＴが非常に増大してしまう。従って、通常は、トランジスタ等が作りこまれた下地層の上層の配線層において、不具合を解消するために、ノード間の接続が変更される。すなわち、不具合が解消されるように、上層配線層において配線のつなぎ換えが行われる。その配線のつなぎ換えは、当初のスキャンチェーン１１、１２の構成に影響を及ぼす可能性が高い。つまり、配線のつなぎ換えが、スキャンチェーン１１、１２の段数を乱す可能性が高い。当初、スキャンチェーン１１、１２のそれぞれの段数が等しくなるように設計されていても、その後の配線変更の結果、それぞれの段数が一致しなくなる。その場合、スキャンチェーン１１、１２のそれぞれにランダムパターンＲＰＡＴを入力し、出力同士を比較することに意味がなくなる。つまり、タイミングテストが不可能となる。
【００４２】
この問題を解決するのが、上述の段数調整回路４０である。上述の通り、段数調整回路４０は、回路設計後でも追加フリップフロップ５３を挿入できるように構成されている。しかも、段数調整回路４０は、挿入される追加フリップフロップ５３の段数を、０以上、且つ、可変に設定するように構成されている。従って、段数調整回路４０を用いることによって、第１テストチェーンと第２テストチェーンにおけるフリップフロップの段数を揃えることができる。タイミングテストにおいては、第１テストチェーンと第２テストチェーンが利用されればよい。
【００４３】
あるいは、段数調整回路４０が設けられているため、設計段階において、スキャンチェーン１１、１２のそれぞれの段数を予め揃えておく必要もなくなる。設計段階でスキャンチェーン１１、１２それぞれの段数が異なっていても、タイミングテスト段階で、第１テストチェーンと第２テストチェーンの段数を揃えることができる。タイミングテストにおいては、第１テストチェーンと第２テストチェーンが利用されればよい。
【００４４】
図４は、本実施の形態に係る半導体集積回路１のテスト方法の一例を示すフローチャートである。
【００４５】
ステップＳ１：
まず、複数のスキャンチェーン１１、１２の間のスキャンフリップフロップ１３の段数の差が検出される。その段数差を解消するようなＪＴＡＧコードＣＯＤＥが、ＪＴＡＧ回路８０に入力される。ＪＴＡＧコードＣＯＤＥに応じて、ＪＴＡＧ回路８０は、選択信号ＳＥＬ１、ＳＥＬ２を生成する。選択信号ＳＥＬ１、ＳＥＬ２は、段数調整回路４０に入力される。段数調整回路４０は、選択信号ＳＥＬ１、ＳＥＬ２に応じて、追加フリップフロップ５３の段数を設定する。具体的には、段数調整回路４０は、第１テストチェーンと第２テストチェーン上のフリップフロップの段数が等しくなるように、追加フリップフロップ５３の段数を設定する。
【００４６】
ステップＳ１０：
次に、バーンインテストが実施される。すなわち、高温環境下で、半導体集積回路１の通電テストが行われる。このバーンインテストの最中に、上述の「タイミングテスト」が実施される（ステップＳ１１）。これにより、タイミングテストと同時に、スキャンチェーン１１、１２を利用して論理回路１０内の素子にストレスを印加することができる。ランダムパターンＲＰＡＴを用いることは、バーンインテストにおける素子の活性化率の観点から好適である。
【００４７】
図５は、タイミングテスト（ステップＳ１１）時の半導体集積回路１の動作の一例を示すタイミングチャートである。
【００４８】
時刻ｔ１において、マスタシーケンサ２０に、リセット信号ＲＥＳＥＴが入力される。時刻ｔ２において、マスタシーケンサ２０は、スタート信号ＳＴを出力する。スタート信号ＳＴは、ランダムパターン生成回路３０及びマスク回路７０に入力される。
【００４９】
スタート信号ＳＴに応答して、ランダムパターン生成回路３０は、ランダムパターンＲＰＡＴを生成する。時刻ｔ３から、ランダムパターンＲＰＡＴが、第１テストチェーン及び第２テストチェーンのそれぞれの入力端子Ｐ１、Ｐ２に順番に入力される。また、第１テストチェーン及び第２テストチェーンのそれぞれの出力端子Ｙ１、Ｙ２から、第１チェーン出力信号ＣＯＵＴ１及び第２チェーン出力信号ＣＯＵＴ２が出力される。
【００５０】
比較回路６０は、第１チェーン出力信号ＣＯＵＴ１と第２チェーン出力信号ＣＯＵＴ２の比較を行い、比較結果信号ＭＴＣＨを出力する。初期状態ではスキャンフリップフロップ１３の値は不定であるため、比較結果が不一致になり得る。従って、マスク回路７０は、スタート信号ＳＴが入力される時刻ｔ３から一定期間、比較結果信号ＭＴＣＨをマスクする。具体的には、ランダムパターンＲＰＡＴに対応するパターンが出力端子Ｙ１、Ｙ２から出力され始める時刻ｔ４まで、比較結果信号ＭＴＣＨはマスクされる。例えば、マスク回路７０は、クロック信号ＣＬＫに基づいて動作するカウンタを含んでおり、そのカウンタを用いて一定期間を計測する。マスク回路７０によって、少なくとも時刻ｔ３〜時刻ｔ４の期間は、マスタシーケンサ２０に入力される比較結果信号ＭＴＣＨは“０”に保たれる。
【００５１】
時刻ｔ４から、ランダムパターンＲＰＡＴに対応するパターンが、第１チェーン出力信号ＣＯＵＴ１及び第２チェーン出力信号ＣＯＵＴ２として出力され始める。比較回路６０は、第１チェーン出力信号ＣＯＵＴ１と第２チェーン出力信号ＣＯＵＴ２の比較を行い、比較結果信号ＭＴＣＨを出力する。時刻ｔ４以降は、比較結果信号ＭＴＣＨはマスクされず、そのままマスタシーケンサ２０に入力される。
【００５２】
時刻ｔ５において、第１チェーン出力信号ＣＯＵＴ１と第２チェーン出力信号ＣＯＵＴ２が一致しない。従って、比較結果信号ＭＴＣＨは、不一致を表す“１”となる。これは、いずれかのスキャンチェーン上でホールドエラー等の故障が発生していることを意味する。比較結果信号ＭＴＣＨが“１”になると、マスタシーケンサ２０は、エラー信号ＥＲＲＯＲを出力する。
【００５３】
再度図４を参照して、マスタシーケンサ２０からエラー信号ＥＲＲＯＲが出力されると（ステップＳ１２；Ｙｅｓ）、バーンインは停止させられる（ステップＳ１３）。そして、当該半導体集積回路１は即座に「不良品」と判定される。
【００５４】
ステップＳ２０：
タイミングテスト中にエラー信号ＥＲＲＯＲが出力されない場合（ステップＳ１２；Ｎｏ）、スキャンチェーン上でホールドエラー等の故障が発生していないと考えられる。従って、バーンインテストの終了後、半導体集積回路１の動作試験が実施される。バーンインテストにより、論理回路１０内の素子の劣化は加速されている。特に、ランダムパターンＲＰＡＴが用いられているため、バーンインテスト時の素子の活性化率は高く、素子の劣化が促進されている。従って、動作試験において高精度にスクリーニングを行うことができる。
【００５５】
動作試験の結果がＦＡＩＬの場合（ステップＳ２１；Ｎｏ）、当該半導体集積回路１は「不良品」と判定される。一方、動作試験の結果がＰＡＳＳの場合（ステップＳ２１；Ｙｅｓ）、当該半導体集積回路１は、「良品」と判定される。
【００５６】
１−３．効果
本実施の形態に係る半導体集積回路１は、回路設計後でも複数のテストチェーンのそれぞれの段数を変更することができる段数調整回路４０を備えている。この段数調整回路４０を用いることによって、回路設計後に、複数のテストチェーン上のフリップフロップの段数を等しくすることができる。従って、複数のテストチェーンのそれぞれにランダムパターンＲＰＡＴを入力し、それぞれの出力同士を比較することによって、タイミングテストを正確に行うことが可能となる。
【００５７】
回路設計の後に不具合が発見され、上層配線層において配線のつなぎ換えが行われたとしても、段数調整回路４０で対処可能である。あるいは、設計段階において、複数のスキャンチェーン（１１、１２）のそれぞれの段数を予め揃えておく必要は必ずしもない。複数のスキャンチェーン（１１、１２）が自由に設計されても、その後、段数調整回路４０で複数のテストチェーンのそれぞれの段数を揃えることができる。従って、スキャン設計の自由度が向上する。
【００５８】
上述の通り、タイミングテスト（ステップＳ１１）は、バーンインテスト（ステップＳ１０）の最中に実施されることが好適である。バーンインテストのような高温試験時には、電流が大きくなる傾向がある。そのため、通常動作時に比べ、クロック系に影響を及ぼし得るノイズが強くなる。そのようなノイズ環境下でのタイミングテストの結果がＰＡＳＳである場合、当該半導体集積回路１の信頼度は高いと言える。すなわち、極限状態においてクロック系の安定性を検証することにより、タイミングテストの精度や信頼性がより向上する。
【００５９】
更に、本実施の形態では、バーンインテスト（ステップＳ１０）中に、スキャンチェーン１１、１２にランダムパターンＲＰＡＴが供給される。これにより、論理回路１０内のスキャンフリップフロップ１３につながる論理素子の活性化率が増加する。固定パターンや規則パターンが用いられる場合は、スキャンフリップフロップ１３につながる論理素子の論理値は固定される、あるいは、限定される。従って、活性化率が十分でない。ランダムパターンＲＰＡＴを用いることによって、バーンインを促進し、コンタクト不良やショート不良等を顕在化させることができる。その結果、バーンインテスト後の動作試験（ステップＳ２０）におけるスクリーニング精度が向上する。
【００６０】
２．第２の実施の形態
図６は、本発明の第２の実施の形態に係る半導体集積回路１の構成を示すブロック図である。図６において、第１の実施の形態における構成と同じ構成には同一の符号が付され、重複する説明は適宜省略される。
【００６１】
第２の実施の形態では、上述の段数調整回路４０が、スキャンチェーン１１、１２の前段に接続されている。つまり、スキャンパッド回路５０−１の出力端子Ｙ１が第１スキャンチェーン１１の入力端子Ｐ１に接続されている。スキャンパッド回路５０−２の出力端子Ｙ２が第２スキャンチェーン１２の入力端子Ｐ２に接続されている。この場合、スキャンパッド回路５０−１の入力端子Ｘ１から第１スキャンチェーン１１の出力端子Ｑ１までのチェーンが、「第１テストチェーン」である。また、スキャンパッド回路５０−２の入力端子Ｘ２から第２スキャンチェーン１２の出力端子Ｑ２までのチェーンが、「第２テストチェーン」である。
【００６２】
ランダムパターン生成回路３０によって生成されたランダムパターン３０は、段数調整回路の入力端子Ｘ１、Ｘ２のそれぞれに入力される。比較回路６０は、スキャンチェーン１１、１２のそれぞれの出力端子Ｑ１、Ｑ２に接続されており、それぞれの出力端子Ｑ１、Ｑ２からチェーン出力信号ＣＯＵＴ１、ＣＯＵＴ２を受け取る。
【００６３】
段数調整回路４０は、入力端子Ｘ１、Ｘ２のそれぞれとスキャンチェーン１１、１２のそれぞれの入力端子Ｐ１、Ｐ２との間に、追加フリップフロップ５３を挿入することができる。挿入される追加フリップフロップ５３の段数は、選択信号ＳＥＬ１、ＳＥＬ２に応じて、０以上、且つ、可変に設定され得る。従って、テスト時に、第１テストチェーンと第２テストチェーンにおけるフリップフロップの段数を揃えることが可能となる。これにより、第１の実施の形態と同じ効果が得られる。
【図面の簡単な説明】
【００６４】
【図１】図１は、本発明の第１の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図２】図２は、スキャンパッド回路の構成の一例を示す回路図である。
【図３】図３は、スキャンパッド回路の構成の他の例を示す回路図である。
【図４】図４は、本発明に係る半導体集積回路のテスト方法の一例を示すフローチャートである。
【図５】図５は、テスト時の半導体集積回路の動作を示すタイミングチャートである。
【図６】図６は、本発明の第２の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【符号の説明】
【００６５】
１    半導体集積回路
１０    論理回路
１１    第１スキャンチェーン
１２    第２スキャンチェーン
１３    スキャンフリップフロップ
２０    マスタシーケンサ
３０    ランダムパターン生成回路
４０    段数調整回路
５０    スキャンパッド回路
５１    単位調整回路
５２    セレクタ
５３    追加フリップフロップ
５４    セレクタ
６０    比較回路
７０    マスク回路
８０    ＪＴＡＧ回路
ＣＬＫ      クロック信号
ＳＴ        スタート信号
ＲＥＳＥＴ  リセット信号
ＥＲＲＯＲ  エラー信号
ＲＰＡＴ    ランダムパターン
ＣＯＤＥ    ＪＴＡＧコード
ＳＥＬ１    選択信号
ＳＥＬ２    選択信号
ＣＯＵＴ１  第１チェーン出力信号
ＣＯＵＴ２  第２チェーン出力信号
ＭＴＣＨ    比較結果信号
【図１】
2009085632.tif 000003
【図２】
2009085632.tif 000004
【図３】
2009085632.tif 000005
【図４】
2009085632.tif 000006
【図５】
2009085632.tif 000007
【図６】
2009085632.tif 000008