JPWO2016203505A1 - 半導体装置及び診断テスト方法 - Google Patents

半導体装置及び診断テスト方法 Download PDF

Info

Publication number
JPWO2016203505A1
JPWO2016203505A1 JP2017524143A JP2017524143A JPWO2016203505A1 JP WO2016203505 A1 JPWO2016203505 A1 JP WO2016203505A1 JP 2017524143 A JP2017524143 A JP 2017524143A JP 2017524143 A JP2017524143 A JP 2017524143A JP WO2016203505 A1 JPWO2016203505 A1 JP WO2016203505A1
Authority
JP
Japan
Prior art keywords
test
circuit
scan
semiconductor device
diagnosis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017524143A
Other languages
English (en)
Other versions
JP6462870B2 (ja
Inventor
洋一 前田
洋一 前田
潤 松嶋
潤 松嶋
鈴木 貴幸
貴幸 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of JPWO2016203505A1 publication Critical patent/JPWO2016203505A1/ja
Application granted granted Critical
Publication of JP6462870B2 publication Critical patent/JP6462870B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318555Control logic
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318544Scanning methods, algorithms and patterns
    • G01R31/318547Data generators or compressors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318569Error indication, logging circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318594Timing aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318566Comparators; Diagnosing the device under test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本発明に係る半導体装置(1)は、スキャンチェーンを有する被テスト回路(2)と、スキャンチェーンを用いて被テスト回路のスキャンテストを実施する第1のテスト制御装置(3)及び第2のテスト制御装置(4)を備える。第2のテスト制御装置(4)が、被テスト回路(2)に対し第2のスキャンテストを実施し、被テスト回路(2)が、第2のスキャンテストが実施された後に、第1のテスト制御装置(3)に第1のスキャンテストの実施を指示し、第1のテスト制御装置(3)が、被テスト回路(2)からの指示に応じて、被テスト回路(2)に対し第1のスキャンテストを実施する。

Description

本発明は、半導体装置及び診断テスト方法に関し、特に、被テスト回路のスキャンテストを実施する技術に関する。
近年、自動車の電気・電子化が進み、ウインドウ又はライト等のボディ制御のみならず、ブレーキ又はステアリング等のシャシー制御、及び、衝突回避といった先進運転支援システムのように、直接、搭乗者及び通行者の安全に影響する機構にも半導体装置が使用されるようになってきている。このような半導体装置には、その機能に対して高い安全性が要求されている。自動車向けの機能安全規格であるISO26262では、その用途及び使用される社会的環境に応じて安全性を向上させる対策を講じる必要性が述べられている。
例えば、単一の故障による障害であるシングルポイントフォールト(以下、SPF)や、複数の故障が同時に発生することによる障害であるレイテントフォールト(以下、LF)を検出することのできる安全機構を、半導体装置に実装することがその対策の一つとして認知されている。言い換えると、SPF及びLFの両方を検出可能とすることで、より信頼性の向上した半導体装置が要求されている。
特許文献1には、2つのプロセッサにより同一の演算処理を行い、その演算結果を比較器によって比較して演算結果が一致するか不一致となるかを判定することで、プロセッサが正常であるか否かを診断する制御装置が開示されている。また、この制御装置は、比較器を、BIST(Built−In−Self−Test)によって診断することで、さらに信頼性を向上させている。しかしながら、この制御装置は、後述するように、複数の被テスト対象の回路を必要とすることなく、SPF及びLFの両方を検出可能とした技術を開示したものではない。
特開2008−267999号公報
上述したように、複数の被テスト対象の回路を必要とすることなく、SPF及びLFの両方を検出可能とする、より信頼性の向上した半導体装置が無いという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、第2のテスト制御装置が被テスト回路の第2のスキャンテストを実施した後に、被テスト回路が第1のテスト制御装置に第1のスキャンテストの実施を指示するようにしたものである。
前記一実施の形態によれば、より信頼性を向上した半導体装置を提供することができる。
実施の形態に係る半導体装置の概略構成を示すブロック図である。 実施の形態1に係る半導体装置の構成を示すブロック図である。 実施の形態1に係る半導体装置の動作を示すブロック図である。 実施の形態1の変形例に係る半導体装置の構成を示すブロック図である。 実施の形態2に係る半導体装置の構成を示すブロック図である。 実施の形態3に係る半導体装置の構成を示すブロック図である。 実施の形態3に係る半導体装置の動作を示すブロック図である。 実施の形態4に係る半導体装置の構成を示すブロック図である。 実施の形態4に係る半導体装置の動作を示すブロック図である。 実施の形態5に係る半導体装置の構成を示すブロック図である。 実施の形態6に係る半導体装置の構成を示すブロック図である。 実施の形態7に係る半導体装置の構成を示すブロック図である。 実施の形態7に係る半導体装置の前半の動作を示すブロック図である。 実施の形態7に係る半導体装置の後半の動作を示すブロック図である。 実施の形態8に係る半導体装置の構成を示すブロック図である。 実施の形態8に係る半導体装置の前半の動作を示すブロック図である。 実施の形態8に係る半導体装置の後半の動作を示すブロック図である。
以下、図面を参照しながら、好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、実施の形態の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
<実施の形態の概略>
図1を参照して、後述の実施の形態に係る半導体装置の概略構成について説明する。図1は、後述の実施の形態に係る半導体装置の概略となる半導体装置を示すブロック図である。
半導体装置(1)は、被テスト回路(2)と、第1のテスト制御装置(3)と、第2のテスト制御装置(4)と、共通結果判定装置(5)とを有する。
被テスト回路(2)は、スキャンチェーンを有する。第1のテスト制御装置(3)及び第2のテスト制御装置(4)のそれぞれは、被テスト回路(2)のスキャンチェーンを用いて、被テスト回路(2)のスキャンテストを実施する。共通結果判定装置(5)は、第1のテスト制御装置(3)及び第2のテスト制御装置(4)のそれぞれによって実施されたスキャンテストによって得られた被テスト回路(2)のテスト結果を判定する。
第2のテスト制御装置(4)は、被テスト回路(2)のスキャンチェーンにテストパタンをスキャンインし、被テスト回路(2)をテストパタンで動作させ、被テスト回路(2)のスキャンチェーンからテスト結果をスキャンアウトする。第2のテスト制御装置(4)は、テスト結果を共通結果判定装置(5)に出力する。共通結果判定装置(5)は、第2のテスト制御装置(4)から出力されたテスト結果に基づいて、被テスト回路(2)に故障が発生しているか否かを判定する。
第2のテスト制御装置(4)は、被テスト回路(2)のスキャンテストを実施する。被テスト回路(2)が、第2のテスト制御装置(4)が被テスト回路(2)のスキャンテストを実施した後に、第1のテスト制御装置(3)にスキャンテストの実施を指示する。第1のテスト制御装置(3)が、被テスト回路(2)からのスキャンテストの指示に応じて、被テスト回路(2)のスキャンテストを実施する。
これによれば、第1のテスト制御装置(3)によるスキャンテストによって、被テスト回路(2)の通常の機能の故障(すなわち、SPF)を検出することができる。さらに、第2のテスト制御装置(4)によるスキャンテストによって、第1のテスト制御装置(3)によるスキャンテストを起動する機能の故障(すなわち、LF)を検出することができる。よって、SPF及びLFの両方を検出して、半導体装置(1)の信頼性をより向上させることができる。
<実施の形態1>
[全体構成]
続いて、実施の形態1について説明する。図2を参照して、実施の形態1に係る半導体装置(1A)の構成について説明する。図2は、実施の形態1に係る半導体装置(1A)の構成を示すブロック図である。
図2に示すように、半導体装置(1A)は、その機能を実現する要素として、CPU(10)と、内蔵メモリ(11)と、外部I/F(インターフェース)(12)と、システムバス(13)と、システム制御回路(15)を有する。
CPU(10)と内蔵メモリ(11)と外部I/F(12)は、システムバス(13)を介して相互に接続されている。よって、CPU(10)と内蔵メモリ(11)と外部I/F(12)の間で相互に必要なデータが転送される。
CPU(10)は、半導体装置(1A)を動作させるアプリケーションプログラムを実行する。したがって、このアプリケーションプログラムは、半導体装置(1A)における機能を実現する各種処理を、CPU(10)に実行させるための複数の命令が含まれている。CPU(10)は、このアプリケーションプログラムを実行することで、半導体装置(1A)を統括的に制御する演算回路である。
ここで、本実施の形態1においては、CPU(10)が被テスト回路(テスト対象の回路)であるものとして説明する。CPU(10)は、複数のスキャンチェーンを有している。CPU(10)は、この複数のスキャンチェーンを利用してスキャンテストによる診断が可能である。
内蔵メモリ(11)は、上述した各種処理をCPU(10)が実行するために使用するデータが格納される記憶回路である。よって、この各種データには、例えば、上述したアプリケーションプログラムが含まれる。CPU(10)は、内蔵メモリ(11)に格納されたデータを読み出し、読み出したデータに基づいて処理を実行する。また、CPU(10)は、その処理の実行に応じて生成したデータを内蔵メモリ(11)に書き込む。内蔵メモリ(11)は、例えばRAM(Random Access Memory)等の揮発性のメモリである。
外部I/F(12)は、半導体装置(1A)の外部に配置される外部メモリ(14)とも接続されている。外部I/F(12)は、外部メモリ14と、システムバス(13)に接続された回路(CPU(10)等)との間でデータの送受信を行う回路である。したがって、CPU(10)は、システムバス(13)及び外部I/F(12)を介して、外部メモリ(14)に格納されたデータの読み出し、及び、外部メモリ(14)へのデータの書き込みを行う。
外部メモリ(14)は、任意のデータが格納される記憶回路である。外部メモリ(14)にも、上述した各種処理をCPU(10)が実行するために使用するデータが格納されるようにしてもよい。例えば、外部メモリ(14)は、上述したアプリケーションプログラムが予め格納されていてもよい。そして、CPU(10)は、外部メモリ(14)に格納されたアプリケーションプログラムを内蔵メモリ(11)にロードしてから実行するようにしてもよい。すなわち、CPU(10)は、外部メモリ(14)に格納されたデータを読み出し、読み出したデータに基づいて処理を実行してもよい。また、CPU(10)は、その処理の実行に応じて生成したデータを外部メモリ(14)に書き込んでもよい。外部メモリ(14)は、例えばROM(Read Only Memory)又はFLASHメモリ等の不揮発性メモリである。
ここで、本実施の形態1では、CPU(10)のスキャンテストの実行に利用される複数のテストパタンが、内蔵メモリ(11)又は外部メモリ(14)に予め格納されている。
システム制御回路(15)は、半導体装置(1A)の起動などの全体的な制御を行う。システム制御回路(15)は、CPU(10)、内蔵メモリ(11)、及び、外部I/F(12)に対して、システムバス(13)、若しくは、直接接続された信号線を介して、リセット制御等の各種制御を行う。また、システム制御回路(15)は、CPU(10)、内蔵メモリ(11)、及び、外部I/F(12)に対して、直接接続されたクロック信号線(図示せず)を介してクロックを供給する。
半導体装置(1A)は、第1のテスト制御装置(3)として、第1のテスト制御回路(100)と、パタン入力回路(101)と、第1の結果圧縮回路(206)と、第1の期待値記憶回路(103)を有する。また、半導体装置(1A)は、第2のテスト制御装置(4)として、第2のテスト制御回路(200)と、パタン発生回路(201)と、第2の結果圧縮回路(207)と、第2の期待値記憶回路(203)を有する。さらに、半導体装置(1A)は、共通結果判定装置(5)として、再帰型圧縮回路(208)と、比較回路(209)と、タイマー(205)を有する。
[第1のテスト制御装置(3)]
第1のテスト制御装置(3)の構成要素は、全体構成の説明で述べた通りである。第1のテスト制御回路(100)は、システムバス(13)を介して、CPU(10)と接続されている。第1のテスト制御回路(100)は、CPU(10)からの要求に従い、CPU(10)のスキャンテストを実行する。
パタン入力回路(101)は、第1のテスト制御回路(100)及びシステムバス(13)と接続されている。パタン入力回路(101)は、第1のテスト制御回路(100)からの要求に従い、システムバス(13)を介して、内蔵メモリ(11)、若しくは、外部メモリ(14)から複数のテストパタンを読み込む。なお、例えば、このテストパタンが外部メモリ(14)に予め格納されている場合、半導体装置(1A)の起動完了後に、CPU(10)は、外部メモリ(14)から内蔵メモリ(11)に転送してもよい。そして、パタン入力回路(101)は、内蔵メモリ(11)に転送されたテストパタンを読み込むようにしてもよい。
また、パタン入力回路(101)は、選択回路(300)を介して、CPU(10)と接続されている。パタン入力回路(101)は、選択回路(300)を介して、読み込んだ複数のテストパタンを順次CPU(10)の複数のスキャンチェーンに供給する。
すなわち、1つのテストパタンは、CPU(10)のスキャンチェーンの本数と同じビット数のデータとなる。1シフトサイクル(1クロック)毎に1つのテストパタンが複数のスキャンチェーンに入力される。ここで、外部メモリ(14)又は内蔵メモリ(11)に格納されたテストパタンのビット数がCPU(10)のスキャンチェーンの本数よりも少ない場合(すなわち、圧縮スキャンテストを採用した場合)、パタン入力回路(101)は、テストパタンをCPU(10)のスキャンチェーンの本数と同じビット数のデータに伸長して、スキャンチェーンに入力する。
第1の結果圧縮回路(206)は、CPU(10)の複数のスキャンチェーンから出力される多ビットのテスト結果を空間軸方向に圧縮する。ここで、テスト結果は、1シフトサイクルあたりに複数のスキャンチェーンから出力される多ビットのデータを意味する。よって、テスト結果は、CPU(10)が有するスキャンチェーンの本数と同じビット数の多ビット(例えば、数十から数百ビット)のデータとなる。第1の結果圧縮回路(206)は、例えば、XORをツリー状に構成した圧縮回路によって、多ビットのテスト結果を1ビットの符号に圧縮する。第1のテスト制御装置(3)は、圧縮スキャンテスト技術を想定したものである。第1の結果圧縮回路(206)は、選択回路(301)を介して、再帰型圧縮回路(208)と接続されている。第1の結果圧縮回路(206)は、選択回路(301)を介して、圧縮後のテスト結果(上記符号)を再帰型圧縮回路(208)に出力する。
第1の期待値記憶回路(103)は、第1の結果圧縮回路(206)から出力されたテスト結果を再帰型圧縮回路(208)で圧縮後の符号の期待値である第1の期待値が格納される。第1の期待値記憶回路(103)は、外部メモリ14又は内蔵メモリ11に格納される複数のテストパタンに応じた第1の期待値が予め格納されていてもよい。また、複数のテストパタンとともに外部メモリ14又は内蔵メモリ11に予め格納しておき、システム制御回路(15)が半導体装置(1A)の起動完了後に、外部メモリ14又は内蔵メモリ11から第1の期待値を読み出し、第1の期待値記憶回路(103)に書き込んでもよい。第1の期待値記憶回路(103)は、選択回路(302)を介して、比較回路(209)と接続されている。第1の期待値記憶回路(103)は、選択回路(302)を介して、第1の期待値を比較回路(209)に出力する。
[第2のテスト制御装置(4)]
第2のテスト制御装置(4)の構成要素は、全体構成の説明で述べた通りである。第2のテスト制御回路(200)は、システム制御回路(15)と接続されている。第2のテスト制御回路(200)は、システム制御回路(15)からの要求に従い、CPU(10)のスキャンテストを実行する。
パタン発生回路(201)は、第2のテスト制御回路(200)と接続されている。パタン発生回路(201)は、第2のテスト制御回路(200)の要求に従い、疑似乱数によって複数のテストパタンを発生(生成)させる。パタン発生回路(201)は、選択回路(300)を介して、CPU(10)と接続されている。パタン発生回路(201)は、選択回路(300)を介して、発生させた複数のテストパタンを順次CPU(10)の複数のスキャンチェーンに供給する。
第2の結果圧縮回路(207)は、CPU(10)の複数のスキャンチェーンから出力される複数の多ビットのテスト結果を時間軸方向に圧縮する。第2の結果圧縮回路(207)は、例えば、MISR(Multiple Input signature Register)によって、全てのテスト結果を、1つの多ビットの符号に圧縮する。すなわち、この符号は、複数のスキャンチェーンの本数と同じビット数の多ビットのデータとなる。なお、XORをツリー状に構成した圧縮回路によって空間方向に圧縮されたテスト結果をMISRの入力としても良い。すなわち、符号のビット数は、スキャンチェーンの本数よりも少なくなっても良い。第2のテスト制御装置(4)は、LogicBIST技術を想定したものである。第2の結果圧縮回路(207)は、選択回路(301)を介して、再帰型圧縮回路(208)と接続されている。第2の結果圧縮回路(207)は、選択回路(301)を介して、圧縮後のテスト結果(上記符号)を再帰型圧縮回路(208)に出力する。
第2の期待値記憶回路(203)は、第2の結果圧縮回路(207)から出力されたテスト結果を再帰型圧縮回路(208)で圧縮後の符号の期待値である第2の期待値が格納される。この第2の期待値は、例えば、パタン発生回路(201)が自身で生成したテストパタンに応じて生成し、第2の期待値記憶回路(203)に格納する。第2の期待値記憶回路(203)は、選択回路(302)を介して、比較回路(209)と接続されている。第2の期待値記憶回路(203)は、選択回路(302)を介して、第2の期待値を比較回路(209)に出力する。
なお、第1の期待値記憶回路(103)及び第2の期待値記憶回路(203)等のように、半導体装置(1A)が有する記憶回路は、例えば、電源及びグランドを利用して予め定められた値を固定的に示す回路、レジスタ、又は、メモリ等である。メモリは、例えば、RAM、ROM(例えばヒューズROMを含む)、FLASHメモリ等である。これは、以降の説明においても同様である。
[共通結果判定装置(5)]
共通結果判定装置(5)の構成要素は、全体構成の説明で述べた通りである。再帰型圧縮回路(208)は、圧縮後のテスト結果を時間軸方向に圧縮する。再帰型圧縮回路(208)は、例えば、SISR(Single Input signature Register)のように、自身に格納されるデータを循環させながら、入力されたデータと自身に格納されるデータとのXOR演算をし、その演算結果を自身に格納する複数ビットのレジスタで構成されている。再帰型圧縮回路(208)は、比較回路(209)と接続されている。再帰型圧縮回路(208)は、圧縮後のテスト結果を比較回路(209)に出力する。
比較回路(209)は、選択回路(302)を介して、第1の期待値記憶回路(103)、及び、第2の期待値記憶回路(203)と接続されている。また、比較回路(209)は、システム制御回路(15)とも接続されている。比較回路(209)は、再帰型圧縮回路(208)から出力された圧縮後のテスト結果と、第1の期待値記憶回路(103)、又は、第2の期待値記憶回路(203)からの出力された期待値とを比較する。比較回路(209)は、テスト結果と期待値とが不一致である場合、システム制御回路(15)に対して、エラーを通知する。一方、比較回路(209)は、テスト結果と期待値とが一致する場合、システム制御回路(15)に対して、正常を通知する。
タイマー(205)は、第1のテスト制御回路(100)及び第2のテスト制御回路(200)のそれぞれによるスキャンテスト実行時間を監視する回路である。すなわち、タイマー(205)は、いわゆる、ウォッチドックタイマーである。タイマー(205)は、第1のテスト制御回路(100)、若しくは、第2のテスト制御回路(200)からスキャンテストの開始を通知された時刻から、予め定めた時間が経過するまでに、第1のテスト制御回路(100)、若しくは、第2のテスト制御回路(200)からスキャンテストの終了が通知されなかった場合、システム制御回路(15)に対して、エラーを通知する。これによれば、第1のテスト制御回路(100)及び第2のテスト制御回路(200)によるスキャンテストが正常に終了しない異常を検出することができる。一方、タイマー(205)は、第1のテスト制御回路(100)、若しくは、第2のテスト制御回路(200)からスキャンテストの開始を通知された時刻から、予め定めた時間が経過するまでに、第1のテスト制御回路(100)、若しくは、第2のテスト制御回路(200)からスキャンテストの終了が通知された場合、システム制御回路(15)に対して、エラーは通知しない。
選択回路(300)は、パタン入力回路(101)及びパタン発生回路(201)のうち、いずれか一方から出力されたテストパタンを選択的にCPU(10)に出力する。選択回路(301)は、第1の結果圧縮回路(206)及び第2の結果圧縮回路(207)のうち、いずれか一方から出力されたテスト結果を再帰型圧縮回路(208)に出力する。選択回路(302)は、第1の期待値記憶回路(103)及び第2の期待値記憶回路(203)のうち、いずれか一方から出力された期待値を比較回路(209)に出力する。
続いて、図3を参照して、実施の形態1に係る半導体装置(1A)の自己診断時の動作について説明する。図3は、実施の形態1に係る半導体装置(1A)の自己診断時の動作を示すフロー図である。
図3では、各動作イベント(各処理ブロック)が矢印で連結されており、矢印の向きに従って時系列に動作イベントを行うことが表されている。矢印が分岐しているところは処理が並列して実行されることを示している。なお、ひし形の動作イベントは、条件分岐を表している。ひし形の動作イベントは、基本的に、下向きの矢印が動作イベントの条件に対して正常な判定がされた場合の分岐先を示しており、横向きの矢印が動作イベントの条件に対して異常な判定がされた場合の分岐先を示している。本実施の形態1に係る半導体装置(1A)の動作について、図2に示す半導体装置(1A)の例と、図3に示す動作フローを照らし合わせながら説明する。
[全体動作フロー]
半導体装置(1A)は、その電源が投入され、第2のテスト制御装置(4)及び共通結果判定装置(5)のリセットが解除されると、最初に、LFを検出するための診断を行う。以下、この診断を「起動時診断」とも言う。起動時診断には、第2のテスト制御装置(4)と共通結果判定装置(5)が用いられる。ここで、LFが検出されなければ、半導体装置(1A)は、通常動作を開始する。
また、半導体装置(1A)は、通常動作中、定期的に、その処理を中断してSPFを検出するための診断を行う。以下、この診断を「動作中診断」とも言う。ここで、動作中診断には、第1のテスト制御装置(3)と共通結果判定装置(5)が用いられる。SPFが検出されなければ、半導体装置(1A)は、通常動作を再開する。起動時診断、若しくは、動作中診断において、LF又はSPFが検出された場合、共通結果判定装置(5)は、システム制御回路(15)にエラーを通知する。
[起動時診断(LF検出フロー)]
起動時診断が開始されると、システム制御回路(15)は、CPU(10)の診断の開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、診断開始信号のアサートに応じて、CPU(10)の診断を開始する(S101)。また、第2のテスト制御回路(200)は、診断を開始するときに、第2のテスト制御装置(4)側(図2では「2」側)を選択するように、選択回路(300、301、302)を制御する。なお、この選択回路(300、301、302)の制御は、システム制御回路(15)が診断開始信号をアサートする前に実施してもよい。
また、第2のテスト制御回路(200)は、診断を開始するときに、CPU(10)に対して実施するスキャンテストの開始を通知する開始通知信号をタイマー(205)に出力する。タイマー(205)は、第2のテスト制御回路(200)からの開始通知信号に応じて、その開始通知信号が通知された時点からの経過時間の計測を開始する(S102)。タイマー(205)は、第2のテスト制御回路(200)によって実行されるスキャンテストと並行して動作する。タイマー(205)は、計測する経過時間が予め定めた閾値に達するまでに、スキャンテストが完了しなかった場合(つまり、第2のテスト制御回路(200)からスキャンテストの終了を通知する終了通知信号の出力が無い場合)、システム制御回路(15)にエラー(タイムアウト)を通知する通知信号を出力する(S102:タイムアウト)。なお、このタイマー(205)への終了通知信号の出力は、システム制御回路(15)が後述する比較回路(209)から通知信号を受けたときに実施してもよい。
なお、例えば、半導体装置(1A)が有する記憶回路(図示せず)に閾値が予め格納されており、タイマー(205)は、この記憶回路に格納された閾値を参照する。ここでは、第2のテスト制御回路(200)がタイマー(205)を制御する例について説明したが、システム制御回路(15)がタイマー(205)を直接制御するようにしてもよい。
第2のテスト制御回路(200)は、CPU(10)の診断を開始するため、パタン発生回路(201)にテストパタンを発生させる指示信号を出力する。パタン発生回路(201)は、第2のテスト制御回路(200)からの指示信号に応じて、テストパタンを発生する。テストパタンの発生には、例えば、LFSR(Linear Feedback Shift Register)を利用したPRPG(Pseudo Random Pattern Generator)を使用する。すなわち、この場合、第2のテスト制御回路(200)は、PRPGを有する。
このようにテストパタンを発生するようにしている理由は、半導体装置(1A)の起動中の状態では、半導体装置(1A)においてシステムバス(13)を含む多くのモジュールはその診断のために休止状態であり、システムバス(13)を介して、内蔵メモリ(11)又は外部メモリ(14)からテストパタンを読み込むことができないからである。そのため、記憶回路にテストパタンを保持する方法を採用する場合には、システムバス(13)を介さずにアクセスできる専用の記憶回路(例えばFLASHメモリ又はROM等)を用意する必要があるといったように手段が限られてしまう。
これに対して、上述したように、半導体装置(1A)の起動中における第2のテスト制御装置(4)及び共通結果判定装置(5)による診断では、疑似乱数を利用してテストパタンを発生させることで、半導体装置(1A)に専用の記憶回路を備える必要を無くし、半導体装置(1A)の面積コストを低く抑えることができる。
ここで、システムバス(13)の診断が終了してから、システムバス(13)を介して、内蔵メモリ(11)又は外部メモリ(14)からテストパタンを読み込むようにすることで、専用の記憶回路を備える必要は無くなる。しかしながら、この方法では、システムバス(13)の診断が終了するまで、CPU(10)の起動時診断を開始することができなくなってしまう。これは、半導体装置は起動完了するまでの時間が制限されていることが多いため(例えば50msec以内)、好ましくない。それに対して、上述したように、疑似乱数を利用してテストパタンを発生させることで、システムバス(13)の診断と並行して、CPU(10)の起動時診断を実行することができるため、半導体装置(1A)の起動時間を短縮し、半導体装置(1A)を制限時間内に起動完了することが可能となる。
パタン発生回路(201)は、発生させた複数のテストパタンを、順次CPU(10)のスキャンチェーンに供給し、CPU(10)のスキャンテストを実行する。すなわち、CPU(10)は、スキャンチェーンに供給されたテストパタンによる動作(キャプチャ)を行う。この動作の結果、スキャンチェーンに格納されたテスト結果は、逐次、第2の結果圧縮回路(207)によって取得されて、全てのテスト結果が1つの符号に圧縮される。
CPU(10)の起動時診断として必要な全てのテストパタンの供給が完了し、全てのテスト結果を第2の結果圧縮回路(207)で圧縮した後、第2の結果圧縮回路(207)は、複数のテスト結果(符号)を1ビットずつシリアルに再帰型圧縮回路(208)に出力する。再帰型圧縮回路(208)は、第2の結果圧縮回路(207)から出力された圧縮後のテスト結果を再圧縮する。これにより、再帰型圧縮回路(208)がSISRを有する場合には、(第2の結果圧縮回路(207)によって圧縮後の多ビットのテスト結果のビット数×1)のサイズのテスト結果がSISRの段数のサイズに圧縮される。再帰型圧縮回路(208)は、圧縮後のテスト結果を比較回路(209)に出力する。
比較回路(209)は、再帰型圧縮回路(208)から出力された圧縮後のテスト結果と、第2の期待値記憶回路(203)に格納された第2の期待値とが一致しているか否かを判定する(S103)。
比較回路(209)は、比較結果が一致した場合、CPU(10)が正常であると判定する(S103:正常)。この場合、比較回路(209)は、正常を通知する通知信号をシステム制御回路(15)に出力する。
一方、比較回路(209)は、比較結果が不一致であった場合、CPU(10)が異常であると判定する(S103:異常)。すなわち、この場合は、LFが検出されたことになる。この場合、比較回路(209)は、エラーを通知する通知信号をシステム制御回路(15)に出力する。
タイマー(205)又は比較回路(209)からエラーを通知する通知信号が出力された場合、システム制御回路(15)は、速やかに半導体装置(1A)におけるシステムを停止させる処理を行い、半導体装置(1A)におけるシステムを停止させる(S111)。すなわち、システム制御回路(15)は、半導体装置(1A)の起動を抑止する。
また、第2のテスト制御回路(200)は、スキャンテストが終了したときに、スキャンテストの終了を通知する終了通知信号をタイマー(205)に出力する。
[動作中診断(SPF検出フロー)]
CPU(10)のLFの診断結果が正常である場合(S103:正常)、システム制御回路(15)は、CPU(10)の起動を開始する(S104)。CPU(10)は、その起動完了後、アプリケーションプログラムの処理を実行する(S105)。また、CPU(10)は、このアプリケーションプログラムの処理において、定期的(所定時間経過する毎)に自己診断を行う処理も実行する。所定時間が経過して自己診断を行う処理に入ると(S106:Yes)、CPU(10)は、システムバス(13)を介して、CPU(10)の診断の開始を指示する診断開始信号をアサートして第1のテスト制御回路(100)に出力し、自身は処理を停止した状態(例えば、スリープ状態)に遷移する(S107)。
第1のテスト制御回路(100)は、診断開始信号のアサートに応じて、CPU(10)の診断を開始する(S108)。また、第1のテスト制御回路(100)は、第1のテスト制御装置(3)側、図2では「1」側)を選択するように、選択回路(300、301、302)を制御する。なお、この選択回路(300、301、302)の制御は、CPU(10)が診断開始信号をアサートする前に実施してもよい。
また、第1のテスト制御回路(100)は、診断を開始するときに、CPU(10)に対して実施するスキャンテストの開始を通知する開始通知信号をタイマー(205)に出力する。タイマー(205)は、第1のテスト制御回路(100)からの開始通知信号に応じて、その開始通知信号が通知された時点からの経過時間の計測を開始する(S109)。タイマー(205)は、第1のテスト制御回路(100)によって実行されるスキャンテストと並行して動作する。タイマー(205)は、計測する経過時間が予め定めた閾値に達するまでに、スキャンテストテストが完了しなかった場合(つまり、第1のテスト制御回路(100)からスキャンテストの終了を通知する終了通知信号の出力が無い場合)、システム制御回路(15)にエラー(タイムアウト)を通知する(S109:タイムアウト)。なお、このタイマー(205)への終了通知信号の出力は、システム制御回路(15)が、後述する比較回路(209)から通知信号を受けたときに実施してもよい。
なお、例えば、上述したように、タイマー(205)が、半導体装置(1A)が有する記憶回路に格納された閾値を参照する。また、この動作中診断で使用される閾値と、起動時診断で使用される閾値とは異なっていてもよい。
第1のテスト制御回路(100)は、CPU(10)の診断を開始するため、パタン入力回路(101)に、システムバス(13)を介して、テストパタンの入力を指示する指示信号を出力する。パタン入力回路(101)は、第1のテスト制御回路(100)からの指示信号に応じて、内蔵メモリ(11)、若しくは、外部メモリ(14)からテストパタンを取得する。
これは、短いテスト時間で、高い故障検出率を実現するために、任意の値で構成させたテストパタンを利用するためである。任意の値を利用することから、データ量が大きくなり易い。しかしながら、テストパタンを外部メモリ(14)に格納した場合には、半導体装置(1A)の面積コストを低く抑えることができる。
パタン入力回路(101)は、取得した複数のテストパタンを、CPU(10)のスキャンチェーンに供給し、CPU(10)のスキャンテストを実行する。すなわち、CPU(10)は、スキャンチェーンに供給されたテストパタンによる動作(キャプチャ)を行う。この動作の結果、スキャンチェーンに格納されたテスト結果は、逐次、第1の結果圧縮回路(206)によって取得されて、1ビットの符号に圧縮される。第1の結果圧縮回路(206)は、圧縮後のテスト結果(符号)を1ビットずつシリアルに再帰型圧縮回路(208)に出力する。再帰型圧縮回路(208)は、第1の結果圧縮回路(206)から出力された圧縮後のテスト結果(符号)を再圧縮する。これにより、再帰型圧縮回路(208)がSISRを有する場合には、(第1の結果圧縮回路(206)によって圧縮後の1ビットのテスト結果×その個数)のサイズのテスト結果がSISRの段数のサイズに圧縮される。再帰型圧縮回路(208)は、圧縮後のテスト結果を比較回路(209)に出力する。
比較回路(209)は、再帰型圧縮回路(208)から出力された圧縮後のテスト結果と、第1の期待値記憶回路(103)に格納された第1の期待値とが一致しているか否かを判定する(S110)。
比較回路(209)は、比較結果が一致した場合、正常を通知する通知信号をシステム制御回路(15)に出力する。比較回路(209)から正常を通知する通知信号が出力された場合、システム制御回路(15)は、CPU(10)が正常であると判定する(S110:正常)。
CPU(10)が正常であると判定された場合(S110:正常)、システム制御回路(15)は、CPU(10)をリセットし、再起動する(S104)。CPU(10)は、再起動完了後、上述のステップS107で停止していた処理を再開する(S105)。そして、CPU(10)は、所定時間の経過後(S106:Yes)、再度、自己診断を行う処理を実行する(S107)。
一方、比較回路(209)は、比較結果が不一致であった場合、エラーを通知する通知信号をシステム制御回路(15)に出力する。比較回路(209)からエラーを通知する通知信号が出力された場合、システム制御回路(15)は、CPU(10)が異常であると判定する(S110:異常)。すなわち、この場合は、SPFが検出されたことになる。
CPU(10)が異常であると判定された場合(S110:異常)、システム制御回路(15)は、速やかに半導体装置(1A)におけるシステムを停止させる処理を行い、半導体装置(1A)におけるシステムを停止させる(S111)。
[機能安全の観点におけるSPF/LF検出の補足説明]
本実施の形態1の構成および動作において、SPFとLFの両方の検出が実施できており、機能安全が有効とされている理由を、以下に説明する。
SPFは、単一の故障による障害であって、本実施の形態1においては、CPU(10)の故障により発生する障害が該当する。CPU(10)の故障は、第1のテスト制御装置(3)によって定期的に実施されるスキャンテストと、共通結果判定装置(5)による結果判定により検出されており、本実施の形態1によって半導体装置(1A)のSPFに対する安全性(信頼性)は向上していると言える。
LFは、複数の故障が同時に発生することによる障害である。例えば、安全機構に発生した故障により、本来、安全機構が検出すべきSPFが検出されなくなる障害のことである。本実施の形態1においては、CPU(10)、及び、共通結果判定装置(5)の故障により発生する障害が該当する。より具体的には、CPU(10)は、SPFを検出するための動作(以降、動作中診断)を開始するモジュールであるが、CPU(10)の動作中診断を起動する機構に故障が発生して動作中診断が起動できなかった場合、それと同時に発生したCPU(10)の故障が見逃されてしまう。その結果、安全性の向上が妨げられてしまう。次に、共通結果判定装置(5)については、テスト結果と期待値との比較結果に依らず、常にCPU(10)が正常であるとシステム制御回路(15)に通知してしまうような故障が共通結果判定装置(5)に発生してしまった場合、動作中診断により検出できたはずのCPU(10)の故障がシステム制御回路(15)に通知されなくなり、やはり安全性の向上が妨げられてしまう。
CPU(10)の故障については、第2のテスト制御装置(4)と共通結果判定装置(5)によって半導体装置(1A)の起動時に実施されるスキャンテストにより検出される。共通結果判定装置(5)の故障については、LFを検出するための動作(以降、起動時診断)によって機能的に診断されている。なぜなら、共通結果判定装置(5)が有する再帰型圧縮回路(208)は、入力されたデータと自身のデータのXORを取りながら、さらに自身の値も循環させる複数ビットのレジスタを有しているため、1ビットの反転が結果を大きく変える構造となっている。そのため、第2のテスト制御装置(4)が出力するテスト結果のみならず、再帰型圧縮回路(208)が期待と異なる動作を行えば、テスト結果が期待値とは異なる値となることで現れるからである。なお、比較回路(209)の誤判定については、起動時診断において、後述する比較回路(209)の診断を追加することで実現できる。
なお、第1のテスト制御装置(3)については、どこが故障したとしても安全性向上が妨げられることはない。例えば、パタン入力回路(101)とCPU(10)に対して同時に故障が発生したとしても、その故障は、再帰型圧縮回路(208)が生成する最終的なテスト結果と期待値の不一致として具現化する。その結果、システム制御回路(15)にエラーが通知され、システムを安全状態に移行させる制御を行うことができる。つまり、CPU(10)による動作中診断が正常に行われ、共通結果判定装置(5)による評価が正しければ、その診断中の動作がどうであれ、安全性向上の妨げとはならない。
以上の理由により、本実施の形態1によれば、半導体装置(1A)のLFに対する安全性は向上していると言える。すなわち、本実施の形態1によれば、SPF及びLFの両方を検出することができ、半導体装置(1A)の信頼性をより向上させることができる。
また、実施の形態1では、再帰型圧縮回路(208)と比較回路(209)を有する共通結果判定装置(5)が、CPU(10)のSPFを検出する第1のテスト制御装置(3)と、CPU(10)のLFを検出する第2のテスト制御装置(4)とで、共有されている点である。本構成により、起動時診断を実施することによって再帰型圧縮回路(208)と比較回路(209)のLFが検出されるので、「CPU(10)のSPFを検出する診断装置」に対して、さらにLFを検出するための追加の診断装置が不要になる。
さらに、実施の形態1は、SPFを検出するためにスキャンテスト(圧縮スキャン)を利用した第1のテスト制御装置(3)を用い、LFを検出するために同じくスキャンテスト(LogicBIST)を利用した第2のテスト制御装置(4)を用いている。
本構成によれば、SPFとLFの両方が検出可能な、安全性の高い半導体装置を低コストで実現することができる。具体的には、CPU(10)の動作中診断において、第1のテスト制御装置(3)によりCPU(10)のスキャンテストを実施することで、CPU(10)を二重化せずともSPFの検出が可能になり、CPU(10)の二重化にかかる面積及び消費電力を削減することで低コスト化ができる。また、CPU(10)の起動時診断において、第2のテスト制御装置(4)によるCPU(10)のスキャンテストを実施し、SPFの検出にも共通で使用する再帰型圧縮回路(208)及び比較回路(209)でその結果を用いた判定を行うことで、スキャンテストによってCPU(10)のLFを検出し、再帰型圧縮回路(208)と比較回路(209)のLFを検出することで、安全性を高めることができる。
なお、本実施の形態1において、被テスト回路(診断対象の回路)がCPUである例について説明したが、被テスト回路はCPUに限定されるものではない。高い安全性が必要とされる半導体装置において、各種処理モジュールに対して適用できるものである。
<実施の形態1の変形例>
続いて、実施の形態1の変形例について説明する。図4を参照して、実施の形態1の変形例に係る半導体装置(1A)の自己診断時の動作について説明する。図4は、実施の形態1の変形例に係る半導体装置(1A)の自己診断時の動作を示すフロー図である。図3に示した動作において、起動時診断において、比較回路(209)が故障していないかどうかを診断する動作を追加してもよい。図4では、その動作について説明する。図4に示す動作は、図3に示した動作と比較して、ステップS101及びS102と、ステップS103との間に、ステップS112が追加されている。
システム制御回路(15)は、CPU(10)の診断の開始を指示する前に、比較回路(209)の診断の開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、診断開始信号のアサートに応じて、比較回路(209)の診断を開始する(S112)。
ステップS112は、ステップS103と同様に、CPU(10)のスキャンテストを実施するが、第2のテスト制御回路(200)が第2の期待値記憶回路(203)に格納する第2の期待値が、故意にエラーが発生する値であるという点が異なる。
よって、ステップS112では、比較回路(209)からエラーを通知する通知信号が出力された場合、システム制御回路(15)は、比較回路(209)が正常であると判定する(S112:正常)。この場合、半導体装置(1A)の動作は、ステップS103に進む。
一方、比較回路(209)から正常を通知する通知信号が出力された場合、システム制御回路(15)は、CPU(10)が異常であると判定する(S112:異常)。この場合、システム制御回路(15)は、速やかに半導体装置(1A)におけるシステムを停止させる処理を行い、半導体装置(1A)におけるシステムを停止させる(S111)。すなわち、システム制御回路(15)は、半導体装置(1A)の起動を抑止する。
なお、比較回路(209)の診断は、上述したようにスキャンテストを実施することに限られない。例えば、システム制御回路(15)は、半導体装置(1A)の起動時に、再帰型圧縮回路(208)から比較回路(209)に出力される初期値と異なる第2の期待値を第2の期待値記憶回路(203)に格納し、比較回路(209)から出力される初期値と、第2の期待値記憶回路(203)に格納された第2の期待値の比較動作及びその比較結果に応じた通知のみを比較回路(209)に実施させることで、比較回路(209)を診断するようにしてもよい。
以上に説明したように、本実施の形態1の変形例では、スキャンテストを実施する前に、比較回路(209)に異なる値を比較させて、一致すると判定された場合に、半導体装置(1A)の動作を停止させるようにしている。これによれば、比較回路(209)の故障を検出し、故障している比較回路(209)によってテスト結果が判定されてしまうことを防止することができる。
<実施の形態2>
続いて、実施の形態2について説明する。以下の実施の形態2の説明では、上述した実施の形態1と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。図5を参照して、実施の形態2に係る半導体装置(1B)の構成について説明する。図5は、実施の形態2に係る半導体装置(1B)の構成を示すブロック図である。
図5に示すように、半導体装置(1B)は、その機能を構成する要素として、複数の被テスト回路(40、50、60)と、システム制御回路(15)を有する。なお、図5では、被テスト回路の数が3つである例について示しているが、被テスト回路の数は、これに限られない。
被テスト回路(40、50、60)のそれぞれは、被テスト回路(2)と同様である。したがって、被テスト回路(40、50、60)のそれぞれは、例えば、CPU(10)である。
また、半導体装置(1B)は、複数の第1のテスト制御装置(41、51、61)と、複数の第2のテスト制御装置(42、52、62)と、複数の共通結果判定装置(43、53、63)とを有する。
複数の第1のテスト制御装置(41、51、61)のそれぞれは、第1のテスト制御装置(3)と同様である。よって、複数の第1のテスト制御装置(41、51、61)のそれぞれは、第1のテスト制御回路(100)と、パタン入力回路(101)と、第1の結果圧縮回路(206)と、第1の期待値記憶回路(103)を有する(図示せず)。
第2のテスト制御装置(42、52、62)のそれぞれは、第2のテスト制御装置(4)と同様である。よって、第2のテスト制御装置(42、52、62)のそれぞれは、第2のテスト制御回路(200)と、パタン発生回路(201)と、第2の結果圧縮回路(207)と、第2の期待値記憶回路(203)を有する(図示せず)。
共通結果判定装置(43、53、63)のそれぞれは、共通結果判定装置(5)と同様である。よって、共通結果判定装置(43、53、63)のそれぞれは、再帰型圧縮回路(208)と、比較回路(209)と、タイマー(205)を有する。
すなわち、第1のテスト制御装置(41、51、61)のそれぞれ及び共通結果判定装置(43、52、62)のそれぞれは、被テスト回路(40、50、60)のそれぞれの動作中診断を実施する装置に相当する。第2のテスト制御装置(42、52、62)のそれぞれ及び共通結果判定装置(43、53、63)のそれぞれは、被テスト回路(40、50、60)のそれぞれの起動時診断を実施する装置に相当する。
また、半導体装置(1B)は、ANDゲート(44、54、64)と、テスト対象設定回路(70)とを有する。
ANDゲート(44)は、システム制御回路(15)から第2のテスト制御装置(42)に対する診断開始信号が伝送される信号線に挿入される。ANDゲート(54)は、システム制御回路(15)から第2のテスト制御装置(52)に対して診断開始信号が伝送される信号線に挿入される。ANDゲート(64)は、システム制御回路(15)から第2のテスト制御装置(62)に対する診断開始信号が伝送される信号線に挿入される。
ANDゲート(44)は、システム制御回路(15)から出力される診断開始信号と、テスト対象設定回路(70)から出力されるテスト対象設定信号の反転値が入力される。ANDゲート(54)は、システム制御回路(15)から出力される診断開始信号と、テスト対象設定回路(70)から出力されるテスト対象設定信号の反転値が入力される。ANDゲート(64)は、システム制御回路(15)から出力される診断開始信号と、テスト対象設定回路(70)から出力されるテスト対象設定信号の反転値が入力される。
ANDゲート(44、54、64)のそれぞれは、テスト対象設定回路(70)から出力されるテスト対象設定信号の反転値と、システム制御回路(15)から出力される診断開始信号とをAND演算し、その演算結果となる信号を、第2のテスト制御装置(42)に出力する。
テスト対象設定回路(70)が有する記憶回路(図示せず)は、被テスト回路(40、50、60)のそれぞれについて、半導体装置(1B)の起動時における起動時診断の対象であるか否かを示す値が格納される。この記憶回路は、例えば、半導体装置(1B)の製造完了以降の工程で、任意にその値を変更可能なメモリである。このメモリは、例えば、FLASHメモリ又はヒューズROM等である。テスト対象設定回路(70)は、被テスト回路(40、50、60)のそれぞれについての値を、テスト対象設定信号としてANDゲート(44、54、64)のそれぞれに出力する。より具体的には、半導体装置(1B)の起動時における起動時診断の対象である場合には、Lowレベルのテスト対象設定信号が出力され、半導体装置(1B)の起動時における起動時診断の対象でない場合には、Highレベルのテスト対象設定信号が出力される。
テスト対象設定回路(70)から出力されるテスト対象設定信号がLowレベルである場合、ANDゲート(44)は、システム制御回路(15)から出力される診断開始信号を、そのまま第2のテスト制御装置(42)に出力する。つまり、システム制御回路(15)から出力されるHighレベルの診断開始信号(アサートされた診断開始信号)を、そのまま第2のテスト制御装置(42)に出力することができる。よって、システム制御回路(15)によって第2のテスト制御装置(42)による起動時診断を開始することが可能である。
一方、テスト対象設定回路(70)から出力されるテスト対象設定信号がHighレベルである場合、ANDゲート(44)は、システム制御回路(15)から出力される診断開始信号の値に関わらず、常にLowレベルの信号(ネゲートされた信号)を、診断開始信号として第2のテスト制御装置(42)に出力する。つまり、システム制御回路(15)によって第2のテスト制御装置(42)による起動時診断が開始することができなくなる。
なお、以上に説明した動作は、ANDゲート(54、64)も同様であるため、その説明は省略する。
以上に説明したように、本実施の形態2では、テスト対象設定回路(70)に、複数の被テスト回路(40、50、60)のそれぞれについて、半導体装置(1B)の起動時における、複数の第2のテスト制御装置(42、52、62)によるスキャンテストの対象であるか否かを示す値が格納されている。そして、複数の第2のテスト制御装置(42、52、62)のそれぞれは、その値に従って、半導体装置(1B)の起動時に、スキャンテストを実施するようにしている。そのため、任意の被テスト回路の起動時診断自体を無効にして、起動時診断の対象を削減することができる。すなわち、任意の被テスト回路に対して、起動時診断を実施しないことにより、半導体装置(1B)の起動時間を短縮できる。これによれば、半導体製品を出荷する前に、その設定を変更できるため、安全性向上を優先する場合、及び、起動速度を優先する場合等のように、複数の顧客ニーズに対応することができる。
<実施の形態3>
続いて、実施の形態3について説明する。以下の実施の形態3の説明では、上述した実施の形態2と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
[構成]
図6を参照して、実施の形態3に係る半導体装置(1C)の構成について説明する。図6は、実施の形態3に係る半導体装置(1C)の構成を示すブロック図である。図3に示すように、半導体装置(1C)は、実施の形態2に係る半導体装置(1B)と比較して、さらに、複数のORゲート(45、55、65)を有する。また、図6では、システムバス(13)を明示している。
ORゲート(45)は、ANDゲート(44)から第2のテスト制御装置(42)に対する診断開始信号が伝送される信号線に挿入される。ORゲート(55)は、ANDゲート(54)から第2のテスト制御装置(52)に対する診断開始信号が伝送される信号線に挿入される。ORゲート(65)は、ANDゲート(64)から第2のテスト制御装置(62)に対する診断開始信号が伝送される信号線に挿入される。
ORゲート(45、55、65)のそれぞれの一方の入力端子は、上述したようにANDゲート(44、54、64)のそれぞれの出力端子に接続されており、ORゲート(45、55、65)のそれぞれの他方の入力端子は、システムバス(13)に接続されている。
ORゲート(45、55、65)のそれぞれは、ANDゲート(44、54、64)のそれぞれから出力される診断開始信号と、システムバス(13)から出力される診断開始信号とをOR演算し、演算結果となる信号を、第2のテスト制御装置(42)に出力する。
[動作]
システムバス(13)から出力される診断開始信号がLowレベルである場合、ORゲート(45)は、ANDゲート(44)から出力される診断開始信号をそのまま第2のテスト制御装置(42)に出力する。つまり、テスト対象設定回路(70)において被テスト回路(40)がテスト対象として設定されており、テスト対象設定回路(70)からANDゲート(44)に出力されるテスト対象設定信号がLowレベルである場合、システム制御回路(15)によって、第2のテスト制御装置(42)による起動時診断を開始することが可能である。
一方で、システムバス(13)から出力される診断開始信号がHighレベルである場合、ORゲート(45)は、ANDゲート(44)から出力される診断開始信号の値に関わらず、常にHighレベルの信号を診断開始信号として第2のテスト制御装置(42)に出力する。つまり、テスト対象設定回路(70)において、被テスト回路(40)がテスト対象として設定されておらず、テスト対象設定回路(70)からANDゲート(44)に出力されるテスト対象設定信号がHighレベルである場合であっても、システムバス(13)から出力される診断開始信号がアサートされたとき(LowレベルからHighレベルに変更されたとき)に、第2のテスト制御装置(42)による起動時診断を開始することが可能である。
なお、以上に説明した動作は、ORゲート(55、65)も同様であるため、その説明は省略する。
続いて、図7を参照して、実施の形態3に係る半導体装置(1C)の自己診断時の動作について説明する。図7は、実施の形態3に係る半導体装置(1C)の自己診断時の動作を示すフロー図である。
図7では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列にイベントを行うことが表されている。矢印が分岐しているところは処理が並列して実行されることを示している。なお、ひし形のイベントについては、分岐を表す。ひし形のイベントは、基本的に、下向きの矢印がイベントの内容に対して正常な状態であった場合の次処理を指している。本実施の形態3における動作の説明は、図6に示す半導体装置(1C)の例と、図7に示す動作フローを照らし合わせながら行う。
[動作フロー]
ここでは、テスト対象設定回路(70)において、被テスト回路(40、50、60)のうち、被テスト回路(40)のみが、半導体装置(1C)の起動時における起動時診断の対象として定められているものとする。半導体装置(1C)は、その電源が投入され、第2のテスト制御装置(42、52、62)及び共通結果判定装置(43、53、63)のリセットが解除されると、起動時診断を開始する。起動時診断が開始されると、システム制御回路(15)は、第2のテスト制御装置(42)によって被テスト回路(40)の診断を開始する(S201)。
共通結果判定装置(43)は、テスト結果と期待値が不一致であると判定した場合(S202:異常)、被テスト回路(40)が異常であるとして、システム制御回路(15)にエラーを通知する。なお、タイマー(205)でタイムアウトを検出した場合も同様である。一方、共通結果判定装置(43)は、被テスト回路(40)が正常であると判定した場合(S202:正常)、システム制御回路(15)に正常である旨を通知する。システム制御回路(15)は、この通知に応じて、被テスト回路(40)を起動する(S203)。これにより、被テスト回路(40)は、通常動作状態となり、その機能に応じた処理を開始する(S204)。
なお、ステップS201、S202における具体的な動作は、図3のステップS101〜S103における動作と同様であるため、その説明は省略する。
被テスト回路(40)が通常動作を開始することで、半導体装置(1C)のシステムが立ち上がる(すなわち、半導体装置(1C)の起動が完了する)。半導体装置(1C)の起動後に、被テスト回路(40)は、その機能に応じた処理として、システムバス(13)を介して、第2のテスト制御装置(52)及び第2のテスト制御装置(62)のそれぞれに対して、被テスト回路(50)及び被テスト回路(60)のそれぞれの診断の開始を要求する。すなわち、被テスト回路(40)は、システムバス(13)を介してORゲート(55、65)のそれぞれに出力している診断開始信号をアサートする(診断開始信号をLowレベルからHighレベルに変更する)。これにより、第2のテスト制御装置(52)及び第2のテスト制御装置(62)のそれぞれによって、被テスト回路(50)及び被テスト回路(60)のそれぞれの診断が開始される(S205、S209)。
ここで、被テスト回路(40)は、例えば、システムバス(13)を介して、テスト対象設定回路(70)に格納された値を参照し、その値が起動時診断の対象でないと示す被テスト回路(50、60)に対応する第2のテスト制御装置(52)及び第2のテスト制御装置(62)に対して、起動時診断の診断開始信号をアサートする。なお、被テスト回路(40)は、起動時診断の対象でないと示された被テスト回路(50、60)の全てについて起動時診断を実施しなくてもよい。被テスト回路(40)は、起動時診断の対象でないと示された被テスト回路(50、60)のうち、予め定められた一部の被テスト回路のみについて起動時診断を実施するようにしてもよい。例えば、この起動時診断の対象となる被テスト回路は、テスト対象設定回路(70)に起動時診断の対象を示す値とは別途格納された値によって示されていてもよく、被テスト回路(40)が実行するアプリケーションプログラムの処理として定められていてもよく、外部メモリ(14)に格納された値によって示されていてもよい。
共通結果判定装置(53)は、テスト結果と期待値が不一致であると判定した場合(S206:異常)、被テスト回路(50)が異常であるとして、システム制御回路(15)にエラーを通知する。なお、タイマー(205)でタイムアウトを検出した場合も同様である。一方、共通結果判定装置(53)は、被テスト回路(50)が正常であると判定した場合(S206:正常)、システム制御回路(15)に正常である旨を通知する。システム制御回路(15)は、この通知に応じて、被テスト回路(50)を起動する(S207)。これにより、被テスト回路(50)は、通常動作状態となり、その機能に応じた処理を開始する(S208)。
共通結果判定装置(63)は、テスト結果と期待値が不一致であると判定した場合(S210:異常)、被テスト回路(60)が異常であるとして、システム制御回路(15)にエラーを通知する。なお、タイマー(205)でタイムアウトを検出した場合も同様である。一方、共通結果判定装置(63)は、被テスト回路(60)が正常であると判定した場合(S210:正常)、システム制御回路(15)に正常である旨を通知する。システム制御回路(15)は、この通知に応じて、被テスト回路(60)を起動する(S211)。これにより、被テスト回路(60)は、通常動作状態となり、その機能に応じた処理を開始する(S212)。
システム制御回路は(15)は、エラーが通知された場合、速やかに半導体装置(1C)におけるシステムを停止させる処理を行い、半導体装置(1C)におけるシステムを停止させる(S213)。なお、システム制御回路は(15)は、被テスト回路(50)及び被テスト回路(60)の少なくとも1つについて、エラーが通知された場合には、エラーが通知された被テスト回路(50)及び被テスト回路(60)の起動を抑止して、システムの動作を継続させてもよい。
なお、被テスト回路(40、50、60)のそれぞれは、通常動作の処理において、定期的に自身の起動時診断を開始させるが、この動作は、実施の形態1で説明した内容と同様であるため、その説明を省略する。
[特徴及び効果]
以上に説明した本実施の形態3では、複数の起動時診断の対象のそれぞれに対して、診断の開始を指示する経路を複数有している。本実施の形態3では、電源投入直後のリセット解除後にシステム制御回路(15)から診断が起動される経路と、半導体装置(1C)のシステムの立ち上げが完了した後にシステムバス(13)を介して診断が起動される経路と、の2つの経路を有している。言い換えると、テスト対象設定回路(70)に格納された値が、第2のテスト制御装置によるスキャンテストの対象であると示す被テスト回路(40)は、テスト対象設定回路(70)に格納された値が、第2のテスト制御装置によるスキャンテストの対象でないと示す被テスト回路(50、60)のうち、所定の被テスト回路(全部又は一部の被テスト回路)に対応する第2のテスト制御装置(52、62)に対して、起動時診断(スキャンテスト)の実施を指示するようにしている。これによれば、高い安全性を担保しながらもシステムの立ち上げ時間を短縮できる。
その理由は、半導体装置(1C)における被テスト回路(40、50、60)の全てが、その起動直後から動作を開始するものではないため、その自己診断においても優先順位がつけられるという考えに基づく。例えば、被テスト回路が、外部ネットワークと通信を行う通信モジュールである場合には早々に起動する必要があり、起動直後にその自己診断が実施されなければならない。一方で、被テスト回路が、画像処理を行うモジュールのように、その動作が期待されるタイミングが通信モジュールと比べて後になるものに対しては、半導体装置(1C)の起動が完了した後にゆっくり自己診断を実施すればよい。何故なら、その動作が期待される前に発生する故障は、LFにも該当しないとみなせるからである。
<実施の形態4>
続いて、実施の形態4について説明する。以下の実施の形態4の説明では、上述した実施の形態1と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
[構成]
図8を参照して、実施の形態4に係る半導体装置(1D)の構成について説明する。図8は、実施の形態4に係る半導体装置(1D)の構成を示すブロック図である。図8に示すように、半導体装置(1D)は、実施の形態1に係る半導体装置(1A)と比較して、第1の結果圧縮回路(206)、第2の結果圧縮回路(207)及び共通結果判定装置(5)(タイマー(205)、再帰型圧縮回路(208)及び比較回路(209))に代えて、第1の結果判定回路(102)、第1のタイマー(104)、第2の結果判定回路(202)及び第2のタイマー(204)を有する点と、さらに遮断回路(16、17)を有する点が異なる。
第1の結果判定回路(102)は、第1の結果圧縮回路(206)と、再帰型圧縮回路(208)と、比較回路(209)とを有する(図示せず)。第2の結果判定回路(202)は、第2の結果圧縮回路(207)と、再帰型圧縮回路(208)と、比較回路(209)とを有する(図示せず)。
すなわち、実施の形態1に係る半導体装置(1A)は、テスト結果を判定する回路として、起動時診断と動作中診断で共用される共通結果判定装置(5)を有していたが、本実施の形態4に係る半導体装置(1D)は、テスト結果を判定する回路として、起動時診断と動作中診断とで別々に利用される回路を有している。半導体装置(1D)は、動作中診断に利用される回路として、第1の結果判定回路(102)と第1のタイマー(104)を有し、起動時診断に利用される回路として、第2の結果判定回路(202)と第2のタイマー(204)を有している。
よって、本実施の形態4では、第1のテスト制御回路(100)、パタン入力回路(101)、第1の結果判定回路(102)の一部(第1の結果圧縮回路(206))、及び、第1の期待値記憶回路(103)が、第1のテスト制御装置(3)として機能する。また、第2のテスト制御回路(200)、パタン発生回路(201)、第2の結果判定回路(202)の一部(第2の結果圧縮回路(207))、及び、第2の期待値記憶回路(203)が、第2のテスト制御装置(4)として機能する。
第1の結果判定回路(102)は、CPU(10)のスキャンチェーンから出力されるテスト結果を取得し、取得したテスト結果を第1の結果圧縮回路(206)及び再帰型圧縮回路(208)によって圧縮する。第1の結果判定回路(102)は、圧縮後のテスト結果と、第1の期待値記憶回路(103)から出力された第1の期待値とを、比較回路(209)によって比較する。なお、具体的なテスト結果の圧縮方法と、比較結果に応じたシステム制御回路(15)への通知内容等については、実施の形態1と同様であるため、その説明を省略する。
ここで、半導体装置(1D)は、第1のテスト制御回路(100)、パタン入力回路(101)、第1の結果判定回路(102)、第1の期待値記憶回路(103)、及び、第1のタイマー(104)、を含む動作中診断装置(20)を有している。動作中診断装置(20)は、自身をスキャンテストするための複数のスキャンチェーンを有している。なお、動作中診断装置(20)のスキャンチェーンのうち、CPU(10)における部分は、第1のテスト制御装置(3)によって利用されるCPU(10)のスキャンチェーンと共用されていてもよい。そして、本実施の形態4では、実施の形態1と異なり、第2のテスト制御装置(4)がスキャンテストの対象とする回路は、CPU(10)のみではなく、CPU(10)を含む動作中診断装置(20)である。よって、本実施の形態4では、実施の形態1と異なり、パタン発生回路(201)は、CPU(10)のみのスキャンチェーンではなく、動作中診断装置(20)のスキャンチェーンにテストパタンを入力する。
第2の結果判定回路(202)は、動作中診断装置(20)のスキャンチェーンから出力されるテスト結果を取得し、取得したテスト結果を第2の結果圧縮回路(207)及び再帰型圧縮回路(208)によって圧縮する。第2の結果判定回路(202)は、圧縮後のテスト結果と、第2の期待値記憶回路(203)から出力された第2の期待値とを、比較回路(209)によって比較する。なお、具体的なテスト結果の圧縮方法と、比較結果に応じたシステム制御回路(15)への通知内容等については、実施の形態1と同様であるため、その説明を省略する。
第1のタイマー(104)及び第2のタイマー(204)のそれぞれの動作は、タイマー(205)の動作と同様であるため、説明を省略する。ただし、第1のタイマー(104)は、第2のテスト制御回路(200)によるスキャンテスト実行時間は監視せず、第1のテスト制御回路(100)によるスキャンテスト実行時間を監視する。また、第2のタイマー(204)は、第1のテスト制御回路(100)によるスキャンテスト実行時間は監視せず、第2のテスト制御回路(200)によるスキャンテスト実行時間を監視する。
よって、第1のテスト制御回路(100)は、スキャンテストを開始するときに、スキャンテストの開始を通知する開始通知信号を第1のタイマー(104)に出力する。第1のテスト制御回路(100)は、スキャンテストを終了したときに、スキャンテストの終了を通知する終了通知信号を第1のタイマー(104)に出力する。
また、第2のテスト制御回路(200)は、スキャンテストを開始するときに、スキャンテストの開始を通知する開始通知信号を第2のタイマー(204)に出力する。第2のテスト制御回路(200)は、スキャンテストを終了したときに、スキャンテストの終了を通知する終了通知信号を第2のタイマー(204)に出力する。
遮断回路(16)は、起動時診断におけるスキャンテスト中に、システムバス(13)から動作中診断装置(20)に出力される信号を遮断する。この信号は、例えば、システムバス(13)から、CPU(10)、パタン入力回路(101)及び、第1のテスト制御回路(100)のそれぞれに出力される信号である。また、遮断回路(16)は、起動時診断におけるスキャンテスト中に、動作中診断装置(20)からシステムバス(13)に出力される信号を遮断する。この信号は、例えば、CPU(10)、パタン入力回路(101)、及び、第1のテスト制御回路(100)のそれぞれからシステムバス(13)に出力される信号である。
これによれば、起動時診断中にシステムバス(13)から動作中診断装置(20)に出力された信号によって、動作中診断装置(20)が誤動作を起こし、動作中診断装置(20)が故障していないのに、第2の期待値と異なるテスト結果が得られてしまうことを防止することができる。また、起動時診断中に動作中診断装置(20)からシステムバス(13)に意図せず出力された信号によって、システムバス(13)に接続される回路(内蔵メモリ(11)及び外部I/F(12)等)の誤動作が発生してしまうことを防止することができる。
遮断回路(17)は、起動時診断におけるスキャンテスト中に、動作中診断装置(20)からシステム制御回路(15)に出力される信号を遮断する。この信号は、例えば、第1の結果判定回路(102)(比較回路(209))から出力される通知信号、及び、第1のタイマー(104)から出力される通知信号である。これによれば、動時診断中に動作中診断装置(20)からシステム制御回路(15)に意図せず出力された通知信号によって、エラーを誤検出してしまうことを防止することができる。
また、本実施の形態4では、このように、起動時診断と動作中診断とで診断を実施する回路を、共用せず、別々の回路としているため、選択回路(300、301、302)は不要とされている。すなわち、本実施の形態4に係る半導体装置(1D)は、実施の形態1に係る半導体装置(1A)と異なり、選択回路(300、301、302)を有さない。
[動作]
続いて、図9を参照して、実施の形態4に係る半導体装置(1D)の自己診断時の動作について説明する。図9は、実施の形態4に係る半導体装置(1D)の自己診断時の動作を示すフロー図である。
図9では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列にイベントを行うことが表されている。矢印が分岐しているところは処理が並列して実行されることを示している。なお、ひし形のイベントは、分岐を表す。ひし形のイベントは、基本的に、下向きの矢印がイベントの内容に対して正常な状態であった場合の次処理を指している。本実施の形態4における動作の説明は、図8に示す半導体装置(1D)の例と、図9に示す動作フローを照らし合わせながら行う。
[動作フロー]
半導体装置(1D)は、その電源が投入され、起動時診断を実施する回路(200〜204)のリセットが解除されると、その起動時診断を開始する。起動時診断が開始されると、システム制御回路(15)は、動作中診断装置(20)の診断の開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、診断開始信号のアサートに応じて、動作中診断装置(20)の診断を開始する(S301)。
第2のテスト制御回路(200)は、診断を開始したときに(動作中診断装置(20)のスキャンテストを開始する前に)、システムバス(13)と動作中診断装置(20)との間で伝送される信号を遮断するように遮断回路(16)を制御する。また、第2のテスト制御回路(200)は、システムバス(13)と動作中診断装置(20)との間で伝送される信号を遮断するように遮断回路(17)を制御する。これにより、上述したように、システムバス(13)及びシステム制御回路(15)が、診断中に誤動作すること等を防止する。
第2のテスト制御回路(200)は、診断を開始したときに、CPU(10)に対して実施するスキャンテストの開始を通知する開始通知信号を第2のタイマー(204)に出力する。第2のタイマー(204)の具体的な判定内容及び判定結果に応じた動作(S302)については、タイマー(205)と同様である(図1のステップS102と同様)ため、その説明は省略する。ここで、第2のタイマー(204)の制御も、上述したように、第2のテスト制御回路(200)に限られず、システム制御回路(15)が実施するようにしてもよい。
第2のテスト制御回路(200)は、動作中診断装置(20)の診断を開始するため、パタン発生回路(201)にテストパタンの発生を指示し、動作中診断装置(20)のスキャンテストを実施する。なお、スキャンテストにおける動作は、その対象がCPU(10)のみではなく、CPU(10)を含む動作中診断装置(20)となったこと以外は、実施の形態1と同様であるため、その説明は省略する。
第2の結果判定回路(202)は、動作中診断装置(20)から取得したテスト結果を圧縮し、圧縮後のテスト結果と、第2の期待値記憶回路(203)に格納された第2の期待値とが一致しているか否かを判定する(S303)。
実施の形態1(図1のステップS103)と同様に、第2の結果判定回路(202)は、比較結果が一致する場合、正常を通知する通知信号をシステム制御回路(15)に出力し(S303:正常)、比較結果が不一致である場合、エラーを通知する通知信号をシステム制御回路(15)に出力する(S303:異常)。
また、第2のテスト制御回路(200)は、スキャンテストを終了した後(全てのテスト結果がスキャンチェーンから出力された後)に、システムバス(13)と動作中診断装置(20)との間で伝送される信号を遮断しないように遮断回路(16)を制御する。また、第2のテスト制御回路(200)は、システムバス(13)と動作中診断装置(20)との間で伝送される信号を遮断しないように遮断回路(17)を制御する。
動作中診断装置(20)の診断結果が正常である場合(S303:正常)、実施の形態1で説明した図1のステップS104、S105と同様に、テスト制御回路(105)がCPU(10)の起動を開始し(S304)、CPU(10)が処理を実行する(S305)。CPU(10)は、実施の形態1で説明した図1のステップS106、S107と同様に、所定時間が経過する毎に(S306:Yes)、第1のテスト制御回路(100)に対してCPU(10)の診断を指示して、その処理を停止させる(S307)。第1のテスト制御回路(100)は、実施の形態1で説明した図1のステップS108と同様に、CPU(10)からの指示に応じて、CPU(10)の診断を開始する(S308)。
第1のテスト制御回路(100)は、診断を開始したときに、CPU(10)に対して実施するスキャンテストの開始を通知する開始通知信号を第1のタイマー(104)に出力する。第1のタイマー(104)の具体的な判定内容及び判定結果に応じた動作(S309)については、タイマー(205)と同様(図1のステップS109と同様)であるため、その説明は省略する。ここで、第1のタイマー(104)の制御も、上述したように、第1のテスト制御回路(100)に限られず、システム制御回路(15)が制御するようにしてもよい。
第1のテスト制御回路(100)は、CPU(10)の診断を開始するため、パタン入力回路(101)に、システムバス(13)を介して、テストパタンの入力を指示し、CPU(10)のスキャンテストを実施する。なお、スキャンテストにおける動作は、実施の形態1と同様であるため、その説明は省略する。
第1の結果判定回路(102)は、CPU(10)から取得したテスト結果を圧縮し、圧縮後のテスト結果と、第1の期待値記憶回路(103)に格納された第1の期待値とが一致しているか否かを判定する(S310)。
実施の形態1(図1のステップS110)と同様に、第1の結果判定回路(102)は、比較結果が一致した場合、正常を通知する通知信号をシステム制御回路(15)に出力し(S310:正常)、比較結果が不一致であった場合、エラーを通知する通知信号をシステム制御回路(15)に出力する(S310:異常)。第1のタイマー(104)、第2のタイマー(204)、第1の結果判定回路(102)又は第2の結果判定回路(202)からエラーが通知された場合、システム制御回路(15)は、実施の形態1で説明した図1のステップS111と同様に、速やかに半導体装置(1D)におけるシステムを停止させる処理を行い、半導体装置(1D)におけるシステムを停止させる(S311)。
[特徴及び効果]
実施の形態4では、LFを検出するための起動時診断として、CPU(10)を含む動作中診断装置(20)全体を、診断の対象としている。言い換えると、CPU(10)とともに第1のテスト制御装置(3)のスキャンテストも実施するようにしている。本構成により、単一のCPU(10)に対して動作中にスキャンテストを実施することで、CPUを二重化するよりも低コストでその安全性を担保すると同時に、動作中診断に用いられる回路(10、100〜104)の安全性についても担保する。
<実施の形態5>
続いて、実施の形態5について説明する。以下の実施の形態5の説明では、上述した実施の形態4と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
[構成]
図10を参照して、実施の形態5に係る半導体装置(1E)の構成について説明する。図10は、実施の形態5に係る半導体装置(1E)の構成を示すブロック図である。図10に示すように、半導体装置(1E)は、実施の形態4に係る半導体装置(1E)と比較して、遮断回路(16)、(17)、第2のテスト制御回路(200)、パタン発生回路(201)、第2の結果判定回路(202)、第2の期待値記憶回路(203)、及び、第2のタイマー(204)を有さない点が異なる。また、半導体装置(1E)は、実施の形態4に係る半導体装置(1E)と比較して、第1のテスト制御回路(100)、パタン入力回路(101)、第1の結果判定回路(102)、第1の期待値記憶回路(103)、及び、第1のタイマー(104)に代えて、テスト制御回路(600)、パタン入力回路(601)、結果判定回路(602)、期待値記憶回路(603)、及び、タイマー(604)を有する点が異なる。また、半導体装置(1E)は、実施の形態4に係る半導体装置(1E)と比較して、さらに、ROM(400)と、選択回路(401)とを有する点が異なる。
本実施の形態5では、テスト制御回路(600)、パタン入力回路(601)、結果判定回路(602)、期待値記憶回路(603)、及び、タイマー(604)によって、起動時診断と動作中診断の両方を実施する。すなわち、本実施の形態5では、結果判定回路(602)は、第1の結果圧縮回路(206)と、第2の結果圧縮回路(207)と、再帰型圧縮回路(208)と、比較回路(209)とを有する(図示せず)。
よって、本実施の形態5では、テスト制御回路(600)、パタン入力回路(601)、結果判定回路(602)の一部(第1の結果圧縮回路(206)及び第2の結果圧縮回路(207))、期待値記憶回路(603)、及び、タイマー(604)は、第1のテスト制御装置(3)及び第2のテスト制御装置(4)として機能する。また、期待値記憶回路(603)は、動作中診断で利用される第1の期待値と、起動時診断で利用される第2の期待値の両方が予め格納されている。
テスト制御回路(600)は、実施の形態4に係る第1のテスト制御回路(100)と比較し、さらに、起動時診断におけるCPU(10)のスキャンテストも実施する点が異なる。すなわち、テスト制御回路(600)は、半導体装置(1E)の起動時におけるシステム制御回路(15)からの要求に従い、起動時診断におけるCPU(10)のスキャンテストを実行する。
パタン入力回路(601)は、選択回路(401)を介して、システムバス(13)及びROM(400)と接続されている。ROM(400)は、起動時診断に使用される複数のテストパタンが予め格納されている。選択回路(401)は、システムバス(13)及びROM(400)のうち、いずれか一方から出力されたテストパタンを選択的にパタン入力回路(601)に出力する。
選択回路(401)は、起動時診断を開始するときに、パタン入力回路(601)との接続先としてROM(400)側が選択されるように、テスト制御回路(600)、若しくは、システム制御回路(15)によって制御される。例えば、テスト制御回路(600)が、システム制御回路(15)からの診断開始信号のアサートに応じて制御してもよく、システム制御回路(15)が診断開始信号をアサートする前に制御してもよい。
パタン入力回路(101)は、起動時診断においては、第1のテスト制御回路(100)からの要求に従い、ROM(400)からテストパタンを読み込み、CPU(10)のスキャンチェーンに供給する。
結果判定回路(602)は、実施の形態4に係る第2の結果判定回路(202)と同様に、CPU(10)のスキャンチェーンから出力されるテスト結果を取得し、取得したテスト結果を第2の結果圧縮回路(207)及び再帰型圧縮回路(208)によって圧縮する。結果判定回路(602)は、圧縮後のテスト結果と、期待値記憶回路(603)から出力された第2の期待値とを、比較回路(209)によって比較する。すなわち、結果判定回路(602)は、第2の結果判定回路(202)とは異なり、動作中診断装置(20)ではなく、CPU(10)を診断する。なお、具体的なテスト結果の圧縮方法と、比較結果に応じたシステム制御回路(15)への通知内容等については、実施の形態4に係る第2の結果判定回路(202)と同様であるため、その説明を省略する。
タイマー(604)の動作は、実施の形態1に係るタイマー(205)の動作と同様であるため、説明を省略する。ただし、タイマー(604)は、実施の形態1に係るタイマー(205)と異なり、起動時診断と動作中診断とで異なるテスト制御回路(100、200)によるスキャンテスト実行時間を監視するのではなく、起動時診断と動作中診断の両方でテスト制御回路(600)によるスキャンテスト実行時間を監視する点が異なる。
動作中診断におけるテスト制御回路(600)、パタン入力回路(601)、結果判定回路(602)、及び、タイマー(604)の動作は、実施の形態4に係る第1のテスト制御回路(100)、パタン入力回路(101)、第1の結果判定回路(102)、及び、第1のタイマー(104)の動作と同様であるため、その説明を省略する。なお、本実施の形態5では、選択回路(401)は、動作中診断を開始するときに、パタン入力回路(601)との接続先としてシステムバス(13)側が選択されるように、テスト制御回路(600)、若しくは、CPU(10)によって制御される。例えば、テスト制御回路(600)が、CPU(10)からの診断開始信号のアサートに応じて制御してもよく、CPU(10)が診断開始信号をアサートする前に制御してもよい。
[動作]
本実施の形態5に係る半導体装置(1E)の動作については、実施の形態4に係る半導体装置(1D)の動作(図9に示した動作)と同様であるため、その説明を省略する。ただし、上述したように、半導体装置(1E)の動作は、半導体装置(1D)の動作と比較し、起動時診断と動作中診断の両方をテスト制御回路(600)、パタン入力回路(601)、結果判定回路(602)、及び、タイマー(604)が実施する点と、起動時診断と動作中診断の開始時に選択回路(401)を制御する点と、起動時診断におけるテストパタンを発生するのではなく、ROM(400)から取得する点が異なる。
[特徴及び効果]
本実施の形態5では、起動時診断と起動中診断を実施する回路を共用している。ここで、起動時は、システムバス(13)を含む多くのモジュールは診断のために休止状態である。そのため、テストパタンを、システムバス(13)を介して、取得することは困難である。その課題に対して、本実施の形態5では、起動時診断で利用するテストデータを専用のROM(400)に有するようにしている。すなわち、システムバス(13)を初期化しているときに、ROM(400)からテストパタンを取得し、取得したテストパタンをCPU(10)のスキャンチェーンに入力して起動時診断におけるスキャンテストを実施する。そして、システムバス(13)の初期化後に、システムバス(13)を介して外部メモリ(14)からテストパタンを取得し、取得したテストパタンをCPU(10)のスキャンチェーンに入力して動作中診断におけるスキャンテストを実施するようにしている。本構成により、起動時診断と起動中診断を実施する回路を共用しつつも、単一のCPU(10)に対して動作中にスキャンテストを実施することで、CPUを二重化するよりも低コストでその安全性を担保すると同時に、動作中診断に用いられる診断装置の安全性についても担保することができる。
<実施の形態6>
続いて、実施の形態6について説明する。以下の実施の形態6の説明では、上述した実施の形態5と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
[構成]
図11を参照して、実施の形態6に係る半導体装置(1F)の構成について説明する。図11は、実施の形態6に係る半導体装置(1F)の構成を示すブロック図である。図11に示すように、半導体装置(1F)は、図10に示した実施の形態5に係る半導体装置(1E)と比較して、さらに、外部I/F(18)と、選択回路(402)とを有する点が異なる。また、半導体装置(1F)は、実施の形態5に係る半導体装置(1E)と比較して、ROM(400)を有さない点が異なる。
本実施の形態6では、実施の形態5と異なり、外部メモリ(14)に、起動時診断で使用するテストパタンと、動作中診断で使用するテストパタンの両方が格納されている。また、本実施の形態6では、実施の形態5と異なり、選択回路(401)に対して、ROM(400)に代えて、外部I/F(18)が接続されている。また、外部メモリ(14)は、選択回路(402)を介して、外部I/F(12)及び外部I/F(18)と接続される。外部I/F(18)は、選択回路(402)を介して、外部メモリ14と選択回路(401)との間でデータの送受信を行う回路である。
すなわち、本実施の形態6では、選択回路(401)は、システムバス(13)及び外部I/F(18)のうち、いずれか一方から入力されたテストパタンを選択的にパタン入力回路(601)に出力する。また、選択回路(402)は、外部メモリ(14)から入力されたテストパタンを、外部I/F(12)及び外部I/F(18)のうち、いずれか一方に選択的に出力する。
よって、本実施の形態6では、選択回路(401)は、起動時診断を開始するときに、パタン入力回路(601)との接続先として外部I/F(18)側が選択されるように、テスト制御回路(600)、若しくは、システム制御回路(15)によって制御される。また、選択回路(402)は、起動時診断を開始するときに、外部メモリ(14)との接続先として外部I/F(18)側が選択されるように、テスト制御回路(600)、若しくは、システム制御回路(15)によって制御される。例えば、テスト制御回路(600)が、システム制御回路(15)からの診断開始信号のアサートに応じて制御してもよく、システム制御回路(15)が診断開始信号をアサートする前に制御してもよい。
したがって、パタン入力回路(601)は、起動時診断においては、第1のテスト制御回路(100)からの要求に従い、システムバス(13)を介さず、外部I/F(18)を介して、外部メモリ(14)からテストパタンを読み込み、CPU(10)のスキャンチェーンに供給する。
そして、選択回路(401)は、動作中診断を開始するときに、パタン入力回路(601)との接続先としてシステムバス(13)側が選択されるように、テスト制御回路(600)、若しくは、CPU(10)によって制御される。また、選択回路(402)は、動作中診断を開始するときに、外部メモリ(14)との接続先として外部I/F(12)側が選択されるように、テスト制御回路(600)、若しくは、CPU(10)によって制御される。例えば、テスト制御回路(600)が、CPU(10)からの診断開始信号のアサートに応じて制御してもよく、CPU(10)が診断開始信号をアサートする前に制御してもよい。
なお、動作中診断における動作は、実施の形態5と同様であるため、その説明を省略する。
[動作]
本実施の形態6に係る半導体装置(1F)の動作については、実施の形態5に係る半導体装置(1E)の動作と同様であるため、その説明を省略する。ただし、半導体装置(1F)の動作は、半導体装置(1E)の動作と比較し、起動時診断と動作中診断の開始時にさらに選択回路(402)を制御する点と、起動時診断におけるテストパタンをROM(400)ではなく、外部メモリ(14)から取得する点が異なる。
[特徴及び効果]
本実施の形態6は、実施の形態5と同様に、起動時診断と起動中診断を実施する回路を共用している。すなわち、本実施の形態6では、システムバス(13)を初期化しているときに、外部I/F(18)を介して外部メモリ(14)からテストパタンを取得し、取得したテストパタンをCPU(10)のスキャンチェーンに入力して起動時診断におけるスキャンテストを実施する。そして、システムバス(13)の初期化後に、システムバス(13)を介して外部メモリ(14)からテストパタンを取得し、取得したテストパタンをCPU(10)のスキャンチェーンに入力して動作中診断におけるスキャンテストを実施するようにしている。本構成により、起動時診断と起動中診断を実施する回路を共用しつつも、単一のCPU(10)に対して動作中にスキャンテストを実施することで、CPUを二重化するよりも低コストでその安全性を担保すると同時に、動作中診断に用いられる診断装置の安全性についても担保する。また、半導体装置(1F)がROM(400)を有する必要がないため、より低コストとすることができる。
<実施の形態7>
続いて、実施の形態7について説明する。以下の実施の形態7の説明では、上述した実施の形態1と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
[構成]
[全体構成]
図12を参照して、実施の形態7に係る半導体装置(1G)の構成について説明する。図12は、実施の形態7に係る半導体装置(1G)の構成を示すブロック図である。図12に示すように、半導体装置(1G)は、実施の形態1に係る半導体装置(1A)と比較して、1つのCPU(10)ではなく、複数のCPU(10A〜10D)を有する点が異なる。また、半導体装置(1G)は、実施の形態1に係る半導体装置(1A)と比較して、さらに、選択回路(501)を有する点が異なる。
CPU(10A〜10D)のそれぞれは、実施の形態1に係るCPU(10)と同様であるため、その説明は省略する。すなわち、半導体装置(1G)は、同一構成のCPUを複数搭載したマルチプロセッサ構成を採用している。
[第1のテスト制御装置(3)]
第1のテスト制御回路(100)は、システムバス(13)を介して、CPU(10A〜10D)のそれぞれと接続されている。第1のテスト制御回路(100)は、CPU(10A)からの要求に従い、CPU(10A)のスキャンテストを実行し、CPU(10B)からの要求に従い、CPU(10B)のスキャンテストを実行し、CPU(10C)からの要求に従い、CPU(10C)のスキャンテストを実行し、CPU(10D)からの要求に従い、CPU(10D)のスキャンテストを実行する。
全てのCPU(10A〜10D)は、選択回路(300)を介して、パタン入力回路(101)及びパタン発生回路(201)と接続されている。すなわち、パタン入力回路(101)及びパタン発生回路(201)のそれぞれから出力されたテストパタンは、選択回路(300)を介して、全てのCPU(10A〜10D)に入力される。
ここで、第1のテスト制御回路(100)は、スキャンテストを実施する場合、CPU(10A〜10D)のそれぞれに出力されるスキャンイネーブル信号のうち、テスト対象のCPUに出力されるスキャンイネーブル信号をアサートし、他のCPUのそれぞれに出力されるスキャンイネーブル信号はネゲートされたままとする。
CPU(10A〜10D)のそれぞれは、アサートされたスキャンイネーブル信号が入力されている間、スキャンシフト動作を行って、選択回路(300)を介して入力されるテストパタンを自身が有するスキャンチェーンにスキャンインするとともに、そのスキャンチェーンに格納されたテスト結果をスキャンアウトする。一方、CPU(10A〜10D)のそれぞれは、ネゲートされたスキャンイネーブル信号が入力されている間は、スキャンシフト動作は行わず、選択回路(300)を介して入力されるテストパタンを自身が有するスキャンチェーンにはスキャンインせず、また、そのスキャンチェーンに格納されたデータもスキャンアウトしない。
このような動作により、テスト対象のCPUのみに対してスキャンテストを実施するとともに、テスト対象外のCPUは、通常動作を継続することを可能としている。
[第2のテスト制御装置(4)]
本実施の形態7では、実施の形態1と同様に、第2のテスト制御回路(200)は、システム制御回路(15)からの要求に従い、CPU(10A〜10D)のそれぞれのスキャンテストを実行する。ただし、本実施の形態7では、実施の形態1と異なり、その要求において、システム制御回路(15)が第2のテスト制御回路(200)に対してテスト対象とするCPUを指定する。第2のテスト制御回路(200)は、システム制御回路(15)から指定されたCPUのスキャンテストを実施する。
第2のテスト制御回路(200)も、第1のテスト制御回路(100)と同様に、テスト対象のCPUに対するスキャンイネーブル信号をアサートすることで、テスト対象のCPUに対してスキャンテストを実施する。その具体的な動作については、上述と同様であるため、その説明を省略する。
[共通結果判定装置(5)]
第1の結果圧縮回路(206)及び第2の結果圧縮回路(207)は、選択回路(501)を介して、CPU(10A〜10D)のそれぞれと接続されている。選択回路(501)は、CPU(10A〜10D)のうち、いずれか1つから出力されたテスト結果を選択的に第1の結果圧縮回路(206)及び第2の結果圧縮回路(207)のそれぞれに出力する。選択回路(501)は、起動時診断を開始するときに、第1の結果圧縮回路(206)及び第2の結果圧縮回路(207)との接続先としてテスト対象のCPUが選択されるように、第2のテスト制御回路(200)、若しくは、システム制御回路(15)によって制御される。例えば、第2のテスト制御回路(200A〜200D)のそれぞれが、システム制御回路(15)からの診断開始信号のアサートに応じて制御してもよく、システム制御回路(15)が診断開始信号をアサートする前に制御してもよい。
また、選択回路(501)は、動作中診断を開始するときに、第1の結果圧縮回路(206)及び第2の結果圧縮回路(207)との接続先としてテスト対象のCPUが選択されるように、第1のテスト制御回路(100)、若しくは、テスト対象のCPUによって制御される。例えば、第1のテスト制御回路(100)が、テスト対象のCPUからの診断開始信号のアサートに応じて制御してもよく、テスト対象のCPUが診断開始信号をアサートする前に制御してもよい。
これにより、第1の結果圧縮回路(206)及び第2の結果圧縮回路(207)は、スキャンテストが実施されているCPUからテスト結果を取得して圧縮することが可能とされている。なお、共通結果判定装置(5)の動作については、実施の形態1と同様であるため、その説明を省略する。
[動作]
続いて、図13及び図14を参照して、実施の形態7に係る半導体装置(1G)の自己診断時の動作について説明する。図13及び図14は、実施の形態7に係る半導体装置(1G)の自己診断時の動作を示すフロー図である。
図13及び図14では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列にイベントを行うことが表されている。矢印が分岐しているところは処理が並列して実行されることを示している。なお、ひし形のイベントは、分岐を表す。ひし形のイベントは、基本的に、下向きの矢印がイベントの内容に対して正常な状態であった場合の次処理を指しており、右向きの矢印がイベントの内容に対して異常な状態であった場合の次処理を指す。本実施の形態7における動作の説明は、図12に示す半導体装置(1G)の例と、図13及び図14に示す動作フローを照らし合わせながら行う。
[全体動作フロー]
半導体装置(1G)は、その電源が投入され、第2のテスト制御装置(4)及び共通結果判定装置(5)のリセットが解除されると、最初に、LFを検出するための起動時診断を行う。CPU(10A〜10D)のそれぞれに対して所定の順序で起動時診断を実施する。ここでLFが検出されなければ、半導体装置(1G)は、通常動作を開始する。
また、半導体装置(1G)は、通常動作中、定期的に、CPU(10A〜10D)のうち、いずれか1つのCPUの処理を中断して、処理を中断したCPUのSPFを検出するための動作中診断を行う。ここでSPFが検出されなければ、半導体装置(1G)は、起動時診断を実施したCPUは通常動作を再開する。なお、SPFの検出のための診断動作は、例えば、CPU(10A〜10D)のそれぞれに対して所定の順序で実施し、2つ以上のCPUに対して同時には実施しない。
[起動時診断フロー(LF検出フロー)]
起動時診断の診断動作が開始されると、システム制御回路(15)は、比較回路(209)の診断を実施する(S401)。システム制御回路(15)は、比較回路(209)の診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、比較回路(209)の診断開始を指示する診断開始信号のアサートに応じて、比較回路(209)の診断を実施する。なお、このステップS401における動作は、実施の形態1の変形例で説明した図4のステップS112の動作と同様であるため、その説明は省略する。
次に、システム制御回路(15)は、CPU(10A)の診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、CPU(10A)の診断開始を指示する診断開始信号のアサートに応じて、CPU(10A)の診断を開始する(S402)。なお、ステップS402の具体的な動作については、実施の形態1における図3のステップS101と同様であるため、その説明を省略する。これについては、後述するCPU(10B〜10D)に対する動作においても同様である。
ただし、本実施の形態7では、実施の形態1と比較し、第2のテスト制御回路(200)又はシステム制御回路(15)が、CPU(10A)の起動時診断を開始する前に、テスト対象のCPU(10A)が選択されるように選択回路(501)を制御する点が異なる。
ここで、第2のテスト制御回路(200)は、最初のCPU(10A)の診断を開始する前に、実施の形態1における図3のステップS102と同様に、タイマー(205)を起動する(S403)。具体的なタイマー(205)による判定内容及び判定結果に応じた通知内容については、実施の形態1における図3のステップS102と同様であるため、その説明を省略する。ただし、本実施の形態7では、タイマー(205)は、最初のCPU(10A)の診断が開始されたときから、後述する最後のCPU(10D)の診断が終了するまでの時間を監視する。
そして、CPU(10A)のスキャンテストの終了後、比較回路(209)は、スキャンテストで得られたテスト結果を判定する(S404)。なお、ステップS404の具体的な動作については、実施の形態1における図3のステップS104と同様であるため、その説明を省略する。これについては、後述するCPU(10B〜10D)に対する動作においても同様である。
システム制御回路(15)は、比較回路(209)からCPU(10A)の診断結果としてエラーが通知された場合(S404:異常)、速やかにシステムを停止させる処理を行い、システムを停止させる(S423)。すなわち、システム制御回路(15)は、半導体装置(1G)の起動を抑止する。これについては、後述するCPU(10B〜10D)に対する動作においても同様である。
比較回路(209)からCPU(10A)の診断結果として正常を通知する通知信号が出力された場合(S404:正常)、システム制御回路(15)は、CPU(10B)の診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、CPU(10B)の診断開始を指示する診断開始信号のアサートに応じて、CPU(10B)の診断を開始する(S405)。なお、第2のテスト制御回路(200)又はシステム制御回路(15)は、CPU(10B)の起動時診断を開始する前に、テスト対象のCPU(10B)が選択されるように選択回路(501)を制御する。そして、CPU(10B)のスキャンテストの終了後、比較回路(209)は、スキャンテストで得られたテスト結果を判定する(S406)。
比較回路(209)からCPU(10B)の診断結果として正常を通知する通知信号が出力された場合(S406:正常)、システム制御回路(15)は、CPU(10C)の診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、CPU(10C)の診断開始を指示する診断開始信号のアサートに応じて、CPU(10C)の診断を開始する(S407)。なお、第2のテスト制御回路(200)又はシステム制御回路(15)は、CPU(10C)の起動時診断を開始する前に、テスト対象のCPU(10C)が選択されるように選択回路(501)を制御する。そして、CPU(10C)のスキャンテストの終了後、比較回路(209)は、スキャンテストで得られたテスト結果を判定する(S408)。
比較回路(209)からCPU(10C)の診断結果として正常を通知する通知信号が出力された場合(S408:正常)、システム制御回路(15)は、CPU(10D)の診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200)に出力する。第2のテスト制御回路(200)は、CPU(10D)の診断開始を指示する診断開始信号のアサートに応じて、CPU(10D)の診断を開始する(S409)。なお、第2のテスト制御回路(200)又はシステム制御回路(15)は、CPU(10D)の起動時診断を開始する前に、テスト対象のCPU(10D)が選択されるように選択回路(501)を制御する。そして、CPU(10D)のスキャンテストの終了後、比較回路(209)は、スキャンテストで得られたテスト結果を判定する(S410)。
また、第2のテスト制御回路(200)は、最後のCPU(10D)のスキャンテストを終了したときに、スキャンテストの終了を通知する通知信号をタイマー(205)に出力する。タイマー(205)は、第2のテスト制御回路(200)からの通知信号に応じて、経過時間の計測を終了する。
なお、タイマー(205)による監視は、CPU(10A〜10D)のそれぞれの起動時診断を行う単位で実施するようにしてもよい。例えば、第2のテスト制御回路(200)は、CPU(10A〜10D)のそれぞれのスキャンテストの実行を開始するときに開始通知信号をタイマー(205)に出力し、CPU(10A〜10D)のそれぞれのスキャンテストの実行を終了したときに終了通知信号をタイマー(205)に出力するようにしてもよい。
また、CPU(10A〜10D)のうち、診断結果としてエラーが通知されたCPUのみを縮退して、残りのCPUを起動することで、半導体装置(1G)におけるシステムを立ち上げるようにしてもよい。
[動作中診断(SPF検出フロー)]
全てのCPU(10A〜10D)の診断結果が正常である場合、システム制御回路(15)は、実施の形態1で説明した図1のステップS104、105と同様に、全てのCPU(10A〜10D)の起動を開始し(S411、S418、S421、S424)、CPU(10A〜10D)のそれぞれが処理を実行する(S412、S419、S422、S425)。
この処理には、実施の形態1と同様に、定期的に自己診断を行う処理も含まれている。ここで、本実施の形態7では、複数のCPUが同時に自己診断状態に入らないように、システム制御回路(15)によって、若しくは、CPU(10A〜10D)間の協調動作によって制御される。本実施の形態7では、CPU(10A)、CPU(10B)、CPU(10C)、CPU(10D)の順に自己診断が実行される例について説明する。
最初にCPU(10A)は、所定時間が経過すると(S413:Yes)、自己診断を実行する(S10)。このステップS10の動作には、ステップS414〜S417の動作が含まれるが、それらの具体的な動作は、実施の形態1(図3)のステップS107〜S110と同様であるため、それらの説明は省略する。なお、第1のテスト制御回路(100)又はCPU(10A)は、CPU(10A)の動作中診断を開始する前に、テスト対象のCPU(10A)が選択されるように選択回路(501)を制御する。また、診断結果が異常であった場合における動作(S416:異常又はS417:異常、S427)も、実施の形態1(図3)のステップS109:異常又はS110:異常、S111の動作と同様であるため、その説明を省略する。
CPU(10A)の診断結果が正常である場合(S417:正常)、システム制御回路(15)は、CPU(10A)を再起動する(S411)。CPU(10A)は、再起動後、停止していた処理を再開する(S412)。
次に、CPU(10B)は、所定時間が経過すると(S420:Yes)、自己診断を実行する(S11)。すなわち、CPU(10B)について所定時間の経過を計測する起算時刻は、CPU(10A)について所定時間の経過を計測する起算時刻よりも後の時刻となる。このステップS11の動作は、ステップS10と同様であるため、その説明を省略する。なお、第1のテスト制御回路(100)又はCPU(10B)は、CPU(10B)の動作中診断を開始する前に、テスト対象のCPU(10B)が選択されるように選択回路(501)を制御する。CPU(10B)の診断結果が正常である場合、システム制御回路(15)は、CPU(10B)を再起動する(S418)。CPU(10B)は、再起動後、停止していた処理を再開する(S419)。
次に、CPU(10C)は、所定時間が経過すると(S423:Yes)、自己診断を実行する(S12)。すなわち、CPU(10C)について所定時間の経過を計測する起算時刻は、CPU(10B)について所定時間の経過を計測する起算時刻よりも後の時刻となる。このステップS12の動作は、ステップS10と同様であるため、その説明を省略する。なお、第1のテスト制御回路(100)又はCPU(10C)は、CPU(10C)の動作中診断を開始する前に、テスト対象のCPU(10C)が選択されるように選択回路(501)を制御する。CPU(10C)の診断結果が正常である場合、システム制御回路(15)は、CPU(10C)を再起動する(S421)。CPU(10C)は、再起動後、停止していた処理を再開する(S422)。
次に、CPU(10D)は、所定時間が経過すると(S426:Yes)、自己診断を実行する(S13)。すなわち、CPU(10D)について所定時間の経過を計測する起算時刻は、CPU(10C)について所定時間の経過を計測する起算時刻よりも後の時刻となる。このステップS13の動作は、ステップS10と同様であるため、その説明を省略する。なお、第1のテスト制御回路(100)又はCPU(10D)は、CPU(10D)の動作中診断を開始する前に、テスト対象のCPU(10D)が選択されるように選択回路(501)を制御する。CPU(10D)の診断結果が正常である場合、システム制御回路(15)は、CPU(10D)を再起動する(S424)。CPU(10D)は、再起動後、停止していた処理を再開する(S425)。
システム制御回路(15)は、各自己診断によるエラーが比較回路(209)やタイマー(205)から通知された場合、速やかにシステムを停止させる処理を行い、システムを停止させる(S427)。
なお、上述のCPU(10A〜10D)のそれぞれの自己診断(起動中診断)を重複しないタイミングで定期的に実行する方法として、任意の方法を採用するようにしてもよい。例えば、CPU(10A)にタイマーから定期的に割り込みを通知するようにし、CPU(10A)は、タイマーからの割り込みに応じて自己診断を実行するようにしてもよい。そして、CPU(10A〜10C)のそれぞれは、再起動後の動作再開時に、次に自己診断を実行するCPU(10B〜10D)のそれぞれにCPU間割り込みを通知することで、そのCPU間割り込みに応じて、CPU(10B〜10D)のそれぞれが自己診断を実行するようにしてもよい。また、CPU(10A〜10D)のそれぞれに対して、CPU(10A〜10D)のそれぞれに対応する複数のタイマーから、自己診断(起動中診断)が重複しないタイミングで定期的に割り込みを通知するようにし、CPU(10A〜10D)のそれぞれが、タイマーからの割り込みに応じて自己診断を実行するようにしてもよい。
[特徴及び効果]
実施の形態7は、マルチCPUを搭載した半導体装置(1G)においてLF及びSPFを検出する構成を示したもので、第1のテスト制御装置(3)と第2のテスト制御装置(4)と共通結果判定装置(5)を複数のCPUで共有化している。すなわち、第1のテスト制御装置(3)及び第2のテスト制御装置(4)は、複数のCPU(10A〜10D)のそれぞれのスキャンテストを所定の順序で実施する。これによれば、回路面積を削減することができる。また、実施の形態1における特徴と効果も併せ持っており、搭載するCPUの数に比例して診断用のCPUが増えることが無いため、CPU数が増えるほど、本実施の形態7による面積、電力削減効果は大きなものとなる。
<実施の形態8>
続いて、実施の形態8について説明する。以下の実施の形態8の説明では、上述した実施の形態1と同様の内容については、同一の符号を付す等して、適宜、その説明を省略する。
[構成]
[全体構成]
図15を参照して、実施の形態8に係る半導体装置(1H)の構成について説明する。図15は、実施の形態8に係る半導体装置(1H)の構成を示すブロック図である。図15に示すように、半導体装置(1G)は、実施の形態1に係る半導体装置(1A)と比較して、複数のCPU(10A、10B、10C、10D)と、複数の第2のテスト制御回路(200A〜200D)と、複数のパタン発生回路(201A〜201D)と、複数の結果圧縮回路(207A〜207D)と、複数の選択回路(300A〜300D)とを有する点が異なる。また、半導体装置(1G)は、実施の形態1に係る半導体装置(1A)と比較して、さらに、ANDゲート(500)と、選択回路(501)と、選択回路(502)と、ANDゲート(503)とを有する点が異なる。
CPU(10A〜10D)のそれぞれは、実施の形態1に係るCPU(10)と同様であるため、その説明は省略する。すなわち、半導体装置(1H)は、同一構成のCPUを複数搭載したマルチプロセッサ構成を採用している。
第2のテスト制御回路(200A〜200D)のそれぞれは、実施の形態1に係る第2のテスト制御回路(200)と同様であるため、その説明は省略する。すなわち、半導体装置(1H)は、同一構成のCPUを複数搭載したマルチプロセッサ構成を採用している。
パタン発生回路(201A〜201D)のそれぞれは、実施の形態1に係るパタン発生回路(201)と同様であるため、その説明は省略する。第2の結果圧縮回路(207A〜207D)のそれぞれは、実施の形態1に係る第2の結果圧縮回路(207)と同様であるため、その説明は省略する。選択回路(300A〜300D)のそれぞれは、実施の形態1に係る選択回路(300)と同様であるため、その説明は省略する。
ANDゲート500は、複数の第2のテスト制御回路(200A〜200D)のそれぞれから出力された開始通知信号をAND演算し、演算結果となる信号を開始通知信号としてタイマー(205)に出力する。また、ANDゲート504は、複数の第2のテスト制御回路(200A〜200D)のそれぞれから出力された終了通知信号をAND演算し、演算結果となる信号を終了通知信号としてタイマー(205)に出力する。
本実施の形態8では、実施の形態7と異なり、CPU(10A〜10D)のそれぞれから出力されたテスト結果が、選択回路(501)を介さずに、第2の結果圧縮回路(207A〜207D)のそれぞれに入力される。よって、本実施の形態8に係る選択回路(501)は、実施の形態7に係る選択回路(501)と比較して、テスト結果を、第2の結果圧縮回路(207A〜207D)には出力せず、第1の結果圧縮回路(206)に出力する。また、これにより、起動時診断を開始するときに、選択回路(501)の制御は不要となる。
選択回路(502)は、複数の結果圧縮回路(207A〜207D)のうち、いずれか1つから出力されたテスト結果を選択的に選択回路(301)に出力する。
[第1のテスト制御装置(3)]
第1のテスト制御回路(100)は、システムバス(13)を介して、CPU(10A〜10D)のそれぞれと接続されている。第1のテスト制御回路(100)は、CPU(10A)からの要求に従い、CPU(10A)のスキャンテストを実行し、CPU(10B)からの要求に従い、CPU(10B)のスキャンテストを実行し、CPU(10C)からの要求に従い、CPU(10C)のスキャンテストを実行し、CPU(10D)からの要求に従い、CPU(10D)のスキャンテストを実行する。
CPU(10A〜10D)のそれぞれは、選択回路(300A〜300D)を介して、パタン入力回路(101)及びパタン発生回路(201A〜201D)のそれぞれと接続されている。すなわち、パタン発生回路(201A〜201D)のそれぞれから出力されたテストパタンは、選択回路(300A〜300D)のそれぞれを介して、CPU(10A〜10D)のそれぞれに入力される。
パタン入力回路(101)は、全ての選択回路(300A〜300D)のそれぞれにテストパタンを出力する。パタン入力回路(101)から出力されたテストパタンは、選択回路(300A〜300D)のそれぞれを介して、全てのCPU(10A〜10D)に入力される。
ここで、第1のテスト制御回路(100)は、スキャンテストを実施する場合、CPU(10A〜10D)のそれぞれに出力されるスキャンイネーブル信号のうち、テスト対象のCPUに出力されるスキャンイネーブル信号をアサートし、他のCPUのそれぞれに出力されるスキャンイネーブル信号はネゲートされたままとする。これにより、実施の形態7と同様に、テスト対象のCPUのみに対してスキャンテストを実施するとともに、テスト対象外のCPUは、通常動作を継続することを可能としている。
[第2のテスト制御装置(4)]
第2のテスト制御回路(200A〜200D)のそれぞれは、システム制御回路(15)と接続されている。第2のテスト制御回路(200A)は、システム制御回路(15)からの要求に従い、CPU(10A)のスキャンテストを実行する。第2のテスト制御回路(200B)は、システム制御回路(15)からの要求に従い、CPU(10B)のスキャンテストを実行する。第2のテスト制御回路(200C)は、システム制御回路(15)からの要求に従い、CPU(10C)のスキャンテストを実行する。第2のテスト制御回路(200D)は、システム制御回路(15)からの要求に従い、CPU(10D)のスキャンテストを実行する。
第2の結果圧縮回路(207A〜207D)のそれぞれは、CPU(10A〜10D)のそれぞれと接続される。第2の結果圧縮回路(207A)は、実施の形態1の第2の結果圧縮回路(207)と同様に、CPU(10A)のスキャンチェーンから出力されるテスト結果を圧縮する。第2の結果圧縮回路(207B)は、実施の形態1の第2の結果圧縮回路(207)と同様に、CPU(10B)のスキャンチェーンから出力されるテスト結果を圧縮する。第2の結果圧縮回路(207C)は、実施の形態1の第2の結果圧縮回路(207)と同様に、CPU(10C)のスキャンチェーンから出力されるテスト結果を圧縮する。第2の結果圧縮回路(207D)は、実施の形態1の第2の結果圧縮回路(207)と同様に、CPU(10D)のスキャンチェーンから出力されるテスト結果を圧縮する。
[共通結果判定装置(5)]
ANDゲート(500)は、第2のテスト制御回路(200A〜200D)のそれぞれから出力された開始通知信号をAND演算し、演算結果となる開始通知信号をタイマー(205)に出力する。すなわち、タイマー(205)は、第2のテスト制御回路(200A〜200D)の全てが開始通知信号を出力した時点からの経過時間の計測を開始する。
また、ANDゲート(503)は、第2のテスト制御回路(200A〜200D)のそれぞれから出力された終了通知信号をAND演算し、演算結果となる終了通知信号をタイマー(205)に出力する。すなわち、タイマー(205)は、第2のテスト制御回路(200A〜200D)の全てが終了通知信号を出力した時点で経過時間の計測を終了する。
[動作]
続いて、図16及び図17を参照して、実施の形態8に係る半導体装置(1H)の自己診断時の動作について説明する。図16及び図17は、実施の形態8に係る半導体装置(1H)の自己診断時の動作を示すフロー図である。
図16及び図17では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列にイベントを行うことが表されている。矢印が分岐しているところは処理が並列して実行されること処理を示している。なお、ひし形のイベントは、分岐を表す。ひし形のイベントは、基本的に、下向きの矢印がイベントの内容に対して正常な状態であった場合の次処理を指しており、右向きの矢印がイベントの内容に対して異常な状態であった場合の次処理を指す。本実施の形態8における動作の説明は、図15に示す半導体装置(1H)の例と、図16及び図17に示す動作フローを照らし合わせながら行う。
[全体動作フロー]
半導体装置(1H)は、その電源が投入され、複数の第2のテスト制御装置(4)及び共通結果判定装置(5)のリセットが解除されると、最初に、LFを検出するための診断動作を行う。LFの検出には、複数の第2のテスト制御装置(4)と共通結果判定装置(5)が用いられ、CPU(10A〜10D)のそれぞれの起動時診断は、そのテスト結果の判定を除き、同時並列に実施される。ここでLFが検出されなければ、半導体装置(1H)は、通常動作を開始する。
また、半導体装置(1H)は、通常動作中、定期的に、CPU(10A〜10D)のうち、いずれか1つのCPUの処理を中断して、処理を中断したCPUのSPFを検出するための動作中診断を行う。ここでSPFが検出されなければ、半導体装置(1H)は、起動時診断を実施したCPUは通常動作を再開する。なお、SPFの検出のための診断動作は、例えば、CPU(10A〜10D)のそれぞれに対して所定の順序で実施し、2つ以上のCPUに対して同時には実施しない。
[起動時診断(LF検出フロー)]
起動時診断の診断動作が開始されると、システム制御回路(15)は、比較回路(209)の診断を実施する(S501)。システム制御回路(15)は、比較回路(209)の診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200A〜200D)に出力する。第2のテスト制御回路(200A〜200D)は、比較回路(209)の診断開始を指示する診断開始信号のアサートに応じて、比較回路(209)の診断を実施する。なお、このステップS501における動作は、実施の形態1の変形例で説明した図4のステップS112の動作と同様であるため、その説明は省略する。
また、システム制御回路(15)は、第2のテスト制御回路(200A〜200D)のいずれか1つに対してアサートした診断開始信号を出力して、CPU(10A〜10D)のうち、その第2のテスト制御回路に対応するCPUのスキャンテストを実施することによって比較回路(209)を診断するようにしてもよい。また、実施の形態1の変形例で説明したように、スキャンテストを実施せず、システム制御回路(15)が、比較回路(209)に異なる値の比較のみを実施させるようにしてもよい。
次に、システム制御回路(15)は、CPU(10A〜10D)のそれぞれの診断開始を指示する診断開始信号をアサートして第2のテスト制御回路(200A〜200D)のそれぞれに出力する。第2のテスト制御回路(200A〜200D)のそれぞれは、CPU(10A〜10D)のそれぞれの診断開始を指示する診断開始信号のアサートに応じて、CPU(10A〜10D)のそれぞれの診断を開始する(S502、S503、S504、S505)。なお、ステップS502、S503、S504、S505のそれぞれの具体的な動作については、実施の形態1における図3のステップS101と同様であるため、その説明を省略する。
ただし、本実施の形態8では、複数のパタン発生回路(201A〜201D)のそれぞれが、複数のCPU(10A〜10D)のそれぞれに並列にテストパタンを入力する。また、複数の第2の結果圧縮回路(207A〜207D)のそれぞれが、複数のCPU(10A〜10D)のそれぞれのスキャンチェーンからテスト結果を取得し、圧縮する。
ここで、第2のテスト制御回路(200A〜200D)のそれぞれは、CPU(10A〜10D)のそれぞれの診断を開始する前に、実施の形態1における図3のステップS102と同様に、タイマー(205)を起動する(S506)。具体的なタイマー(205)による判定内容及び判定結果に応じた通知内容については、実施の形態1における図3のステップS102と同様であるため、その説明を省略する。ただし、本実施の形態8では、実施の形態1とは異なり、上述したように、タイマー(205)は、第2のテスト制御回路(200A〜200D)の全てから開始通知信号が出力されたときに、経過時間の計測を開始する。
全てのスキャンテスト結果を第2の結果圧縮回路(207A〜207D)のそれぞれで圧縮後、CPU(10A)、CPU(10B)、CPU(10C)、CPU(10D)の順にテスト結果を判定する。
最初に、第2のテスト制御回路(200A)又は第2の結果圧縮回路(207A)は、第2の結果圧縮回路(207A)が選択されるように選択回路(502)を制御する。CPU(10A)に対応する第2の結果圧縮回路(207A)は、選択回路(502)を介して圧縮後のテスト結果を1ビットずつシリアルに再帰型圧縮回路(208)に対して出力する。テスト結果を判定していないCPU(10B〜10D)に対応する他の第2の結果圧縮回路(207B〜207D)は、圧縮後のテスト結果を保持したまま停止する。再帰型圧縮回路(208)は、第2の結果圧縮回路(207A)からのCPU(10A)のテスト結果を再圧縮する。比較回路(209)は、再帰型圧縮回路(208)で圧縮後のテスト結果を判定する(S507)。なお、ステップS507の具体的な動作については、実施の形態1における図3のステップS104と同様であるため、その説明を省略する。これについては、後述するCPU(10B〜10D)に対する動作においても同様である。
システム制御回路(15)は、比較回路(209)からCPU(10A)の診断結果としてエラーが通知された場合(S507:異常)、速やかにシステムを停止させる処理を行い、システムを停止させる(S527)。すなわち、システム制御回路(15)は、半導体装置(1H)の起動を抑止する。これについては、後述するCPU(10B〜10D)に対する動作においても同様である。
次に、第2のテスト制御回路(200B)又は第2の結果圧縮回路(207B)は、第2の結果圧縮回路(207B)が選択されるように選択回路(502)を制御する。CPU(10B)に対応する第2の結果圧縮回路(207B)は、選択回路(502)を介して圧縮後のテスト結果を1ビットずつシリアルに再帰型圧縮回路(208)に対して出力する。テスト結果を判定していないCPU(10C、10D)に対応する他の第2の結果圧縮回路(207C、207D)は、圧縮後のテスト結果を保持したまま停止する。再帰型圧縮回路(208)は、第2の結果圧縮回路(207B)からのCPU(10B)のテスト結果を再圧縮する。比較回路(209)は、再帰型圧縮回路(208)で圧縮後のテスト結果を判定する(S508)。
次に、第2のテスト制御回路(200C)又は第2の結果圧縮回路(207C)は、第2の結果圧縮回路(207C)が選択されるように選択回路(502)を制御する。CPU(10C)に対応する第2の結果圧縮回路(207C)は、選択回路(502)を介して圧縮後のテスト結果を1ビットずつシリアルに再帰型圧縮回路(208)に対して出力する。テスト結果を判定していないCPU(10D)に対応する他の第2の結果圧縮回路(207D)は、圧縮後のテスト結果を保持したまま停止する。再帰型圧縮回路(208)は、第2の結果圧縮回路(207C)からのCPU(10C)のテスト結果を再圧縮する。比較回路(209)は、再帰型圧縮回路(208)で圧縮後のテスト結果を判定する(S509)。
次に、第2のテスト制御回路(200D)又は第2の結果圧縮回路(207D)は、第2の結果圧縮回路(207D)が選択されるように選択回路(502)を制御する。CPU(10D)に対応する第2の結果圧縮回路(207D)は、選択回路(502)を介して圧縮後のテスト結果を1ビットずつシリアルに再帰型圧縮回路(208)に対して出力する。再帰型圧縮回路(208)は、第2の結果圧縮回路(207D)からのCPU(10D)のテスト結果を再圧縮する。比較回路(209)は、再帰型圧縮回路(208)で圧縮後のテスト結果を判定する(S510)。
[起動中診断(SPF検出フロー)]
全てのCPU(10A〜10D)の診断結果が正常である場合、システム制御回路(15)は、ステップS511〜S527、S20〜S23の動作を行う。なお、ステップS511〜S527、S20〜S23の動作は、実施の形態7におけるステップS411〜427、S10〜13の動作と同様であるため、それらの説明は省略する。
[特徴及び効果]
実施の形態8は、実施の形態7に対して、LFを検出するためのスキャンテストを実施する装置(第2のテスト制御装置(4))をCPU毎に設けたものである。すなわち、複数の第2のテスト制御装置のそれぞれが、相互に並行して起動時診断におけるスキャンテストのそれぞれの実施するようにしている。これにより、複数のCPUのLF検出が同時に実施できるため、起動時診断にかかる時間を短縮することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
なお、実施の形態7、8では、複数の被テスト回路として、マルチプロセッサにおける複数のCPUを対象とした例について説明したが、これに限られない。マルチコアにおける複数のコアを対象としてもよい。すなわち、被テスト回路として、各種演算回路を対象とすることができる。
また、実施の形態7、8では、起動中診断を2つ以上のCPUに対して同時には実施しない例について説明したが、これに限られない。起動中診断を2つ以上のCPUに対してCPU(例えば、2つ又は3つ)に対して同時に実施するようにしてもよい。ただし、好ましくは、上述したように、起動中診断を2つ以上のCPUに対して同時に実施しないようにすることで、起動中診断時におけるシステム性能の劣化を低減することができる。
また、実施の形態3では、半導体装置(1C)の起動中に起動時診断を実施していない被テスト回路(50、60)のみに対して、半導体装置(1C)の起動完了後に、起動時診断を実施する例について説明したが、これに限られない。例えば、半導体装置(1C)の起動中に起動時診断を実施した被テスト回路(40)に対しても、半導体装置(1C)の起動完了後に、起動時診断を実施するようにしてもよい。例えば、システム制御回路(15)が、被テスト回路(40)の起動時診断を終了した後に第2のテスト制御装置(52)に対する診断開始信号をネゲートする。そして、半導体装置(1C)の起動完了後に、被テスト回路(40)が、自身を含む被テスト回路(40、50、60)に対応する第2のテスト制御装置(42、52、62)のそれぞれに対してシステムバス(13)を介してアサートされた診断開始信号を出力してもよい。
1、1A、1B、1C、1D、1E、1F、1G、1H 半導体装置
2、40、50、60 被テスト回路
3、41、51、61 第1のテスト制御装置
4、42、52、62 第2のテスト制御装置
5、43、53、63 共通結果判定装置
10、10A、10B、10C、10D CPU
11 内蔵メモリ
12 外部I/F
13 システムバス
14 外部メモリ
15 システム制御回路
16、17 遮断回路
20 動作中診断装置
44、54、64、500 ANDゲート
45、55、65 ORゲート
70 テスト対象設定回路
100 第1のテスト制御回路
101 パタン入力回路
102 第1の結果判定回路
103 第1の期待値記憶回路
104 第1のタイマー
200、200A、200B、200C、200D 第2のテスト制御回路
201、201A、201B、201C、201D パタン発生回路
202 第2の結果判定回路
203 第2の期待値記憶回路
204 第2のタイマー
205 タイマー
206 第1の結果圧縮回路
207、207A、207B、207C、207D 第2の結果圧縮回路
208 再帰型圧縮回路
209 比較回路
203 第2の期待値記憶回路
300、300A、300B、300C、300D、301、302、401、402、501、502 選択回路
400 ROM
600 テスト制御回路
601 パタン入力回路
602 結果判定回路
603 期待値記憶回路

