JP2019191064A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2019191064A JP2019191064A JP2018086115A JP2018086115A JP2019191064A JP 2019191064 A JP2019191064 A JP 2019191064A JP 2018086115 A JP2018086115 A JP 2018086115A JP 2018086115 A JP2018086115 A JP 2018086115A JP 2019191064 A JP2019191064 A JP 2019191064A
- Authority
- JP
- Japan
- Prior art keywords
- flip
- scan
- flop
- selection circuit
- output
- 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.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Hardware Redundancy (AREA)
- Microcomputers (AREA)
- Semiconductor Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
【課題】システムの稼働中に実施する自己診断にかかるオーバヘッド時間を低減できる半導体装置を提供することにある。【解決手段】半導体装置は、入力データを保持する複数のフリップフロップと、前記複数のフリップフロップからの出力の多数決結果を出力する多数決回路と、を含む。自己診断において、前記複数のフリップフロップの内の1つのフリップフロップをスキャンチェーンに含ませ、前記複数のフリップフロップの残りのフリップフロップにデータを保持させる。【選択図】図4
Description
本開示は半導体装置に関し、例えば自己診断機能を備える半導体装置に適用可能である。
車載電子機器等の機能安全規格として、国際標準化機構のISO26262が注目を集めている。機能安全とは、車載電子機器の構成要素であるマイクロコントローラ等の半導体装置に故障が発生したとしても、機能的な工夫を施すことによって要求され得る最低限の安全を確保することである。ISO26262では、高い故障検出率が要求されるため、車載用マイクロコントローラでは、BIST(Build In Self Test)を行うためのスキャン回路が実装される。そしてBISTの実行は、マイクロコントローラに電源が投入されてからマイクロコントローラの実動作(エンジン制御、ブレーキ制御等の各種車載制御)が始まるまでに行われるのが一般的である。
近年では、車載用マイクロコントローラの稼働中、すなわち、車載電子機器等のシステムの稼働中に、車載用マイクロコントローラの一部の機能(未使用の周辺回路等)を切り離し、切り離した機能に対して自己診断(BISTの実行)を実施し、自己診断の実施後に切り離した機能を復帰させるという対応が求められるようになってきた。
自動車に利用される車載電子機器などのように、システム稼働に必要なパラメータ等を保持する保持回路(フリップフロップ)には高い安全性が求められる。そのため、TMR(triple modular redundant)構成の保持回路を用いて、保持するパラメータ値の安全性を高める技術が提案されている(特許文献1参照)。
また、内部状態の退避・回復させるため、対象回路が保持するパラメータ値を含む内部状態がスキャンチェーンを利用して全てバックアップメモリに退避させ、バックアップメモリに退避された内部状態がスキャンチェーンを利用して対象回路に回復させる技術が提案されている(特許文献2参照)。特許文献2に記載の技術によれば、バックアップ完了後に自己診断を実施し、自己診断終了後に対象回路の内部状態を正しい状態に回復させることが可能である。
しかし、特許文献2に記載の技術は、スキャンチェーンを用いて内部状態の退避/回復を行うため、退避/回復の処理に時間(オーバヘッド時間)が長くかかってしまう虞がある。また、内部状態の退避/回復を行うための専用のバックアップメモリが必要になってしまう。
本開示の課題は、システムの稼働中に実施する自己診断にかかるオーバヘッド時間を低減できる半導体装置を提供することにある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、半導体装置は、入力データを保持する複数のフリップフロップと、前記複数のフリップフロップからの出力の多数決結果を出力する多数決回路と、を含む。自己診断において、前記複数のフリップフロップの内の1つのフリップフロップをスキャンチェーンに含ませ、前記複数のフリップフロップの残りのフリップフロップにデータを保持させる。
上記半導体装置によれば、システムの稼働中に実施する自己診断にかかるオーバヘッド時間を低減することが可能である。
以下、実施例、変形例、および応用例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し、繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
まず、図1〜図6を用いて、実施例を説明する。
図1は、実施例に係る半導体装置のテスト構成の概略を説明するための図である。図2は、実施例に係る機能ブロックのテスト時の構成を概略的に示す図である。図3は、実施例に係る半導体装置の機能ブロックのテスト時の構成を概念的に示す図である。図4は、図1のTMR(triple modular redundant)構成のフリップフロップブロック210の回路図である。図5は、図4のエラー判定回路360の回路図である。図6は、図4の多数決回路340の真理値表を示す図である。図7は、図4のエラー判定回路の真理値表を説明するための図である。
図1に示すように、車載電子機器の構成要素であるマイクロコントローラ等の半導体装置1は、スキャン制御部100と、機能ブロック200とを有する。スキャン制御部100は、機能ブロック200のキャンテストを制御する。機能ブロック200は、複数のTMR構成のフリップフロップブロック210を有する。フリップフロップブロック210は、スキャン機能を有するフリップフロップ部(SFF)と見做すこともできる。
スキャン制御部100は、BISTの実行を制御する自己診断実行制御部(図20参照)からシステムクロックSYSCLKとスキャンモード信号SMCとを受け、スキャンイネーブル信号SEN、複数の保持制御信号HOLDn、複数の選択信号SELn、リフレッシュ制御信号Refresh、および、クロック信号CLKを生成し、各々のフリップフロップブロック210へ供給する。複数の保持制御信号HOLDnおよび複数の選択信号SELnは、例えば、図4に示すTMR構成のフリップフロップブロック210を利用する場合、3つの保持制御信号HOLD1、HOLD2、HOLD3、および、3つの選択信号SEL1、SEL2、SEL3により構成される。
複数のフリップフロップブロック210の各々は、スキャン制御部100から供給されたスキャンイネーブル信号SEN、複数の保持制御信号HOLDn、複数の選択信号SELn、リフレッシュ制御信号Refresh、および、クロック信号CLKを受ける信号端子(SEN、HOLDn、SELn、Refresh、CLK)をそれぞれ有する。複数のフリップフロップブロック210の各々は、また、スキャン用のテストデータまたはテスト結果データが入力されるスキャン入力端子SINnと、データを受けるデータ入力端子Dと、データを出力するデータ出力端子Qと、スキャン用のテストデータまたはテスト結果データが出力されるスキャン出力端子SOUTnと、エラー判定結果信号を出力するエラー出力端子ERRと、を有する。
スキャン用のテストデータの入力時(スキャンイン)およびスキャン用のテスト結果データの出力時(スキャンアウト)において、複数のフリップフロップブロック(SFF)210は、シリアルに接続される。すなわち、図1に示すように、1番目のフリップフロップブロック210のスキャン出力端子SOUTnが、2番目のフリップフロップブロック210のスキャン入力端子SINnに接続される。スキャン入力端子SINnおよびスキャン出力端子SOUTnは、例えば、図4に示すTMR構成のフリップフロップブロック210を利用する場合、3つのスキャン入力端子SIN1、SIN2、SIN3、および、3つのスキャン出力端子SOUT1、SOUT2、SOUT3により構成される。例えば、1番目のフリップフロップブロック210のスキャン出力端子SOUT1が2番目のフリップフロップブロック210のスキャン入力端子SIN1に接続される場合、1番目のフリップフロップブロック210のスキャン出力端子SOUT2が2番目のフリップフロップブロック210のスキャン入力端子SIN2に接続される場合、あるいは、1番目のフリップフロップブロック210のスキャン出力端子SOUT3が2番目のフリップフロップブロック210のスキャン入力端子SIN3に接続される場合等がある。
複数のフリップフロップブロック(SFF)210の各々のデータ入力端子Dは機能ブロック200内の組み合わせ回路(CL)からのデータを入力される様に接続され、複数のフリップフロップブロック210各々のデータ出力端子Qは機能ブロック200内の組み合わせ回路(CL)へデータを出力する様に接続される(図2参照)。
図2および図3を用いて、自己診断(ロジックBIST)で行うスキャンテストについて、基本的な動作を説明する。
スキャンテストは、テストを容易にする設計手法であるDFT(Design for Testability)技術の一つで、AND回路、OR回路、インバータ、フリップフロップなどの論理回路を組み合わせて所定の論理機能を構成したランダムロジックを含む機能ブロック200を対象にする。スキャンテストでは、機能ブロック200内のスキャン用フリップフロップブロック(SFF)210を利用して行う。
図2に示すように、テストモード時には機能ブロック200内のスキャン用フリップフロップ(SFF)210をシリアルに接続することでシフトレジスタを形成し、スキャンテスト対象ブロックの入出力端子(SINn、SOUTn)からスキャン用フリップフロップ(SFF)を制御・観測できるような経路(スキャンチェーン(SCAN CHAIN))を設ける。このような構成を採ると、スキャン用フリップフロップがスキャンテスト対象ブロックの入出力端子と等価と見なせるため、テストの対象は組み合わせ回路(CL)のみとなる。組み合わせ回路(CL)に対してのテストパターン生成技術は、ATPG(Automatic Test Pattern Generation)として確立しており、効率良くテストパターンを自動生成できる。
スキャンテストは、スキャンイン(SCAN IN)→キャプチャ(CAPTURE)→スキャンアウト(SCAN OUT)という一連の動作を複数回繰り返して進められる。まず、スキャンイネーブル信号SENによりスキャンモードに設定し、スキャンイン端子(SINn)からスキャン用フリップフロップ(SFF)に対して、図3に示すように、テストパターン発生回路PGからテストパターン(テストデータ)を設定する。次に、スキャンイネーブル信号SENにより通常動作モードに設定し、スキャン用フリップフロップ(SFF)間の組み合わせ回路(CL)を動作させる。そして、クロック信号CLKを動作させて、組み合わせ回路(CL)の出力をスキャン用フリップフロップ(SFF)に取り込む。その次に、再びスキャンイネーブル信号SENによりスキャンモードに設定し、スキャン用フリップフロップ(SFF)に取り込んだ値をスキャンアウト端子(SOUTn)で観測する。図3に示すように、スキャンアウト端子(SOUTn)から出力された値は、圧縮回路(COMP)により圧縮され、比較結果保持回路(RCS)に格納する。比較結果保持回路(RCS)では、期待値と圧縮されたテスト結果とを比較し、その結果を保持する。例えば、車載マイクロコントローラに内蔵されたCPUが比較結果保持回路(RCS)から比較結果を読み出してテスト結果の判定を行うことが出来る。
なお、図2の説明では、理解を容易にするために、スキャンテストがスキャンイン(SCAN IN)→キャプチャ(CAPTURE)→スキャンアウト(SCAN OUT)という一連の動作を複数回繰り返して進められるとして説明した。図1のフリップフロップブロック210の動作は、後述の図8または図15で説明されるように、データバックアップ(保持)→スキャンイン(スキャンテスト(スキャンシフト))→スキャンテスト(キャプチャ)→スキャンアウト(スキャンテスト(スキャンシフト))→データリストア(多数決値または保持値)という一連の動作を複数回繰り返して進められることとなる。
次に、図4〜図7を用いて、図1のフリップフロップブロック210の回路構成例を説明する。
図4に示すように、フリップフロップブロック210は、3つのフリップフロップQ1、Q2、Q3と、3つのフリップフロップQ1、Q2、Q3の出力に接続された多数決回路340と、フリップフロップQ1、Q2、Q3および多数決回路340の4つの出力から、選択信号SELnに従って1つの出力を選択し、出力端子Qへ出力するデータ選択回路SL10と、を有する。また、フリップフロップブロック210は、3つのフリップフロップQ1、Q2、Q3の出力に接続されたエラー判定回路(ER)360を有する。3つのフリップフロップQ1、Q2、Q3のクロック端子には、クロック信号CLKが接続される。3つのフリップフロップQ1、Q2、Q3の出力のそれぞれは、スキャンアウト端子SOUT1、SOUT2、SOUT3に接続される。
3つのフリップフロップQ1、Q2、Q3の入力には、以下の様に複数の選択回路が設けられる。
1)第1の選択回路群(選択回路SL1、SL2、SL3)
選択回路(第1選択回路)SL1、選択回路(第2選択回路)SL2、選択回路(第3選択回路)SL3は、リフレッシュ制御信号Refreshにより制御され、データ入力端子Dから入力される値とデータ選択回路SL10から出力される値のいずれか一方を選択する。リフレッシュ制御信号Refreshが、例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、データ入力端子Dの値が選択されて、選択回路SL1、SL2、SL3の出力に伝達される。リフレッシュ制御信号Refreshが、例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、データ選択回路SL10の値が選択されて、選択回路SL1、SL2、SL3の入力に伝達される。
選択回路(第1選択回路)SL1、選択回路(第2選択回路)SL2、選択回路(第3選択回路)SL3は、リフレッシュ制御信号Refreshにより制御され、データ入力端子Dから入力される値とデータ選択回路SL10から出力される値のいずれか一方を選択する。リフレッシュ制御信号Refreshが、例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、データ入力端子Dの値が選択されて、選択回路SL1、SL2、SL3の出力に伝達される。リフレッシュ制御信号Refreshが、例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、データ選択回路SL10の値が選択されて、選択回路SL1、SL2、SL3の入力に伝達される。
2)第2の選択回路群(選択回路SL4、SL5、SL6)
選択回路(第4選択回路)SL4、選択回路(第5選択回路)SL5、選択回路(第6選択回路)SL6は、スキャンイネーブル信号SENにより制御され、選択回路SL1、SL2、SL3の出力値とスキャン入力端子SIN1、SIN2、SIN3に入力される値の一方を選択する。スキャンイネーブル信号SENが、例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、選択回路SL1、SL2、SL3の出力が選択されて、選択回路SL4、SL5、SL6の入力にそれぞれ伝達される。スキャンイネーブル信号SENが、例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、スキャン入力端子SIN1、SIN2、SIN3の値が選択されて、選択回路SL4、SL5、SL6の出力にそれぞれ伝達される。
選択回路(第4選択回路)SL4、選択回路(第5選択回路)SL5、選択回路(第6選択回路)SL6は、スキャンイネーブル信号SENにより制御され、選択回路SL1、SL2、SL3の出力値とスキャン入力端子SIN1、SIN2、SIN3に入力される値の一方を選択する。スキャンイネーブル信号SENが、例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、選択回路SL1、SL2、SL3の出力が選択されて、選択回路SL4、SL5、SL6の入力にそれぞれ伝達される。スキャンイネーブル信号SENが、例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、スキャン入力端子SIN1、SIN2、SIN3の値が選択されて、選択回路SL4、SL5、SL6の出力にそれぞれ伝達される。
3)第3の選択回路群(選択回路SL7、SL8、SL9)
選択回路SL7、SL8、SL9は、保持制御信号HOLD1、HOLD2、HOLD3により制御され、選択回路SL4、SL5、SL6の出力とフリップフロップQ1、Q2、Q3の出力のいずれか一方を選択する。
選択回路SL7、SL8、SL9は、保持制御信号HOLD1、HOLD2、HOLD3により制御され、選択回路SL4、SL5、SL6の出力とフリップフロップQ1、Q2、Q3の出力のいずれか一方を選択する。
選択回路(第7選択回路)SL7は、保持制御信号HOLD1が例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、選択回路SL4の出力を選択して、フリップフロップQ1の入力に伝達する。選択回路SL7は、保持制御信号HOLD1が例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、フリップフロップQ1の出力を選択して、フリップフロップQ1の入力に伝達する。これにより、フリップフロップQ1の値が保持状態になる。選択回路(第8選択回路)SL8は、保持制御信号HOLD2が例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、選択回路SL5の出力を選択して、フリップフロップQ2の入力に伝達する。選択回路SL8は、保持制御信号HOLD2が例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、フリップフロップQ2の出力を選択して、フリップフロップQ2の入力に伝達する。これにより、フリップフロップQ2の値が保持状態になる。選択回路(第9選択回路)SL9は、保持制御信号HOLD3が例えば、ロウレベル(非選択レベル)であることを示す第1の値「0」の時、選択回路SL6の出力を選択して、フリップフロップQ3の入力に伝達する。選択回路SL9は、保持制御信号HOLD3が例えば、第1の値「0」と異なるハイレベル(選択レベル)であることを示す第2の値「1」の時、フリップフロップQ3の出力を選択して、フリップフロップQ3の入力に伝達する。これにより、フリップフロップQ3の値が保持状態になる。
データ選択回路SL10は、選択信号SELn(SEL1、SEL2、SEL3)が(000)の時、多数決回路340の出力を選択して、フリップフロップブロック210のデータ出力端子Qへ伝達する。
データ選択回路SL10は、選択信号SELn(SEL1、SEL2、SEL3)が(100)の時、フリップフロップQ1の出力を選択して、フリップフロップブロック210のデータ出力端子Qへ伝達する。データ選択回路SL10は、選択信号SELn(SEL1、SEL2、SEL3)が(010)の時、フリップフロップQ2の出力を選択して、フリップフロップブロック210のデータ出力端子Qへ伝達する。また、データ選択回路SL10は、選択信号SELn(SEL1、SEL2、SEL3)が(001)の時、フリップフロップQ3の出力を選択して、フリップフロップブロック210のデータ出力端子Qへ伝達する。
図5に示すように、エラー判定回路360は、3つの排他的論理和回路XOR1−XOR3と、3つの論理積回路AN1−AN3と、論理和回路ORと、を有する。XOR1は、フリップフロップQ1、Q2の出力の排他的論理和をとる。XOR2は、フリップフロップQ2、Q3の出力の排他的論理和をとる。XOR3は、フリップフロップQ1、Q3の出力の排他的論理和をとる。AN1は、XOR1の出力と保持制御信号HOLD3の反転入力とを受け、その出力は論理和回路ORへ入力される。AN2は、XOR2の出力と保持制御信号HOLD1の反転入力とを受け、その出力は論理和回路ORへ入力される。AN3は、XOR3の出力と保持制御信号HOLD3の反転入力とを受け、その出力は論理和回路ORへ入力される。論理和回路ORの出力は、エラー判定回路360のエラー判定出力ERRとして出力される。
エラー判定回路360は、2つの判定基準にてエラー判定の通知を行い、その判定基準は保持制御信号HOLD1、HOLD2、HOLD3の値に応じて選択される。
判定基準1)HOLD1、HOLD2、HOLD3の値が(000)の場合、3つのフリップフロップQ1、Q2、Q3が保持する値が一つでも異なる値(不一致)を示す場合に、エラー判定出力ERRを通知する。
判定基準2)HOLD1、HOLD2、HOLD3の値が(110)、(011)、および、(101)の場合、3つのフリップフロップQ1、Q2、Q3の内のいずれか2つのフリップフロップ(要は、Q1とQ2、Q2とQ3、Q1とQ3のいずれか)が保持する値が異なる場合にエラー判定出力ERRを通知する。
次に、図6および図7を用いて、多数決回路340およびエラー判定回路360の真理値表を説明する。
図6に示すように、多数決回路340は、フリップフロップQ1、Q2、Q3が保持する値の多数決結果を出力する。すなわち、多数決回路340は、フリップフロップQ1、Q2、Q3の保持する値の内、3つの値が同じ値の場合、または、フリップフロップQ1、Q2、Q3の保持する値の内、2つ値が同じ値の場合、その値を出力する。つまり、多数決回路340は、次式(1)に従って、その出力を生成する。
OR(Q1&Q2、Q2&Q3、Q3&Q1)・・・式(1)
図7(A)は保持制御信号HOLD1、HOLD2、HOLD3の値を示す表であり、図7(B)はフリップフロップQ1、Q2、Q3が保持する値を示す表であり、図7(C)はエラー判定回路360の真理値表である。先に記載したように、エラー判定回路360の判定基準は保持制御信号HOLD1、HOLD2、HOLD3の値に応じて選択される。
OR(Q1&Q2、Q2&Q3、Q3&Q1)・・・式(1)
図7(A)は保持制御信号HOLD1、HOLD2、HOLD3の値を示す表であり、図7(B)はフリップフロップQ1、Q2、Q3が保持する値を示す表であり、図7(C)はエラー判定回路360の真理値表である。先に記載したように、エラー判定回路360の判定基準は保持制御信号HOLD1、HOLD2、HOLD3の値に応じて選択される。
判定基準1は、通常動作時、すなわち、保持制御信号HOLD1、HOLD2、HOLD3の値が(000)の時であり、フリップフロップQ1、Q2、Q3の値が全て同じ(具体的には、(000)または(111))であれば、エラー判定出力ERRはエラー無(0)を出力する。一方、フリップフロップQ1、Q2、Q3の値が1つでも違う値(不一致)であれば、エラー判定出力ERRはエラー有り(1)を出力する。つまり、保持制御信号HOLD1、HOLD2、HOLD3=000であれば、OR(Q1^Q2、Q2^Q3、Q3^Q1)の式に従って、エラー判定出力ERRが出力される。
判定基準2は、以下の3つ場合がある。
2−1)フリップフロップQ1、Q2で値を保持させているとき(HOLD3=0、HOLD2=1、HOLD1=1)は、フリップフロップQ1の値とフリップフロップQ2の値とが同じであれば、エラーなし(0)。フリップフロップQ1の値がフリップフロップQ2の値と違う値(不一致)の場合、エラー有り(1)とする。つまり、(Q1^Q2)の式に従って、エラー判定出力ERRが出力される。
2−2)フリップフロップQ2、Q3が値を保持しているとき(HOLD3=1、HOLD2=1、HOLD1=0)は、フリップフロップQ2の値とフリップフロップQ3の値とが同じであれば、エラーなし(0)。フリップフロップQ2の値とフリップフロップQ3の値とが違う値(不一致)の場合はエラー有り(1)とする。つまり、(Q2^Q3)の式に従って、エラー判定出力ERRが出力される。
2−3)フリップフロップQ3、Q1が値を保持しているとき(HOLD3=1、HOLD2=0、HOLD1=1)は、フリップフロップQ3の値とフリップフロップQ1の値とが同じであれば、エラーなし(0)。フリップフロップQ3の値とフリップフロップQ1の値とが違う値(不一致)の場合、エラー有り(1)とする。つまり、(Q3^Q1)の式に従って、エラー判定出力ERRが出力される。
なお、保持制御信号HOLD1、HOLD2、HOLD3の値が(000)、(110)、(011)、(101)以外の場合、エラー判定回路360はエラーの検出動作は行わず、エラー判定出力ERRの出力はエラーなし(0)となる。
次に、図8〜図13を用いて、スキャン制御部により制御されるフリップフロップブロック210の動作モードおよび、各動作モードにおけるデータ経路を説明する。
図8は、図1のスキャン制御部により制御されるフリップフロップブロック210の動作モードを示す図である。図8の左半分を図8(A)、右半分を図8(B)に示す。図9は、ノーマルFF動作(保持)およびノーマルFF動作(アクティブ)におけるフリップフロップブロック210のデータ経路を説明する図である。図10は、データバックアップ(保持)におけるフリップフロップブロック210のデータ経路を説明する図である。図11は、スキャンテスト(スキャンシフト)におけるフリップフロップブロック210のデータ経路を説明する図である。図12は、スキャンテスト(キャプチャ)におけるフリップフロップブロック210のデータ経路を説明する図である。図13は、データリストア(多数決値)におけるフリップフロップブロック210のデータ経路を説明する図である。
図8に示すように、スキャン制御部により制御されるフリップフロップブロック210の動作モードは、ノーマルFF動作(保持)と、ノーマルFF動作(アクティブ)と、データバックアップ(保持)と、スキャンテスト(スキャンシフト)と、スキャンテスト(キャプチャ)と、データリストア(多数決値)と、に大別される。フリップフロップブロック210の動作モードは、自己診断において、データバックアップ(保持)→スキャンイン(スキャンテスト(スキャンシフト))→スキャンテスト(キャプチャ)→スキャンアウト(スキャンテスト(スキャンシフト))→データリストア(多数決値)と遷移する。データリストア(多数決値)の後、フリップフロップブロック210の動作モードは、通常動作モードへ遷移し、通常動作モードにおいて、ノーマルFF動作(保持)とノーマルFF動作(アクティブ)とが繰り返される。
以下の各動作モードの説明では、図8(A)、図8(B)に示される各動作モードの行の記述が参照される。
1)ノーマルFF動作(保持)
ノーマルFF動作(保持)は、通常の動作モードであり、フリップフロップブロック210のフリップフロップQ1、Q2、Q3がデータを保持している状態である。この場合、クロック信号CLKは例えばロウレベルであることを示す値(0)である。リフレッシュ制御信号Refreshおよびスキャンイネーブル信号SENの値は(0)とされる。また、選択信号SEL1、SEL2、SEL3の値は000、保持制御信号HOLD1、HOLD2、HOLD3の値は000である。多数決回路340は、フリップフロップQ1、Q2、Q3に入力された保持データに基づいて、出力を生成する。選択回路SL10は、多数決回路340の出力をフリップフロップブロック210の出力端子Qに接続する。また、エラー判定回路360は、判定基準1に従って、エラー判定出力ERRを通知する。この状態で、クロック信号CKLが変化して、例えば、クロック信号CLKの立ち上がりエッジ(pos)が検出されると、フリップフロップブロック210の動作モードは、ノーマルFF動作(アクティブ)へと遷移する。
ノーマルFF動作(保持)は、通常の動作モードであり、フリップフロップブロック210のフリップフロップQ1、Q2、Q3がデータを保持している状態である。この場合、クロック信号CLKは例えばロウレベルであることを示す値(0)である。リフレッシュ制御信号Refreshおよびスキャンイネーブル信号SENの値は(0)とされる。また、選択信号SEL1、SEL2、SEL3の値は000、保持制御信号HOLD1、HOLD2、HOLD3の値は000である。多数決回路340は、フリップフロップQ1、Q2、Q3に入力された保持データに基づいて、出力を生成する。選択回路SL10は、多数決回路340の出力をフリップフロップブロック210の出力端子Qに接続する。また、エラー判定回路360は、判定基準1に従って、エラー判定出力ERRを通知する。この状態で、クロック信号CKLが変化して、例えば、クロック信号CLKの立ち上がりエッジ(pos)が検出されると、フリップフロップブロック210の動作モードは、ノーマルFF動作(アクティブ)へと遷移する。
2)ノーマルFF動作(アクティブ)
ノーマルFF動作(アクティブ)は、組み合わせ回路(CL)からのデータ(data1)がフリップフロップブロック210のデータ入力端子Dに供給され、データ(data1)がフリップフロップQ1、Q2、Q3に取り込まれ、保持されるモードである。多数決回路340はフリップフロップQ1、Q2、Q3の保持データ(data1)の入力に基づいて、出力(data1)を生成し、フリップフロップブロック210の出力端子Qに供給する。
ノーマルFF動作(アクティブ)は、組み合わせ回路(CL)からのデータ(data1)がフリップフロップブロック210のデータ入力端子Dに供給され、データ(data1)がフリップフロップQ1、Q2、Q3に取り込まれ、保持されるモードである。多数決回路340はフリップフロップQ1、Q2、Q3の保持データ(data1)の入力に基づいて、出力(data1)を生成し、フリップフロップブロック210の出力端子Qに供給する。
なお、半導体装置1の通常の動作モードでは、ノーマルFF動作(保持)とノーマルFF動作(アクティブ)とが、クロック信号CLKの信号レベルに応じて、繰り返されることで、機能ブロック200は所定の論理機能および論理動作を実行する。
なお、ノーマルFF動作(保持)およびノーマルFF動作(アクティブ)は、通常動作時の動作であり、図9に太線で示すデータ経路となる。
3)データバックアップ(保持)
機能ブロック200の自己診断(BIST)を行う場合、まず、データバックアップ(保持)が行われる。データバックアップでは、例えば、保持制御信号HOLD1、HOLD2、HOLD3の値は(011)に設定される。これにより、フリップフロップQ2、Q3に保持されたそれぞれの保持データ(data2)が、フリップフロップQ2、Q3のそれぞれの出力から、選択回路SL8、SL9を介して、フリップフロップQ2、Q3のそれぞれの入力へ供給されて、保持される。この状態は、図10に太線で示すデータ経路となる。
機能ブロック200の自己診断(BIST)を行う場合、まず、データバックアップ(保持)が行われる。データバックアップでは、例えば、保持制御信号HOLD1、HOLD2、HOLD3の値は(011)に設定される。これにより、フリップフロップQ2、Q3に保持されたそれぞれの保持データ(data2)が、フリップフロップQ2、Q3のそれぞれの出力から、選択回路SL8、SL9を介して、フリップフロップQ2、Q3のそれぞれの入力へ供給されて、保持される。この状態は、図10に太線で示すデータ経路となる。
また、この時、エラー判定回路360は、判定基準2の2−2)に従って、エラー判定出力ERRを通知する。
この状態で、スキャンイネーブル信号SENの値が(1)に設定されると、フリップフロップブロック210の動作モードはスキャンテスト(スキャンシフト)へ遷移する。
4)スキャンテスト(スキャンシフト)
スキャンテスト(スキャンシフト)は、スキャンテストの「スキャンイン動作」および「スキャンアウト動作」に利用することが可能である。スキャンテスト(スキャンシフト)では、スキャンイネーブル信号SENの値が(1)に設定されるので、スキャン入力端子SIN1からのデータ(data3)がフリップフロップQ1の入力に供給され、クロック信号CLKの信号レベルを変化させることで、データ(data3)がフリップフロップQ1に保持される。また、フリップフロップQ1に保持されたデータ(data3)はスキャン出力端子SOUT1に供給されて、例えば、次段のフリップフロップブロック210のスキャン入力端子SIN1へ伝達される。すなわち、機能ブロック200内の各フリップフロップブロック210がシリアルに接続されて、スキャンチェーンが構成される。この状態は、図11に太線で示すデータ経路となる。なお、フリップフロップQ2、Q3のそれぞれは、データバックアップによって保持したデータ(data2)を継続して保持する。
スキャンテスト(スキャンシフト)は、スキャンテストの「スキャンイン動作」および「スキャンアウト動作」に利用することが可能である。スキャンテスト(スキャンシフト)では、スキャンイネーブル信号SENの値が(1)に設定されるので、スキャン入力端子SIN1からのデータ(data3)がフリップフロップQ1の入力に供給され、クロック信号CLKの信号レベルを変化させることで、データ(data3)がフリップフロップQ1に保持される。また、フリップフロップQ1に保持されたデータ(data3)はスキャン出力端子SOUT1に供給されて、例えば、次段のフリップフロップブロック210のスキャン入力端子SIN1へ伝達される。すなわち、機能ブロック200内の各フリップフロップブロック210がシリアルに接続されて、スキャンチェーンが構成される。この状態は、図11に太線で示すデータ経路となる。なお、フリップフロップQ2、Q3のそれぞれは、データバックアップによって保持したデータ(data2)を継続して保持する。
この状態で、リフレッシュ制御信号Refreshおよびスキャンイネーブル信号SENの値が(0)に設定され、選択信号SEL1、SEL2、SEL3が(100)に設定されると、フリップフロップブロック210の動作モードはスキャンテスト(キャプチャ)へ遷移する。
5)スキャンテスト(キャプチャ)
スキャンテスト(キャプチャ)では、データ入力端子Dのデータ(data4)がフリップフロップQ1の入力に供給され、フリップフロップQ1の出力が選択回路SL10を介してデータ出力端子Qに接続される。これにより、機能ブロック200が「スキャンイン動作」におけるスキャンシフトによってフリップフロップQ1に取り込まれたテストデータに基づいて動作し、テスト結果データが機能ブロック200内の他のフリップフロップブロック210に取り込まれる。この状態は、図12に太線で示すデータ経路となる。なお、フリップフロップQ2、Q3のそれぞれは、データバックアップによって保持したデータ(data2)を継続して保持する。
スキャンテスト(キャプチャ)では、データ入力端子Dのデータ(data4)がフリップフロップQ1の入力に供給され、フリップフロップQ1の出力が選択回路SL10を介してデータ出力端子Qに接続される。これにより、機能ブロック200が「スキャンイン動作」におけるスキャンシフトによってフリップフロップQ1に取り込まれたテストデータに基づいて動作し、テスト結果データが機能ブロック200内の他のフリップフロップブロック210に取り込まれる。この状態は、図12に太線で示すデータ経路となる。なお、フリップフロップQ2、Q3のそれぞれは、データバックアップによって保持したデータ(data2)を継続して保持する。
この後、再度、フリップフロップブロック210の動作モードがスキャンテスト(スキャンシフト)に遷移され、「スキャンアウト動作」が実行される。「スキャンアウト動作」では、機能ブロック200内の各フリップフロップブロック210がシリアルに接続されて、スキャンチェーンが構成され、各フリップフロップブロック210に格納されたテスト結果データが、図3で説明した様に、スキャンアウトされて、圧縮回路COMPへ送付される。
次に、リフレッシュ制御信号Refreshの値が(1)、スキャンイネーブル信号SENの値が(0)、選択信号SEL1、SEL2、SEL3の値が(000)、保持制御信号HOLD1、HOLD2、HOLD3の値が(000)にそれぞれ設定される。これにより、フリップフロップブロック210の動作モードはデータリストア(多数決値)へ遷移する。
6)データリストア(多数決値)
データリストアは、スキャンテストによる機能ブロック200の自己診断の実施が終了した時に、フリップフロップブロック210内のフリップフロップQ1、Q2、Q3の状態を自己診断の前の状態へ復元ないし復帰するための動作モードである。
データリストアは、スキャンテストによる機能ブロック200の自己診断の実施が終了した時に、フリップフロップブロック210内のフリップフロップQ1、Q2、Q3の状態を自己診断の前の状態へ復元ないし復帰するための動作モードである。
データリストアでは、データバックアップにおいてフリップフロップQ2、Q3に保持されたデータが多数決回路340に入力される。多数決回路340の出力は、選択回路SL10および選択回路SL1−SL9を介して、フリップフロップQ1、Q2、Q3のそれぞれの入力に供給される。これにより、フリップフロップQ1、Q2、Q3のデータが、フリップフロップQ2、Q3に保持されたデータにより上書きされ、フリップフロップブロック210内のフリップフロップQ1、Q2、Q3の状態が自己診断の前の状態に復帰する。この状態は、図13に太線で示すデータ経路となる。
以上の説明では、3つのフリップフロップQ1、Q2、Q3の内、フリップフロップQ1をスキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用い、フリップフロップQ2、Q3を保持用に用いる構成を述べた。これは一例であり、スキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用いるフリップフロップはフリップフロップQ1に限らず、フリップフロップQ2あるいはフリップフロップQ3を用いる構成としてもよい。この場合、図7に示すように、保持制御信号HOLD1、HOLD2、HOLD3の値を(110)または(101)に設定すれば、スキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用いるフリップフロップを、フリップフロップQ3またはフリップフロップQ2とすることが出来る。この場合において、保持制御信号HOLD1、HOLD2、HOLD3の値を(110)に設定すれば、フリップフロップQ1、Q2によりデータが保持される。保持制御信号HOLD1、HOLD2、HOLD3の値を(101)に設定すれば、フリップフロップQ1、Q3によりデータが保持される。
また、最初の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(011)とし、2回目の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(110)とし、3回目の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(101)とすれば、異なるデータ経路の自己診断が可能になる。
実施例によれば、以下の1または複数の効果を得ることが出来る。
1)3つのフリップフロップQ1、Q2、Q3の内、2つのフリップフロップ(Q2、Q3)で、自己診断の前のフリップフロップの値を保持する(データバックアップ)。これにより、自己診断の前のフリップフロップの値の退避を瞬時に行うことが出来る。
2)2つのフリップフロップ(Q2、Q3)の値が異なる場合に、エラー通知することができる。これにより、退避した2つの値が異なる場合にはシステムにエラーを通知することができる。
3)多数決回路340を用いて、2つのフリップフロップ(Q2、Q3)に保持した値を、3つの3つのフリップフロップQ1、Q2、Q3に復元することができる(データリストア)。これにより、自己診断の前のフリップフロップの値の3つのフリップフロップQ1、Q2、Q3への復帰を瞬時に行うことが出来る。
4)TMR構成のフリップフロップブロック210を用いることで、システム稼働中の自己診断のオーバヘッド時間を低減することができる。
(変形例)
次に、図面を用いて、変形例を説明する。
次に、図面を用いて、変形例を説明する。
実施例では、データバックアップにおいて、2つのフリップフロップQ2、Q3にデータを保持する構成例を説明したが、それに限定されない。変形例では、1つのフリップフロップQ3にデータを保持する構成例を説明する。
図14は、変形例に係るエラー判定回路360の真理値表を説明する図である。図14(A)は保持制御信号HOLD1、HOLD2、HOLD3の値を示す表であり、図14(B)はフリップフロップQ1、Q2、Q3が保持する値を示す表であり、図14(C)はエラー判定回路360の真理値表である。
図14に示すエラー判定回路360の真理値表では、保持制御信号HOLD1、HOLD2、HOLD3の値が(000)のみとされている点が、図7と異なる点である。すなわち、エラー判定回路360は、保持制御信号HOLD1、HOLD2、HOLD3の値が(000)の時のみ、判定基準1に従ったエラー判定を行う様に変更される。
次に、図15〜図19を用いて、スキャン制御部により制御されるフリップフロップブロック210の動作モードおよび、各動作モードにおけるデータ経路を説明する。
図15は、変形例に係るスキャン制御部により制御されるフリップフロップブロックの動作モードを示す図である。図15において、図15(A)の右側が図15(B)の左側に接続されて、1つの表を構成する。図16は、データバックアップ(保持)におけるフリップフロップブロック210のデータ経路を説明する図である。図17は、スキャンテスト(スキャンシフト)におけるフリップフロップブロック210のデータ経路を説明する図である。図18は、スキャンテスト(キャプチャ)におけるフリップフロップブロック210のデータ経路を説明する図である。図19は、データリストア(多数決値)におけるフリップフロップブロック210のデータ経路を説明する図である。
図15(A)、図15(B)に示すように、スキャン制御部により制御されるフリップフロップブロック210の動作モードは、ノーマルFF動作(保持)と、ノーマルFF動作(アクティブ)と、データバックアップ(保持)と、スキャンテスト(スキャンシフト)と、スキャンテスト(キャプチャ)と、データリストア(保持値)と、を有する。
フリップフロップブロック210の動作モードは、自己診断において、データバックアップ(保持)→スキャンイン(スキャンテスト(スキャンシフト))→スキャンテスト(キャプチャ)→スキャンアウト(スキャンテスト(スキャンシフト))→データリストア(保持値)と遷移する。データリストア(保持値)の後、フリップフロップブロック210の動作モードは、通常動作へ遷移し、通常動作おいて、ノーマルFF動作(保持)とノーマルFF動作(アクティブ)とが繰り返される。
以下の各動作モードの説明では、図15(A)、図15(B)に示される各動作モードの行の記述が参照される。
1)ノーマルFF動作(保持)
先に説明した実施例のノーマルFF動作(保持)と同じ動作であり、説明は省略する。
先に説明した実施例のノーマルFF動作(保持)と同じ動作であり、説明は省略する。
2)ノーマルFF動作(アクティブ)
先に説明した実施例のノーマルFF動作(アクティブ)と同じ動作であり、説明は省略する。
先に説明した実施例のノーマルFF動作(アクティブ)と同じ動作であり、説明は省略する。
3)データバックアップ(保持)
データバックアップでは、例えば、保持制御信号HOLD1、HOLD2、HOLD3の値は(001)に設定される。これにより、フリップフロップQ3に保持された保持データ(data2)が、フリップフロップQ3の出力から、選択回路SL9を介して、フリップフロップQ3の入力へ供給されて、保持される。この状態は、図16に太線で示される様なデータの経路となる。この時、エラー判定回路360は、エラー判定は行わない。
データバックアップでは、例えば、保持制御信号HOLD1、HOLD2、HOLD3の値は(001)に設定される。これにより、フリップフロップQ3に保持された保持データ(data2)が、フリップフロップQ3の出力から、選択回路SL9を介して、フリップフロップQ3の入力へ供給されて、保持される。この状態は、図16に太線で示される様なデータの経路となる。この時、エラー判定回路360は、エラー判定は行わない。
この状態で、スキャンイネーブル信号SENの値が(1)に設定されると、フリップフロップブロック210の動作モードはスキャンテスト(スキャンシフト)へ遷移する。
4)スキャンテスト(スキャンシフト)
スキャンテスト(スキャンシフト)では、スキャンイネーブル信号SENの値が(1)に設定されるので、スキャン入力端子SIN1からのデータ(data3−1)がフリップフロップQ1の入力に供給され、クロック信号CLKの信号レベルを変化させることで、データ(data3)がフリップフロップQ1に保持される。また、スキャン入力端子SIN2からのデータ(data3−2)がフリップフロップQ2の入力に供給され、クロック信号CLKの信号レベルを変化させることで、データ(data3−2)がフリップフロップQ2に保持される。
スキャンテスト(スキャンシフト)では、スキャンイネーブル信号SENの値が(1)に設定されるので、スキャン入力端子SIN1からのデータ(data3−1)がフリップフロップQ1の入力に供給され、クロック信号CLKの信号レベルを変化させることで、データ(data3)がフリップフロップQ1に保持される。また、スキャン入力端子SIN2からのデータ(data3−2)がフリップフロップQ2の入力に供給され、クロック信号CLKの信号レベルを変化させることで、データ(data3−2)がフリップフロップQ2に保持される。
また、フリップフロップQ1に保持されたデータ(data3−1)はスキャン出力端子SOUT1に供給されて、例えば、次段のフリップフロップブロック210のスキャン入力端子SIN1へ伝達される。フリップフロップQ2に保持されたデータ(data3−2)はスキャン出力端子SOUT2に供給されて、例えば、次段のフリップフロップブロック210のスキャン入力端子SIN2へ伝達される。あるいは、フリップフロップブロック210のスキャン出力端子SOUT1をフリップフロップブロック210のスキャン入力端子SIN2へ接続する様なスキャンチェーンを設定することも可能である。
この状態は、図17に太線で示される様なデータの経路となる。なお、フリップフロップQ3は、データバックアップによって保持したデータ(data2)を継続して保持する。
この状態で、リフレッシュ制御信号Refreshおよびスキャンイネーブル信号SENの値が(0)に設定され、選択信号SEL1、SEL2、SEL3が(000)に設定されると、フリップフロップブロック210の動作モードはスキャンテスト(キャプチャ)へ遷移する。
5)スキャンテスト(キャプチャ)
スキャンテスト(キャプチャ)では、データ入力端子Dのデータ(data4)がフリップフロップQ1、Q2の入力に供給され、フリップフロップQ1、Q2の出力が多数決回路340および選択回路SL10を介してデータ出力端子Qに接続される。これにより、機能ブロック200がスキャンシフトによってフリップフロップQ1、Q2に取り込まれたテストデータに基づいて動作し、テスト結果データが機能ブロック200内の他のフリップフロップブロック210に取り込まれる。この状態は、図18に太線で示される様なデータの経路となる。なお、フリップフロップQ3のそれぞれは、データバックアップによって保持したデータ(data2)を継続して保持する。この構成により、多数決回路340のテストも行うことが出来る。
スキャンテスト(キャプチャ)では、データ入力端子Dのデータ(data4)がフリップフロップQ1、Q2の入力に供給され、フリップフロップQ1、Q2の出力が多数決回路340および選択回路SL10を介してデータ出力端子Qに接続される。これにより、機能ブロック200がスキャンシフトによってフリップフロップQ1、Q2に取り込まれたテストデータに基づいて動作し、テスト結果データが機能ブロック200内の他のフリップフロップブロック210に取り込まれる。この状態は、図18に太線で示される様なデータの経路となる。なお、フリップフロップQ3のそれぞれは、データバックアップによって保持したデータ(data2)を継続して保持する。この構成により、多数決回路340のテストも行うことが出来る。
次に、リフレッシュ制御信号Refreshの値が(1)にされ、スキャンイネーブル信号SENの値が(0)にされ、選択信号SEL1、SEL2、SEL3の値が(001)にされ、保持制御信号HOLD1、HOLD2、HOLD3の値が(000)にされる。これにより、フリップフロップブロック210の動作モードはデータリストア(保持値)へ遷移する。
6)データリストア(保持値)
データリストアでは、データバックアップにおいてフリップフロップQ3に保持されたデータ(data5)が、選択回路SL10および選択回路SL1−SL9を介して、フリップフロップQ1、Q2、Q3のそれぞれの入力に供給される。これにより、フリップフロップQ1、Q2、Q3のデータが、フリップフロップQ3に保持されたデータにより上書きされ、フリップフロップブロック210内のフリップフロップQ1、Q2、Q3の状態が自己診断の前の状態へ復元ないし復帰される。この状態は、図19に太線で示される様なデータの経路となる。
データリストアでは、データバックアップにおいてフリップフロップQ3に保持されたデータ(data5)が、選択回路SL10および選択回路SL1−SL9を介して、フリップフロップQ1、Q2、Q3のそれぞれの入力に供給される。これにより、フリップフロップQ1、Q2、Q3のデータが、フリップフロップQ3に保持されたデータにより上書きされ、フリップフロップブロック210内のフリップフロップQ1、Q2、Q3の状態が自己診断の前の状態へ復元ないし復帰される。この状態は、図19に太線で示される様なデータの経路となる。
以上の変形例の説明では、3つのフリップフロップQ1、Q2、Q3の内、フリップフロップQ1、Q2をスキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用い、フリップフロップQ3を保持用に用いる構成を述べた。これは例であり、スキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用いるフリップフロップはフリップフロップQ1、Q2の組み合わせに限らず、フリップフロップQ1、Q3の組み合わせ、あるいは、フリップフロップQ2、Q3の組み合わせを用いた構成に応用することも可能である。この場合、保持制御信号HOLD1、HOLD2、HOLD3の値が(010)または(100)に設定すれば、スキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用いるフリップフロップを、フリップフロップQ1、Q3の組み合わせあるいはフリップフロップQ2、Q3の組み合わせとすることが出来る。この場合において、保持制御信号HOLD1、HOLD2、HOLD3の値を(010)に設定すれば、フリップフロップQ2によりデータが保持される。保持制御信号HOLD1、HOLD2、HOLD3の値を(100)に設定すれば、フリップフロップQ3によりデータが保持される。
また、最初の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(001)とし、2回目の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(100)とし、3回目の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(010)とすれば、異なるデータ経路の自己診断が可能になる。
変形例によれば、3つのフリップフロップQ1、Q2、Q3の内、1つのフリップフロップ(Q3)で自己診断の前のフリップフロップの値を保持し、残りの2つのフリップフロップQ1、Q2をスキャンテスト(スキャンシフト)およびスキャンテスト(キャプチャ)に用いる。これにより、多数決回路340のテストが可能になる。
(応用例)
次に、図20〜図22を用いて、応用例を説明する。
次に、図20〜図22を用いて、応用例を説明する。
図20は応用例に係る半導体装置のテスト構成の概略を示す図である。図21は、応用例に係る半導体装置の自己診断の実施期間を概略的に示す図である。図22は、応用例に係る半導体装置の全体構成を示す図である。
図20に示すように、半導体装置1は、自己診断制御部400と、複数のスキャン制御部100、100a、100bと、複数の機能ブロック200、200a、200bと、を含む。自己診断制御部400は、スキャン制御部100、100a、100bに対して自己診断の実施を指示する。スキャン制御部100は、機能ブロック200の自己診断を制御する。同様に、スキャン制御部100aは機能ブロック200aの自己診断を制御し、スキャン制御部100bは機能ブロック200bの自己診断を制御する。スキャン制御部100、100a、100b及び機能ブロック200、200a、200bは、実施例および変形例で説明したスキャン制御部および機能ブロックと同じである。
自己診断実行制御部400は、機能ブロック200、200a、200bの動作状況を考慮し、機能ブロック200、200a、200bが使用されていない期間(未動作期間、未使用期間)に、対応するスキャン制御部100、100a、100bに対して、スキャンテストの実行を制御信号SMC1、SMC2、SMC3によって指示する。また、自己診断実行制御部400は、機能ブロック200、200a、200bに対してシステムクロック信号SYSCLK1、SYSCLK2、SYSCLK3を出力する。
図21に示すように、例えば、機能ブロック200が通常動作OP1と通常動作OP2との間に、使用されていない期間が存在する場合において、自己診断実行制御部400は、その使用されていない期間に、スキャン制御部100に対して制御信号SMC1を出力する。これにより、機能ブロック200の自己診断(TEST1)が実施される。同様に、自己診断実行制御部400は、機能ブロック200aの通常動作OP3と通常動作OP4との間の使用されていない期間に、スキャン制御部100aに対して制御信号SMC2を出力する。これにより、機能ブロック200の自己診断(TEST2)が、機能ブロック200aの使用されていない期間に、実施される。また、自己診断実行制御部400は、機能ブロック200bの通常動作OP3の期間を除いた未使用期間に、スキャン制御部100bに対して制御信号SMC3を出力する。これにより、機能ブロック200bの自己診断(TEST3)が、機能ブロック200bの使用されていない期間に、実施される。なお、図21に点線で示されているように、例えば、機能ブロック200aの自己診断(TEST2)の実行期間と機能ブロック200bの自己診断(TEST3a)の実行期間とは、同じ期間でもよいし、一部が重なっても良い。
自己診断実行制御部400の出力する制御信号SMC1、SMC2、SMC3のそれぞれは複数ビットの制御信号とされてよい。
また、自己診断実行制御部400の出力する制御信号SMC1、SMC2、SMC3は、実施例および変形例で説明した様に、保持制御信号HOLD1、HOLD2、HOLD3の値を制御する機能を持たせるのが良い。これにより、例えば、最初の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(011)とし、2回目の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(110)とし、3回目の自己診断の時、保持制御信号HOLD1、HOLD2、HOLD3の値を(101)とするような制御が可能になる。
図22は、車載電子機器の構成要素であるマイクロコントローラ等の半導体装置1の全体構成を示す図である。半導体装置1は、半導体チップに形成されており、複数の中央処理装置CPU1、CPU2と、SRAMの様なランダムアクセスメモリRAMと、フラシュメモリの様な不揮発性メモリROMと、複数の機能ブロックとされる周辺回路(TMR、ADC、SCI、CAN)と、テスト制御回路TESTCと、を含む。これらの回路(CPU1,CPU2,RAM,ROM、TMR、ADC、SCI、CAN、TESTC)は、バスBUSによって相互に接続されている。
周辺回路(TMR、ADC、SCI、CAN)において、TMRはタイマ回路であり、ADCはアナログデジタル変換回路、SCIはシリアル通信回路であり、CANはコントローラエリアネットワーク回路である。周辺回路は、自己診断の対象とされる機能ブロックである。
テスト制御回路TESTCは、図1、図3、図20で説明した、スキャン制御部(100,100a、100b)と、テストパターン発生回路PGと、圧縮回路COMPと、比較結果保持回路(RCS)と、自己診断制御部400と、を含む。テスト制御回路TESTCは、図21で説明した様に、機能ブロックが使用されていない期間に、対応するスキャン制御部に対して、スキャンテストの実行を制御信号によって指示し、実施例および変形例で説明した様に、機能ブロックにおいて自己診断が実施される。テスト制御回路TESTCは、各機能ブロックからのエラー判定結果信号を受信し、車載電子機器のシステム制御装置へエラーの有無を通知する。
なお、上記では、自己診断の対象を、周辺回路(TMR、ADC、SCI、CAN)としたが、それに限定されるわけではない。自己診断の対象は、複数の中央処理装置CPU1、CPU2を含んでも良い。この場合、例えば、中央処理装置CPU1、CPU2の一方がスリープなどで非動作となっている時に、スリープ状態の中央処理装置の自己診断を行えばよい。
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
1:半導体装置、100:スキャン制御部、200:機能ブロック、Q1,Q2,Q3:フリップフロップ、340:多数決回路、360:エラー判定回路、400:自己診断実行制御部。
Claims (18)
- 入力データを保持する複数のフリップフロップと、
前記複数のフリップフロップからの出力の多数決結果を出力する多数決回路と、を含み、
自己診断において、前記複数のフリップフロップの内の1つのフリップフロップをスキャンチェーンに含ませ、
前記複数のフリップフロップの残りのフリップフロップにデータを保持させる、
半導体装置。 - 請求項1の半導体装置において、
前記自己診断の実行後において、前記残りフリップフロップに保持されたデータを前記多数決回路に入力し、
前記多数決回路の多数決結果を、前記複数のフリップフロップに復元する、半導体装置。 - 請求項1の半導体装置において、
さらに、エラー判定回路を含み、
前記エラー判定回路は、前記残りフリップフロップに保持されたデータが不一致の場合、エラーを通知する、半導体装置。 - スキャン制御部と、
機能ブロックと、を含み、
前記機能ブロックは、
組み合わせ回路と、
複数のフリップフロップブロックと、を含み、
前記スキャン制御部は、リフレッシュ信号と、スキャンイネーブル信号と、第1保持制御信号と、第2保持制御信号と、第3保持制御信号と、を生成し、
前記スキャン制御部は、自己診断において、スキャンイネーブル信号によって、前記複数のフリップフロップブロックをシリアルに接続してスキャンチェーンを構成し、
前記複数のフリップフロップブロックの各々は、
データ入力端子と、
第1スキャン入力端子、第2スキャン入力端子、および第3スキャン入力端子と、
データを保持する第1フリップフロップ、第2フリップフロップおよび第3フリップフロップと、
前記第1フリップフロップ、前記第2フリップフロップおよび前記第3フリップフロップの出力のそれぞれに接続された第1スキャン出力端子、第2スキャン出力端子および第3スキャン出力端子と、
前記前記第1フリップフロップ、前記第2フリップフロップおよび前記第3フリップフロップの出力の多数決結果を出力する多数決回路と、
前記リフレッシュ信号に基づいて、前記データ入力端子の値と前記多数決結果との一方を選択する第1選択回路、第2選択回路および第3選択回路と、
前記スキャンイネーブル信号に基づいて、前記第1選択回路の出力と前記第1スキャン入力端子の値との一方を選択する第4選択回路と、
前記スキャンイネーブル信号に基づいて、前記第2選択回路の出力と前記第2スキャン入力端子の値との一方を選択する第5選択回路と、
前記スキャンイネーブル信号に基づいて、前記第3選択回路の出力と前記第3スキャン入力端子の値との一方を選択する第6選択回路と、
前記第1保持制御信号に基づいて、前記第4選択回路の出力と前記第1フリップフロップの出力との一方を選択し、前記第1フリップフロップの入力へ供給する第7選択回路と、
前記第2保持制御信号に基づいて、前記第5選択回路の出力と前記第2フリップフロップの出力との一方を選択し、前記第2フリップフロップの入力へ供給する第8選択回路と、
前記第3保持制御信号に基づいて、前記第6選択回路の出力と前記第3フリップフロップの出力との一方を選択し、前記第3フリップフロップの入力へ供給する第9選択回路と、を含む、
半導体装置。 - 請求項4の半導体装置において、
前記複数のフリップフロップブロックの各々は、エラー判定回路を含み、
前記エラー判定回路は、前記第1フリップフロップ、前記第2フリップフロップおよび前記第3フリップフロップに保持されたデータが不一致の場合、エラーを通知する、半導体装置。 - 請求項5の半導体装置において、
前記スキャン制御部は、
前記スキャンイネーブル信号に基づいて、前記第4選択回路に前記第1スキャン入力端子の値を選択させ、
前記第1保持制御信号に基づいて、前記第7選択回路に前記第4選択回路の出力を選択させて、前記第1フリップフロップを前記スキャンチェーンに含ませ、
前記第2保持制御信号に基づいて、前記第8選択回路に前記第2フリップフロップの出力を選択させ、
前記第3保持制御信号に基づいて、前記第9選択回路に前記第3フリップフロップの出力を選択させる、半導体装置。 - 請求項6の半導体装置において、
前記エラー判定回路は、前記第2フリップフロップおよび前記第3フリップフロップに保持されたデータが不一致の場合、エラーを通知する、半導体装置。 - 請求項6の半導体装置において、
前記スキャン制御部は、
前記自己診断の実行後において、前記第2フリップフロップおよび前記第3フリップフロップに保持されたデータを前記多数決回路に入力し、
前記多数決回路の多数決結果を、前記第1フリップフロップ、前記第2フリップフロップおよび前記第3フリップフロップに復元する様に、前記リフレッシュ信号、前記スキャンイネーブル信号、前記第1保持制御信号、前記第2保持制御信号および前記第3保持制御信号を生成する、半導体装置。 - 請求項5の半導体装置において、
前記スキャン制御部は、
前記スキャンイネーブル信号に基づいて、前記第5選択回路に前記第2スキャン入力端子の値を選択させ、
前記第1保持制御信号に基づいて、前記第7選択回路に前記第1フリップフロップの出力を選択させ、
前記第2保持制御信号に基づいて、前記第8選択回路に前記第5選択回路の出力を選択させて、前記第2フリップフロップを前記スキャンチェーンに含ませ、
前記第3保持制御信号に基づいて、前記第9選択回路に前記第3フリップフロップの出力を選択させる、半導体装置。 - 請求項5の半導体装置において、
前記スキャン制御部は、
前記スキャンイネーブル信号に基づいて、前記第6選択回路に前記第3スキャン入力端子の値を選択させ、
前記第1保持制御信号に基づいて、前記第7選択回路に前記第1フリップフロップの出力を選択させ、
前記第2保持制御信号に基づいて、前記第8選択回路に前記第2フリップフロップの出力を選択させ、
前記第3保持制御信号に基づいて、前記第9選択回路に前記第6選択回路の出力を選択させて、前記第3フリップフロップを前記スキャンチェーンに含ませ、
半導体装置。 - 請求項5の半導体装置において、
前記スキャン制御部は、
前記スキャンイネーブル信号に基づいて、前記第4選択回路に前記第1スキャン入力端子の値を選択させ、
前記スキャンイネーブル信号に基づいて、前記第5選択回路に前記第2スキャン入力端子の値を選択させ、
前記第1保持制御信号に基づいて、前記第7選択回路に前記第4選択回路の出力を選択させて、前記第1フリップフロップを前記スキャンチェーンに含ませ、
前記第2保持制御信号に基づいて、前記第8選択回路に前記第5選択回路の出力を選択させて、前記第2フリップフロップを前記スキャンチェーンに含ませ、
前記第3保持制御信号に基づいて、前記第9選択回路に前記第3フリップフロップの出力を選択させる、半導体装置。 - 請求項11の半導体装置において、
前記スキャン制御部は、
前記自己診断の実行後において、前記第3フリップフロップに保持されたデータを前記第1ないし第3フリップフロップに復元する様に、前記リフレッシュ信号、前記スキャンイネーブル信号、前記第1保持制御信号、前記第2保持制御信号および前記3保持制御信号を生成する、半導体装置。 - 請求項5の半導体装置において、
前記スキャン制御部は、
前記スキャンイネーブル信号に基づいて、前記第4選択回路に前記第1スキャン入力端子の値を選択させ、
前記スキャンイネーブル信号に基づいて、前記第6選択回路に前記第3スキャン入力端子の値を選択させ、
前記第1保持制御信号に基づいて、前記第7選択回路に前記第4選択回路の出力を選択させて、前記第1フリップフロップを前記スキャンチェーンに含ませ、
前記第2保持制御信号に基づいて、前記第8選択回路に前記第2フリップフロップの出力を選択させ、
前記第3保持制御信号に基づいて、前記第9選択回路に前記第6選択回路の出力を選択させて、前記第3フリップフロップを前記スキャンチェーンに含ませる、半導体装置。 - 請求項5の半導体装置において、
前記スキャン制御部は、
前記スキャンイネーブル信号に基づいて、前記第5選択回路に前記第2スキャン入力端子の値を選択させ、
前記スキャンイネーブル信号に基づいて、前記第6選択回路に前記第3スキャン入力端子の値を選択させ、
前記第1保持制御信号に基づいて、前記第7選択回路に前記第1フリップフロップの出力を選択させ、
前記第2保持制御信号に基づいて、前記第8選択回路に前記第5選択回路の出力を選択させて、前記第2フリップフロップを前記スキャンチェーンに含ませ、
前記第3保持制御信号に基づいて、前記第9選択回路に前記第6選択回路の出力を選択させて、前記第3フリップフロップを前記スキャンチェーンに含ませる、半導体装置。 - 自己診断実行制御部と、
第1スキャン制御部および第2スキャン制御部と、
第1機能ブロックおよび第2機能ブロックと、を含み、
前記第1スキャン制御部は、前記第1機能ブロックの自己診断を制御し、
前記第2スキャン制御部は、前記第2機能ブロックの自己診断を制御し、
前記第1機能ブロックおよび前記第2機能ブロックの各々は、
組み合わせ回路と、
複数のフリップフロップブロックと、を含み、
前記第1スキャン制御部および前記第2スキャン制御部の各々は、前記自己診断において、前記複数のフリップフロップブロックをシリアルに接続してスキャンチェーンを構成し、
前記複数のフリップフロップブロックの各々は、
入力データを保持する複数のフリップフロップと、
前記複数のフリップフロップからの出力の多数決結果を出力する多数決回路と、を含み、
前記第1スキャン制御部および前記第2スキャン制御部の各々は、
前記自己診断において、前記複数のフリップフロップの内の1つのフリップフロップを前記スキャンチェーンに含ませ、
前記複数のフリップフロップの残りのフリップフロップにデータを保持させ、
前記自己診断実行制御部は、
前記第1機能ブロックの未使用時において、前記第1スキャン制御部へ前記自己診断の開始を指示し、
前記第2機能ブロックの未使用時において、前記第2スキャン制御部へ前記自己診断の開始を指示する、
半導体装置。 - 請求項15の半導体装置において、
前記第1機能ブロックおよび前記第2機能ブロックの各々は、
前記自己診断の実行後において、前記残りのフリップフロップに保持されたデータを前記多数決回路に入力し、
前記多数決回路の多数決結果を、前記複数のフリップフロップに復元する、半導体装置。 - 請求項15の半導体装置において、
前記複数のフリップフロップブロックの各々は、さらに、エラー判定回路を含み、
前記エラー判定回路は、前記残りのフリップフロップに保持されたデータが不一致の場合、エラーを通知する、半導体装置。 - 請求項15の半導体装置において、
前記第1スキャン制御部および前記第2スキャン制御部の各々は、
前記自己診断において、前記スキャンチェーンに含ませる前記1つのフリップフロップを他のフリップフロップへ順次切り替える、半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018086115A JP2019191064A (ja) | 2018-04-27 | 2018-04-27 | 半導体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018086115A JP2019191064A (ja) | 2018-04-27 | 2018-04-27 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019191064A true JP2019191064A (ja) | 2019-10-31 |
Family
ID=68390027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018086115A Pending JP2019191064A (ja) | 2018-04-27 | 2018-04-27 | 半導体装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019191064A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176170A (zh) * | 2019-12-31 | 2020-05-19 | 北京北方华创微电子装备有限公司 | 半导体设备控制系统的启动方法及装置 |
EP4024398A1 (de) * | 2020-12-30 | 2022-07-06 | IHP GmbH - Innovations for High Performance Microelectronics / Leibniz-Institut für innovative Mikroelektronik | Fehlertolerante sequenzielle speicherzelle und testverfahren für die speicherzelle |
JP7332204B1 (ja) | 2022-03-17 | 2023-08-23 | Necプラットフォームズ株式会社 | 情報処理システム、情報処理システムが実行する処理方法、およびプログラム |
-
2018
- 2018-04-27 JP JP2018086115A patent/JP2019191064A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176170A (zh) * | 2019-12-31 | 2020-05-19 | 北京北方华创微电子装备有限公司 | 半导体设备控制系统的启动方法及装置 |
EP4024398A1 (de) * | 2020-12-30 | 2022-07-06 | IHP GmbH - Innovations for High Performance Microelectronics / Leibniz-Institut für innovative Mikroelektronik | Fehlertolerante sequenzielle speicherzelle und testverfahren für die speicherzelle |
JP7332204B1 (ja) | 2022-03-17 | 2023-08-23 | Necプラットフォームズ株式会社 | 情報処理システム、情報処理システムが実行する処理方法、およびプログラム |
JP2023136763A (ja) * | 2022-03-17 | 2023-09-29 | Necプラットフォームズ株式会社 | 情報処理システム、情報処理システムが実行する処理方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5256840B2 (ja) | 論理回路 | |
US8145964B2 (en) | Scan test circuit and scan test control method | |
US8527824B2 (en) | Testing of multi-clock domains | |
EP2381265B1 (en) | System for performing the test of digital circuits | |
JP2009527821A (ja) | データ処理システムを試験するための方法および装置 | |
US8458540B2 (en) | Integrated circuit and diagnosis circuit | |
JP4966974B2 (ja) | Icテスト方法及びその装置 | |
JP6878071B2 (ja) | 半導体集積回路及び半導体集積回路の診断方法 | |
JP2019191064A (ja) | 半導体装置 | |
JP2007240414A (ja) | 半導体集積回路及びその設計装置 | |
JPH0249014B2 (ja) | ||
US7096397B2 (en) | Dft technique for avoiding contention/conflict in logic built-in self-test | |
JP2014185981A (ja) | 半導体集積回路および半導体集積回路の自己テスト方法 | |
US20120226953A1 (en) | Semiconductor integrated circuit, design apparatus and design method | |
US20090240996A1 (en) | Semiconductor integrated circuit device | |
US7478304B2 (en) | Apparatus for accelerating through-the-pins LBIST simulation | |
JP4265934B2 (ja) | スキャンパス回路およびそれを備える論理回路ならびに集積回路のテスト方法 | |
US7873887B2 (en) | Burn-in test circuit, burn-in test method, burn-in test apparatus, and a burn-in test pattern generation program product | |
JP5806050B2 (ja) | 出力制御スキャンフリップフロップ、それを備えた半導体集積回路及び半導体集積回路の設計方法 | |
CN106896317B (zh) | 通过扫描测试的扫描链所执行的电路排错方法及电路排错系统 | |
US20160187424A1 (en) | Apparatus for fault injection to semiconductor chip having diagnostic function | |
KR101619741B1 (ko) | 자체 진단 기능이 내장된 반도체 소자를 시험하는 장치 | |
US20150193564A1 (en) | System and method for using clock chain signals of an on-chip clock controller to control cross-domain paths | |
US20080082880A1 (en) | Method of testing high-speed ic with low-speed ic tester | |
JP3963158B2 (ja) | 半導体回路装置及びそのテスト方法 |