(57)【要約】      （修正有）【課題】ＬＢＩＳＴテストの機能を維持しながらも、追加される回路規模を削減することにより、半導体装置の製造コストを低減する。【解決手段】本発明の半導体装置は、自己テストを行う半導体装置であって、パタン入力を受け付ける複数の回路ブロック５０と、前記パタン入力に対して前記複数の回路ブロックの各々が出力する応答を起源とするテスト応答を取得し、基準値と比較することで当該回路ブロックの前記自己テストの結果を得る比較器３０２と、を備え、前記パタン入力を、前記複数の回路ブロックが共用する。【選択図】図５
2020165802.tif 000002
【特許請求の範囲】
【請求項１】
自己テストを行う半導体装置（１０）であって、
パタン入力を受け付ける複数の回路ブロック（５０）と、
前記パタン入力に対して前記複数の回路ブロックの各々が出力する応答を起源とするテスト応答を取得し、
前記複数の回路ブロックの各々について、基準値と比較することで当該回路ブロックの前記自己テストの結果を得る比較器（３０２，３０３）と、
を備え、
前記パタン入力を、前記複数の回路ブロックが共用する、半導体装置。
【請求項２】
前記応答を圧縮して圧縮値を生成する符号圧縮器（６０）を更に備え、
前記比較器は前記圧縮値を前記テスト応答として、基準値と比較する、
請求項１記載の半導体装置。
【請求項３】
前記符号圧縮器を前記複数の回路ブロックが共用する、請求項２記載の半導体装置。
【請求項４】
前記基準値は、前記パタン入力に応じて用意された期待値である、請求項２に記載の半導体装置。
【請求項５】
前記複数の回路ブロックは、互いに同一の機能を有し、
前記複数の回路ブロックの各々の前記基準値は、当該回路ブロックと同一の前記パタン入力を共用する他の前記回路ブロックのテスト応答である、請求項１または２に記載の半導体装置。
【請求項６】
テストパタンを発生するパタン発生器（４０）をさらに備え、
前記複数の回路ブロックは、前記パタン発生器が発生する前記テストパタンを前記パタン入力として受け付ける、請求項１〜５のうちいずれか１項記載の半導体装置。
【請求項７】
前記自己テストの実行を制御するテスト制御器（３０）をさらに備え、
前記テスト制御器は、前記複数の回路ブロックの各々の稼働スケジュールに基づいて、休止中の前記回路ブロックに対して前記自己テストを実行する、請求項６記載の半導体装置。
【請求項８】
前記テスト制御器は、パタン初期化入力を生成し、
前記パタン発生器は、前記パタン初期化入力に基づいて前記テストパタンを発生する、請求項７記載の半導体装置。
【請求項９】
前記パタン入力は、前記半導体装置の通常稼働状態において前記複数の回路ブロックのいずれかに割り当てられるべき入力である、請求項５記載の半導体装置。
【請求項１０】
半導体装置（１０）の自己テストを行うテスト方法であって、
回路ブロックにパタン入力を入力するステップと、
前記回路ブロックに前記パタン入力の演算を行わせる演算ステップと、
前記演算により出力された応答を圧縮してテスト応答を生成する圧縮ステップと、
前記テスト応答を基準値と比較することで前記回路ブロックの前記自己テストの結果を得るステップと、
を含み、
複数の前記回路ブロックに同一の前記パタン入力を入力する半導体装置のテスト方法。
【請求項１１】
前記基準値は、前記パタン入力に応じて用意された期待値であって、
前記演算ステップは、前記複数の回路ブロックのうちの動作スケジュール上空きがある回路ブロックを選択して演算を行わせる、
請求項１０記載の半導体装置のテスト方法。
【請求項１２】
前記複数の回路ブロックは、互いに同一の機能を有し、
前記複数の回路ブロックの各々の前記基準値は、当該回路ブロックと同一の前記パタン入力を共用する他の前記回路ブロックの応答を圧縮したテスト応答である、
請求項１０記載の半導体装置のテスト方法。
【請求項１３】
前記パタン入力は、前記半導体装置の通常稼働状態において前記複数の回路ブロックのうちのいずれかに割り当てられるべき入力である、請求項１２記載の半導体装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自己テストを行う半導体装置、および半導体装置のテスト方法に関する。
【背景技術】
【０００２】
論理回路には設計過程・製造過程で不具合が組み込まれる可能性がある。また、出荷当初不具合がない論理回路であっても、経年劣化や自然放射線の影響などにより、後発的に誤動作が発生することもある。よって、機能安全の観点から、出荷時のみならず稼動中も半導体装置が自己診断を行い、不具合を速やかに検出することが望ましい。
【０００３】
論理回路や記憶装置に対するテスト機能を半導体装置に組み込むことで、半導体装置自身が自己テストを行う、組み込み自己テスト（ＢＩＳＴ：Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ−Ｔｅｓｔ）が知られている。このうち論理回路について行うＢＩＳＴをＬ（Ｌｏｇｉｃ）ＢＩＳＴと呼ぶ（特許文献１）。ＬＢＩＳＴは外部の試験装置を用いないため、検証ボード上、システム上、また実動作環境のいずれであっても実行可能である。その反面、半導体装置内部にテスト用の回路を設ける必要があるため、半導体装置の規模は大きくなる。
【０００４】
一方、画像処理、機械学習といった並列計算技術の進展に伴い、同一の演算ユニットを多数搭載した半導体装置の普及が進んでいる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２５３８４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、ＬＢＩＳＴテストの機能を維持しながらも、追加される回路規模を削減することにより、半導体装置の製造コストを低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施の形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
【０００８】
本発明の半導体装置（１０）は、自己テストを行う半導体装置（１０）であって、パタン入力を受け付ける複数の回路ブロック（５０）と、前記パタン入力に対して前記複数の回路ブロックの各々が出力する応答を起源とするテスト応答を取得し、基準値と比較することで当該回路ブロックの前記自己テストの結果を得る比較器（３０２，３０３）と、を備え、前記パタン入力を、前記複数の回路ブロックが共用する。
【０００９】
この構成により、回路ブロックごとにパタン入力を発生するための回路を設けなくて済むので、半導体装置に対して少ない回路面積でＬＢＩＳＴ機能を付加することができる。
【００１０】
また、本半導体装置は、前記応答を圧縮して圧縮値を生成する符号圧縮器（６０）を更に備え、前記比較器は前記圧縮値を前記テスト応答として、基準値と比較することができる。
【００１１】
この構成により、テスト応答の期待値を予め半導体装置内部に保持しておき、効率的に比較を行うことができる。
【００１２】
また、本半導体装置は、前記符号圧縮器を前記複数の回路ブロックが共用することができる。
【００１３】
この構成により、符号圧縮器の数を減らすことができるため、テストのための回路面積をより少なくすることができ、製造コストを下げることができる。
【００１４】
また、本半導体装置において、前記基準値は、前記パタン入力に応じて用意された期待値とすることができる。
【００１５】
予め正当な期待値を用意しておくことで、回路ブロックの動作状態を正確に判断することができる。
【００１６】
また、本半導体装置において、前記複数の回路ブロックは、互いに同一の機能を有し、
前記複数の回路ブロックの各々の前記基準値は、当該回路ブロックと同一の前記パタン入力を共用する他の前記回路ブロックのテスト応答とすることができる。
【００１７】
この構成により、期待値が予め登録されていないテストパタンに対しても、テストを行うことができる。
【００１８】
また、本半導体装置において、テストパタンを発生するパタン発生器（４０）をさらに備え、前記複数の回路ブロックは、前記パタン発生器が発生する前記テストパタンを前記パタン入力として受け付けることができる。
【００１９】
この構成により、パタン発生器の出力に対するテスト応答についての期待値を予め保持しておき、テスト応答と期待値とを比較することにより、回路ブロックの出力が正常かどうかを判断することができる。
【００２０】
また、本半導体装置において、前記自己テストの実行を制御するテスト制御器（３０）をさらに備え、前記テスト制御器は、前記複数の回路ブロックの各々の稼働スケジュールに基づいて、休止中の前記回路ブロックに対して前記自己テストを実行することができる。
【００２１】
この構成により、稼動時にも回路ブロックのスケジュールを参照しながら空き回路ブロックに対して動的にテストを繰り返すことで、回路ブロック群全体のテストを行うことができる。
【００２２】
また、本半導体装置において、前記テスト制御器は、パタン初期化入力を生成し、前記パタン生成器は、前記パタン初期化入力に基づいて前記テストパタン発生することができる。
【００２３】
この構成により、テストが回路ブロックの機能を網羅する確率を上げることができ、不具合を検出できる可能性を上げることができる。
【００２４】
また、本半導体装置において、前記パタン入力は、前記半導体装置の通常稼働状態において前記複数の回路ブロックのいずれかに割り当てられるべき入力とすることができる。
【００２５】
この構成により、パタン発生器そのものが不要になるので、半導体装置の回路面積をより少なくすることができる。
【００２６】
本半導体装置の自己テスト方法は、半導体装置（１０）の自己テストを行うテスト方法であって、回路ブロックにパタン入力を入力するステップと、前記回路ブロックに前記パタン入力の演算を行わせる演算ステップと、前記演算により出力された応答を圧縮してテスト応答を生成する圧縮ステップと、前記テスト応答を基準値と比較することで前記回路ブロックの前記自己テストの結果を得るステップと、を含み、複数の前記回路ブロックに同一の前記パタン入力を入力する。
【００２７】
また、本半導体装置の自己テスト方法は、前記基準値は、前記パタン入力に応じて用意された期待値であって、前記演算ステップは、前記複数の回路ブロックのうちの動作スケジュール上空きがある回路ブロックを選択して演算を行わせることで実現されてもよい。
【００２８】
また、本半導体装置の自己テスト方法は、前記複数の回路ブロックは、互いに同一の機能を有し、前記複数の回路ブロックの各々の前記基準値は、当該回路ブロックと同一の前記パタン入力を共用する他の前記回路ブロックの応答を圧縮したテスト応答とすることで実現されてもよい。
【００２９】
また、本半導体装置の自己テスト方法において、前記パタン入力は、前記半導体装置の通常稼働状態において前記複数の回路ブロックのうちのいずれかに割り当てられるべき入力とすることもできる。
【発明の効果】
【００３０】
本発明によれば、複数の演算ユニットを有する半導体装置でＬＢＩＳＴ機能を維持しながら、テスト用の回路規模を削減することができる。これにより、回路の複雑化を防止し、半導体装置全体の小型化を行うことができる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態の前提となる並列処理について説明するための図である。
【図２】図１に示される並列処理を実行するためのシステム構成例を示す図である。
【図３】図２に用いられるＤＦＰの構成例を示す図である。
【図４】ＬＢＩＳＴ回路の一例の概要を示す図である。
【図５】第１の実施の形態のテスト回路を示したものである。
【図６】第１の実施の形態の演算時間割とテストスケジュール例を示す表である。
【図７】第２の実施の形態のテスト回路を示したものである。
【図８】第２の実施の形態の演算時間割とテストスケジュール例を示す表である。
【図９】第３の実施の形態のテスト回路を示したものである。
【図１０】第４の実施の形態のテスト回路を示したものである。
【発明を実施するための形態】
【００３２】
以下、添付図面を参照しながら本実施形態について説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【００３３】
図１（Ａ）は、グラフ構造のプログラムコードを示しており、図１（Ｂ）は、スレッドの状態を示しており、図１（Ｃ）は、並列処理の状況を示している。
【００３４】
図１（Ａ）に示されるように、本実施形態が処理対象とするプログラムは、データと処理とが分割されているグラフ構造を有している。このグラフ構造は、プログラムのタスク並列性、グラフ並列性を保持している。
【００３５】
図１（Ａ）に示されるプログラムコードに対して、コンパイラによる自動ベクトル化とグラフ構造の抽出を行うと、図１（Ｂ）に示されるような大量のスレッドを生成することができる。
【００３６】
図１（Ｂ）に示される多量のスレッドに対して、ハードウェアによる動的レジスタ配置とスレッド・スケジューリングにより、図１（Ｃ）に示されるような並列実行を行うことができる。実行中にレジスタ資源を動的配置することで、異なる命令ストリームに対しても複数のスレッドを並列実行することができる。
【００３７】
続いて図２を参照しながら、動的レジスタ配置及びスレッド・スケジューリングを行うアクセラレータとしてのＤＦＰ（Ｄａｔａ  Ｆｌｏｗ  Ｐｒｏｃｅｓｓｏｒ）１０を含むシステム構成例である、データ処理システム２を説明する。
【００３８】
データ処理システム２は、ＤＦＰ１０と、イベントハンドラ２０と、ホストＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、外部インターフェイス２４と、システムバス２５と、を備えている。ホストＣＰＵ２１は、データ処理を主として行う演算装置である。ホストＣＰＵ２１は、ＯＳをサポートしている。イベントハンドラ２０は、割り込み処理を生成する部分である。
【００３９】
ＲＯＭ２２は、読み込み専用のメモリである。ＲＡＭ２３は、読み書き用のメモリである。外部インターフェイス２４は、データ処理システム２外と情報授受を行うためのインターフェイスである。システムバス２５は、ＤＦＰ１０と、ホストＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、外部インターフェイス２４との間で情報の送受信を行うためのものである。
【００４０】
ＤＦＰ１０は、ホストＣＰＵ２１の重い演算負荷に対処するために設けられている個別のマスタとして位置づけられている。ＤＦＰ１０は、イベントハンドラ２０が生成した割り込みをサポートするように構成されている。
【００４１】
続いて図３を参照しながら、ＤＦＰ１０について説明する。図３に示されるように、ＤＦＰ１０は、コマンドユニット１２と、スレッドスケジューラ１４と、実行コア１６と、
メモリサブシステム１８と、を備えている。
【００４２】
コマンドユニット１２は、コンフィグ・インターフェイスとの間で情報通信可能なように構成されている。コマンドユニット１２は、コマンドバッファとしても機能している。
【００４３】
スレッドスケジューラ１４は、図１（Ｂ）に例示されるような多量のスレッドの処理をスケジューリングする部分である。スレッドスケジューラ１４は、スレッドを跨いだスケジューリングを行うことが可能である。
【００４４】
実行コア１６は、４つのプロセッシングエレメントである、ＰＥ＃０と、ＰＥ＃１と、ＰＥ＃２と、ＰＥ＃３と、を有している。実行コア１６は、独立してスケジューリング可能な多数のパイプラインを有している。
【００４５】
メモリサブシステム１８は、アービタ１８１と、Ｌ１キャッシュ１８ａと、Ｌ２キャッシュ１８ｂと、を有している。メモリサブシステム１８は、システム・バス・インターフェイス及びＲＯＭインターフェイスとの間で情報通信可能なように構成されている。
【００４６】
図４は、ＬＢＩＳＴ回路の一例の概要を示した図である。
なお、本明細書では、後述する回路ブロック５０の出力を「応答」と表現し、この回路ブロック５０の応答を起源として後述する比較に用いられるものを「テスト応答」と表現する。
図４のＬＢＩＳＴ回路は、テスト制御器３０と、パタン発生器４０と、回路ブロック５０と、符号圧縮器６０を備える。テスト制御器３０は、パタン初期化器３０１と、期待値比較器３０２を備える。テスト制御器３０は、回路ブロック５０のテストを制御する。具体的には、テスト回路に供給するクロックを生成し、パタン初期化器３０１で、テストパタンの初期値を生成してテスト回路に供給する。
【００４７】
パタン発生器４０は、パタン初期化器３０１から与えられた初期値に応じて、テストパタンを生成する。テストパタンの生成には、一般的に疑似乱数発生器（ＰＲＰＧ：Ｐｓｅｕｄｏ  Ｒａｎｄｏｍ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）が用いられるが、他の方法が用いられてもよい。パタン発生器４０が生成したテストパタンは回路ブロック５０に入力され、回路ブロック５０はテストパタンに基づき演算を行う。回路ブロック５０は、テストの対象となる論理回路であって、一例としては図３におけるプロセッシングエレメントＰＥが相当する。
【００４８】
符号圧縮器６０は、回路ブロック５０の応答を圧縮してテスト応答を生成する。回路ブロック５０が出力するテストパタンへの応答は長大なシリアルデータであって、これをそのままＲＯＭに保存するのは不経済である。このためテスト制御器３０は、予め計算した圧縮結果を期待値として保持し、使用する。設計上、回路ブロック５０が生成した応答を、符号圧縮器６０で圧縮した圧縮値であるテスト応答とテスト制御器３０が持つ期待値は同一になる。代表的な符号圧縮器としては、多入力シグネチャレジスタ（ＭＩＳＲ：Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）が用いられるが、条件を満たすのであれば他の圧縮器を用いてもよい。期待値比較器３０２は、符号圧縮器６０から出力された圧縮値であるテスト応答と、事前に計算されてテスト制御器３０内部またはＲＯＭなどに保持されている期待値とを比較する。テスト応答と期待値が同一であれば、回路ブロック５０は正常に動作している。テスト応答と期待値が異なる場合、回路ブロック５０には不具合が疑われる。
【００４９】
複数の回路ブロックに対してＬＢＩＳＴを行う場合、パタン発生器４０と符号圧縮器６０は、テスト対象となる回路ブロックの数だけ用意される。この構成では、テストされる回路ブロックの数が多いほど、半導体装置内部のテスト用回路面積が増大し、半導体装置の製造コストが上昇することになる。そこで、本実施の形態のＬＢＩＳＴ回路では、以下の各実施形態で示すようにテスト用回路面積の増大を抑制し、半導体装置の製造コストを低減する。
【００５０】
以下に示す各実施形態のテスト回路において、各構成要素は図４に示したＬＢＩＳＴ回路の一例の構成要素と同じ機能を有する。このため、同一の符号を付して重複する説明は省略する。なお、各実施形態における回路ブロック５０は、図３におけるプロセッシングエレメントＰＥのように、同一の機能を有している。
【００５１】
（第１の実施の形態）
図５は、第１の実施の形態のテスト回路を示したものである。
本実施形態では、１つのパタン発生器４０を全ての回路ブロック５０が共用する。
回路ブロック５０が同一の機能を有するので、テストパタンに対する応答も同一であり、テスト制御器３０が対応する期待値を１つ記憶させておけば、複数の回路ブロック５０が同じテストパタンを共用できる。これにより、回路ブロックと同数のパタン発生器を半導体装置に実装する必要がなくなるため、テスト用の回路面積を削減でき、半導体装置の製造コストを下げることができる。
【００５２】
テスト制御器３０は、どの回路ブロック５０に対してテストを行わせるかを、各回路ブロックの予定を参照して決定する。具体的には、テスト制御器３０は、ハードウエアスケジューラや、コンパイラにより予め生成されてアービタに格納されたスレッド情報を参照して、テスト可能な空き時間が予定されている回路ブロック５０を選択する。テスト制御器３０は、選択された回路ブロック５０がアイドル状態に入ったら、テストを実行する。
【００５３】
図６は、本実施形態の演算時間割とテストスケジュール例を示す表である。
図６の表は、複数の回路ブロックの各々について、各経過時間における状態を示している。表の各セルにおいて、Ｗは当該時刻に当該回路ブロックが通常動作を行っている状態、Ｌは当該時刻に当該回路ブロックがテストを実行している状態、符号のない場所は、当該時刻に当該回路ブロックがアイドル状態になっていることを示す。
【００５４】
テストは、テスト中の回路ブロック５０に次のタスクが割り振られる前に終了するので、半導体装置が実使用条件で稼動中に平行してテストを行った場合でも、処理に遅延が発生することはない。なお、本実施形態では、符号圧縮器６０は回路ブロック５０と同数挿入されているので、同一時刻についてテスト可能なまとまった空き時間を持つ回路ブロック５０が複数ある場合には、図６の時刻１０〜１７に示すように複数の回路ブロック５０に対して同時にテストを実行させることもできる。
【００５５】
パタン発生器４０が疑似乱数生成器である場合、テスト制御器３０はパタン初期化器３０１の値を変更することで、パタン発生器４０に異なるテストパタンを生成させることができる。テスト制御器３０が、初期値と疑似乱数と期待値との対応表を事前に用意することにより、更にテストバリエーションを増やし、テストの網羅性を上げることができる。
【００５６】
また、想定実行時間が異なるテストバリエーションを生成し、テストバリエーションに対して想定実行時間情報を付加しておくこともできる。想定実行時間情報を付加することにより、テスト制御器３０は、実行が短時間で終了するものから長時間に及ぶものまでさまざまなテストバリエーションを選択することができる。テスト制御器３０は、テストを実行しようとする回路ブロック５０のアイドル状態がどの程度続くのかを参照し、アイドル時間内に終了する想定実行時間を持つ最適なテストパタンを選択する。想定実行時間にバリエーションを設けることにより、アイドル時間の不足により標準的な実行時間のテストができない回路ブロック５０に対しても、短時間のテストを実行することができる。またアイドル時間が長い回路ブロック５０に対しては、長時間のテストを実行することができるので、計算資源を無駄なく使用することができる。
【００５７】
（第２の実施の形態）
図７は、第２の実施の形態のテスト回路を示したものである。
本実施形態では、パタン発生器４０のみならず、符号圧縮器６０を複数の回路ブロック５０が共用する。これにより、回路ブロック５０と同数の符号圧縮器６０を半導体装置に実装する必要がなくなる。この形態により、第１の実施の形態と比較してもテスト用の回路面積を更に削減することができ、半導体装置の製造コストを下げることができる。
【００５８】
図８は、第２の実施の形態の演算時間割とテストスケジュール例を示す表である。
図６と同じく、表のうち、行は経過時刻、列は回路ブロックを示す。第２の実施の形態では、複数の回路ブロック５０が１つの符号圧縮器６０を共用する。このため、１つの回路ブロックが符号圧縮器６０を使用している間、他の回路ブロック５０は符号圧縮器６０を使用することはできない。回路ブロック５０の応答は長大なシリアルデータであるため、回路ブロック５０はテスト中一定期間符号圧縮器６０を占有する。以上より、本実施形態では、テストは複数の回路ブロックに対して同時に実行できなくなる。テスト制御器３０は、スレッド時間割を参照しながら複数の回路ブロックから同時に応答が出力されないようにテストスケジュールを決定し、これに基づいて、図８に示すような最適なテストパタンを生成する。
【００５９】
（第３の実施の形態）
図９は、第３の実施の形態のテスト回路を示したものである。
本実施形態では、回路ブロック５０はパタン発生器４０を共用するが、符号圧縮器６０は２つ以上用意されており、複数の回路ブロック５０に対して同時に同じ内容のテストを行うことができる。本実施の形態の比較器は期待値を参照しない符号比較器３０３である。
【００６０】
第１と第２の実施形態では、符号圧縮器６０から生成される圧縮値であるテスト応答と照合する期待値はテスト制御器３０内部または図２におけるＲＯＭ２２などのテスト制御器３０が参照可能な場所に保存されている。しかし、テストのために確保できる保存領域には限界がある。また、そもそも期待値が用意されていないテストパタンを用いてテストを行いたい場合もある。符号圧縮器６０が２つ以上あれば、同時に２つ以上の回路ブロック５０に対して同一のテストを行い、２つ以上の応答に対して２つ以上の符号圧縮器６０が生成したテスト応答同士を比較することができる。符号比較器３０３による比較の結果、２つ以上の符号圧縮器６０から得られたテスト応答が同一の場合には正常とする。テスト応答が異なる場合、いずれかの回路ブロック５０に不具合が発生している。また、符号圧縮器６０が３つ以上あれば、３つ以上の回路ブロック５０で同時にテストを行い、不具合が発生した回路ブロック５０を多数決により特定できる。
【００６１】
また、本実施形態では、符号圧縮器６０を使用せず、直接２つ以上の回路ブロック５０の応答同士をテスト応答として比較してもよい。比較の結果、２つ以上のテスト応答が同一であれば、符号圧縮器６０で圧縮値の算出を行わなくとも、回路ブロック５０の不具合を検出することができる。これにより、符号圧縮器６０が不要となり、更にテスト用の回路面積を削減することができる。この場合、符号比較器３０２の代わりに、例えばビット演算を用いるより簡易な比較器を用いることもできる。但し、符号圧縮器６０を使用しない場合、２つ以上の回路ブロック５０に対して同時にテストを実施する必要がある。なお、符号圧縮器６０を用いる場合には、テストタイミングがずれても比較を行うことができる。
【００６２】
本実施形態では、予め全てのテストパタンについて期待値を用意して回路に組み込んでおく必要がなくなるので、ＬＢＩＳＴに使用するメモリ容量を削減することができる。また、期待値が設定されているかどうかに関わらず、パタン初期化器３０１で任意の初期値をパタン生成器４０に渡してテストを行うことができる。また、半導体装置製造後に期待値が組み込まれていない新たなテストパタンが必要になった場合でも、回路ブロック５０の不具合を発見することができる。
【００６３】
（第４の実施の形態）
図１０は、第４の実施の形態のテスト回路を示したものである。
本実施形態では、回路ブロック５０は、パタン発生器４０の出力に代えて、通常動作時の制御器７０が生成する同一内容の処理を実行する。すなわち、本実施形態では、半導体装置１０の通常稼働状態において回路ブロック５０のうちの１つに割り当てられる入力そのものがテストパタンとなる。符号圧縮器６０は、第３の実施の形態と同じく、２つ以上で構成される。本実施形態でも、複数の回路ブロック５０が同一の処理を行い、符号比較器３０３は、２つ以上の応答に対して２つ以上の符号圧縮器６０が生成した圧縮値であるテスト応答同士を比較する。符号圧縮器６０が３つ以上あれば、３つ以上の回路ブロック５０で同時にテストを行い、不具合が発生した回路ブロック５０を多数決により特定できる点、また、同時に２つ以上の回路ブロックに対してテストを実施するのであれば、符号圧縮器６０が不要な構成とすることもできること、また、前述の構成では符号比較器３０２の代わりに、より簡易な比較器を用いることができることは、第３の実施の形態と同様である。
【００６４】
この構成により、パタン発生器４０が不要になるため、回路面積を更に削減でき、製造コストを下げることができる。また、製品テスト段階において、試験者がテストしたい動作を回路ブロック５０に入力して、テストに利用することができる。ランダムパタンを使用する通常のＬＢＩＳＴとは異なり、ユーザは回路ブロック５０の狙った箇所を重点的に網羅するテストを実行できる。またこの構成では、実使用では起こり得るが設計段階では想定できないパタンに対してもテストを行うことができる。
【００６５】
以上、具体例を参照しつつ本実施形態について説明した。しかし、本開示はこれらの具体例に限定されるものではない。これらの具体例に、当業者が適宜設計変更を加えたものも、本開示の特徴を備えている限り、本開示の範囲に包含される。前述した本具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
【００６６】
例えば、符号圧縮器６０が複数存在する場合において、パタン発生器４０と通常動作時の制御部７０を切り替えてテストに利用できるようにしてもよい。これにより、期待値が不揮発性メモリに登録されている条件ではそれを用いて回路ブロック５０が正常に動作しているか確認することができ、期待値が登録されていない条件や、制御部の出力で動作する場合では、複数の符号圧縮器６０の圧縮値であるテスト応答同士を比較することにより、回路ブロック５０の不具合を検出することができる。
【００６７】
また、リファレンスとして特定の回路ブロック５０にのみ図４に示すＬＢＩＳＴ回路を設け、その他の回路ブロック５０は第１〜第３の実施の形態で示したようにパタン発生器４０と符号圧縮器６０を共有することとしてもよい。この構成を比較することにより、パタン発生器４０や符号圧縮器６０の不良を検出することができる。
【００６８】
パタン発生器４０や符号圧縮器６０が１つのみの実施形態の場合でも、待機系のパタン発生器４０や圧縮器６０が別途用意されていてもよい。パタン発生器４０または圧縮器６０に故障が発生した場合でも、待機系に切り替えてテスト機能を維持することができる。
【００６９】
上記の各実施形態では、回路ブロック５０の機能は全て同一であるものとして説明を行った。しかし、回路ブロックの機能は異なっていてもよい。回路ブロックの機能が全て異なる構成では、テスト制御器３０は、回路ブロックの種別ごとに用意されたテストパタンと期待値の組み合わせを利用する。この構成でも、回路ブロック５０ごとにパタン発生器４０と符号圧縮器６０を設ける必要はなくなるので、半導体装置の回路面積を削減でき、製造コストを下げることができる。また、回路ブロックのバリエーションの中に、同一の機能を持つ組み合わせがあるのであれば、第３、第４の実施の形態に記載したように、そのテスト応答同士を比較することで、不具合の発生を知ることができる。
【符号の説明】
【００７０】
１０：ＤＦＰ、３０：テスト制御器、４０：パタン発生器、５０：回路ブロック、
６０：符号圧縮器、７０：通常使用時の制御器
【図１】
2020165802.tif 000003
【図２】
2020165802.tif 000004
【図３】
2020165802.tif 000005
【図４】
2020165802.tif 000006
【図５】
2020165802.tif 000007
【図６】
2020165802.tif 000008
【図７】
2020165802.tif 000009
【図８】
2020165802.tif 000010
【図９】
2020165802.tif 000011
【図１０】
2020165802.tif 000012