Claims (13)

  1. スキャンチェーンを有する被テスト回路と、
    前記スキャンチェーンを用いて前記被テスト回路のスキャンテストを実施する第1のテスト制御装置及び第2のテスト制御装置と、を備え、
    前記第2のテスト制御装置は、前記被テスト回路に対し第2のスキャンテストを実施し、
    前記被テスト回路が、前記第2のスキャンテストが実施された後に、前記第1のテスト制御装置に第1のスキャンテストの実施を指示し、
    前記第1のテスト制御装置は、前記被テスト回路からの指示に応じて、前記被テスト回路に対し第1のスキャンテストを実施する、
    を備えた半導体装置。
  2. 前記第2のテスト制御装置は、前記半導体装置の起動時に、テストパタンを生成して前記スキャンチェーンに入力することで、前記第2のスキャンテストを実施するものであり、
    前記第1のテスト制御装置は、前記半導体装置の起動完了後に、前記半導体装置に接続された外部記憶回路からテストパタンを取得し、前記スキャンチェーンに入力することで、前記第1のスキャンテストを実施するものである、
    請求項1に記載の半導体装置。
  3. 前記半導体装置は、前記第1のスキャンテスト及び前記第2のスキャンテストのそれぞれによって前記被テスト回路から取得したテスト結果を判定する結果判定装置を更に備えた、
    請求項2に記載の半導体装置。
  4. 前記半導体装置は、前記スキャンテストの実施時間を計測し、計測した実施時間が所定の閾値を超えた場合に、エラーを通知するタイマーをさらに備え、
    前記第1のテスト制御装置及び前記第2のテスト制御装置のそれぞれは、前記被テスト回路のスキャンテストを開始するときに、前記実施時間の計測開始を前記タイマーに指示し、前記被テスト回路のスキャンテストを終了したときに、前記実施時間の計測終了を前記タイマーに指示する、
    請求項1に記載の半導体装置。
  5. 前記半導体装置は、前記第2のスキャンテストによって前記被テスト回路から取得したテスト結果の期待値である第2の期待値が格納される第2の期待値記憶部と、
    前記第2のスキャンテストによって前記被テスト回路から取得した第2のテスト結果と、前記第2の期待値記憶部に格納された第2の期待値とを比較し、一致する場合には正常であると判定し、一致しない場合にはエラーであると判定する結果判定装置と、
    前記結果判定装置の判定結果に応じて、前記半導体装置を制御するシステム制御回路と、をさらに備え、
    前記システム制御回路は、前記第2のスキャンテストを実施する前に、前記結果判定装置に異なる値を比較させて、一致すると判定された場合に、前記半導体装置の動作を停止させる、
    請求項1に記載の半導体装置。
  6. 前記半導体装置は、
    複数の前記被テスト回路と、
    前記複数の被テスト回路のそれぞれのスキャンテストを実行する複数の前記第2のテスト制御装置と、を備え、
    前記複数の第2のテスト制御装置のそれぞれは、前記半導体装置の起動時に、前記第2のスキャンテストを実施するものであり、
    前記第1のテスト制御装置は、前記半導体装置の起動後に、前記第1のスキャンテストを実施するものであり、
    前記半導体装置は、前記複数の被テスト回路のそれぞれについて、前記半導体装置の起動時における、前記第2のスキャンテストの対象であるか否かを示すテスト対象値が格納されるテスト対象設定回路をさらに備え、
    前記複数の第2のテスト制御装置のそれぞれは、前記テスト対象値に従って、前記第2のスキャンテストを実施する、
    請求項1に記載の半導体装置。
  7. 前記複数の被テスト回路のそれぞれは、前記第2のスキャンテストが実施された後に起動されて、前記第1のスキャンテストの指示を含む処理を実行し、
    前記テスト対象値が前記第2のスキャンテストの対象であると示す被テスト回路は、前記処理において、前記半導体装置の起動後に、前記テスト対象値が前記第2のスキャンテストの対象でないと示す被テスト回路のうち、所定の被テスト回路に対応する第2のテスト制御装置に対して、前記第2のスキャンテストの実施を指示する、
    請求項6に記載の半導体装置。
  8. 前記第2のテスト制御装置は、前記被テスト回路とともに前記第1のテスト制御装置のスキャンテストも実施する、
    請求項1に記載の半導体装置。
  9. 前記第1のテスト制御装置及び前記第2のテスト制御装置は、同一のテスト制御装置であり、
    前記半導体装置は、
    前記テスト制御装置が前記半導体装置に接続された外部記憶回路から前記第1のスキャンテストで前記スキャンチェーンに入力するテストパタンを取得する際に使用されるシステムバスと、
    前記第2のスキャンテストで前記スキャンチェーンに入力するテストパタンが格納された内部記憶回路と、をさらに備え、
    前記テスト制御装置は、
    前記システムバスを初期化しているときに、前記内部記憶回路から前記テストパタンを取得し、取得したテストパタンを前記スキャンチェーンに入力して前記第2のスキャンテストを実施し、
    前記システムバスの初期化後に、前記システムバスを介して前記外部記憶回路から前記テストパタンを取得し、取得したテストパタンを前記スキャンチェーンに入力して前記第1のスキャンテストを実施する、
    請求項1に記載の半導体装置。
  10. 前記第1のテスト制御装置及び前記第2のテスト制御装置は、同一のテスト制御装置であり、
    前記半導体装置は、
    前記テスト制御装置が前記半導体装置に接続された外部記憶回路から前記第1のスキャンテスト及び前記第2のスキャンテストで前記スキャンチェーンに入力するテストパタンを取得する際に使用されるシステムバスと、
    前記テスト制御装置が前記外部記憶回路から前記システムバスを介さずに前記テストパタンを取得する際に使用される外部インターフェース回路と、をさらに備え、
    前記テスト制御装置は、
    前記システムバスを初期化しているときに、前記外部インターフェース回路を介して前記外部記憶回路から前記テストパタンを取得し、取得したテストパタンを前記スキャンチェーンに入力して前記第2のスキャンテストを実施し、
    前記システムバスの初期化後に、前記システムバスを介して前記外部記憶回路から前記テストパタンを取得し、取得したテストパタンを前記スキャンチェーンに入力して前記第1のスキャンテストを実施する、
    請求項1に記載の半導体装置。
  11. 前記半導体装置は、複数の前記被テスト回路を備え、
    前記第1のテスト制御装置及び前記第2のテスト制御装置は、前記複数の被テスト回路のそれぞれのスキャンテストを所定の順序で実施する、
    請求項1に記載の半導体装置。
  12. 前記半導体装置は、
    複数の前記被テスト回路と、
    前記複数の被テスト回路のそれぞれのスキャンテストを実行する複数の前記第2のテスト制御装置と、を備え、
    前記複数の第2のテスト制御装置のそれぞれは、前記半導体装置の起動時に、前記第2のスキャンテストを実施するものであり、
    前記第1のテスト制御装置は、前記半導体装置の起動後に、前記第1のスキャンテストを実施するものであり、
    前記複数の第2のテスト制御装置のそれぞれは、相互に並行して前記第2のスキャンテストのそれぞれの実施する、
    請求項1に記載の半導体装置。
  13. 第2のテスト制御装置が、被テスト回路が有するスキャンチェーンを用いて前記被テスト回路に対しスキャンテストを実施し、
    前記被テスト回路が、前記第2のテスト制御装置によるスキャンテストが実施された後に、第1のテスト制御装置にスキャンテストの実施を指示し、
    前記第1のテスト制御装置が、前記被テスト回路からの指示に応じて、前記被テスト回路が有するスキャンチェーンを用いて前記被テスト回路に対し第1のスキャンテストを実施する、
    診断テスト方法。
