(57)【要約】【課題】本発明は、ピン数を増加させることなく、通常モードとテストモードとの独立性を確保することができる半導体集積回路及びそのテスト方法を提供する。【解決手段】命令データをデコードすることにより、ユーザ命令又はテスト命令を検出する命令デコーダ３０と、直列接続された複数段のフリップフロップＦＦ１０〜ＦＦ３０を有し、命令デコーダ３０においてテスト命令が検出され、テスト命令が与えられた場合には、テスト命令を、隣接するフリップフロップＦＦ１０〜ＦＦ３０に順次シフトさせながら記憶することにより、各フリップフロップＦＦ１０〜ＦＦ３０にデータを記憶し、さらに各フリップフロップＦＦ１０〜ＦＦ３０に記憶されたデータをテスト対象回路６０、７０Ａ及び７０Ｂに出力することにより、テスト対象回路６０、７０Ａ及び７０Ｂにおけるテスト動作を制御するシフトレジスタ５０とを備える。【選択図】図１
2007107964.tif 000002
【特許請求の範囲】
【請求項１】
命令データをデコードすることにより、ユーザ命令又はテスト命令を検出する命令デコーダと、
直列接続された複数段のフリップフロップを有し、前記命令デコーダにおいて前記テスト命令が検出され、前記テスト命令が与えられた場合には、前記テスト命令を、隣接する前記フリップフロップに順次シフトさせながら記憶することにより、前記各フリップフロップにデータを記憶し、さらに前記各フリップフロップに記憶された前記データをテスト対象回路に出力することにより、前記テスト対象回路におけるテスト動作を制御するシフトレジスタと
を備えることを特徴とする半導体集積回路。
【請求項２】
前記命令デコーダは、前記テスト命令を出力する際、１又は２種類のテスト命令を出力し、
前記２種類のテスト命令が出力される場合には、前記２種類のテスト命令を基に、前記シフトレジスタの動作モードをテストモードに設定する動作モード設定回路をさらに備えることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記シフトレジスタは、
前記テスト対象回路の数に応じた段数の前記フリップフロップを直列接続することより形成されることを特徴とする請求項１記載の半導体集積回路。
【請求項４】
前記各フリップフロップから出力される前記各データをデコードすることにより、前記テスト対象回路の数に応じた制御データを生成するデコーダをさらに備えることを特徴とする請求項１記載の半導体集積回路。
【請求項５】
命令データをデコーダによってデコードすることにより、テスト命令を検出するステップと、
前記デコーダにおいて前記テスト命令が検出され、前記テスト命令が、直列接続された複数段のフリップフロップを有するシフトレジスタに与えられた場合には、前記テスト命令を、隣接する前記フリップフロップに順次シフトさせながら記憶することにより、前記各フリップフロップにデータを記憶し、さらに前記各フリップフロップに記憶された前記データをテスト対象回路に出力することにより、前記テスト対象回路におけるテスト動作を制御するステップと
を備えることを特徴とする半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びそのテスト方法に関する。
【背景技術】
【０００２】
一般に、半導体集積回路（以下、これを集積回路と呼ぶ）の出荷時には、テスタを用いて当該集積回路の機能検査を行って、不良が存在しないことを確認した上で出荷する必要がある。
【０００３】
その際、集積回路にテスタを接続し、当該集積回路に単に通常動作を行わせるのではない。すなわち、ユーザが使用する回路構成とは異なる、出荷テスト専用の回路構成を予め用意しておき、出荷時には、当該出荷テスト専用の回路構成を動作させるテストモードを実行することにより、テスト効率の向上を図っている。
【０００４】
かかるテストモードを実行するための方法として、集積回路にテスト専用ピンを別途設ける方法と、集積回路に通常動作を行わせるユーザ命令のうちの未使用部分をテスト命令として使用する方法と、これらを併用する方法とがある。
【０００５】
しかし、集積回路にテスト専用ピンを別途設ける方法は、ピン数が増加するという問題が生じる。
【０００６】
ユーザ命令の未使用部分をテスト命令として使用する方法は、ユーザ命令の中に、所望する数だけの未使用部分が存在しない場合があり、この場合、ユーザ命令のビット数を増加させなければ、必要な数のテスト命令を付加することができない問題がある。ユーザ命令のビット数を増加させると、ユーザ命令を送信する毎に、余分なビットを送信することになり、ユーザ命令に影響を及ぼすという新たな問題が生じる。
【０００７】
さらに、この方法は、ユーザ命令を生成するデコーダを用いてテスト命令を生成するため、テスト命令に変更が生じた場合には、デコーダも変更しなければならないが、複雑な回路構成からなるデコーダに変更を行うことは、多大な時間を要するという問題がある。
【０００８】
なお、テスト専用ピンを別途設ける方法と、ユーザ命令の未使用部分をテスト命令として使用する方法とを併用する方法を用いても、ピン数が増加する問題や、ユーザ命令に影響を及ぼすなどの問題を解消することはできない。
【０００９】
以下、集積回路のテスト方法に関する文献名を記載する。
【特許文献１】特開平７−７７５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、ピン数を増加させることなく、通常モードとテストモードとの独立性を確保することができる半導体集積回路及びそのテスト方法を提供する。
【課題を解決するための手段】
【００１１】
本発明の一態様による半導体集積回路は、
命令データをデコードすることにより、ユーザ命令又はテスト命令を検出する命令デコーダと、
直列接続された複数段のフリップフロップを有し、前記命令デコーダにおいて前記テスト命令が検出され、前記テスト命令が与えられた場合には、前記テスト命令を、隣接する前記フリップフロップに順次シフトさせながら記憶することにより、前記各フリップフロップにデータを記憶し、さらに前記各フリップフロップに記憶された前記データをテスト対象回路に出力することにより、前記テスト対象回路におけるテスト動作を制御するシフトレジスタと
を備える。
【００１２】
また本発明の一態様による半導体集積回路のテスト方法は、
命令データをデコードすることにより、テスト命令を検出するステップと、
前記デコーダにおいて前記テスト命令が検出され、前記テスト命令が、直列接続された複数段のフリップフロップを有するシフトレジスタに与えられた場合には、前記テスト命令を、隣接する前記フリップフロップに順次シフトさせながら記憶することにより、前記各フリップフロップにデータを記憶し、さらに前記各フリップフロップに記憶された前記データをテスト対象回路に出力することにより、前記テスト対象回路におけるテスト動作を制御するステップと
を備える。
【発明の効果】
【００１３】
本発明の半導体集積回路及びそのテスト方法によれば、ピン数を増加させることなく、通常モードとテストモードとの独立性を確保することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
【００１５】
（１）第１の実施の形態
図１に、本発明の第１の実施の形態による集積回路１０の構成を示す。集積回路１０は、命令レジスタ２０と、命令デコーダ３０と、集積回路１０の動作モードとして通常モード又はテストモードのいずれか一方を設定する動作モード設定回路としてのＯＲ回路４０と、所望のビットパターンを生成するためのシフトレジスタ５０とを有する。
【００１６】
シフトレジスタ５０は、３段のフリップフロップＦＦ１０〜ＦＦ３０を直列接続することにより形成され、さらに各フリップフロップＦＦ１０〜ＦＦ３０の前段には、動作モードが通常モードであるか又はテストモードであるかに応じて入力信号を切り替えるセレクタＳＥ１０〜ＳＥ３０が接続されている。
【００１７】
また集積回路１０は、外部から供給される例えば１０ＭＨｚ程度の外部クロック信号を２分周して５ＭＨｚ程度の内部クロック信号を生成するクロック分周器６０を有し、クロック分周器６０の出力側には、クロック分周器６０をバイパスするか否かを選択するセレクタＳＥ４０が接続されている。
【００１８】
ところで、本実施の形態の場合、集積回路１０は、例えば読み出し動作などの同一の動作を、一定間隔で所定回数実行する図示しない回路構成を有し、読み出しの間隔をカウンタを用いて測定する。この場合、出荷テスト時には、１回カウンタを動作させ、当該カウンタが正常であることを確認することができれば、２回以上カウンタを動作させる必要はない。しかし、読み出し動作を行う回路が正常であるか否かを確認する必要がある。従って、出荷テスト時、１回カウンタをテストした後は、当該カウンタをバイパスして、読み出し動作を行う回路のみテストすれば良い。
【００１９】
また、一般にカウンタは、ビット数が１ビット増加すると、そのテスト時間が２倍になる。そこで、本実施の形態の場合、テスト時間を短縮するため、カウンタを２分割して２回に分けてテストする。
【００２０】
例えば８ビットカウンタは、２５６（＝２８）回カウントすることができ、当該８ビットカウンタをテストするためには、テスト時間として２５６クロック分が必要である。ところで、４ビットカウンタをテストする場合には、テスト時間が１６（＝２４）クロック分で済む。このため、８ビットカウンタを、下位４ビットと上位４ビットとに分割してテストすれば、８ビットカウンタのテスト時間は、全体として３２クロック分で済み、テスト時間を大幅に短縮することができる。
【００２１】
従って、本実施の形態の場合、８ビットカウンタ７０は、下位４ビットカウンタ７０Ａと、上位４ビットカウンタ７０Ｂとに分割され、これら下位４ビットカウンタ７０Ａ及び上位４ビットカウンタ７０Ｂを直列に接続することによって形成される。
【００２２】
また、下位４ビットカウンタ７０Ａの出力側には、下位４ビットカウンタ７０Ａをバイパスするか否かを選択するレクタＳＥ５０が接続されている。同様に、上位４ビットカウンタ７０Ｂの出力側には、上位４ビットカウンタ７０Ｂをバイパスするか否かを選択するセレクタＳＥ６０が接続されている。
【００２３】
集積回路１０は、外部のマイクロコンピュータ（図示せず）から命令データが与えられると、これを命令レジスタ２０に一旦記憶する。この命令データは、例えば３ビットのデータからなり、８（＝２３）通りの命令を割り当てることができる。本実施の形態の場合、この３ビットのデータの中に、６通りのユーザ命令（集積回路１０に通常動作を行わせるための命令）と、２通りのテスト命令（集積回路１０にテスト動作を行わせるための命令）を割り当てる。
【００２４】
命令レジスタ２０に記憶された命令データは、命令デコーダ３０に転送され、命令デコーダ３０は、この命令データをデコードすることにより、ユーザ命令データＹ１〜Ｙ６及びテスト命令データＴ１及びＴ２のうち、いずれか１つの命令データをデータ“１”として出力し、他の命令データの全てをデータ“０”として出力する。
【００２５】
その際、命令デコーダ３０は、ユーザ命令データＹ１〜Ｙ６をそれぞれ所望の信号処理回路（図示せず）に出力し、テスト命令データＴ１をセレクタＳＥ１０及びＯＲ回路４０に出力し、テスト命令データＴ２をＯＲ回路４０に出力する。
【００２６】
具体的には、命令デコーダ３０は、集積回路１０に通常モードを実行させる場合には、ユーザ命令データＹ１〜Ｙ６のうち、いずれか１つのユーザ命令データをデータ“１”として出力し、他のユーザ命令データ及びテスト命令データＴ１及びＴ２の全てをデータ“０”として出力する。
【００２７】
ＯＲ回路４０は、データ“０”のテスト命令データＴ１と、データ“０”のテスト命令データＴ２との論理和を演算し、得られたデータ”０”をセレクタＳＥ１０〜ＳＥ３０に出力する。
【００２８】
この場合、セレクタＳＥ１０は、命令デコーダ３０から出力されるテスト命令データＴ１と、フリップフロップＦＦ１０から出力されるデータとのうち、フリップフロップＦＦ１０から出力されるデータを選択し、これをフリップフロップＦＦ１０に出力する。
【００２９】
セレクタＳＥ２０は、フリップフロップＦＦ１０から出力されるデータと、フリップフロップＦＦ２０から出力されるデータとのうち、フリップフロップＦＦ２０から出力されるデータを選択し、これをフリップフロップＦＦ２０に出力する。
【００３０】
同様に、セレクタＳＥ３０は、フリップフロップＦＦ２０から出力されるデータと、フリップフロップＦＦ３０から出力されるデータとのうち、フリップフロップＦＦ３０から出力されるデータを選択し、これをフリップフロップＦＦ３０に出力する。
【００３１】
ところで、フリップフロップＦＦ１０〜ＦＦ３０には、予めリセット信号ＲＳＴが供給され、各フリップフロップＦＦ１０〜ＦＦ３０には、データ“０”が記憶されている。フリップフロップＦＦ１０〜ＦＦ３０は、上述したように、通常モード時には、自己のデータ“０”を保持するようになされ、これによりデータ“０”をセレクタＳＥ４０〜ＳＥ６０に出力する。
【００３２】
この場合、セレクタＳＥ４０は、外部から供給された外部クロック信号と、クロック分周器６０から出力される内部クロック信号とのうち、内部クロック信号を選択して出力し、これを所望の信号処理回路（図示せず）に出力する。
【００３３】
８ビットカウンタ７０は、内部クロック信号を与えられると、これを下位４ビットカウンタ７０Ａ及びセレクタＳＥ５０に入力する。下位４ビットカウンタ７０Ａは、８ビットカウンタ７０のうちの下位４ビット分を動作させ、得られた信号をセレクタＳＥ５０に出力する。
【００３４】
セレクタＳＥ５０は、通常モード時、８ビットカウンタ７０に供給される内部クロック信号と、下位４ビットカウンタ７０Ａから出力される信号とのうち、下位４ビットカウンタ７０Ａから出力される信号を選択し、これを上位４ビットカウンタ７０Ｂ及びセレクタＳＥ６０に出力する。上位４ビットカウンタ７０Ｂは、８ビットカウンタ７０のうちの上位４ビット分を動作させ、得られた信号をセレクタＳＥ６０に出力する。
【００３５】
セレクタＳＥ６０は、通常モード時、セレクタＳＥ５０から出力される信号と、上位４ビットカウンタ７０Ｂから出力される信号とのうち、上位４ビットカウンタ７０Ｂから出力される信号を選択し、得られた信号を所望の信号処理回路（図示せず）に出力する。
【００３６】
このように８ビットカウンタ７０は、通常モード時には、下位４ビットカウンタ７０Ａ及び上位４ビットカウンタ７０Ｂをいずれも動作させることにより、供給される内部クロック信号を基にタイミング信号を生成し、これを所望の信号処理回路（図示せず）に出力する。
【００３７】
ところで、命令デコーダ３０は、集積回路１０にテストモードを実行させる場合には、ユーザ命令データＹ１〜Ｙ６の全てをデータ“０”として出力し、テスト命令データＴ１及びＴ２のうち、一方をデータ“１”として出力し、他方をデータ“０”として出力する。
【００３８】
ＯＲ回路４０は、いずれか一方がデータ“１”であるテスト命令データＴ１とテスト命令データＴ２との論理和を演算することによりデータ”１”を得、これをセレクタＳＥ１０〜ＳＥ３０に出力する。
【００３９】
この場合、セレクタＳＥ１０は、命令デコーダ３０から出力されるテスト命令データＴ１を選択し、これをフリップフロップＦＦ１０に出力する。セレクタＳＥ２０は、フリップフロップＦＦ１０から出力されるデータを選択し、これをフリップフロップＦＦ２０に出力する。同様に、セレクタＳＥ３０は、フリップフロップＦＦ２０から出力されるデータを選択し、これをフリップフロップＦＦ３０に出力する。
【００４０】
これにより、シフトレジスタ５０は、クロック信号が供給される毎に、テスト命令データＴ１を、隣接するフリップフロップＦＦ１０〜ＦＦ３０に順次シフトさせる。
【００４１】
従って、命令デコーダ３０から、テスト命令データＴ１、テスト命令データＴ２、テスト命令データＴ１が出力され、テスト命令データＴ１として、データ“１”、データ“０”（この場合、テスト命令データＴ２はデータ“１”）、データ“１”がシフトレジスタ５０に順次入力されると、シフトレジスタ５０は、テスト命令データＴ１を、隣接するフリップフロップＦＦ１０〜ＦＦ３０に順次シフトさせながら記憶することにより、最終的にはフリップフロップＦＦ１０にデータ“１”を記憶し、フリップフロップＦＦ２０にデータ“０”を記憶し、フリップフロップＦＦ３０にデータ“１”を記憶する。
【００４２】
このようにセレクタＳＥ４０には、フリップフロップＦＦ１０からデータ“１”が与えられ、この場合、セレクタＳＥ４０は、クロック分周器６０をバイパスして、外部クロック信号を選択して出力することにより、外部クロック信号をそのまま内部クロック信号として使用する。
【００４３】
これにより、例えば５ＭＨｚ程度の低速なクロック信号しか発生することができないテスタを用いても、テスト時間が長くなることを抑制することが可能となる。
【００４４】
セレクタＳＥ５０には、フリップフロップＦＦ２０からデータ“０”が与えられ、この場合、セレクタＳＥ５０は、下位４ビットカウンタ７０Ａをバイパスせずに、下位４ビットカウンタ７０Ａから出力される信号を選択することにより、８ビットカウンタ７０の下位４ビットが正常であるか否かを確認する。その際、この下位４ビットカウンタ７０Ａが１６（＝２４）クロックをカウントすることができれば、８ビットカウンタ７０の下位４ビットが正常であることを確認することができる。
【００４５】
セレクタＳＥ６０には、フリップフロップＦＦ３０からデータ“１”が与えられ、この場合、セレクタＳＥ６０は、上位４ビットカウンタ７０Ｂをバイパスすることにより、８ビットカウンタ７０の上位４ビットについてはテストを行わない。
【００４６】
その後、命令デコーダ３０から、テスト命令データＴ２、テスト命令データＴ１、テスト命令データＴ１が続けて出力され、テスト命令データＴ１として、データ“０”（この場合、テスト命令データＴ２はデータ“１”）、データ“１”、データ“１”がシフトレジスタ５０に順次入力されると、シフトレジスタ５０は、テスト命令データＴ１を、隣接するフリップフロップＦＦ１０〜ＦＦ３０に順次シフトさせながら記憶することにより、最終的にはフリップフロップＦＦ１０にデータ“１”を記憶し、フリップフロップＦＦ２０にデータ“１”を記憶し、フリップフロップＦＦ３０にデータ“０”を記憶する。
【００４７】
このようにセレクタＳＥ４０には、フリップフロップＦＦ１０からデータ“１”が与えられ、上述の場合と同様に、セレクタＳＥ４０は、クロック分周器６０をバイパスする。
【００４８】
セレクタＳＥ５０には、フリップフロップＦＦ２０からデータ“１”が与えられ、この場合、セレクタＳＥ５０は、下位４ビットカウンタ７０Ａをバイパスすることにより、８ビットカウンタ７０の下位４ビットについてはテストを行わない。
【００４９】
セレクタＳＥ６０には、フリップフロップＦＦ３０からデータ“０”が与えられ、この場合、セレクタＳＥ６０は、上位４ビットカウンタ７０Ｂをバイパスせずに、上位４ビットカウンタ７０Ｂから出力される信号を選択することにより、８ビットカウンタ７０の上位４ビットが正常であるか否かを確認する。
【００５０】
このようにして８ビットカウンタ７０が正常であることを確認することができた場合には、これ以降、命令デコーダ３０から、テスト命令データＴ１として、データ“１”、データ“１”、データ“１”が出力され、シフトレジスタ５０に順次入力されると、シフトレジスタ５０は、フリップフロップＦＦ１０〜ＦＦ３０の全てにデータ“１”を記憶する。これにより、集積回路１０は、クロック分周器６０に加えて、８ビットカウンタ７０全体をバイパスし、他の回路をテストする。
【００５１】
このように本実施の形態によれば、集積回路１０にテスト専用ピンを別途設ける必要がなく、これによりピン数を増加させることなく、テストモードを実行することができる。
【００５２】
また、本実施の形態によれば、既に存在するユーザ命令の未使用部分に、２通りのテスト命令を付加するだけで良い。これにより、例えばユーザ命令を送信する毎に、余分なビットを送信することを回避することができ、従ってユーザ命令に影響を及ぼすことを抑制することができる。
【００５３】
また、本実施の形態によれば、ユーザ命令の未使用部分に付加された２通りのテスト命令を基に、テスト対象回路（クロック分周器６０、下位４ビットカウンタ７０Ａ及び上位４ビットカウンタ７０Ｂ）をそれぞれ制御するための３種類の制御データを生成することができる。これによりユーザ命令のビット数を増加させることなく、テスト対象回路の数に応じた制御データを生成することができる。
【００５４】
なお、この場合、テスト対象回路の数に対応する段数のフリップフロップＦＦを接続すれば、テスト命令の数を増加させることなく、テスト対象回路の数に応じた制御データを生成することができる。
【００５５】
また、本実施の形態によれば、ユーザ命令の未使用部分に付加されるテスト命令を２通りに限定することにより、テストの内容にかかわらず命令デコーダ３０を設計及び変更することができる。フリップフロップＦＦの入力データは、データ“０”又は“１”であり、２通りのテスト命令を組み合わせれば、シフトレジスタ５０を任意の状態にすることができるので、命令デコーダ３０の設計及び変更の際には、２通りのテスト命令以外についてテストを考慮する必要はない。また、テストの内容に変更が生じた場合であっても、命令デコーダ３０を変更する必要はなく、必要に応じてフリップフロップＦＦの段数を変更するだけで良い。このように、本実施の形態の場合、通常モードを実行する回路部分とテストモードを実行する回路部分とを、それぞれ独立させて設計及び変更することができる。
【００５６】
なお、ここで図２に、命令デコーダ３０に与えられる命令データと、当該命令データに対応する集積回路１０の動作との関係を示し、図３に、命令データとして“１００”が与えられ、集積回路１０が読み出し動作２を実行する場合における、内部クロック信号（図３（ａ））と、集積回路１０から出力される出力データ（図３（ｂ））との関係を示す。
【００５７】
ここで、８ビットカウンタ７０を分割せずにそのままテストしようとすると、少なくとも７７１（＝（２８＋１）×３）クロック分のテスト時間を必要する。これに対して、本実施の形態のように、８ビットカウンタ７０を、下位４ビットと上位４ビットとに分割してテストすれば、対応する８ビットカウンタのテスト時間を、１０２（＝（２４＋１）×３×２）クロック分で済ませることができ、従ってテスト時間を大幅に短縮することができる。
【００５８】
（２）第２の実施の形態
図４に、本発明の第２の実施の形態による集積回路８０の構成を示し、１通りのテスト命令データＴを使用する点で、２通りのテスト命令データＴ１及びＴ２を使用する第１の実施の形態と相違する。本実施の形態の場合、命令デコーダ９０は、通常モード時、ユーザ命令データＹ１〜Ｙ６のうち、いずれか１つのユーザ命令データをデータ“１”として出力し、他のユーザ命令データ及びテスト命令データＴをデータ“０”として出力する。その際、命令デコーダ９０は、ユーザ命令データＹ１〜Ｙ６をそれぞれ所望の信号処理（図示せず）に出力すると共に、テスト命令データＴをシフトレジスタ１００に出力する。
【００５９】
シフトレジスタ１００は、２段のフリップフロップＦＦ１０及びＦＦ２０を直列接続することにより形成され、さらに各フリップフロップＦＦ１０及びＦＦ２０の前段には、動作モードが通常モードであるか又はテストモードであるかに応じて入力信号を切り替えるセレクタＳＥ１０及びＳＥ２０が接続されている。
【００６０】
ところで、フリップフロップＦＦ１０及びＦＦ２０には、予めリセット信号ＲＳＴが供給され、各フリップフロップＦＦ１０及びＦＦ２０には、データ“０”が記憶されている。通常モード時、セレクタＳＥ１０及びＳＥ２０には、テスト命令データＴとしてデータ“０”が与えられ、セレクタＳＥ１０及びＳＥ２０は、フリップフロップＦＦ１０及びＦＦ２０から出力されるデータを選択する。
【００６１】
これにより、フリップフロップＦＦ１０及びＦＦ２０は、通常モード時には、自己のデータ“０”を保持するようになされ、これによりデータ“０”をセレクタＳＥ４０及びＳＥ７０に出力することにより、通常動作を実行させる。
【００６２】
なお、本実施の形態の場合、８ビットカウンタ１１０は、分割されずにテストされ、８ビットカウンタ１１０の出力側には、８ビットカウンタ１１０をバイパスするか否かを選択するセレクタＳＥ７０が接続されている。
【００６３】
ところで、命令デコーダ９０は、テストモード時には、ユーザ命令データＹ１〜Ｙ６の全てをデータ“０”として出力し、テスト命令データＴをデータ“１”として出力する。この場合、セレクタＳＥ１０及びＳＥ２０には、データ“１”が与えられ、セレクタＳＥ１０は、命令デコーダ９０から出力されるテスト命令データＴ１を選択してフリップフロップＦＦ１０に出力し、セレクタＳＥ２０は、フリップフロップＦＦ１０から出力されるデータを選択してフリップフロップＦＦ２０に出力する。
【００６４】
これにより、シフトレジスタ１００は、クロック信号が供給される毎に、テスト命令データＴを、隣接するフリップフロップＦＦ１０及びＦＦ２０に順次シフトさせる。
【００６５】
従って、命令デコーダ９０から、テスト命令データＴとして、データ“１”が出力され、シフトレジスタ１００に入力されると、シフトレジスタ１００は、テスト命令データＴをフリップフロップＦＦ１０にシフトして記憶することにより、フリップフロップＦＦ１０にデータ“１”を記憶し、フリップフロップＦＦ２０にデータ“０”を記憶する。
【００６６】
このようにセレクタＳＥ４０には、フリップフロップＦＦ１０からデータ“１”が与えられ、この場合、セレクタＳＥ４０は、クロック分周器６０をバイパスして、外部クロック信号を選択して出力することにより、外部クロック信号をそのまま内部クロック信号として使用する。
【００６７】
セレクタＳＥ７０には、フリップフロップＦＦ２０からデータ“０”が与えられ、この場合、セレクタＳＥ７０は、８ビットカウンタ１１０をバイパスせずに、８ビットカウンタ１１０から出力される信号を選択することにより、８ビットカウンタ１１０が正常であるか否かを確認する。
【００６８】
このようにして８ビットカウンタ１１０が正常であることを確認することができた場合には、命令デコーダ９０から、テスト命令データＴとして、データ“１”が出力され、シフトレジスタ１００に入力されると、シフトレジスタ１００は、フリップフロップＦＦ１０及びＦＦ２０の両方にデータ“１”を記憶する。これにより、集積回路８０は、クロック分周器６０に加えて、８ビットカウンタ１１０をバイパスし、他の回路をテストする。
【００６９】
このように本実施の形態によれば、第１の実施の形態と同様の効果を得ることができる。すなわち、本実施の形態によれば、集積回路８０にテスト専用ピンを別途設ける必要がなく、これによりピン数を増加させることなく、テストモードを実行することができる。
【００７０】
また、本実施の形態によれば、既に存在するユーザ命令の未使用部分に、１通りのテスト命令を付加するだけで良い。これにより、例えばユーザ命令を送信する毎に、余分なビットを送信することを回避することができ、従ってユーザ命令に影響を及ぼすことを抑制することができる。
【００７１】
また、本実施の形態によれば、ユーザ命令の未使用部分に付加された１通りのテスト命令を基に、テスト対象回路（クロック分周器６０及び８ビットカウンタ１１０）をそれぞれ制御するための２種類の制御データを生成することができる。これによりユーザ命令のビット数を増加させることなく、テスト対象回路の数に応じた制御データを生成することができる。
【００７２】
なお、この場合、テスト対象回路の数に対応する段数のフリップフロップＦＦを接続すれば、テスト命令の数を増加させることなく、テスト対象回路の数に応じた制御データを生成することができる。
【００７３】
また、本実施の形態によれば、ユーザ命令の未使用部分に付加されるテスト命令を１通りに限定することにより、テストの内容にかかわらず命令デコーダ９０を設計及び変更することができる。また、テストの内容に変更が生じた場合であっても、命令デコーダ９０を変更する必要はなく、必要に応じてフリップフロップＦＦの段数を変更するだけで良い。このように、本実施の形態の場合、通常モードを実行する回路部分とテストモードを実行する回路部分とを、それぞれ独立させて設計及び変更することができる。
【００７４】
（３）第３の実施の形態
図５に、本発明の第３の実施の形態による集積回路１１０の構成を示し、２通りのテスト命令データＴ１及びＴ２を使用する第１の実施の形態の集積回路１０に、デコーダ１２０を追加することにより形成される。
【００７５】
本実施の形態の場合、デコーダ１２０は、フリップフロップＦＦ１０〜ＦＦ３０から与えられるデータをデコードすることにより、セレクタＳＥ８０〜ＳＥ１５０の切替え動作を制御する８つの制御データを生成し、これらを対応するセレクタＳＥ８０〜ＳＥ１５０に出力する。
【００７６】
その際、デコーダ１２０は、例えば８つの制御データのうち、いずれか１つの制御データをデータ“１”として出力し、他の制御データの全てをデータ“０”として出力する。これにより、集積回路１１０は、８つのテスト対象回路のうち、いずれか１つのテスト対象回路をバイパスした上でテストを実行する。
【００７７】
このように本実施の形態によれば、フリップフロップＦＦ１０〜ＦＦ３０の段数より多い数のテスト対象回路を制御することが可能となる。
【００７８】
なお本実施の形態によれば、第１の実施の形態と同様の効果を得ることができる。すなわち、本実施の形態によれば、ピン数を増加させることなく、テストモードを実行することができる。また、例えばユーザ命令を送信する毎に、余分なビットを送信することを回避することができ、従ってユーザ命令に影響を及ぼすことを抑制することができる。また、ユーザ命令のビット数を増加させることなく、テスト対象回路の数に応じた制御データを生成することができる。また、通常モードを実行する回路部分とテストモードを実行する回路部分とを、それぞれ独立させて設計及び変更することができる。
【００７９】
（４）第４の実施の形態
図６に、本発明の第４の実施の形態による集積回路１３０の構成を示す。本実施の形態による集積回路１３０は、１通りのテスト命令データＴを使用する第２の実施の形態における集積回路８０を前提として、シフトレジスタ５０を形成するフリップフロップＦＦ１０〜ＦＦ３０の段数を３段にした上で、さらにデコーダ１４０を追加することにより形成される。
【００８０】
本実施の形態の場合、デコーダ１４０は、３つのフリップフロップＦＦ１０〜ＦＦ３０から与えられるデータをデコードすることにより、セレクタＳＥ４０及びＳＥ７０の切替え動作を制御する２つの制御データを生成し、これらを対応するセレクタＳＥ４０及びＳＥ７０に出力して切替え動作を行わせる。
【００８１】
ここで図７に、フリップフロップＦＦ１０〜ＦＦ３０から出力され、デコーダ１４０に入力される３つのデータと、当該デコーダ１４０から出力される２つの制御データと関係、すなわちデコーダ１４０の入出力関係を示す。
【００８２】
このように本実施の形態によれば、シフトレジスタ５０は、１通りのテスト命令データＴを与えられるだけであることから、例えば（ＡＢＣ）＝（００１）、（０１０）、（０１１）、（１０１）の組み合わせのデータを生成することができないが、デコーダ１４０によってシフトレジスタ５０から出力されるデータをデコードすることにより、全ての組み合わせの制御データを生成することができる。
【００８３】
なお本実施の形態によれば、第２の実施の形態と同様の効果を得ることができる。すなわち、本実施の形態によれば、ピン数を増加させることなく、テストモードを実行することができる。また、例えばユーザ命令を送信する毎に、余分なビットを送信することを回避することができ、従ってユーザ命令に影響を及ぼすことを抑制することができる。また、ユーザ命令のビット数を増加させることなく、テスト対象回路の数に応じた制御データを生成することができる。また、通常モードを実行する回路部分とテストモードを実行する回路部分とを、それぞれ独立させて設計及び変更することができる。
【００８４】
なお、上述の実施の形態は一例であって、本発明を限定するものではない。例えば３又は２段のフリップフロップＦＦを接続することによってシフトレジスタ５０又は１００を形成するのではなく、テスト対象回路の数に応じた段数のフリップフロップＦＦを接続することによってシフトレジスタを形成すれば良い。このようにフリップフロップＦＦの段数を増加させても、テスト命令は１又は２種類で済み、これ以上テスト命令を増加させる必要はない。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１の実施の形態による集積回路の構成を示すブロック図である。
【図２】命令デコーダに与えられる命令データと、命令データに対応する集積回路の動作との関係を示す説明図である。
【図３】内部クロック信号と集積回路から出力される出力データとの関係を示すタイミングチャートである。
【図４】本発明の第２の実施の形態による集積回路の構成を示すブロック図である。
【図５】本発明の第３の実施の形態による集積回路の構成を示すブロック図である。
【図６】本発明の第４の実施の形態による集積回路の構成を示すブロック図である。
【図７】デコーダの入出力関係を示す説明図である。
【符号の説明】
【００８６】
１０、８０、１１０  集積回路
３０、９０  命令デコーダ
４０  ＯＲ回路
５０、１００  シフトレジスタ
６０  クロック分周器
７０、１１０  ８ビットカウンタ
１２０、１４０  デコーダ
ＦＦ  フリップフロップ
ＳＥ  セレクタ
【図１】
2007107964.tif 000003
【図２】
2007107964.tif 000004
【図３】
2007107964.tif 000005
【図４】
2007107964.tif 000006
【図５】
2007107964.tif 000007
【図６】
2007107964.tif 000008
【図７】
2007107964.tif 000009