(57)【要約】【課題】外部負荷を通信制御回路として入れたテスト手法に関して、追加の遅延素子・遅延回路を必要としない。【解決手段】半導体集積回路内にある入出力バッファ群を利用して負荷（遅延）回路を実現する。具体的には、入出力ループ制御回路が、入出力バッファを負荷として使用するための負荷付きループ制御レジスタの値により入出力バッファで構成される接続負荷の切断・接続を行う。入出力ループ制御回路は、第１マルチプレクサ、第２マルチプレクサ、及び第３マルチプレクサを含む。第１マルチプレクサ、第２マルチプレクサ、及び第３マルチプレクサは、それぞれ入出力バッファに接続され、配線接続経路を制御する。負荷付きループ制御レジスタは、レジスタの設定状態により、第１マルチプレクサ、第２マルチプレクサ、及び第３マルチプレクサの各々の切断、接続の選択を行う。【選択図】図３
2009020060.tif 000002
【特許請求の範囲】
【請求項１】
第１端子に出力される第１マクロの出力信号と、第１出力対象信号とのいずれか一方を第１選択信号に基づいて選択し第２端子に出力する第１マルチプレクサと、
前記第１マルチプレクサの出力信号と、第２出力対象信号とのいずれか一方を第２選択信号に基づいて選択し第３端子に出力する第２マルチプレクサと、
前記第１マクロの出力信号と、前記第１マルチプレクサの出力信号と、前記第２マルチプレクサの出力信号とのいずれか一つを第３選択信号に基づいて選択し第２マクロに出力する第３マルチプレクサと、
前記第１選択信号-、前記第２選択信号、及び前記第３選択信号を制御するループ制御レジスタと
を具備する
テスト回路。
【請求項２】
請求項１に記載のテスト回路であって、
前記第１マクロと前記第１端子との間に設けられた第１出力バッファと、
前記第１端子と前記第１マルチプレクサとの間に設けられ、前記第１出力バッファの出力信号を受ける第１入力バッファと、
前記第１マルチプレクサと前記第２端子との間に設けられた第２出力バッファと、
前記第２端子と前記第２マルチプレクサとの間に設けられ、前記第２出力バッファの出力信号を受ける第２入力バッファと、
前記第２マルチプレクサと前記第３端子との間に設けられた第３出力バッファと、
前記第３端子と前記第３マルチプレクサとの間に設けられ、前記第３出力バッファの出力信号を受ける第３入力バッファと
を更に具備する
テスト回路。
【請求項３】
請求項２に記載のテスト回路であって、
前記第２出力バッファ及び前記第２入力バッファのうち少なくとも１つは、前記第１選択信号が許可の場合に回路負荷となる第１遅延素子を形成し、
前記第３出力バッファ及び前記第３入力バッファのうち少なくとも１つは、前記第２選択信号が許可の場合に回路負荷となる第２遅延素子を形成し、
前記第１マクロと前記第２マクロとの間には、
前記第１遅延素子を含む第１経路と、
前記第１遅延素子及び前記第２遅延素子を含む第２経路と、
遅延素子を含まない第３経路と
が設けられている
テスト回路。
【請求項４】
請求項１乃至３のいずれか一項に記載のテスト回路であって、
前記ループ制御レジスタは、
前記第１選択信号を設定するための第１レジスタと、
前記第２選択信号を設定するための第２レジスタと、
前記第３選択信号を設定するための第３レジスタと、
内部バスを介して前記第１レジスタ、前記第２レジスタ、及び前記第３レジスタに接続されたＣＰＵブロックと、
前記内部バスに接続され、前記第１選択信号、前記第２選択信号、及び前記第３選択信号を制御するための設定値を格納するメモリブロックと
を具備する
テスト回路。
【請求項５】
請求項１乃至４のいずれか一項に記載のテスト回路であって、
前記第１マルチプレクサは、入出力ループ制御を有効にする切り替え用信号が半導体集積回路に入力され、前記第１マクロと前記第２マクロとの通信テストに移行すると、前記第１マクロの出力信号を受ける
テスト回路。
【請求項６】
第１マクロの出力信号を第１端子に出力するステップと、
第１選択信号に応じて、前記第１端子への出力信号と、第１出力対象信号とのいずれか一方を選択し第２端子に出力するステップと、
第２選択信号に応じて、前記第２端子への出力信号と、第２出力対象信号とのいずれか一方を選択し第３端子に出力するステップと、
第３選択信号に応じて、前記第１マクロの出力信号と、前記第２端子への出力信号と、前記第３端子への出力信号とのいずれか一つを選択し第２マクロに出力するステップと、
前記第１端子の出力信号、前記第２端子の出力信号、及び前記第３端子の出力信号を外部にて監視するステップと、
前記第１端子の出力信号、前記第２端子の出力信号、及び前記第３端子の出力信号のうちの２つの出力信号を比較し、配線遅延値を算出するステップと
を具備する
テスト方法。
【請求項７】
請求項６に記載のテスト方法であって、
前記配線遅延値を通信間配線遅延スペックと比較して差分がスペックの定義内であるか確認し、前記配線遅延値が前記通信間配線遅延スペックと異なるか判定するステップと、
前記配線遅延値が前記通信間配線遅延スペックと異なる場合、前記通信間配線遅延スペックを満足する前記第１選択信号、前記第２選択信号、及び前記第３選択信号の選択制御信号を発生するステップと
を更に具備する
テスト方法。
【請求項８】
請求項６又は７に記載のテスト方法であって、
前記第１選択信号の接続経路を選択するための第１レジスタへ設定したい値を、メモリブロックにある任意のアドレスの「ｂｉｔ０」へ書き込むステップと、
前記第２選択信号の接続経路を選択するための第２レジスタへ設定したい値を、前記メモリブロックにある任意のアドレスの「ｂｉｔ１」へ書き込むステップと、
前記第３選択信号の接続経路を選択するための第３レジスタへ設定したい値を、前記メモリブロックにある任意のアドレスの「ｂｉｔ２／３」へ書き込むステップと、
テストを行う許可が出たか否かを判定するステップと、
テストを行う許可が出た場合、前記メモリブロックにある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込まれている値に基づくデータ書き込み許可信号を出力するステップと、
前記データ書き込み許可信号に応じて、前記メモリブロックにある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込まれている値を、前記第１レジスタ、前記第２レジスタ、及び前記第３レジスタへ書き込み、前記第１選択信号、前記第２選択信号、及び前記第３選択信号の接続経路を選択する出力信号を決定するステップと
を更に具備する
テスト方法。
【請求項９】
請求項８に記載のテスト方法であって、
前記第１レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ０＝１」であるか判定するステップと、
前記第１レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ０＝１」であれば、前記第１選択信号の接続経路を選択するステップと、
前記第２レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ１＝１」であるか判定するステップと、
前記第２レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ１＝１」であれば、前記第２選択信号の接続経路を選択するステップと、
前記第３レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝００」であるか判定するステップと、
前記第３レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝００」であれば、第１遅延素子を含む経路を選択するステップと、
前記第３レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝０１」であるか判定するステップと、
前記第３レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝０１」であれば、前記第１遅延素子及び第２遅延素子を含む経路を選択するステップと、
前記第３レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝１０」又は「ｂｉｔ２／３＝１１」であるか判定するステップと、
前記第３レジスタに書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝１０」又は「ｂｉｔ２／３＝１１」であれば、遅延素子を含まない経路を選択するステップと
を更に具備する
テスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に通信機能を内蔵した半導体集積回路の送受信テストにおける入出力ループのテスト回路及びテスト方法に関する。
【背景技術】
【０００２】
テスト対象である半導体集積回路の通信テストを通常用いられるＩＣテスタを用いてテストを行う場合、送受信の条件である外部負荷相当の回路を「通信制御回路」として半導体集積回路内部に設け通信テストを行う必要がある。
【０００３】
この場合は、半導体集積回路の通信テストを行う上での送受信における入出力に接続される外部負荷を内部の「通信制御回路」で擬似的に実現している。
【０００４】
上記のテスト方法では外部負荷を内部の「通信制御回路」により擬似的に実現しているため、送受信時の外部負荷規格変更を行った場合、最適な外部負荷規格に対応できない。例えば、規格変更に対応する場合は半導体集積回路として問題がない場合でも、通信制御回路の負荷規格変更が必要となるため改版修正が必要になる場合がある。また、通信制御回路として製品機能以外の制御回路を搭載することになり、チップ面積の増大の一因ともなると考えられる。
【０００５】
図１に、関連する技術である通信制御回路のブロック図を示す。なお、この通信制御回路については、特許３４５０２７４号公報（特許文献１）に開示されている。
【０００６】
この関連技術の例では、半導体集積回路に接続される外部負荷によるループバックテストを、内部の通信制御回路で実現している。
内部の通信制御回路は、ＰＨＹ（Ｐｈｙｓｉｃａｌ  ｌａｙｅｒ  Ｄｒｉｖｅｒ）回路を含む。ＰＨＹ回路は、ＬＩＮＫインターフェースブロック（１１１）と、ローカルクロック生成回路（ＣＬＫＧＥＮ）（１０５）と、バス調停ブロック（１１９）と、パラレル・シリアル変換回路（Ｐ／Ｓ）（１２３，１２４）と、ケーブル駆動ブロック（１２９）と、受信クロック再生回路（１２８）と、シリアル・パラレル変換回路（Ｓ／Ｐ）（１２５）と、受信ブロック（１２０）を備える。
【０００７】
ＬＩＮＫインターフェースブロック（１１１）は、外部のＬＩＮＫレイヤとのデータ信号（１０１）のやり取りを行う。ローカルクロック生成回路（ＣＬＫＧＥＮ）（１０５）は、データ信号（１０１）の再同期化を行う。バス調停ブロック（１１９）は、ＬＩＮＫレイヤからの要求信号（１０２）を受ける。パラレル・シリアル変換回路（Ｐ／Ｓ）（１２３，１２４）は、送信ブロック（１１５）の出力（１１７出力）をパラレル・シリアル変換する。ケーブル駆動ブロック（１２９）は、パラレル・シリアル変換回路（Ｐ／Ｓ）（１２３，１２４）の出力信号（Ｓｔｒｂ＿Ｔｘ，Ｄａｔａ＿ｔｘ）を受け、バス（１３７，１３９）へその信号（Ｔｐａ，Ｔｐｂ）を送信し、バス（１３７，１３９）からの信号又はパラレル・シリアル変換回路（Ｐ／Ｓ）（１２３，１２４）の出力する信号を受信信号として受けて、バス（１３７，１３９）の使用権利を獲得するためバス調停ブロック（１１９）から支持されたアービトレーションコードに対応するアービトレーション信号（Ａｒｂ＿ａ，Ａｒｂ＿ｂ）を出力する。受信クロック再生回路（１２８）は、ケーブル駆動ブロック（１２９）の受信信号（Ｄａｔａ＿Ｒｘ，Ｓｔｒｂ＿Ｒｘ）を受ける。シリアル・パラレル変換回路（Ｓ／Ｐ）（１２５）は、ケーブル駆動ブロック（１２９）の受信信号（Ｄａｔａ＿Ｒｘ）を受け、受信信号（Ｄａｔａ＿Ｒｘ）をシリアル・パラレル変換する。受信ブロック（１２０）は、受信クロック再生回路（１２８）の出力信号、及びシリアル・パラレル変換回路（Ｓ／Ｐ）（１２５）の出力信号を受ける。
【０００８】
このＰＨＹ回路は、パケット送受信で用いるポート（接続端子）を複数個持ち、ケーブル環境下では、各ＰＨＹ回路のポート同士を１対１の６芯ケーブルで接続し、アービトレーション信号（Ａｒｂ＿ａ，Ａｒｂ＿ｂ）を受けた後、アービトレーション信号（Ａｒｂ＿ａ，Ａｒｂ＿ｂ）を反転して切り換えて、受信ブロック（１２０）を活性化するようバス調停ブロック（１１９）を制御する。また、受信ブロック（１２０）の出力（１１２出力）と通信制御回路の自己診断テストデータ（１４６出力）とを比較（１４３）し、その送信動作及び受信動作をテストする自己テスト診断テストブロック（１４１）とを備えて送信制御回路をテストする際に６芯ケーブルを用いずＰＨＹ回路単体でループバックテストをする。
【０００９】
図２に、図１のテスト概略構成図を示す。
図２に示される半導体集積回路（１００ａ）は、通信回路（１ａ）と、送信回路（２ａ）と、受信回路（３ａ）と、出力バッファＤＲＶ１（４ａ）と、入力バッファＣＲＶ２（５ａ）と、通信制御回路（テスト回路）（６ａ）と、出力配線ＰＲＴ１（７ａ）と、入力配線ＰＲＴ２（８ａ）と、出力端子Ｔ１（９ａ）と、入力端子Ｔ２（１０ａ）と、テスト制御端子Ｔ３（１１ａ）を含む。
【００１０】
ＰＨＹ回路を通信回路（１ａ）とする。通信回路（１ａ）は、送信回路（２ａ）と受信回路（３ａ）を含む。ここでは、図１の送信ブロック（１１５）を送信回路（２ａ）、図１の受信ブロック（１２０）を受信回路（３ａ）とする。図１のケーブル駆動ブロック（１２９）の入出力バッファ（１３０〜１３５）を出力バッファＤＲＶ１（４ａ）、入力バッファＣＲＶ２（５ａ）とする。図１の自己診断テストブロック（１４１）を通信制御回路（テスト回路）（６ａ）とする。図１の入出力配線（Ｔｐａ，Ｔｐｂ）を出力配線ＰＲＴ１（７ａ）、入力配線ＰＲＴ２（８ａ）とする。図１の端子（１３７〜１４０）を出力端子Ｔ１（９ａ）、入力端子Ｔ２（１０ａ）とする。図１中のテスト制御信号（１０３）をテスト制御端子Ｔ３（１１ａ）とする。
【００１１】
通信回路（１ａ）であるＰＨＹ回路をテストする際、通常は、外部負荷条件相当の外部ケーブルにて出力端子Ｔ１（９ａ）と入力端子Ｔ２（１０ａ）を接続し、入出力のループバックテストを行うが、関連技術として取り上げている「特許３４５０２７４号（特許文献１）」では、外部ケーブルを用いずＰＨＹ回路単体でループバックテストをすることを特徴とする通信制御回路（テスト回路）（６ａ）を内蔵してテストを行う。
【００１２】
関連する半導体集積回路のテストとして、半導体集積回路（１００ａ）に内蔵された通信制御回路（テスト回路）（６ａ）を用い、外部負荷を擬似的に半導体集積回路（１００ａ）内部に実現して通信のテストを行う。テスト制御端子Ｔ３（１１ａ）は、通信制御回路（テスト回路）（６ａ）の接続を制御する端子である。
【００１３】
【特許文献１】特許３４５０２７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
図２のテスト方法では、通信時の外部負荷を内部回路である「通信制御回路（テスト回路）」で実現しているため、半導体集積回路として１ＣＨＩＰ（チップ）化された場合、内蔵された「通信制御回路（テスト回路）」での外部負荷規格の変更による通信制御回路内の外部負荷の設定変更が困難であると考えられる。
【００１５】
また、外部負荷を内部通信制御回路で実現しているため回路規模が大きくなると考えられる。例えば、複数の通信機能を半導体集積回路に内蔵している場合はそれぞれに対応した内部通信制御回路が必要となり回路規模が大きくなる。テスト用に通信制御回路を内蔵しているため、回路保証のために通信制御回路部分のテストが追加で必要である。
【００１６】
また、コスト面においても、通信制御回路を内蔵することでチップサイズが大きくなると、ウエハ（ｗａｆｅｒ）当りのチップコストに影響がある。更に、外部負荷を通信制御回路によりチップ内部に実現しているため、通信制御回路のテスト、動作保証も製品として必要であるためテストコストの増加となる。
【課題を解決するための手段】
【００１７】
負荷生成回路を、既存の内部回路を使用して配線負荷を実現する。具体的には、通信端子間の配線負荷を含めたテストをチップ内で行うために入出力バッファ群を利用し、負荷（遅延素子）を作成するための制御回路及び切換回路を有する。また、配線負荷を確認するために、負荷を構成するバッファ毎に端子の遅延を測定する事で負荷値を変更することを可能とした制御を行う。
【００１８】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１９】
本発明のテスト回路は、第１端子（１ｂ）に出力される第１マクロ（１５ｂ）の出力信号（２６ｂ）と、第１出力対象信号（２７ｂ）とのいずれか一方を第１選択信号（２１ｂ）に基づいて選択し第２端子（２ｂ）に出力する第１マルチプレクサ（１１ｂ）と、第１マルチプレクサ（１１ｂ）の出力信号と、第２出力対象信号（２９ｂ）とのいずれか一方を第２選択信号（２２ｂ）に基づいて選択し第３端子（３ｂ）に出力する第２マルチプレクサ（１２ｂ）と、第１マクロ（１５ｂ）の出力信号（２６ｂ）と、第１マルチプレクサ（１１ｂ）の出力信号と、第２マルチプレクサ（１２ｂ）の出力信号とのいずれか一つを第３選択信号（２３ｂ）に基づいて選択し第２マクロ（１６ｂ）に出力する第３マルチプレクサ（１３ｂ）と、第１選択信号（２１ｂ）、第２選択信号（２２ｂ）、及び第３選択信号（２３ｂ）を制御するループ制御レジスタ（１４ｂ）とを具備する。この説明におけるテスト回路は、後述する図３の入出力ループ制御回路（１０ｂ）に相当する。
【００２０】
テストの際は、第１端子（１ｂ）、第２端子（２ｂ）、及び第３端子（３ｂ）を用いて信号を外部にてモニター（監視）し、このモニターした配線遅延値を、通信間配線遅延スペックと比較し、差分がスペックの定義内であるか確認する。
【発明の効果】
【００２１】
外部負荷を通信制御回路として入れたテスト手法に関して、半導体集積回路内にある入出力バッファ群を利用して負荷（遅延）回路を実現することで、追加の遅延素子・遅延回路を必要としない。また、入出力バッファを負荷として使用するための負荷付きループ制御レジスタの値により、入出力バッファで構成される接続負荷に対し、切断・接続を行うことで負荷変更が容易に行えるようになる。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明の第１実施例について添付図面を参照して説明する。
図３は、シリアル（ＳＩＯ（Ｓｅｒｉａｌ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ））通信を行うマクロを２つ（ＳＩＯ１、ＳＩＯ２）搭載している場合における本発明の実施例である。
本実施例の半導体集積回路（１００ｂ）は、端子１（１ｂ）と、端子２（２ｂ）と、端子３（３ｂ）と、出力バッファＤＲＶ１（４ｂ）と、出力バッファＤＲＶ２（５ｂ）と、出力バッファＤＲＶ３（６ｂ）と、入力バッファＣＲＶ１（７ｂ）と、入力バッファＣＲＶ２（８ｂ）と、入力バッファＣＲＶ３（９ｂ）と、入出力ループ制御回路（１０ｂ）と、マルチプレクサＭＰＸ１（１１ｂ）と、マルチプレクサＭＰＸ２（１２ｂ）と、マルチプレクサＭＰＸ３（１３ｂ）と、負荷付きループ制御レジスタ（１４ｂ）と、ＳＩＯ１（１５ｂ）と、ＳＩＯ２（１６ｂ）と、メモリブロック（１７ｂ）を含む。
【００２３】
端子１（１ｂ）、端子２（２ｂ）、及び端子３（３ｂ）は、半導体集積回路（１００ｂ）と外部接続先を接続するための端子である。
【００２４】
出力バッファＤＲＶ１（４ｂ）、出力バッファＤＲＶ２（５ｂ）、出力バッファＤＲＶ３（６ｂ）、入力バッファＣＲＶ１（７ｂ）、入力バッファＣＲＶ２（８ｂ）、及び入力バッファＣＲＶ３（９ｂ）は、既存の入出力バッファである。
【００２５】
入出力ループ制御回路（１０ｂ）は、マルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）を含む回路である。
【００２６】
マルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）は、一つの経路で複数のデータを伝送可能にするための多重化装置である。
【００２７】
負荷付きループ制御レジスタ（１４ｂ）は、入出力ループ制御回路（１０ｂ）のマルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）を制御するための設定値を格納するレジスタである。
【００２８】
ＳＩＯ１（１５ｂ）、ＳＩＯ２（１６ｂ）は、シリアル通信マクロである。
【００２９】
メモリブロック（１７ｂ）は、蓄積された情報を負荷付きループ制御レジスタ（１４ｂ）に提供する記憶装置である。
【００３０】
また、本実施例における各信号について説明する。
ここでは、選択信号ＳＬ１（２１ｂ）と、選択信号ＳＬ２（２２ｂ）と、選択信号ＳＬ３（２３ｂ）と、ＳＩＯ１ｏｕｔ（２４ｂ）と、ＳＩＯ２ｉｎ（２５ｂ）と、端子１ｉｎ（２６ｂ）と、端子２ｏｕｔ（２７ｂ）と、端子２ｉｎ（２８ｂ）と、端子３ｏｕｔ（２９ｂ）について説明する。
【００３１】
選択信号ＳＬ１（２１ｂ）、選択信号ＳＬ２（２２ｂ）、及び選択信号ＳＬ３（２３ｂ）は、マルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）の選択を制御するための信号である。ここでは、負荷付きループ制御レジスタ（１４ｂ）が、選択信号ＳＬ１（２１ｂ）、選択信号ＳＬ２（２２ｂ）、及び選択信号ＳＬ３（２３ｂ）を出力する。
【００３２】
ＳＩＯ１ｏｕｔ（２４ｂ）は、シリアル通信マクロであるＳＩＯ１（１５ｂ）の出力信号である。また、ＳＩＯ２ｉｎ（２５ｂ）は、シリアル通信マクロであるＳＩＯ２（１６ｂ）への入力信号である。
【００３３】
端子１ｉｎ（２６ｂ）、端子２ｏｕｔ（２７ｂ）、端子２ｉｎ（２８ｂ）、及び端子３ｏｕｔ（２９ｂ）は、信号入力／出力ノードを介して入出力ループ制御回路（１０ｂ）と他の回路等との間でやり取りされる信号である。端子１ｉｎ（２６ｂ）は、端子１（１ｂ）の入力信号である。ここでは、ＳＩＯ１（１５ｂ）の出力信号を示す。端子２ｏｕｔ（２７ｂ）は、端子２（２ｂ）への出力信号である。端子２ｉｎ（２８ｂ）は、端子２（２ｂ）の入力信号である。ここでは、マルチプレクサＭＰＸ１（１１ｂ）の出力信号を示す。端子３ｏｕｔ（２９ｂ）は、端子３（３ｂ）への出力信号である。
【００３４】
以下に、ＳＩＯ１（１５ｂ）、ＳＩＯ２（１６ｂ）を用いて通信テストを行う際に、この２マクロ間の接続に対し遅延負荷を付ける場合の構成例を説明する。
【００３５】
この２マクロ間に接続負荷を作成する構成の場合、ＳＩＯ１ｏｕｔ（２４ｂ）を入力された出力バッファＤＲＶ１（４ｂ）の出力先に接続している入力バッファＣＲＶ１（７ｂ）の出力信号（端子１ｉｎ（２６ｂ））をマルチプレクサＭＰＸ１（１１ｂ）に入力する。このマルチプレクサＭＰＸ１（１１ｂ）の片側入力には、端子２（２ｂ）に出力される信号（端子２ｏｕｔ（２７ｂ））を入力する。この入力信号の切り換えを行うため、マルチプレクサＭＰＸ１（１１ｂ）に選択信号ＳＬ１（２１ｂ）を入力する。マルチプレクサＭＰＸ１（１１ｂ）の出力信号を端子２（２ｂ）に接続している出力バッファＤＲＶ２（５ｂ）に入力する。
【００３６】
出力バッファＤＲＶ２（５ｂ）の出力信号を端子２（２ｂ）に入力する。この端子２（２ｂ）に接続している入力バッファＣＲＶ２（８ｂ）の出力信号（端子２ｉｎ（２８ｂ））をマルチプレクサＭＰＸ２（１２ｂ）に入力する。このマルチプレクサＭＰＸ１（１２ｂ）の片側入力には、端子３（３ｂ）に出力される信号（端子３ｏｕｔ（２９ｂ））を入力する。この入力信号の切り換えを行うため、マルチプレクサＭＰＸ２（１２ｂ）に選択信号ＳＬ２（２２ｂ）を入力する。マルチプレクサＭＰＸ２（１２ｂ）の出力信号を端子３（３ｂ）に接続している出力バッファＤＲＶ３（６ｂ）に入力する。
【００３７】
更に、マルチプレクサＭＰＸ１（１１ｂ）からマルチプレクサＭＰＸ２（１２ｂ）へ経由された信号を、出力バッファＤＲＶ３（６ｂ）を通して、端子３（３ｂ）に接続している入力バッファＣＲＶ３（９ｂ）に入力する。入力バッファＣＲＶ３（９ｂ）の出力信号をマルチプレクサＭＰＸ３（１３ｂ）に入力する。マルチプレクサＭＰＸ３（１３ｂ）のその他の入力には、入力バッファＣＲＶ１（７ｂ）からの出力信号（端子１ｉｎ（２６ｂ））と、入力バッファＣＲＶ２（８ｂ）からの出力信号（端子２ｉｎ（２８ｂ））を入力する。この入力信号の切り換えを行うため、マルチプレクサＭＰＸ３（１３ｂ）に選択信号ＳＬ３（２３ｂ）を入力する。
【００３８】
マルチプレクサＭＰＸ３（１３ｂ）の出力信号は、選択信号ＳＬ３（２３ｂ）による選択後の信号である。
【００３９】
負荷付きループ制御レジスタ（１４ｂ）は、マルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）の各マルチプレクサを制御する選択信号ＳＬ１（２１ｂ）、選択信号ＳＬ２（２２ｂ）、及び選択信号ＳＬ３（２３ｂ）を制御し、接続負荷を変更する。
【００４０】
次に、接続負荷を変更できる構成の場合の信号の流れを説明する。
まず、シリアル（ＳＩＯ）通信を行う２つのマクロ（ＳＩＯ１（１５ｂ）、ＳＩＯ２（１６ｂ））間を接続し、外部負荷となる遅延負荷を付ける例を説明する。
【００４１】
図３中のＳＩＯ１ｏｕｔ（２４ｂ）に外部負荷となる遅延負荷を付ける為、ＳＩＯ１ｏｕｔ（２４ｂ）に接続されている出力バッファＤＲＶ１（４ｂ）の出力信号を入力バッファＣＲＶ１（７ｂ）へ渡し、入力バッファＣＲＶ１（７ｂ）の出力信号（端子１ｉｎ（２６ｂ））をマルチプレクサＭＰＸ１（１１ｂ）へ渡す。
【００４２】
マルチプレクサＭＰＸ１（１１ｂ）の出力信号を出力バッファＤＲＶ２（５ｂ）へ渡し、出力バッファＤＲＶ２（５ｂ）の出力信号を入力バッファＣＲＶ２（８ｂ）で受ける。更に、入力バッファＣＲＶ２（８ｂ）の出力信号（端子２ｉｎ（２８ｂ））をマルチプレクサＭＰＸ２（１２ｂ）で受ける。
【００４３】
マルチプレクサＭＰＸ２（１２ｂ）の出力信号を出力バッファＤＲＶ３（６ｂ）へ渡し、出力バッファＤＲＶ３（６ｂ）の出力信号を入力バッファＣＲＶ３（９ｂ）へ渡し、入力バッファＣＲＶ３（９ｂ）の出力信号をマルチプレクサＭＰＸ３（１３ｂ）へ渡す。
【００４４】
マルチプレクサＭＰＸ３（１３ｂ）の出力信号をＳＩＯ２ｉｎ（２５ｂ）へ渡す。
【００４５】
この経路がＳＩＯ１ｏｕｔ（２４ｂ）とＳＩＯ２ｉｎ（２５ｂ）を接続する経路である。この経路は、負荷付きループ制御レジスタ（１４ｂ）に格納されている設定値によりマルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）を制御することで作成できる。
【００４６】
負荷付きループ制御レジスタ（１４ｂ）は、レジスタの設定状態により、マルチプレクサＭＰＸ１（１１ｂ）、マルチプレクサＭＰＸ２（１２ｂ）、及びマルチプレクサＭＰＸ３（１３ｂ）の各々の切断、接続の選択を行う。
【００４７】
接続されたバッファの配線遅延は、端子１（１ｂ）、端子２（２ｂ）、及び端子３（３ｂ）の出力信号によりモニター（監視）する。例えば、端子１（１ｂ）、端子２（２ｂ）、及び端子３（３ｂ）に接続された監視装置（図示されず）が、自動的に端子１（１ｂ）、端子２（２ｂ）、及び端子３（３ｂ）の出力信号をモニターする。この監視装置は、汎用のコンピュータでも良い。
【００４８】
次に、モニター手段の例について説明する。
【００４９】
出力バッファＤＲＶ１（４ｂ）までの配線遅延を見る場合は、端子１（１ｂ）を用いて信号を外部にてモニターする。
【００５０】
出力バッファＤＲＶ２（５ｂ）までの配線遅延を見る場合は、端子２（２ｂ）を用いて信号を外部にてモニターする。その際、端子１（１ｂ）でモニターした信号と端子２（２ｂ）でモニターした信号を比較する事により配線遅延値を算出する。
【００５１】
出力バッファＤＲＶ３（６ｂ）までの配線遅延を見る場合は、端子３（３ｂ）を用いて信号を外部にてモニターする。その際、端子２（２ｂ）でモニターした信号と端子３（３ｂ）でモニターした信号を比較する事により配線遅延値を算出する。なお、端子１（１ｂ）でモニターした信号と端子３（３ｂ）でモニターした信号を比較する事により配線遅延値を算出するようにしても良い。
【００５２】
このとき、算出された配線遅延値を、通信間配線遅延スペックと比較し、差分がスペックの定義内であるか確認する。差分がスペックの定義内でなければ、配線遅延値は、通信間配線遅延スペックと異なると判断する。
【００５３】
配線遅延値が、通信間配線遅延スペックと異なる場合は、その情報をメモリブロック（１７ｂ）に格納する。負荷付きループレジスタ（１４ｂ）は、その情報に基づき、通信間配線遅延スペックを満足する選択信号ＳＬ１（２１ｂ）、選択信号ＳＬ２（２２ｂ）、及び選択信号ＳＬ３（２３ｂ）の選択制御信号を発生する。
【００５４】
次に、配線接続経路の制御例について説明する。
【００５５】
端子１（１ｂ）に接続される出力バッファＤＲＶ１（４ｂ）を許可に設定し、出力バッファＤＲＶ１（４ｂ）と端子１（１ｂ）を共用している入力バッファＣＲＶ１（７ｂ）を入力許可にする。
【００５６】
入力バッファＣＲＶ１（７ｂ）の出力信号（端子１ｉｎ（２６ｂ））を、負荷付きループ制御レジスタ（１４ｂ）の選択信号ＳＬ１（２１ｂ）により、マルチプレクサＭＰＸ１（１１ｂ）を介して出力バッファＤＲＶ２（５ｂ）に入力する。
【００５７】
次に、端子２（２ｂ）に接続される出力バッファＤＲＶ２（５ｂ）を出力許可に設定し、出力バッファＤＲＶ２（５ｂ）と端子２（２ｂ）を共用している入力バッファＣＲＶ２（８ｂ）を入力許可にする。
【００５８】
入力バッファＣＲＶ２（８ｂ）の出力信号（端子２ｉｎ（２８ｂ））を、負荷付きループ制御レジスタの選択信号ＳＬ２（２２ｂ）により、マルチプレクサＭＰＸ２（１２ｂ）を介して出力バッファＤＲＶ３（６ｂ）に入力する。
【００５９】
更に、端子３（３ｂ）に接続される出力バッファＤＲＶ３（６ｂ）を出力許可に設定し、出力バッファＤＲＶ３（６ｂ）と端子を共用している入力バッファＣＲＶ３（９ｂ）を入力許可にする。
【００６０】
入力バッファＣＲＶ３（９ｂ）の出力信号を、負荷付きループ制御レジスタ（１４ｂ）の選択信号ＳＬ３（２３ｂ）により、マルチプレクサＭＰＸ３（１３ｂ）を介してＳＩＯ２ｉｎ（２５ｂ）に渡す。
【００６１】
接続経路におけるバッファの段数については、マルチプレクサＭＰＸ３（１３ｂ）に接続されている入力バッファＣＲＶ１（７ｂ）、入力バッファＣＲＶ２（８ｂ）、入力バッファＣＲＶ３（９ｂ）の出力信号を、マルチプレクサＭＰＸ３（１３ｂ）の制御で選択することで負荷を形成するバッファ数を選択できる。この接続経路を「負荷を変更できる入出力ループ制御回路」とする。
【００６２】
図４に、図３中の負荷付きループ制御レジスタ（１４ｂ）のシステム例を示す。
ここでは、選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）と、レジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）と、データ書き込み許可信号（７ｃ）と、内部バス（８ｃ）と、ＣＰＵブロック（９ｃ）と、メモリブロック（１０ｃ）を用いて説明する。
【００６３】
選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）は、図３の選択信号ＳＬ１（２１ｂ）、選択信号ＳＬ２（２２ｂ）、及び選択信号ＳＬ３（２３ｂ）に対応する。選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）は、選択を制御するための信号である。選択信号ＳＬ１（１ｃ），選択信号ＳＬ２（２ｃ）は、２選択の制御を行う１ビットの信号となる。選択信号ＳＬ３（３ｃ）は、３本の信号選択を行う２ビットの信号となる。ここでは、選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｂ）は、レジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）の出力端子「Ｑ」から出力される。
【００６４】
レジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）は、選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）を設定するためのレジスタである。レジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）は、データ書き込み許可信号（７ｃ）に応じて値が書き込まれる。ここでは、データ書き込み許可信号（７ｃ）は、図４のレジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）の制御端子「ＷＲ」に入力され、レジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）の入力端子「Ｄ」に入力された値の書き込みを制御する。
【００６５】
レジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）の入力端子「Ｄ」には内部バス（８ｃ）が接続されている。この内部バス（８ｃ）には、ＣＰＵブロック（９ｃ）とメモリブロック（１０ｃ）が接続されている。入力端子「Ｄ」に入力される値は、メモリブロック（１０ｃ）に書き込まれている値である。なお、メモリブロック（１０ｃ）は、図３のメモリブロック（１７ｂ）でも良い。
【００６６】
図５に、図３中で実現している「負荷を変更できる入出力ループ制御回路」について、負荷付きループ制御レジスタ（１４ｂ）からの制御例を示す。なお、図４内の信号と同じ信号名は、図４内の信号と同じである。
ここでは、ＳＩＯ１ｏｕｔ（１ｄ）と、ＳＩＯ２ｉｎ（２ｄ）と、選択信号ＳＬ１（３ｄ）と、選択信号ＳＬ２（４ｄ）と、選択信号ＳＬ３（５ｄ）と、Ｄｅｌａｙ１（６ｄ）と、Ｄｅｌａｙ２（７ｄ）と、経路ＳＬ１ｉｎ（８ｄ）と、経路ＳＬ２ｉｎ（９ｄ）と、経路ＳＬ３ｉｎ（１０ｄ）を用いて説明する。
【００６７】
ＳＩＯ１ｏｕｔ（１ｄ）は、ＳＩＯ１の出力信号である。ＳＩＯ２ｉｎ（２ｄ）は、ＳＩＯ２の入力信号である。選択信号ＳＬ１（３ｄ）、選択信号ＳＬ２（４ｄ）、及び選択信号ＳＬ３（５ｄ）は、図４の選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）に対応する。選択信号ＳＬ１（３ｄ）は、経路ＳＬ１ｉｎのための選択信号である。選択信号ＳＬ２（４ｄ）は、経路ＳＬ２ｉｎのための選択信号である。選択信号ＳＬ３（５ｄ）は、経路ＳＬ３ｉｎのための選択信号である。
【００６８】
遅延素子Ｄｅｌａｙ１（６ｄ）は、選択信号ＳＬ１（３ｄ）が許可の場合に追加する既存の回路負荷である。本実施例では、入出力バッファを負荷として使用する。ここでは、遅延素子Ｄｅｌａｙ１（６ｄ）は、図３の出力バッファＤＲＶ１（４ｂ）及び入力バッファＣＲＶ１（７ｂ）の少なくとも１つを含むものとする。すなわち、選択信号ＳＬ１（３ｄ）が許可の場合、図３のマルチプレクサＭＰＸ１（１１ｂ）の出力信号が、図３の出力バッファＤＲＶ１（４ｂ）及び入力バッファＣＲＶ１（７ｂ）に供給される。なお、遅延素子Ｄｅｌａｙ１（６ｄ）は、図３のマルチプレクサＭＰＸ１（１１ｂ）を含んでいても良い。
【００６９】
遅延素子Ｄｅｌａｙ２（７ｄ）は、選択信号ＳＬ２（４ｄ）が許可の場合に追加する既存の回路負荷である。本実施例では、入出力バッファを負荷として使用する。ここでは、遅延素子Ｄｅｌａｙ２（７ｄ）は、図３の出力バッファＤＲＶ２（５ｂ）及び入力バッファＣＲＶ２（８ｂ）の少なくとも１つを含むものとする。すなわち、選択信号ＳＬ２（４ｄ）が許可の場合、図３のマルチプレクサＭＰＸ２（１２ｂ）の出力信号が、図３の出力バッファＤＲＶ２（５ｂ）及び入力バッファＣＲＶ２（８ｂ）に供給される。なお、遅延素子Ｄｅｌａｙ２（７ｄ）は、図３のマルチプレクサＭＰＸ２（１２ｂ）を含んでいても良い。
【００７０】
経路ＳＬ１ｉｎ（８ｄ）は、ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間に遅延素子Ｄｅｌａｙ１を追加した経路である。経路ＳＬ２ｉｎ（９ｄ）は、ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間に遅延素子Ｄｅｌａｙ２を追加した経路である。すなわち、経路ＳＬ２ｉｎ（９ｄ）は、ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間に遅延素子Ｄｅｌａｙ１と遅延素子Ｄｅｌａｙ２を含む経路である。経路ＳＬ３ｉｎ（１０ｄ）は、ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間に遅延素子Ｄｅｌａｙを追加しない経路である。
【００７１】
ＳＩＯ１ｏｕｔ（１ｄ）からＳＩＯ２ｉｎ（２ｄ）までの接続において、選択信号ＳＬ１（３ｄ）、選択信号ＳＬ２（４ｄ）、及び選択信号ＳＬ３（５ｄ）の選択制御信号を使い経路を選択する。選択信号ＳＬ３（５ｄ）で選択する経路は、経路ＳＬ１ｉｎ（８ｄ）、経路ＳＬ２ｉｎ（９ｄ）、及び経路ＳＬ３ｉｎ（１０ｄ）である。
【００７２】
選択信号ＳＬ１（１ｃ）の経路をアクティブ（配線遅延経路を使用できる状態）にしたい場合は、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ０」に１を書き込む。
【００７３】
メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ０＝１」の値は、内部バスからのデータ書き込み許可信号（７ｃ）によってレジスタＳＬ１ｒｅｇ（４ｃ）に書き込まれる。なお、レジスタＳＬ１ｒｅｇ（４ｃ）は、選択信号ＳＬ１の出力信号を決めるための１ビットレジスタである。
【００７４】
選択信号ＳＬ２（２ｃ）の経路をアクティブ（配線遅延経路を使用できる状態）にしたい場合は、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ１」に１を書き込む。
【００７５】
メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ１＝１」の値は内部バスからのデータ書き込み許可信号（７ｃ）によってレジスタＳＬ２ｒｅｇ（５ｃ）に書き込まれる。なお、レジスタＳＬ２ｒｅｇ（５ｃ）は、選択信号ＳＬ２の出力信号を決めるための１ビットレジスタである。
【００７６】
選択信号ＳＬ３（３ｃ）の経路をアクティブ（配線遅延経路を使用できる状態）にしたい場合は、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ２／３」に、選択したい入力信号に応じて、「ｂｉｔ２／３＝０１、又は１０、１１」を書き込む。なお、選択したい入力信号は、図３の端子１ｉｎ（２６ｂ），端子２ｉｎ（２８ｂ），又は入力バッファＣＲＶ３（９ｂ）の出力信号のいずれかである。
【００７７】
メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ２／３」の値（０１、又は１０、１１）は、内部バスからのデータ書き込み許可信号（７ｃ）によってレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる。なお、レジスタＳＬ３ｒｅｇ（６ｃ）は、選択信号ＳＬ３の出力信号を決めるための２ビットレジスタである。
【００７８】
図６に、図３、図４、図５を用いた場合のテストをフローチャートへ示す。
ここでは、ＳＴＡＲＴからＥＮＤまでが配線接続経路を選択決定するフローとなる。なお、フローチャート内の信号名は図３、図４、図５に対応している。
まず、図４のレジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）へ値を書き込むまでの一例として、半導体集積回路内にメモリ機能が搭載されている場合を例に説明する。以降の処理は、ＣＰＵブロック（９ｃ）が行うものとする。
（１）ステップＳ１
図４のレジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）へ設定したい値をメモリブロック（１０ｃ）中にある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込む。
（２）ステップＳ２
テストを行う許可が出たか否かを判定する。例えば、所定の入力信号を受けた場合、或いは、予め設定された所定の条件を満たした場合に、テストを行う許可が出たと判定する。
（３）ステップＳ３
テストを行う許可が出たと判定した場合、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込まれている値を図４中の内部バス（８ｃ）へ出力する。例えば、ＣＰＵブロック（９ｃ）が、テストを行う許可が出たと判定した場合、内部バス（８ｃ）を介して、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込まれている値を読み出す。
（４）ステップＳ４
他の内部バス等からのデータ書き込み許可信号（７ｃ）に応じて、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込まれている値を、図４のレジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）へ書き込み、図４の選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）の接続経路を選択する出力信号を決定する。例えば、ＣＰＵブロック（９ｃ）が、データ書き込み許可信号（７ｃ）に応じて、メモリブロック（１０ｃ）にある任意のアドレスの「ｂｉｔ０／１／２／３」へ書き込まれている値を、図４のレジスタＳＬ１ｒｅｇ（４ｃ）、レジスタＳＬ２ｒｅｇ（５ｃ）、及びレジスタＳＬ３ｒｅｇ（６ｃ）へ書き込み、図４の選択信号ＳＬ１（１ｃ）、選択信号ＳＬ２（２ｃ）、及び選択信号ＳＬ３（３ｃ）の接続経路を選択する出力信号を決定する。
（５）ステップＳ５
図４のレジスタＳＬ１ｒｅｇ（４ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ０＝１」であるか判定する。
（６）ステップＳ６
図４のレジスタＳＬ１ｒｅｇ（４ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ０＝１」であれば、図５の選択信号ＳＬ１（３ｄ）の接続経路をアクティブ（配線遅延経路を使用できる状態）にする。
（７）ステップＳ７
図４のレジスタＳＬ２ｒｅｇ（５ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ１＝１」であるか判定する。
（８）ステップＳ８
図４のレジスタＳＬ２ｒｅｇ（５ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ１＝１」であれば、図５の選択信号ＳＬ２（４ｄ）の接続経路をアクティブ（配線遅延経路を使用できる状態）にする。
（９）ステップＳ９
図４のレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝００」であるか判定する。
（１０）ステップＳ１０
図４のレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝００」であれば、図５の経路ＳＬ１ｉｎ（８ｄ）をアクティブ（配線遅延経路を使用できる状態）にする。
（１１）ステップＳ１１
図４のレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝０１」であるか判定する。
（１２）ステップＳ１２
図４のレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝０１」であれば、図５の経路ＳＬ２ｉｎ（９ｄ）をアクティブ（配線遅延経路を使用できる状態）にする。
（１３）ステップＳ１３
図４のレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝１０」又は「ｂｉｔ２／３＝１１」であるか判定する。
（１４）ステップＳ１４
図４のレジスタＳＬ３ｒｅｇ（６ｃ）に書き込まれる接続経路を選択するための値が「ｂｉｔ２／３＝１０」又は「ｂｉｔ２／３＝１１」であれば、配線遅延経路を選択せずに、図５の経路ＳＬ３ｉｎ（１０ｄ）をアクティブ（配線遅延経路を使用できる状態）にする。
（１５）ステップＳ１５
以上より選択された経路の遅延が付く。
【００７９】
本実施形態では、既存の回路である入出力のバッファ群を利用して負荷（遅延）回路を作成するため追加の遅延素子・遅延回路を必要としない。また、負荷付きループ制御レジスタマクロ中のレジスタの値によりループ配線の切断・接続を行い負荷変更が行えるため配線スペック仕様に合わせ負荷（遅延）の変更が出来る。更に、各Ｉ／Ｏバッファ群は、各々端子に接続されており、各端子の出力波形を観測することで内部ループ経路途中の遅延時間の算出が可能である。
【００８０】
なお、本実施例の特徴としては、配線負荷のばらつきに対応するためにテスト時にチップごとの負荷を変更する事を可能とした制御であることが上げられる。
【００８１】
また、本実施例は、３端子のバッファを利用した構成であるが、３端子に限らず、半導体集積回路に搭載される端子のバッファを複数使用することも可能である。
【００８２】
次に、本発明の第２実施例について説明する。
図７に示すように、本実施形態の半導体集積回路（１００ｅ）は、ＳＩＯ１０（１ｅ）と、ＳＩＯ２０（２ｅ）と、ＰＯＲＴ１０（３ｅ）と、ＰＯＲＴ２０（４ｅ）と、配線遅延回路（５ｅ）と、配線遅延回路（６ｅ）を含む。
【００８３】
図７は、ＳＩＯ１０（１ｅ）とＳＩＯ２０（２ｅ）を搭載する場合の通信系マクロに対して、ＳＩＯ１０（１ｅ）とＳＩＯ２０（２ｅ）間の配線遅延を含めた通信をテストする例である。図７は、テスト手法を実現するためＳＩＯ１０（１ｅ）とＳＩＯ２０（２ｅ）の２マクロのＳＩＯを搭載している場合の入出力ループ制御回路を用いた接続例であるが、複数ＳＩＯを搭載している場合も同じである。
【００８４】
ＳＩＯ１０（１ｅ）、ＳＩＯ２０（２ｅ）は、シリアル通信を行うマクロである。
【００８５】
ＰＯＲＴ１０（３ｅ）、ＰＯＲＴ２０（４ｅ）は、ＳＩＯ１０（１ｅ）とＳＩＯ２０（２ｅ）のマクロの出力信号と入力信号を端子へ接続するマクロである。
【００８６】
配線遅延回路ブロック（５ｅ）、配線遅延回路ブロック（６ｅ）は、図３で実現した回路で構成される。なお、配線遅延回路ブロック（５ｅ）には、入力バッファの出力信号ＣＲＶ１ｘ（ｘ＝１〜ｎ：入力バッファの出力本数）（７ｅ）と、出力バッファの出力信号ＤＲＶ１ｘ（ｘ＝１〜ｎ：出力バッファの出力本数）（８ｅ）が供給される。配線遅延回路ブロック（６ｅ）には、入力バッファの出力信号ＣＲＶ２ｘ（ｘ＝１〜ｎ：入力バッファの出力本数）（９ｅ）と、出力バッファの出力信号ＤＲＶ２ｘ（ｘ＝１〜ｎ：出力バッファの出力本数）（１０ｅ）が供給される。
【００８７】
また、配線遅延回路ブロック（５ｅ）は、経路端子１ｘ（ｘ＝１〜ｎ：端子個数）（１１ｅ）と接続される。経路端子１ｘ（１１ｅ）は、ＳＩＯ１０入力端子に対しての配線遅延経路内より接続される端子である。配線遅延回路ブロック（６ｅ）は、経路端子２ｘ（ｘ＝１〜ｎ：端子個数）（１２ｅ）と接続される。経路端子２ｘ（１２ｅ）は、ＳＩＯ２０入力端子に対しての配線遅延経路内から接続される端子である。
【００８８】
更に、ＰＯＲＴ１０（３ｅ）は、ＳＩＯ１０出力端子（１３ｅ）と、ＳＩＯ１０入力端子（１４ｅ）と接続される。ＳＩＯ１０出力端子（１３ｅ）は、ＳＩＯ１０マクロからＰＯＲＴ１０マクロを経由した出力信号の端子である。ＳＩＯ１０入力端子（１４ｅ）は、ＳＩＯ１０マクロへＰＯＲＴ１０マクロを経由した入力信号の端子である。ＰＯＲＴ２０（４ｅ）は、ＳＩＯ２０出力端子（１５ｅ）と、ＳＩＯ２０入力端子（１６ｅ）と接続される。ＳＩＯ２０出力端子（１５ｅ）は、ＳＩＯ１０マクロからＰＯＲＴ１０マクロを経由した出力信号の端子である。ＳＩＯ２０入力端子（１６ｅ）は、ＳＩＯ１０マクロへＰＯＲＴ１０マクロを経由した入力信号の端子である。
【００８９】
ここで、半導体集積回路（１００ｅ）は、半導体集積回路（１００ｅ）内での通信テストを行うためテスト用イネーブル端子（１７ｅ）を持つ。テスト用イネーブル端子（１７ｅ）は、入出力ループ制御回路を有効にする切り替え用信号入力端子である。テスト用イネーブル端子（１７ｅ）に入力されたテスト用イネーブル信号は、配線遅延回路ブロック（５ｅ）、配線遅延回路ブロック（６ｅ）を有効にする入出力ループ制御をアクティブにする。
【００９０】
次に、ＳＩＯ１０（１ｅ）とＳＩＯ２０（２ｅ）を持つ半導体集積回路（１００ｅ）を例にテスト手法を述べる。
【００９１】
半導体集積回路（１００ｅ）外部へ接続されているテスト用イネーブル端子（１７ｅ）を外部からアクティブにすることにより、強制的にＳＩＯ１０（１ｅ）とＳＩＯ２０（２ｅ）の通信テストへ移行し、入出力ループ制御を実現する。入出力ループ制御とは、ＳＩＯ１０（１ｅ）出力端子とＳＩＯ２０（２ｅ）入力端子を、図３で実現した配線遅延回路ブロックを経由して接続し、ＳＩＯ２０（２ｅ）の出力端子とＳＩＯ１０（１ｅ）の入力端子を図３で実現した配線遅延を経由して接続する制御である。
【００９２】
実現した配線遅延のチップ間のばらつきを、負荷を実現している経路にある端子（経路端子１ｎ（１１ｅ）及び経路端子２ｎ（１２ｅ））の波形を観測することで負荷値を確認し、配線スペックに収まる配線経路（図３で実現した配線遅延回路）を選択する選択信号ＳＬ１、選択信号ＳＬ２、及び選択信号ＳＬ３（図３中の負荷を変更できる入出力ループ制御回路信号）の値を、図３で実現した配線遅延回路内の負荷付きループ制御レジスタへ書き込む。
【００９３】
選択信号ＳＬ１、選択信号ＳＬ２、及び選択信号ＳＬ３（図３中の負荷を変更できる入出力ループ制御回路信号）は、経路数ｘ（ｘ＝１〜ｎ）により選択信号ＳＬ１〜選択信号ＳＬｘ（ｘ＝１〜ｎ）となる。
【００９４】
以上のように、本発明では、通信テストを行う場合、内部経路で通信テストを行い通信出力／入力端子でテストしない。このため、テスト端子（通信出力／入力端子）が減る。テスト端子数が減ることによりテスト端子数が限られるテストの同時テスト並列数を向上できる。
【００９５】
また、システム評価においてマクロの評価を先行する場合、通信環境をボード上に実現する事無く通信を行える。ボード作成の簡略化における業務改善（ボード作成のミス、ボード費用低減）ができ、低価格化を実現できる。
【００９６】
また、端子数でＣＨＩＰ（チップ）サイズが決まっている製品の場合、チップサイズ増加とはならない。
【００９７】
また、通信テストをＰ／Ｗでも行え、組立前に不良を抽出できる。組立資材費はＣＨＩＰ（チップ）原価中約１０％を占める。不良サンプルの組立数を減らすことが原価率改善となる。
【図面の簡単な説明】
【００９８】
【図１】図１は、公知技術の通信制御回路のブロック図である。
【図２】図２は、公知技術の通信制御回路の概略構成図である。
【図３】図３は、本発明の半導体集積回路のブロック図である。
【図４】図４は、本発明の半導体集積回路の負荷付きループ制御レジスタブロックのシステム例を示す図である。
【図５】図５は、本発明の半導体集積回路の入出力ループ制御回路の制御例を示す図である。
【図６】図６は、本発明の半導体集積回路における動作を示すフローチャートである。
【図７】図７は、本発明のテスト手法を実現するため内部ループを用いた接続を示すブロック図である。
【符号の説明】
【００９９】
１ａ…  通信回路
２ａ…  送信回路
３ａ…  受信回路
４ａ…  出力バッファＣＲＶ１
５ａ…  入力バッファＣＲＶ２
６ａ…  テスト回路通信制御回路
７ａ…  出力配線ＰＲＴ１
８ａ…  入力配線ＰＲＴ２
９ａ…  出力端子Ｔ１
１０ａ…  入力端子Ｔ２
１１ａ…  テスト制御端子Ｔ３
１００ａ…  半導体集積回路
１ｂ…  端子１
２ｂ…  端子２
３ｂ…  端子３
４ｂ…  出力バッファＤＲＶ１
５ｂ…  出力バッファＤＲＶ２
６ｂ…  出力バッファＤＲＶ３
７ｂ…  入力バッファＣＲＶ１
８ｂ…  入力バッファＣＲＶ２
９ｂ…  入力バッファＣＲＶ３
１０ｂ…  入出力ループ制御回路
１１ｂ…  マルチプレクサＭＰＸ１
１２ｂ…  マルチプレクサＭＰＸ２
１３ｂ…  マルチプレクサＭＰＸ３
１４ｂ…  負荷付きループ制御レジスタ
１５ｂ…  ＳＩＯ１：（シリアル通信制御マクロ）
１６ｂ…  ＳＩＯ２：（シリアル通信制御マクロ）
１７ｂ…  メモリブロック
２１ｂ…  選択信号ＳＬ１
２２ｂ…  選択信号ＳＬ２
２３ｂ…  選択信号ＳＬ３
２４ｂ…  ＳＩＯ１ｏｕｔ
２５ｂ…  ＳＩＯ２ｉｎ
２６ｂ…  端子１の入力信号
２７ｂ…  端子２への出力信号
２８ｂ…  端子２の入力信号
２９ｂ…  端子３への出力信号
１００ｂ…  半導体集積回路
１ｃ…  選択信号ＳＬ１（経路１のための１ビット選択信号）
２ｃ…  選択信号ＳＬ２（経路２のための１ビット選択信号）
３ｃ…  選択信号ＳＬ３（経路３のための２ビット選択信号）
４ｃ…  レジスタＳＬ１ｒｅｇ（選択信号ＳＬ１の出力信号を決めるための１ビットレジスタ）
５ｃ…  レジスタＳＬ２ｒｅｇ（選択信号ＳＬ２の出力信号を決めるための１ビットレジスタ）
６ｃ…  レジスタＳＬ３ｒｅｇ（選択信号ＳＬ３の出力信号を決めるための２ビットレジスタ）
７ｃ…  内部バスからのデータ書き込み許可信号
８ｃ…  内部バス
９ｃ…  ＣＰＵブロック
１０ｃ…  メモリブロック
１ｄ…  ＳＩＯ１ｏｕｔ（ＳＩＯ１の出力信号）
２ｄ…  ＳＩＯ２ｉｎ（ＳＩＯ２の入力信号）
３ｄ…  選択信号ＳＬ１（経路ＳＬ１ｉｎのための選択信号）
４ｄ…  選択信号ＳＬ２（経路ＳＬ２ｉｎのための選択信号）
５ｄ…  選択信号ＳＬ３（経路ＳＬ３ｉｎのための選択信号）
６ｄ…  遅延素子Ｄｅｌａｙ１（選択信号ＳＬ１が許可の場合に追加する既存の回路負荷）
７ｄ…  遅延素子Ｄｅｌａｙ２（選択信号ＳＬ２信号が許可の場合に追加する既存の回路負荷）
８ｄ…  経路ＳＬ１ｉｎ（ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間にＤｅｌａｙ１を追加した経路）
９ｄ…  経路ＳＬ２ｉｎ（ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間にＤｅｌａｙ２を追加した経路）
１０ｄ…  経路ＳＬ３ｉｎ（ＳＩＯ１ｏｕｔとＳＩＯ２ｉｎの間にＤｅｌａｙを追加しない経路）
１ｅ…  ＳＩＯ１０（シリアル通信制御マクロ）
２ｅ…  ＳＩＯ２０（シリアル通信制御マクロ）
３ｅ…  ＰＯＲＴ１０（ポートマクロ）
４ｅ…  ＰＯＲＴ２０（ポートマクロ）
５ｅ…  図３で実現した配線遅延回路
６ｅ…  図３で実現した配線遅延回路
７ｅ…  ＣＲＶ１ｘ（ｘ＝１〜ｎ：入力バッファの出力本数）：（入力バッファの出力）
８ｅ…  ＤＲＶ１ｘ（ｘ＝１〜ｎ：出力バッファの出力本数）：（出力バッファの出力）
９ｅ…  ＣＲＶ２ｘ（ｘ＝１〜ｎ：入力バッファの出力本数）：（入力バッファの出力）
１０ｅ…  ＤＲＶ２ｘ（ｘ＝１〜ｎ：出力バッファの出力本数）：（出力バッファの出力）
１１ｅ…  経路端子１ｘ（ｘ＝１〜ｎ：端子個数）：（ＳＩＯ１０入力端子に対しての配線遅延経路内より接続される端子）
１２ｅ…  経路端子２ｘ（ｘ＝１〜ｎ：端子個数）：（ＳＩＯ２０入力端子に対しての配線遅延経路内より接続される端子）
１３ｅ…  ＳＩＯ１０出力端子（ＳＩＯ１０マクロからＰＯＲＴ１０マクロを経由した出力信号の端子）
１４ｅ…  ＳＩＯ１０入力端子（ＳＩＯ１０マクロへＰＯＲＴ１０マクロを経由した入力信号の端子）
１５ｅ…  ＳＩＯ２０出力端子（ＳＩＯ１０マクロからＰＯＲＴ１０マクロを経由した出力信号の端子）
１６ｅ…  ＳＩＯ２０入力端子（ＳＩＯ１０マクロへＰＯＲＴ１０マクロを経由した入力信号の端子）
１７ｅ…  テスト用イネーブル端子（入出力ループ制御回路を有効にする切り替え用信号入力端子）
１００ｅ…  半導体集積回路
【図１】
2009020060.tif 000003
【図２】
2009020060.tif 000004
【図３】
2009020060.tif 000005
【図４】
2009020060.tif 000006
【図５】
2009020060.tif 000007
【図６】
2009020060.tif 000008
【図７】
2009020060.tif 000009