JP2017524143A 2015-06-18 2015-06-18 半導体装置及び診断テスト方法 Active JP6462870B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/003047 WO2016203505A1 (ja) 2015-06-18 2015-06-18 半導体装置及び診断テスト方法

Publications (2)

Publication Number Publication Date
JPWO2016203505A1 true JPWO2016203505A1 (ja) 2017-09-28
JP6462870B2 JP6462870B2 (ja) 2019-01-30

Family

ID=57546429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017524143A Active JP6462870B2 (ja) 2015-06-18 2015-06-18 半導体装置及び診断テスト方法

Country Status (7)

Country Link
US (1) US10281525B2 (ja)
EP (1) EP3312623B1 (ja)
JP (1) JP6462870B2 (ja)
KR (1) KR20180019505A (ja)
CN (1) CN107430167B (ja)
TW (1) TW201715245A (ja)
WO (1) WO2016203505A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003153B2 (en) * 2017-11-17 2021-05-11 Intel Corporation Safety operation configuration for computer assisted vehicle
US10620266B2 (en) * 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
TWI697773B (zh) * 2019-01-09 2020-07-01 瑞昱半導體股份有限公司 電路測試系統及電路測試方法
KR102176964B1 (ko) * 2019-05-13 2020-11-11 하이윈 테크놀로지스 코포레이션 시스템 기능 시험 장치
US10877700B1 (en) 2019-08-16 2020-12-29 Silicon Motion, Inc. Flash memory controller and method capable of efficiently reporting debug information to host device
JP7150676B2 (ja) * 2019-09-02 2022-10-11 株式会社東芝 半導体集積回路及びそのテスト方法
JP7269896B2 (ja) * 2020-02-17 2023-05-09 ルネサスエレクトロニクス株式会社 故障診断装置および故障診断方法
TWI719841B (zh) * 2020-02-25 2021-02-21 世界先進積體電路股份有限公司 測試電路及電子裝置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0318777A (ja) * 1989-06-16 1991-01-28 Hitachi Ltd スキヤン回路の故障診断方法
JP2003068865A (ja) * 2001-08-30 2003-03-07 Sony Corp 半導体デバイスの自己診断方法および装置
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
JP2006073917A (ja) * 2004-09-06 2006-03-16 Nec Electronics Corp 集積回路
JP2006303326A (ja) * 2005-04-22 2006-11-02 Toshiba Corp 半導体装置およびそのテスト方法
JP2009109192A (ja) * 2007-10-26 2009-05-21 Hitachi Ltd 半導体集積回路装置
JP2011094986A (ja) * 2009-10-27 2011-05-12 Renesas Electronics Corp 半導体集積回路、半導体集積回路設計方法、スキャンテストパタン生成方法及びそのプログラム
JP2015031534A (ja) * 2013-07-31 2015-02-16 富士通セミコンダクター株式会社 半導体装置及びその試験方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05313935A (ja) 1992-05-06 1993-11-26 Hokuriku Nippon Denki Software Kk 情報処理装置の診断回路
TW307927B (ja) * 1994-08-29 1997-06-11 Matsushita Electric Ind Co Ltd
JPH11101859A (ja) 1997-09-29 1999-04-13 Matsushita Electric Ind Co Ltd 半導体装置
JP2002189063A (ja) 2000-12-22 2002-07-05 Hitachi Ltd 半導体装置
DE10334801B3 (de) * 2003-07-30 2005-01-27 Infineon Technologies Ag Halbleiterschaltung und Verfahren zum Testen, Überwachen und applikationsnahen Einstellen einer Halbleiterschaltung
JP3859647B2 (ja) * 2004-01-16 2006-12-20 松下電器産業株式会社 半導体集積回路のテスト方法および半導体集積回路
US7469372B2 (en) 2005-05-13 2008-12-23 Texas Instruments Incorporated Scan sequenced power-on initialization
US7301836B1 (en) * 2005-10-25 2007-11-27 Altera Corporation Feature control circuitry for testing integrated circuits
JP2008267999A (ja) 2007-04-20 2008-11-06 Hitachi Ltd 制御中に自己診断できるプログラム可能な制御装置
US20090063921A1 (en) 2007-08-28 2009-03-05 Anthony Gus Aipperspach Staggered LBIST Clock Sequence for Noise (di/dt) Amelioration
JP5313935B2 (ja) * 2010-01-21 2013-10-09 三菱電機株式会社 回転電機の固定子の製造方法および回転電機の固定子
CN103576076B (zh) * 2012-07-27 2019-02-01 恩智浦美国有限公司 用于执行扫描测试的系统和方法
JP6496562B2 (ja) * 2014-04-11 2019-04-03 ルネサスエレクトロニクス株式会社 半導体装置、診断テスト方法及び診断テスト回路
WO2016166780A1 (ja) * 2015-04-16 2016-10-20 ルネサスエレクトロニクス株式会社 半導体装置及びスキャンテスト方法
JP6438353B2 (ja) * 2015-05-27 2018-12-12 ルネサスエレクトロニクス株式会社 半導体装置及び診断テスト方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0318777A (ja) * 1989-06-16 1991-01-28 Hitachi Ltd スキヤン回路の故障診断方法
JP2003068865A (ja) * 2001-08-30 2003-03-07 Sony Corp 半導体デバイスの自己診断方法および装置
JP2003121499A (ja) * 2001-10-09 2003-04-23 Hitachi Ltd 組込みテスト機能付き半導体集積回路、テストコード生成プログラムから成る電子設計データを保存する記憶媒体、該半導体集積回路のテスト方法、テストコード生成自動化方法及びそのプログラム
JP2006073917A (ja) * 2004-09-06 2006-03-16 Nec Electronics Corp 集積回路
JP2006303326A (ja) * 2005-04-22 2006-11-02 Toshiba Corp 半導体装置およびそのテスト方法
JP2009109192A (ja) * 2007-10-26 2009-05-21 Hitachi Ltd 半導体集積回路装置
JP2011094986A (ja) * 2009-10-27 2011-05-12 Renesas Electronics Corp 半導体集積回路、半導体集積回路設計方法、スキャンテストパタン生成方法及びそのプログラム
JP2015031534A (ja) * 2013-07-31 2015-02-16 富士通セミコンダクター株式会社 半導体装置及びその試験方法

