(57)【特許請求の範囲】
【請求項１】
デジタル信号を処理するデジタル回路部と、
アナログ信号を処理するアナログ回路部と、
該アナログ回路部にて処理されたアナログ信号をデジタル信号に変換して上記デジタル回路部に入力する信号変換部と、
上記デジタル回路部及びアナログ回路部に対して外部からの信号を入出力するための外部端子群と、
を備えたシングルチップの半導体装置において、
上記外部端子群を介して記憶内容の読み出しが可能なデータ記憶手段と、
２値レベルの検査信号を時系列的に発生させる検査信号発生手段と、
該検査信号発生手段が発生する検査信号を、上記外部端子を介して入力されるアナログ信号に代えて上記アナログ回路部に入力する信号切替手段と、
上記アナログ回路部の出力の信号レベルが、予め設定された正常範囲内にあるか否かを判定する判定手段と、
上記検査信号発生手段を起動し、予め設定された測定時間が経過すると上記判定回路での判定結果を取り込んで上記データ記憶手段に記憶するアナログ部検査制御手段と、
を備えることを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
上記検査信号発生手段は、
予め設定された単位時間毎に検査信号の信号レベルに対応した信号生成データを記憶する信号生成データ記憶手段と、
該信号生成データ記憶手段が記憶する信号生成データを、上記単位時間毎に読み出すデータ読出手段と、
該データ読出手段が読み出した信号生成データを、所定の信号レベルに変換して検査信号を生成するレベル変換手段と、
からなることを特徴とする半導体装置。
【請求項３】
請求項１又は請求項２に記載の半導体装置において、
上記デジタル回路部での異常の有無を自己検査するデジタル部検査手段と、
上記デジタル部検査手段によるデジタル回路部の自己検査の結果、上記デジタル回路部が正常である場合に、上記アナログ部検査制御手段を起動するアナログ部検査起動手段と、
を備え、更に、
上記デジタル回路部は、予め設定されたプログラムに従って処理を実行するマイクロプロセッサにて構成されると共に、上記デジタル部検査手段，アナログ部検査起動手段，及びアナログ部検査制御手段は、該マイクロコンピュータが実行する処理として実現されていることを特徴とする半導体装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の半導体装置において、
上記アナログ部検査制御手段は、上記外部端子群を介して所定の起動信号を入力すると起動するように構成されていることを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル回路部及びアナログ回路部を混載してなる半導体装置に関し、特に自己検査機能を備えた半導体装置に関する。
【０００２】
【従来の技術】
従来より、デジタル回路を内蔵した半導体装置においては、この内蔵された回路を、半導体装置内部にて自律的に検査する検査手法が知られており、自己検査法あるいは自己組み込み検査（ビルト・イン・セルフ・テスト）等と呼ばれている。
【０００３】
この種の検査を実現する装置として、例えば、特開平２−３８８７９号公報には、被検査回路に入力すべき擬似ランダムパタン等のテストパタンを発生するパタン発生回路と、被検査回路からの出力パタンのエラーを検出して保持するエラー検出回路とを備えた装置が開示され、また特開平３−５９４７８号公報には、エラー検出回路の代わりに出力パタンを圧縮して記憶するシグネチャ回路を備えた装置が開示されている。これらの装置では、外部からテストパタンを供給して、被検査回路の出力を観察するのではなく、パタン発生回路によって半導体装置の内部にてテストパタンを発生させ、被検査回路の出力を判定又は処理した結果のみを、外部へ出力したり、外部から読み出し可能なメモリ領域に記憶したりするようにされている。
【０００４】
そして、この判定又は処理した結果やパタン発生回路への起動指令の入出力を、汎用の入出力ポートとして使用される外部端子等を介して行えば、検査専用の外部端子を設けることなく、即ち外部端子数により決まる半導体装置のパッケージのサイズを増大させることなく内部回路の検査が可能になる。
【０００５】
ところで、半導体装置製造技術の進歩により、近年では、デジタル回路とアナログ回路とが１つの半導体装置内に統合されるようになり、従って、デジタル回路だけでなくアナログ回路に対する検査の必要性が高まってきた。
【０００６】
【発明が解決しようとする課題】
しかし、アナログ回路では、パタン発生回路が発生する擬似ランダムパタン等のテストパタンを入力しても出力がデジタル信号とはならず、さらにランダムパタンでは出力に故障が現れるとは限らないため、上述のようなデジタル回路に用いる検査回路を、そのまま適用することができなかった。
【０００７】
また、このような半導体装置において、外部から入力されアナログ回路部にて処理されたアナログ信号は、通常、半導体装置に内蔵されたＡ／Ｄ変換器にてＡ／Ｄ変換された後、デジタル回路部にて処理されるため、本来ならばアナログ回路部の出力を外部端子に接続する必要のないことが多い。
【０００８】
つまり、アナログ回路部を内蔵する半導体装置では、アナログ回路部の検査のためだけに、通常動作時には必要のない、アナログ回路部の出力を取り出すための外部端子を余分に設けなければならず、検査すべきアナログ回路部が多数存在すると、半導体装置のパッケージが大型化してしまうという問題があった。しかも、アナログ回路部の検査は、高価なアナログテスタ等を用いてアナログ回路部にアナログ信号を供給し、検査用の外部端子からの出力を観察するといった手法により、いちいち手作業にて行わなければならず、検査に手間を要するという問題もあった。
【０００９】
なお、「ＤＥＳＩＧＮ  ＦＯＲ  ＴＥＳＴＡＢＩＬＩＴＹ  ＯＦ  Ａ  ＭＵＤＵＬＡＲ，  ＭＩＸＥＤ  ＳＩＧＮＡＬ  ＦＡＭＩＬＹ  ＯＦ  ＶＬＳＩ  ＤＥＶＩＣＥＳ」（ＩＥＥＥ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＴＥＳＴ  ＣＯＮＦＥＲＥＮＣＥ  １９９３  ｐ．７９７−ｐ．８０４）  には、様々なデジタルデータを発生するスキャン回路と、スキャン回路が発生したデータをアナログ信号に変換するＤ／Ａ変換器とを設けることにより、外部端子数を増大させることなく、内部で様々なアナログ信号を発生させることを可能にした装置が開示されているが、この装置では、内部回路の検査のためだけにＤ／Ａ変換器を設ける必要があり、検査を行うための構成が大型化してしまうという問題があった。
【００１０】
本発明は、上記問題点を解決するために、半導体装置に内蔵されたアナログ回路部を、外部端子をほとんど増加させることなく容易に検査することが可能な半導体装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するためになされた本発明の請求項１に記載の半導体装置においては、アナログ部検査制御手段が検査信号発生手段を起動すると、検査信号発生手段は、２値レベルの検査信号を時系列的に発生させ、この検査信号を、信号切替手段が、外部端子を介して入力されるアナログ信号に代えてアナログ回路部に入力する。
【００１２】
ところで、アナログ回路部では、一般に伝達関数で表される一定の因果関係が入力信号と出力信号との間に成立しており、所定の入力信号に対して出力信号が一意に決まる。特に、アナログ回路部に、現在の入力だけでなく過去の入力にも影響を受ける積分器等が含まれている場合、出力信号は一連の入力信号（例えば時系列的に発生させられた２値レベルの検査信号）に対して一意に決まる。
【００１３】
そこで、アナログ部検査制御手段は、予め設定された測定時間が経過すると、アナログ回路部の出力の信号レベルが予め設定された正常範囲内にあるか否かを判定する判定手段での判定結果を取り込んで、外部端子群を介して記憶内容の読み出しが可能なデータ記憶手段に記憶する。
【００１４】
即ち、判定手段が判定に用いる正常範囲を、アナログ回路部の動作が正常であれば、測定時間を経過した時にアナログ回路部の出力がなっているべき信号レベル近傍に設定しておけば、アナログ回路部の正常／異常を判定できるのである。このように、本発明の半導体装置によれば、アナログ部検査制御手段を起動させるだけで、アナログ部の自己検査を簡単に行うことができ、その検査結果は、外部端子群を介してデータ記憶手段の記憶内容を読み出すことにより、簡単に獲得できる。
【００１５】
しかも、検査信号として２値レベルの信号を用い、且つ検査結果として出力信号が正常範囲内にあるか否かを判定した結果を記憶することにより、アナログ回路部の検査を、デジタル信号にて直接制御できるように構成されているので、ＤＡ変換器等の複雑な回路を追加する必要がなく、アナログ回路部の検査を行うための構成を小型化できる。
【００１６】
なお、検査信号発生手段は、例えば、請求項２に記載のように、予め設定された単位時間毎に検査信号の信号レベルに対応した信号生成データを記憶する信号生成データ記憶手段と、該信号生成データ記憶手段が記憶する信号生成データを、単位時間毎に読み出すデータ読出手段と、該データ読出手段が読み出した信号生成データを、所定の信号レベルに変換して検査信号を生成するレベル変換手段と、により構成することができる。
【００１７】
次に、請求項３に記載の半導体装置では、デジタル部検査手段が、デジタル回路部の異常の有無を自己検査し、その結果、デジタル回路部が正常である場合に、アナログ部検査起動手段が、アナログ部検査制御手段を起動する。
なお、デジタル回路部は、予め設定されたプログラムに従って処理を実行するマイクロプロセッサにて構成されており、デジタル部検査手段、アナログ部検査起動手段、及びアナログ部検査制御手段は、マイクロコンピュータが実行する処理として実現されている。
【００１８】
つまり、デジタル回路部が正常に動作すると確認された後に、動作が確認されたデジタル回路部の制御により、アナログ回路部の検査が行われるので、アナログ回路部の検査の信頼性を向上させることができる。また、アナログ部検査制御手段を起動するために、外部から特別な指令を与える必要がないので、外部端子を増加させてしまうことがなく、延いては当該半導体装置のパッケージの小型化により貢献できる。
【００１９】
但し、アナログ部検査制御手段は、請求項４に記載のように、外部端子群を介して所定の起動信号が入力されると起動するように構成してもよい。
この場合、アナログ回路部のみを任意に検査することが可能となる。
【００２０】
【発明の実施の形態】
以下に本発明の実施例を図面と共に説明する。
図１は、デジタル回路とアナログ回路とが１チップ上に混在するように構成され、車両の電子制御装置（ＥＣＵ）等に使用される本実施例の半導体装置（ＬＳＩ）２の全体構成を表すブロック図である。
【００２１】
図１に示すように、本実施例の半導体装置２は、デジタル信号を処理するデジタル回路部としてのマイクロプロセッサ４と、アナログ信号のノイズフィルタ等からなるアナログ回路部６と、アナログ回路部６が出力するアナログ信号Ａｏを、デジタル信号Ｄｃに変換してマイクロプロセッサ４に入力するＡ／Ｄ変換器８と、マイクロプロセッサ４が出力する検査信号ｓａを、所定の信号レベルに変換するレベル変換回路１０と、マイクロプロセッサ４からの選択信号ＣＳに従って、外部端子Ｔａｉを介して入力されるアナログ信号Ａｉｎ、又はレベル変換回路１０から供給されるレベル変換された検査信号ＳＡのいずれかをアナログ回路部６に供給する切替回路１２と、アナログ回路部６の出力レベルが所定の正常範囲内にあるか否かを判定し、マイクロプロセッサ４からの保持信号ＣＨに従って判定信号ＳＲを保持し、保持された判定信号ＳＲをマイクロプロセッサ４に入力する判定回路１４とを備えている。
【００２２】
なお、半導体装置２は、アナログ信号Ａｉｎを入力するための外部端子Ｔａｉの他、マイクロプロセッサ４に対して様々なデータを入出力するための汎用ＩＯポートとして使用される外部端子Ｔｐｂと、マイクロプロセッサ４の内部回路の検査を行う時に使用するモード選択信号ＭＤを入力するための外部端子Ｔｍｄと、後述するアナログ回路部６の自己検査を起動する起動信号ＡＴを入力するための外部端子
Ｔａｔとを備えている。そして通常、外部端子Ｔｐｂは、オプションのＥＥＰＲＯＭ等からなる外部メモリが接続されたり、シリアル通信機能の入出力端子として使用されたりするものである。
【００２３】
次に図２は、マイクロプロセッサ４の詳細構成を表すブロック図である。
図２に示すように、マイクロプロセッサ４は、プログラムに従って処理を実行するＣＰＵ１６と、ＣＰＵ１６を動作させるのに必要なプログラム及びデータを格納するＲＯＭ１８と、ＣＰＵ１６の演算結果を一次的に記憶するためのＲＡＭ２０と、マイクロプロセッサ４の外部との間で各種信号を入出力するためのＩ／Ｏ回路２２と、設定された周期毎にＣＰＵ１６に対して割込信号ＩＴを発生するタイマ２４と、外部端子Ｔｍｄを介して入力されるモード選択信号ＭＤに従って、ＣＰＵ１６からＲＯＭ１８へのアクセスを制限する制限回路３０とを備えている。
【００２４】
なお、ＣＰＵ１６は、２系統のデータバス及びアドレスバスを備えており、第１データバス２６及び第１アドレスバス２８には、ＲＯＭ１８，Ｉ／Ｏ回路２２，制限回路３０が接続され、第２データバス２７及び第２アドレスバス２９には、ＲＡＭ２０及びタイマ２４が接続されている。これは、次に実行する命令をＲＯＭ１８から読み込みながら、先に読み込んだ命令を同時に実行できるようにするためである。またＣＰＵ１６は、任意の用途に使用可能なレジスタＡ〜Ｅ及び後述する自己検査処理の実行状態を表すフラグＴＦＬＡＧとして使用されるレジスタＦを備えている。
【００２５】
またＩ／Ｏ回路２２では、外部端子Ｔｐｂを介して当該半導体装置２の外部との間で入出力されるデジタル信号ＰＢ、レベル変換回路１０に出力される検査信号ｓａ、判定回路１４から入力される判定信号ＳＲ、Ａ／Ｄ変換器８からのデジタル信号Ｄｃ、切替回路１２を制御する切替信号ＣＳ、判定回路１４に判定信号ＳＲを保持させる保持信号ＣＨ、外部端子Ｔａｔを介して入力される起動信号ＡＴ等が入出力される。なお、これらの信号は、Ｉ／Ｏ回路２２を介することなく、ＣＰＵ１６に直接入出力されるように構成してもよい。
【００２６】
更に、ＲＯＭ１８には、本実施例の半導体装置２が本来行うべき処理を実行するためのプログラムの他、後述する自己検査処理のプログラム、及びこの自己検査処理においてアナログ回路部６を検査する際に使用する信号生成データ等が格納されている。そして、制限回路３０は、モード信号ＭＤが入力されている時にＣＰＵ１６が自己検査処理プログラム及び信号生成データが格納された領域以外をアクセスすると外部端子Ｔｐｂがアクセスされるように、ＣＰＵ１６によるＲＯＭ１８へのアクセスを制限する。即ち、モード信号ＭＤが入力されている時に、ＣＰＵ１６が、ＲＯＭ１８から命令やデータを読み込もうとすると、実際には、外部端子Ｔｐｂから読み込むことになるのである。
【００２７】
次に図３は、レベル変換回路１０の詳細構成を表す回路図である。
図３に示すように、レベル変換回路１０は、電源電圧ＶＤＤを接地電圧ＧＮＤとの間で分圧するために直列接続された一対の分圧抵抗Ｒ１，Ｒ２と、マイクロプロセッサ４からの検査信号ｓａがＨｉｇｈレベルの時にオンして、分圧抵抗Ｒ１，Ｒ２による分圧電圧Ｖａを切替回路１２に供給するアナログスイッチＳＷ１と、マイクロプロセッサ４からの検査信号ｓａが反転回路ＮＯＴを介して印加され、検査信号ｓａがＬｏｗ  レベルの時にオンして、接地電圧Ｖｂ（＝ＧＮＤ）を切替回路１２に供給するアナログスイッチＳＷ２とにより構成されている。
【００２８】
即ち、レベル変換回路１０は、マイクロプロセッサ４から供給される検査信号ｓａのＨｉｇｈレベルを電圧Ｖａ，Ｌｏｗ  レベルを電圧Ｖｂにレベル変換して、このレベル変換された検査信号ＳＡを切替回路１２に供給するようにされている。
次に図４は、判定回路１４の詳細構成を表す回路図である。
【００２９】
図４に示すように、判定回路１４は、電源電圧ＶＤＤを接地電圧ＧＮＤとの間で分圧するために直列接続された３つの分圧抵抗Ｒ３〜Ｒ５と、反転入力端子（−）にアナログ回路部６の出力信号Ａｏが印加され、非反転入力端子（＋）に抵抗Ｒ３，Ｒ４の接続点の分圧電圧（以下、比較電圧という）ＶＨが印加された電圧比較器３２と、反転入力端子（−）にアナログ回路部６の出力信号Ａｏが印加され、非反転入力端子（＋）に抵抗Ｒ４，Ｒ５の接続点の分圧電圧（以下、比較電圧という）ＶＬが印加された電圧比較器３４と、両電圧比較器３２，３４の出力レベルの論理積を求める論理積回路ＡＮＤと、論理積回路ＡＮＤの出力を、マイクロプロセッサ４からの保持信号ＣＨによって保持し、判定信号ＳＲとしてマイクロプロセッサ４に出力するレジスタ回路３６とにより構成されている。
【００３０】
即ち、判定回路１４では、論理積回路ＡＮＤの出力は、アナログ回路部６の出力信号Ａｏに応じて、この出力信号Ａｏが比較電圧ＶＬより大きく且つ比較電圧ＶＨより小さい場合にＨｉｇｈレベル、それ以外の場合にＬｏｗ  レベルとなり、レジスタ回路３６は、保持信号ＳＲが入力された時点の論理積回路ＡＮＤの出力レベルを判定信号ＳＲとして保持するのである。
【００３１】
なお、比較電圧ＶＬ，ＶＨは、アナログ回路部６の回路構成と検査信号ｓａ（ＳＡ）のパタンとに応じて適宜設定される。
次に、ＣＰＵ１６が実行する自己検査処理を、図６（ａ）に示すフローチャートに沿って説明する。
【００３２】
本処理が起動されると、まずステップ（以下、単にＳにて示す）２１０では、後述するＲＯＭ検査処理を実行し、続くＳ２２０では、ＲＯＭ検査処理の結果、レジスタＣ，Ｅに格納される値ＲＣ，ＲＥ（以下、同様にレジスタＡ〜Ｅの値をＲＡ〜ＲＥとする）に基づいてＲＯＭ１８が正常であるか否かを判断し、異常（ＲＥ≠ＲＣ）であれば、そのまま本処理を終了する。一方、ＲＯＭ１８が正常（ＲＥ＝ＲＣ）であると判断された場合は、Ｓ２３０に移行して、後述するアナログ部検査処理を実行後、本処理を終了する。
【００３３】
次に、先のＳ２１０にて実行されるＲＯＭ検査処理を、図７に示すフローチャートに沿って説明する。
このＲＯＭ検査処理は、ＲＯＭ１８から読みだしたデータを所定の原始多項式に従って次々と論理演算して、シグネチャと呼ばれるデータ圧縮された値を算出するものであり、最終的に算出されるシグネチャが、期待された値と一致するか否かにより、異常の有無が判定される。なお、このシグネチャについては、例えば、特開平３−５９４７８号等に詳しく説明された周知のものであるため、これ以上の詳細な説明は省略するが、ここでは、シグネチャの演算をハードウェアではなくソフトウェアにて実現しており、レジスタＥが線形フィードバックレジスタ（ＬＦＳＲ）に相当し、レジスタＤがＬＦＳＲへのパラレル入力に相当する。
【００３４】
また、本処理の実行中は、ＲＯＭ１８の任意の領域にアクセス可能とするため、モード設定信号ＭＤが無効にされるものとする。
図７に示すように、本処理が起動されると、まずＳ３１０では、検査処理を実行中であることを表すために、フラグＴＦＬＡＧを１にセットし、続くＳ３２０では、ＣＰＵ１６内のレジスタＡ，Ｂ，Ｃ，Ｅに検査用のパラメータを設定する。具体的には、レジスタＡにＲＯＭ１８の先頭アドレス、レジスタＢにＲＯＭ１８の末尾アドレス、レジスタＣに検査期待値、レジスタＥにシグネチャ初期値を設定する。
【００３５】
そしてＳ３３０では、レジスタＡの値ＲＡをアドレスとして、ＲＯＭ１８からデータを取得しレジスタＤに格納する。続くＳ３４０では、レジスタＤ，Ｅに格納された各値ＲＤ，ＲＥの間で、シグネチャ演算を実行し、演算結果をレジスタＥに格納する。更にＳ３５０では、レジスタＡの値ＲＡをインクリメントすることにより更新し、レジスタＡの値ＲＡが次にデータを読み出すべきＲＯＭアドレスとなるようにして、Ｓ３６０に進む。
【００３６】
Ｓ３６０では、レジスタＡ，Ｂの値ＲＡ，ＲＢ、即ち次にデータを読み出すべきＲＯＭ１８のアドレスとＲＯＭ１８の末尾アドレスとを比較することにより、ＲＯＭ１８に格納されたすべてのデータについてのシグネチャ演算が終了したか否かを判断し、終了していなければ（ＲＡ≦ＲＢ）、上述のＳ３３０〜Ｓ３５０の処理を繰り返し実行する。一方、Ｓ３６０にて、すべてのデータについてシグネチャ演算が終了した（ＲＡ＞ＲＢ）と判断されると、本処理を終了する。
【００３７】
即ち、本処理を実行すると、ＲＯＭ１８に格納された全てのデータをシグネチャ演算してなる値がレジスタＥに格納されることになる。従って、先のＳ２２０では、レジスタＥに格納されたシグネチャの演算結果ＲＥと、レジスタＣに設定された検査期待値ＲＣとを比較することにより、これらの値が等しければ（ＲＥ＝ＲＣ）ＲＯＭ１８は正常であると判断され、等しくなければ（ＲＥ≠ＲＣ）ＲＯＭ１８に異常があると判断するのである。
【００３８】
次に、先のＳ２３０にて実行されるアナログ部検査処理を、図８に示すフローチャートに沿って説明する。
このアナログ部検査処理は、予め設定された信号生成データに従って、２値レベル（Ｖａ，Ｖｂ）の検査信号ＳＡを時系列的にアナログ回路部６に与え、その出力信号Ａｏの信号レベルが所定の正常範囲内（ＶＬ≦Ａｏ≦ＶＨ）にあるか否かを判断するものである。
【００３９】
なお、本処理を実行する際に、レジスタＥには、先のＳ２１０にて実行されたＲＯＭ検査処理の処理結果であるシグネチャ演算値が格納されているので、本処理では、このレジスタＥを使用しないで実行するように構成されている。
本処理が起動されると、まずＳ４１０では、検査処理を実行中であることを表すためフラグＴＦＬＡＧを１にセットし、続くＳ４２０では、レジスタＡ，Ｂに検査用のパラメータを設定する。具体的には、レジスタＡに信号生成データが格納された領域の先頭アドレス、レジスタＢに同領域の末尾アドレスが設定される。
【００４０】
そしてＳ４３０では、レジスタＡの値ＲＡをアドレスとして、ＲＯＭ１８から信号生成データを取得しレジスタＣに格納する。続くＳ４４０では、レジスタＡの値ＲＡをインクリメントして更新することにより、レジスタＡの値ＲＡが、次に読み出すべき信号生成データが格納されたアドレスとなるようにする。更に、Ｓ４５０では、データカウンタとして使用されるレジスタＤの値ＲＤを０にクリアして、Ｓ４６０に進む。
【００４１】
Ｓ４６０では、切替信号ＣＳを出力して、レベル変換回路１０からの検査信号ＳＡがアナログ回路部６に供給されるように設定し、続くＳ４７０では、タイマ２４からのタイマ割込信号ＩＴをＣＰＵ１６が受け付けるようにＣＰＵ１６自身を設定すると共に、タイマ２４が周期的（時間間隔Ｔ）に、タイマ割込信号ＩＴを発生するようにタイマ２４を設定して起動する。
【００４２】
以後、このタイマ割込信号ＩＴにより、ＣＰＵ１６では、所定時間Ｔ毎に後述のタイマ割込処理が実行されることになる。
ここで、タイマ割込処理を図９に示すフローチャートに沿って説明する。
本処理が起動されると、まずＳ６１０では、レジスタＣに格納されている信号生成データの最上位ビット（ＭＳＢ）以外をマスクし、続くＳ６２０では、このマスクした信号生成データの値に応じてＩ／Ｏ回路２２の出力を設定することにより検査信号ｓａを生成する。即ち、ＭＳＢが１であればＨｉｇｈレベルに設定し、ＭＳＢが０であればＬｏｗ  レベルに設定する。なおＩ／Ｏ回路２２は、この設定された信号レベルを、再設定されるまで保持し続ける。
【００４３】
続くＳ６３０では、データカウンタ（レジスタＲ）の値ＲＤが、レジスタＲＣのビット数Ｎ（本実施例では８）以上であるか否かを判断し、Ｎ以上でなければ、Ｓ６４０に移行して、データカウンタの値ＲＤをインクリメントして更新し、続くＳ６５０にて、信号生成データが格納されたレジスタＣの値ＲＣを、ＭＳＢ側に１ビットだけシフトさせた後、本処理を終了する。
【００４４】
一方、Ｓ６３０にて、データカウンタの値ＲＤが、レジスタＣのビット数Ｎより小さいと判断された場合には、Ｓ６６０に移行する。以後Ｓ６６０〜Ｓ６８０では、先のＳ４３０〜Ｓ４５０と全く同様に、信号生成データを取得し、信号生成データアドレスを更新し、データカウンタをクリアした後、本処理を終了する。
【００４５】
即ち、アナログ部検査処理を実行すると、タイマ割込処理により、レジスタＣに設定された信号生成データの各ビットの値が、ＭＳＢ側から順番に検査信号ｓａとして出力され、しかも各ビットの値は、タイマ割込周期Ｔの間ずつ保持されることになり、その結果、検査信号ｓａは、図１０（ａ）に示すようなものとなり、レベル変換回路１０にてレベル変換された検査信号ＳＡが入力されたアナログ回路部６の出力信号Ａｏは、例えば図１０（ｂ）に示すようなものとなる。なお、図１０（ａ）は、１１０１０…０１というｎビットの信号生成データにて、時刻ｔ０から検査信号ｓａの生成した場合の例を示したものである。
【００４６】
ここで、図８のアナログ部検査処理に戻り、ステップ４８０では、全ての信号生成データについて処理を終了したか否かを判断する。これは、次に読み出すべき信号生成データが格納されたアドレスを示すレジスタＡの値ＲＡが、同領域の末尾アドレスを示すレジスタＢの値ＲＢより大きいか否かにより判断し、レジスタＲＡの値がレジスタＲＢの値以下（ＲＡ≦ＲＢ）であれば、本ステップを繰り返し実行して待機し、レジスタＡの値ＲＡがレジスタＢの値ＲＢより大きい（ＲＡ＞ＲＢ）と判断されると、Ｓ４９０に移行して、ＣＰＵ１６がタイマ割込信号ＩＴを受け付けないようにＣＰＵ１６自身を設定すると共に、タイマ２４を停止させることにより、タイマ割込処理が起動されれないように設定して、検査信号ｓａの生成を終了する。
【００４７】
そしてＳ５００では、判定回路１４に対して保持信号ＣＨを出力して、判定回路１４に判定信号ＳＲを保持させた後、続くＳ５１０にて、この保持した判定信号ＳＲを取り込んでレジスタＣに設定する。
更にＳ５２０では、切替信号ＣＳを出力して、外部端子Ｔａｉを介して入力されるアナログ信号Ａｉｎがアナログ回路部６に供給されるように設定し、続くＳ５３０にて、検査処理が終了したことを示すためにフラグＴＦＬＡＧを０にクリアした後、本処理を終了する。
【００４８】
つまり、アナログ部検査処理を実行すると、アナログ回路部６に検査信号ＳＡを入力した時の出力信号Ａｏの信号レベルが正常範囲内（ＶＬ≦Ａｏ≦ＶＨ）にあるか否かの判定結果がレジスタＣに格納されることになる。
その結果、自己検査処理（図６（ａ）参照）の終了時には、レジスタＥにＲＯＭ検査処理によるシグネチャの演算結果が設定され、レジスタＣにアナログ部検査処理による判定結果が格納されていることになる。
【００４９】
また、自己検査処理では、フラグＴＦＬＡＧは、ＲＯＭ検査処理が実行されるか、アナログ部検査処理が実行されるとフラグがセット（ＴＦＬＡＧ←１）され、アナログ部検査が終了した場合にクリア（ＴＦＬＡＧ←０）されると共に、ＲＯＭ検査にて異常が発見された場合には、アナログ部検査処理を実行することなく処理終了するようにされている。従って、外部端子Ｔｐを介してフラグＴＦＬＡＧの内容を読み出すことにより、自己検査が正常終了（ＴＦＬＡＧ＝０）したか否かを知ることができ、また、自己検査処理を実行するのに十分な所定時間を経過してもフラグがセット（ＴＦＬＡＧ＝１）されたままであれば、ＲＯＭ検査にて異常が発生したことを知ることができる。
【００５０】
次に、ＣＰＵ１６が実行する周期処理について、図６（ｂ）に示すフローチャートに沿って説明する。
なお、この周期処理は、タイマ２４に上述のタイマ割込信号ＩＴとは異なるタイマ割込信号を周期的に出力させることにより実行可能となる割込処理として構成されている。また、この周期処理は、自己検査処理と違って、制限回路３０によりアクセスが制限される領域に格納されていてもよい。
【００５１】
図６（ｂ）に示すように、本処理が起動されると、まずＳ２４０では、外部端子Ｔａｔを介して起動信号ＡＴが入力されているか否かを判断し、入力されていなければそのまま本処理を終了する。一方、起動信号ＡＴが入力されていると判断されると、Ｓ２５０に移行して、先のＳ２３０と全く同様にアナログ部検査処理を実行後、本処理を終了する。即ち、本処理が実行可能にされている時には、起動信号ＡＴを入力することで、アナログ部検査処理のみを任意に実行することが可能となる。
【００５２】
次に、以上のように構成された半導体装置２において、内部回路、特にマイクロプロセッサ（デジタル回路部）４とアナログ回路部６とを検査する時の検査手順を、図５に示すフローチャートに沿って説明する。
まず最初に、Ｓ１１０では、マイクロプロセッサ４の機能を検査するファンクション検査（デジタル部検査Ａ）１１０を実行する。
【００５３】
このファンクション検査では、外部端子Ｔｍｄからモード選択信号ＭＤを入力して、ＣＰＵ１６が、ＲＯＭ１８からではなく外部端子Ｔｐｂから命令やデータを読み込むように設定し、外部端子Ｔｐｂに接続したデジタルテスタ等からＣＰＵ１６に命令を直接入力することにより行う。なお、外部端子Ｔｐｂを介して入力する命令の内容は、例えば、ＣＰＵ１６内のレジスタＡ〜Ｆを使用して各種演算を実行させ、その演算結果を外部端子Ｔｐｂを介して出力させるといったようなものであり、外部端子Ｔｐｂを介して得られる演算結果により、ＣＰＵ１６の機能が正常で有るか否かを判定するのである。
【００５４】
このようなＣＰＵ１６の検査を行った後、同様に外部端子Ｔｐｂを介してＣＰＵ１６に命令を直接入力し、今度は、ＲＡＭ２０，Ｉ／Ｏ回路２２，タイマ２４に対するデータの読み書きを、検査の終了しているＣＰＵ１６に実行させ、その結果を外部端子Ｔｐｂを介して出力させることにより、これら周辺回路２０，２２，２４の検査を行う。
【００５５】
これらの検査の結果すべて正常であれば、次のＳ１２０に進み、ＣＰＵ１６に自己検査処理を起動させる。これは、外部端子Ｔｐｂから自己検査処理プログラムが格納された先頭アドレスをプログラムカウンタに設定する命令を入力することにより行われる。上述したように自己検査処理プログラムは、制限回路３０によってＲＯＭ１８へのアクセスが制限されていない領域に格納されているので、この命令が入力されると、ＣＰＵ１６は、プログラムカウンタの設定に従って、以後、自己検査処理プログラムを順次読み出して上述の自己検査処理を実行することになる。
【００５６】
続くＳ１３０では、Ｓ１２０にて起動された自己検査処理が終了するまで待機し、自己検査処理が終了すると、Ｓ１４０にて、自己検査処理によってＣＰＵ１６内部のレジスタＣ，Ｅに格納された検査結果を外部端子Ｔｐｂを介して読み出し、その検査結果を確認することで検査を終了する。
【００５７】
以上説明したように、本実施例の半導体装置２においては、マイクロプロセッサ４に、２値レベルの検査信号ｓａを時系列的に発生させ、レベル変換された検査信号ＳＡをアナログ回路部６に入力し、所定のタイミングにおけるアナログ回路部６からの出力信号Ａｏの信号レベルが、正常範囲内にあるか否かを判定することにより、アナログ回路部６の検査を行っており、その判定結果をマイクロプロセッサ４に取り込ませるようにされている。
【００５８】
従って、本実施例の半導体装置２によれば、アナログ回路部６の検査は、マイクロプロセッサ４の制御によって、当該半導体装置２の内部だけで自動的に行うことができるので、アナログ回路部の検査を簡単に行うことができる。また、アナログテスタ等を用いて半導体装置２の外部から検査用のアナログ信号を入力したり、アナログ回路部６の出力を外部に取り出したりする必要がないので、当該半導体装置２の外部端子をほとんど増加させることがなく、しかも、ＤＡ変換器等の複雑な回路を用いていないので、アナログ回路部６の検査を行うための構成を最小限に抑えることができる。
【００５９】
また、本実施例の半導体装置２では、ＲＯＭ検査処理時のシグネチャ演算を、ＣＰＵ１６内のレジスタを用い、ＲＯＭ１８に格納されたプログラムに従って行っているので、シグネチャ演算のために特別なハードウェアを設ける必要がなく、ＲＯＭ１８（デジタル回路部）の検査を行うための構成も最小限に抑えることができる。
【００６０】
更に、本実施例の半導体装置２では、ＲＯＭ検査処理の結果、ＲＯＭ１８に異常がなかった場合にのみ、即ちアナログ部検査処理を制御するマイクロプロセッサ４に異常がないことが確認された場合にのみアナログ部検査処理を行うようにされているので、アナログ部検査処理が無駄に行われることがなく、換言すれば、アナログ部検査処理の検査結果の信頼性を向上させることができる。
【００６１】
また更に、本実施例の半導体装置２では、外部端子Ｔａｔに起動信号ＡＴを入力することにより、アナログ部検査処理のみが起動されるように構成されているので、アナログ回路部６のみを任意に検査することも可能である。
以上、本発明の一実施例について説明したが、本発明は上記実施例に限定されるものではなく、様々な態様にて実施することが可能である。
【００６２】
例えば、上記実施例では、検査信号ｓａを生成するための信号生成データは、各ビットが単位期間Ｔ毎の信号レベルに対応しており、この信号生成データをそのままの形式でＲＯＭ１８に記憶しているが、信号生成データをデータ圧縮してＲＯＭ１８に記憶し、ＲＯＭ１８から読み出して検査信号ｓａを生成する際に元のデータに伸長するように構成してもよい。この場合、信号生成データの記憶領域を削減でき、検査のための構成をより小さなものとすることができる。
【００６３】
また、上記実施例では、検査が正常に終了したか否かを示すフラグＴＦＬＡＧが設けられているが、レジスタＣ，Ｅの内容を読み出せば、検査結果がわかるので、このフラグＴＦＬＡＧは必ずしも必要ではなく、省略してもよい。
更に、上記実施例では、アナログ回路部６の自己検査を起動する起動信号ＡＴを入力するための外部端子Ｔａｔを設け、周期処理を実行するように構成したが、これら外部端子Ｔａｔ及び周期処理は省略してもよい。
【図面の簡単な説明】
【図１】実施例の半導体装置の全体構成を表すブロック図である。
【図２】マイクロプロセッサの詳細な構成を表すブロック図である。
【図３】レベル変換回路の詳細な構成を表す回路図である。
【図４】判定回路の詳細な構成を表す回路図である。
【図５】全体の検査手順を表す検査フロー図である。
【図６】マイクロプロセッサが実行する自己検査処理及び周期処理のフローチャートである。
【図７】自己検査処理のステップ２１０にて実行されるＲＯＭ自己検査処理を表すフローチャートである。
【図８】自己検査処理のステップ２３０及び周期処理のステップ２５０にて実行されるアナログ部検査処理を表すフローチャートである。
【図９】アナログ部検査処理と共に実行されるタイマ割込処理を表すフローチャートである。
【図１０】アナログ部検査処理時に生成される検査信号、及びアナログ回路部からの出力信号を表す説明図である。
【符号の説明】
２…半導体装置        ４…マイクロプロセッサ    ６…アナログ回路部
８…Ａ／Ｄ変換器    １０…レベル変換回路      １２…切替回路
１４…判定回路      １６…ＣＰＵ      １８…ＲＯＭ      ２０…ＲＡＭ
２０…ＲＡＭ        ２２…Ｉ／Ｏ回路      ２４…タイマ
２６…第１データバス        ２７…第２データバス
２８…第１アドレスバス      ２９…第２アドレスバス
３０…制限回路      ３２，３４…電圧比較器      ３６…レジスタ回路
Ｒ１〜Ｒ５…分圧抵抗      ＳＷ１，ＳＷ２…アナログスイッチ
【図１】
0003605997.tif 000002
【図２】
0003605997.tif 000003
【図３】
0003605997.tif 000004
【図４】
0003605997.tif 000005
【図５】
0003605997.tif 000006
【図６】
0003605997.tif 000007
【図７】
0003605997.tif 000008
【図８】
0003605997.tif 000009
【図９】
0003605997.tif 000010
【図１０】
0003605997.tif 000011