説明

半導体集積回路の検査方法および半導体集積回路

【課題】半導体集積回路のクロックに一定周波数のクロックのみを供給しつつ半導体集積回路の内部クロックを動的に変化させて半導体集積回路のランダム・ロジックを検査する。
【解決手段】複数の組み合わせ回路と当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップとを有する半導体集積回路、の検査方法を、クロック生成装置から前記半導体集積回路に一定周波数の第1クロックを入力する入力工程と、前記半導体集積回路の内蔵する分周器が前記第1クロックを分周して第2クロックを生成する分周工程と、前記複数のスキャンフリップフロップに入力するクロックを、前記第1クロックと前記第2クロックとの間で動的に切り替えつつ前記半導体集積回路を検査する検査工程と、により構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は半導体集積回路の検査方法と半導体集積回路に関し、特に、論理回路と、当該複数の論理回路のスキャンテストを行うスキャンフリップフロップと、を有する半導体集積回路の検査方法および当該半導体集積回路に関する。
【背景技術】
【0002】
近年、システムLSI(Large Scale Integration)の回路規模は増大の一途を辿っており、回路規模の増大に伴いシステムLSIのテスト時間も増加している。そこで、テスト時間を短縮するため、DFT(Design For Testability)等の各種工夫がなされている。DFTとは、システムLSIのテストを容易化する設計手法であり、その1つがランダム・ロジックをテスト対象とするスキャンテストである。
【0003】
ただし、システムLSIには、複数の動作周波数の異なる複数のクロックドメインを有する場合が多く、スキャンテストでは、LSIの各クロックドメインの動作周波数に合わせた動作周波数でテストを行うことが望ましい。そこで、たとえば特許文献1には、システムLSIのテストを行うテスタに複数のディレイテスト回路を備えさせ、異なる動作周波数のクロックを選択的に入力できるようにする技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−89914号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、各種のテスタの中には複数のクロックを切り替えて出力できないものもあり、また、上述した特許文献1に記載されたテスタであっても、特定のスキャンFFに入力するクロックは一定であり、特定のスキャンFFに入力するクロックを動的に変更するものではなかった。
【0006】
本技術は、上記課題に鑑みてなされたもので、半導体集積回路のクロックに一定周波数のクロックのみを供給しつつ半導体集積回路の内部クロックを動的に変化させて半導体集積回路のランダム・ロジックを検査することができる検査方法の提供を目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本技術にかかる半導体集積回路の検査方法は、複数の組み合わせ回路と、当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップと、を有する半導体集積回路、の検査方法であって、クロック生成装置から前記半導体集積回路に一定周波数の第1クロックを入力する入力工程と、前記半導体集積回路の内蔵する分周器が前記第1クロックを分周して第2クロックを生成する分周工程と、前記複数のスキャンフリップフロップに入力するクロックを、前記第1クロックと前記第2クロックとの間で動的に切り替えつつ前記半導体集積回路を検査する検査工程と、を備える構成としてある。
【0008】
なお、前述した半導体集積回路の検査方法は、他の方法の一環として実施されたり各工程に対応する手段を備える半導体集積回路の検査装置として実現されたり、前述した検査方法によって検査される半導体集積回路として実現されたりする等の各種の態様を含む。また、本技術は前記検査装置と半導体集積回路とを備える検査システム、前述した方法の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。
【発明の効果】
【0009】
本技術によれば、半導体集積回路のクロックに一定周波数のクロックのみを供給しつつ半導体集積回路の内部クロックを動的に変化させて半導体集積回路のランダム・ロジックを検査することができる。
【図面の簡単な説明】
【0010】
【図1】スキャンテストを実行可能な半導体集積回路を説明する図である。
【図2】スキャンフリップフロップの概略構成を示すブロック図である。
【図3】第1実施例において試験対象となるLSIの構成を示す要部回路図である。
【図4】第1実施例に係るLSIの動作を説明するタイミングチャートである。
【図5】第1実施例に係るLSIの動作を説明するタイミングチャートである。
【図6】第2実施例において試験対象となるLSIの構成を示す要部回路図である。
【図7】第2実施例に係るLSIの動作を説明するタイミングチャートである。
【図8】第2実施例に係るLSIの動作を説明するタイミングチャートである。
【発明を実施するための形態】
【0011】
以下、下記の順序に従って本技術の実施形態を説明する。
(1)本実施形態の構成:
(2)半導体集積回路の試験方法の第1実施例:
(3)半導体集積回路の試験方法の第2実施例:
(4)まとめ:
【0012】
(1)本実施形態の構成:
図1は、スキャンテストを実行可能な半導体集積回路(LSI)を説明する図である。同図に示すLSI100は、入力端子In1〜In3と、出力端子Out1〜Out3と、動作切替信号入力端子In4と、スキャンイン端子In5と、スキャンアウト端子Out4と、内部回路10と、スキャンチェーン20と、を備えている。
【0013】
なお、LSIは半導体集積回路の一例である。また、図1に示したLSI100の構成は一例であり、各種端子の数、内部回路10に含まれる組み合わせ回路の数やフリップフロップの数、後述するスキャンチェーンの数、等は適宜に変更可能である。
【0014】
内部回路10は各種の論理回路にて構築され、LSI100の入力端子In1〜In3から入力される入力データに基づいて所定の演算を行い、その演算結果である出力データを出力端子Out1〜Out3に出力する。
【0015】
本実施形態において、内部回路10の論理回路は複数のフリップフロップ(以下、FFと略す。)と複数の組み合わせ回路とを備えている。なお、組み合わせ回路とは、出力が入力に直ちに反応する回路のことであり、このような回路の出力は、入力の加えられる順序には無関係で、また、入力が加えられる以前の回路の状態とも無関係である。
【0016】
ここで、複数のFFの少なくとも一部はスキャンフリップフロップ(以下、スキャンFFと略す。)の構成とされている。たとえば、パーシャル・スキャン方式でLSIをテストする場合は複数のFFの一部をスキャンFFとし、フル・スキャン方式でLSIをテストする場合は複数のFFの全部をスキャンFFとする。スキャンFFは、内部(コア・ロジック)のデータ線にマルチプレクサが追加されたFFであり、マルチプレクサ機能を備える。なお、図1に示すFF20a〜20fは、全てスキャンFFの構成としてある。
【0017】
図1に示すFF20a〜20fはシリアル接続されており、このシリアル接続された一連のFFはスキャンチェーン20を構成する。スキャンチェーン20はスキャンイン端子In5とスキャンアウト端子Out4との間を接続している。
【0018】
スキャンチェーン20を構成するFF20a〜20fにはクロック信号が供給されており、このクロックに同期して動作するシフトレジスタとして機能する。すなわち、FF20a〜20fは、スキャンイン端子In5に入力されたデータScan_inをスキャンチェーン20の接続順に順次にシフトさせていき、スキャンアウト端子Out4からデータScan_outを出力する。なお、FFに対するクロック信号の供給に関しては、後述の第1実施例や第2実施例の中で詳細に説明するため、ここでは説明を省略する。
【0019】
内部回路10が備える複数の組み合わせ回路は、スキャンチェーン20を基準として、たとえば、組み合わせ回路群10a,10b,10cの3つにグループ分け可能である。本実施形態では、スキャンチェーン20にて囲まれる複数の組み合わせを組み合わせ回路群10bと呼び、スキャンチェーン20よりも入力端子In1〜In3に近い側に位置する複数の組み合わせを組み合わせ回路群10aと呼び、スキャンチェーン20よりも出力端子Out1〜Out3に近い側に位置する複数の組み合わせを組み合わせ回路群10cと呼ぶことにする。すなわち、組み合わせ回路群10bが、本実施形態においてスキャンチェーン20を用いた検査対象となる。
【0020】
言い換えると、スキャンチェーン20を構成するFF20a〜20fのうち、FF20a〜20cは組み合わせ回路群10bの入力側に配置されていることになり、組み合わせ回路群10bにデータを入力するFFである。一方、FF20d〜20fは組み合わせ回路群10bの出力側に配置されていることになり、組み合わせ回路群10bからデータを入力されるFFである。従って、FF20a〜20cにセットされたデータを組み合わせ回路群10bに入力すると、このデータに基づく演算を組み合わせ回路群10bが実行して結果データを出力し、この結果データがFF20d〜20fに記憶されることになる。
【0021】
ここで、スキャンFFの構成の一例について説明する。
図2は、スキャンFFの概略構成を示すブロック図である。スキャンFFは、内部に、いわゆる通常のFFと同様の構成と、セレクタと、を備えた構成であり、2つのデータ入力端子と、データ入力端子の切替をセレクタに指示する信号を入力するための動作切替端子と、クロック信号を入力するためのクロック端子と、1つのデータ出力端子と、を備えている。同図に示すスキャンFFは、D端子T1ならびにSI端子T2が入力端子を構成し、TEN端子T3が動作切替端子を構成し、Q端子T4がデータ出力端子を構成し、CK端子T5がクロック端子を構成する。
【0022】
D端子T1は、スキャンFFが図1のFF20a〜20cの場合は、組み合わせ回路群10aに接続され、スキャンFFが図1のFF20d〜20fの場合は、組み合わせ回路群10bに接続される。すなわち、D端子T1には、組み合わせ回路群の出力する演算結果データが入力されるようになっている。スキャンFFの内部にあるセレクタがD端子T1に切り替えられると、スキャンFFはD端子に対する組み合わせ回路群10aからの入力に応じたデータをQ端子T4から出力する。
【0023】
Q端子T4はスキャンFFのデータ出力端子であり、スキャンチェーン20において当該スキャンFFの次段に配置されたスキャンFFに接続され、さらに、組み合わせ回路にも接続されている。なお、図1の構成例では、組み合わせ回路群10bの入力側に配置されるFF20a〜20cのQ端子T4は、組み合わせ回路群10bに接続され、組み合わせ回路群10bの出力側に配置されるFF20d〜20fのQ端子T4は、組み合わせ回路群10cに接続される。
【0024】
SI端子T2は、スキャンFFが図1のFF20a〜20fの場合は、スキャンチェーン20において前段に配置されたスキャンFFのQ端子T4に接続される。ただし、スキャンチェーン20の始端に配置されたスキャンFFでは、SI端子T2はスキャンイン端子In5に接続される。
【0025】
スキャンFFの内部にあるセレクタがSI端子T2を選択するように切り替えられると、スキャンFFはシフトレジスタとして機能し、スキャンチェーン20において当該スキャンFFの前段に配置されたスキャンFFのQ端子T4から出力されるデータをラッチするとともに、それまで内部にラッチしていたデータをQ端子T4から出力する。その結果、Q端子T4から出力されたデータは、スキャンチェーン20において当該スキャンFFの次段に配置されたスキャンFFのSI端子に入力される。
【0026】
TEN端子T3は、動作切替信号T_Scan_enの入力端子であり、後述の第1実施例や第2実施例に示すテスタ200のTEN端子260に接続される。テスタ200は、動作切替信号として、シフト動作を指令するシフト信号とキャプチャ動作を指示するキャプチャ信号とを切り替えて出力可能である。スキャンFFは、TEN端子T3にシフト信号が入力されると、クロックに同期しつつSI端子T2から入力されたデータをQ端子T4に出力し、TEN端子T3にキャプチャ信号が入力されると、クロックに同期しつつD端子T1から入力されたデータに所定の演算を行ってQ端子T4に出力する。
【0027】
すなわち、スキャンチェーン20を構成する各スキャンFFのTEN端子T3にシフト信号が入力されるとスキャンチェーン20はシフトレジスタとして機能し、CK端子T5に供給されるクロック信号の立ち上がりもしくは立ち下がりの都度、SI端子T2に対する入力をラッチするとともに、それまでラッチしていたデータをスキャンチェーン20において当該スキャンFFの次段に配置されたスキャンFFへ出力する。その結果、CK端子T5に入力されるクロックに同期してスキャンチェーン20の中でデータを順次シフトさせる。
【0028】
一方、スキャンチェーン20を構成する各スキャンFFのTEN端子T3にキャプチャ信号が入力されるとスキャンチェーン20は内部回路10の一部として所定の動作を実行する。すなわち、スキャンFFがシフトレジスタとして機能しない場合、Q端子T4から出力されるデータは組み合わせ回路群10bもしくは組み合わせ回路群10cに入力される。
【0029】
次に、LSI100の各部に供給されるクロック信号について適宜に説明しつつ、LSI100の動作試験(いわゆる、スキャンテスト)におけるクロックとのタイミング関係について説明する。
【0030】
(2)半導体集積回路の試験方法の第1実施例:
図3は、本第1実施例において試験対象となるLSIの構成を示す要部回路図であり、図4,5は、本第1実施形態に係るLSIの動作を説明するタイミングチャートである。なお、図3には、LSIをテストするテスタも示してある。図3において、LSI300は、スキャンチェーン320、分周器330、セレクタ回路340、クロックマスク回路350、CK端子360、TEN端子370、スキャンイン端子380、スキャンアウト端子390、を備えている。
【0031】
分周器330とセレクタ回路340とクロックマスク回路350は、スキャンチェーン320を構成する各スキャンFFに供給するクロック切替を制御するクロック制御部として機能する。
【0032】
CK端子360とTEN端子370とスキャンイン端子380は入力端子であり、スキャンアウト端子390は出力端子である。なお、その他、各種の組み合わせ回路を備えてもよく、図3ではいくつかの組み合わせ回路を例示してある。
【0033】
スキャンチェーン320は、上述したように、一連のスキャンFFを接続して構築されており、一方の組み合わせ回路群から入力された入力信号に所定の演算を行って他方の組み合わせ回路群に出力する機能と、スキャンイン端子380とスキャンアウト端子390との間を接続するシフトレジスタとしての機能と、を備える。
【0034】
スキャンイン端子380にはテスタ200の端子270からデータScan_inが入力され、スキャンアウト端子390が出力するデータScan_outは、テスタ200の端子280に入力されている。テスタ200は、端子270から出力したデータScan_inに基づいて出力されたデータScan_outを解析することにより、スキャンチェーン320のテスト対象となる組み合わせ回路群が正しく動作するかテストすることができる。
【0035】
CK端子360は、一定速度のクロック信号CLK_inをLSI300に入力するための端子である。本実施形態においては、CK端子360は、テスタ200の端子250から単一のクロック信号(以下、入力クロックCLK_inとも呼ぶ。)の入力を受ける。CK端子360に入力された入力クロックCLK_inは、分周器330とセレクタ回路340とに入力される。
【0036】
ここで、入力クロックCLK_inは、LSI300に含まれる回路の動作周波数の中で最高周波数(最大クロック)であることが望ましい。最大最高周波数のクロックを入力すれば、入力クロックCLK_inをLSI300の内部で分周することにより、LSI300において必要とされる全ての周波数のクロック信号をLSI300の内部で生成し、単一周波数の入力クロックCLK_inに基づいて、各内部回路に適したクロックを使い分けて供給可能となる。
【0037】
たとえば、分周器330にて適宜に入力クロックCLK_inを分周し、高速動作が前提の内部回路には高速のクロック信号を供給して高速動作させ、低速動作が前提の内部回路には低速のクロック信号を供給して低速動作させる、というクロックの使い分けが可能となる。
【0038】
ただし、テスタ200の性能次第では、LSI300に含まれる回路の動作周波数の中で最高周波数以上を出力できない場合もある。このような場合には、入力クロックCLK_inは、テスタ200が出力可能な最高周波数と、LSI300に含まれる回路の動作周波数の中で最高周波数とを総合的に考慮し、LSI300に入力できる上限の周波数を選択する。
【0039】
可能な限り高周波の入力クロックCLK_inを供給すれば、入力クロックCLK_inをLSI300の内部で分周したときに生成可能な周波数のレンジを可能な限り広くとることができるからである。従って、LSI300において必要とされるほぼ全ての周波数のクロック信号をLSI300の内部で生成できる。
【0040】
すなわち、分周器330にて適宜に入力クロックCLK_inを分周し、高速動作が前提の内部回路には高速のクロック信号を供給して高速動作させ、低速動作が前提の内部回路には低速のクロック信号を供給して低速動作させる、というクロックの使い分けが可能となる。
【0041】
分周器330は、たとえばFFを用いたカウンタ回路にて構成され、CK端子360に入力される入力クロックCLK_inに基づいてダウンカウントすることにより入力クロックCLK_inよりも低速なクロック信号を生成できる。生成されたクロック信号は、セレクタ回路340に入力される。
【0042】
本実施形態では、分周器330が入力クロックCLK_inを2分周したクロック信号を出力する場合を例にとり説明するが、むろん、分周器330は、3分周以上の適宜の分周クロックを出力できるように構成することができる。なお、以下では、分周器330が入力クロックCLK_inに基づいて生成出力するクロック信号を、分周クロックCLK_divと呼ぶことにする。
【0043】
以上のように、単一周波数を入力しつつLSI300の側で適宜に入力クロックCLK_inを分周して分周クロックCLK_divを生成してLSI300の試験に利用するため、スキャンチェーン320の動作周波数に制限されることなく、外部クロック周波数を上げることができる。
【0044】
また、内部クロックの生成を、安定待ち時間が必要なPLLではなく、安定待ち時間が不要な分周器330にて行うため、テスタの占有時間が短縮され、試験コストを低下できる。
【0045】
また、キャプチャ動作とシフト動作とでクロック周波数を使い分けることができるため、より適切なクロック周波数で各動作を実行可能となり、キャプチャ動作を高速化したり、異なるキャプチャ動作周波数の回路を同時に試験することができるようになる。その結果、遅延故障の検出率が向上する。
【0046】
TEN端子370は、スキャンチェーン320におけるシフト動作とキャプチャ動作の切替を制御する動作切替信号T_Scan_enを入力するための端子である。本実施形態では、テスタ200がTEN端子260から動作切替信号T_Scan_enをTEN端子370に入力する。
【0047】
TEN端子370に入力された動作切替信号T_Scan_enは、スキャンチェーン320を構成する各スキャンFFのTEN端子に入力されるよう配線されている。従って、テスタ200は、スキャンチェーン320を構成する各スキャンFFの動作をシフト動作とキャプチャ動作とで切り替え制御することができる。なお、TEN端子370は本実施例1においてクロック切替制御端子を構成し、動作切替信号T_Scan_enはクロック切替制御信号の一例である。
【0048】
本実施形態では、スキャンチェーン320は、動作切替信号T_Scan_enがHigh(1)のときシフト動作を行い、動作切替信号T_Scan_enがLow(0)のときキャプチャ動作を行う。
【0049】
ここで、シフト動作とは、スキャンチェーン320がシフトレジスタとして機能する状態を指す。すなわち、シフト動作では、スキャンイン端子380から所定のデータを順次入力することにより所望のスキャンFFに任意の値をセットしたり、内部回路(組み合わせ回路)からスキャンFFに入力されたデータを順次シフトさせてスキャンアウト端子390から順次出力させたりすることができる。
【0050】
一方、キャプチャ動作とは、スキャンチェーン320を構成する各スキャンFFが、内部回路の中で所定の動作を実行する状態を指す。キャプチャ動作では、スキャンチェーン320を構成するスキャンFFのうち、内部回路を構成する所定の組み合わせ回路の入力側に配置されたスキャンFFにセットされた値を当該所定の組み合わせ回路に入力して処理させ、その結果データを、当該所定の組み合わせ回路の出力側に配置されたスキャンFFが受け取って保持する。
【0051】
すなわち、キャプチャ動作を行うと、所定のデータ入力に対して検査対象の組み合わせ回路群が出力する結果データを取得することができる。この結果データを解析すれば、組み合わせ回路群の動作が正常か異常か判断することができる。
【0052】
セレクタ回路340は、上述したように、入力クロックCLK_inと分周クロックCLK_divとクロック選択信号CLK_selとを入力されており、クロック選択信号CLK_selによって指定されるいずれか一方のクロック信号を選択的に出力する。
【0053】
セレクタ回路340は、上述した動作切替信号T_Scan_enをクロック選択信号CLK_selに利用しており、動作切替信号T_Scan_enの切り替わりに対応してクロック選択信号CLK_selも切り替わるようになっている。
【0054】
図4に示す例では、動作切替信号T_Scan_enがシフト動作を指示しているときは(High(1))、分周クロックCLK_divを出力し、動作切替信号T_Scan_enがキャプチャ動作を指示しているときは(Low(0))、入力クロックCLK_inを出力する。
【0055】
その結果、セレクタ回路340は、シフト動作時には分周クロックCLK_divの周期でエッジが発生し、キャプチャ動作時には入力クロックCLK_inの周期でエッジが発生する、合成クロックCLK_plsを出力する。
【0056】
また、図5に示す例では、動作切替信号T_Scan_enがシフト動作を指示しているときは(High(1))、入力クロックCLK_inを出力し、動作切替信号T_Scan_enがキャプチャ動作を指示しているときは(Low(0))、分周クロックCLK_divを出力する。
【0057】
その結果、セレクタ回路340は、シフト動作時には入力クロックCLK_inの周期でエッジが発生し、キャプチャ動作時には分周クロックCLK_divの周期でエッジが発生する、合成クロックCLK_plsを出力する。なお、合成クロックCLK_plsは過渡的なクロック信号なので、図4や図5には示していない。
【0058】
クロックマスク回路350は、クロックマスク信号CLK_mskを生成し、この合成クロック信号CLK_plsにクロックマスク信号CLK_mskを重畳する。クロックマスク信号CLK_mskは、シフト動作とキャプチャ動作との切り替わり時に合成クロック信号CLK_plsの所定箇所をマスクするための信号である。
【0059】
クロックマスク回路350は、たとえば、フリップフロップ351と排他的論理和回路352と論理和回路353とで構成することができる。
【0060】
フリップフロップ351は、動作切替信号T_Scan_enを入力されており、この動作切替信号T_Scan_enを所定時間遅延させた遅延信号T_Scan_en’を出力する。
【0061】
排他的論理和回路352は、動作切替信号T_Scan_enと遅延信号T_Scan_en’との入力を受け、これら信号に基づいてクロックマスク信号CLK_mskを生成する。
【0062】
論理和回路353は、セレクタ回路340から出力される合成クロック信号CLK_plsとクロックマスク信号CLK_mskとの入力を受けており、合成クロック信号CLK_plsにクロックマスク信号CLK_mskを重畳させたスキャンクロック信号CLK_scを出力する。
【0063】
このようにして生成されるスキャンクロック信号CLK_scは、シフト動作とキャプチャ動作とが切り替わった直後の所定期間のみがHighとなり、この所定期間において合成クロック信号CLK_plsのエッジをマスクする信号となる。
【0064】
スキャンクロック信号CLK_scは、スキャンチェーン320を構成する各スキャンFFのCK端子に入力され、各スキャンFFは、スキャンクロック信号CLK_scのクロックで動作する。
【0065】
その結果、スキャンチェーン320により構築されたシフトレジスタは、シフト動作が選択されているときは分周クロックCLK_divと同じ動作周波数でデータをシフトし、キャプチャ動作が選択されているときは入力クロックCLK_inと同じ動作周波数でデータをシフトする。すなわち、テスタ200から単一の入力クロックCLK_inのみを入力しているにも関わらず、複数の動作周波数でLSI300を動作させることができる。
【0066】
さらに、シフト動作とキャプチャ動作とが切り替わった直後の所定期間は、スキャンクロックにエッジが無いマスク期間が設けられるため、データのシフトが行われず、キャプチャ動作とシフト動作の切り替わり時のグリッチを防止することができる。
【0067】
[キャプチャ動作がスキャン動作よりも高速な場合]
次に、図4を参照しつつ、スキャンイン端子380に入力されるデータと、クロック信号や制御信号と、の関係について説明する。なお、図4には、LSI300において、キャプチャ動作がスキャン動作に比べて高速クロックで動作可能である場合を例示してある。
【0068】
図4では、スキャンイン端子380にデータAが入力されているとき、テスタ200からシフト動作が指示されている。すなわち、テスタ200からHigh(1)の動作切替信号T_Scan_enが入力されている。このとき、クロック選択信号CLK_selもHigh(1)であり、スキャンクロックCLK_scには分周クロックCLK_divと同じ周期でエッジが発生する。
【0069】
このとき、分周クロックCLK_divに同期してシフトチェーン320のデータをシフトし、分周クロックCLK_divに同期してスキャンアウト端子390からデータを出力するシフト動作が実行される。本実施形態においてはクロックの立ち上がりでデータを出力するため、図4では、F,Gのタイミングでスキャンアウト端子390からデータを出力する。
【0070】
次に、スキャンイン端子380に対するデータAの入力が終了すると、シフト動作からキャプチャ動作に切り替わる。すなわち、動作切替信号T_Scan_enがHigh(1)からLow(0)に変化する。このとき、クロック選択信号CLK_selもLow(0)となり、スキャンクロックCLK_scには入力クロックCLK_inと同じ周期でエッジが発生する。キャプチャ動作はスキャン動作よりも高速で実行可能であるからである。
【0071】
ここで、クロック選択信号CLK_selがHigh(1)からLow(0)に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子380は、テスタ200から、ダミーデータが入力されている。
【0072】
また、クロックマスク信号CLK_mskは、図3には図示していない入力経路を介して分周器330にも入力されており、分周器330はクロックマスク信号CLK_mskによってエッジをリセットされる。すなわち、クロックマスク信号CLK_mskの立ち下がりのタイミングで分周器330のカウントがリセットされ、新たなカウントを開始する。
【0073】
従って、分周器330の出力する分周クロックCLK_divは、その直前まで出力していた分周クロックCLK_divの論理値に関わらず、その後、改めてHigh→Low→High→・・・の順に分周クロックCLK_divを出力するようになる。
【0074】
ダミーデータに続いて、スキャンイン端子380にはデータB,C,Dが順次に入力される。ただし、LSI300は、このときキャプチャ動作を行っているためスキャンチェーン320は無効になり、スキャンイン端子380も通常のデータ端子として動作している。従って、スキャンイン端子380に入力されるデータB,C,Dはスキャンチェーン320には入力されず、例えば、組み合わせ回路群10bに入力される。
【0075】
このとき、キャプチャ動作によって組み合わせ回路群10bから出力されるデータは、入力クロックCLK_inに同期してスキャンアウト端子390から出力される。図4では、H,I,Jのタイミングでスキャンアウト端子390からデータを出力する。
【0076】
データB,C,Dの入力が完了すると、キャプチャ動作からシフト動作に切り替わる。すなわち、動作切替信号T_Scan_enがLow(0)からHigh(1)に変化する。このとき、クロック選択信号CLK_selもHihg(1)となり、スキャンクロックCLK_scには分周クロックCLK_divと同じ周期でエッジが発生する。
【0077】
そして、クロック選択信号CLK_selがLow(0)からHigh(1)に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子380は、テスタ200から、ダミーデータが入力されている。
【0078】
また、クロックマスク信号CLK_mskは、上述したように分周器330にも入力されており、分周器330はクロックマスク信号CLK_mskによってエッジをリセットされる。すなわち、分周器330は、クロックマスク信号CLK_mskの立ち下がりのタイミングから、新たなカウントを開始する。
【0079】
そして、ダミーデータに続いて、スキャンイン端子380にはデータEが入力される。このとき、スキャンチェーン320は、分周クロックCLK_divに同期してデータをシフトし、分周クロックCLK_divに同期してスキャンアウト端子390からデータを出力するシフト動作を実行する。図4では、Kのタイミングでスキャンアウト端子390からデータを出力する。
【0080】
以上説明したように、LSI300に外部から入力された入力クロックCLK_inと、LSI300の内部で発生させた分周クロックCLK_divとを利用して、スキャンクロックCLK_scを生成するため、キャプチャ動作とシフト動作のそれぞれに最適なクロックを用いてLSI300の内部検査を行うことができる。また、キャプチャ動作とシフト動作の切り替わり時にマスク信号をスキャンクロックCLK_scに重畳しているため、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。さらに、クロックマスク信号CLK_mskによってLSI300の内部で生成される分周クロックCLK_divをリセットするため、キャプチャ動作とシフト動作の切り替わり時に分周クロックのHighとLowの発生タイミングをリセットすることができる。
【0081】
[スキャン動作がキャプチャ動作よりも高速な場合]
次に図5を参照しつつ、スキャンイン端子380に入力されるデータと、クロック信号や制御信号と、の関係についての他の例について説明する。図5には、LSI300において、スキャン動作がキャプチャ動作に比べて高速クロックで動作可能である場合を例示してある。
【0082】
図5では、スキャンイン端子380にデータAが入力されているとき、テスタ200からシフト動作が指示されている。すなわち、テスタ200からHigh(1)の動作切替信号T_Scan_enが入力されている。このとき、クロック選択信号CLK_selはLow(0)であり、スキャンクロックCLK_scには入力クロックCLK_inと同じ周期でエッジが発生する。
【0083】
このとき、入力クロックCLK_inに同期してシフトチェーン320のデータをシフトし、入力クロックCLK_inに同期してスキャンアウト端子390からデータを出力するシフト動作が実行される。本実施形態においてはクロックの立ち上がりでデータを出力するため、図5では、K,Lのタイミングでスキャンアウト端子390からデータを出力する。
【0084】
次に、スキャンイン端子380に対するデータAの入力が終了すると、シフト動作からキャプチャ動作に切り替わる。すなわち、動作切替信号T_Scan_enがHigh(1)からLow(0)に変化する。このとき、クロック選択信号CLK_selはHihg(1)に変化し、スキャンクロックCLK_scには分周クロックCLK_divと同じ周期でエッジが発生する。キャプチャ動作はスキャン動作よりも低速で実行されるからである。
【0085】
ここで、クロック選択信号CLK_selがLow(0)からHigh(1)に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子380は、テスタ200から、ダミーデータが入力されている。
【0086】
また、分周器330はクロックマスク信号CLK_mskによってエッジをリセットされるため、クロックマスク信号CLK_mskの立ち下がりのタイミングで分周器330のカウントがリセットされ、新たなカウントを開始する。
【0087】
ダミーデータに続いて、スキャンイン端子380にはデータB,Cが順次に入力される。ただし、LSI300は、このときキャプチャ動作を行っているためスキャンチェーン320は無効になり、スキャンイン端子380も通常のデータ端子として動作している。従って、スキャンイン端子380に入力されるデータB,Cはスキャンチェーン320には入力されず、例えば、組み合わせ回路群10bに入力される。
【0088】
このとき、キャプチャ動作によって組み合わせ回路群10bから出力されるデータは、入力クロックCLK_inに同期してスキャンアウト端子390から出力される。図5では、M,Nのタイミングでスキャンアウト端子390からデータを出力する。
【0089】
データB,Cの入力が完了すると、キャプチャ動作からシフト動作に切り替わる。すなわち、動作切替信号T_Scan_enがLow(0)からHigh(1)に変化する。このとき、クロック選択信号CLK_selはLow(0)となり、スキャンクロックCLK_scには入力クロックCLK_inと同じ周期でエッジが発生する。
【0090】
そして、クロック選択信号CLK_selがHigh(1)からLow(0)に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子380は、テスタ200から、ダミーデータが入力されている。
【0091】
また、クロックマスク信号CLK_mskは、上述したように分周器330にも入力されており、分周器330はクロックマスク信号CLK_mskによってエッジをリセットされる。すなわち、分周器330は、クロックマスク信号CLK_mskの立ち下がりのタイミングから、新たなカウントを開始する。
【0092】
そして、ダミーデータに続いて、スキャンイン端子380にはデータEが入力される。このとき、シフトチェーン320は、入力クロックCLK_inに同期してデータをシフトし、入力クロックCLK_inに同期してスキャンアウト端子390からデータを出力するシフト動作を実行する。図5では、Oのタイミングでスキャンアウト端子390からデータを出力する。
【0093】
以上説明したように、LSI300に外部から入力された入力クロックCLK_inと、LSI300の内部で発生させた分周クロックCLK_divとを利用して、スキャンクロックCLK_scを生成するため、キャプチャ動作とシフト動作のそれぞれに最適なクロックを用いてLSIの内部検査を行うことができる。また、キャプチャ動作とシフト動作の切り替わり時にマスク信号をスキャンクロックCLK_scに重畳しているため、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。さらに、クロックマスク信号CLK_mskによってLSI300の内部で生成される分周クロックCLK_divをリセットするため、キャプチャ動作とシフト動作の切り替わり時に分周クロックのHighとLowの発生タイミングをリセットすることができる。
【0094】
(3)半導体集積回路の試験方法の第2実施例:
図6は、本第2実施例において試験対象となるLSIの構成を示す要部回路図であり、図7,8は、第2実施例に係るLSIの動作を説明するタイミングチャートである。
図6において、LSI400は、スキャンチェーン420、分周器430、セレクタ回路440、クロックマスク回路450、CK端子460、TEN端子470、スキャンイン端子480、スキャンアウト端子490、PLL(Phase Locked Loop)回路500、を備えている。
【0095】
なお、LSI400を構成する各部420,430,450〜490は上述した第1実施例のLSI300における各部320,330,350〜390とそれぞれ同様の構成であるため、以下では、詳細な説明を省略する。また、テスタ200も上述した第1実施例と同様であるため、第1実施例と同じ符号を付し、説明を省略する
【0096】
PLL回路500は、入力クロックCLK_inの入力を受けており、この入力クロックCLK_inを元に所定周波数のPLLクロック信号CLK_pllを発振する。ただし、PLL回路500は、安定発振するまでに数百ミリ秒を要するため、半導体集積回路の試験の開始初期には利用できない。
【0097】
そこで、本第2実施例においては、後述するセレクタ回路440を用いることにより、試験の初期は入力クロックCLK_inと分周クロックCLK_divとを使い分けて試験を行い、PLL回路500が安定発振可能な状態になるとPLLクロックCLK_pllも利用してクロックの切替を行いつつ試験を行う。
【0098】
セレクタ回路440は、入力クロックCLK_inと分周クロックCLK_divとPLLクロックCLK_pllとクロック選択信号CLK_selとを入力されており、クロック選択信号CLK_selによって指定されるいずれか1つのクロック信号を選択的に出力する。
【0099】
本実施例2に示すセレクタ回路440に入力されるクロック選択信号CLK_selは、クロック切り替わり時に立ち上がりもしくは立ち下がり(以下、まとめてエッジと呼ぶことがある。)が発生する信号である。
【0100】
セレクタ回路440は、クロック選択信号CLK_selのエッジ検出回路と、カウンタ回路とを内蔵している。セレクタ回路440は、クロック選択信号CLK_selのエッジを検出すると、出力するクロックを入力クロックCLK_inと分周クロックCLK_divとPLLクロックCLK_pllの間で切り替える。
【0101】
すなわち、セレクタ回路440は、クロック選択信号CLK_selの1つ目のエッジを検出すると分周クロックCLK_divを出力し、2つ目のエッジを検出すると入力クロックCLK_inを出力し、3つ目のエッジを検出するとPLLクロックCLK_pllを出力する。
【0102】
その後は、エッジを検出する度に出力するクロックを、入力クロックCLK_inと分周クロックCLK_divとPLLクロックCLK_pllとを順次切り替えて出力する。なお、これら3種類のクロックは外部から選択可能であり、図6では、PLLクロックを0、入力クロックを2、分周クロックを1で指定できるようになっている。
【0103】
図7に示す例では、動作切替信号T_Scan_enがシフト動作を指示しているときは(High(1))、分周クロックCLK_divを出力し、動作切替信号T_Scan_enがキャプチャ動作を指示しているときは(Low(0))、入力クロックCLK_in又はPLLクロックCLK_pllを出力する。
【0104】
その結果、セレクタ回路440は、シフト動作時には分周クロックCLK_divの周期でエッジが発生し、キャプチャ動作時には入力クロックCLK_inもしくはPLLクロックCLK_pllの周期でエッジが発生する、合成クロックCLK_plsを出力する。
【0105】
また、図8に示す例では、動作切替信号T_Scan_enがシフト動作を指示しているときは(Hihg(1))、入力クロックCLK_inを出力し、動作切替信号T_Scan_enがキャプチャ動作を指示しているときは(Low(0))、分周クロックCLK_divまたはPLLクロックCLK_pllを出力する。
【0106】
その結果、セレクタ回路440は、シフト動作時には入力クロックの周期でエッジが発生し、キャプチャ動作時には分周クロックCLK_divまたはPLLクロックCLK_pllの周期でエッジが発生する、合成クロックCLK_plsを出力する。
【0107】
なお、合成クロックCLK_plsは過渡的なクロック信号なので、図7や図8には示していない。また、本第2実施例においては、キャプチャ動作におけるクロックを動的に変更してLSIの試験を行う場合について説明するが、むろん、シフト動作におけるクロックを動的に変更してLSIの試験を行ってもよい。
【0108】
クロックマスク回路450は、クロックマスク信号CLK_mskを合成クロック信号CLK_plsに重畳し、スキャンクロック信号CLK_scを生成する。従って、スキャンクロック信号CLK_scは、シフト動作とキャプチャ動作とが切り替わった直後の所定期間において、合成クロック信号CLK_plsのエッジをマスクした信号となる。
【0109】
スキャンクロック信号CLK_scは、スキャンチェーン420を構成する各スキャンFFのCK端子に入力され、各スキャンFFは、スキャンクロック信号CLK_scのクロックにて動作する。
【0110】
その結果、スキャンチェーン420により構築されたシフトレジスタは、シフト動作が選択されているときは分周クロックCLK_divと同じ動作周波数でデータをシフトし、キャプチャ動作が選択されているときは入力クロックCLK_inもしくはPLLクロックCLK_pllと同じ動作周波数でデータをシフトする。すなわち、テスタ200から単一の入力クロックCLK_inのみを入力しているにも関わらず、複数の動作周波数でLSI400を動作させることができる。
【0111】
さらに、シフト動作とキャプチャ動作とが切り替わった直後の所定期間は、スキャンクロックにエッジが無いマスク期間が設けられるため、データのシフトが行われず、キャプチャ動作とシフト動作の切り替わり時のグリッチを防止することができる。
【0112】
[キャプチャ動作がスキャン動作よりも高速な場合]
次に、スキャンイン端子480に入力されるデータとクロック信号や制御信号との関係について、図7を参照しつつ説明する。なお、図7には、LSI400において、キャプチャ動作がスキャン動作に比べて高速クロックで動作可能である場合を例示してある。
【0113】
図7では、スキャンイン端子480にデータAが入力されているとき、テスタ200からシフト動作が指示されている。すなわち、テスタ200からHigh(1)の動作切替信号T_Scan_enが入力されている。このとき、クロック選択信号CLK_selは1であり、スキャンクロックCLK_scには分周クロックCLK_divと同じ周期でエッジが発生する。
【0114】
このとき、分周クロックCLK_divに同期してシフトチェーン420のデータをシフトし、分周クロックCLK_divに同期してスキャンアウト端子490からデータを出力するシフト動作が実行される。本実施形態においてはクロックの立ち上がりでデータを出力するため、図7では、H,Iのタイミングでスキャンアウト端子390からデータを出力する。
【0115】
次に、スキャンイン端子480に対するデータAの入力が終了すると、シフト動作からキャプチャ動作に切り替わる。すなわち、動作切替信号T_Scan_enがHigh(1)からLow(0)に変化する。このとき、クロック選択信号CLK_selは、1から2に変化し、スキャンクロックCLK_scには入力クロックCLK_inと同じ周期でエッジが発生する。キャプチャ動作はスキャン動作よりも高速で実行可能であるからである。
【0116】
ここで、クロック選択信号CLK_selが1から2に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子480は、テスタ200から、ダミーデータが入力されている。
【0117】
また、クロックマスク信号CLK_mskは、図6には図示していない入力経路を介して分周器430にも入力されており、分周器430はクロックマスク信号CLK_mskによってエッジをリセットされる。すなわち、クロックマスク信号CLK_mskの立ち下がりのタイミングで分周器430のカウントがリセットされ、新たなカウントを開始する。
【0118】
ダミーデータに続いて、スキャンイン端子480にはデータB,C,Dが順次に入力される。ただし、LSI400は、このときキャプチャ動作を行っているためスキャンチェーン420は無効になり、スキャンイン端子480も通常のデータ端子として動作している。従って、スキャンイン端子480に入力されるデータB,C,Dはスキャンチェーン420には入力されず、例えば、組み合わせ回路群10bに入力される。
【0119】
このとき、キャプチャ動作によって組み合わせ回路群10bから出力されるデータは、入力クロックCLK_inに同期してスキャンアウト端子490から出力される。図7では、J,K,Lのタイミングでスキャンアウト端子490からデータを出力する。
【0120】
データB,C,Dの入力が完了すると、これまでキャプチャ動作において使用していた入力クロックCLK_inの代わりにPLLクロックCLK_pllを利用するように変更する。すなわち、クロック選択信号CLK_selを2から0に変化させる。これにより、スキャンクロックCLK_scには、PLLクロックCLK_pllと同じ周期でエッジが発生する。
【0121】
なお、図7においては、図示の都合上、PLLクロックCLK_pllを入力クロックCLK_inと同じクロック速度としてあるが、むろん、入力クロックCLK_inよりも更にキャプチャ動作に適したクロックがある場合は、PLLクロックCLK_pllのクロック速度を、キャプチャ動作に適した速度に適宜に設定可能である。
【0122】
このように、クロック選択信号CLK_selが2から0に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、入力クロックの切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子480は、テスタ200から、ダミーデータが入力されている。
【0123】
また、クロックマスク信号CLK_mskは、上述したように分周器430にも入力されており、分周器430はクロックマスク信号CLK_mskによってエッジをリセットされる。すなわち、分周器430は、クロックマスク信号CLK_mskの立ち下がりのタイミングから、新たなカウントを開始する。
【0124】
そして、ダミーデータに続いて、スキャンイン端子480にはデータE,F,Gが順次に入力される。このときも、LSI400は、キャプチャ動作を行っているためスキャンチェーン420は無効であり、スキャンイン端子480も通常のデータ端子として動作している。従って、スキャンイン端子480に入力されるデータE,F,Gはスキャンチェーン420には入力されず、例えば、組み合わせ回路10bに入力され、キャプチャ動作によって組み合わせ回路10bから出力されるデータは、入力クロックCLK_pllに同期してスキャンアウト端子490から出力される。図7では、M,N,Oのタイミングでスキャンアウト端子490からデータを出力する。
【0125】
以上説明したように、LSI400に外部から入力された入力クロックCLK_in、LSI300の内部で発生させた分周クロックCLK_divやPLLクロックCLK_pll、を利用して、スキャンクロックCLK_scを生成するため、キャプチャ動作とシフト動作のそれぞれに最適なクロックを用いてLSIの内部検査を行うことができる。また、キャプチャ動作とシフト動作の切り替わり時にマスク信号をスキャンクロックCLK_scに重畳しているため、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。さらに、クロックマスク信号CLK_mskによってLSI400の内部で生成される分周クロックCLK_divをリセットするため、キャプチャ動作とシフト動作の切り替わり時に分周クロックのHighとLowの発生タイミングをリセットすることができる。
【0126】
[スキャン動作がキャプチャ動作よりも高速な場合]
次に図8を参照しつつ、スキャンイン端子480に入力されるデータとクロック信号や制御信号との関係についての他の例について説明する。図8には、LSI400において、スキャン動作がキャプチャ動作に比べて高速クロックで動作可能である場合を例示してある。
【0127】
図8では、スキャンイン端子480にデータA,Bが順次に入力されているとき、テスタ200からシフト動作が指示されている。すなわち、テスタ200からHigh(1)の動作切替信号T_Scan_enが入力されている。このとき、クロック選択信号CLK_selは1であり、スキャンクロックCLK_scには入力クロックCLK_inと同じ周期でエッジが発生する。
【0128】
従って、入力クロックCLK_inに同期してシフトチェーン420のデータをシフトし、入力クロックCLK_inに同期してスキャンアウト端子490からデータを出力するシフト動作が実行される。本実施形態においてはクロックの立ち上がりでデータを出力するため、図8では、E,F,Gのタイミングでスキャンアウト端子490からデータを出力する。
【0129】
次に、スキャンイン端子480に対するデータA,Bの入力が終了すると、シフト動作からキャプチャ動作に切り替わる。すなわち、動作切替信号T_Scan_enがHigh(1)からLow(0)に変化する。このとき、クロック選択信号CLK_selは2から1に変化し、スキャンクロックCLK_scには分周クロックCLK_divと同じ周期でエッジが発生する。キャプチャ動作はスキャン動作よりも低速で実行されるからである。
【0130】
ここで、クロック選択信号CLK_selが2から1に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子480は、テスタ200から、ダミーデータが入力されている。
【0131】
また、分周器430はクロックマスク信号CLK_mskによってエッジをリセットされるため、クロックマスク信号CLK_mskの立ち下がりのタイミングで分周器430のカウントがリセットされ、新たなカウントを開始する。
【0132】
ダミーデータに続いて、スキャンイン端子480にはデータCが入力される。ただし、LSI400は、このときキャプチャ動作を行っているためスキャンチェーン420は無効になり、スキャンイン端子480も通常のデータ端子として動作している。従って、スキャンイン端子480に入力されるデータCはスキャンチェーン420には入力されず、例えば、組み合わせ回路群10bに入力される。
【0133】
このとき、キャプチャ動作によって組み合わせ回路群10bから出力されるデータは、分周クロックCLK_divに同期してスキャンアウト端子490から出力される。図8では、Hのタイミングでスキャンアウト端子490からデータを出力する。
【0134】
データCの入力が完了すると、これまでキャプチャ動作において使用していた分周クロックCLK_divの代わりにPLLクロックCLK_pllを利用するように変更する。すなわち、クロック選択信号CLK_selを1から0に変化させる。これにより、スキャンクロックCLK_scには、PLLクロックCLK_pllと同じ周期でエッジが発生する。
【0135】
なお、図8においては、図示する都合上、PLLクロックCLK_pllを分周クロックCLK_divと同じクロック速度として示してあるが、むろん、分周クロックCLK_divよりも更にキャプチャ動作に適したクロックがある場合は、PLLクロックCLK_pllのクロック速度は、キャプチャ動作に適した速度に適宜に設定可能である。
【0136】
このように、クロック選択信号CLK_selが1から0に変化した直後は、スキャンクロックCLK_scにクロックマスク信号CLK_mskが重畳される。従って、その間はスキャンクロック信号CLK_scにはエッジが発生せず、FFはマスク期間の間、組み合わせ回路群10bに対するデータ出力を待機することになり、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。なお、スキャンクロックCLK_scがマスクされている間は、スキャンイン端子480は、テスタ200から、ダミーデータが入力されている。
【0137】
また、クロックマスク信号CLK_mskは、上述したように分周器430にも入力されており、分周器430はクロックマスク信号CLK_mskによってエッジをリセットされる。すなわち、分周器430は、クロックマスク信号CLK_mskの立ち下がりのタイミングで、新たなカウントを開始する。
【0138】
そして、ダミーデータに続いて、スキャンイン端子480にはデータDが入力される。このときも、LSI400は、キャプチャ動作を行っているためスキャンチェーン420は無効であり、スキャンイン端子480も通常のデータ端子として動作している。従って、スキャンイン端子480に入力されるデータDはスキャンチェーン420には入力されず、例えば、組み合わせ回路群10bに入力される。そして、キャプチャ動作によって組み合わせ回路群10bから出力されるデータは、PLLクロックCLK_pllに同期してスキャンアウト端子490から出力される。図8では、Iのタイミングでスキャンアウト端子490からデータを出力する。
【0139】
以上説明したように、LSI400に外部から入力された入力クロックCLK_in、LSI400の内部で発生させた分周クロックCLK_divやPLLクロックCLK_pll、を利用して、スキャンクロックCLK_scを生成するため、キャプチャ動作とシフト動作のそれぞれに最適なクロックを用いてLSI400の内部検査を行うことができる。また、キャプチャ動作とシフト動作の切り替わり時にマスク信号をスキャンクロックCLK_scに重畳しているため、キャプチャ動作とシフト動作の切り替わり時に発生するグリッチを防止できる。さらに、クロックマスク信号CLK_mskによってLSI400の内部で生成される分周クロックCLK_divをリセットするため、キャプチャ動作とシフト動作の切り替わり時に分周クロックのHighとLowの発生タイミングをリセットすることができる。
【0140】
(4)まとめ:
以上説明した本実施形態から、少なくとも以下の技術的思想が把握される。
【0141】
(a)複数の組み合わせ回路と、当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップと、を有する半導体集積回路、の検査方法であって、
クロック生成装置から前記半導体集積回路に一定周波数の第1クロックを入力する入力工程と、
前記半導体集積回路の内蔵する分周器が前記第1クロックを分周して第2クロックを生成する分周工程と、
前記複数のスキャンフリップフロップに入力するクロックを、前記第1クロックと前記第2クロックとの間で動的に切り替えつつ前記半導体集積回路を検査する検査工程と、
を備える半導体集積回路の検査方法。
【0142】
(b)前記分周器は、前記スキャンチェーンに含まれないフリップフロップにて構成される(a)に記載の半導体集積回路の検査方法。
【0143】
(c)前記第1クロックは、前記クロック生成装置が出力可能な最大クロック、または、前記半導体集積回路が含む回路の動作周波数の中で最大クロック、のいずれか大きい方である(a)または(b)に記載の半導体集積回路の検査方法。
【0144】
(d)前記スキャンテストにおけるキャプチャ動作には、前記第1クロックを用い、
前記スキャンテストにおけるシフト動作には、前記第2クロックを用いる(a)〜(c)のいずれか1項に記載の半導体集積回路の検査方法。
【0145】
(e)前記キャプチャ動作と前記シフト動作の切り替わり直後であって、前記第1クロックと前記第2クロックが切り替わった直後には、前記複数のスキャンフリップフロップに入力するクロックのエッジをマスクする(d)に記載の半導体集積回路の検査方法。
【0146】
(f)前記半導体集積回路は、外部からの制御に応じて前記第2クロックの周波数を変更するクロック制御部を備え、
前記分周工程においては、前記半導体集積回路の外部からの制御に応じて、前記クロック制御部が前記第2クロックの周波数を制御する(a)〜(e)のいずれか1項に記載の半導体集積回路の検査方法。
【0147】
(g)前記半導体集積回路は、PLL(Phase Looped Lock)回路を備え、
前記分周工程においては、前記PLL回路が安定するまでは前記分周器が前記第1クロックを分周して前記第2クロックを生成し、前記PLL回路が安定した後は前記PLL回路が前記第1クロックから前記第2クロックを生成する(a)〜(f)のいずれか1項に記載の半導体集積回路の検査方法。
【0148】
(h)複数の組み合わせ回路と当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップとを有する半導体集積回路であって、
クロック生成装置から前記半導体集積回路に一定周波数の第1クロックを入力する入力端子と、
前記第1クロックを分周して第2クロックを生成する分周器と、
クロック切替制御信号の入力を外部から受けるクロック切替制御端子と、
前記複数のスキャンフリップフロップに入力するクロックを、前記クロック切替制御信号に基づいて前記第1クロックと前記第2クロックとの間で動的に切り替えるクロック切替制御部と、
を備える半導体集積回路。
【0149】
(i) 複数の組み合わせ回路と、当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップと、を有する半導体集積回路の検査装置であって、
一定周波数の第1クロックを前記半導体集積回路の入力端子に入力するためのクロック出力端子と、
前記半導体集積回路が前記スキャンテストを行う際に前記複数のスキャンフリップフロップに入力するクロックを、少なくとも、前記第1クロックと、前記半導体集積回路の内部に備えられている分周器が前記第1クロックに基づいて生成する第2クロックと、の間で動的に切り替えさせる切替制御信号を出力するためのクロック切替制御信号出力端子と、
を備える半導体集積回路の検査装置。
【0150】
なお、本技術の範囲は上述した実施形態や変形例に限定されず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。また、言うまでもなく、本技術の範囲は、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【符号の説明】
【0151】
10…内部回路、10a〜10c…組み合わせ回路群、20…スキャンチェーン、20a〜20f…フリップフロップ(FF)、100・・・半導体集積回路(LSI)、In1〜In3…入力端子、In5…スキャンイン端子、In4…動作切替信号入力端子、Out1〜Out3…出力端子、Out4…スキャンアウト端子、T1…D端子、T2…SI端子、T3…TEN端子、T4…Q端子、T5…CK端子、200…テスタ、250…端子、260…TEN端子、270…端子、280…端子、300…LSI、320…スキャンチェーン、330…分周器、340…セレクタ回路、350…クロックマスク回路、351…フリップフロップ、352…排他的論理和回路、353…論理和回路、360…CK端子、370…TEN端子、380…スキャンイン端子、390…スキャンアウト端子、400…LSI、420…スキャンチェーン、430…分周器、440…セレクタ回路、450…クロックマスク回路、451…フリップフロップ、452…排他的論理和回路、453…論理和回路、460…CK端子、470…TEN端子、480…スキャンイン端子、490…スキャンアウト端子、500…PLL回路、

