(57)【要約】機能的メモリ素子及び組み合わせロジックを有する少なくとも１つのモジュールを有する集積回路の階層的設計に用いられる方法は、モジュールの機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する工程と、選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、モジュールを内部区画及び周辺区画に分割する工程と、内部テストモードに設定された場合には、モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるようなスキャンチェーンとして、スキャン可能メモリ素子を構成する工程とを有する。
2004518222.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのモジュールを有する集積回路の階層的設計に用いられる方法であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、
前記モジュールの記述を読み込む工程と、
前記モジュールの機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する工程と、
選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記モジュールを内部区画及び周辺区画に分割する工程と、
内部テストモードに設定された場合には、スキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、各モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記スキャン可能メモリ素子を構成するように、前記モジュールの記述を変更する工程と、
を含む方法。
【請求項２】
前記回路内の他のモジュールに前記方法を選択的に反復する工程を更に含む請求項１に記載の方法。
【請求項３】
前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する工程を更に含む請求項１に記載の方法。
【請求項４】
前記モジュールを分割する前記工程が、
データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する工程と、
データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する工程と、
識別された入力及び出力周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成するよう前記回路記述を変更する工程と、
前記周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための、前記少なくとも１つのスキャンチェーンと関連づけられた制御ロジックの記述を前記回路記述に追加する工程と、
を含む請求項１に記載の方法。
【請求項５】
前記入力及び出力周辺メモリ素子を識別する前記工程が、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース又は宛先である識別された各メモリ素子については、優先データ型のメモリ素子を特定することを含む請求項４に記載の方法。
【請求項６】
前記入力及び出力周辺メモリ素子を識別する前記工程が、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース若しくは宛先又はマルチサイクル信号のソースである識別された各メモリ素子については、優先データ型のメモリ素子を特定し、他の全てのメモリ素子のタイプについては、通常型のメモリ素子を特定することを含む請求項４に記載の方法。
【請求項７】
制御ロジックの記述を追加する前記工程が、各入力周辺メモリ素子について、表４に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加することを含む請求項４に記載の方法。
【請求項８】
制御ロジックの記述を追加する前記工程が、各出力周辺メモリ素子について、表３に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加することを含む請求項４に記載の方法。
【請求項９】
前記回路をテストする工程を更に含み、
該工程が、前記モジュールを内部テストモードに設定し、前記モジュールに内部テストを行う工程と、前記モジュールを外部テストモードに設定し、変更されたモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行う工程と、を含む請求項４に記載の方法。
【請求項１０】
前記内部テストが、
入力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定すると共に、出力周辺メモリ素子及び内部メモリ素子をシフトモードに設定することを含む、前記モジュールを内部テストモードに設定する工程と、
前記メモリ素子にテスト刺激をシフトインする工程と、
前記出力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する工程と、
前記出力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する工程と、
前記出力応答をシフトアウトする工程と、
前記出力応答を解析する工程と、
モジュールを十分にテストするのに必要な回数だけ前記内部テストを反復する工程と、
を含む請求項９に記載の方法。
【請求項１１】
前記外部テストが、
出力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定する工程と、
入力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する工程と、
前記メモリ素子にテスト刺激をシフトインする工程と、
前記入力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する工程と、
前記入力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する工程と、
前記出力応答をシフトアウトする工程と、
前記出力応答を解析する工程と、
を含む請求項９に記載の方法。
【請求項１２】
前記モジュールを分割する前記工程が、周辺メモリ素子を有していないモジュール入力に接続されたテスト専用メモリ素子の記述を前記回路記述に追加する工程を更に含む請求項１に記載の方法。
【請求項１３】
前記モジュール入力に前記テスト専用メモリ素子を追加する前記工程が、
前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする工程と、
前記モジュール入力の前記ファンアウト内の前記ゲート数が所定数を超える各モジュール入力に接続されたテスト専用周辺メモリ素子の記述を前記回路記述に追加すると共に、前記モジュール出力に対する前記ファンイン内の前記ゲート数が所定数を超える各モジュール出力へのテスト専用周辺メモリ素子の記述を前記回路記述に追加する工程と、
を含む請求項１２に記載の方法。
【請求項１４】
前記内部及び外部テストモードを確認する前記工程が、前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する工程を更に含む請求項１に記載の方法。
【請求項１５】
前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する前記工程が、
前記モジュールを外部テストモードに設定する工程と、
外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する工程と、
モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する工程と、
全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認する工程と、
簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と同一の階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す工程と、
を含む請求項１４に記載の方法。
【請求項１６】
前記モジュールのうち少なくとも１つのモジュールのメモリ素子に対するメモリ素子モード制御信号を生成及び適用する、前記少なくとも１つのモジュールと関連づけられたテストコントローラの記述を、前記回路記述に挿入する工程を更に含む請求項１に記載の方法。
【請求項１７】
少なくとも１つのモジュールを有する集積回路の階層的設計に用いられる方法であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、
モジュールの記述を読み取る工程と、
前記モジュールの選択された機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する工程と、
選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記モジュールを内部区画及び周辺区画に分割する工程であって、
データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する工程、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する工程、識別された入力及び出力周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成するように前記回路記述を変更する工程、及び、前記周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための、前記少なくとも１つのスキャンチェーンと関連づけられた制御ロジックの記述を前記回路記述に追加する工程を含む、前記モジュールを分割する前記工程と、
内部テストモードに設定された場合には、スキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、前記モジュールのスキャン可能周辺メモリ素子が、階層において２番目に上位のテストコントローラによって制御されるスキャンチェーンとして、前記スキャン可能メモリ素子を構成するよう前記モジュールを変更する工程と、
前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する工程と、
を含む方法。
【請求項１８】
前記入力及び出力周辺メモリ素子を識別する前記工程が、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース又は宛先である識別された各メモリ素子については、優先データ型のメモリ素子を特定することを含む請求項１７に記載の方法。
【請求項１９】
前記入力及び出力周辺メモリ素子を識別する前記工程が、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース若しくは宛先又はマルチサイクル信号のソースである識別された各メモリ素子については、優先データ型のメモリ素子を特定し、他の全てのメモリ素子のタイプについては、通常型のメモリ素子を特定することを含む請求項１７に記載の方法。
【請求項２０】
制御ロジックの記述を追加する前記工程が、各入力周辺メモリ素子について、表４に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加することを含む請求項１７に記載の方法。
【請求項２１】
制御ロジックの記述を追加する前記工程が、各出力周辺メモリ素子について、表３に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加することを含む請求項２０に記載の方法。
【請求項２２】
前記回路をテストする工程を更に含み、
該工程が、前記モジュールを内部テストモードに設定し、少なくとも１つのモジュールに内部テストを行う工程と、前記モジュールを外部テストモードに設定し、全てのモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行う工程と、を含む請求項１７に記載の方法。
【請求項２３】
前記内部テストが、
入力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定すると共に、出力周辺メモリ素子及び内部メモリ素子をシフトモードに設定することを含む、前記モジュールの少なくとも１つを内部テストモードに設定する工程と、
前記メモリ素子にテスト刺激をシフトインする工程と、
前記出力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する工程と、
前記出力応答をシフトアウトする工程と、
前記出力応答を解析する工程と、
モジュールを十分にテストするのに必要な回数だけ前記内部テストを反復する工程と、
を含む請求項２２に記載の方法。
【請求項２４】
前記外部テストが、
出力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定する工程と、
入力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する工程と、
前記メモリ素子にテスト刺激をシフトインする工程と、
前記入力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する工程と、
前記出力応答をシフトアウトする工程と、
前記出力応答を解析する工程と、
を含む請求項２３に記載の方法。
【請求項２５】
前記モジュールを分割する前記工程が、周辺メモリ素子を有していないモジュール入力に接続されたテスト専用メモリ素子の記述を前記回路記述に追加する工程を更に含む請求項１７に記載の方法。
【請求項２６】
前記モジュール入力に前記テスト専用メモリ素子を追加する前記工程が、
前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする工程と、
前記モジュール入力の前記ファンアウト内の前記ゲート数が所定数を超える各モジュール入力に接続されたテスト専用周辺メモリ素子の記述を前記回路記述に追加すると共に、前記モジュール出力に対する前記ファンイン内の前記ゲート数が所定数を超える各モジュール出力へのテスト専用周辺メモリ素子の記述を前記回路記述に追加する工程と、
を含む請求項２５に記載の方法。
【請求項２７】
前記内部及び外部テストモードを確認する前記工程が、前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する工程を更に含む請求項１７に記載の方法。
【請求項２８】
前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する前記工程が、
前記モジュールを外部テストモードに設定する工程と、
外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する工程と、
モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する工程と、
全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認する工程と、
簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と同一の階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す工程と、
を含む請求項２７に記載の方法。
【請求項２９】
前記モジュールのうち少なくとも１つのモジュールのメモリ素子に対するメモリ素子モード制御信号を生成及び適用する、前記少なくとも１つのモジュールと関連づけられたテストコントローラの記述を、前記回路記述に挿入する工程を更に含む請求項１７に記載の方法。
【請求項３０】
少なくとも１つのモジュールを有する集積回路で用いられる方法であって、前記回路及び前記モジュールが機能的メモリ素子及び組み合わせロジックを有し、
スキャンテスト可能な回路を設計する工程であって、
前記モジュールのうち１つの記述を読み込むサブ工程と、
前記１つのモジュールの機能的メモリ素子をスキャン可能メモリ素子と置換するサブ工程と、
前記１つのモジュールを、内部テストモード、外部テストモード及び通常動作モードに設定可能な周辺メモリ素子によって区切られる２つの区画に分割するサブ工程であって、データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別し、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別し、前記周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成し、前記周辺メモリ素子が内部テストモード、外部テストモード及び通常動作モードに設定可能となるように前記少なくとも１つのスキャンチェーンに制御ロジックを追加することを含み、且つ、前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントし、前記ファンアウト内の前記ゲート数が所定数を超えるモジュール入力にテスト専用周辺メモリ素子を追加すると共に前記ファンイン内の前記ゲート数が所定数を超えるモジュール出力にテスト専用周辺メモリ素子を追加することで、前記モジュール入力に前記テスト専用メモリ素子を追加することを更に含む、前記１つのモジュールを分割する前記サブ工程と、
内部テスト中には、前記１つのモジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テスト中には、前記１つのモジュールのスキャン可能周辺メモリ素子が、最上位のテストコントローラによって制御されるスキャンチェーンとして、前記スキャン可能メモリ素子を構成するサブ工程と、によって前記スキャンテスト可能な回路を設計する前記工程と、
前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する工程であって、
前記１つのモジュールを外部テストモードに設定すること、外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別すること、モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認すること、全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認すること、及び、簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と一致する階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記１つのモジュールの階層的記述を書き出すことにより、前記外部テストモードを確認するために前記１つのモジュールの簡略化モデルを生成することを含む、前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する前記工程と、
前記モジュールを内部テストモードに設定し、少なくとも１つのモジュールに内部テストを行うこと、及び、前記モジュールを外部テストモードに設定し、全てのモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行うことを含む前記回路をテストする工程であって、
前記内部テスト及び前記外部テストの各々が、前記周辺メモリ素子及び前記内部メモリ素子をシフトモードに設定する工程と、テスト刺激をシフトインする工程と、前記メモリ素子を取込モードに設定する工程と、前記回路の出力応答を取り込む工程と、前記出力応答をシフトアウトする工程と、前記出力応答を解析する工程と、前記１つのモジュールを十分にテストするのに必要な回数だけ最後の５つの工程を反復する工程と、を有する、前記回路をテストする前記工程と、
を含む方法。
【請求項３１】
少なくとも１つのモジュールを有する集積回路の階層的設計の簡略化モデルの開発に用いられる方法であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、
前記モジュールを外部テストモードに設定する工程と、
外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する工程と、
モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する工程と、
全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認する工程と、
簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と同一の階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す工程と、
を含む方法。
【請求項３２】
少なくとも１つのモジュールを有する集積回路の階層的設計に用いられるシステムであって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、
モジュールの記述を読み取る手段と、
前記モジュールの機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する手段と、
選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記モジュールを内部区画及び周辺区画に分割する手段と、
内部テストモードに設定された場合には、各モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、前記モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記メモリ素子を構成するよう前記モジュールの記述を変更する手段と、
を含むシステム。
【請求項３３】
前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する手段を更に含む請求項３２に記載のシステム。
【請求項３４】
前記モジュールを分割する前記手段が、
データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する手段と、
データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する手段と、
識別された入力及び出力周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成するよう前記回路記述を変更する手段と、
前記周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための、前記少なくとも１つのスキャンチェーンと関連づけられた制御ロジックの記述を前記回路記述に追加する手段と、
を含む請求項３２に記載のシステム。
【請求項３５】
前記入力及び出力周辺メモリ素子を識別する前記手段が、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース又は宛先である識別された各メモリ素子については、優先データ型のメモリ素子を特定する手段を含む請求項３４に記載のシステム。
【請求項３６】
前記入力及び出力周辺メモリ素子を識別する前記手段が、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース若しくは宛先又はマルチサイクル信号のソースである識別された各メモリ素子については、優先データ型のメモリ素子を特定し、他の全てのメモリ素子のタイプについては、通常型のメモリ素子を特定する手段を含む請求項３４に記載のシステム。
【請求項３７】
制御ロジックの記述を追加する前記手段が、各入力周辺メモリ素子について、表４に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加するように動作可能である請求項３４に記載のシステム。
【請求項３８】
制御ロジックの記述を追加する前記手段が、各出力周辺メモリ素子について、表３に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加するように動作可能である請求項３４に記載のシステム。
【請求項３９】
前記回路をテストする手段を更に含み、
該手段が、前記モジュールを内部テストモードに設定し、前記少なくとも１つのモジュールに内部テストを行う手段と、前記モジュールを外部テストモードに設定し、全てのモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行う手段と、を含む請求項３４に記載のシステム。
【請求項４０】
前記内部テストを行う手段が、
入力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定すると共に、出力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する手段を含む、前記モジュールの少なくとも１つを内部テストモードに設定する手段と、
出力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する手段と、
前記メモリ素子にテスト刺激をシフトインする手段と、
前記出力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する手段と、
前記出力応答をシフトアウトする手段と、
前記出力応答を解析する手段と、
を含む請求項３９に記載のシステム。
【請求項４１】
前記外部テストを行う手段が、
出力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定する手段と、
入力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する手段と、
前記メモリ素子にテスト刺激をシフトインする手段と、
前記入力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する手段と、
前記出力応答をシフトアウトする手段と、
前記出力応答を解析する手段と、
を含む請求項３９に記載のシステム。
【請求項４２】
前記モジュールを分割する前記手段が、周辺メモリ素子を有していないモジュール入力に接続されたテスト専用メモリ素子の記述を前記回路記述に追加する手段を更に含む請求項３２に記載のシステム。
【請求項４３】
モジュール入力にテスト専用メモリ素子を追加する前記手段が、
前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする手段と、
前記モジュール入力の前記ファンアウト内の前記ゲート数が所定数を超える各モジュール入力に接続されたテスト専用周辺メモリ素子の記述を前記回路記述に追加すると共に、前記モジュール出力に対する前記ファンイン内の前記ゲート数が所定数を超える各モジュール出力へのテスト専用周辺メモリ素子の記述を前記回路記述に追加する手段と、
を含む請求項４２に記載のシステム。
【請求項４４】
前記内部及び外部テストモードを確認する前記手段が、前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する手段を更に含む請求項３２に記載のシステム。
【請求項４５】
前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する前記手段が、
モジュールを外部テストモードに設定する手段と、
外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する手段と、
モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する手段と、
全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認する手段と、
簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と同一の階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す手段と、
を含む請求項４４に記載のシステム。
【請求項４６】
前記モジュールのうち少なくとも１つのモジュールのメモリ素子に対するメモリ素子モード制御信号を生成及び適用する、前記少なくとも１つのモジュールの各々と関連づけられたモジュールテストコントローラの記述を、前記回路記述に挿入する手段を更に含む請求項３２に記載のシステム。
【請求項４７】
少なくとも１つのモジュールを有する集積回路の階層的設計及びテストに用いられるシステムであって、前記回路及び前記モジュールがメモリ素子及び組み合わせロジックを有し、
モジュールの記述を読み込む手段と、
前記モジュールのメモリ素子をスキャン可能メモリ素子と置換する手段と、
前記各モジュールを、内部テストモード、外部テストモード及び通常動作モードに設定可能な周辺メモリ素子によって区切られる２つの区画に分割する手段であって、データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する手段と、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する手段と、前記周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成する手段と、前記周辺メモリ素子が内部テストモード、外部テストモード及び通常動作モードに設定可能となるように前記少なくとも１つのスキャンチェーンに制御ロジックを追加する手段とを含む、前記各モジュールを分割する前記手段と、
内部テスト中には、前記各モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テスト中には、前記各モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記メモリ素子を構成する手段と、
前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する手段と、
を含むシステム。
【請求項４８】
前記回路をテストする手段を更に含み、
該手段が、前記モジュールを内部テストモードに設定し、少なくとも１つのモジュールに内部テストを行う手段と、前記モジュールを外部テストモードに設定し、全てのモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行う手段と、を含む請求項４７に記載のシステム。
【請求項４９】
前記内部テスト及び前記外部テストの各々が、
周辺メモリ素子及び内部メモリ素子をシフトモードに設定する工程と、
テスト刺激をシフトインする工程と、
前記メモリ素子を取込モードに設定する工程と、
前記回路の出力応答を取り込む工程と、
前記出力応答をシフトアウトする工程と、
前記出力応答を解析する工程と、
前記モジュールを十分にテストするのに必要な回数だけ最後の５つの工程を反復する工程と、
を含む請求項４８に記載のシステム。
【請求項５０】
前記モジュールを分割する前記手段が、
データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する手段と、
データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する手段と、
前記周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成する手段と、
前記周辺メモリ素子が内部テストモード、外部テストモード及び通常動作モードに設定可能となるように前記少なくとも１つのスキャンチェーンに制御ロジックを追加する手段と、
を含む請求項４７に記載のシステム。
【請求項５１】
前記モジュールを分割する前記手段が、モジュール入力にテスト専用メモリ素子を追加する手段を含む請求項４７に記載のシステム。
【請求項５２】
前記モジュール入力に前記テスト専用メモリ素子を追加する前記手段が、
前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする手段と、
前記ファンアウト内の前記ゲート数が所定数を超えるモジュール入力にテスト専用周辺メモリ素子を追加すると共に、前記ファンイン内の前記ゲート数が所定数を超えるモジュール出力にテスト専用周辺メモリ素子を追加する手段と、
を含む請求項５１に記載の階層的設計及びテスト方法。
【請求項５３】
前記内部及び外部テストモードを確認する前記手段が、前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する手段を更に含む請求項４７に記載のシステム。
【請求項５４】
前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する前記手段が、
前記モジュールを外部テストモードに設定する手段と、
外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する手段と、
モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する手段と、
全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認することと、
簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と一致する階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す手段と、
を含む請求項５３に記載のシステム。
【請求項５５】
前記各モジュールにモジュールテストコントローラを設けると共に前記回路に最上位のテストコントローラを設ける手段を更に含む請求項４７に記載のシステム。
【請求項５６】
少なくとも１つのモジュールを有する集積回路の階層的設計及びテストに用いられるシステムであって、前記回路及び前記モジュールがメモリ素子及び組み合わせロジックを有し、
スキャンテスト可能な回路を設計する手段であって、
前記回路の記述を読み込む手段、
前記モジュールのメモリ素子をスキャン可能メモリ素子と置換する手段、
前記各モジュールを、内部テストモード、外部テストモード及び通常動作モードに設定可能な周辺メモリ素子によって区切られる２つの区画に分割する手段であって、データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する手段と、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する手段と、前記周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成する手段と、前記周辺メモリ素子が内部テストモード、外部テストモード及び通常動作モードに設定可能となるように前記少なくとも１つのスキャンチェーンに制御ロジックを追加する手段と、を含み、且つ、前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする手段と、前記ファンアウト内の前記ゲート数が所定数を超えるモジュール入力にテスト専用周辺メモリ素子を追加すると共に前記ファンイン内の前記ゲート数が所定数を超えるモジュール出力にテスト専用周辺メモリ素子を追加する手段と、を含み、前記モジュール入力に前記テスト専用メモリ素子を追加する手段を更に含む、前記分割する手段、
及び、内部テスト中には、前記各モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テスト中には、前記各モジュールのスキャン可能周辺メモリ素子が、最上位のテストコントローラによって制御されるスキャンチェーンとして、前記スキャン可能メモリ素子を構成する手段、を含む前記スキャンテスト可能な回路を設計する前記手段と、
前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する手段であって、
前記モジュールを外部テストモードに設定する手段、外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する手段、モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する手段、全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認する手段、及び、簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と一致する階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す手段を含む、前記外部テストモードを確認するために前記モジュールの簡略化モデルを生成する確認工程を含み、前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する前記手段と、
前記回路をテストする手段であって、
前記モジュールを内部テストモードに設定し、少なくとも１つのモジュールに内部テストを行う手段、
前記モジュールを外部テストモードに設定し、全てのモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行う手段、並びに、
前記周辺メモリ素子及び前記内部メモリ素子をシフトモードに設定する手段、テスト刺激をシフトインする手段、前記メモリ素子を取込モードに設定する手段、前記出力応答をシフトアウトする手段、及び、前記出力応答を解析する手段を含む、前記内部テスト及び前記外部テストを行う手段を含む、前記回路をテストする前記手段と、
を含むシステム。
【請求項５７】
複数のモジュールを有する集積回路であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、
１つ以上の前記モジュールが、内部テストモード、外部テストモード及び通常動作モードに設定可能な機能的メモリ素子である周辺メモリ素子によって区切られた内部区画及び周辺区画に分割され、
前記機能的メモリ素子及び前記周辺メモリ素子のそれぞれが、前記メモリ素子にテスト刺激をロードすると共に前記メモリ素子からテスト応答データをアンロードするためのシフトモード、及び、前記回路のテスト中の応答を取り込むための取込モードに設定可能であり、
前記内部区画が、少なくとも１つの内部メモリ素子スキャンチェーンとして構成された内部メモリ素子を有し、
前記周辺メモリ素子が、データ入力のファンイン内の少なくとも１つのモジュール入力を有する入力周辺メモリ素子と、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する出力周辺メモリ素子とを有し、
前記周辺メモリ素子が、前記内部メモリ素子スキャンチェーンから分離可能な少なくとも１つの周辺メモリ素子スキャンチェーンとして構成され、
前記少なくとも１つの周辺メモリ素子スキャンチェーンのそれぞれに、前記周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための制御信号に応答する制御ロジック手段が関連づけられた、
集積回路。
【請求項５８】
前記制御信号を生成するための、前記各モジュールと関連づけられたモジュールテストコントローラを更に含む請求項５７に記載の集積回路。
【請求項５９】
前記機能的メモリ素子の各々が、クロック入力と、データ入力と、シリアル入力と、シリアル出力と、データ出力と、前記データ入力及び前記テスト刺激入力の一方を選択的に前記出力に接続するためのスキャン許可制御入力とを有する請求項５７に記載の集積回路。
【請求項６０】
前記周辺メモリ素子の各々が、クロック入力と、データ入力と、テスト刺激入力と、出力と、前記データ入力及び前記テスト刺激入力の一方を選択的に前記出力に接続するためのスキャン許可制御入力と、を有する請求項５７に記載の集積回路。
【請求項６１】
前記モジュールテストコントローラの各々が、テストモード制御信号を受けとるテストモード入力と、テストモード制御信号に応答して内部テスト制御信号及び外部テスト制御信号を生成すると共に前記内部テスト制御信号及び外部テスト制御信号を前記各制御ロジック手段に適用する手段と、を有する請求項５７に記載の集積回路。
【請求項６２】
前記周辺メモリ素子の各々が、通常型及び優先データ型を含む群から選択されるタイプである請求項５７に記載の集積回路。
【請求項６３】
前記優先データ型のメモリ素子が、クロック入力と、データ入力と、テスト刺激入力と、出力と、前記データ入力及び前記刺激入力の一方を選択的に前記出力に接続するためのスキャン許可入力と、前記メモリ素子を保持モードに設定するためのクロック許可入力と、を有する請求項６２に記載の集積回路。
【請求項６４】
クロックドメイン境界を横断する入力を有する各入力周辺メモリ素子、及び、クロックドメイン境界を横断する出力を有する各出力周辺メモリ素子が、フリップフロップ入力と、フリップフロップ出力と、クロック入力とを有するフリップフロップを有する優先データ型のメモリ素子であり、
前記メモリ素子が、データ入力と、シリアル入力と、前記フリップフロップ出力に接続された出力と、シリアル出力と、スキャン許可制御入力と、クロック許可制御入力と、前記シリアル入力及び前記フリップフロップ出力の一方を選択的に第１選択出力に接続するための前記クロック許可制御入力に応答する第１の手段と、前記メモリ素子を保持モードに設定するための、前記データ入力及び前記第１選択出力の一方を選択的に前記フリップフロップに接続するための前記スキャン許可制御入力に応答する第２の手段と、を有する請求項５７に記載の集積回路。
【請求項６５】
前記通常型のメモリ素子が、フリップフロップ入力と、フリップフロップ出力と、クロック入力とを有するフリップフロップを有し、
前記メモリ素子が、データ入力と、シリアル入力と、前記フリップフロップ出力に接続された出力と、シリアル出力と、スキャン許可制御入力と、前記メモリ素子をシフトモード又は取込モードに設定するための、前記データ入力及び前記シリアル入力の一方を選択的に前記フリップフロップ入力に接続するための前記スキャン許可制御入力に応答する手段と、を有する請求項６２に記載の集積回路。
【請求項６６】
少なくとも１つのモジュールを有する集積回路の階層的設計に用いられるプログラム製品であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、
コンピュータ読み取り可能記憶媒体と、
前記媒体に記録され、前記モジュールの記述を読み取る手段と、
前記媒体に記録され、機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する手段と、
前記媒体に記録され、選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記各モジュールを内部区画及び周辺区画に分割する手段と、
前記媒体に記録され、内部テストモードに設定された場合には、各モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、各モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記メモリ素子を構成するよう、前記回路記述内の前記モジュールの記述を変更する手段と、
を含むプログラム製品。
【請求項６７】
前記媒体に記録され、前記回路の前記内部テストモード及び前記外部テストモードの正しい動作を確認する手段を更に含む請求項６６に記載のプログラム製品。
【請求項６８】
前記媒体に記録され、前記モジュールを分割する前記手段が、
前記媒体に記録され、データ入力のファンイン内の少なくとも１つのモジュール入力を有する全てのメモリ素子を探索することにより入力周辺メモリ素子を識別する手段と、
前記媒体に記録され、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する全てのメモリ素子を探索することにより出力周辺メモリ素子を識別する手段と、
前記媒体に記録され、識別された入力及び出力周辺メモリ素子を少なくとも１つのスキャンチェーンとして構成するよう前記回路記述を変更する手段と、
前記媒体に記録され、前記周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための、前記少なくとも１つのスキャンチェーンと関連づけられた制御ロジックの記述を前記回路記述に追加する手段と、
を含む請求項６６に記載のプログラム製品。
【請求項６９】
前記媒体に記録され、前記入力及び出力周辺メモリ素子を識別する前記手段が、前記媒体に記録され、識別された各入力及び出力周辺メモリ素子のメモリ素子型を判定すると共に、ドメイン横断信号のソース又は宛先である識別された各メモリ素子については、優先データ型のメモリ素子を特定する手段を含む請求項６８に記載のプログラム製品。
【請求項７０】
前記媒体に記録され、前記入力及び出力周辺メモリ素子を識別する前記手段が、前記媒体に記録され、識別された各入力及び出力周辺メモリ素子のメモリ素子のタイプを判定すると共に、ドメイン横断信号のソース若しくは宛先又はマルチサイクル信号のソースである識別された各メモリ素子については、優先データ型のメモリ素子を特定し、他の全てのメモリ素子のタイプについては、通常型のメモリ素子を特定する手段を含む請求項６８に記載のプログラム製品。
【請求項７１】
前記媒体に記録され、制御ロジックの記述を追加する前記手段が、前記媒体に記録され、各入力周辺メモリ素子について、表４に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加する手段を含む請求項６８に記載のプログラム製品。
【請求項７２】
前記媒体に記録され、制御ロジックの記述を追加する前記手段が、前記媒体に記録され、各出力周辺メモリ素子について、表３に記載された制御ロジックに従ってメモリ素子構成制御信号を生成する前記制御ロジックの記述を追加する手段を含む請求項６８に記載のプログラム製品。
【請求項７３】
前記媒体に記録され、前記回路をテストする手段を更に含み、
該手段が、前記媒体に記録され、前記モジュールを内部テストモードに設定し、少なくとも１つのモジュールに内部テストを行う手段と、前記媒体に記録され、前記モジュールを外部テストモードに設定し、全てのモジュールの周辺ロジック及び前記回路の残りのロジックをテストするために前記回路に外部テストを行う手段と、を含む請求項６８に記載のプログラム製品。
【請求項７４】
前記内部テストが、
前記媒体に記録され、入力周辺メモリ素子を保持モード又はシフトモードのいずれかに構成することを含む、前記モジュールの少なくとも１つを内部テストモードに設定する手段と、
前記媒体に記録され、出力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する手段と、
前記媒体に記録され、前記メモリ素子にテスト刺激をシフトインする手段と、
前記媒体に記録され、前記出力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する手段と、
前記媒体に記録され、前記出力応答をシフトアウトする手段と、
前記媒体に記録され、前記出力応答を解析する手段と、
を含む請求項７３に記載のプログラム製品。
【請求項７５】
前記外部テストが、
前記媒体に記録され、出力周辺メモリ素子を保持モード又はシフトモードのいずれかに設定する手段と、
前記媒体に記録され、入力周辺メモリ素子及び内部メモリ素子をシフトモードに設定する手段と、
前記媒体に記録され、前記メモリ素子にテスト刺激をシフトインする手段と、
前記媒体に記録され、前記入力周辺メモリ素子及び内部メモリ素子を、それらに適用されるクロックの少なくとも１クロック周期の間、前記テスト刺激に対する回路の応答を取り込むための取込モードに設定する手段と、
前記媒体に記録され、前記出力応答をシフトアウトする手段と、
前記媒体に記録され、前記出力応答を解析する手段と、
を含む請求項７３に記載のプログラム製品。
【請求項７６】
前記媒体に記録され、前記モジュールを分割する前記手段が、前記媒体に記録され、周辺メモリ素子を有していないモジュール入力に接続されたテスト専用メモリ素子の記述を前記回路記述に追加する手段を更に含む請求項６６に記載のプログラム製品。
【請求項７７】
前記媒体に記録され、前記モジュール入力にテスト専用メモリ素子を追加する前記手段が、
前記媒体に記録され、前記モジュール入力のファンアウト内及び前記モジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする手段と、
前記媒体に記録され、前記モジュール入力の前記ファンアウト内の前記ゲート数が所定数を超える各モジュール入力に接続されたテスト専用周辺メモリ素子の記述を前記回路記述に追加すると共に、前記モジュール出力に対する前記ファンイン内の前記ゲート数が所定数を超える各モジュール出力へのテスト専用周辺メモリ素子の記述を前記回路記述に追加する手段と、
を含む請求項７６に記載のプログラム製品。
【請求項７８】
前記媒体に記録され、前記内部及び外部テストモードを確認する前記手段が、前記媒体に記録され、前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する手段を更に含む請求項６６に記載のプログラム製品。
【請求項７９】
前記媒体に記録され、前記外部テストモードを確認するためのモジュールの簡略化モデルを生成する前記手段が、
前記媒体に記録され、前記モジュールを外部テストモードに設定する手段と、
前記媒体に記録され、外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジックを識別する手段と、
前記媒体に記録され、モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する手段と、
前記媒体に記録され、全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能な少なくとも１つのスキャンチェーンとして接続されていることと、前記少なくとも１つのスキャンチェーンの各々が非周辺メモリ素子を含まないこととを確認することと、
前記媒体に記録され、簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と同一の階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す手段と、
を含む請求項７８に記載のプログラム製品。
【請求項８０】
前記媒体に記録され、前記モジュールのうち少なくとも１つのモジュールのメモリ素子に対するメモリ素子モード制御信号を生成及び適用する、前記少なくとも１つのモジュールと関連づけられたテストコントローラの記述を、前記回路記述に挿入する手段を更に含む請求項６６に記載のプログラム製品。
【発明の詳細な説明】
【０００１】
本発明は、一般的に、集積回路の設計及びテストに関し、詳細には、集積回路の階層的な設計及びテストに用いられる方法及びシステム、この方法を実施するプログラム製品、及びこの方法に従って製造された集積回路に関する。
【０００２】
発明の背景
半導体回路の複雑さにより、回路設計を、一般的に設計階層と呼ばれる、互いに独立して検査及びレイアウトが可能な複数のモジュール又はブロックに分割して行うことがしばしば必要となる。この手法は長いこと用いられており、幾つかの長所を有する。その中で最も重要なのは、複数の設計者による並行作業を可能にすることにより設計を加速すること、及び、回路全体の記述を一度に操作する必要を回避することにより、自動設計ツールの困難さを低減することである。しかし、自動テストツールは、設計階層の処理に対して、常に許容可能な解決法を提供するわけではない。多くの自動テストツールは、依然として、回路全体を一度に処理することを必要とする。別の自動テストツールは、階層的テスト方法を用いている。しかし、これらは、各モジュールを、全ての入力が制御可能で且つ全ての出力が観測可能になるように、完全に隔離することを要する。マリネセン等（Ｍａｒｉｎｅｓｓｅｎ ｅｔ ａｌ）の「再使用可能な埋込みコアへのテストアクセス用の構造化されたスケーリング可能な機構」（”Ａ ｓｔｒｕｃｔｕｒｅｄ ａｎｄ Ｓｃａｌａｂｌｅ Ｍｅｃｈａｎｉｓｍ ｆｏｒ Ｔｅｓｔ Ａｃｃｅｓｓ ｔｏ Ｅｍｂｅｄｄｅｄ Ｒｅｕｓａｂｌｅ Ｃｏｒｅｓ”）という名称の論文（ＩＴＣ ’９８． Ｐａｐｅｒ １２．１）は、この制約を課す階層的方法の典型例を開示している。最近、多くの類似の方法が提案されている。
【０００３】
これらの方法は、全て同じ短所を有する。これらは、多くの付加的な論理ゲートを必要とする。各モジュールピンは、必要な隔離を与えるためのテスト専用回路を必要とする。このテスト専用回路は、機能信号がテスト専用回路を横断しなければならないため、システムのタイミングに悪影響を与える。通常、テスト専用回路は低速クロックに接続され、標準的なテストアクセスポート（ＴＡＰ）（最も一般的なものはＩＥＥＥ１１４９．１）を介してアクセスされるので、階層的設計では、モジュール間の信号伝達テストを“実速度で（ａｔ ｓｐｅｅｄ）”行うことができない。
【０００４】
発明の概要
本発明は、モジュールを隔離するのに機能的メモリ素子を用いることによりテスト専用回路の使用を最小限にし、スキャン制御信号を操作することによりシステムのタイミングに対する影響を解消し、機能的メモリ素子に接続されたシステムクロックを用いることによりロジック及び／又はモジュール間の相互接続ワイヤのテストを実速度で行い、マルチプルコントローラの実装に必要なゲート数を顕著に低減することにより非同期クロックを用いた実速度でのモジュールのテストを容易にする新規な方法で、これらの短所に対処するものである。本発明は、この方法に従って構成された新規な集積回路も提供する。本発明の方法の最良の実施形態は、適切なコンピュータシステムを用いて本方法を自動化することである。
【０００５】
本発明の１つの態様は、少なくとも１つのモジュールを有する集積回路の階層的設計に用いられる方法であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、前記モジュールの記述を読み込む工程と、前記モジュールの機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する工程と、選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記モジュールを内部区画及び周辺区画に分割する工程と、内部テストモードに設定された場合には、スキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、各モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記スキャン可能メモリ素子を構成するように、前記モジュールの記述を変更する工程と、を含む方法として定義される。
【０００６】
本発明の１つの態様は、複数のモジュールを有する集積回路であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、１つ以上の前記モジュールが、内部テストモード、外部テストモード及び通常動作モードに設定可能な機能的メモリ素子である周辺メモリ素子によって区切られた内部区画及び周辺区画に分割され、前記機能的メモリ素子及び前記周辺メモリ素子のそれぞれが、前記メモリ素子にテスト刺激をロードすると共に前記メモリ素子からテスト応答データをアンロードするためのシフトモード、及び、前記回路のテスト中の応答を取り込むための取込モード、及び通常動作モードに設定可能であり、前記周辺メモリ素子が、データ入力のファンイン内の少なくとも１つのモジュール入力を有する入力周辺メモリ素子と、データ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する出力周辺メモリ素子とを有し、前記周辺メモリ素子が、前記内部メモリ素子スキャンチェーンから分離可能な少なくとも１つの周辺メモリ素子スキャンチェーンとして構成され、前記少なくとも１つの周辺メモリ素子スキャンチェーンのそれぞれに、前記周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための制御信号に応答する制御ロジック手段が関連づけられた、集積回路として定義される。
【０００７】
本発明の更なる態様は、少なくとも１つのモジュールを有する集積回路の階層的設計に用いられるシステムであって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、モジュールの記述を読み取る手段と、前記モジュールの機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する手段と、選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記モジュールを内部区画及び周辺区画に分割する手段と、内部テストモードに設定された場合には、各モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、前記モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記メモリ素子を構成するよう前記モジュールの記述を変更する手段と、を含むシステムとして定義される。
【０００８】
本発明の更なる態様は、少なくとも１つのモジュールを有する集積回路の階層的設計に用いられるプログラム製品であって、前記モジュールの各々が機能的メモリ素子及び組み合わせロジックを有し、コンピュータ読み取り可能記憶媒体と、前記媒体に記録され、前記モジュールの記述を読み取る手段と、前記媒体に記録され、機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する手段と、前記媒体に記録され、選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記各モジュールを内部区画及び周辺区画に分割する手段と、前記媒体に記録され、内部テストモードに設定された場合には、各モジュールのスキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、各モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記メモリ素子を構成するよう、前記回路記述内の前記モジュールの記述を変更する手段と、を含むプログラム製品として定義される。
【０００９】
発明の好ましい実施形態の詳細説明
当該技術分野で周知のように、集積回路は、全ての回路要素、関係及び機能性を指定する回路記述を開発することによって設計される。回路記述は、一般的に、複数のモジュール及び他のモジュールとの相互接続を記述するハードウェア記述言語（ＨＤＬ）を用いた記述のリストである。モジュールは、１つ以上の入力ポート及び出力ポートを有し、他のモジュール内に含まれて（インスタンシエートされて）階層を構成することが可能である。階層の最下位においては、モジュールは論理ゲートとメモリ素子（例えばフリップフロップ）との組み合わせである。回路は、新たな機能を実行する、既に開発されたモジュールを組み合わせる、及び／又は、複数の異なる設計者によって開発されたモジュールを組み込む、組み合わせロジック及びモジュールを開発することによって設計されてもよい。設計プロセスにおけるある時点で、集積回路の設計の実質的な最終形態が決定されたら、設計に階層的テスト機能を導入するのが望ましい。本発明を説明する前に、図１〜図３を参照して、既存の従来技術を簡単に検討するのが有用であろう。
【００１０】
図１は、単一又は複数の固有の機能を共に実行する複数の組み合わせロジックブロック１４、１６、１８及び２０と、複数の機能的メモリ素子２２とで構成されるモジュール１２を有する集積回路１０の一部分を示している。モジュールは、機能的メモリ素子に接続された１つ以上の入力ピン２４及び出力ピン２６を有する。メモリ素子２２は、それらの機能的動作モードを実行することに加え、４つのスキャンチェーンとして構成されている。簡略化のために、全てのメモリ素子はスキャン可能なものとして図示されているが、スキャン不可能なメモリ素子が存在していてもよい。モジュールは相互接続され、完全な集積回路１０を構成する。
【００１１】
階層的テストのために回路を分割することが望ましい又は必要な場合には、モジュールを付加的な“テスト専用”メモリ素子（図１では示さず）でとり囲むことが知られている。テスト専用メモリ素子は、階層的な内部テスト及び外部テスト中に、モジュール入力を制御し且つモジュール出力を観測するよう動作する。テスト専用メモリ素子は、モジュールの入力ピン及び出力ピンに接続されることで回路に追加される。
【００１２】
図２は、内部テスト中にモジュール内のロジックを観測するためにモジュール出力ピンに接続された、テスト専用出力周辺メモリ素子を図示している。図３は、内部テスト中にモジュールに与えられるデータを制御及び観測するためにモジュール入力ピンに接続された、テスト専用入力周辺メモリ素子を図示している。テスト専用周辺メモリ素子は、モジュール自体のテスト中と、ゲート及びモジュール間の相互接続のテスト中とに用いられるスキャンチェーンとしても接続されている。周辺メモリ素子のスキャンチェーンは、図１に示されている、モジュール自体のテスト中にのみ用いられる機能的メモリ素子のスキャンチェーンとは異なる。一般的に、周辺テスト専用メモリ素子は全て同一のクロックを用いており、このクロックは、モジュール内で用いられる機能的クロックとは異なっている。
【００１３】
図２を参照すると、出力テスト専用周辺メモリ素子３２は、データ入力Ｄ、出力Ｑ及びクロック入力ＣＫを有するフリップフロップ３４と、テスト刺激入力ＳＩ、データ入力、及びスキャン許可信号ＳＥを受けとるスキャン許可制御入力を有する入力マルチプレクサ３６とを含む。出力Ｑは、モジュールマルチプレクサ３８のハイ（ｈｉｇｈ）入力に接続されている。モジュールマルチプレクサのロー（ｌｏｗ）入力は、組み合わせロジック２０の出力を受けとる。モジュールマルチプレクサの出力は、モジュール出力ピン４０に接続されている。モジュールマルチプレクサ制御入力は、外部テストモード制御信号ｅｘｔＴＭを受けとる。外部テストモードではｅｘｔＴＭがアクティブであり、従って、フリップフロップの出力がモジュール出力ピン４０に接続される。これにより、メモリ素子が取込（キャプチャー）モードに設定された場合に、モジュールの出力を制御できる。内部テストモードではｅｘｔＴＭが非アクティブであり、従って、組み合わせロジックの出力がモジュール出力ピン４０に接続される。これにより、メモリ素子が取込モードに設定された場合に、モジュールの出力を観測できる。
【００１４】
回路の通常動作中は、スキャン許可信号及び外部テストモード制御信号はロー（論理０）になっている。従って、フリップフロップ及びその入力マルチプレクサは機能せず、組み合わせロジックの出力はモジュール出力４０を通過する。外部テストモードでは、外部テストモード制御信号ｅｘｔＴＭがアクティブ（論理１）であり、これにより、上述したようにモジュールの出力が制御及び観測され、モジュール出力ピンへと通過させられる。スキャン又はシフトモードでは、スキャン許可信号ＳＥがアクティブである場合には、周辺メモリ素子が直列接続され、テスト刺激がフリップフロップへとシフトされてＱ／ＳＯで出力され、モジュール出力マルチプレクサ３８に与えられる。取込モードでは、スキャン許可信号が非アクティブである場合には、組み合わせロジック２０の出力がフリップフロップ入力マルチプレクサ３６の低入力及びフリップフロップに与えられ、そこでその値が取り込まれる。
【００１５】
図３の入力周辺メモリ素子４２についても、構成及び動作原理は本質的に同じであり、図２と同一の要素は図３でも同じ参照番号で図示されている。この場合には、モジュール入力ピン４４は、内部テストモード制御信号ＩｎｔＴＭによって制御されるモジュール入力マルチプレクサ４６のロー入力に接続されている。
【００１６】
回路の通常動作中は、スキャン許可信号及び外部テストモード制御信号はロー（論理０）になっている。従って、フリップフロップ及びその入力マルチプレクサは機能しない。入力ピン４４での入力は入力マルチプレクサ４６を通過し、組み合わせロジック２０に与えられる。内部テストモードでは、内部テストモード制御信号ＩｎｔＴＭがアクティブ（論理１）であり、これにより、モジュール入力ピンの入力がフリップフロップ出力から制御される。スキャンモード又はシフトモードでは、スキャン許可信号ＳＥがアクティブである場合には、周辺メモリ素子が直列接続され、テスト刺激がフリップフロップへとシフトされてＱ／ＳＯで出力され、モジュール入力マルチプレクサ４６に与えられる。取込モードでは、スキャン許可信号が非アクティブである場合には、入力ピンの入力がフリップフロップ入力マルチプレクサ３６のロー入力及びフリップフロップに与えられ、そこでその値が取り込まれる。
【００１７】
“テスト専用”メモリ素子は、回路に、回路の通常動作中には使用されることのない相当数のゲートを追加することが、当業者には認識されよう。特に、フリップフロップ及びそれに関連づけられた入力マルチプレクサは、回路の通常動作中には使用されない。一般的なモジュールは数百から数千の入力及び出力を有する。また、モジュール入力マルチプレクサ及びモジュール出力マルチプレクサは、モジュールロジックと入力ピン及び出力ピンとの間の機能的経路上にそれぞれ存在し、これらのマルチプレクサによって持ち込まれる遅延によって回路の性能に悪影響を与える。最後に、テスト専用メモリ素子に与えられるクロックは、モジュールに入力される信号又はモジュールから出力される信号の生成又は受信に用いられる機能的クロックとは異なっており、モジュール入力及びモジュール出力と機能的メモリ素子との間の経路のテストを“実速度で”行うことはできない。しかし、たとえテスト専用メモリ素子に機能的クロックが適用されたとしても、テストされる経路は機能的経路ではない。
【００１８】
モジュールの境界にテスト専用メモリ素子を設けることの主な長所は、モジュールの内部回路が回路の最上位から“隠された”状態になり、予め存在するテストパターンのセットを内部回路に適用できるようになることである。これらの長所は、第三者の知的所有権に係るモジュールのコンテキストにおいては重要かもしれないが、このようなモジュール全体の完全な隔離は、大半のケースにおいては必要ない。即ち、モジュールの一部を隔離して、このモジュールの隔離又は分割された部分に内部テストを適用し、モジュールの残りの部分を、ゲート及びモジュール間相互接続を検査する第２のテストフェーズでテストすることは、完全に許容できるものである。後の説明では、この第２のテストを“外部テスト”と呼ぶ。本発明は、テスト専用メモリ素子をなくし、モジュール内の既存の機能的メモリ素子を用いて、テスト区画又は内部区画と周辺区画との境界を定めることを提案する。以下に説明するように、この境界は、モジュールの実際の又は物理的な境界と必ずしも一致しなくてもよい。
【００１９】
本発明による集積回路
本発明に従って構成された集積回路は、機能的メモリ素子を用いてテスト専用メモリ素子の機能を提供することによって、実質的な数のテスト専用周辺メモリ素子の必要性をなくしたので、上述した公知の集積回路とは異なっている。従って、本発明による集積回路では、各モジュールが内部区画と周辺区画とに分割され、この内部区画及び周辺区画は、通常動作モードに加えて内部テストモード及び外部テストモードに設定可能な機能的メモリ素子である周辺メモリ素子によって区切られる。機能的メモリ素子及び周辺メモリ素子のそれぞれは、メモリ素子へのテスト刺激のロード及びメモリ素子からのテスト応答データのアンロードのためのシフトモードと、通常動作モードとに設定可能である。周辺メモリ素子は、そのデータ入力のファンイン内の１つのモジュール入力を有する機能的メモリ素子である入力周辺メモリ素子と、そのデータ出力のファンアウト内の少なくとも１つのモジュール出力又は入力周辺メモリ素子を有する機能的メモリ素子である出力周辺メモリ素子とを含む。周辺メモリ素子は、少なくとも１つのスキャンチェーンとして構成される。各スキャンチェーンには制御ロジックが関連づけられており、制御ロジックは、周辺メモリ素子を内部テストモード、外部テストモード及び通常動作モードに設定するための制御信号に応答する。
【００２０】
通常動作モードでは、メモリ素子は取込モードに設定される。内部テストモードでは、出力周辺メモリ素子を取込モード、シフトモード及び保持モードに設定することができ、入力周辺メモリ素子をシフトモード及び保持モードに設定することができる。外部テストモードでは、入力周辺メモリ素子を、取込モード、シフトモード及び保持モードに設定することができ、出力周辺メモリ素子を、シフトモード及び保持モードに設定することができる。
【００２１】
図５〜図８は、本発明による異なるタイプの入力周辺メモリ素子及び出力周辺メモリ素子を図示している。一般的に、各周辺メモリ素子は、フリップフロップ等の機能的メモリデバイスを含む。これらの図面の以下の説明で言及されたフリップフロップは、本発明の方法を用いて回路を変更する前のモジュールの機能的メモリ素子である。
【００２２】
図５は、通常型の出力周辺メモリ素子５０の概略図である。通常型の定義については後述する。メモリ素子は、入力Ｄ、クロック入力ＣＫ及び出力Ｑを有するフリップフロップ５２を含む。入力マルチプレクサ５４は、テスト刺激スキャン入力ＳＩを受けとるためのハイ入力と、モジュールの内部信号用のロー入力とを有する。マルチプレクサ制御入力は、後述する制御ロジック回路５６のスキャン許可出力ＳＥを受けとる。入力マルチプレクサの出力は、フリップフロップのＤ入力に接続される。フリップフロップのＱ出力は、モジュールの出力ピン又は入力周辺メモリ素子に接続され、組み合わせロジック５８を介していてもよい。図７は図５と類似しているが、３つの入力制御信号を受けとるＯＲゲートとなる制御ロジックを図示している。
【００２３】
図６は、優先データ型の出力周辺メモリ素子６０の概略図である。優先データ型メモリ素子の主な目的は、メモリ素子を保持モードに設定できるようにすることである。メモリ素子は、入力Ｄ、クロック入力ＣＫ及び出力Ｑを有するフリップフロップ５２を含む。第１入力マルチプレクサ６４は、テスト刺激スキャン入力ＳＩ用のハイ入力と、モジュールの内部信号であるフリップフロップの出力Ｑを受けとるロー入力とを有する。第１マルチプレクサ制御入力は、後述する制御ロジック回路５６のクロック許可出力ＣＥを受けとる。第１入力マルチプレクサの出力は、第２入力マルチプレクサ６６のハイ入力に接続されており、第２入力マルチプレクサ６６のロー入力はモジュールの内部信号であり、その出力はフリップフロップのＤ入力に与えられる。フリップフロップのＱ出力は、モジュールの出力ピンに接続され、組み合わせロジック５８を介していてもよい。ＳＥ及びＣＥの両方がアクティブである場合には、メモリ素子はスキャンモードに設定され、ＳＥが非アクティブでＣＥがアクティブである場合には取込モードに、ＳＥ及びＣＥの両方が非アクティブである場合には、保持モードに設定される。
【００２４】
図８及び図９は、図５及び図６にそれぞれ類似しているが、これらはそれぞれ、通常型の入力周辺メモリ素子７０及び優先データ型の入力周辺メモリ素子７２を図示している。従って、これらの素子は、内部モジュール信号を受けとるのではなく、モジュール外部の回路からの入力（モジュール内の組み合わせロジックを介して内部ロジックへの入力を供給してもよい）を受けとると共に、１つ以上のモジュール入力ピン２４への出力を供給する（組み合わせロジック７６を介してもよい）。
【００２５】
周辺メモリ素子は“スキャン可能”であり、これは、メモリ素子をシフトモード及び取込モードに設定できるという意味である。モード制御信号を生成する制御ロジック手段により、周辺メモリ素子を外部テストモード及び内部テストモードに設定することもできる。いずれの場合にも、機能信号は、モジュールの通常動作に含まれないテスト専用メモリ素子を通過する必要がない。
【００２６】
新たな階層的設計法
実際には、集積回路は、各モジュール及び他のコンポーネントの回路記述と、回路内の相互接続とを開発することによって設計される。本発明の方法は、集積回路の設計が、まだハードウェア記述言語（ＨＤＬ）による記述の形態であって、実質的に完了した後で実行される。回路記述サンプルＡは、このような記述の非常に簡単な例を図示している。簡潔にするために、この非常に簡単な記述サンプルは、１つのモジュールのみを定義している。このような記述は数千ページにもわたり得ることが当業者には理解されよう。この回路記述の実際の内容は重要ではなく、この記述は、フリップフロップ等の機能的メモリ素子の記述を含むという点を留意されたい。
【００２７】
このモジュールは１１個のフリップフロップを含んでいる。これらのフリップフロップは、スキャン可能（即ち、シフトモード及び取込モードに設定可能）ではなく内部テストモード及び外部テストモードに設定可能でもない。この回路は、いかなるテスト専用メモリ素子も含まない。便宜的に、この回路は、入力（ｆｌｏｐ１〜４のフリップフロップ）及び出力（ｆｌｏｐ９〜１１のフリップフロップ）周辺メモリ素子への変換を要するフリップフロップと、周辺メモリ素子には変換されないがスキャン可能になる必要があるフリップフロップ（ｆｌｏｐ６〜８のフリップフロップ）とを識別する、ダブルスラッシュ“／／”で開始する注釈を含んでいる。以下、本発明による、これらの変更を行う方法を説明する。
【００２８】
本発明の方法は、一般的に、前記モジュールの記述を読み込む工程と、前記モジュールの機能的メモリ素子の記述を、スキャンモード及び取込モードに設定可能なスキャン可能メモリ素子の記述と置換する工程と、選択されたスキャン可能機能的メモリ素子の記述を、内部テストモード、外部テストモード及び通常動作モードに設定可能なスキャン可能周辺メモリ素子の記述に変換することにより、前記モジュールを内部区画及び周辺区画に分割する工程と、内部テストモードに設定された場合には、スキャン可能周辺及び内部メモリ素子が、関連づけられたモジュールテストコントローラによって制御されると共に、外部テストモードに設定された場合には、各モジュールのスキャン可能周辺メモリ素子が、より上位のテストコントローラによって制御されるスキャンチェーンとして、前記スキャン可能メモリ素子を構成するように、前記モジュールの記述を変更する工程と、を含む。望ましい場合には、回路内の他のモジュールに対してこの方法を繰り返してもよい。より上位のテストコントローラとは、回路の最上位にあるテストコントローラ又は階層レベルにおいて二番目に上位にあるコントローラであってもよい。
【００２９】
本発明の方法を実施する最良の形態は、コンピュータ読み取り可能媒体に格納され、適切な汎用又は専用デジタルコンピュータにロードされるプログラム製品である。
【００３０】
回路記述サンプルＢは、上述の方法による回路記述サンプルＡの変更結果の記述を図示している。２つの回路記述サンプルにおけるＦｌｏｐ１〜Ｆｌｏｐ１１の個々の記述を比較すると、それぞれに、フリップフロップをスキャン可能にし、内部テストモード及び外部テストモードに設定可能にし、スキャンチェーンとして配列するのに必要な記述が補足されていることがわかる。例えば、後述する定義を満足することを理由に入力周辺メモリ素子に変換される、Ｆｌｏｐ１について考える。元のＦｌｏｐ１の記述は次の通りである。
【外１】
2004518222.tif 000003
変更後のＦｌｏｐ１の記述は次の通りである。
【外２】
2004518222.tif 000004
このフリップフロップは、スキャン可能、内部テストモード及び外部テストモードに設定可能、且つ、スキャンチェーンとして配列される優先データ型のメモリ素子に変換される。回路記述内を探索して記述を変更するツールは当該技術分野で周知であり、従って、本明細書で詳細に説明する必要はなく、それ自体は本発明の一部でもないことが、当業者には理解されよう。
【００３１】
区画の境界を確立するために用いるべきメモリ素子を選択するために、本発明による周辺メモリ素子の概念を理解することが重要である。本発明によれば、“周辺フリップフロップ又はメモリ素子”は機能的メモリ素子であり、直接又は組み合わせロジックを介して、モジュールの一次入力及び出力に接続される。入力及び出力周辺フリップフロップ又はメモリ素子の定義を以下に示すと共に、幾つかの例を図４に示す。
【００３２】
“入力周辺フリップフロップ又はメモリ素子”は、そのファンイン内の１つ以上のモジュール入力を有するフリップフロップ又はメモリ素子である。
【００３３】
“出力周辺フリップフロップ又はメモリ素子”は、そのファンイン内のモジュール入力は有しておらず、そのファンアウト内の１つ以上のモジュール出力及び／又は入力周辺フリップフロップを有する、フリップフロップ又はメモリ素子である。
【００３４】
図４は、モジュールの回路の一部を示す図である。メモリ素子ＦＦ０〜ＦＦ４は、それぞれがファンイン内の１つ以上のモジュール入力を有するので、入力周辺素子である。メモリ素子ＦＦ６〜ＦＦ９は、どれもファンイン内のモジュール入力を有しておらず、それぞれがファンアウト内の１つ以上のモジュール出力を有しているので、出力周辺フリップフロップである。メモリ素子ＦＦ５は特別なケースであり、ファンイン又はファンアウト内のモジュール入力及び出力は有していないが、それでも周辺メモリ素子、特に出力周辺素子であると見なされる。その理由は、ＦＦ５の出力が、入力周辺メモリ素子ＦＦ４によって出力が観測される組み合わせロジックの一部分のテストを必要とし、回路のこの部分は外部テストでのみテストされるからである。
【００３５】
周辺メモリ素子は、内部テストモード及び外部テストモードの両方で必要である。この２つのモードにおける周辺メモリ素子の制御は異なる。内部テスト中は、出力周辺メモリ素子は、周辺メモリ素子によって画定されたテスト区画内のロジックを観測するために、取込モードに設定可能でなければならず、入力周辺メモリ素子は、内部テストの結果がテスト区画外のロジックに影響されるのを防止するために、取込モードに設定されてはならない。逆に、外部テスト中は、出力周辺メモリ素子は、外部テストの結果がテスト区画内のロジックに影響されるのを防止するために、取込モードに設定されてはならず、入力周辺メモリ素子は、周辺メモリ素子によって画定されたテスト区画外のロジックを観測するために、取込モードに設定可能でなければならない。これは、出力周辺メモリ素子に外部テストモード制御信号ｅｘｔＴＭを与え、入力周辺メモリ素子に内部テストモード制御信号ＩｎｔＴＭを与えることによって達成される。これらの信号がアクティブである場合には、それらが与えられたメモリ素子はシフトモード又は保持モードに保たれ、取込モードに設定されて取込動作を行うことはできない。
【００３６】
以下に説明するように、入力及び出力信号の性質により、メモリ素子は複数の異なるタイプに分類される。本発明の方法は、メモリ素子に与えられる信号及びメモリ素子によって送信される信号の性質を調べ、適切なタイプを特定する。
【００３７】
周辺メモリ素子のタイプ
個々のメモリ素子及びそれらに適用される制御ロジックに必要な回路の決定を容易にするために、周辺メモリ素子を複数の異なるタイプに分類する。
【００３８】
Ｔｍ型
通常動作モードでは、全ての周辺メモリ素子は、取込モードに設定可能でなければならない。内部テスト中又は外部テスト中に取込モードが完全に不可となった周辺メモリ素子（入力又は出力）を、“Ｔｍ”メモリ素子と呼ぶ。入力周辺メモリ素子は、周辺メモリ素子によって画定された内部テスト区画外のロジックを観測するために、取込モードに設定可能でなければならない。同様に、出力周辺メモリ素子は、周辺メモリ素子によって画定された内部テスト区画内のロジックを観測するために、取込モードに設定可能でなければならない。テスト専用メモリ素子には、この取込モードにおける特定の要件はない。
【００３９】
Ｔｘ型及びＲｘ型
回路内に１つ以上のクロックドメインが存在する場合には、周辺メモリ素子の制御はタイミングを考慮しなければならない。本明細書に全体を参照して援用する「クロックスキュー管理方法及び装置」（”Ｃｌｏｃｋ Ｓｋｅｗ Ｍａｎａｇｅｍｅｎｔ Ｍｅｔｈｏｄ ａｎｄ Ａｐｐａｒａｔｕｓ”）という１９９８年１２月１１日に出願された同時係属出願の米国特許出願第０９／２０９，７９０号には、異なるドメインのメモリ素子が相互作用する場合にクロックドメイン間のクロックスキューから生じる問題に対処するための、送信（Ｔｘ）及び受信（Ｒｘ）メモリ素子の概念が記載されている。Ｔｘメモリ素子は、クロックドメイン境界を横断する信号のソースである。Ｒｘメモリ素子は、クロックドメイン境界を横断して送られる信号の宛先又は受信部である。クロックスキュー管理に関する発明の基本概念は、異なるクロックドメイン内にあり、且つ、組み合わせロジックを介して相互に接続された２つのメモリ素子は、同時に取込モードに設定されてはならないというものである。従って、適切な時に、メモリ素子の取込モードを抑制する取込不許可信号ＣＤが生成される。取込モードは、ＲｘフリップフロップとＴｘフリップフロップとでは異なる方法で抑制される。
【００４０】
Ｔｘ型のメモリ素子は、スキャンテストに必要なシフトモード及び取込モードに加えて、保持モードに設定可能でなければならない。保持モードでは、メモリ素子は、その出力を、所定数のクロック周期に対して一定に保持する。上記の出願には、保持モードの複数の実施方法が記載されている。本出願は、図６及び図８に示されている“優先データ”型のメモリ素子に焦点をあてる。
【００４１】
Ｎｍ型
Ｔｍ型、Ｒｘ型又はＴｘ型ではない周辺メモリ素子は、その挙動が当該技術分野で周知のスキャン許可ＳＥ信号のみに影響されるので、“通常スキャン”即ちＮｍメモリ素子と呼ばれる。この信号は、アクティブ時にはメモリ素子をシフトモードに設定し、非アクティブ時には取込モードに設定する。
【００４２】
一部のメモリ素子は、組み合わされた挙動を有してもよい。例えば、メモリ素子は、所与のテストに対して同時にＲｘ及びＴｘメモリ素子の両方になることが可能である。このケースは、Ｒｘ／Ｔｘ又はＴｘ／Ｒｘ（順序は重要ではない）として識別される。注目される別のケースは、メモリ素子がＴｍ型（常に取込モードが抑制される）であると共にＴｘ型（即ち、ドメイン横断タイミング経路のソース）でもある場合である。
【００４３】
表２は、内部及び外部テストモードに従って、入力及び出力周辺メモリ素子と関連づけることができる、全ての可能なメモリ素子のタイプのリストである。この表は、入力周辺メモリ素子が、内部テスト中にはＴｍ型又はＴｍ／Ｔｘ型のいずれかになることが可能であると共に、このモードでは取込モードが連続的に抑制されているためにＲｘ型又はＮｍ型にはなり得ないことを示している。しかし、外部テスト中は、これらのメモリ素子はＲｘ型、Ｎｍ型、Ｔｘ型、又はＴｘ／Ｒｘ型になることが可能である。表２は対称的である、即ち、出力周辺メモリ素子と関連づけられる型は入力周辺メモリ素子と同一であるが、但し、出力周辺メモリ素子の場合はテストモードが逆である。最後に、Ｔｘ型（Ｔｍ／Ｔｘ、Ｒｘ／Ｔｘ等の組み合わせを含む）の周辺メモリ素子には、優先データ型のメモリ素子を用いなければならないことを留意されたい。
【表１】
2004518222.tif 000005
【００４４】
出力周辺メモリ素子
先に説明した図５及び図６は、制御ロジックが出力周辺メモリ素子に接続される方法を図示している。図５は、通常型のスキャン可能な出力周辺メモリ素子と、それに関連づけられた制御ロジックとを示しており、図６は、優先データ型のメモリ素子を示している。これらのメモリ素子は、組み合わせロジック等の外部回路に直接接続され、標準的なテスト専用メモリ素子の出力マルチプレクサを含まない。制御ロジックは、共に後述するモジュールテストコントローラ及び／又は最上位のテストコントローラによって供給され、メモリ素子の適切な入力に与えられた入力信号から、スキャン許可信号ＳＥと、一部のケースではクロック許可信号ＣＥとを生成する。
【００４５】
“通常”型の出力メモリ素子には保持モードは必要ない。制御ロジックへの入力としては、ｅｘｔＴＭ（外部テストモード）、ｉｎｔＳＥ（内部テスト用スキャン許可）及びｉｎｔＣＤ（内部テスト用取込不許可）の３つが可能である。ｉｎｔＣＤ信号は、内部テスト中にメモリ素子がＲｘ型である場合にのみ必要である。
【００４６】
外部テスト中はｅｘｔＴＭがアクティブ（論理１）であり、従って、出力周辺メモリ素子はシフトモードに保たれ、取込モードに設定されることは不可能である。内部テスト中はｅｘｔＴＭは非アクティブ（論理０）である。周辺メモリ素子にテスト刺激がロードされる場合及び応答データがアンロードされる場合には、ｉｎｔＳＥがアクティブになり、取込モードでは非アクティブである。出力周辺メモリ素子の取込モードが抑制される場合には、ｉｎｔＣＤがアクティブになる。
【００４７】
優先データ型の周辺メモリ素子用の制御ロジックは、通常型の周辺メモリ素子の制御ロジックよりも複雑である。制御ロジックは、５つまでの入力を受容し、２つの出力を供給する。最初の３つの入力は、通常型のメモリ素子の入力と同じ、即ちｅｘｔＴＭ、ｉｎｔＳＥ及びｉｎｔＣＤである。更なる２つの入力は、ｉｎｔＴＭ（内部テストモード）及びｅｘｔＳＥ（外部テスト用スキャン許可）である。出力は、既に説明したＳＥ及びＣＥである。
【００４８】
適切なＳＥ及びＣＥ信号を供給するために、表３に示される規則に従って入力信号が組み合わされる。入力信号の間の縦棒（｜）は、ロジックのＯＲ演算を表す。図７は、通常型のメモリ素子に対するＳＥ＝ｉｎｔＳＥ｜ｉｎｔＣＤ｜ｅｘｔＴＭ（表３の３行目）という規則から生じる制御ロジック回路を示している。これからわかるように、制御ロジックは、単純に、３つの入力信号を受けとって１つの出力信号ＳＥを生成するＯＲゲートで構成されている。優先データ型のメモリ素子に対しては、クロック許可信号ＣＥを生成する第２のＯＲゲートが設けられる。
【表２】
2004518222.tif 000006
【００４９】
入力周辺メモリ素子
図８及び図９に示される入力周辺フリップフロップは、出力周辺メモリ素子と同様の方法で制御される。入力周辺メモリ素子に対する制御ロジックは、表４に示される規則に従って生成される。通常型のメモリ素子の制御ロジックへの可能な入力信号は、アクティブ時に内部テストモードを識別するｉｎｔＴＭ、アクティブ時に外部テスト用のスキャン許可を指定するｅｘｔＳＥ、及び、アクティブ時に外部テスト用の取込不許可を指定するｅｘｔＣＤである。優先データ型のメモリ素子に対する入力信号には、更に、アクティブ時に内部テスト中のスキャン許可を指定するｉｎｔＳＥ、及び、アクティブ時に外部テストの実施を指定するｅｘｔＴＭがある。
【表３】
2004518222.tif 000007
【００５０】
マルチサイクルパス
マルチサイクルパス、即ち、メモリ素子の出力からその宛先へと移動するのに１つ以上のクロック周期を必要とする信号のソースである周辺メモリ素子は、上述したものとは僅かに異なる実施を要する。本明細書に全体を参照として援用する本出願人の１９９６年１１月２０日に出願された「デジタル回路のテスト方法及び装置」（”Ｍｅｔｈｏｄ ａｎｄ Ａｐｐａｒａｔｕｓ ｆｏｒ Ｔｅｓｔｉｎｇ Ｄｉｇｉｔａｌ Ｃｉｒｃｕｉｔｓ”）米国特許出願第０９／１９２，８３９号には、この状況を扱う方法が記載されている。これらのメモリ素子は、優先データ型のメモリ素子と、クロック許可ＣＥを生成する制御ロジックとを必要とし、出力は常に、内部ｉｎｔＣＥテストモード及び外部ｅｘｔＣＥテストモードに対して生成される特定のクロック許可信号に依存する。制御ロジックのＣＥ出力を生成するための規則は、常に、ＣＥ＝ｉｎｔＣＥ＆ｅｘｔＣＥである。入力信号の間の＆という記号は、ロジックのＡＮＤ演算を表す。周辺メモリ素子が、一方のテストモードではマルチサイクルパスのソースとなり、他方のテストモードでは単一サイクルパスのみのソースとなることも可能である。この例として、入力周辺メモリ素子がマルチサイクルパスのソースとして指定された場合には、入力周辺メモリ素子は内部ロジックのみに向けてファンアウトする。この場合には、ｉｎｔＣＥ信号は、上記の出願第０９／１９２，８３９号に記載されているように、適切な実効周波数を実現するよう制御され、ｅｘｔＣＥ信号は、外部テストモード全体を通してアクティブになる。
【００５１】
類似のコンテキストで用いられるメモリ素子間で制御ロジックを共有し、これによって、テスト回路の実施に必要な論理ゲートの総数を低減することが可能である。
【００５２】
テスト専用メモリ素子
テスト専用周辺フリップフロップの使用を常に完全になくせるわけではない。一部の制御入力信号は、モジュール内の多数のフリップフロップに伝搬可能である。内部テスト中にモジュールのロジックの最大量をテストし、ロジックの最小量を外部テスト中にテストされるように残しておくという本発明の目的とは逆に、これらのフリップフロップの全ては周辺スキャンチェーンの一部となり、外部テスト中にモジュールのロジックの大半がテストされることになる。多数のフリップフロップに影響する制御入力信号の典型例は、“リセット” 入力及び“モード”入力である。これらの経路を、内部テスト中のモジュールフリップフロップへの制御入力からブロックするために、テスト専用メモリ素子を用いなければならない。通常、これらの入力は低速入力であるので、必要なテスト専用フリップフロップとモジュールの内部メモリ素子との間のタイミングをテストすることは重要ではない。
【００５３】
本発明の方法によれば、モジュールを分割する工程は、モジュール入力に接続されたテスト専用メモリ素子の記述を回路記述に追加する工程を更に含み、このモジュール入力にテスト専用メモリ素子を追加する工程は、モジュール入力のファンアウト内及びモジュール出力のファンインコーン内のゲート及びメモリ素子の数をカウントする工程と、モジュール入力のファンアウト内のゲート数が所定数を超える各モジュール入力に接続されたテスト専用周辺メモリ素子の記述を回路記述に追加すると共に、モジュール出力に対するファンイン内のゲート数が所定数を超える各モジュール出力へのテスト専用周辺メモリ素子の記述を回路記述に追加する工程とを有する。
【００５４】
隔離のためにテスト専用メモリ素子に必要とされる入力及び出力の識別は、モジュール入力のファンアウト内及びモジュール出力のファンイン・コーン内のゲート及びフリップフロップの数をカウントすることによってなされる。過剰なファンアウトを有するモジュール入力又は過剰なファンインを有するモジュール出力が、テスト専用フリップフロップの主な候補である。モジュール入力又はモジュール出力がテスト専用フリップフロップを用いるべきか否かを決定するゲート及び／又はフリップフロップの単一の数はない。全体的な目的は、回路性能について妥協することなしに、テスト専用ゲート及びフリップフロップの数を最小限にしつつ、モジュールのゲート及びフリップフロップの大半が、内部テスト中に確実にテストされるようにすることである。この課題、特にゲートのカウントを実行するには、自動化ソフトウェアが必要である。ユーザが適切なトレードオフを行うには、２つのレベルの情報が必要である。
【００５５】
第１に、モジュールゲート及びフリップフロップの合計数を超える周辺ロジック及び周辺フリップフロップのパーセンテージを与える大域割合（ｇｌｏｂａｌ ｒａｔｉｏ）より、モジュールの隔離の質に関する即時のフィードバックが与えられる。“周辺ロジック”とは、周辺メモリ素子とモジュール入力及び出力との間のゲートを指す。これらのパーセンテージが、内部テスト中にテストされるロジックの量を最大限にする目的を達成するのに十分に小さい場合には、更なる処理は必要ない。以下に、大域割合を与える報告の例を示す。
周辺ロジックサマリー：
テスト専用フリップフロップを有するモジュールピンの数：ＴＤＦＦ
回路ゲートに対する周辺ロジックの割合：Ｘ／Ｙ：Ｚ％
フリップフロップの合計に対する周辺フリップフロップの割合：
ＰＦＦ＋ＴＤＦＦ／ＴＦＦ＋ＴＤＦＦ：ＺＺ％
テスト専用フリップフロップを有するモジュールピンの数のデフォルト値は０である。
【００５６】
第２に、上記の割合が満足なものでない場合には、目的達成のためにテスト専用メモリ素子を有するべきモジュール入力及びモジュール出力を選択するために、第２のレベルの情報が必要となる。各モジュール入力及びモジュール出力と関連づけられた周辺ゲート及びフリップフロップの数が判定され、表５に示されるようなリストで報告される。問題領域の識別を容易にするために、リストはソートされる。例えば、リストを周辺ゲート数の降順でソートすると、テスト専用メモリ素子の最良の候補をリストの一番上に示すことができる。
【００５７】
表５には、全てのモジュールピンと、関連づけられた周辺論理ゲート及び周辺フリップフロップの合計数と、関連づけられたフリップフロップのクロックドメインとが記載されている。あるピンが、テスト専用フリップフロップを用いるよう選択された場合には、そのピンとそれに関連づけられたフリップフロップとの間のクロックスキューを最小限にするために、そのテスト専用メモリ素子のクロック入力が、このクロックに接続されるべきである。ピンＩＮ２は明らかにテスト専用メモリ素子の最良の候補であることが分かる。これにより、周辺ロジックから３４００個のゲートと３０個のフリップフロップを除くことができる。次に、ユーザは、回路記述に、下の例ではＴＤＦＦとなっているフラグをつけることができる。このフラグは、このピンにテスト専用フリップフロップが追加されるべきであることを示す。ファイルの形式は、周辺ロジックの新たな割合を計算する解析ソフトウェアツールにより読み返すことができるようなものである。
【表４】
2004518222.tif 000008
【００５８】
複数のゲート及びフリップフロップが１つ以上のピンと関連づけられていることがあるので、この処理を数回反復する必要があり得る。従って、これらのゲート及びフリップフロップを除くために、入力／出力ピンの組み合わせを指定することが必要となり得る。複雑なケースでは、この目的を満たすのに必要な回数の反復を行うために、ソフトウェアによる自動化が必要かもしれない。
【００５９】
周辺フリップフロップが識別され選択されたら、適切な制御ロジックが決定されると共にその記述が回路記述に挿入され、周辺メモリ素子がモジュールの内部スキャンチェーンから分離されたスキャンチェーンとしてグループ化され、周辺メモリ素子のスキャンチェーンを定義するために回路記述が変更される。テスト専用メモリ素子もこれらのスキャンチェーンの一部となる。
【００６０】
図１０は、モジュール入力１０２及びモジュール出力１０４、並びに、以下に説明するように必要な信号を生成するモジュールテストコントローラ１０６を有するモジュール１００を示す図である。モジュールは、内部スキャンチェーン１０８及び周辺メモリ素子のスキャンチェーン１１０を含む。スキャンチェーン１０８及び１１０は、モジュール１００と関連づけられたテストコントローラ１０６に接続される。モジュールテストコントローラは、内部テストに必要なｉｎｔＴＭ、ｉｎｔＳＥ、ｉｎｔＣＥ及びｉｎｔＣＤ信号を生成し、バス１１２、１１４、１１６及び１１８に沿って、周辺メモリ素子スキャンチェーンと関連づけられた上述の制御ロジック回路にこれらの信号を与える。図１１を参照して後述する外部ソースによって、外部テストに必要な信号、即ち、ｅｘｔＴＭ、ｅｘｔＳＥ、ｅｘｔＣＥ及びｅｘｔＣＤが生成され、モジュールの外部テスト制御信号入力１２０、１２２、１２４及び１２６に与えられる。モジュールテストコントローラ１０６には、外部テストモードでテスト刺激を受けとるためのｅｘｔＳＩピン、及びテスト応答データを出力するためのｅｘｔＳＯピンが設けられている。これらのピンは、最上位のテストコントローラに接続されている。ｅｘｔＳＩピンとｅｘｔＳＯピンとの間に接続されたメモリ素子は全て、周辺メモリ素子及びテストコントローラのメモリ素子である。所望に応じて、テスト時間を短縮するために、複数のｅｘｔＳＩピン及びｅｘｔＳＯピンを定めることができる。モジュールテストコントローラは制御バス１２８に接続されており、制御バス１２８は、当該技術分野で周知の内部テストのセットアップに必要な情報をモジュールテストコントローラに供給するとともに、テストコントローラがこのバスを介してテスト結果を返すために用いられる。テストデータはモジュールピンＳＩ１、ＳＩ２、ＳＩ３及びＳＩ４にてスキャンチェーンに入り、応答データはテストコントローラピンＳＯ１、ＳＯ２、ＳＯ３及びＳＯ４にてスキャンチェーンから出てテストコントローラに入る。応答データは、テストコントローラピンＳＩ１、ＳＩ２、ＳＩ３及びＳＩ４にてテストコントローラから最上位コントローラへとシフトアウトされる。
【００６１】
全てのモジュールが図１０に示されているように構成されたら、モジュールは上述の外部ソース、即ち、図１１に示されている外部テストを統括する最上位のテストコントローラ１４０に接続される。図１１は、最上位のテストコントローラと、図１０に示されているモジュール及びモジュールテストコントローラを各々が含む２つのモジュールブロック１４２及び１４４と、全体を参照番号１４６で示される他の回路とを示す図である。
【００６２】
最上位のテストコントローラは、各種モジュールと関連づけられたモジュールテストコントローラに類似している。最上位のテストコントローラはＳＩ出力及びＳＯ入力を有し、ＳＩ出力及びＳＯ入力はそれぞれ、コントローラが埋込まれたモジュールのｅｘｔＳＩポート（外部テスト用シリアル入力）及びｅｘｔＳＯポート（外部テスト用シリアル出力）に接続されると共に、コントローラが埋込まれたどのモジュールの一部でもない他のスキャンチェーンのＳＩ及びＳＯポートにも接続されている。これらのスキャンチェーンは、コントローラが埋込まれていないモジュールの一部であってもよい。最上位のコントローラはＳＥ（スキャン許可）、ＴＭ（テストモード）、ＣＤ（取込不許可）、ＣＥ（クロック許可）信号も供給し、それらは、コントローラが埋込まれたモジュールのｅｘｔＳＥ、ｅｘｔＴＭ、ｅｘｔＣＤ及びｅｘｔＣＥポートにそれぞれ接続されると共に、コントローラが埋込まれたどのモジュールの一部でもない他のスキャンチェーンの制御入力にも接続されている。制御バス１２６は最上位のテストコントローラに接続されており、埋込みテストコントローラに用いられているものと同一の入力及び出力を有する。制御バスを回路ピンに直接接続してもよく、又はテストアクセスポート（ＴＡＰ）に接続してもよい。典型的な例は、当該技術分野で周知のＩＥＥＥ１１４９．１標準に記載されているＴＡＰである。
【００６３】
簡略化モデル
本発明の方法の重要な態様は、テストコントローラが埋込まれたモジュールの顕著に簡略化された表現又はモデルを生成することである。簡略化されたモデルは、周辺メモリ素子並びに、これらのメモリ素子とモジュールの入力ポート及び出力ポートとの間の組み合わせロジックのみを含む。本発明では、この“簡略化モデル”に、回路レイアウトから抽出された詳細なタイミングの注釈をつけることができる。外部テストモードのシミュレーションは、実際に回路全体が動作されたかのような状態を表すものである。簡略化モデルを生成する方法は、回路の階層的記述を読み込む工程と、周辺メモリ素子を識別する工程と、モジュールを外部テストモードに設定する工程と、外部テストモードでの出力及びメモリ素子の状態の判定に潜在的に寄与する全てのモジュール出力及び周辺メモリ素子の全ての入力のファンイン内の全ての周辺ロジック（即ち、ゲート）を識別する工程と、モジュール出力及び周辺メモリ素子の状態がモジュール入力及び周辺メモリ素子のみに依存することを確認する工程と、全ての周辺メモリ素子が前記モジュールの入力／出力ポートからアクセス可能なスキャンチェーンとして接続されていることと、スキャンチェーンが非周辺メモリ素子を含まないこととを確認する工程と、簡略化モジュール記述内の前記識別されたメモリ素子及び論理ゲートと関連づけられた全ての信号及びポートの階層的名称に元の記述の階層的名称と同一の階層的名称を用いて、前記周辺メモリ素子及び周辺ロジックのみを含む前記各モジュールの階層的記述を書き出す工程と、を含む。
【００６４】
回路記述サンプルＣは、回路記述サンプルＢの階層的記述に対して上述の方法を行うことで得られた簡略化モデル記述を示している。
【００６５】
周辺ロジックを識別する工程では、データ入力、クロック入力、非同期セット／リセット入力等の全てのフリップフロップ入力を考慮する必要がある。ゲートの出力における変化がモジュール出力の周辺フリップフロップの状態を変化させる等といった、モジュール入力状態とフリップフロップ状態との組み合わせが存在する場合には、ゲートはモジュール出力又は周辺フリップフロップの状態に潜在的に影響する。なお、この解析は、モジュールが外部テストモードに設定されることを示すモジュール入力ｅｘｔＴＭがアクティブであって、幾つかの組み合わせが許可されず、モジュール出力及び周辺フリップフロップ入力のファンイン内の幾つかのゲートが周辺ロジックから除外される場合に、実行される。
【００６６】
階層的記述を書き出す工程では、シミュレーション中に元の記述で使用可能な詳細なタイミング情報を簡略化モデルに注釈することが可能なように、階層的名称を元の記述の階層的名称と確実に一致させなければならない。従って、簡略化モデルで用いられるタイミングは完全なモデルのタイミングと同一であり、外部テストのシミュレーションは完全なモデルを表すものである。
【００６７】
回路の最上位におけるテストの実行に用いられる全てのメモリ素子は機能的メモリ素子であるので、モジュール間のパスのテストを、モジュールの境界にテスト専用メモリ素子を用いた場合には不可能な、回路の機能的な動作速度で行うことが可能である。
【００６８】
本発明は、本発明の好ましい実施形態及び図面に関して詳細に説明されたが、当業者には、本発明の精神及び範囲から逸脱しない範囲で様々な適合化、変更及び変更が実現され得ることが明らかである。従って、本明細書で上述した添付の図面は本発明の範囲を限定するものではなく、本発明の範囲は以下の特許請求の範囲及び適切に解釈された法的な同等物のみから推定されるべきであることを理解されたい。
【００６９】
回路記述サンプルＡ
元の回路記述
【外３】
2004518222.tif 000009
【００７０】
回路記述サンプルＢ
機能的メモリ素子をスキャン可能メモリ素子に変換し、選択されたメモリ素子を周辺メモリ素子に変換した後の、変更された回路記述
【００７１】
【外４】
2004518222.tif 000010
【００７２】
【外５】
2004518222.tif 000011
【００７３】
【外６】
2004518222.tif 000012
【００７４】
【外７】
2004518222.tif 000013
【００７５】
【外８】
2004518222.tif 000014
【００７６】
【外９】
2004518222.tif 000015
【００７７】
【外１０】
2004518222.tif 000016
【００７８】
回路記述サンプルＣ
簡略化モデル記述
【外１１】
2004518222.tif 000017
【００７９】
【外１２】
2004518222.tif 000018
【００８０】
【外１３】
2004518222.tif 000019
【００８１】
【外１４】
2004518222.tif 000020
【００８２】
【外１５】
2004518222.tif 000021
【００８３】
【外１６】
2004518222.tif 000022
【図面の簡単な説明】
【図１】組み合わせロジック及び複数のスキャンチェーンとして構成された複数の機能的メモリ素子を有する典型的なモジュールを示す図である。
【図２】公知のテスト専用出力周辺フリップフロップ又はメモリ素子を示すブロック図である。
【図３】公知のテスト専用入力周辺フリップフロップ又はメモリ素子を示すブロック図である。
【図４】本発明の一実施形態による、周辺メモリ素子として用いる機能的メモリ素子を選択する方法を説明するための、機能的メモリ素子を有するモジュールを示すブロック図である。
【図５】本発明の一実施形態による“通常型”の出力周辺メモリ素子を示す概略図である。
【図６】本発明の一実施形態による“優先データ型”の出力周辺メモリ素子を示す概略図である。
【図７】本発明の一実施形態による、出力周辺メモリ素子に用いられる制御ロジック回路の一実施形態を示す概略図である。
【図８】本発明による、入力周辺メモリ素子に用いられる制御ロジックの一実施形態を示す概略図である。
【図９】本発明による、“優先データ型”の入力周辺メモリ素子に用いられる制御ロジックの一実施形態を示す概略図である。
【図１０】本発明の一実施形態によるモジュール及び埋込みテストコントローラを示す概略図である。
【図１１】最上位のテストコントローラと埋込みモジュールテストコントローラを有する２つのモジュールとを示す、回路を最上位から見た概略図である。
【図１】
2004518222.tif 000023
【図２】
2004518222.tif 000024
【図３】
2004518222.tif 000025
【図４】
2004518222.tif 000026
【図５】
2004518222.tif 000027
【図６】
2004518222.tif 000028
【図７】
2004518222.tif 000029
【図８】
2004518222.tif 000030
【図９】
2004518222.tif 000031
【図１０】
2004518222.tif 000032
【図１１】
2004518222.tif 000033
【国際公開パンフレット】
2004518222.tif 000034
2004518222.tif 000035
2004518222.tif 000036
2004518222.tif 000037
2004518222.tif 000038
2004518222.tif 000039
2004518222.tif 000040
2004518222.tif 000041
2004518222.tif 000042
2004518222.tif 000043
2004518222.tif 000044
2004518222.tif 000045
2004518222.tif 000046
2004518222.tif 000047
2004518222.tif 000048
2004518222.tif 000049
2004518222.tif 000050
2004518222.tif 000051
2004518222.tif 000052
2004518222.tif 000053
2004518222.tif 000054
2004518222.tif 000055
2004518222.tif 000056
2004518222.tif 000057
2004518222.tif 000058
2004518222.tif 000059
2004518222.tif 000060
2004518222.tif 000061
2004518222.tif 000062
2004518222.tif 000063
2004518222.tif 000064
2004518222.tif 000065
2004518222.tif 000066
2004518222.tif 000067
2004518222.tif 000068
2004518222.tif 000069
2004518222.tif 000070
2004518222.tif 000071
2004518222.tif 000072
2004518222.tif 000073
2004518222.tif 000074
2004518222.tif 000075
2004518222.tif 000076
2004518222.tif 000077
2004518222.tif 000078
2004518222.tif 000079
2004518222.tif 000080
2004518222.tif 000081
2004518222.tif 000082
2004518222.tif 000083
2004518222.tif 000084
2004518222.tif 000085
2004518222.tif 000086
2004518222.tif 000087
2004518222.tif 000088
2004518222.tif 000089
2004518222.tif 000090
2004518222.tif 000091
2004518222.tif 000092
2004518222.tif 000093
2004518222.tif 000094
2004518222.tif 000095
2004518222.tif 000096
2004518222.tif 000097
2004518222.tif 000098
2004518222.tif 000099
2004518222.tif 000100
2004518222.tif 000101
2004518222.tif 000102
2004518222.tif 000103
2004518222.tif 000104
2004518222.tif 000105
2004518222.tif 000106
2004518222.tif 000107
2004518222.tif 000108
2004518222.tif 000109
2004518222.tif 000110
2004518222.tif 000111
2004518222.tif 000112
2004518222.tif 000113
2004518222.tif 000114
【国際公開パンフレット（コレクトバージョン）】
2004518222.tif 000115
2004518222.tif 000116
【国際調査報告】
2004518222.tif 000117
2004518222.tif 000118