以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第1の実施の形態>
[構成および基本動作]
図1は、本発明の第1の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、ロジック部80(第1のロジック部)と、ロジック部81(第2のロジック部)と、機能ブロック91と、スキャンパス1とを備える。ここで、機能ブロック91は、たとえばRAM(Random Access Memory)である。
スキャンパス1は、複合ゲート型セレクタ(第1のセレクタ)60a〜63aと、複合ゲート型セレクタ10a〜13a(第2のセレクタ)と、フリップフロップ30〜33と、インバータ40〜43とを含む。
機能ブロック91は、ロジック部80の出力およびロジック部81の入力間に配置される。
スキャンパス1は、ロジック部80、ロジック部81および機能ブロック91のうちの少なくともいずれかひとつをテストするための回路である。
複合ゲート型セレクタ60aは、テストモード信号TEST2Aおよびテストモード信号TEST2Bに基づいて、SI端子に入力される外部からのデータか、または機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ40へ出力する。
複合ゲート型セレクタ61a〜63aは、テストモード信号TEST2Aおよびテストモード信号TEST2Bに基づいて、フリップフロップ30〜32から受けたデータか、または機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
インバータ40〜43は、複合ゲート型セレクタ60a〜63aから受けたデータの論理レベルを反転させて複合ゲート型セレクタ10a〜13aへ出力する。
複合ゲート型セレクタ10a〜13aは、シフトモード信号SMAA、シフトモード信号SMABおよびシフトモード信号SMBに基づいて、インバータ40〜43から受けたデータか、またはロジック部80から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
フリップフロップ30〜32は、複合ゲート型セレクタ10a〜12aから受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータを複合ゲート型セレクタ61a〜63aへ出力する。
フリップフロップ33は、複合ゲート型セレクタ13aから受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータをSO端子から直列シフトアウトデータとして出力する。
[動作]
次に、本実施の形態に係るテスト回路の通常動作時および各回路のテスト時における動作について説明する。以下、テストモード信号およびシフトモード信号を総称して制御信号と称する。
[通常動作時]
通常動作時において、各制御信号は、テストモード信号TEST2A=0およびテストモード信号TEST2B=1と設定される。また、シフトモード信号SMAA=0、シフトモード信号SMAB=0およびシフトモード信号SMB=1と設定される。
複合ゲート型セレクタ10a〜13aは、ロジック部80から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
複合ゲート型セレクタ61a〜63aは、機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上より、ロジック部80から出力される4ビットのパラレルデータが複合ゲート型セレクタ10a〜13aによって選択されて機能ブロック91の入力端子DI0〜DI3に入力される。そして、機能ブロック91の出力端子DO0〜DO3から出力されるデータが複合ゲート型セレクタ60a〜63aによって選択されてロジック部81へ出力される。
したがって、通常動作時においては、機能ブロック91がロジック部80およびロジック部81の間に挿入された状態となる。すなわち、ロジック部80から出力されたパラレルデータが機能ブロック91に入力され、機能ブロック91がパラレルデータに所定のデータ処理を行ない、機能ブロック91から出力されたデータ処理結果がロジック部81へ出力される。
なお、通常動作時において、フリップフロップ30〜33にはクロックを与えなくてもよい。
[ロジック部80およびロジック部81のスキャンテスト時]
ロジック部80およびロジック部81のスキャンテスト時において、各制御信号は、テストモード信号TEST2A=1およびテストモード信号TEST2B=0と設定される。また、シフトモード信号SMAA=0、シフトモード信号SMAB=0およびシフトモード信号SMB=1と設定される。
複合ゲート型セレクタ10a〜13aは、ロジック部80から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
複合ゲート型セレクタ61a〜63aは、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上より、ロジック部80から出力される4ビットのパラレルデータが複合ゲート型セレクタ10a〜13aによって選択されてフリップフロップ30〜33へ出力される。そして、フリップフロップ30〜33から出力されるデータが複合ゲート型セレクタ61a〜63aによって選択されてロジック部81へ出力される。
したがって、ロジック部80およびロジック部81のスキャンテスト時においては、機能ブロック91をバイパスしてロジック部80およびロジック部81を接続した状態となる。
[ロジック部81のスキャンテスト時]
ロジック部81のスキャンテスト時において、各制御信号は、テストモード信号TEST2A=1およびテストモード信号TEST2B=0と設定される。また、シフトモード信号SMAA=1、シフトモード信号SMAB=1およびシフトモード信号SMB=0と設定される。
複合ゲート型セレクタ10a〜13aは、インバータ40〜43から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
複合ゲート型セレクタ60aは、SI端子から入力されるテストデータを選択し、テストデータをロジック部81およびインバータ40へ出力する。
複合ゲート型セレクタ61a〜63aは、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上のような各複合ゲート型セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。フリップフロップ30〜32に保持された3ビットのテストデータは、それぞれ複合ゲート型セレクタ61a〜63aによって選択されてロジック部81へ出力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、複合ゲート型セレクタ60aによって選択されてロジック部81へ出力される。
以上より、SI端子から入力される4ビットのテストデータがロジック部81へ出力され、ロジック部81のスキャンテストが行なわれる。
[ロジック部80のスキャンテスト時]
ロジック部80のスキャンテスト時において、各制御信号は、テストモード信号TEST2A=1およびテストモード信号TEST2B=0と設定される。また、シフトモード信号SMAA=0、シフトモード信号SMAB=0およびシフトモード信号SMB=1と設定される。
ロジック部80は、図示しない入力端子から入力されたテストデータに演算処理等のデータ処理を行ない、データ処理結果を表わす4ビットのパラレルデータを複合ゲート型セレクタ10a〜13aへ出力する。
複合ゲート型セレクタ10a〜13aは、ロジック部80から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
フリップフロップ30〜33にクロックを1回与えると、複合ゲート型セレクタ10a〜13aから出力された4ビットのデータがフリップフロップ30〜33に保持される。ここで、フリップフロップ33に保持されたデータは、SO端子からシフトアウトデータとして出力される。
次に、各制御信号は、シフトモード信号SMAA=1、シフトモード信号SMAB=1およびシフトモード信号SMB=0と設定変更される。
そうすると、複合ゲート型セレクタ10a〜13aは、インバータ40〜43から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
また、複合ゲート型セレクタ61a〜63aは、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上のような各複合ゲート型セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。フリップフロップ30〜33にクロックを3回与えると、フリップフロップ30〜33に保持された3ビットのデータは、シリアルシフト動作によってSO端子から出力される。したがって、ロジック部80から出力されたデータ処理結果を表わす4ビットのパラレルデータをSO端子から出力して、ロジック部80のスキャンテストを行なうことができる。
ここで、前述のようにシフトモード信号SMAA=1、シフトモード信号SMAB=1およびシフトモード信号SMB=0と設定変更してフリップフロップ30〜33にクロックを3回与える際に、SI端子からロジック部81のスキャンテスト用のテストデータを入力し、フリップフロップ30〜32にロジック部81のスキャンテスト用のデータを保持させることにより、ロジック部80のスキャンテスト後にロジック部81のスキャンテストを連続して行なうことができる。
なお、本実施の形態に係るテスト回路では、ロジック部80が入力するテストデータまたはSI端子から入力するテストデータを変更することにより、ロジック部80およびロジック部81のスキャンテストを複数回繰り返すことも可能である。
[機能ブロック91のテスト時]
まず、機能ブロック91へSI端子からテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2A=1およびテストモード信号TEST2B=0と設定される。また、シフトモード信号SMAA=1、シフトモード信号SMAB=1およびシフトモード信号SMB=0と設定される。
複合ゲート型セレクタ60aは、SI端子から入力されるテストデータを選択し、テストデータをロジック部81およびインバータ40へ出力する。
複合ゲート型セレクタ61a〜63aは、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
複合ゲート型セレクタ10a〜13aは、インバータ40〜43から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
以上のような各複合ゲート型セレクタのデータ選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。フリップフロップ30〜32に保持された3ビットのテストデータは、それぞれ複合ゲート型セレクタ61a〜63aおよび複合ゲート型セレクタ11a〜13aによって選択されて機能ブロック91の入力端子DI1〜DI3に入力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ10aによって選択されて機能ブロック91の入力端子DI0に入力される。
以上より、SI端子から入力される4ビットのテストデータが機能ブロック91へ出力され、機能ブロック91がテストデータに所定のデータ処理を行ない、機能ブロック91から出力されたデータ処理結果が複合ゲート型セレクタ60a〜63aへ出力される。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスにテストデータを書き込むことができる。すなわち、RAMに対して初期データの書き込みテストを行なうことができる。
次に、機能ブロック91のデータ処理結果をSO端子から出力させる動作について説明する。
各制御信号は、テストモード信号TEST2A=0およびテストモード信号TEST2B=1と設定変更される。
そうすると、複合ゲート型セレクタ60a〜63aは、機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ40〜43へ出力する。
複合ゲート型セレクタ10a〜13aは、インバータ40〜43から受けたデータを選択し、選択したデータを機能ブロック91およびフリップフロップ30〜33へ出力する。
フリップフロップ30〜33にクロックを1回与えると、複合ゲート型セレクタ10a〜13aから出力された4ビットのデータがフリップフロップ30〜33に保持される。ここで、フリップフロップ33に保持されたデータは、SO端子からシフトアウトデータとして出力される。
次に、各制御信号は、テストモード信号TEST2A=1およびテストモード信号TEST2B=0と設定変更される。
そうすると、複合ゲート型セレクタ61a〜63aは、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上のような各複合ゲート型セレクタの選択により、SI端子〜SO端子間の直列シフト経路が再びスキャンパス1に形成される。フリップフロップ30〜33にクロックを3回与えると、フリップフロップ30〜33に保持された3ビットのテストデータは、シリアルシフト動作によってSO端子から出力される。したがって、機能ブロック91から出力された4ビットのデータ処理結果をSO端子から出力して、機能ブロック91のテストを行なうことができる。
なお、本実施の形態に係るテスト回路では、SI端子から入力するテストデータを変更することにより、機能ブロック91のテストを複数回繰り返すことも可能である。また、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスから4ビットのパラレルデータを読み出すことができる。すなわち、RAMに対して読み出しテストを行なうことができる。
[切り替え動作]
次に、本実施の形態に係るテスト回路が、機能ブロック91へ入力する4ビットのデータの論理レベルを切り替える際の動作について説明する。
各制御信号は、テストモード信号TEST2A=0およびテストモード信号TEST2B=0と設定される。また、シフトモード信号SMB=0と設定される。
テストモード信号TEST2A=0およびテストモード信号TEST2B=0であることから、複合ゲート型セレクタ60a〜63aの出力データの論理レベルは”0”となる。そうすると、インバータ40〜43の出力データの論理レベルは”1”となる。
インバータ40およびインバータ42の出力データの論理レベルが”1”であり、また、シフトモード信号SMB=0であることから、複合ゲート型セレクタ10aおよび複合ゲート型セレクタ12aの出力にはシフトモード信号SMAAの値が伝わる。すなわち、複合ゲート型セレクタ10aおよび複合ゲート型セレクタ12aの出力データの論理レベルはシフトモード信号SMAAの論理レベルと一致する。
同様に、インバータ41およびインバータ43の出力データの論理レベルが”1”であり、また、シフトモード信号SMB=0であることから、複合ゲート型セレクタ11aおよび複合ゲート型セレクタ13aの出力にはシフトモード信号SMABの値が伝わる。すなわち、複合ゲート型セレクタ11aおよび複合ゲート型セレクタ13aの出力データの論理レベルはシフトモード信号SMABの論理レベルと一致する。
つまり、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”には、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。より詳細には、シフトモード信号SMAA=0およびシフトモード信号SMAB=1と設定した場合には、”0101”のパターンのデータを機能ブロック91へ入力することができる。シフトモード信号SMAA=1およびシフトモード信号SMAB=0と設定した場合には、”1010”のパターンのデータを機能ブロック91へ入力することができる。シフトモード信号SMAA=0およびシフトモード信号SMAB=0と設定した場合には、”0000”のパターンのデータを機能ブロック91へ入力することができる。シフトモード信号SMAA=1およびシフトモード信号SMAB=1と設定した場合には、”1111”のパターンのデータを機能ブロック91へ入力することができる。
ところで、特許文献1記載のテスト回路では、論理レベルが混在するパターンを1クロックサイクルで切り替えて機能ブロックへ出力することができないために、集積回路を効率的にテストすることができないという問題点があった。しかしながら、本実施の形態に係るテスト回路では、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。したがって、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
なお、本実施の形態に係るテスト回路では、複合ゲート型セレクタ10aおよび複合ゲート型セレクタ10cにシフトモード信号SMAAが接続され、また、複合ゲート型セレクタ10bおよび複合ゲート型セレクタ10dにシフトモード信号SMABが接続される構成としたが、これに限定するものではない。複合ゲート型セレクタ10a〜10dのうちの少なくともいずれか1つの複合ゲート型セレクタに他の複合ゲート型セレクタと異なるシフトモード信号SMAAまたはシフトモード信号SMABが接続される構成であれば、論理レベルが混在するパターンを1クロックサイクルで切り替えて機能ブロック91へ出力することができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第2の実施の形態>
[構成および基本動作]
図2は、本発明の第2の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第1の実施の形態に係るテスト回路に対して、さらに、セレクタ100を備える。
セレクタ100は、ループイネーブル信号LOOPENの論理レベルが”0”の場合はSI端子から入力されるテストデータを選択し、ループイネーブル信号LOOPENの論理レベルが”1”の場合はフリップフロップ33から出力されるデータを選択し、選択したデータを複合ゲート型セレクタ60aへ出力する。
[動作]
次に、本実施の形態に係るテスト回路が、機能ブロック91へ入力する4ビットのデータの論理レベルを切り替える際の動作について説明する。
各制御信号は、ループイネーブル信号LOOPEN=1と設定される。また、テストモード信号TEST2A=0およびテストモード信号TEST2B=0と設定される。また、シフトモード信号SMAA=1、シフトモード信号SMAB=1およびシフトモード信号SMB=0と設定される。
そうすると、第1の実施の形態に係るテスト回路と同様に、シフトモード信号SMAA=1およびシフトモード信号SMAB=1と設定した場合には、”1111”のパターンのデータが機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力される。すなわち、複合ゲート型セレクタ10a〜13aの出力データの論理レベルはオール”1”となる。
ここで、フリップフロップ30〜33にクロックを1回与えると、複合ゲート型セレクタ10a〜13aから出力された4ビットのデータがフリップフロップ30〜33に保持され、フリップフロップ30〜33の出力データの論理レベルはオール”1”となる。
次に、制御信号は、テストモード信号TEST2A=1と設定変更される。そうすると、複合ゲート型セレクタ60aは、セレクタ100から出力されるデータを選択し、テストデータをロジック部81およびインバータ40へ出力する。
また、複合ゲート型セレクタ61a〜63aは、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上のような各複合ゲート型セレクタの選択により、セレクタ100〜フリップフロップ33の直列シフト経路の終点であるフリップフロップ33の出力が、この直列シフト経路の始点であるセレクタ100の入力に接続されて、直列シフトループ経路がスキャンパス1に形成される。
直列シフトループ経路において、フリップフロップ30の出力データは、インバータ41によって論理レベルが反転されてフリップフロップ31にシフトインされる。また、フリップフロップ31の出力データは、インバータ42によって論理レベルが反転されてフリップフロップ31にシフトインされる。また、フリップフロップ32の出力データは、インバータ43によって論理レベルが反転されてフリップフロップ33にシフトインされる。また、フリップフロップ33の出力データは、インバータ40によって論理レベルが反転されてフリップフロップ30にシフトインされる。
したがって、フリップフロップ30〜33にクロックを1回与えると、フリップフロップ30〜33の出力データがシリアルシフト動作により次段のフリップフロップに論理レベルが反転された状態でそれぞれ保持される。より詳細には、フリップフロップ30〜33の出力データの論理レベルが”1”の場合には、フリップフロップ30〜33にクロックを1回与えることによってフリップフロップ30〜33の出力データの論理レベルが”0”に変化する。また、フリップフロップ30〜33の出力データの論理レベルが”0”の場合には、フリップフロップ30〜33にクロックを1回与えることによってフリップフロップ30〜33の出力データの論理レベルが”1”に変化する。
ここで、フリップフロップ30〜33の出力データは、インバータおよび2個の複合ゲート型セレクタを介して機能ブロック91に入力される。したがって、本実施の形態に係るテスト回路では、フリップフロップ30〜33にクロックを1回与えるだけで、機能ブロック91に入力されるデータのパターンが”0000”の状態および”1111”の状態を交互に繰り返すことができる。
[第2の実施の形態の変形例]
次に、本実施の形態に係るテスト回路の変形例について説明する。図3は、本発明の第2の実施の形態に係るテスト回路に追加される所定値検出回路の接続位置および構成を示す回路図である。同図を参照して、このテスト回路は、第2の実施の形態に係るテスト回路に対して、さらに、所定値検出回路110aおよび所定値検出回路110bを備える。
所定値検出回路110aおよび所定値検出回路110bは、複合ゲート型セレクタ60a〜63aとロジック部81との間に配置される。
所定値検出回路110aは、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ62aからのデータが所定の論理レベルであるかどうかを検出する。より詳細には、所定値検出回路110aはAND回路であり、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ62aからのデータのパターンが”11”であるかどうかを検出する。すなわち、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ62aからのデータのパターンが”11”である場合には検出結果信号MONIAの論理レベルが”1”となり、データのパターンが”11”以外の場合には検出結果信号MONIAの論理レベルが”0”となる。
同様に、所定値検出回路110bは、複合ゲート型セレクタ61aおよび複合ゲート型セレクタ63aからのデータが所定の論理レベルであるかどうかを検出する。
ここで、所定値検出回路110aが受けるデータは機能ブロック91の偶数ビットに対応しており、所定値検出回路110bが受けるデータは機能ブロック91の奇数ビットに対応している。このような構成により、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。
図4は、本発明の第2の実施の形態に係るテスト回路に追加される所定値検出回路の接続位置および構成の他の例を示す回路図である。
所定値検出回路110aおよび所定値検出回路110bは、インバータ40〜43と複合ゲート型セレクタ10a〜13aとの間に配置される。
図5は、本発明の第2の実施の形態に係るテスト回路に追加される所定値検出回路の接続位置および構成の他の例を示す回路図である。
所定値検出回路110aおよび所定値検出回路110bは、複合ゲート型セレクタ10a〜13aと機能ブロック91との間に配置される。
図6は、本発明の第2の実施の形態に係るテスト回路に追加される所定値検出回路の接続位置および構成の他の例を示す回路図である。
所定値検出回路110aおよび所定値検出回路110bは、フリップフロップ30〜33と複合ゲート型セレクタ10a〜12aおよびSO端子との間に配置される。
したがって、図4〜図6に示す所定値検出回路110aおよび所定値検出回路110bは、図3に示す所定値検出回路と同様に、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。
なお、本実施の形態に係るテスト回路では、所定値検出回路110aおよび所定値検出回路110bがAND回路である構成としたが、これに限定するものではなく、NAND回路、OR回路またはNOR回路である構成としても、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。
図7は、本発明の第2の実施の形態に係るテスト回路に追加される所定値検出回路の構成の他の例を示す回路図である。ここでは、所定値検出回路の接続位置は図3に示す所定値検出回路と同様であると仮定して説明するが、図4〜図6に示す所定値検出回路の接続位置と同様であってもよい。
同図を参照して、この所定値検出回路は、図3に示す所定値検出回路に対して、さらに、所定値検出回路111aおよび所定値検出回路111bを備える。
所定値検出回路111aおよび所定値検出回路111bは、複合ゲート型セレクタ60a〜63aとロジック部81との間に配置される。
所定値検出回路111aは、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ62aからのデータが所定の論理レベルであるかどうかを検出する。より詳細には、所定値検出回路111aはOR回路であり、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ62aからのデータのパターンが”00”であるかどうかを検出する。すなわち、複合ゲート型セレクタ60aおよび複合ゲート型セレクタ62aからのデータのパターンが”00”である場合には検出結果信号MONIA2の論理レベルが”0”となり、データのパターンが”00”以外の場合には検出結果信号MONIB2の論理レベルが”1”となる。
同様に、所定値検出回路111bは、複合ゲート型セレクタ61aおよび複合ゲート型セレクタ63aからのデータのパターンが”11”であるかどうかを検出する。
このような構成により、オール”1”およびオール”0”のパターンの検出を1クロックサイクルで行なうことができる。
その他の構成および動作は第1の実施の形態に係るテスト回路と同様であるため、ここでは説明を繰り返さない。したがって、本実施の形態に係るテスト回路では、第1の実施の形態に係るテスト回路と同様に、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
さらに、本実施の形態に係るテスト回路では、フリップフロップ30〜33にクロックを1回与えるだけで、機能ブロック91に入力されるデータのパターンが”0000”の状態および”1111”の状態を交互に繰り返すことができる。このような構成により、”0000”および”1111”のパターンのデータを機能ブロック91へ入力するテストを行なう場合には、第1の実施の形態に係るテスト回路のように各制御信号の論理レベルを1クロックサイクルで切り替える必要がなくなり、テスト回路の制御の簡易化を図ることができる。
さらに、本実施の形態に係るテスト回路では、所定値検出回路110a、所定値検出回路110b、所定値検出回路111aおよび所定値検出回路111bによって、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。このような構成により、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第3の実施の形態>
[構成および基本動作]
図8は、本発明の第3の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第1の実施の形態に係るテスト回路に対して、スキャンパス1がさらにインバータ70〜73を備える。また、スキャンパス1は、複合ゲート型セレクタ60a〜63aの代わりにセレクタ60〜63を含み、かつ、複合ゲート型セレクタ10a〜13aの代わりにセレクタ10〜13を含む。
セレクタ60は、テストモード信号TEST2に基づいて、SI端子に入力される外部からのデータか、または機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ40へ出力する。
セレクタ61〜63は、テストモード信号TEST2に基づいて、フリップフロップ30〜32から受けたデータか、または機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
インバータ40〜43は、セレクタ60〜63から受けたデータの論理レベルを反転させてセレクタ10〜13へ出力する。
セレクタ10〜13は、シフトモード信号SMに基づいて、インバータ40〜43から受けたデータか、またはロジック部80から受けたデータを選択し、選択したデータを機能ブロック91およびインバータ70〜73へ出力する。
インバータ70〜73は、セレクタ10〜13から受けたデータの論理レベルを反転させてフリップフロップ30〜33へ出力する。
フリップフロップ30〜32は、インバータ70〜72から受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータをセレクタ61〜63へ出力する。
フリップフロップ33は、インバータ73から受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータをSO端子から直列シフトアウトデータとして出力する。
[動作]
次に、本実施の形態に係るテスト回路の通常動作時および各回路のテスト時における動作について説明する。
[通常動作時]
通常動作時において、各制御信号は、テストモード信号TEST2=0およびシフトモード信号SM=0と設定される。
各セレクタの行なうデータ選択は第1の実施の形態に係るテスト回路における各複合ゲート型セレクタと同様である。
以上より、ロジック部80から出力される4ビットのパラレルデータがセレクタ10〜13によって選択されて機能ブロック91の入力端子DI0〜DI3に入力される。そして、機能ブロック91の出力端子DO0〜DO3から出力されるデータがセレクタ60〜63によって選択されてロジック部81へ出力される。
したがって、通常動作時においては、機能ブロック91がロジック部80およびロジック部81の間に挿入された状態となる。すなわち、ロジック部80から出力されたパラレルデータが機能ブロック91に入力され、機能ブロック91がパラレルデータに所定のデータ処理を行ない、機能ブロック91から出力されたデータ処理結果がロジック部81へ出力される。
[ロジック部81のスキャンテスト時]
ロジック部81のスキャンテスト時において、各制御信号は、テストモード信号TEST2=1シフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第1の実施の形態に係るテスト回路における各複合ゲート型セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。
ここで、SI端子から入力されたテストデータはインバータ40およびインバータ70を通過することにより論理レベルが非反転の状態でフリップフロップ30に保持される。また、フリップフロップ30〜32から出力されるテストデータはそれぞれインバータ41〜43およびインバータ71〜73を通過することにより論理レベルが非反転の状態でフリップフロップ31〜33に保持されるとともに、ロジック部81へ出力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、セレクタ60によって選択されてロジック部81へ出力される。
以上より、SI端子から入力される4ビットのテストデータを、論理レベルが非反転の状態でロジック部81へ出力してロジック部81のスキャンテストを行なうことができる。
[ロジック部80のスキャンテスト時]
ロジック部80のスキャンテスト時において、各制御信号は、テストモード信号TEST2=1と設定される。また、シフトモード信号SM=0と設定される。
ロジック部80は、図示しない入力端子から入力されたテストデータに演算処理等のデータ処理を行ない、4ビットのデータ処理結果をセレクタ10〜13へ出力する。
セレクタ10〜13は、ロジック部80から受けたデータ処理結果を選択し、選択したデータ処理結果を機能ブロック91およびインバータ70〜73へ出力する。
フリップフロップ30〜33にクロックを1回与えると、インバータ70〜73から出力された論理レベルが反転された状態のデータ処理結果がフリップフロップ30〜33に保持される。ここで、フリップフロップ33に保持されたデータ処理結果は、論理レベルが反転された状態でSO端子からシフトアウトデータとして出力される。
そして、制御信号は、シフトモード信号SM=1と設定変更される。
各セレクタの行なうデータ選択は第1の実施の形態に係るテスト回路における各複合ゲート型セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。
ここで、フリップフロップ30〜32に保持された論理レベルが反転された状態のデータ処理結果は、それぞれインバータ70〜73およびインバータ41〜43を通過することにより引き続き論理レベルが反転された状態でフリップフロップ31〜33に保持される。したがって、フリップフロップ31〜33にクロックを3回与えると、フリップフロップ30〜32に保持されたデータ処理結果は、論理レベルが反転された状態でSO端子からシフトアウトデータとして出力される。
以上より、ロジック部80から出力される4ビットのデータ処理結果を、論理レベルが反転された状態でSO端子から出力して、ロジック部80のスキャンテストを行なうことができる。
なお、本実施の形態に係るテスト回路では、ロジック部80が入力するテストデータまたはSI端子から入力するテストデータを変更することにより、ロジック部80およびロジック部81のスキャンテストを複数回繰り返すことも可能である。
次に、本実施の形態に係るテスト回路の、機能ブロック91のテスト時における動作について説明する。
[機能ブロック91のテスト時]
まず、機能ブロック91へSI端子からテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2=1およびシフトモード信号SM=1と設定される。
セレクタ60は、SI端子から入力されるテストデータを選択し、テストデータをロジック部81およびインバータ40へ出力する。
セレクタ61〜63は、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
セレクタ10〜13は、インバータ40〜43から受けたデータを選択し、選択したデータを機能ブロック91およびインバータ70〜73へ出力する。
以上のような各セレクタのデータ選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。フリップフロップ30〜32に保持された3ビットのテストデータは、それぞれセレクタ61〜63およびセレクタ11〜13によって選択されて機能ブロック91の入力端子DI1〜DI3に入力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、セレクタ60およびセレクタ10によって選択されて機能ブロック91の入力端子DI0に入力される。
ここで、本実施の形態に係るテスト回路では、SI端子から入力されるテストデータはインバータ40およびインバータ70を通過することにより論理レベルが非反転の状態でフリップフロップ30に保持される。また、フリップフロップ30〜32から出力されるテストデータはそれぞれインバータ41〜43およびインバータ71〜73を通過することにより論理レベルが非反転の状態でフリップフロップ31〜33に保持される。
したがって、SI端子から”111”のパターンの3ビットのテストデータを入力した場合には、フリップフロップ30〜32の出力データの論理レベルは”1”となる。そうすると、フリップフロップ30〜32の出力データがインバータ41〜43を通過することによって、”000”のパターンのデータが機能ブロック91の入力端子”DI1、DI2、DI3”に入力される。そして、SI端子から論理レベルが”1”であるテストデータをさらに入力すると、インバータ40を通過することによって、論理レベル”0”のデータが機能ブロック91の入力端子DI0に入力される。すなわち、”0000”のパターンのデータを機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力することができる。
同様に、SI端子から”0000”のパターンの4ビットのテストデータを入力した場合には、”1111”のパターンのデータを機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力することができる。
なお、機能ブロック91に入力すべきデータがオール”0”またはオール”1”の場合には、SI端子の論理レベルを”0”または”1”に固定した状態で、フリップフロップ30〜34にクロックを与え続けることで、機能ブロック91に入力されるデータをオール”1”またはオール”0”とすることができ、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態にかかるテスト回路では、SI端子から任意の4ビットのテストデータを入力し、入力したテストデータを論理レベルが反転された状態で機能ブロック91に入力し、論理レベルが反転された状態のテストデータに対して機能ブロック91に所定のデータ処理を行なわせ、データ処理結果を機能ブロック91からセレクタ60〜63へ出力させることができる。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスに論理レベルが反転された状態のテストデータを書き込むことができる。すなわち、RAMに対して初期データの書き込みテストを行なうことができる。
次に、機能ブロック91のデータ処理結果をSO端子から出力し、かつ、機能ブロック91に新たなテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2=0およびシフトモード信号SM=1と設定される。
セレクタ60〜63は、機能ブロック91から受けたデータを選択し、選択したデータをロジック部81およびインバータ40〜43へ出力する。
セレクタ10〜13は、インバータ40〜43から受けたデータを選択し、選択したデータを機能ブロック91およびインバータ70〜73へ出力する。したがって、機能ブロック91のデータ処理結果は、インバータ40〜43を通過することにより論理レベルが反転されて新たなテストデータとして機能ブロック91に入力される。ここで、機能ブロック91がRAMの場合には、特定のアドレスに対して論理レベルの反転したデータを交互に書き込み、かつ読み出すテストを行なうことができる。たとえば、機能ブロック91から読み出されたデータ処理結果が”0000”のパターンの場合には、次のクロックサイクルでは”1111”のパターンのデータを機能ブロック91に書き込むことができる。
次に、フリップフロップ30〜33にクロックを1回与えると、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが非反転の状態でフリップフロップ30〜33に保持される。ここで、フリップフロップ33に保持されたデータは、SO端子からシフトアウトデータとして出力される。
次に、テストモード信号TEST2=1と設定変更される。
そうすると、セレクタ61〜63は、フリップフロップ30〜32から受けたデータを選択し、選択したデータをロジック部81およびインバータ41〜43へ出力する。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路が再びスキャンパス1に形成される。フリップフロップ30〜33にクロックを3回与えると、フリップフロップ30〜33に保持された3ビットのテストデータは、シリアルシフト動作によってSO端子から出力される。したがって、機能ブロック91から出力された4ビットのデータ処理結果を論理レベルが非反転の状態でSO端子から出力して、機能ブロック91のテストを行なうことができる。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスについてデータの書き込みおよび読み出しテストを行なうことができる。
また、本実施の形態に係るテスト回路におけるインバータ70〜73は、セレクタ10〜13およびフリップフロップ30〜33の間に配置される構成としたが、これに限定するものではなく、たとえば、フリップフロップ30〜33の出力側に配置することができる。
また、図3〜図7に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、セレクタ60〜63が複合ゲート型セレクタ60a〜63aの代わりとなり、セレクタ10〜13が複合ゲート型セレクタ10a〜13aの代わりとなる。
図9は、本発明の第3の実施の形態に係るテスト回路に追加される所定値検出回路の接続位置および構成を示す回路図である。
所定値検出回路110aおよび所定値検出回路110bは、インバータ70〜73とフリップフロップ30〜33との間に配置される。
その他の構成および動作は図3に示す所定値検出回路と同様である。したがって、図9に示す所定値検出回路110aおよび所定値検出回路110bは、図3に示す所定値検出回路と同様に、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。
ところで、特許文献1記載のテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要があった。しかしながら、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、本実施の形態に係るテスト回路では、第2の実施の形態に係るテスト回路と同様に、所定値検出回路110a、所定値検出回路110b、所定値検出回路111aおよび所定値検出回路111bによって、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。このような構成により、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第4の実施の形態>
[構成および基本動作]
図10は、本発明の第4の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第3の実施の形態に係るテスト回路に対して、フリップフロップ30〜33の配置を変更した構成である。
セレクタ10〜13は、シフトモード信号SMに基づいて、インバータ40〜43から受けたデータか、またはロジック部80から受けたデータを選択し、選択したデータをフリップフロップ30〜33へ出力する。
フリップフロップ30〜33は、セレクタ10〜13から受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータを機能ブロック91およびインバータ70〜73へ出力する。
インバータ70〜72は、フリップフロップ30〜32から受けたデータの論理レベルを反転させてセレクタ11〜13へ出力する。
インバータ73は、フリップフロップ33から受けたデータの論理レベルを反転させてSO端子から直列シフトアウトデータとして出力する。
[動作]
次に、本実施の形態に係るテスト回路の通常動作時および各回路のテスト時における動作について説明する。
[通常動作時]
通常動作時において、各制御信号は、テストモード信号TEST2=0およびシフトモード信号SM=0と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上より、ロジック部80から出力される4ビットのパラレルデータがセレクタ10〜13によって選択されて機能ブロック91の入力端子DI0〜DI3に入力される。そして、機能ブロック91の出力端子DO0〜DO3から出力されるデータがセレクタ60〜63によって選択されてロジック部81へ出力される。
したがって、通常動作時においては、機能ブロック91がロジック部80およびロジック部81の間に挿入された状態となる。すなわち、ロジック部80から出力されたパラレルデータが機能ブロック91に入力され、機能ブロック91がパラレルデータに所定のデータ処理を行ない、機能ブロック91から出力されたデータ処理結果がロジック部81へ出力される。
[ロジック部81のスキャンテスト時]
ロジック部81のスキャンテスト時において、各制御信号は、テストモード信号TEST2=1シフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第1の実施の形態に係るテスト回路における各複合ゲート型セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。
ここで、SI端子から入力されたテストデータはインバータ40を通過することにより論理レベルが反転された状態でフリップフロップ30に保持される。また、フリップフロップ30〜32から出力される論理レベルが反転された状態のテストデータはそれぞれインバータ70〜72およびインバータ40〜43を通過することにより引き続き論理レベルが反転された状態でフリップフロップ31〜33に保持される。
フリップフロップ30〜32に保持された論理レベルが反転された状態の3ビットのテストデータは、それぞれインバータ70〜73を通過することにより論理レベルが非反転の状態となる。そして、インバータ70〜73から出力されたデータはセレクタ61〜63によって選択されてロジック部81へ出力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、セレクタ60によって選択されてロジック部81へ出力される。
以上より、SI端子から入力される4ビットのテストデータを、論理レベルが非反転の状態でロジック部81へ出力してロジック部81のスキャンテストを行なうことができる。
[ロジック部80のスキャンテスト時]
ロジック部80のスキャンテスト時において、各制御信号は、テストモード信号TEST2=1と設定される。また、シフトモード信号SM=0と設定される。
ロジック部80は、図示しない入力端子から入力されたテストデータに演算処理等のデータ処理を行ない、4ビットのデータ処理結果をセレクタ10〜13へ出力する。
セレクタ10〜13は、ロジック部80から受けたデータ処理結果を選択し、選択したデータ処理結果を機能ブロック91およびフリップフロップ30〜33へ出力する。
フリップフロップ30〜33にクロックを1回与えると、セレクタ10〜13から出力されたデータ処理結果がフリップフロップ30〜33に保持される。ここで、フリップフロップ33に保持されたデータ処理結果は、インバータ73を通過することにより論理レベルが反転された状態でSO端子からシフトアウトデータとして出力される。
そして、制御信号は、シフトモード信号SM=1と設定変更される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。
ここで、フリップフロップ30〜32に保持されたデータ処理結果は、それぞれインバータ70〜73およびインバータ41〜43を通過することにより論理レベルが非反転の状態でフリップフロップ31〜33に保持される。したがって、フリップフロップ31〜33にクロックを3回与えると、フリップフロップ30〜32に保持されたデータ処理結果は、インバータ73を通過することにより論理レベルが反転された状態でSO端子からシフトアウトデータとして出力される。
以上より、ロジック部80から出力される4ビットのデータ処理結果を、論理レベルが反転された状態でSO端子から出力して、ロジック部80のスキャンテストを行なうことができる。
なお、本実施の形態に係るテスト回路では、ロジック部80が入力するテストデータまたはSI端子から入力するテストデータを変更することにより、ロジック部80およびロジック部81のスキャンテストを複数回繰り返すことも可能である。
また、本実施の形態に係るテスト回路は、インバータ73を備える構成としたが、これに限定するものではなく、インバータ73を備えない構成とすることができる。この場合には、ロジック部80から出力される4ビットのデータ処理結果を、論理レベルが非反転の状態でSO端子から出力して、ロジック部80のスキャンテストを行なうことができる。
次に、本実施の形態に係るテスト回路の、機能ブロック91のテスト時における動作について説明する。
[機能ブロック91のテスト時]
まず、機能ブロック91へSI端子からテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2=1およびシフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタのデータ選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。フリップフロップ30〜32に保持された3ビットのテストデータは、それぞれセレクタ61〜63およびセレクタ11〜13によって選択されて機能ブロック91の入力端子DI1〜DI3に入力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、セレクタ60およびセレクタ10によって選択されて機能ブロック91の入力端子DI0に入力される。
ここで、本実施の形態に係るテスト回路では、SI端子から入力されるテストデータはインバータ40を通過することにより論理レベルが反転された状態でフリップフロップ30に保持される。また、フリップフロップ30〜32から出力される論理レベルが反転された状態のテストデータはそれぞれインバータ70〜72およびインバータ41〜43を通過することにより引き続き論理レベルが反転された状態でフリップフロップ31〜33に保持される。
したがって、SI端子から”1111”のパターンの4ビットのテストデータを入力した場合には、フリップフロップ30〜33の出力データの論理レベルは”0”となり、”0000”のパターンのデータが機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力される。
同様に、SI端子から”0000”のパターンの4ビットのテストデータを入力した場合には、”1111”のパターンのデータを機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力することができる。
なお、機能ブロック91に入力すべきデータがオール”0”またはオール”1”の場合には、SI端子の論理レベルを”1”または”0”に固定した状態で、フリップフロップ30〜33にクロックを与え続けることで、機能ブロック91に入力されるデータをオール”0”またはオール”1”とすることができ、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態にかかるテスト回路では、SI端子から任意の4ビットのテストデータを入力し、入力したテストデータを論理レベルが反転された状態で機能ブロック91に入力し、論理レベルが反転された状態のテストデータに対して機能ブロック91に所定のデータ処理を行なわせ、データ処理結果を機能ブロック91からセレクタ60〜63へ出力させることができる。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスに論理レベルが反転された状態のテストデータを書き込むことができる。すなわち、RAMに対して初期データの書き込みテストを行なうことができる。
次に、機能ブロック91のデータ処理結果をSO端子から出力し、かつ、機能ブロック91に新たなテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2=0およびシフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタのデータ選択により、機能ブロック91のデータ処理結果は、インバータ40〜43を通過することにより論理レベルが反転された状態でセレクタ10〜13から出力される。そして、フリップフロップ30〜33にクロックを1回与えると、セレクタ10〜13から出力されたデータがフリップフロップ30〜33に保持されるとともに、新たなテストデータとして機能ブロック91に入力される。ここで、機能ブロック91がRAMの場合には、特定のアドレスに対して論理レベルの反転したデータを交互に書き込み、かつ読み出すテストを行なうことができる。たとえば、機能ブロック91から読み出されたデータ処理結果が”0000”のパターンの場合には、次のクロックサイクルでは”1111”のパターンのデータを機能ブロック91に書き込むことができる。
次に、テストモード信号TEST2=1と設定変更される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路が再びスキャンパス1に形成される。
ここで、フリップフロップ30〜33にクロックを1回与えると、フリップフロップ30〜32から出力されるデータ処理結果はそれぞれインバータ70〜72およびインバータ41〜43を通過することにより論理レベルが非反転の状態でフリップフロップ31〜33に保持される。そして、フリップフロップ33に保持されたデータ処理結果は、インバータ73を通過することにより論理レベルが非反転の状態でSO端子からシフトアウトデータとして出力される。
したがって、機能ブロック91から出力された4ビットのデータ処理結果を論理レベルが非反転の状態でSO端子から出力して、機能ブロック91のテストを行なうことができる。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスについてデータの書き込みおよび読み出しテストを行なうことができる。
また、第3の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。
以上より、本実施の形態に係るテスト回路では、第3の実施の形態に係るテスト回路と同様に、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが常に非反転の状態でSO端子から出力されるため、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、本実施の形態に係るテスト回路では、第3の実施の形態に係るテスト回路と同様に、所定値検出回路110a、所定値検出回路110b、所定値検出回路111aおよび所定値検出回路111bによって、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。このような構成により、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第5の実施の形態>
[構成および基本動作]
図11は、本発明の第5の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第3の実施の形態に係るテスト回路に対して、フリップフロップ30〜33の配置を変更し、かつ、フリップフロップ34を追加した構成である。
セレクタ60は、テストモード信号TEST2に基づいて、SI端子に入力される外部からのデータか、または機能ブロック91から受けたデータを選択し、選択したデータをフリップフロップ30へ出力する。
セレクタ61〜63は、テストモード信号TEST2に基づいて、インバータ70〜72から受けたデータか、または機能ブロック91から受けたデータを選択し、選択したデータをフリップフロップ31〜33へ出力する。
フリップフロップ30〜33は、セレクタ60〜63から受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータをロジック部81およびインバータ40〜43へ出力する。
セレクタ10〜13は、シフトモード信号SMに基づいて、インバータ40〜43から受けたデータか、またはロジック部80から受けたデータを選択し、選択したデータを機能ブロック91およびインバータ70〜73へ出力する。
インバータ70〜72は、セレクタ10〜12から受けたデータの論理レベルを反転させてセレクタ61〜63へ出力する。
インバータ73は、セレクタ13から受けたデータの論理レベルを反転させてフリップフロップ34へ出力する。
フリップフロップ34は、インバータ73から受けたデータを図示しないクロックのタイミングでサンプリングして保持し、保持したデータをSO端子から直列シフトアウトデータとして出力する。
[動作]
次に、本実施の形態に係るテスト回路の通常動作時および各回路のテスト時における動作について説明する。
[通常動作時]
通常動作時において、各制御信号は、テストモード信号TEST2=0およびシフトモード信号SM=0と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上より、ロジック部80から出力される4ビットのパラレルデータがセレクタ10〜13によって選択されて機能ブロック91の入力端子DI0〜DI3に入力される。そして、機能ブロック91の出力端子DO0〜DO3から出力されるデータがセレクタ60〜63によって選択されてフリップフロップ30〜33へ出力される。
そして、フリップフロップ30〜33にクロックを1回与えると、セレクタ60〜63から出力された4ビットのデータがフリップフロップ30〜33に保持されるとともにロジック部81へ出力される。すなわち、フリップフロップ30〜33は機能ブロック91の出力レジスタとして動作する。
したがって、通常動作時においては、機能ブロック91およびフリップフロップ30〜33がロジック部80およびロジック部81の間に挿入された状態となる。すなわち、ロジック部80から出力されたパラレルデータが機能ブロック91に入力され、機能ブロック91がパラレルデータに所定のデータ処理を行ない、機能ブロック91から出力されたデータ処理結果がフリップフロップ30〜33に保持されるとともにロジック部81へ出力される。
[ロジック部81のスキャンテスト時]
ロジック部81のスキャンテスト時において、各制御信号は、テストモード信号TEST2=1シフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを3回与えると、SI端子から入力される3ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜32にそれぞれ保持される。
ここで、フリップフロップ30〜32から出力されるテストデータはそれぞれインバータ40〜42およびインバータ70〜72を通過することにより論理レベルが非反転の状態でフリップフロップ31〜33に保持され、ロジック部81へ出力される。また、SI端子から入力されるテストデータの次のビット、すなわち4ビット目のテストデータは、セレクタ60によって選択されてフリップフロップ30へ出力され、フリップフロップ30で保持されるとともにロジック部81へ出力される。
以上より、SI端子から入力される4ビットのテストデータを、論理レベルが非反転の状態でロジック部81へ出力してロジック部81のスキャンテストを行なうことができる。
[ロジック部80のスキャンテスト時]
ロジック部80のスキャンテスト時において、各制御信号は、テストモード信号TEST2=1と設定される。また、シフトモード信号SM=0と設定される。
ロジック部80は、図示しない入力端子から入力されたテストデータに演算処理等のデータ処理を行ない、4ビットのデータ処理結果をセレクタ10〜13へ出力する。
セレクタ10〜13は、ロジック部80から受けたデータ処理結果を選択し、選択したデータ処理結果を機能ブロック91およびインバータ70〜73へ出力する。
セレクタ61〜63は、インバータ70〜72から受けたデータを選択し、選択したデータをフリップフロップ31〜33へ出力する。
フリップフロップ31〜34にクロックを1回与えると、セレクタ61〜63およびインバータ73から出力された論理レベルが反転された状態のデータ処理結果がフリップフロップ31〜34に保持される。ここで、フリップフロップ34に保持されたデータ処理結果は、論理レベルが反転された状態でSO端子からシフトアウトデータとして出力される。
そして、制御信号は、シフトモード信号SM=1と設定変更される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各複合ゲート型セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。
ここで、フリップフロップ31〜33に保持された論理レベルが反転された状態のデータ処理結果は、それぞれインバータ41〜43およびインバータ71〜73を通過することにより引き続き論理レベルが反転された状態でフリップフロップ32〜34に保持される。したがって、フリップフロップ31〜34にクロックを3回与えると、フリップフロップ31〜33に保持されたデータ処理結果は、論理レベルが反転された状態でSO端子からシフトアウトデータとして出力される。
以上より、ロジック部80から出力される4ビットのデータ処理結果を、論理レベルが反転された状態でSO端子から出力して、ロジック部80のスキャンテストを行なうことができる。
なお、本実施の形態に係るテスト回路では、ロジック部80が入力するテストデータまたはSI端子から入力するテストデータを変更することにより、ロジック部80およびロジック部81のスキャンテストを複数回繰り返すことも可能である。
また、本実施の形態に係るテスト回路は、インバータ73を備える構成としたが、これに限定するものではなく、インバータ73を備えない構成とすることができる。この場合には、ロジック部80から出力される4ビットのデータ処理結果を、論理レベルが非反転の状態でSO端子から出力して、ロジック部80のスキャンテストを行なうことができる。
[機能ブロック91のテスト時]
まず、機能ブロック91へSI端子からテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2=1およびシフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタのデータ選択により、SI端子〜SO端子間の直列シフト経路がスキャンパス1に形成される。したがって、フリップフロップ30〜33にクロックを4回与えると、SI端子から入力される4ビットのテストデータがシリアルシフト動作によりフリップフロップ30〜33にそれぞれ保持される。フリップフロップ30〜33に保持された4ビットのテストデータは、それぞれセレクタ10〜13およびセレクタ61〜63によって選択されて機能ブロック91の入力端子DI0〜DI3に入力される。
ここで、本実施の形態に係るテスト回路では、SI端子から入力されるテストデータは論理レベルが非反転の状態でフリップフロップ30に保持される。また、フリップフロップ31〜33から出力されるテストデータはそれぞれインバータ40〜42およびインバータ70〜72を通過することにより論理レベルが非反転の状態でフリップフロップ31〜33に保持される。
したがって、SI端子から”1111”のパターンの4ビットのテストデータを入力した場合には、フリップフロップ30〜33の出力データの論理レベルは”1”となる。そうすると、フリップフロップ30〜33の出力データがインバータ40〜43を通過することによって、”0000”のパターンのデータが機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力される。
同様に、SI端子から”0000”のパターンの4ビットのテストデータを入力した場合には、”1111”のパターンのデータを機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に入力することができる。
なお、機能ブロック91に入力すべきデータがオール”0”またはオール”1”の場合には、SI端子の論理レベルを”0”または”1”に固定した状態で、フリップフロップ30〜34にクロックを与え続けることで、機能ブロック91に入力されるデータをオール”1”またはオール”0”とすることができ、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態にかかるテスト回路では、SI端子から任意の4ビットのテストデータを入力し、入力したテストデータを論理レベルが反転された状態で機能ブロック91に入力し、論理レベルが反転された状態のテストデータに対して機能ブロック91に所定のデータ処理を行なわせ、データ処理結果を機能ブロック91からセレクタ60〜63へ出力させることができる。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスに論理レベルが反転された状態のテストデータを書き込むことができる。すなわち、RAMに対して初期データの書き込みテストを行なうことができる。
次に、機能ブロック91のデータ処理結果をSO端子から出力し、かつ、機能ブロック91に新たなテストデータを入力する動作について説明する。
各制御信号は、テストモード信号TEST2=0およびシフトモード信号SM=1と設定される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
したがって、機能ブロック91のデータ処理結果は、インバータ40〜43を通過することにより論理レベルが反転された状態で新たなテストデータとして機能ブロック91に入力される。なお、機能ブロック91がRAMの場合には、特定のアドレスに対して論理レベルの反転したデータを交互に書き込み、かつ読み出すテストを行なうことができる。たとえば、機能ブロック91から読み出されたデータ処理結果が”0000”のパターンの場合には、次のクロックサイクルでは”1111”のパターンのデータを機能ブロック91に書き込むことができる。
次に、フリップフロップ30〜34にクロックを1回与えると、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが非反転の状態でフリップフロップ31〜34に保持される。ここで、フリップフロップ34に保持されたデータは、SO端子からシフトアウトデータとして出力される。
次に、テストモード信号TEST2=1と設定変更される。
各セレクタの行なうデータ選択は第3の実施の形態に係るテスト回路における各セレクタと同様である。
以上のような各セレクタの選択により、SI端子〜SO端子間の直列シフト経路が再びスキャンパス1に形成される。フリップフロップ30〜34にクロックを3回与えると、フリップフロップ30〜33に保持された3ビットのテストデータは、シリアルシフト動作によってSO端子から出力される。したがって、機能ブロック91から出力された4ビットのデータ処理結果を論理レベルが非反転の状態でSO端子から出力して、機能ブロック91のテストを行なうことができる。
なお、機能ブロック91がRAMの場合には、図示しないアドレス信号をRAMへ出力することにより、RAMの各アドレスについてデータの書き込みおよび読み出しテストを行なうことができる。
また、第3の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。
以上より、本実施の形態に係るテスト回路では、第3の実施の形態に係るテスト回路と同様に、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが常に非反転の状態でSO端子から出力されるため、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、本実施の形態に係るテスト回路では、第3の実施の形態に係るテスト回路と同様に、所定値検出回路110a、所定値検出回路110b、所定値検出回路111aおよび所定値検出回路111bによって、機能ブロック91の偶数ビットに対応する回路に故障があるのか、機能ブロック91の奇数ビットに対応する回路に故障があるのかを判定することができる。このような構成により、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜34にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第6の実施の形態>
本実施の形態は、図1に示す第1の実施の形態に係るテスト回路および図8に示す第3の実施の形態に係るテスト回路を組み合わせたテスト回路に関する。
図12は、本発明の第6の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第1の実施の形態に係るテスト回路に対して、スキャンパス1がさらにインバータ70〜73を備える。
本実施の形態に係るテスト回路は、第1の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第3の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第7の実施の形態>
図13は、本発明の第7の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第6の実施の形態に係るテスト回路に対して、スキャンパス1が、複合ゲート型セレクタ10a〜13aの代わりに反転出力型複合ゲート型セレクタ10b〜13bを備え、また、インバータ70〜73の代わりにインバータ70a〜73aを備える。
本実施の形態に係るテスト回路は、第6の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43および反転出力型複合ゲート型セレクタ10b〜13bを通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第6の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、反転出力型複合ゲート型セレクタ10b〜13bが複合ゲート型セレクタ10a〜13aの代わりとなり、また、インバータ70a〜73aがインバータ70〜73の代わりとなる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第8の実施の形態>
図14は、本発明の第8の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第7の実施の形態に係るテスト回路に対して、スキャンパス1が、複合ゲート型セレクタ60a〜63aの代わりに反転出力型複合ゲート型セレクタ60b〜63bを備え、また、インバータ40〜43の代わりにインバータ40a〜43aを備える。
本実施の形態に係るテスト回路は、第7の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果は反転出力型複合ゲート型セレクタ60b〜63bおよび反転出力型複合ゲート型セレクタ10b〜13bを通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第7の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、反転出力型複合ゲート型セレクタ10b〜13bが複合ゲート型セレクタ10a〜13aの代わりとなり、インバータ70a〜73aがインバータ70〜73の代わりとなり、反転出力型複合ゲート型セレクタ60b〜63bが複合ゲート型セレクタ60a〜63aの代わりとなり、インバータ40a〜43aがインバータ40〜43の代わりとなる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第9の実施の形態>
本実施の形態は、図1に示す第1の実施の形態に係るテスト回路および図10に示す第4の実施の形態に係るテスト回路を組み合わせたテスト回路に関する。
図15は、本発明の第9の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第4の実施の形態に係るテスト回路に対して、スキャンパス1がセレクタ10〜13およびセレクタ60〜63の代わりに複合ゲート型セレクタ10a〜13aおよび複合ゲート型セレクタ60a〜63aを含む。
本実施の形態に係るテスト回路は、第1の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第4の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第10の実施の形態>
図16は、本発明の第10の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第9の実施の形態に係るテスト回路に対して、スキャンパス1が、複合ゲート型セレクタ10a〜13aの代わりに反転出力型複合ゲート型セレクタ10b〜13bを備え、また、インバータ70〜73の代わりにインバータ70a〜73aを備える。
本実施の形態に係るテスト回路は、第9の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43および反転出力型複合ゲート型セレクタ10b〜13bを通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第9の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、反転出力型複合ゲート型セレクタ10b〜13bが複合ゲート型セレクタ10a〜13aの代わりとなり、また、インバータ70a〜73aがインバータ70〜73の代わりとなる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第11の実施の形態>
図17は、本発明の第11の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第10の実施の形態に係るテスト回路に対して、スキャンパス1が、複合ゲート型セレクタ60a〜63aの代わりに反転出力型複合ゲート型セレクタ60b〜63bを備え、また、インバータ40〜43の代わりにインバータ40a〜43aを備える。
本実施の形態に係るテスト回路は、第10の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果は反転出力型複合ゲート型セレクタ60b〜63bおよび反転出力型複合ゲート型セレクタ10b〜13bを通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第10の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、反転出力型複合ゲート型セレクタ10b〜13bが複合ゲート型セレクタ10a〜13aの代わりとなり、インバータ70a〜73aがインバータ70〜73の代わりとなり、反転出力型複合ゲート型セレクタ60b〜63bが複合ゲート型セレクタ60a〜63aの代わりとなり、インバータ40a〜43aがインバータ40〜43の代わりとなる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第12の実施の形態>
本実施の形態は、図1に示す第1の実施の形態に係るテスト回路および図11に示す第5の実施の形態に係るテスト回路を組み合わせたテスト回路に関する。
図18は、本発明の第12の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第5の実施の形態に係るテスト回路に対して、スキャンパス1がセレクタ10〜13およびセレクタ60〜63の代わりに複合ゲート型セレクタ10a〜13aおよび複合ゲート型セレクタ60a〜63aを含む。
本実施の形態に係るテスト回路は、第1の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43およびインバータ70〜73を通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第5の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第13の実施の形態>
図19は、本発明の第13の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第12の実施の形態に係るテスト回路に対して、スキャンパス1が、複合ゲート型セレクタ10a〜13aの代わりに反転出力型複合ゲート型セレクタ10b〜13bを備え、また、インバータ70〜73の代わりにインバータ70a〜73aを備える。
本実施の形態に係るテスト回路は、第12の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果はインバータ40〜43および反転出力型複合ゲート型セレクタ10b〜13bを通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第12の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、反転出力型複合ゲート型セレクタ10b〜13bが複合ゲート型セレクタ10a〜13aの代わりとなり、また、インバータ70a〜73aがインバータ70〜73の代わりとなる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第14の実施の形態>
図20は、本発明の第14の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第13の実施の形態に係るテスト回路に対して、スキャンパス1が、複合ゲート型セレクタ60a〜63aの代わりに反転出力型複合ゲート型セレクタ60b〜63bを備え、また、インバータ40〜43の代わりにインバータ40a〜43aを備える。
本実施の形態に係るテスト回路は、第13の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
また、本実施の形態に係るテスト回路では、機能ブロック91から出力されたデータ処理結果は反転出力型複合ゲート型セレクタ60b〜63bおよび反転出力型複合ゲート型セレクタ10b〜13bを通過することにより論理レベルが常に非反転の状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
さらに、第13の実施の形態に係るテスト回路と同様に、図3〜図7および図9に示す所定値検出回路を本実施の形態に係るテスト回路に追加する構成とすることができる。この場合、反転出力型複合ゲート型セレクタ10b〜13bが複合ゲート型セレクタ10a〜13aの代わりとなり、インバータ70a〜73aがインバータ70〜73の代わりとなり、反転出力型複合ゲート型セレクタ60b〜63bが複合ゲート型セレクタ60a〜63aの代わりとなり、インバータ40a〜43aがインバータ40〜43の代わりとなる。したがって、機能ブロック91から出力される4ビットのデータ処理結果を、フリップフロップ30〜33にクロックを与えてSO端子からシフトアウトさせることによってテストを行なう必要がなくなり、テスト回路の制御の簡易化を図ることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第15の実施の形態>
本実施の形態は、図1に示す第1の実施の形態に係るテスト回路に回路を追加することにより、図8に示す第3の実施の形態に係るテスト回路と同様の効果を奏するテスト回路に関する。
[構成]
図21は、本発明の第15の実施の形態に係るテスト回路の構成を示す回路図である。同図を参照して、テスト回路は、第1の実施の形態に係るテスト回路に対して、参照データ生成回路200と、イクスクルーシブオア回路150とを備える。参照データ生成回路200は、フリップフロップ160と、インバータ170とを含む。
[動作]
まず、図示しない制御回路は、リセット信号RESETをフリップフロップ160へ出力する。
フリップフロップ160は、リセット信号RESETを受けて、出力データFLIPの論理レベルを”0”とする。
このとき、フリップフロップ160は、インバータ170を通過することによって論理レベルが反転された状態の出力データFLIPを受ける。すなわち、論理レベルが”1”のデータをインバータ170から受ける。
次に、図示しない制御回路は、フリップフロップ160へのリセット制御を解除する、すなわち、フリップフロップ160へのリセット信号RESETの出力を停止する。また、テスト回路における他のフリップフロップに与えられるクロックと同じクロックがフリップフロップ160に与えられる。
フリップフロップ160は、図示しない制御回路によるリセット制御が解除されると、インバータ170を通過することによって論理レベルが反転された状態の出力データFLIPをクロックのタイミングでサンプリングして保持し、保持したデータを出力データFLIPとしてインバータ170およびイクスクルーシブオア回路150へ出力する。より詳細には、フリップフロップ160は、リセット解除後に与えられた1つ目のクロックのタイミングで論理レベル”1”のデータを保持してこれを出力データFLIPとして出力する。そして、インバータ170はフリップフロップ160から論理レベル”1”の出力データFLIPを受けて、論理レベル”0”のデータをフリップフロップ160へ出力する。そして、フリップフロップ160は、リセット解除後に与えられた2つ目のクロックのタイミングで論理レベル”0”のデータを保持してこれを出力データFLIPとして出力する。したがって、フリップフロップ160に連続してクロックが与えられると、出力データFLIPは論理レベル”0”および”1”を交互に繰り返す。
イクスクルーシブオア回路150は、論理レベル”0”および”1”を交互に繰り返す出力データFLIPを受けることから、SO端子から出力されるシフトアウトデータの論理レベルを1つおきに反転した状態のデータをSOF端子から出力する。
ここで、SO端子から出力されるシフトアウトデータは、スキャンパス1に配置されたインバータ40〜43によって機能ブロック91の出力データの論理レベルが1つおきに反転された状態のデータである。すなわち、機能ブロック91の出力端子DO0から出力されるデータは、インバータ40〜43を通過することにより論理レベルが非反転の状態でSO端子から出力される。機能ブロック91の出力端子DO1から出力されるデータは、インバータ41〜43を通過することにより論理レベルが反転された状態でSO端子から出力される。機能ブロック91の出力端子DO2から出力されるデータは、インバータ42およびインバータ43を通過することにより論理レベルが非反転の状態でSO端子から出力される。機能ブロック91の出力端子DO1から出力されるデータは、インバータ43を通過することにより論理レベルが反転された状態でSO端子から出力される。
したがって、イクスクルーシブオア回路150は、機能ブロック91の出力データの論理レベルが常に非反転状態または反転状態のデータをSOF端子から出力することになる。ここで、非反転状態となるかまたは反転状態となるかは、フリップフロップ160に対するリセット解除のタイミングおよびSO端子から出力されるシフトアウトデータのタイミングの関係に依存する。
本実施の形態に係るテスト回路では、イクスクルーシブオア回路150が、論理レベル”0”および”1”を交互に繰り返す出力データFLIPを受けることから、機能ブロック91の出力データの論理レベルが常に非反転状態または反転状態のデータがSOF端子から出力される。したがって、本実施の形態に係るテスト回路では、機能ブロックの出力データを直列シフト経路から取り出して解析する際に、スキャンパスに配置されたインバータを考慮して出力データの解析を行なう必要がない。
また、本実施の形態に係るテスト回路は、第1の実施の形態に係るテスト回路と同様に、各制御信号をテストモード信号TEST2A=0、テストモード信号TEST2B=0およびシフトモード信号SMB=0と設定することにより、機能ブロック91の入力端子”DI0、DI1、DI2、DI3”に、それぞれ”SMAA、SMAB、SMAA、SMAB”の値が伝わる。したがって、シフトモード信号SMAAおよびシフトモード信号SMABの論理レベルを1クロックサイクルで切り替えることにより、論理レベルがオール”0”のパターンおよびオール”1”のパターンに加えて論理レベルが”0”および”1”の交互パターンを1クロックサイクルで切り替えることができる。
以上より、本実施の形態に係るテスト回路では、集積回路を効率的にテストすることができる。
なお、SO端子から出力されるシフトアウトデータは機能ブロック91の出力データである場合に限らず、ロジック部80から出力されるデータ処理結果の場合もあるが、ロジック部80から出力されるデータ処理結果もスキャンパス1に配置されたインバータ40〜43によって論理レベルが1つおきに反転された状態でSO端子から出力される。したがって、本実施の形態に係るテスト回路では、ロジック部80から出力されるデータ処理結果についても、論理レベルが常に非反転状態または反転状態でSOF端子から出力させることができる。
さらに、本実施の形態に係るテスト回路では、参照データ生成回路200が、論理レベル”0”および”1”を交互に繰り返す出力データFLIPを出力する構成としたが、これに限定するものではない。参照データ生成回路200が、機能ブロック91が正常である場合にSO端子から出力されるシフトアウトデータと同一または論理レベルが反転されたデータを生成する構成であれば、イクスクルーシブオア回路150は、機能ブロック91の出力データの論理レベルが常に非反転状態または反転状態のデータをSOF端子へ出力することができる。
また、本発明の実施の形態に係るテスト回路では、論理レベル”0”および論理レベル”1”に対応する信号レベルは任意である。すなわち、論理レベル”0”を低電位とし、論理レベル”1”を高電位としてもよいし、逆に、論理レベル”0”を高電位とし、論理レベル”1”を低電位としてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 スキャンパス、10a〜13a,60a〜63a 複合ゲート型セレクタ、10〜13,60〜63,100 セレクタ、10b〜13b,60b〜63b 反転出力型複合ゲート型セレクタ、30〜33,34 フリップフロップ、40〜43,70〜73,40a〜43a,70a〜73a インバータ、80,81 ロジック部、91 機能ブロック、110a,111a,110b,111b 所定値検出回路、150 イクスクルーシブオア回路、160 フリップフロップ、170 インバータ、200 参照データ生成回路。