"スキャンテストを行うためのスキャンチェーンを形成するフリップフロップを含む回路データに基づいて、スキャンシフト時にシフトレジスタを形成するようにスキャンフリップフロップを示すセル間を接続するシフトパスを生成するステップと、前記スキャンフリップフロップを示すセル間の信号伝達の制約条件を満たすようにリピータセルを前記シフトパスに挿入するステップと、前記スキャンチェーンに含まれる前記スキャンフリップフロップを示すセル及び前記リピータセルの間のセル間遅延時間を求めるステップと、前記リピータセルをフリップフロップを示すセルに置換して前記シフトパスを分割したときのシフトパスの遅延時間を示すシフトパス遅延時間を算出するステップと、前記シフトパスを分割したときの、前記スキャンチェーンにテストデータをシフトさせて供給するスキャンシフト時間を算出するステップと、前記スキャンシフト時間が最短になる前記シフトパスの分割位置を求めるステップと、前記シフトパスの分割位置の前記リピータセルを前記フリップフロップを示すセルに置換した回路データを生成するステップとを具備するスキャンテスト回路設計方法。前記リピータセルはバッファ回路である請求項1に記載のスキャンテスト回路設計方法。前記セル間遅延時間の最大値を示す最大パス遅延値を求めるステップをさらに具備し、前記シフトパス遅延時間を算出するステップは、前記スキャンフリップフロップ間の前記シフトパスの遅延時間が前記最大パス遅延値を超えない前記シフトパスを対象から除外して前記分割セル間遅延時間を算出する請求項1または請求項2に記載のスキャンテスト回路設計方法。回路データを生成するステップは、前記シフトパスの分割位置の前記リピータセルを前記スキャンテストのキャプチャ動作時に固定論理を取り込むスキャンフリップフロップを示すセルに置換する回路データを生成する請求項1から請求項3のいずれかに記載のスキャンテスト回路設計方法。回路データを生成するステップは、前記シフトパスの分割位置の前記所定のセルを前記スキャンテストのキャプチャ動作時に前記組み合わせ回路からデータを取り込まずにデータを保持するフリップフロップを示すセルに置換する回路データを生成する請求項1から請求項3のいずれかに記載のスキャンテスト回路設計方法。前記スキャンシフト時間は、前記シフトパスの遅延値の最大値とシフト段数とを乗じて積算される請求項1から請求項5のいずれかに記載のスキャンテスト回路設計方法。前記シフトパス遅延時間を算出するステップは、前記スキャンフリップフロップを示すセル間毎に、置換する前記リピータセルの数に関連付けて前記シフトパスを分割したときの各シフトパスにおける遅延時間を求めるステップと、前記置換する前記リピータセルの数が同数である前記スキャンフリップフロップを示すセル間の遅延時間を、前記リピータセルの置換する組み合わせによって算出される前記各シフトパスにおける遅延時間のうちの最長となる遅延時間とし、前記スキャンフリップフロップを示すセル間における前記リピータセルの数を置換したときの最小シフト動作レートとして求めるステップとを備える請求項1から請求項6のいずれかに記載のスキャンテスト回路設計方法。請求項1から請求項7のいずれかに記載のスキャンテスト回路設計方法によって生成される半導体集積回路。スキャンテストを行うときにスキャンチェーンを形成する複数のスキャンフリップフロップと、前記スキャンチェーンからテストデータを入力し、テスト結果を前記スキャンチェーンに出力する組み合わせ回路とを具備し、前記スキャンチェーンは、組み合わせ回路からキャプチャ時にデータを取り込むスキャンフリップフロップと、前記スキャンフリップフロップ間のシフトパスの信号伝達の制約条件を満たすように配置されたバッファと、キャプチャ時に組み合わせ回路からデータを取り込まずに所定データを取り込むダミースキャンフリップフロップとを備える請求項8に記載の半導体集積回路。請求項1から請求項7のいずれかに記載のスキャンテスト回路設計方法をコンピュータに実行させるプログラム。本発明は、スキャンテスト時間を短縮する半導体集積回路、スキャンテスト回路設計方法を提供する。以下に、[発明を実施するための形態]で使用される番号符号を用いて、課題を解決するための手段を説明する。これらの番号符号は、[特許請求の範囲]の記載と[発明を実施するための形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。本発明の観点では、スキャンテスト回路設計方法は、スキャンテストを行うためのスキャンチェーンを形成するフリップフロップを含む回路データに基づいて、スキャンシフト時にシフトレジスタを形成するようにスキャンフリップフロップを示すセルF1~F6間を接続するシフトパスを生成するステップと、スキャンフリップフロップを示すセル間の信号伝達の制約条件を満たすようにリピータセルB1~B9をシフトパスに挿入するステップと、スキャンチェーンに含まれるスキャンフリップフロップを示すセルF1~F6及びリピータセルB1~B9の間のセル間遅延時間を求めるステップと、リピータセルB1~B9をフリップフロップを示すセルに置換してシフトパスを分割したときのシフトパスの遅延時間を示すシフトパス遅延時間を算出するステップと、シフトパスを分割したときの、スキャンチェーンにテストデータをシフトさせて供給するスキャンシフト時間を算出するステップと、スキャンシフト時間が最短になるシフトパスの分割位置を求めるステップと、シフトパスの分割位置のリピータセルB2、B4、B7をフリップフロップを示すセルFB2、FB4、FB7に置換した回路データを生成するステップとを具備する。本発明の他の観点では、半導体集積回路は、上記のスキャンテスト回路設計方法により設計される半導体集積回路であり、スキャンテストを行うときにスキャンチェーンを形成する複数のスキャンフリップフロップF1~F6と、スキャンチェーンからテストデータを入力し、テスト結果を前記スキャンチェーンに出力する組み合わせ回路C10とを具備する。このスキャンチェーンは、組み合わせ回路C10からキャプチャ時にデータを取り込むスキャンフリップフロップF1~F6と、スキャンフリップフロップ間のシフトパスの信号伝達の制約条件を満たすように配置されたバッファB1、B3~B4、B6、B8~B9と、キャプチャ時に組み合わせ回路C10からデータを取り込まずに所定データを取り込むダミーフリップフロップB2、B4、B7とを備える。本発明によれば、スキャンテスト時間の短縮ができる半導体集積回路、スキャンテスト回路設計方法を提供することができる。図面を参照して本発明の実施の形態を説明する。図1に、本発明の実施の形態に係る半導体集積回路装置の設計システムの概略構成を示す。半導体集積回路装置の設計システムは、設計プログラムを含む設計ツール12と、設計ツール12に入力される回路データなどの入力データ11と、設計ツール12により生成される出力データ13と、セルライブラリ14と、対応リスト15とを具備する。設計ツール12は、セルライブラリ14および対応リスト15を参照して入力データ11から出力データ13を生成する。半導体集積回路装置の設計システムは、図2に例示されるコンピュータ上で動作するソフトウェアによって実現される。設計システムを搭載するコンピュータは、CPU22と、記憶部23と、入出力部21とを具備する。設計システムにおける入力データ11、出力データ13は、設計ツール12、セルライブラリ14、対応リスト15と共に記憶部23に記憶される。CPU22は、記憶部23に格納される設計ツール12を読み出して実行し、記憶部23に格納されるセルライブラリ14、対応リスト15を参照して入力データ11を処理し、処理された結果を示す出力データ13を記憶部23に格納する。入出力部21は、設計ツール12に対するパラメータを入力し、結果を表示し、外部の補助記憶装置に格納する。図3に、本発明の実施の形態に係る設計システムにおける処理手順が示される。入力データであるセル配置後のレイアウトデータが記憶部23に格納されているステップS17。ここでは、レイアウトデータは、タイミングドリブンレイアウトTDL後のデータとする。このセル配置後のレイアウトデータは、図4に示されるように、ユーザー論理の回路機能ブロック群を示す組み合わせ回路C10と、フリップフロップF1からフリップフロップF6に至るスキャンチェーンとを含む回路を示す。このスキャンチェーンには、スキャンフリップフロップF1~F6と、バッファB1~B9とが含まれる。フリップフロップF1~F6は、組み合わせ回路C10にテストデータを供給し接続は図示せず、テスト結果をデータ端子から取り込む。バッファB1~B9は、リピータセルであり、タイミングやレイアウト等のスキャンフリップフロップ間の信号伝達の制約条件を満たすようにスキャンシフトパス内に挿入されている。すなわち、フリップフロップF1とフリップフロップF2との間に、バッファB1~B3が順に接続され、フリップフロップF2とフリップフロップF3との間に、バッファB4~B7が順に接続される。フリップフロップF3とフリップフロップF4とは、バッファB8を介して接続され、フリップフロップF4とフリップフロップF5とは、バッファB9を介して接続される。フリップフロップF5とフリップフロップF4とは、バッファを介さずに接続される。この配置後のレイアウトデータに基づいて、スキャンシフトパスの遅延時間情報が抽出されるステップS11。すなわち、スキャンチェーンの回路構成を抽出し、スキャンシフトパス間に接続される各セルについて、フリップフロップフリップフロップ間、フリップフロップバッファ間、バッファバッファ間、バッファフリップフロップ間の遅延情報がそれぞれ抽出される。ここでは、図4に示されるように、フリップフロップF1からバッファB1までの遅延時間は5ns、バッファB1からバッファB2までの遅延時間およびバッファB2からバッファB3までの遅延時間は4ns、バッファB3からフリップフロップF2までの遅延時間は2nsと抽出される。フリップフロップF2からバッファB4までの遅延時間は8ns、バッファB4からバッファB5までの遅延時間は2ns、バッファB5からバッファB6までの遅延時間は3ns、バッファB6からバッファB7までの遅延時間は4ns、バッファB7からフリップフロップF3までの遅延時間は8nsと抽出される。フリップフロップF3からバッファB8までの遅延時間は5ns、バッファB8からフリップフロップF4までの遅延時間は4nsと抽出される。フリップフロップF4からバッファB9までの遅延時間およびバッファB9からフリップフロップF5までの遅延時間は5nsと抽出される。フリップフロップF5からフリップフロップF6までの遅延時間は6nsと抽出される。また、各スキャンシフトパス間の遅延時間のうちの最大値を示す最大パス遅延値が抽出される。最大パス遅延値は、回路のスキャンシフトパスのシフト動作レートの最適化の限界値を示すことになる。図4に示されるスキャンチェーンの場合、フリップフロップF2バッファB4間と、バッファB7フリップフロップF3間のパス遅延時間が共に8nsで最大パス遅延値となる。各セル間の遅延情報が抽出されると、その遅延情報に基づいて、各スキャンシフトパス間において、フリップフロップに置換されるバッファの組み合わせ毎に、パス遅延が順次計算されるステップS12。ここでは、フリップフロップ間毎に区切って計算される。フリップフロップ間において、置換なし0段、1個のバッファが置換されるときのバッファの組み合わせ1段、2個のバッファが置換されるときのバッファの組み合わせ2段というように、全てのバッファがフリップフロップに置換されるまで順に、置換後の遅延時間が算出される。フリップフロップF1-F2間の処理を例に具体的に説明する。フリップフロップF1の出力は、バッファB1、B2、B3を介してフリップフロップF2に接続される。バッファB1、B2、B3を置換せずに、そのまま動作させると、スキャンシフトの動作レートは、フリップフロップF1-F2間の遅延である15nsとなる図5A-0段。バッファB1をフリップフロップFB1に置換すると、シフト段数は1段増加し、シフトパスはフリップフロップF1-FB1間と、フリップフロップFB1-F2間とに分割される。フリップフロップFB1の前段F1-FB1間の遅延時間は5nsとなり、フリップフロップFB1の後段FB1F2間の遅延時間は10nsとなる<B1>=5、10。スキャンシフト動作は、大きな遅延に合わせて動作する必要があるため、フリップフロップF1-F2間のバッファB1をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、10nsとなる。バッファB2をフリップフロップFB2に置換すると、シフト段数は1段増加し、シフトパスはフリップフロップF1-FB2間と、フリップフロップFB2-F2間とに分割される。フリップフロップFB2の前段F1-FB2間の遅延時間は9nsとなり、フリップフロップFB2の後段FB2F2間の遅延時間は6nsとなる<B2>=9、6。したがって、フリップフロップF1-F2間のバッファB2をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、9nsとなる。バッファB3をフリップフロップFB3に置換すると、シフト段数は1段増加し、シフトパスはフリップフロップF1-FB3間と、フリップフロップFB3-F2間とに分割される。フリップフロップFB3の前段F1-FB3間の遅延時間は13nsとなり、フリップフロップFB3の後段FB3F2間の遅延時間は2nsとなる<B3>=13、2。したがって、フリップフロップF1-F2間のバッファB3をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、13nsとなる。それぞれのバッファをフリップフロップ化したときの最大の遅延値である可能動作レート10ns、9ns、13nsのうちの最小値である9nsが、シフト段数を1段増加するときのF1-F2間の最小シフト動作レートとして抽出される。この最小シフト動作レート9nsは、フリップフロップF1~F2間で、シフトパスを途中で1段区切るときに、最もシフト動作レートを短縮可能な値である。バッファB1、B2をフリップフロップFB1、FB2に置換すると、シフト段数は2段増加し、シフトパスはフリップフロップF1-FB1間、FB1-FB2間、FB2-F2間に分割される。フリップフロップFB1の前段F1-FB1間の遅延時間は5nsとなり、フリップフロップFB1の後段かつフリップフロップFB2の前段FB1-FB2間の遅延時間は4nsとなり、フリップフロップFB2の後段FB2F2間の遅延時間は6nsとなる<B1,B2>=5、4、6。したがって、フリップフロップF1-F2間のバッファB1、B2をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、6nsとなる。バッファB1、B3をフリップフロップFB1、FB3に置換すると、シフト段数は2段増加し、シフトパスはフリップフロップF1-FB1間、FB1-FB3間、FB3-F2間に分割される。フリップフロップFB1の前段F1-FB1間の遅延時間は5nsとなり、フリップフロップFB1の後段かつフリップフロップFB3の前段FB1-FB3間の遅延時間は8nsとなり、フリップフロップFB3の後段FB3F2間の遅延時間は2nsとなる<B1,B3>=5、8、2。したがって、フリップフロップF1-F2間のバッファB1、B3をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、8nsとなる。バッファB2、B3フリップフロップFB2、FB3に置換すると、シフト段数は2段増加し、シフトパスはフリップフロップF1-FB2間、FB2-FB3間、FB3-F2間に分割される。フリップフロップFB2の前段F1-FB2間の遅延時間は9nsとなり、フリップフロップFB2の後段かつフリップフロップFB3の前段FB2-FB3間の遅延時間は4nsとなり、フリップフロップFB3の後段FB3F2間の遅延時間は2nsとなる<B2、B3>=9、4、2。したがって、フリップフロップF1-F2間のバッファB2、B3をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、9nsとなる。それぞれのバッファをフリップフロップ化したときの最大の遅延値である可能動作レート6ns、8ns、9nsのうちの最小値である6nsが、シフト段数を2段増加するときのF1-F2間の最小シフト動作レートとして抽出される。この最小シフト動作レート6nsは、フリップフロップF1~F2間で、シフトパスを途中で2段に区切るときに、最もシフト動作レートを短縮可能な値である。バッファB1、B2、B3をフリップフロップFB1、FB2、FB3に置換すると、シフト段数は3段増加し、シフトパスはフリップフロップF1-FB1間、FB1-FB2間、FB2-FB3間、FB3-F2間に分割される。フリップフロップFB1の前段F1-FB1間の遅延時間は5nsとなり、フリップフロップFB1の後段かつフリップフロップFB2の前段FB1-FB2間の遅延時間は4nsとなり、フリップフロップFB2の後段かつフリップフロップFB3の前段FB2-FB3間の遅延時間は4nsとなり、フリップフロップFB3の後段FB3-F2間の遅延時間は2nsとなる<B1、B2、B3>=5、4、4、2。したがって、フリップフロップF1-F2間のバッファB1、B2、B3をフリップフロップに置換したときのスキャンシフトの動作レート可能動作レートは、5nsとなる。シフト段数を3段増加する場合は、1通りの組み合わせしかないため、シフト段数を3段増加するときのF1-F2間の最小シフト動作レートは、5nsとなる。この最小シフト動作レート5nsは、フリップフロップF1~F2間で、シフトパスを途中で3段に区切るときに、最もシフト動作レートを短縮可能な値である。次に、スキャンテスト時のシフト動作は、遅延の大きいクリティカルなシフトパスの遅延値で動作する必要があるため、上記のようにバッファをフリップフロップ化して得られる遅延時間を示す組み合わせ情報から段数毎に最小のシフト動作レートを算出する。最小シフト動作レートは、増加シフト段数毎に、可能動作レートの最小値を求めるとよい。したがって、最小動作レートは、シフト段数が1段増加の場合には9ns、シフト段数が2段増加の場合には6ns、シフト段数が3段増加の場合には5nsとなる。以上のように、全てのシフト段数の組み合わせについて行い、各シフト段数における最小シフト動作レートを算出する。図5B~5Eに示されるように、各スキャンフリップフロップ間で同様の処理が行われ、各最小シフト動作レートが算出される。ここでは、処理量削減のためにフリップフロップ間毎に区切って処理するように説明したが、全区間を対象にバッファの置換位置の組み合わせを求めてもよい。算出された結果は、図5A~図5Eに示されるように、フリップフロップに置換するバッファを示すFF化位置に対応して、シフトパス遅延の組み合わせ、すなわち、新しいシフトパス遅延が求められる。新しいシフトパスにおける最大の遅延を有するシフトパスがそのシフトパスの動作速度を制限することになり、その動作速度を示すそれぞれの新しいシフトパスにおける可能動作レートが求められる。フリップフロップ間の挿入段数毎に可能動作レートの最小値が求められ、この最小値が、そのフリップフロップ間において挿入段数分のバッファがフリップフロップに置換されたときの最小シフト動作レートとなる。したがって、図4に示されるスキャンチェーンの場合、フリップフロップF1-F2間では、図5Aに示されるように、元の回路の最小動作レートが15nsであるが、バッファB2をフリップフロップ化することによってシフト段数1段増加、最小シフト動作レートは9nsとなる。バッファB1、B2の2個のバッファをフリップフロップ化することによってシフト段数2段増加、最小シフト動作レートは6nsとなる。さらに、全てのバッファB1、B2、B3をフリップフロップ化するとシフト段数3段増加、最小シフト動作レートは5nsとなる。フリップフロップF2-F3間では、図5Bに示されるように、元の回路の最小動作レートが25nsであるが、バッファB6をフリップフロップ化することによってシフト段数1段増加、最小シフト動作レートは13nsとなり、バッファB4、B7をフリップフロップ化することによってシフト段数2段増加、最小シフト動作レートは9nsとなり、バッファB4、B5、B7をフリップフロップ化することによってシフト段数3段増加、最小シフト動作レートは8nsとなる。全てのバッファB4、B5、B6、B7をフリップフロップ化してもシフト段数4段増加、最小シフト動作レートは8nsとなる。フリップフロップF3-F4間では、図5Cに示されるように、バッファB8をフリップフロップ化することによってシフト段数1段増加、最小シフト動作レート9nsを5nsにすることができる。フリップフロップF4-F5間では、図5Dに示されるように、バッファB9をフリップフロップ化することによってシフト段数1段増加、最小シフト動作レート10nsを5nsにすることができる。フリップフロップF5-F6間では、バッファを介在しないため、図5Eに示されるように、最小シフト動作レートは3nsである。次に、バッファをフリップフロップに置換して増加するシフト段数と、そのときの最小シフト動作レートとを求め、スキャンシフト時間を算出するステップS13。ここでは、まず上述のように得られた最小シフト動作レートを長い順に並べ、重複を削除する。図5A~図5Eに示される値では、25、15、13、10、9、8、...となる。しかし、最小シフト動作レートは、スキャンシフトパスの遅延時間情報の1つとして求められた最大パス遅延値8nsを下回る値にまで短縮することはできない。そのため、シフト動作レートの候補は、25、15、13、10、9、8の6種類となる。バッファをフリップフロップに置換しない場合のシフト動作レートは25nsであり、シフト段数は6段である。このときのスキャンシフト時間は、25ns×6段=150nsと計算される。シフト動作レート15nsで動作させるためには、遅延時間が25nsであるシフトパスフリップフロップF2-F3間を分割するとよいので、バッファB6またはバッファB5をフリップフロップに置換し、シフト段数を1段増加することにより実現可能となる。したがって、スキャンシフト時間は、15ns×61段=105nsと計算される。シフト動作レート13nsで動作可能とするためには、遅延時間25nsのシフトパスフリップフロップF2-F3間および遅延時間15nsのシフトパスフリップフロップF1-F2間を分割して遅延時間を13ns以下にするとよい。したがって、バッファB2またはバッファB1/B3と、バッファB6とをフリップフロップに置換し、シフト段数を2段増加することにより実現できる。その場合、スキャンシフト時間は、13ns×62段=104nsとなる。シフト動作レート10nsで動作可能とするためには、遅延時間15nsのシフトパスフリップフロップF1-F2間を2つのシフトパスに分割し、遅延時間25nsのシフトパスフリップフロップF2-F3間を3つのシフトパスに分割する必要がある。バッファB2またはB1と、バッファB4、B7またはバッファB5、B7とをフリップフロップに置換し、シフト段数を3段増加することにより実現できる。スキャンシフト時間は、10ns×63段=90nsとなる。シフト動作レート9nsで動作可能とするためには、遅延時間15nsのシフトパスフリップフロップF1-F2間を2つのシフトパスに分割し、遅延時間25nsのシフトパスフリップフロップF2-F3間を3つのシフトパスに分割し、遅延時間10nsのシフトパスフリップフロップF4-F5間を2つのシフトパスに分割する必要がある。バッファB2と、バッファB4、B7と、バッファB9とをフリップフロップに置換し、シフト段数を4段増加することにより実現できる。スキャンシフト時間は、9ns×64段=90nsとなる。さらに、シフト動作レート8nsで動作可能とするためには、遅延時間15nsのシフトパスフリップフロップF1-F2間を3つのシフトパスに分割し、遅延時間25nsのシフトパスフリップフロップF2-F3間を4つのシフトパスに分割し、遅延時間9nsのシフトパスフリップフロップF3-F4間を2つのシフトパスに分割し、遅延時間10nsのシフトパスフリップフロップF4-F5間を2つのシフトパスに分割する必要がある。バッファB1、B2と、バッファB4、B5、B7と、バッファB8と、バッファB9とをフリップフロップに置換し、シフト段数を7段増加することにより実現できる。スキャンシフト時間は、8ns×67段=104nsとなる。さらに8ns未満に短縮してもフリップフロップF2-F3間にバッファを置換することによってパス分割できない遅延時間8nsのパスがあり、動作レートを短縮することはできない。スキャンシフト段数が求められると、スキャンシフトパスの段数の増加分の情報からスキャンシフト時間が計算される。さらに、最もスキャンシフト時間が短くなるシフト動作レートが選択されるステップS14。スキャンシフト時間は、上記のスキャンシフト段数の増分と、シフト動作レートから下記のように計算される。スキャンシフト時間=シフト動作レート×スキャンシフト段数150ns=25ns×6段105ns=15ns×61段104ns=13ns×62段90ns=10ns×63段90ns=9ns×64段104ns=8ns×67段この計算結果からスキャンシフト動作レートが10nsまたは9nsのとき、スキャンシフト時間は最短の90nsとなることがわかる。同じスキャンシフト時間であれば、1なるべくフリップフロップ化するバッファが少なくなるように、2シフト動作レートが長くなるように動作周波数が低くなるように、選択されることが好ましい。すなわち、スキャンシフト段数が少なくシフト動作レートが長い方を選択する。したがって、ここではスキャンシフト段数が3段増加してシフト動作レートが10nsになるスキャンシフトパスの分割が選択される。最短スキャンシフト時間が求められると、そのシフト動作レートを実現するために置換されるべきバッファが選択され、フリップフロップに置換されるステップS15。すなわち、スキャンシフトパスのタイミングの最適化を行なう。ここでは、最短スキャンシフト時間90nsとなるように、3個のバッファをフリップフロップに置換する。すなわち、フリップフロップF1-F2間のバッファB2をフリップフロップFB2に置換してこの区間の可能動作レートを9nsとし、フリップフロップF2-F3間のバッファB4およびB7をフリップフロップFB4およびFB7に置換してこの区間の可能動作レートを9nsとする。フリップフロップF3-F4間では可能動作レートは9ns、フリップフロップF4-F5間では可能動作レートは10ns、フリップフロップF5-F6間では可能動作レートは6nsであるからシフト動作レートの条件を満足する。このように、バッファをフリップフロップに置換した結果を示す回路が図6に示される。このように置換することにより、シフト段数は9段となり、各フリップフロップ間の遅延時間は、図6に示されるように、9ns、6ns、8ns、9ns、8ns、9ns、10ns、6nsとなる。ここでは、フリップフロップF2-F3間の可能動作レートを最小シフト動作レートの9nsとして置換されるバッファが選択されたが、スキャンシフト動作レートが10nsであるから、バッファB5およびB7をフリップフロップFB5およびFB7に置換してフリップフロップF2-F3間の可能動作レートを10nsとしてもよい。図6に示される回路では、バッファから置換されたフリップフロップは、シフトするデータをシフトクロックに同期して取り込んで出力するフリップフロップとしている。置換後のフリップフロップをキャプチャ動作も行なうスキャンフリップフロップとするときには、図7に示されるように、キャプチャ動作時に所定の値を取り込むようにユーザー機能接続用のデータ端子をレベル固定論理に接続する必要がある。図7では、データ0を取り込むように、フリップフロップの入力端子は、接地電圧に接続されている。このように、所定のバッファがフリップフロップに置換されたレイアウトデータは、記憶部23に格納されステップS18、最適化処理は終了する。なお、最大パス遅延値8nsを求めておくと、この条件以上の短縮はできないため、ステップS12において分割組み合わせ処理の一部を省略することも可能である。例えば、フリップフロップF1-F2間では、バッファB1、B2をフリップフロップ化すると、最小シフト動作レート6nsが得られるため、他の組み合わせを省略してもよい。また、3段以上の分割をしても、段数の増加が見込まれるだけであり、これも省略することができる。このように処理を省略することにより、バッファをフリップフロップに置換する組み合わせ情報が減少し、計算量計算時間とメモリ使用量の増加を抑制しながら、本発明が適用可能となる。上記実施の形態では、セル配置TDL:タイミングドリブンレイアウト後のレイアウトデータを入力データとしているが、CTSClockTreeSynthesis:クロックツリー合成後や配線後のレイアウトデータでも適用可能である。また、スキャンシフトパスの最適化の観点からスキャンチェーンのリチェーン処理後に適用されることが好ましい。さらに、近年の回路装置では、複数本例えば、数百~数千本のスキャンチェーンを有する回路が頻繁に設計されている。本発明は、複数のスキャンチェーンを有する回路にも適用可能である。また、スキャンシフトパスを分割する場合に、置換されるリピータセルはバッファで示したが、インバータセルでも本発明は適用可能である。さらに、置換されるリピータセルの選択方法は、スキャンシフトパスに含まれるセル間の遅延時間に基づいて選択され、上記手順に限定されることはない。各スキャンシフトパス間の遅延のうち、最大のパス遅延値を抽出する処理は、パス遅延の組み合わせ情報を作成する際に抽出してもよい。また、スキャンフリップフロップF5-F6間のように、バッファが挿入されていないスキャンシフトパスを除外して、セル間の組み合わせ遅延を算出するようにしてもよい。上述のように、本発明によれば、半導体集積回路のスキャンテスト回路設計手法において、スキャンシフトパス間に挿入されている1つ以上のバッファをフリップフロップに置換して、スキャンシフトパスを分割することによって短縮できる遅延時間と増加するシフト段数とに基づいて、最適な置換位置を求め、シフト動作の周期を短縮することができる。したがって、スキャンテストに費やされる時間を短縮することができる。以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。"