(57)【要約】【課題】所定の仕様のインターフェースを含む集積回路と、所定の仕様とは異なるインターフェースを有する集積回路とを搭載した電子装置に対して、集積回路間の試験を容易に行う。【解決手段】装置は、第１の集積回路と第２の集積回路とを含む、集積回路のピン間の接続関係を示す接続情報と、第１の集積回路外へデータを出力する出力ピンまたは第１の集積回路外からデータを入力する入力ピンの指定を含む動作モデルと、第２の集積回路外の出力ピンまたは入力ピンの指定を含み、通信ピンを通じて第２の集積回路の入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデルとを備える。装置は、所定の仕様にしたがって第１の集積回路との間でデータを授受するための制御情報を生成し、出力ピンへのデータの書き出しおよび入力ピンからのデータの読み込みを、通信ピンを通じて行うための制御情報を生成する。【選択図】図９
2014044597.tif 000002
【特許請求の範囲】
【請求項１】
第１の集積回路と第２の集積回路とを含む電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部と、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル格納部と、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第２の動作モデル格納部と、
前記接続情報の格納部から、前記第１の集積回路と第２の集積回路とを含む前記電子装置内のピン間の接続関係のうち、前記出力ピンと前記入力ピンの両方を含む接続関係をテストが可能なネットとテスト可能なピンの情報であるテストアクセス情報として抽出するテストアクセス情報抽出部と、を備える情報処理装置。
【請求項２】
第１の集積回路と第２の集積回路とを含む電子装置のテストデータを作成するテストデータ作成装置であって、
前記第２の集積回路は、少なくとも１対の通信ピンを有しており、
前記テストデータ作成装置は、
前記第１の集積回路と第２の集積回路とを含む、前記電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部と、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル格納部と、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデル格納部と、
所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成するとともに、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも一方を、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する生成部と、を備えるテストデータ作成装置。
【請求項３】
コンピュータが、
第１の集積回路と第２の集積回路とを含む電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
前記取得した接続関係のうち、前記出力ピンと前記入力ピンの両方を含む接続関係をテストが可能なネットとテスト可能なピンの情報であるテストアクセス情報として抽出するステップと、を実行する電子装置のテストデータ作成方法。
【請求項４】
第１の集積回路と第２の集積回路とを含む電子装置のテストデータをコンピュータが作成するテストデータ作成方法であって、
前記第２の集積回路は、少なくとも１対の通信ピンを有しており、
前記コンピュータが、
前記第１の集積回路と第２の集積回路とを含む前記電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する第２生成ステップと、を実行するテストデータ作成方法。
【請求項５】
コンピュータに、
第１の集積回路と第２の集積回路とを含む電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
前記取得した接続関係のうち、前記出力ピンと前記入力ピンの両方を含む接続関係をテストが可能なネットとテスト可能なピンの情報であるテストアクセス情報として抽出するステップと、を実行させるためのプログラム。
【請求項６】
前記テストアクセス情報として抽出された複数の接続関係に含まれる第２の集積回路含まれるネットに於いて、第１の集積回路に適用されるテストパターン発生ステップをさらに実行させるための請求項５に記載のプログラム。
【請求項７】
前記第２の集積回路は、少なくとも１対の通信ピンを有し、
前記第２の動作モデル情報は、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様を含み、
前記コンピュータに、所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する第２生成ステップと、をさらに実行させるための請求項５または６に記載のプログラム。
【請求項８】
前記電子装置は、複数の第２の集積回路の通信ピンを切り替えて接続可能な複数チャネルのチャネル通信ピンを有する第３の集積回路を備えており、
前記接続情報の格納部は、前記チャネル通信ピンを含むピン間の接続関係を示す接続情報を格納しており、
前記第２の動作モデル情報は、前記複数チャネルの中から１つのチャネル通信ピンを選択するための選択指定情報を含み、
前記第２生成ステップは、前記電子装置内で、電子装置外へ接続するための外部接続点から前記第２の集積回路の通信ピンに至るまでの途中に介在する前記第３の集積回路のチャネル通信ピンを選択する選択指定を生成するステップを含む、請求項７に記載のプログラム。
【請求項９】
前記複数チャネルのチャネル通信ピンのそれぞれは、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれの通信ピンに分岐して接続可能であり、
前記第２の動作モデル情報は、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれを識別するアドレスの算出情報を有し、
前記コンピュータに、前記アドレスの算出情報にしたがって、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれのアドレスを算出するアドレス算出ステップをさらに実行させ、
前記第２生成ステップは、前記インターフェース仕様にしたがった制御情報に前記第２の集積回路の前記算出されたアドレスを設定するステップと、
前記第３の集積回路のチャネル通信ピンを選択する選択指定に前記第３の集積回路の前記算出されたアドレスを設定するステップと、を含む請求項７または８に記載のプログラム。
【請求項１０】
前記電子装置は、前記通信ピンを有する第４の集積回路をさらに含み、
前記第２の動作モデル格納部は、前記通信ピンを通じて前記第４の集積回路の内部回路からデータを取得するための制御仕様をさらに含み、
前記第２生成ステップは、前記通信ピンを通じて前記内部回路から前記データを取得するための制御情報を前記制御仕様にしたがって生成するステップを含む請求項５から９のいずれか１項に記載のプログラム。
【請求項１１】
第１の集積回路と第２の集積回路とを含む電子装置のテストデータをコンピュータに作成させるプログラムであって、
前記第２の集積回路は、少なくとも１対の通信ピンを有しており、
前記コンピュータに、
前記第１の集積回路と第２の集積回路とを含む前記電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する第２生成ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路間の接続試験に関する。
【背景技術】
【０００２】
従来からプリント基板に搭載される集積回路は、例えば、ＪＡＴＧ（Joint Test Action Group）と呼ばれるテストインターフェースを搭載している。そして、プリント基板の
テストでは、このインターフェースの方式にしたがって、信号の入出力が行われ、試験が実行されている。この場合、プリント基板の試験では、例えば、プリント基板上の集積回路間の接続関係を基にテストプログラムを作成し、試験機からテストプログラムを翻訳しプリント基板にテストパターンを入力し応答を確認する事で、試験が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２４２５７３号公報
【特許文献２】特開平９−２１８２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、プリント基板上に、異なるインターフェースをそれぞれ有する異なる集積回路が搭載された場合、試験の実行が困難となる。そこで、開示の実施形態の一側面は、所定仕様のインターフェースを含む集積回路と、所定の仕様とは異なるインターフェースを有する集積回路とを搭載した電子装置に対して、集積回路間の試験を容易に行うことを課題とする。
【課題を解決するための手段】
【０００５】
開示の実施形態の一側面は、第１の集積回路と第２の集積回路とを含む電子装置のテストデータを作成するテストデータ作成装置によって例示される。第２の集積回路は、少なくとも１つの通信ピンを有している。テストデータ作成装置は、第１の集積回路と第２の集積回路とを含む、電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部と、第１の集積回路外へデータを出力する出力ピンの指定および第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル格納部と、第２の集積回路外へデータを出力する出力ピンの指定および第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、通信ピンを通じて第２の集積回路の入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデル格納部とを備える。さらに、本テストデータ作成装置は、所定の仕様にしたがって第１の集積回路との間でデータを授受するための制御情報を生成するとともに、出力ピンへのデータの書き出しおよび入力ピンからのデータの読み込みの少なくとも一方を、通信ピンを通じて行うための、インターフェース仕様にしたがった制御情報を生成する生成部と、を備える。
【発明の効果】
【０００６】
本テストデータ作成装置は、所定の仕様のインターフェースを含む集積回路と、所定の仕様とは異なるインターフェースを有する集積回路とを搭載した電子装置に対して、集積回路間の試験を容易に行うことができる。
【図面の簡単な説明】
【０００７】
【図１】比較例１に係るＪＴＡＧ回路を搭載したＬＳＩを有するプリント基板の回路の一例である。
【図２】ＪＴＡＧ部品とＪＴＡＧ回路を搭載しない部品とを混在させたプリント基板の回路の一例である。
【図３】図２のJTAG回路を搭載した部品とJTAG回路を搭載しない部品の接続部を拡大した回路を例示する図である。
【図４】比較例２に係るシミュレーションによる試験プログラム生成を例示する図である。
【図５】ＪＴＡＧテストジェネレータの処理を例示する図である。
【図６】試験対象のプリント基板に含まれるＩ２Ｃ部品を例示する図である。
【図７】Ｉ２Ｃ部品の接続例である。
【図８】Ｉ２Ｃ部品を制御する制御シーケンスで指定されるデータ例を示す図である。
【図９】実施例１に係る、Ｉ２Ｃ部品を含むプリント基板の試験プログラム作成処理を例示する図である。
【図１０】Ｉ２Ｃ部品の動作モデル２３の構造を例示する図である。
【図１１】Ｉ２Ｃ部品間の接続を例示する図である。
【図１２】Ｉ２Ｃツリー２５の出力イメージを例示する図である。
【図１３】Ｉ２Ｃツリー作成処理フローを例示する図である。
【図１４】テストアクセス情報の記憶イメージを例示する図である。
【図１５】並列テストパターンが生成される回路を例示する図である。
【図１６】並列テストパターンを例示する図である。
【図１７】テストデータベースを例示する図である。
【図１８】最終テストパターンの生成処理におけるデータの流れを例示する図である。
【図１９Ａ】最終テストパターン生成処理フローを例示する図である。
【図１９Ｂ】最終Ｉ２Ｃファンクションテスト生成フローを例示する図である。
【図２０】Ｉ２Ｃ最終テストパターン出力処理（図１８のＳ３３）の詳細を例示する図である。
【図２１】ＪＴＡＧ部品のピンを結ぶネットのショートを例示する図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本装置は実施形態の構成には限定されない。
＜比較例１＞
図１から図４の図面を参照して、比較例に係る情報処理装置について説明する。比較例では、ＪＴＡＧ（Joint Test Action Group）の規格に準拠したテスト回路（ＪＴＡＧ回
路）を有する部品を含むプリント基板のテストについて説明する。図１は、ＪＴＡＧ回路を搭載したＬＳＩ（Large Scale Integration）を有するプリント基板３０９の回路の一
試験例である。図１の回路は、試験対象のプリント基板３０９と、試験プログラムを生成し、試験を管理する情報処理装置３０１と、情報処理装置３０１で作成された試験プログラムにしたがってプリント基板３０９の試験を実行する試験機３０２とが例示されている。この例では、試験機３０２は、プリント基板３０９のコネクタ３１１を接続し、信号の入出力を行い、試験を実行する。試験プログラムとは、例えば、プリント基板３０９の試験時に、試験機３０２に入力され、試験を制御するコマンド列等をいう。試験機３０２は、試験プログラムにしたがって、コネクタ３１１を介してプリント基板３０９にビット列を入力し、コネクタ３１１を介してプリント基板３０９からビット列を取得する。また、試験プログラムは、取得したビット列を確認するための期待値等の試験データも含む。
【０００９】
プリント基板３０９は、例えば、ＪＴＡＧ試験回路を搭載した２つの部品、ＪＴＡＧ−
ＬＳＩ１、ＪＴＡＧ−ＬＳＩ２を有する。ＪＴＡＧ−ＬＳＩ１、ＪＴＡＧ−ＬＳＩ２の各端子は、それぞれ内部のバウンダリセルと接続されている。以下、ＪＴＡＧ試験回路を搭載した部品をＪＴＡＧ部品と呼ぶことにする。端子をピンともいう。ＪＴＡＧ−ＬＳＩ１、ＪＴＡＧ−ＬＳＩ２が第１の集積回路の一例である。
【００１０】
ＪＴＡＧ部品は、バウンダリスキャンという手順を実行する構成を有する。バウンダリスキャンが所定の仕様の一例である。ＪＴＡＧ部品は、部品のピンと、内部のコアロジックとの間にバウンダリセルを有している。ＪＴＡＧ部品のピン上のデータはバウンダリセルに読み込み可能である。また、バウンダリセルに設定した値はピン上に書き出し可能である。それぞれのピンに接続されるバウンダリセルは、シーケンシャルに値をシフト可能なレジスタ群となっている。この意味で、バウンダリセルはバウンダリ・スキャン・レジスタとも呼ばれる。
【００１１】
また、データがシフトされるバウンダリセルの並びの一方にＴＤＩ（Test Data Input
）ピンが接続され、他方にＴＤＯ（Test Data Output）ピンが接続される。ＪＴＡＧ部品にＥＸＴＥＳＴ命令を設定しＴＡＰステート（以降ステートと記す）をキャプチャＤＲに遷移させ、試験機３０２は、次にＴＣＫを送信する事により、ピンのデータをバウンダリセルに取り込むことができる。ＪＴＡＧ部品のステートをシフトＤＲに遷移させ、試験機３０２は、次にＴＣＫを送信する毎に、ＴＤＩを通じて、新たなデータをバウンダリセルに送り込むことができる。また、同時にキャプチャしたデータをシフトしＴＤＯに出力する事が出来る。上記でＴＤＩから所定のデータをバウンダリセルに並べ段階でＪＴＡＧ部品のステートをアップデートＤＲに遷移させ、試験機３０２は、次にＴＣＫを送信する事によって、バウンダリセルのデータをピンに出力することができる。
【００１２】
以下、ＴＤＩピン、およびＴＤＯピンを単にＴＤＩ、ＴＤＯと呼ぶ。
試験機３０２から出力されたＴＤＩ信号は、コネクタ３１１から基板内ＴＤＩを介してＪＴＡＧ−ＬＳＩ１内部のバウンダリセルに設定される。さらに、信号は、ＪＴＡＧ−ＬＳＩ１内部のバウンダリセル間でシフトされ、ＪＴＡＧ−ＬＳＩ２に読み取られる。さらに、信号は、ＪＴＡＧ−ＬＳＩ２内部のバウンダリセル間でシフトされ、ＴＤＯより観測される。また、ＪＴＡＧ−ＬＳＩ１、ＪＴＡＧ−ＬＳＩ２間の信号は、ＴＤＩからシフトインされ、ＪＴＡＧ−ＬＳＩ１の出力信号として、セットされる。そして、ＪＴＡＧ−ＬＳＩ１の出力信号は、ピンＰ１−Ｐ５からＪＴＡＧ−ＬＳＩ２のピンＰ６−Ｐ１０に引き渡される。ＪＴＡＧ−ＬＳＩ２のピンＰ６−Ｐ１０に引き渡された信号は、ＪＴＡＧ−ＬＳＩ２内のバウンダリセルに受け付けられる。ＪＴＡＧ−ＬＳＩ２内のバウンダリセルに受け付けられた信号は、ＪＴＡＧ−ＬＳＩ２内のバウンダリセル間をシフトされ、ＴＤＯで観測される。またコネクタ３１１とＪＴＡＧ−ＬＳＩ１間の信号は、試験機３０２から出力した信号をＪＴＡＧ−ＬＳＩ１のバウンダリセルで受け取りシフトし、ＪＴＡＧ−ＬＳＩ２のバウンダリセルを経由し、ＴＤＯで観測される。なお、ＪＴＡＧ−ＬＳＩ２とコネクタ３１２間の信号は、折り返し基板を通じて試験される。
【００１３】
上記の試験により、途中経路のショートやオープン（断線）等の障害が検出される。以上のような試験プログラムを生成するための入力情報として、ＢＳＤＬ（Boundary-Scan Description Language）ファイルと、ネットリストが用いられる。ＢＳＤＬファイルには、ＪＴＡＧ部品の内部情報としてピンとバウンダリセルの対応関係、およびピンの入出力の指定が記載されている。また、ネットリストは、プリント基板３０９に搭載された部品のピン間の接続関係、プリント基板３０９上の部品名と型格番号の対応関係が記載されている。以下、型格番号を単に、型格、型番等ともいう。ネットリストも１つのファイルに格納されることが多い。ＪＴＡＧ部品の試験プログラムの生成には、ＪＴＡＧテストジェネレータが用いられる。情報処理装置１は、ＪＴＡＧテストジェネレータとして機能するため、主記憶上に実行可能に展開されてコンピュータプログラムを実行する。
【００１４】
ＪＴＡＧテストジェネレータは、ＢＳＤＬファイルとネットリストという２つのファイルを解析することにより、信号ごとにどのピンを駆動し、どのピンで信号を受け取るか、という試験パターンを決定することができる。決定された試験パターンを基にＪＴＡＧのあるピンから信号を出力するには、ＴＤＩから入力されたデータをバウンダリセル間で、何回（例えば、Ｎ１回）シフトすればよいかをＪＴＡＧテストジェネレータが自動で決定できる。次に、信号が出力されるピンに繋がる相手ピンに入力される値をコネクタ３１１のピンＴＤＯで観測するためには、信号をコネクタ３１１の相手ピンに接続されるバウンダリセルでキャプチャし、何回（例えば、Ｎ２回）シフトすればよいかということも、ＪＴＡＧテストジェネレータが自動的に決定できる。このような方法で、ＪＴＡＧテストジェネレータは、ＪＴＡＧ部品を搭載したプリント基板３０９の試験パターンを決定し、試験プログラムを自動生成可能である。
【００１５】
図２は、ＪＴＡＧ部品とＪＴＡＧ試験回路を搭載しない部品とを混在させたプリント基板９の試験回路の一例である。図２では、試験対象のプリント基板９と、試験プログラムを生成し、試験を管理する情報処理装置１と、情報処理装置１で作成された試験プログラムにしたがってプリント基板９の試験を実行する試験機２とが例示されている。
【００１６】
情報処理装置１は、ＣＰＵ(Central Processing Unit)、主記憶装置等、外部記憶装置
、表示装置、入力装置、通信インターフェース等を有するコンピュータである。また、情報処理装置１は、着脱可能な記憶媒体のアクセス装置等を有してもよい。
【００１７】
また、試験機２は、情報処理装置１との通信インターフェース、プリント基板９への接続インターフェース等を有する電子回路である。試験機２は、Ｉ２Ｃコントローラ、信号ドライバレシーバ、ＴＡＰ（Test Access Port）制御を有する。Ｉ２Ｃコントローラは、プリント基板９上のＩ２Ｃ部品と通信する通信部である。Ｉ２Ｃコントローラは、Ｉ２Ｃに規定された制御シーケンスにしたがって、Ｉ２インターフェースを介して、Ｉ２Ｃ部品と通信する。
【００１８】
信号ドライバは、ＰＩＯ等を通じて、試験パターン以外の通常のデータを各部品と授受するデータ送受信部である。
【００１９】
ＴＡＰ制御部は、ＴＡＰと呼ばれるＪＴＡＧ部品のピンとのデータの授受を制御する。ＴＡＰとしては、ＪＴＡＧ部品のＴＤＩ（Test Data Input）、ＴＤＯ（Test Data Output）、ＴＭＳ(Test Mode Select )、ＴＣＫ（Test Clock）、ＴＲＳＴ（Test Reset）の各ピンが含まれる。
【００２０】
図２の例では、ＪＴＡＧ部品以外に、Ｉ２Ｃインターフェースを備えた部品が搭載されている。Ｉ２Ｃインターフェースを備えた部品を以下、Ｉ２Ｃ部品と呼ぶ。図２では、２個のＪＴＡＧ部品（ＪＴＡＧ１、ＪＴＡＧ２）が例示されている。２個のＪＴＡＧ部品の下の方から伸びる点線は、ＪＴＡＧ部品の制御信号（ＴＤＩ／ＴＤＯ等）である。また、ＪＴＡＧ部品に接続される実線は、バウンダリセルに接続されたピンからの配線である。
【００２１】
また、図２の例では、５個のＩ２Ｃ部品として、Ｉ２Ｃ−ＰＩＯ１（Programmable Input-Output 1）、Ｉ２Ｃ−ＰＩＯ２、Ｉ２Ｃ−ＭＰＸ（Multiplexer）、Ｉ２Ｃ−ＲＯＭ（Read Only Memory）、Ｉ２Ｃ−ＡＤＣ（Analog Digital Converter）が例示されている。ここで、Ｉ２Ｃ−ＰＩＯ１、Ｉ２Ｃ−ＰＩＯ２は、プログラム入出力チップ、プログラム入出力部品、プログラム入出力モジュール、プログラムロジックなどと呼ばれる。Ｉ２Ｃ−ＰＩＯ１等は、Ｉ２Ｃインターフェースからの制御シーケンスにしたがって、制御信号の入力を受け付け、入出力ポートからデジタル・データの入出力を行う。Ｉ２Ｃ−ＭＰＸ
は、Ｉ２Ｃインターフェースからの制御シーケンスにしたがって、複数のチャネルの１つを選択する。試験機２等の上位装置は、Ｉ２Ｃインターフェースを通じて、Ｉ２Ｃ−ＰＩＯと通信し、入出力ポートからデジタル・データの入出力を行う。また、試験機２等の上位装置は、Ｉ２Ｃ−ＭＰＸで選択したチャネル上のＩ２Ｃ−ＰＩＯと通信し、入出力ポートからデジタル・データの入出力を行う。Ｉ２Ｃ−ＲＯＭは、Ｉ２Ｃインターフェースからの制御シーケンスにしたがって、制御信号の入力を受け付け、ＲＯＭからデータを読み出し、Ｉ２Ｃインターフェースに出力する。Ｉ２Ｃ−ＡＤＣは、Ｉ２Ｃインターフェースからの制御シーケンスにしたがって、制御信号の入力を受け付け、アナログ入力信号をデジタル・データに変換し、Ｉ２Ｃインターフェースに出力する。
【００２２】
各Ｉ２Ｃ部品に接続される点線はＩ２Ｃ制御信号である。また、各Ｉ２Ｃ部品に接続される実線は、各部品の制御下にあるＰＩＯ（プログラマブル入出力）のピンからの配線である。
【００２３】
ところで、ＪＴＡＧテストジェネレータがプリント基板９の試験パターンを自動生成可能な部分は、下記の通りである。第１は、コネクタ−ＪＴＡＧ部品間の接続部分であり、図２の配線Ｌ１Ａ、Ｌ１Ｂで接続された箇所が該当する。第２は、ＪＴＡＧ部品−ＪＴＡＧ部品接続部分であり、図２の配線Ｌ２で接続された箇所が該当する。第３は、コネクタ−コネクタ接続部分であり、図２の配線Ｌ３で接続された箇所が該当する。
【００２４】
一方、Ｉ２Ｃ部品等、ＪＴＡＧ部品以外の部品は、ＪＴＡＧ規格に準拠しないため、ＪＴＡＧテストジェネレータからは未知な部品である。したがって、ＪＴＡＧテストジェネレータは、ＪＴＡＧ部品以外の部品を含んだ回路の試験プログラムを自動生成できない。ＪＴＡＧテストジェネレータが試験プログラムを自動生成できない箇所として、以下を例示できる。
【００２５】
第１は、コネクタ―Ｉ２Ｃ部品接続部分であり、図２の配線Ｌ４で接続された箇所が該当する。第２は、Ｉ２Ｃ部品―Ｉ２Ｃ部品接続部分であり、図２の配線Ｌ５で接続された箇所が該当する。第３は、Ｉ２Ｃ部品―ＪＴＡＧ部品接続部分であり、図２の配線Ｌ６で接続された箇所が該当する。第３は、ＲＯＭ（Read Only Memory）のＩ２Ｃインターフェースのピン７である。第４は、ＡＤＣ（Analog Digital Converter）Ｉ２Ｃインターフェースのピン８とＡＤＣ入力ピンである。
【００２６】
以下、比較例として、ＪＴＡＧ試験回路とは異なる部品の一例として、Ｉ２Ｃ部品のテスト方法を説明する。
【００２７】
Ｉ２Ｃインターフェースの制御は、試験機２側にＩ２Ｃコントローラ素子を搭載した専用のコントローラを用いて制御するか、試験機２のテスタピンを用いてＩ２Ｃの一連のシーケンスを実行することで可能となる。
【００２８】
また、試験機２側に搭載されたＩ２Ｃコントローラ素子、あるいは、テスタピンの駆動信号を制御することために、Ｉ２Ｃインターフェースを制御するコマンドをマクロ化したマクロ言語が利用可能である。試験機２は、例えば、Ｉ２Ｃ制御に対応するマクロ言語の試験プログラムにしたがい、Ｉ２Ｃ部品の試験を実行する。例えば、試験機２は、Ｉ２Ｃ−ＭＰＸ（マルチプレクサ）を設定し、Ｉ２Ｃ−ＭＰＸに接続される目標のＩ２Ｃ部品を制御することで、Ｉ２Ｃ部品の試験を実行する。
【００２９】
図２では、Ｉ２Ｃインターフェースの回路は、ＩＣ２−ＭＰＸに接続される破線の配線で例示できる。Ｉ２Ｃインターフェースの回路情報は、例えば、ネットリストの情報として存在している。しかしながら、Ｉ２Ｃ部品の動作は個々のデータシートの情報でしかな
く、ＪＴＡＧテストジェネレータには全くの未知な部品である。そのため、ＪＴＡＧテストジェネレータは、Ｉ２Ｃ部品を含む回路の試験プログラムを自動生成できない。そこで、本比較例では、Ｉ２Ｃ部品等、ＪＴＡＧ部品以外の部品を含むプリント基板９の試験プログラム開発者が回路図を調査し、図２のような接続関係を読み取り、Ｉ２Ｃ部品等ＪＴＡＧ部品以外の部品のデータシートを熟読してテスト計画を立案する。この手順は、以下の通りである。
【００３０】
プリント基板９の試験プログラム開発者は、以下のような試験プログラムをマニュアルで、つまり手作業で作成する。試験プログラムは、例えば、試験のシーケンスを実行する試験機２上のマクロ命令を用いたプログラムをいう。そして、プリント基板９の試験プログラム開発者は、作成した試験プログラムを試験機２で実行することで、以下の試験を実行する。
（１）図２の配線Ｌ４について：試験機２に接続されたコネクタ１１から信号を出力し、これに繋がるＩ２Ｃ部品から信号を読み取るための試験。（２）図２の配線Ｌ５：Ｉ２Ｃ−ＭＰＸを制御し、目標のＩ２Ｃ部品の目標ピンから信号を駆動し、目標ピンに繋がるＩ２Ｃ部品から信号を読み取る試験。
（３）図２の配線Ｌ７：Ｉ２Ｃ−ＭＰＸを制御し、対象のＩ２Ｃ−ＲＯＭを読み出し、所定のデータが書かれているかを確認する試験。
（４）図２の配線Ｌ８：Ｉ２Ｃ−ＡＤＣ（電圧測定部品）に印加される電圧を解析し、Ｉ２Ｃ−ＭＰＸを制御する試験。この試験では、例えば、試験プログラム開発者は、対象のＩ２Ｃ−ＡＤＣから読み出したデータ（分圧された電圧）が部品の許容された電圧内に入っているか試験する。
（５）図２の配線Ｌ６：図３に、図２の配線Ｌ６部分を拡大した回路を例示する。図３では、Ｉ２Ｃ−ＭＰＸのチャネルの１つを通じてＩ２Ｃ−ＰＩＯが制御される。Ｉ２Ｃ−ＰＩＯの入出力ポートは、ＪＴＡＧ部品と接続されている。
【００３１】
ＪＴＡＧ部品の試験プログラムの生成は、通常、ＪＴＡＧテストジェネレータが使用される。図３のような構成に対して、試験プログラム開発者は、例えば、ＪＴＡＧテストジェネレータのクラスタテストの機能を利用する。クラスタテストの機能を提供するＪＴＡＧテストジェネレータをクラスタテストジェネレータと呼ぶ。
【００３２】
クラスタテストとは、例えば、未知の部品をブラックボックス化し、ＪＴＡＧ部品を含む回路で試験を実行する機能である。クラスタテストでは、未知の部品は、入力ピンに入力されるビット列と、出力ピンから出力されるビット列の指定によって、ブラックボックス化される。ＪＴＡＧテストジェネレータは、ＪＴＡＧ部品に繋がる未知の部品をブラックボックス化された部品として受け付ける。そして、ＪＴＡＧテストジェネレータは、ＪＡＴＧ部品と、ＪＴＡＧ部品以外のブラックボックス化された部品が混在した回路に対する試験プログラムを生成する。
【００３３】
例えば、図３の例では、試験プログラム開発者は、回路図を読み、信号Ａ、ＢがＩ２Ｃ部品とＪＴＡＧ部品との配線であり、テスト可能な部分であると認識する。次に、信号Ａ、ＢでＪＴＡＧ部品のピンが受け取るＪＴＡＧ信号パターンを定義する。ＪＴＡＧ信号パターンは、例えば、図３のＩ２Ｃ−ＰＩＯとＪＴＡＧとの間の配線のオープン故障、配線間の短絡等を考慮した、ＪＴＡＧ部品における入出力ビット列である。次に、試験プログラム開発者は、それぞれのＪＴＡＧ信号パターンに対して、Ｉ２Ｃ−ＭＰＸを介して該当Ｉ２Ｃ−ＰＩＯを制御して、プログラムマブル出力ポートから上記定義したＪＴＡＧ信号パターンをＪＴＡＧ部品に出力するためのＩ２Ｃ−ＭＰＸ制御命令列およびＩ２Ｃ−ＰＩＯの制御命令列を定義する。
【００３４】
上記で定義したＪＴＡＧ信号パターンとこれを出力する為のＩ２Ｃ−ＭＰＸの制御命令
列およびＩ２Ｃ−ＰＩＯ制御命令列をＪＴＡＧのクラスタテストジェネレータに与える。クラスタテストジェネレータは、与えられたＪＴＡＧ信号パターンをＪＴＡＧの制御シーケンスに変換する。そして、クラスタテストジェネレータは、図２のＩ２Ｃ−ＰＩＯから出力した信号を、ＪＴＡＧ部品を介して受け取り、受け取った信号を確認する試験機２の試験プログラムを作成する。
【００３５】
しかしながら、以上のような比較例１の手順には、次の問題点がある。
（１）試験プログラムの自動生成が十分でない：図２で配線Ｌ４から配線Ｌ８の部分の試験プログラムは試験プログラム開発者によるマニュアル作成であり、自動生成を行うことができない。比較例１の作成方法を要約すると、試験プログラム開発者は、回路図を解析しＩ２Ｃ部品を認識し、認識したＩ２Ｃ部品がどの部品に接続されているかを把握する。さらに、試験プログラム開発者は、Ｉ２Ｃ制御信号の経路を調べるために外部コネクタからＩ２Ｃ−ＭＰＸを通り目標のＩ２Ｃ部品までの接続ツリーを認識する。次に、試験プログラム開発者は、注目したＩ２Ｃを動作させるために、マクロ言語を利用し、該当するＩ２Ｃ−ＭＰＸを制御し、該当のＩ２Ｃ部品を動かす試験プログラムを作成する。そのためには、試験プログラム開発者は、各Ｉ２Ｃ部品の動かし方をデータシートで調べて理解する必要がある。以上のように、試験プログラムの自動生成が十分でないと、開発時間が増加する。また、開発効率、および試験プログラムの良否は、開発者のスキルに依存する。（２）障害位置指摘が困難：比較例１の手順で作成された試験プログラムは良否判定用である。したがって、試験プログラムの実行によって良否判定は可能であるが、障害診断、例えば、障害箇所の特定は困難である。つまり、比較例１の試験プログラムでは、例えば、試験パターンの第Ｎステップ目において、Ｉ２Ｃ部品の読取で期待値と読取値が異なるというメッセージが出力される。そのような試験プログラムのメッセージを基に、修理担当者が試験パターンを解析する。すなわち、修理担当者は、試験プログラムと回路図とを基に、部品間の信号を解析し、ピン間のオープン故障、ショート故障を論理的に見出すという作業を行う。したがって、比較例１では、修理担当者の手間と負担を改善するという課題が残される。
【００３６】
＜比較例２＞
図４は、比較例２に係るシミュレーションによる試験プログラム生成を例示する図である。図４は、ＩＣ１、ＩＣ２、ＩＣ３という３個の部品が接続されたプリント基板を例示する。図４では、入力信号として、ＩＣ１への入力ＩＮ０−ＩＮ３と、ＩＣ２への入力信号ＩＮ４−ＩＮ７とが、例示されている。また、図４では、出力信号として、ＩＣ３からの出力信号ＯＵＴ０−ＯＵＴ２が例示されている。
【００３７】
シミュレーションによる試験パターンの生成は以下の通りである。まず、シミュレーションで利用されるデータは以下の通りである。
【００３８】
第１のデータは、プリント基板のネットリストである。
第２のデータは、搭載部品のすべての動作モデルである。搭載部品の動作モデルは、通常、搭載部品の入出力の関係の動作を示す、ＶＨＤＬ（VHSIC(Very High Speed Integrated Circuits) Hardware Description Language）またはＶｅｒｌｏｇ等のハードウェア仕様記述言語で記述されたデータである。
【００３９】
Ａ．試験プログラム生成の手順は以下の通りである。ここでは、例えば、シミュレーションを実行する情報処理装置１が試験プログラム生成を行う。
（Ａ１）情報処理装置１は、プリント基板の入力ピンにランダムパターンを印可する試験パターンを生成する。
（Ａ２）情報処理装置１は、試験パターンの各ステップに於いて、各部品の入力ピンのレベルから、動作モデルの式を計算し出力ピンのレベルを計算する。
（Ａ３）上記の結果、次段ＩＣ、例えば、図４のＩＣ３の入力ピンのレベルが決まる。そこで、情報処理装置１は、次段の部品の動作モデルの式を計算し出力ピンのレベルを求める。こうして、情報処理装置１は、順次すべてのピンの出力ピンのレベルを求める。
（Ａ４）情報処理装置１は、上記Ａ２−Ａ３をランダムパターンの全ステップで実行する。
【００４０】
Ｂ．故障シミュレーションによるテストと評価の仕方は以下の通りである。
（Ｂ１）故障を模擬するために、各ノード１つずつをＧＮＤ（接地電位）に落としたネットリストを作る。情報処理装置１は、上記のシミュレーションを行う。情報処理装置１は、シミュレーションにより、プリント基板の出力、例えば、図４の場合はＯＵＴ０−２の結果が良品時と異なることを確認する。故障を模擬したネットでＯＵＴ０−２の結果が良品時と異なると、情報処理装置１は、ランダムパターンが故障検出可能であると判定する。
（Ｂ２）故障を検出しない場合は、情報処理装置１は、ランダムパターンを変更し再度（Ｂ１）を実行する。
（Ｂ３）情報処理装置１は、なるべく多くのノードの故障を検出するランダムパターンを選ぶ。
【００４１】
Ｃ．以上のようなシュミュレーションによるテスト生成の問題点は以下の通りである。（Ｃ１）非現実的な膨大なテストパターンを発生する傾向がある。
（Ｃ２）プリント基板のすべての部品の動作モデルを準備するため、動作モデル準備の手間が大きい。
（Ｃ３）障害解析が容易にできない。
【００４２】
＜比較例３＞
比較例３では、ＪＴＡＧインターフェースによるプリント基板の試験手順を例示する。図５は、ＪＴＡＧテストジェネレータの処理を例示する図である。図５で、ネットリスト２１、ＢＳＤＬファイル２２、テストアクセス情報３２６、並列オープンショート３２７等は、例えば、情報処理装置１の主記憶装置や外部記憶装置に格納される。また、例えば、テストデータベース３２８、オープンショートテスト３３０等は、例えば、試験機３０２の外部記憶装置に格納される。
【００４３】
まず、ＪＴＡＧテストジェネレータは、ネットリスト２１と、ＢＳＤＬファイル２２から、テストアクセス情報３２６を生成する（Ｊ１）。ネットリスト２１は、プリント基板上のピン間の接続関係を示す情報と、プリント基板上の部品名と型格番号の対応を示す情報を含む。ネットリスト２１が接続情報の格納部の一例である。ＢＳＤＬファイル２２が第１の動作モデル格納部の一例である。接続関係を示す情報が接続情報の一例である。
【００４４】
接続関係を示す情報は、例えば、（ネット識別情報、ピン１、ピン２）で例示される。（ネット識別情報、ピン１、ピン２）は、ピン１とピン２とが、ネット識別情報で示されるネットで接続されることを例示する。ここで、ピン１、ピン２等はピンを識別する情報である。ピンを識別する情報の形式は、例えば、部品名−ピン番号で例示される。また、部品名と型格番号の対応を示す情報は、（部品名、型格番号）で例示される。ここで、部品名は、プリント基板上の回路図上の部品名である。一方、型格番号は、部品の型番である。
【００４５】
ＢＤＳＬファイル２２は、ＪＴＡＧ部品のピンに接続される内部のバウンダリセルとの対等関係、ピンの入出力を定義する。ＪＴＡＧ部品のバウンダリセルは、ＪＴＡＧ部品のピンと内部コアロジックの間に配置されるレジスタ群ということができる。バウンダリセルは、シリアルに結合されシフトレジスタとして機能する。それぞれのバウンダリセルに
は、ＴＤＩ、ＴＤＯ等のテストアクセスポート（ＴＡＰとも呼ばれる）から試験パターンを入力し、シフトすることができる。したがって、バウンダリセルが結合されたシフトレジスタは、試験パターンの設定と読み出しが可能である。言い換えると、バウンダリセルは、各ピンと内部コアロジックの間に挿入されるプローブとして機能する。
【００４６】
ＪＴＡＧテストジェネレータは、ＢＤＳＬファイル２２によって、ピンごとに、シフトレジスタの関係を認識する。したがって、ＪＴＡＧテストジェネレータは、ＴＤＩから設定された試験パターンがピンごとにシフトする順を認識する。
【００４７】
テストアクセス情報３２６は、試験対象のプリント基板上のネットのうち、信号を送信するドライブピンと、信号を受信するレシーブピンを含むネットの集合として例示される。ドライブピンとレシーブピンを含むネットは、試験可能なネットということができる。従ってＪＴＡＧテストジェネレータは、ネットリストを読み１ネット毎接続されたピンをＢＳＤＬから調べこれがドライブピンかレシーブピンかを特定し、１ネットの接続ピン全てを読み終わった段階で、ドライブピンとレシーブピンが存在した場合、これを試験可能ネットとして１ネット分のテストアクセス情報を記録する。これを全ネット対して行いテストアクセス情報を生成する。
【００４８】
次に、ＪＴＡＧテストジェネレータは、並列テストパターン３２７を生成する（Ｊ２）。並列テストパターン３２７は、テストアクセス情報３２６として取得されたネット間でユニークな試験パターンである。つまり、並列テストパターン３２７は、ネットごとに異なるビット列として決定される。そして、並列テストパターン３２７は、ドライブピンとレシーブピンに割り当てた情報として定義される。ドライブピンには、ドライブレベルが指定される。また、レシーブピンには、ドライブピンに対応する期待データが指定される。期待データは、例えば、ドライブピンに試験パターンの信号を出力したときにレシーブピンで観測することが期待できるデータという意味である。
【００４９】
ネットごとにユニークな試験パターンを決定するのは、配線短絡時の干渉を検出可能とするためである。例えば、短絡した２つのネットのレシーブピンの読み取り値は、期待パターンが同じ箇所ではエラーが発生せず、期待パターン異なる箇所でエラーが発生するだろうと予測されます。従って試験に於いてエラーが発生した段階で、上記に該当するネット間を短絡と特定します。ＪＴＡＧテストジェネレータは、並列テストパターン３２７の作成では、実際の制御手順に無関係に、ピンごとの目標の制御値を設定する。並列テストパターン３２７は、並列オープンショートテストパターンとも呼ばれる。
【００５０】
次に、ＪＴＡＧテストジェネレータは、テストデータベース３２８に、ネットごとの試験パターン、当該ネット内のピンの情報、ドライブピン、レシーブピンの区別等を記録する。テストデータベース３２８は、ネットごとに試験パターン全体が認識できる情報を保持する。テストデータベース３２８は、例えば、障害解析等に使用される。
【００５１】
次に、ＪＴＡＧテストジェネレータは、最終テストパターンを生成する（Ｊ３）。最終テストパターンが制御情報の一例である。ＪＴＡＧテストジェネレータは、ＢＤＳＬを基に、並列テストパターンで設定されたドライブピンのドライブレベル（ビット値、１／０）、およびレシーブピンの期待値（ビット値、Ｈ／Ｌ）をバウンダリセルイメージの配列の該当ビット位置に埋め込む。この配列はバウンダリセルの連結順になっており、更にＪＴＡＧ部品の連結したものになっている。図５の例では、ＪＴＡＧ１、ＪＴＡＧ２の２つのＬＳＩのバウンダリセルを格納する配列が例示されている。この配列の中の０からｎは、各ＪＴＡＧ部品のバウンダリセルに対応するエントリが例示されている。この配列をシフトし先頭から溢れたもののドライブレベルをＴＤＩへの書き込みパターンとし、期待値をＴＤＯからの読み出す期待パターンとして作成する。ＪＴＡＧテストジェネレータは、
上記で作成した最終テストパターンをオープンショートテストファイル３３０に出力する。
【００５２】
試験機３０２は、オープンショートテストファイル３３０を読み出し、試験を実行する。具体的には、試験機３０２は、ＪＴＡＧインターフェースのＴＤＩからビット列を入力し、結合されたバウンダリセル間をシフトし、ＴＤＯから観測する。そして、試験機３０２は、レシーブピンで期待値と一致する信号が受信できたか否かを判定する。そして、試験機３０２は、判定の結果、エラーが発生した場合には、テストデータベース３２８を参照し、障害位置を指摘する。
【実施例】
【００５３】
図６から図９の図面を参照し、実施例に係る情報処理装置１を説明する。本実施例では、Ｉ２Ｃ部品と、ＪＴＡＧ部品を含むプリント基板９の試験プログラムを生成する情報処理装置１について説明する。
【００５４】
比較例３で述べたように、ＪＴＡＧテストジェネレータではＩ２Ｃ部品が未知のため、ＪＴＡＧに関する部分だけのテストが生成されている。そこで、本実施例では、Ｉ２Ｃ部品がテストジェネレータで認識可能な形式で表現される。そして、テストジェネレータは、Ｉ２Ｃ部品のピンを含むネットをテストアクセス情報に組み込む。すなわち、実施例の情報処理装置１は、Ｉ２Ｃ部品を含む回路のオープンショートテストを作成し、テストデータベースを作成する。
【００５５】
一方、実施例の試験機２は、試験を実行し、さらに、障害位置を指摘可能となる。Ｉ２Ｃインターフェースは、ＪＴＡＧと異なり部品の制御やツリー構造の接続に対応する。このようなＩ２Ｃインターフェースの特徴のため、実施例では、Ｉ２Ｃ部品を含むプリント基板９の内部構造の表現の仕方、ピン間のツリー構造の表現、およびこれらの表現を処理する手順が提案される。なお、プリント基板９、試験機２、および情報処理装置１を含むシステムの構成は、図２と同様である。
【００５６】
＜試験対象部品の例＞
図６は、試験対象のプリント基板９に含まれるＩ２Ｃ部品の１つであるＩ２Ｃ−ＰＩＯを例示する図である。Ｉ２Ｃ−ＰＩＯが第２の集積回路の一例である。プリント基板９が電子装置の一例である。図６は、一般的な８ビットＰＩＯ（プログラムＩＯ）の入出力ピンを例示する。ＳＤＡ（シリアルデータ）、ＳＣＬ（シリアルクロック）はそれぞれＩ２Ｃ制御信号のピンであり、データピンとクロックピンである。ＳＤＡ／ＳＣＬが通信ピンの一例である。
【００５７】
また、Ｐ０−７はプログラマブルな入出力信号のピンである。Ｐ０−７の各ピンは、入力ピン、出力ピンの一例である。Ａ０−２はスレーブアドレスのオプションピンである。Ｉ２Ｃ部品は内部にＩＣのスレーブアドレスを持っている。Ｉ２Ｃ部品はＡ０−２の値を内部に保持するスレーブアドレスに加算し、回路としてのスレーブアドレスを算出する。
【００５８】
図７は、Ｉ２Ｃ部品の接続例である。Ｉ２Ｃ−ＰＩＯ部品のＩ２Ｃバス（ＳＤＡ／ＳＣＬ）は、通常、Ｉ２Ｃ−ＭＰＸ（マルチプレクサ）または外部の装置に接続される。１つのバスに複数のＩ２Ｃ部品を接続できる。１つのバスに接続された複数のＩ２Ｃ部品は、スレーブアドレスで選択される。Ｉ２Ｃ−ＭＰＸが第３の集積回路の一例である。
【００５９】
Ｉ２Ｃ−ＭＰＸは、Ｉ２Ｃバスを拡大する。Ｉ２Ｃ−ＭＰＸでは、ＳＤＡ／ＳＣＬがチャネルと呼ばれる複数の経路に分岐する。図７では４チャネルのものが示されている。Ｉ２Ｃ−ＭＰＸもスレーブアドレスを有している。また、Ｉ２Ｃ−ＭＰＸは、スレーブアド
レスを変更するためのアドレスピンを有する。図７で、ＭＤＡｎ，ＭＣＬｎ（ここで、ｎ＝０，１，２，３）はマルチプレックスされたクロックとデータのピンを示している。
【００６０】
Ｉ２Ｃ部品は、通常、制御レジスタを持っている。Ｉ２Ｃ−ＰＩＯの例ではＰ０−７の各ピンの入出力を決める方向レジスタ（ＣＯＮＦ）、各ピンの出力レベルを設定する出力レジスタ（ＯＵＴ）、各ピンのレベル、例えば、０／１を取り込む入力レジスタ（ＩＮ）がある。さらに、Ｉ２Ｃ−ＭＰＸは、制御レジスタとして、Ｉ２ＣバスＳＤＡ／ＳＣＬをどのＭＤＡｎ／ＭＣＬｎに繋ぐかを設定するためのチャネル選択レジスタを有している。ＭＤＡｎ／ＭＣＬｎがチャネル通信ピンの一例である。
【００６１】
図８に、Ｉ２Ｃ部品を制御する制御シーケンスで指定されるデータ例を示す。
図８は、Ｉ２Ｃ部品を制御する制御装置とＩ２Ｃ部品との間で、授受されるバイト列を例示する。Ｉ２Ｃ部品の制御シーケンスでは、ＳＤＡとＳＣＬを用いてデータ転送が行われる。ここでは、Ｉ２Ｃを制御する制御装置がＳＤＡを通じて送受信するバイト列によって、Ｉ２Ｃにアクセスする制御シーケンスを例示する。この制御シーケンスは、Ｉ２Ｃ部品の内部のレジスタへの設定を行うシーケンスであるので、設定シーケンスとも呼ばれる。設定シーケンスでは、例えば、３バイトの設定バイト列がＳＤＡを通じて送信される。
【００６２】
１バイト目：スレーブアドレス＋Ｒ／Ｗビット；                  
２バイト目：レジスタアドレス；                  
３バイト目：レジスタへの設定値；
制御装置は、１バイト目で、対象となる部品を選択するためのスレーブアドレスとＲ／Ｗビットを送信する。１バイト目を受信したＩ２Ｃ部品は、自己のスレーブアドレス＋アドレスピンの値が受信したスレーブアドレスと一致した場合に、自身が選択されたと認識する。また最後のＲ／Ｗビット（０ビット目）で以後の転送がリードアクセスかライトアクセスかが示される。例えば、Ｒ／Ｗビット＝０は、ライト操作を記載している。制御装置は、２バイト目にレジスタアドレスを送信する。レジスタアドレスは、データの授受を行う対象のレジスタを指定する情報である。さらに、制御装置は、３バイト目で、２バイト目に指定したレジスタへの設定値を送信する。以上が、Ｉ２Ｃ制御シーケンスの一般的な例である。
【００６３】
例えば、図７の構成で、Ｉ２Ｃ−ＭＰＸのチャネル選択レジスタが設定されると、制御装置は、Ｉ２Ｃ−ＭＰＸを介して、選択されたチャネルのＩＣ２−ＰＩＯと通信可能となる。したがって、制御装置は、選択されたチャネルのＩＣ２−ＰＩＯの方向レジスタ、出力レジスタに値を設定でき、入力レジスタから値を取得できる。
【００６４】
図９に、本実施例に係る、Ｉ２Ｃ部品を含むプリント基板９の試験プログラム作成処理を例示する。比較例３で説明したＪＴＡＧテストジェネレータに対して、図９の機能を提供するシステムは、汎用のテストジェネレータと呼ぶことができる。情報処理装置１は主記憶装置に実行可能に展開されたコンピュータプログラムを実行することによって、本実施例のテストジェネレータとして機能する。図９で、ネットリスト２１、ＢＳＤＬファイル２２、Ｉ２Ｃ部品の動作モデル２３、Ｉ２Ｃ部品表２４、Ｉ２Ｃツリー２５、テストアクセス情報２６、並列オープンショート２７、並列Ｉ２Ｃファンクション２９等は、例えば、情報処理装置１の外部記憶装置または主記憶装置に格納される。また、例えば、テストデータベース２８、オープンショートテスト３０、Ｉ２Ｃファンクション３１等は、例えば、試験機２の外部記憶装置に格納される。
【００６５】
本実施例では、テストジェネレータによる処理前に、ユーザが、Ｉ２Ｃ部品の動作モデル２３を作成することが前提となる。Ｉ２Ｃ部品の動作モデル２３は、Ｉ２Ｃ部品の型格番号、ピンの仕様、スレーブアドレス、レジスタの定義等を含む。Ｉ２Ｃ部品の動作モデ
ル２３は、所定の書式で記述されたテキストファイルとして定義できる。Ｉ２Ｃ部品の動作モデル２３は、第２の動作モデル格納部の一例である。
【００６６】
そして、テストジェネレータは、ネットリスト２１と、Ｉ２Ｃ部品の動作モデル２３と、ＢＳＤＬ２２とから、テストアクセス情報を生成する（Ｓ１）。テストアクセス情報の生成手順は、Ｉ２Ｃの部品表作成（ＳＳ１）、Ｉ２Ｃツリー作成（ＳＳ２）、テストアクセス情報の出力（ＳＳ３３）というステップを含む。情報処理装置１のＣＰＵは、テストアクセス情報抽出部の一例として、Ｓ１の処理を実行する。
【００６７】
すなわち、テストジェネレータは、ネットリスト２１と、Ｉ２Ｃ部品の動作モデル２３とから、Ｉ２Ｃ部品表２４を作成する（ＳＳ１）。ネットリスト２１は、図５で説明したものと同様、プリント基板９上のピン間の接続関係を示す情報と、プリント基板９上の部品名と型格番号の対応を示す情報を含む。
【００６８】
Ｉ２Ｃ部品表２４は、プリント基板９上の部品名と、部品名に対応するＩ２Ｃ部品の動作モデル２３へのポインタを含む。ネットリスト２１のネット（ネットの識別情報、ピンの識別情報１、ピンの識別情報２）において、ピンの識別情報は、例えば、部品名−ピン番号で定義される。したがって、テストジェネレータは、プリント基板９上の部品名をネットリスト２１から取得できる。テストジェネレータは、ネットリスト２１によって、プリント基板９上の部品名を認識するとともに、型格番号を基に、Ｉ２Ｃ部品の動作モデル２３を検索する。そして、テストジェネレータは、部品名に対応する型格番号のＩ２Ｃ部品の動作モデル２３内の情報への格納先情報を取得する。そして、テストジェネレータは、部品名に対応させたポインタとして、取得した格納先情報を設定する。Ｉ２Ｃ部品表２４の作成により、テストジェネレータは、プリント基板９上のＩ２Ｃ部品と、Ｉ２Ｃ部品の内部構造の認識が可能となる。したがって、テストジェネレータは、ネットリスト２１中のネットの部品名に対応する部品のインターフェース仕様を取得できる。
【００６９】
また、テストジェネレータは、Ｉ２Ｃツリー２５を作成する（ＳＳ２）。Ｉ２Ｃツリー２５は、プリント基板９上のＩ２Ｃ部品のピンとピンとの接続関係を木構造で記述した情報である。
【００７０】
Ｉ２Ｃツリー２５の作成では、テストジェネレータは、ネットリスト２１とＩ２Ｃ部品の動作モデル２３から、ＳＤＡ／ＳＣＬ、ＭＤＡ／ＭＣＬピンの接続を調べる。そして、テストジェネレータは、接続関係の階層の最上位であるＴＯＰ層（ＳＤＡ／ＳＣＬだけが存在する所）を確定する。そして、テストジェネレータは、ＴＯＰ層から、下位の層に接続されるピンを探索する。そして、探索されたピンにＡｃｓｎ（アクセス番号）を付与する。Ａｃｓｎは、Ｉ２Ｃバスの接続関係を示す情報である。Ａｃｓｎは、例えば、１つのネットにおいて、上位の部品のチャネル番号とそのチャネル番号のチャネルに接続される下位の部品のワイアード接続の接続先を示す識別情報とをペアにして、列記したものである。Ａｃｓｎは、上位の部品のチャネルと直下の部品のワイアード接続先を順に列挙したものとなり、ツリー構造の基礎情報となる。
【００７１】
さらに、テストジェネレータは、Ｉ２Ｃツリー２５の作成とともに、スレーブアドレスを確定するためのアドレスピンの信号レベル（１／０）を調査する。そして、テストジェネレータは、Ｉ２Ｃ部品内部のスレーブアドレスと、アドレスピンの信号レベルから、Ｉ２Ｃ部品のプリント基板９上のスレーブアドレスを算出し、ツリー解析データとしてＩ２Ｃツリー２５に書き込む。ただし、Ｉ２Ｃ部品のスレーブアドレスの格納先が、Ｉ２Ｃツリー２５に限定される訳ではない。ようするに、Ｉ２Ｃ部品の部品名と対応づけてスレーブアドレスが格納されればよい。したがって、例えば、テストジェネレータは、スレーブアドレスをＩ２Ｃ部品表２４に格納してもよい。
【００７２】
また、テストジェネレータは、ネットリスト２１とＩ２Ｃ部品の動作モデル２３からテストアクセス情報２６を作成する（ＳＳ３）。テストジェネレータである情報処理装置１は、テストパターン発生部として、Ｓ３の処理を実行する。テストジェネレータは、テストアクセス情報２６の作成では、Ｉ２Ｃ部品をＪＴＡＧ部品と同様に表現する。さらに、テストジェネレータは、Ｉ２Ｃ−ＡＤＣのネットを解析し測定ピンと電圧値をテストアクセス情報２６に出力する。さらに、テストジェネレータは、Ｉ２Ｃ−ＲＯＭの部品名等をテストアクセス情報２６に出力する。
【００７３】
次に、テストジェネレータは、並列テストパターン２７を生成する（Ｓ２）。並列テストパターン２７は、ＪＴＡＧ部品に対するテストパターンの他にＩ２Ｃ部品に対するものを含むこと以外は、図５の場合と同様である。すなわち、テストジェネレータは、テストアクセス情報２６として取得されたネットごとにユニークな試験パターンを決定し、ドライブピンとレシーブピンに割り当てる。
【００７４】
また、テストジェネレータは、テストデータベース２８に、ネットごとの試験パターン、当該ネット内のピンの情報、ドライブピン、レシーブピンの区別等を記録する。
【００７５】
また、テストジェネレータは、テストアクセス情報２６のＩ２Ｃ−ＡＤＣ、Ｉ２Ｃ−ＲＯＭの情報から、Ｉ２Ｃ−ＡＤＣ、Ｉ２Ｃ−ＲＯＭの機能を確認するための並列Ｉ２Ｃファンクション２９を作成する。並列Ｉ２Ｃファンクション２９は、Ｉ２Ｃ−ＡＤＣ、Ｉ２Ｃ−ＲＯＭ等の部品特性、電圧測定ピンの期待値等を含む。
【００７６】
次に、テストジェネレータは、最終テストパターンを生成する（Ｓ３）。最終テストパターンは、オープンショートテストと、Ｉ２Ｃファンクションテストのパターンを含む。最終テストパターンがインターフェース仕様にしたがった制御情報の一例である。テストジェネレータである情報処理装置１は、生成部の一例として、Ｓ３の処理を実行する。
【００７７】
すなわち、並列テストパターンは、ピン毎のテストパターンであるが、Ｉ２Ｃ部品のＰＩＯはポート毎にドライブまたはレシーブを行う。なおポートとは、Ｉ２Ｃ−ＰＩＯの複数の入出力ピンの集合で一回の操作で入出力できる単位である。例えば、８ビットのピンが１まとまりとして、１つのポートとして制御される。テストジェネレータは、まず、並列テストパターンの各ピン情報をＩ２Ｃ部品のＰＩＯポートに相当するポートデータ変数の該当ビット位置に埋め込み、これを１パターン分実施しポートごとの入出力データを作成する（ＳＳ６）。以下、ポートごとの入出力データをポートデータという。そして、テストジェネレータは、試験対象部品のポートデータのＡｃｓｎを基に、プリント基板９のエッジのプリント基板９外への接続点に繋がる０段目から、試験対象部品の前段目までのＩ２Ｃ−ＭＰＸを試験対象部品への接続に設定する。プリント基板９外への接続点は、外部接続点の一例である。
【００７８】
すなわち、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３で規定される制御シーケンスにしたがったデータ（以下、制御情報）を設定する。この制御情報の設定によって、ＭＰＸのチャネルが設定される。そして、プリント基板９のエッジのテスタピンから試験対象のポートの試験、つまりドライブピンの駆動と、レシーブピンでの観測が可能となる。
【００７９】
また、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３より方向レジスタの情報を取得し、方向レジスタへの入出力を設定する。さらに、テストジェネレータは、例えば、出力レジスタの出力値を設定し、入力レジスタの読取を設定する。以上を試験パターンの全ビット について実施する。以上の処理によって、オープンショートテストファイル３
０が作成される。例えば、図２の配線Ｌ４−Ｌ６の最終テストパターンが設定される。
【００８０】
さらに、テストジェネレータは、Ｉ２Ｃ−ＡＤＣ、Ｉ２Ｃ−ＲＯＭのファンクションテストファイル３１を作成する（ＳＳ７）。例えば、図２の配線Ｌ７のＩ２Ｃ−ＡＤＣ、あるいは配線Ｌ８のＩ２Ｃ−ＲＯＭ等を試験するための情報が設定される。オープンショートファイル３０、およびＩ２Ｃファンクションテストファイル３１は、コマンド列を含むテキストファイルあるいは処理の高速化のためにバイナリファイルでもよい、例えば、スクリプトファイルである。
【００８１】
試験機２は、オープンショートテストファイル３０およびＩ２Ｃファンクションテストファイル３１を読み出し、ビット列に翻訳し、試験を実行する。具体的には、試験機２は、ＪＴＡＧインターフェースのＴＤＩからテストパターンを供給し、ＴＤＯから出力されるパターンを期待値比較する。また、Ｉ２Ｃ部品の設定は専用命令で生成されており試験機２は、これを翻訳しＩ２Ｃのコントローラを制御することで、Ｉ２Ｃ−ＭＰＸの設定、Ｉ２Ｃ−ＰＩＯ等に、ドライブパターンを出力し、レシーブピンで受信された信号を期待値と比較する。そして、試験機２は、判定の結果、エラーが発生した場合には、テストデータベース２８を参照し、障害位置を指摘する。
【００８２】
本実施例の情報処理装置１は、Ｉ２Ｃ部品の動作モデル２３が設定されることを前提に、本実施例の処理を実行する。すなわち、情報処理装置１のＣＰＵは、テストジェネレータとして、主記憶上のコンピュータプログラムを実行し、Ｉ２Ｃ部品を含んだ試験プログラムを自動生成する。Ｉ２Ｃ部品の動作がテストデータベース２８として作成されているため、ＪＴＡＧ部品の回路と同様、試験機２は、エラーメッセージに、例えば、短絡ネット又は断線ピンを明示してオープンショートの箇所を指摘できる。
＜テストジェネレータの具体例＞
以下、テストジェネレータの処理を具体的に説明する。
＜＜テストジェネレータのＩ２Ｃ部品の動作モデルに対する処理＞＞
図１０は、Ｉ２Ｃ部品の動作モデル２３の構造を例示する図である。テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３の情報によって、Ｉ２Ｃ部品を認識するとともに、Ｉ２Ｃ部品の制御方法とインターフェース仕様を取得する。テストジェネレータは、例えば、ネットリスト２１から、プリント基板９の部品名に対応する型格番号を取得する。そして、テストジェネレータは、取得した型格番号に合致するＩ２Ｃ部品の動作モデル２３を複数のモデルから特定する。すなわち、テストジェネレータは、取得した型格番号と、Ｉ２Ｃ部品の動作モデル２３のＴＹＰＥ行とを比較する。そして、比較結果が一致であった場合、テストジェネレータは、一致したＩ２Ｃ部品の動作モデル２３を主記憶装置の構造体に読み取る。
【００８３】
さらに、テストジェネレータは、部品名とＩ２Ｃ部品の動作モデル２３へのポインタを格納したＩ２Ｃ部品表２４を生成する。次に、テストジェネレータは、ネットリスト２１の部品ピンの接続関係の部分を読取り、読み取った部品名が先のＩ２Ｃ部品表２４にあれば、Ｉ２Ｃ部品となる。さらに、テストジェネレータは、ネットリスト２１から読み取ったピンをＩ２Ｃ部品の動作モデル２３のピン部分から探索する。そして、ネットリスト２１に定義されたピンがＩ２Ｃ部品の動作モデル２３で定義されるどの機能のピンかを特定する。
【００８４】
このため、ネットリスト２１で定義されるピンの識別情報は、Ｉ２Ｃ部品の動作モデル２３に設定されるピン部分のピンの識別情報と共通化しておけばよい。ただし、ネットリスト２１で定義されるピンの識別情報と、Ｉ２Ｃ部品の動作モデル２３に設定されるピン部分のピンの識別情報との対応関係が定義されていてもよい。なお、以下の実施例では、ピンの識別情報として部品名−ピン番号が用いられる。ただし、部品名−ピン番号を省略
して単にピン番号ともいう。また、ピンの識別情報の形式が部品名−ピン番号に限定される訳ではない。
【００８５】
また、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３中で制御部の情報を取得する。Ｉ２Ｃ部品の動作モデル２３の制御部には、Ｉ２Ｃ部品の制御方法が記述されている。テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３の制御部の情報にしたがって、最終テストパターンを生成する。
＜＜Ｉ２Ｃ部品の動作モデルの定義＞＞
以下、図１０にしたがって、Ｉ２Ｃ部品の動作モデル２３を説明する。図１０では、Ｉ２Ｃ部品の動作モデル２３をコマンドとパラメータとによって定義する。コマンドは、例えば、ＴＹＰＥ，ＳＣＬ，ＳＤＡ，ＭＣＬ，ＭＤＡ，ＳＬＶＡ，ＡＤＤＲＥＳＳ，ＰＩＯ，ＶＭｅａｓ，ＲＯＭ，ＲＥＧＩＳＴＥＲ等である。なお、ＲＥＧＩＳＴＥＲのコマンド中に、ＭＰＸ，ＣＯＮＦ，ＯＵＴ，ＩＮ，ＶｍＳｔａｒｔ等のサブコマンドが定義される。また、図１０のように、Ｉ２Ｃ部品の動作モデル２３は、素子識別部、ピン部、および制御部の３つの部分に分けて定義される。Ｉ２Ｃ部品の動作モデル２３に定義される定義内容は、インターフェース仕様の一例である。
【００８６】
素子識別部は、ＴＹＰＥコマンドによる定義を含む。ＴＹＰＥコマンドのパラメータとして、機能名と、機能名に対する型格等が互換品分コンマ等で繋げて記述される。
【００８７】
ピン部は、ピン名称のコマンドによる定義を含み、パラメータで該当するピンの識別情報、例えば、番号を指定する。例えば、ＳＣＬコマンドとＳＤＡコマンドは、Ｉ２Ｃバスのクロックのピン番号とデータのピン番の定義を行う。また、ＭＣＬコマンドとＭＤＡコマンドは、マルチプレックスされたデータのピン番号とクロックのピン番号を指定する。より具体的には、チャネル順に、チャネル数分ピン番号がコンマ等で繋げて列記される。なお、チャネル選択レジスタの指定にしたがって、チャネル、すなわち、ピンが選択される。チャネル選択レジスタの指定が、選択指定の一例である。ＭＣＬコマンドとＭＤＡコマンドは、選択指定情報の一例である。
【００８８】
ＳＬＶＡコマンドは、Ｉ２Ｃ部品が内部に有するスレーブアドレスを指定する。
ＡＤＤＲＥＳＳコマンドは、スレーブアドレスの算出に用いるアドレスピンを定義する。ＡＤＤＲＥＳＳコマンドのパラメータは、例えば、上位からピン数、該当するピン番号を指定する。ＳＬＶＡコマンドおよびＡＤＤＲＥＳＳコマンドによる文が、アドレスの算出情報の一例である。
【００８９】
ＰＩＯコマンドは、ＰＩＯのピンを定義する。ただし、ＰＩＯのピンには、所定数ごとにポートが定義される。そこで、図１０の例では、ポート名と、ポート名で指定されるポートに所属するピン番号の列が指定される。ピン番号の列は、具体的には、"方向＝ピン
番号"の列である。方向では、入力、出力、双方向を表す識別子を記述し＝の後にそのピ
ン番を記述する。これをピン数分コンマで繋げて記述する。
【００９０】
Ｖｍｅａｓコマンドは、電圧測定ピンを定義する。ポート名を記述し、ピン番に対する電圧読取レジスタアドレスとビットウェイトを記述する。これをピン数分記述する。
【００９１】
ＲＯＭコマンドは、ＲＯＭのタイプを記述する。タイプは、例えば、ＲＯＭデータのアドレス指定が１バイトか２バイトか等である。
【００９２】
ＲＥＧＩＳＴＥＲコマンドは、レジスタの構造の記述開始を宣言する。
ＭＰＸサブコマンドは、Ｉ２Ｃインターフェースのマルチプレックサピンの定義を行う。Ｏｆｆで全チャネルオフの設定値が記述される。また、"ｓｅｌ＝"でチャネル上位からの
それぞれのチャネルの選択値が記述される。"ｓｅｌ＝"によって指定されるチャネルの選択値が選択指定情報の一例である。
【００９３】
ＣＯＮＦサブコマンドは、ＰＩＯの信号方向の設定レジスタを定義する。ポート名が記述され、次に、そのレジスタアドレスが記述される。Ｒ／Ｗ＝の後にリード／ライトの設定値が定義される。例えば、Ｒ／Ｗ＝１／０である。ｂｉｔｐ＝で各ピンのレジスタ内ビット位置が定義される。図１０の例では、ｂｉｔｐ＝７６５４３２１０とあり、ＰＩＯのピンＰ７が最上位ビットに対応し、Ｐ０が最下位ビットに対応することが定義されている。
【００９４】
ＯＵＴサブコマンドは、ＰＩＯの出力レジスタを定義する。ポート名が記述され、次に、そのレジスタアドレスが記述される。ｂｉｔｐ＝で各ピンのレジスタ内ビット位置が定義される。出力レジスタは、各ピンＰ７−Ｐ０の出力レベル（１／０）を設定するレジスタである。
【００９５】
ＩＮサブコマンドは、ＰＩＯの入力レジスタを定義する。ポート名が記述され、次に、そのレジスタアドレスが記述される。ｂｉｔｐ＝で各ピンのレジスタ内ビット位置が定義される。入力レジスタは、各ピンのレベル（１／０）を取り込むレジスタである。Ｉ２Ｃ部品は、例えば、方向レジスタでＲの設定とされたピンからデータを読み取り、入力レジスタに格納する。また、Ｉ２Ｃ部品は、Ｗの設定とされたピンへ出力レジスタのデータを出力する。
【００９６】
ＶｍＳｔａｒｔサブコマンドは、電圧測定開始手順を定義する。設定レジスタのレジスタアドレスが記述される。次に、設定値が記述される。なお、複数の設定値を含む設定シーケンスを定義する場合は、設定値がコンマで繋げて記述される。次に測定待ち時間が記述される。電圧測定開始は、通常全電圧測定ピンに共通であるので、ポート名は、省略される。
【００９７】
ＶｍＣｏｎｆサブコマンドは、ＶＭｅａｓコマンドで指定する電圧測定ピンの指定がなされる部品のうち、特に、電圧測定のレンジ指定が可能な部品に対する指定を定義する。例えば、レンジのデータを設定するレジスタアドレス、定義するレンジ、レンジに対応するビットウェイト等が記述される。
【００９８】
以上のように、Ｉ２Ｃ部品の動作モデル２３のピン部には、ピン番号と方向、部品のスレーブアドレス値、アドレスピンが定義される。部品のスレーブアドレス値、アドレスピンが定義されるので、テストジェネレータは、スレーブアドレスの算出情報をＩ２Ｃ部品の動作モデル２３から取得できる。部品のスレーブアドレス値とアドレスピンの定義がアドレスの算出情報の一例である。また、制御部には、レジスタの仕様、レジスタアドレス、レジスタとピンとの対応関係、入出力の方向、出力レベル、入力の読取り方法が示される。したがって、Ｉ２Ｃ部品の動作モデル２３は、Ｉ２Ｃ部品のインターフェース仕様の一例を含むということができる。
【００９９】
＜＜Ｉ２Ｃツリーの作成処理例＞＞
図１１にＩ２Ｃ部品間の接続を例示する。Ｉ２Ｃ部品は、図１１のようにツリー構造で繋がっている。図９のＩ２Ｃツリー２５は、図１１のようなＩ２Ｃ部品の接続関係を定義する情報である。以下、図１１にしたがって、ＩＣ２ツリー２５の作成手順を例示する。本実施例では、ツリーを表現する簡単な方法として、Ａｃｓｎ（アクセスＮｏ．）と呼ぶ表記方法が提案される。
Ａｃｓｎ＝ｎｗｎｗｎｗｎｗｎｗ
ｎ：チャネル番号、ただしチャネル番号に代えてチャネルを識別する
情報としてもよい。チャネル番号は、０段目については試験機２のチャネル、つまりテスタチャネルを示し、１段目以降はＭＰＸのチャネルを示す。
ｗ：ワイアード接続を識別する情報、本実施例では、ｗには、Ａ，Ｂ，Ｃの順に、文字が割り付けられる。
【０１００】
Ａｃｓｎの定義では、ｎとｗがペアとして記述され、左から２文字が０段目の状態、つまり最上位の部品のコネクタ３１への接続状態を表す。また、次の２文字が１段目の状態、つまり最上位の部品の次の部品との接続状態を表す。ここで、次の部品との接続状態は、例えば、下位に位置する部品への接続チャネルとワイアード接続番号とによって表される。さらに次の２文字が次の部品からさらに下位に位置する部品との接続チャネルとワイアード接続番号を表す。以上の規則によって、着目している部品の接続チャネルや前段の部品の特定は容易になる。例えば、着目している部品の前段の部品のＡｃｓｎは、着目している部品から下位に位置する部品との接続状態を表す２文字を削除すれば求めることができる。Ｉ２Ｃツリーの作成処理では、各部品のＡｃｓｎを生成すると共に、Ｉ２Ｃバス上の部品へのアクセスに用いるスレーブアドレスの算出と、デバックに有効な可視化したＩ２Ｃツリー構造の生成とが実行される。
【０１０１】
以下、図１１の回路図を例に、Ａｃｓｎ算出処理を説明する。テストジェネレータは、ネットリスト２１の部品名と型格の対応部分から、プリント基板９上の部品の型格を取得する。そして、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３の素子認識部から、取得した型格に対応するＩ２Ｃ部品の動作モデル２３の情報を特定する。そして、テストジェネレータは、部品名と特定したＩ２Ｃ部品の動作モデル２３の情報へのポインタを設定し、Ｉ２Ｃ部品表２４を生成する。
【０１０２】
次に、テストジェネレータは、ネットリスト２１で定義された部品のピンの接続関係からピンのピン番号を読み取る。また、テストジェネレータは、そのピンを有する部品の部品名がＩ２Ｃ部品表２４にあれば、部品がＩ２Ｃ部品であると認識する。そして、テストジェネレータは、型格で関連付けされたＩ２Ｃ部品の動作モデル２３のピン部からその部品ピンのピン番号を探索する。そして、テストジェネレータは、探索しているピン番号がＳＣＬ／ＳＤＡおよびＭＣＬｎ／ＭＤＡｎのピン番号と一致した場合、ネットリスト２１に記載されたその部品ピンのネット名を主記憶装置に記録する。
【０１０３】
すべてのネットを読み終わった段階で、Ｉ２Ｃ部品が接続されているＳＣＬ／ＳＤＡおよびＭＣＬｎ／ＭＤＡｎピンのネット名が記録される。この記録において、同じネット名が記載されているピンが接続されているので、テストジェネレータは、Ｉ２Ｃバスのピン間の接続関係が分かる。この記録の中で、ＳＣＬ／ＳＤＡピンにＭＣＬｎ／ＭＤＡｎのピンが接続されていない箇所が最上段（０段目）、すなわち、ＴＯＰの階層となる。図１１の例ではＭＰＸ１およびＭＰＸ３のＳＣＬ／ＳＤＡが０段目である。そこで、テストジェネレータは、まずＴＯＰの階層にＡｃｓｎ（アクセスＮｏ．）をつける。図７では、０Ａ，１Ａとなる。最初のＡｃｓｎの１桁目は、プリント基板９のインターフェースとなるコネクタ、例えば、試験機２のコネクタのチャネル（以下、テスタチャネル）を識別する番号である。また、２桁目のアルファベットは、そのテスタチャネルに接続されるラインへのワイアード接続の番号となり、Ａ、Ｂ、Ｃの順で付加する。
【０１０４】
テストジェネレータは、続いて、ＴＯＰの部品の１つ目のチャネル（ＭＣＬｎ／ＭＤＡｎ）から順に下方へ探索を続け、すべてのＡｃｓｎを作成することにより、Ｉ２Ｃツリー２５を作成できる。このＡｃｓｎにより、テストジェネレータは、注目するＩ２Ｃ部品の前段に接続されるＭＰＸと接続チャネルが分かる。例えば、Ａｃｓｎ＝０Ａ１Ｂは、「ＴＯＰの階層（０段目）の部品の接続は、０番目のテスタチャネルのワイアード接続はＡ番目、１段目の部品の接続は、０段目の部品のＭＰＸの１チャネル目に接続し、ワイアード
接続は、Ｂ番目であること」を意味する。テストジェネレータは、以上のようなＡｃｓｎから前段のＭＰＸ設定方法を認識できる。
【０１０５】
また、テストジェネレータは、ネットリスト２１を読む段階で、Ｉ２Ｃ部品の動作モデル２３のアドレスピン（Ａ０−２）のネットの情報を探索する。そして、テストジェネレータは、ＧＮＤに接続されているか、抵抗を介して電源に接続されているかの接続関係からアドレスピンのレベル（１／０）を解析する。そして、テストジェネレータは、認識したアドレスピンへの設定値と、Ｉ２Ｃ部品の動作モデル２３から得たＩ２Ｃ部品内部のスレーブアドレスを加算し、Ｉ２Ｃ回路部品のプリント基板９でのスレーブアドレスを算出する。
【０１０６】
図１２にＩ２Ｃツリー２５の出力イメージを例示する。図１２のように、Ｉ２Ｃツリー２５の最上位（０段目）から、部品の種類、部品名、型格、Ａｃｓｎ、およびスレーブアドレス（ＳＬＶＡ）を列記した形式である。また、上位の部品の定義の次に、中括弧"｛
｝"で閉じた内部に、次段の部品の定義が列記される。図８の例では、最上位の部品名Ｍ
ＰＸ１の接続関係が記録されている。すなわち、部品名ＭＰＸ１の次の行に、次段の部品名ＭＰＸ２のピンとの接続関係が定義され、さらに次の行に、次段の部品名ＰＩＯ１の部品のピンの接続関係が定義されている。そして、最上位の部品名ＭＰＸ１に関連するツリーが終了すると、さらに、最上位の部品名ＭＰＸ３の接続関係が記録されている。
＜＜Ｉ２Ｃツリーの作成処理フロー＞＞
図１３に、Ｉ２Ｃツリー作成処理フローを例示する。この処理では、テストジェネレータは、定義済みのＩＣ２部品の動作モデル２３を読み込み、対応する主記憶装置上の構造体に格納する（Ｓ１０）。
【０１０７】
次に、テストジェネレータは、Ｉ２Ｃ部品表２４を作成する（Ｓ１１）。すなわち、テストジェネレータは、ネットリスト２１を読み、部品名と型格との対応部を基に部品名に対応する型格を取得する。そして、テストジェネレータは、型格がＩ２Ｃモデルにあれば、Ｉ２Ｃ部品表２４を作成する。すなわち部品名と該当するＩ２Ｃモデルへのポインターを記録する。そしてテストジェネレータは、以上のような処理をネットリスト２１に定義されたすべての部品名に対して実行する。
【０１０８】
次に、テストジェネレータは、Ｉ２Ｃバス接続の状況、およびアドレスピンのレベルを調査する（Ｓ１２）。すなわち、テストジェネレータは、ネットリスト２１を読み、接続関係の部分からＩ２Ｃ部品のＳＣＬ／ＳＤＡ／ＭＣＬｎ／ＭＤＡｎ（ｎはチャネルの番号）の接続を調べる。つまり接続されたＩ２Ｃ部品のピンが、ＳＣＬ／ＳＤＡ／ＭＣＬｎ／ＭＤＡｎであれば、そのピンのネットをメモし、１ネット読取りが終わったらＳＣＬ／ＳＤＡピンにＭＣＬｎ／ＭＤＡｎのピンが接続されていたらソースありをメモする。また、テストジェネレータは、接続を調べる段階で、Ｉ２Ｃ部品のアドレスピンのレベルを調査する。すなわちＩ２Ｃ部品のアドレスピンに一致した場合、このネットが電源又はＧＮＤのネットであればそのレベル（論理値）を、それ以外で抵抗に繋がっていれば、その反対側のピンのネットを調べ電源又はＧＮＤかによって、そのピンのレベルをメモする。    
【０１０９】
次に、テストジェネレータは、Ｉ２Ｃ部品のスレーブアドレスを算出する。すなわち、テストジェネレータは、Ｉ２Ｃ部品表２４が示すＩ２Ｃ部品の動作モデル２３のスレーブアドレスと、各アドレスピンのレベルとビットウェイトの積をそれぞれ加算し、プリント基板９におけるＩ２Ｃ部品のスレーブアドレスを作成する（Ｓ１３）。テストジェネレータである情報処理装置１は、アドレス算出部の一例として、Ｓ１３の処理を実行する。そして、テストジェネレータは、算出したスレーブアドレスを、例えば、Ｉ２Ｃ部品表２４に格納する。
【０１１０】
次に、テストジェネレータは、テスタチャネルを割り付ける（Ｓ１４）。テストジェネレータは、Ｓ１２によるＩ２Ｃ部品のＳＣＬ／ＳＤＡ／ＭＣＬｎ／ＭＤＡｎの接続を基に、各ＳＣＬ／ＳＤＡに、ＭＣＬｎ／ＭＤＡｎの接続関係を判定する。そして、テストジェネレータは、ＳＣＬ／ＳＤＡにソースがない、ＭＣＬｎ／ＭＤＡｎが接続されていないものが、０段目（ＴＯＰ）であると判定する。そして、０段目（ＴＯＰ）であると判定された部品に対して、０から順にテスタチャネルを割り付ける。
【０１１１】
次に、テストジェネレータは、Ｉ２Ｃツリーを調査する（Ｓ１５）。すなわち、テストジェネレータは、テスタチャネルを割り付けたＩ２Ｃ部品のチャネルに繋がるＩ２Ｃ部品を調査する。そして、テストジェネレータは、接続位置、つまり、接続元のＩ２Ｃ部品のチャネル番号と、それに繋がるワイアード接続番号にしたがって、Ａｓｃｎを作成する。例えば、テストジェネレータは、第１番目のワイアード接続から順に、Ａ、Ｂ、Ｃのようなアルファベットを各ワイアード接続に設定し、各ワイアード接続先のＩ２Ｃ部品に付与する。テストジェネレータは、テスタチャネルを割り付けたＩ２Ｃ部品以下に接続される最終段のＩ２Ｃ部品まで、以上の処理を実行することで、接続された全てのＩ２Ｃ部品のＡｃｓｎを生成し例えばＩ２Ｃ部品表に格納する。
【０１１２】
そして、テストジェネレータは、Ａｓｃｎを基に、ＴＯＰから最終段までのツリー構造を認識でき、これを元に確認用のファイルＩ２Ｃツリー２５を作成する（Ｓ１６）。
【０１１３】
＜＜テストアクセス情報生成処理＞＞
図１４に、テストアクセス情報の出力イメージを例示する。テストアセス情報は、通常１ネット内に信号をドライブするドライブピン、信号をレシーブするレシーブピン、（テスタピンを含め）があるテスト可能なネットを列挙した情報である。図１４の例では、各行に、試験の識別子、ネット名、部品−ピン番号、部品−ピン番号が例示されている。試験の識別子は、例えば、ＴＥＳＴ、Ｖｍｅｓｅ、Ｉ２Ｃ−ＲＯＭ等を例示できる。ＴＥＳＴは、通常のピン間の接続試験の指定である。ＴＥＳＴが指定された行には、ネット名と、そのネットで試験される部品−ピン番号がペアで指定される。図１４のように、テストジェネレータは、例えば、ＪＴＡＧ部品であるＪＴＡＧ２のピン１２と、Ｉ２Ｃ部品であるＩ２Ｃ−ＰＩＯ２のピン１とをテストアクセス情報として取得する。
【０１１４】
また、Ｖｍｅａｓは、Ｉ２Ｃ−ＡＤＣに対する電圧測定試験の指定である。図１４の例では、ＮＥＴ５において、Ｉ２Ｃ部品であるＩ２Ｃ−ＡＤＣのピン１０から電圧値を読み取ることが指定される。なお、Ｖｍｅａｓの括弧内の値は、試験対象のピンに加えられる電圧値の指定である。したがって、試験機２は、該当するネット、例えば、図１４のＮＥＴ５のＩ２Ｃ−ＡＤＣ−１０というピンから、データを読み出し、ビットウェイトにしたがって、電圧値を算出する。そして、試験機２は、算出した電圧値が、Ｖｍｅｓｅの括弧内の値と一致するか否かを判定する。
【０１１５】
また、Ｉ２Ｃ−ＲＯＭは、ＲＯＭに対する読み出し試験の指定である。ＲＯＭに対する読み出し試験では、アドレスのタイプが指定される。
【０１１６】
ＪＴＡＧテストジェネレータは、部品ピンとしては、ＪＴＡＧピンを抽出していた。本実施例のテストジェネレータは、Ｉ２Ｃ部品の動作モデル２３とＩ２Ｃ部品表（以下Ｉ２Ｃ動作モデルと含めて単にＩ２Ｃモデルとする）を利用することにより、Ｉ２Ｃ部品のドライブピン、レシーブピンもＪＴＡＧ部品のピンと同様に抽出可能である。したがって、テストジェネレータは、以降の試験プログラムの生成がＩ２Ｃ部品を含むプリント基板９で可能である。また、本テストジェネレータは、ＪＴＡＧテストジェネレータではなかった、電圧測定部品やＲＯＭの試験プログラムも生成する。
【０１１７】
本テストジェネレータは、ネットリスト２１のピンの接続関係を読み取り、１ネットごとに、そのピンの部品名からＪＴＡＧ部品表を参照し、存在するか否かを判定する。ここで、ＪＴＡＧ部品の部品表は、部品名とＢＳＤＬデータへのポインタを格納した情報である。判定対象の部品名がＪＴＡＧ部品表に存在すれば、テストジェネレータは、そのピンと入出力情報を配列に記録する。ＪＴＡＧ部品のピンの入出力情報は、ＢＳＤＬ２２に定義されている。また、ピンが試験機２の接続コネクタのピンであれば、そのピンと入出力情報を配列に記録する。
【０１１８】
一方、判定対象の部品名がＪＴＡＧ部品表に存在しない場合、テストジェネレータは、判定対象（部品名−ピン番号）の部品名がＩ２Ｃ部品表２４に存在するか否かを判定する。そして、部品名がＩ２Ｃ部品表２４に存在し、ピン番号がＩ２Ｃ部品の動作モデル２３のピン部のＰＩＯピンのピン番号と一致すれば、そのピンと入出力情報を配列に記録する。Ｉ２Ｃ部品のピンの入出力情報は、Ｉ２Ｃ部品の動作モデル２３に定義されている。
【０１１９】
テストジェネレータは、１ネットの読み込みが終わった段階で、ドライブピンとレシーブピンがあれば、このネットはテストできると判定できる。そこで、テストジェネレータは、配列に記録された情報から図１４に例示するようなイメージでテストアクセス情報２６を主記憶装置に格納する。なお、図１４は、テストアクセス情報２６をテキストで例示するが、テストアクセス情報２６の形式がテキストに限定される訳ではない。
【０１２０】
また、ここで読み取ったピンがＩ２Ｃ部品表２４からＩ２Ｃ部品の動作モデル２３のピン部のＶＭｅａｓ文のピンと一致した場合は、当該部品ピンは、電圧測定ピン（Ｉ２Ｃ−ＡＤＣ）である。そこで、テストジェネレータは、コマンドとして電圧測定を表すようにすると共に、測定箇所に印加される電圧をネットリスト２１から読み取り、そのネットの電圧値を算出し、識別子の後方に電圧値を付加する。
【０１２１】
さらに、そのピンの部品名がＩ２Ｃ部品表２４で指定されるＩ２Ｃ動作モデル２３にＲＯＭがであった場合には、テストジェネレータは、Ｉ２Ｃ−ＲＯＭ部品を認識する。Ｉ２Ｃ−ＲＯＭ部品はネット単位ではない。しかし、本実施例では、テストジェネレータは、Ｉ２Ｃツリーよりその部品名と回路のスレーブアドレスをリストアップする。
＜＜並列テストパターンの生成＞＞
図１５に、並列テストパターンが生成される回路を例示する。並列テストパターンは、試験機２の制御手順を考慮しない、ドライブピンへの目標値およびレシーブピンでの期待値を設定した情報である。本実施例では、並列テストパターンとして、オープンショートテストと、Ｉ２Ｃファンクションテストを例示する。
【０１２２】
テストジェネレータは、図１４のように、テストアクセス情報２６にテスト可能なネットを出力する。さらに、テストジェネレータは、テストアクセス情報２６内のテスト可能なネットに対するテストパターンを決定する。
【０１２３】
テストジェネレータは、ショート試験では、図１５の様に対象ネットのそれぞれに、ユニークな試験パターンを割り当てる。試験パターンとして、例えば、符号Ａのネットでは、"00001"が割り当てられ、符号Ｂのネットでは、"00010"が割り当てられている。割り当ての結果、例えば、ショート時に何処かのステップで、複数のレシーブピン間で干渉が起こった場合に、試験機２が障害を検出できる。
【０１２４】
またオープン試験は、ネットに複数のドライバがあるとき、ドライバを切り替え、０／１をドライブするパターンを生成する。ドライバからドライブされる０／１のデータをネットのレシーブピンで観測できない場合に、断線が検出される。ここで、ドライバとは、
ネットにデータを送出するピンをいう。
【０１２５】
例えば、ＪＴＡＧ１−１＝１は、部品：ＪＴＡＧ１のピン：１のレベルが１であることを示している。また、ＪＴＡＧ２−１０＝Ｌは、部品：ＪＴＡＧ２のピン：１０のレシーブピンとしての期待データがＬであることを例示している。本実施例では、レシーブピンとしての期待データは、Ｈ（高電位）とＬ（低電位）で示す。
【０１２６】
なお、図１６の試験パターンは、ＪＴＡＧやＩ２Ｃの制御シーケンスを考慮していないため、並列テストパターンと呼んでいる。また、試験パターンの１パターンとは、各ネット１ビット分、例えば、図１５の枠で囲まれた縦に並んだビット群である。
【０１２７】
また、並列テストパターンの設定過程で図１７の様に、ネットごとのテストパターンやピンごとのドライブレシーブパターンをテストデータベース２８として生成する。図１７の例では、ＮＥＴ＝Ａの試験パターンが００００１であり、ドライブピンがＩ２ＣＰＩＯ−５、レシーブピンがＪＴＡＧ２−１であることを例示している。
これらは後の障害解析のために使うものである。
【０１２８】
以上の処理で、テストジェネレータは、Ｉ２Ｃ部品については、Ｉ２Ｃ部品の動作モデル２３のピン部のピン入出力情報を参照して処理する。そして、テストジェネレータは、並列テストパターンやテストデータベース２８をＪＴＡＧピンと同様に表記する。
【０１２９】
なお、Ｉ２Ｃ−ＡＤＣ（電圧測定部品）やＩ２Ｃ−ＲＯＭは、その部品単体、あるいは該当ピンのテストであり、オープンショートテストではない。しかしながら、テストジェネレータは、Ｉ２Ｃ−ＡＤＣ（電圧測定部品）やＩ２Ｃ−ＲＯＭについても、テストアクセス情報２６とＩ２Ｃ部品の動作モデル２３を基に、オープンショートテストとは別の並列Ｉ２Ｃファンクションテスト情報として試験パターン（コマンド列）を生成する。
【０１３０】
＜＜処理の例＞＞
図１４において、テストアクセス情報２６の試験の識別子がＴＥＳＴであるネットがオープンショート可能なネットである。テストジェネレータは、試験の識別子がＴＥＳＴであるネットに試験パターンを生成する。図１５では、ネットＡ〜Ｅの横方向パターンが、一連の試験パターンを示している。図１５ではＪＴＡＧ−ＪＴＡＧ間、ＪＴＡＧ−Ｉ２Ｃしか記載していないが、実際には、図２の配線Ｌ１−Ｌ６の箇所について、試験パターンが生成される。プリント基板９の試験では、各ネットを並列に試験を実施するため、縦方向の１列が１ステップでの試験パターン（１パターンという）となる。
【０１３１】
次に、テストジェネレータは、この１パターンごとに各部品ピンのドライブ・レシーブ情報を生成する。１パターンとは、図１５のそれぞれのネットに設定される試験パターンを、各ネットについて１ビットずつ取り出したビットパターンである（図１５の枠部分参照）。
【０１３２】
図１６は、ネットに、ショートテストのための試験パターンを割り付ける処理を例示する図である。ショートテストでは、テストジェネレータは、ネットごとにドライブピンを決定し、ドライブピンとして決定されたピンと決定されたドライブレベルを図１６のように生成する。図１６では、また、テストジェネレータは、ドライブピンからの信号をレシーブ可能な他のレシーブピンにおいて、ドライブピンの信号レベルを読み取るよう、レシーブピンと期待値データ（レベル）を図１６のように出力する。図１６では、オープンテストは、ネットに複数のドライバが存在するものについてドライバを順に換えて１／０をドライブするとともに、他の部品ピンでドライブされた信号をレシーブするようテストパターンが生成されている。
【０１３３】
以上の手順により、テストジェネレータは、１パターンごとに、ドライブピンとドライブレベル、またはレシーブピンとレシーブレベルを図１６のように生成する。すなわち、ドライブピンに対する試験パターンの値（１または０）と、そのドライブピンから信号を受けるレシーブピンでの期待値（ＨまたはＬ）とが、ドライブピン、レシーブピンとともに列記される。
【０１３４】
以上の過程で、テストジェネレータは、Ｉ２Ｃ部品についてはＩ２Ｃモデルからその入出力情報を取得し、ＪＴＡＧと同様に処理する。また、テストジェネレータは、このピンレベルのドライブ・レシーブ情報を生成する前に、Ｉ２Ｃ−ＰＩＯの各ポートについて、各ビットのピンのネット名の情報もポートの接続情報として生成する。これは障害検出時に、ＪＴＡＧと同様にエラーネットを特定するためである。また、テストジェネレータは、オープンショートテストの障害解析のために、各ネットに対する一連のテストパターンやピンに対する一連のテストパターン（オープンの場合）を記憶したテストデータベース２８を生成する。テストデータベース２８により、試験機２は、全体の動きが分かるようになり、後の障害解析で利用する。
【０１３５】
図１７に、テストデータベース２８の構成を例示する。図１７のように、テストデータベース２８には、ネットごとに、試験パターンと、その試験パターンが設定されるドライブピン（ＳＴＡＴＥ＝Ｄ）と、そのドライブピンからの信号をレシーブするレシーブピン（ＳＴＡＴＥ＝Ｒ）とが列記される。
【０１３６】
＜＜最終テストパターンの生成＞＞
並列テストパターンは、ピン単位でのドライブとレシーブの目標値といえるビット列の情報である。したがって、並列テストパターンは、ＪＴＡＧ部品あるいはＩ２Ｃ部品の動作仕様にしたがった制御情報とはなっていない。そこで、テストジェネレータは、並列テストパターンを実現するために、ＪＴＡＧインターフェースに対する制御情報と、Ｉ２Ｃインターフェースに対する制御情報を作成する。各ネットに対して並列テストパターンを実現するための制御情報を最終テストパターンと呼ぶ。最終テストパターンは、例えば、試験機２に入力されるマクロコマンド等を含むスクリプトの形式で作成できる。
【０１３７】
テストジェネレータは、ＪＴＡＧ部品のピンに設定された並列テストパターンをバウンダリセルに割り当て、例えば、ＴＤＩにシフトするための情報を作成し、これを元に最終テストパターンを作成する。また、テストジェネレータは、Ｉ２Ｃ部品のピンに設定された並列テストパターンを最終テストパターンに変換する。テストジェネレータは、ＰＩＯのポート単位のポートデータを作成する。そして、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３とＩ２Ｃツリー２５を用いて、試験機２あるいはＩ２Ｃのコントローラ等から試験を制御するためのスクリプトとして、最終テストパターンを生成する。
【０１３８】
（１）オープンショートテスト
（１．１）ＪＴＡＧ部品の処理
テストジェネレータは、ＪＴＡＧ部品のピンごとのドライブ・レシーブ情報を先頭から１ビットずつ取得する。そして、テストジェネレータは、取得した部品ピンごとのドライブ・レシーブ情報をＪＴＡＧについては、ＢＳＤＬの情報から各ピンのセル順の情報よりＴＤＩ／ＴＤＯ配列の該当位置に設定する。ここで、ＴＤＩ／ＴＤＯ配列は、バウンダリセル連結イメージの配列である。例えば、ＴＤＩ／ＴＤＯ配列は、出力ピンをアップデートする為のデータと入力ピンからキャプチャしたデータの期待値を記憶できる。
【０１３９】
テストジェネレータは、１つの並列テストパターンの変換が終わるとＪＴＡＧのステートコントロールあるいはＴＤＩ／ＴＤＯ配列のビット列を出力することにより、ＪＴＡＧ
インターフェースに対する最終テストパターンを生成する。ＪＴＡＧのステートコントロールは、ＪＴＡＧ部品を制御するためのコマンドであり、例えば、データのアップデート、データのシフト、データのキャプチャ等を含む。ＪＴＡＧ部品を制御するシーケンスは、ＪＴＡＧで規定されているので、その詳細は省略する。
【０１４０】
（１．２）Ｉ２Ｃ部品の処理
Ｉ２Ｃ部品の信号の入出力はＰＩＯのポート単位で行われる。
従ってテストジェネレータは、ピンに設定された並列テストパターンから、部品ごとのＰＩＯポートの試験パターンを生成する。詳細には並列テストパターンの一ピン毎の情報から、部品名とピンを元にＩ２Ｃモデルを参照しどの部品のどのポートでどのビット位置かを特定し該当するポートデータに挿入する。以下、ＰＩＯの試験パターンをポートデータともいう。
【０１４１】
そして、テストジェネレータは、例えば、マルチプレクサに接続されるＰＩＯの試験パターンを変換する場合、処理中のＩ２Ｃ−ＰＩＯの前段のＩ２Ｃ−ＭＰＸに対する制御情報を設定する。例えば、テストジェネレータは、処理中のＩ２Ｃ−ＰＩＯのＡｃｓｎの最初の２文字（ポート番号）に一致するＡｃｓｎを持つＩ２Ｃ−ＭＰＸ（０段目のＭＰＸ）を選択する。そして、テストジェネレータは、処理中のＩ２Ｃ−ＰＩＯのＡｃｓｎの次に続くＡｃｓｎの文字により接続チャネル得る。次にテストジェネレータは、Ｉ２Ｃ部品の動作モデル２３のＭＰＸ情報にしたがい、接続チャネルを選択する制御情報を設定する。同様の手順を繰り返し、処理中のＩ２Ｃ−ＰＩＯの直前のＩ２Ｃ−ＭＰＸまでチャネルを設定する。取得したチャネルにデータを出力するための制御情報を選択指定と呼ぶ。
【０１４２】
この時点で、処理中のＩ２Ｃ−ＰＩＯの部品のＰＩＯポートのデータが決定している。すなわち、ＰＩＯポートのビット（ピン）単位で、入出力方向及び出力値及び入力の期待値が決定している。そこで、テストジェネレータは、Ｉ２Ｃ部品の動作モデルのＣＯＮＦサブコマンドの情報を基に、処理中のＩ２Ｃ−ＰＩＯの方向レジスタへ入出力の設定を行う。
【０１４３】
次に、テストジェネレータは、ピンをドライブする並列テストパターン（ポートデータ）から、Ｉ２Ｃ部品の動作モデル２３のＯＵＴサブコマンドの情報を基に、出力レジスタへの出力レベル（１／０）を設定する。同様にして、テストジェネレータは、すべての部品のＰＩＯの並列テストパターン（ポートデータ）に対する制御情報を設定する。
【０１４４】
テストジェネレータは、部品のピンからレシーブする並列テストパターンも同様に設定する。すなわち、テストジェネレータは、並列テストパターンをレシーブするＰＩＯに対して、上位のＩ２Ｃ−ＭＰＸに対する制御情報を設定する。そして、テストジェネレータは、処理中のＩ２Ｃ−ＰＩＯの部品のＰＩＯ（ピン）の並列テストパターン（ポートデータ）を基に、Ｉ２ＣモデルのＣＯＮＦサブコマンドの情報を基に、方向レジスタを設定する。次にＩ２Ｃモデルの情報とポートデータから、該当する入力レジスタからの読み取りを指定する制御情報、期待データ、および入力以外のビットを無視するためのマスクデータを出力する。マスクデータは、読み取り指定のピンと読み取り指定以外のピンとを区別するために、ピンごとに指定されるビット列である。
【０１４５】
テストジェネレータは、以上の処理を並列テストパターンに設定されたすべての部品のＰＩＯについて行う。さらに、テストジェネレータは、以上の処理を全試験パターンについて行うことによりオープンショートテストの最終テストパターンが生成される。
【０１４６】
（２）Ｉ２Ｃファンクションテスト
テストジェネレータは、並列Ｉ２ＣファンクションテストからＩ２Ｃ電圧測定部品のテ
ストとして、その部品の前段Ｉ２Ｃ−ＭＰＸをＰＩＯの場合と同じように設定する。そして、テストジェネレータは、電圧測定開始やレンジ設定を実際の命令（Ｉ２Ｃｗｒｉｔｅ）に変換し、電圧の読み出しを実際の命令（Ｉ２Ｃｒｅａｄ）に変換する。Ｉ２Ｃ−ＲＯＭに関しては、テストジェネレータは、ＲＯＭタイプで指定されたアドレス設定を行い（Ｉ２Ｃｗｒｉｔｅ）、データを読み出す（Ｉ２Ｃｒｅａｄ）命令を生成する。データの確認については、テストジェネレータは、予め指定しておいたデータと比較しテストを行うように試験機２への命令を生成する。
【０１４７】
＜＜最終テストパターン生成処理例＞＞
図１８に、最終テストパターンの生成処理におけるデータの流れを例示する。ここでは、並列テストパターンとして、以下が設定される場合を例にして、最終テストパターンの生成処理を例示する。また、プリント基板９上の部品としては、図２に示したように、マルチプレクサである部品Ｉ２Ｃ−ＭＰＸにＩ２Ｃ−ＰＩＯ２という部品が接続されると仮定する。
【０１４８】
＃Ｉ２ＣＰＩＯ２−１＝０；
これは、部品Ｉ２Ｃ−ＰＩＯ２のピンＰ１にレベル０を書き込むという並列テストパターンである。
【０１４９】
＃Ｉ２ＣＰＩＯ２−２＝１；
これは、部品Ｉ２Ｃ−ＰＩＯ２のピンＰ２にレベル１を書き込むという並列テストパターンである。
【０１５０】
＃Ｉ２ＣＰＩＯ２−３＝Ｌ；
これは、部品Ｉ２Ｃ−ＰＩＯ２のピンＰ３からの読み出しの指定と、読み出し値の期待値がＬ（低電位、接地電位）であるという並列テストパターンである。これらの並列テストパターンに対して、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３のＰＩＯ情報から、該当するポートとビット位置を取得し、各ビット位置に対応するピンに対応づけてポートデータを作成し、記録する。例えば、上記３つの並列テストパターンは、次のようなポートデータとなる。
【０１５１】
Ｉ２ＣＰＩＯ２  Ａｃｓｎ＝０Ａ３Ａ  ＰＯＲＴ１  ＺＺＺＺＺＬ１０  ＳＬＶＡ＝４２；
ここで、ＰＯＲＴ１はポート名である。通常Ｉ２Ｃ部品のＰＩＯが例えば８ビットを超えるビット数を有する場合には、ＰＩＯを複数のポートに分けてビット配置させるため、ポート名を定義し、ポート名によって分かれたビットを特定する。そこで、ポートデータは、各部品のポートごとに定義される。
【０１５２】
また、ＺＺＺＺＬ１０は、それぞれピンＰ７−Ｐ０に設定された並列テストパターンである。また、例えば、Ｚは、並列テストパターンが設定されていないことを示す文字である。この並列テストパターンでは、ピンＰ２は、読み取りの期待データがＬ（低電位、接地電位）、ピンＰ１からの書き込みのレベルが１、ピンＰ０からの書き込みのレベルが０であることが例示される。
【０１５３】
テストジェネレータは、Ａｃｓｎ＝０Ａ３Ａの上位の２文字"０Ａ"から、０段目のＭＰＸとテスタチャネル"０"を選択する。なお、本実施例では、テストジェネレータは、Ｉ２Ｃツリー２５の作成時に、各Ｉ２Ｃ部品のスレーブアドレスを算出し、例えば、Ｉ２Ｃ部品表２４（あるいはＩ２Ｃツリー２５）に設定している。そこで、テストジェネレータは、Ｉ２Ｃ部品表２４に設定されている０段目のＭＰＸのスレーブアドレス、例えば、"Ｅ
０"を取得する。 また、テストジェネレータは、Ａｃｓｎ＝０Ａ３Ａの３番目の文字"３"
から、０段目のＭＰＸのチャネル３に接続されることを認識する。そして、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３のＭＰＸサブコマンドのｓｅｌ＝の設定値から、チャネル３を選択するためのチャネル選択レジスタへの設定値（例えば、"０４"）を取得する。そして、テストジェネレータは、制御情報として、以下を生成する。制御情報は、試験機２がプリント基板９上のＩ２Ｃ−ＭＰＸを制御するためのマクロ命令である。
【０１５４】
Ｉ２ＣＷｒｉｔｅ  ０  Ｅ０  ０４；    
次に、テストジェネレータは、部品Ｉ２Ｃ−ＰＩＯ２の方向レジスタ（ＣＯＮＦ）を設定する。今、部品Ｉ２Ｃ−ＰＩＯ２のスレーブアドレスが"４２"、方向レジスタ（ＣＯＮＦ）のアドレスが"０４"であるとする。また、下位２ビットに相当するピンＰ１、Ｐ０が書き込みであり、下から３ビット目に相当するピンＰ２が読み出しである。また、ピンＰ７−Ｐ３は、並列テストパターンの指定がない（ポートデータ"Ｚ"）。そこで、方向レジスタへの設定値は、下位２ビットに、書き込みを示すビット１を設定するので、０３となる。従って、テストジェネレータは、以下の制御情報を最終パターンとして生成する。
【０１５５】
Ｉ２ＣＷｒｉｔｅ  ０  ４２  ０４  ０３；
同様に、出力レジスタ（ＯＵＴ）のアドレスが"０６"、出力レジスタ（ＯＵＴ）に書き込む値が下位２ビット"１"と"０"であるので、値は１６進数で"０２"となる。そこで、テストジェネレータは、以下の制御情報を最終パターンとして生成する。
【０１５６】
Ｉ２ＣＷｒｉｔｅ  ０  ４２  ０６  ０２；
同様に、入力レジスタ（ＩＮ）のアドレスが"００"、入力レジスタ（ＩＮ）からの期待データは、ピンＰ２（下から３ビット目）がＬであり、他のビットは未設定であるので、００（全ビット０）であり、マスクは、下から３ビット目が１であるので、０４である。そこで、テストジェネレータは、以下の制御情報を最終パターンに設定する。
【０１５７】
Ｉ２Ｃｒｅａｄ  ０  ４２  ００  ００  ０４；
なお、期待データとマスクデータは、試験対象のＩ２Ｃ部品の入力レジスタから読み出されたデータを検証するために、用いられる。すなわち、試験機２は、試験対象のＩ２Ｃ部品の入力レジスタからポートのデータを取得する。そして、試験機２は、取得したポートのデータからマスクを用いて、入力ピンのデータを選択し、期待データと比較することで、試験を実行する。
【０１５８】
テストジェネレータは、以上の手順で生成された制御情報は、最終テストパターンとして出力する（図９のオープンショート３０参照）。
【０１５９】
＜＜最終テストパターン生成処理フロー＞＞
（１）最終オープンショートテストパターン
図１９Ａは、最終テストパターン生成処理フローを例示する。この処理では、テストジェネレータは、まず、並列テストパターンを読み込む（Ｓ３０）。そして、テストジェネレータは、並列テストパターン中のピンを部品の種類ごとに分類し、Ｉ２Ｃ部品は各ポートデータにＪＴＡＧ部品はＴＤＩ／ＴＤＯ配列に記録する。（Ｓ３１）。Ｓ３１の処理によって、ポートデータが作成される。
【０１６０】
一パターン分の並列テストパターンの読込が終ったら、テストジェネレータは、ＪＴＡＧ部品ピンに設定された試験パターンつまり、ＴＤＩ／ＴＤＯ配列に記録されたデータを元に最終テストパターンを出力する（Ｓ３２）。この処理は、例えば、ＪＴＡＧ部品ピンに対応するバウンダリセルに設定する情報や読取り情報に対する期待値情報がＴＤＩ／ＴＤＯの配列に試験パターン１ステップ分記録されており、これを元にＴＤＩからシフトインし出力ピンを設定する試験パターンを生成する処理である。また、入力ピン取り込まれ
ＴＤＯで観測されるビット列を検査データを生成する処理である。ＪＴＡＧ最終テストパターン出力処理の詳細は省略する。
【０１６１】
次に、テストジェネレータは、Ｉ２Ｃ部品ピンに設定された試験パターンに対する最終テストパターンを出力する。ただし、本実施例では、テストジェネレータは、出力レジスタ、すなわち、Ｉ２Ｃ書き込みパターンと、入力レジスタ、すなわち、Ｉ２Ｃ読み取りパターンに分けて最終テストパターンを出力する。例えば、テストジェネレータは、Ｉ２Ｃ部品の出力レジスタに対する最終テストパターンを出力する（Ｓ３３）。さらに、テストジェネレータは、Ｉ２Ｃ部品の入力レジスタに対する最終テストパターンを出力する（Ｓ３４）。これを全パターン繰り返し実行する（Ｓ３５）。
【０１６２】
図２０に、Ｉ２Ｃ最終テストパターン出力処理（図１８のＳ３３）の詳細を例示する。ここでは、出力レジスタに対するＩ２Ｃ最終テストパターン出力処理を例示する。例えば、テストジェネレータは、Ｓ３３の処理でＩ２Ｃ最終テストパターン出力処理を起動するとき、起動時のパラメータとして、出力レジスタに対する処理の指定を受ける。そして、テストジェネレータは、Ｓ３１の処理で記録されたＩ２Ｃ部品のＰＩＯポートすべてに対して、以下の処理を実行する。
【０１６３】
この処理では、テストジェネレータは、Ｓ３１の処理で記録されたＩ２Ｃ部品の１つを次の目標部品に設定する（Ｓ３３１）。そして、テストジェネレータは、目標部品のＰＩＯごとに前段のＩ２Ｃ−ＭＰＸを設定する（Ｓ３３２）。具体的には、テストジェネレータは、目標部品で現在処理中のＰＩＯの自Ａｃｓｎの最初の２文字に一致するＡｃｓｎを持つＩ２Ｃ−ＭＰＸ（０段目のＭＰＸ）を取得する。さらに、テストジェネレータは、目標部品のＡｃｓｎの最初の２文字に次に続くＡｃｓｎの文字（接続チャネル）を読み取り、Ｉ２Ｃ−ＭＰＸのチャネルを取得する。そして、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３のＭＰＸサブコマンドの情報にしたがい、取得したチャネルを選択するための制御情報を設定する。同様にして、テストジェネレータは、順次、０段目の次の階層のＩ２Ｃ−ＭＰＸを設定する。そして、テストジェネレータは、目標部品直前のＩ２Ｃ−ＭＰＸまでチャネルを設定する。
【０１６４】
以上の処理で、テストジェネレータは、０段目のＭＰＸから目標部品の直前までのＭＰＸのチャネルを設定する。また、図１９ＡのＳ３１の処理で、部品ごとのポートデータが決定している。そこで、テストジェネレータは、目標部品のポートデータにしたがって入出力を設定する（Ｓ３３３）。より具体的には、テストジェネレータは、Ｉ２Ｃ部品の動作モデルのＣＯＮＦサブコマンドの情報を基に、方向レジスタへの設定を行う制御情報を生成する。また、テストジェネレータは、Ｉ２Ｃ部品の動作モデルのＯＵＴサブコマンドの情報を基に出力レジスタのアドレスを取得する。そして、テストジェネレータは、目標部品のポートのポートデータにしたがい、出力レジスタへ出力レベルを設定するための制御情報を生成する。
【０１６５】
次に、テストジェネレータは、並列テストパターンを設定したすべてのＩ２Ｃ部品のポートデータを最終テスト出力が終了したか否かを判定する（Ｓ３３４）。そして、Ｓ３３４の判定で、すべてが終了していない場合、テストジェネレータは、制御をＳ３３１に戻す。一方、すべてが終了した場合、テストジェネレータは、処理を終了する。
【０１６６】
なお、図２０では、出力レジスタに対するＩ２Ｃ最終テストパターン出力処理を例示するが、入力レジスタに対するＩ２Ｃ最終テストパターン出力処理（図１８のＳ３４）も同様である。例えば、テストジェネレータは、各部品のＰＩＯについて、Ｓ３３２と同様にＩ２Ｃ−ＭＰＸを設定し、該当ポートデータから、Ｉ２Ｃ部品の動作モデルのＩＮサブコマンドの情報を基に、入力レジスタの読み取りを設定するための制御情報を生成する。さ
らに、テストジェネレータは、目標部品のポートのポートデータにしたがい、ＩＮレジスタでの読み取りのための制御情報を生成する。さらに、テストジェネレータは、ＩＮレジスタから読み出されるデータに対する期待データと入力以外のビットを無視するためのマスクデータを出力すればよい。
【０１６７】
（２）最終Ｉ２Ｃファンクションテストパターン
図１９Ｂに最終Ｉ２Ｃファンクションテスト生成フローを例示する。テストジェネレータはまず並列Ｉ２Ｃファンクションパターンからコマンドを一つ読み取る（Ｓ３６）。そしてそのコマンドがＩ２Ｃ制御コマンドの場合、その部品の前段のＩ２Ｃ−ＭＰＸを設定する（Ｓ３７）。それはコマンドの部品名が記載された部分からオープンショートテストで行った設定と同様に行う。次にＩ２Ｃ制御コマンドを最終命令に変換する（Ｓ３８）。Ｉ２Ｃコマンドは、電圧測定開始や電圧読取りとその期待値及びレンジ設定、更にはＩ２Ｃ−ＲＯＭ読出し等である。つまり、Ｉ２Ｃコマンドには、部品ピンや設定ためのパラメータ（期待値やレンジ）が書かれているのみと考えてよい。そこで、部品名からＩ２Ｃ部品表をアクセスし、テスタチャネルやスレーブアドレスまた設定レジスタのアドレス、更にはパラメータから実際の設定値を計算し最終命令を生成する。このような手順で全パターン（コマンド）を処理する（Ｓ３９）。
【０１６８】
＜テストの実行と障害解析＞
試験機２は、生成された最終テストパターンをビット列に翻訳し、例えば、テスタピンを通じてＪＴＡＧやＩ２Ｃインターフェースを駆動する。そして、試験機２は、ＪＴＡＧやＩ２Ｃインターフェースから出力される値を読み取ることにより、プリント基板９をテストする。ＪＴＡＧ部品でエラーが発生すると、試験機２は、以下の情報を出力する。
（１）テストパターンの何ステップ目でエラーが発生したか。
（２）エラーを検出した部品ピン、ネット名、読み取ったレベル、期待値
Ｉ２Ｃ部品の試験で検出したエラーでは、テストパターンの番号と該当部品名とＰＩＯ名と読み取った１バイトの内容、部品ごとの期待のバイト値、マスク値が表示される。しかしながら、本実施例では、さらに、テストジェネレータが生成したポートとネットの対応から、エラーとなったビットを基に、ネット名、部品ピンと読取ビット値、期待ビット値が表示可能となる。
【０１６９】
図２１は、ＪＴＡＧ部品のピンを結ぶネットのショートを例示する図である。ＪＴＡＧテストでは、テストプログラムが自動生成されている。このため、情報処理装置１あるいは試験機２は、各部品ピンに対するテストパターンを図１７のようなテストデータベース２８として有している。したがって、情報処理装置１あるいは試験機２は、テストデータベース２８を使った障害解析機能により、ネット間のショートやネットのオープンを指摘できる。
【０１７０】
例えば、図２１では、試験パターンの５番目で、ＪＴＡＧ２の５ピンで０を読みエラーを検出した場合が仮定されている。今、レシーバピンからの入力値と、期待データとの比較から、ネットＣのテストパターンの５番目でドライブ値が異なり、試験機２がエラーを検出されたとする。さらに、試験機２は、試験パターンの５番目のビットの値がネットＣの試験パターンとは異なり、他のビットは、ネットＣの試験パターンと同一の試験パターンのネットを調べる。すると、ネットＢが検出されたと仮定する。このような場合、情報処理装置１あるいは試験機２は、ネットＣ、Ｂがショートであることを指摘できる。
【０１７１】
以上のように、本実施例では、ＪＴＡＧ部品と同様、Ｉ２Ｃ部品について、エラー情報から、ネット名、部品ピン、読取値、期待値を取得しており、テストデータベース２８もＩ２Ｃ部品ピンもＪＴＡＧ同様に作成されている。このため、Ｉ２Ｃ回路、あるいはＪＴＡＧとＩ２Ｃとの混在回路でも、情報処理装置１あるいは試験機２は、障害解析を実現で
きる。
【０１７２】
＜効果＞
本実施例のテストジェネレータは、下記の様に主に６つの処理を含み、Ｉ２Ｃ部品モデル化によるＩ２Ｃ回路の試験プログラムを自動生成することを特徴とする。本実施例のテストジェネレータは、従来のテストジェネレータでは実現できないＩ２Ｃ部品のプリント基板９、あるいはＪＴＡＧとＩ２Ｃ部品を混載したプリント基板９の試験プログラムの生成を可能とする。
【０１７３】
（１）Ｉ２Ｃ部品の動作モデル  
本実施例のテストジェネレータは、Ｉ２Ｃ部品の動作モデル２３の設定を前提とする。すなわち、テストジェネレータは、Ｉ２Ｃ部品の動作モデル２３の設定を対応する主記憶上の構造体に読み出し、Ｉ２Ｃ部品表２４の作成、Ｉ２Ｃツリー２５の作成等を実行する。すなわち、Ｉ２Ｃ部品の動作モデル２３により、Ｉ２Ｃ部品の動作表現が可能となり、またＩ２Ｃを制御するためＩ２Ｃ接続ツリーを生成し、Ｉ２Ｃ部品を含むプリント基板９の試験プログラムの生成が可能となる。
【０１７４】
（２）テストアクセス情報の生成
テストジェネレータは、ネットリスト２１からＩ２Ｃ部品の動作モデル２３を参照し、Ｉ２Ｃ部品表２４を作成する。Ｉ２Ｃ部品表２４は、部品名、Ｉ２Ｃモデルへのポインタを含む。Ｉ２Ｃ部品表２４により、テストジェネレータは、未知の部品であるＩ２Ｃ部品を認識できる。また、テストジェネレータは、ネットリスト２１とＩ２Ｃ部品の動作モデル２３により、Ｉ２Ｃツリー２５を自動認識する。そして、テストジェネレータは、Ｉ２ＣツリーまたはＩ２Ｃ部品表２４に、スレーブアドレスを格納し、Ｉ２Ｃ 制御のための
情報を作成することができる。
【０１７５】
また、本実施例のテストジェネレータは、ネットリスト２１とＩ２Ｃ部品の動作モデル２３のピン部より、入力ピンと出力ピンを抽出することができる。したがって、本実施例のテストジェネレータは、ＪＴＡＧ部品と同様に、Ｉ２Ｃ部品のＰＩＯピンをテストアクセス情報２６に含めることができ、Ｉ２Ｃ部品を含む回路をテスト対象とすることができる。
【０１７６】
（３）並列テストパターンの生成
本実施例のテストジェネレータは、テストアクセス情報２６に対して、ＪＴＡＧテストジェネレータと同様に、並列テストパターンを作成する。また、本実施例のテストジェネレータは、並列テストパターンの作成において、テストデータベース２８も作成する。並列テストパターンは、最終テストパターンの生成に用いられ、テストデータベース２８は、障害の解析に用いられる。例えば、テストアクセス情報２６として抽出された各ネットに対して、相互にユニークなビットパターンを割り当てることで、ショートテストによる故障箇所の特定が可能となる。
【０１７７】
（４）最終テストパターンの生成
本実施例のテストジェネレータは、並列テストパターンを基に、Ｉ２Ｃ部品表２４と、Ｉ２Ｃ部品の動作モデル２３とから、並列テストパターンを基に、最終テストパターンを生成できる。
【０１７８】
すなわち、Ｉ２Ｃ部品の動作モデル２３に、ポートに属するピン、入出力の方向、レジスタアドレスを定義しておくことで、テストジェネレータは、並列テストパターンを実現するための試験機２によるＩ２Ｃ部品に対する制御シーケンスとして、最終テストパターンを生成できる。
【０１７９】
また、プリント基板９上にＩ２Ｃ−ＭＰＸが含まれる場合も、Ｉ２Ｃ部品の動作モデル２３に、チャネル選択レジスタの選択値を設定しておくことで、テストジェネレータは、対象とするＩ２Ｃ部品までのチャネルを設定する最終テストパターンを生成できる。その結果、テストジェネレータは、Ｉ２Ｃ−ＭＰＸを通じて、対象とするＩ２Ｃ部品を試験する最終テストパターンを生成できる。
【０１８０】
（５）本実施例のテストジェネレータは、Ｉ２Ｃファンクションテスト、例えば、Ｉ２Ｃ−ＡＤＣ、Ｉ２Ｃ−ＲＯＭ等の試験プログラムを作成することができる。
【０１８１】
（６）障害解析
プリント板試験においては、エラー発生時は、Ｉ２Ｃ部品込のテストデータベース２８が作成されているので、情報処理装置１あるいは試験機２は、Ｉ２Ｃ部品込のテストデータベース２８を基に障害解析が可能となる。
【０１８２】
＜変形例＞
上記実施例では、ＪＴＡＧ部品とＩ２Ｃ部品が搭載されたプリント基板９において、Ｉ２Ｃ部品の動作モデル２３を用意することで、プリント基板９を試験する試験プログラムをテストジェネレータによって自動生成する処理例が説明された。しかし、上記実施例の処理が、ＪＴＡＧ部品とＩ２Ｃ部品が搭載されたプリント基板９に限定される訳ではない。
【０１８３】
例えば、ＪＴＡＧ部品が搭載されず、Ｉ２Ｃ部品が搭載されたプリント基板についても、実施例１と同様の手順で、プリント基板を試験する試験プログラムがテストジェネレータによって自動生成される。また、Ｉ２Ｃ部品以外の部品、例えば、ＳＰＩ（Serial Peripheral Interface）部品等を搭載したプリント基板についても、同様の手順で、試験プ
ログラムの生成が可能となる。つまり、ＳＰＩのインターフェース仕様をＩ２Ｃ部品の動作モデル２３と同様の形式のファイルに格納しておき、テストジェネレータにＳＰＩの動作モデルを解析し、ＳＰＩの制御を取り扱うルーチンを設け、制御情報を生成すればよい。    
【０１８４】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０１８５】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【０１８６】
＜その他＞
本実施の形態は、以下の態様（付記と呼ぶ）を含む。各付記のそれぞれの構成は、他の付記の構成を組み合わせることができる。
【０１８７】
（付記１） 
第１の集積回路と第２の集積回路とを含む電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部と、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル格納部と、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第２の動作モデル格納部と、
前記接続情報の格納部から、前記第１の集積回路と第２の集積回路とを含む前記電子装置内のピン間の接続関係のうち、前記出力ピンと前記入力ピンの両方を含む接続関係をテストが可能なネットとテスト可能なピンの情報であるテストアクセス情報として抽出するテストアクセス情報抽出部と、を備える情報処理装置。
【０１８８】
（付記２）
前記テストアクセス情報として抽出された複数の接続関係に対して、それぞれ異なるビット列を割り付けるテストパターン発生部をさらに備える付記１に記載の情報処理装置。
【０１８９】
（付記３）
前記第２の集積回路は、少なくとも１対の通信ピンを有し、
前記第２の動作モデル格納部は、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様を含み、
前記情報処理装置は、所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成するとともに、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも一方を、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する生成部をさらに備える付記１または２に記載の情報処理装置。
【０１９０】
（付記４）
前記電子装置は、複数の第２の集積回路の通信ピンを切り替えて接続可能な複数チャネルのチャネル通信ピンを有する第３の集積回路を備えており、
前記接続情報の格納部は、前記チャネル通信ピンを含むピン間の接続関係を示す接続情報を格納し、
前記第２の動作モデル格納部は、前記複数チャネルの中から１つのチャネル通信ピンを選択するための選択指定情報を含み、
前記生成部は、前記電子装置上で、電子装置外へ接続するための外部接続点から前記第２の集積回路の通信ピンに至るまでの途中に介在する前記第３の集積回路のチャネル通信ピンを選択する選択指定を前記選択指定情報にしたがって生成する付記３に記載の情報処理装置。
【０１９１】
（付記５）
前記複数チャネルのチャネル通信ピンのそれぞれは、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれの通信ピンに分岐して接続可能であり、
前記第２の動作モデル格納部は、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれを識別するアドレスの算出情報を格納し、
前記情報処理装置は、前記アドレスの算出情報にしたがって、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれのアドレスを算出するアドレス算出部をさらに、有し、
前記生成部は、前記インターフェース仕様にしたがった制御情報に前記第２の集積回路の前記算出されたアドレスを指定し、前記第３の集積回路のチャネル通信ピンを選択する選択指定に前記第３の集積回路の算出されたアドレスを設定する付記３または４に記載の
情報処理装置。
【０１９２】
（付記６）
前記電子装置は、前記通信ピンを有する第４の集積回路をさらに含み、
前記第２の動作モデル格納部は、前記通信ピンを通じて前記第４の集積回路の内部回路からデータを取得するための制御仕様をさらに含み、
前記生成部は、前記通信ピンを通じて前記内部回路から前記データを取得するための制御情報を前記制御仕様にしたがって生成する付記１から５のいずれか１項に記載の情報処理装置。
【０１９３】
（付記７）
前記第１の集積回路は、
前記第１の集積回路に含まれるピンとの間で授受したデータを保持するとともに、保持したデータをシーケンシャルにシフト可能なレジスタ列と、
前記レジスタ列にシーケンシャルにデータを書き込むための第１制御入力ピンと、
前記レジスタ列からシーケンシャルにデータを読み取るための第１制御出力ピンと、を有する付記１から６のいずれか１項に記載の情報処理装置。
【０１９４】
（付記８）
第１の集積回路と第２の集積回路とを含む電子装置のテストデータを作成するテストデータ作成装置であって、
前記第２の集積回路は、少なくとも１対の通信ピンを有しており、
前記テストデータ作成装置は、
前記第１の集積回路と第２の集積回路とを含む、前記電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部と、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル格納部と、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデル格納部と、
所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成するとともに、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも一方を、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する生成部と、を備えるテストデータ作成装置。
【０１９５】
（付記９） 
コンピュータが、
第１の集積回路と第２の集積回路とを含む電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
前記取得した接続関係のうち、前記出力ピンと前記入力ピンの両方を含む接続関係をテストが可能なネットとテスト可能なピンの情報であるテストアクセス情報として抽出する
ステップと、を実行する電子装置のテストデータ作成方法。
【０１９６】
（付記１０）
前記テストアクセス情報として抽出された複数の接続関係に対して、それぞれ異なるビット列を割り付けるテストパターン発生ステップをさらに実行する付記９に記載の電子装置のテストデータを作成方法。
【０１９７】
（付記１１）
前記第２の集積回路は、少なくとも１対の通信ピンを有し、
前記第２の動作モデル情報は、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様を含み、
前記コンピュータは、所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する第２生成ステップと、をさらに実行する付記９または１０に記載の電子装置のテストデータ作成方法。
【０１９８】
（付記１２）
前記電子装置は、複数の第２の集積回路の通信ピンを切り替えて接続可能な複数チャネルのチャネル通信ピンを有する第３の集積回路を備えており、
前記接続情報の格納部は、前記チャネル通信ピンを含むピン間の接続関係を示す接続情報を格納しており、
前記第２の動作モデル情報は、前記複数チャネルの中から１つのチャネル通信ピンを選択するための選択指定情報を含み、
前記第２生成ステップは、前記電子装置内で、電子装置外へ接続するための外部接続点から前記第２の集積回路の通信ピンに至るまでの途中に介在する前記第３の集積回路のチャネル通信ピンを選択する選択指定を生成するステップを含む、付記１１に記載の電子装置のテストデータ作成方法。
【０１９９】
（付記１３）
前記複数チャネルのチャネル通信ピンのそれぞれは、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれの通信ピンに分岐して接続可能であり、
前記第２の動作モデル情報は、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれを識別するアドレスの算出情報を有し、
前記コンピュータは、前記アドレスの算出情報にしたがって、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれのアドレスを算出するアドレス算出ステップをさらに実行し、
前記第２生成ステップは、前記インターフェース仕様にしたがった制御情報に前記第２の集積回路の前記算出されたアドレスを設定するステップと、
前記第３の集積回路のチャネル通信ピンを選択する選択指定に前記第３の集積回路の前記算出されたアドレスを設定するステップと、を含む付記１１または１２に記載の電子装置のテストデータ作成方法。
【０２００】
（付記１４）
前記電子装置は、前記通信ピンを有する第４の集積回路をさらに含み、
前記第２の動作モデル格納部は、前記通信ピンを通じて前記第４の集積回路の内部回路からデータを取得するための制御仕様をさらに含み、
前記第２生成ステップは、前記通信ピンを通じて前記内部回路から前記データを取得するための制御情報を前記制御仕様にしたがって生成するステップを含む付記９から１３の
いずれか１項に記載のテストデータ作成方法。
【０２０１】
（付記１５）
第１の集積回路と第２の集積回路とを含む電子装置のテストデータをコンピュータが作成するテストデータ作成方法であって、
前記第２の集積回路は、少なくとも１対の通信ピンを有しており、
前記コンピュータが、
前記第１の集積回路と第２の集積回路とを含む前記電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様が定義される第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する第２生成ステップと、を実行するテストデータ作成方法。
【０２０２】
（付記１６） 
コンピュータに、
第１の集積回路と第２の集積回路とを含む電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
前記取得した接続関係のうち、前記出力ピンと前記入力ピンの両方を含む接続関係をテストが可能なネットとテスト可能なピンの情報であるテストアクセス情報として抽出するステップと、を実行させるためのプログラム。
【０２０３】
（付記１７）
前記テストアクセス情報として抽出された複数の接続関係に対して、それぞれ異なるビット列を割り付けるテストパターン発生ステップをさらに実行させるための付記１６に記載のプログラム。
【０２０４】
（付記１８）
前記第２の集積回路は、少なくとも１対の通信ピンを有し、
前記第２の動作モデル情報は、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフェース仕様を含み、
前記コンピュータに、所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがっ
た制御情報を生成する第２生成ステップと、をさらに実行させるための付記１６または１７に記載のプログラム。
【０２０５】
（付記１９）
前記電子装置は、複数の第２の集積回路の通信ピンを切り替えて接続可能な複数チャネルのチャネル通信ピンを有する第３の集積回路を備えており、
前記接続情報の格納部は、前記チャネル通信ピンを含むピン間の接続関係を示す接続情報を格納しており、
前記第２の動作モデル情報は、前記複数チャネルの中から１つのチャネル通信ピンを選択するための選択指定情報を含み、
前記第２生成ステップは、前記電子装置内で、電子装置外へ接続するための外部接続点から前記第２の集積回路の通信ピンに至るまでの途中に介在する前記第３の集積回路のチャネル通信ピンを選択する選択指定を生成するステップを含む、付記１８に記載のプログラム。
【０２０６】
（付記２０）
前記複数チャネルのチャネル通信ピンのそれぞれは、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれの通信ピンに分岐して接続可能であり、
前記第２の動作モデル情報は、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれを識別するアドレスの算出情報を有し、
前記コンピュータに、前記アドレスの算出情報にしたがって、前記第２の集積回路または前記第３の集積回路を含む複数の集積回路のそれぞれのアドレスを算出するアドレス算出ステップをさらに実行させ、
前記第２生成ステップは、前記インターフェース仕様にしたがった制御情報に前記第２の集積回路の前記算出されたアドレスを設定するステップと、
前記第３の集積回路のチャネル通信ピンを選択する選択指定に前記第３の集積回路の前記算出されたアドレスを設定するステップと、を含む付記１８または１９に記載のプログラム。
【０２０７】
（付記２１）
前記電子装置は、前記通信ピンを有する第４の集積回路をさらに含み、
前記第２の動作モデル格納部は、前記通信ピンを通じて前記第４の集積回路の内部回路からデータを取得するための制御仕様をさらに含み、
前記第２生成ステップは、前記通信ピンを通じて前記内部回路から前記データを取得するための制御情報を前記制御仕様にしたがって生成するステップを含む付記１６から２０のいずれか１項に記載のプログラム。
【０２０８】
（付記２２）
第１の集積回路と第２の集積回路とを含む電子装置のテストデータをコンピュータに作成させるプログラムであって、
前記第２の集積回路は、少なくとも１対の通信ピンを有しており、
前記コンピュータに、
前記第１の集積回路と第２の集積回路とを含む前記電子装置内の集積回路のピン間の接続関係を示す接続情報の格納部から接続情報を取得するステップと、
前記第１の集積回路外へデータを出力する出力ピンの指定および前記第１の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含む第１の動作モデル情報の格納部から第１の動作モデル情報を取得するステップと、
前記第２の集積回路外へデータを出力する出力ピンの指定および前記第２の集積回路外からデータを入力する入力ピンの指定の少なくとも１つを含み、前記通信ピンを通じて前記第２の集積回路の前記入力ピンと出力ピンとにデータを入出力するためのインターフ
ェース仕様が定義される第２の動作モデル情報の格納部から第２の動作モデル情報を取得するステップと、
所定の仕様にしたがって前記第１の集積回路との間でデータを授受するための制御情報を生成する第１生成ステップと、
前記出力ピンへのデータの書き出しおよび前記入力ピンからのデータの読み込みの少なくとも１つを、前記通信ピンを通じて行うための、前記インターフェース仕様にしたがった制御情報を生成する第２生成ステップと、を実行させるためのプログラム。
【符号の説明】
【０２０９】
１  情報処理装置 
２  試験機
９  プリント基板
１１、１２  コネクタ
２１  ネットリスト
２２  ＢＳＤＬ
２３  Ｉ２Ｃ動作モデル
２４  Ｉ２Ｃ部品表
２５  Ｉ２Ｃツリー
２６  テストアクセス情報
２７  並列オープンショート
２８  テストデータベース
２９  並列Ｉ２Ｃファンクション
３０  オープンショートテスト
３１  Ｉ２Ｃファンクションテスト
Ｌ１Ａ、Ｌ１Ｂ、Ｌ２、Ｌ３、Ｌ４、Ｌ５、Ｌ６、Ｌ７、Ｌ８  配線
【図１】
2014044597.tif 000003
【図２】
2014044597.tif 000004
【図３】
2014044597.tif 000005
【図４】
2014044597.tif 000006
【図５】
2014044597.tif 000007
【図６】
2014044597.tif 000008
【図７】
2014044597.tif 000009
【図８】
2014044597.tif 000010
【図９】
2014044597.tif 000011
【図１０】
2014044597.tif 000012
【図１１】
2014044597.tif 000013
【図１２】
2014044597.tif 000014
【図１３】
2014044597.tif 000015
【図１４】
2014044597.tif 000016
【図１５】
2014044597.tif 000017
【図１６】
2014044597.tif 000018
【図１７】
2014044597.tif 000019
【図１８】
2014044597.tif 000020
【図１９Ａ】
2014044597.tif 000021
【図１９Ｂ】
2014044597.tif 000022
【図２０】
2014044597.tif 000023
【図２１】
2014044597.tif 000024