(57)【要約】【課題】適切に診断することができる半導体装置、及びその診断方法を提供すること。【解決手段】本発明に係る半導体装置は、自己診断の対象となるテストターゲット回路１９と、テストターゲット回路１９に対して自己診断用のクロックを出力するＰＬＬ回路１８と、テストターゲット回路１９の動作スピード限界に対応するクロック周波数を記憶する診断用レジスタ１６と、診断用レジスタ１６に記憶されたクロック周波数に基づいて、自己診断時にＰＬＬ回路１８から出力されるクロックの周波数を設定する制御回路１４と、を備えるものである。【選択図】図１
2011163842.tif 000002
【特許請求の範囲】
【請求項１】
自己診断の対象となるターゲット回路と
前記ターゲット回路に対して自己診断用のクロックを出力するクロック回路と、
前記ターゲット回路の動作スピード限界に対応するクロック周波数を記憶する記憶部と、
前記記憶部に記憶された前記クロック周波数に基づいて、自己診断時に前記クロック回路から出力されるクロックの周波数を設定する制御部と、を備える半導体装置。
【請求項２】
前記記憶部に記憶されたクロック周波数よりも低いクロック周波数で、前記ターゲット回路が非診断時の通常動作を行うことを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記クロック回路がＰＬＬ(Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ)回路であり、
前記記憶部が前記ＰＬＬ回路における逓倍率を記憶することを特徴とする請求項１、又は２に記載の半導体装置。
【請求項４】
前記記憶部が前記自己診断を行う自己診断を行う周波数を２以上記憶していることを特徴とする請求項１乃至３のいずれか１項に記載の半導体装置。
【請求項５】
自己診断の対象となるターゲット回路の動作スピード限界に対応するクロック周波数を設定し、
前記動作スピード限界に対応するクロック周波数のクロック信号を用いて、前記ターゲット回路を診断する半導体装置の診断方法。
【請求項６】
前記ターゲット回路が、前記動作スピード限界に対応するクロック周波数よりも低いクロック周波数で、非診断時の通常動作を行うことを特徴とする請求項１に記載の半導体装置の診断方法。
【請求項７】
前記動作スピード限界に対応するクロック周波数の逓倍率を設定し、
クロックを生成するＰＬＬ回路に前記逓倍率を供給することで、前記ターゲット回路に動作限界スピードに対応する周波数のクロックを供給する請求項５、又は６に記載の半導体装置の診断方法。
【請求項８】
前記自己診断を行う自己診断を行う周波数を変えて診断を行うことを特徴とする請求項５乃至７のいずれか１項に記載の半導体装置の診断方法。
【請求項９】
前記半導体装置の出荷前において、前記動作限界スピードに対応するクロック周波数を測定し、
出荷後において前記動作限界スピードに対応するクロック周波数により診断を行って、前記半導体装置の出荷後の劣化を検知する請求項５乃至８のいずれか１項に記載の半導体装置の診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、及びその診断方法に関し、特に詳しくは自己診断を行う半導体装置、及びその診断方法に関する。
【背景技術】
【０００２】
近年、自己診断機能付きのマイクロコンピュータ（以下、マイコン）が利用されている。このような、マイコンでは、機能ブロックの自己診断が行われている。例えば、半導体装置の電源投入時に自己診断を行う。これにより、マイコンの故障を検知することができる。
【０００３】
特許文献１には、ＢＩＳＴ（Ｂｕｉｌｔ  Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）回路を用いて自己診断を行う方法が開示されている。具体的には、特許文献１の自己診断方法ではＢＩＳＴコントローラが各機能ブロックを診断するための診断条件を送信している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−６８８６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された自己診断方法では、以下に示す問題がある。特許文献１の自己診断方法では、所定の動作周波数で自己診断を実施している。このため、出荷時より劣化が進んだデバイスでも、動作マージンがある製品の場合、正常に動作していると判別してしまう。すなわち、動作マージン内に収まる程度しか劣化がない場合、正常に動作していると判別してしまう。よって、特許文献１の診断方法では、適切に診断を行うことが困難であるという問題がある。
【課題を解決するための手段】
【０００６】
本発明の一態様による半導体装置は、自己診断の対象となるターゲット回路と、前記ターゲット回路に対して自己診断用のクロックを出力するクロック回路と、前記ターゲット回路の動作スピード限界に対応するクロック周波数を記憶する記憶部と、前記記憶部に記憶された前記クロック周波数に基づいて、自己診断時に前記クロック回路から出力されるクロックの周波数を設定する制御部と、を備えるものである。このような構成によれば、動作スピード限界に対応するクロック周波数での診断が可能となるため、適切に診断を行うことができる。
【０００７】
本発明の一態様による半導体装置の診断方法は、自己診断の対象となるターゲット回路の動作スピード限界に対応するクロック周波数を設定し、前記動作スピード限界に対応するクロック周波数のクロックを用いて、前記ターゲット回路を診断するものである。これにより、動作スピード限界に対応するクロック周波数での診断が可能となるため、適切に診断を行うことができる。
【発明の効果】
【０００８】
本発明によれば、適切に診断を行うことができる半導体装置、及びその診断方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１にかかる半導体装置の構成を示す図である。
【図２】本発明の実施形態１にかかる半導体装置の診断方法において、出荷時の設定方法を示すフローチャートである。
【図３】本発明の実施形態１にかかる半導体装置の診断方法を示すフローチャートである。
【図４】レジスタの回路動作を説明するための図である。
【図５】本発明の実施形態２にかかる半導体装置の構成を示す図である。
【図６】本発明の実施形態２にかかる半導体装置の診断方法を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。ただし、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００１１】
実施の形態１．
図１を用いて、本発明の実施形態１にかかる半導体装置に付いて説明する。図１は、実施の形態１にかかる半導体装置であるマイコンの回路構成を示す図である。図１に示すマイコン１０は、自己診断機能を有している。すなわち、マイコン１０は、自己診断機能を有する半導体チップによって実現されている。例えば、マイコン１０は、電源が投入された時に、自己診断を実行して、故障しているか否かを判定する。このように、マイコン１０は、自己診断機能付きのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）として構成されている。マイコン１０は、ＢＩＳＴ回路であってもよい。
【００１２】
マイコン１０は、ＣＰＵ１１と、汎用レジスタ１２と、フラッシュメモリ１３と、制御回路１４と、通常動作用レジスタ１５と、診断用レジスタ１６と、セレクタ１７と、ＰＬＬ回路１８と、テストターゲット回路１９とを備えている。
【００１３】
テストターゲット回路１９は、自己診断の対象となる機能ブロックである。例えば、マイコン１０の立ち上げ時には、テストターゲット回路１９に自己診断が実施される。テストターゲット回路１９の自己診断後、通常動作が実行される。すなわち、自己診断が行われない非診断時には、テストターゲット回路１９が所定の機能を奏するよう設計されている。なお、図１では、マイコン１０に１つのテストターゲット回路１９が内蔵されているが、機能ブロックであるテストターゲット回路１９は２以上あってもよい。すなわち、マイコン１０には、２以上の機能ブロックが内蔵されていてもよい。そして、それぞれの機能ブロックを別個のテストターゲット回路１９として、それぞれ診断を行ってもよい。
【００１４】
自己診断を行う場合、例えば、テストターゲット回路１９に診断用データを入力する。その入力に対する実際の出力値と、その入力に対する期待値とを比較する。すなわち、その入力に対して、正常な状態で出力される値を期待値とする。そして、その期待値が実際の出力と異なっていないかを判定することで、診断が行われる。実際の出力が期待値と一致する場合、テストターゲット回路１９が正常に機能していると判定し、異なっている場合、テストターゲット回路１９が異常になっていると判定する。
【００１５】
ＰＬＬ回路１８は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）動作を行って、テストターゲット回路１９にクロックを供給する。すなわち、ＰＬＬ回路１８には、基準周波数となる信号が入力されており、ＰＬＬ回路１８は、その基準周波数の信号と同期したクロック信号を出力する。このように、ＰＬＬ回路１８は、クロックを生成するクロック回路となる。
【００１６】
ＰＬＬ回路１８から供給されるクロック信号によって、テストターゲット回路１９は、動作する。自己診断時には、ＰＬＬ回路１８から供給されるクロックによって、診断が行われる。これにより、テストターゲット回路１９が劣化していないか否かが判定される。非診断時には、ＰＬＬ回路１８から供給されるクロック信号によって、通常動作が行われる。これにより、機能ブロックであるテストターゲット回路１９が設計された機能を奏する。よって、通常動作が実行される。ＰＬＬ回路１８は、逓倍率設定端子を有している。この逓倍率設定端子に入力される信号に応じて、基準周波数に対する逓倍率が設定される。本実施の形態では、診断時と通常動作時(非診断時)とで、逓倍率が変化している。すなわち、ＰＬＬ回路１８は、逓倍率設定端子に入力される信号に基づいて、異なるクロック周波数を出力することができる。このように、ＰＬＬ回路１８は、用途に応じた周波数のクロックを生成して、テストターゲット回路１９に出力する。
【００１７】
ＣＰＵ１１は、メモリや機能ブロック等を制御して、マイコン１０の動作を実行するための演算処理を行う。これにより、マイコン１０が所定の動作を行う。例えば、ＣＰＵ１１は、フラッシュメモリ１３等に記憶されているプログラムを実行するための演算処理を行う。そして、ＣＰＵ１１は、機能ブロックであるテストターゲット回路１９等に演算結果を出力する。通常動作時には、機能ブロックが所定の処理を行う。
【００１８】
汎用レジスタ１２は、通常の動作周波数等を記憶している。通常動作時（非診断時）におけるクロック周波数に応じた値が汎用レジスタ１２に格納されている。具体的には、通常動作用のクロック周波数に対応する逓倍率が汎用レジスタ１２に記憶されている。ここで、通常動作時（非診断時）のクロック周波数を通常動作用クロック周波数とする。汎用レジスタ１２は、通常動作用クロック周波数と基準周波数に応じた逓倍率を記憶する。また、通常動作時のクロック周波数に対応する逓倍率を通常動作用逓倍率とする。この汎用レジスタ１２に記憶されている通常動作用逓倍率は、テストターゲット回路１９におけるクロック周波数の設定のみでなく、他の機能ブロックのクロック周波数の設定にも用いられてもよい。汎用レジスタ１２に格納された通常動作用クロック周波数は、通常動作用レジスタ１５に記憶される。なお、汎用レジスタ１２は、ＣＰＵ１１に内蔵されていてもよい。
【００１９】
フラッシュメモリ１３は、不揮発性メモリであり、マイコン１０が所定の動作を行うためのプログラムやデータを記憶している。フラッシュメモリ１３に格納されているプログラムやデータがＣＰＵ１１によって読み出される。さらに、フラッシュメモリ１３は、診断時のクロック周波数（診断用クロック周波数）を設定するための設定データを格納している。例えば、フラッシュメモリ１３には、診断用クロック周波数を記憶する領域が設定されている。フラッシュメモリ１３は、この設定データを出力するデータ出力端子を有している。そして、フラッシュメモリ１３に格納されている診断用クロック周波数は、診断用レジスタ１６に記憶される。具体的には、フラッシュメモリ１３には、診断用クロック周波数に対応する逓倍率を記憶する領域が設けられている。そしてフラッシュメモリ１３から、診断用レジスタ１６に逓倍率が出力される。診断用レジスタ１６は、診断用クロック周波数に対応する逓倍率（以下、診断用逓倍率とする）を記憶する。
【００２０】
セレクタ１７は、通常動作用レジスタ１５に記憶されている通常動作用クロック周波数と、診断用レジスタ１６に記憶されている診断用クロック周波数との中から、一方のクロック周波数を選択する。そして、セレクタ１７は、選択したクロック周波数をＰＬＬ回路１８に出力する。具体的には、セレクタ１７は、通常動作用レジスタ１５に格納されている通常動作用逓倍率と、診断用レジスタ１６に格納されている診断用逓倍率を選択して、ＰＬＬ回路１８の逓倍率設定端子に出力する。
【００２１】
制御回路１４は、セレクタ１７における選択動作を制御する。制御回路１４は、自己診断を行うための自己診断モード信号を出力する。制御回路１４から出力される自己診断モード信号によって、セレクタ１７は、適切な逓倍率を選択して、ＰＬＬ回路１８に出力する。すなわち、セレクタ１７は、自己診断モード信号に応じて、診断用逓倍率及び通常動作用逓倍率から、一方の逓倍率を選択して、ＰＬＬ回路１８の逓倍率設定端子に出力する。このように、自己診断モード信号に基づいて、自己診断を行う自己診断モードか、通常動作を行う通常動作モードかが選択される。
【００２２】
さらに制御回路１４は、診断用逓倍率を設定するため制御を行う。この制御は、例えば、ＩＣチップ毎に実行される。具体的には、各チップの出荷時に、チップ毎に好適な診断用逓倍率を測定する。チップ毎に動作スピード限界のクロック周波数を検出し、そのクロック周波数で自己診断を行うことで、より適切に診断することができる。
【００２３】
また、診断用逓倍率と通常動作用逓倍率が異なる値となっている。具体的には、診断用逓倍率を通常動作用逓倍率よりも高くする。これにより、マイコン１０が故障する前であっても、劣化状態にあることを検知することができるようになる。すなわち、診断用逓倍率が高い値となっているため、マイコン１０の通常動作のクロック周波数に動作マージンがある場合であっても、故障する前に異常が検知される。換言すると、通常動作モードの動作スピードで動作異常が発生する前に、劣化を検知できるようになる。
【００２４】
次に、図２を参照して、本実施形態にかかる診断方法について説明する。図２は、診断方法において、逓倍率を設定するための処理を示すフローチャートである。図２で示す処理は、例えば、チップ出荷時にチップ毎に実施される。これにより、チップ毎に最適な逓倍率を設定することができる。すなわち、図２に示す処理は、チップ毎に、動作スピード限界に対応するクロック周波数を設定するための処理である。この動作限界に対応するクロック周波数が、診断用クロック周波数となる。
【００２５】
まず、汎用レジスタ１２に０を入力する（ステップＳ１０1）。そして、汎用レジスタ１２の値を、通常動作用レジスタ１５に入力する（ステップＳ１０２）。これにより、通常動作用レジスタ１５にも０が入力される。この値は、逓倍率が１、すなわち、基準周波数に対応するものである。そして、自己診断を行う（ステップＳ１０３）。ここでは、ＰＬＬ回路１８から基準周波数がテストターゲット回路１９に入力される。テストターゲット回路１９は、基準周波数で診断を実行する。診断用のデータをテストターゲット回路１９に入力する。そして、診断用データに対する出力と、期待値を比較する。このとき、テストターゲット回路１９は基準周波数で、診断動作を実行している。
【００２６】
そして、自己診断の結果に基づいて、テストターゲット回路１９が正常に動作しているか否かを判定する（ステップＳ１０４）。すなわち、診断用データの入力に対する出力値と期待値を比較する。出力値が期待値と一致すれば、すなわち、出力が設計通りであるならば、テストターゲット回路１９がそのクロック周波数で正常に動作しているとＰＡＳＳ判定する。出力値が期待値と一致していなければ、すなわち、出力が設計通りと異なるならば、テストターゲット回路１９がそのクロック周波数で正常に動作していないとＦＡＩＬ判定する。
【００２７】
ＰＡＳＳ判定となった場合、汎用レジスタ１２の値をインクリメントする(ステップＳ１０５)。これにより、汎用レジスタ１２の値が１増加する。そして、ステップＳ１０２に戻って、同様の処理（ステップＳ１０３、ステップＳ１０４）を行う。すなわち、クロック周波数の逓倍率を高くして、診断処理を行う。これにより、ＰＡＳＳ判定となったクロック周波数よりも高い周波数で、テストターゲット回路１９の自己診断が行われる。そして、ＦＡＩＬ判定となるまで、汎用レジスタ１２の値をインクリメントする。すなわち、テストターゲット回路１９が正常に動作しなくなるまで、逓倍率を徐々に高くしていく。
【００２８】
ＦＡＩＬ判定となったら、汎用レジスタ１２の値を１減少する（ステップＳ１０６）。そして、その値をフラッシュメモリ１３に書き込む（ステップＳ１０７）。これにより、フラッシュメモリ１３には、ＰＡＳＳ判定となった最大の逓倍率が書き込まれる。この最大の逓倍率が動作スピード限界のクロック周波数に対応する逓倍率となる。すなわち、フラッシュメモリ１３には、診断用クロック周波数に対応する逓倍率が格納される。診断用クロック周波数が決定したら、出荷可能となる。このようにすることで、チップ毎に動作スピード限界の逓倍率を測定することができる。
【００２９】
次に、図３を用いて、出荷後の診断動作を説明する。図３は、診断処理を示すフローチャートである。まず、マイコン１０の立ち上げ時などで、自己診断機能を起動する（ステップＳ２０１）。すると、制御回路１４がフラッシュメモリ１３に記憶された診断用逓倍率を読み出し（ステップＳ２０２）、その値を診断用レジスタ１６に設定する（ステップＳ２０３）。これにより、診断用レジスタ１６には、出荷時のフローで設定された動作スピード限界のクロック周波数に対応する逓倍率が格納される。そして、自己診断をスタートする（ステップＳ２０４）。ここでは、ＰＬＬ回路１８から診断用クロック周波数がテストターゲット回路１９に出力される。すなわち、図１で示したように、制御回路１４からの自己診断モード信号によって、セレクタ１７が診断用逓倍率を選択する。これにより、診断用逓倍率がＰＬＬ回路１８の逓倍率設定端子に入力され、ＰＬＬ回路１８が診断用クロック周波数のクロック信号をテストターゲット回路１９に出力する。
【００３０】
自己診断が終了したら（ステップＳ２０５）、その結果に基づいてＰＡＳＳ／ＦＡＩＬ判定を行う（ステップＳ２０６）。自己診断の結果、ＰＡＳＳ判定となれば、正常に動作している。また、自己診断の結果、ＦＡＩＬ判定となれば、劣化状態にあると判定される。すなわち、出荷時にはＰＡＳＳ判定であったクロック周波数でも、使用により劣化が進むことで、ＦＡＩＬ判定となる。このような、劣化状態を故障前に検知することができる。すなわち、通常動作のクロック周波数で動作しなくなる前に、劣化しているか否かを判定することができる。これにより、故障前の劣化を検知することができ、テストターゲット回路１９を適切に診断することができる。
【００３１】
次に、診断用レジスタ１６の書き込みタイミングについて、図４を用いて説明する。図４は、診断用レジスタ１６の書き込み動作を説明するための回路図及びタイミングチャートである。図４の上側には回路図が示され、下側にはタイミングチャートが示されている。また、図４では、診断用レジスタ１６が８ビットの例を示している。制御回路１４からの書き込みイネーブル信号ＷＲ＿ｅｎａｂｌｅに応じて、フラッシュメモリ１３のデータ出力端子から出力されている入力データＤＩＮが診断用レジスタ１６に書き込まれる。すなわち、書き込みイネーブル信号ＷＲ＿ｅｎａｂｌｅがＨのタイミングにおいて出力されている入力データＤＩＮの値が、診断用レジスタ１６に書き込まれる。そして、診断用レジスタ１６に書き込まれたデータが出力データＤＯＵＴとして、セレクタ１７に出力される。なお、通常動作用レジスタ１５についても書き込み処理は、診断用レジスタ１６と同様であるため説明を省略する。なお、通常動作レジスタ１５では、ＣＰＵ１１又は汎用レジスタ１２から書き込みイネーブル信号ＷＲ＿ｅｎａｂｌｅと入力データＤＩＮが入力される。
【００３２】
このように、チップに内蔵された制御回路１４が、自己診断を行う前に、内蔵されているフラッシュメモリ１３の逓倍率を読み出して、診断用レジスタ１６に格納している。そして、自己診断モード起動時に、診断用レジスタ１６に格納された逓倍率のデータを選択して、ＰＬＬ回路１８の逓倍率設定端子に供給する。この逓倍率のクロック周波数で自己診断が実行される。製品を長時間使用していると発生する劣化性の故障を、システム動作が確保されている段階で、事前に検出することができる。これにより、システムを安全な状態に保つことが可能となる。また、故障に起因する電流増加等についても検出度の向上を図ることができる。すなわち、故障によって素子が破壊され前に、劣化状態であることを検知することができるため、故障に起因する短絡等を防ぐことができる。
実施の形態２．
【００３３】
実施の形態２にかかる半導体装置について、図５を用いて説明する。図５は、本実施の形態にかかる半導体装置であるマイコン１０の構成を示すブロック図である。なお、図５に示すマイコン１０では、実施の形態１にかかるマイコン１０と基本的な構成は同じである。このため、本実施形態では、実施形態１と共通の部分について、適宜説明を省略する。
【００３４】
本実施の形態では、実施の形態１のマイコン１０の構成に加えて、セレクタ２０及びＯＲ回路２１が設けられている。さらに、制御回路１４からは２つの自己診断モード信号が出力されている。ここで、２つの自己診断モード信号を自己診断モード信号１、自己診断モード信号２とする。なお、これら以外の構成については、実施の形態１と同様であるため、説明を省略する。
【００３５】
自己診断モード信号１は、実施の形態１と同様に、動作スピード限界周波数での自己診断テストを行うために使用される。このモードを自己診断モード１とする。一方、自己診断モード信号２は、通常動作用周波数での自己診断テストを行うために使用される。このモードを自己診断モード２とする。例えば、動作スピード限界周波数での自己診断テストを行う場合、自己診断モード信号１がＨとなり、自己診断モード信号２がＬとなる。一方、通常動作用周波数での自己診断テストを行う場合、自己診断モード信号１がＬとなり、自己診断モード信号２がＨとなる。自己診断を行わない非診断時、すなわち通常動作時は、自己診断モード信号１及び自己診断モード信号２の両方がＬとなる
【００３６】
上記のように、自己診断を行う場合、制御回路１４から自己診断モード信号１、又は自己診断モード信号２が出力される。制御回路１４からの自己診断モード信号１は、セレクタ２０に入力される。また、セレクタ２０には、通常動作用レジスタ１５及び診断用レジスタ１６からの逓倍率がそれぞれ入力されている。セレクタ２０は、例えば、自己診断モード信号１がＨのとき、診断用レジスタ１６からの動作スピード限界周波数に対応する逓倍率を出力し、自己診断モード信号１がＬのとき、通常動作用レジスタ１５からの通常動作用周波数に対応する逓倍率を出力する。セレクタ２０からの逓倍率は、セレクタ１７に入力される。
【００３７】
また、制御回路１４からの自己診断モード信号１、及び自己診断モード信号２は、ＯＲ回路２１に入力される。自己診断モード信号１及び自己診断モード信号２の少なくとも一方がＨのとき、ＯＲ回路２１は、セレクタ１７にＨの信号を出力する。自己診断モード信号１及び自己診断モード信号２の両方がＬのとき、ＯＲ回路２１は、セレクタ１７にＬの信号を出力する。セレクタ１７には、セレクタ２０からの逓倍率と、通常動作用レジスタ１５からの逓倍率が入力されている。ＯＲ回路２１からの信号がＨのとき、セレクタ１７はセレクタ２０からの逓倍率をＰＬＬ回路１８に出力する。従って、診断に用いられる逓倍率でＰＬＬ回路１８が動作する。すなわち、クロックが動作限界スピード周波数、又は通常動作用周波数のいずれかになって、適切に自己診断が実施される。ＯＲ回路２１からの信号がＬのとき、セレクタ１７は通常動作用レジスタ１５からの逓倍率をＰＬＬ回路１８に出力する。すなわち、クロックが通常動作用周波数になる。
【００３８】
次に、本実施形態にかかる自己診断方法について、図６を用いて説明する。図６は診断方法の手順を示すフローチャートである。なお、実施の形態１と同様の内容については、適宜説明を省略する。また、出荷時に行われる動作限界スピード周波数の設定についても、実施の形態１で示した図２のフローと同様である。
【００３９】
まず、動作限界スピード周波数での診断を行うため、自己診断モード信号１を用いて、自己診断モード１を起動する（ステップＳ３０１）と、フラッシュメモリ１３から逓倍率を読み出す（ステップＳ３０２）。そして、制御回路１４がその逓倍率を診断用レジスタ１６に設定する（ステップＳ３０３）。この状態で自己診断をスタートする（ステップＳ３０４）。従って、動作限界スピード周波数で自己診断が行われる。そして、自己診断が終了する（ステップＳ３０５）と、ＰＡＳＳ／ＦＡＩＬ判定を行う（ステップＳ３０６）。すなわち、診断データに対する期待値と出力値を比較する。期待値と出力値が一致する場合、診断をＰＡＳＳして、正常であると判定される。この場合、動作限界スピードでも問題なく動作しているため、出荷時からほとんど劣化していない。よって、正常に動作していると判定される。
【００４０】
一方、ＦＡＩＬ判定となった場合、通常動作用周波数での診断を行うため、自己診断モード信号２を用いて、自己診断モード２を起動する（ステップＳ３０７）。すると、通常動作用レジスタ１５を初期化する。これにより、汎用レジスタ１２から通常動作用レジスタ１５に通常動作用周波数が書き込まれる。この状態で自己診断をスタートする（ステップＳ３０９）。従って、通常動作用周波数で自己診断が行われる。そして、自己診断が終了する（ステップＳ３１０）と、ＰＡＳＳ／ＦＡＩＬ判定を行う（ステップＳ３１１）。すなわち、診断データに対する期待値と出力値を比較する。期待値と出力値が一致する場合、診断をＰＡＳＳする。この場合、テストターゲット回路１９が劣化状態にあると判定される。すなわち、動作限界スピードでは正常に動作できないが、通常動作スピードでは正常に動作する。このため、出荷時から劣化が進んでいるが、動作マージン内に収まる程度であるため、劣化状態と判定される。一方、期待値と出力値が一致しない場合、ＦＡＩＬ診断となる。この場合、テストターゲット回路１９が故障していると判定される。すなわち、通常動作用周波数での動作すら正常に行われないため、テストターゲット回路１９が故障していると判定される。
【００４１】
このように、自己診断を行うことで、故障前に、劣化状態を検知することができるようになる。よって、劣化した機能ブロックに適切な処置を取ることができる。すなわち、故障する前の劣化状態で適切に処理することで、信頼性を向上することができる。
【００４２】
本実施形態では２つのクロック周波数で、診断を行ったが、３つ以上のクロック周波数で診断できるようにしてもよい。例えば、動作スピード限界周波数と、通常動作用周波数と、その間の周波数とで診断できるようにしてもよい。具体的には、３つの逓倍率を用意して、自己診断モード信号１〜３によって、それらのうちの１つを選択するようにする。こうすることで、正常動作可能な周波数を段階的に判別することが可能になり、劣化の進行度合いを検知することができる。
【００４３】
その他の実施の形態
実施の形態１、２では、各レジスタに、クロック周波数に対応する逓倍率を記憶したが、もちろん、クロック周波数の値を直接記憶するようにしてもよい。さらには、各レジスタが、クロック周波数に応じた値を記憶するようにしてもよい。すなわち、動作スピード限界に対応する診断用クロック周波数を記憶するために、逓倍率以外の値をフラッシュメモリ１３に記憶させてもよい。また、レジスタ以外の記憶部に周波数、あるいは逓倍率を記憶するようにしてもよい。なお、汎用レジスタ１２と通常動作用レジスタ１５を別々のレジスタとしたが、同じレジスタとしてもよい。
【００４４】
出荷前に動作限界スピードに対応する周波数を測定する。そして、チップ毎に測定された周波数をチップに内蔵されたフラッシュメモリ１３に格納する。こうすることで、デバイス間に個体差がある場合でも、適切に診断することができる。すなわち、チップ毎の適切な診断が可能になる。
【符号の説明】
【００４５】
１０  マイコン
１１  ＣＰＵ
１２  汎用レジスタ
１３  フラッシュメモリ
１４  制御回路
１５  通常動作用レジスタ
１６  診断用レジスタ
１７  セレクタ
１８  ＰＬＬ回路
１９  テストターゲット回路
２０  セレクタ
２１  ＯＲ回路
３１  自己診断モード信号
３２  第１自己診断モード信号
３３  第２自己診断モード信号
ＷＲ＿ｅｎａｂｌｅ  書き込みイネーブル信号
ＤＩＮ  入力データ
ＤＯＵＴ  出力データ
【図１】
2011163842.tif 000003
【図２】
2011163842.tif 000004
【図３】
2011163842.tif 000005
【図４】
2011163842.tif 000006
【図５】
2011163842.tif 000007
【図６】
2011163842.tif 000008