(57)【要約】【課題】半導体集積回路のテストに必要なテスト端子の本数を削減するとともに、テスト時間を短縮することができるテスト回路を提供する。【解決手段】テスト回路は、半導体集積回路の内部回路をテストするものであって、シリアルデータに変換され、差動入力端子を介して差動入力信号として入力された、内部回路をテストするために用いられる、テストクロックおよびテストデータを含むテスト入力信号を順次受け取る差動入力回路と、差動入力回路が受け取ったテスト入力信号のシリアルデータを、シリアルデータに変換される前の、テストクロックおよびテストデータを含むテスト入力信号に順次変換するテスト入力変換回路と、テスト入力変換回路により変換された、シリアルデータに変換される前のテスト入力信号を、半導体集積回路の内部クロックに同期して順次保持し、内部回路に供給するテスト入力保持回路とを備える。【選択図】図１
2016045123.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の内部回路をテストするテスト回路であって、
シリアルデータに変換され、差動入力端子を介して差動入力信号として入力された、前記内部回路をテストするために用いられる、テストクロックおよびテストデータを含むテスト入力信号を順次受け取る差動入力回路と、
前記差動入力回路が受け取ったテスト入力信号のシリアルデータを、前記シリアルデータに変換される前の、テストクロックおよびテストデータを含むテスト入力信号に順次変換するテスト入力変換回路と、
前記テスト入力変換回路により変換された、前記シリアルデータに変換される前のテスト入力信号を、前記半導体集積回路の内部クロックに同期して順次保持し、前記内部回路に供給するテスト入力保持回路とを備えることを特徴とするテスト回路。
【請求項２】
前記差動入力回路は、前記テストクロックのシリアルデータ、および、１以上の前記テストデータのシリアルデータを含むテスト入力信号のシリアルデータを順次受け取るものである請求項１に記載のテスト回路。
【請求項３】
前記差動入力回路は、前記テストクロックが前記テストデータに重畳された１以上のテスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト回路は、さらに、前記１以上のテスト入力信号のシリアルデータから前記テストクロックのシリアルデータをリカバリし、１以上の前記テストクロックのシリアルデータおよび１以上の前記テストデータのシリアルデータを含む１以上のテスト入力信号のシリアルデータを順次出力するクロックデータリカバリ回路を備える請求項１に記載のテスト回路。
【請求項４】
前記差動入力回路は、前記テストデータとして、テスト結果の期待値を含むテスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト入力変換回路は、前記テスト入力信号のシリアルデータを、さらに、前記シリアルデータに変換される前のテスト結果の期待値を含むテスト入力信号に順次変換するものであり、
前記テスト回路は、さらに、前記テスト入力保持回路に保持されたテストクロックおよび前記内部回路に供給されるテストデータを用いて前記内部回路をテストしたテスト結果と、前記テスト入力保持回路に保持されたテスト結果の期待値とを比較し、比較結果を出力する期待値比較回路を備える請求項１〜３のいずれか１項に記載のテスト回路。
【請求項５】
前記テスト入力変換回路は、
前記テストクロックのシリアルデータに同期して、前記テストデータのシリアルデータをパラレルデータに順次変換するシリアルパラレル変換回路と、
前記パラレルデータの中から同期コードを検出し、前記パラレルデータの中の有効な前記同期コードの開始位置が検出されたか否かを表す同期バリッド信号、および、前記パラレルデータの中の同期コードの位置を表す同期信号を出力する同期検出回路と、
前記同期バリッド信号が、前記有効な同期コードの開始位置が検出されたことを表す場合に、前記同期信号に基づいて、前記パラレルデータの中から有効な前記テスト入力信号を順次抽出するテスト入力抽出回路とを備える請求項１〜４のいずれか１項に記載のテスト回路。
【請求項６】
前記同期検出回路は、
前記パラレルデータの中から現在の前記同期コードを検出し、前記現在の同期コードが検出されたか否かを表す第１の同期コード検出フラグを出力する同期コード検出回路と、
前記同期コード検出回路により、前記現在の同期コードの１個前〜ｉ個前（ｉは１以上の整数）の過去の同期コードが検出されてから、前記テスト入力信号の１フレーム〜ｉフレームの周期に相当する期間が経過した時に、１個前〜ｉ個前の過去の同期コードが検出されたか否かを表す、第２〜第（ｉ＋１）の同期コード検出フラグを出力する第１の同期保護回路と、
前記有効な同期コードの開始位置が検出されていない場合に、前記第１、前記第２〜第（ｉ＋１）の同期コード検出フラグに基づいて、前記現在の同期コード、前記１個前〜ｉ個前の過去の同期コードを含む、（ｉ＋１）個の前記同期コードが連続して検出されたか否かを表す開始検出信号を出力する開始位置検出回路と、
前記開始位置検出回路から出力された開始検出信号が、前記（ｉ＋１）個の同期コードが連続して検出されたことを表す場合に、前記有効な同期コードの開始位置が検出されたことを表す同期バリッド信号を出力し、その後、前記テスト入力信号の１フレームの周期に相当する期間が経過する毎に、前記同期信号を出力する第２の同期保護回路とを備える請求項５に記載のテスト回路。
【請求項７】
前記差動入力回路は、前記テスト入力信号の更新頻度が高くなるほど、より短い符号語を割り当てて可変長符号化された前記テスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト入力変換回路は、さらに、前記可変長符号化された有効なテスト入力信号を、前記可変長符号化に対応する復号化テーブルを用いて、前記可変長符号化される前のテスト入力信号に順次復号化するテスト入力復号化回路を備える請求項１〜６のいずれか１項に記載のテスト回路。
【請求項８】
前記テスト回路は、前記内部回路をスキャンテストするものであり、
前記差動入力回路は、前記スキャンテストの動作モード毎に、異なる符号語を割り当てて可変長符号化された前記テスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト入力復号化回路は、前記スキャンテストの動作モード毎に異なる復号化テーブルを用いて、前記可変長符号化されたシリアルデータを、前記可変長符号化される前のテスト入力信号に順次復号化するものである請求項７に記載のテスト回路。
【請求項９】
前記テスト回路は、前記内部回路をスキャンテストするものである請求項１〜７のいずれか１項に記載のテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルデータに変換され、差動入力端子を介して差動入力信号として入力されたテスト入力信号を用いて、半導体集積回路の内部回路をテストするテスト回路に関するものである。
【背景技術】
【０００２】
例えば、半導体集積回路の内部回路のスキャンテストを行うためには、スキャンイン信号ＳＣＡＮＩＮ、スキャンアウト信号ＳＣＡＮＯＵＴ、スキャンクロック信号ＳＣＫ、スキャンイネーブル信号ＳＥＮの他、スキャンテストの動作モードの切り替え等の制御を行うスキャン制御信号ＳＣＴＬの各々に対応するテスト端子（外部接続端子、入出力（ＩＯ）端子）が必要となる。
【０００３】
また、テスト時間を短縮するために、スキャンイン信号ＳＣＡＮＩＮに対応するテスト端子の本数を多くし、制御性を高める必要がある。原理的に、スキャンイン信号ＳＣＡＮＩＮが１本でもテストを行うことは可能であるが、シングルビットでの転送になるため、転送速度が落ち、送信時間を要する。そのため、複数本の、スキャンイン信号ＳＣＡＮＩＮに対応するテスト端子を用意するのが一般的である。
【０００４】
スキャンテストの従来技術としては、特許文献１のように、圧縮されたテストパターンを半導体集積回路に入力し、圧縮されたテストパターンを半導体集積回路の内部で伸張し、伸張されたテストパターンを用いてスキャンテストを行ったテスト結果を圧縮して出力するテスト手法が知られている。また、特許文献２のように、スキャンテストのテストパターンの圧縮率を高める手法についても提案されている。
【０００５】
また、本発明に関連性のある先行技術文献として、スキャンテスト機能を有する解析装置に関する特許文献３、半導体集積回路のスキャンパスと半導体集積回路の入出力ピンの間で、それらの本数とタイミングを変換するスキャン入力変換回路とスキャン出力変換回路を含むスキャンテスト回路等に関する特許文献４、半導体集積回路装置のスキャンパス試験方法及び回路に関する特許文献５などがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００５／０２６８１９４号明細書
【特許文献２】特開２００６−３０８３０２号公報
【特許文献３】特開２００８−８９５４５号公報
【特許文献４】特開２０００−２１４２２６号公報
【特許文献５】特開平１１−２１１７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、テストパターンの圧縮技術を用いたとしても、ピン数（外部接続端子数）が少ない半導体集積回路では、スキャンイン信号ＳＣＡＮＩＮに対応する十分な数のテスト端子数が確保できないため、テスト時間が増加するという問題がある。また、半導体集積回路のテスト時に、半導体集積回路の内蔵発振器（内部クロック）を用いず、外部からクロックを入力する場合、汎用のデジタル外部接続端子の特性上、クロック周波数の向上が見込めないという問題がある。
【０００８】
本発明の目的は、前記従来技術の問題点を解消し、半導体集積回路のテストに必要なテスト端子の本数を削減するとともに、テスト時間を短縮することができるテスト回路を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、半導体集積回路の内部回路をテストするテスト回路であって、
シリアルデータに変換され、差動入力端子を介して差動入力信号として入力された、前記内部回路をテストするために用いられる、テストクロックおよびテストデータを含むテスト入力信号を順次受け取る差動入力回路と、
前記差動入力回路が受け取ったテスト入力信号のシリアルデータを、前記シリアルデータに変換される前の、テストクロックおよびテストデータを含むテスト入力信号に順次変換するテスト入力変換回路と、
前記テスト入力変換回路により変換された、前記シリアルデータに変換される前のテスト入力信号を、前記半導体集積回路の内部クロックに同期して順次保持し、前記内部回路に供給するテスト入力保持回路とを備えることを特徴とするテスト回路を提供するものである。
【００１０】
ここで、前記差動入力回路は、前記テストクロックのシリアルデータ、および、１以上の前記テストデータのシリアルデータを含むテスト入力信号のシリアルデータを順次受け取るものであることが好ましい。
【００１１】
また、前記差動入力回路は、前記テストクロックが前記テストデータに重畳された１以上のテスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト回路は、さらに、前記１以上のテスト入力信号のシリアルデータから前記テストクロックのシリアルデータをリカバリし、１以上の前記テストクロックのシリアルデータおよび１以上の前記テストデータのシリアルデータを含む１以上のテスト入力信号のシリアルデータを順次出力するクロックデータリカバリ回路を備えることが好ましい。
【００１２】
また、前記差動入力回路は、前記テストデータとして、テスト結果の期待値を含むテスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト入力変換回路は、前記テスト入力信号のシリアルデータを、さらに、前記シリアルデータに変換される前のテスト結果の期待値を含むテスト入力信号に順次変換するものであり、
前記テスト回路は、さらに、前記テスト入力保持回路に保持されたテストクロックおよび前記内部回路に供給されるテストデータを用いて前記内部回路をテストしたテスト結果と、前記テスト入力保持回路に保持されたテスト結果の期待値とを比較し、比較結果を出力する期待値比較回路を備えることが好ましい。
【００１３】
また、前記テスト入力変換回路は、
前記テストクロックのシリアルデータに同期して、前記テストデータのシリアルデータをパラレルデータに順次変換するシリアルパラレル変換回路と、
前記パラレルデータの中から同期コードを検出し、前記パラレルデータの中の有効な前記同期コードの開始位置が検出されたか否かを表す同期バリッド信号、および、前記パラレルデータの中の同期コードの位置を表す同期信号を出力する同期検出回路と、
前記同期バリッド信号が、前記有効な同期コードの開始位置が検出されたことを表す場合に、前記同期信号に基づいて、前記パラレルデータの中から有効な前記テスト入力信号を順次抽出するテスト入力抽出回路とを備えることが好ましい。
【００１４】
また、前記同期検出回路は、
前記パラレルデータの中から現在の前記同期コードを検出し、前記現在の同期コードが検出されたか否かを表す第１の同期コード検出フラグを出力する同期コード検出回路と、
前記同期コード検出回路により、前記現在の同期コードの１個前〜ｉ個前（ｉは１以上の整数）の過去の同期コードが検出されてから、前記テスト入力信号の１フレーム〜ｉフレームの周期に相当する期間が経過した時に、１個前〜ｉ個前の過去の同期コードが検出されたか否かを表す、第２〜第（ｉ＋１）の同期コード検出フラグを出力する第１の同期保護回路と、
前記有効な同期コードの開始位置が検出されていない場合に、前記第１、前記第２〜第（ｉ＋１）の同期コード検出フラグに基づいて、前記現在の同期コード、前記１個前〜ｉ個前の過去の同期コードを含む、（ｉ＋１）個の前記同期コードが連続して検出されたか否かを表す開始検出信号を出力する開始位置検出回路と、
前記開始位置検出回路から出力された開始検出信号が、前記（ｉ＋１）個の同期コードが連続して検出されたことを表す場合に、前記有効な同期コードの開始位置が検出されたことを表す同期バリッド信号を出力し、その後、前記テスト入力信号の１フレームの周期に相当する期間が経過する毎に、前記同期信号を出力する第２の同期保護回路とを備えることが好ましい。
【００１５】
また、前記差動入力回路は、前記テスト入力信号の更新頻度が高くなるほど、より短い符号語を割り当てて可変長符号化された前記テスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト入力変換回路は、さらに、前記可変長符号化された有効なテスト入力信号を、前記可変長符号化に対応する復号化テーブルを用いて、前記可変長符号化される前のテスト入力信号に順次復号化するテスト入力復号化回路を備えることが好ましい。
【００１６】
また、前記テスト回路は、前記内部回路をスキャンテストするものであり、
前記差動入力回路は、前記スキャンテストの動作モード毎に、異なる符号語を割り当てて可変長符号化された前記テスト入力信号のシリアルデータを順次受け取るものであり、
前記テスト入力復号化回路は、前記スキャンテストの動作モード毎に異なる復号化テーブルを用いて、前記可変長符号化されたシリアルデータを、前記可変長符号化される前のテスト入力信号に順次復号化するものであることが好ましい。
【００１７】
また、前記テスト回路は、前記内部回路をスキャンテストするものであることが好ましい。
【発明の効果】
【００１８】
本発明によれば、テスト入力信号を、シリアルデータに変換した後、差動入力端子を介して差動入力信号として半導体集積回路へ入力するため、テスト入力信号を、汎用のデジタル外部接続端子を介して入力する従来の半導体集積回路と比べて、テスト端子を大幅に削減することができる。そのため、半導体集積回路のピン数が少ない場合であっても、テスト端子の不足を回避することができる。
【００１９】
また、本発明によれば、汎用のデジタル外部接続端子を利用せず、差動入力端子を介して、精度の高い高速クロックを入力することが可能となるため、スキャンテストの高速化が可能となり、テスト時間を大幅に短縮することができる。また、クロックの精度が上がることにより、設計上のマージンを増やすことができるため、テストを安定化させることができるとともに、スキャン制御回路に起因する消費電力の増加やレイアウト面積の増大を防止することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明のテスト回路を採用する半導体集積回路の構成を表す一実施形態のブロック図である。
【図２】シリアルデータの構成を表す一実施形態の概念図である。
【図３】（Ａ）は、固定長符号化されたシリアルデータ、（Ｂ）は、可変長符号化されたシリアルデータを表す一実施形態の概念図である。
【図４】本発明のテスト回路を採用する半導体集積回路の構成を表す別の実施形態のブロック図である。
【図５】本発明のテスト回路を採用する半導体集積回路の構成を表す別の実施形態のブロック図である。
【図６】テスト入力変換回路の構成を表す一実施形態のブロック図である。
【図７】同期検出回路の動作を表す一実施形態のフローチャートである。
【発明を実施するための形態】
【００２１】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のテスト回路を詳細に説明する。
【００２２】
図１は、本発明のテスト回路を採用する半導体集積回路の構成を表す一実施形態のブロック図である。同図に示す半導体集積回路（ＬＳＩ）１０は、シリアルデータに変換され、差動入力端子を介して差動入力信号として入力されたテスト入力信号を用いて、テスト対象である内部回路１２をスキャンテストするテスト回路を搭載するものである。
テスト回路は、差動入力回路１６と、テスト入力変換回路１８と、テスト入力保持回路２０と、期待値比較回路２２とを備えている。
【００２３】
ここで、図１には、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号ＳＣＡＮＯＵＴに対応する５種類の仮想テスト端子が示されている。同図に示す［０−Ｘ］は、仮想テスト端子が複数ビットで構成されることを表す。仮想テスト端子は、半導体集積回路１０の内部に設けられた、内部回路１２をスキャンテストするために用いられる仮想的なテスト端子である。
【００２４】
なお、テスト回路がスキャンテストを行うものであることは必須ではなく、例えば、メモリのＢＩＳＴ（Built-In Self Test：自己診断）回路などのように、他のテストを行うものであってもよい。本実施形態のテスト回路は、半導体集積回路１０のピン数（外部接続端子数）の削減や、テスト時間の短縮化の効果が得られるため、特に、スキャンテストのように、テストに必要なピン数が多いものや、テストパターンが長いものに適用するのが望ましい。
【００２５】
差動入力回路１６は、シリアルデータに変換され、可変長符号化された後、差動入力端子（外部接続端子）を介して差動入力信号として入力された、内部回路１２をテストするために用いられる、テストクロックｃｌｏｃｋおよびテストデータｄａｔａを含むテスト入力信号を受け取るものである。
本実施形態の差動入力回路１６は、テスト入力信号のシリアルデータとして、ＬＶＤＳ（Low voltage differential signaling）の規格で規定された小振幅差動入力信号を受け取る、差動入力回路１６ａと、差動入力回路１６ｂとを備えている。
【００２６】
差動入力回路１６ａは、テストクロックｃｌｏｃｋのシリアルデータ、本実施形態の場合、スキャンクロック信号ＳＣＫのシリアルデータを受け取るものである。
差動入力回路１６ｂは、テストデータｄａｔａのシリアルデータ、本実施形態の場合、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号（テスト結果の期待値）ＳＣＡＮＯＵＴを含むシリアルデータを受け取るものである。
【００２７】
なお、差動入力回路１６は、ＬＶＤＳに限らず、例えば、ｍｉｎｉ−ＬＶＤＳ、ｓｕｂ−ＬＶＤＳ、ＳＬＶＳ（Scalable Low-Voltage Signaling）等のように、差動入力端子を介して差動入力信号として入力される、テスト入力信号のシリアルデータを受け取ることができる。
【００２８】
本実施形態のシリアルデータは、図２に示すように、プリアンブル（preamble）呼ばれる、あらかじめ設定された固定ビット長の特定パターンの同期コードと、この同期コードに続く、固定ビット長のスキャンコントロールデータ（scan_control_data）と呼ばれるテスト入力信号のシリアルデータとを１フレーム（frame）のシリアルデータとして、複数のフレームのシリアルデータが差動入力回路１６へ順次入力される。
各々のフレームのテスト入力信号のシリアルデータは固定ビット長であるため、シリアルデータの中から同期コードの位置を検出することにより、有効なテスト入力信号のシリアルデータの開始位置（同期位置）を特定することができる。
【００２９】
また、スキャンテストに必要なテスト入力信号のうち、一般的には、スキャンクロック信号ＳＣＫとスキャンイン信号ＳＣＡＮＩＮの更新頻度は高いが、スキャンイネーブル信号ＳＥＮやスキャン制御信号ＳＣＴＬの更新頻度は低い。そこで、本実施形態の差動入力回路１６は、テスト入力信号の更新頻度が高くなるほど、より短い符号語を割り当てて可変長符号化されたテスト入力信号のシリアルデータを順次受け取る。
【００３０】
ここで、図３（Ａ）は、固定長符号化されたシリアルデータ、同図（Ｂ）は、可変長符号化されたシリアルデータを表す一実施形態の概念図である。同図（Ａ）に示す固定長符号化されたシリアルデータは、スキャンイン信号ＳＣＡＮＩＮの反転信号、スキャンクロック信号ＳＣＫ、スキャンクロック信号ＳＣＫ、スキャンアウト信号ＳＣＡＮＯＵＴの反転信号、スキャンクロック信号ＳＣＫ、スキャンイネーブル信号ＳＥＮ、スキャン制御信号ＳＣＴＬ、…の順に、固定長符号化されたシリアルデータが並んでいる。同図（Ｂ）に示す可変長符号化されたシリアルデータも同様である。
【００３１】
スキャンイン信号ＳＣＡＮＩＮの反転信号は、スキャンイン信号ＳＣＡＮＩＮの全てのビットを一括で反転するのではなく、個別のスキャンイン信号ＳＣＡＮＩＮについて反転した信号である。これは、従来のスキャンテスト手法でテスト端子（外部接続端子）に割り当てられていた各々のテスト端子に対して符号語を割り当てることにより、シリアルデータのデコード結果からコントロールするという考え方である。スキャンイン信号ＳＣＡＮＩＮを反転せずに転送した場合、復号化する時に、スキャンイン信号ＳＣＡＮＩＮが０／１となるような復号化テーブルを用意すると、２つの符号語が必要となる。これに対して、スキャンイン信号ＳＣＡＮＩＮの反転信号を転送した場合、復号化する時に、１つの符号語で表現できるという利点がある。スキャンアウト信号ＳＣＡＮＯＵＴの反転信号も同様である。
【００３２】
図３（Ａ）および（Ｂ）に示すように、各々のテスト入力信号の更新頻度が異なる場合に、テスト入力信号の更新頻度が高くなるほど、より短い符号語を割り当てて可変長符号化することにより、固定長符号化するよりも、効率的に符号化することができるため、スキャンテストのためのテストパターンのパターン長を短縮することができる。特に、最も更新頻度の高いスキャンクロック信号ＳＣＫのテスト入力信号を効率よく生成することが可能である。
【００３３】
なお、差動入力回路１６が、可変長符号化されたテスト入力信号のシリアルデータを受け取ることは必須ではなく、固定長符号化されたテスト入力信号のシリアルデータや、符号化されていないテスト入力信号のシリアルデータを受け取る構成としてもよい。
【００３４】
また、差動入力回路１６が、１本のテストデータｄａｔａのシリアルデータを受け取ることは必須ではなく、図４に示すように、２本以上のテストデータｄａｔａ０、ｄａｔａ１、ｄａｔａ２，…、ｄａｔａＸのシリアルデータを順次受け取る構成としてもよい。
【００３５】
あるいは、図５に示すように、差動入力回路１６が、テストクロックｃｌｏｃｋがテストデータｄａｔａに重畳されたテスト入力信号のシリアルデータを順次受け取り、ＣＤＲ（クロックデータリカバリ）回路２４により、テスト入力信号のシリアルデータからテストクロックｃｌｏｃｋのシリアルデータをリカバリし、テストクロックｃｌｏｃｋのシリアルデータおよびテストデータｄａｔａのシリアルデータを含むテスト入力信号のシリアルデータを順次出力する構成としてもよい。
この場合も、差動入力回路１６が、１本のテスト入力信号のシリアルデータを受け取ることは必須ではなく、２本以上のテスト入力信号のシリアルデータを順次受け取る構成としてもよい。
【００３６】
続いて、テスト入力変換回路１８は、差動入力回路１６が受け取ったテスト入力信号のシリアルデータを、シリアルデータに変換される前の、かつ、可変長符号化される前の、テストクロックｃｌｏｃｋおよびテストデータｄａｔａを含むテスト入力信号に順次変換するものである。
本実施形態のテスト入力変換回路１８は、差動入力回路１６が受け取ったテスト入力信号のシリアルデータを、シリアルデータに変換される前の、かつ、可変長符号化される前の、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号ＳＣＡＮＯＵＴに順次変換する。
【００３７】
続いて、テスト入力保持回路２０は、前述の仮想テスト端子として機能し、テスト入力変換回路１８により変換された、シリアルデータに変換される前の、かつ、可変長符号化される前のテスト入力信号を、半導体集積回路１０の内部クロック（図示省略）に同期して順次保持し、内部回路１２に供給するものである。
本実施形態のテスト入力保持回路２０は、シリアルデータに変換される前の、かつ、可変長符号化される前の、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号ＳＣＡＮＯＵＴを、内部クロックに同期して順次保持して出力するフリップフロップ（ＦＦ）を備えている。つまり、仮想テスト端子は、順序回路により構成されている。
【００３８】
続いて、期待値比較回路２２は、テスト入力保持回路２０に保持された、テストクロックｃｌｏｃｋおよび内部回路１２に供給されるテストデータｄａｔａを用いて内部回路１２をテストしたテスト結果と、同じくテスト入力保持回路２０に保持されたテスト結果の期待値とを比較し、その比較結果を、外部接続端子を介して半導体集積回路１０の外部へ出力するものである。
本実施形態の期待値比較回路２２は、テスト入力保持回路２０に保持された、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬを用いて内部回路１２をテストしたテスト結果と、テスト入力保持回路２０に保持された、スキャンアウト信号ＳＣＡＮＯＵＴとを比較し、その比較結果を出力する。
【００３９】
なお、期待値比較回路２２を備えることは必須ではない。内部回路１２から出力されるテスト結果を、例えば、スキャンチェーンのチェーン方向に圧縮（ＥＯＲ回路により、複数のスキャンチェーンの出力をＥＯＲ演算して圧縮）し、かつ、サイクル方向に圧縮（ＥＯＲ回路により、スキャンチェーンの複数のサイクルの出力をＥＯＲ演算して圧縮）した後、ＬＳＩテスタが受信可能な周期で、外部接続端子を介して半導体集積回路１０の外部へ出力する構成としてもよい。
【００４０】
次に、テスト入力変換回路１８について具体例を挙げて説明する。
【００４１】
図６は、テスト入力変換回路の構成を表す一実施形態のブロック図である。同図に示すテスト入力変換回路１８は、シリアルパラレル変換回路２６と、同期検出回路２８と、テスト入力生成回路３０とを備えている。
【００４２】
シリアルパラレル変換回路２６は、差動入力回路１６が受け取ったテストクロックｃｌｏｃｋのシリアルデータに同期して、テストデータｄａｔａのシリアルデータをパラレルデータに順次変換するものである。
【００４３】
同期検出回路２８は、シリアルパラレル変換回路２６により変換されたパラレルデータの中から同期コードを検出し、パラレルデータの中の有効な同期コードの開始位置（同期位置）が検出されたか否かを表す同期バリッド信号、および、パラレルデータの中の同期コードの位置を表す同期信号を出力するものである。
同期検出回路２８は、同期コード検出回路３２と、同期保護回路３４，３６と、開始位置検出回路３８と、同期保護回路４０とを備えている。
【００４４】
同期コード検出回路３２は、パラレルデータの中から現在の同期コードを検出し、現在（今回）の同期コードが検出されたか否かを表す第１の同期コード検出フラグを出力するものである。
同期コードとして、あらかじめ固定ビット長の特定パターンが設定されているため、同期コード検出回路３２は、パラレルデータの中から、あらかじめ設定された特定パターンを検出することにより、同期パターンを検出することができる。
同期コード検出回路３２は、現在の同期コードが検出された時に、第１の同期コード検出フラグとして、例えば、アクティブ状態のハイレベルを出力する。
【００４５】
同期保護回路３４は、同期コード検出回路３２により、現在の同期コードの１個前の過去（前回）の同期コ−ドが検出されてから、テスト入力信号の１フレームの周期に相当する期間が経過した時に、１個前の過去の同期コードが検出されたか否かを表す第２の同期コード検出フラグを出力するものである。
同期保護回路３４は、例えば、第１の同期コード検出フラグがアクティブ状態のハイレベルとなった時にリセットされるカウンタを備えている。リセットが解除された後、カウンタにより、内部クロックに同期して、テスト入力信号の１フレームの周期に相当するカウント値までカウントした時に、同期保護回路３４は、１個前の過去の同期コードが検出されたことを表す第２の同期コード検出フラグとして、例えば、アクティブ状態のハイレベルを出力する。
【００４６】
同様に、同期保護回路３６は、同期コード検出回路３２により、現在の同期コードの２個前の過去（前々回）の同期コ−ドが検出されてから、テスト入力信号の２フレームの周期に相当する期間が経過した時に、２個前の過去の同期コードが検出されたか否かを表す第３の同期コード検出フラグを出力するものである。
同期保護回路３６は、例えば、第２の同期コード検出フラグがアクティブ状態のハイレベルとなった時にリセットされるカウンタを備えている。リセットが解除された後、カウンタにより、内部クロックに同期して、テスト入力信号の１フレームの周期に相当するカウント値までカウントした時に、同期保護回路３６は、２個前の過去の同期コードが検出されたことを表す第３の同期コード検出フラグとして、例えば、アクティブ状態のハイレベルを出力する。
【００４７】
開始位置検出回路３８は、同期バリッド信号が非アクティブ状態の場合に、つまり、有効な同期コードの開始位置が検出されていない、同期保護が未確立の場合に、第１、第２および第３の同期コード検出フラグに基づいて、現在の同期コード、１個前および２個前の過去の同期コードを含む、３個の同期コードが連続して同じ位相の位置で検出されたか否かを表す開始検出信号を出力するものである。
【００４８】
テスト入力信号の１フレームのビット長は固定である。従って、複数のフレームのテスト入力信号のシリアルデータが連続して入力される場合、例えば、２回前の過去の同期コードが検出されてから、テスト入力信号の１フレームの周期に相当する期間が経過した後に、１回前の過去の同期コードが受信されると推測することができる。１回前の過去の同期コードに対する現在の同期コードの場合も同様である。
【００４９】
従って、第１、第２および第３の同期コード検出フラグがアクティブ状態のハイレベルである場合、現在の同期コード、１個前および２個前の過去の同期コードを含む、３個の同期コードが連続して検出されたことを意味する。本実施形態の開始位置検出回路３８は、第１、第２および第３の同期コード検出フラグの多数決をとって、３個の同期コードが連続して検出された場合に、有効な同期コードの開始位置が検出された（同期保護が確立された）と判断し、開始検出信号として、アクティブ状態のハイレベルを出力する。
【００５０】
なお、開始位置検出回路３８は、３個の同期コードが連続して検出された場合に限らず、２個以上の同期コードが連続して検出された場合に、２個以上の同期コードが連続して検出されたことを表す開始検出信号を出力してもよい。
【００５１】
同期保護回路４０は、開始位置検出回路３８から出力された開始検出信号が、３個の同期コードが連続して検出されたことを表す場合に、有効な同期コードの開始位置が検出されたことを表すアクティブ状態の同期バリッド信号を出力し、その後、テスト入力信号の１フレームの周期に相当する期間が経過する毎に、アクティブ状態となる同期信号を出力するものである。
同期保護回路４０は、例えば、開始検出信号がハイレベルの場合にリセットされるカウンタを備えている。リセットが解除された後、カウンタにより、内部クロックに同期して、テスト入力信号の１フレームの周期に相当するカウント値までカウントした時に、同期保護回路４０は、アクティブ状態のハイレベルの同期信号を出力する。その後、同期信号が出力される毎にリセットされ、リセットが解除された後、前述のカウント値までカウントする毎に、アクティブ状態のハイレベルの同期信号を出力する。
【００５２】
次に、図７のフローチャートを参照しながら、同期検出回路２８の動作を説明する。
【００５３】
同期検出回路２８は、同期保護が確立される前の未確立の状態であるとする。この場合、同期保護回路４０から出力される同期バリッド信号および同期信号は非アクティブ状態（ネゲート状態）とされる（ステップＳ１）。これにより、同期検出回路２８において同期保護を確立するための処理が開始されるとともに、テスト入力生成回路３０は非アクティブ状態となる。
【００５４】
同期保護を確立するための処理が開始されると、まず、同期コード検出回路３２により、パラレルデータの中から現在の同期コードが検出される（ステップＳ２）。そして、同期コードが検出された時に、同期コード検出回路３２から、第１の同期コード検出フラグとして、アクティブ状態のハイレベルが出力される。これ以後も同様にして、同期コード検出回路３２により、パラレルデータの中から同期コードが検出される。
【００５５】
第１の同期コード検出フラグがアクティブ状態のハイレベルになった時、同期保護回路３４が備えるカウンタがリセットされる。そして、リセットが解除された後、カウンタにより、内部クロックに同期して、テスト入力信号の１フレームの周期に相当するカウント値までカウントされた時に、同期保護回路３４から、第２の同期コード検出フラグとして、アクティブ状態のハイレベルが出力される（ステップＳ３）。
【００５６】
また、前述のように、同期コード検出回路３２により、パラレルデータの中から次の同期コードが検出された時に、同期コード検出回路３２から、第１の同期コード検出フラグとして、アクティブ状態のハイレベルが出力される（ステップＳ４）。
【００５７】
続いて、第２の同期コード検出フラグがアクティブ状態のハイレベルになった時、同期保護回路３６が備えるカウンタがリセットされる。そして、リセットが解除された後、カウンタにより、内部クロックに同期して、テスト入力信号の１フレームの周期に相当するカウント値までカウントされた時に、同期保護回路３６から、第３の同期コード検出フラグとして、アクティブ状態のハイレベルが出力される（ステップＳ５）。
【００５８】
同様に、同期コード検出回路３２により、パラレルデータの中から次の同期コードが検出された時、同期コード検出回路３２から、第１の同期コード検出フラグとして、アクティブ状態のハイレベルが出力される（ステップＳ６）。
【００５９】
続いて、開始位置検出回路３８により、同期信号が非アクティブ状態の場合に、第１、第２および第３の同期コード検出フラグに基づいて、現在の同期コード、１個前および２個前の過去の同期コードを含む、３個の同期コードが連続して同じ位相の位置で検出されたか否か、つまり、第１、第２および第３の同期コード検出フラグがアクティブ状態のハイレベルであるか否かが検出される（ステップＳ７）。
【００６０】
そして、３個の同期コードが連続して同じ位置で検出されなかった場合（ステップＳ７でＮＯ）、つまり、第１、第２および第３の同期コード検出フラグがアクティブ状態のハイレベルとなっていなかった場合、ステップＳ５へ戻り、前述の動作が繰り返される。
一方、３個の同期コードが連続して同じ位置で検出された場合（ステップＳ７でＹＥＳ）、つまり、第１、第２および第３の同期コード検出フラグがアクティブ状態のハイレベルとなった時に、開始位置検出回路３８から、開始検出信号として、アクティブ状態のハイレベルが出力される。
【００６１】
開始検出信号がアクティブ状態のハイレベルになった時、同期保護回路４０が備えるカウンタがリセットされる。つまり、同期コードの検出位置が同期保護回路４０に保持される（ステップＳ８）。これにより、同期保護が確立されて、同期バリッド信号および同期信号の非アクティブ状態が解除されてアクティブ状態（アサート状態）とされ、これらの信号の出力が開始される（ステップＳ９）。
【００６２】
また、同期保護回路４０では、リセットが解除された後、カウンタにより、内部クロックに同期して、テスト入力信号の１フレームの周期に相当するカウント値までカウントされた時に、同期保護回路４０から、同期信号として、アクティブ状態のハイレベルが出力される（ステップＳ１０）。
【００６３】
同様に、同期コード検出回路３２により、パラレルデータの中から次の同期コードが検出された時、同期コード検出回路３２から、第１の同期コード検出フラグとして、アクティブ状態のハイレベルが出力される（ステップＳ１１）。
【００６４】
続いて、開始位置検出回路３８により、同期信号がアクティブ状態のハイレベルになった時に、第１の同期コード検出フラグおよび同期信号に基づいて、同期コード検出回路３２により検出された同期コードと、同期保護回路４０により生成された同期コードとが同じ位相の位置で検出されたか否かが検出される（ステップＳ１２）。
【００６５】
そして、両方の同期コードが同じ位相の位置で検出されなかった場合（ステップＳ１２でＮＯ）、つまり、同期保護が未確立となった場合、ステップＳ１へ戻り、前述の動作が繰り返される。
一方、両方の同期コードが同じ位相の位置で検出された場合（ステップＳ１２でＹＥＳ）、つまり、同期保護が確立されている場合、ステップＳ１０へ戻り、前述の動作が繰り返される。
【００６６】
続いて、テスト入力生成回路３０は、同期検出回路２８から出力された同期バリッド信号が、有効な同期コードの開始位置が検出されたことを表す場合に、同期信号に基づいて、パラレルデータの中から有効なテスト入力信号を順次抽出し、可変長符号化される前のテスト入力信号に復号化するものである。
テスト入力生成回路３０は、テスト入力抽出回路４２と、テスト入力復号化回路４４とを備えている。
【００６７】
テスト入力抽出回路４２は、同期バリッド信号が、有効な同期コードの開始位置が検出されたことを表す場合に、本実施形態の場合、同期バリッド信号がアクティブ状態のハイレベルである場合に、同期信号に基づいて、パラレルデータの中から有効なテスト入力信号を抽出するものである。
各々のフレームのテスト入力信号のシリアルデータは、あらかじめ設定された固定ビット長のデータである。そのため、本実施形態のテスト入力抽出回路４２は、同期信号が表す同期コードの位置に基づいて、パラレルデータから、テスト入力信号に含まれる、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号ＳＣＡＮＯＵＴを抽出することができる。
【００６８】
テスト入力復号化回路４４は、テスト入力抽出回路４２により抽出された、可変長符号化された有効なテスト入力信号を、可変長符号化に対応する復号化テーブルを用いて、可変長符号化される前のテスト入力信号に順次復号化するものである。
本実施形態のテスト入力復号化回路４４は、可変長符号化される前のテスト入力信号として、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号ＳＣＡＮＯＵＴを出力する。
【００６９】
本実施形態のように、テスト回路が、内部回路１２をスキャンテストするものである場合、差動入力回路１６が、スキャンテストの動作モード（シフトモード、キャプチャモード等）毎に、異なる符号語を割り当てて可変長符号化されたテスト入力信号のシリアルデータを受け取り、テスト入力復号化回路４４が、スキャンテストの動作モード毎に異なる復号化テーブルを用いて、可変長符号化されたシリアルデータを、可変長符号化される前のテスト入力信号に順次復号化してもよい。これにより、スキャンテストの動作モード毎に、スキャンテストのためのテストパターンのパターン長を短縮することができる。
【００７０】
次に、テスト回路の概略動作を説明する。
【００７１】
テスト入力信号であるテストクロックｃｌｏｃｋおよびテストデータｄａｔａは、それぞれ、シリアルデータに変換され、可変長符号化された後、差動入力端子を介して差動入力信号として半導体集積回路１０へ順次入力される。
【００７２】
ここで、テスト入力信号を、汎用のデジタル外部接続端子を介して入力する場合、例えば、周波数３０ＭＨｚ程度の入力レートでしか入力することはできない。
これに対し、テストクロックｃｌｏｃｋおよびテストデータｄａｔａは、差動入力端子を介して差動入力信号として入力されるため、例えば、周波数６００ＭＨｚ程度の高速な入力レートで入力することが可能である。
【００７３】
続いて、差動入力信号として入力された、テストクロックｃｌｏｃｋのシリアルデータおよびテストデータｄａｔａのシリアルデータは、それぞれ、差動入力回路１６ａ、１６ｂにより順次受信される。
【００７４】
差動入力回路１６ａ、１６ｂが受け取ったテストクロックｃｌｏｃｋのシリアルデータおよびテストデータｄａｔａのシリアルデータは、テスト入力変換回路１８により、シリアルデータに変換される前の、かつ、可変長符号化される前のテスト入力信号、本実施形態の場合、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、スキャン制御信号ＳＣＴＬ、および、スキャンアウト信号ＳＣＡＮＯＵＴに順次変換される。
【００７５】
続いて、テスト入力変換回路１８により変換されたテスト入力信号は、テスト入力保持回路２０により、内部クロックに同期して順次保持されて出力される。つまり、テスト入力信号が、仮想テスト端子に順次与えられ、内部回路１２に供給される。
【００７６】
内部回路１２は、テスト入力保持回路２０に保持されたテスト入力信号、本実施形態の場合、スキャンイン信号ＳＣＡＮＩＮ、スキャンイネーブル信号ＳＥＮ、スキャンクロック信号ＳＣＫ、および、スキャン制御信号ＳＣＴＬに応じて動作し、つまり、テストされ、そのテスト結果が内部回路１２から出力される。
【００７７】
続いて、期待値比較回路２２により、内部回路１２から出力されたテスト結果と、テスト保持回路２０に保持されたテスト結果の期待値、本実施形態の場合、スキャンアウト信号ＳＣＡＮＯＵＴとが比較され、その比較結果が、外部接続端子を介して順次半導体集積回路１０の外部へ出力される。
【００７８】
テスト回路を採用する半導体集積回路１０では、テスト入力信号を、シリアルデータに変換した後、差動入力端子を介して差動入力信号として半導体集積回路１０へ入力するため、テスト入力信号を、汎用のデジタル外部接続端子を介して入力する従来の半導体集積回路と比べて、テスト端子を大幅に削減することができる。そのため、半導体集積回路のピン数が少ない場合であっても、テスト端子の不足を回避することができる。
【００７９】
また、従来の半導体集積回路が、例えば、テスト入力信号として、３０本のスキャンイン信号ＳＣＡＮＩＮ、１０本のスキャンアウト信号ＳＣＡＮＯＵＴを使用し、周波数３０ＭＨｚで動作するとする。この場合、従来の半導体集積回路では、合計のデータレートは、（３０＋１０）＊３０ＭＨｚ＝１２００Ｍｐｂｓとなる。なお、スキャンイネーブル信号ＳＥＮおよびスキャン制御信号ＳＣＴＬは信号変化が少ないため、計算から除外している。
これに対し、本実施形態の半導体集積回路１０であれば、図１に示すように、テストクロックｃｌｏｃｋとテストデータｄａｔａとを分離して入力する場合、テスト入力信号として、データ４ペア（８本）＋クロック１ペア（２本）の差動入力信号を使用し、周波数６００ＭＨｚ（クロックの立上りと立下りでデータを入力するダブルデータレート）で動作させることにより、合計のデータレートは、４＊６００ＭＨｚ＊２＝４８００Ｍｂｐｓとなり、従来手法に対して４倍のデータレートを確保することができる。また、プリアンブル付加や、スキャンクロック信号ＳＣＫ、スキャンイネーブル信号ＳＥＮ、スキャン制御信号ＳＣＴＬの制御が必要であるためオーバヘッドがあるが、可変長符号化により圧縮される分でオーバヘッドを打ち消すことが可能である。
また、ＣＤＲ回路２４を用いる場合は、テスト入力信号を、さらに高速で、例えば、３ＧＨｚで入力することが可能である。
【００８０】
また、本実施形態の半導体集積回路１０では、汎用のデジタル外部接続端子を利用せず、差動入力端子を介して、精度の高い高速クロックを入力することが可能となるため、スキャンテストの高速化が可能となり、テスト時間を大幅に短縮することができる。また、クロックの精度が上がることにより、設計上のマージンを増やすことができるため、テストを安定化させることができるとともに、スキャン制御回路に起因する消費電力の増加やレイアウト面積の増大を防止することができる。
【００８１】
また、仮想テスト端子以降の回路は、従来と同様の実装が可能であり、既存のスキャン合成挿入／ＡＴＰＧ（Automatic Test Pattern Generation：自動テストパターン生成）ツールなどをそのまま流用することが可能である。
【００８２】
なお、テスト入力信号を入力する差動入力端子や、内部回路１２から出力されるテスト結果と、テスト結果の期待値とを比較した比較結果を出力する外部接続端子は、専用ピンを設けてもよいが、半導体集積回路１０が差動入力端子等を備えている場合には、その既存のピンを共用することができる。
また、ＣＤＲ回路２４を用いる場合も、専用のＣＤＲ回路２４を設けてもよいが、半導体集積回路１０がＣＤＲ回路を備えている場合には、その既存のＣＤＲ回路を共用することができる。
【００８３】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【００８４】
１０  半導体集積回路（ＬＳＩ）
１２  内部回路
１６  差動入力回路
１８  テスト入力変換回路
２０  テスト入力保持回路
２２  期待値比較回路
２４  ＣＤＲ（クロックデータリカバリ）回路
２６  シリアルパラレル変換回路
２８  同期検出回路
３０  テスト入力生成回路
３２  同期コード検出回路
３４，３６，４０  同期保護回路
３８  開始位置検出回路
４２  テスト入力抽出回路
４４  テスト入力復号化回路
【図１】
2016045123.tif 000003
【図２】
2016045123.tif 000004
【図３】
2016045123.tif 000005
【図４】
2016045123.tif 000006
【図５】
2016045123.tif 000007
【図６】
2016045123.tif 000008
【図７】
2016045123.tif 000009