(57)【要約】【課題】半導体装置のパッケージへの実装や外部からの制御を要せずに、複数の端子の各々を有効または無効に設定するための制御回路のセルフテストを実行する。【解決手段】半導体装置１００は、複数の端子４のうちの機能が有効化される端子の数を示す有効端子情報に基づいて、複数の端子４の各々を有効または無効に設定するための制御信号を出力する制御回路２２と、制御回路２２の動作が正常か否かを診断するためのテスト回路とを備える。テスト回路は、複数の端子４の各々に対応して設けられ、端子４ごとに制御回路２２から供給される制御信号を記憶するための複数の記憶部３０を含む。テスト回路は、複数の記憶部３０から所定の順序で読み込んだ制御信号に基づいて制御回路２２の動作を診断する。【選択図】図１
2014159982.tif 000002
【特許請求の範囲】
【請求項１】
複数の端子と、
前記複数の端子のうちの機能が有効化される端子の数を示す有効端子情報に基づいて、前記複数の端子の各々を有効または無効に設定するための制御信号を出力する制御回路と、
前記制御回路の動作が正常か否かを診断するためのテスト回路とを備え、
前記テスト回路は、
前記複数の端子の各々に対応して設けられ、端子ごとに前記制御回路から供給される前記制御信号を記憶するための複数の記憶部と、
前記複数の記憶部から前記制御信号を所定の順序で読み込んで演算する演算回路と、
前記演算回路による演算値が前記有効端子情報に基づく期待値に一致するか否かを判定するための比較回路とを含む、半導体装置。
【請求項２】
前記制御回路は、前記有効端子情報に基づいて、対応する端子が有効のときに第１の値となり、前記対応する端子が無効のときに第２の値となるように前記制御信号を生成し、
前記演算回路は、前記所定の順序で読み込んだ制御信号について演算を行なう、請求項１に記載の半導体装置。
【請求項３】
前記制御回路は、前記半導体装置のリセット動作時に前記複数の端子の各々を有効または無効に設定し、
前記テスト回路は、前記半導体装置の動作時にユーザから与えられる実行指令に従って前記制御回路の動作を診断する、請求項１または２に記載の半導体装置。
【請求項４】
前記制御回路は、前記半導体装置のリセット動作時に前記複数の端子の各々を有効または無効に設定し、
前記テスト回路は、前記半導体装置の動作時に前記半導体装置の外部から前記端子に入力される実行指令に従って前記制御回路の動作を診断する、請求項１または２に記載の半導体装置。
【請求項５】
前記制御回路は、前記半導体装置のリセット動作時に前記複数の端子の各々を有効または無効に設定し、
前記テスト回路は、前記半導体装置の動作時に周辺機能回路から与えられる実行指令に従って前記制御回路の動作を診断する、請求項１または２に記載の半導体装置。
【請求項６】
前記制御回路は、前記半導体装置のリセット動作時、前記複数の端子の各々を有効または無効に設定するとともに前記テスト回路に実行指令を与えるように構成され、
前記テスト回路は、前記実行指令に従って前記制御回路の動作を診断する、請求項１または２に記載の半導体装置。
【請求項７】
前記演算値が前記期待値に一致しないときには、前記半導体装置の動作を停止させる、請求項１または２に記載の半導体装置。
【請求項８】
半導体装置の診断方法であって、
前記半導体装置は、
複数の端子と、
前記複数の端子のうちの機能が有効化される端子の数を示す有効端子情報に基づいて、前記複数の端子の各々を有効または無効に設定する制御回路とを含み、
前記診断方法は、
前記複数の端子の各々に対応して設けられた複数の記憶部に、端子ごとに前記制御回路から供給される制御信号を格納するステップと、
前記複数の記憶部から前記制御信号を所定の順序で読み込んで演算するステップと、
前記演算するステップで得られた演算値が前記有効端子情報に基づく期待値に一致するか否かを判定し、判定結果に基づいて前記制御回路の動作が正常か否かを診断するステップとを備える、半導体装置の診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体装置およびその診断方法に関し、たとえば、半導体装置の複数の端子の機能の有効／無効を設定するための制御回路を備えた半導体装置に好適に用いられるものである。
【背景技術】
【０００２】
半導体装置においては、半導体装置外部と信号をやり取りするために複数の端子が設けられている。これら複数の端子は、通常、半導体装置が搭載されるパッケージの外周に沿って配列されており、ボンディングワイヤ等を用いて端子とパッケージのピンとが電気的に接続される。そして、信号を入出力する機能や電源電圧の供給を受ける機能などの様々な機能が端子ごとに割当てられる。
【０００３】
特開２００１−１２４８２７号公報（特許文献１）には、半導体装置が実装基板に正しく実装されているか否かを確認するための実装確認方法が開示される。この特許文献１では、半導体装置に設けられた複数の外部端子に信号を入力し、この入力信号が、それぞれの外部端子が接続される外部側からの信号値と一致するか否かを判定する。そして、外部端子の全ての入力信号が信号値と一致した場合、半導体装置が正常に実装されていると判断する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１２４８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、近年では、半導体装置が搭載されるマイクロコンピュータ（マイコン）の製品仕様に応じて、複数の端子のうちの必要な数の端子を選択的に有効化することが行なわれている。これにより、１つの半導体装置によってピン数が互いに異なる多品種のマイコンへの展開を容易にしている。このような半導体装置では、内蔵される制御回路によって端子ごとに機能の有効および無効が設定されるとともに、有効に設定された端子のみがパッケージのピンと電気的に接続される。したがって、一部の端子において有効／無効が誤って設定されてしまうと、有効化された端子の数がマイコンの製品仕様に合致しないために、マイコンの動作に異常をきたす可能性がある。
【０００６】
しかしながら、上記の文献に記載された技術のように、半導体装置の外部から端子に信号を入力する構成では、無効に設定されたことによってピンと電気的に接続されていない端子に対して信号を入力することができない。そのため、有効化された端子の数がマイコンの製品仕様に合致しているか否かを診断することは不可能である。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態による半導体装置は、複数の端子のうちの機能が有効化される端子の数を示す有効端子情報に基づいて、複数の端子の各々を有効または無効に設定するための制御信号を出力する制御回路と、制御回路の動作が正常か否かを診断するためのテスト回路とを備える。テスト回路は、複数の端子の各々に対応して設けられ、端子ごとに制御回路から供給される制御信号を記憶するための複数の記憶部を含む。テスト回路は、複数の記憶部から所定の順序で読み込んだ制御信号に基づいて制御回路の動作を診断する。
【発明の効果】
【０００８】
上記の一実施の形態によれば、半導体装置のパッケージへの実装および外部からの制御を要せずに、複数の端子の各々を有効または無効に設定するための制御回路のセルフテストを実行することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１による半導体装置の概略構成を示す図である。
【図２】図１の有効端子制御回路および端子の構成の一例を示すブロック図である。
【図３】記憶装置に格納される有効端子情報の一例を示す図である。
【図４】端子の入力制御信号の一例を示す図である。
【図５】一実施の形態による有効端子制御回路の動作の診断処理を説明するためのタイミングチャートである。
【図６】一実施の形態による有効端子制御回路の動作の診断処理を説明するためのタイミングチャートである。
【図７】実施の形態１の変形例である半導体装置の概略構成を示す図である。
【図８】実施の形態２による半導体装置の概略構成を示す図である。
【図９】実施の形態２による有効端子制御回路の動作の診断処理を説明するためのタイミングチャートである。
【図１０】実施の形態３による半導体装置の概略構成を示す図である。
【図１１】実施の形態４による半導体装置の概略構成を示す図である。
【図１２】診断制御レジスタの構成の一例を示す図である。
【図１３】関連技術の半導体装置の概略構成を示す図である。
【図１４】有効端子制御回路による端子の機能の設定を説明する図である。
【発明を実施するための形態】
【００１０】
以下、一実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１１】
［関連技術の半導体装置の概略構成］
まず、関連技術の半導体装置の概略構成について、図１３を用いて説明する。
【００１２】
図１３を参照して、関連技術の半導体装置１０００は、半導体チップとしてパッケージに搭載される。四角形のパッケージの外周に所定の間隔を開けて複数のピン９が配置されている。
【００１３】
半導体装置１０００は、記憶装置１と、ＣＰＵ（Central  Processing  Unit）３と、複数のバスＢＵＳ１，ＢＵＳ２とを備える。記憶装置１およびＣＰＵ３は、バスＢＵＳ１によって通信可能に接続される。
【００１４】
ＣＰＵ３は、予め記憶装置１に格納されたプログラムを読み出して実行することによって、半導体装置１０００全体を制御する。ＣＰＵ３と周辺機能回路（図示せず）とはバスＢＵＳ２によって通信可能に接続されており、ＣＰＵ３は、バスＢＵＳ２を用いて周辺機能回路との間で信号のやり取りを行なう。
【００１５】
半導体装置１０００は、半導体装置の外部との間で信号のやり取りを行なうための複数の端子４と、端子４とピン９とを一対一に接続するための複数のパッド８とをさらに備える。
【００１６】
複数の端子４は、パッケージの外周に沿って配列されている。複数のパッド８は、複数の端子４にそれぞれ接続されている。半導体装置１０００がパッケージに搭載されると、パッド８がボンディングワイヤ１０を介してピン９に接続される。このように端子４およびピン９が電気的に接続されることにより、半導体装置１０００およびパッケージはマイクロコンピュータ（マイコン）を構成する。なお、パッド８およびピン４の電気的接続手段は、ボンディングワイヤ１０に限られず、適宜変更可能である。
【００１７】
複数の端子４は、バスＢＵＳ２に接続されており、バスＢＵＳ２との間で信号のやり取りを行なう。具体的には、端子４は、半導体装置１０００の外部からピン９を経由して入力された信号をバスＢＵＳ２へ伝達する。また、端子４は、バスＢＵＳ２から与えられた信号を、ピン９を経由して半導体装置１０００の外部へ出力する。
【００１８】
複数の端子４は、複数のブロックに分割され、ブロック単位で管理される。図１には、複数の端子４をＮ個（Ｎは自然数）のブロックに分割した構成例が示されている。同図において、「入出力回路１」は第１番目のブロックに含まれる複数（例えば４個とする）の端子４（Ｐ１０〜Ｐ１３）を総称的に示す。また、「入出力回路２」は第２番目のブロックに含まれる４個の端子４（Ｐ２０〜Ｐ２３）を総称的に示す。
【００１９】
複数の端子４は、互いに同一の構成を有する。端子４は、論理回路５と、入力バッファ６と、出力バッファ７とを含む。
【００２０】
入力バッファ６は、半導体装置１０００の外部からピン９を介して入力される信号を受け付けると、この信号を論理回路５へ出力する。論理回路５は、入力信号に基づいて半導体装置１０００の内部で用いる信号を生成してバスＢＵＳ２へ出力する。出力バッファ７は、バスＢＵＳ２からの信号を受け付けると、この信号をピン９を経由して半導体装置１０００の外部へ出力する。
【００２１】
複数の端子４の各々には、データ信号やアドレス信号の入出力機能の他、様々な機能を持たせることができる。さらに、複数の端子４は、これらの機能を有効および無効のいずれかに設定可能に構成される。機能が無効に設定された端子４は実質的に不使用となる。  
【００２２】
上述した複数の端子４の有効／無効を設定するための構成として、半導体装置１０００は、有効端子制御回路２２をさらに備える。
【００２３】
複数の端子４のうちの機能が有効化される端子の数（有効端子数）を示す情報（以下、「有効端子情報」とも称する）は、記憶装置１に予め格納されている。この有効端子情報は、半導体装置１０００の初期化（リセット）動作時において、記憶装置１から読み出され、有効端子制御回路２２に格納される。
【００２４】
有効端子制御回路２２は、記憶装置１に格納された有効端子情報に基づいて、複数の端子４の各々の機能を有効または無効に設定する。具体的には、有効端子制御回路２２は、有効端子情報に基づいて、端子４の有効／無効を設定するための制御信号（以下、「入力制御信号」とも称する）を端子ごとに生成する。入力制御信号は、端子４を有効化するときに活性状態（例えば論理値「１」）となり、端子４を無効化するときの非活性状態（例えば論理値「０」）となる信号である。有効端子制御回路２２は、生成した複数の入力制御信号を複数の端子４にそれぞれ出力する。各端子４の内部では、活性状態の入力制御信号に応答して入力バッファ６が活性化される一方で、非活性状態の入力制御信号に応答して入力バッファ６が非活性化される。このように入力制御信号に応じて入力バッファ６を活性状態または非活性状態にすることにより、端子４の機能が有効化または無効化される。
【００２５】
しかしながら、上述した構成において、有効端子制御回路２２に故障が生じると、複数の端子４の有効／無効の設定が正しく行なわれず、一部の端子４において誤って設定される可能性がある。これによりマイコンの動作に異常をきたす虞がある。
【００２６】
図１４を参照して、有効端子制御回路２２による端子４の機能の設定についてさらに説明する。なお、図１４（ａ）および（ｂ）は、有効端子制御回路２２の動作が正常である場合の端子４の状態を説明する模式図である。図１４（ｃ）は、有効端子制御回路２２の動作が異常である場合の端子４の状態を説明する模式図である。
【００２７】
図１４（ａ）を参照して、半導体チップ（半導体装置１０００）は、総ピン数がｎ（ｎは自然数）のパッケージに搭載されている。以下では、総ピン数がｎのパッケージを「パッケージタイプＡ」と表記する。有効端子制御回路２２は、記憶装置１（図１３）に格納された有効端子情報（有効端子数＝ｎピン）に基づいて、端子ごとに機能の有効／無効を設定する。以下では、有効端子数をｎピンとする動作モードを「動作モードＡ」と表記する。同図では、４個の端子Ｐ１０〜Ｐ１３はいずれも有効に設定される。これら４個の端子Ｐ１０〜Ｐ１３のうち、端子Ｐ１０，Ｐ１１には信号の入出力（Ｉ／Ｏ）機能が与えられる。また、端子Ｐ１２，Ｐ１３には所定の機能１，２がそれぞれ与えられる。すなわち、１つの端子に対して１つの機能が割当てられている。そして、有効化された端子に対応するパッドが配線（ボンディングワイヤ）を介してピンに接続されることにより、端子およびピンが一対一に電気的に接続される。同図では、有効化された４個の端子Ｐ１０〜Ｐ１３は、４個のピンＰＮ１０〜ＰＮ１３とそれぞれ電気的に接続されている。
【００２８】
これに対して、図１４（ｂ）では、半導体チップは総ピン数がｍ（ｍは自然数、ｍ≠ｎ）のパッケージに搭載されている。以下では、総ピン数がｍのパッケージを「パッケージタイプＢ」と表記する。有効端子制御回路２２は、有効端子情報（有効端子数＝ｍピン）に基づいて、端子ごとに機能の有効／無効を設定する。以下では、有効端子数をｍピンとする動作モードを「動作モードＢ」と表記する。図１４（ａ）と比較して有効端子数が変更したことを受けて、端子Ｐ１０，Ｐ１１が有効に設定される一方で、端子Ｐ１２，Ｐ１３が無効に設定される。有効化された端子Ｐ１０，Ｐ１１は、ピンＰＮ１０，ＰＮ１１とそれぞれ電気的に接続される。同図では、端子Ｐ１２，Ｐ１３が無効化されたことに伴ない、有効化された端子Ｐ１０，Ｐ１１の各々に対して複数の機能が割当てられる。端子Ｐ１０には信号の入出力機能および機能１が与えられ、端子Ｐ１１には信号の入出力機能および機能２が与えられる。
【００２９】
ここで、図１４（ｂ）のケースにおいて、有効端子制御回路２２に故障が発生すると、有効端子制御回路２２の内部では、有効端子情報が誤って認識されることによって、複数の入力制御信号の一部において論理値が反転するという事態が起こり得る。このような事態が生じると、一部の端子の有効／無効の設定が切替えられてしまうため、有効端子数と異なる数の端子が有効化される可能性がある。例えば、図１４（ｃ）に示すように、有効端子数＝ｍピン（動作モードＢ）が誤って有効端子数＝ｎピン（動作モードＡ）と認識された場合には、本来無効化されるべき端子Ｐ１２，Ｐ１３が有効化されてしまう。その結果、端子Ｐ１０に持たせていた機能１が端子Ｐ１２に移動するとともに、端子Ｐ１１に持たせていた機能２が端子Ｐ１３に移動する。ところが、端子Ｐ１２，Ｐ１３はいずれもピンと電気的に接続されていないため、機能１，２は実質的に使用不能となり、マイコンの動作に異常をきたす原因となる。
【００３０】
このようなマイコンの動作異常を未然に防ぐためには、複数の端子の各々が有効端子情報に従って正しく設定されているか否かを診断する必要がある。ここで、上述の特許文献１に記載される半導体装置の実装確認方法では、パッケージに設けられた複数の外部端子から半導体装置に信号を入力し、この入力信号と外部側からの信号値とを比較することにより、外部端子が正常に実装されているか否かを判定する。そのため、図１４（ｃ）の端子Ｐ１２，Ｐ１３のように、誤って無効から有効に切替えられてしまった端子については、端子４とピン９とが電気的に接続されていないため、半導体装置１０００の外部から端子４にアクセスする術がない。よって、端子４の設定の誤りを検出することができない。
【００３１】
そこで、実施の形態１による半導体装置では、半導体装置の内部に、有効端子制御回路２２の動作を診断するためのセルフテスト回路を設ける。これにより、パッケージへの実装および外部からの制御を要せずに、有効端子制御回路２２のセルフテストを実行可能とする。
【００３２】
［実施の形態１］
図１は、実施の形態１による半導体装置１００の概略構成を示す図である。一実施の形態による半導体装置１００は、図１３に示した関連技術による半導体装置１０００と比較して、有効端子制御回路２２の動作を診断するための、セルフテスト回路をさらに備える。半導体装置１００において、半導体装置１０００と同一の符号が付されたものは、同一の構成を有し、それらの重複説明は行なわない。
【００３３】
図１を参照して、半導体装置１００は、セルフテスト回路として、期待値格納レジスタ３２と、複数の入力バッファ制御レジスタ３０と、診断制御レジスタ３４と、読出回路３６と、演算回路３８と、演算値格納レジスタ４０と、比較回路４２と、フラグレジスタ４４とを備える。
【００３４】
複数の入力バッファ制御レジスタ３０は、有効端子制御回路２２と複数の入力バッファ６との間にそれぞれ設けられる。入力バッファ制御レジスタ３０は、対応する入力バッファ６に対して有効端子制御回路２２から与えられる入力制御信号を保持するとともに、対応する入力バッファ６に出力する。すなわち、複数の入力バッファ制御レジスタ３０の各々は、対応する端子４に与えられる入力制御信号に応じて「１」または「０」の値を保持する。なお、入力バッファ制御レジスタ３０は、図１に示すように端子４の内部に設けてもよいし、端子４の外部に設けてもよい。
【００３５】
診断制御レジスタ３４は、ＣＰＵ３から発せられたセルフテストに関する指令をバスＢＵＳ２を介して受ける。この指令には、セルフテストの実行指令を表わす診断実行制御ビットが含まれている。マイコンの動作中にユーザが任意のタイミングで診断実行制御ビットを活性状態である「１」に設定すると、セルフテスト機能が活性化されてセルフテストが実行される。
【００３６】
具体的には、読出回路３６は、セルフテストの実行時、複数の入力バッファ制御レジスタ３０に格納された入力制御信号を予め定められた順番に従って読み出し、演算回路３８へ出力する。具体的には、読出回路３６は、第１番目のブロック（入出力回路１）に含まれる端子Ｐ１０から順番にブロックごとに入力制御信号を読み出す。
【００３７】
演算回路３８は、所定の順番で入力される入力制御信号を用いて所定の演算を実行し、その演算値を演算値格納レジスタ４０に格納する。所定の演算は、入力制御信号の誤りを検出するための演算であって、例えばＣＲＣ（Cyclic  Redundancy  Check：巡回冗長検査）演算が適用される。
【００３８】
記憶装置１には、有効制御端子情報に加えて、上記の所定の演算で得られるべき期待値が予め格納されている。この期待値は、半導体装置１００のリセット動作時に、記憶装置１から読み出され、期待値格納レジスタ３２に格納される。
【００３９】
比較回路４２は、演算値格納レジスタ４０から演算値を受け、期待値格納レジスタ３２から期待値を受ける。比較回路４２は、演算値と期待値とを比較することにより、演算値が期待値に一致するか否かを判定する。比較回路４２は、演算値が期待値に一致したときに判定結果を示す信号（以下、判定結果信号とも称する）を、例えば「０」に設定する。一方、演算値が期待値に一致しないときには、比較回路４２は判定結果信号を、例えば「１」に設定する。
【００４０】
フラグレジスタ４４は、比較回路４２から出力される判定結果信号を格納する。すなわち、演算値が期待値に一致するときのフラグレジスタ４４の格納値は「０」となり、演算値が期待値に一致しないときのフラグレジスタ４４の格納値は「１」となる。ＣＰＵ３は、バスＢＵＳ２を介してフラグレジスタ４４にアクセスすることによりセルフテストの結果を取得する。フラグレジスタ４４の格納値が「１」であるとき、ＣＰＵ３は、有効端子制御回路２２によって有効化された端子の数が有効制御端子情報に一致していない（すなわち、有効端子制御回路２２の動作異常）と診断する。
【００４１】
なお、上述したセルフテスト機能のうち、読出回路３６による入力制御信号の読み出しから比較回路４２による比較判定に至る一連の動作は、第１番目のブロックから順番に繰り返し実行される。そして、最終である第Ｎ番目のブロックに対する動作が終了すると、判定結果信号がフラグレジスタ４４に格納される。
【００４２】
以上に説明したように、有効端子制御回路２２の動作の診断は、半導体装置１００の内部において、有効端子情報に基づく期待値と、有効端子情報を用いて有効端子制御回路２２によって生成された入力制御信号に基づく演算値とを比較することによって行なわれる。これにより、端子４およびピン９の電気的接続の有無に拘わらず、有効端子制御回路２２のセルフテストを実行することができる。
【００４３】
以下、一実施の形態による半導体装置１００におけるセルフテスト機能の詳細な構成について図面を参照して説明する。
【００４４】
図２は、図１における端子４および有効端子制御回路２２の構成の一例を示すブロック図である。
【００４５】
図２を参照して、記憶装置１には、有効端子情報が予め格納されている。具体的には、有効端子情報は、複数ビットのデータで構成される。一例として、有効端子数＝ｎピン（動作モードＡ）の場合、有効端子情報を示すデータが記憶装置１から読み出され、有効端子制御回路２２に格納される。
【００４６】
図３は、有効端子制御回路２２内部のレジスタに格納される有効端子情報の一例を示す図である。図２および図３を参照して、有効端子情報は複数ビットの信号で表される。例えば、有効端子数＝ｎピン（動作モードＡ）を示す有効端子情報は“１１”で表される。また、有効端子数＝ｍピン（動作モードＢ）を示す有効端子情報は“１０”で表される。すなわち、有効端子数＝ｎピンと有効端子数＝ｍピンとでは、最下位のビットの値のみが異なっている。図２では、有効端子数＝ｎピンのときの有効端子情報“１１”に基づいて複数の端子４の有効／無効が設定される場合を想定している。
【００４７】
再び図２を参照して、有効端子制御回路２２は、格納された有効端子情報“１１”に基づいて、複数の端子４の各々の機能を有効または無効に設定する。有効端子制御回路２２は、１つのブロックに含まれる４個の端子４の各々に与える入力制御信号を１セットとして複数セットの入力制御信号を生成する。図２では、代表的に、第１番目のブロック（入出力回路１）に含まれる端子Ｐ１０〜Ｐ１３に与える４個の入力制御信号が示されている。
【００４８】
有効端子制御回路２２は、有効端子情報に基づいて、有効端子数に相当する数の端子４を選択するためのｐｉｎ選択信号を生成する。例えば、有効端子数＝ｎピン（動作モードＡ）の場合、有効端子制御回路２２は、複数のｐｉｎ選択信号のうちの「モードＡ選択信号」を活性状態（例えば論理値「０」）に設定する一方で、残りのｐｉｎ選択信号を非活性状態（例えば論理値「１」）に設定する。また、有効端子数＝ｍピン（動作モードＢ）の場合、有効端子制御回路２２は、複数のｐｉｎ選択信号のうちの「モードＢ選択信号」を活性状態（論理値「０」）に設定する一方で、残りのｐｉｎ選択信号を非活性状態（論理値「１」）に設定する。
【００４９】
有効端子制御回路２２は、有効端子情報を複数のｐｉｎ選択信号に変換するための複数の論理回路を含む。図２において、ＮＡＮＤゲートＧ９からなる論理回路は、有効端子情報をモードＡ選択信号に変換する。一方、インバータＩ１０およびＮＡＮＤゲートＧ１０からなる論理回路は、有効端子情報をモードＢ選択信号に変換する。有効端子数＝ｎピン（動作モードＡ）の場合、各論理回路は有効端子情報“１１”を受ける。このとき、ＮＡＮＤゲートＧ９からなる論理回路からは「０」に活性化されたモードＡ選択信号が出力される。その一方で、インバータＩ１０およびＮＡＮＤゲートＧ１０からなる論理回路からは「１」に非活性化されたモードＢ選択信号が出力される。
【００５０】
これに対して、有効端子数＝ｍピン（動作モードＢ）の場合、各論理回路は有効端子情報“１０”を受ける。この場合、ＮＡＮＤゲートＧ９からなる論理回路からは「１」に非活性化されたモードＡ選択信号が出力され、インバータＩ１０およびＮＡＮＤゲートＧ１０からなる論理回路からは「０」に活性化されたモードＢ選択信号が出力される。
【００５１】
ここで、有効端子情報を伝達するための信号線が接地電圧ＧＮＤに短絡されてしまう故障が発生した場合を想定する。例えば図２に示すように、最下位ビットの信号線が接地電圧ＧＮＤに短絡した場合、最下位ビットは強制的に「０」に設定される。これにより、有効端子情報は“１１”から“１０”に書き換えられてしまう。その結果、モードＡ選択信号に代えてモードＢ選択信号が誤って「０」に活性化されることになる。
【００５２】
この活性化されたモードＢ選択信号は、デコード回路２０に入力される。デコード回路２０にはリセット信号がさらに入力される。このリセット信号は、半導体装置１００のリセット動作時に活性状態である「０」に設定される信号である。
【００５３】
デコード回路２０の出力は、入力制御信号として各端子４に与えられる。図２には、入出力回路１の端子Ｐ１０〜Ｐ１３にそれぞれ与えられる４つの入力制御信号（Ｐ１０入力制御信号〜Ｐ１３入力制御信号）が代表的に示されている。
【００５４】
端子Ｐ１０では、「１」に活性化された入力制御信号（図中のＰ１０入力制御信号に相当）が対応する入力バッファ制御レジスタ３０（図中のＰ１０レジスタに相当）に保持される。また、端子Ｐ１０の入力バッファ６がＰ１０入力制御信号を受けて活性化される。端子Ｐ１１〜Ｐ１３においても同様に、「１」に活性化された入力制御信号（図中のＰ１１入力制御信号〜Ｐ１３入力制御信号に相当）が対応する入力バッファ制御レジスタ３０（図中のＰ１１レジスタ〜Ｐ１３レジスタに相当）に保持されるとともに、入力制御信号を受けて入力バッファ６が活性化される。このようにしてモードＢ選択信号が活性化された場合、端子Ｐ１０〜Ｐ１３が有効に設定される。
【００５５】
図４には、モードＢ選択信号に基づいて生成される端子Ｐ１０〜Ｐ１３の入力制御信号が示される。図４にはさらに、比較例として、モードＡ選択信号に基づいて生成される端子Ｐ１０〜Ｐ１３の入力制御信号が示される。
【００５６】
図４を参照して、モードＢ選択信号に基づいて入力制御信号を生成した場合、端子Ｐ１０〜Ｐ１３の入力制御信号はすべて「１」に設定される。
【００５７】
これに対して、モードＡ選択信号に基づいて入力制御信号を生成した場合、端子Ｐ１１〜Ｐ１３の入力制御信号が「１」に設定される一方で、端子Ｐ１０の入力制御信号が「０」に設定される。すなわち、モードＢ選択信号とモードＡ選択信号とでは、端子Ｐ１０の入力制御信号の信号値が異なっている。これにより、有効端子数＝ｍピン（動作モードＢ）のときには端子Ｐ１０が有効に設定されるのに対して、有効端子数＝ｎピン（動作モードＡ）のときには端子Ｐ１０が無効に設定される。すなわち、最下位ビットの信号線が接地電圧ＧＮＤに短絡する故障が生じたことによって、無効化されるべき端子Ｐ１０が誤って有効に設定されてしまうという事態が生じる。
【００５８】
図２に戻って、上述したような有効端子制御回路２２の動作異常を検出するため、半導体装置１００は、各端子４の入力バッファ制御レジスタ３０に格納された入力制御信号に基づいて有効端子制御回路２２の動作を診断する。
【００５９】
具体的には、診断制御レジスタ３４において診断実行制御ビットが「１」に設定されると、読出回路３６は、端子Ｐ１０から順番に入力バッファ制御レジスタ３０に格納された入力制御信号を読み出して演算回路３８へ出力する。演算回路３８は、端子Ｐ１０から順番に入力される入力制御信号を用いて所定の演算を実行し、その演算値を演算値格納レジスタ４０に格納する。
【００６０】
上述のように、記憶装置１には、有効端子数ごとに、所定の演算で得られるべき期待値が予め格納されている。具体的には、期待値は、複数ビットのデータで構成される。有効端子数＝ｎピン（動作モードＡ）の場合、期待値を示すデータが記憶装置１から読み出され、期待値格納レジスタ３２に格納される。
【００６１】
比較回路４２は、演算値格納レジスタ４０から演算値を受け、期待値格納レジスタ３２から有効端子数＝ｎピン（動作モードＡ）に対応する期待値を受ける。比較回路４２は、演算値および期待値の比較結果に応じて判定結果信号を「１」または「０」に設定する。このようにして第１番目のブロック（入出力回路１）についての判定結果信号が設定されると、続いて、第２番目のブロック（入出力回路２）に含まれる端子Ｐ２０〜Ｐ２３の入力バッファ制御レジスタ３０に格納される入力制御信号を用いて所定の演算を実行する。上述した読出回路３６による入力制御信号の読み出しから比較回路４２による比較判定に至る一連の動作を最終である第Ｎ番目のブロック（入出力回路Ｎ）に至るまで繰り返し実行することにより、有効端子制御回路２２の動作が診断される。
【００６２】
以上のような制御構造によって、実施の形態１による半導体装置１００における有効端子制御回路２２の動作の診断処理が実現される。これらの処理は、次のような処理フローにまとめることができる。
【００６３】
図５および図６は、実施の形態１による有効端子制御回路２２の動作の診断処理を説明するためのタイミングチャートである。なお、図５および図６に示す診断処理は、記憶装置１に予め格納したプログラムを実行することで実現できる。
【００６４】
図５を参照して、リセット信号が「１」に活性化されたことに応答して半導体装置１００のリセットシーケンスが実行される。リセットシーケンス中、有効端子制御回路２２は、記憶装置１から読み出された有効端子情報に基づいて複数の端子４の各々を有効または無効に設定する。このとき、有効端子制御回路２２により生成された複数の入力制御信号は、端子４ごとに設けられた入力バッファ制御レジスタ３０にそれぞれ格納される。さらに、記憶装置１から有効端子情報に対応する期待値が読み出されて期待値格納レジスタ３２に格納される。
【００６５】
リセットシーケンスの終了後、マイコンの動作中においてユーザが任意のタイミングでセルフテスト機能を使用すると、図６に示す処理手順に従ってセルフテストが実行される。
【００６６】
図６を参照して、診断実行制御ビットが「１」に設定されると、第１番目のブロックから順番に、各ブロックに含まれる複数の入力バッファ制御レジスタ３０に格納された入力制御信号が読み出されて所定の演算が実行される。具体的には、最初に、読出回路３６は、第１番目のブロック（入出力回路１）から入力制御信号を取り込むための読出信号をＨレベルに活性化させる。この読出信号を受けて第１番目のブロックの複数の入力バッファ制御レジスタ３０（図２のＰ１０レジスタ〜Ｐ１３レジスタに相当）から入力制御信号が読み出されて演算回路３８に与えられる。演算回路３８は、入力制御信号を用いて所定の演算を実行し、その演算値を演算値格納レジスタ４０に格納する。
【００６７】
比較回路４２は、演算値格納レジスタ４０から演算値を受け、期待値格納レジスタ３２から期待値を受けると、これら２つの値を比較し、その比較結果に応じて判定結果信号を「１」または「０」に設定する。
【００６８】
このようにして第１番目のブロックについて判定結果信号が設定されると、読出回路３６は、第２番目のブロック（入出力回路２）から入力制御信号を取り込むための読出信号をＨレベルに活性化させる。この読出信号を受けて第２番目のブロックの複数の入力バッファ制御レジスタ３０から入力制御信号が読み出されて演算回路３８に与えられる。演算回路３８は、入力制御信号を用いて所定の演算を実行し、その演算値を演算値格納レジスタ４０に格納する。比較回路４２は、演算値格納レジスタ４０から与えられる演算値と、期待値格納レジスタ３２から与えられる期待値とを比較し、その比較結果に応じて判定結果信号を「１」または「０」に設定する。
【００６９】
上述した読出回路３６による入力制御信号の読み出しから比較回路４２による比較判定に至る一連の動作が繰り返し実行され、最終である第Ｎ番目のブロック（入出力回路Ｎ）に対する動作が終了すると、演算終了信号が活性状態（Ｈレベル）に設定される。この演算終了信号に応答して、フラグレジスタ４４は、比較回路４２から出力される判定結果信号を格納する。
【００７０】
このように、実施の形態１による半導体装置によれば、複数の端子４の各々を有効／無効に設定するための入力制御信号を用いて有効端子制御回路２２の動作が診断される。そのため、端子４とピン９との電気的接続の有無に拘わらず、有効端子制御回路２２のセルフテストを実現できる。
【００７１】
（変形例）
図７を参照して、実施の形態１による半導体装置１００の変形例である半導体装置の構成を説明する。なお、本変形例による半導体装置の概略構成は、セルフテスト回路を除いて図１と同様であるので、図示および説明の繰り返しを省略する。
【００７２】
本変形例による半導体装置は、図１に示す半導体装置１００のセルフテスト回路からフラグレジスタ４４を除いたものである。半導体装置１００と同一の符号が付されたものは、同一の構成を有し、それらの重複説明は行なわない。
【００７３】
本変形例による半導体装置では、比較回路４２において演算値と期待値とが一致しないと判断された場合にマイコンの動作を停止させる。これにより、端子４の機能が別の端子４に移動することによるマイコンの動作異常を未然に防止できる。その結果、半導体装置１００に接続される他の周辺回路への影響を減らすことができる。
【００７４】
なお、上述したマイコンの動作停止を行なうか否かについては、マイコンのユーザによって選択可能な構成としてもよい。例えば、マイコンの動作停止の実行指令を表わす制御ビット（以下、停止実行制御ビットとも称する）を診断制御レジスタ３４に設けておき、ユーザがこの動作停止実行制御ビットを予め設定する構成としてもよい。
【００７５】
［実施の形態２］
上述した実施の形態１による半導体装置１００では、マイコンの動作中にユーザの指示を受け付けてセルフテストを実行する構成について説明したが、リセットシーケンス中に半導体装置１００が自動的にセルフテストを実行する構成としてもよい。
【００７６】
図８を参照して、実施の形態２による半導体装置の構成を説明する。なお、実施の形態２による半導体装置の概略構成は、セルフテスト回路を除いて図１と同様であるので、図示および説明の繰り返しを省略する。
【００７７】
実施の形態２による半導体装置は、図１に示す半導体装置１００のセルフテスト回路において、有効端子制御回路２２によって診断制御レジスタ３４を制御可能に構成したものである。有効端子制御回路２２は、有効端子情報に基づいて複数の端子４を有効または無効に設定した後、診断実行制御ビットを活性状態である「１」に設定する。これにより、セルフテストが実行される。
【００７８】
図９は、実施の形態２による有効端子制御回路２２の動作の診断処理を説明するためのタイミングチャートである。
【００７９】
図９を参照して、リセットシーケンス中、有効端子制御回路２２は、記憶装置１から読み出された有効端子情報に基づいて複数の端子４の各々を有効または無効に設定する。このとき、有効端子制御回路２２により生成された複数の入力制御信号は、端子４ごとに設けられた入力バッファ制御レジスタ３０に格納される。さらに、記憶装置１から有効端子情報に対応する期待値が読み出されて期待値格納レジスタ３２に格納される。
【００８０】
次に、有効端子制御回路２２は、診断実行制御ビットを「１」に設定する。診断実行制御ビットが「１」に設定されると、第１番目のブロック（入出力回路１）から順番に、各ブロックに含まれる複数の入力バッファ制御レジスタ３０に格納された入力制御信号が読み出されて所定の演算が実行され、その演算値が演算値格納レジスタ４０に格納される。比較回路４２は、演算値格納レジスタ４０から演算値を受け、期待値格納レジスタ３２から期待値を受けると、これら２つの値を比較し、比較結果に応じて判定結果信号を「１」または「０」に設定する。
【００８１】
上述した読出回路３６による入力制御信号の読み出しから比較回路４２による比較判定に至る一連の動作が繰り返し実行され、最終である第Ｎ番目のブロックに対する動作が終了すると、演算終了信号が活性状態（Ｈレベル）に設定される。この演算終了信号に応答して、フラグレジスタ４４は、比較回路４２から出力される判定結果信号を格納する。
【００８２】
このように、実施の形態２による半導体装置によれば、リセットシーケンス中に有効端子制御回路２２のセルフテストが自動的に実行されるため、ユーザはフラグレジスタ４４に格納された値を読み出すことによって、有効端子制御回路２２の診断結果を得ることができる。
【００８３】
［実施の形態３］
上述した実施の形態１による半導体装置１００では、マイコンの動作中にユーザの指示を受け付けてセルフテストを実行する構成について説明したが、ユーザの指示に代えてマイコンに接続される外部機器からの指示を受け付けてセルフテストを実行する構成としてもよい。
【００８４】
図１０を参照して、実施の形態３による半導体装置の構成を説明する。なお、実施の形態３による半導体装置の概略構成は、セルフテスト回路を除いて図１と同様であるので、図示および説明の繰り返しを省略する。
【００８５】
実施の形態３による半導体装置は、図１に示す半導体装置１００のセルフテスト回路において、外部機器（図示せず）からの指示に従ってセルフテストを実行可能に構成したものである。具体的には、複数の端子４のうちの１つの端子４に対して外部機器からのセルフテストの実行指令が入力されると、このセルフテスト実行指令を応答して診断制御レジスタ３４の診断実行制御ビットが「１」に設定される。これにより、セルフテストが実行される。
【００８６】
このように、実施の形態３による半導体装置によれば、端子４を介して外部機器からのセルフテスト実行指令を受け付け可能に構成したことにより、ＣＰＵ３を介することなく有効端子制御回路２２のセルフテストを行なうことができる。これによれば、マイコンが組み込まれるシステムと接続される他のシステムと連動してセルフテストを実行する構成とすることも可能となる。
【００８７】
なお、上述した外部入力によるセルフテストを行なうか否かについては、マイコンのユーザによって選択可能な構成としてもよい。例えば、外部入力によるセルフテストの実行指令を表わす制御ビット（以下、外部入力診断実行ビットとも称する）を診断制御レジスタ３４に設けておき、ユーザがこの外部入力診断実行ビットを予め設定する構成としてもよい。
【００８８】
［実施の形態４］
上述した実施の形態１による半導体装置１００では、マイコンの動作中にユーザの指示を受け付けてセルフテストを実行する構成について説明したが、ユーザの指示に代えて半導体チップに搭載される周辺機能回路からの指示を受け付けてマイコンに接続される外部機器からの指示を受け付けてセルフテストを実行する構成としてもよい。
【００８９】
図１１を参照して、実施の形態４による半導体装置の構成を説明する。なお、実施の形態４による半導体装置の概略構成は、セルフテスト回路を除いて図１と同様であるので、図示および説明の繰り返しを省略する。
【００９０】
実施の形態４による半導体装置は、図１に示す半導体装置１００のセルフテスト回路において、周辺機能回路５０からの指示に従ってセルフテストを実行可能に構成したものである。具体的には、周辺機能回路５０からのセルフテストの実行指令が入力されると、このセルフテスト実行指令を応答して診断制御レジスタ３４の診断実行制御ビットが「１」に設定される。これにより、セルフテストが実行される。
【００９１】
周辺機能回路５０としては、例えばタイマが適用される。タイマが一定時間間隔ごとにセルフテスト実行指令を出力することにより、定期的に有効端子制御回路２２のセルフテストが実行される。
【００９２】
このように、実施の形態４による半導体装置によれば、周辺機能回路５０からのセルフテスト実行指令を受け付け可能に構成したことにより、定期的に有効端子制御回路２２のセルフテストを実行することができる。これにより、有効端子制御回路２２の動作異常を早期に検出することが可能となる。
【００９３】
なお、上述した周辺機能回路５０からの指示によるセルフテストを行なうか否かについては、マイコンのユーザによって選択可能な構成としてもよい。例えば、周辺機能回路５０からの指示によるセルフテストの実行指令を表わす制御ビット（以下、周辺機能診断実行ビットとも称する）を診断制御レジスタ３４に設けておき、ユーザがこの周辺機能診断実行ビットを予め設定する構成としてもよい。
【００９４】
［診断制御レジスタの構成例］
最後に、上述した実施の形態１〜４による半導体装置における診断制御レジスタ３４の構成例について説明する。
【００９５】
図１２は、診断制御レジスタ３４の構成の一例を示す図である。図１２を参照して、診断制御レジスタ３４は、セルフテストに関する指令を格納するための複数の領域を有する。この複数の領域には、実施の形態１〜４で説明した構成を実現するための制御ビットがそれぞれ格納される。
【００９６】
具体的には、診断制御レジスタ３４には、診断実行制御ビット（実施の形態１および２参照）、外部入力診断実行ビット（実施の形態３参照）、周辺機能診断実行ビット（実施の形態４参照）および停止実行制御ビット（実施の形態１の変形例参照）が格納される。これらの制御ビットはいずれも、活性状態である「１」または非活性状態である「０」に設定される。制御ビットが「１」に設定された場合、対応する機能の実行の許可を意味し、制御ビットが「０」に設定された場合、対応する機能の実行の禁止を意味する。
【００９７】
このように、１つの診断制御レジスタ３４に複数の制御ビットを集約させたことにより、診断制御レジスタ３４の制御によって各機能の実行／停止を選択することができる。
【００９８】
さらに、図１２に示すように、診断制御レジスタ３４に、有効端子制御回路２２のセルフテストが実行中であるか否かを表わす制御ビット（以下、診断実行状態確認ビットとも称する）を設ける構成としてもよい。診断実行状態確認ビットは、セルフテストの実行中は「１」（＝Ｂｕｓｙ）に設定され、セルフテストの終了後は「０」（＝Ｒｅａｄｙ）に設定される。
【００９９】
このような構成とすることにより、ユーザは診断実行状態確認ビットをモニタリングすることで、セルフテストが完了したか否かを判断できる。また、ユーザは、フラグレジスタ４４からセルフテストの結果を読み出すことができるタイミングを知ることができる。その結果、セルフテストの実行中にフラグレジスタ４４を読み出すことによって誤った診断がなされるのを防止することができる。また、セルフテストの開始からフラグレジスタ４４を読み出すタイミングまでの待ち時間を、ユーザが予めプログラムに組み込むという作業が不要となる。
【０１００】
なお、上述の実施の形態１〜４では、複数の入力バッファ制御レジスタ３０から所定の順序で読み出した入力制御信号について所定の演算を行ない、その演算値と有効端子情報に基づく期待値とを比較する構成について説明したが、所定の順序で読み出した入力制御信号をそのまま有効端子情報と比較する構成としてもよい。
【０１０１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１０２】
１  記憶装置、３  ＣＰＵ、４  端子、５  論理回路、６  入力バッファ、７  出力バッファ、８  パッド、９  ピン、１０  ボンディングワイヤ、２０  デコード回路、２２  有効端子制御回路、３０  入力バッファ制御レジスタ、３２  期待値格納レジスタ、３４  診断制御レジスタ、３６  読出回路、３８  演算回路、４０  演算値格納レジスタ、４２  比較回路、４４  フラグレジスタ、５０  周辺機能回路、１００，１０００  半導体装置。
【図１】
2014159982.tif 000003
【図２】
2014159982.tif 000004
【図３】
2014159982.tif 000005
【図４】
2014159982.tif 000006
【図５】
2014159982.tif 000007
【図６】
2014159982.tif 000008
【図７】
2014159982.tif 000009
【図８】
2014159982.tif 000010
【図９】
2014159982.tif 000011
【図１０】
2014159982.tif 000012
【図１１】
2014159982.tif 000013
【図１２】
2014159982.tif 000014
【図１３】
2014159982.tif 000015
【図１４】
2014159982.tif 000016