(57)【要約】【課題】ユーザが任意のタイミングでテストデータを収集することが可能なテスト回路を備えた半導体集積回路を提供する。【解決手段】テスト回路９のテスト実行部２０には、通信回路８が受信してデータバッファ１９に転送されたデータのうち、「ヘッダ」，「アドレス」及び「コマンド」データが転送され、カウンタは２１、転送されたデータのうち「サイクル」データが転送されてシステムクロックに基づくカウント動作を開始する。テスト実行部２０は、「ヘッダ」により転送データが「テスト用」であることを示し且つ「コマンド」が「データ収集指示」である場合、カウンタ２１のカウント動作が完了すると「アドレス」に基づくデコード結果を収集イネーブル信号としてテスト対象回路に出力し、データバッファ１７には、収集イネーブル信号が与えられることでテスト対象回路より転送されたデータが格納される。【選択図】図１
2008210366.tif 000002
【特許請求の範囲】
【請求項１】
外部とシリアル通信するための通信回路と、この通信回路を介して受信したデータに基づいて、内部機能をテストするためのデータをテスト対象回路より収集するテスト回路とを備えてなる半導体集積回路において、
前記受信データのフレームは、少なくとも、「ヘッダ」，「アドレス」，「コマンド」，「データ」，「サイクル」，「冗長」のデータブロックで構成されており、
前記テスト回路は、
前記通信回路が受信したデータが転送されると共に、自身に格納されたデータが前記通信回路側に転送可能に構成されるデータバッファと、
このデータバッファに転送されたデータ（転送データ）のうち、前記「ヘッダ」，「アドレス」及び「コマンド」データが転送されるテスト実行部と、
前記転送データのうち、「サイクル」データが転送され、システムクロックに基づきカウント動作するカウンタとを備え、
前記カウンタは、前記「サイクル」データが転送されるとカウント動作を開始し、
前記テスト実行部は、前記「ヘッダ」により前記転送データが「テスト用」であることを示し、且つ前記「コマンド」が「データ収集指示」である場合、前記カウンタのカウント動作が完了すると、前記「アドレス」に基づくデコード結果を収集イネーブル信号としてテスト対象回路に出力し、
前記データバッファには、前記収集イネーブル信号が与えられることで前記テスト対象回路より転送されたデータが格納されることを特徴とする半導体集積回路。
【請求項２】
前記テスト実行部は、前記「コマンド」が「データ収集実行」を示す場合は、前記データバッファに格納されているデータを、前記通信回路側に転送することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記テスト実行部は、前記「コマンド」が「データ設定」を示す場合は、前記カウンタのカウント動作が完了すると、前記「アドレス」に基づくデコード結果を設定イネーブル信号としてテスト対象回路に出力すると共に、前記転送データにおける「データ」の内容を前記テスト対象回路に出力して設定することを特徴とする請求項１又は２記載の半導体集積回路。
【請求項４】
前記テスト対象回路として、前記通信回路も選択可能となるように構成されていることを特徴とする請求項１乃至３の何れかに記載の半導体集積回路。
【請求項５】
前記テスト回路のデータバッファは、ＦＩＦＯ（First In First Out）として構成されていることを特徴とする請求項１乃至４の何れかに記載の半導体集積回路。
【請求項６】
前記通信回路が外部とシリアル通信を行う場合のデータを、共通の信号線によって送受信するための通信トランシーバを備えたことを特徴とする請求項１乃至５の何れかに記載の半導体集積回路。
【請求項７】
前記通信トランシーバは、外部とシリアル通信を行う信号線が１本となるように構成されていることを特徴とする請求項６記載の半導体集積回路。
【請求項８】
前記テスト回路は、自身が搭載されている半導体集積回路の動作モードを指定するためのモード信号を出力するモード決定回路を備えていると共に、前記「ヘッダ」により前記転送データが「モード設定用」である場合は、受信データフレームにおいて前記「ヘッダ」以外の部分に配置されているモード設定用データを前記モード決定回路に出力し、
前記モード決定回路は、与えられたデータをデコードして対応するモード信号を出力することを特徴とする請求項１乃至７の何れかに記載の半導体集積回路。
【請求項９】
前記モード決定回路は、外部に接続されている他の半導体集積回路に対しても、その動作モードを指定するためのモード信号を出力するように構成されていることを特徴とする請求項８記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部とシリアル通信するための通信回路を介して受信したデータに基づき、内部機能をテストするためのデータを収集するテスト回路を備える半導体集積回路に関する。
【背景技術】
【０００２】
例えば、マイクロコンピュータなどにおいてその回路機能をテストするため、動作モードをテストモードに設定してテストプログラムを実行させることは一般に行われている。また、そのテストのためのデータを収集したり設定したりするのに、シリアル通信を使用することも特許文献１などに開示されている。
【特許文献１】特開平５−３６９０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般に、シリアル通信によって通信先よりデータを収集する場合には、通信先がデータ収集を要求するコマンドを含む通信データを受信すると、その時点で収集対象に保持されているデータを収集して返信する、という流れになっている。従って、基本的に、上記コマンドを受信した時点で、収集対象となる回路に保持されているデータしか収集することができず、様々なタイミングで発生したデータを収集できないという問題があった。
本発明は上記事情に鑑みてなされたものであり、その目的は、ユーザが任意のタイミングでテストデータを収集することが可能なテスト回路を備えた半導体集積回路を提供することにある。
【課題を解決するための手段】
【０００４】
請求項１記載の半導体集積回路によれば、テスト回路のテスト実行部には、外部より通信回路が受信してデータバッファに転送されたデータのうち、「ヘッダ」，「アドレス」及び「コマンド」データが転送され、カウンタは、前記転送データのうち「サイクル」データが転送されるとシステムクロックに基づくカウント動作を開始する。そして、テスト実行部は、「ヘッダ」により転送データが「テスト用」であることを示し且つ「コマンド」が「データ収集指示」である場合、カウンタのカウント動作が完了すると、「アドレス」に基づくデコード結果を収集イネーブル信号としてテスト対象回路に出力し、データバッファには、収集イネーブル信号が与えられることでテスト対象回路より転送されたデータが格納される。尚、「冗長」は、テストフレームの通信処理結果についてエラーチェックを行うために使用されるデータを意味する。エラーチェックの結果、異常があれば「ヘッダ」，「アドレス」，「コマンド」，「データ」，「サイクル」は、テスト回路に転送されない。
【０００５】
即ち、半導体集積回路に対して外部よりテスト用データを送信すると、その送信時からカウンタによるカウント動作が完了するまでの時間が経過した時点で、テスト対象回路が保持しているデータがデータバッファに格納される。従って、カウンタに与える「サイクル」データを適宜設定することで、テスト対象回路の様々なタイミングにおける動作状態が反映されたデータを、データバッファに格納することができる。また、テスト回路が通信回路とは独立に構成されているので、通信回路がテストは直接関係が無い内容の通信を行っている間でも、テスト回路は任意のタイミングでテストデータを取得することができる。
【０００６】
請求項２記載の半導体集積回路によれば、テスト実行部は、「コマンド」が「データ収集実行」を示す場合は、データバッファに格納されているデータを通信回路側に転送する。従って、半導体集積回路に対して外部より「データ収集実行」コマンドを与えれば、データバッファに格納されているデータを、通信回路を介して取得することができる。
【０００７】
請求項３記載の半導体集積回路によれば、テスト実行部は、「コマンド」が「データ設定」を示す場合は、カウンタのカウント動作が完了すると「アドレス」に基づくデコード結果を設定イネーブル信号としてテスト対象回路に出力し、転送データにおける「データ」の内容をテスト対象回路に出力して設定する。従って、外部からテスト対象回路にテスト用データを設定する場合も、請求項１と同様に、カウンタに与える「サイクル」データを適宜設定することで、様々なタイミングで設定を行なうことができる。
【０００８】
請求項４記載の半導体集積回路によれば、テスト対象回路として通信回路も選択可能となるように構成されるので、通信回路についても、データを取得したりデータを設定したりすることでその機能をテストすることができる。
【０００９】
請求項５記載の半導体集積回路によれば、テスト回路のデータバッファをＦＩＦＯとして構成するので、テスト対象回路より複数のデータを連続して取得したり、或いはテスト対象回路に複数のデータを連続して設定することが可能となり、テストの効率を向上させることができる。
【００１０】
請求項６記載の半導体集積回路によれば、通信回路が外部とシリアル通信を行う場合のデータを、共通の信号線によって送受信するための通信トランシーバを備えるので、双方向通信を行うための信号線を共通化して削減することができる。
【００１１】
請求項７記載の半導体集積回路によれば、通信トランシーバを、外部とシリアル通信を行う信号線が１本となるように構成するので、双方向通信を行うための信号線数を最小限にすることができる。
【００１２】
請求項８記載の半導体集積回路によれば、テスト回路は、「ヘッダ」が「モード設定用」である場合は、受信データフレームに配置されているモード設定用データをモード決定回路に出力し、モード決定回路は、与えられたデータをデコードして対応するモード信号を出力する。したがって、外部より送信されるデータにより、半導体集積回路の動作モードを設定することができる。
【００１３】
請求項９記載の半導体集積回路によれば、モード決定回路は、外部に接続されている他の半導体集積回路に対しても、その動作モードを指定するためのモード信号を出力するように構成される。すなわち、テスト回路が搭載されている半導体集積回路と、他の半導体集積回路とが同一の基板に搭載されているマルチチップ構成の場合に、モード決定回路により他の半導体集積回路の動作モードも設定することが可能となる。
【発明を実施するための最良の形態】
【００１４】
（第１実施例）
以下、本発明の第１実施例について図１乃至図３を参照して説明する。図１は、本発明をマイクロコンピュータに適用した場合の第１実施例であり、マイクロコンピュータの構成を示すものである。マイコン（半導体集積回路）１は、ＣＰＵ２を中心としてＲＯＭ３やＲＡＭ４等のメモリ、例えばタイマ５やＰＷＭ回路６などのＩ／Ｏを備えており、それらはバス７や読出し，書込みの制御信号線を介して相互に接続されている。また、マイコン１は、例えばＬＩＮ（登録商標）やＣＡＮ（登録商標）のような車内ＬＡＮ，若しくは一般的なＵＡＲＴ等のシリアル通信に対応した通信回路８を備えており、この通信回路８を介して外部とシリアル通信を行うようになっている。
【００１５】
更に、マイコン１は、テスト回路９を備えている。このテスト回路９は、通信回路８を介して受信したデータに基づいて、テスト用データの収集や設定を行うための回路である。以下、通信回路８並びにテスト回路９の内部構成について説明する。通信回路８が外部より受信端子１０を介して受信したシリアルデータは、パラレルデータに変換されて受信データバッファ１１に格納される。その受信データバッファ１１に格納されたデータは、ＣＰＵ２がトランスファゲート１２に対してイネーブル信号（読出し制御）を与えることで、読み込むことができるようになっている。
【００１６】
また、トランスファゲート１２より出力されるデータは、通信制御部１３の内部にあるマルチプレクサ（ＭＰＸ）１４，１５を介して、記憶素子１６に設定するデータとしても与えられる。ここで、記憶素子１６とは、通信回路８の機能を制御するためのコントロールレジスタやステータスレジスタなどである。マイコン１が外部に送信するデータは、送信データバッファ１７に格納され、通信制御部１３を介してシリアルデータに変換されると、送信端子１８を介して外部に送信される。
尚、データをシリアル／パラレルに相互変換する部分については図示を省略している。また、ＣＰＵ２が、通信回路８の受信データバッファ１１や送信データバッファ１７に対してアクセスを行うパスについても、煩雑になるのを避けるため図示を省略している。
【００１７】
次に、テスト回路９について説明する。テスト回路９は、データバッファ１９，テスト実行部２０，カウンタ２１，マルチプレクサ２２などを備えている。データバッファ１９は、テストデータの送受信を行なうため、通信回路８の受信データバッファ１１，送信データバッファ１７との間でデータが転送されるようになっている。
【００１８】
ここで、テストデータのフレーム（テストフレーム）は、図中に示すように、「ヘッダ」，「アドレス」，「コマンド」，「データ」，「サイクル」，「冗長」の各ブロックで構成されており、これらは夫々以下の内容を示す。
「ヘッダ」：マイコン１の通常動作時のデータ，テストデータの別を示す。
「アドレス」：データ送信先のアドレス
「コマンド」：データ設定，収集指示，収集実行などのコマンドを示す。
「データ」：送信，受信データ本体
「サイクル」：後述するように、上記コマンドの実行タイミングを指定するデータ
「冗長」：例えばパリティ，チェックサム，
ＣＲＣ（Cyclic Redundancy Check）等のチェックコード
但し、「冗長」については通信データが正常か異常か判断するために用いられ、データバッファ１９に転送されない。
【００１９】
そして、「冗長」によるエラーチェックの結果、異常がなければ、データバッファ１９に格納された受信データの内、「ヘッダ」，「アドレス」，「コマンド」はテスト実行部２０に与えられ、「サイクル」はカウンタ２１に与えられるようになっている。テスト実行部２０は、「ヘッダ」がテストデータであることを示す場合に「アドレス」のデコードを行い、カウンタ２１は、ロードされた「サイクル」データをマイコン２１のシステムクロックによりダウンカウントし、そのカウント値が「０」になるとテスト実行部２０にイネーブル信号を出力する。すると、テスト実行部２０は、「アドレス」のデコード結果が示すテスト対象回路に対し、「コマンド」の内容に応じて設定ネーブル信号又は収集選択信号を出力する。
【００２０】
つまり、本実施例では、テストフレームがデータバッファ１９に格納された後、カウンタ２１による「サイクル」データのダウンカウントが終了した時点で、テスト対象となる回路についてデータの設定や収集が行われるようになっている。
【００２１】
設定イネーブル信号は、「コマンド」の内容が「データ設定」を示す場合に、タイマ５やＰＷＭ回路６、或いは通信回路８に対してデータバッファ１９に格納された「データ」を書込んで設定するためのイネーブル信号である。尚、通信回路８に対して出力される設定ネーブル信号は、マルチプレクサ１４の選択切替信号として与えられると共に、ＯＲゲート２３を介してマルチプレクサ１５の選択切替信号としても与えられている。そして、ＯＲゲート２３の他方の入力端子には、ＣＰＵ２からの書込み制御信号が与えられている。
また、データバッファ１９に格納された「データ」の設定用バス２４は、タイマ５やＰＷＭ回路６に接続されており、通信回路８においては、マルチプレクサ１４の一方の入力端子に接続されている。
【００２２】
一方、収集選択信号は、「コマンド」の内容が「収集指示」を示す場合に、タイマ５やＰＷＭ回路６、或いは通信回路８よりデータを読み出して、データバッファ１９に格納して収集するための選択信号である。そして、タイマ５，ＰＷＭ回路６，通信回路８内部の記憶素子１６に夫々接続されている収集用バス２５，２６，２７は、テスト回路９内部のマルチプレクサ２２の入力端子に夫々接続されており、マルチプレクサ２２の出力端子は、データバッファ１９の「データ」に接続されている。
また、記憶素子１６に接続されている収集用バス２７は、トランスファゲート１２の入力端子と共に、マルチプレクサ１５の入力端子にも接続されている。このマルチプレクサ１５の入力端子を介したデータパスは、外部より記憶素子１６に対して直接データ設定を行なう場合に使用される。
【００２３】
テスト実行部２０が出力する収集選択信号は、マルチプレクサ２２に選択切替信号として与えられており、また、３入力ＯＲゲート２８の入力端子に夫々接続されており、ＯＲゲート２８の出力端子は、データバッファ１９の「データ」に対する収集イネーブル信号を与えるようになっている。
【００２４】
次に、本実施例の作用について図２及び図３も参照して説明する。図２は、マイコン１に対して、ＬＳＩテスタなどのテスト装置を通信回路８を介して接続し、機能テストを行う場合の処理手順を示すフローチャートであり、図３はその処理手順に対応したタイミングチャートの一例を示すものである。先ず、テスト装置によってマイコン１の動作モードをテストモードに設定すると（ステップＳ１）、通信回路８のコントロールレジスタ（記憶素子１６）にテスト用通信の設定（通信レートや通信手順等に関する）を行う（ステップＳ２）。
【００２５】
それから、「テスト用通信１」を行うためのテストフレームを設定する（ステップＳ３）。即ち、テスト対象とする回路や、テストの内容（データ設定／収集等）、また、上述したようにデータを設定，収集するまでの時間等に応じて、「ヘッダ」，「アドレス」，「コマンド」，「データ」，「サイクル」，「冗長」の各ブロックのデータ値を設定すると、そのテストフレームをマイコン１側に送信する。
【００２６】
すると、マイコン１側では、通信回路８を介してテスト回路９のデータバッファ１９にテストフレームが格納され、テスト対象回路（被検査回路）のテスト動作が開始される（ステップＳ４）。ここで、テスト対象回路が通信回路８である場合について説明する。テスト装置側よりテストフレームが送信されると、通信回路８は、その受信動作を開始することになる（図３（ｂ）参照）。そして、データバッファ１９にテストフレームが格納されると、その「アドレス」は、通信回路８の記憶素子１６（複数のレジスタの内、何れか１つ）を示すものとなっている。また、「コマンド」は「データ設定」であるとする。
【００２７】
そして、テストフレームの「サイクル」データはカウンタ２１にロードされて、カウンタ２１によるダウンカウント動作が開始され、そのカウント値が「０」になると、テスト実行部２０は、通信回路８に対する設定イネーブル信号をアクティブにする。すると、テストフレームの「データ」は、設定用バス２４よりマルチプレクサ１４及び１５を介して記憶素子１６に書き込まれ、設定される（ステップＳ５）。
【００２８】
即ち、通信回路８は、テストフレームを受信した時点から通信動作を開始するが、その動作中にカウンタ２１のカウント値が「０」になれば、テストフレームの「データ」は、通信動作中に記憶素子１６に書き込まれることになる。従って、通信回路８が受信処理中であるとすれば、その処理結果に応じて「正常受信」や「エラー」等のステータスが決定されるが、その動作中に記憶素子１６に「データ」が設定されたことに対して、通信回路８が適切に対処したか否かをテストすることが可能となる。
【００２９】
通信回路８について行うテストの一例としては、例えば、通信実行中において、１ビットの通信時間を変更したり、通信データ長を１６ビットから８ビットに変更したりするなど、通常の動作としては行なわれることはないと想定されるイレギュラーな動作を行なわせたりする。そして、イレギュラーな動作を実行させた結果が、「冗長」部分に正しく反映されるかどうかについても確認を行う。
尚、「コマンド」が「データ収集」である場合は、通信回路８の送信処理中にステップＳ５においてカウンタ２１のカウント値が「０」になると、テスト実行部１０が収集イネーブル信号を出力することで、記憶素子１６に保持されているデータが、収集用バス２７，マルチプレクサ２２を介してデータバッファ１９に転送される。
【００３０】
続くステップＳ６は、「テスト用通信１」において送信された「コマンド」が「データ収集」である場合にだけ実行される。即ち、上記のようにしてデータバッファ１９に転送され保持されている「データ」を、テスト装置が通信回路８を介して収集する。その場合、テストフレームにおける「アドレス」及び「サイクル」は指示する必要がないので、「ダミー」データをセットする。そして、上記テストフレームが受信されると、データバッファ１９の内容は通信回路８の送信データバッファ１７に転送され、送信端子（ＴＸ）１８を介してテスト装置に送信される（図３（ｃ）参照）。
【００３１】
以上のように本実施例によれば、マイコン１の内部において、テスト回路９のテスト実行部２０には、通信回路８が受信してデータバッファ１９に転送されたデータのうち、「ヘッダ」，「アドレス」及び「コマンド」データが転送され、カウンタ２１には、転送されたデータのうち「サイクル」データがセットされてシステムクロックに基づくカウント動作を開始する。
【００３２】
そして、テスト実行部２０は、「ヘッダ」により転送データが「テスト用」であることを示し且つ「コマンド」が「データ収集指示」である場合、カウンタ２１のカウント動作が完了すると、「アドレス」に基づくデコード結果を収集イネーブル信号としてテスト対象回路に出力し、送信データバッファ１７には、収集イネーブル信号が与えられることでテスト対象回路より転送されたデータが格納される。従って、カウンタ２１に与える「サイクル」データを適宜設定することで、テスト対象回路の様々なタイミングにおける動作状態を反映したデータを、送信データバッファ１７に格納することができる。
【００３３】
また、テスト実行部２０は、「コマンド」が「データ収集実行」を示す場合は、送信データバッファ１７に格納されているデータを通信回路８側に転送するので、テスト装置は、前記データを、通信回路８を介して取得することができる。更に、テスト実行部２０は、「コマンド」が「データ設定」を示す場合は、カウンタ２１のカウント動作が完了すると「アドレス」に基づくデコード結果を設定イネーブル信号としてテスト対象回路に出力し、転送データにおける「データ」の内容をテスト対象回路に出力して設定するので、カウンタ２１に与える「サイクル」データを適宜設定すれば、様々なタイミングで設定を行なうことができる。
【００３４】
そして、テスト対象回路に通信回路８も選択可能としたので、通信回路８についても、データを取得したりデータを設定したりすることでその機能をテストすることができる。加えて、テスト回路９が通信回路８とは独立に構成されているので、通信回路８がテストは直接関係が無い内容の通信を行っている間でも、テスト回路９は、任意のタイミングでテストデータを取得することができる。
【００３５】
（第２実施例）
図４及び図５は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第２実施例のマイコン（半導体集積回路）３１では、テスト回路９が備えていたデータバッファ１７に替えて、ＦＩＦＯ（データバッファ）３２を備えてなるテスト回路３３が配置されている。その他の構成については、第１実施例と同様である。
【００３６】
次に、第２実施例の作用について図５も参照して説明する。第２実施例では、ＦＩＦＯ３２を備えたことで、図２のステップＳ３における通信で、テストフレームを連続して複数送信し、順次ＦＩＦＯ３２に格納することができる。そして、ＦＩＦＯ３２に格納されたテストフレームは、最初にフレームＡの「コマンド」及び「サイクル」がテスト実行部２０及びカウンタ２１に転送されて、フレームＡの「サイクル」データのカウントが終了すると、記憶素子１６に「データ」が設定される。
【００３７】
この時、カウンタ２１におけるカウント動作が終了した時点で、ＦＩＦＯ３２に対する次のフレームＢの転送要求が出力されて、フレームＢの「コマンド」及び「サイクル」がテスト実行部２０及びカウンタ２１に転送される。即ち、両者の間でハンドシェイク処理が行われるように構成されている。そして、フレームＢが転送された時点から、当該フレームＢの「サイクル」データのカウントが終了すると、記憶素子１６に次の「データ」が設定される。続くフレームＣについても、同様に実行される。
【００３８】
一方、「コマンド」が「データ収集指示」である場合は、フレームＡ，Ｂ，Ｃを上記と同様に順次実行することで、記憶素子１６より収集された「データ」は、ＦＩＦＯ３２の空きが生じた領域に順次転送される。そして、テスト通信２により「データ収集実行」が送信されると（ステップＳ６）、ＦＩＦＯ３２に格納されているフレームＡ，Ｂ，Ｃがテスト装置に順次送信される。
【００３９】
以上のように第２実施例によれば、テスト回路３３のデータバッファをＦＩＦＯ３２として構成したので、テスト対象回路より複数のデータを連続して取得したり、或いはテスト対象回路に複数のデータを連続して設定することが可能となり、テストの効率を向上させることができる。
【００４０】
（第３実施例）
図６は本発明の第３実施例を示すものであり、第１実施例と異なる部分のみ説明する。第３実施例は、本発明を、ＣＰＵを備えていないカスタムロジック回路（半導体集積回路）４１に適用した場合である。ロジック回路（半導体集積回路）４１が備える回路部４２，４３は、例えば、シーケンサ，或いはステートマシンやレジスタ等を含むゲートアレイなどであり、第１実施例のタイマ５，ＰＷＭ回路６に置き換わるように配置されている。また、通信回路８の制御は、回路部４２の内部ロジックによって行われる。そして、回路部４２，４３の内部レジスタに対しては、テスト回路９を介して第１実施例と同様に「データ」の設定/収集が行われる。
【００４１】
以上のように構成される第３実施例によれば、カスタムロジック回路４１に本発明を
適用するので、ＣＰＵが搭載されておらず、テスト用のインストラクションをＣＰＵに与えてテストを行うことができない回路についても、通信回路８及びテスト回路９を介してテストを様々なパターンで行なうことが可能となる。
【００４２】
（第４実施例）
図７及び図８は本発明の第４実施例を示すものであり、第１実施例と異なる部分のみ説明する。第４実施例のマイコン（半導体集積回路）５１は、通信回路８と外部との間に通信トランシーバ５２を備えている。通信トランシーバ５２は、通信回路８と外部との間で行う双方向通信を、共通の信号線（通信バス）によって行うもので、外部のバスとは送受信端子５３を介して接続され、通信回路８との間は受信信号線ＲＸと送信信号線ＴＸとで接続されている。この場合、送受信端子５３に接続されている通信バスは、１本の信号線のみとなっている。
【００４３】
図８は、通信トランシーバ５２の具体構成例を示すものである。電源とグランドとの間には、抵抗素子５４及びＮチャネルＭＯＳＦＥＴ５５の直列回路と、抵抗素子５６及び５７の直列回路とが接続されており、これらの直列回路の共通接続点は、送受信端子５３を介して外部のバスに接続されている。ＦＥＴ５５のゲートには、通信回路８より送信信号ＴＸ（負論理）が与えられるようになっている。
【００４４】
また、抵抗素子５６及び５７の共通接続点は、コンパレータ５８の非反転入力端子に接続されており、コンパレータ５８の反転入力端子には、受信信号レベル比較用の基準電圧５９が与えられている。そして、コンパレータ５８の出力端子は、通信回路８に対して受信信号ＲＸを与えるようになっている。
【００４５】
すなわち、外部より送信されてマイコン５１が受信する信号の電圧は、抵抗素子５６及び５７により分圧されてコンパレータ５８により基準電圧５９と比較され、その比較結果が受信信号ＲＸとして通信回路８に出力される。一方、通信回路８が外部に送信しようとする信号ＴＸはＦＥＴ５５のゲート信号として与えられ、信号ＴＸがロウレベルであればＦＥＴ５５がＯＦＦして通信バスのレベルはハイ（電源電圧レベル）となり、信号ＴＸがハイレベルであればＦＥＴ５５がＯＮして通信バスのレベルはロウ（グランドレベル）にドライブされる。
【００４６】
以上のように第４実施例によれば、通信回路８が外部とシリアル通信を行う場合のデータを、共通の信号線によって送受信するための通信トランシーバ５２を備えるので、マイコン１が双方向通信を行うための信号線を削減することができる。そして、通信トランシーバ５２を、外部とシリアル通信を行う信号線が１本となる構成とするので、信号線数を最小限にすることができる。
【００４７】
（第５実施例）
図９乃至図１１は本発明の第５実施例を示すものであり、第１実施例と異なる部分のみ説明する。第５実施例のマイコン（半導体集積回路）６１は、テスト回路９に替わるテスト回路６２を備えているが、そのテスト回路６２はモード決定回路６３を備えている。尚、テスト回路６２は、第１実施例のテスト回路９が有している機能は同様に備えているが、煩雑になるのを避けるため、第５実施例において追加されている機能部分だけを図示している。
【００４８】
モード決定回路６３は、データバッファ１９に接続されており、受信データフレームの「ヘッダ」と「モード」とを参照するようになっている。この場合、「ヘッダ」は、第１実施例で示した「通常」，「テスト」以外に「モード設定」があり、「ヘッダ」が「モード設定」である場合は、受信データフレームにおけるその他の部分（例えば「アドレス」，「コマンド」，「データ」等の何れか）に配置されるものが「モード（設定用のデータ）」となる。
【００４９】
そして、モード決定回路６３は、「ヘッダ」が「モード設定」を示す場合は「モード」データを取り込み、取り込んだデータをデコードして各種モード信号を出力する。モード信号としては、例えばマイコン６１の通常の動作モードに対応する「シングル」やテスト回路６２を用いるテストモードに対応する「テスト」、ＩＣＥ（In Circuit Emulator）を使用するデバッグモードに対応する「ＩＣＥ」などがある。
また、「マルチテスト」は、マイコン６１がその他の周辺回路のチップと同一の基板上に搭載されているマルチチップ構成である場合に、マイコン６１をテストするために他のチップの状態も制御するモードに対応する。したがって、「テスト」と「マルチテスト」とが同時にアクティブとなる設定であっても良い。
【００５０】
図１０は、上記マルチチップ構成の場合に、マイコン６１と他の周辺回路である周辺ＩＣ６４との間でテストを行う場合の一例を示すものである。周辺ＩＣ６４は、例えばドライバであり、マイコン６１と外部との間で入出力される信号のレベルを変換したり、外部バスや負荷などをドライブするのに必要なソース電流を供給したりシンク電流を吸い込むために配置される。
【００５１】
そして、図１１は、図１０に対応した従来構成例を示す。周辺ＩＣ６４の出力端子６５がマイコン６１の入出力端子６６に接続されている場合、マイコン６１側の入出力端子６６をテストするため、周辺ＩＣ６４の出力端子６５をハイインピーダンス状態に設定したい場合がある。その時、図１１に示す従来の場合は、周辺ＩＣ６４’側をテストモードに設定するため、外部端子としてテストモード端子６７を設け、そのテストモード端子６７のレベルを外部で設定することにより、出力端子６５に対応するスリーステートバッファ６８をハイインピーダンス状態にする必要があった。
【００５２】
これに対して、第５実施例の構成では、マイコン６１のモード決定回路６３が、チップ間配線６９を介して周辺ＩＣ６４にテストモードを指示する信号（図９に示す「マルチテスト」）を与えて、スリーステートバッファ６８をハイインピーダンス状態に設定することが可能となり、テストモード端子６７が不要となる。
【００５３】
以上のように第５実施例によれば、テスト回路６２は、受信データの「ヘッダ」が「モード設定」である場合は、受信データフレームに配置されているモード設定用の「データ」をモード決定回路６３に出力し、モード決定回路６３は、与えられたデータをデコードして対応するモード信号を出力する。したがって、外部より送信されるデータにより、マイコン６１の動作モードを設定することができる。
また、モード決定回路６２は、マイコン６１の外部に接続されている周辺ＩＣ６４に対しても、その動作モードを指定するためのモード信号を出力するので、マルチチップ構成の場合に、周辺ＩＣ６４の動作モードも設定することが可能となる。
【００５４】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
第１，第２実施例において、タイマ５やＰＷＭ回路６に対して、記憶素子１６と同様にテストを行っても良い。
第３実施例の構成に、第２実施例のＦＩＦＯ３２を適用しても良い。
通信回路８をテスト対象回路とするのは、必要に応じて行えば良い。
テスト回路は、少なくとも「データ収集」のみを行うように構成しても良い。
テスト対象回路は、タイマ５，ＰＷＭ回路６，通信回路８に限ることなく、その他、例えばフリーランカウンタなど、個別の半導体集積回路に要求される機能に応じて搭載される回路を、適宜テスト対象にすれば良い。
【００５５】
第４実施例と第５実施例とを組み合わせて実施しても良い。
通信トランシーバの構成は、図８に示すものに限ることはない。また、通信トランシーバが外部とシリアル通信を行うための信号線数は、２本以上であっても良い。
第５実施例において、他の回路について設定する動作モードは、その他例えば、出力信号レベルをハイ，ロウの何れかに設定したり、定電流回路を内蔵している場合に、その電流出力を停止させたり、クロック周波数を変化させたり、クロック出力を停止させるものでも良い。
マイコン６１の周辺回路が２つ以上あるマルチチップ構成に適用しても良い。
その他の回路がＣＰＵやマイコンであっても良い。
また、第５実施例において、マルチチップ構成でない場合、モード決定回路６３は、マイコン６１の内部に対してのみモード信号を出力すれば良い。
【図面の簡単な説明】
【００５６】
【図１】本発明の第１実施例であり、マイクロコンピュータの構成を示す機能ブロック図
【図２】マイコンについて機能テストを行う場合の処理手順を示すフローチャート
【図３】図２の処理手順に対応したタイミングチャートの一例を示す図
【図４】本発明の第２実施例を示す図１相当図
【図５】図３相当図
【図６】本発明の第３実施例であり、カスタムロジック回路の構成を示す機能ブロック図
【図７】本発明の第４実施例を示す図１相当図
【図８】通信トランシーバの具体構成例を示す図
【図９】本発明の第５実施例を示す図１相当図
【図１０】マルチチップ構成の場合に、マイコンと他の周辺回路との間でテストを行う場合の一例を示す図
【図１１】図１０に対応した従来構成を示す図
【符号の説明】
【００５７】
図面中、１はマイクロコンピュータ（半導体集積回路）、５はタイマ（テスト対象回路）、６はＰＷＭ回路（テスト対象回路）、８は通信回路（テスト対象回路）、９はテスト回路、１６は記憶素子（テスト対象回路）、１９はデータバッファ、２０はテスト実行部、２１はカウンタ、３１はマイクロコンピュータ（半導体集積回路）、３２はＦＩＦＯ（データバッファ）、４１はカスタムロジック回路（半導体集積回路）、４２，４３は回路部（テスト対象回路）、５１はマイクロコンピュータ（半導体集積回路）、５２は通信トランシーバ、６１はマイクロコンピュータ（半導体集積回路）、６２はテスト回路、６３はモード決定回路、６４は周辺ＩＣ（半導体集積回路）を示す。
【図１】
2008210366.tif 000003
【図２】
2008210366.tif 000004
【図３】
2008210366.tif 000005
【図４】
2008210366.tif 000006
【図５】
2008210366.tif 000007
【図６】
2008210366.tif 000008
【図７】
2008210366.tif 000009
【図８】
2008210366.tif 000010
【図９】
2008210366.tif 000011
【図１０】
2008210366.tif 000012
【図１１】
2008210366.tif 000013