(57)【特許請求の範囲】
【請求項１】
半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得する取得手段と、
前記取得手段によって取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集して、タイミング制約違反を検出する収集回路と、を備えるテスト回路に関する情報に置換する置換手段と、
前記半導体集積回路に関するタイミング解析結果から前記半導体集積回路内のクリティカルパスを検出するクリティカルパス検出手段と、
前記クリティカルパス検出手段によって検出されたクリティカルパスにデータ信号を伝達させるための信号を検出する信号検出手段と、
前記置換手段によって置換された前記半導体集積回路に関する情報に基づいて、複数種類のテストプログラムにより、前記半導体集積回路に関するテストを実行する実行手段と、
前記信号検出手段によって検出された検出結果と、前記実行手段によって実行された実行結果と、に基づいて、前記複数種類のテストプログラムの組み合わせの中から、テストプログラム数が最小となる組み合わせを生成する生成手段と、
を備えることを特徴とする設計支援装置。
【請求項２】
前記置換手段は、
前記半導体集積回路のレイアウト結果に基づいて、前記取得手段によって取得された第１の出力先の回路素子に関する情報を、前記テスト回路に関する情報に置換することを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記置換手段によって置換された前記半導体集積回路に関する情報に基づいて、前記半導体集積回路の電源電圧を設定する設定手段と、
前記置換手段によって置換された前記半導体集積回路に関する情報に基づいて、所定のテストプログラムにより、前記半導体集積回路に関するテストを実行する実行手段と、
前記実行手段によって実行された実行結果に基づいて、前記半導体集積回路が前記設定手段によって設定された電源電圧で動作するか否かを判断する判断手段と、
前記判断手段によって判断された判断結果に基づいて、前記半導体集積回路が動作する最も低い電源電圧を決定する決定手段と、
を備えることを特徴とする請求項１または２に記載の設計支援装置。
【請求項４】
半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得する取得工程と、
前記取得工程によって取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集して、タイミング制約違反を検出する収集回路と、を備えるテスト回路に関する情報に置換する置換工程と、
前記半導体集積回路に関するタイミング解析結果から前記半導体集積回路内のクリティカルパスを検出するクリティカルパス検出工程と、
前記クリティカルパス検出工程によって検出されたクリティカルパスにデータ信号を伝達させるための信号を検出する信号検出工程と、
前記置換工程によって置換された前記半導体集積回路に関する情報に基づいて、複数種類のテストプログラムにより、前記半導体集積回路に関するテストを実行する実行工程と、
前記信号検出工程によって検出された検出結果と、前記実行工程によって実行された実行結果と、に基づいて、前記複数種類のテストプログラムの組み合わせの中から、テストプログラム数が最小となる組み合わせを生成する生成工程と、
を含んだことを特徴とする設計支援方法。
【請求項５】
半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得させる取得工程と、
前記取得工程によって取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集して、タイミング制約違反を検出する収集回路と、を備えるテスト回路に関する情報に置換させる置換工程と、
前記半導体集積回路に関するタイミング解析結果から前記半導体集積回路内のクリティカルパスを検出させるクリティカルパス検出工程と、
前記クリティカルパス検出工程によって検出されたクリティカルパスにデータ信号を伝達させるための信号を検出させる信号検出工程と、
前記置換工程によって置換された前記半導体集積回路に関する情報に基づいて、複数種類のテストプログラムにより、前記半導体集積回路に関するテストを実行させる実行工程と、
前記信号検出工程によって検出された検出結果と、前記実行工程によって実行された実行結果と、に基づいて、前記複数種類のテストプログラムの組み合わせの中から、テストプログラム数が最小となる組み合わせを生成させる生成工程と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路のタイミング条件を満たして動作しているか否かの故障を検出するテスト回路、半導体集積回路、設計支援装置、設計支援方法、設計支援プログラム、および記録媒体に関する。
【背景技術】
【０００２】
従来、半導体集積回路を製造し、出荷する際に回路が正しく動作しているかを調べるために、テストという処理をおこなう。一般的に、テストは、以下の１）〜３）に分類される。
１）半導体集積回路の基本機能動作を調べるためのファンクションテスト。
２）半導体集積回路を、トランジスタレベルで故障を検出するための論理テスト。
３）半導体集積回路が目標の周波数で動作するかを調べるための遅延テスト。
【０００３】
テクノロジの微細化にともない、プロセスのばらつきや電源電圧の低下、クロストークなどによる遅延の変動が増大している。これらの遅延変動は、設計時点では定性的には求めることができないため、不確定な遅延として扱われ、設計時点においては、遅延のマージンとして余分に確保しておく必要がある。
【０００４】
近年、これらの設計マージンの増大化のために、タイミング設計が難しくなるという問題が発生している。そのため、不要な遅延マージンをなくすために統計的な手法を用いた遅延計算手法などが採用されつつある。
【０００５】
しかし、遅延マージンを削減した場合、製造した回路すべてが目標の周波数で動作しない可能性が起こる場合がある。このようなタイミング不良の回路を選別する手法として、実機周波数でのタイミングで遅延テストを行うat-speedテストを行う必要がある。なお、専用内蔵回路によるat-speedテストについては、下記特許文献１に記載されている。
【０００６】
【特許文献１】特開２００１−３１９５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したat-speedテストは、テストモードと呼ばれる通常のチップの動作条件と異なる条件で行われるため、テストモードでのat-speedテストをパスしたとしても、必ずしも実機での動作が保障されるとは限られないという問題があった。
【０００８】
また、実機では動作するチップもat-speedテストではじかれる可能性があるという問題があった。また、at-speedテストは時間がかかる上に、導入するためはBIST(Built-in-self-test)と呼ばれる専用回路を内蔵したり、高価な専用装置を用意する必要がある。このため、製造コストが高くなるという問題があった。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、実機と同じ環境で、安価かつ高速なテストをおこなうことができるテスト回路、半導体集積回路、設計支援装置、設計支援方法、設計支援プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、この発明にかかる設計支援装置、設計支援方法、設計支援プログラム、および記録媒体は、半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得し、取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集して、タイミング制約違反を検出する収集回路と、を備えるテスト回路に関する情報に置換し、前記半導体集積回路に関するタイミング解析結果から前記半導体集積回路内のクリティカルパスを検出し、検出されたクリティカルパスにデータ信号を伝達させるための信号を検出し、置換された前記半導体集積回路に関する情報に基づいて、複数種類のテストプログラムにより、前記半導体集積回路に関するテストを実行し、検出された検出結果と、実行された実行結果と、に基づいて、前記複数種類のテストプログラムの組み合わせの中から、テストプログラム数が最小となる組み合わせを生成することを特徴とする。
【００１４】
また、上記発明において、前記遅延素子は、前記第２の出力先の回路素子へのクロック信号の出力が切替可能に構成されていることとしてもよい。
【００１５】
また、上記発明において、前記半導体集積回路に関するタイミング解析結果に基づいて、前記出力元の回路素子に関する情報を取得することとしてもよい。
【００１６】
また、上記発明において、前記半導体集積回路のレイアウト結果に基づいて、取得された第１の出力先の回路素子に関する情報を、前記テスト回路に関する情報に置換することとしてもよい。
【００１７】
また、上記発明において、前記半導体集積回路に関するタイミング解析結果から前記半導体集積回路内のクリティカルパスを検出し、検出されたクリティカルパスにデータ信号を伝達させるための信号を検出し、置換された前記半導体集積回路に関する情報に基づいて、複数種類のテストプログラムにより、前記半導体集積回路に関するテストを実行し、信号の検出された検出結果と、テストの実行された実行結果と、に基づいて、前記複数種類のテストプログラムの組み合わせの中から、テストプログラム数が最小となる組み合わせを生成することとしてもよい。
【００１８】
また、上記発明において、置換された前記半導体集積回路に関する情報に基づいて、前記半導体集積回路の電源電圧を設定し、置換された前記半導体集積回路に関する情報に基づいて、所定のテストプログラムにより、前記半導体集積回路に関するテストを実行し、実行された実行結果に基づいて、前記半導体集積回路が設定された電源電圧で動作するか否かを判断し、判断された判断結果に基づいて、前記半導体集積回路が動作する最も低い電源電圧を決定することとしてもよい。
【発明の効果】
【００１９】
本発明にかかるテスト回路、半導体集積回路、設計支援装置、設計支援方法、設計支援プログラム、および記録媒体によれば、実機と同じ環境で、安価かつ高速なテストをおこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかるテスト回路、半導体集積回路、設計支援装置、設計支援方法、設計支援プログラム、および記録媒体の好適な実施の形態を詳細に説明する。
【００２１】
（実施の形態１）
まず、この発明の実施の形態１にかかるテスト回路および当該テスト回路を有する半導体集積回路について説明する。図１は、この発明の実施の形態１にかかる半導体集積回路の一例を示す回路図である。図１に示した半導体集積回路１００において、太線のパスはデータ信号が伝達されるデータパスであり、細線のパスは、図示しないクロックソースからのクロック信号が伝達されるクロックパスである。
【００２２】
図１において、半導体集積回路１００は、フロップフロップ（以下、「ＦＦ」）１０１と、ＦＦ１０２と、を有する。ＦＦ１０１とＦＦ１０２とは、バッファ１１１〜１１３を介してデータパスＤＰで接続されている。ＦＦ１０１は、データ信号ｑ１を出力端子Ｑ１から出力する。
【００２３】
ＦＦ１０２は、ＦＦ１０１の出力端子Ｑ１から出力されたデータ信号ｑ１を入力端子Ｄ１から取り込む。ＦＦ１０２は、データ信号ｑ１が取り込まれると、データ信号ｑ２を出力する。また、ＦＦ１０１およびＦＦ１０２は、それぞれクロックパスＣＰに接続されているクロック端子ＣＫ１，ＣＫ２を有しており、クロック信号ｃｌｋを取り込む。これにより、ＦＦ１０１およびＦＦ１０２は、同一のタイミングで動作する。
【００２４】
半導体集積回路１００において、データパスにおけるタイミングテストをおこなう場合、ＦＦ１０１から出力されるデータ信号ｑ１の取込先となるＦＦ１０２に替え、テスト回路１１０を埋め込む。テスト回路１１０は、第１の出力先の回路素子（ＦＦ１０２）と、第２の出力先の回路素子（ＦＦ１０３）と、遅延素子と、比較部と、エラー収集部と、を備える。
【００２５】
ここで、第１の出力先の回路素子は、データ信号の出力元の回路素子から当該データ信号の取込先となる回路素子である。たとえば、図１において、出力元の回路素子をＦＦ１０１とした場合、ＦＦ１０１から出力されるデータ信号ｑ１の取込先となるＦＦ１０２が、第１の出力先の回路素子に相当する。
【００２６】
また、第２の出力先の回路素子は、出力元の回路素子からデータ信号を取り込む回路素子である。たとえば、図１において、出力元の回路素子をＦＦ１０１とした場合、ＦＦ１０２とともにＦＦ１０１から出力されるデータ信号ｑ１の取込先となるＦＦ１０３が、第２の出力先の回路素子に相当する。
【００２７】
ＦＦ１０３は、ＦＦ１０２と同一構造のＦＦであり、ＦＦ１０２と並列に、ＦＦ１０１からのデータ信号ｑ１を入力端子Ｄ２から取り込む。ＦＦ１０３は、クロック端子ＣＫ３を有しており、ＦＦ１０２のクロック端子ＣＫ２と並列にクロック信号ｃｌｋを取り込む。
【００２８】
また、遅延素子は、第２の出力先の回路素子の動作タイミングを第１の出力先の回路素子の動作タイミングよりも遅延させる回路素子である。たとえば、図１において、出力元の回路素子をＦＦ１０１、第１の出力先の回路素子をＦＦ１０２、および第２の出力先の回路素子をＦＦ１０３とした場合、ＦＦ１０３のクロック端子ＣＫ３の前段のバッファ１０４が遅延素子に相当する。バッファ１０４はクロックパスＣＰ上に設けられており、クロック信号ｃｌｋのクロック端子ＣＫ３への到達を遅延させる。
【００２９】
このように、遅延素子（バッファ１０４）を介在させたことにより、ＦＦ１０１からＦＦ１０３の入力端子Ｄ２にデータ信号ｑ１を取り込むタイミングは、ＦＦ１０２の入力端子Ｄ１にデータ信号ｑ１を取り込むタイミングよりも余裕を持たせることができる。
【００３０】
比較部は、第１の出力先の回路素子に取り込まれたデータ信号の値と第２の出力先の回路素子に取り込まれたデータ信号の値とを比較する。具体的には、たとえば、比較部は、図１において、ＦＦ１０２の出力端子Ｑ２とＦＦ１０３の出力端子Ｑ３と接続されている比較回路１０５である。比較回路１０５は、出力端子Ｑ２からのデータ信号ｑ２の値と、出力端子Ｑ３からのデータ信号ｑ３の値とを取り込んで比較する。より具体的には、たとえば、排他的論理和により比較する。
【００３１】
また、エラー収集部は、比較回路１０５によって比較された比較結果を収集する。具体的には、たとえば、エラー収集部は、比較回路１０５と接続されているエラー収集回路１０６であり、データ信号ｑ２の値と、出力端子Ｑ３からのデータ信号ｑ３の値との比較結果を取り込む。この取り込んだ比較結果により、ＦＦ１０２にタイミングエラーが生じているか否かを判断する。
【００３２】
つぎに、図１に示したテスト回路１１０の詳細な回路構成の一例について説明する。図２−１および図２−２は、図１に示したテスト回路１１０の詳細な回路構成の一例を示す説明図である。図２−１は、クロックパスＣＰを除いた回路構成をあらわしている。また、図２−２の（ａ）は、ＦＦ１０２に対するクロックパスＣＰをあらわしており、同図（ｂ）は、ＦＦ１０３に対するクロックパスＣＰをあらわしている。
【００３３】
図３は、図１に示した半導体集積回路１００のタイミングチャートである。図３において、クロック端子ＣＫ１にクロック信号ｃｌｋが取り込まれると、ＦＦ１０１では、出力端子Ｑ１からデータ信号ｑ１を出力する。同様のタイミングで、クロック端子ＣＫ２にクロック信号ｃｌｋが取り込まれると、ＦＦ１０２では、出力端子Ｑ１からのデータ信号ｑ１を入力端子Ｄ１から取り込んで、出力端子Ｑ２からデータ信号ｑ２を出力する。
【００３４】
一方、ＦＦ１０３においては、遅延素子により、クロック端子ＣＫ１，ＣＫ２のクロック信号ｃｌｋの入力タイミングよりも時間ｄ分遅延してクロック端子ＣＫ３からクロック信号ｃｌｋを取り込む。そして、ＦＦ１０１からのデータ信号ｑ１を入力端子Ｄ２から取り込むと、出力端子Ｑ３からデータ信号ｑ３を出力する。
【００３５】
ここで、ＦＦ１０２の動作時間ｔ内にデータ信号ｑ１が取り込まれてデータ信号ｑ２を出力する場合（図３中、（１））、ＦＦ１０３においても、動作時間ｔ内にデータ信号ｑ１が取り込まれてデータ信号ｑ３を出力する（図３中、（３））。この場合、データパスＤＰはタイミング制約を遵守しているため、問題ない。
【００３６】
一方、ＦＦ１０２の動作時間ｔ外にデータ信号ｑ１が取り込まれてデータ信号ｑ２を出力する場合（図３中、（２））、データパスＤＰはタイミング制約違反となる。ここで、ＦＦ１０３では、動作時間ｔ内にデータ信号ｑ１が取り込まれてデータ信号ｑ３を出力する（図３中、（４））。
【００３７】
したがって、出力端子Ｑ２からのデータ信号ｑ２は、（１）と（２）とによって異なる反面、出力端子Ｑ３からのデータ信号ｑ３は、（３）と（４）とで変わらないため、比較回路１０５の排他的論理和により、データパスＤＰのタイミング制約違反（エラー）を検出することができる。
【００３８】
このように、実施の形態１によれば、遅延素子による遅延時間ｔを実際の動作環境に適した時間に調整し、テスト回路１１０を埋め込んでテストをおこなうことにより、タイミングが厳しいデータパスＤＰが、実際の動作環境下においてタイミング制約を遵守するか違反するかを検出することができる。
【００３９】
（実施の形態２）
つぎに、この発明の実施の形態２について説明する。実施の形態１では、テスト回路１１０のＦＦ１０３のクロック端子ＣＫ３の前段に遅延素子としてバッファ１０４を設けた構成について説明したが、実施の形態２では、バッファ１０４の替わりに、ゲーティング回路を遅延素子として設けた構成である。
【００４０】
図４は、この発明の実施の形態２にかかる半導体集積回路１００の一例を示す回路図であり、図５−１および図５−２は、図４に示したテスト回路１１０の詳細な回路構成の一例を示す説明図である。図５−１は、クロックパスＣＰを除いた回路構成をあらわしている。また、図５−２の（ａ）は、ＦＦ１０２に対するクロックパスＣＰをあらわしており、同図（ｂ）は、ＦＦ１０３に対するクロックパスＣＰをあらわしている。
【００４１】
ゲーティング回路１０７は、たとえば、クロック信号ｃｌｋとクロックイネーブル信号ｃｅとを入力する２入力ＡＮＤ回路であり、クロックイネーブル信号ｃｅが入力されているときだけ、クロック信号ｃｌｋをクロック端子ＣＫ３に供給する。これにより、ユーザがテストをおこなう場合にのみクロックイネーブル信号ｃｅを与えることにより、消費電力を抑制することができる。
【００４２】
（実施の形態３）
つぎに、実施の形態３について説明する。実施の形態１および２では、実機である半導体集積回路１００にテスト回路１１０を埋め込んだ例について説明したが、実施の形態３は、半導体集積回路１００の製造前における設計段階において、ソフトウェアである設計支援ツールによりテストをおこなう構成である。これにより、製造前に、実機の実際の動作環境に適した状態でのテストをおこなうことができ、半導体集積回路１００の品質向上を図ることができる。
【００４３】
（設計支援装置のハードウェア構成）
まず、この発明の実施の形態３にかかる設計支援装置のハードウェア構成について説明する。図６は、この発明の実施の形態３にかかる設計支援装置のハードウェア構成を示すブロック図である。この設計支援装置は、上述した設計支援ツールがインストールされたコンピュータ装置である。
【００４４】
図６において、設計支援装置は、ＣＰＵ６０１と、ＲＯＭ６０２と、ＲＡＭ６０３と、ＨＤＤ（ハードディスクドライブ）６０４と、ＨＤ（ハードディスク）６０５と、ＦＤＤ（フレキシブルディスクドライブ）６０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）６０７と、ディスプレイ６０８と、Ｉ／Ｆ（インターフェース）６０９と、キーボード６１０と、マウス６１１と、スキャナ６１２と、プリンタ６１３と、を備えている。また、各構成部はバス６００によってそれぞれ接続されている。
【００４５】
ここで、ＣＰＵ６０１は、設計支援装置の全体の制御を司る。ＲＯＭ６０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ６０３は、ＣＰＵ６０１のワークエリアとして使用される。ＨＤＤ６０４は、ＣＰＵ６０１の制御にしたがってＨＤ６０５に対するデータのリード／ライトを制御する。ＨＤ６０５は、ＨＤＤ６０４の制御で書き込まれたデータを記憶する。
【００４６】
ＦＤＤ６０６は、ＣＰＵ６０１の制御にしたがってＦＤ６０７に対するデータのリード／ライトを制御する。ＦＤ６０７は、ＦＤＤ６０６の制御で書き込まれたデータを記憶したり、ＦＤ６０７に記憶されたデータを設計支援装置に読み取らせたりする。
【００４７】
また、着脱可能な記録媒体として、ＦＤ６０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ６０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ６０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４８】
Ｉ／Ｆ６０９は、通信回線を通じてインターネットなどのネットワーク６１４に接続され、このネットワーク６１４を介して他の装置に接続される。そして、Ｉ／Ｆ６０９は、ネットワーク６１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ６０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４９】
キーボード６１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス６１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５０】
スキャナ６１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ６１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ６１３は、画像データや文書データを印刷する。プリンタ６１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５１】
（設計支援装置の機能的構成）
つぎに、この発明の実施の形態３にかかる設計支援装置の機能的構成について説明する。図７は、この発明の実施の形態３にかかる設計支援装置の機能的構成を示すブロック図である。図７において、設計支援装置７００は、ネットリスト７１０と、取得部７０１と、置換部７０２と、実行部７０３と、出力部７０４と、を備えている。
【００５２】
まず、ネットリスト７１０は、テスト対象となる半導体集積回路１００のネットリスト７１０である。たとえば、図１に示した半導体集積回路１００のうち、ＦＦ１０３、比較回路１０５、およびエラー収集回路１０６を除いた回路のネットリスト７１０が記述されている。
【００５３】
また、取得部７０１は、半導体集積回路１００内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得する。ここで、出力元の回路素子とは、たとえば、図１に示したＦＦ１０１が相当し、第１の出力先の回路素子とは、たとえば、図１に示したＦＦ１０２が相当する。
【００５４】
また、第１の出力先の回路素子に関する情報とは、ネットリスト７１０内のＦＦ１０２を特定する記述データである。取得部７０１では、ネットリスト７１０を読み込み、タイミングが厳しいと思われるデータパスＤＰのＦＦ１０２をユーザが指定することで、ＦＦ１０２を特定する記述データを取得する。
【００５５】
また、置換部７０２は、第１の出力先の回路素子（ＦＦ１０２）に関する情報を、テスト回路１１０に関する情報に置換する。テスト回路１１０に関する情報とは、テスト回路１１０を構成する回路の記述データ（テスト回路記述データ）であり、ＦＦ１０２を特定する記述データと置換される。
【００５６】
実行部７０３は、テスト回路１１０に置換された半導体集積回路１００のネットリスト７１０を読み込んで、所定のテストを実行する。出力部７０４は、実行部７０３によるテスト結果を出力する。
【００５７】
なお、上述した取得部７０１、置換部７０２、実行部７０３、および出力部７０４は、具体的には、たとえば、図６に示したＲＯＭ６０２、ＲＡＭ６０３、ＨＤ６０５などの記録媒体に記録されたプログラムを、ＣＰＵ６０１が実行することによって、またはＩ／Ｆ６０９によって、その機能を実現する。
【００５８】
（設計支援処理手順）
つぎに、この発明の実施の形態３にかかる設計支援装置７００の設計支援処理について説明する。図８−１は、この発明の実施の形態３にかかる設計支援装置７００の設計支援処理手順を示すフローチャートである。
【００５９】
図８−１において、まず、取得部７０１により、半導体集積回路１００のネットリスト７１０が読み込まれるまで待ち受け（ステップＳ８０１：Ｎｏ）、ネットリスト７１０が読み込まれた場合（ステップＳ８０１：Ｙｅｓ）、半導体集積回路１００の回路素子（たとえば、ＦＦ１０２）が指定されるまで待ち受ける（ステップＳ８０２：Ｎｏ）。そして、回路素子が指定された場合（ステップＳ８０２：Ｙｅｓ）、ＦＦ１０２の記述データをテスト回路記述データに置換する（ステップＳ８０３）。
【００６０】
そして、テスト開始入力を待ち受け（ステップＳ８０４：Ｎｏ）、テスト開始入力があった場合（ステップＳ８０４：Ｙｅｓ）、実行部７０３により、置換されたネットリスト７１０を用いたテストを実行する（ステップＳ８０５）。そして、出力部７０４により、テスト結果を出力する（ステップＳ８０６）。
【００６１】
この実施の形態３によれば、ユーザが指定したＦＦをテスト回路１１０に置き換えた半導体集積回路１００のネットリスト７１０を用いてテストを実行することができるため、設計段階において、実機の実際の動作環境に適した状態でのテストをおこなうことができ、半導体集積回路１００の品質向上を図ることができる。
【００６２】
なお、上述した取得部７０１では、ユーザにより回路素子（たとえば、ＦＦ１０２）を指定することにより、ＦＦ１０２の記述データをネットリスト７１０から取得することとしているが、半導体集積回路１００に関するタイミング解析結果から自動的に取得することとしてもよい。
【００６３】
タイミング解析結果には、タイミング制約違反となるクリティカルパスの情報が列挙されるため、クリティカルパスの受け側の回路素子（たとえば、ＦＦ１０２）を検出することで、自動的にテスト回路記述データと置換されるテスト対象の回路素子を特定することができる。ここで、この場合の設計支援処理について説明する。
【００６４】
図８−２は、この発明の実施の形態３にかかる設計支援装置７００の他の設計支援処理手順を示すフローチャートである。図８−２において、まず、取得部７０１により、半導体集積回路１００のネットリスト７１０が読み込まれるまで待ち受け（ステップＳ８１１：Ｎｏ）、ネットリスト７１０が読み込まれた場合（ステップＳ８１１：Ｙｅｓ）、半導体集積回路１００に関するタイミング解析結果が取得されているか否かを判断する（ステップＳ８１２）。
【００６５】
タイミング解析結果が取得されていない場合は取得するまで待ち受ける（ステップＳ８１２：Ｎｏ）。一方、タイミング解析結果が取得されている場合（ステップＳ８１２：Ｙｅｓ）、テスト対象の回路素子（たとえば、ＦＦ１０２）を特定する（ステップＳ８１３）。そして、特定された回路素子（ＦＦ１０２）の記述データをテスト回路記述データに置換する（ステップＳ８１４）。
【００６６】
そして、テスト開始入力を待ち受け（ステップＳ８１５：Ｎｏ）、テスト開始入力があった場合（ステップＳ８１５：Ｙｅｓ）、実行部７０３により、置換されたネットリスト７１０を用いたテストを実行する（ステップＳ８１６）。そして、出力部７０４により、テスト結果を出力する（ステップＳ８１７）。この設計支援処理手順によれば、タイミング制約が厳しいパスの受け側のＦＦを自動的に検出することができるため、テストの効率化を図ることができる。
【００６７】
（実施の形態４）
つぎに、実施の形態４について説明する。実施の形態４は、テスト回路記述データに置換された場合のレイアウト処理に関する例である。図９は、この発明の実施の形態４にかかる設計支援装置７００の機能的構成を示すブロック図である。図９は、図７に示した実施の形態３の機能的構成（符号７０１〜７０４）に、レイアウト処理部９００を付加した構成である。
【００６８】
レイアウト処理部９００は、配置配線されたレイアウトを変更する処理を実行する。図１０は、レイアウト処理部９００によるレイアウト処理を示す説明図である。図１０において、（Ａ）はテスト回路記述データの置換前、（Ｂ）はテスト回路記述データの置換後、（Ｃ）はレイアウト変更後の説明図である。
【００６９】
図１０の（Ａ）において、符号１０００は、図１に示した半導体集積回路１００のレイアウトデータであり、符号１０１０は、図１に示した半導体集積回路１００のＦＦ１０１のレイアウトデータであり、符号１０２０は、図１に示した半導体集積回路１００のＦＦ１０２のレイアウトデータである。また、符号１００１は、図１に示したＦＦ１０２の近傍に配置される他のＦＦ（図１では不図示）のレイアウトデータである。
【００７０】
置換部７０２によりＦＦ１０２の記述データがテスト回路１１０の記述データ（テスト回路記述データ）に置換されると、レイアウト処理部９００により、図１０の（Ｂ）に示したようなレイアウトとなる。（Ｂ）中、符号１１００は、図１に示したテスト回路１１０のレイアウトデータである。ＦＦ１０２からテスト回路１１０に置換されると、（Ｂ）に示したように、テスト回路１１０のレイアウトデータ１１００とＦＦのレイアウトデータ１００１とが重複する。したがって、（Ｃ）に示したように、重複したレイアウトデータ１００１を、レイアウトデータ１１００と重複しないように、位置を変更する。
【００７１】
（設計支援処理手順）
つぎに、この発明の実施の形態４にかかる設計支援装置７００の設計支援処理について説明する。図１１は、この発明の実施の形態４にかかる設計支援装置７００の設計支援処理手順を示すフローチャートである。
【００７２】
図１１において、まず、取得部７０１により、半導体集積回路１００のネットリスト７１０が読み込まれるまで待ち受け（ステップＳ１１０１：Ｎｏ）、ネットリスト７１０が読み込まれた場合（ステップＳ１１０１：Ｙｅｓ）、半導体集積回路１００に関するタイミング解析結果が取得されているか否かを判断する（ステップＳ１１０２）。
【００７３】
タイミング解析結果が取得されていない場合は取得するまで待ち受ける（ステップＳ１１０２：Ｎｏ）。一方、タイミング解析結果が取得されている場合（ステップＳ１１０２：Ｙｅｓ）、テスト対象の回路素子（たとえば、ＦＦ１０２）を特定する（ステップＳ１１０３）。そして、特定された回路素子（ＦＦ１０２）の記述データをテスト回路記述データに置換する（ステップＳ１１０４）。
【００７４】
レイアウト処理部９００では、図１０において（Ａ）に示した状態から（Ｂ）に示した状態となるように、置換後におけるレイアウト処理を実行する（ステップＳ１１０５）。そして、テスト回路１１０のレイアウトデータ１１００が他のＦＦのレイアウトデータ１００１と重複有りかを判断する（ステップＳ１１０６）。重複しない場合（ステップＳ１１０６：Ｎｏ）、ステップＳ１１０８に移行する。
【００７５】
一方、重複する場合（ステップＳ１１０６：Ｙｅｓ）、テスト回路１１０のレイアウトデータ１１００と重複しないように、ＦＦのレイアウトデータ１００１を配置変更する（ステップＳ１１０７）。この配置変更は、ユーザの操作により実行してもよく、また、クリティカルパスが生じない程度に自動的に空いている領域に配置変更してもよい。配置変更後は、ステップＳ１１０６に戻る。
【００７６】
そして、ステップＳ１１０８において、テスト開始入力を待ち受け（ステップＳ１１０８：Ｎｏ）、テスト開始入力があった場合（ステップＳ１１０８：Ｙｅｓ）、実行部７０３により、置換されたネットリスト７１０を用いたテストを実行する（ステップＳ１１０９）。そして、出力部７０４により、テスト結果を出力する（ステップＳ１１１０）。この設計支援処理手順によれば、タイミング制約が厳しいパスの受け側のＦＦを自動的に検出することができるため、テストの効率化を図ることができる。
【００７７】
この実施の形態４によれば、テスト回路１１０のレイアウトデータ１１００と重なっているＦＦのレイアウトデータ１００１の配置変更ができるため、レイアウト処理時またはレイアウト処理後においても、実機の実際の動作環境に適した状態でのテストをおこなうことができ、半導体集積回路１００の品質向上を図ることができる。
【００７８】
（実施の形態５）
つぎに、実施の形態５について説明する。実施の形態５は、実施の形態３および実施の形態４において、テストパタンを生成する例である。テストパタンとは、半導体集積回路１００のテストに必要なテストプログラムの識別情報の集合である。このテストパタンを生成することにより、テストに最小限必要なアプリケーションを特定することができ、テスト期間の短縮化を図ることができる。なお、実施の形態５のハードウェア構成は、実施の形態３に示したハードウェア構成（図６）と同一であるため、その説明を省略する。
【００７９】
図１２は、この発明の実施の形態５にかかる設計支援装置１２００の機能的構成を示すブロック図である。図１２において、設計支援装置１２００は、取得部１２０１と、クリティカルパス検出部１２０２と、信号セット検出部１２０３と、実行部１２０４と、生成部１２０５と、から構成されている。取得部１２０１は、半導体集積回路１００に関するタイミング解析結果を取得する。
【００８０】
クリティカルパス検出部１２０２は、タイミング解析結果からクリティカルパスを検出する。信号セット検出部１２０３は、クリティカルパスがデータ信号を伝達する信号セットを検出する。つぎに、信号セットの検出例を具体的に説明する。図１３は、半導体集積回路１００を示す回路図である。図１３において、データパスＤＰは、クリティカルパス検出部１２０２に検出されたクリティカルパスである。
【００８１】
図１３では、データパスＤＰ上のバッファ１１１およびバッファ１１２の間にＡＮＤ回路１３０１が設けられ、データパスＤＰ上のバッファ１１２およびバッファ１１３の間にＡＮＤ回路１３０２が設けられている。
【００８２】
ＡＮＤ回路１３０１，１３０２は、入力端子Ａからデータ信号ｑ１を取り込み出力端子Ｘから出力する。また、入力端子Ｂから取り込まれる信号の有無により、出力端子Ｘからのデータ信号ｑ１の出力を制御する。ここで、クリティカルパスであるデータパスＤＰがデータ信号ｑ１がＦＦ１０１からＦＦ１０２に伝達される条件としては、ＡＮＤ回路１３０１，１３０２の入力端子Ｂがともに『１』であることが要求される。このＡＮＤ回路１３０１，１３０２の入力端子Ｂの信号値が信号セットとなる。
【００８３】
また、実行部１２０４は、テスト回路１１０に置換された半導体集積回路１００のネットリスト７１０を読み込んで、複数種類のテストプログラムを実行する。そして、テスト回路１１０への信号伝達を可能にしたテストプログラムの識別情報を記憶する。
【００８４】
また、生成部１２０５は、最適化処理部１２０６および出力部１２０７を備え、テストパタンを生成する。最適化処理部１２０６は、実行部１２０４によるテストによって得られた、テスト回路１１０への信号伝達を可能にしたテストプログラムの識別情報を用いて最適化処理をおこなう。ここで、最適化処理とは、テストプログラムの集合と、信号セットの集合とを、Ｂｉｐａｒｔｉｔｅのグラフ問題として最適化する。
【００８５】
図１４は、Ｂｉｐａｒｔｉｔｅグラフを示す説明図である。図１４において、テストプログラムＴ１〜Ｔ６と信号セットＳ１〜Ｓ６との間で、Ｂｉｐａｒｔｉｔｅのグラフ問題として最適化する。たとえば、テストプログラムＴ１は、信号セットＳ１，Ｓ２，Ｓ３により、それぞれ対応するテスト回路１１０への伝達を可能としている。
【００８６】
また、テストプログラムＴ２は、信号セットＳ１，Ｓ５により、それぞれ対応するテスト回路１１０への伝達を可能としている。テストプログラムＴ３は、信号セットＳ４により、それぞれ対応するテスト回路１１０への伝達を可能としている。テストプログラムＴ４は、信号セットＳ２，Ｓ６により、それぞれ対応するテスト回路１１０への伝達を可能としている。テストプログラムＴ５は、信号セットＳ４，Ｓ５により、それぞれ対応するテスト回路１１０への伝達を可能としている。テストプログラムＴ６は、信号セットＳ６により、対応するテスト回路１１０への伝達を可能としている。
【００８７】
図１４に示したグラフでは、テストプログラムＴ１，Ｔ５，Ｔ６のみ実行すれば、すべての信号セットＳ１〜Ｓ６をカバーできる。出力部１２０７は、テストパタンとして、このテストプログラムＴ１，Ｔ５，Ｔ６の識別情報を出力する。
【００８８】
なお、上述した取得部１２０１、クリティカルパス検出部１２０２、信号セット検出部１２０３、実行部１２０４、生成部１２０５は、具体的には、たとえば、図６に示したＲＯＭ６０２、ＲＡＭ６０３、ＨＤ６０５などの記録媒体に記録されたプログラムを、ＣＰＵ６０１が実行することによって、またはＩ／Ｆ６０９によって、その機能を実現する。
【００８９】
（設計支援処理手順）
つぎに、この発明の実施の形態５にかかる設計支援装置１２００の設計支援処理について説明する。図１５は、この発明の実施の形態５にかかる設計支援装置１２００の設計支援処理手順を示すフローチャートである。図１５において、まず、半導体集積回路１００に関するタイミング解析結果が取得されるまで待ち受け（ステップＳ１５０１：Ｎｏ）、タイミング解析結果が取得された場合（ステップＳ１５０１：Ｙｅｓ）、クリティカルパス検出部１２０２により、半導体集積回路１００内のクリティカルパスを検出する（ステップＳ１５０２）。
【００９０】
そして、信号セット検出部１２０３により、クリティカルパスがデータ信号を伝達するデータパス上の信号セットを検出する（ステップＳ１５０３）。つぎに、ｉ＝１とし（ステップＳ１５０４）、テスト回路記述データに置換された半導体集積回路１００のネットリスト７１０を用いて、テストプログラムＴｉを実行する（ステップＳ１５０５）。そして、テスト回路１１０にデータ信号を伝達させる信号セットを記録する（ステップＳ１５０６）。ｉをインクリメントし（ステップＳ１５０７）、ｉ＞ｎであるか否かを判断する（ステップＳ１５０８）。
【００９１】
ｉ＞ｎでない場合（ステップＳ１５０８：Ｎｏ）、ステップＳ１５０５に戻る。一方、ｉ＞ｎである場合（ステップＳ１５０８：Ｙｅｓ）、最適化処理部１２０６により図１４に示したような最適化処理を実行する（ステップＳ１５０９）。そして、最適化処理の結果であるテストパタンを出力部１２０７により出力する（ステップＳ１５１０）。
【００９２】
この実施の形態５では、最小限必要なテストプログラムＴ１，Ｔ５，Ｔ６を特定できるため、実際のテストでは、テストプログラムＴ２〜Ｔ４を実行しなくてもよい。このように、あらかじめテストに不要なアプリケーションを特定することができ、テスト時間の短縮化を図ることができる。
【００９３】
（実施の形態６）
つぎに、実施の形態６について説明する。実施の形態６は、実施の形態３および実施の形態４において、電源電圧の最適化処理をおこなう例である。この最適化処理により、実際に必要な電源電圧を確認することができる。なお、実施の形態６のハードウェア構成は、実施の形態３に示したハードウェア構成（図６）と同一であるため、その説明を省略する。
【００９４】
図１６は、この発明の実施の形態６にかかる設計支援装置の機能的構成を示すブロック図である。図１６において、設計支援装置１６００は、取得部１６０１と、設定部１６０２と、実行部１６０３と、判断部１６０４と、決定部１６０５と、から構成されている。取得部１６０１は、テスト回路１１０の記述データ（テスト回路記述データ）に置換された半導体集積回路１００のネットリスト７１０を取得する。
【００９５】
設定部１６０２は、半導体集積回路１００の電源電圧を設定する。具体的には、初期の電源電圧の設定、増減変更をおこなう。設定部１６０２による設定は、ユーザの操作によっておこなってもよく、所定量の増減変更を自動的に実行することとしてもよい。
【００９６】
また、実行部１６０３は、テスト回路１１０に置換された半導体集積回路１００のネットリスト７１０を読み込んで、所定のテストプログラムを実行する。また、判断部１６０４は、実行部１６０３の実行結果に基づき、設定部１６０２で設定された電源電圧で動作するか否かを判断する。この場合、設定部１６０２は、この判断結果により電源電圧を増減する。そして、実行部１６０３では、増減変更された電源電圧で再度テストプログラムを実行する。また、決定部１６０５は、実行部１６０３の実行結果により、半導体集積回路１００の最適な電源電圧を決定する。
【００９７】
なお、上述した取得部１６０１、設定部１６０２、実行部１６０３、判断部１６０４、および決定部１６０５は、具体的には、たとえば、図６に示したＲＯＭ６０２、ＲＡＭ６０３、ＨＤ６０５などの記録媒体に記録されたプログラムを、ＣＰＵ６０１が実行することによって、またはＩ／Ｆ６０９によって、その機能を実現する。
【００９８】
（設計支援処理手順）
つぎに、この発明の実施の形態６にかかる設計支援装置１６００の設計支援処理について説明する。図１７は、この発明の実施の形態６にかかる設計支援装置１６００の設計支援処理手順を示すフローチャートである。図１７において、取得部１６０１により、テスト回路１１０の記述データ（テスト回路記述データ）に置換された半導体集積回路１００のネットリスト７１０が取得されるまで待ち受ける（ステップＳ１７０１：Ｎｏ）。
【００９９】
ネットリスト７１０が取得された場合（ステップＳ１７０１：Ｙｅｓ）、設定部１６０２により、初期の電源電圧Ｖを設定する（ステップＳ１７０２）。そして、実行部１６０３によりテストプログラムを実行し（ステップＳ１７０３）、設定された電源電圧Ｖで半導体集積回路１００が動作するかを判断する（ステップＳ１７０４）。動作する場合（ステップＳ１７０４：Ｙｅｓ）、所定電圧ΔＶ分、電源電圧Ｖを下げて（ステップＳ１７０５）、実行部１６０３により再度テストプログラムを実行する（ステップＳ１７０６）。
【０１００】
一方、動作しない場合（ステップＳ１７０４：Ｎｏ）、所定電圧ΔＶ分、電源電圧Ｖを上げて、実行部１６０３により再度テストプログラムを実行する（ステップＳ１７０６）。テストプログラムの再実行（ステップＳ１７０６）後、所定電圧ΔＶ分、増減された電源電圧Ｖで半導体集積回路１００が動作するか否かを判断する（ステップＳ１７０７）。
【０１０１】
動作する場合（ステップＳ１７０７：Ｙｅｓ）、ステップＳ１７０５に戻る。一方、動作しない場合（ステップＳ１７０７：Ｎｏ）、所定電圧ΔＶ分、電源電圧Ｖを上げて（ステップＳ１７０８）、その電源電圧Ｖを、半導体集積回路１００の最適な電源電圧として決定する。
【０１０２】
この実施の形態６によれば、半導体集積回路１００の実際の電源電圧を最適な値、たとえば、最低限動作に必要な電源電圧に設定することができるため、消費電力の低減を図ることができる。また、実施の形態６では、電源電圧を例に挙げて説明したが、その他、各種動作環境に関するパラメータ、たとえば、動作温度なども最適化をすることができる。
【０１０３】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１０４】
（付記１）半導体集積回路内においてデータ信号の出力元の回路素子から前記データ信号を取り込む第１の出力先の回路素子と、
前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、
前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、
前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、
前記比較回路によって比較された比較結果を収集する収集回路と、
を備えることを特徴とするテスト回路。
【０１０５】
（付記２）前記遅延素子は、前記第２の出力先の回路素子へのクロック信号の出力が切替可能に構成されていることを特徴とする付記１に記載のテスト回路。
【０１０６】
（付記３）付記１または２に記載のテスト回路を備えることを特徴とする半導体集積回路。
【０１０７】
（付記４）半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得する取得手段と、
前記取得手段によって取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集する収集回路と、を備えるテスト回路に関する情報に置換する置換手段と、
を備えることを特徴とする設計支援装置。
【０１０８】
（付記５）前記遅延素子は、前記第２の出力先の回路素子へのクロック信号の出力が切替可能に構成されていることを特徴とする付記４に記載の設計支援装置。
【０１０９】
（付記６）前記取得手段は、
前記半導体集積回路に関するタイミング解析結果に基づいて、前記出力元の回路素子に関する情報を取得することを特徴とする付記４または５に記載の設計支援装置。
【０１１０】
（付記７）前記置換手段は、
前記半導体集積回路のレイアウト結果に基づいて、前記取得手段によって取得された第１の出力先の回路素子に関する情報を、前記テスト回路に関する情報に置換することを特徴とする付記４〜６のいずれか一つに記載の設計支援装置。
【０１１１】
（付記８）前記半導体集積回路に関するタイミング解析結果から前記半導体集積回路内のクリティカルパスを検出するクリティカルパス検出手段と、
前記クリティカルパス検出手段によって検出されたクリティカルパスにデータ信号を伝達させるための信号を検出する信号検出手段と、
前記置換手段によって置換された前記半導体集積回路に関する情報に基づいて、複数種類のテストプログラムにより、前記半導体集積回路に関するテストを実行する実行手段と、
前記信号検出手段によって検出された検出結果と、前記実行手段によって実行された実行結果と、に基づいて、前記複数種類のテストプログラムの組み合わせの中から、テストプログラム数が最小となる組み合わせを生成する生成手段と、
を備えることを特徴とする付記４〜７のいずれか一つに記載の設計支援装置。
【０１１２】
（付記９）前記置換手段によって置換された前記半導体集積回路に関する情報に基づいて、前記半導体集積回路の電源電圧を設定する設定手段と、
前記置換手段によって置換された前記半導体集積回路に関する情報に基づいて、所定のテストプログラムにより、前記半導体集積回路に関するテストを実行する実行手段と、
前記実行手段によって実行された実行結果に基づいて、前記半導体集積回路が前記設定手段によって設定された電源電圧で動作するか否かを判断する判断手段と、
前記判断手段によって判断された判断結果に基づいて、前記半導体集積回路が動作する最も低い電源電圧を決定する決定手段と、
を備えることを特徴とする付記４〜７のいずれか一つに記載の設計支援装置。
【０１１３】
（付記１０）半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得する取得工程と、
前記取得工程によって取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集する収集回路と、を備えるテスト回路に関する情報に置換する置換工程と、
を含んだことを特徴とする設計支援方法。
【０１１４】
（付記１１）半導体集積回路に関する情報から、前記半導体集積回路内の出力元の回路素子の回路素子からのデータ信号を取り込む第１の出力先の回路素子に関する情報を取得させる取得工程と、
前記取得工程によって取得された第１の出力先の回路素子に関する情報を、当該第１の出力先の回路素子と、前記出力元の回路素子から前記データ信号を取り込む第２の出力先の回路素子と、前記第２の出力先の回路素子の動作タイミングを前記第１の出力先の回路素子の動作タイミングよりも遅延させる遅延素子と、前記第１の出力先の回路素子に取り込まれた前記データ信号の値と前記第２の出力先の回路素子に取り込まれた前記データ信号の値とを比較する比較回路と、前記比較回路によって比較された比較結果を収集する収集回路と、を備えるテスト回路に関する情報に置換させる置換工程と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【０１１５】
（付記１２）付記１１に記載の設計支援プログラムを記録したコンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【０１１６】
以上のように、本発明にかかるテスト回路、半導体集積回路、設計支援装置、設計支援方法、設計支援プログラム、および記録媒体は、半導体集積回路のタイミングテストに有用である。
【図面の簡単な説明】
【０１１７】
【図１】この発明の実施の形態１にかかる半導体集積回路の一例を示す回路図である。
【図２−１】図１に示したテスト回路の詳細な回路構成の一例を示す説明図（その１）である。
【図２−２】図１に示したテスト回路の詳細な回路構成の一例を示す説明図（その２）である。
【図３】図１に示した半導体集積回路のタイミングチャートである。
【図４】この発明の実施の形態２にかかる半導体集積回路の一例を示す回路図である。
【図５−１】図４に示したテスト回路の詳細な回路構成の一例を示す説明図（その１）である。
【図５−２】図４に示したテスト回路の詳細な回路構成の一例を示す説明図（その２）である。
【図６】この発明の実施の形態３にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図７】この発明の実施の形態３にかかる設計支援装置の機能的構成を示すブロック図である。
【図８−１】この発明の実施の形態３にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図８−２】この発明の実施の形態３にかかる設計支援装置の他の設計支援処理手順を示すフローチャートである。
【図９】この発明の実施の形態４にかかる設計支援装置の機能的構成を示すブロック図である。
【図１０】この発明の実施の形態４にかかるレイアウト処理部によるレイアウト処理を示す説明図である。
【図１１】この発明の実施の形態４にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図１２】この発明の実施の形態５にかかる設計支援装置の機能的構成を示すブロック図である。
【図１３】この発明の実施の形態５にかかる半導体集積回路を示す回路図である。
【図１４】Ｂｉｐａｒｔｉｔｅグラフを示す説明図である。
【図１５】この発明の実施の形態５にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図１６】この発明の実施の形態６にかかる設計支援装置の機能的構成を示すブロック図である。
【図１７】この発明の実施の形態６にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【符号の説明】
【０１１８】
１００  半導体集積回路
１０４  バッファ（遅延素子）
１０５  比較回路（比較部）
１０６  エラー収集回路（収集部）
１０７  ゲーティング回路（遅延素子）
１１０  テスト回路
７００，１２００，１６００  設計支援装置
７０１，１２０１，１６０１  取得部
７０２  置換部
７０３，１２０４，１６０３  実行部
７０４  出力部
９００  レイアウト処理部
１２０２  クリティカルパス検出部
１２０３  信号セット検出部
１２０５  生成部
１６０２  設定部
１６０４  判断部
１６０５  決定部
【図１】
0004549280.tif 000002
【図２−１】
0004549280.tif 000003
【図２−２】
0004549280.tif 000004
【図３】
0004549280.tif 000005
【図４】
0004549280.tif 000006
【図５−１】
0004549280.tif 000007
【図５−２】
0004549280.tif 000008
【図６】
0004549280.tif 000009
【図７】
0004549280.tif 000010
【図８−１】
0004549280.tif 000011
【図８−２】
0004549280.tif 000012
【図９】
0004549280.tif 000013
【図１０】
0004549280.tif 000014
【図１１】
0004549280.tif 000015
【図１２】
0004549280.tif 000016
【図１３】
0004549280.tif 000017
【図１４】
0004549280.tif 000018
【図１５】
0004549280.tif 000019
【図１６】
0004549280.tif 000020
【図１７】
0004549280.tif 000021