(57)【特許請求の範囲】
【請求項１】
自己診断制御回路と、
スキャン対象回路と、
電気的に書き換え可能な不揮発性メモリと、
を備え、
前記スキャン対象回路は、
組合せ回路と、
スキャン用フリップフロップと、
を備え、
前記スキャン用フリップフロップを複数段接続してスキャンチェーンを構成するようにされ、
前記自己診断制御回路は、前記不揮発性メモリに格納されるパラメータに従って、前記スキャンチェーンにテストデータを入力するスキャンインの期間、前記スキャンチェーンからテスト結果を出力するスキャンアウトの期間および前記組合せ回路のテスト結果を前記スキャンチェーンに取り込むキャプチャの期間の長さの少なくとも１つが変更可能とされ、かつスキャン動作開始時期を変更可能とされる半導体装置。
【請求項２】
請求項１の半導体装置において、さらに
スキャンチェーン制御回路を備え、
前記スキャン対象回路は、複数のスキャン用フリップフロップの出力を切り替えるセレクタを備え、
前記スキャンチェーン制御回路は、前記不揮発性メモリに格納されるパラメータに従って、前記セレクタを制御することにより、スキャンチェーン構成を変更可能とされる半導体装置。
【請求項３】
請求項２の半導体装置において、
前記スキャン対象回路は並列に動作する複数のスキャンチェーンを含む半導体装置。
【請求項４】
請求項２の半導体装置において、
前記スキャンチェーンのスキャン用フリップフロップの接続段数を変更可能とされる半導体装置。
【請求項５】
請求項１の半導体装置において、さらに、
クロック制御回路を備え、
前記クロック制御回路は、前記不揮発性メモリに格納されるパラメータに従って、前記スキャンチェーンのシフトクロックの周波数を変更可能とされる半導体装置。
【請求項６】
請求項１の半導体装置において、
クロック制御回路を備え、
前記クロック制御回路は、前記不揮発性メモリに格納されるパラメータに従って、前記組合せ回路のテスト結果を前記スキャンチェーンに取り込むキャプチャクロックのＬｏｗ期間を変更可能とされる半導体装置。
【請求項７】
請求項１の半導体装置において、
テストデータを生成するパターン生成回路と、
スキャンテスト結果を圧縮する圧縮回路と、
圧縮結果を格納する比較結果状態回路と、
を備え、
スキャンテストの期待値を不揮発性メモリに格納する半導体装置。
【請求項８】
請求項７の半導体装置において、
前記スキャン対象回路はＣＰＵを備え、
前記ＣＰＵが前記不揮発性メモリに格納されるスキャン期待値を前記回路に書き込むことにより、前記回路はスキャンテスト結果と前記スキャン期待値とを比較する半導体装置。
【請求項９】
請求項１の半導体装置において、さらに、
メモリを含むスキャン非対象回路と、
前記メモリを自己診断するメモリ自己診断回路と、
を備え、
前記スキャン対象回路は前記メモリ自己診断回路を含む半導体装置。
【請求項１０】
請求項９の半導体装置において、
前記メモリ自己診断回路は、
メモリ自己診断制御回路と、
メモリパターン生成回路と、
メモリ自己診断結果チェック回路と、
を備える半導体装置。
【請求項１１】
請求項１の半導体装置において、
前記スキャン用フリップフロップはマルチプレクサとフリップフロップとを備え、
前記マルチプレクサは組合せ回路の出力とスキャン用フリップフロップの出力とを切り替えて前記フリップフロップに入力するようにされる半導体装置。
【請求項１２】
第１の半導体装置と、
第２の半導体装置と、
電源回路と、
受動素子と、
を備え、
前記第１および第２の半導体装置は、それぞれ、
自己診断制御回路と、
スキャン対象回路と、
電気的に書き換え可能な不揮発性メモリと、
を備え、
前記スキャン対象回路は、
スキャン用フリップフロップと、
複数のスキャン用フリップフロップの出力を切り替えるセレクタと、
を備え、
前記スキャン用フリップフロップを複数段接続してスキャンチェーンを構成するようにされ、
前記不揮発性メモリに格納されるデータに従って自己診断制御回路がセレクタを制御することにより、前記第１および第２の半導体装置のスキャンチェーン構成を同じにし、かつスキャン動作開始時期を異なるようにされる電子装置。
【請求項１３】
請求項１２の電子装置において、
前記第１および第２の半導体装置は、それぞれ、
電源電圧監視用Ａ／Ｄ変換回路と、
通信用回路と、
を備え、
前記電源電圧監視用Ａ／Ｄ変換回路はスキャンテスト中の電源電圧を監視し、
前記第２の半導体装置は、電源電圧の変動を前記第１の半導体装置へ前記通信用回路で転送し、
前記第１の半導体装置にて電源電圧の変動が閾値を超えていると判断する場合は、スキャンチェーンの構成を変更するように前記データを再計算し、前記第２の半導体装置へ前記再計算したデータを連絡する電子装置。
【請求項１４】
請求項１３の電子装置において、
前記第１の半導体装置は前記受動素子に流れる電流に基づいて前記データの再計算を行う電子装置。
【請求項１５】
自己診断制御回路とスキャン対象回路と電気的に書き換え可能な不揮発性メモリとを備える半導体装置の自己診断方法であって、
（ａ）リセット解除後、前記自己診断制御回路が前記不揮発性メモリからパラメータを読出して、前記スキャン対象回路のスキャンチェーン構成を設定するステップと、
（ｂ）所定時間経過後、前記スキャン対象回路のスキャンテストを実行するステップと、
（ｃ）スキャンテスト実行後、前記不揮発性メモリに格納してある期待値とスキャンテストの結果を比較するステップと、
を有する半導体装置の自己診断方法。
【請求項１６】
請求項１５の半導体装置の自己診断方法において、
前記スキャンチェーン構成の設定によってはスキャン用フリップフロップの接続段数が決定される半導体装置の自己診断方法。
【請求項１７】
請求項１５の半導体装置の自己診断方法において、
前記半導体装置はさらにメモリを備え、
前記スキャン対象回路はさらに前記メモリの自己診断制御回路を備え、
前記（ｂ）ステップ後、前記メモリの自己診断を実施するステップを有する半導体装置の自己診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は半導体装置に関し、例えば自己診断機能を備える半導体装置に適用可能である。
【背景技術】
【０００２】
近年、車載電子機器等の機能安全規格として、国際標準化機構のＩＳＯ２６２６２が注目を集めている。機能安全とは、車載電子機器の構成要素であるマイクロコントローラ等に故障が発生したとしても、機能的な工夫を施すことによって最低限の許容可能な安全を確保することである。ＩＳＯ２６２６２では、高い故障検出率が要求されるため、車載用マイクロコントローラでは、ＢＩＳＴ（Build In Self Test）を行うためのスキャン回路が実装される。そしてＢＩＳＴの実行は、マイクロコントローラに電源が投入されてからマイクロコントローラの実動作（エンジン制御、ブレーキ制御等の各種車載制御）が始まるまでに行われるのが一般的である。車載用マイクロコントローラでのＢＩＳＴは、所定時間内で高い故障検出率を得る必要があるため、ＢＩＳＴ実行中の消費電流の変動率が高くなる。一般に、回路の消費電流の変動率が高くなると、電源ラインに共振ノイズが発生することが知られている。特開２００９−１８８８８１号公報（特許文献１）には、電源共振ノイズを低減する方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１８８８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明者は、論理回路に対するＢＩＳＴ（ロジックＢＩＳＴ）実行時のスキャン動作、特に、スキャンのシフト動作とキャプチャ動作に起因する電源ノイズを知見した。
シフト動作とは、スキャンチェーンを構成しているスキャン用フリップフロップに対し、データをスキャンインからスキャンアウトまでシフトさせる動作である。キャプチャ動作とは、スキャン用フリップフロップにテストデータをセットした後、回路を通常動作させ、その結果をスキャン用フリップフロップに取り込ませる動作である。
特許文献１には、電源ノイズを観測し、電源ノイズが低減するように回路のクロック周波数を調整する方法が記載されているが、スキャン動作は通常動作とは異なる動作となるため、特許文献１に記載の技術で、ＢＩＳＴを動作時のノイズを低減することは困難である。
本開示の課題と新規な特長は、本明細書の記述および添付図面か明らかになるであろう。
【課題を解決するための手段】
【０００５】
本開示のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
すなわち、半導体装置は、スキャンイン期間、スキャンアウト期間およびキャプチャ期間の長さの少なくとも１つが変更可能とされ、かつスキャン動作開始時期を変更可能とされる。
【発明の効果】
【０００６】
上記半導体装置によれば、スキャンテスト時の消費電流の変動率を低減することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】マルチプレクス方式のスキャン用フリップフロップの構成を説明するための図である。
【図２】スキャンテストの構成を説明するための図である。
【図３】スキャンテストのタイミングを説明するための図である。
【図４】実施形態に係る半導体装置を説明するためのタイミング図である。
【図５】実施形態に係る半導体装置の効果を説明するためのタイミング図である。
【図６】実施例に係るマイクロコントローラの構成を説明するためのブロック図である。
【図７】実施例に係るマイクロコントローラの動作を説明するためのブロック図である。
【図８】実施例に係るマイクロコントローラの動作を説明するためのブロック図である。
【図９】実施例に係るマイクロコントローラのスキャンテスト対象ブロックの内部構成を説明するためのブロック図である。
【図１０】実施例に係るマイクロコントローラのスキャンチェーン構成を説明するためのブロック図である。
【図１１】変形例に係るマイクロコントローラのスキャンチェーン構成を説明するためのブロック図である。
【図１２】応用例１に係る電子装置を説明するためのブロック図である。
【図１３】応用例２に係る電子装置の構成を説明するためのブロック図である。
【図１４】応用例２に係る電子装置の第１動作を説明するためのブロック図である。
【図１５】応用例２に係る電子装置の第１動作を説明するためのブロック図である。
【発明を実施するための形態】
【０００８】
以下、実施形態、実施例および応用例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【０００９】
まず、ロジックＢＩＳＴで行うスキャンテストについて図１から図３を用いて説明する。
図１はマルチプレクサ方式のスキャン用フリップフロップの構成を示す図である。図２はスキャンテストの構成を示す図である。図３はスキャンテストのタイミングを示す図である。
スキャンテストは、テストを容易にする設計手法であるＤＦＴ（Design for Testability）技術の一つで、ＡＮＤ回路、ＯＲ回路、インバータ、フリップフロップなどの論理回路を組み合わせて所定の論理機能を構成したランダムロジックを対象にする。図１に示すように、スキャンテストでは、回路内のフリップフロップ（ＦＦ）をスキャン用フリップフロップ（ＳＦＦ）に置き換える。マルチプレクサ方式のスキャン用フリップフロップは、マルチプレクサ（ＭＵＸ）と通常のフリップフロップ（ＦＦ）で構成される。スキャンイネーブル（ＳＥ）信号で通常動作とテストモード動作を切り替える。図２に示すように、テストモード時には回路内のスキャン用フリップフロップをシリアルに接続することでシフトレジスタを形成し、スキャンテスト対象ブロックの入出力端子からスキャン用フリップフロップを制御・観測できるような経路（スキャンチェーン（SCAN CHAIN））を設ける。
このような構成を採ると、スキャン用フリップフロップがスキャンテスト対象ブロックの入出力端子と等価と見なせるため、テストの対象は組み合わせ回路（ＣＬ）のみとなる。組み合わせ回路（ＣＬ）に対してのテストパターン生成技術はＡＴＰＧ（Automatic Test Pattern Generation）として確立しており、効率良くテストパターンを自動生成できることになる。
【００１０】
スキャンテストは、図３に示すように、スキャンイン（SCAN IN）→キャプチャ（CAPTURE）→スキャンアウト（SCAN OUT）という一連の動作を複数回繰り返して進められる。
まず、スキャンイネーブル信号でスキャンモードに設定し、スキャンイン端子（SCAN_IN）からスキャン用フリップフロップに対してテストパターンを設定する。次に、スキャンイネーブル信号で通常動作モードに設定し、スキャン用フリップフロップ間の組み合わせ回路を動作させる。そして、テストクロックを動作させて、組み合わせ回路の出力をスキャン用フリップフロップに取り込む。その次に、再びスキャンイネーブル信号でスキャンモードに設定し、スキャン用フリップフロップに取り込んだ値をスキャンアウト端子（SCAN_OUT）で観測する。
最初のスキャンインではスキャンモードになり、スキャンイン端子からスキャン用フリップフロップにテストパターンを送り込む。シリアルに入力するため、全スキャン用フリップフロップへの設定はスキャン用フリップフロップ数回のシフト動作（スキャン用フリップフロップ数クロック）が必要である。
次のキャプチャでは通常動作モードになり、スキャン用フリップフロップ間の組み合わせ回路を動作させる。そして、組み合わせ回路の出力をスキャン用フリップフロップ（ＳＦＦ）に取り込む。
３番目のスキャンアウトでは、再びスキャンモードになる。スキャン用フリップフロップに格納してある値をスキャンアウト端子で観測する。この観測した値を、あらかじめ求めてある期待値（故障がない場合の値）と比較し、故障の有無を判定する。なおスキャンアウトもシリアルな出力のため、全スキャン用フリップフロップからの値の読みだしにはスキャン用フリップフロップ数のシフト動作（スキャン用フリップフロップ数のクロック数）が必要となる。
【００１１】
スキャンインおよびスキャンアウトのシフト動作は消費電流が大きく、キャプチャは消費電流が小さい。また、複数のＢＩＳＴを並列に動作させた場合、スキャンインおよびスキャンアウトのシフト動作は消費電流がさらに大きくなる。この結果、スキャンインおよびスキャンアウトのシフト動作とキャプチャとの間の消費電流の変動率が大きくなると、電源ラインに共振ノイズが発生する可能性が高まる。
【００１２】
＜実施形態＞
次に、実施形態に係る半導体装置について図４および図５を用いて説明する。
図４は実施形態に係る半導体装置のスキャンテストのタイミングを説明するための図である。図５は実施形態に係る半導体装置の効果を説明するためのタイミング図である。
上述したように、スキャンテストはスキャンインのシフト動作とキャプチャとスキャンアウトのシフト動作を有する。
スキャンインを開始する遅れ期間（Tｓｉｓ）、スキャンイン期間（Ｔｓｉ）、キャプチャ期間（Ｔｃａ）、スキャンアウト期間（Ｔｓｏ）を可変とする。スキャンインを開始する遅れ期間（Tｓｉｓ）はスキャンテストを起動してからスキャンインを開始するまでの時間を可変にしてよいし、スキャンテストの起動時間を可変にしてもよい。スキャンシフト長（スキャンチェーン段数）をｎ、スキャンクロック周波数をｆｓ（スキャンクロック周期をＴｓ）とすると、
Ｔｓｉ＝Ｔｓｏ＝ｎ×１／ｆｓ＝ｎ×Ｔｓ
であるので、スキャンチェーン段数（ｎ）およびスキャンクロック周波数（ｆｓ）の少なくともいずれか１つを変えることにより、スキャンイン期間（Ｔｓｉ）およびスキャンアウト期間（Ｔｓｏ）を変えることができる。スキャンチェーンの構成を変えることによりスキャンチェーン段数（ｎ）を変えることができる。
キャプチャクロックは、スキャン用フリップフロップに取り込むため、１回Ｈｉｇｈ（ハイ）が出力されるので、キャプチャクロックがＨｉｇｈになる前のＬｏｗ（ロウ）の期間やＨｉｇｈになった後のＬｏｗの期間（次のスキャンクロックがＨｉｇｈになる前のＬｏｗの期間）を変えることによりキャプチャ期間（Ｔｃａ）を変えることができる。
【００１３】
実施形態に係る半導体装置はＢＩＳＴを行うためのスキャン回路を備え、スキャンインの期間、スキャンアウトの期間およびキャプチャの期間の長さの少なくとも１つが変更可能とされ、かつスキャン動作開始時期を変更可能とされる。
例えば、図５に示すように、２つのＢＩＳＴが並列に動作する場合、１つ目のＢＩＳＴのスキャンインを開始する時間（Ｔｓｉｓ１）と２つ目のＢＩＳＴのスキャンインを開始する時間（Ｔｓｉｓ２）を変えて設定することにより、消費電流の小さいキャプチャと消費電流の大きいシフト動作が並列して動作することが可能となる。これにより、消費電流の変動率が低減し、電源ラインの共振ノイズの発生を低減することが可能となる。ここで、２つのＢＩＳＴのスキャンイン期間（Ｔｓｉ）、キャプチャ期間（Ｔｃａ）、スキャンアウト期間（Ｔｓｏ）を合わせるのが好ましい。２つのＢＩＳＴが並列に動作する場合に限定されるものではなく、３つ以上のＢＩＳＴが並列に動作する場合にも適用できる。複数のＢＩＳＴは同一半導体装置内で行われてもよいし、異なる半導体装置で行われてもよい。
【実施例】
【００１４】
次に、実施例に係るマイクロコントローラの構成について図６を用いて説明する。
図６は実施例に係るマイクロコントローラの構成を示すブロック図である。
実施例に係るマイクロコントローラ１は、ロジック部の自己診断（ロジックＢＩＳＴ）機能とメモリ部の自己診断（メモリＢＩＳＴ）機能とを備え、ロジックＢＩＳＴ回路１０と、スキャン対象回路２０と、スキャン非対称回路３０とを一つの半導体基板に備える半導体装置である。
ロジックＢＩＳＴ回路１０は、ＢＩＳＴ制御回路（BIST CONTROL：ＢＣ）１１と、チェーン制御回路（CHAIN CONTROL）１２と、クロック制御回路（CLOCK CONTROL）１３と、リセット制御回路（RESET CONTROL）１４と、パターン生成回路（PATTERN GENERATOR：ＰＧ）１５と、を備える。ロジックＢＩＳＴ回路１０は、さらに、スキャン許可制御回路（SCAN ENABLE CONTROL：ＳＥＣ）１６と、圧縮回路（COMPRESS）１７と、比較結果状態回路（RESULT COMPARE STATUS：ＲＣＳ）１８と、電気的に書換可能な不揮発性メモリであるフラッシュメモリ１９と、を備える。
スキャン対象回路２０は、中央処理装置（ＣＰＵ）２１と、ダイレクト・メモリ・アクセス制御装置（ＤＭＡ）と、タイマ（ＴＩＭＥＲ）と、ＰＷＭ生成回路（ＰＷＭ）と、通信回路であるコントローラ・エリア・ネットワーク（Controller Area Network：ＣＡＮ）と、Ａ／Ｄ変換回路（ＡＤＣ）と、シリアル・ペリフェラル・インタフェース（ＳＰＩ）と、等のＭＣＵの各機能ブロックを備える。スキャン対象回路２０は、さらに、メモリＢＩＳＴ制御回路（MEMORY BIST CONTROL：ＭＢＣ）２２と、メモリパターン生成回路（MEMORY PATTERN GENERATOR：ＭＰＧ）２３と、メモリＢＩＳＴ結果チェック回路（MEMORY BIST RESULT CHECK：ＭＢＲＣ）２４と、等のメモリＢＩＳＴ回路を備える。これにより、メモリＢＩＳＴ回路のスキャンテストを行うことができる。
スキャン非対象回路３０は、メモリであるＳＲＡＭ３１とアナログ回路（ANALOG H/M）３２である。なお、ＣＰＵ２１が実行するプログラムやデータはフラッシュメモリ１９に格納される。プログラムや後述するパラメータは半導体装置の製造後にフラッシュメモリ１９に書き込まれる。
【００１５】
次に、マイクロコントローラ１のＢＩＳＴ動作について図７および図８を用いて説明する。
図７は実施例に係るマイクロコントローラのスキャンテスト前までのＢＩＳＴ動作を説明するためのブロック図である。図８は実施例に係るマイクロコントローラのスキャンテスト後のＢＩＳＴ動作を説明するためのブロック図である。
リセット解除後、ＢＩＳＴ制御回路１１がフラッシュメモリ１９からパラメータを読出して、チェーン制御回路１２、クロック制御回路１３、リセット制御回路１４、パターン生成回路１５、スキャン許可制御回路１６にパラメータを展開する。リセット解除後所定時間経過後スキャンテストを開始する。例えば、後述するスキャンクロックをスキャン対象回路２０に供給開始することによりスキャンテストを開始するようする。
チェーン制御回路１２は、ＢＩＳＴ制御回路１１から与えられるパラメータにより、スキャンテスト対象回路２０のスキャンチェーンの構成を設定するものである。詳細は後述する。
クロック制御回路１３は、ＢＩＳＴ制御回路１１から与えられるパラメータにより、スキャンテスト実行時のスキャンクロック、キャプチャクロックを制御するものである。スキャンクロックの供給開始時期の設定により、スキャン開始遅れ時間が変更可能となる。例えば、クロックスキャンをカウンタで計数し、所定のスキャンクロック数後に、スキャンクロックをスキャンチェーンに供給するようにする。また、スキャンクロックの周波数やキャプチャクロックのＬｏｗの期間が設定され、スキャンイン期間およびスキャンアウト期間、キャプチャ期間が変更可能となる。ＢＩＳＴは、スキャンイン、キャプチャ、スキャンアウトで構成されるスキャンテストが複数回繰り返されるが、ｎ番目のスキャンテストと（ｎ＋１）番目のスキャンテストの間の期間を設定することもできる。これらにより、複数の半導体装置のＢＩＳＴの並列動作の他に、時分割動作も可能となる。
リセット制御回路１４はスキャンチェーンを構成するフリップフロップのセットまたはリセットを制御するものであり、スキャンテスト中にフリップフロップが予期しない値にならないようにするものである。
パターン生成回路１５は、ＢＩＳＴ制御回路１１から与えられるパラメータにより、スキャンチェーン構成に合わせて、スキャンテスト用のパターンを生成する。圧縮回路１７はスキャンテスト結果を論理圧縮する。
【００１６】
スキャンテスト後、結果を圧縮回路１７で圧縮し、比較結果状態回路１８に格納する。メモリＢＩＳＴ制御回路２２の制御に基づいてＳＲＡＭ３１のメモリテストを実施し、結果を比較結果状態回路１８に格納する。ＣＰＵ２１が通常動作を開始し、フラッシュメモリ１９に格納されている期待値を比較結果状態回路１８に書込む。比較結果状態回路１８が期待値とテスト結果とを比較しその結果を保持する。ＣＰＵ２１が比較結果状態回路１８から比較結果を読み出して判定を行う。ＣＰＵ２１がＢＩＳＴの一部を実施することにより、比較結果回路１８のハードフェア規模の増大を抑えることができる。
【００１７】
次に、スキャンテスト対象ブロックの内部構成について図９および図１を用いて説明する。
図９は実施例に係るマイクロコントローラのスキャンテスト対象ブロックの内部構成を説明するためのブロック図である。
スキャンチェーンは横方向に構成されており、図面左側からテスト信号である第１から第３のスキャンイン信号（ＳＩＮ１，ＳＩＮ２，ＳＩＮ３）が入力され、図面右側に第１から第３のスキャンアウト信号（ＯＵＴ１，ＯＵＴ２，ＯＵＴ３）が出力される。図１に示すように、スキャン用フリップフロップ（ＳＦＦ）はフリップフロップ（ＦＦ）のデータ入力端子（Ｄ）にマルチプレクサ（ＭＵＸ）が接続されている。マルチプレクサ（ＭＵＸ）はスキャンイネーブル信号（ＳＥ）に基づいて組み合わせ回路の出力信号（ＩＮ＿ＣＬ）とスキャンチェーン前段のスキャン用フリップフロップの出力信号（ＳＣｎ−１）とを切り替えてフリップフロップ（ＦＦ）のデータ入力端子（Ｄ）に入力する。スキャン用フリップフロップ（ＳＦＦ）（フリップフロップ（ＦＦ））にはスキャンクロック信号（ＣＬＫ）が入力される。破線部分はテスト用回路以外の通常論理（組み合わせ回路）ＣＬＣ１〜ＣＬＣ４であり、スキャンチェーン順に関係なく接続されて存在する。各スキャン用フリップフロップ（ＳＦＦｎ）はスキャンチェーンで接続され、スキャンチェーンによる各スキャン用フリップフロップの値のセット（スキャンイン）、読み出し（スキャンアウト）により、組み合わせ回路のテストが行われる。さらに、本実施例のスキャンチェーンでは、その構成を変更可能とするためのセレクタＳＥＬ１〜ＳＥＬ６が配置される。ＢＩＳＴ制御回路１１から与えられるパラメータにより、セレクタＳＥＬ１〜ＳＥＬ６が設定され、スキャンチェーンの構成が決まる。
【００１８】
次に、スキャンチェーンの第１の構成例について図１０を用いて説明する。図１０は実施例に係るマイクロコントローラのスキャンチェーンの第１の構成例を示すブロック図である。
スキャンチェーンの第１の構成例では、ＢＩＳＴ制御回路１１与えられたパラメータが、各セレクタについて、以下の信号を選択するようになっている。
セレクタＳＥＬ１：第１のスキャンイン信号（ＳＩＮ１）
セレクタＳＥＬ２：第２のスキャンイン信号（ＳＩＮ２）
セレクタＳＥＬ３：第３のスキャンイン信号（ＳＩＮ３）
セレクタＳＥＬ４：第１００のスキャン用フリップフロップ（ＳＦＦ１００）の出力信号
セレクタＳＥＬ５：第１５０のスキャン用フリップフロップ（ＳＦＦ１５０）の出力信号
セレクタＳＥＬ６：第３００のスキャン用フリップフロップ（ＳＦＦ３００）の出力信号
この場合、スキャンチェーンの第１の構成例は、以下の３つのスキャンチェーン構成となる。
チェーンＣＨ１１：ＳＩＮ１，ＳＦＦ１，ＳＦＦ２，・・・，ＳＦＦ１００，ＯＵＴ１
チェーンＣＨ１２：ＳＩＮ２，ＳＦＦ１０１，・・・，ＳＦＦ２００，ＯＵＴ２
チェーンＣＨ１３：ＳＩＮ３，ＳＦＦ２０１，・・・，ＳＦＦ３００，ＯＵＴ３
チェーンＣＨ１１，ＣＨ１２，ＣＨ１３の段数はそれぞれ１００段となる。
【００１９】
次に、スキャンチェーンの第２の構成例について図１１を用いて説明する。図１１は実施例に係るマイクロコントローラのスキャンチェーンの第２の構成例を示すブロック図である。
スキャンチェーンの第２の構成例では、ＢＩＳＴ制御回路１１与えられたパラメータが、各セレクタについて、以下の信号を選択するようになっている。
セレクタＳＥＬ１：第１のスキャンイン信号（ＳＩＮ１）
セレクタＳＥＬ２：第３００のスキャン用フリップフロップ（ＳＦＦ３００）の出力信号
セレクタＳＥＬ３：第３のスキャンイン信号ＳＩＮ３
セレクタＳＥＬ４：第２００のスキャン用フリップフロップＳＦＦ２００の出力信号
セレクタＳＥＬ５：第１００のスキャン用フリップフロップＳＦＦ１００の出力信号
セレクタＳＥＬ６：第１５０のスキャン用フリップフロップＳＦＦ１５０の出力信号
この場合、スキャンチェーンの第２の構成例は、以下の２つのスキャンチェーン構成となる。
チェーンＣＨ２１：ＳＩＮ１，ＳＦＦ１，ＳＦＦ２，・・・，
ＳＦＦ１００，ＳＦＦ１５１，・・・，ＳＦＦ２００，ＯＵＴ１
チェーンＣＨ２２：ＳＩＮ３，ＳＦＦ２０１，・・・，
ＳＦＦ３００，ＳＦＦ１０１，・・・，ＳＦＦ１５０，ＯＵＴ３
チェーンＣＨ２１，ＣＨ２２の段数はそれぞれ１５０段となる。
【００２０】
実施例によれば、スキャンチェーンの構成を半導体装置の製造後に変更することが可能である。スキャンチェーンの構成、すなわちスキャンチェーンの段数が変更可能となることのより、スキャンイン期間およびスキャンアウト期間の長さを変更可能となる。また、キャプチャ期間の長さが半導体装置の製造後に変更可能である。これらにより、異なる半導体間でスキャンテスト期間を合わせることが可能となる。また、スキャン開始時期が半導体装置の製造後に変更可能である。これにより、異なる半導体間でスキャンテスト期間すなわち消費電流が大きいシフト動作と消費電流の小さいキャプチャとを並行して実施することが可能となり、消費電流の変動率の低減が可能となる。
【００２１】
＜応用例１＞
次にＢＩＳＴを内蔵したマイクロコントローラを用いた第１の応用例（応用例１）に係る電子装置について図１２を用いて説明する。図１２は応用例１に係る電子装置の構成を示すブロック図である。
応用例１に係る電子装置１０１は、第１の半導体装置であるマイクロコントローラ（ＭＣＵ）１Ａと、第２の半導体装置であるマイクロコントローラ（ＭＣＵ）１Ｂと、電源ＩＣ（ＰＯＷＥＲ）２と、受動素子（ＰＥ）３と、を１つまたは複数のプリント基板上に備える。電源ＩＣ２と、マイクロコントローラ１Ａ，１Ｂおよび受動素子３と、の間の電源線およびグラウンド線にはインダクタンスＬ１〜Ｌ７やキャパシタンスＣの成分を含む。電子装置１０１は、例えば自動車のエンジン制御、ブレーキ制御等の各種車載制御に用いられるＥＣＵ（Electronics Control Unit）である。
【００２２】
マイクロコントローラ１Ａ，１Ｂは実施例に係るマイクロコントローラ１と同様な構成である。マイクロコントローラ１Ａ，１ＢのＢＩＳＴのパラメータを下記のように設定する。
（１）マイクロコントローラ１Ａ，１Ｂのスキャンチェーン構成が同じになるように、パラメータをマイクロコントローラ１Ａ、１Ｂの各フラッシュメモリに書き込む。すなわち、例えば、実施例のスキャンチェーンの第１の構成例（または第２の構成例）のパラメータをセットする。
（２）マイクロコントローラ１Ａ，１Ｂのスキャンテストの起動タイミングをずらすようにする。より具体的には、マイクロコントローラ１Ａのシフト動作中にマイクロコントローラ１Ｂのキャプチャ動作が行われ、マイクロコントローラ１Ｂのシフト動作中にマイクロコントローラ１Ａのキャプチャ動作中が行われるようにする。例えば、マイクロコントローラ１Ａのスキャンインのシフト動作が完了してから、マイクロコントローラ１Ｂのスキャンインのシフト動作を開始する。このとき、マイクロコントローラ１Ａのスキャンイン期間、キャプチャ期間およびスキャンアウト期間のスキャンテスト期間とマイクロコントローラ１Ｂのスキャンテスト期間とが同等な期間とする。そうすると、マイクロコントローラ１Ａのキャプチャ動作とマイクロコントローラ１Ｂのスキャンイン動作とが並行して行われ、マイクロコントローラ１Ａのスキャンアウト動作とマイクロコントローラ１Ｂのキャプチャ動作とが並行して行われ、マイクロコントローラ１Ａのスキャンイン動作とマイクロコントローラ１Ｂのキャプチャ動作とが並行して行われる。これにより、消費電流の変動率を低減することができ、電源共振ノイズを低減することが可能となる。
マイクロコントローラ１Ａ，１Ｂが異なる種類のマイクロコントローラである場合、例えば、マイクロコントローラ１Ａのスキャンチェーンが可変構成となっておらず、１５０段で固定であった場合は、マイクロコントローラ１Ｂのスキャンチェーンを第２の構成例とすればよい。
【００２３】
＜応用例２＞
次にＢＩＳＴを内蔵したマイクロコントローラを用いた第２の応用例（応用例２）に係る電子装置について図１３から図１５を用いて説明する。図１３は応用例２に係る電子装置の構成を示すブロック図である。図１４は応用例２に係る電子装置の第１の動作を示すブロック図である。図１５は応用例２に係る電子装置の第２の動作を示すブロック図である。
応用例２に係る電子装置１０２はマスタ側の半導体装置（ＬＳＩ）１Ｍと、スレーブ側の半導体装置（ＬＳＩ）１Ｓ１と、スレーブ側の半導体装置（ＬＳＩ）１Ｓ２と、電源ＩＣ２と、受動素子３と、を１つまたは複数のプリント基板上に備える。電源ＩＣ２と、半導体装置１Ｍ、１Ｓ１、１Ｓ２および受動素子ＰＥと、の間の電源線およびグラウンド線にはインダクタンスＬ１〜Ｌ９やキャパシタンスＣ成分を含む。電子装置１０２は、電子装置１０１と同様に、例えば自動車のエンジン制御、ブレーキ制御等の各種車載制御に用いられるＥＣＵ（Electronics Control Unit）である。
半導体装置１Ｍ，１Ｓ１，１Ｓ２は非スキャン対象回路に電源電圧監視用Ａ／Ｄ変換回路３３を備えることを除き、実施例に係るマイクロコントローラ１と同様な構成である。半導体装置１Ｍを第１の半導体装置といい、半導体装置１Ｓ１，１Ｓ２のいずれかを第２の半導体装置ということもある。
【００２４】
応用例２に係る電子装置の第１の動作について図１４を用いて説明する。
（Ａ１）半導体装置１Ｍの電源電圧監視用Ａ／Ｄ変換回路３３はスキャンテスト中のインダクタンスＬ２とインダクタンスＬ４との間の電源電圧を監視する。同様に、半導体装置１Ｓ１の電源電圧監視用Ａ／Ｄコンバータ３３はスキャンテスト中のそれぞれインダクタンスＬ４とインダクタンスＬ６との間の電源電圧を監視する。半導体装置１Ｓ２の電源電圧監視用Ａ／Ｄコンバータ３３はスキャンテスト中のインダクタンスＬ６とインダクタンスＬ８との間の電源電圧を監視する。
（Ａ２）スキャンテスト後、スレーブ側の半導体装置１Ｓ１，１Ｓ２はそれぞれ電源電圧の変動をマスタ側の半導体装置１ＭへＣＡＮなどで転送する。
（Ａ３）マスタ側の半導体装置１Ｍにてパラメータを再計算し、各スレーブ側の半導体装置１Ｓ１，１Ｓ２へ新パラメータを連絡する。電源電圧の変動が閾値を超えているような場合は、共振が発生していると判断し、スキャンチェーンの構成を変更する。例えば、マスタ側の半導体装置１Ｍのスキャンチェーンの段数を増やす、あるいは減らすようにパラメータを変更する。
（Ａ４）次回からのＢＩＳＴ実行時には上記（Ａ３）で変更した新パラメータにて実行する。
応用例２の第１の動作によれば、実際の電源電圧の変動をモニタすることにより、応用例１よりも電源共振ノイズを低減することが可能となる。
【００２５】
応用例２に係る電子装置の第２の動作について図１５を用いて説明する。
（Ｂ１）上記（Ａ１）と同様にスキャンテスト中に各半導体装置１Ｍ，１Ｓ１，１Ｓ２の電源電圧を電源電圧監視用Ａ／Ｄ変換回路３３にて監視する。
（Ｂ２）上記（Ａ２）と同様に上記（Ｂ２）で検出した電源電圧の変動をマスタ側の半導体装置１ＭへＣＡＮなどで転送する。
（Ｂ３）マスタ側の半導体装置１Ｍにてパラメータを再計算する。このとき、受動素子３に流れる異常電流分を加味しパラメータ再設定する。電源ＩＣ２の容量超過の場合はＢＩＳＴの並列動作から時分割動作などに移行し、状態エラーを通知する。これにより、電源の容量超過の場合でもＢＩＳＴの実行が可能となる。
受動素子３に短絡等の故障が発生した場合、受動素子３で電源−グラウンド間に定常的に異常電流（Ｉａｂ）が流れる。このとき、３つの半導体装置１Ｍ，１Ｓ１，１Ｓ２は、電源ＩＣ２から供給される電流のうち、異常電流（Ｉａｂ）を差し引いたものを使用することになるため、通常時よりも使用可能な動作電流が少なくなる。よって、素子故障を検出した場合は、スキャンチェーンの構成（スキャンチェーンの段数）設定に加え、更に３つの半導体装置１Ｍ，１Ｓ１，１Ｓ２それぞれのスキャンクロックの周波数を故障が無い場合よりも低くなるように設定する。これにより、受動素子の故障等により電源の使用可能な動作電流が少なくなった場合でもＢＩＳＴの実行が可能となる。
【００２６】
以上、本発明者によってなされた発明を実施形態、実施例および応用例に基づき具体的に説明したが、本発明は、上記実施形態、実施例および応用例に限定されるものではなく、種々変更可能であることはいうまでもない。
【符号の説明】
【００２７】
１  ・・・マイクロコントローラ（半導体装置）
１０  ・・・自己診断関連回路
１１    ・・・ＢＩＳＴ制御部
１２    ・・・チェーン制御部
１３    ・・・クロック制御部
１４    ・・・リセット制御部
１５    ・・・パターン生成部
１６    ・・・スキャン許可制御部
１７    ・・・圧縮部
１８    ・・・比較結果状態部
１９    ・・・フラッシュメモリ
２０  ・・・スキャン対象回路
２１    ・・・ＣＰＵ
２２    ・・・メモリＢＩＳＴ制御部
２３    ・・・メモリパターン生成部
２４    ・・・メモリＢＩＳＴ結果チェック部
３０  ・・・スキャン非対象回路
３１    ・・・ＳＲＡＭ
３２    ・・・アナログ部
３３    ・・・電源電圧監視用Ａ／Ｄ変換回路
１０１      ・・・電子装置
１Ａ，１Ｂ    ・・・マイクロコントローラ（半導体装置）
２            ・・・電源ＩＣ
１０２      ・・・電子装置
１Ｍ          ・・・マスタ側の半導体装置
１Ｓ１，１Ｓ２・・・スレーブ側の半導体装置
【図１】
0006491507.tif 000002
【図２】
0006491507.tif 000003
【図３】
0006491507.tif 000004
【図４】
0006491507.tif 000005
【図５】
0006491507.tif 000006
【図６】
0006491507.tif 000007
【図７】
0006491507.tif 000008
【図８】
0006491507.tif 000009
【図９】
0006491507.tif 000010
【図１０】
0006491507.tif 000011
【図１１】
0006491507.tif 000012
【図１２】
0006491507.tif 000013
【図１３】
0006491507.tif 000014
【図１４】
0006491507.tif 000015
【図１５】
0006491507.tif 000016