(57)【要約】【課題】  テスト対象のモジュールに接続される内部バスのバス幅やテスト対象モジュールの端子数が多い場合であっても、所望のテストを効率よく行うことができる半導体装置を提供すること。【解決手段】  本発明にかかる半導体装置は、プロセッサコア１０１、メモリ１０２、周辺モジュール１０３と、外部端子１０７と、内部バス１０４、１０５、１１０と、プロセッサコア１０１と外部端子１０７間のテスト用バス１１１、１１２と、内部バス１１０とテスト用バス１１１、１１２のいずれかと、外部端子１０７とを接続するセレクタ１０９と、を備え、外部端子１０７の端子数は、テスト用バス１１１、１１２を介してテストデータを入出力する内部端子の端子数よりも少ないものである。【選択図】  図１
2005308568.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の機能モジュールと、
外部とデータを入出力するための外部端子と、
前記第１及び第２の機能モジュール間において通常データを伝送する第１の内部バスと、
前記第２の機能モジュールと前記外部端子の間において通常データを伝送する第２の内部バスと、
前記第１の機能モジュールと前記外部端子の間においてテストデータを伝送するテストバスと、
前記第２の内部バスと前記テストバスのいずれかと、前記外部端子とを接続する選択手段と、
を備え、
前記外部端子の端子数は、前記第１の機能モジュールにおける前記テストバスを介してテストデータを入出力する内部端子の端子数よりも少ない、
半導体装置。
【請求項２】
前記テストバスのバス幅は、前記第１の内部バスのバス幅よりも狭く、
前記第１の機能モジュールの内部端子から出力されるテストデータを複数の分割データに分割し、当該分割データを前記テストバスへ順次出力するテストデータ出力手段と、
前記テストバスから順次入力される複数の分割データをテストデータに結合し、当該テストデータを前記第１の機能モジュールの内部端子へ入力するテストデータ入力手段と、
を備える、請求項１に記載の半導体装置。
【請求項３】
前記テストデータ出力手段は、
前記第１の内部バスのバス幅と同じサイズのテストデータを、前記テストバスのバス幅と同じサイズの、複数の分割データに分割して格納する手段と、
前記格納された複数の分割データのそれぞれを順次選択する手段と、
前記選択された分割データを前記テストバスへ順次出力する手段と、
を備える、請求項２に記載の半導体装置。
【請求項４】
前記テストデータ出力手段は、前記第１の機能モジュールの内部に設けられている、
請求項２又は３に記載の半導体装置。
【請求項５】
前記テストバスを介して前記分割データを出力する周期は、前記第１の内部バスを介して通常データを出力する周期よりも短い、
請求項２乃至４に記載の半導体装置。
【請求項６】
前記テストデータ入力手段は、
前記テストバスのバス幅と同じサイズの、複数の分割データを、前記テストバスから順次取得する手段と、
前記取得された複数の分割データのそれぞれを順次格納する手段と、
前記格納された複数の分割データのサイズの合計が、前記第１の内部バスのバス幅と同じサイズに達したことに応答して、前記格納された複数の分割データをテストデータに結合し、前記第１の機能モジュールの内部端子へ入力する手段と、
を備える、請求項２乃至５のいずれかに記載の半導体装置。
【請求項７】
前記テストデータ入力手段は、前記第１の機能モジュールの内部に設けられている、
請求項２乃至６のいずれかに記載の半導体装置。
【請求項８】
前記テストバスを介して前記分割データが入力される周期は、前記第１の内部バスを介して通常データが入力される周期よりも短い、
請求項２乃至７のいずれかに記載の半導体装置。
【請求項９】
前記第１の機能モジュールは、プロセッサコアである、
請求項１乃至８のいずれかに記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に、複数の機能モジュールを有する半導体装置に関する。
【背景技術】
【０００２】
近年、プロセス技術の進歩に伴い半導体装置の高集積化が進んでおり、１つの半導体装置に多くのモジュールを搭載したシステムＬＳＩ等が利用されている。このような半導体装置は、信頼性確保のため製造不良がないか否かテストが行われて、テストをパスした良品のみが出荷される。特に集積度の高い半導体装置では、テスト時間を短縮するために、テストの効率化が望まれている。
【０００３】
図８は、従来の半導体装置の構成例を示すブロック図である。この半導体装置８００は、図に示されるように、プロセッサコア８０１、メモリ８０２、周辺モジュール８０３を備えている。プロセッサコア８０１とメモリ８０２は、バス幅が２５６ビットの内部バス８０４を介して接続されており、メモリ８０２と周辺モジュール８０３は、バス幅が６４ビットの内部バス８０５を介して接続されている。周辺モジュール８０３は、バス幅が６４ビットの外部バス８０６を介して外部の装置に接続されている。外部端子８０７は、外部バス８０６を接続するための端子であり、外部バス８０６のバス幅に応じた端子数の端子が設けられている。
【０００４】
例えば、周辺モジュール８０３は、外部バス８０６を介して外部の装置からデータが入力されると所定の処理を行い、内部バス８０５を介してメモリ８０２へデータを書き込む。そして、プロセッサコア８０１は、メモリ８０２に書き込まれたデータを、内部バス８０４を介して読み出して、所定の処理を行う。すなわち、この例では、内部バス８０４で伝送されるデータと、内部バス８０５で伝送されるデータは、それぞれ独立したデータであり、１対１には対応していない。
【０００５】
半導体装置８００のテストは、プロセッサコア８０１、メモリ８０２、周辺モジュール８０３のそれぞれについて行われる。例えば、プロセッサコア８０１のテストを行う場合、外部からプロセッサコア８０１へ所定のテストパターンを入力し、プロセッサコア８０１から出力される動作結果を観察する。この構成では、内部バス８０４、内部バス８０５及び外部バス８０６を介してプロセッサコア８０１のテストを行うと、上記のように、内部バス８０４と内部バス８０５のデータが１対１に対応していないため、テストパターンが複雑になりテストに長時間を要したり、所望のテストを行うことができない場合がある。
【０００６】
このため、プロセッサコア８０１と外部の装置を接続し、内部バス８０４と同じバス幅のテスト用バス８０８を設け、このテスト用バス８０８によってプロセッサコア８０１の信号を直接入出力して、テストを行う方法が知られている。テスト用外部端子８０９は、テスト用バス８０８を接続するための端子であり、テスト用バス８０８のバス幅に応じた端子数の端子が設けられる。また、プロセッサコア８０１の動作モードをテストモードに切り替えるためのテストイネーブル端子８１０が設けられ、例えば、テストイネーブル端子８１０からテストモードの信号が入力されると、プロセッサコア８０１は、内部バス８０４ではなく、テスト用バス８０８を介してデータの入出力を行う。
【０００７】
しかしながら、このような構成では、内部バス８０４と同じバス幅のテスト用バス８０８を設け、テスト用バス８０８のバス幅に応じたテスト用外部端子８０９を設ける必要がある。近年、プロセッサコア８０１に接続される内部バス８０４のバス幅、すなわち、内部バス８０４が接続されるプロセッサコア８０１の端子数が増加しているため、内部バス８０４のバス幅やプロセッサコア８０１の端子数に応じたテスト用外部端子８０９を設けるのが困難であるという問題がある。
【０００８】
尚、従来の少ないバス幅で多くのデータを転送する方法として特許文献１、２又は３が知られている。
【特許文献１】特開２００１−１４２７３３号公報
【特許文献２】特開平２−２７１４５８号公報
【特許文献３】特開昭６０−１０９０９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このように、従来の半導体装置では、所望のテストを行うために、テスト対象のモジュールに接続される内部バスのバス幅やテスト対象のモジュールの端子数に応じたテスト用外部端子を設けるのことが困難であるという問題点があった。
【００１０】
本発明は、このような問題点を解決するためになされたもので、テスト対象のモジュールに接続される内部バスのバス幅やテスト対象モジュールの端子数が多い場合であっても、所望のテストを効率よく行うことができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明にかかる半導体装置は、第１及び第２の機能モジュールと、外部とデータを入出力するための外部端子と、前記第１及び第２の機能モジュール間において通常データを伝送する第１の内部バスと、前記第２の機能モジュールと前記外部端子の間において通常データを伝送する第２の内部バスと、前記第１の機能モジュールと前記外部端子の間においてテストデータを伝送するテストバスと、前記第２の内部バスと前記テストバスのいずれかと、前記外部端子とを接続する選択手段と、を備え、前記外部端子の端子数は、前記第１の機能モジュールにおける前記テストバスを介してテストデータを入出力する内部端子の端子数よりも少ないものである。これにより、テスト対象の機能モジュールと通常時に使用する外部端子を接続するため、テスト用の外部端子を設けることなく、テストを行うことができる。
【００１２】
上述の半導体装置において、前記テストバスのバス幅は、前記第１の内部バスのバス幅よりも狭く、前記第１の機能モジュールの内部端子から出力されるテストデータを複数の分割データに分割し、当該分割データを前記テストバスへ順次出力するテストデータ出力手段と、前記テストバスから順次入力される複数の分割データをテストデータに結合し、当該テストデータを前記第１の機能モジュールの内部端子へ入力するテストデータ入力手段と、を備えていてもよい。これにより、効率よくテストを行うことができる。
【００１３】
上述の半導体装置において、前記テストデータ出力手段は、前記第１の内部バスのバス幅と同じサイズのテストデータを、前記テストバスのバス幅と同じサイズの、複数の分割データに分割して格納する手段と、前記格納された複数の分割データのそれぞれを順次選択する手段と、前記選択された分割データを前記テストバスへ順次出力する手段と、を備えていてもよい。これにより、効率よくテスト結果等のテストデータを出力することができる。
【００１４】
上述の半導体装置において、前記テストデータ出力手段は、前記第１の機能モジュールの内部に設けられていてもよい。これにより、バス幅の少ないテストバスによりテスト対象の機能モジュールと外部端子が接続されるため、部品コストを低減することができる。
【００１５】
上述の半導体装置において、前記テストバスを介して前記分割データを出力する周期は、前記第１の内部バスを介して通常データを出力する周期よりも短くてもよい。これにより、よりテスト時間を短縮でき、テスト効率を向上することができる。
【００１６】
上述の半導体装置において、前記テストデータ入力手段は、前記テストバスのバス幅と同じサイズの、複数の分割データを、前記テストバスから順次取得する手段と、前記取得された複数の分割データのそれぞれを順次格納する手段と、前記格納された複数の分割データのサイズの合計が、前記第１の内部バスのバス幅と同じサイズに達したことに応答して、前記格納された複数の分割データをテストデータに結合し、前記第１の機能モジュールの内部端子へ入力する手段と、を備えていてもよい。これにより、効率よくテストパターン等のテストデータを入力することができる。
【００１７】
上述の半導体装置において、前記テストデータ入力手段は、前記第１の機能モジュールの内部に設けられていてもよい。これにより、バス幅の少ないテストバスによりテスト対象の機能モジュールと外部端子が接続されるため、部品コストを低減することができる。
【００１８】
上述の半導体装置において、前記テストバスを介して前記分割データが入力される周期は、前記第１の内部バスを介して通常データが入力される周期よりも短くてもよい。これにより、よりテスト時間を短縮でき、テスト効率を向上することができる。
【００１９】
上述の半導体装置において、前記第１の機能モジュールは、プロセッサコアであってもよい。これにより、プロセッサコアのテストを効率よく行うことができる。
【発明の効果】
【００２０】
本発明によれば、テスト対象のモジュールに接続される内部バスのバス幅やテスト対象モジュールの端子数が多い場合であっても、所望のテストを効率よく行うことができる半導体装置を提供することができる。
【発明を実施するための最良の形態】
【００２１】
発明の実施の形態１．
図１に、本発明の実施の形態１にかかる半導体装置の構成を示す。この半導体装置１００は、図に示されるように、プロセッサコア１０１、メモリ１０２、周辺モジュール１０３、セレクタ１０９を備えている。プロセッサコア１０１とメモリ１０２は、バス幅が２５６ビットの内部バス１０４を介して接続されており、メモリ１０２と周辺モジュール１０３は、バス幅が６４ビットの内部バス１０５を介して接続されている。尚、この例では、内部バス１０４で伝送されるデータと、内部バス１０５で伝送されるデータは、それぞれ独立したデータであり、１対１には対応していない。また、それぞれのバスには、後述するＶａｌｉｄ用の信号線が設けられている。
【００２２】
セレクタ１０９は、周辺モジュール１０３とバス幅が６４ビットの内部バス１１０を介して接続され、プロセッサコア１０１ともバス幅が６４ビットのテスト用バス１１１及び１１２を介して接続されている。テスト用バス１１１は、プロセッサコア１０１の出力用のバスであり、テスト用バス１１２は、プロセッサコア１０１の入力用のバスである。セレクタ１０９は、さらに、外部バス１０６を介して外部の装置に接続されている。外部端子１０７は、外部バス１０６を接続するための端子であり、バス幅に応じた端子数の端子が設けられている。
【００２３】
テストイネーブル端子１０８は、プロセッサコア１０１とセレクタ１０９に接続されており、テストイネーブル端子１０８には、テストモードや通常モード等の動作モードを切り替える信号が入力される。例えば、プロセッサコア１０１のテスト時にテストモード信号が入力され、通常の回路動作時に通常モード信号が入力される。尚、テストイネーブル端子１０８を設けずに、外部端子１０７によって動作モードを切り替えてもよい。
【００２４】
セレクタ１０９は、動作モードに応じて内部バス１１０か、テスト用バス１１１及び１１２のいずれかと外部バス１０６を接続する回路である。例えば、テストイネーブル端子１０８から通常モード信号が入力された場合、内部バス１１０を選択し、内部バス１１０と外部バス１０６を接続する。すなわち、通常モードの場合、内部バス１１０及び外部バス１０６を介して、周辺モジュール１０３と外部の装置が接続される。また、セレクタ１０９は、テストモード信号が入力された場合、テスト用バス１１１及び１１２を選択し、テスト用バス１１１及び１１２と外部バス１０６を接続する。すなわち、テストモードの場合、テスト用バス１１１及び１１２、外部バス１０６を介してプロセッサコア１０１と外部の装置が接続される。この例では、プロセッサコア１０１の入力と出力で、テスト用バスを分けているため、セレクタ１０９において、データの入出力に応じてテスト用バス１１１又は１１２を選択することが好ましい。後述するテストＶａｌｉｄ信号によってテストバスの選択を切り替えることもできる。尚、外部バスをもう一つ設けて、テスト用バス１１１及び１１２をそれぞれの外部バスと接続してもよい。
【００２５】
周辺モジュール１０３は、各種の専用処理を行うブロックであり、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＤＳＰ（Digital Signal Processor）等である。通常モード時、周辺モジュール１０３は、外部バス１０６を介して外部の装置からデータが入力されると所定の処理を行い、内部バス１０５を介してメモリ１０２へデータを書き込む。メモリ１０２は、ＲＡＭ等の記憶装置であり、メモリ１０２には、プロセッサコア１０１が実行する命令コードやデータ等が格納される。
【００２６】
プロセッサコア１０１は、各種の制御処理を行うブロックであり、例えば、汎用ＭＰＵ（Micro Processing Unit）等である。通常モード時、プロセッサコア１０１は、内部バス１０４を介してメモリ１０２に格納されている命令コードを読み出し、命令コードをデコードして所定の演算を行う。演算の際に、内部バス１０４を介してメモリ１０２に格納されているデータを読み出したり、内部バス１０４を介してメモリ１０２へデータを書き込んだりする。また、テストモード時、プロセッサコア１０１は、テスト用バス１１２、外部バス１０６を介して外部の装置からテストパターンのデータが入力され、当該データの演算結果を、テスト用バス１１２、外部バス１０６を介して外部の装置へ出力する。
【００２７】
また、プロセッサコア１０１は、テスト出力回路２００及びテスト入力回路３００を備えており、テスト出力回路２００によって、テスト用バス１１１を介してデータが出力され、テスト入力回路３００によって、テスト用バス１１２を介してデータが入力される。本実施形態では、後述するように、プロセッサコア１０１内で時分割転送を行うことにより、テスト用バス１１１及び１１２のバス幅が、内部バス１０４よりも小さく、外部バス１０６と同じ６４ビットにすることができる。テスト用バス１１１及び１１２のバス幅を外部バス１０６のバス幅とし、セレクタ１０９により切り替えることにより、テスト用外部端子を設けずにテストを行うことができる。プロセッサコア１０１において、内部バス１０４が接続される内部端子（不図示）は、テスト出力回路２００やテスト入力回路３００を介して、テスト用バス１１１や１１２のデータが入出力される端子と同じであり、この内部端子の端子数は、外部端子１０７の端子数よりも多い。
【００２８】
尚、テスト出力回路２００及びテスト入力回路３００は、プロセッサコア１０１の内部に限らず、その他の所に設けられていてもよい。テスト用バス１１１及び１１２のバス幅を内部バス１０４のバス幅と同様にして、セレクタ１０９に、テスト出力回路２００及びテスト入力回路３００を設けてもよい。
【００２９】
次に、図２に、プロセッサコア１０１のテスト出力回路２００の構成を示す。テスト出力回路２００は、図に示されるように、６４ビットのデータをラッチするレジスタ２０１、２０２、２０３、２０４、これらのレジスタの出力を選択するセレクタ２０５、セレクタ２０５の動作を制御する制御回路２０６を有している。
【００３０】
例えば、プロセッサコア１０１の内部回路は、セレクタや分配器（不図示）等により、内部バス１０４あるいはテスト出力回路２００と接続されており、プロセッサコア１０１の内部回路で生成された内部データが、内部バス１０４あるいはテスト出力回路２００へ出力される。
【００３１】
また、この例では、Ｖａｌｉｄの信号線が設けられており、プロセッサコア１０１の内部データが内部Ｖａｌｉｄとともに出力される。ここで、Ｖａｌｉｄとは、バスにデータが出力されるのと同時に出力される制御信号であり、Ｖａｌｉｄによってデータの出力側と入力側で同期がとられデータの入出力が正常に行われる。
【００３２】
通常モードにおいて、プロセッサコア１０１からデータを出力する場合、２５６ビットの内部データが内部バス１０４を介して出力されるとともに、内部Ｖａｌｉｄが通常Ｖａｌｉｄとして出力される。そして、データ入力側となるメモリ１０２において、通常Ｖａｌｉｄを検出することにより、２５６ビットの内部データが入力される。
【００３３】
テストモードにおいて、プロセッサコア１０１からデータを出力する場合、２５６ビットの内部データがテスト出力回路２００に入力されるとともに、内部Ｖａｌｉｄがテスト出力回路２００に入力される。テスト出力回路２００において、内部データはレジスタ２０１から２０４に入力され、内部Ｖａｌｉｄは、レジスタ２０１から２０４と、制御回路２０６に入力される。レジスタ２０１から２０４は、内部Ｖａｌｉｄが入力されると、データ取り込み待ちとなり、２５６ビットの内部データが入力されて、６４ビットずつ順次格納される。この例では、２５６ビットのうち、０ビット目から６３ビット目までの６４ビットのデータをレジスタ２０１に格納し、６４ビット目から１２７ビット目までの６４ビットのデータをレジスタ２０２に格納し、１２８ビット目から１９２ビット目までの６４ビットのデータをレジスタ２０３に格納し、１９３ビット目から２５５ビット目までの６４ビットのデータをレジスタ２０４に格納する。また、格納されたデータは、セレクタ２０５へ出力される。
【００３４】
そして、制御回路２０６は、内部Ｖａｌｉｄが入力されると、セレクタ２０５に対しどのレジスタの出力を選択するか制御を行う。この選択は、内部データが格納された順に行われ、この例では、レジスタ２０１、２０２、２０３、２０４の順に選択される。また、制御回路２０６は、レジスタの選択毎に１つずつテストＶａｌｉｄを出力し、ここでは、４つのテストＶａｌｉｄが出力される。例えば、制御回路２０６は、カウンタを有しており、レジスタの選択毎にインクリメントすることにより、次に選択するレジスタを決定することができる。セレクタ２０５は、制御回路２０６によって選択されたレジスタの出力をテスト用バス１１１を介して順次出力する。こうして、２５６ビットのデータを６４ビットのバスに時分割して出力される。
【００３５】
次に、図３に、プロセッサコア１０１のテスト入力回路３００の構成を示す。テスト出力回路３００は、図に示されるように、６４ビットのデータをラッチするレジスタ３０１、３０２、３０３、３０４、テスト用バスからの入力を振り分ける分配器３０５、レジスタの動作を制御する制御回路３０６を有している。例えば、図２と同様に、プロセッサコア１０１の内部回路は、セレクタや分配器（不図示）等により、内部バス１０４あるいはテスト入力回路３００と接続されている。
【００３６】
通常モードにおいて、プロセッサコア１０１にデータが入力される場合、２５６ビットの内部データが内部バス１０４を介して入力されるとともに、通常Ｖａｌｉｄが内部Ｖａｌｉｄとして入力される。そして、プロセッサコア１０１の内部において、内部Ｖａｌｉｄとして検出することにより、２５６ビットの内部データが入力される。
【００３７】
テストモードにおいて、プロセッサコア１０１に時分割されたデータが入力される場合、６４ビットのデータがテスト用バス１１２を介してテスト入力回路３００に入力されるとともに、テストＶａｌｉｄがテスト入力回路３００に入力される。テスト入力回路３００においては、６４ビットのデータが分配器３０５に入力され、テストＶａｌｉｄが制御回路３０６に入力される。分配器３０５は、６４ビットのデータをレジスタ３０１から３０４のそれぞれに出力する。制御回路３０６は、テストＶａｌｉｄが入力されると、レジスタ３０１から３０４のいずれかにデータ取り込み信号を入力する。レジスタ３０１から３０４のいずれかは、データ取り込み信号が入力されると、分配器３０５から入力された６４ビットのデータを格納する。
【００３８】
制御回路３０６は、さらにテストＶａｌｉｄが入力されると、次のレジスタにデータ取り込み信号を出力する。例えば、レジスタ３０１、３０２、３０３、３０４の順にデータ取り込み信号を出力し、６４ビットずつデータを格納する。制御回路３０６は、カウンタを有しており、テストＶａｌｉｄが入力される毎にカウンタをインクリメントすることにより、次に取り込み信号を出力するレジスタを決定することができる。そして、制御回路３０６は、４つのテストＶａｌｉｄが入力されて、カウンタが４になった場合、レジスタ３０１から３０４へデータ出力信号を出力する。制御回路３０６は、データ出力信号とともに、内部Ｖａｌｉｄをプロセッサコア１０１の内部へ出力する。レジスタ３０１から３０４は、データ出力信号が入力されると、データをまとめて出力し、２５６ビットの内部データとしてプロセッサコア１０１の内部へ出力する。この例では、図２と同様に、レジスタ３０１は０ビット目から６３ビット目までを出力し、レジスタ３０２は６４ビット目から１２７ビット目までを出力し、レジスタ３０３は１２８ビット目から１９２ビット目までを出力し、レジスタ３０４は１９３ビット目から２５５ビット目までを出力する。こうして、６４ビットに時分割されたデータを２５６ビットの内部データとして入力される。
【００３９】
尚、レジスタ３０１から３０４で２５６ビットのデータを出力する契機は、制御回路３０６のカウンタに限らず、その他の手段によって実現してもよい。例えば、データ長を加算し、データ長が２５６ビットになったのを契機としてもよいし、４つのレジスタにデータが格納されたことを契機としてもよい。
【００４０】
次に、図４及び図５に、プロセッサコア１０１のタイミングチャートを示す。図４と図５は、プロセッサコア１０１と内部バス１０４で入力又は出力される信号と、テスト出力回路２００又はテスト入力回路３００でテスト用バス１１１又は１１２で入力又は出力される信号を示している。また、図４と図５は、動作クロックが異なる例をそれぞれ示している。図４及び図５において、クロック２がテスト出力回路２００、テスト入力回路３００の動作クロックであり、クロック１がプロセッサコア１０１のその他の部分やメモリ１０２等の動作クロックである。
【００４１】
図４では、図４（ａ）、（ｆ）に示されるように、クロック１とクロック２は同じ周期である。図４（ｂ）、（ｃ）に示されるように、クロック１の１周期に２５６ビットの１つの内部データが入力又は出力され、内部Ｖａｌｉｄが内部データと同時に入力又は出力される。図４（ｄ）、（ｅ）に示されるように、内部バス１０４、通常Ｖａｌｉｄには、図４（ｂ）、（ｃ）の内部データ、内部Ｖａｌｉｄと同じ信号が入力又は出力される。
【００４２】
図４（ｆ）、（ｇ）、（ｈ）に示されるように、クロック２の１周期に６４ビットのデータが１つずつ入力又は出力され、６４ビットのデータと同時にテストＶａｌｉｄが入力又は出力される。そして、クロック２の４周期で２５６ビットのデータが入力／又は出力される。すなわち、この例では、テスト用バス１１１、１１２を介して２５６ビットのデータを入力又は出力する時間は、内部バス１０４を介して２５６ビットのデータを入力又は出力する時間に比べて、４倍の時間になる。
【００４３】
図５では、図５（ａ）、（ｆ）に示されるように、クロック２の周期はクロック１の周期の１／４である。図５（ｂ）から（ｅ）に示されるように、図４と同様、クロック１の１周期に２５６ビットの内部データと内部Ｖａｌｉｄが入力又は出力され、内部バス１０４と通常Ｖａｌｉｄにも同じデータが入力又は出力される。図５（ｆ）、（ｇ）、（ｈ）に示されるように、図４と同様、クロック２の１周期に６４ビットのデータとテストＶａｌｉｄが入力又は出力され、クロック２の４周期で２５６ビットのデータが入力又は出力される。すなわち、この例では、テスト用バス１１１、１１２を介して２５６ビットのデータを入力又は出力する時間は、内部バス１０４を介して２５６ビットのデータを入力又は出力する時間と同じ時間になる。尚、この例に限らず、クロック２の周期をより短い任意の周期とすることで、データ伝送時間を短縮することができる。
【００４４】
例えば、図２の制御回路２０６において、クロック２の周期に合わせてレジスタが順次選択され、セレクタ２０５から順次データが出力される。
【００４５】
このような構成により、通常時、外部から直接データを入出力することができないプロセッサコア等において、テスト用バスを設けることにより、効率よく所望のテストを行うことができる。また、テスト用バスをセレクタを用いて、テスト時以外の通常時に使用する外部端子に接続することにより、別途テスト用の外部端子を設けることなくテストをすることができる。さらに、プロセッサコア等の入出力データを時分割で転送することにより、内部バスのバス幅よりも少ない外部端子の数でもテストが可能である。プロセッサコアに時分割にデータを入出力する回路を設けることにより、プロセッサコアからセレクタ１０９まで接続するテスト用バスのバス幅を少なくすることができる。
【００４６】
その他の発明の実施の形態．
図６に、その他の発明の実施の形態にかかる半導体装置の構成を示す。図１の例では、プロセッサコア１０１とセレクタ１０９の間を、２つのテスト用バスで接続したが、図６に示すように、１つのテスト用バス１１３で接続することもできる。この場合、プロセッサコア１０１に、テスト入出力回路４００を設け、テスト入出力回路４００によって、テスト用バス１１３を介してデータの入出力を行う。
【００４７】
図７に、プロセッサコア１０１のテスト入出力回路４００の構成を示す。テスト入出力回路４００は、図２及び図３と同様に、６４ビットのデータをラッチするレジスタ４０１、４０２、４０３、４０４、これらのレジスタの出力を選択あるいはテスト用バスからの入力を振り分けるセレクタ４０５、セレクタ４０５、レジスタの動作を制御する制御回路４０６を有している。動作については、図２及び図３と同様のため、説明を省略する。また、この構成においても、図４や図５のタイミングチャートで動作することができる。
【００４８】
尚、上述の例では、半導体装置に設けられたプロセッサコアをテストする構成について説明したが、プロセッサコアに限らず、その他の機能モジュールをテストする構成としてもよい。また、上述の例では、２５６ビットのデータを４つの６４ビットのデータに時分割したが、これに限らず、任意のビットのデータを他の任意のビットのデータに分割してもよい。
【図面の簡単な説明】
【００４９】
【図１】本発明にかかる半導体装置の構成を示すブロック図である。
【図２】本発明にかかる半導体装置で用いる出力回路の構成図である。
【図３】本発明にかかる半導体装置で用いる入力回路の構成図である。
【図４】本発明にかかる半導体装置のタイミングチャートである。
【図５】本発明にかかる半導体装置のタイミングチャートである。
【図６】本発明にかかる半導体装置の構成を示すブロック図である。
【図７】本発明にかかる半導体装置で用いる入出力回路の構成図である。
【図８】従来の半導体装置の構成を示すブロック図である。
【符号の説明】
【００５０】
１００  半導体装置  １０１  プロセッサコア  １０２  メモリ
１０３  周辺モジュール  １０４、１０５  内部バス
１０６  外部バス  １０７  外部端子  １０８  テストイネーブル端子
１０９  セレクタ  １１０  内部バス  １１１、１１２  テスト用バス
２００  テスト出力回路  ２０１、２０２、２０３、２０４  レジスタ
２０５  セレクタ  ２０６  制御回路
３００  テスト入力回路  ３０１、３０２、３０３、３０４  レジスタ
３０５  分配器  ３０６  制御回路
【図１】
2005308568.tif 000003
【図２】
2005308568.tif 000004
【図３】
2005308568.tif 000005
【図４】
2005308568.tif 000006
【図５】
2005308568.tif 000007
【図６】
2005308568.tif 000008
【図７】
2005308568.tif 000009
【図８】
2005308568.tif 000010