(57)【特許請求の範囲】
【請求項１】
一つの半導体チップで構成される半導体装置を搭載し、前記半導体装置に故障が発生した場合に機能安全に伴う所定の動作を実行する電子制御システムであって、
前記半導体装置は、
所定の機能を担う論理回路と、
テストポイント用フリップフロップを含み、前記テストポイント用フリップフロップが第１の値を保持する場合に前記論理回路内の対象ノードを所定の論理レベルに固定する複数のテストポイントと、
前記複数のテストポイント用フリップフロップ夫々を順に結合することで構成されるスキャンチェーンと、
を有し、
前記電子制御システムは、さらに、故障データを生成し、前記スキャンチェーンのスキャンインノードを介して前記故障データを前記スキャンチェーンに設定することで、前記論理回路が通常動作を行っている期間に前記論理回路内の前記対象ノードに故障を注入する故障注入回路を搭載し、
前記スキャンチェーンの前記スキャンインノードには、前記故障データか、前記半導体装置のテストに際し前記論理回路のスキャンテストを実行するための量産用テストパターンの一方が入力される、
電子制御システム。
【請求項２】
請求項１記載の電子制御システムにおいて、
前記故障注入回路は、前記半導体装置に設けられる、
電子制御システム。
【請求項３】
請求項２記載の電子制御システムにおいて、
前記故障注入回路は、前記複数のテストポイント用フリップフロップのいずれか一つが前記第１の値を保持するように前記故障データを生成する、
電子制御システム。
【請求項４】
請求項３記載の電子制御システムにおいて、
前記故障注入回路は、前記論理回路内の前記対象ノードに故障を注入する期間を設定に応じて定める制御回路を有する、
電子制御システム。
【請求項５】
一つの半導体チップで構成される半導体装置を搭載し、前記半導体装置に故障が発生した場合に機能安全に伴う所定の動作を実行する電子制御システムであって、
前記半導体装置は、
所定の機能を担う論理回路と、
テストポイント用フリップフロップを含み、前記テストポイント用フリップフロップが第１の値を保持する場合に前記論理回路内の対象ノードを所定の論理レベルに固定する複数のテストポイントと、
前記複数のテストポイント用フリップフロップ夫々を順に結合することで構成されるスキャンチェーンと、
を有し、
前記電子制御システムは、さらに、故障データを生成し、前記スキャンチェーンのスキャンインノードを介して前記故障データを前記スキャンチェーンに設定することで、前記論理回路が通常動作を行っている期間に前記論理回路内の前記対象ノードに故障を注入する故障注入回路を搭載し、
前記故障注入回路は、前記半導体装置に設けられ、
前記半導体装置は、複数の入力ノードに、それぞれ、前記故障注入回路からの前記故障データと前記スキャンチェーンのスキャンアウトノードとが結合され、前記複数の入力ノードのいずれかを選択して前記スキャンチェーンの前記スキャンインノードに結合する選択回路を有する、
電子制御システム。
【請求項６】
請求項５記載の電子制御システムにおいて、
前記故障注入回路は、
前記故障データ側を選択するように前記選択回路を制御し、前記複数のテストポイント用フリップフロップのいずれか一つが前記第１の値を保持するように前記故障データを生成する処理と、
前記スキャンアウトノード側を選択するように前記選択回路を制御し、前記スキャンチェーンをスキャンシフトさせながら前記第１の値を保持する前記テストポイント用フリップフロップを巡回させることで、前記論理回路内の前記対象ノードを変更しながら前記故障を注入する処理と、
を実行する、
電子制御システム。
【請求項７】
請求項６記載の電子制御システムにおいて、
前記故障注入回路は、前記論理回路内の前記対象ノードを変更しながら前記故障を注入する際の前記故障を注入する期間と、前記故障を注入する間隔とを設定に応じて定める制御回路を有する、
電子制御システム。
【請求項８】
請求項５記載の電子制御システムにおいて、
前記半導体装置は、前記半導体装置の外部から任意の値を書き込み可能な不揮発性メモリを有し、
前記故障注入回路は、前記不揮発性メモリの所定の記憶領域に所定の値が格納されている場合に動作する、
電子制御システム。
【請求項９】
一つの半導体チップで構成される半導体装置を搭載した電子制御システムの評価方法であって、
前記半導体装置は、
所定の機能を担う論理回路と、
テストポイント用フリップフロップを含み、前記テストポイント用フリップフロップが第１の値を保持する場合に前記論理回路内の対象ノードを所定の論理レベルに固定する複数のテストポイントと、
前記複数のテストポイント用フリップフロップ夫々を順に結合することで構成され、スキャンインノードに、前記論理回路のスキャンテストを実行するための量産用テストパターンか、前記論理回路を故障状態にするための故障データの一方が入力されるスキャンチェーンと、
を有し、
前記論理回路に通常動作を行わせる第１の工程と、
前記スキャンインノードを介して前記スキャンチェーンに前記故障データを設定することで、論理回路が通常動作を行っている期間に前記論理回路内の前記対象ノードに故障を注入する第２の工程と、
前記論理回路に故障が注入された後の前記電子制御システムの挙動を検証する第３の工程と、
を有する電子制御システムの評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、電子制御システムおよび電子制御システムの評価方法に関し、例えば、機能安全が適用される半導体装置及びそれを含むシステムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、情報処理装置の擬似障害発生方式が示される。具体的には、情報処理装置が通常動作を実行中に、スキャン制御部は、情報処理装置内の特定のスキャンフリップフロップを対象に、予め定めたデータを強制的にスキャンインする。この際、アドレス比較回路は、マイクロ命令アドレスレジスタの値が予め定めたアドレスに一致したことを検出することでスキャンインのタイミングを定め、デコード回路は、予め定めたスキャンアドレスをデコードすることでスキャンイン対象のスキャンフリップフロップを特定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１−１６９６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、自動車向けの機能安全規格であるＩＳＯ２６２６２の登場により、自己の故障を検知する自己診断回路を搭載する半導体装置が増加している。このような半導体装置を搭載したシステムは、例えば、自己診断回路による故障の検知を受け、故障の種類等に応じた各種安全動作を実行することで、重大な問題が生じる事態を回避することができる。ただし、自己診断回路が正常に機能するか、つまり、故障を検知できるかの検証は、通常、半導体装置で実際に故障が発生するまで行うことができない。そのため、システムの開発に際し、例えば、機能安全に伴うソフトウエアをシステム上でデバッグすることや、機能安全が正常に動作するかを検証すること等が困難となっている。
【０００５】
そこで、半導体装置に強制的に擬似故障を発生させるため、例えば、特許文献１のような方式を用いることが考えられる。しかし、当該方式では、各種論理回路に含まれる各スキャンフリップフロップに対し、強制的なスキャンインを受け付けるための回路を別途追加する必要がある。このように、論理回路に対して新たな回路を追加すると、レイアウト設計や各種設計検証を再度やり直す必要性が生じ得る。
【０００６】
後述する実施の形態は、このようなことを鑑みてなされたものであり、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態による半導体装置は、一つの半導体チップで構成され、所定の機能を担う論理回路と、複数のテストポイントと、第１のスキャンチェーンと、故障注入回路とを有する。複数のテストポイントは、それぞれ、テストポイント用フリップフロップを含み、当該フリップフロップが第１の値を保持する場合に論理回路内の対象ノードを所定の論理レベルに固定する。第１のスキャンチェーンは、複数のテストポイント用フリップフロップを順に結合することで構成される。故障注入回路は、故障データを生成し、それを第１のスキャンチェーンのスキャンインノードを介して第１のスキャンチェーンに設定することで、論理回路が通常動作を行っている期間に対象ノードに故障を注入する。
【発明の効果】
【０００８】
前記一実施の形態によれば、論理回路に対して新たな回路を追加することなく、論理回路に擬似故障を発生させることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１による半導体装置において、主要部の概略構成例を示す回路ブロック図である。
【図２】図１における故障注入回路の概略構成例を示す回路ブロック図である。
【図３】図１におけるテストポイントの構成例を示す回路図である。
【図４】図３とは異なるテストポイントの構成例を示す回路図である。
【図５】図１の半導体装置の動作例を示すフロー図である。
【図６】図５の補足図であり、図１の半導体装置の内部波形の一例を示す波形図である。
【図７】本発明の実施の形態２による半導体装置において、主要部の概略構成例を示す回路ブロック図である。
【図８】図７における故障注入回路の概略構成例を示す回路ブロック図である。
【図９】図７の半導体装置の動作例を示すフロー図である。
【図１０】図９の補足図であり、図７の半導体装置の内部波形の一例を示す波形図である。
【図１１】本発明の実施の形態３による半導体装置において、主要部の概略構成例を示す回路ブロック図である。
【図１２】図１１における故障注入回路の概略構成例を示す回路ブロック図である。
【図１３】図１１の半導体装置の動作時における内部波形の一例を示す波形図である。
【図１４】本発明の実施の形態４による電子制御システムを適用した車両装置の構成例を示す概略図である。
【図１５】図１４の電子制御システムにおいて、半導体装置のより詳細な構成例を示す回路ブロック図である。
【図１６】本発明の実施の形態４による電子制御システムにおいて、その評価方法の一例を示すフロー図である。
【発明を実施するための形態】
【００１０】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１１】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１３】
（実施の形態１）
《半導体装置の構成》
図１は、本発明の実施の形態１による半導体装置において、主要部の概略構成例を示す回路ブロック図である。図１の半導体デバイス（半導体装置）ＤＥＶは、一つの半導体チップで構成され、所定の機能を担う論理回路ＬＧＣと、量産用テストパターン発生回路ＴＰＧと、スキャンチェーン（本明細書では、ＴＰチェーンと称する）ＳＣ１と、故障注入回路ＥＲＩＮＣ１と、選択回路ＳＥＬ１とを有する。
【００１４】
論理回路ＬＧＣは、複数のフリップフリップＦＦ１〜ＦＦｎに値を保持しながら通常動作を行うことで所定の機能を実現する。論理回路ＬＧＣは、ＤＦＴ（Design For Test）機能の一つとして、当該複数のフリップフロップＦＦ１〜ＦＦｎを順に結合することで構成されるスキャンチェーン（本明細書ではＦＦチェーンと称する）ＳＣ２を有する。ＦＦチェーンＳＣ２は、スキャンインノードＳＩ２およびスキャンアウトノードＳＯ２を備える。本明細書では、複数のフリップフリップＦＦ１〜ＦＦｎを総称してフリップフリップＦＦと称す。
【００１５】
ＴＰチェーンＳＣ１は、複数のテストポイントＴＰ１〜ＴＰｍを含む。本明細書では、複数のテストポイントＴＰ１〜ＴＰｍを総称してテストポイントＴＰと称す。テストポイントＴＰは、詳細は後述するが、テストポイント用フリップフロップを含み、テストポイント用フリップフロップが所定の値を保持する場合に論理回路ＬＧＣ内の対象ノードを所定の論理レベル（‘０’または‘１’レベル）に固定する。ＴＰチェーンＳＣ１は、当該複数のテストポイントＴＰ１〜ＴＰｍにそれぞれ含まれる複数のテストポイント用フリップフロップを順に結合することで構成され、スキャンインノードＳＩ１およびスキャンアウトノードＳＯ１を備える。
【００１６】
通常、論理回路ＬＧＣを含む半導体デバイスＤＥＶでは、ＤＦＴ機能の他の一つとしてＴＰＩ（ＴＰＩ：Test Point Insertion）と呼ばれる複数のテストポイントＴＰが挿入される。テストポイントＴＰは、ＤＦＴツールで自動生成される場合や、回路設計者等によって任意に挿入される場合がある。一般的に、テストポイントＴＰは、半導体デバイスＤＥＶの量産時に論理回路ＬＧＣの故障検出率を向上させるために設けられ、半導体デバイスＤＥＶ（論理回路ＬＧＣ）の通常動作時には全く使用されない。
【００１７】
量産用テストパターン発生回路ＴＰＧは、量産用テストパターンＴＰＡＴａ，ＴＰＡＴｂを生成する。量産用テストパターン発生回路ＴＰＧは、ＦＦチェーンＳＣ２のスキャンインノードＳＩ２に量産用テストパターンＴＰＡＴａを出力し、ＴＰチェーンＳＣ１のスキャンインノードＳＩ１に量産用テストパターンＴＰＡＴｂを出力することで論理回路ＬＧＣのスキャンテストを実行する。量産用テストパターン発生回路ＴＰＧは、代表的には、圧縮スキャンテスト用の各種回路や、あるいは、ロジックＢＩＳＴ（Built In Self Test）用の各種回路等を含む。
【００１８】
代表的なスキャンテストの方法として、量産用テストパターン発生回路ＴＰＧは、量産用テストパターンＴＰＡＴｂをＴＰチェーンＳＣ１に設定することで論理回路ＬＧＣの対象ノードを所定の論理レベルに固定する。この状態で、量産用テストパターン発生回路ＴＰＧは、量産用テストパターンＴＰＡＴａをＦＦチェーンＳＣ２にスキャンインし、次いでキャプチャによって論理回路ＬＧＣ内の組合せ回路（図示せず）を動作させたのち、ＦＦチェーンＳＣ２の値をスキャンアウトする。これによって、例えば、通常では所定の論理レベルに定め難い対象ノードを所定の論理レベルに定めた状態でテストを行うことができる。
【００１９】
なお、半導体デバイスＤＥＶは、必ずしも量産用テストパターン発生回路ＴＰＧを備える必要はない。すなわち、場合によっては、量産用テストパターン発生回路ＴＰＧの代わりに、半導体デバイスＤＥＶ外部のＡＴＥ（Automated Test Equipment）が量産用テストパターンＴＰＡＴａ，ＴＰＡＴｂを生成してもよい。この場合、ＡＴＥは、例えば、半導体デバイスＤＥＶが備えるＪＴＡＧ（Joint Test Action Group）等のシリアルインタフェースを介して各スキャンチェーンにアクセスすることになる。
【００２０】
故障注入回路ＥＲＩＮＣ１は、故障データＥＲＤＴを生成し、ＴＰチェーンＳＣ１のスキャンインノードＳＩ１を介して故障データＥＲＤＴをＴＰチェーンＳＣ１に設定することで、論理回路ＬＧＣが通常動作を行っている期間に論理回路ＬＧＣ内の対象ノードに故障を注入する。ここでは、故障注入回路ＥＲＩＮＣ１には、故障注入イネーブル信号ＥＲＥＮと、故障注入アドレスＥＲＡＤＲとが入力される。また、故障注入回路ＥＲＩＮＣ１は、故障データＥＲＤＴと、選択信号ＳＳ１と、ＴＰイネーブル信号ＴＰＥと、ＴＰ用スキャンイネーブル信号ＴＰＳＥと、クロック信号ＣＬＫとを出力する。
【００２１】
ここで、図示は省略されているが、ＴＰイネーブル信号ＴＰＥと、ＴＰ用スキャンイネーブル信号ＴＰＳＥと、クロック信号ＣＬＫは、複数のテストポイントＴＰ１〜ＴＰｍにそれぞれ結合される。ＴＰ用スキャンイネーブル信号ＴＰＳＥは、テストポイントＴＰにのみ結合され、論理回路ＬＧＣ内のＦＦチェーンＳＣ２に結合されるスキャンイネーブル信号とは独立に制御される。
【００２２】
選択回路ＳＥＬ１は、入力ノードＮ１０に量産用テストパターンＴＰＡＴｂが入力され、入力ノードＮ１１に故障データＥＲＤＴが入力され、入力ノードＮ１０か入力ノードＮ１１の一方を選択してＴＰチェーンＳＣ１のスキャンインノードＳＩ１に結合する。これによって、スキャンインノードＳＩ１には、故障データＥＲＤＴか、論理回路ＬＧＣのスキャンテストを実行するための量産用テストパターンＴＰＡＴｂの一方が入力される。故障注入回路ＥＲＩＮＣ１は、選択信号ＳＳ１を介して、入力ノードＮ１１を選択するように選択回路ＳＥＬ１を制御する。
【００２３】
以上のように、図１の半導体デバイスＤＥＶは、ＦＦチェーンＳＣ２とは独立にＴＰチェーンＳＣ１を備える点と、故障注入回路ＥＲＩＮＣ１を備える点とが主要な特徴となっている。ＦＦチェーンＳＣ２内の各フリップフリップＦＦと、ＴＰチェーンＳＣ１内の各テストポイントＴＰは、通常は、共通の１本のスキャンチェーンに組み込まれることも可能であるが、ここでは、２本のスキャンチェーンにそれぞれ分離される。
【００２４】
これにより、故障注入回路ＥＲＩＮＣ１は、論理回路ＬＧＣからは独立してＴＰチェーンＳＣ１を制御することができ、論理回路ＬＧＣが通常動作を行っている期間に論理回路ＬＧＣに故障を注入することが可能になる。すなわち、通常は量産時にしか使用されないテストポイントＴＰを、例えば、半導体デバイスＤＥＶの出荷後となる量産後に再度活用し、半導体デバイスＤＥＶに擬似故障を発生させることが可能になる。
【００２５】
なお、故障注入回路ＥＲＩＮＣ１に関しては、半導体デバイスＤＥＶの内部に設けることが望ましいが、場合によっては、半導体デバイスＤＥＶの外部に設けることも可能である。また、例えば、量産用テストパターン発生回路ＴＰＧと故障注入回路ＥＲＩＮＣ１とを１個の回路ブロックに統合し、当該回路ブロックが、所定の選択信号に応じて量産用テストパターンＴＰＡＴｂか故障データＥＲＤＴの一方を選択的にスキャンインノードＳＩ１に出力することも可能である。この場合、当該回路ブロックが、選択回路ＳＥＬ１の機能を等価的に担うことになる。
【００２６】
《故障注入回路の構成》
図２は、図１における故障注入回路ＥＲＩＮＣ１の概略構成例を示す回路ブロック図である。図２の故障注入回路ＥＲＩＮＣ１は、シーケンス制御回路ＣＴＲ１と、初期化回路ＩＮＩＴＣと、クロック制御回路ＣＫＣＴと、タイマ回路ＴＭＲとを備える。タイマ回路ＴＭＲは、故障注入イネーブル信号ＥＲＥＮがアサートされた時点からカウント動作を開始し、予め定めた所定の時間を経過後にタイマ満了信号ＴＵＰをアサートする。所定の時間は、固定値でもよいし、故障注入回路ＥＲＩＮＣ１の外部から設定可能な可変値であってもよい。また、タイマ回路ＴＭＲは、詳細は後述するが、故障注入のタイミングを遅らせるためのものであり、その必要が無ければ、シーケンス制御回路ＣＴＲ１に故障注入イネーブル信号ＥＲＥＮを直接入力する構成であってもよい。
【００２７】
シーケンス制御回路ＣＴＲ１は、タイマ満了信号ＴＵＰのアサートを受けて動作を開始し、故障注入回路ＥＲＩＮＣ１全体のシーケンスを制御する。シーケンス制御回路ＣＴＲ１は、選択回路ＳＥＬ１へ選択信号ＳＳ１を出力し、ＴＰチェーンＳＣ１へＴＰイネーブル信号ＴＰＥおよびＴＰ用スキャンイネーブル信号ＴＰＳＥを出力する。また、シーケンス制御回路ＣＴＲ１は、初期化回路ＩＮＩＴＣへ初期化開始信号ＳＴＲを出力し、クロック制御回路ＣＫＣＴへクロックイネーブル信号ＣＫＥを出力する。
【００２８】
初期化回路ＩＮＩＴＣは、シーケンス制御回路ＣＴＲ１からの初期化開始信号ＳＴＲに応じて動作を開始する。初期化回路ＩＮＩＴＣは、故障注入アドレスＥＲＡＤＲに基づく対象ノードに故障を注入するための故障データＥＲＤＴを生成し、当該故障データＥＲＤＴをシリアルに選択回路ＳＥＬ１へ出力する。また、初期化回路ＩＮＩＴＣは、故障データＥＲＤＴの出力が全て完了した場合（すなわち、ＴＰチェーンＳＣ１への故障データＥＲＤＴの設定が完了した場合）、シーケンス制御回路ＣＴＲ１へ初期化完了信号ＥＤを出力する。クロック制御回路ＣＫＣＴは、シーケンス制御回路ＣＴＲ１からのクロックイネーブル信号ＣＫＥのアサート期間でクロック信号ＣＬＫを生成し（ネゲート期間でクロック信号ＣＬＫの生成を停止し）、当該生成したクロック信号ＣＬＫをＴＰチェーンＳＣ１へ供給する。
【００２９】
《テストポイントの構成》
図３は、図１におけるテストポイントＴＰの構成例を示す回路図であり、図４は、図３とは異なるテストポイントＴＰの構成例を示す回路図である。図３に示すテストポイントＴＰｋは、論理回路ＬＧＣ内の信号パス（ノードＮ１ａ，Ｎ１ｂ）に挿入されたＡＮＤゲートＡＤ１０を介して、当該信号パスの対象ノードＮ１ｂを‘０’に固定する回路である。当該テストポイントＴＰｋは、テストポイント用フリップフロップＴＰＦＦと、選択回路ＳＥＬ１０と、ＮＡＮＤゲートＮＤ１０とを有する。
【００３０】
テストポイント用フリップフロップＴＰＦＦは、選択回路ＳＥＬ１０の出力をクロック信号ＣＬＫに同期してラッチする。選択回路ＳＥＬ１０は、ＴＰ用スキャンイネーブル信号ＴＰＳＥのアサート期間（ここでは‘１’）で、前段のテストポイントＴＰｋ−１（その中のテストポイント用フリップフロップＴＰＦＦ）からの出力値を伝送し、ネゲート期間（ここでは‘０’）で、自段のテストポイント用フリップフロップＴＰＦＦの出力を入力に帰還する。ＮＡＮＤゲートＮＤ１０は、ＴＰイネーブル信号ＴＰＥとテストポイント用フリップフロップＴＰＦＦの出力との論理演算を行う。
【００３１】
ＡＮＤゲートＡＤ１０は、２入力の一方がノードＮ１ａに結合され、２入力の他方にＮＡＮＤゲートＮＤ１０の演算結果が入力され、出力がノードＮ１ｂに結合される。ＮＡＮＤゲートＮＤ１０の演算結果は、テストポイント用フリップフロップＴＰＦＦの値が‘１’かつＴＰイネーブル信号ＴＰＥのアサート期間（ここでは‘１’）で‘０’となる。この場合、ノードＮ１ａの論理レベルに関わらず、ノードＮ１ｂは‘０’に固定される。一方、テストポイント用フリップフロップＴＰＦＦの値が‘０’の場合か、または、ＴＰイネーブル信号ＴＰＥのネゲート期間（ここでは‘０’）では、ノードＮ１ｂの論理レベルは、ノードＮ１ａの論理レベルに等しくなる。
【００３２】
図４に示すテストポイントＴＰｊは、論理回路ＬＧＣ１内の信号パス（ノードＮ２ａ，Ｎ２ｂ）に挿入されたＯＲゲートＯＲ２０を介して、当該信号パスの対象ノードＮ２ｂを‘１’に固定する回路である。当該テストポイントＴＰｊは、テストポイント用フリップフロップＴＰＦＦと、選択回路ＳＥＬ２０と、ＡＮＤゲートＡＤ２０とを有する。すなわち、図４では、図３のＮＡＮＤゲートＮＤ１０の代わりにＡＮＤゲートＡＤ２０が設けられ、ＡＮＤゲートＡＤ１０の代わりにＯＲゲートＯＲ２０が設けられる。これにより、図３の場合と同様に、テストポイント用フリップフロップＴＰＦＦの値が‘１’かつＴＰイネーブル信号ＴＰＥのアサート期間では、ノードＮ２ａの論理レベルに関わらず、ノードＮ２ｂは‘１’に固定される。一方、それ以外の場合には、ノードＮ２ｂの論理レベルは、ノードＮ２ａの論理レベルに等しくなる。
【００３３】
なお、テストポイントＴＰは、特に図３および図４に示したような構成に限定されるものではない。例えば、ＴＰ用スキャンイネーブル信号ＴＰＳＥのネゲート期間では、テストポイント用フリップフロップＴＰＦＦに、自身の値ではなく、所定の固定値が入力されるような構成であってもよい。または、選択回路ＳＥＬ１０，ＳＥＬ２０を設けずに、前段のテストポイント用フリップフロップＴＰＦＦからの出力値が、自段のテストポイント用フリップフロップＴＰＦＦに直接入力されるような構成であってもよい。その他にも、テストポイントＴＰとして様々な構成が知られており、それらを適宜適用することが可能である。
【００３４】
《半導体装置の動作》
図５は、図１の半導体装置の動作例を示すフロー図である。図６は、図５の補足図であり、図１の半導体装置の内部波形の一例を示す波形図である。図５において、半導体デバイス（半導体装置）ＤＥＶの電源を投入すると、故障注入回路ＥＲＩＮＣ１と、論理回路ＬＧＣを主とする半導体デバイスＤＥＶの本体（デバイス本体と称す）とがそれぞれ独立に動作する。デバイス本体は、電源投入後、所定の起動処理（例えば、ブートプログラムの実行等）を経て（ステップＳ２０１）、通常動作を実行する（ステップＳ２０２）。
【００３５】
また、デバイス本体は、図１では省略されているが機能安全回路（または自己診断回路）を備えている。当該機能安全回路は、デバイス本体が通常動作を実行する中で論理回路ＬＧＣ等で故障が発生した場合、当該故障を検知し（ステップＳ２０３）、デバイス外部に向けたエラー通知や、デバイス内部の所定のエラー処理等を実行する（ステップＳ２０４）。エラー処理としては、特に限定はされないが、例えば、故障を検知した箇所（論理回路ＬＧＣ等）の内部リセット等が挙げられる。
【００３６】
一方、故障注入回路ＥＲＩＮＣ１は、電源投入後、故障注入イネーブル信号ＥＲＥＮがアサートかネゲートかを判定する（ステップＳ１０１）。ネゲートの場合、故障注入回路ＥＲＩＮＣ１は、故障注入の動作を開始せず、特に何も行わない。一方、アサートの場合、故障注入回路ＥＲＩＮＣ１は、故障注入の動作を開始し、故障注入アドレスＥＲＡＤＲを受信する（ステップＳ１０２）。ここで、故障注入イネーブル信号ＥＲＥＮや故障注入アドレスＥＲＡＤＲの定め方として、例えば、電源投入直後に半導体デバイスＤＥＶの外部入力を介して定める方式や、または、半導体デバイスＤＥＶ内蔵の不揮発性メモリ等を用いてデバイス内部で自動的に定める方式等が挙げられる。ここでは、後者の方式を用いる場合を想定する。
【００３７】
後者の方式では、例えば、半導体デバイスＤＥＶの外部から任意の値を書き込み可能な不揮発性メモリに、予め、故障注入を行うか否かを定める故障注入フラグと、故障注入アドレスＥＲＡＤＲとを格納する記憶領域が設けられる。ユーザは、故障注入回路ＥＲＩＮＣ１を動作させたい場合には、当該不揮発性メモリに、予め、故障注入フラグおよび故障注入アドレスＥＲＡＤＲを書き込んでおく。
【００３８】
このような状態で、半導体デバイスＤＥＶの電源投入を行うと、半導体デバイスＤＥＶは、図６の期間Ｔ０においてブートプログラムを実行する。そして、半導体デバイスＤＥＶは、ブートプログラムの中で当該故障注入フラグの記憶領域を読み出す。半導体デバイスＤＥＶは、当該記憶領域に故障注入フラグが書き込まれている場合には、加えて故障注入アドレスＥＲＡＤＲを読み出し、それを故障注入回路ＥＲＩＮＣ１に出力すると共に、故障注入イネーブル信号ＥＲＥＮをアサートする。これに応じて、故障注入回路ＥＲＩＮＣ１は、故障注入の動作を開始する。
【００３９】
一方、半導体デバイスＤＥＶは、当該記憶領域に故障注入フラグが書き込まれていない場合には、故障注入イネーブル信号ＥＲＥＮをネゲートに保ち、故障注入回路ＥＲＩＮＣ１は、故障注入の動作を開始しない。このように、故障注入回路ＥＲＩＮＣ１は、不揮発性メモリの所定の記憶領域に故障注入フラグが格納されている場合に動作し、格納されていない場合には動作しない。
【００４０】
故障注入回路ＥＲＩＮＣ１は、故障注入イネーブル信号ＥＲＥＮがアサートされた場合、故障注入アドレスＥＲＡＤＲの受信と共に（ステップＳ１０２）、図６の期間Ｔ１に示されるようにタイマ回路ＴＭＲを起動し、所定の時間が経路するのを待つ（ステップＳ１０３）。当該所定の時間は、例えば、デバイス本体が通常動作（ステップＳ２０２）に到達するまでの待ち時間である。
【００４１】
所定の時間が経過すると、タイマ回路ＴＭＲはタイマ満了信号ＴＵＰをアサートする。これに応じて、シーケンス制御回路ＣＴＲ１は、図６の期間Ｔ１→期間Ｔ２に示されるように、初期化開始信号ＳＴＲおよびＴＰ用スキャンイネーブル信号ＴＰＳＥをアサートし、また、選択信号ＳＳ１を介して、初期化回路ＩＮＩＴＣの出力をスキャンインノードＳＩ１に結合する。また、シーケンス制御回路ＣＴＲ１は、クロックイネーブル信号ＣＫＥもアサートする。
【００４２】
初期化回路ＩＮＩＴＣは、初期化開始信号ＳＴＲのアサートに応じてＴＰチェーンＳＣ１の初期化を実行する（ステップＳ１０４）。また、クロック制御回路ＣＫＣＴは、クロックイネーブル信号ＣＫＥのアサートに応じて、図６の期間Ｔ２に示されるように、ＴＰチェーンＳＣ１に、初期化のためのクロック信号ＣＬＫを供給する。
【００４３】
ステップＳ１０４に際し、初期化回路ＩＮＩＴＣは、まず、故障データＥＲＤＴを生成する。故障データＥＲＤＴは、テストポイントＴＰの数と同じ長さ（図１の例ではｍビット）で、特定の１ビットに‘１’が設定され、残りのビットに‘０’が設定されたビット列である。この特定の１ビットは、故障注入アドレスＥＲＡＤＲによって定められる。次に、初期化回路ＩＮＩＴＣは、図６の期間Ｔ２に示されるように、生成した故障データＥＲＤＴをＴＰチェーンＳＣ１に１ビットずつシフトインし、シフトインの動作が完了したら、初期化完了信号ＥＤをアサートする。
【００４４】
このように、初期化回路ＩＮＩＴＣは、複数のテストポイント用フリップフロップＴＰＦＦのいずれか一つが‘１’を保持するように故障データＥＲＤＴを生成し、それをテストポイント用フリップフロップＴＰＦＦに設定する。その結果、複数のテストポイント用フリップフロップＴＰＦＦのうち、唯一のフリップフロップだけに‘１’が設定され、残りのフリップフロップに‘０’が設定された状態が構築される。
【００４５】
シーケンス制御回路ＣＴＲ１は、初期化完了信号ＥＤのアサートに応じて、クロックイネーブル信号ＣＫＥをネゲートする。これに応じて、クロック制御回路ＣＫＣＴは、図６の期間Ｔ２→期間Ｔ３に示されるように、クロック信号ＣＬＫの供給を停止する（ステップＳ１０５）。その結果、テストポイントＴＰに設定された故障データＥＲＤＴは、固定化される。その後、シーケンス制御回路ＣＴＲ１は、図６の期間Ｔ２→期間Ｔ３に示されるように、ＴＰイネーブル信号ＴＰＥをアサートすることで故障注入を開始する（ステップＳ１０６）。すなわち、テストポイント用フリップフロップＴＰＦＦに‘１’が設定されたテストポイントＴＰの対象ノードに、‘０’または‘１’のスタック故障が注入される。
【００４６】
図６では、故障注入の対象ノードが２個（すなわちテストポイントＴＰの数が２個）の場合を例として、対象ノード［１］，［２］のいずれか一つ（ここでは対象ノード［１］）に故障を注入した状態を模式的に示している。この例では、対象ノードは、‘０’の場合に正常状態であり、‘１’の場合に故障状態である。図５のステップＳ２０３，Ｓ２０４において、機能安全回路は、当該対象ノード［１］の故障を検知し、図６の期間Ｔ３→期間Ｔ４に示されるように、エラー出力信号を出力する。
【００４７】
《実施の形態１の主要な効果》
以上のように、実施の形態１では、量産用のＤＦＴ機能の一つとして設けられるテストポイントＴＰを利用し、当該テストポイントＴＰの制御信号を量産後にも駆動できるように構成することで、量産後の半導体デバイス（論理回路ＬＧＣ）に対する故障注入を実現している。これにより、論理回路ＬＧＣに対して新たな回路を追加することなく、論理回路ＬＧＣに擬似故障を発生させることが可能になる。
【００４８】
比較例として、例えば、特許文献１の方式は、図１のＦＦチェーンＳＣ２に対して所定の回路を追加することで特定のフリップフロップＦＦに擬似故障を発生させるような方式となる。この場合、論理回路ＬＧＣに新たな回路を追加する必要があるため、レイアウト設計や各種設計検証を再度やり直す必要性が生じ得る。一方、実施の形態１では、論理回路ＬＧＣへの追加回路は特に生じないため、このような問題を回避できる。
【００４９】
また、特許文献１の方式では、ＦＦチェーンＳＣ２に加えて、プログラムカウンタの値をモニタする回路やデコード回路等を、プロセッサ等の論理回路ＬＧＣに追加する必要がある。この場合、ロックステップデュアルコアのような、同一構成の回路が複数必要な場合に不向きである。
【００５０】
何故なら、疑似的に故障を注入したいマスタコアに対してのみ回路を追加した場合は、マスタコアとチェッカコアで回路およびレイアウトが異なってしまい、ロックステップデュアルコアとしての本来の目的を果たせない恐れがある。一方、マスタコアとチェッカコアの両方に回路を追加した場合は、両方のコアに故障が注入されてしまい、マスタコアにのみ故障を注入したいという目的が果たせない恐れがある。実施の形態１の方式では、マスタコアのＴＰチェーンＳＣ１に故障データＥＲＤＴを設定することで、マスタコアにのみ故障を注入するというようなことを容易に実現できる。
【００５１】
さらに、実施の形態１の方式では、既存のテストポイントＴＰを利用しているため、多くの論理回路ＬＧＣに対する故障注入を少ない回路オーバヘッドで実現できる場合がある。なお、図５および図６に示した動作では、永続的な故障、つまり、特定の１個の対象ノードが常に‘０’若しくは‘１’に固定化している状態、を再現できる。これにより、機能安全が適用される半導体装置ならびにそれを搭載したシステムが、永続的な故障に対し、機能安全が正常に動作するか（例えばシステム障害等の発生を回避できるか等）を検証することができる。加えて、システムの開発に際し、例えば、故障を適宜注入しながら、機能安全に伴うソフトウエアをシステム上でデバッグするようなことも可能である。
【００５２】
（実施の形態２）
《半導体装置の構成（変形例）》
図７は、本発明の実施の形態２による半導体装置において、主要部の概略構成例を示す回路ブロック図である。図７の半導体デバイス（半導体装置）ＤＥＶは、図１の構成例と比較して、次の２点が異なっている。１点目は、故障注入回路ＥＲＩＮＣ２の内部構成が異なる点であり、２点目は、故障注入回路ＥＲＩＮＣ２にＴＰチェーンＳＣ１のスキャンアウトノードＳＯ１が結合される点である。故障注入回路ＥＲＩＮＣ２は、図１の場合とは異なる故障データＥＲＤＴ２を出力する。
【００５３】
《故障注入回路の構成（変形例）》
図８は、図７における故障注入回路の概略構成例を示す回路ブロック図である。図８に示す故障注入回路ＥＲＩＮＣ２は、図２の構成例と比較して、次の２点が異なっている。１点目は、新たに選択回路ＳＥＬ２が設けられる点であり、２点目は、選択回路ＳＥＬ２の追加に伴いシーケンス制御回路ＣＴＲ２の構成および動作が異なる点である。
【００５４】
選択回路ＳＥＬ２は、入力ノードＮ２０に初期化回路ＩＮＩＴＣからの故障データＥＲＤＴが入力され、入力ノードＮ２１にＴＰチェーンＳＣ１のスキャンアウトノードＳＯ１が結合される。選択回路ＳＥＬ２は、入力ノードＮ２０か入力ノードＮ２１の一方を選択して選択回路ＳＥＬ１の入力ノードＮ１１に結合する。シーケンス制御回路ＣＴＲ２は、図２の場合と同様の各種信号（ＳＴＲ，ＳＳ１，ＴＰＥ，ＴＰＳＥ，ＣＫＥ）に加えて、選択回路ＳＥＬ２の選択信号ＳＳ２を出力する。
【００５５】
《半導体装置の動作（変形例）》
図９は、図７の半導体装置の動作例を示すフロー図である。図１０は、図９の補足図であり、図７の半導体装置の内部波形の一例を示す波形図である。図８の故障注入回路ＥＲＩＮＣ２は、概略的には、まず、入力ノードＮ２０を選択するように選択回路ＳＥＬ２を制御し、実施の形態１の場合と同様に、複数のテストポイント用フリップフロップＴＰＦＦのいずれか一つが‘１’を保持するように故障データＥＲＤＴを生成および設定する。次いで、故障注入回路ＥＲＩＮＣ２は、入力ノードＮ２１を選択するように選択回路ＳＥＬ２を制御し、ＴＰチェーンＳＣ１をスキャンシフトさせながら‘１’を保持するテストポイント用フリップフロップＴＰＦＦを巡回させることで、対象ノードを変更しながら故障を注入するような故障データＥＲＤＴ２を生成する。
【００５６】
具体的に説明すると、図９において、デバイス本体の処理内容（ステップＳ２０１〜Ｓ２０４）と、故障注入回路ＥＲＩＮＣ２におけるＴＰチェーンＳＣ１の初期化までの処理内容（ステップＳ１０１〜Ｓ１０４）は、図５の場合と同様である。また、図１０において、ＴＰチェーンＳＣ１の初期化までの期間（期間Ｔ０〜期間Ｔ２）の波形も図６の場合と同様である。
【００５７】
図９において、シーケンス制御回路ＣＴＲ２は、初期化回路ＩＮＩＴＣからの初期化完了信号ＥＤのアサートを受信し（ステップＳ１０４）、これに応じてステップＳ３０１の処理を実行する。ステップＳ３０１において、シーケンス制御回路ＣＴＲ２は、クロックイネーブル信号ＣＫＥのアサートを維持し、選択信号ＳＳ２を用いて、ＴＰチェーンＳＣ１のスキャンアウトノードＳＯ１がスキャンインノードＳＣ１に結合するように制御する。すなわち、シーケンス制御回路ＣＴＲ２は、ＴＰチェーンＳＣ１のリング化を行う。
【００５８】
次いで、シーケンス制御回路ＣＴＲ２がＴＰイネーブル信号ＴＰＥをアサートすることで、故障注入回路ＥＲＩＮＣ２は、ＴＰチェーンＳＣ１をスキャンシフトさせながら故障注入を開始する（ステップＳ３０２）。具体的には、故障注入回路ＥＲＩＮＣ２は、テストポイント用フリップフロップＴＰＦＦに‘１’が設定されているテストポイントＴＰ（言い換えれば、有効化されたテストポイントＴＰ）を、クロック信号ＣＬＫに連動して、順次、後段へ移動させる。また、ＴＰチェーンＳＣ１はリング化されているため、当該有効化されたテストポイントＴＰは、ＴＰチェーンＳＣ１上を巡回する。これに応じて、故障注入の対象ノードも、巡回的に移動することになる。
【００５９】
図１０では、故障注入の対象ノードが２個（すなわちテストポイントＴＰの数が２個）の場合を例として、対象ノード［１］，［２］に巡回的に故障を注入した状態を模式的に示している。この例では、対象ノードが２個であるため、期間Ｔ３ａ，Ｔ４ａに示すように、対象ノード［１］，［２］では、クロック信号ＣＬＫに連動して、交互に正常状態（ここでは‘０’）と故障状態（ここでは‘１’）が切り替わっている。図９のステップＳ２０３，Ｓ２０４において、機能安全回路は、当該対象ノード［１］，［２］の故障を検知し、図１０の期間Ｔ３ａ→期間Ｔ４ａに示されるように、エラー出力信号を出力する。
【００６０】
《実施の形態２の主要な効果》
以上のように、実施の形態２の方式では、実施の形態１の方式と異なり、間欠故障、つまり、一旦故障状態となった後に正常状態に戻るような一過性の故障、を対象ノードを変えながら連続して発生させている。これにより、実施の形態１で述べたような各種効果に加えて、さらに、機能安全が適用される半導体装置ならびにそれを搭載したシステムが、間欠故障に対し、機能安全が正常に動作するか（例えばシステム障害等の発生を回避できるか等）を検証することができる。なお、故障を対象ノードを変えながら連続して発生させているのは、間欠故障では、故障がシステム障害となって顕在化する前に正常状態に戻る場合があるためであり、より障害を発生し易くするためである。
【００６１】
（実施の形態３）
《半導体装置の構成（応用例）》
図１１は、本発明の実施の形態３による半導体装置において、主要部の概略構成例を示す回路ブロック図である。図１１の半導体デバイス（半導体装置）ＤＥＶは、図７の構成例と比較して、故障注入回路ＥＲＩＮＣ３の内部構成が異なっている。故障注入回路ＥＲＩＮＣ３には、故障注入期間や故障注入の間隔を可変設定するための故障注入条件ＥＲＣＮＤが入力される。
【００６２】
《故障注入回路の構成（応用例）》
図１２は、図１１における故障注入回路ＥＲＩＮＣ３の概略構成例を示す回路ブロック図である。図１２に示す故障注入回路ＥＲＩＮＣ３は、図８の構成例と比較して、ＴＰイネーブル制御回路ＴＰＥＣＴが追加される点が異なっている。ＴＰイネーブル制御回路ＴＰＥＣＴは、シーケンス制御回路ＣＴＲ２からのＴＰイネーブル信号ＴＰＥのアサートを受け、故障注入条件ＥＲＣＮＤに応じてパルス幅やパルス間隔を調整したＴＰイネーブル信号ＴＰＥ２をＴＰチェーンＳＣ１へ出力する。これにより、ＴＰイネーブル制御回路ＴＰＥＣＴは、対象ノードを変更しながら故障を注入する際の故障を注入する期間と、故障を注入する間隔とを設定に応じて定める。
【００６３】
《半導体装置の動作（応用例）》
図１３は、図１１の半導体装置の動作時における内部波形の一例を示す波形図である。図１３において、期間Ｔ１０〜Ｔ１２では、図１０の期間Ｔ０〜Ｔ２とほぼ同様の処理が行われる。ただし、図１３の期間Ｔ１０では、故障注入回路ＥＲＩＮＣ３に対し、故障注入アドレスＥＲＡＤＲに加えて故障注入条件ＥＲＣＮＤが入力されている。故障注入条件ＥＲＣＮＤは、前述した故障注入アドレスＥＲＡＤＲの場合と同様の方式で入力される。すなわち、電源投入後に外部入力する方式や、または、不揮発性メモリの所定の記憶領域に予め書き込んでおき、それを電源投入後に読み出す方式等を用いることができる。
【００６４】
図１３の期間Ｔ１３，Ｔ１４では、ＴＰイネーブル制御回路ＴＰＥＣＴが、図１０の期間Ｔ３ａ，Ｔ４ａとは異なる波形形状を持つＴＰイネーブル信号ＴＰＥ２を生成している。この例では、ＴＰイネーブル制御回路ＴＰＥＣＴは、クロック信号ＣＬＫの複数サイクル毎に、所定の期間、ＴＰイネーブル信号ＴＰＥ２をアサートしている。この複数サイクルの数と、所定の期間の長さは、故障注入条件ＥＲＣＮＤによって設定される。ＴＰイネーブル制御回路ＴＰＥＣＴは、特に限定はされないが、例えば、当該複数サイクルをカウントするカウンタと、当該カウンタの出力を受けて所定のパルス幅のワンショットパルスを生成するパルス生成回路とによって構成される。
【００６５】
このようなＴＰイネーブル信号ＴＰＥ２を用いることで、図１０の場合と同様に、故障注入の対象ノードを移動させつつ、図１０の場合と異なり、各故障の発生期間を定めることができ、さらに、その移動の合間に故障が発生していない期間を設けることが可能になる。すなわち、図３および図４に示したように、テストポイントＴＰは、ＴＰイネーブル信号ＴＰＥ２のアサート期間で、対象ノードに‘０’または‘１’のスタック故障を発生させ、ネゲート期間では、スタック故障を発生させない。
【００６６】
《実施の形態３の主要な効果》
以上のように、実施の形態３の方式では、実施の形態２の方式に対して、さらに、故障を注入する期間と、故障を注入する間隔とが制御される。これにより、実施の形態１，２で述べたような各種効果に加えて、さらに、機能安全が適用される半導体装置ならびにそれを搭載したシステムが、偶発的な故障に対し、機能安全が正常に動作するか（例えばシステム障害等の発生を回避できるか等）を検証することができる。偶発的な故障とは、例えば、アルファ線やノイズの影響により偶発的に発生する一時的な故障を表す。
【００６７】
なお、ここでは、図８の構成例に対してＴＰイネーブル制御回路ＴＰＥＣＴを追加したが、同様にして、図２の構成例に対してＴＰイネーブル制御回路ＴＰＥＣＴを追加することも可能である。この場合、当該ＴＰイネーブル制御回路ＴＰＥＣＴは、故障注入条件に基づき、故障を注入する期間を制御する。その結果、図６では、故障注入の対象ノード［１］は、期間Ｔ３，Ｔ４において常に故障状態であったが、この故障状態の期間を故障注入条件に基づき制御することが可能になる。
【００６８】
（実施の形態４）
《電子制御システムの構成》
図１４は、本発明の実施の形態４による電子制御システムを適用した車両装置の構成例を示す概略図である。図１４の車両装置ＶＨは、代表的には、自動車等である。車両装置ＶＨは、電子制御システムＥＣＵと、エンジン、ブレーキ等の各種アクチュエータに該当する駆動装置ＡＣＲとを備える。電子制御システムＥＣＵは、例えば、半導体デバイス（半導体装置）ＤＥＶおよび他デバイスＳＤＥＶ等を搭載した配線基板等で構成される。半導体デバイスＤＥＶには、実施の形態１〜３で述べたような構成が適用される。
【００６９】
図１４の半導体デバイスＤＥＶは、概略的には、論理回路ＬＧＣと、ＴＰチェーンＳＣ１と、故障注入回路ＥＲＩＮＣと、機能安全回路ＦＳＣと、フラッシュメモリ等の不揮発性メモリＲＯＭとを備える。通常動作において、駆動装置ＡＣＲは、半導体デバイス（その中の論理回路ＬＧＣ）からの制御信号ＭＣＴＬに基づいて所定の動作を行い、車両装置ＶＨを走行させる。一方、論理回路ＬＧＣに故障が発生すると、機能安全回路ＦＳＣは、当該故障を検知し、例えば、他デバイスＳＤＥＶへエラーの内容等を含んだエラー通知ＥＯを送信する。
【００７０】
他デバイスＳＤＥＶは、エラー通知ＥＯを受け取ると、例えば、半導体デバイス（その中の論理回路ＬＧＣ）へリセット要求ＲＱを発行し、また、駆動装置ＡＣＲへ制御切り換え命令を含む制御信号ＳＣＴＬを出力する。駆動装置ＡＣＲは、他デバイスＳＤＥＶからの制御信号ＳＣＴＬに基づき、半導体デバイスＤＥＶからの制御信号ＭＣＴＬに基づく動作を停止し、代わりに制御信号ＳＣＴＬに基づく動作を行う。この際に、他デバイスＳＤＥＶは、特に限定はされないが、エラー通知ＥＯに含まれるエラーの内容等に応じて、車両装置ＶＨの走行を続けるための制御信号ＳＣＴＬを出力したり、あるいは、車両装置ＶＨを安全に停止させるための制御信号ＳＣＴＬを出力する。このように、電子制御システムＥＣＵは、半導体デバイスＤＥＶに故障が発生した場合に機能安全に伴う所定の動作を実行する。
【００７１】
図１５は、図１４の電子制御システムにおいて、半導体装置のより詳細な構成例を示す回路ブロック図である。例えば、自動車用の電子制御システムＥＣＵには、通常、半導体デバイスＤＥＶとしてマイクロコントローラＭＣＵが搭載される。マイクロコントローラＭＣＵは、例えば、図１５に示されるように、内部バスＢＳで結合される複数の論理回路ＬＧＣ１〜ＬＧＣ３、揮発性メモリＲＡＭおよび不揮発性メモリＲＯＭ等を備える。
【００７２】
この例では、論理回路ＬＧＣ１，ＬＧＣ２は、共に同一回路構成のプロセッサコアであり、マスタコアおよびチェッカコアからなるロックステップデュアルコアＭＰＵを構成する。ロックステップデュアルコアＭＰＵは、マスタコアとチェッカコアの出力を比較することでマスタコアの故障を検知する故障検知回路ＥＲＤＥＴ１を備える。揮発性メモリＲＡＭは、ＥＣＣ（Error Check and Correct）エラー等を検知する故障検知回路ＥＲＤＥＴ２を備え、論理回路ＬＧＣ３も、所定の方法で故障を検知する故障検知回路ＥＲＤＥＴ３を備える。論理回路ＬＧＣ３は、特に限定はされないが、各種アクセラレータ回路や、各種通信インタフェース回路等に該当する。
【００７３】
図１５のマイクロコントローラＭＣＵは、さらに、複数のＴＰチェーンＳＣ１ａ，ＳＣ１ｂ，ＳＣ１ｃと、機能安全回路ＦＳＣと、故障注入回路ＥＲＩＮＣとを備える。ＴＰチェーンＳＣ１ａ，ＳＣ１ｂ，ＳＣ１ｃは、それぞれ、論理回路ＬＧＣ１，ＬＧＣ２，ＬＧＣ３に対応して設けられる。故障注入回路ＥＲＩＮＣは、ＴＰチェーンＳＣ１ａ，ＳＣ１ｂ，ＳＣ１ｃのスキャンインノードＳＩ１ａ，ＳＩ１ｂ，ＳＩ１ｃおよびスキャンアウトノードＳＯ１ａ，ＳＯ１ｂ，ＳＯ１ｃにそれぞれ結合される。機能安全回路ＦＳＣは、故障検知回路ＥＲＤＥＴ１〜ＥＲＤＥＴ３からの故障検知信号ＥＤ１〜ＥＤ３を受け、外部へエラー通知ＥＯを送信する。また、機能安全回路ＦＳＣは、故障検知信号ＥＤ１〜ＥＤ３に応じて、内部リセット信号の発行等も行う。
【００７４】
《電子制御システムの評価方法》
図１６は、本発明の実施の形態４による電子制御システムにおいて、その評価方法の一例を示すフロー図である。図１６では、まず、半導体デバイスＤＥＶ１（その中の論理回路ＬＧＣ）に通常動作を行わせる（ステップＳ４０１）。次いで、スキャンインノードを介してＴＰチェーンＳＣ１に故障データを設定することで、論理回路ＬＧＣが通常動作を行っている期間に論理回路ＬＧＣ内の対象ノードに故障を注入する（ステップＳ４０２）。その後、故障が注入された後の電子制御システムＥＣＵの挙動を検証する（ステップＳ４０３）。具体的には、例えば、他デバイスＳＤＥＶが設計通りに動作するか否か等を検証する。
【００７５】
ここで、ステップＳ４０２の際には、例えば、図１５において、故障データを設定するＴＰチェーンＳＣ１ａ，ＳＣ１ｂ，ＳＣ１ｃを選択することで、故障注入先となる論理回路ＬＧＣ１，ＬＧＣ２，ＬＧＣ３を適宜選択することが可能である。また、図１４および図１５の例では、故障注入回路ＥＲＩＮＣは、半導体デバイスＤＥＶに内蔵されるが、場合によっては、半導体デバイスＤＥＶの外部（例えば、電子制御システムＥＣＵの配線基板上、または外部のテスト装置等）に搭載されることも可能である。
【００７６】
この場合、例えば、外部の故障注入回路が半導体デバイスＤＥＶのＪＴＡＧインタフェース等を介してＴＰチェーンＳＣ１のスキャンインノードＳＩ１にアクセスできるように半導体デバイスＤＥＶを構成すればよい。ただし、この場合、電子制御システムＥＣＵの評価担当者等の負担の増大や、ＴＰチェーンＳＣ１を外部から直接的にアクセス可能にすることによるセキュリティの低下等が懸念される。したがって、このような観点からは、故障注入回路ＥＲＩＮＣを半導体デバイスＤＥＶに内蔵することが望ましい。
【００７７】
以下、故障注入回路ＥＲＩＮＣが半導体デバイスＤＥＶに内蔵される場合を例として、図１６のステップＳ４０１，Ｓ４０２の詳細について説明する。まず、評価担当者等は、図１４に示すように、車両装置ＶＨが停止している状態で、情報処理装置ＥＱ等を半導体デバイスＤＥＶの外部インタフェースＩＦに接続し、情報処理装置ＥＱに予め格納してある故障注入機能有効化プログラムＥＲＩＰＲＧを実行する。
【００７８】
故障注入機能有効化プログラムＥＲＩＰＲＧは、半導体デバイスＤＥＶの不揮発性メモリＲＯＭを書き換えるプログラムである。これによって、評価担当者等は、実施の形態１〜３で述べたような、故障注入イネーブル信号ＥＲＥＮの元となる故障注入フラグ、故障注入アドレスＥＲＡＤＲおよび故障注入条件ＥＲＣＮＤを不揮発性メモリＲＯＭの所定の記憶領域に書き込むことができる。例えば、図１５のようなマイクロコントローラＭＣＵを用いる場合、故障注入アドレスＥＲＡＤＲによって、ＴＰチェーンＳＣ１ａ，ＳＣ１ｂ，ＳＣ１ｃの選択と、選択したＴＰチェーン内のテストポイントＴＰの選択とを行うことができる。
【００７９】
次に、評価担当者等は、車両装置ＶＨに通常通りの電源投入を行い、車両装置ＶＨおよび電子制御システムＥＣＵに通常動作を行わせる。これに応じて、例えば、図１５のロックステップデュアルコアＭＰＵは、不揮発性メモリＲＯＭ上のブートプログラムを実行し、当該ブートプログラムの中で故障注入イネーブル信号ＥＲＥＮをアサートし、故障注入回路ＥＲＩＮＣへ故障注入アドレスＥＲＡＤＲおよび故障注入条件ＥＲＣＮＤを出力する。
【００８０】
そして、ロックステップデュアルコアＭＰＵは、当該ブートプログラムを経て、通常動作へ移行し、不揮発性メモリＲＯＭ上の本体プログラム等を実行する（ステップＳ４０１）。一方、故障注入回路ＥＲＩＮＣは、このような本体プログラムの実行とは独立して動作し、実施の形態１〜３で述べたように、故障注入先の論理回路ＬＧＣが通常動作を行っている期間に、ＴＰチェーンＳＣ１を介して当該論理回路ＬＧＣの対象ノードに故障を注入する（ステップＳ４０２）。
【００８１】
これにより、評価担当者等の負担を増大させることなく、機能安全が適用される電子制御システムＥＣＵおよび車両装置ＶＨの評価を容易に実現することが可能になる。また、同様にして、電子制御システムＥＣＵの開発担当者等が、故障注入を行いながら、半導体デバイスＤＥＶの本体プログラムや、他デバイスＳＤＥＶの本体プログラム等を容易にデバックすることも可能になる。
【００８２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８３】
ここでは、車両装置向けの電子制御システムを例としたが、勿論、これに限定されるものではなく、例えば、比較的高い安全性が要求される各種産業機器向けのシステムに対して同様に適用可能である。また、ここでは、故障注入のタイミングを定める方式として、故障注入イネーブル信号ＥＲＥＮおよびタイマ回路ＴＭＲを用いたが、例えば、半導体デバイスＤＥＶ外部からのトリガ信号を用いる等、方式を適宜変更することも可能である。
【符号の説明】
【００８４】
ＡＣＲ  駆動回路
ＢＳ  内部バス
ＣＫＣＴ  クロック制御回路
ＣＴＲ  シーケンス制御回路
ＤＥＶ  半導体デバイス
ＥＣＵ  電子制御システム
ＥＱ  情報処理装置
ＥＲＤＥＴ  故障検知回路
ＥＲＤＴ  故障データ
ＥＲＩＮＣ  故障注入回路
ＦＦ  フリップフロップ
ＦＳＣ  機能安全回路
ＩＮＩＴＣ  初期化回路
ＬＧＣ  論理回路
ＭＣＵ  マイクロコントローラ
ＭＰＵ  ロックステップデュアルコア
ＳＣ  スキャンチェーン
ＳＤＥＶ  他デバイス
ＳＥＬ  選択回路
ＳＩ  スキャンインノード
ＳＯ  スキャンアウトノード
ＴＭＲ  タイマ回路
ＴＰ  テストポイント
ＴＰＡＴ  量産用テストパターン
ＴＰＥＣＴ  ＴＰイネーブル制御回路
ＴＰＦＦ  テストポイント用フリップフロップ
ＴＰＧ  量産用テストパターン発生回路
ＶＨ  車両装置
【図１】
0006647145.tif 000002
【図２】
0006647145.tif 000003
【図３】
0006647145.tif 000004
【図４】
0006647145.tif 000005
【図５】
0006647145.tif 000006
【図６】
0006647145.tif 000007
【図７】
0006647145.tif 000008
【図８】
0006647145.tif 000009
【図９】
0006647145.tif 000010
【図１０】
0006647145.tif 000011
【図１１】
0006647145.tif 000012
【図１２】
0006647145.tif 000013
【図１３】
0006647145.tif 000014
【図１４】
0006647145.tif 000015
【図１５】
0006647145.tif 000016
【図１６】
0006647145.tif 000017