(57)【要約】【課題】 テスト専用端子、テスト兼用端子および対象機能ブロックを選択するデコード回路を不要とし、テストモードへの移行および機能ブロックのテストを容易に行う。【解決手段】  予めマイクロプログラムＲＯＭ部１１に設定されたテスト用の命令コードが実行されると、プログラムの実行制御がテストモードメモリエリアブロック４１に移され、テストモードメモリエリアブロック４１に書き込まれている評価用プログラムにしたがって、アクセス制御部１２およびセレクタ回路２によってテスト対象とする機能ブロック３のテストが行われる。【選択図】  図２
2006350933.tif 000002
【特許請求の範囲】
【請求項１】
ノーマルモードメモリエリアブロック内の実動作制御プログラムに基づいて、一または複数の機能ブロックの実動作を実行可能とするマイクロプロセッサにおいて、
内部動作を制御するための制御信号が、所定の内部動作を制御するテスト用の命令コードとしてマイクロプログラム化されて格納され、該命令コードに応じた制御信号を出力可能とするマイクロプログラムＲＯＭ部と、
該機能ブロックにアクセスして該機能ブロックを駆動するための制御信号を出力するアクセス制御部と、
対応する機能ブロック毎に設けられ、該マイクロプログラムＲＯＭ部および該アクセス制御部からの選択用の各制御信号に基づいて、該対応する機能ブロックにアクセス許可信号を出力することにより該対応する機能ブロックを選択してアクセス可能状態とするセレクタ回路と、
該命令コードが実行されることにより該ノーマルモードから移行するテストモード時に、該対応する機能ブロックをテストするための評価用プログラムが書き込まれるテストモードメモリエリアブロックとを有し、
該アクセス制御部は、該テストモード時に、該評価用プログラムに基づいて、該セレクタ回路で選択した機能ブロックに対してアクセスして当該機能ブロックの所定のテストを実行するマイクロプロセッサ。
【請求項２】
前記ノーマルモードメモリエリアブロックにテスト用の命令コードを書き込んでこれが実行されて、前記マイクロプログラムＲＯＭ部内のテスト用の命令コードが実行され、これをシステム構成上の制御部が認識した時点で、該制御部から前記テストモードメモリエリアブロックに、該制御部からテストモード信号が入力されて、前記アクセス制御部によるプログラムの実行制御が該ノーマルモードメモリエリアブロックから該テストモードメモリエリアブロックに移されるように制御が為される請求項１に記載のマイクロプロセッサ。
【請求項３】
前記マイクロプログラムＲＯＭ部は、前記実動作を行うノーマルモード時には、該ノーマルモードの実行に影響を与えないように、前記アクセス制御部と前記テストモードメモリエリアブロックに、該ノーマルモードを示すノーマルモード信号を前記制御信号の一部として出力する請求項１に記載のマイクロプロセッサ。
【請求項４】
前記マイクロプログラムＲＯＭ部は、前記対応する機能ブロックのテストを行うテストモード時には、前記アクセス制御部と前記テストモードメモリエリアブロックに、該テストモードを示すテスト信号を前記制御信号の一部として出力する請求項１に記載のマイクロプロセッサ。
【請求項５】
前記マイクロプログラムＲＯＭ部は、前記対応する機能ブロックのテストを行うテストモード時には、前記テストモードメモリエリアブロックに書き込まれた機能ブロックのテスト用の命令コードに対応するように、前記セレクタ回路に機能ブロック選択信号を前記選択用の制御信号として出力する請求項４に記載のマイクロプロセッサ。
【請求項６】
前記アクセス制御部は、前記マイクロプログラムＲＯＭ部からの入力テスト信号によって、該マイクロプログラムＲＯＭ部から前記セレクタ回路に機能ブロック選択信号が出力されたことが認識された場合に、前記セレクタ回路に、前記テストモード時にのみ一方レベルとなるテストブロック信号を出力すると共に、ノーマルモード時にのみ一方レベルとなるノーマルモードブロック信号を出力する請求項５に記載のマイクロプロセッサ。
【請求項７】
前記セレクタ回路は、一方の入力部に前記マイクロプログラムＲＯＭ部から前記機能ブロック選択信号が入力されると共に、他方の入力部に前記アクセス制御部から前記テストブロック信号が入力されて、該機能ブロック選択信号および該テストブロック信号が共に一方レベルのときに一方レベルのテストモード時選択信号を出力する第１ＡＮＤ回路と、一方の入力部に該マイクロプログラムＲＯＭ部からインバータ回路を介して機能ブロック選択信号が入力されると共に、他方の入力部に該アクセス制御部から前記ノーマルモードブロック信号が入力されて当該機能ブロック選択信号が他方レベルで該ノーマルモードブロック信号が一方レベルのときに一方レベルのノーマルモード時選択信号を出力する第２ＡＮＤ回路と、２つの入力部にそれぞれ両第１および第２ＡＮＤ回路からの各出力信号が入力されて該各出力信号の少なくともいずれかの信号が一方レベルのときに一方レベルの機能ブロックアクセス許可信号を出力するＯＲ回路とを有する請求項６に記載のマイクロプロセッサ。
【請求項８】
前記機能ブロックは、対応するセレクタ回路から前記一方レベルの機能ブロックアクセス許可信号が供給されたときに選択されて、前記アクセス制御部との間に接続されているアドレスバス、データバス、リード信号線およびライト信号線からの前記制御信号の一部によりアクセスされて駆動される請求項７に記載のマイクロプロセッサ。
【請求項９】
前記テストモードメモリエリアブロックは不揮発性メモリからなり、テストモードアクセス制御ブロックからアドレスバス、データバス、リード信号線およびライト信号線を介した各制御信号によって制御されて、テスト対象となる機能ブロックに対応した命令コードが書き込まれる請求項１に記載のマイクロプロセッサ。
【請求項１０】
前記テストモードメモリエリアブロックは不揮発性メモリからなり、テストモードアクセス制御ブロックからアドレスバス、データバス、リード信号線およびライト信号線を介した各制御信号によって制御されてテスト用の評価用プログラムが書き込まれる請求項１または９に記載のマイクロプロセッサ。
【請求項１１】
前記ノーマルモードメモリエリアは、ハードウェアリセット解除後に起動するように構成されており、前記テスト用の命令コードは、前記ノーマルモードメモリエリアの先頭に書き込まれるように構成されている請求項１に記載のマイクロプロセッサ。
【請求項１２】
前記アクセス制御部には、ハードウェアリセットおよびソフトウェアリセットを制御するリセット信号が入力される請求項１または１１に記載のマイクロプロセッサ。
【請求項１３】
請求項１〜１２のいずれかに記載のマイクロプロセッサを搭載して前記機能ブロックによる機能を実現可能とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば通信機能や表示機能などの各種機能を実現する機能ブロックをテスト可能なマイクロプロセッサおよび、これを搭載してこの機能ブロックによる機能を実現する電子機器に関する。
【背景技術】
【０００２】
従来より、この種のマイクロプロセッサの機能ブロックをテストするためには、テスト対象である機能ブロックをテストモードへ移行させる必要がある。このため、一般的には、マイクロプロセッサには、機能ブロックをテストモードへ移行させるためのテスト制御信号を入力するテストモード専用端子と、通常動作時の入出力端子およびテストモード時のテスト端子として兼用されるテスト兼用端子とが設けられ、さらに、機能ブロックを選択するデコード回路が設けられている。
【０００３】
このマイクロプロセッサでは、テストモード専用端子からの入力テスト制御信号によって機能ブロックをテストモードへ移行させ、テスト兼用端子の設定によって機能ブロックを選択することが可能となる。この場合、それぞれのテスト兼用端子から入力されたテスト信号をマイクロプロセッサ内部のデコード回路によりデコードして、テスト対象となる機能ブロックを選択する選択信号を作成する。このマイクロプロセッサにより、内蔵メモリに保持されたテストプログラムを実行させて、テスト対象となる機能ブロックへのテストを行う。
【０００４】
このようにして、従来のマイクロプロセッサでは、テストモードを実行させるテストプログラムを保持するメモリを内蔵し、テストモード専用端子とテスト兼用端子とを通じて外部から所定の信号を入力し、マイクロプロセッサ内のテスト対象とされる機能ブロックを選択するデコード回路を用いることによって、意図とする機能ブロックのテストが可能となる。
【０００５】
また、例えば特許文献１では、マイクロプロセッサを用いた集積回路において、テスト制御信号によりテストモードに移行させ、テスト兼用端子に相当する内部データバスなどに接続された外部バスＩ／Ｆを制御することによりテストを可能としている。
【０００６】
図３は、特許文献１に開示されている従来のマイクロプロセッサを用いた集積回路の構成例を示すブロック図である。
【０００７】
図３において、従来の集積回路１００は、外部からのリセット信号によってトリガーされて集積回路を初期状態にするリセット回路１０１と、Ｃ言語およびアセンブラ信号で記述されたテスト命令Ｔ１をコンパイルしたテスト命令Ｔ２を入力可能とする外部データバスＤ１、テスト命令Ｔ２の外部への読み出し信号Ｒ１および書き込み信号Ｗ１などの外部バスに接続され、内部アドレスバスＡ１および内部データバスＤ２などの内部バスのインターフェイスを行う外部バスＩ／Ｆ１０２と、テスト命令Ｔ２とそのテスト結果を格納する内部メモリ１０３と、内部バスを調停するアビータ１０４と、テスト制御信号ＴＣ１によって制御され、テストモード時にテスト命令Ｔ２を内部メモリ１０３に格納する動作を行うテスト回路１０５と、内部メモリ１０３に格納されたテスト命令Ｔ２を実行するマイクロプロセッサ１０６と、テスト命令Ｔ２によってテストされる周辺回路１０７とを備えている。
【０００８】
この集積回路１００では、テスト回路１０５によって外部データバスＤ１から内部メモリ１０３に格納されたテスト命令Ｔ２を、マイクロプロセッサ１０６によって実行することによって周辺回路１０７の実動作に近いテストを行うことができる。
【特許文献１】特開２００１−１０１０２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記従来の集積回路１００の機能ブロックをテストする際に、特に、入出力端子数が極端に少ない、例えばＩＣカードのようなＬＳＩの機能ブロックをテストする際には、テスト兼用端子として使用される端子が不足し、この端子不足によりテストモード移行時に、少ない端子を介しての信号のやり取りに複雑なシーケンスが必要であった。
【００１０】
また、テスト対象となる機能ブロックを選択するデコード回路および各機能ブロックをテストするための複雑なシーケンスにより、テストモードの回路規模も大きくなり、テストモードへの移行が容易ではなかった。例えば、各機能ブロックをテストするために、特定端子からシリアルデータを順次入力させた場合、内部判別回路が複雑になって回路規模が大きくなる。
【００１１】
さらに、入出力端子が極端に少ないＬＳＩに対して、ＢＩＳＴ回路を内蔵させる場合もある。これは、ＬＳＩ外部からテストモードに移行させた後で自己テストを行う手法であるが、テストモード状態による機能ブロックのテストであるため、テストモードにおいて機能ブロックのテストがパスしても、実動作による動作不良が生じる場合もある。
【００１２】
本発明は、上記従来の問題を解決するもので、テストモードに移行させるためのテスト専用端子、入出力端子およびテストモード時のテスト端子として兼用されるテスト兼用端子および対象機能ブロックを選択するデコード回路を不要とし、テストモードへの移行および所望の機能ブロックのテストをより容易に行うことができるマイクロプロセッサおよび、これを搭載してこの機能ブロックによる機能を実現とする電子機器を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のマイクロプロセッサは、ノーマルモードメモリエリアブロック内の実動作制御プログラムに基づいて、一または複数の機能ブロックの実動作を実行可能とするマイクロプロセッサにおいて、内部動作を制御するための制御信号が、所定の内部動作を制御するテスト用の命令コードとしてマイクロプログラム化されて格納され、該命令コードに応じた制御信号を出力可能とするマイクロプログラムＲＯＭ部と、該機能ブロックにアクセスして該機能ブロックを駆動するための制御信号を出力するアクセス制御部と、対応する機能ブロック毎に設けられ、該マイクロプログラムＲＯＭ部および該アクセス制御部からの選択用の各制御信号に基づいて、該対応する機能ブロックにアクセス許可信号を出力することにより該対応する機能ブロックを選択してアクセス可能状態とするセレクタ回路と、 該命令コードが実行されることにより該ノーマルモードから移行するテストモード時に、該対応する機能ブロックをテストするための評価用プログラムが書き込まれるテストモードメモリエリアブロックとを有し、該アクセス制御部は、該テストモード時に、該評価用プログラムに基づいて、該セレクタ回路で選択した機能ブロックに対してアクセスして当該機能ブロックの所定のテストを実行するものであり、そのことにより上記目的が達成される。
【００１４】
また、好ましくは、本発明のマイクロプロセッサにおいて、前記ノーマルモードメモリエリアブロックにテスト用の命令コードを書き込んでこれが実行されて、前記マイクロプログラムＲＯＭ部内のテスト用の命令コードが実行され、これをシステム構成上の制御部が認識した時点で、該制御部から前記テストモードメモリエリアブロックに、該制御部からテストモード信号が入力されて、前記アクセス制御部によるプログラムの実行制御が該ノーマルモードメモリエリアブロックから該テストモードメモリエリアブロックに移されるように制御が為される。
【００１５】
さらに、好ましくは、本発明のマイクロプロセッサにおけるマイクロプログラムＲＯＭ部は、前記実動作を行うノーマルモード時には、該ノーマルモードの実行に影響を与えないように、前記アクセス制御部と前記テストモードメモリエリアブロックに、該ノーマルモードを示すノーマルモード信号を前記制御信号の一部として出力する。
【００１６】
さらに、好ましくは、本発明のマイクロプロセッサにおけるマイクロプログラムＲＯＭ部は、前記対応する機能ブロックのテストを行うテストモード時には、前記アクセス制御部と前記テストモードメモリエリアブロックに、テストモードを示すテスト信号を前記制御信号の一部として出力する。
【００１７】
さらに、好ましくは、本発明のマイクロプロセッサにおけるマイクロプログラムＲＯＭ部は、前記対応する機能ブロックのテストを行うテストモード時には、前記テストモードメモリエリアブロックに書き込まれた機能ブロックのテスト用の命令コードに対応するように、前記セレクタ回路に機能ブロック選択信号を前記選択用の制御信号として出力する。
【００１８】
さらに、好ましくは、本発明のマイクロプロセッサにおけるアクセス制御部は、前記マイクロプログラムＲＯＭ部からの入力テスト信号によって、該マイクロプログラムＲＯＭ部から前記セレクタ回路に機能ブロック選択信号が出力されたことが認識された場合に、前記セレクタ回路に、前記テストモード時にのみ一方レベルとなるテストブロック信号を出力すると共に、ノーマルモード時にのみ一方レベルとなるノーマルモードブロック信号を出力する。
【００１９】
さらに、好ましくは、本発明のマイクロプロセッサにおけるセレクタ回路は、一方の入力部に前記マイクロプログラムＲＯＭ部から前記機能ブロック選択信号が入力されると共に、他方の入力部に前記アクセス制御部から前記テストブロック信号が入力されて、該機能ブロック選択信号および該テストブロック信号が共に一方レベルのときに一方レベルのテストモード時選択信号を出力する第１ＡＮＤ回路と、一方の入力部に該マイクロプログラムＲＯＭ部からインバータ回路を介して機能ブロック選択信号が入力されると共に、他方の入力部に該アクセス制御部から前記ノーマルモードブロック信号が入力されて当該機能ブロック選択信号が他方レベルで該ノーマルモードブロック信号が一方レベルのときに一方レベルのノーマルモード時選択信号を出力する第２ＡＮＤ回路と、２つの入力部にそれぞれ両第１および第２ＡＮＤ回路からの各出力信号が入力されて該各出力信号の少なくともいずれかの信号が一方レベルのときに一方レベルの機能ブロックアクセス許可信号を出力するＯＲ回路とを有する。
【００２０】
さらに、好ましくは、本発明のマイクロプロセッサにおける機能ブロックは、対応するセレクタ回路から前記一方レベルの機能ブロックアクセス許可信号が供給されたときに選択されて、前記アクセス制御部との間に接続されているアドレスバス、データバス、リード信号線およびライト信号線からの前記制御信号の一部によりアクセスされて駆動される。
【００２１】
さらに、好ましくは、本発明のマイクロプロセッサにおけるテストモードメモリエリアブロックは不揮発性メモリからなり、テストモードアクセス制御ブロックからアドレスバス、データバス、リード信号線およびライト信号線を介した各制御信号によって制御されて、テスト対象となる機能ブロックに対応した命令コードが書き込まれる。
【００２２】
さらに、好ましくは、本発明のマイクロプロセッサにおけるテストモードメモリエリアブロックは不揮発性メモリからなり、テストモードアクセス制御ブロックからアドレスバス、データバス、リード信号線およびライト信号線を介した各制御信号によって制御されてテスト用の評価用プログラムが書き込まれる。
【００２３】
さらに、好ましくは、本発明のマイクロプロセッサにおけるノーマルモードメモリエリアは、ハードウェアリセット解除後に起動するように構成されており、前記テスト用の命令コードは、前記ノーマルモードメモリエリアの先頭に書き込まれるように構成されている。
【００２４】
さらに、好ましくは、本発明のマイクロプロセッサにおけるアクセス制御部には、ハードウェアリセットおよびソフトウェアリセットを制御するリセット信号が入力される。
【００２５】
本発明の電子機器は、本発明の上記マイクロプロセッサを搭載して前記機能ブロックによる機能を実現可能とするものであり、そのことにより上記目的が達成される。
【００２６】
上記構成により、以下に、本発明の作用について説明する。
【００２７】
本発明のマイクロプロセッサにおいては、予めマイクロプログラムＲＯＭ部に設定されたテスト用の命令コードが実行されると、所望の機能ブロックのテストを行うために、プログラムの実行制御がノーマルモードメモリエリアブロックからテストモードメモリエリアブロックに移される。
【００２８】
テストモードメモリエリアブロックに、テスト対象とする機能ブロックのテスト命令コードおよび評価用プログラムが書き込まれ、その書き込まれた評価用プログラムにしたがって、セレクタ回路およびアクセス制御部によってテスト対象とする機能ブロックが選択されてテストが行われる。
【００２９】
このように、予め設定されたテスト用命令コードが実行されたときにプログラムの実行制御がテストモード側に移されることにより、テストモードに移行するための従来のテスト専用端子が不要となる。また、評価用プログラムにしたがってテストが行われるため、従来のテスト兼用端子が不要となる。さらに、セレクタ回路を介して所望の機能ブロックが選択されるため、機能ブロックを選択する従来のデコード回路が不要となる。
【００３０】
さらに、ＬＳＩ本来の実動作により近い状態で、所望の機能ブロックをテストして評価することができて、マイクロプロセッサが搭載されたデバイス（電子機器）の出荷品質の向上を図ることができる。
【発明の効果】
【００３１】
以上により、本発明によれば、マイクロプログラムを有するマイクロプロセッサの機能ブロックをテストする際に、従来の入出力端子をテスト端子として兼用するテスト兼用端子が不要となるため、従来のマイクロプロセッサにおいてテストモードにより機能ブロックをテストする際に、特に端子数が限られたＬＳＩ仕様において課題となっているテスト端子数不足を解消することができる。また、このテスト端子不足により機能ブロックをテストするために、限られたテスト兼用端子から入力される複雑なタイミング信号を作成することも不要となり、さらに、複雑化するテストシーケンスによるテストモードの回路規模の増大も防ぐことができる。
【００３２】
さらに、マイクロプロセッサに内蔵されたアクセス制御部により、機能ブロックをテストするための信号を生成することができるため、外部からテスト兼用端子を経由して信号を入力させるテストと比較して、本来のＬＳＩの実動作により近い状態で機能ブロックを評価することが可能となる。したがって、テストモードでテストした場合に回路は動作するが、実動作では動作不良となるというような問題も解消され、ＬＳＩ開発過程において行われる、機能ブロックの検証シュミレーションによるＬＳＩ内部での実動作を想定した検証も可能となり、不揮発性メモリによるテストプログラム実行のためにテストを容易に実施することができる。
【発明を実施するための最良の形態】
【００３３】
以下に、本発明のマイクロプロセッサの実施形態について、図面を参照しながら説明する。
【００３４】
図１は、本発明の実施形態に係るマイクロプロセッサの全体構成例を概略的に示すブロック図であり、図２は、図１のマイクロプロセッサの要部構成例を詳細に示すブロック図である。
【００３５】
図１において、マイクロプロセッサ１０は、各部を制御する制御部としてのＣＰＵ（中央演算処理装置）１と、一または複数の機能ブロック３と、所定の機能ブロック３にアクセス許可信号を出力可能とするセレクタ回路２と、テスト対象となる機能ブロック３に対して所定のテストをするためのテスト制御プログラムとして評価用プログラムおよび命令コードが格納されたテストモードアクセス制御部４と、マイクロプロセッサ１０を実動作させるための制御プログラムおよびそのデータが格納されたプログラムメモリ５とを備えている。
【００３６】
このＣＰＵ１と機能ブロック３との間には、機能ブロック３をアクセスするための制御信号群を入力する制御線１３、データバス１４およびアドレスバス１５が接続されている。これらのデータバス１４およびアドレスバス１５はテストモードアクセス制御部４とプログラムメモリ５にも接続されている。また、ＣＰＵ１には、セレクタ回路２との間に、ＣＰＵ１からセレクタ回路２を駆動するためのセレクタ回路制御信号群を入力する制御線１６が接続されている。さらに、ＣＰＵ１はテストモードアクセス制御部４との間に、制御信号群を入力する制御線１７が接続されている。
【００３７】
ＣＰＵ１には、図２に示すように、マイクロプログラムＲＯＭ１１とアクセス制御部１２が設けられいる。
【００３８】
マイクロプログラムＲＯＭ１１（マイクロプログラムＲＯＭ部１１）は、マイクロプロセッサ１０内部の動作を制御するための制御信号が、意図する内部動作を制御する命令コードとしてマイクロプログラム化されて格納されており、複雑な制御を比較的容易に実現するために使用される。このマイクロプログラムＲＯＭ１１では、マイクロプロセッサ１０内部の動作制御を与える命令コードにより解釈し、その命令コードに応じて様々な制御信号を必要なタイミング時に出力させるようになっている。これらの様々な制御信号により、マイクロプロセッサ１０の内部動作が制御される。一般的には、基本となるクロック信号に応じたタイミングで順番に制御信号が出力されていくようになっている。
【００３９】
このマイクロプログラムＲＯＭ部１１は、アクセス制御部１２およびテストモードメモリエリアブロック４１との間に、テストモード動作時を示すテスト信号用のテスト信号線１７ａと、ノーマルモード動作時を示すノーマル（Ｎｏｒｍａｌ）信号用のＮｏｒｍａｌ信号線１７ｂとが接続されている。また、マイクロプログラムＲＯＭ部１１は、セレクタ回路２との間に、セレクタ回路２を駆動するためのセレクタ回路制御信号群を入力する制御線１６として、機能ブロック選択信号用の機能ブロック選択信号線１６ａが接続されている。
【００４０】
アクセス制御部１２は、マイクロプログラムＲＯＭ部１１からの制御信号（テスト信号やＮｏｒｍａｌ信号）が入力されて、セレクタ回路２を選択制御するための制御信号（ＮＭＯＤＥＢ１信号およびＴＢＬＯＣＫ１信号）を出力すると共に、所定の機能ブロック３にアクセスして駆動するための制御信号（リード信号、ライト信号、データおよびアドレス）を出力する制御回路である。
【００４１】
このアクセス制御部１２は、機能ブロック３との間に、前述した制御線１３として、リード信号用のリード信号線１３ａとライト信号用のライト信号線１３ｂ、さらに前述したデータバス１４およびアドレスバス１５が接続されている。また、アクセス制御部１２は、セレクタ回路２との間に、セレクタ回路２を選択駆動するためのセレクタ回路制御信号群用の制御線１６として、ノーマルモード動作時を示すノーマルモードブロック（ＮＭＯＤＥＢ）１信号用のＮＭＯＤＥＢ１信号線１６ｂと、テストモード動作時を示すテストブロック（ＴＢＬＯＣＫ１）信号用のＴＢＬＯＣＫ１信号線１６ｃとが接続されている。さらに、アクセス制御部１２には、ハードウェアリセット信号およびソフトウェアリセット信号を制御するリセット（ＲＥＳＥＴ）信号用のＲＥＳＥＴ信号線１８が接続されている。このＲＥＳＥＴ信号は、アクセス制御部１２を初期状態または特定の機能ブロックのみアクセス不可に制御するために用いられる。
【００４２】
セレクタ回路２は、機能ブロック３との間に、機能ブロック３をアクセス可能とするための機能ブロックアクセス許可信号用の信号線１９が接続されている。
【００４３】
また、セレクタ回路２は、機能ブロック３毎に設けられ、マイクロプログラムＲＯＭ部１１の機能ブロック選択信号とアクセス制御部１２のＮＭＯＤＥＢ１信号およびＴＢＬＯＣＫ１信号とに基づいて、このアクセス許可信号を生成して、対応する機能ブロック３を選択してアクセス可能状態とすることにより、個々の機能ブロック３に対してノーマルモード動作（実動作）およびテストモード動作のいずれかを実現させるための選択回路である。
【００４４】
このセレクタ回路２は、一方の入力部にマイクロプログラムＲＯＭ部１１から機能ブロック選択信号が機能ブロック選択信号線１６ａを介して入力されると共に、他方の入力部にアクセス制御部１２からテストブロック（ＴＢＬＯＣＫ）信号がＴＢＬＯＣＫ信号線１６ｃが入力されてテストモード動作時選択信号が出力されるＡＮＤ回路２１と、一方の入力部にマイクロプログラムＲＯＭ部１１からインバータ回路２２を介して機能ブロック選択信号が入力されると共に、他方の入力部にアクセス制御部１２からノーマルモード（ＮＭＯＤＥ）信号がＮＭＯＤＥＢ信号線１６ｂを介して入力されてノーマルモード動作時選択信号が出力されるＡＮＤ回路２３と、２つの入力部にそれぞれ両ＡＮＤ回路２１，２３からの出力信号が入力されて機能ブロックアクセス許可信号を機能ブロックアクセス許可信号線１９に出力するＯＲ回路２４とを有している。この機能ブロックアクセス許可信号は、所望のセレクタ回路２から、これに対応した機能ブロック３に出力される。
【００４５】
機能ブロック３は、マイクロプロセッサ１０の仕様を構成する機能ブロックの一部を示している。なお、図２において、セレクタ回路２および機能ブロック３は、マイクロプロセッサ１０内の一つの機能ブロックに対する一例を示しているが、実際には、マイクロプロッセサ１０の仕様に応じて、必要な数の機能ブロックおよびその機能ブロック毎に対応するセレクタ回路２が設けられている。
【００４６】
テストモードアクセス制御部４は、図２に示すように、テストモードメモリエリアブロック４１と、テストモードアクセス制御ブロック４２とを有している。
【００４７】
テストモードメモリエリアブロック４１は、不揮発性メモリであり、テストモード時に機能ブロック３をテストするための評価用プログラムが書き込まれる。また、テストモードメモリエリアブロック４１は、テストモード動作への移行を示すテストモード（Ｔｍｏｄｅ）信号用のＴｍｏｄｅ信号線４３が接続されている。
【００４８】
テストモードアクセス制御ブロック４２は、ｍｏｄｅ信号線４３を介したテストモード（Ｔｍｏｄｅ）信号のテストモードメモリエリアブロック４１への入力により、テストモードメモリエリアブロック４１をアクセスするための各制御信号を出力する制御回路である。
【００４９】
このテストモードアクセス制御ブロック４２は、テストモードメモリエリアブロック４１との間に、テストモードメモリエリアブロック４１をアクセスするためのアドレスバス４２１、データバス４２２、制御バス信号４２３およびライト信号線４２４が接続されている。
【００５０】
図２には示していないが、図１のプログラムメモリブロック５は、マイクロプロセッサ１０を実動作させるためのプログラムが書き込まれるノーマルモードメモリエリアであり、基本的にはユーザ作成プログラムが搭載される。
【００５１】
上記構成により、以下に、本実施形態のマイクロプロセッサ１０の動作について説明する。
【００５２】
本実施形態のマイクロプロセッサ１０は、ノーマルモード（実動作モード）または各機能ブロック３の動作をテストするためのテストモードを実行させるために、システム構成上、ハードウェアリセット解除後、通常は、ノーマルモードメモリエリア（プログラムメモリブロック５）が起動するように構成されている。ハードウェアリセットは、ＲＥＳＥＴ信号線１８を介したアクセス制御部１２へのＲＥＳＥＴ信号により制御される。
【００５３】
製造工程のテスト時（マイクロプロセッサの機能ブロックテスト時）に、このノーマルモードメモリエリア（プログラムメモリブロック５）の先頭に機能ブロック３のテストを実行させるテストモードとしての命令コードを書き込むこと（マイクロプロセッサ自体で書き込むこと）によって、テスト対象とする機能ブロック３のテストが可能となる。例えば、ノーマルモードメモリエリアの先頭に命令コードとして”ｔｅｓｔ”と記述され、この”ｔｅｓｔ”に対応するコードがマイクロプログラムＲＯＭ部１１に設定されている。
【００５４】
この命令コード”ｔｅｓｔ”が実行されると、テストモードメモリエリアブロック４１にＴｍｏｄｅ信号線４３を介してＴｍｏｄｅ信号が入力されて、プログラムの実行制御がノーマルモードメモリエリアからテストモードメモリエリアブロック４１に移される。このＴｍｏｄｅ信号は、システム構成上の図示しない制御部から命令コード”ｔｅｓｔ”が認識されたときにこれを検出して出力される。
【００５５】
まず、実動作を行うノーマルモード動作について、簡単に説明する。
【００５６】
例えば実動作モードとしてユーザに開放されているノーマルモードメモリエリア（プログラムメモリブロック５）に上述したような命令コード”ｔｅｓｔ”を記述しないことによって、テストモードメモリエリアブロック４１に制御が移行されず、ノーマルモードメモリエリアに記述されたプログラムが実行される。
【００５７】
このとき、ノーマルモード実行動作に影響を与えないように、マイクロプログラムＲＯＭ部１１からアクセス制御部１２とテストモードメモリエリアブロック４１にＮｏｒｍａｌ信号が出力される。
【００５８】
次に、所望の機能ブロック３のテストを行うテストモード動作について説明する。
【００５９】
マイクロプロセッサ１０の機能ブロック３に対するテストを可能とするためには、Ｔｍｏｄｅ信号線４３を介したテストモード（Ｔｍｏｄｅ）信号の入力時などに、テストモードメモリエリアブロック４１に、予めテスト対象となる機能ブロック３に対応した命令コードを設定する必要がある。この設定のためには、設計段階において、テスト対象となる機能ブロック３と命令コードとを一対として割り当てておく必要がある。
【００６０】
さらに、テストモードメモリエリアブロック４１には、Ｔｍｏｄｅ信号線４３を介したテストモード（Ｔｍｏｄｅ）信号の入力時に、機能ブロック３をテストするための評価用プログラムを書き込んでおく必要がある。これらのテスト用の命令コードおよび評価用プログラムの書き込みは、テストモードアクセス制御ブロック４２を介して、アドレスバス４２１、データバス４２２、ライト信号線４２３および制御バス信号線４２４を介した各制御信号によって制御されて行われる。この評価用プログラムにしたがって、アクセス制御部１２およびセレクタ回路２によって、テスト対象とする機能ブロック３のテストが行われる。
【００６１】
マイクロプログラムＲＯＭ１１からは、上述したように設計段階に割り当てられたテスト対象の機能ブロック３に対する命令コードに応じて、セレクタ回路２に機能ブロック選択信号が出力される。なお、図１および図２では、一つの機能ブロック３および一つのセレクタ回路２のみを示しているが、機能ブロック３が複数設けられている場合にはセレクタ回路２もそれぞれの機能ブロック３毎に設けられ、マイクロプログラムＲＯＭ部１１から出力される機能ブロック選択信号についても、各機能ブロック３の数に相当する信号がそれぞれのセレクタ回路２に出力されることになる。
【００６２】
機能ブロック選択信号線１６ａを介して機能ブロック選択信号が出力された後は、マイクロプログラムＲＯＭ部１１からＴｅｓｔ信号線１７ａを介してテスト（Ｔｅｓｔ）信号が出力されて、これがアクセス制御部１２およびテストモードメモリエリア４１に入力される。
【００６３】
アクセス制御部１２では、テスト（Ｔｅｓｔ）信号を受けて、テストモードメモリエリアブロック４１に、機能ブロック選択信号線１６ａを介して機能ブロック選択信号を出力させる命令コードが記述されて実行された状態が認識され、セレクタ回路２に、ＴＢＬＯＣＫ１信号線１６ｃを介したＴＢＬＯＣＫ１信号および、ＮＭＯＤＥＢ１信号線１６ｂを介したＮＭＯＤＥＢ１信号が出力される。
【００６４】
テストモード動作時には、テスト対象である機能ブロック３の機能ブロック選択信号線１６ａを介した機能ブロック選択信号は“Ｈｉｇｈ”レベルとなっており、ＴＢＬＯＣＫ１信号線１６ｃを介したＴＢＬＯＣＫ１信号も“Ｈｉｇｈ”レベルとなっている。また、ＮＭＯＤＥＢ１信号線１６ｂを介したＮＭＯＤＥＢ１信号は、ノーマルモード動作時以外は“Ｌｏｗ”レベルの信号となっている。
【００６５】
このとき、機能ブロック選択信号線１６ａを介した機能ブロック選択信号およびＴＢＬＯＣＫ１信号線１６ｃを介したＴＢＬＯＣＫ１信号が入力されるＡＮＤ回路２１の出力信号であるテストモード時選択信号は“Ｈｉｇｈ”レベルとなる。
【００６６】
一方、機能ブロック選択信号線１６ａを介した“Ｈｉｇｈ”レベルの機能ブロック選択信号は、インバータ回路２２によって反転されて”Ｌｏｗ”レベルの信号となり、アクセス制御部１２からのＮＭＯＤＥＢ１信号線１６ｂを介したＮＭＯＤＥＢ１信号は“Ｌｏｗ”レベルであるため、これらの信号が入力されるＡＮＤ回路２３の出力信号であるノーマルモード時選択信号は”Ｌｏｗ”レベルとなっている。
【００６７】
これにより、ＡＮＤ回路２１からのテストモード時選択信号と、ＡＮＤ回路２３からのノーマルモード時選択信号が入力されるＯＲ回路２４では“Ｈｉｇｈ”レベルのテストモード時選択信号が有効となり、ＯＲ回路２４から”Ｈｉｇｈ”レベルの機能ブロックアクセス許可信号が出力される。
【００６８】
この”Ｈｉｇｈ”レベルの機能ブロックアクセス許可信号は、機能ブロック３に入力され、この機能ブロックアクセス許可信号によってその機能ブロック３が選択され、その選択された機能ブロック３がアクセス可能な状態となって、この機能ブロック３に接続されているデータバス１４、アドレスバス１５、リード信号線１３ａおよびライト信号線１３ｂを介して制御信号が入力されて、所望の機能ブロック３のテストが行われる。
【００６９】
以上により、本実施形態のマイクロプロセッサ１０によれば、予めマイクロプログラムＲＯＭ部１１に設定されたテスト用の命令コードが実行されると、機能ブロックテストを行うために、プログラムの実行制御がノーマルモードメモリエリアブロックからテストモードメモリエリアブロック４１に移される。テストモードメモリエリアブロック４１には、テスト対象とする機能ブロック３のテスト命令コードおよび評価用プログラムがテストモードアクセス制御部４２を介して書き込まれており、その評価用プログラムにしたがって、セレクタ回路２およびアクセス制御部１２によってテスト対象とする機能ブロック３のテストが行われる。
【００７０】
そのテスト結果は、問題がなければテスト動作が終了することにより判明し、問題があればテスト途中でテスト動作がストップすることにより、どの機能ブロックに問題があったかを知ることができるし、また、内部メモリに一括してそのテスト結果を記憶させておき、後でそれを読み出すこともできる。この場合、内部メモリは、例えばフラグ「１」であればテストＯＫ、フラグ「０」であればテストＮＧなどとするテスト結果情報を記憶手段としてのテストモードメモリエリアブロック内のレジスタ或いはメモリに記憶させておき、このテスト結果情報保持用のレジスタ或いはメモリを図２のテストモードメモリエリアブロック４１内に設けておいてもよい。このテスト結果情報を読み出す場合には、図１に示すマイクロプロセッサ１０の制御線Ｘを介してＣＰＵ１がテストモードアクセス制御部４のテストモードアクセス制御部４２にテスト結果読み出し制御信号を出力し、これを受けて、テストモードアクセス制御部４２が制御線Ｙを介してテストモードメモリエリアブロック４１のテスト結果保持用のレジスタからテスト結果情報を読み出して、ＣＰＵ１にテスト結果情報を転送するように構成することもできる。
【００７１】
これにより、テストモードに移行させるためのテスト専用端子、従来の入出力端子をテストモード時のテスト端子として兼用させるテスト兼用端子が不要となる。さらに、テスト対象となる機能ブロック３を選択するためのデコード回路も不要になる。さらに、ＬＳＩ本来の実動作により近い状態で機能ブロック３を評価することが可能となり、マイクロプロセッサ１０が搭載されたデバイスの出荷品質の向上を図ることができる。
【００７２】
なお、上記実施形態では、特に説明しなかったが、マイクロプロセッサに搭載される機能ブロックは、この機能ブロック３のような例えば通信機能や表示機能、さらには記憶制御機能などの各種機能を実現とする電子機器を得ることができる。
【００７３】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【００７４】
本発明は、例えば通信機能や表示機能などの各種機能を実現する機能ブロックをテスト可能なマイクロプロセッサおよび、これを搭載してこの機能ブロックによる機能を実現とする電子機器の分野において、マイクロプログラムを有するマイクロプロセッサの機能ブロックをテストする際に、従来の入出力端子をテスト端子として兼用するテスト兼用端子が不要になるため、従来のマイクロプロセッサにおいてテストモードにより機能ブロックをテストする際に、特に端子数が限られたＬＳＩ仕様において課題となっているテスト端子数不足を解消することができる。また、このテスト端子不足により機能ブロックをテストするために、限られたテスト兼用端子から入力される複雑なタイミング信号を作成することも不要となり、さらに、複雑化するテストシーケンスによるテストモードの回路規模の増大も防ぐことができる。
【００７５】
さらに、マイクロプロセッサに内蔵されたアクセス制御部により、機能ブロックをテストするための信号を生成することができるため、外部からテスト兼用端子を経由して信号を入力させるテストと比較して、本来のＬＳＩの実動作により近い状態で機能ブロックを評価することが可能となる。したがって、テストモードでテストした場合に回路は動作するが、実動作では動作不良となるというような問題も解消され、ＬＳＩ開発過程において行われる、機能ブロックの検証シュミレーションによるＬＳＩ内部での実動作を想定した検証も可能となり、不揮発性メモリによるテストプログラム実行のためにテストを容易に実施することができる。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態に係るマイクロプロセッサの全体構成例を概略的に示すブロック図である。
【図２】図１のマイクロプロセッサの要部構成例を詳細に示すブロック図である。
【図３】従来のマイクロプロセッサを用いた集積回路の構成例を示すブロック図である。
【符号の説明】
【００７７】
１  ＣＰＵ
１１ マイクロプログラムＲＯＭ部
１２ アクセス制御部
１３ 制御信号線
１３ａ  リード信号線
１３ｂ  ライト信号線
１４ データバス
１５ アドレスバス
１６ セレクタ回路制御信号線
１６ａ 機能ブロック選択信号線
１６ｂ ＮＭＯＤＥＢ１信号線
１６ｃ ＴＢＬＯＣＫ１信号線
１７ 制御信号線
１７ａ Ｔｅｓｔ信号線
１７ｂ Ｎｏｒｍａｌ信号線
１８ ＲＥＳＥＴ信号線
１９ 機能ブロックアクセス許可信号線
２  セレクタ回路
２１，２３  ＡＮＤ回路
２２ インバータ回路
２４ ＯＲ回路
３  機能ブロック
４  テストモードアクセス制御
４１ テストモードメモリエリアブロック
４２ テストモードアクセス制御ブロック
４２１ アドレスバス
４２２ データバス
４２３ 制御バス信号線
４２４ ライト信号線
４３ Ｔｍｏｄｅ信号線
５  プログラムメモリ
１０ マイクロプロセッサ
【図１】
2006350933.tif 000003
【図２】
2006350933.tif 000004
【図３】
2006350933.tif 000005