(57)【要約】【課題】集積回路における通常動作モードおよびテスト動作モードにおけるクロックパルス伝播のタイミング要求を満たすのに要するＴＡＴを減少させる。【解決手段】半導体集積回路のＤＦＴを支援するためのプログラム(図3)は、第１のネットリストを入力するステップ(202)と、クロック・ルート (402) の位置(234)を決定し、クロック信号パス上の論理素子をツリー形式で表したクロック・ツリー情報(236)を生成するステップ(204,206)と、そのツリー情報からテスト用の被制御論理素子(408,412,418)の端子を表す端子位置情報(238)を生成するステップ(208)と、被制御論理素子に対するテスト用の制御性論理素子の組み込み位置を表す組込み位置情報(242)を生成するステップ(210)と、第１のネットリストにテスト用の制御用論理素子(403,407,413,417)を組み込んだ第２のネットリストを生成するステップ(212)と、を含んでいる。【選択図】図３
2009217431.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置において用いられる、半導体集積回路のテスト容易化設計を支援するためのプログラムであって、
前記情報処理装置に、
テスト用の制御用論理素子を組み込もうとする第１のネットリストを入力するステップと、
前記第１のネットリストに基づいて、クロック信号供給源としてのクロック・ルートの位置情報を抽出するステップと、
前記クロック・ルートの位置情報に基づいて、トレースを行って前記第１のネットリストにおけるクロック信号パス上の論理素子をツリー形式で表したクロック・ツリー情報を生成するステップと、
前記クロック・ツリー情報から前記クロック信号パス上の前記論理素子に関するパス情報および前記クロック信号パス上の前記論理素子に対応する素子の情報を被制御論理素子の情報として抽出して、テスト用の制御すべき前記被制御論理素子の端子を表す端子位置情報を生成するステップと、
前記被制御論理素子の情報および前記端子位置情報に基づいて、記憶装置に予め格納されている論理素子の機能に関する論理素子機能情報を参照しながら、テスト用クロック信号が前記クロック信号パスを通過するように前記第１のネットリストにおける前記被制御論理素子に対するテスト用の制御用論理素子の組み込み位置を表す組込み位置情報を生成するステップと、
前記組込み位置情報に従って、前記第１のネットリストに前記テスト用の制御用論理素子を組み込んで第２のネットリストを生成するステップと、
を実行させるためのコンピュータ読み取り可能なプログラム。
【請求項２】
前記トレースは、前記クロック・ルートの位置情報に基づく、フォワード・トレースまたはバックワード・トレースであることを特徴とする、請求項１に記載のプログラム。
【請求項３】
前記第２のネットリストを生成するステップは、組み込まれた前記テスト用の制御用論理素子に外部からモード切換信号が供給されたときに前記テスト用の外部のクロック信号が前記クロック信号パスを通過するように、前記被制御論理素子における端子にテスト用の制御用論理素子を結合させおよび／または前記被制御論理素子を前記テスト用の制御用論理素子に置き換え、前記テスト用の制御用論理素子に前記モード切換信号を供給するための信号線を組み込むことを含むものであることを特徴とする、請求項１または２に記載のプログラム。
【請求項４】
クロック・ルートと、前記クロック・ルートからのクロック信号を通過させるクロック信号パスを形成し、クロック信号ラインを介して結合された複数の被制御論理素子と、を含む被テスト論理回路と、
テスト動作モードを設定するためのモード切換信号用の入力端子と、テスト用クロック信号の入力端子と、前記モード切換信号用の入力端子に結合された切換信号線と、前記切換信号線に結合された入力端子および前記複数の被制御論理素子の各々の１つの入力端子に結合された出力端子をそれぞれ有する複数の制御用論理素子と、を含むテスト用回路と、
を含む半導体集積回路であって、
前記複数の制御用論理素子は、前記モード切換信号に応答して、前記テスト動作モードにおいて、前記複数の被制御論理素子を制御する制御信号を前記複数の被制御論理素子の入力端子に供給して、前記テスト用クロック信号が前記クロック信号ラインを介して前記複数の被制御論理素子を通過するようにするものであることを特徴とする、
半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のＤＦＴ（Design For Test、テスト容易化設計）に関し、特に、ＡＳＩＣのような半導体集積回路の欠陥を検出するための半導体集積回路のＤＦＴを支援するためのプログラム、およびそのようなプログラムを用いてテスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するように制御論理素子が組み込まれたネットリストに基づいて作成された半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路のＤＦＴ技術では、半導体集積回路内の複数の記憶素子に対して半導体集積回路の外部端子から直接制御可能なテスト・クロックパルスを伝播させなければならない、という設計ルールがある。近年、半導体集積回路の大規模化および複雑化によって、半導体集積回路におけるＤＦＴ用のセレクト論理を挿入する位置の数が増大し、それによって、半導体集積回路におけるタイミング収束を確保するために膨大なＴＡＴ（Turn Around Time、一連の工程のループに必要な時間）を要する。
【０００３】
特開２００７−２４８１３５号公報（Ａ）には、半導体集積回路装置のテスト方法が記載されている。その半導体集積回路装置は、スキャン・パス・テストの際、ユーザ・クロック・ドメイン数よりも少ない数のテスト・クロックの端子を確保し、テスト・クロック・ライン上にテスト・クロックのパルスを伝播するか遮断するかを制御するテスト・クロック制御回路を備えている。それによって、スキャン・パス・テスト・クロック端子数の増大を抑止する。ここで、この文献全体を引用により組み込む。
【特許文献１】特開２００７−２４８１３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
通常のＤＦＴ技術では、ＤＦＴ−ツールの規格によってＡＳＩＣにおける被テスト集積回路（例えば、ユーザ定義ロジック（ＵＤＬ）回路、コア・ロジック回路）の解析はできない。ＤＦＴ技術では、テスト・クロックが伝播されない記憶素子群に対して、単純にテスト・クロック伝播用セレクタをクロック・ツリー（クロック・パス上のセル情報をツリー形式で表したもの）のリーフ（leaf）側へ挿入し、その記憶素子群にテスト・クロックを伝播させるための回路素子を生成する。しかし、テスト動作モードと通常動作モード（製品としての使用モード）とでは、クロックパルスが異なるパスを伝播するので、通常動作モードとテスト動作モードの双方においてタイミング収束の要求を満足させる必要があり、従って膨大なＴＡＴを要する。
【０００５】
発明者たちは、集積回路の設計において、通常動作モードおよびテスト動作モードにおいて同じクロックパルス伝播パスを使用できるようにテスト動作モードのパスを形成すれば、タイミング収束に要するＴＡＴを減少させることができる、と認識した。
【０００６】
本発明の目的は、集積回路における通常動作モードおよびテスト動作モードにおけるクロックパルス伝播のタイミング要求を満たすのに要するＴＡＴを減少させることである。
【０００７】
本発明の別の目的は、テスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するように制御論理素子を設計集積回路中に効率的に組み込むための手順を実現することである。
【０００８】
本発明のさらに別の目的は、テスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するように制御論理素子が組み込まれた集積回路の設計を実現することである。
【課題を解決するための手段】
【０００９】
本発明の特徴によれば、情報処理装置において用いられる、半導体集積回路のテスト容易化設計を支援するためのコンピュータ読み取り可能なプログラムは、前記情報処理装置に、テスト用の制御用論理素子を組み込もうとする第１のネットリストを入力するステップと、前記第１のネットリストに基づいて、クロック信号供給源としてのクロック・ルートの位置情報を抽出するステップと、前記クロック・ルートの位置情報に基づいて、トレースを行って前記第１のネットリストにおけるクロック信号パス上の論理素子をツリー形式で表したクロック・ツリー情報を生成するステップと、前記クロック・ツリー情報から前記クロック信号パス上の前記論理素子に関するパス情報および前記クロック信号パス上の前記論理素子に対応する素子の情報を被制御論理素子の情報として抽出して、テスト用の制御すべき前記被制御論理素子の端子を表す端子位置情報を生成するステップと、前記被制御論理素子の情報および前記端子位置情報に基づいて、記憶装置に予め格納されている論理素子の機能に関する論理素子機能情報を参照しながら、テスト用クロック信号が前記クロック信号パスを通過するように前記第１のネットリストにおける前記被制御論理素子に対するテスト用の制御用論理素子の組み込み位置を表す組込み位置情報を生成するステップと、前記組込み位置情報に従って、前記第１のネットリストに前記テスト用の制御用論理素子を組み込んで第２のネットリストを生成するステップと、を実行させるものである。
【００１０】
本発明の別の特徴によれば、半導体集積回路は、クロック・ルートと、前記クロック・ルートからのクロック信号を通過させるクロック信号パスを形成し、クロック信号ラインを介して結合された複数の被制御論理素子と、を含む被テスト論理回路と、テスト動作モードを設定するためのモード切換信号用の入力端子と、テスト用クロック信号の入力端子と、前記モード切換信号用の入力端子に結合された切換信号線と、前記切換信号線に結合された入力端子および前記複数の被制御論理素子の各々の１つの入力端子に結合された出力端子をそれぞれ有する複数の制御用論理素子と、を含むテスト用回路と、を含んでおりまた、前記複数の制御用論理素子は、前記モード切換信号に応答して、前記テスト動作モードにおいて、前記複数の被制御論理素子を制御する制御信号を前記複数の被制御論理素子の入力端子に供給して、前記テスト用クロック信号が前記クロック信号ラインを介して前記複数の被制御論理素子を通過するようにする。
【発明の効果】
【００１１】
本発明によれば、テスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するように制御用論理素子を設計集積回路中に効率的に組み込むことができ、また、集積回路におけるテスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するようにすることができる。
【発明を実施するための最良の形態】
【００１２】
本発明の実施形態を、図面を参照して説明する。図面において、同様の構成要素には同じ参照番号が付されている。
【００１３】
図１は、通常のＤＦＴ技術による、半導体集積回路における、通常動作モードおよびテスト動作モードにおけるクロックパルスＣＫ、ＸＴＣＫの異なる伝播パス（経路）４４０、４４２の配置の例を示している。図１において、太い実線は通常動作モードにおけるクロックパルスＣＫの伝播パス４４０を示し、太い一点鎖線はテスト動作モードにおける外部からのクロックパルスＸＴＣＫの伝播パス４４２を示している。伝播パス４４０と４４２の間の選択は、外部からのモード切換信号ＸＴＳＴによってモード切換信号ライン４３８を介して制御される。典型的には、テスト動作モードにおけるクロックパルスＸＴＣＫの伝播パス４４２は、通常動作モードにおけるクロックパルスＣＫの伝播パス４４０より長く、大きい遅延を生じさせることがある。
【００１４】
発明者たちは、テスト動作モードにおけるクロックパルスＸＴＣＫが通常動作モードにおけるクロックパルスＣＫの伝播パスを通過するように制御用論理素子を被テスト設計集積回路に組み込めば、クロックパルス伝播のタイミング要求を満たすのに要するＴＡＴ（Turn Around Time）を減少させることができる、と認識した。また、発明者たちは、そのような制御用論理素子を効率的に組み込むためのプログラムが必要である、と認識した。
【００１５】
図２は、本発明の実施形態による、テスト動作モードへの切換用の制御用論理素子を設計集積回路中に効率的に組み込むためのプログラムを実行するのに使用され得る情報処理装置１０の概略的な構成を示している。
【００１６】
図２において、情報処理装置１０は、プロセッサ１０２、データおよびコンピュータ・プログラム等を格納するための例えばＲＯＭ、ＲＡＭおよび磁気ディスクのような記憶装置１０４、記憶媒体からデータを読み取り記憶媒体へデータを書き込むためのデータ読取り書込み装置１０６、例えばＬＣＤのような表示装置１０８を具えている。
【００１７】
図３は、本発明の実施形態による、情報処理装置１０によって実行される、テスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するようにテスト用の制御用論理素子を設計集積回路中に効率的に組み込むためのフローチャートを示している。
【００１８】
ステップ２０２において、オペータの操作によって、情報処理装置１０のプロセッサ１０２は、入力装置１０４またはデータ読取り書込み装置１０６を介して初期のネットリスト２３２のデータを情報処理装置１０に取り込みまたは入力して記憶装置１０４に格納し、そのデータを処理すべきネットリストとして決定する。ネットリスト２３２のデータが予め記憶装置１０４に格納されている場合は、そのネットリスト２３２のデータを、処理すべきネットリストとして決定する。ネットリスト２３２とは、論理素子（論理セル、論理回路セル）に関する情報と、論理素子の入力端子（IN）および出力端子（OUT）に関する情報と、配線（ワイヤリング、wire）による論理素子間または論理セル間の接続に関する情報と、を示したテキスト・ファイルである。
【００１９】
ネットリスト２３２は、例えば、次のようなモジュール・チップに関する記述を含んでいる。
module Chip (IN1, IN2, OUT);
input IN1, IN2;
output OUT;
wire Wire1, Wire2;
CELL_REF_A  AND(.in1(IN1), .in2(IN2) .out(Wire1));
CELL_REF_B  OR(.in1(IN1), .in2(Wire1), .out(Wire2));
CELL_REF_C  INV(.in(Wire2), .out(OUT));
endmodule
【００２０】
ステップ２０４において、プロセッサ１０２は、記憶装置１０４に格納されたネットリスト２３２からクロック・ルート（クロックパルス供給源）（その情報）の抽出を実行する。このクロック・ルートの抽出は、オペータまたは回路設計者によって入力装置１０４を介してクロック・ルート情報を入力するかまたはフリップフロップ（ＦＦ）のクロック入力端子からバックワード・トレースするなどして、ネットリスト２３２からクロック・ルートとなる位置（ポイント）を取得して、クロック・ルート位置情報２３４として記憶装置１０４に格納する処理である。
【００２１】
ステップ２０６において、プロセッサ１０２は、クロック・ルート位置情報２３４に基づいてフォワード・トレースまたはバックワード・トレースを実行する。このトレースは、ネットリスト２３２において記憶装置１０４に格納されたクロック・ルート位置（クロック・ルートの位置）に対してフォワード・トレースまたはバックワード・トレースを行って、クロック・ツリー情報２３６を作成して記憶装置１０４に格納する処理である。フォワード・トレースとは、クロックパルス伝播パス上の論理素子群においてクロック・ルート位置からリーフ・フリップフロップＦＦまたは記憶素子に向かってパスの情報を取得する手法である。バックワード・トレースとは、リーフ・フリップフロップＦＦからルート位置に向かってパスの情報を取得する手法である。
【００２２】
ステップ２０８において、プロセッサ１０２は、クロック・ツリー情報に基づいて、制御用論理素子が結合されるまたは制御用論理素子で修正または置換される組み合わせ論理素子（論理回路素子）（または被制御論理素子）に関する情報の抽出を実行する。この組み合わせ論理素子の情報の抽出は、記憶装置１０４に格納されたクロック・ツリー情報から、記憶装置１０４にデータベースとして予め格納された素子機能またはセル機能（ＦＵＮＣＴＩＯＮ）に関する情報２４０を参照して、クロック活性化位置情報２３８を生成して、記憶装置１０４に格納する処理である。クロック活性化位置情報とは、クロック・パス上においてテスト用の制御用論理素子としてのゲーティング素子（セル）が組み合わされる被テスト論理素子（コア・ロジック回路およびユーザ定義ロジック（ＵＤＬ）回路の素子）に関する情報である。ここで、クロック活性化位置に関する情報として、次の情報が取得される。
【００２３】
−アンド（ＡＮＤ、即ち論理積）セルにおいて、クロックが入力されない組み合わせ端子（組み合わせ論理素子または被制御論理素子（アンド・セル）において制御用論理素子が接続され得るまたは組み込まれ得る位置）に関する情報；
−オア（ＯＲ、即ち論理和）セルにおいて、クロックが入力されない組み合わせ端子（組み合わせ論理素子または被制御論理素子（オア・セル）において制御用論理素子が接続され得るまたは組み込まれ得る位置）に関する情報；
−セレクタ（ＳＥＬＥＣＴＯＲ）セルにおけるイネーブル端子に関する情報；
−インバータ（ＩＮＶＥＲＴＥＲ、即ち反転器）セルにおけるテスト・クロックの正転（非反転）または反転に関する情報；および
−ルート位置（ＲＯＯＴ−ＰＯＩＮＴ）に対する、外部入力端子のクロックおよび内部生成クロックに関する情報。
【００２４】
ステップ２１０において、プロセッサ１０２は、制御用論理素子組込みテーブルの作成を実行する。この制御用論理素子組込みテーブルの作成は、記憶装置１０４に格納されたクロック活性化位置情報の論理を、記憶装置１０４にデータベースとして予め格納された素子（セル）機能情報２４０を用いて制御用論理素子の組込み位置に関する情報２４２に変換して、その制御用論理素子組込み位置情報２４２を記憶装置１０４に格納する処理である。
【００２５】
ステップ２１２において、プロセッサ１０２は、テスト用の制御用論理素子の組み込み（挿入または置換）と、テスト用の制御用論理素子が組み込まれたネットリスト２４４の出力しまたは記憶装置または記憶媒体への格納を実行する。この制御用論理素子の組み込みは、記憶装置１０４に格納された制御用論理素子組込み位置情報から、クロック・パス上のユーザ用の被テスト論理素子または被制御論理素子を制御しテスト・クロック伝播パスを活性化するように、ネットリスト２３２にテスト用の制御用論理素子を挿入しまたはネットリスト２３２における被制御論理素子をテスト用の制御用論理素子で置換して、処理済みのネットリスト２４４を出力しまたは記憶装置または記憶媒体に格納する処理である。
【００２６】
このようにして、半導体集積回路設計において、図３のフローチャートに従って、ユーザ定義ロジック等の被テスト回路におけるクロックパルス伝播パス上の各レジスタ群または記憶装置にクロック信号がそれぞれ供給される複数のクロック伝播パスにおけるテスト・クロック信号の通過または遮断を制御するための制御用論理素子またはゲーティング素子（セル）が設計半導体集積回路中に組み込まれる。半導体集積回路に対してテスト動作モードにおいてスキャン・テストを実行するときに、テスト・クロック端子からのテスト・クロック信号の通過を複数のクロック信号供給パス上の組み込まれた制御用論理素子によって制御し、それによって複数のクロック伝播パス上の各レジスタ群または記憶装置に対してスキャン・テストが行われる。
【００２７】
図４は、図３のフローチャートに従ってテスト動作モード用のクロックパルスの伝播パスの機能が付加される、通常動作モード用のクロックパルスの伝播パスを含む被テスト論理回路を示している。太い実線は通常動作モードにおけるクロックパルス伝播パス上の記憶素子（レジスタ・セルＦＦ１ ４０４、ＦＦ２ ４１０、ＦＦ３ ４２２、記憶デバイスＲＡＭ／ＲＯＭ４１４、等）に供給されるクロックパルスＣＫの伝播パス４４０を示し、この伝播パス４４０を通って、例えばスキャンパルスのようなテスト動作モードにおけるクロックパルスＸＴＣＫも伝播する。従って、通常動作モードにおけるクロックパルス伝播と、テスト動作モードにおけるクロックパルス伝播との間のタイミング収束のためのＴＡＴは、実質的に必要なくなりまたは大幅に減少する。
【００２８】
図４において、通常動作モードにおけるクロックパルス伝播パス４４０は、クロックパルス・ラインまたは配線（４４０）を介して結合された、分周用フリップフロップ（ＦＦ）であるルート位置４０２の非反転（正転）出力、ＡＮＤセル４０８（入力端子Ａ１、出力端子）、インバータ・セル４１２、セレクタ・セルまたはマルチプレクサ・セル４１８（入力端子Ａ、反転出力端子）およびフリップフロップ（ＦＦ）セル４２２（クロック端子）を通る。従って、素子セル４０８、４１２および４１８は、テスト動作モードにおけるクロックパルスの伝播のために制御される。
【００２９】
クロック・ルートの抽出
図３のステップ２０２においてネットリスト２３２が入力されて記憶装置１０４に格納された後、ステップ２０４においてクロック・ルートの抽出が行われる。
【００３０】
図４において、クロック・ルート（クロックパルス供給源）４０２の位置はフリップフロップ（ＦＦ１）セル４０４の前段に位置する。クロック・ルートに関する情報は、データ読取り書込み装置１０６を用いて、ネットリスト２３２と共に記憶装置１０４に格納させてもよい。代替構成として、クロック・ルート情報は、入力装置１０４を用いてオペレータによって直接入力されても、または、フリップフロップ・セル４０４のクロック端子からバックワード・トレースするなどして決定されてもよい。
【００３１】
フォワード・トレースおよびバックワード・トレース
図５は、フォワード・トレースまたはバックワード・トレースによって生成されたクロック・ツリー情報を示している。
【００３２】
ステップ２０６において、クロック・ルート位置よりフォワード・トレースまたはバックワード・トレースにより、図５に例として示したようなクロック・ツリー情報を生成する。
【００３３】
クロック・ツリー情報は、次のルールに従ってトレースされる。
ルール１：ターゲットとなるフリップフロップＦＦまたはＲＡＭ／ＲＯＭの左側の欄を検索する。
ルール２：検索は、ルート位置（Ｒｏｏｔ−Ｐｏｉｎｔ）で完了する。
ルール３：検索した欄が空欄ならば、１行上に移動してその左欄を検索する。
【００３４】
図５において、ターゲットとしてのフリップフロップ・セル４０４を表す最上列の欄のＦＦ１／ＣＫについて、その左の欄はＲｏｏｔ−Ｐｏｉｎｔであり、従ってツリー情報は“Ｒｏｏｔ−Ｐｏｉｎｔ”→“ＦＦ１／ＣＫ”である。
【００３５】
次に、ターゲットとしてのフリップフロップ４１０を表す２列目の欄のＦＦ１／ＣＫについて、その左の欄はＡＮＤ＿ＣＥＬＬ／Ａ１であり、従ってツリー情報は“ＡＮＤ＿ＣＥＬＬ／Ａ１”→“ＦＦ２／ＣＫ”である。しかし、ツリーはＲｏｏｔ−Ｐｏｉｎｔまで到達していないので、再度ＡＮＤ＿ＣＥＬＬ／Ａ１をターゲットとしてＲｏｏｔ−Ｐｏｉｎｔまで検索する。ＡＮＤ＿ＣＥＬＬ／Ａ１の左欄は空欄なので、１行上に移動してその左欄を検索する。その欄はＲｏｏｔ−Ｐｏｉｎｔである。従ってツリー情報は“Ｒｏｏｔ−Ｐｏｉｎｔ”→“ＡＮＤ＿ＣＥＬＬ／Ａ１”→“ＦＦ２／ＣＫ”である。
【００３６】
次に、ターゲットとしてのフリップフロップ４２２を表す２列目の欄のＦＦ３／ＣＫについて、その左の欄はＳＥＬＥＣＴ＿ＣＥＬＬ／Ａであり、その左の欄はＩＮＶＥＲＴ＿ＣＥＬＬ／Ａであり、その左欄は空欄である。従って、１行上に移動すると、その欄はＡＮＤ＿ＣＥＬＬ／Ａ１であり、その左欄は空欄である。従って、１行上に移動すると、その欄はＲｏｏｔ−Ｐｏｉｎｔである。従ってツリー情報は“Ｒｏｏｔ−Ｐｏｉｎｔ”→“ＡＮＤ＿ＣＥＬＬ／Ａ１”→“ＩＮＶＥＲＴ＿ＣＥＬＬ／Ａ” →“ＳＥＬＥＣＴ＿ＣＥＬＬ／Ａ” →“ＦＦ３／ＣＫ”である。
【００３７】
組合せ論理素子情報の抽出
次いで、図５の表におけるルート位置、“ＡＮＤ＿ＣＥＬＬ／Ａ１”、“ＩＮＶＥＲＴ＿ＣＥＬＬ／Ａ”および“ＳＥＬＥＣＴ＿ＣＥＬＬ／Ａ”と、素子機能情報２４０とから、端子情報を取得する。
【００３８】
図６は、素子（セル）機能のリストを表す論理素子機能情報２４０の表の例を示している。論理素子機能情報は、ファミリ名、制御論理およびその端子、クロック論理、テスト動作モードにおける論理状態（レベル）、挿入または置換されるセルを含んでいる。「ファミリ」（Ｆａｍｉｌｙ）とは、駆動能力および端子数が違う論理セルのグループを表す。
【００３９】
図５および６の表を参照して、図４および５の論理素子ＡＮＤ、ＩＮＶＥＲＴおよびＳＥＬＥＣＴのセルについて、端子情報の取得を説明する。
【００４０】
図５のＡＮＤ＿ＣＥＬＬについて、図６の論理素子機能情報のファミリ名がＡＮＤである行を検索し、クロック（ＣＬＫ）論理情報および制御端子情報を取得する。この場合、２入力を有するＡＮＤなので、制御端子は入力端子Ａ２となる。多入力のＡＮＤの場合は、制御端子は非クロック入力端子である。
【００４１】
図５のＩＮＶＥＲＴ＿ＣＥＬＬについて、図６の論理素子機能情報のファミリ名がＩＮＶＥＲＴＥＲである行を検索し、クロック（ＣＬＫ）論理情報および制御端子情報を取得する。この場合、ＩＮＶＥＲＴＥＲは入出力が１対１なので、制御端子は付加されるＸ端子となる。
【００４２】
図５のＳＥＬＥＣＴ＿ＣＥＬＬについて、図６の論理素子機能情報のファミリ名がＳＥＬＥＣＴＯＲである行を検索し、クロック（ＣＬＫ）論理情報および制御端子情報を取得する。ＳＥＬＥＣＴＯＲの制御端子は、全てＳ端子であり、従ってこの場合もＳ端子である。
【００４３】
図７は、図５および６の表から生成された、クロック活性化位置情報２３８としての制御端子の情報の例を示している。
【００４４】
図７において、ルート位置（４０２）を表すＲＯＯＴ−ＰＯＩＮＴに対する制御端子および極性は、セレクタのスイッチング端子“ＳＥＬＥＣＴ＿ＣＥＬＬ／Ｓ”および正転である。
【００４５】
ＡＮＤセル（４０８）の入力端子を表す“ＡＮＤ＿ＣＥＬＬ／Ａ１”に対する制御端子および極性は、ＡＮＤセル（４０８）の別の入力端子を表す“ＡＮＤ＿ＣＥＬＬ／Ａ２”および正転である。
【００４６】
ＮＡＮＤセルの入力端子を表す“ＮＡＮＤ＿ＣＥＬＬ／Ａ１”に対する制御端子および極性は、ＮＡＮＤセルの別の反転入力端子“ＮＡＮＤ＿ＣＥＬＬ／Ａ２”および反転である。
【００４７】
ＯＲセルの入力端子“ＯＲ＿ＣＥＬＬ／Ａ１”に対する制御端子および極性は、ＯＲセルの別の入力端子“ＯＲ＿ＣＥＬＬ／Ａ２”および正転である。
【００４８】
ＮＯＲセルの入力端子を表すＮＯＲ＿ＣＥＬＬ／Ａ１に対する制御端子および極性は、ＮＯＲセルの反転入力端子“ＮＯＲ＿ＣＥＬＬ／Ａ２”および反転である。
【００４９】
インバータ（ＩＮＶＥＲＴ）セル（４１２）の入力端子を表す“ＩＮＶＥＲＴ＿ＣＥＬＬ／Ａ”に対する制御端子および極性は、ＩＮＶＥＲＴセル４１２に追加される反転入力端子“ＩＮＶＥＲＴ＿ＣＥＬＬ／Ｘ”および反転である。
【００５０】
セレクタ・セル（４１８）の入力端子を表すＳＥＬＥＣＴ＿ＣＥＬＬ／Ａに対する制御端子および極性は、セレクタ・セル（４１８）のスイッチング端子“ＳＥＬＥＣＴ＿ＣＥＬＬ／Ｓ”および正転である。
【００５１】
制御用論理素子組込みテーブルの作成
次いで、図６の論理素子機能情報および図７の被制御端子情報から、テスト用の制御用論理素子組込みテーブルを作成する。
【００５２】
図８は、作成された制御用論理素子組込みテーブルの例を示している。
【００５３】
組合せの対象となる論理（回路）素子として図４におけるＡＮＤセル４０８、ＩＮＶＥＲＴセル４１２、ＳＥＬＥＣＴセル４１８について、組み込まれる制御用論理セルを決定する方法を説明する。
【００５４】
ＡＮＤセル４０８について、図６の表においてファミリ名がＡＮＤである行を検索し、挿入または置換セルの情報を取得する。また、図７の表において制御端子の情報を取得する。従って、ＡＮＤセル４０８の正転（非反転）入力端子に対して挿入されるセルはＯＲセルである。これが、図８のＡＮＤ＿ＣＥＬＬの行の最も右の欄に示されている。
【００５５】
ＩＮＶＥＲＴセル４１２について、図６の表において、ファミリ名がＩＮＶＥＲＴＥＲである行を検索し、挿入または置換セルの情報を取得する。また、図７の表において制御端子の情報を取得する。従って、出力側に挿入される入力端子を有するＩＮＶＥＲＴセル４１２に対して置換されるセルはＥＯＲセルである。これが、図８のＩＮＶＥＲＴ＿ＣＥＬＬの行に示されている。
【００５６】
ＳＥＬＥＣＴセル４１８について、図６の表において、ファミリ名がＳＥＬＥＣＴＯＲである行を検索し、挿入または置換セルの情報を取得する。また、図７の表において制御端子の情報を取得する。制御端子Ｓは正転であり、図７のローアクティブ“０”に対応する。従って、ＳＥＬＥＣＴセル４１８のスイッチング端子に対してＯＲセルが挿入される。これが、図８のＳＥＬＥＣＴ＿ＣＥＬＬの行に示されている。
【００５７】
図４の例では説明しないが、図６の表によれば、ＮＡＮＤ、ＯＲおよびＮＯＲのファミリに対しては、それぞれＯＲセル、ＡＮＤセルおよびＡＮＤセルが挿入される。
【００５８】
このようにして、図８の制御用セル組込みテーブルが作成される。その制御用セル組込みテーブルに従って、初期のネットリスト２３２における制御用論理素子の組み込み位置の情報２４２が生成されて記憶装置１０４に格納される。
【００５９】
ネットリストの出力
次に、制御用論理素子の組み込み位置情報２４２に基づいて、初期のネットリスト２３２に制御用論理素子が組み込まれた出力ネットリスト２４４が生成される。
【００６０】
図９は、出力ネットリスト２４４における、図８の制御用論理素子挿入テーブルに従って図４の論理回路に対して制御用論理素子が挿入または制御用論理素子で置換された論理回路の配置の例を示している。
【００６１】
図９において、図４の論理回路に、テスト用クロックパルス入力端子ＴＣ＿ＩＮ、モード切換信号ＸＴＳＴ入力端子Ｍ＿ＩＮ、およびモード切換信号ＸＴＳＴ用ラインまたは配線４５０が追加される。
【００６２】
図９において、ルート位置（ＦＦ）４０２の出力端子とＡＮＤセル４０８の入力端子Ａ１の間に、テスト用クロックパルス入力端子ＴＣ＿ＩＮからのテスト用クロックＸＴＣＬＫを切り換えて入力するためのセレクタ４０３が挿入される。セレクタ４０３の一方の入力端子にはルート位置４０２の出力端子に結合され、その他方の入力端子には供給されるテスト用クロックパルスＸＴＣＫが結合される。セレクタ４０３の出力端子はフリップフロップ４０４のクロック入力端子およびＡＮＤセル４０８の入力端子Ａ１に結合される。セレクタ４０３の制御端子Ｓには、モード切換信号ＸＴＳＴ入力端子Ｍ＿ＩＮからモード切換信号ＸＴＳＴ用ライン４５０を介してモード切換信号ＸＴＳＴが結合される。
【００６３】
ロジック４０６の出力端子とＡＮＤセル４０８の入力端子Ａ２の間に、ＯＲセル４０７が挿入される。ＯＲセル４０７の一方の入力端子にはロジック４０６の出力端子に結合され、その他方の入力端子にはモード切換信号ＸＴＳＴ用ライン４５０を介してモード切換信号ＸＴＳＴが結合される。ＯＲセル４０７の出力端子は、ＡＮＤセル４０８の入力端子Ａ２に結合される。
【００６４】
図４のＩＮＶＥＲＴセル４１２は、ＥＸＯＲセル４１３に置換される。ＥＸＯＲセル４１３の一方の入力端子にはＡＮＤセル４０８の出力端子が結合され、その他方の入力端子にはモード切換信号ＸＴＳＴが結合される。ＥＸＯＲセル４１３の出力端子はセレクタ・セル４１８の一方の入力端子ＡおよびＲＡＭ／ＲＯＭ４１４のクロック入力端子ＣＫに結合される。
【００６５】
セレクタ４１８の制御入力端子Ｓとロジック４１６の出力端子の間に、ＯＲセル４１７が挿入される。ＯＲセル４１７の一方の入力端子にはロジック４１６の出力端子が結合され、その他方の入力端子にはモード切換信号ＸＴＳＴが結合される。ＯＲセル４１７の出力端子はセレクタ４１８の制御入力端子Ｓに結合される。
【００６６】
このようにして、図９の論理回路においてモード切換信号ＸＴＳＴを１（Ｈｉｇｈ）に設定してライン４５０に供給し、テスト用クロックパルスＸＴＣＫをセレクタ４０３の他方の入力端子に供給することによって、テスト用クロックパルスＸＴＣＫが、通常動作モードにおける論理素子セル４０２と４２２の間のクロックパルス伝播パス４４０を伝播する。即ち、テスト動作モードと通常動作モードにおいて使用されるクロックパルスが同じクロックパルス伝播パスを通過する。
【００６７】
このように実施形態によれば、集積回路における通常動作モードとテスト動作モードにおけるクロックパルス伝播のタイミング収束に要するＴＡＴを大幅に減少させることができる。
【００６８】
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素を組み合わせること、その変形およびバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理および請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。
【００６９】
以上の実施例を含む実施形態に関して、さらに以下の付記を開示する。
（付記１）  情報処理装置において用いられる、半導体集積回路のテスト容易化設計を支援するためのプログラムであって、
前記情報処理装置に、
テスト用の制御用論理素子を組み込もうとする第１のネットリストを入力するステップと、
前記第１のネットリストに基づいて、クロック信号供給源としてのクロック・ルートの位置情報を抽出するステップと、
前記クロック・ルートの位置情報に基づいて、トレースを行って前記第１のネットリストにおけるクロック信号パス上の論理素子をツリー形式で表したクロック・ツリー情報を生成するステップと、
前記クロック・ツリー情報から前記クロック信号パス上の前記論理素子に関するパス情報および前記クロック信号パス上の前記論理素子に対応する素子の情報を被制御論理素子の情報として抽出して、テスト用の制御すべき前記被制御論理素子の端子を表す端子位置情報を生成するステップと、
前記被制御論理素子の情報および前記端子位置情報に基づいて、記憶装置に予め格納されている論理素子の機能に関する論理素子機能情報を参照しながら、テスト用クロック信号が前記クロック信号パスを通過するように前記第１のネットリストにおける前記被制御論理素子に対するテスト用の制御用論理素子の組み込み位置を表す組込み位置情報を生成するステップと、
前記組込み位置情報に従って、前記第１のネットリストに前記テスト用の制御用論理素子を組み込んで第２のネットリストを生成するステップと、
を実行させるためのコンピュータ読み取り可能なプログラム。
（付記２）  前記トレースは、前記クロック・ルートの位置情報に基づく、フォワード・トレースまたはバックワード・トレースであることを特徴とする、付記１に記載のプログラム。
（付記３）  前記第２のネットリストを生成するステップは、組み込まれた前記テスト用の制御用論理素子に外部からモード切換信号が供給されたときに前記テスト用の外部のクロック信号が前記クロック信号パスを通過するように、前記被制御論理素子における端子にテスト用の制御用論理素子を結合させおよび／または前記被制御論理素子を前記テスト用の制御用論理素子に置き換え、前記テスト用の制御用論理素子に前記モード切換信号を供給するための信号線を組み込むことを含むものであることを特徴とする、付記１または２に記載のプログラム。
（付記４）  前記被制御論理素子は被テスト論理回路を構成するものであることを特徴とする、付記１乃至３のいずれかに記載のプログラム。
（付記５）  前記テスト用の制御用論理素子は、前記論理素子機能情報におけるＳＥＬＥＣＴＯＲセル、ＯＲセル、ＡＮＤセルおよびＥＸＯＲセルの中から選択される素子セルであることを特徴とする、付記１乃至４のいずれかに記載のプログラム。
（付記６）  クロック・ルートと、前記クロック・ルートからのクロック信号を通過させるクロック信号パスを形成し、クロック信号ラインを介して結合された複数の被制御論理素子と、を含む被テスト論理回路と、
テスト動作モードを設定するためのモード切換信号用の入力端子と、テスト用クロック信号の入力端子と、前記モード切換信号用の入力端子に結合された切換信号線と、前記切換信号線に結合された入力端子および前記複数の被制御論理素子の各々の１つの入力端子に結合された出力端子をそれぞれ有する複数の制御用論理素子と、を含むテスト用回路と、
を含む半導体集積回路であって、
前記複数の制御用論理素子は、前記モード切換信号に応答して、前記テスト動作モードにおいて、前記複数の被制御論理素子を制御する制御信号を前記複数の被制御論理素子の入力端子に供給して、前記テスト用クロック信号が前記クロック信号ラインを介して前記複数の被制御論理素子を通過するようにするものであることを特徴とする、
半導体集積回路。
【図面の簡単な説明】
【００７０】
【図１】図１は、通常のＤＦＴ技術による、半導体集積回路における、通常動作モードおよびテスト動作モードにおけるクロックパルスの異なる伝播パスの配置の例を示している。
【図２】図２は、本発明の実施形態による、テスト動作モードへの切換用の制御用論理素子を設計集積回路中に効率的に組み込むためのプログラムを実行するのに使用され得る情報処理装置の概略的な構成を示している。
【図３】図３は、本発明の実施形態による、情報処理装置によって実行される、テスト動作モードおよび通常動作モードにおいてクロックパルスが同じパスを通過するようにテスト用の制御用論理素子を設計集積回路中に効率的に組み込むためのフローチャートを示している。
【図４】図４は、図３のフローチャートに従ってテスト動作モード用のクロックパルスの伝播パスの機能が付加される、通常動作モード用のクロックパルスの伝播パスを含む被テスト論理回路を示している。
【図５】図５は、フォワード・トレースまたはバックワード・トレースによって生成されたクロック・ツリー情報を示している。
【図６】図６は、論理素子機能のリストを表す論理素子機能情報の表の例を示している。
【図７】図７は、図５および６の表から生成された、クロック活性化位置情報としての被制御端子の情報の例を示している。
【図８】図８は、制御用論理素子組込みテーブルの例を示している。
【図９】図９は、図８の制御用論理素子組込みテーブルに従って、図４の論理回路に対して制御用論理素子が組み込まれた論理回路の配置の例を示している。
【符号の説明】
【００７１】
１０  情報処理装置
２３２  初期のネットリスト
２３４  クロック・ルートの位置情報
２３６  クロック・ツリー情報
２３８  クロック活性化位置情報
２４０  セル機能情報
２４２  処理済みネットリスト
４０２  ルート位置
４０４  分周用フリップフロップ・セル（ルート・ポイント）
４０８  ＡＮＤセル
４１２  インバータ・セル
４１８  セレクタ・セル
４０３  セレクタ・セル
４０７  ＯＲセル
４１３  ＥＸＯＲセル
４１７  ＯＲセル
４４０  クロックパルス・パス
４５０  モード切換信号用ライン
【図１】
2009217431.tif 000003
【図２】
2009217431.tif 000004
【図３】
2009217431.tif 000005
【図４】
2009217431.tif 000006
【図５】
2009217431.tif 000007
【図６】
2009217431.tif 000008
【図７】
2009217431.tif 000009
【図８】
2009217431.tif 000010
【図９】
2009217431.tif 000011