(57)【特許請求の範囲】
【請求項１】
第１周波数で動作し、デバッギングルーチン時、デバッギング状態を示す第１信号を発生する第１プロセッサと、
前記第１周波数と異なる第２周波数で動作する第２プロセッサと、
前記第１プロセッサから前記第１周波数に同期して前記第１信号が入力され、前記第２プロセッサもデバッギング状態になるように、前記第２周波数に同期した第２信号を発生するトリガ回路と、
前記第１および第２プロセッサがデバッギング状態であるとき、前記第１および第２プロセッサに共通のＪＴＡＧ端子からテストデータが入力されてＪＴＡＧに基づいて前記第１および第２プロセッサを直列にバウンダリスキャンして、その結果として前記ＪＴＡＧ端子にテストデータを出力するＪＴＡＧ回路とを含み、
前記第１および第２プロセッサは、共通のデバッガを使用することを特徴とするコ−デバッギング機能を支援する半導体集積回路。
【請求項２】
前記第１プロセッサはＣＰＵであり、前記第２プロセッサはＤＳＰであることを特徴とする請求項１に記載のコ−デバッギングを支援する半導体集積回路。
【請求項３】
前記第１プロセッサは第１ＣＵＰであり、前記第２プロセッサは前記第１プロセッサと異なる第２ＣＰＵであることを特徴とする請求項１に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項４】
前記第２プロセッサはデバッギングルーチン時、デバッギング状態を示す第３信号を発生し、
前記トリガ回路は前記第２プロセッサから前記第２周波数に同期して前記第３信号が入力され、前記第１プロセッサもデバッギング状態になるように前記第１周波数に同期した第４信号を発生することを特徴とする請求項３に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項５】
前記トリガ回路は、
前記第１信号が入力されて前記第２信号を出力する第１同期回路と、
前記第３信号が入力されて前記第４信号を出力する第２同期回路と、
前記第１および第２同期回路の動作を制御するステートマシンとを含むことを特徴とする請求項４に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項６】
前記ステートマシンは、前記第１プロセッサがデバッギング状態にあるとき、前記第４信号の発生を遮断するように前記第２同期回路を制御することを特徴とする請求項５に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項７】
前記第１同期回路は、
前記第１信号が入力され、第１クロック信号に同期して出力する第１フリップフロップと、
前記第１フリップフロップの出力が入力される第１インバータと、
前記第１信号および前記第１インバータの出力が入力され、第１パルス信号を発生する第１論理ゲートと、
電源電圧が入力され、第２クロック信号に同期して第２パルス信号を発生し、前記第１パルス信号によってリセットされる第１フリップフロップシリーズと、
前記第１フリップフロップシリーズの出力が入力される第２インバータと、
前記第２インバータの出力が入力され、前記第２クロック信号に同期して第３パルス信号を発生する第２フリップフロップシリーズと、
前記第３パルス信号が入力され、前記第２クロック信号に同期して第４パルス信号を発生する第２フリップフロップと、
前記第４パルス信号が入力される第３インバータと、
前記第３パルス信号および前記第３インバータの出力が入力され、前記第１プロセッサがデバッギング状態であるか否かを示す第１制御信号を前記ステートマシンに出力する第２論理ゲートと、
前記第３パルス信号と前記ステートマシンから出力され前記第２プロセッサがデバッギング状態であるか否かを示す第２制御信号とが入力され、前記第２制御信号の論理値に応じて前記第２信号を発生する第３論理ゲートとを含み、
前記第２フリップフロップシリーズおよび前記第２フリップフロップは同一のリセット信号が入力され、
前記第２制御信号は、前記第２プロセッサが既にデバッギング状態にあるときに重複してデバッギング状態になることを防止するための信号であることを特徴とする請求項６に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項８】
前記第２同期回路は、
前記第３信号が入力され、第１クロック信号に同期されて出力する第１フリップフロップと、
前記第１フリップフロップの出力が入力される第１インバータと、
前記第３信号および前記第１インバータの出力が入力され、第１パルス信号を発生する第１論理ゲートと、
電源電圧が入力され、第２クロック信号に同期して第２パルス信号を発生し、前記第１パルス信号によってリセットされる第１フリップフロップシリーズと、
前記第１フリップフロップシリーズの出力が入力される第２インバータと、
前記第２インバータの出力が入力され、前記第２クロック信号に同期して第３パルス信号を発生する第２フリップフロップシリーズと、
前記第３パルス信号が入力され、前記第２クロック信号に同期して第４パルス信号を発生する第２フリップフロップと、
前記第４パルス信号が入力される第３インバータと、
前記第３パルス信号および前記第３インバータの出力が入力され、前記第２プロセッサがデバッギング状態であるか否かを示す第１制御信号を前記ステートマシンに出力する第２論理ゲートと、
前記第３パルス信号と前記ステートマシンから出力され前記第１プロセッサがデバッギング状態であるか否かを示す第２制御信号とが入力され、前記第２制御信号の論理値に応じて前記第４信号を発生する第３論理ゲートとを含み、
前記第２フリップフロップシリーズおよび前記第２フリップフロップは同一のリセット信号が入力され、
前記第２制御信号は、前記第１プロセッサが既にデバッギング状態にあるときに重複してデバッギング状態になることを防止するための信号であることを特徴とする請求項６に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項９】
前記ＪＴＡＧ回路は、
バウンダリスキャン動作を制御するＴＡＰコントローラと、
直列に連結されたバウンダリスキャンセルとを含むことを特徴とする請求項１に記載のコ−デバッギング機能を支援する半導体集積回路。
【請求項１０】
デバッギングプログラムに従ってデバッギングを実行させるデバッグホストと、
前記デバッグホストから入力される信号をＪＴＡＧインターフェース信号に換えるホストインターフェースと、
前記ホストインターフェースからＪＴＡＧインターフェース信号を受け入れてコ−デバッギング動作を実行する半導体集積回路とを含み、
前記ＪＴＡＧインターフェース信号は前記半導体集積回路がコ−デバッギング動作を実行するようにし、
前記半導体集積回路は、
第１周波数で動作し、デバッギングルーチン時、デバッギング状態を示す第１信号を発生する第１プロセッサと、
前記第１周波数と異なる第２周波数で動作する第２プロセッサと、
前記第１プロセッサから前記第１周波数に同期して前記第１信号が入力され、前記第２プロセッサもデバッギング状態になるように前記第２周波数に同期した第２信号を発生するトリガ回路と、
前記第１および第２プロセッサがデバッギング状態であるとき、前記第１および第２プロセッサに共通のＪＴＡＧ端子からテストデータが入力されてＪＴＡＧに基づいて前記第１および第２プロセッサを直列にバウンダリスキャンし、その結果として前記ＪＴＡＧ端子にテストデータを出力するＪＴＡＧ回路とを含み、
前記デバッグホストは、前記第１および第２プロセッサに共通に使用されることを特徴とする半導体集積回路テストシステム。
【請求項１１】
前記第１プロセッサはＣＰＵであり、前記第２プロセッサはＤＳＰであることを特徴とする請求項１０に記載の半導体集積回路テストシステム。
【請求項１２】
前記第１プロセッサは第１ＣＰＵであり、前記第２プロセッサは前記第１プロセッサと異なる第２ＣＰＵであることを特徴とする請求項１０に記載の半導体集積回路テストシステム。
【請求項１３】
前記第２プロセッサはデバッギングルーチン時、デバッギング状態を示す第３信号を発生し、
前記トリガ回路は前記第２プロセッサから前記第２周波数に同期して前記第３信号が入力されて、前記第１プロセッサもデバッギング状態になるように前記第１周波数に同期した第４信号を発生することを特徴とする請求項１２に記載の半導体集積回路テストシステム。
【請求項１４】
前記トリガ回路は、
前記第１信号が入力されて、前記第２信号を出力する第１同期回路と、
前記第３信号が入力されて前記第４信号を出力する第２同期回路と、
前記第１および第２同期回路の動作を制御するステートマシンとを含むことを特徴とする請求項１３に記載の半導体集積回路テストシステム。
【請求項１５】
前記ステートマシンは、前記第１プロセッサがデバッギング状態にあるとき、前記第４信号の発生を遮断するように、前記第２同期回路を制御することを特徴とする請求項１４に記載の半導体集積回路テストシステム。
【請求項１６】
前記第１同期回路は、
前記第１信号が入力され、第１クロック信号に同期して出力する第１フリップフロップと、
前記第１フリップフロップの出力が入力される第１インバータと、
前記第１信号および前記第１インバータの出力が入力され、第１パルス信号を発生する第１論理ゲートと、
電源電圧が入力され、第２クロック信号に同期されて第２パルス信号を発生し、前記第１パルス信号によってリセットされる第１フリップフロップシリーズと、
前記第１フリップフロップシリーズの出力が入力される第２インバータと、
前記第２インバータの出力が入力され、前記第２クロック信号に同期して第３パルス信号を発生する第２フリップフロップシリーズと、
前記第３パルス信号が入力され、前記第２クロック信号に同期して第４パルス信号を発生する第２フリップフロップと、
前記第４パルス信号が入力される第３インバータと、
前記第３パルス信号および前記第３インバータの出力が入力され、前記第１プロセッサがデバッギング状態であるか否かを示す第１制御信号を前記ステートマシンに出力する第２論理ゲートと、
前記第３パルス信号と前記ステートマシンから出力され前記第２プロセッサがデバッギング状態であるか否かを示す第２制御信号とが入力され、前記第２制御信号の論理値に応じて前記第２信号を発生する第３論理ゲートとを含み、
前記第２フリップフロップシリーズおよび前記第２フリップフロップは同一のリセット信号が入力され、
前記第２制御信号は、前記第２プロセッサが既にデバッギング状態にあるときに重複してデバッギング状態になることを防止するための信号であることを特徴とする請求項１５に記載の半導体集積回路テストシステム。
【請求項１７】
前記第２同期回路は、
前記第３信号が入力され、第１クロック信号に同期して出力する第１フリップフロップと、
前記第１フリップフロップの出力が入力される第１インバータと、
前記第３信号および前記第１インバータの出力が入力され、第１パルス信号を発生する第１論理ゲートと、
電源電圧が入力され、第２クロック信号に同期して第２パルス信号を発生し、前記第１パルス信号によってリセットされる第１フリップフロップシリーズと、
前記第１フリップフロップシリーズの出力が入力される第２インバータと、
前記第２インバータの出力が入力され、前記第２クロック信号に同期して第３パルス信号を発生する第２フリップフロップシリーズと、
前記第３パルス信号が入力され、前記第２クロック信号に同期して第４パルス信号を発生する第２フリップフロップと、
前記第４パルス信号が入力される第３インバータと、
前記第３パルス信号および前記第３インバータの出力が入力され、前記第２プロセッサがデバッギング状態であるか否かを示す第１制御信号を前記ステートマシンに出力する第２論理ゲートと、
前記第３パルス信号と前記ステートマシンから出力され前記第１プロセッサがデバッギング状態であるか否かを示す第２制御信号とが入力され、前記第２制御信号の論理値に応じて前記第４信号を発生する第３論理ゲートとを含み、
前記第２フリップフロップシリーズおよび前記第２フリップフロップは同一のリセット信号が入力され、
前記第２制御信号は、前記第１プロセッサが既にデバッギング状態にあるときに重複してデバッギング状態になることを防止するための信号であることを特徴とする請求項１５に記載の半導体集積回路テストシステム。
【請求項１８】
前記ＪＴＡＧ回路は、
バウンダリスキャン動作を制御するＴＡＰコントローラと、
直列に連結されたバウンダリスキャンセルとを含むことを特徴とする請求項１０に記載の半導体集積回路テストシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路のテスト回路に係り、さらに詳細にはコ−デバッギング機能を支援する半導体集積回路および半導体集積回路テストシステムに関する。
【背景技術】
【０００２】
最近、サブマイクロン（ｓｕｂ−ｍｉｃｒｏｎ）技術の急速な発達によってＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＶＯＩＰ（Ｖｏｉｃｅ  Ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などのように複雑なプロトコルをリアルタイムで処理する技術分野でもシステムオンチップ（ＳＯＣ；Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）が適用され始めている。
【０００３】
特に、複雑なプロトコルを利用した技術分野に適用されるＳＯＣはデジタルイメージ／オーディオデータに対する演算を実施する。このため、通常、信号処理ユニット（ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）をチップの内部に別途取り付ける。また、ＳＯＣは効率的なシステム資源（ｓｙｓｔｅｍ  ｒｅｓｏｕｒｃｅｓ）管理のためにリアルタイム処理システム（ＲＴＯＳ；Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を有する。ＲＴＯＳは応用プログラム（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ）とともに信号処理ユニットによって実行される。
【０００４】
このように一つのＳＯＣに二つ以上のプロセッサ（ｐｒｏｃｅｓｓｏｒｓ）（たとえば、ＣＰＵとＤＳＰ）が存在するとき、プロセッサごとに各々異なるデバッガ（ｄｅｂｕｇｇｅｒ）を別に使用するので、一つのデバッガを使用して二つのプロセッサに対して同時にコ−デバッギング（ｃｏ−ｄｅｂｕｇｇｉｎｇ）を実行することができない。ここで、コ−デバッギングとは、一つのデバッガで複数のプロセッサを同時にデバッギングすることを意味する。
【０００５】
そこで、従来、二つ以上のプロセッサが存在するＳＯＣでは互いに異なるデバッガを各々のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）ピンに連結して使用していた。たとえば、ＡＲＭ系列のＣＰＵとＴＥＡＫ系列のＤＳＰとがともに使用されるＳＯＣで、ＣＰＵコアをデバッギングするためにはＡＲＭデバッガに連結し、ＤＳＰコアをデバッギングするためにはＴＥＡＫデバッガに連結して使用していた。しかし、ＣＰＵコアをデバッギングしている途中にＴＥＡＫデバッガにブレーキポイント（ｂｒｅａｋｐｏｉｎｔ）を設定して停止させることができなかった。したがって、二つのプロセッサ間にインターフェースおよびインタラプタを互いにやりとりすることができず、コ−デバッギングが不可能であった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は上述の問題点を解決するために提案されたものであって、本発明の目的は、二つ以上のプロセッサを直列に一つのＪＴＡＧに連結し、プロセッサの間にトリガ回路を挿入してコ−デバッギング機能を支援する半導体集積回路を提供することにある。
【０００７】
本発明の他の目的は、コ−デバッギング機能を支援する半導体集積回路を含む半導体集積回路テストシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明によるコ−デバッギング機能を支援する半導体集積回路は第１プロセッサ、第２プロセッサ、トリガ回路、およびＪＴＡＧ回路を含む。第１プロセッサは第１周波数で動作し、デバッギングルーチン時、デバッギング状態を示す第１信号を発生する。第２プロセッサは第１周波数と異なる第２周波数で動作する。トリガ回路は第１プロセッサから第１信号が入力されて第２プロセッサがデバッギング状態になるように、第１および第２周波数に同期した第２信号を発生する。そしてＪＴＡＧ回路は第１および第２プロセッサがデバッギング状態であるとき、ＪＴＡＧ端子からテストデータが入力されてＪＴＡＧに基づいて第１および第２プロセッサを直列にバウンダリスキャンし、その結果としてＪＴＡＧ端子にテストデータを出力するＪＴＡＧ回路とを含む。
【０００９】
実施形態において、第１プロセッサはＣＰＵであり、第２プロセッサはＤＳＰであることを特徴とする。
【００１０】
他の実施の形態において、第１プロセッサは第１ＣＰＵであり、第２プロセッサは第１プロセッサと異なる第２ＣＰＵであることを特徴とする。ここで、第２プロセッサはデバッギングルーチン時、デバッギング状態を示す第３信号を発生し、トリガ回路は前記第２プロセッサから第３信号が入力されて前記第１プロセッサがデバッギング状態になるように前記第１および第２周波数に同期した第４信号を発生することを特徴とする。
【００１１】
ここで、トリガ回路は、第１信号が入力されて第２信号を出力する第１同期回路と、第３信号が入力されて第４信号を出力する第２同期回路と、第１および第２同期回路の動作を制御するステートマシンとを含むことを特徴とする。ステートマシンは第１プロセッサがデバッギング状態にあるとき、第４信号の発生を遮断するように第２同期回路を制御する。
【００１２】
ここで、第１同期回路は、第１信号が入力され、第１クロック信号に同期して出力する第１フリップフロップと、第１フリップフロップの出力が入力される第１インバータと、第１信号および第１インバータの出力が入力され、第１パルス信号を発生する第１論理ゲートと、電源電圧が入力され、第２クロック信号に同期して第２パルス信号を発生し、第１パルス信号によってリセットされる第１フリップフロップシリーズと、第１フリップフロップシリーズの出力が入力される第２インバータと、第２インバータの出力が入力され、第２クロック信号に同期して第３パルス信号を発生する第２フリップフロップシリーズと、第３パルス信号が入力され、第２クロック信号に同期して第４パルス信号を発生する第２フリップフロップと、第４パルス信号が入力される第３インバータと、第３パルス信号および第３インバータの出力が入力され、第１制御信号を発生する第２論理ゲートと、第３パルス信号および第２制御信号が入力され、第２信号を発生する第３論理ゲートとを含み、第２フリップフロップシリーズおよび第２フリップフロップは同一のリセット信号が入力されることを特徴とする。
【００１３】
ここで、第２同期回路は、第３信号が入力され、第１クロック信号に同期して出力する第１フリップフロップと、第１フリップフロップの出力が入力される第１インバータと、第３信号および第１インバータの出力が入力され、第１パルス信号を発生する第１論理ゲートと、電源電圧が入力され、第２クロック信号に同期して第２パルス信号を発生し、第１パルス信号によってリセットされる第１フリップフロップシリーズと、第１フリップフロップシリーズの出力が入力される第２インバータと、第２インバータの出力が入力され、第２クロック信号に同期して第３パルス信号を発生する第２フリップフロップシリーズと、第３パルス信号が入力され、第２クロック信号に同期して第４パルス信号を発生する第２フリップフロップと、第４パルス信号が入力される第３インバータと、第３パルス信号および第３インバータの出力が入力され、第１制御信号を発生する第２論理ゲートと、第３パルス信号および第２制御信号が入力され、第４信号を発生する第３論理ゲートとを含み、第２フリップフロップシリーズおよび第２フリップフロップは同一のリセット信号が入力されることを特徴とする。
【００１４】
また他の実施形態において、ＪＴＡＧ回路は、バウンダリスキャン動作を制御するＴＡＰコントローラと、直列に連結されたバウンダリスキャンセルとを含むことを特徴とする。
【００１５】
本発明による半導体集積回路テストシステムはデバッグホスト、ホストインターフェース、および半導体集積回路を含む。デバッグホストはデバッギングプログラムに従ってデバッギングを実行させる。ホストインターフェースはデバッグホストから入力される信号をＪＴＡＧインターフェース信号に換える。そして、半導体集積回路はホストインターフェースからＪＴＡＧインターフェース信号を受け入れてコ−デバッギング動作を実行する。ここで、ＪＴＡＧインターフェース信号は半導体集積回路がコ−デバッギング動作を実行するようにする。
【００１６】
実施形態において、半導体集積回路は第１プロセッサ、第２プロセッサ、トリガ回路、およびＪＴＡＧ回路を含む。第１プロセッサは第１周波数で動作し、デバッギングルーチン時、デバッギング状態を示す第１信号を発生する。第２プロセッサは第１周波数と異なる第２周波数で動作する。トリガ回路は第１プロセッサから第１信号が入力されて第２プロセッサがデバッギング状態になるように第１および第２周波数に同期した第２信号を発生する。そして、ＪＴＡＧ回路は第１および第２プロセッサがデバッギング状態であるとき、ＪＴＡＧ端子からテストデータが入力されて、ＪＴＡＧに基づいて第１および第２プロセッサを直列にバウンダリスキャンし、その結果としてＪＴＡＧ端子にテストデータを出力するＪＴＡＧ回路を含む。
【発明の効果】
【００１７】
本発明によるコ−デバッギング機能を支援する半導体集積回路および半導体集積回路テストシステムによると、一つのＪＴＡＧピンを有して二つ以上のプロセッサを直列に連結することによってＪＴＡＧピン数を減らすことができる。また、一つの統合したデバッギングを使用して二つ以上のプロセッサを同時にコ−デバッギングすることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施することができる程度に詳細に説明するために、本発明の最も望ましい実施形態を添付の図面を参照して説明する。
【００１９】
図１は本発明による半導体集積回路テストシステムを概略的に示すブロック図である。図１を参照すると、半導体集積回路テストシステムはデバッグホスト１０、ホストインターフェース２０、および半導体集積回路３０で構成される。
【００２０】
デバッグホスト１０はコンピュータシステム（例えば、パーソナルコンピュータ）からなり、順次的なテスト動作のためにデバッギングプログラム（ｄｅｂｕｇｇｉｎｇ  ｐｒｏｇｒａｍ）１２を具備する。デバッグホスト１０は使用者の入力信号によってアドレス、制御信号およびデータ信号をシステム製作者が定義したプロトコルに従ってホストインターフェース２０に伝達する。
【００２１】
ホストインターフェース２０はデバッグホスト１０から信号が入力されてＪＴＡＧインターフェース信号に換える。ＪＴＡＧインターフェース信号はテストモード選択信号（ＴＭＳ；Ｔｅｓｔ  Ｍｏｄｅ  Ｓｅｌｅｃｔ）、テストクロック信号（ＴＣＫ；Ｔｅｓｔ  Ｃｌｏｃｋ  Ｉｎｐｕｔ）、デバッギングのためのテストデータ入力信号（ＴＤＩ；Ｔｅｓｔ  Ｄａｔａ  Ｉｎｐｕｔ）、およびテストデータ出力信号（ＴＤＯ；Ｔｅｓｔ  Ｄａｔａ  Ｏｕｔｐｕｔ）を含む。ホストインターフェース２０はＴＭＳ、ＴＣＫ、ＴＤＩ信号を半導体集積回路３０に送り、半導体集積回路３０からＴＤＯ信号を受け入れる。
【００２２】
半導体集積回路３０はデバッギング状態で互いに異なる周波数を使用する二つ以上のプロセッサを含むＳＯＣである。例えば、半導体集積回路３０はＡＲＭ系列のＣＰＵとＴＥＡＫ系列のＤＳＰとを含む。従来、デバッギングのためにＣＰＵにはＡＲＭデバッガを使用し、ＤＳＰにはＴＥＡＫデバッガを使用した。しかし、本発明によるコ−デバッギング機能を支援する半導体集積回路および半導体集積回路テストシステムでは一つのデバッガ１０を使用して二つのプロセッサＣＰＵ、ＤＳＰをコ−デバッギングすることができる。
【００２３】
図２は本発明によるコ−デバッギング機能を支援する半導体集積回路の一実施形態を示すブロック図である。コ−デバッギング機能を支援する半導体集積回路３０は図１のホストインターフェース２０からＴＤＩ、ＴＣＫ、ＴＭＳ信号を受け入れ、テストの結果としてＴＤＯ信号を出す。
【００２４】
図２を参照すると、コ−デバッギング機能を支援する半導体集積回路３０はＪＴＡＧ端子１４０、第１プロセッサブロック１００、トリガ回路２００、および第２プロセッサブロック３００を含む。第１および第２プロセッサブロック１００、３００は各々のＪＴＡＧ回路１１０、１２０、３１０、３２０とプロセッサコア１３０、３３０とを含む。トリガ回路２００は同期回路２１０とステートマシン２５０とで構成される。
【００２５】
ＪＴＡＧ端子１４０はＴＤＩ、ＴＣＫ、ＴＭＳ、ＴＤＯ以外にＴＲＳＴ（図示せず）を含む合計５個の端子で構成される。ＴＤＩ端子はテストデータ入力端子であり、ＴＤＯ端子はテストデータ出力端子である。ＴＤＩ端子とＴＤＯ端子とはバウンダリスキャンのためにデータを入出力する。ＴＣＫ端子はテストのためにＴＡＰコントローラ１１０、３１０にクロック信号を出力し、ＴＭＳ端子はＴＡＰコントローラ１１０、３１０にテストモード選択信号を出力する。
【００２６】
第１プロセッサブロック１００はＣＰＵ１３０とＪＴＡＧ回路１１０、１２０とを含む。ＣＰＵ１３０はデバッギングルーチン時、第１周波数を有するクロックによって動作され、デバッギング状態を示す信号Ａ１を発生する。ＣＰＵ１３０がデバッギング状態にないときには、デバッギング要請信号Ｂ２を受け入れてデバッギング状態になる。
【００２７】
ＪＴＡＧ回路はＴＡＰ（Ｔｅｓｔ  Ａｃｃｅｓｓ  Ｐｏｒｔ）コントローラ１１０とバウンダリスキャンセル１２０、および図２に示さないデータレジスタ（例えば、バイパスレジスタ、使用者レジスタ、命令語レジスタなど）を含む。一般的にバウンダリスキャン（ｂｏｕｎｄａｒｙ）テスト回路を具備した半導体集積回路は‘ＩＥＥＥ  Ｓｔｄ．１１４９．１−１９９０’標準案で提案されたＪＴＡＧ回路の構造を有する。そしてＪＴＡＧ回路は必要なピン数を最小化するために直列方式でデータを処理する。
【００２８】
ＴＡＰコントローラ１１０はＴＭＳ端子およびＴＣＫ端子から入力された信号を利用してＪＴＡＧ回路の全般的な動作を制御する。ＴＡＰコントローラ１１０の制御動作はＴＣＫのローからハイへの遷移（ｌｏｗ−ｈｉｇｈ  ｔｒａｎｓｉｔｉｏｎ）でのＴＭＳ値によって決められる。テストデータはＴＣＫのローからハイへの遷移に同期してＴＤＩ端子を介して出力され、ＴＣＫのハイからローへの遷移に同期してＴＤＯ端子を介して出力される。
【００２９】
第１バウンダリスキャンセル１２０はスキャンレジスタで構成される。スキャンレジスタはＴＤＩ端子からテストデータを入力し、データを直列にシフトしてバウンダリスキャンをする。第１バウンダリスキャンセル１２０から出力されたテストデータは第２プロセッサブロック３００をテストするために第２バウンダリスキャンセル３２０に入力される。
【００３０】
第２プロセッサブロック３００はＤＳＰ３３０とＪＴＡＧ回路３１０、３２０とを含む。ＤＳＰ３３０はデバッギングルーチン時、第１周波数と異なる第２周波数を有するクロックによって動作され、デバッギング状態を示す信号Ｂ１を発生する。ＤＳＰ３３０がデバッギング状態にないとき、ＤＳＰ３３０はデバッギング要請信号Ａ２を受け入れてデバッギング状態になる。第２プロセッサブロック３００にあるＪＴＡＧ回路３１０、３２０の内部構造および動作原理は前１プロセッサブロック１００で説明したとおりである。
【００３１】
トリガ回路２００は同期回路２１０と同期回路２１０の動作を制御するステートマシン２５０とで構成される。同期回路２１０は第１プロセッサブロック１００がデバッギング状態になれば、デバッギング状態を示す第１信号Ａ１を受け入れて第２プロセッサブロック３００もデバッギング状態になるようにする第２信号Ａ２を発生する。このような方法によって、同期回路２１０は第２プロセッサブロック３００がデバッギング状態になれば、デバッギング状態を示す第３信号Ｂ１を受け入れて第１プロセッサブロック１００もデバッギング状態になるようにする第４信号Ｂ２を発生する。一方、同期回路２１０はステートマシン２５０に制御信号Ｆを与え、ステートマシン２５０から制御信号Ｓを受ける。
【００３２】
ステートマシン２５０は制御信号Ｓを発生して第１または第２プロセッサブロック１００、３００が重複してデバッギング状態になることを防止する。
【００３３】
図３は図２に示した同期回路の実施形態を示す回路図である。図３に示した同期回路２１１は第１プロセッサブロック１００からデバッギング状態を示す第１信号Ａ１を受け入れて第２プロセッサブロック３００にデバッギング要請を示す第２信号Ａ２を出力する。一方、同期回路２１１はステートマシン２５０に制御信号Ｆａを与え、前記ステートマシン２５０から制御信号Ｓａを受ける。
【００３４】
図３を参照すると、同期回路２１１は６個のフリップフロップＤＦ１〜ＤＦＦ６、３個のインバータＩＮＶ１〜ＩＮＶ３、および３個のＡＮＤゲートＧ１〜Ｇ３で構成される。第１フリップフロップＤＦＦ１は第１クロックＣＰＵＣＬＫに同期して動作し、第２乃至第６フリップフロップＤＦＦ２〜ＤＦＦ６は第２クロックＤＳＰＣＬＫに同期して動作する。第１クロックと第２クロックとは互いに異なる周波数を有する。同期回路２１１は第１信号Ａ１を第１クロックに同期して受け入れて第２クロックに同期した第２信号Ａ２を出力する。同期回路２１１によると、入力された第１信号Ａ１が中間で消える現象は発生しない。
【００３５】
同期回路２１１は第１信号Ａ１に応答してステートマシン２５０に制御信号Ｆａを発生する。一方、ステートマシン２５０から制御信号Ｓａを受け入れる。制御信号Ｓａは第３ゲートＧ３に入力される。同期回路２１１は第２プロセッサブロック３００がデバッギング状態になければ、テートマシン２５０から‘ハイ’である制御信号Ｓａが入力されて第２信号Ａ２を発生する。しかし、第２プロセッサブロック３００が既にデバッギング状態にあれば、同期回路２１１は‘ロー’である制御信号Ｓａが入力されて第２信号を発生しない。したがって、第２プロセッサブロック３００は重複してデバッギング状態にならない。
【００３６】
図４に示した同期回路２１２は第２プロセッサブロック３００からデバッギング状態を示す第３信号Ｂ１を受け入れて第１プロセッサブロック１００もデバッギング状態になるように動作する。同期回路２１２の構造および動作原理は図３に示した同期回路２１１と同一であるので説明を省略する。
【００３７】
図５は図３に示した同期回路の動作を説明するためのタイミング図である。図５を参照すると、第１クロックＣＰＵＣＬＫと第２クロックＤＳＰＣＬＫとは周波数を異にする。第１クロックＣＰＵＣＬＫの周波数は第２クロックＤＳＰＣＬＫの周波数よりも高い。
【００３８】
第１フリップフロップＤＦＦ１は第１信号Ａ１を受け入れて第１クロックＣＰＵＣＬＫに同期した信号を発生する。第１フリップフロップＤＦＦ１から発生された信号は第１インバータＩＮＶ１によって反転された後、第１ゲートＧ１に入力される。第１ゲートＧ１は第１信号Ａ１および第１インバータＩＮＶ１で発生された信号が入力されて第１パルスｐ１を発生する。第１パルスｐ１は第２および第３フリップフロップＤＦＦ２、ＤＦＦ３のリセット端子に入力される。
【００３９】
第２フリップフロップＤＦＦ２は第１パルスｐ１の反転パルスである第２パルスｐ２を発生する。第３フリップフロップＤＦＦ３は第２パルスｐ２を受け入れて第２クロックＤＳＰＣＬＫに同期した第３パルスｐ３を発生する。第２インバータＩＮＶ２は第３パルスｐ３を受け入れて反転されたパルスを発生する。第４フリップフロップＤＦＦ４は反転されたパルスを受け入れて第２クロックＤＳＰＣＬＫに同期した第４パルスｐ４を発生する。第５フリップフロップＤＦＦ５は第４パルスｐ４を受け入れて第２クロックＤＳＰＣＬＫに同期した第５パルスｐ５を発生する。第６フリップフロップＤＦＦ６は第５パルスｐ５を受け入れて第２クロックＤＳＰＣＬＫに同期した第６パルスｐ６を発生する。
【００４０】
第６パルスｐ６は第３インバータＩＮＶ３によって反転された後、第２ゲートＧ２に入力される。第２ゲートＧ２は第６パルスｐ６の反転信号／ｐ６および第５パルスｐ５が入力されて制御信号Ｆａを発生する。制御信号Ｆａはステートマシン２５０に入力される。一方、第３ゲートＧ３は第５パルスｐ５およびステートマシン２５０から発生された制御信号Ｓａが入力されて第２信号Ａ２を発生する。第２信号Ａ２は第２プロセッサブロック３００に入力される。
【００４１】
ここで、第３ゲートＧ３は第２プロセッサブロック３００の状態に従って第２信号Ａ２の発生の可否を決める役割を果たす。すなわち、第２プロセッサブロック３００がデバッギング状態にあれば、ステートマシン２５０から‘ロー’である制御信号Ｓａが入力されるので第２信号Ａ２は発生されない。一方、第２プロセッサブロック３００がデバッギング状態になければ、‘ハイ’である制御信号Ｓａが入力されて第２制御信号Ａ２を発生する。図５は第２信号Ａ２が発生された場合である。
【００４２】
上述のように、二つ以上のプロセッサを含んでいる半導体集積回路を一つのデバッガでテストするためにはいずれか一つのプロセッサがデバッギング状態にあるとき、他のプロセッサをデバッギング状態になるようにするトリガ回路と、すべてのプロセッサがデバッギング状態にあるとき、プロセッサを直列に連結してバウンダリスキャンをすることができるＪＴＡＧ回路を必要とする。
【００４３】
一方、本発明の詳細な説明では具体的な実施形態に関して説明したが、本発明の範囲を逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は上述の実施形態に限定されるものではなく、特許請求の範囲及びこれと均等なものによって定めなければならない。
【図面の簡単な説明】
【００４４】
【図１】本発明による半導体集積回路テストシステムの概略的に示すブロック図である。
【図２】本発明によるコ−デバッギング機能を支援する半導体集積回路の一実施形態を示すブロック図である。
【図３】図２に示した同期回路を示す回路図である。
【図４】図２に示した同期回路を示す回路図である。
【図５】図３に示した同期回路の動作を説明するためのタイミング図である。
【符号の説明】
【００４５】
１０    デバッグホスト
１２    デバッギングプログラム
２０    ホストインターフェース
３０    半導体集積回路
１００    第１プロセッサブロック
１１０    第１ＴＡＰコントローラ
１２０    第１バウンダリスキャンセル
１３０    ＣＰＵコア
１４０    ＪＴＡＧ端子
２００    トリガ回路
２１０    同期回路
２５０    ステートマシン
３００    第２プロセッサブロック
３１０    第２ＴＡＰコントローラ
【図１】
0005536297.tif 000002
【図２】
0005536297.tif 000003
【図３】
0005536297.tif 000004
【図４】
0005536297.tif 000005
【図５】
0005536297.tif 000006