(57)【要約】【課題】消費電流の急峻な変化を抑制することが可能な半導体装置及びその自己診断の制御方法を提供すること。【解決手段】一実施の形態によれば、半導体装置１は、診断対象回路である論理回路１４と、論理回路１４の診断を行う自己診断回路１３と、自己診断回路１３による論理回路１４の診断の制御を行う診断制御回路１２と、を備え、診断制御回路１２は、自己診断回路１３による論理回路１４の診断の中止を指示する中止信号を受け取った場合、自己診断回路１３による論理回路１４の診断を段階的に停止させる診断中止制御回路１２３を有する。【選択図】図１
2020034315.tif 000002
【特許請求の範囲】
【請求項１】
診断対象回路と、
前記診断対象回路の診断を行う自己診断回路と、
前記自己診断回路による前記診断対象回路の診断の制御を行う診断制御回路と、
を備え、
前記診断制御回路は、
前記自己診断回路による前記診断対象回路の診断の中止を指示する中止信号を受け取った場合、前記自己診断回路による前記診断対象回路の診断を段階的に停止させる診断中止制御回路を有する、
半導体装置。
【請求項２】
前記診断中止制御回路は、テストパタンが供給されることによって前記診断対象回路のテスト動作が実行されている期間中に前記中止信号を受け取った場合、前記自己診断回路に前記診断対象回路のテスト動作のクールダウン処理を実行させた後、前記診断対象回路に供給されるテストクロックの周波数を段階的に低下させるように構成されている、
請求項１に記載の半導体装置。
【請求項３】
前記診断中止制御回路は、前記クールダウン処理では、前記テストパタンとともに前記診断対象回路に供給される前記テストクロックの周波数を所定周波数にまで段階的に低下させるように構成されている、
請求項２に記載の半導体装置。
【請求項４】
前記診断中止制御回路は、前記クールダウン処理では、前記自己診断回路に設けられた複数のテストパタン生成回路によるテストパタンの生成を順番に停止させるように構成されている、
請求項２に記載の半導体装置。
【請求項５】
前記診断中止制御回路は、前記診断対象回路のテスト動作のクールダウン処理が実行されている期間中に前記中止信号を受け取った場合、前記クールダウン処理の完了後、前記診断対象回路に供給されるテストクロックの周波数を段階的に低下させるように構成されている、
請求項１に記載の半導体装置。
【請求項６】
前記診断中止制御回路は、前記自己診断回路によって前記診断対象回路に対するテストクロックの供給開始の設定が行われている期間中に前記中止信号を受け取った場合、前記診断対象回路に供給されるテストクロックの周波数を段階的に低下させるように構成されている、
請求項１に記載の半導体装置。
【請求項７】
前記診断中止制御回路は、前記テストクロックの供給開始の設定完了後、前記診断対象回路に供給される前記テストクロックの周波数を段階的に低下させるように構成されている、
請求項６に記載の半導体装置。
【請求項８】
前記診断中止制御回路は、前記自己診断回路による前記診断対象回路に対するテストクロックの供給開始の設定完了後から前記自己診断回路による前記診断対象回路のテスト動作開始前までの期間中、前記診断対象回路のテスト動作の結果の判定が行われている期間中、及び、前記診断対象回路に対する前記テストクロックの供給停止の動作が実行されている期間中、の何れかにおいて前記中止信号を受け取った場合、前記診断対象回路に供給される前記テストクロックの周波数を段階的に低下させるように構成されている、
請求項１に記載の半導体装置。
【請求項９】
前記診断中止制御回路は、テストパタンが供給されることによって前記診断対象回路のテスト動作が実行されている期間中、及び、前記診断対象回路のテスト動作のクールダウン処理が実行されている期間中、の何れかにおいて前記中止信号を受け取った場合、前記クールダウン処理の完了後、前記診断対象回路に供給されるテストクロックの周波数のさらなる低下を行わずに、自己診断モードから通常動作モードにモードを切り替える、
請求項１に記載の半導体装置。
【請求項１０】
前記診断中止制御回路は、前記中止信号を受け取った場合、前記自己診断回路による前記診断対象回路の診断が完了するのを待つことによって、前記自己診断回路による前記診断対象回路の診断を段階的に停止させるように構成されている、
請求項１に記載の半導体装置。
【請求項１１】
前記中止信号は、リセット信号である、
請求項１に記載の半導体装置。
【請求項１２】
自己診断回路によって診断対象回路の診断を行い、
前記自己診断回路による前記診断対象回路の診断の中止を指示する中止信号を受け取った場合、前記自己診断回路による前記診断対象回路の診断を段階的に停止させる、
半導体装置の自己診断の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びその自己診断の制御方法に関し、例えば消費電流の急峻な変化を抑制するのに適した半導体装置及びその自己診断の制御方法に関する。
【背景技術】
【０００２】
例えば、自動車向けの機能安全規格を満たすため、自動車に搭載される半導体装置には自己診断機能（ＩＳＴ；Ｉｎ−Ｓｙｓｔｅｍ−Ｔｅｓｔ）が設けられている。自己診断は、例えばＢＩＳＴ（Ｂｕｉｌｔ  Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）回路を用いることにより、電源起動時（パワーオン時）に行われたり、通常動作中に定期的に行われたりする。
【０００３】
ここで、半導体装置には、自己診断時の消費電力を通常動作時に許容される消費電力以下に抑えることが求められるだけでなく、自己診断時の消費電流の変化率（ｄｉ／ｄｔ）を、通常動作時に許容される消費電流の変化率以下に抑えることが求められている。そのため、通常動作中の定期的な自己診断では、例えば、複数の診断対象回路の診断が互いに異なるタイミングで実施されている。それにより、自己診断時における消費電力が抑制されるとともに、自己診断時における消費電流の急峻な変化が抑制される。しかしながら、依然として、診断対象回路のテスト動作後に動作モードが自己診断モードから通常動作モード（ユーザモード）に切り替わる際に、消費電流が急峻に変化してしまう可能性がある。
【０００４】
このような問題に対する解決策が特許文献１に開示されている。特許文献１に開示された半導体装置は、診断対象回路のテスト動作後に複数のパタン発生回路によるテストパタンの生成を互いに異なるタイミングで停止させることにより、テスト動作後における消費電流の急峻な変化を抑制している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１６／０８４１６５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１には、診断対象回路のテスト動作後に複数のパタン発生回路によるテストパタンの生成を互いに異なるタイミングで停止させることについては記載されているものの、診断処理の実行中に当該診断処理の中止を指示する信号（例えば外部からのリセット信号）を受け取った場合の動作については開示も示唆もされていない。
【０００７】
したがって、特許文献１では、診断処理の実行中に当該診断処理の中止を指示する信号を受け取った場合、複数のパタン発生回路を含む自己診断回路の動作を直ちに停止させるものと考えられる。そのため、特許文献１の構成では、実行中の診断処理を中止させる場合に消費電流が急峻に変化してしまう、という問題があった。その結果、例えば電源電圧の変動が大きくなるため、半導体装置の動作が不安定になってしまう。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、診断対象回路と、前記診断対象回路の診断を行う自己診断回路と、前記自己診断回路による前記診断対象回路の診断の制御を行う診断制御回路と、を備え、前記診断制御回路は、前記自己診断回路による前記診断対象回路の診断の中止を指示する中止信号を受け取った場合、前記自己診断回路による前記診断対象回路の診断を段階的に停止させる診断中止制御回路を有する。
【０００９】
他の実施の形態によれば、半導体装置の自己診断の制御方法は、自己診断回路によって診断対象回路の診断を行い、前記自己診断回路による前記診断対象回路の診断の中止を指示する中止信号を受け取った場合、前記自己診断回路による前記診断対象回路の診断を段階的に停止させる。
【発明の効果】
【００１０】
前記一実施の形態によれば、消費電流の急峻な変化を抑制することが可能な半導体装置及びその自己診断の制御方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る半導体装置の構成例を示すブロック図である。
【図２】図１に示す半導体装置の自己診断の動作を示すフローチャートである。
【図３】正常に自己診断が行われた図１に示す半導体装置の消費電流の変化を示すタイミングチャートである。
【図４】診断が中止された場合における図１に示す半導体装置の消費電流の変化を示すタイミングチャートである。
【図５】テストクールダウン処理の変形例を説明するための図である。
【図６】テストクロック信号の周波数制御の一例を説明するための図である。
【図７】テストクロック信号の周波数制御の他の例を説明するための図である。
【図８】図１に示す半導体装置のメモリに格納されたプログラムの一例を示す図である。
【図９】実施の形態２に係る半導体装置の自己診断の動作を示すフローチャートである。
【図１０】実施の形態３に係る半導体装置の構成例を示すブロック図である。
【図１１】図１０に示す半導体装置の自己診断の動作を示すフローチャートである。
【図１２】比較例に係る半導体装置の自己診断の動作を示すフローチャートである。
【図１３】比較例に係る半導体装置の消費電流の変化を示すタイミングチャートである。
【図１４】比較例に係る半導体装置のメモリに格納されたプログラムの一例を示す図である。
【発明を実施するための形態】
【００１２】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１４】
＜実施の形態１＞
図１は、実施の形態１に係る半導体装置１の構成例を示すブロック図である。本実施の形態に係る半導体装置１は、診断対象回路である論理回路の診断を行う自己診断機能を有し、診断処理の実行中に当該診断処理の中止を指示する中止信号を受け取った場合に、診断処理を段階的に停止させる。それにより、本実施の形態に係る半導体装置１は、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。その結果、電源電圧の変動が抑制されるため、半導体装置１の動作が安定する。以下、具体的に説明する。
【００１５】
図１に示すように、半導体装置１は、システム制御回路１１と、診断制御回路１２と、自己診断回路１３と、診断対象回路である論理回路１４と、を備える。
【００１６】
システム制御回路１１は、診断制御回路１２に対して論理回路１４の診断開始を指示する診断開始信号ＳＴ１を出力したり、論理回路１４のテスト結果ＤＴ１と期待値とを比較することにより論理回路１４の故障の有無を判定したりする。また、システム制御回路１１は、例えば半導体装置１の外部に設けられた上位システム（不図示）からのリセット信号ＲＳＴを受け取った場合、論理回路１４に対するリセット信号ＲＳＴの出力を保留したうえで、診断制御回路１２に対して論理回路１４の診断中止を指示する診断中止信号ＢＲ１を出力する。そして、診断処理の中止が完了した後に、保留していたリセット信号ＲＳＴを論理回路１４に対して出力する。それにより、論理回路１４は初期化される。
【００１７】
診断制御回路１２は、所謂ＩＳＴ制御回路であって、電源起動時、及び、通常動作時に定期的に、自己診断回路１３による論理回路１４の診断を制御する。自己診断回路１３は、診断制御回路１２によって制御され、診断対象回路である論理回路１４の診断を行う。
【００１８】
具体的には、診断制御回路１２は、メモリ１２１と、テストシーケンサ１２２と、診断中止制御回路１２３と、を有する。また、自己診断回路１３は、テスト回路１３１と、テストクロック生成回路１３２と、を有する。テスト回路１３１は、所謂ＢＩＳＴ回路である。
【００１９】
テストシーケンサ１２２は、システム制御回路１１から診断開始信号ＳＴ１を受け取ると、メモリ１２１に格納されたプログラムを順番に取得し、取得したプログラムに応じた診断処理を順番に自己診断回路１３に実行させる。例えば、テストシーケンサ１２２は、取得したプログラムに応じた制御信号Ｓ１を自己診断回路１３に対して出力することにより、クロックオン処理、テスト設定処理、テスト実行処理、テストクールダウン処理、テスト結果判定処理、クロックオフ処理を順番に自己診断回路１３に実行させる。各処理の詳細については、後述する。
【００２０】
診断中止制御回路１２３は、システム制御回路１１から診断中止信号ＢＲ１を受け取ると、テストシーケンサ１２２からメモリ１２１へのアクセス信号に含まれるアドレス情報ＡＤ１から現在実行中の処理内容を判定する。その後、診断中止制御回路１２３は、判定結果に応じた診断中止の処理内容を用いて自己診断回路１３による論理回路１４の診断を段階的に停止させる。
【００２１】
具体的には、診断中止制御回路１２３は、テストシーケンサ１２２に対して、現在実行中の処理内容に応じた診断中止処理内容のプログラム、が記憶されたメモリ１２１の記憶領域にアクセスを切り替えるように、ジャンプ信号ＪＰ１を出力する。それにより、テストシーケンサ１２２は、ジャンプ信号ＪＰ１によって切り替えられたアドレスのプログラムをメモリ１２１から取得し、取得したプログラムに応じた診断中止処理を自己診断回路１３に実行させる。
【００２２】
その後、テストシーケンサ１２２は、自己診断回路１３による論理回路１４の診断処理の中止が完了すると、診断処理の中止が完了したことを表す診断中止完了信号ＦＮ０を診断中止制御回路１２３に対して出力する。診断中止制御回路１２３は、テストシーケンサ１２２からの診断中止完了信号ＦＮ０を受け取ると、診断中止完了信号ＦＮ１をシステム制御回路１１に対して出力する。診断中止制御回路１２３の動作の詳細については、後述する。
【００２３】
（半導体装置１の自己診断の動作）
続いて、半導体装置１の自己診断の動作について説明する。
図２は、半導体装置１の自己診断の動作を示すフローチャートである。
【００２４】
まず、図２を用いて、半導体装置１の正常時の自己診断の動作について説明する。
【００２５】
システム制御回路１１から診断開始信号ＳＴ１が出力されると、診断制御回路１２は、自己診断回路１３による論理回路１４の診断処理の制御を開始する。
【００２６】
診断処理では、クロックオン処理（ステップＳ１０１）、テスト設定処理（ステップＳ１０２）、テスト実行処理（ステップＳ１０３）、テストクールダウン処理（ステップＳ１０４）、テスト結果判定処理（ステップＳ１０５）、クロックオフ処理（ステップＳ１０６）が順番に実行される。
【００２７】
クロックオン処理では、診断対象回路である論理回路１４に対するテストクロック信号ＴＣＫの供給開始の設定が行われる。具体的には、テストクロック生成回路１３２は、テストシーケンサ１２２からの制御信号Ｓ１に基づいて、クロック信号ＣＬＫをテストクロック信号ＴＣＫとして論理回路１４に対して出力し始める。
【００２８】
テスト設定処理では、テスト回路１３１の初期設定が行われる。なお、テスト設定処理は、論理回路１４に対するテストクロック信号ＴＣＫの供給の設定完了後から自己診断回路１３による論理回路１４のテスト動作開始前の期間に行われる。
【００２９】
テスト実行処理では、自己診断回路１３によって論理回路１４のテスト動作が実行される。例えば、自己診断回路１３に設けられたテスト回路１３１は、テストパタンを生成するテストパタン生成回路と、テスト結果を圧縮するテスト結果圧縮回路と、を有する。テストパタン生成回路は、論理回路１４内に構成されたスキャンチェーンにテストパタンを供給する。その後、論理回路１４に設けられた各フリップフロップは、テストパタンに応じたテスト結果を出力する。その後、各フリップフロップのテスト結果は、論理回路１４のテスト結果としてスキャンチェーンを介してテスト結果圧縮回路に入力される。テスト結果圧縮回路は、スキャンチェーンを介して入力されたテスト結果を圧縮する。
【００３０】
テストクールダウン処理では、テスト実行処理後、自己診断回路１３による論理回路１４のテスト動作によって増大した消費電力の斬減が行われる。具体的には、診断制御回路１２は、テスト回路１３１にテストパタンを生成させながら、テストクロック生成回路１３２によって生成されるテストクロック信号ＴＣＫの周波数を所定周波数にまで段階的に（徐々に）低下させる。それにより、消費電流の変化率が許容範囲内に抑えられた状態で、消費電力は斬減する。
【００３１】
テスト結果判定処理では、論理回路１４のテスト結果ＤＴ１がテスト回路１３１からテストシーケンサ１２２を介してシステム制御回路１１に伝送される。システム制御回路１１は、例えば、論理回路１４のテスト結果ＤＴ１と、期待値と、を比較して、論理回路１４の故障の有無を判定する。
【００３２】
クロックオフ処理では、論理回路１４に対するテストクロック信号ＴＣＫの供給停止の動作が実行される。具体的には、診断制御回路１２は、テスト回路１３１によるテストパタンの生成が行われていない状態で、テストクロック生成回路１３２によって生成されるテストクロック信号ＴＣＫの周波数を段階的に低下させことによって、論理回路１４に対するテストクロック信号ＴＣＫの供給を段階的に停止させる。それにより、消費電流の変化率が許容範囲内に抑えられた状態で、消費電力はさらに斬減する。
【００３３】
その後、テストシーケンサ１２２は、自己診断回路１３による論理回路１４の診断が完了したことを表す正常終了信号ＮＥ１をシステム制御回路１１に対して出力する。システム制御回路１１は、正常終了信号ＮＥ１を受け取ると、論理回路１４に対してリセット信号ＲＳＴを出力する。それにより、論理回路１４は初期化される（ステップＳ１０７）。
【００３４】
なお、論理回路１４のリセット処理は、システム制御回路１１によって行われる場合に限られず、テストシーケンサ１２２による診断処理の一部に組み込まれても良い。その場合、テストシーケンサ１２２は、リセット処理の終了後、自己診断回路１３による論理回路１４の診断が終了したことを表す正常終了信号ＮＥ１をシステム制御回路１１に対して出力する。それにより、論理回路１４は初期化され、動作モードは、自己診断モードから通常動作モード（ユーザモード）に切り替わる。
【００３５】
図３は、正常に自己診断が行われた場合における半導体装置１の消費電流の変化を示すタイミングチャートである。図３を参照すると、クロックオン処理の期間では、テストクロック信号ＴＣＫの稼働により消費電流が上昇している（時刻ｔ１１〜ｔ１２）。その後、テスト実行処理の期間では、論理回路１４のテスト動作により消費電流がさらに上昇し（時刻ｔ１３〜ｔ１４）、その後、高い消費電流値に維持される（時刻ｔ１４〜ｔ１５）。なお、テスト実行処理の期間において消費電流が増大するのは、自己診断回路１３と論理回路１４との間でテストパタン及びテスト結果の受け渡しが行われる際に、テスト回路１３１及び論理回路１４の活性化率が上昇するためである。テスト実行処理後のテストクールダウン処理の期間では、テストクロック信号ＴＣＫの周波数が所定周波数にまで段階的に低下するため、消費電流は、その変化率が許容範囲内に抑えられた状態で下降している（時刻ｔ１５〜ｔ１６）。その後、クロックオフ処理の期間でも、テストクロック信号ＴＣＫの周波数がさらに段階的に低下するため、消費電流は、その変化率が許容範囲内に抑えられた状態でさらに下降している（時刻ｔ１７〜ｔ１８）。
【００３６】
次に、図２を用いて、半導体装置１の診断処理の中止の動作について説明する。
【００３７】
ここで、半導体装置１の診断処理の中止の動作について説明する前に、比較例である半導体装置５０の診断処理の中止の動作について説明する。
【００３８】
図１２は、比較例に係る半導体装置５０の自己診断の動作を示すフローチャートである。図１２に示すように、半導体装置５０の正常時の自己診断の動作については、半導体装置１の場合と同様であるため、その説明を省略する。
【００３９】
半導体装置５０は、診断処理の実行中の任意のタイミングで当該診断処理の中止を指示する信号（例えば半導体装置５０の外部に設けられた上位システムからのリセット信号）を受け取った場合、自己診断回路の動作を直ちに停止させている。そのため、半導体装置５０では、実行中の診断処理を中止させる場合に消費電流が急峻に変化してしまう、という問題があった。
【００４０】
図１３は、比較例に係る半導体装置５０の消費電流の変化を示すタイミングチャートである。なお、図１３の例では、半導体装置５０が、テスト実行処理（図１２のステップＳ１０３）の期間中に診断中止を指示する信号を受け取っている（時刻ｔ３１）。
【００４１】
図１３を参照すると、半導体装置５０は、テスト実行処理の期間中に診断中止を指示する信号を受け取った場合、自己診断回路の動作を直ちに停止させている。そのため、半導体装置５０では、実行中の診断処理を中止させる場合に消費電流が急峻に変化してしまう。つまり、消費電流の変化率（ｄｉ／ｄｔ）が許容範囲を超えて大きくなってしまう。その結果、例えば電源電圧の変動が大きくなるため、半導体装置５０の動作が不安定になってしまう。
【００４２】
それに対し、半導体装置１は、診断処理の実行中の任意のタイミングで当該診断処理の中止を指示する信号（例えば半導体装置１の外部に設けられた上位システムからのリセット信号ＲＳＴ）を受け取った場合、自己診断回路１３の動作を直ちに停止させるのではなく、自己診断回路１３の動作を段階的に（徐々に）停止させている。それにより、半導体装置１は、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。
【００４３】
具体的には、システム制御回路１１は、外部からのリセット信号ＲＳＴを受け取った場合、論理回路１４に対するリセット信号ＲＳＴの出力を保留したうえで、診断制御回路１２に対して論理回路１４の診断中止を指示する診断中止信号ＢＲ１を出力する。
【００４４】
診断中止制御回路１２３は、システム制御回路１１から診断中止信号ＢＲ１を受け取ると、テストシーケンサ１２２からメモリ１２１へのアクセス信号に含まれるアドレス情報ＡＤ１から現在実行中の処理内容を判定する。その後、診断中止制御回路１２３は、現在実行中の処理内容に応じた診断中止の処理内容を用いて自己診断回路１３による論理回路１４の診断を段階的に停止させる。
【００４５】
例えば、診断中止制御回路１２３は、自己診断回路１３がクロックオン処理を実行中の場合（ステップＳ２０１のＹＥＳ）、自己診断回路１３に、クロックオン処理の実行完了後（ステップＳ２０４）、クロックオフ処理を実行させる（ステップＳ２０６）。なお、診断中止制御回路１２３は、自己診断回路１３がクロックオン処理を実行中の場合（ステップＳ２０１のＹＥＳ）、クロックオン処理の実行完了を待たずに、自己診断回路１３にクロックオフ処理を実行させても良い。
【００４６】
また、診断中止制御回路１２３は、自己診断回路１３がテスト実行処理を実行中の場合（ステップＳ２０１のＮＯ→ステップＳ２０２のＹＥＳ）、又は、テストクールダウン処理を実行中の場合（ステップＳ２０１のＮＯ→ステップＳ２０２のＮＯ→ステップＳ２０３のＹＥＳ）、自己診断回路１３に、テストクールダウン処理の実行完了後（ステップＳ２０５）、クロックオフ処理を実行させる（ステップＳ２０６）。
【００４７】
さらに、診断中止制御回路１２３は、自己診断回路１３がその他の処理（例えば、テスト設定処理、テスト結果判定処理、及び、クロックオフ処理の何れかの処理）を実行中の場合（ステップＳ２０１のＮＯ→ステップＳ２０２のＮＯ→ステップＳ２０３のＮＯ）、自己診断回路１３にクロックオフ処理を実行させる（ステップＳ２０６）。
【００４８】
診断中止制御回路１２３は、自己診断回路１３によるクロックオフ処理の実行完了後（ステップＳ２０６）、テストシーケンサ１２２から診断中止完了信号ＦＮ０を受け取ると、診断中止完了信号ＦＮ１をシステム制御回路１１に対して出力する。
【００４９】
システム制御回路１１は、診断中止完了信号ＦＮ１を受け取ると、保留していたリセット信号ＲＳＴを論理回路１４に対して出力する。それにより、論理回路１４は初期化される（ステップＳ１０７）。その後、動作モードは、自己診断モードから通常動作モード（ユーザモード）に切り替わる。
【００５０】
図４は、実行中の診断処理が中止された場合における半導体装置１の消費電流の変化を示すタイミングチャートである。なお、図４の例では、半導体装置１が、テスト実行処理（図２のステップＳ１０３）の期間中に診断中止を指示する信号を受け取っている（時刻ｔ２１）。
【００５１】
図４を参照すると、半導体装置１は、テスト実行処理の期間中に診断中止を指示する信号を受け取った場合、自己診断回路１３の動作を直ちに停止させるのではなく、診断中止制御回路１２３に、テストクールダウン処理を実行させ（時刻ｔ２１〜ｔ２２）、かつ、クロックオフ処理を実行させる（時刻ｔ２２〜ｔ２３）。その後、半導体装置１は、消費電力が十分に低下した状態で、システム制御回路１１によって保留されたリセット信号ＲＳＴを論理回路１４に印可することで当該論理回路１４を初期化している。それにより、半導体装置１は、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。つまり、半導体装置１は、実行中の診断処理を中止する場合にも消費電流の変化率（ｄｉ／ｄｔ）を許容範囲内に抑えることができる。
【００５２】
このように、本実施の形態にかかる半導体装置１は、診断対象回路である論理回路１４の診断を行う自己診断機能を有し、診断処理の実行中に当該診断処理の中止を指示する中止信号を受け取った場合に、診断処理を段階的に停止させる。それにより、本実施の形態に係る半導体装置１は、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。その結果、電源電圧の変動が抑制されるため、半導体装置１の動作が安定する。
【００５３】
続いて、図５，図６，図７を用いてテストクールダウン処理の変形例、テストクロック信号の周波数制御のいくつかの例について説明する。
【００５４】
（テストクールダウン処理の変形例）
図５は、テストクールダウン処理の変形例を説明するための図である。なお、図５の例では、空間スライス制御（分割制御）による消費電力の斬減が行われる。
【００５５】
図５を参照すると、例えば、テスト回路１３１は、４個のテストパタン生成回路ＰＲＰＧ１〜ＰＲＰＧ４と、それらに対応する４個のテスト結果圧縮回路ＭＩＳＲ１〜ＭＩＳＲ４と、を備える。また、論理回路１４は、４個の論理回路ＣＵＴ１〜ＣＵＴ４を備える。
【００５６】
テストパタン生成回路ＰＲＰＧ１〜ＰＲＰＧ４は、それぞれ、テストパタンを生成して論理回路ＣＵＴ１〜ＣＵＴ４に対して出力する。テスト結果圧縮回路ＭＩＳＲ１〜ＭＩＳＲ４は、それぞれ論理回路ＣＵＴ１〜ＣＵＴ４のテスト結果を圧縮する。
【００５７】
ここで、診断中止制御回路１２３は、テストパタン生成回路ＰＲＰＧ１によるテストパタンの生成を停止させ、その後、テストパタン生成回路ＰＲＰＧ２によるテストパタンの生成を停止させ、その後、テストパタン生成回路ＰＲＰＧ３によるテストパタンの生成を停止させ、その後、テストパタン生成回路ＰＲＰＧ４によるテストパタンの生成を停止させる。それにより、テストパタン生成回路ＰＲＰＧ１〜ＰＲＰＧ４によるテストパタンの生成を同時に停止させる場合よりも、消費電流の変化率が小さくなる。
【００５８】
本例では、４個のテストパタン生成回路が設けられた場合について説明したが、これに限られず、任意の数のテストパタン生成回路が設けられていても良い。また、本例では、複数のテストパタン生成回路の動作を一つずつ順番に停止させる場合について説明したが、これに限られない。複数のテストパタン生成回路の動作を２つ以上ずつ順番に停止させても良い。
【００５９】
なお、テストクールダウン処理では、上記した空間スライス制御と、テストクロック信号ＴＣＫの周波数の段階的な低減と、が組み合わせて用いられても良い。
【００６０】
（テストクロック信号の周波数制御の一例）
図６は、テストクロック信号の周波数制御の一例を説明するための図である。
図６を参照すると、診断対象回路である論理回路１４にテストクロック信号ＴＣＫ１〜ＴＣＫ３が供給されている場合、診断中止制御回路１２３は、テストクロック信号ＴＣＫ１〜ＴＣＫ３のそれぞれのパルス波形を並行して段階的に間引くことによって、これらテストクロック信号ＴＣＫ１〜ＴＣＫ３のそれぞれの周波数を段階的に低下させている。それにより、消費電流の変化率が許容範囲内に抑制される。
【００６１】
（テストクロック信号の周波数制御の他の例）
図７は、テストクロック信号の周波数制御の他の例を説明するための図である。
図７を参照すると、診断対象回路である論理回路１４にテストクロック信号ＴＣＫ１〜ＴＣＫ３が供給されている場合、診断中止制御回路１２３は、テストクロック信号ＴＣＫ１〜ＴＣＫ３のそれぞれのパルス波形を個別に段階的に間引くことによって、これらテストクロック信号ＴＣＫ１〜ＴＣＫ３のそれぞれの周波数を段階的に低下させている。それにより、消費電流の変化率が許容範囲内に抑制される。
【００６２】
続いて、図８を用いてメモリ１２１に格納されたプログラムの一例について説明する。
【００６３】
（メモリ１２１に格納されたプログラムの一例）
図８は、半導体装置１のメモリ１２１に格納されたプログラムの一例を示す図である。また、図１４は、比較例である半導体装置５０のメモリに格納されたプログラムの一例を示す図である。
【００６４】
まず、図１４を参照すると、比較例である半導体装置５０のメモリには、アドレス番号００１〜００６のそれぞれの記憶領域に、クロックオン処理、テスト設定処理、テスト実行処理、テストクールダウン処理、テスト結果判定処理、及び、クロックオフ処理、に関するプログラムが格納されている。
【００６５】
テストシーケンサは、まず、アドレス番号００１の記憶領域にアクセスすることにより、クロックオン処理に関するプログラムを取得する。そして、テストシーケンサは、取得したプログラムに基づいて、必要に応じてメモリから関連するデータを取得したうえで、自己診断回路にクロックオン処理を実行させる。クロックオン処理後、テストシーケンサは、アドレス番号００２の記憶領域にアクセスすることにより、テスト設定処理に関するプログラムを取得する。そして、テストシーケンサは、取得したプログラムに基づいて、必要に応じてメモリから関連するデータを取得したうえで、自己診断回路にテスト設定処理を実行させる。同様にして、テストシーケンサ１２２は、アドレス番号００３〜００６のそれぞれの記憶領域から、テスト実行処理、テストクールダウン処理、テスト結果判定処理、及び、クロックオフ処理、に関するプログラムを順番に取得し、取得したプログラムに基づいて、自己診断回路に各処理を実行させる。
【００６６】
次に、図８を参照すると、本実施の形態に係る半導体装置１のメモリ１２１には、アドレス番号００１〜００６，０２１のそれぞれの記憶領域に、クロックオン処理、テスト設定処理、テスト実行処理、テストクールダウン処理、テスト結果判定処理、アドレス番号０２１へのジャンプ命令、クロックオフ処理、に関するプログラムが格納されている。また、アドレス番号０１０〜０１２，０２０のそれぞれの記憶領域に、第１の中止処理、テストクールダウン処理、アドレス番号０２１へのジャンプ命令、第２の中止処理、に関するプログラムが格納されている。
【００６７】
例えば、半導体装置１の診断処理が正常に行われる場合、テストシーケンサ１２２は、アドレス番号００１〜００６，０２１のそれぞれの記憶領域からクロックオン処理、テスト設定処理、テスト実行処理、テストクールダウン処理、テスト結果判定処理、アドレス番号０２１へのジャンプ命令、クロックオフ処理、に関するプログラムを順番に取得し、取得したプログラムに基づいて、自己診断回路１３に各処理を実行させる。なお、アドレス番号０２１へのジャンプ命令は、アクセスを行う記憶領域のアドレス番号をアドレス番号０２１にジャンプさせることを意味する。したがって、本例では、テスト結果判定処理の後、クロックオフ処理に処理が移行する。
【００６８】
それに対し、半導体装置１の診断処理が中止される場合、まず、診断中止制御回路１２３は、テストシーケンサ１２２からメモリ１２１へのアクセス信号に含まれるアドレス情報ＡＤ１から現在実行中の処理内容を判定する。
【００６９】
例えば、診断中止制御回路１２３は、テストシーケンサ１２２がメモリ１２１の記憶領域のうちアドレス番号００３，００４の何れかの記憶領域にアクセスしている期間中に診断中止信号ＢＲ１を受け取った場合、現在実行中の処理内容がテスト実行処理及びテストクールダウン処理の何れかであると判定する。
【００７０】
ここで、診断中止制御回路１２３は、現在実行中の処理内容がテスト実行処理及びテストクールダウン処理の何れかであると判定した場合、テストシーケンサ１２２に対してアドレス番号０１０の記憶領域にアクセスを切り替えるようにジャンプ信号ＪＰ１を出力する。それにより、テストシーケンサ１２２は、アドレス番号０１０の記憶領域にアクセスを切り替える。その後、テストシーケンサ１２２は、アドレス番号０１１，０１２，０２１のそれぞれの記憶領域から、テストクールダウン処理、アドレス番号０２１へのジャンプ命令、及び、クロックオフ処理、に関するプログラムを順番に取得し、取得したプログラムに基づいて、自己診断回路１３に各処理を実行させる。
【００７１】
つまり、診断中止制御回路１２３は、現在実行中の処理内容がテスト実行処理及びテストクールダウン処理の何れかである場合、自己診断回路１３にテストクールダウン処理及びクロックオフ処理を順番に実行させることによって、自己診断回路１３による診断処理を段階的に停止させる。
【００７２】
また、例えば、診断中止制御回路１２３は、テストシーケンサ１２２がメモリ１２１の記憶領域のうちアドレス番号００１，００２，００５の何れかの記憶領域にアクセスしている期間中に診断中止信号ＢＲ１を受け取った場合、現在実行中の処理内容がクロックオン処理、テスト設定処理及びテスト結果判定処理の何れかであると判定する。
【００７３】
ここで、診断中止制御回路１２３は、現在実行中の処理内容がクロックオン処理、テスト設定処理及びテスト結果判定処理の何れかであると判定した場合、テストシーケンサ１２２に対してアドレス番号０２０の記憶領域にアクセスを切り替えるようにジャンプ信号ＪＰ１を出力する。それにより、テストシーケンサ１２２は、アドレス番号０２０の記憶領域にアクセスを切り替える。その後、テストシーケンサ１２２は、アドレス番号０２１の記憶領域から、クロックオフ処理に関するプログラムを取得し、取得したプログラムに基づいて、自己診断回路１３にクロックオフ処理を実行させる。
【００７４】
つまり、診断中止制御回路１２３は、現在実行中の処理内容がクロックオン処理、テスト設定処理及びテスト結果判定処理の何れかである場合、自己診断回路１３にクロックオフ処理を実行させることによって、自己診断回路１３による診断処理を段階的に停止させる。なお、現在実行中の処理内容がクロックオン処理であると判定された場合、診断処理は、クロックオン処理の実行が完了した後に、クロックオフ処理に移行してもよい、クロックオン処理の実行が完了する前に、クロックオフ処理に移行してもよい。
【００７５】
＜実施の形態２＞
図９は、実施の形態２に係る半導体装置２の自己診断時の動作を示すフローチャートである。なお、半導体装置２の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【００７６】
半導体装置２の正常時の自己診断の動作については、半導体装置１の場合と同様であるため、その説明を省略する。したがって、以下では、半導体装置２の診断中止の動作について説明する。
【００７７】
システム制御回路１１は、診断処理の中止を指示する信号（例えば半導体装置２の外部に設けられた上位システムからのリセット信号ＲＳＴ）を受け取った場合、論理回路１４に対するリセット信号ＲＳＴの出力を保留したうえで、診断制御回路１２に対して論理回路１４の診断中止を指示する診断中止信号ＢＲ１を出力する。
【００７８】
診断中止制御回路１２３は、システム制御回路１１から診断中止信号ＢＲ１を受け取ると、テストシーケンサ１２２からメモリ１２１へのアクセス信号に含まれるアドレス情報ＡＤ１から現在実行中の処理内容を判定する。その後、診断中止制御回路１２３は、現在実行中の処理内容に応じた診断中止の処理内容を用いて自己診断回路１３による論理回路１４の診断を段階的に停止させる。
【００７９】
例えば、診断中止制御回路１２３は、自己診断回路１３がテスト実行処理を実行中の場合（ステップＳ２０２のＹＥＳ）、又は、テストクールダウン処理を実行中の場合（ステップＳ２０２のＮＯ→ステップＳ２０３のＹＥＳ）、自己診断回路１３にテストクールダウン処理を実行させる（ステップＳ２０５）。診断中止制御回路１２３は、自己診断回路１３によるテストクールダウン処理の実行完了後、テストシーケンサ１２２から診断中止完了信号ＦＮ０を受け取ると、自己診断回路１３にクロックオフ処理を実行させることなく、診断中止完了信号ＦＮ１をシステム制御回路１１に対して出力する。
【００８０】
また、診断中止制御回路１２３は、自己診断回路１３がその他の処理（例えば、クロックオン処理、テスト設定処理、テスト結果判定処理、及び、クロックオフ処理の何れかの処理）を実行中の場合（ステップＳ２０２のＮＯ→ステップＳ２０３のＮＯ）、テストシーケンサ１２２から診断中止完了信号ＦＮ０を受け取ると、自己診断回路１３にクロックオフ処理を実行させることなく、診断中止完了信号ＦＮ１をシステム制御回路１１に対して出力する。
【００８１】
システム制御回路１１は、診断中止完了信号ＦＮ１を受け取ると、保留していたリセット信号ＲＳＴを論理回路１４に対して出力する。それにより、論理回路１４は初期化される（ステップＳ１０７）。
【００８２】
このように、半導体装置２は、診断処理の中止を指示する信号を受け取った場合、診断中止制御回路１２３に必要に応じてテストクールダウン処理を実行させる。その後、半導体装置２は、消費電力が十分に低下した状態で、システム制御回路１１によって保留されたリセット信号ＲＳＴを論理回路１４に印可することで当該論理回路１４を初期化している。それにより、半導体装置２は、半導体装置１の場合と同様に、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。つまり、半導体装置２は、実行中の診断処理を中止する場合にも消費電流の変化率（ｄｉ／ｄｔ）を許容範囲内に抑えることができる。
【００８３】
さらに、半導体装置２は、診断処理の中止を指示する信号を受け取った場合、診断中止制御回路１２３に、必要に応じてテストクールダウン処理を実行させた後、クロックオフ処理を実行させること無く、診断対象回路である論理回路１４を初期化している。それにより、半導体装置２は、例えば通常動作時のクロック周波数が自己診断時のクロック周波数と同等以上である場合において、自己診断モードから通常動作モード（ユーザモード）に動作モードが移行した場合でも、論理回路１４に供給されるクロック信号の再稼働に伴う消費電流の急峻な変化を抑制することができる。
【００８４】
＜実施の形態３＞
図１０は、実施の形態３に係る半導体装置３の構成例を示すブロック図である。半導体装置３は、半導体装置１の場合と比較して、テストシーケンサ１２２の代わりにテストシーケンサ３２２を備え、診断中止制御回路１２３の代わりに診断中止制御回路３２３を備える。
【００８５】
診断中止制御回路３２３は、テストシーケンサ１２２に対してジャンプ信号ＪＰ１を出力しない。また、テストシーケンサ１２２は、診断中止制御回路３２３に対して診断中止完了信号ＦＮ０を出力しない。半導体装置３のその他の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【００８６】
図１１は、図１０に示す半導体装置３の自己診断時の動作を示すフローチャートである。半導体装置３の正常時の自己診断の動作については、半導体装置１の場合と同様であるため、その説明を省略する。したがって、以下では、半導体装置３の診断中止の動作について説明する。
【００８７】
システム制御回路１１は、診断処理の中止を指示する信号（例えば半導体装置３の外部に設けられた上位システムからのリセット信号ＲＳＴ）を受け取った場合、論理回路１４に対するリセット信号ＲＳＴの出力を保留したうえで、診断制御回路１２に対して論理回路１４の診断中止を指示する診断中止信号ＢＲ１を出力する。
【００８８】
診断中止制御回路３２３は、診断中止信号ＢＲ１を受け取ると、自己診断回路１３による論理回路１４の診断処理が完了するまで待機する（ステップＳ２０７）。そして、診断中止制御回路３２３は、テストシーケンサ１２２からメモリ１２１へのアクセス信号に含まれるアドレス情報ＡＤ１から、自己診断回路１３による論理回路１４の診断処理が完了したと判定した場合、診断中止完了信号ＦＮ１をシステム制御回路１１に対して出力する。
【００８９】
システム制御回路１１は、診断中止完了信号ＦＮ１を受け取ると、保留していたリセット信号ＲＳＴを論理回路１４に対して出力する。それにより、論理回路１４は初期化される（ステップＳ１０７）。
【００９０】
このように、半導体装置３は、診断処理の中止を指示する信号を受け取った場合、診断中止制御回路３２３に、自己診断回路１３による論理回路１４の診断処理が完了するまで待機させる。そして、半導体装置３は、自己診断回路１３による論理回路１４の診断処理が完了した後、消費電力が十分に低下した状態で、システム制御回路１１によって保留されたリセット信号ＲＳＴを論理回路１４に印可することで当該論理回路１４を初期化している。それにより、半導体装置３は、半導体装置１の場合と同様に、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。つまり、半導体装置３は、実行中の診断処理を中止する場合にも消費電流の変化率（ｄｉ／ｄｔ）を許容範囲内に抑えることができる。
【００９１】
本実施の形態では、システム制御回路１１が、診断中止制御回路３２３からの診断中止完了信号ＦＮ１を受け取った場合に、保留していたリセット信号ＲＳＴを論理回路１４に対して出力する場合を例に説明したが、これに限られない。システム制御回路１１は、テストシーケンサ３２２からの正常終了信号ＮＥ１を受け取った場合に、保留していたリセット信号ＲＳＴを論理回路１４に対して出力する構成に適宜変更可能である。
【００９２】
以上のように、上記実施の形態１〜３にかかる半導体装置１〜３は、診断対象回路である論理回路１４の診断を行う自己診断機能を有し、診断処理の実行中に当該診断処理の中止を指示する中止信号を受け取った場合に、診断処理を段階的に停止させる。それにより、上記実施の形態１〜３にかかる半導体装置１〜３は、実行中の診断処理を中止する場合にも消費電流の急峻な変化を抑制することができる。その結果、電源電圧の変動が抑制されるため、半導体装置１〜３の動作が安定する。
【００９３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９４】
１  半導体装置
２  半導体装置
３  半導体装置
１１  システム制御回路
１２  診断制御回路
１３  自己診断回路
１４  論理回路
１２１  メモリ
１２２  テストシーケンサ
１２３  診断中止制御回路
１３１  テスト回路
１３２  テストクロック生成回路
３２２  テストシーケンサ
３２３  診断中止制御回路
ＣＵＴ１〜ＣＵＴ４  論理回路
ＭＩＳＲ１  テスト結果圧縮回路
ＭＩＳＲ２  テスト結果圧縮回路
ＭＩＳＲ３  テスト結果圧縮回路
ＭＩＳＲ４  テスト結果圧縮回路
ＰＲＰＧ１  テストパタン生成回路
ＰＲＰＧ２  テストパタン生成回路
ＰＲＰＧ３  テストパタン生成回路
ＰＲＰＧ４  テストパタン生成回路
【図１】
2020034315.tif 000003
【図２】
2020034315.tif 000004
【図３】
2020034315.tif 000005
【図４】
2020034315.tif 000006
【図５】
2020034315.tif 000007
【図６】
2020034315.tif 000008
【図７】
2020034315.tif 000009
【図８】
2020034315.tif 000010
【図９】
2020034315.tif 000011
【図１０】
2020034315.tif 000012
【図１１】
2020034315.tif 000013
【図１２】
2020034315.tif 000014
【図１３】
2020034315.tif 000015
【図１４】
2020034315.tif 000016