【特許請求の範囲】
【請求項1】
複数の組み合わせ回路と、当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップと、を有する半導体集積回路の検査方法であって、
クロック生成装置から前記半導体集積回路に一定周波数の第1クロックを入力する入力工程と、
前記半導体集積回路の内蔵する分周器が前記第1クロックを分周して第2クロックを生成する分周工程と、
前記複数のスキャンフリップフロップに入力するクロックを、前記第1クロックと前記第2クロックとの間で動的に切り替えつつ前記半導体集積回路を検査する検査工程と、
を備える半導体集積回路の検査方法。
【請求項2】
前記分周器は、前記スキャンチェーンに含まれないフリップフロップにて構成される請求項1に記載の半導体集積回路の検査方法。
【請求項3】
前記第1クロックは、前記クロック生成装置が出力可能な最大クロック、または、前記半導体集積回路が含む回路の動作周波数の中で最大クロック、のいずれか大きい方である請求項1に記載の半導体集積回路の検査方法。
【請求項4】
前記スキャンテストにおけるキャプチャ動作には、前記第1クロックを用い、
前記スキャンテストにおけるシフト動作には、前記第2クロックを用いる請求項1に記載の半導体集積回路の検査方法。
【請求項5】
前記キャプチャ動作と前記シフト動作の切り替わり直後であって、前記第1クロックと前記第2クロックが切り替わった直後には、前記複数のスキャンフリップフロップに入力するクロックのエッジをマスクする請求項4に記載の半導体集積回路の検査方法。
【請求項6】
前記半導体集積回路は、外部からの制御に応じて前記第2クロックの周波数を変更するクロック制御部を備え、
前記分周工程においては、前記半導体集積回路の外部からの制御に応じて、前記クロック制御部が前記第2クロックの周波数を制御する請求項1に記載の半導体集積回路の検査方法。
【請求項7】
前記半導体集積回路は、PLL(Phase Locked Loop)回路を備え、
前記分周工程においては、前記PLL回路が安定するまでは前記分周器が前記第1クロックを分周して前記第2クロックを生成し、前記PLL回路が安定した後は前記PLL回路が前記第1クロックから前記第2クロックを生成する請求項1に記載の半導体集積回路の検査方法。
【請求項8】
複数の組み合わせ回路と、当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップと、を有する半導体集積回路であって、
クロック生成装置から前記半導体集積回路に一定周波数の第1クロックを入力する入力端子と、
前記第1クロックを分周して第2クロックを生成する分周器と、
クロック切替制御信号の入力を外部から受けるクロック切替制御端子と、
前記複数のスキャンフリップフロップに入力するクロックを、前記クロック切替制御信号に基づいて前記第1クロックと前記第2クロックとの間で動的に切り替えるクロック切替制御部と、
を備える半導体集積回路。
【請求項9】
複数の組み合わせ回路と、当該複数の組み合わせ回路のスキャンテストを行うためのスキャンチェーンを構成する複数のスキャンフリップフロップと、を有する半導体集積回路の検査装置であって、
一定周波数の第1クロックを前記半導体集積回路の入力端子に入力するためのクロック出力端子と、
前記半導体集積回路が前記スキャンテストを行う際に前記複数のスキャンフリップフロップに入力するクロックを、少なくとも、前記第1クロックと、前記半導体集積回路の内部に備えられている分周器が前記第1クロックに基づいて生成する第2クロックと、の間で動的に切り替えさせる切替制御信号を出力するためのクロック切替制御信号出力端子と、
を備える半導体集積回路の検査装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−88400(P2013−88400A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−232016(P2011−232016)
【出願日】平成23年10月21日(2011.10.21)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】