(57)【要約】 【課題】  スキャンテストに要する時間を短縮することができるスキャンパス回路を生成する装置を提供する。【解決手段】  故障箇所設定部１０２において、故障箇所を設定した後、探索部１０３において故障箇所に到達する入力信号線を探索する。探索された入力信号線の一つと接続されているレジスタが複数のゲート回路と接続されているか否かを共通レジスタ検出部１０４で検出する。共通レジスタ検出部１０３で２以上のゲート回路と接続されているレジスタが検出された場合には、冗長レジスタ生成部１０７で冗長レジスタが生成される。配線接続部１０８で共通レジスタと冗長レジスタに適切な配線が行われ、スキャンテストに適した構成をした半導体集積回路が生成される。【選択図】      図２
2006215759.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の経路上に故障箇所を設定する設定手段と、
前記故障箇所に到達する入力信号線を探索する探索手段と、
前記探索された入力信号線の一つと接続されたレジスタであって少なくとも２つのゲート回路と接続されている共通レジスタを検出する検出手段と、
前記共通レジスタを複製して冗長レジスタとして生成する生成手段と、
前記共通レジスタと並列に前記冗長レジスタを配置して前記共通レジスタおよび前記冗長レジスタと前記ゲート回路との間の接続を分割して接続する接続手段と
を具備することを特徴とするスキャンパス生成装置。
【請求項２】
前記接続手段は、前記冗長レジスタ生成前に前記ゲート回路の数が偶数の場合には前記ゲート回路の半数を前記共通レジスタに接続するとともにその残りを前記冗長レジスタに接続し、前記ゲート回路の数が奇数の場合には｛（前記共通レジスタと接続されたゲート回路数−１）÷２＋１｝個または｛（前記共通レジスタと接続されたゲート回路数−１）÷２｝個のゲート回路を前記共通レジスタに接続するとともにその残りを前記冗長レジスタに接続することを特徴とする請求項１に記載のスキャンパス生成装置。
【請求項３】
前記検出手段は、前記故障箇所に到達する入力信号線の一つと接続されたレジスタが少なくとも２つのゲート回路と接続されていることを検出した場合には前記ゲート回路のテストパターンゲート回路入力値が全て同じ値か否かを判定する判定手段を具備し、前記ゲート回路のテストパターンゲート回路入力値が全て同じと判定された場合には前記生成手段において前記冗長レジスタを生成せず、前記ゲート回路のテストパターンゲート回路入力値が全て同じでないと判定された場合には前記冗長レジスタを生成することを特徴とする請求項１に記載のスキャンパス生成装置。
【請求項４】
前記接続手段は、前記ゲート回路に入力される前記テストパターンゲート回路入力値が「１」または「０」の一方の場合には前記共通レジスタと接続し、前記ゲート回路に入力される前記テストパターンゲート回路入力値が前記「１」または「０」の他方の場合には前記冗長レジスタと接続することを特徴とする請求項３に記載のスキャンパス生成装置。
【請求項５】
半導体集積回路の経路上に故障箇所を設定する設定手順と、
前記故障箇所に到達する入力信号線を探索する探索手順と、
前記探索された入力信号線の一つと接続されたレジスタであって少なくとも２つのゲート回路と接続されている共通レジスタを検出する検出手順と、
前記共通レジスタを複製して冗長レジスタとして生成する生成手順と、
前記共通レジスタと並列に前記冗長レジスタを配置して前記共通レジスタおよび前記冗長レジスタと前記ゲート回路との間の接続を分割して接続する接続手順と
を具備することを特徴とするスキャンパス生成方法。
【請求項６】
半導体集積回路の経路上に故障箇所を設定する設定ステップと、
前記故障箇所に到達する入力信号線を探索する探索ステップと、
前記探索された入力信号線の一つと接続されたレジスタであって少なくとも２つのゲート回路と接続されている共通レジスタを検出する検出ステップと、
前記共通レジスタを複製して冗長レジスタとして生成する生成ステップと、
前記共通レジスタと並列に前記冗長レジスタを配置して前記共通レジスタおよび前記冗長レジスタと前記ゲート回路との間の接続を分割して接続する接続ステップと
をコンピュータに実行させることを特徴とするスキャンパス生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト時間を短縮し、スキャンテストに適した半導体集積回路を生成するスキャンパス生成装置、スキャンパス生成方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
従来の一般的なスキャンパス回路の一例として、半導体集積回路５００を図９に示す。半導体集積回路５００は、レジスタ５１１乃至５１４ならびにレジスタ５８１乃至５８４、ゲート回路５５１乃至５５６から構成される。レジスタ５１１乃至５１４は、ゲート回路入力線５３１乃至５３４を通じて、ゲート回路５５１乃至５５６と接続される。また、ゲート回路５５１乃至５５６は、ゲート信号出力線５７１乃至５７４を介して、レジスタ５８１乃至５８４と接続される。
【０００３】
レジスタ５１１乃至５１４は、それぞれレジスタ信号入力線５０１乃至５０４を備えている。また、レジスタ５８１乃至５８４は、それぞれ図示していないレジスタ出力信号線を備えている。レジスタ５１１乃至５１４ならびにレジスタ５８１乃至５８４は、スキャンパス線５２１乃至５２７で接続されている。また、レジスタ５１１乃至５１４ならびにレジスタ５８１乃至５８４は、クロック信号入力線５０５と図示していないスキャンモード信号線と接続されている。
【０００４】
次に、スキャンテストの際の動作について説明する。レジスタ５１１乃至５１４は、スキャンモード信号線からスキャンモード信号が供給されると、スキャンモードに移行する。スキャンモードでは、各レジスタの内容は、スキャンパス線５２１乃至５２７を介して外部に出力される。また、スキャンモード信号線から非スキャンモード信号が供給されると、非スキャンモードに移行する。非スキャンモードでは、各レジスタの内容は、ゲート入力信号線５３１乃至５３４を介して外部に出力される。
【０００５】
まず、半導体集積回路５００に、（図示しない）スキャンモード信号線を介してスキャンモード信号を供給し、半導体集積回路５００をスキャンモードに移行させる。次にクロック信号入力線５０５から供給されるクロック信号にしたがって、スキャンパス入力信号線５２０から入力されたテストパターン値が、まずレジスタ５１１に記憶される。次のクロック信号が入ってくるとレジスタ５１１に記憶されたテストパターン値がスキャンパス線５２１を通じて、レジスタ５１２に出力され、記憶される。それと同時にレジスタ５１１に新たなテストパターン値が入力され、記憶される。順次、クロック信号にしたがって、同様の動作を行い、スキャンパス線５２１乃至５２３を通じて、レジスタ５１１乃至５１４にテストパターン値が設定される。
【０００６】
次に、スキャンモード信号線から非スキャンモード信号をレジスタ５１１乃至５１４に供給し、非スキャンモードに移行させる。その後、クロック信号にしたがって、レジスタ５１１乃至５１４に設定されたテストパターン値がゲート回路５５１乃至５５６に供給され、その出力が、レジスタ５８１乃至５８４に出力され、記憶される。スキャンモード信号線から各レジスタにスキャンモード信号が供給された後、クロック信号入力線５０５から入力されるクロック信号にしたがって、レジスタ５８１乃至５８４に記憶されたテスト結果が、スキャンパス線５２５乃至５２７を介して、スキャンパス出力信号線５９１から出力される。
【０００７】
図１０は、半導体集積回路５００にそれぞれ故障箇所として、それぞれゲート信号出力線５７１乃至５７４を設定したときのスキャンテストの概略図である。なお、図１０は、ゲート回路５５１乃至５５４の０縮退に関するスキャンテストについて示したものである。
【０００８】
図１０（ａ）は、半導体集積回路５００中のレジスタ５１１乃至５１４へスキャンパス入力信号線５２０からテストパターンを入力している様子を表している。図１０（ｂ）は、図１０（ａ）で入力されたテストパターンをゲート回路に供給し、レジスタ５８１乃至５８４を通じて、スキャンパス出力信号線５９１からテストの結果を出力している様子を表している。なお、図１０（ａ）、（ｂ）は、テストパターンの入力とテスト結果の出力のみを表示したものであって、その他の動作については、考慮していない。
【０００９】
半導体集積回路５００のスキャンテストにおいて、スキャンパス入力信号線５２０から入力されたテストパターン（０、１、１、０）が、クロック信号入力線５０５から入力されたクロック信号にしたがって、４クロック分の時間を要して、レジスタ５１１乃至５１４へ設定される。次にスキャンパス線５２５乃至５２７から４クロック分の時間をかけて、レジスタ５８１乃至５８４に保持されたスキャンテストの結果がスキャンパス出力信号線５９１から出力される。テストパターン（０、１、１、０）の場合、図１０（ｂ）に示すようにゲート回路５５１乃至５５４の０縮退に関するスキャンテストの結果が出力される。以下、順次、レジスタ５１１乃至５１４へテストパターン（０、１、０、０）、（０、０、０、０）、（０、０、１、０）を設定していくことにより、同様の流れでスキャンテストの結果がスキャンパス出力信号線５９１から出力される。なお、テストパターン（０、１、０、０）、（０、０、０、０）、（０、０、１、０）はそれぞれ図１０（ｂ）に示すようにゲート回路５５１乃至５５４の０縮退に関するスキャンテストの結果が出力される。テストパターン値の設定に４クロック、出力に４クロック要するので、一度のスキャンテストの入出力で合計８クロック要する。半導体集積回路５００のテストにおいては、テストパターン値（０、１、１、０）、（０、１、０、０）、（０、０、０、０）、（０、０、１、０）と４度の入出力が必要になるので、合計で３２クロック分の時間を要する。
【００１０】
上記のようなスキャンテストの手順として、従来から種々のものが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００４−２５８０００号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述の従来技術では、レジスタ間に多数のゲート回路がある場合、制御するノードが多くなるため、故障検出率を上げるためのテストパターンが長くなるという欠点がある。特に今後、チップの回路規模が大きくなるにつれて、テストパターンがより長くなり、スキャンテストに要する時間の増大が深刻な問題になってくる。
【００１２】
そこで、本発明は、スキャンテストに要する時間を短縮することができるスキャンパス回路を生成する装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、スキャンパス生成装置において、半導体集積回路の経路上に故障箇所を設定する設定手段と、前記故障箇所に到達する入力信号線を探索する探索手段と、前記探索された入力信号線の一つと接続されたレジスタであって少なくとも２つのゲート回路と接続されている共通レジスタを検出する検出手段と、前記共通レジスタを複製して冗長レジスタとして生成する生成手段と、前記共通レジスタと並列に前記冗長レジスタを配置して前記共通レジスタおよび前記冗長レジスタと前記ゲート回路との間の接続を分割して接続する接続手段とを具備することを特徴とする。これにより、半導体集積回路のスキャンテストに要する時間を短縮させるという作用をもたらす。
【００１４】
また、本発明の第１の側面において、上記接続手段は、上記冗長レジスタ生成前に上記ゲート回路の数が偶数の場合には上記ゲート回路の半数を上記共通レジスタに接続するとともにその残りを上記冗長レジスタに接続し、上記ゲート回路の数が奇数の場合には｛（上記共通レジスタと接続されたゲート回路数−１）÷２＋１｝個または｛（上記共通レジスタと接続されたゲート回路数−１）÷２｝個のゲート回路を上記共通レジスタに接続するとともにその残りを前記冗長レジスタに接続する構成とすることも可能である。これにより、設定可能なテストパターンの自由度が増すため、半導体集積回路のスキャンテストに要する時間を短縮させるという作用をもたらす。
【００１５】
また、本発明の第１の側面において、上記検出手段は、上記故障箇所に到達する入力信号線の一つと接続されたレジスタが少なくとも２つのゲート回路と接続されていることを検出した場合には上記ゲート回路のテストパターンゲート回路入力値が全て同じ値か否かを判定する判定手段を具備し、上記ゲート回路のテストパターンゲート回路入力値が全て同じと判定された場合には上記生成手段において上記冗長レジスタを生成せず、上記ゲート回路のテストパターンゲート回路入力値が全て同じでないと判定された場合には上記冗長レジスタを生成する構成とすることも可能である。これにより、冗長レジスタを効率的に生成させ、半導体集積回路の回路面積を小さくさせるという作用をもたらす。
【００１６】
また、本発明の第１の側面において、上記接続手段は、上記ゲート回路に入力される上記テストパターンゲート回路入力値が「１」または「０」の一方の場合には上記共通レジスタと接続し、上記ゲート回路に入力される上記テストパターンゲート回路入力値が「１」または「０」の他方の場合には上記冗長レジスタと接続する構成とすることも可能である。これにより、例えば、ゲート回路がＡＮＤ回路であり、かつ０縮退を検出しようとするスキャンテストにおいて、スキャンテストに要する時間を短縮させるという作用をもたらす。
【００１７】
また、本発明の第２の側面は、スキャンパス生成方法において、半導体集積回路の経路上に故障箇所を設定する設定手順と、上記故障箇所に到達する入力信号線を探索する探索手順と、上記探索された入力信号線の１つと接続されたレジスタであって少なくとも２つのゲート回路と接続されている共通レジスタを検出する検出手順と、上記共通レジスタを複製して冗長レジスタとして生成する生成手順と、上記共通レジスタと並列に上記冗長レジスタを配置して上記共通レジスタおよび上記冗長レジスタと上記ゲート回路との間の接続を分割して接続する接続手順とを具備することを特徴とする。これにより、半導体集積回路のスキャンテストに要する時間を短縮させるという作用をもたらす。
【００１８】
また、本発明の第３の側面は、コンピュータ上で実行するスキャンパス生成プログラムにおいて、半導体集積回路の経路上に故障箇所を設定する設定ステップと、上記故障箇所に到達する入力信号線を探索する探索ステップと、上記探索された入力信号線の一つと接続されたレジスタであって少なくとも２つのゲート回路と接続されている共通レジスタを検出する検出ステップと、上記共通レジスタを複製して冗長レジスタとして生成する生成ステップと、上記共通レジスタと並列に上記冗長レジスタを配置して上記共通レジスタおよび上記冗長レジスタと上記ゲート回路との間の接続を分割して接続する接続ステップとをコンピュータに実行させることを特徴とする。これにより、半導体集積回路のスキャンテストに要する時間を短縮させるという作用をもたらす。
【発明を実施するための最良の形態】
【００１９】
次に本発明の第１の実施形態について図面を参照して詳細に説明する。
【００２０】
図１は、本発明の第１の実施形態におけるスキャンパス生成装置の機能ブロック図である。入力回路情報保持部１０１は、最初に設計された半導体集積回路の情報を保持するものである。故障箇所設定部１０２は、入力回路情報保持部１０１に保持されている半導体集積回路中に故障箇所を設定するものである。探索部１０３は、故障箇所設定部１０２において設定された故障箇所に到達するための入力信号線を探索するものである。共通レジスタ検出部１０４は、レジスタが２以上のゲート回路と接続されているか否か検出するものである。テストパターンゲート回路入力値判定部１０５は、所定の故障を検出するためにゲート回路に入力されるべきテストパターンが「１」または「０」であるかを判定するものである。入力テストパターン保持部１０６は、半導体集積回路設計者等が作成したテストパターンを保持するものである。なお、テストパターンゲート回路入力値判定部１０５、入力テストパターン保持部１０６は、その機能が不要な場合は省略可能である。
【００２１】
冗長レジスタ生成部１０７は、一定条件の下、レジスタを複製して、冗長レジスタとして生成するものである。配線接続部１０８は、冗長レジスタ生成部１０７で作成された冗長レジスタおよび共通レジスタとゲート回路との間の接続を生成するものである。回路情報保持部１１１は、新たに生成された半導体集積回路情報を保持するものである。出力テストパターン生成部１０９は、冗長レジスタ生成部１０７、配線接続部１０８によって新たに生成された半導体集積回路についての新たなテストパターンを生成するものである。出力テストパターン保持部１１０は、出力テストパターン生成部１０９で生成された新たなテストパターンを保持するものである。これらは、１つの装置として構成してもよいし、１０１乃至１１１の各機能を有する別々の装置で構成してもよい。
【００２２】
以上のような機能を想定すると、本発明の実施の形態による処理の流れは、図２に示すようになる。図４は、図９に示す半導体集積回路５００に本発明の実施の形態を適用して生成された半導体集積回路２００を示したものである。以下、図２に示す処理の流れを、半導体集積回路５００に適用した場合について図４および図９を一例として挙げながら説明する。なお、第１の実施形態では、テストパターンゲート回路入力値判定部１０５および入力テストパターン保持部１０６は、省略されているものとして説明する。また、図２中ステップＳ９１５についても同様である。
【００２３】
第１の実施形態の実施の前提として半導体集積回路の情報が必要である。この情報は、例えば、図９に示された半導体集積回路５００の回路図等が該当する。この情報は、入力回路情報保持部１０１に保持されている。
【００２４】
まず、故障箇所設定部１０２において、この半導体集積回路に故障箇所が設定される（ステップＳ９１１）。例えば、図９の半導体集積回路５００の出力信号線５７２において故障を検出しようとする場合に、その出力信号線５７２が故障箇所として設定される。
【００２５】
故障箇所が設定されると、次に探索部１０３によって故障箇所に到達する入力信号線が探索される（ステップＳ９１２）。そして、このようにして探索された多数の入力信号線の中から一つずつ選択され（ステップＳ９１３）、以下の手順が繰り返される。
【００２６】
共通レジスタ検出部１０４において、選択された入力信号線に接続されたレジスタが２以上のゲート回路と接続されているかどうかが検出される（ステップＳ９１４）。図９の半導体集積回路５００におけるレジスタ５１２は、ゲート信号入力線５３２を通じて、ＡＮＤゲート回路５５１乃至５５４と接続され、レジスタ５１３は、ゲート信号入力線５３３を通じて、ＡＮＤゲート回路５５１乃至５５４と接続されている。したがって、レジスタ５１２ならびに５１３については、ステップＳ９１４では、検出結果は"ＹＥＳ"となる。一方、レジスタ５１１ならびに５１４は、それぞれゲート信号入力線５３０ならびに５３９を通じて、それぞれＯＲゲート回路５５５ならびに５５６としか接続されていないので、ステップＳ９１４では、検出結果は、"ＮＯ"となる。ここで、以下の説明において、２以上のゲート回路と接続されているレジスタを共通レジスタということとする。
【００２７】
ステップＳ９１４の検出結果が"ＮＯ"の場合、そのレジスタは、２以上のゲート回路と接続されていないことになる。この場合は、冗長レジスタ生成部１０７で、冗長レジスタは生成されない（Ｓ９１７）。このため、半導体集積回路５００中のレジスタ５１１ならびに５１４に対応する半導体集積回路２００中のレジスタ２１１ならびに２１６には、冗長レジスタは生成されない。
【００２８】
上記述べたように第１の実施形態では、テストパターンゲート回路入力値判定部１０５、入力テストパターン保持部１０６は、その機能が不要で省略してあり、これらの機能に対応するステップＳ９１５もない。したがって、ステップＳ９１４で"ＹＥＳ"と判定された後は、冗長レジスタ生成・配線処理が行われる（Ｓ９１６）。  
【００２９】
図３は、第１の実施形態において、ステップＳ９１６における冗長レジスタ生成・配線処理の具体的な流れを示したものである。以下、第１の実施形態における冗長レジスタ生成・配線処理について図３を用いて説明する。
【００３０】
まず、冗長レジスタ生成部１０７で、共通レジスタには、冗長レジスタが生成される（Ｓ９２１）。冗長レジスタが生成された後、共通レジスタへのレジスタ入力信号線が新レジスタと冗長レジスタに並列に接続される（ステップＳ９２２）。なお、上記、新レジスタとは、冗長レジスタと並列に接続されるレジスタをいい、以下の説明においても使用する。
【００３１】
例えば、図９の半導体集積回路５００にこのステップＳ９２１を適用すると、共通レジスタ５１２および５１３は、それぞれ図４の半導体集積回路２００中の新レジスタ２１２と冗長レジスタ２１３ならびに新レジスタ２１４と冗長レジスタ２１５の２つのレジスタに置き換えられる。また、ステップＳ９２２において、配線接続部１０８で、半導体集積回路５００中のレジスタ信号入力線５０２および５０３が、半導体集積回路２００中のレジスタ信号入力線２０２および２０３になる。これらは、それぞれ新レジスタ２１２と冗長レジスタ２１３ならびに新レジスタ２１４と冗長レジスタ２１５に並列接続されている。
【００３２】
次に、配線接続部１０８で、共通レジスタからゲート回路へのゲート信号入力線の数が、奇数か偶数か判断される（ステップＳ９２３）。例えば、半導体集積回路５００においては、共通レジスタ５０２および５０３は、ゲート信号入力線５３２および５３３を通じて、ＡＮＤゲート回路５５１乃至５５４の４つのＡＮＤゲート回路に接続されているので、ステップＳ９２２では、半導体集積回路５００は偶数と判断される。
【００３３】
偶数と判断された場合、例えば、図面上方から順に｛（共通レジスタと接続されたゲート回路数）÷２｝本分が新レジスタに接続され、残りが冗長レジスタに接続される（ステップＳ９２３）。例えば、半導体集積回路５００にステップＳ９２３を適用すると、図１に示すように半導体集積回路２００において、新レジスタ２１２は、それぞれゲート信号入力線２３２を通じて、それぞれＡＮＤゲート回路入力部２４１、２４３と接続され、冗長レジスタ２１３は、ゲート信号入力線２３４を通じて、それぞれＡＮＤゲート回路入力部２４５、２４７と接続される。同様に新レジスタ２１４は、それぞれゲート信号入力線２３３を通じて、それぞれＡＮＤゲート回路入力部２４２、２４４と接続され、冗長レジスタ２１５は、ゲート信号入力線２３５を通じて、それぞれＡＮＤゲート回路入力部２４６、２４８と接続される。
【００３４】
奇数と判断された場合、紙面上方から順に｛（共通レジスタと接続されたゲート回路数−１）÷２＋１｝本分が新レジスタに接続され、残りが冗長レジスタに接続される（ステップＳ９２３）。また、｛（共通レジスタと接続されたゲート回路数−１）÷２｝本分が新レジスタに接続され、残りが冗長レジスタに接続されるとしてもよい。
【００３５】
以上のステップが終了すると探索部１０３で全入力信号線が終了したか否か判断され（Ｓ９１７）、全入力信号線について行うことによって、半導体集積回路５００から半導体集積回路２００が生成される。
【００３６】
なお、生成された半導体集積回路の情報は、回路情報保持部１１１に保持されることになる。また、生成された半導体集積回路についての新たなテストパターンが出力テストパターン生成部１０９で生成され、この情報は、出力テストパターン保持部１１０で保持される。
【００３７】
次に本発明の第１の実施形態の実施の結果として作成された半導体集積回路２００の効果を説明する。図５は、半導体集積回路２００と半導体集積回路５００にそれぞれ故障箇所として、それぞれゲート信号出力線２７１乃至２７４、ゲート信号出力線５７１乃至５７４を設定したときのスキャンテストの概略図である。なお、図５は、ゲート回路２５１乃至２５４の０縮退に関するスキャンテストについて示したものである。
図５（ａ）は、既に説明したスキャンテストの動作にしたがって、半導体集積回路２００中のレジスタ２１１、２１６、新レジスタ２１２、２１４ならびに冗長レジスタ２１３、２１５へスキャンパス入力信号線２２０からテストパターンを入力している様子を表している。図（ｂ）は、図（ａ）で入力されたテストパターンをゲート回路に供給し、レジスタ２８１乃至２８４を通じて、スキャンパス出力信号線２９１からスキャンテストの結果を出力している様子を表している。
図５（ｃ）および（ｄ）は、半導体集積回路５００に関するスキャンテストのテストパターンの入出力の様子を表している。これらは、それぞれ図１０（ａ）および（ｂ）に対応し、上記説明したので詳細は省略する。なお、図５の（ａ）乃至（ｄ）は、テストパターンの入力とテスト結果の出力のみを表示したものであって、その他の動作については、考慮していない。
【００３８】
半導体集積回路２００のテストパターンの入出力を表す図５（ａ）、（ｂ）と半導体集積回路５００のテストパターンの入出力を表す図５（ｃ）、（ｄ）を比較する。なお、半導体集積回路２００において、ゲート回路２５１乃至２５４の０縮退に関するスキャンテストは、（レジスタ２１１、新レジスタ２１２、冗長レジスタ２１３、新レジスタ２１４、冗長レジスタ２１５、レジスタ２１６）それぞれに（０、１、０、１、１、０）、（０、０、１、０、０、０）の２テストパターンを設定すれば可能である。これは、出力テストパターン生成部１０９で生成される。また、半導体集積回路５００においては、上述のようにゲート回路５５１乃至５５４の０縮退に関するスキャンテストは、（レジスタ５１１、共通レジスタ５１２、レジスタ５１３、共通レジスタ５１４）それぞれに（０、１、１、０）、（０、１、０、０）、（０、０、０、０）、（０、０、１、０）の４テストパターンを設定すれば可能である。
半導体集積回路２００の方は、スキャンパス入力信号線２２０から入力されたテストパターンをクロック信号入力線２０５から入力されたクロック信号にしたがって、スキャンパス線２２１乃至２２５を通じて、６クロック分の時間を要して、（レジスタ２１１、新レジスタ２１２、冗長レジスタ２１３、新レジスタ２１４、冗長レジスタ２１５、レジスタ２１６）へテストパターン（０、１、１、０、１、０）が設定される。次にスキャンパス線２２７乃至２２９から４クロック分の時間を要して、レジスタ２８１乃至２８４に保持されたスキャンテストの結果がスキャンパス出力信号線２９１から出力される。テストパターン（０、１、１、０、１、０）の場合、図５（ｂ）に示すようにゲート回路２５１ならびに２５３の０縮退に関するスキャンテストの結果が出力される。（レジスタ２１１、新レジスタ２１２、冗長レジスタ２１３、新レジスタ２１４、冗長レジスタ２１５、レジスタ２１６）それぞれにテストパターン（０、０、０、１、０、０）を設定すると、同様の流れでスキャンテストの結果がスキャンパス出力信号線２９１から出力される。テストパターン（０、０、０、１、０、０）の場合、図５（ｂ）に示すようにゲート回路２５２ならびに２５４に関する０縮退のスキャンテストの結果が出力される。テストパターンの設定に６クロック、出力に４クロックを要するので、一度のスキャンテストの入出力で合計１０クロックを要する。半導体集積回路２００のテストにおいては、テストパターン（０、１、０、１、１、０）、（０、０、１、０、０、０）と２度の入出力が必要になるので、合計で２０クロック分の時間を要する。これに対し、半導体集積回路５００では、上述のように３２クロック分の時間を要するため、本発明の実施の形態によってスキャンテストに要する時間が短縮されたことがわかる。
【００３９】
以上のように本発明の第１の実施形態の実施によって、作成された半導体集積回路２００は、半導体集積回路５００に比べて、ゲート回路の０縮退に関するスキャンテストをする時間が短くなり、スキャンテストに適した回路構成になったと言える。
【００４０】
以上は、半導体集積回路２００について、述べたが、冗長レジスタを設けると設定可能なテストパターンの自由度が増すため、その他の構成の半導体集積回路におけるスキャンテストに要する時間も短くなる。従って、その他の半導体集積回路についても本発明の効果は奏される。
【００４１】
次に、本発明の第２の実施形態について、図１、図２、図７、図９を使って説明する。なお、図７は、本発明の第２の実施形態を半導体集積回路５００に適用して生成された半導体集積回路３００を示す図である。
【００４２】
また、第２の実施形態は、主としてゲート回路がＡＮＤ回路であり、かつ、「０」に縮退しているゲート回路を検出することを想定したものである。
【００４３】
第２の実施形態では、上記第１の実施形態と違って、図１の機能ブロックにおいて、テストパターンゲート回路入力値判定部１０５、入力テストパターン保持部１０６は含まれる。これに対応して、図２中ステップＳ９１５も含まれる。なお、ステップＳ９１１乃至Ｓ９１４までは、第２の実施形態の場合も、上記第１の実施形態と同じであるので説明を省略することとする。
【００４４】
スキャンテストにおいて、ゲート回路がＡＮＤ回路であり、かつ、「０」に縮退しているゲート回路を検出しようとするものである場合、そのＡＮＤゲート回路に入力されるテストパターンゲート回路入力値は、一義的に決まる。ここでテストパターンゲート回路入力値とは、スキャンテストにおいて、ゲート回路入力部に入力される入力値をいう。例えば、図９に示す半導体集積回路５００のＡＮＤゲート回路入力部（５４１、５４２、５４３、５４４、５４５、５４６、５４７、５４８）においては、テストパターンゲート回路入力値は、ＡＮＤゲート回路３５１乃至３５４の０縮退の検出については、（１、１、１、０、０、１、０，０）である。
【００４５】
２以上のＡＮＤゲート回路に入力されるテストパターンゲート回路入力値が全て同一の値である場合は、レジスタ１つから一度に、ゲート回路へテストパターンゲート回路入力値を供給できる。一方、２以上のＡＮＤゲート回路に入力されるテストパターンゲート回路入力値が全て同一の値でない場合、テストパターン値は「１」と「０」の２通りなので、レジスタ２つで一度に、ゲート回路へテストパターンゲート回路入力値を供給できる。そこでステップＳ９１４での検出結果が、"ＹＥＳ"の場合、レジスタと接続されている２以上のＡＮＤゲート回路に入力されるテストパターンゲート回路入力値が、全て同一の値か否かをテストパターンゲート回路入力値判定部１０５で判定する（Ｓ９１５）。
【００４６】
ステップＳ９１５でテストパターンゲート回路入力値が、全て同一の値と判定された場合、冗長レジスタ生成部１０７で、冗長レジスタは生成されない。上述のように２以上のＡＮＤゲート回路に入力されるテストパターンゲート回路入力値が全て同一の値である場合は、レジスタ１つで足りるからである。
【００４７】
ステップＳ９１５を、以下、図９に示す半導体集積回路５００に適用する。図９に示す半導体集積回路５００において、ＡＮＤゲート回路５５１乃至５５４が０縮退しているか否かを検出するためには、ＡＮＤゲート回路入力部（５４１、５４２、５４３、５４４、５４５、５４６、５４７、５４８）におけるテストパターンゲート回路入力値が、（１、１、１、０、０、１、０，０）であることを要する。共通レジスタ５１２が信号を供給するのは、ＡＮＤゲート回路入力部（５４１、５４３、５４５、５４７）で、そのテストパターンゲート回路入力値は、（１、１、０、０）であり、テストパターンゲート回路入力値が、全て同一の値でない。また、共通レジスタ５１３が信号を供給するのは、ＡＮＤゲート回路入力部（５４２、５４４、５４６、５４８）で、そのテストパターンゲート回路入力値は、（１、０、１、０）であり、テストパターンゲート回路入力値が、全て同一の値でない。  
【００４８】
ステップＳ９１５でテストパターンゲート回路入力値が、全て同一の値と判定されなかった場合、冗長レジスタ生成部１０７ならびに配線接続部１０８において、冗長レジスタ生成・配線処理が行われる（Ｓ９１６）。
【００４９】
図６は、第２の実施形態において、ステップＳ９１６における冗長レジスタ生成・配線処理の具体的な流れを示したものである。以下、第２の実施形態における冗長レジスタ生成・配線処理について図６を用いて説明する。
【００５０】
冗長レジスタ生成部１０７で、冗長レジスタが生成される（Ｓ９３１）。冗長レジスタが生成された後、共通レジスタへのレジスタ入力信号線が新レジスタと冗長レジスタに並列に接続される（ステップＳ９３２）。例えば、半導体集積回路５００の共通レジスタ５１２および５１３へのレジスタ信号入力線５０２および５０３は、配線接続部１０８で、半導体集積回路３００中のレジスタ信号入力線３０２および３０３になる。これらは、それぞれ新レジスタ３１２と冗長レジスタ３１３、新レジスタ３１４と冗長レジスタ３１５を並列接続している。
【００５１】
次にレジスタからのゲート回路入力信号線の１つを選択し（Ｓ９３３）、選択したゲート回路入力信号線に接続されているＡＮＤゲート回路入力部のテストパターンゲート回路入力値が「０」であるか否かが配線接続部１０８で判定される（Ｓ９３４）。
【００５２】
ここでテストパターンゲート回路入力値が「０」でないと判定された場合は、新レジスタとそのＡＮＤゲート回路が接続される（Ｓ９３５）。一方、テストパターンゲート回路入力値が「０」であると判定された場合は、冗長レジスタとそのＡＮＤゲート回路が接続される（Ｓ９３６）。なお、テストパターンゲート回路入力値が「０」でないと判定された場合、冗長レジスタとそのＡＮＤゲート回路が接続され、一方、テストパターンゲート回路入力値が「０」であると判定された場合は、新レジスタとそのＡＮＤゲート回路が接続されるとしてもよい。
【００５３】
以下、半導体集積回路５００において、上記ステップＳ９３３乃至Ｓ９３６を適用する。ステップＳ９３３において、半導体集積回路５００の、例えば、ゲート回路入力信号線５３３を選択したとする。次にステップＳ９３４において、ゲート回路入力信号線５３３が接続されているＡＮＤゲート回路入力部５４３のテストパターンゲート回路入力値が「０」であるか否かが配線接続部１０８で判定される。ＡＮＤゲート回路入力部のテストパターンゲート回路入力値は上述のように「１」である。したがって、ステップ９３５において、ＡＮＤゲート回路入力部５４１は、新レジスタ３１２と接続されることになる。
【００５４】
一方、半導体集積回路５００の、例えば、ゲート回路入力信号線５３４を選択したとする。次にステップＳ９３４において、ゲート回路入力信号線５３４が接続されているＡＮＤゲート回路入力部５４４のテストパターンゲート回路入力値が「０」であるか否かが配線接続部１０８で判定される。ＡＮＤゲート回路入力部のテストパターンゲート回路入力値は上述のように「０」である。したがって、ステップ９３６において、ＡＮＤゲート回路入力部５４１は、冗長レジスタ３１３と接続されることになる。
【００５５】
以上の流れを全てのゲート入力信号線について行う（Ｓ９３７）。その結果、新レジスタならびに生成された冗長レジスタとゲート回路の配線接続が決まり、図９の半導体集積回路５００の場合、図７の半導体集積回路３００のようになる。つまり、新レジスタ３１２は、ゲート信号入力線３３２を通じて、ＡＮＤゲート回路入力部３４１および３４３と接続され、冗長レジスタ３１３は、ゲート信号入力線３３３を通じて、ＡＮＤゲート回路入力部３４５および３４７と接続される。同様に新レジスタ３１４は、ゲート信号入力線３３４を通じて、ＡＮＤゲート回路入力部３４２および３４６と接続され、冗長レジスタ３１５は、ゲート信号入力線３３５を通じて、ＡＮＤゲート回路入力部３４４および３４８と接続される。
【００５６】
次に本発明を実施の結果、作成された半導体集積回路３００の効果を説明する。図８は、半導体集積回路３００と半導体集積回路５００にそれぞれ故障箇所として、それぞれゲート信号出力線３７１乃至３７４、ゲート信号出力線５７１乃至５７４を設定したときのスキャンテストの概略図である。なお、図８は、０縮退に関するスキャンテストについて示したものである。
図８（ａ）は、既に説明したスキャンテストの動作にしたがって、半導体集積回路３００中のレジスタ３１１、新レジスタ３１２、冗長レジスタ３１３、新レジスタ３１４、冗長レジスタ３１５、レジスタ３１６へスキャンパス入力信号線３２０からテストパターンを入力している様子を表している。図８（ｂ）は、図８（ａ）で入力されたテストパターンをゲート回路に供給し、レジスタ３８１乃至３８４を通じて、スキャンパス出力信号線３９１からスキャンテストの結果を出力している様子を表している。
図８（ｃ）および（ｄ）は、半導体集積回路５００に関するスキャンテストのテストパターンの入出力の様子を表している。これらは、それぞれ図１０（ａ）および（ｂ）に対応し、上記説明したので詳細は省略する。なお、図５の（ａ）乃至（ｄ）は、テストパターンの入力とテスト結果の出力のみを表示したものであって、その他の動作については、考慮していない。
【００５７】
半導体集積回路３００のテストパターンの入出力を表す図８（ａ）、（ｂ）と半導体集積回路５００のテストパターンの入出力を表す図５（ｃ）、（ｄ）を以下比較する。なお、半導体集積回路３００において、ＡＮＤゲート回路３５１乃至３５４の０縮退に関するスキャンテストは、（レジスタ３１１、新レジスタ３１２、冗長レジスタ３１３、新レジスタ３１４、冗長レジスタ３１５、レジスタ３１６）それぞれに（０、０、１、０、１、０）の１テストパターンを設定すれば可能である。これは、出力テストパターン生成部１０９で生成される。半導体集積回路３００の方は、スキャンパス入力信号線３２０から入力されたテストパターン値をクロック信号入力線３０５から入力されたクロック信号にしたがって、スキャンパス線３２１乃至３２５を通じて、６クロック分の時間を要して、（レジスタ３１１、新レジスタ３１２、冗長レジスタ３１３、新レジスタ３１４、冗長レジスタ３１５、レジスタ３１６）へテストパターン値（０、０、１、０、１、０）が設定される。
【００５８】
次にスキャンパス線３２７乃至３２９から４クロック分の時間を要して、レジスタ３８１乃至３８４に保持されたスキャンテストの結果がスキャンパス出力信号線３９１から出力される。テストパターン値（０、０、１、０、１、０）の場合、図７（ｂ）に示すようにＡＮＤゲート回路３５１乃至３５４の０縮退に関するスキャンテストの結果が出力される。テストパターン値の設定に６クロック、出力に４クロック要するので、一度のスキャンテストの入出力で合計１０クロック要する。半導体集積回路３００のテストにおいては、テストパターン値（０、０、１、０、１、０）でＡＮＤゲート回路３５１乃至３５４が「０」に縮退しているかどうかわかる。したがって、合計で１０クロック分の時間を要する。
【００５９】
一方、これに対し、半導体集積回路５００では、上述のように３２クロック分の時間を要するため、本発明の実施の形態によってスキャンテストに要する時間が著しく短縮されたことがわかる。
【００６０】
以上のように本発明の実施によって、作成された半導体集積回路３００は、半導体集積回路５００に比べて、ＡＮＤゲート回路が「０」に縮退しているかどうか検出する時間が短くなり、スキャンテストに適した回路構成になったと言える。
【００６１】
なお、本発明の第１の実施形態、第２の実施形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラムとして捉えてもよい。
【産業上の利用可能性】
【００６２】
本発明の活用例として、例えば、設計した半導体集積回路から更に効率的にスキャンテストを行える形態の半導体集積回路を生成しようとする際に本発明を適用することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施形態におけるスキャンパス生成装置の機能ブロックの一例を示す図である。
【図２】本発明の実施の形態による処理の流れを示す図である。
【図３】本発明の第１の実施形態における冗長レジスタ生成・配線処理の流れを示す図である。
【図４】本発明の第１の実施形態を半導体集積回路５００に適用して生成された半導体集積回路２００を示す図である。
【図５】半導体集積回路２００および半導体集積回路５００におけるテストパターンの入出力の様子を示した図である。
【図６】本発明の第２の実施形態における冗長レジスタ生成・配線処理の流れを示す図である。
【図７】本発明の第２の実施形態を半導体集積回路５００に適用して生成された半導体集積回路３００を示す図である。
【図８】半導体集積回路３００および半導体集積回路５００におけるテストパターンの入出力の様子を示した図である。
【図９】従来からある半導体集積回路５００を示す図である。
【図１０】半導体集積回路５００におけるテストパターンの入出力の様子を示した図である。
【符号の説明】
【００６４】
１０１    入力回路情報保持部
１０２    故障箇所設定部
１０３    探索部
１０４    共通レジスタ検出部
１０５    テストパターンゲート回路入力値判定部
１０６    入力テストパターン保持部
１０７    冗長レジスタ生成部
１０８    配線接続部
１０９    出力テストパターン生成部
１１０    出力テストパターン保持部
１１１    回路情報保持部
【図１】
2006215759.tif 000003
【図２】
2006215759.tif 000004
【図３】
2006215759.tif 000005
【図４】
2006215759.tif 000006
【図５】
2006215759.tif 000007
【図６】
2006215759.tif 000008
【図７】
2006215759.tif 000009
【図８】
2006215759.tif 000010
【図９】
2006215759.tif 000011
【図１０】
2006215759.tif 000012