(57)【特許請求の範囲】
【請求項１】
バスと接続されると共にテストアクセスポートコントローラを有する回路デバイスのスキャン制御方法であって、
ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報を該バスからレジスタ部に設定する設定ステップと、
該レジスタ部に設定された情報に基づいて、該回路デバイスのスキャンチェーン組み換え部によりテストアクセスポートコントローラへのスキャンアウトデータの出力とデータレジスタ部からのスキャンインデータの入力をカットし、該スキャンチェーン組み換え部が制御するスキャンレジスタ部とデータレジスタ部の接続を制御する接続制御ステップとを有し、
該データレジスタ部及び該スキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有し、
該接続制御ステップは、ブロードキャストモードのスキャンインでは該データレジスタ部の１つのデータレジスタに設定されたデータが該スキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインでは該データレジスタ部のデータレジスタに設定されたデータが該スキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるように該スキャンレジスタ部と該データレジスタ部の接続を制御する、スキャン制御方法。
【請求項２】
該接続制御ステップは、スキャンアウトはパラレルモードで行われ、該スキャンレジスタ部の各データレジスタのデータを読むことで各スキャンチェーンのデータを同時に収集して該データレジスタ部の対応するデータレジスタに読み出すように該スキャンレジスタ部と該データレジスタ部の接続を制御する、請求項１記載のスキャン制御方法。
【請求項３】
バスと接続されると共にテストアクセスポートコントローラを有する装置であって、
ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報が該バスから設定されるレジスタ部と、
スキャンインデータが設定されるデータレジスタ部と、
スキャンレジスタ部と、
該レジスタ部に設定された情報に基づいて、該テストアクセスポートコントローラへのスキャンアウトデータの出力と該データレジスタ部からのスキャンインデータの入力をカットし、該スキャンレジスタ部とデータレジスタ部の接続を制御するスキャンチェーン組み換え部とを有し、
該データレジスタ部及び該スキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有し、
該スキャンチェーン組み換え部は、ブロードキャストモードのスキャンインでは該データレジスタ部の１つのデータレジスタに設定されたデータが該スキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインでは該データレジスタ部のデータレジスタに設定されたデータが該スキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるように該スキャンレジスタ部と該データレジスタ部の接続を制御する、装置。
【請求項４】
該スキャンチェーン組み換え部は、スキャンアウトはパラレルモードで行われ、該スキャンレジスタ部の各データレジスタのデータを読むことで各スキャンチェーンのデータを同時に収集して該データレジスタ部の対応するデータレジスタに読み出すように該スキャンレジスタ部と該データレジスタ部の接続を制御する、請求項３記載の装置。
【請求項５】
該レジスタ部はシフト数を該バスから設定され、
該データレジスタ部はスキャンインデータを該バスから設定され、
該データレジスタ部に設定されたスキャンインデータは該レジスタ部に設定されたシフト数だけシフトされる、請求項３又は４記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン制御方法及び装置に係り、特に回路デバイスに対してスキャン機能を利用した内部設定やテストの結果を示すログの収集等を行うスキャン制御方法及びそのようなスキャン制御方法を用いる装置に関する。
【０００２】
本明細書において、「テスト」とは、「診断」等を含むものとする。
【背景技術】
【０００３】
大規模集積回路（ＬＳＩ：Large Scale Integrated circuit）デバイス（又は、チップ）が搭載されたボード、ユニット、モジュール等と呼ばれる装置には、ＬＳＩデバイスに接続されたＪＴＡＧ（Joint Test Action Group）バス（又は、インタフェース）が搭載されている。ＪＴＡＧバスは、ＬＳＩデバイスのテストを行う時等に使用される。ＪＴＡＧバスは、国際標準化規格であるＩＥＥＥ１１４９．１に準拠したシリアルバスであり、ＬＳＩデバイスに対してバウンダリスキャンを実施するための外部テスタ等からのアクセス手段を提供することで、装置の運用時以外のテスト時にＬＳＩデバイスのテストを可能とする。
【０００４】
一方、装置で使用するデバイス（又は、チップ）セットや中央処理装置（ＣＰＵ：Central Processing Unit）等のＬＳＩデバイス群の中には、Ｉ２Ｃ（Inter-Integrated Circuit）バス（又は、インタフェース）やＳＭＢｕｓ（System Management Bus）（又は、インタフェース）に接続されたＬＳＩデバイスもある。Ｉ２ＣバスやＳＭＢｕｓは、装置の運用時に装置内の制御を行う時等に使用される。このように、１つの装置内で、ＪＴＡＧバスに接続されたＬＳＩデバイスと、Ｉ２ＣバスやＳＭＢｕｓに接続されたＬＳＩデバイス、即ち、互いに異なる種類（又は、規格）のバスに接続されたＬＳＩデバイスが混在することも、１つのＬＳＩデバイスが互いに異なる種類（又は、規格）のバスに接続されていることもある。Ｉ２ＣバスやＳＭＢｕｓは、デバイス（又は、チップ）間汎用コミュニケーションバスである。Ｉ２ＣバスやＳＭＢｕｓは、基本的にはクロック信号線とデータ信号線を有する２線式のシリアルバスであり、シリアルバスに接続されるデバイスは固有のアドレスを持つ。このアドレスを用いてデバイス同士がＩ２ＣバスやＳＭＢｕｓを介して通信する。
【０００５】
装置の運用時にＬＳＩデバイス内の命令レジスタ、データレジスタ等をスキャンする場合、一度にスキャンを実行するチェーン（又は、パス）は１本である。このため、複数のチェーンの設定やログの収集をする場合、チェーンの本数とラッチ数の積の回数ＬＳＩデバイスのスキャンを行う必要がある。又、内部チェーンを１本に繋げるユニチェーンモードでは、ラッチ数分の回数スキャンを行う必要がある。このように、複数のチェーンの設定やログの収集をする場合には、ＬＳＩデバイスのスキャンの回数が非常に多くなり、スキャンの実行に要するスキャン時間が膨大なものとなる。
【０００６】
ＬＳＩデバイス等の回路をスキャンする方法は、例えば特許文献１、特許文献２等にて提案されている。
【特許文献１】特開平１１７４１２６号公報
【特許文献２】特開２００５−３０９８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
装置の運用時には、パワーオン時の装置の立ち上げ、ログ収集、装置のモードの変更等の際に複数のチェーンの設定やログの収集が必要となるため、必要となるＬＳＩデバイスのスキャンの回数が非常に多くなる。このため、従来はスキャン時間を短縮することな難しく、装置の運用時の装置の立ち上げ時間、ログの収集時間、モードの変更時間等を短縮することは難しいという問題があった。
【０００８】
そこで、本発明は、装置の運用時に必要な回路デバイスのスキャンに要するスキャン時間を短縮可能なスキャン制御方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、バスと接続されると共にテストアクセスポートコントローラを有する回路デバイスのスキャン制御方法であって、ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報を該バスからレジスタ部に設定する設定ステップと、該レジスタ部に設定された情報に基づいて、該回路デバイスのスキャンチェーン組み換え部によりテストアクセスポートコントローラへのスキャンアウトデータの出力とデータレジスタ部からのスキャンインデータの入力をカットし、該スキャンチェーン組み換え部が制御するスキャンレジスタ部とデータレジスタ部の接続を制御する接続制御ステップとを有し、該データレジスタ部及び該スキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有し、該接続制御ステップは、ブロードキャストモードのスキャンインでは該データレジスタ部の１つのデータレジスタに設定されたデータが該スキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインでは該データレジスタ部のデータレジスタに設定されたデータが該スキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるように該スキャンレジスタ部と該データレジスタ部の接続を制御するスキャン制御方法が提供される。
【００１０】
本発明の一観点によれば、バスと接続されると共にテストアクセスポートコントローラを有する装置であって、ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報が該バスから設定されるレジスタ部と、スキャンインデータが設定されるデータレジスタ部と、スキャンレジスタ部と、該レジスタ部に設定された情報に基づいて、該テストアクセスポートコントローラへのスキャンアウトデータの出力と該データレジスタ部からのスキャンインデータの入力をカットし、該スキャンレジスタ部とデータレジスタ部の接続を制御するスキャンチェーン組み換え部とを有し、該データレジスタ部及び該スキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有し、該スキャンチェーン組み換え部は、ブロードキャストモードのスキャンインでは該データレジスタ部の１つのデータレジスタに設定されたデータが該スキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインでは該データレジスタ部のデータレジスタに設定されたデータが該スキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるように該スキャンレジスタ部と該データレジスタ部の接続を制御する装置が提供される。
【発明の効果】
【００１１】
開示のスキャン制御方法及び装置によれば、装置の運用時に必要な回路デバイスのスキャンに要するスキャン時間を短縮可能とすることができる。
【発明を実施するための最良の形態】
【００１２】
開示のスキャン制御方法及び装置では、バスと接続されると共にテストアクセスポートコントローラを有する回路デバイスのスキャンを制御する際、ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報を該バスからレジスタ部に設定し、レジスタ部に設定された情報に基づいて、回路デバイスのスキャンチェーン組み換え部によりテストアクセスポートコントローラへのスキャンアウトデータの出力とデータレジスタ部からのスキャンインデータの入力をカットし、スキャンチェーン組み換え部が制御するスキャンレジスタ部とデータレジスタ部の接続を制御する。データレジスタ部及びスキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有する。
【００１３】
スキャンレジスタ部とデータレジスタ部の接続の制御は、ブロードキャストモードのスキャンインではデータレジスタ部の１つのデータレジスタに設定されたデータがスキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインではデータレジスタ部のデータレジスタに設定されたデータがスキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるようにスキャンレジスタ部とデータレジスタ部の接続を制御する。
【００１４】
ブロードキャストモード及びパラレルモードのスキャンインでは、従来と比較するとスキャン時間が短縮される。
【実施例】
【００１５】
図１は、本発明の一実施例におけるボードの構成を示すブロック図である。ボード１１には、ＬＳＩデバイス１２，１３，１４及びＳＭＢｕｓコントローラ１５が搭載されている。ＳＭＢｕｓコントローラ１５及びＬＳＩデバイス１２，１３，１４は、ＳＭＢｕｓ（又は、ＳＭＢｕｓインタフェース）１７を介して互いに接続されている。ＬＳＩデバイス１４には、ＪＴＡＧバス（又は、ＪＴＡＧインタフェース）１９が接続されている。つまり、ＬＳＩデバイス１４にはＳＭＢｕｓ１７及びＪＴＡＧバス１８の両方が接続されている。ＳＭＢｕｓコントローラ１５は、ＳＭＢｕｓ１７専用に設けられており、ボード１１の外部と接続可能である。一方、ＪＴＡＧバス１８は、ボード１１上の端子等にクリップ（Clip）を直接接続するクリップ処理によりボード１１の外部と接続可能である。尚、ＳＭＢｕｓ１７の代わりにＩ２Ｃバスを用いる場合には、ＳＭＢｕｓコントローラ１５の代わりにＩ２Ｃバスコントローラを用いることは言うまでもない。又、ボード１１に、ＪＴＡＧバス１８と接続されたＪＴＡＧバス１８専用のＪＴＡＧバスコントローラ（図示せず）を設けても良い。
【００１６】
ＬＳＩデバイス１４は、後述するスキャン制御回路を内蔵しており、スキャン機能を利用してＳＭＢｕｓ１７からＬＳＩデバイス１４の内部設定が可能である。つまり、スキャン制御回路は、ＳＭＢｕｓ１７等のインタフェースからスキャン機能を制御するための機構を実現する。ＪＴＡＧバス１８は、テスト要件を満たすための手段として用い、ボード１１の運用時には使用しない。ボード１１の運用時に使用するシステム制御インタフェースは、ＳＭＢｕｓ１７で一本化する。ＪＴＡＧバス１８によるスキャン機能の主制御は、後述するようにＬＳＩデバイス１４内に設けられたテストアクセスポートコントローラ（ＴＡＰＣ：Test Access Port Controller）の制御であり、このＴＡＰＣをＪＴＡＧバス１８ではなくＳＭＢｕｓ１７から制御することで、スキャン機能を実現する。
【００１７】
尚、図２では、説明の便宜上、クロックの図示は省略する。
【００１８】
ボード、即ち、装置の運用時にシステム制御インタフェースとして用いられるバスはＳＭＢｕｓに限定されるものではなく、Ｉ２Ｃバス等を用いることも可能である。又、ボード、即ち、装置の運用時には使用せず、テスト要件を満たすための手段として用いられるバスはＪＴＡＧバスに限定されるものではない。
【００１９】
次に、上記実施例において用いられるスキャン制御回路について説明する。図２は、スキャン制御回路を示す回路図である。ここでは説明の便宜上、システム制御インタフェースとして用いられるバスがＳＭＢｕｓであり、テスト要件を満たすための手段として用いられるバスがＪＴＡＧバスであるものとする。従って、図２に示すスキャン制御回路４１は、図１の場合であればＬＳＩデバイス１４に内蔵されている。
【００２０】
図２において、JTAG_IFは、ＪＴＡＧバス（又は、ＪＴＡＧインタフェース）１８上を転送される信号を示し、JTAG_IFにはＴＣＫ，ＴＭＳ，ＴＲＳＴ，ＴＤＩ，ＴＤＯが含まれる。ＴＣＫはスキャン制御回路４１に入力されるテストクロック、ＴＭＳはスキャン制御回路４１に入力されるテストモードを示すテストモード信号であり、後述するＴＡＰＣはテストクロックＴＣＫに同期してテストモード信号ＴＭＳに応答して動作する。ＴＲＳＴはスキャン制御回路４１に入力されるテストリセット信号、ＴＤＩはスキャン制御回路４１に入力されるテストデータ入力である。ＴＤＯはスキャン制御回路４１から出力されるテストデータ出力である。SYS_CLKは、装置（例えば、ボード）上で用いられるシステム制御用クロックを示す。又、SMBus_IFは、ＳＭＢｕｓ１７上を転送されるクロック及びシリアルデータを示し、SMBCLK，SMBDTが含まれる。SMBCLKはＳＭＢｕｓクロック、SMBDTは双方向に転送されるシリアルデータを示す。
【００２１】
スキャン制御回路４１は、図２に示す如く接続されたバッファ５１，５２、インタフェース（ＩＦ：Interface）制御部５３、内部制御部５４、レジスタ５５，５６、シーケンサ５７、データレジスタ部５８、アンド回路５９及びセレクタ６１，６２，６３を有する。回路部４２は、図２に示す如く接続されたＴＡＰＣ７１、スキャンチェーン組み換え部７２及びスキャンレジスタ部７３を有する。スキャンレジスタ部７３は、後述するデータ(b0)〜(bx)を保持するための同時にスキャンしたいチェーン数分のデータレジスタを有し、各データレジスタは複数のフリップフロップ（ＦＦ：Flop-Flop）を有する。スキャンレジスタ部７３の複数のデータレジスタは、複数のスキャンチェーンを形成する。スキャンチェーン組み換え部７２は、スキャンレジスタ部７３による複数のスキャンチェーンの組み合わせを必要に応じて組み換える。回路部４２には、周知の構成の回路を使用可能である。
【００２２】
スキャン制御回路４１は、ＬＳＩデバイスの内部に搭載しても、ＬＳＩデバイスの外部に搭載しても良いが、ＴＡＰＣ７１及びスキャンチェーン組み換え部７２はＬＳＩデバイスの内部に搭載する必要がある。ＴＡＰＣ７１及びスキャンチェーン組み換え部７２は、ＬＳＩデバイス内部のテストで必須であるためである。スキャン制御回路４１は、シーケンサ５７でＪＴＡＧバスと同等のインタフェースを生成しているため、ＬＳＩデバイスの外部に搭載する場合は、ＪＴＡＧバス１８に接続すれば良い。
【００２３】
図２中、sm_tmsはシーケンサ５７が生成するテストモードセレクト信号（テーストモードセレクト信号ＴＭＳと同様）、sm_trstはシーケンサ５７が生成するテストリセット信号、selはシーケンサ５７が生成するJTAG_IFとSMBus_IFの切り替え（又は、セレクト）信号、clk_startはシーケンサ５７が生成するクロックスタート信号である。クロックスタート信号clk_startは、ＳＭＢｕｓ１７からの制御によるスキャン（以下、ＳＭＢｕｓスキャンと言う）を行う時にアンド回路５９からシステムクロックSYS_CLKを供給するための信号である。tckは、セレクタ６１からテストクロックＴＣＫ又はシステムクロックSYS_CLKを選択出力することで得られるテストクロック、tmsは、セレクタ６２でテストモードセレクト信号sm_tmsを選択出力することで得られる（即ち、セレクト後の）テストモードセレクト信号、trstは、セレクタ６１からテストリセット信号sm_trstを選択出力することで得られる（即ち、セレクト後の）テストリセット信号である。tdoは、ＴＡＰＣ７１から入力されてスキャン制御回路４１からテストデータ出力ＴＤＯとして出力されるテストデータ出力、tdiは、ＪＴＡＧバス１８からテストデータ入力ＴＤＩとして入力されスキャン制御回路４１からＴＡＰＣ７１に入力されるテストデータ入力である。tdoiは、JTAG_IFスキャン時にスキャンチェーン組み換え部７２からＴＡＰＣ７１に出力されるのスキャンアウトデータであり、ＴＡＰＣ７１はこのスキャンアウトデータtdoiに基づいてテストデータ出力tdoを出力する。ack/bckは、ＴＡＰＣ７１からスキャンチェーン組み換え部７２によりスキャンするためのスキャンレジスタ部７３、即ち、スキャンレジスタ部７３を構成する複数のＦＦに供給されるスキャンクロックである。スキャンクロックack/bckは、ＴＡＰＣ７１からデータレジスタ部５８にも供給される。sodxは、ＳＭＢｕｓスキャン時にスキャンチェーン組み換え部７２からデータレジスタ部５８に出力されるスキャンアウトデータ、sidxは、ＳＭＢｕｓスキャン時にデータレジスタ部５８から出力されてセレクタ６３を介してスキャンチェーン組み換え部７２に入力されるスキャンインデータである。modeは、ＳＭＢｕｓ１７から入力され後述するブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示すスキャンモード信号である。ノーマルモードは、従来のスキャンモードである。
【００２４】
シーケンサ５７が生成する切り替え信号selは、各セレクタ６１，６２，６３に供給され、各セレクタ６１，６２，６３から選択出力するべき入力を指定する。図２において、白丸印は、アクティブな信号レベル（例えば、ハイレベル）の切り替え信号selが各セレクタ６１，６２，６３に供給されることで、各セレクタ６１，６２，６３から選択出力される方の入力を示す。
【００２５】
図２において、ＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFがＩＦ制御部５３に供給されると、内部制御部５４より、レジスタ５５，５６に対してレジスタライト（Register Write）動作で命令レジスタモード又は内部チェーン（又は、データレジスタ）モード（以下、ＩＲ／ＤＲモードと言う）とスタートビットとスキャンモード信号modeをレジスタ５５に書き込み、スキャンのシフト数をレジスタ５６に書き込む。スタートビットは、スキャンを開始させる際にＳＭＢｕｓ１７からオンに設定される。ＩＲモードでは、回路部４２を有するＬＳＩデバイス内の命令レジスタ（Instruction Register）のスキャンが指定される。ＤＲモードでは、回路部４２を有するＬＳＩデバイス内のデータレジスタ（Data Register）のスキャンが指定される。このレジスタ５５，５６へのレジスタライト動作がトリガとなり、シーケンサ５７が動作を開始する。スキャンモードは、スキャンを開始させる際にＳＭＢｕｓ１７からスキャンモード信号modeを入力することで後述するブロードキャストモード、パラレルモード、ノーマルモードのいずれかに設定される。
【００２６】
シーケンサ５７は、レジスタ５５，５６に書き込まれたＩＲ／ＤＲモード、スタートビット、スキャンモード信号mode及びシフト数に基づいて、ＴＡＰＣ７１のスキャン機能が動作するのに必要なシーケンスを生成し、テストモードセレクト信号sm_tms及びテストリセット信号sm_trstによりＴＡＰＣ７１を制御する。ＴＡＰＣ７１は、テストモードセレクト信号sm_tms及びテストリセット信号sm_trstに基づいてスキャンを開始する。又、シーケンサ５７は、ＳＭＢｕｓ１７からの制御によるスキャン中オンに設定されるスキャンフラグＦＬを管理している。
【００２７】
スキャンチェーン組み換え部７２は、レジスタ５５から入力されるスキャンモードmodeに基づいて、ＴＡＰＣ７１へのスキャンアウトデータtdoiの出力とスキャン制御回路４１からのテストデータ入力tdi、即ち、スキャンインデータの入力をカットし、データレジスタ部５８との接続を行う。
【００２８】
図２では、データレジスタ部５８は、データ（a0）〜（ax）を保持するための同時にスキャンしたいチェーン数分のデータレジスタを有する。ここで、ｘは２以上の自然数である。データ(a0)は、ブロードキャストモード、パラレルモード、ノーマルモードの各スキャンモードで使用される。ブロードキャストモードのスキャンインでは、データレジスタ部５８の１つのデータレジスタに設定されたデータ(a0)がスキャンレジスタ部７３の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされる。ＬＳＩデバイス１４がクロスバを有する場合、各ポートに共通な設定レジスタが存在するので、ブロードキャストモードは同じデータ値を設定する場合に有効である。パラレルモードのスキャンインでは、データレジスタ部５８のデータレジスタに設定されたデータ(a0), (a1), ..., (ax)がスキャンレジスタ部７３の対応するデータレジスタに並行に保持されて対応するスキャンチェーンにスキャンインされる。ＬＳＩデバイス１４がクロスバを有する場合であっても、各ポート毎に異なるデータ値を設定レジスタに設定することがあり、パラレルモードはそのような場合に有効である。スキャンアウトはパラレルモードで行われ、スキャンレジスタ部７３の各データレジスタのデータを読むことで各スキャンチェーンのデータを同時に収集してデータレジスタ部５８の対応するデータレジスタに読み出す（即ち、格納する）。
【００２９】
ノーマルモードは、データレジスタ部５８の１つのデータレジスタに設定されたデータ(a0)のみがスキャンレジスタ部７３の各データレジスタに１つずつ保持されて全てのスキャンチェーンを１本づつスキャンする従来のスキャンモードである。
【００３０】
図３は、スキャンチェーン組み換え部７２の動作を説明する図である。データレジスタ部５８には、図３に示す如く接続されたセレクタ５８１が設けられている。又、スキャンチェーン組み換え部７２は、図３に示す如く接続されたデコーダ７２１及びセレクタ７２２，７２３を有する。デコーダ７２１は、スキャンモード信号modeをデコードして、スキャンモードがブロードキャストモード、パラレルモード、ノーマルモードのいずれのスキャンモードであるかを示すデコード結果をセレクタ７２２，７２３に供給する。又、デコーダ７２１は、スキャンモードがノーマルモードの場合はデコード結果をデータレジスタ部５８のセレクタ５８１に供給する。
【００３１】
シーケンサ５７からのテストデータ入力tdiとデータレジスタ部５８からのデータ（a0）の切り替えは、切り替え信号selに基づいてセレクタ６３により行われる。JTAG_IFを用いたテスト時にはテストデータtdiがスキャンチェーン組み換え部７２に供給され、SMBus_IF を用いるスキャン時にはデータ（a0）がスキャンチェーン組み換え部７２に供給される。
【００３２】
セレクタ７２２は、デコード結果がブロードキャストモードを示す場合にはデータレジスタ部５８からのデータ（a0）を出力し、パラレルモードを示す場合にはデータレジスタ部５８からのデータ（a1）を出力し、ノーマルモードを示す場合にはスキャンレジスタ部７３からのデータ（b0）を出力する。これらのスキャンモード以外の場合は、セレクタ７２２はテスト時であるとみなしてデータレジスタ部５８からのデータ（a0）を出力する。
【００３３】
セレクタ７２３は、デコード結果がブロードキャストモードを示す場合にはデータレジスタ部５８からのデータ（a0）を出力し、パラレルモードを示す場合にはデータレジスタ部５８からのデータ（ax）を出力し、ノーマルモードを示す場合にはスキャンレジスタ部７３からのデータ（b1）を出力する。これらのスキャンモード以外の場合は、セレクタ７２３はテスト時であるとみなしてデータレジスタ部５８からのデータ（a1）を出力する。
【００３４】
図４は、スキャンインを説明するタイミングチャートである。図４中、（ａ）はノーマルモード時のスキャンインを示し、（ｂ）はブロードキャストモード時のスキャンインを示し、（ｃ）はパラレルモード時のスキャンインを示す。図４からわかるように、（ａ）のノーマルモードでは、データ(a1)の設定、データ(b0)のスキャンイン、データ(a0)のスキャンイン、データ(a0)の設定、データ(bx)のスキャンインの順に処理が行われ、スキャン時間が比較的長い。これに対し、図４中（ｂ）のブロードキャストモードでは、データ(a0)の設定後、データ(b0),(b1),...,(bx)のスキャンインが同時に行われるので、ノーマルモードの場合と比較するとスキャン時間が大幅に短縮されることがわかる。又、図４中（ｃ）のパラレルモードでは、データ(a0)の設定、データ(a1)の設定、．．．、データ(ax)の設定の後、データ(b0),(b1),...,(bx)のスキャンインが同時に行われるので、ノーマルモードの場合と比較するとスキャン時間が短縮されることがわかる。
【００３５】
図５は、スキャンアウトを説明するタイミングチャートである。図５中、（ａ）はノーマルモード時のスキャンアウトを示し、（ｂ）はパラレルモード時のスキャンアウトを示す。図５からわかるように、（ａ）のノーマルモードでは、データ(b0)のスキャンアウト、データ(a0)の読み出し、データ(b1)のスキャンアウト、データ(a0)の読み出し、...、データ(bx)のスキャンアウト、データ(a0)の読み出しの順に処理が行われ、スキャン時間が比較的長い。これに対し、図５中（ｂ）のパラレルモードでは、データ(b0)のスキャンアウト、データ(b1)のスキャンアウト、．．．、データ(bx)のスキャンアウトが同時に行われた後、データ(a0)の読み出し、データ(a1)の読み出し、．．．、データ(ax)の読み出しが行われるので、ノーマルモードの場合と比較するとスキャン時間が短縮されることがわかる。
【００３６】
図６は、ＴＡＰＣ７１の動作を説明するフローチャートであり、ステートダイアグラム（State Diagram）に相当する。図７は、ＴＡＰＣ７１の動作状態stateとテストモードセレクト信号sm_tms及びテストリセット信号sm_trstの関係を示す図である。図６に示す動作状態start, idle, dr, ir0, ir1, capture, shift, exit1, pause, exit2, update,
restart, trst, mrst, stopでは、夫々図７に示す論理値のテストモードセレクト信号sm_tms及びテストリセット信号sm_trstを生成する。例えば、論理値「０」はインアクティブな信号レベル（例えば、ローレベル）であり、論理値「１」はアクティブな信号レベル（例えば、ハイレベル）である。
【００３７】
図６において、ステップＳ１ではＴＡＰＣ７１の動作状態stateがアイドル状態idleに設定され、ステップＳ２では動作状態がスタート状態startに設定される。ステップＳ３ではモードmodeがdr, ir0, trst, mrstのいずれかであるかを判断する。動作モードmodeがステップＳ４で設定されるＤＲモードdrではデータレジスタがスキャンされ、ステップＳ５，Ｓ６で設定されるＩＲモードir0，ir1では命令レジスタがスキャンされる。
【００３８】
図８は、ＩＲモードでのシーケンサ５７の動作を説明するタイミングチャートであり、図９は、ＤＲモードでのシーケンサ５７の動作を説明するタイミングチャートである。図８、図９及び後述する図１０乃至図１２は、ＴＡＰＣ７１の動作状態state、切り替え（又は、セレクト）信号sel、システムクロックSYS_CLK、テストクロックtck及びテストモードセレクト信号sm_tmsを示す。図８及び図９において、下向きの太い矢印はＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFを用いたレジスタ５５の起動を示す。
【００３９】
ステップＳ７で設定されるキャプチャモードcaptureではスキャンされた命令又はデータレジスタのスキャンデータがスキャンレジスタ部７３の指定されたスキャンチェーンにロードされ、ステップＳ８で設定されるシフトモードshiftではスキャンチェーンにロードされた命令又はレジスタのデータをシフトするシフト動作が行われる。ステップＳ９ではシフト数のカウントshift_ctが０であるか否かを判定し、判定結果がＮＯであると処理はステップＳ８へ戻り、判定結果がＹＥＳであると処理はステップＳ１０へ進む。
【００４０】
ステップＳ１０で設定されるエクジットモードexit1ではシフト動作を停止し、ステップＳ１１で設定されるポーズモードpauseではシフト動作を一時的に停止して待ち動作に入り、ステップＳ１２では所定時間wait経過したか否かを判定する。ステップＳ１２の判定結果がＹＥＳであると処理はステップＳ１１へ戻り、判定結果がＮＯであると処理はステップＳ１３へ進む。ステップＳ１３で設定されるエクジットモードexit2ではシフト動作を停止する。ステップＳ１４ではシフト数のカウントshift_ctが０であるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ１５へ進み、判定結果がＮＯであると処理はステップＳ１６へ進む。ステップＳ１５で設定される更新モードupdateでは、シフト動作を完了して次の命令レジスタのスキャンに移行するか、或いは、データレジスタを更新し、処理は後述するステップＳ１９へ進む。ステップＳ１６で設定されるリスタートモードrestartでは、シフト動作を再度開始し、処理はステップＳ８へ戻る。
【００４１】
図１０は、リスタートモードrestartでのシーケンサ５７の動作を説明するタイミングチャートである。図１０中、（ｂ）のタイミングは（ａ）のタイミングに続きものである。又、（ａ）に示す下向きの太い矢印はＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFを用いたレジスタ５５の起動を示し、（ｂ）に示す下向きの太い矢印はＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFを用いたレジスタ５５の再起動を示す。
【００４２】
一方、動作モードmodeがステップＳ１６で設定されるテストリセットモードtrstではＴＡＰＣ及びテスト周辺回路がリセットされる。ステップＳ１７ではテストがオフモードoffであるか否かを判定し、判定結果がＮＯであると処理はステップＳ１６へ戻り、判定結果がＹＥＳであると処理はステップＳ１９へ進む。動作モードmodeがステップＳ１８で設定されるマニュアルリセットモードmrstではＴＡＰＣ内のステートマシンが手動（マニュアル）でリセットされ、処理はステップＳ１９へ進む。手動のリセットは、ＳＭＢｕｓ１７から指定される。ステップＳ１９で設定されるストップモードstopでは、シーケンサ５７の動作が停止され、処理はステップＳ１へ戻る。
【００４３】
図１１は、テストリセットモードtrstでのシーケンサ５７の動作を説明するタイミングチャートであり、図１２は、マニュアルリセットモードmrstでのシーケンサ５７の動作を説明するタイミングチャートである。図１１において、左側の下向きの太い矢印はＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFを用いたレジスタ５５の起動を示し、右側の下向きの太い矢印はＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFを用いたレジスタ５５の停止を示す。又、図１２において、下向きの太い矢印はＳＭＢｕｓ１７からのクロック及びシリアルデータSMBus_IFを用いたレジスタ５５の起動を示す。
【００４４】
以上説明したように、ＴＡＰＣ７１は、ＩＲモードとＤＲモードとではスキャン対象となるＬＳＩデバイス内のレジスタが異なるため、スキャン制御回路４１にはＩＲモード又はＤＲモードを指示するためのレジスタ５５が設けられている。レジスタ５５には、上記スキャンモード信号modeも設定される。このレジスタ５５の設定は、ＳＭＢｕｓ１７から行える。シーケンサ５７は、レジスタ５５に設定されたモード及びスキャンモード信号modeに応じて生成するシーケンスを変える。又、スキャン制御回路４１には、スキャンのシフト数を指示するためのレジスタ５６が設けられている。このレジスタ５６の設定は、ＳＭＢｕｓ１７から行える。シーケンサ５７は、レジスタ５６に設定されたシフト数に応じてシフトの開始及びシフトの終了を判断してシーケンスを生成する。
【００４５】
シーケンサ５７は、レジスタ５５，５６に設定された値に基づいてテストモードセレクト信号sm_tms及びテストリセット信号sm_trstを生成する。ＴＡＰＣ７１は、テストモードセレクト信号tms及びテストリセット信号trstの変化により動作を決定してスキャンを制御する。ＪＴＡＧバス１８は、ＬＳＩデバイス１４，１４Ａ，２４，２４Ａのテスト時にのみ使用し、ボード１１〜１１−４等の装置の運用時にはＪＴＡＧバス１８からの信号JTAG_IFはセレクタ６１〜６３によりブロックされてＴＡＰＣ７１へは入力されない。
【００４６】
スキャンチェーン組み換え部７２では、ＴＡＰＣ７１へのスキャンアウトデータtdoiの供給、スキャン制御回路４１からのスキャンインデータtdiをカットし、データレジスタ部５８との接続を行う。データレジスタ部５８は、ＳＭＢｕｓ１７からのスキャンインデータの設定、スキャン中のシフト動作を行うもので、スキャンインデータの設定時はシステムクロックSYS_CLKが供給されてライト動作を行える。又、スキャン中はデータレジスタ部５８へのシステムクロックSYS_CLKの供給が停止され、スキャンクロックack, bckに応答してスキャン中のシフト動作が行われる。
【００４７】
装置の運用時、スキャン制御回路４１はシステムクロックSYS_CLKからテストクロックtckを生成する。装置の消費電力を考慮し、スキャン開始直前からスキャン終了までの間テストクロックtckをＴＡＰＣ７１に供給する。スキャンを行わない時、スキャン制御回路４１はテストクロックtckをＴＡＰＣ７１に供給しない。
【００４８】
SMBus１７からのＬＳＩデバイスに対するレジスタライト（Register Write）及びレジスタリード（Register Read）は、ＳＭＢｕｓ１７上を転送されるＳＭＢｕｓクロックSMBCLKとシリアルデータSMBDT（即ち、SMBus_IF）を使用して行なう。レジスタライト動作でレジスタ５５へのＩＲモード又はＤＲモードの設定及びスキャンモード信号mode、レジスタ５６へのシフト数の設定、及びスキャンを開始させるオンのスタートビットのレジスタ５５への設定を行い、スキャンを開始させる。一方、レジスタリード動作でシーケンサ５７内で管理されているスキャンフラグＦＬのポーリングを行い、スキャンフラグＦＬがオフになりスキャンが完了したことが確認されるとレジスタ５５，５６に設定された情報をリードして収集する。
【００４９】
図１３は、ＳＭＢｕｓを用いたライト動作を説明するタイミングチャートであり、図１４は、ＳＭＢｕｓを用いたリード動作を説明するタイミングチャートである。図１３及び図１４において、ackは、アドレス、コマンド、データ等が正しく受信されたことを示す応答（又は、確認）情報であり、ＬＳＩデバイス側から返送される。
【００５０】
図１３は、一例として、スレーブアドレス（slave address）、アドレスライトコマンド（command (address write)）、バイト（byte）、バイトｘのレジスタアドレス（register address）、バイトｘ−１のレジスタアドレス、パケットエラーコード（packet error code）、スレーブアドレス、レジスタライトコマンド（command (register write)）、バイト、バイトｘのライトデータ（write data）、バイトｘ−１のライトデータ、パケットエラーコードがＳＭＢｕｓ１７からスキャン制御回路４２に入力されてライト動作が行われる場合を示す。
【００５１】
図１４は、一例として、スレーブアドレス、アドレスライトコマンド、バイト、バイトｘのレジスタアドレス、バイトｘ−１のレジスタアドレス、パケットエラーコード、スレーブアドレス、レジスタリードコマンド、スレーブアドレス、バイトｘのリードデータ、バイトｘ−１のリードデータ、パケットエラーコードがＳＭＢｕｓ１７からスキャン制御回路４２に入力されてリード動作が行われる場合を示す。
【００５２】
上記各実施例によれば、装置の運用時（即ち、システム動作時）にはテスト用のＪＴＡＧバス１８（JTAG IF）を使用せず、装置のテスト時には、装置の運用時の装置内の制御用のＳＭＢｕｓ１７（SMBus IF）を使用してスキャンを行うため、装置上にＪＴＡＧバス専用のＪＴＡＧコントローラを搭載する必要がない。又、装置にＳＭＢｕｓコントローラ１５とＪＴＡＧコントローラの両方の制御プログラムを搭載する必要ない。これにより、装置を比較的安価な構成とすることができる。更に、装置全体の制御（即ち、システム制御）を装置の運用時の装置内の制御用であるＳＭＢｕｓ１７に１本化できるため、システム制御が容易になる。従って、比較的簡単な制御で装置全体の制御を行うことができる。
テスト用のバスは、ＪＴＡＧバスに限定されない。又、装置の運用時の装置内の制御用のバスは、ＳＭＢｕｓやＩ２Ｃバスに限定されず、図６に示すレジスタ５５，５６への設定（ライト）が可能なバスであれば、上記の如くスキャン機能を有効利用できる。
【００５３】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）
バスと接続されると共にテストアクセスポートコントローラを有する回路デバイスのスキャン制御方法であって、
ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報を該バスからレジスタ部に設定する設定ステップと、
該レジスタ部に設定された情報に基づいて、該回路デバイスのスキャンチェーン組み換え部によりテストアクセスポートコントローラへのスキャンアウトデータの出力とデータレジスタ部からのスキャンインデータの入力をカットし、該スキャンチェーン組み換え部が制御するスキャンレジスタ部とデータレジスタ部の接続を制御する接続制御ステップとを有し、
該データレジスタ部及び該スキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有し、
該接続制御ステップは、ブロードキャストモードのスキャンインでは該データレジスタ部の１つのデータレジスタに設定されたデータが該スキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインでは該データレジスタ部のデータレジスタに設定されたデータが該スキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるように該スキャンレジスタ部と該データレジスタ部の接続を制御する、スキャン制御方法。
（付記２）
該接続制御ステップは、スキャンアウトはパラレルモードで行われ、該スキャンレジスタ部の各データレジスタのデータを読むことで各スキャンチェーンのデータを同時に収集して該データレジスタ部の対応するデータレジスタに読み出すように該スキャンレジスタ部と該データレジスタ部の接続を制御する、付記１記載のスキャン制御方法。
（付記３）
該接続制御ステップは、ノーマルモードでは、該データレジスタ部の１つのデータレジスタに設定されたデータ)のみが該スキャンレジスタ部の各データレジスタに１つずつ保持されて全てのスキャンチェーンを１本づつスキャンするように該スキャンレジスタ部と該データレジスタ部の接続を制御する、付記１又は２記載のスキャン制御方法。
（付記４）
シフト数を該バスから該レジスタ部に設定するステップと、
スキャンインデータを該バスから該データレジスタ部に設定するステップを更に有し、
該データレジスタ部に設定されたスキャンインデータは該レジスタ部に設定されたシフト数だけシフトされる、付記１乃至３のいずれか１項記載のスキャン制御方法。
（付記５）
バスと接続されると共にテストアクセスポートコントローラを有する装置であって、
ブロードキャストモード、パラレルモード、ノーマルモードのいずれかのスキャンモードを示す情報が該バスから設定されるレジスタ部と、
スキャンインデータが設定されるデータレジスタ部と、
スキャンレジスタ部と、
該レジスタ部に設定された情報に基づいて、該テストアクセスポートコントローラへのスキャンアウトデータの出力と該データレジスタ部からのスキャンインデータの入力をカットし、該スキャンレジスタ部とデータレジスタ部の接続を制御するスキャンチェーン組み換え部とを有し、
該データレジスタ部及び該スキャンレジスタ部はいずれも同時にスキャンしたい同じチェーン数分のデータレジスタを有し、
該スキャンチェーン組み換え部は、ブロードキャストモードのスキャンインでは該データレジスタ部の１つのデータレジスタに設定されたデータが該スキャンレジスタ部の全てのデータレジスタに並行に保持されて全てのスキャンチェーンにスキャンインされ、パラレルモードのスキャンインでは該データレジスタ部のデータレジスタに設定されたデータが該スキャンレジスタ部の対応するデータレジスタに保持されて対応するスキャンチェーンにスキャンインされるように該スキャンレジスタ部と該データレジスタ部の接続を制御する、装置。
（付記６）
該スキャンチェーン組み換え部は、スキャンアウトはパラレルモードで行われ、該スキャンレジスタ部の各データレジスタのデータを読むことで各スキャンチェーンのデータを同時に収集して該データレジスタ部の対応するデータレジスタに読み出すように該スキャンレジスタ部と該データレジスタ部の接続を制御する、付記６記載の装置。
（付記７）
該スキャンチェーン組み換え部は、ノーマルモードでは、該データレジスタ部の１つのデータレジスタに設定されたデータ)のみが該スキャンレジスタ部の各データレジスタに１つずつ保持されて全てのスキャンチェーンを１本づつスキャンするように該スキャンレジスタ部と該データレジスタ部の接続を制御する、付記５又は６記載の装置。
（付記８）
該レジスタ部はシフト数を該バスから設定され、
該データレジスタ部はスキャンインデータを該バスから設定され、
該データレジスタ部に設定されたスキャンインデータは該レジスタ部に設定されたシフト数だけシフトされる、付記５乃至７のいずれか１項記載の装置。
【００５４】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００５５】
【図１】互いに異なる種類のバスに接続されたＬＳＩデバイスが混在するボードの一例を示すブロック図である。
【図２】スキャン制御回路を示す回路図である。
【図３】スキャンチェーン組み換え部の動作を説明する図である。
【図４】スキャンインを説明するタイミングチャートである。
【図５】スキャンアウトを説明するタイミングチャートである。
【図６】ＴＡＰＣの動作を説明するフローチャートである。
【図７】ＴＡＰＣの動作状態とテストモードセレクト信号及びテストリセット信号の関係を示す図である。
【図８】ＩＲモードでのシーケンサの動作を説明するタイミングチャートである。
【図９】ＤＲモードでのシーケンサの動作を説明するタイミングチャートである。
【図１０】リスタートモードでのシーケンサの動作を説明するタイミングチャートである。
【図１１】テストリセットモードでのシーケンサの動作を説明するタイミングチャートである。
【図１２】マニュアルリセットモードでのシーケンサの動作を説明するタイミングチャートである。
【図１３】ＳＭＢｕｓを用いたライト動作を説明するタイミングチャートである。
【図１４】ＳＭＢｕｓを用いたリード動作を説明するタイミングチャートである。
【符号の説明】
【００５６】
１１      ボード
１２〜１４      ＬＳＩデバイス
１５      ＳＭＢｕｓコントローラ
１７      ＳＭＢｕｓ
１８      ＪＴＡＧバス
４１      スキャン制御回路
５５，５６      レジスタ
５８      データレジスタ部
５７      シーケンサ
７１      ＴＡＰＣ
７２      スキャンチェーン組み換え部
７３      スキャンレジスタ部
【図１】
0004992791.tif 000002
【図２】
0004992791.tif 000003
【図３】
0004992791.tif 000004
【図４】
0004992791.tif 000005
【図５】
0004992791.tif 000006
【図６】
0004992791.tif 000007
【図７】
0004992791.tif 000008
【図８】
0004992791.tif 000009
【図９】
0004992791.tif 000010
【図１０】
0004992791.tif 000011
【図１１】
0004992791.tif 000012
【図１２】
0004992791.tif 000013
【図１３】
0004992791.tif 000014
【図１４】
0004992791.tif 000015