Also Published As

Publication number Publication date
US10281525B2 (en) 2019-05-07
CN107430167B (zh) 2021-02-02
TW201715245A (zh) 2017-05-01
EP3312623B1 (en) 2022-04-13
EP3312623A1 (en) 2018-04-25
JP6462870B2 (ja) 2019-01-30
CN107430167A (zh) 2017-12-01
EP3312623A4 (en) 2019-01-23
KR20180019505A (ko) 2018-02-26
US20180180672A1 (en) 2018-06-28
WO2016203505A1 (ja) 2016-12-22

Similar Documents

Publication Publication Date Title
JP6462870B2 (ja) 半導体装置及び診断テスト方法
CN106201793B (zh) 半导体装置和诊断测试方法
US10042791B2 (en) Abnormal interrupt request processing
JP6496562B2 (ja) 半導体装置、診断テスト方法及び診断テスト回路
US8799713B2 (en) Interruptible non-destructive run-time built-in self-test for field testing
EP2175372B1 (en) Computer apparatus and processor diagnostic method
CN105373455B (zh) 处理器系统,发动机控制系统和控制方法
US20170249224A1 (en) Semiconductor device
KR100296984B1 (ko) 전자제어장치용감시시스템
US10915082B2 (en) Microcontroller with error signal output circuit and control method of the same
JP2012181564A (ja) 自己診断回路および自己診断方法
JP2018041402A (ja) 電子制御装置
JP7334531B2 (ja) 半導体回路装置
JP2014209312A (ja) 集積回路
CN115904793A (zh) 一种基于多核异构系统的内存转存方法、系统及芯片
US8742779B2 (en) Semiconductor device and abnormality prediction method thereof
JP2016126692A (ja) 電子制御装置
US10008285B2 (en) Semiconductor device
JP2018112977A (ja) マイクロコンピュータ
JP2008267999A (ja) 制御中に自己診断できるプログラム可能な制御装置
JP6588068B2 (ja) マイクロコンピュータ
US20200300915A1 (en) Semiconductor device, method for diagnosing semiconductor device, and diagnosis program for semiconductor device
JP2015121478A (ja) 故障検出回路及び故障検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181227

R150 Certificate of patent or registration of utility model

Ref document number: 6462870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150