(57)【要約】【課題】演算処理回路のＡＣスペックが規定されている場合において、要求スペックを満足させるのみならず、故障検出率の低下を防止することができるスキャンテスト機能を有する半導体集積回路の設計方法を提供する。【解決手段】演算処理回路を構成する複数の論理回路ブロックの各々に対応して設けられた複数のフリップフロップを互いに直列接続してスキャンチェーンを構成し、スキャンチェーンの入力端子から供給されるテスト入力データに応じて論理回路ブロックの各々から出力されるテスト出力データをスキャンチェーンの出力端子より抽出するスキャンテスト回路を含む半導体集積回路の設計方法であり、演算処理回路のロジック入力端子に接続された入力側初段のフリップフロップをスキャンチェーンの初段に設定するステップと、演算処理回路のロジック出力端子に接続された最終出力段のフリップフロップをスキャンチェーンの最終段に設定するステップと、自動テストパターン生成ツールを用いてスキャンテスト回路の他の回路構成を自動生成するステップと、を含む。【選択図】図６
2009253023.tif 000002
【特許請求の範囲】
【請求項１】
演算処理回路を構成する複数の論理回路ブロックの各々に対応して設けられた複数のフリップフロップを互いに直列接続してスキャンチェーンを構成し、前記スキャンチェーンの入力端子から供給されるテスト入力データに応じて前記論理回路ブロックの各々から出力されるテスト出力データを前記スキャンチェーンの出力端子より抽出するスキャンテスト回路を含む半導体集積回路の設計方法であって、
前記演算処理回路のロジック入力端子に接続された入力側初段のフリップフロップを前記スキャンチェーンの初段に設定するステップと、
前記演算処理回路のロジック出力端子に接続された最終出力段のフリップフロップを前記スキャンチェーンの最終段に設定するステップと、
自動テストパターン生成ツールによって前記スキャンテスト回路の他の回路構成を自動生成するステップと、を含むことを特徴とする半導体集積回路の設計方法。
【請求項２】
自動レイアウトツールによって前記スキャンテスト回路および演算処理回路に対応した半導体チップのパターンレイアウトを自動生成するステップを更に含むことを特徴とする請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記入力側初段のフリップフロップは、前記スキャンチェーンの入力端子に接続し、前記最終出力段のフリップフロップは、前記スキャンチェーンの出力端子に接続することを特徴とする請求項１に記載の半導体集積回路の設計方法。
【請求項４】
前記入力側初段のフリップフロップおよび前記最終出力段のフリップフロップを制御信号に応じて前記スキャンチェーンを構成するスキャン機能を備えたフリップフロップで構成することを特徴とする請求項１乃至３のいずれか１つに記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、故障検出に用いられるスキャンテスト回路を有する半導体集積回路の設計方法に関する。
【背景技術】
【０００２】
ＬＳＩのテストでは、ＤＵＴ（Device Under test）の回路規模が大きいことが問題となる。全ての入力の組み合わせをテストすることは事実上不可能である。ＬＳＩの回路設計手法は自動化（自動配置配線や論理合成など）を追求して発展してきた。そのため、テスト回路についても自動的に生成する手法が検討されてきた。現在ではスキャンテストなどの手法が実用化されている。
【０００３】
現在のデジタルＬＳＩは、同期回路方式を前提に設計されており、クロック信号を共有したＤフリップフロップ（以下Ｄ−ＦＦと記述する）の間に組み合わせ回路が挿入され、これらがクロック信号に同期して動作している。スキャンテストでは、各Ｄ−ＦＦの入力にセレクタ（マルチプレクサ）を付加したスキャンフリップフロップ（以下スキャンＦＦと記述する）どうしを直列につないで一種のシフトレジスタ（スキャンチェーン）を構成する。
【０００４】
図１にスキャンＦＦの構成およびこれを用いたスキャンテスト回路の構成を示す。スキャンＦＦ２０は、通常のＤ−ＦＦ２０ａのデータ入力端子Ｄにセレクタ２０ｂが接続されて構成される。セレクタ２０ｂの入力端子ＩＮには、前段の論理回路ブロックからのロジック入力信号がロジック入力信号線（INPUT）を介して入力される。セレクタ２０ｂのスキャンイン端子ＳＩには、スキャンテストを行うためのスキャンイン信号（テストデータ信号）がスキャンイン信号線（SCAN_IN）を介して入力される。更に、セレクタ２０ｂには、スキャンイン信号又はロジック入力信号のどちらをＤ−ＦＦ２０ａに供給するかを制御するスキャンイネーブル信号がスキャンイネーブル信号線（SCAN_EN）を介して入力される。
【０００５】
Ｄ−ＦＦ２０ａのクロック入力端子にはクロック信号がクロック信号線（CLK）を介して供給される。Ｄ−ＦＦ２０ａは、クロック信号に同期して、セレクタ２０ｂより供給される入力信号の状態に応じた出力信号を出力端子Ｑに出力する。すなわち、Ｄ−ＦＦ２０ａの出力端子には、スキャンイン信号に対応したスキャンアウト信号と、ロジック入力信号に対応したロジック出力信号のいずれかが選択的に出力されることとなる。Ｄ−ＦＦ２０ａの出力端子は、後段の論理回路ブロック３０および後段のスキャンＦＦのスキャンイン端子ＳＩに接続される。
【０００６】
図１の如きスキャンテスト回路によるスキャンテストは、概ね以下の手順による。まず、外部よりスキャンイネーブル端子（SCAN_EN）を介してハイレベルのスキャンイネーブル信号が供給され、スキャンモードが選択されると、セレクタ２０ｂはスキャンイン端子ＳＩを選択する。すなわちこの場合、論理回路ブロック３０からの出力信号はセレクタ２０ｂにより遮断されるため実質的にスキャンＦＦ２０同士が互いに直列接続されたスキャンパスが構成されることとなる。この状態において外部より、スキャンイン信号線（SCAN_IN）を介してスキャンイン信号（テスト入力データ信号）を流し込むことにより、各スキャンＦＦ２０に初期値を設定する（これをスキャンイン動作と称する）。スキャンＦＦ２０に保持された初期値は、それぞれスキャンＦＦ２０の出力信号を入力とするように接続された論理回路ブロック３０の入力信号として与えられる。論理回路ブロック３０は、与えられた初期値に応じた処理結果を出力する。つまり、スキャンイン動作により論理回路ブロック３０の動作時における任意の状態を外部入力により再現することができる。
【０００７】
次に、スキャンイネーブル信号をローレベルとすることにより、スキャンＦＦ２０の接続を通常状態に戻して論理回路ブロック３０から出力された処理結果を各スキャンＦＦ２０に取り込む（これをロジックテスト動作と称する）。
【０００８】
次に、スキャンイネーブル信号を再びハイレベルとすることにより、再度スキャンパスを構成し、上記初期値に対する各論理回路ブロック３０による処理結果（テスト出力データ）を順次回収する（これをスキャンアウト動作と称する）。下記特許文献１および２はいずれもこのようなスキャンＦＦを有する技術を開示したものである。
【特許文献１】特許第３５４８９２２号公報
【特許文献２】特開２０００−２０５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一般的に、集積回路のＡＣスペック（タイミングスペック）が規定されている場合、そのＡＣスペックを満たすべく、各論理回路ブロックが組み合わされることにより構成される演算処理回路のロジック入力端子に接続される入力側初段のフリップフロップと、演算処理回路のロジック出力端子に接続される最終出力段のフリップフロップはスキャン化されない。つまり、これらのフリップフロップはスキャンチェーンを構成しない。図２にこのような集積回路のＡＣスペックが規定されている場合における従来のスキャンテスト機能を有する集積回路の構成を図２に示す。
【００１０】
Ｄ−ＦＦ１１は、演算処理回路の入力側初段のＤフリップフロップである。Ｄ−ＦＦ１２は、演算処理回路の最終出力段のＤフリップフロップである。これらのＤ−ＦＦは、演算処理回路の動作タイミングに影響を与えるため、演算処理回路のＡＣスペックが規定されている場合、信号遅延が問題となる。このため、これらのＤ−ＦＦは、信号遅延を回避するべくスキャンＦＦで構成することができず、通常のＤ−ＦＦで構成される。その理由については後述する。
【００１１】
スキャンＦＦ２１、２２、２３は、図１に示したスキャンＦＦ２０と同じ構成のスキャンＦＦである。これらのスキャンＦＦ２１〜２３は、スキャンイネーブル信号線（SCAN_EN）を介して供給されるスキャンイネーブル信号に基づいて回路の接続状態をスキャンモード又は通常モードに切り換え、スキャンイン信号線（SCAN_IN）を介して供給されるスキャンイン信号（テスト入力データ）により初期値の設定がなされ、対応する論理回路ブロックに対してスキャンテストを実行する。
【００１２】
論理回路ブロック３１〜３５は、演算処理回路を構成する回路ブロックであり、クロック信号を共有する各フリップフロップの間に挿入される。論理回路ブロック３１〜３５は、前段のフリップフロップから供給される入力信号について演算処理を行い、その結果を後段のフリップフロップの入力端子Ｄに供給する。
【００１３】
次に、集積回路のＡＣスペックが規定されている場合において、演算処理回路の入力側初段のフリップフロップ１１と最終出力段のフリップフロップ１２がスキャン化できない理由について図３および図４を参照しつつ説明する。図３（ａ）は演算処理回路の入力側初段のフリップフロップ１１をスキャン化した場合のパターンレイアウト後における当該部分の回路構成を示したものである。フリップフロップ１１をスキャン化するとは、フリップフロップ１１をスキャンＦＦで構成しスキャンチェーンに取り込むことを意味する。しかし、入力側初段のフリップフロップ１１をスキャンＦＦで構成すると、自動配置配線システムによるパターンレイアウト作成時に他のスキャンＦＦ２０のスキャンイン端子ＳＩとフリップフロップ１１の入力端子Ｄとの間に配線が自動的に形成され、その結果、ロジック入力信号が入力されるべきロジック入力信号線（INPUT）上にリピータ５０が自動挿入されることとなる。すなわち、ＬＳＩチップのパターンレイアウトの際に用いられる自動配置配線システムにより設計されたチップ内の配線がロングパスとなってしまったときには、ロングパスにリピータ回路を自動挿入して信号の劣化や遅延を回避することとしている。ここでリピータ回路とは、自動配置配線システムにより形成されたロングパスに生じる配線抵抗や寄生容量による信号の遅延や劣化を回避するために、配線途中に自動挿入される波形整形回路のことである。自動配置配線システムは、回路素子間を接続する配線の長さを算出して、その配線の抵抗値を算出すると共に、その配線の寄生容量値を算出し、算出された抵抗値と容量値とから遅延量を算出する。そして、この遅延量が許容値を超えた場合には、この遅延値が最小になるポイントにリピータ回路を自動挿入するようにしている。
【００１４】
しかしながら、ロジック入力信号線（INPUT）を介してフリップフロップ１１に供給されるロジック入力信号が自動挿入されたリピータ５０を通過することにより遅延が生じてしまい、要求されるＡＣスペックを満足することができなくなる場合がある。そこで、演算処理回路のＡＣスペックが規定されている場合においては、図３（ｂ）に示すように、演算処理回路の入力側初段のフリップフロップをスキャン機能を有していないＤ−ＦＦで構成することにより、自動配置配線システムによる自動配線の形成およびリピータの自動挿入を回避することとしている。これにより、要求されるＡＣスペックを満足させることが可能となる。
【００１５】
同様に、図４（ａ）は演算処理回路の最終出力段のフリップフロップ１２をスキャン化した場合の回路の構成を示したものである。フリップフロップ１２をスキャンＦＦで構成することにより、フリップフロップ１２はスキャンチェーンに取り込まれることとなる。しかし、フリップフロップ１２をスキャンＦＦで構成すると、自動配置配線システムによるパターンレイアウトの際にフリップフロップ１２の出力端子Ｑと他のスキャンＦＦ２０のスキャンイン端子ＳＩとの間に配線が形成され、その結果、ロジック出力信号線（OUTPUT）上にリピータ５１が自動挿入されることとなる。すると、最終出力段のフリップフロップ１２から出力される出力信号は、自動挿入されたリピータ５１を通過することにより遅延が生じ、要求されるＡＣスペックを満たすことができなくなる場合がある。そこで、演算処理回路のＡＣスペックが規定されている場合においては、図３（ｂ）に示すように、演算処理回路の最終出力段のフリップフロップをスキャン機能を有していないＤ−ＦＦで構成することにより、自動配置配線システムによる自動配線の形成およびリピータの自動挿入を回避することとしている。
【００１６】
このように、演算処理回路のＡＣスペックが規定されている場合においては、自動配置配線システムによるロジック入力信号線（INPUT）およびロジック出力信号線（OUTPUT）上のリピータの挿入を回避する必要があることから、演算処理回路の入力側初段と、最終出力段のフリップフロップはスキャン化することができない。しかしながら、これらのフリップフロップがスキャンチェーンから除外されるとＡＣスペックは満たされるものの対応する演算処理回路の構成部分（すなわち、図２の論理回路ブロック３１および３５）がスキャンテストの対象から除外されることになるので、かかる回路部分の故障検出率の著しい低下を招く結果となっていた。
【００１７】
本発明は、上記した点に鑑みてなされたものであり、演算処理回路のＡＣスペックが規定されている場合において、要求スペックを満足させるのみならず、故障検出率の低下を防止することができるスキャンテスト機能を有する半導体集積回路の設計方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の半導体集積回路の設計方法は、演算処理回路を構成する複数の論理回路ブロックの各々に対応して設けられた複数のフリップフロップを互いに直列接続してスキャンチェーンを構成し、前記スキャンチェーンの入力端子から供給されるテスト入力データに応じて前記論理回路ブロックの各々から出力されるテスト出力データを前記スキャンチェーンの出力端子より抽出するスキャンテスト回路を含む半導体集積回路の設計方法であって、前記演算処理回路のロジック入力端子に接続された入力側初段のフリップフロップを前記スキャンチェーンの初段に設定するステップと、前記演算処理回路のロジック出力端子に接続された最終出力段のフリップフロップを前記スキャンチェーンの最終段に設定するステップと、自動テストパターン生成ツールによって前記スキャンテスト回路の他の回路構成を自動生成するステップと、を含むことを特徴としている。
【発明を実施するための形態】
【００１９】
以下、本発明の実施例について図面を参照しつつ説明する。尚、以下に示す図においては、図１〜４中に示した構成要素と実質的に同一又は等価な構成要素については同一の参照符を付している。図５に本発明に係るスキャンテスト回路を有する半導体集積回路１００の構成を示す。半導体集積回路１００は、ＡＣスペック（タイミングスペック）が規定されており、ロジック入力信号に対するロジック出力信号の遅延時間が所定値以下であることが要求されているものとする。
【００２０】
ロジック入力信号が入力されるべきロジック入力信号線（INPUT）に接続される演算処理回路の入力側初段のフリップフロップ１１は、スキャンチェーンの初段に設けられる。フリップフロップ１１は、スキャンＦＦで構成されるが、その入力端子Ｄとスキャンイン端子ＳＩとが短絡されて用いられるため、実質的に通常のＤ−ＦＦと等価である。入力端子Ｄとスキャンイン端子ＳＩとの接続点には、ロジック入力信号線（INPUT）及びスキャンイン信号（テスト入力データ）が供給されるべきスキャンイン信号線（SCAN_IN1）が接続される。スキャンＦＦ１１の出力端子Ｑは、後段の論理回路ブロック３１に接続されるとともにスキャンＦＦ２１のスキャンイン端子ＳＩに接続される。
【００２１】
スキャンＦＦ２１の出力端子Ｑは後段の論理回路ブロック３２の入力端子に接続されるとともにセレクタ４０の一方の入力に接続される。論理回路ブロック３２の出力信号はセレクタ４０の他方の入力に供給される。セレクタ４０の出力端子は、スキャンチェーンの終端であるスキャンアウト信号線（SCAN_OUT1）に接続される。スキャンＦＦ１１および２１には、クロック信号線（CLK）を介して共通のクロック信号が供給されるとともに、スキャンイネーブル信号線（SCAN_EN）を介して共通のスキャンイネーブル信号が供給される。
【００２２】
かかる回路構成においてスキャンテストを実施する際には、スキャンイネーブル信号線（SCAN_EN）を介してハイレベルのスキャンイネーブル信号がスキャンＦＦ１１および２１に供給し、スキャンモードを選択する。すると、スキャンＦＦ１１および２１は、スキャンイン端子ＳＩを選択し、スキャンイン信号線（SCAN_IN1）から、スキャンＦＦ１１、スキャンＦＦ２１およびセレクタ４０を経由してスキャンアウト信号線（SCAN_OUT1）に至る第１のスキャンパスを構成する。すなわち、この状態においては、スキャンＦＦ１１および２１はシフトレジスタとして機能する。
【００２３】
この状態で、スキャンイン信号線（SCAN_IN1）からスキャンイン信号（テスト入力データ）をクロック信号に同期して順次入力すると、入力されたデータは、シフトレジスタを構成するスキャンＦＦ１１および２１に保持される。
【００２４】
スキャンＦＦ１１および２１に保持されたデータは、それぞれ論理回路ブロック３１および３２に入力信号として与えられる。論理回路ブロック３１および３２は、与えられたデータに応じた処理結果を出力する。このとき、セレクタ４０により論理回路ブロック３２の出力側が選択され、論理回路ブロック３２よる処理結果はセレクタ４０を介してスキャンアウト信号線（SCAN_OUT1）から出力される。
【００２５】
次に、スキャンＦＦ１１および２１にスキャンイネーブル信号線（SCAN_EN）を介してローレベルのスキャンイネーブル信号が供給すると、スキャンＦＦ１１および２１は入力端子Ｄを選択し、接続状態を通常モードに切り換える。この状態でスキャンＦＦ１１および２１にクロック信号を与えると、論理回路ブロック３１による処理結果がスキャンＦＦ２１に保持される。このとき、セレクタ４０によりスキャンＦＦ２１の出力側が選択され、スキャンＦＦ２１に保持された論理回路ブロック３１よる処理結果（テスト出力データ）はセレクタ４０を介してスキャンアウト信号線（SCAN_OUT1）から出力される。以上の動作により、論理回路ブロック３１および３２に対するスキャンテストが完了する。
【００２６】
一方、ロジック出力信号線（OUTPUT）に接続される演算処理回路の最終出力段のフリップフロップ１２は、スキャンチェーンの最終段に設けられる。フリップフロップ１２は、スキャン機能を有するスキャンＦＦで構成される。スキャンＦＦ１２の出力端子Ｑはロジック出力信号線（OUTPUT）に接続されるとともに第２のスキャンチェーンの終端であるスキャンアウト信号線（SCAN_OUT2）に接続される。
【００２７】
スキャンＦＦ２２のスキャンイン端子ＳＩは、スキャンイン信号線（SCAN_IN2）に接続される。スキャンＦＦ２２の出力端子Ｑは、後段の論理回路ブロック３４に接続されるとともにスキャンＦＦ２３のスキャンイン端子ＳＩに接続される。スキャンＦＦ２３の出力端子Ｑは後段の論理回路ブロック３５の入力端子に接続されるとともに最終出力段のスキャンＦＦ１２のスキャンイン端子ＳＩに接続される。各スキャンＦＦ２２、２３および１２にはクロック信号線（CLK）を介して共通のクロック信号が供給されるとともに、スキャンイネーブル信号線（SCAN_EN）を介して共通のスキャンイネーブル信号が供給される。
【００２８】
かかる回路構成においてスキャンテストを実施する際には、スキャンイネーブル信号線（SCAN_EN）を介してハイレベルのスキャンイネーブル信号をスキャンＦＦ２２、２３および１２に供給し、スキャンモードを選択する。すると、これらのスキャンＦＦは、スキャンイン端子ＳＩを選択し、スキャンイン信号線（SCAN_IN2）から、スキャンＦＦ２２、スキャンＦＦ２３およびスキャンＦＦ１２を経由してスキャンアウト信号線（SCAN_OUT2）に至る第２のスキャンチェーンを構成する。すなわち、この状態においては、スキャンＦＦ２２、２３および１２はシフトレジスタとして機能する。
【００２９】
この状態でスキャンイン信号線（SCAN_IN2）からスキャンイン信号（テスト入力データ）をクロック信号に同期して順次入力すると入力されたデータは、シフトレジスタを構成するスキャンＦＦ２２、２３に保持される。
【００３０】
これらのスキャンＦＦに保持されたデータは、それぞれ論理回路ブロック３４および３５に入力信号として与えられる。論理回路ブロック３４および３５は、与えられたデータに応じた処理結果を出力する。
【００３１】
次に、スキャンＦＦ２２、２３および１２にスキャンイネーブル信号線（SCAN_EN）を介してローレベルのスキャンイネーブル信号を供給すると、これらのスキャンＦＦは入力端子Ｄを選択し、接続状態を通常モードに切り換える。この状態でこれらのスキャンＦＦにクロック信号を与えると、論理回路ブロック３４および３５による処理結果がそれぞれスキャンＦＦ２３および１２に保持される。
【００３２】
次に、スキャンイネーブル信号線（SCAN_EN）を介してハイレベルのスキャンイネーブル信号がスキャンＦＦ２２、２３および１２に供給されると、スキャンパスが構成される。この状態で、これらのスキャンＦＦにクロック信号を与えると論理回路ブロック３４および３５による処理結果（テスト出力データ）が順次スキャンアウト信号線（SCAN_OUT2）より出力される。以上の動作により、論理回路ブロック３４および３５に対するスキャンテストが完了する。
【００３３】
次に、上記した如き構成のスキャンテスト回路を有する半導体集積回路１００の設計方法について図６に示すフローチャートを参照しつつ説明する。
【００３４】
まず、ＲＴＬ設計を行う（ステップＳ１）。ＲＴＬとは、集積回路設計において同期デジタル回路を記述する手法の一種である。ＲＴＬでは、論理回路内部の全ての動作をクロックサイクルに同期して記述する。
【００３５】
次に、論理合成を行う（ステップＳ２）。本ステップにおいては、ＲＴＬ記述から論理合成ツールを用いてゲート回路を自動的に生成する。論理合成では、ＨＤＬ記述から設計者が与えた面積やクロック周期、消費電力などの設計制約条件に従って自動的に論理ゲート回路を最適化し、論理ゲート回路を生成する。尚、論理合成ツールとは、ＥＤＡ（Electronic Design Automation）の一部であって、内蔵プログラムにより抽象的な回路の動作に関する記述から論理回路の実装設計を行う装置をいう。
【００３６】
次に、タイミング解析を行う（ステップＳ３）。論理ゲートは固有な遅延値を持ち、論理ゲートの遅延と配線による遅延を計算することでゲート回路の遅延値が得られる。本ステップにおいては、論理合成されたゲート回路が設計制約条件を満足するかどうかについてスタティックタイミング解析ツールを用いて検証する。ここで、設計制約条件が満たされない場合は、ＲＴＬ設計からやり直す。
【００３７】
次にテスト容易化設計を行う（ステップＳ４）。ここでは、まず手動により演算処理回路の入力側初段のスキャンＦＦ１１をスキャンチェーンの初段に設定する（ステップＳ４−１）。すなわち、スキャンチェーンの入力端子となるスキャンイン信号線（SCAN_IN）の外部接続端子をスキャンＦＦ１１の入力端子Ｄおよびスキャンイン端子ＳＩに接続する。
【００３８】
続いて、手動により演算処理回路の最終出力段のスキャンＦＦ１２をスキャンチェーンの最終段に設定する（ステップＳ４−２）。すなわち、スキャンＦＦ１２の出力端子Ｑをスキャンチェーンの出力端子となるスキャンアウト信号線（SCAN_OUT）の外部接続端子に接続する。このように、本発明の設計方法においては、演算処理回路の入力側初段と最終出力段のフリップフロップについては手動でスキャンチェーン上の配置を固定化する。その後、それ以外のスキャンチェーンの構成部分については自動テストパターン生成ツール（ATPG）を用いて自動でテストパターンを作成する（ステップＳ４−３）。これにより、スキャンＦＦ１１をスキャンチェーンの初段とし、スキャンＦＦ１２をスキャンチェーンの最終段とする１又は２以上のスキャンチェーンを構成するスキャンテスト回路が自動生成される。尚、自動テストパターン生成ツールとは、ＥＤＡの一部であって、内蔵プログラムにより論理回路情報からＩＣのテストパターンを自動生成する装置をいう。
【００３９】
次にレイアウト設計を行う（ステップＳ５）。ここでは、まず集積回路のどの回路ブロックをチップ上のどこに配置するかの大枠を決めるフロアプランを行った後、チップ上にセルを配置し、各セル間の配線を行う。かかるレイアウト設計においてはフロアプランの情報とテストパターンを含むゲート回路のネットリストに従って自動配置配線を行う自動レイアウトツールが用いられる。このとき、演算処理回路の入力側初段のスキャンＦＦ１１は、スキャンチェーン初段のフリップフロップとして設定されているためにスキャンイン信号線（SCAN_IN）の外部接続端子近傍に自動配置されることとなる。従って、自動レイアウトツールによりスキャンＦＦ１１に至るスキャンイン信号線（SCAN_IN）はロングパスとはならず、従って遅延補償も必要とされないためロジック入力信号線（INPUT）の延長線上にリピータが自動挿入されるのを回避することが可能となる。同様に、演算処理回路の最終出力段のスキャンＦＦ１２は、スキャンチェーン最終段のフリップフロップとして設定されているためにスキャンアウト信号線（SCAN_OUT）の外部接続端子近傍に自動配置されることとなる。従って、自動レイアウトツールによりスキャンＦＦ１２の出力端子Ｑに接続されるスキャンアウト信号線（SCAN_OUT）はロングパスとはならず、従って遅延補償も必要とされないためロジック出力信号線（OUTPUT）の延長線上にリピータが自動挿入されるのを回避することが可能となる。尚、自動レイアウトツールとは、ＥＤＡの一部であって、内蔵プログラムによりマクロセルの接続情報（すなわち論理回路の設計結果）に基づいて、マクロセルを自動配置し、その間に自動配線を行うことにより半導体チップのレイアウトを自動生成する装置をいう。以上の各ステップを経ることにより、本発明のスキャンテスト機能を有する半導体集積回路１００の設計が完了する。
【００４０】
以上の説明から明らかなように、本発明に係る設計方法によれば、テストパターン設計段階において演算処理回路の入力側初段と最終出力段のフリップフロップは、手動によりスキャンチェーンの初段および最終段として設定することによりスキャンチェーン上の配置を固定化した後に、自動テストパターン生成ツールによりテストパターンの生成を行うこととしたので、自動配置配線ツールを用いたレイアウト設計の段階で入力側初段のフリップフロップは、必然的にスキャンイン信号線（SCAN_IN）の外部接続端子近傍に配置されるとともに最終出力段のフリップフロップ１２は、必然的にスキャンアウト信号線（SCAN_OUT）の外部接続端子近傍に配置される。その結果、スキャンＦＦ１１に接続されるスキャンイン信号線（SCAN_IN）の配線およびスキャンＦＦ１２に接続されるスキャンアウト信号線（SCAN_OUT）の配線がロングパスとはならず、これらの配線が短く形成されることにより遅延補償も必要とされないため、ロジック入力信号線（INPUT）上およびロジック出力信号線（OUTPUT）上にリピータが自動挿入されるのを回避することが可能となる。これにより演算処理回路のＡＣスペックの達成が容易となる。また、これらのフリップフロップはスキャンＦＦで構成され、スキャンチェーンに取り込まれるため、従来の回路方式においてはスキャンテストの対象とはなっていなかった演算処理回路の構成部分（すなわち、図２における論理回路ブロック３１および３５）もスキャンテストの対象となるので、従来方式の回路に比べ故障検出率の向上が期待できる。すなわち、上記方法により半導体集積回路を設計することにより、演算処理回路のＡＣスペックを満足させるのみならず、従来の回路方式における故障検出率の著しい低下の問題を解決することが可能となる。
【図面の簡単な説明】
【００４１】
【図１】スキャンフリップフロップおよびスキャンテスト回路の構成を示す図である。
【図２】演算処理回路のＡＣスペックが規定されている場合における従来のスキャンテスト回路を有する従来の集積回路の構成を示す図である。
【図３】（ａ）は、入力側初段のフリップフロップをスキャン機能を有するフリップフロップで構成した場合のパターンレイアウト後の回路構成を示す図である。（ｂ）は、入力側初段のフリップフロップをＤフリップフロップで構成した場合のパターンレイアウト後の回路構成を示す図である。
【図４】（ａ）は、最終出力段のフリップフロップをスキャン機能を有するフリップフロップで構成した場合のパターンレイアウト後の回路構成を示す図である。（ｂ）は、最終出力段のフリップフロップをＤフリップフロップで構成した場合のパターンレイアウト後の回路構成を示す図である。
【図５】本発明に係るスキャンテスト回路を有する半導体集積回路の構成を示す図である。
【図６】本発明に係るスキャンテスト回路を有する半導体集積回路の設計方法を示すフローチャートである。
【符号の説明】
【００４２】
１１  入力側初段のスキャンＦＦ
１２  最終出力段のスキャンＦＦ
２１〜２３  スキャンＦＦ
３１〜３５  論理回路ブロック
【図１】
2009253023.tif 000003
【図２】
2009253023.tif 000004
【図３】
2009253023.tif 000005
【図４】
2009253023.tif 000006
【図５】
2009253023.tif 000007
【図６】
2009253023.tif 000008