(57)【要約】【課題】故障箇所特定のために多くの時間を必要とせず、且つ故障箇所の絞込みの精度を上げることができるスキャンテスト回路を提供する。【解決手段】組合せ論理回路ブロック２００内のバッファ回路をセレクト機能付きのバッファ回路２０７とし、ＮＯＲ回路２０３の出力端子から制御される本来のバッファ回路の入力端子に加えて、ＳＣＡＮ＿ＩＮ端子からのスキャンテスト用のデータをラッチするスキャンフリップフロップ１０３の出力端子Ｑから制御される入力端子を設けた。また、そのバッファ回路２０７のセレクト端子の制御が、ＳＣＡＮ＿ＮＴ端子からのデータ切換信号をラッチするフリップフロップ１０６の出力端子Ｑから制御されるよう構成した。【選択図】図１
2006242781.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理回路からなる組合せ論理回路ブロックと該組合せ論理回路ブロックの入出力をラッチするスキャンフリップフロップで構成されたスキャンテスト回路において、
前記複数の論理回路のうちの少なくとも一つをセレクト機能付き論理回路とし、該セレクト機能付き論理回路のセレクタ端子と少なくとも一つの入力端子をスキャンテスト回路外部から制御可能としたことを特徴とするスキャンテスト回路。
【請求項２】
請求項１記載のスキャンテスト回路において、前記セレクト機能付き論理回路の前記入力端子の制御が、スキャンテスト用のデータをスキャンテスト回路外部から入力するスキャンデータ入力端子から行われるよう構成したことを特徴とするスキャンテスト回路。
【請求項３】
請求項２記載のスキャンテスト回路において、前記セレクト機能付き論理回路の前記入力端子の制御が、前記スキャンテスト用のデータをラッチする前記スキャンフリップフロップの出力端子から行われるよう構成したことを特徴とするスキャンテスト回路。
【請求項４】
請求項１ないし３のいずれかに記載のスキャンテスト回路において、前記セレクト機能付き論理回路の前記セレクト端子の制御が、前記スキャンフリップフロップの入力先を切り換えるデータ切換信号をスキャンテスト回路外部から入力するデータ切換端子から行われるよう構成したことを特徴とするスキャンテスト回路。
【請求項５】
請求項４記載のスキャンテスト回路において、前記データ切換信号をラッチするフリップフロップをさらに設け、前記セレクト機能付き論理回路の前記セレクト端子の制御が前記フリップフロップの出力端子から行われるよう構成したことを特徴とするスキャンテスト回路。
【請求項６】
請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、任意の論理回路を、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とするスキャンテスト回路の設計方法。
【請求項７】
請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、タイミングマージンがしきい値より小さい論理回路を抽出し、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とするスキャンテスト回路の設計方法。
【請求項８】
請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、駆動能力がしきい値より小さい論理回路を抽出し、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とするスキャンテスト回路の設計方法。
【請求項９】
請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、接続されたパスのうちの少なくとも一つの遅延がしきい値より大きい論理回路を抽出し、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とするスキャンテスト回路の設計方法。
【請求項１０】
請求項６ないし９のいずれかに記載のスキャンテスト回路の設計方法において、セレクト機能付き論理回路は、置き換えられる論理回路と内部素子の配置位置が同一であることを特徴とするスキャンテスト回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、故障箇所を特定する故障診断のためのスキャンテスト回路およびスキャンテスト回路の設計方法に関する。
【背景技術】
【０００２】
ＬＳＩのテストは製造したＬＳＩが正常に動作することを確認するために行う。ＬＳＩの動作が正常か否かは入力信号列に対する出力信号列で判断される。ＬＳＩの内部回路には、入力信号の組合せにより一義的に出力が決まるランダムロジックと、信号が入力される前の回路の状態によって出力が変わる順序回路とがある。ランダムロジックと比較して順序回路では、回路のすべての状態をテストするための入力信号列（テストパターン）が大きくなる。
【０００３】
ＬＳＩの故障の原因にはトランジスタの不良、配線の断線、短絡などの多くの原因がありその影響も異なるが、多くのＬＳＩテストは回路ロジックの特定場所が‘１’または‘０’に固定されてしまう縮退故障（ｓｔｕｃｋ−ａｔ  ｆａｕｌｔ）と言う故障モードを前提としている。この故障を検出するためのテストパターンは、回路のすべての状態を再現する場合と比べて大幅に小さくすることができる。また、ランダムロジックについては縮退故障を仮定したテストパターンを自動的に生成するアルゴリズムが開発されている（ＡＴＰＧ）。
【０００４】
しかし、近年、ＬＳＩの微細化に伴い回路規模の増加と回路の複雑化が進んでいる。テストパターンの長さは、回路規模が大きくなると指数関数的に増大する。したがって、規模が大きい、あるいは多くの順序回路を含むＬＳＩでは、通常の入出力ピンを通してのテストではテストパターンが実用上耐えられない程度に増加する。また、このような回路のテストパターンを手動で生成することも実質的には不可能である。
【０００５】
このように回路規模の増加と回路の複雑化により起こるテストの困難さとテストコストの増加を回避するために、ＬＳＩ回路設計時に付加的な回路を付け加え、テストを容易化するための手法が数多く提案されている。
【０００６】
このうちの一つにスキャンテスト法と呼ばれるテスト容易化手法がある。これは順序回路に使用されるフリップフロップの入出力を直接制御できる形に置き換えるとともに、これらのフリップフロップを直列に接続して各フリップフロップのセット値を外部から順次送り込み所望の値とする方法である。フリップフロップを外部からセットすることによりテストパターンを自動的に発生することができるため、順序回路をテスト時にランダムロジックとして取り扱うことができる（例えば、非特許文献１参照。）。
【０００７】
以下、スキャンテスト法を利用して順序回路内の故障箇所を特定する従来の手法について、図９に示す回路構成を例にして説明する。図９に示すスキャンテスト回路は、入力端子ＩＮ＿Ａ、ＩＮ＿Ｂ、ＩＮ＿Ｃと出力端子ＯＵＴ＿Ａ、ＯＵＴ＿Ｂを有し、これらの端子がフリップフロップを介して組合せ論理回路ブロックに接続された順序回路において、各フリップフロップがスキャンフリップフロップ（その入出力を外部より直接制御できるフリップフロップ）に置き換えられ、なおかつ、任意のスキャンフリップフロップが直列に接続された構成となっている。
【０００８】
図９において、スキャンテスト回路１００は、複数の論理回路からなる組合せ論理回路ブロック２００と、組合せ論理回路ブロック２００の入力および出力をそれぞれラッチするためのスキャンフリップフロップ１０１〜１０５からなる。
【０００９】
つまり、通常動作時には、入力側のスキャンフリップフロップ１０１〜１０３は入力端子ＩＮ＿Ａ、ＩＮ＿Ｂ、ＩＮ＿Ｃからのデータをラッチして組合せ論理回路ブロック２００の入力Ｑ１、Ｑ２、Ｑ３とし、出力側のスキャンフリップフロップ１０４、１０５は組合せ論理回路ブロック２００の出力Ｄ１、Ｄ２をラッチして出力端子ＯＵＴ＿Ａ、ＯＵＴ＿Ｂへ出力する。
【００１０】
一方、スキャン動作時には、入力側のスキャンフリップフロップ１０１〜１０３はそれぞれの入力端子ＤＴに入力されるデータをラッチして組合せ論理回路ブロックの入力Ｑ１、Ｑ２、Ｑ３とし、出力側のスキャンフリップフロップ１０４、１０５もそれぞれの入力端子ＤＴに入力されるデータをラッチして出力端子ＯＵＴ＿Ａ、ＯＵＴ＿Ｂへ出力する。
【００１１】
組合せ論理回路ブロック２００は、スキャンフリップフロップ１０２の出力Ｑ３を入力とするバッファ回路２０１と、スキャンフリップフロップ１０１の出力Ｑ２とバッファ回路２０１の出力Ｎ１を入力とするＡＮＤ回路２０２と、スキャンフリップフロップ１０３の出力Ｑ１とバッファ回路２０１の出力Ｎ１を入力とするＮＯＲ回路２０３と、ＮＯＲ回路２０３の出力Ｎ３を入力とするバッファ回路２０４と、ＡＮＤ回路２０２の出力Ｎ２とバッファ回路２０４の出力Ｎ４を入力とするＮＡＮＤ回路２０５と、ＡＮＤ回路２０２の出力Ｎ２とバッファ回路２０４の出力Ｎ４を入力とするＮＯＲ回路２０６と、からなり、ＮＡＮＤ回路２０５の出力Ｄ１をスキャンフリップフロップ１０４の入力端子Ｄへ出力し、ＮＯＲ回路２０６の出力Ｄ２をスキャンフリップフロップ１０５の入力端子Ｄへ出力する。
【００１２】
また、ＳＣＡＮ＿ＮＴ端子（データ切換端子）は、スキャンフリップフロップの入力先を切り換える信号（データ切換信号）を各スキャンフリップフロップのＮＴ端子へ出力する。各スキャンフリップフロップはデータ切換信号に従って入力先を切り換える。つまり、通常動作時には入力端子Ｄへ入力されるデータをラッチし、スキャン動作時には入力端子ＤＴに入力されるデータをラッチする。その結果、各スキャンフリップフロップは、スキャン動作時にそれぞれ他のスキャンフリップフロップと直列接続することになる。例えばスキャンフリップフロップ１０５は、スキャン動作時にスキャンフリップフロップ１０３の出力Ｑ１を入力端子ＤＴにて取り込むことで、スキャンフリップフロップ１０３と直列に接続される。なお、その他のスキャンフリップフロップの直列接続に関しては説明を省略する。
【００１３】
次に、組合せ論理回路ブロック２００内の故障箇所を推定するためのスキャンテスト回路１００の動作について、図１０に示すタイミングチャートを用いて説明する。
まず、ＳＣＡＮ＿ＮＴ端子から通常動作モードを示す信号（ここでは、データ切換信号がハイレベル‘Ｈ’の場合）が入力されている期間では、入力側のスキャンフリップフロップ１０１、１０２、１０３は入力端子ＩＮ＿Ａ、ＩＮ＿Ｂ、ＩＮ＿Ｃから送られてきたデータをＳＣＡＮ＿ＣＬＫの立ち上がりで取り込み、その取り込んだデータを保持した状態で出力Ｑ２、Ｑ３、Ｑ１として出力し、組合せ論理回路ブロック２００の出力Ｄ１、Ｄ２を決定する。この出力Ｄ１、Ｄ２は、次のＳＣＡＮ＿ＣＬＫの立ち上がりで出力側のスキャンフリップフロップ１０４、１０５にラッチされ、出力端子ＯＵＴ＿Ａ、ＯＵＴ＿Ｂ（ＳＣＡＮ＿ＯＵＴ端子）へ出力される。以上の動作を繰り返すことにより順序回路としての動作が行われる。
【００１４】
例えば、図１０に示す例では、第１のクロックの立ち上がりにおいてスキャンフリップフロップ１０３が入力端子ＩＮ＿Ｃに入力されているデータＳ１＿Ｃをラッチして組合せ論理回路ブロック２００へ出力する（出力Ｑ１）。同様に、スキャンフリップフロップ１０１、１０２も第１のクロックの立ち上がりにおいて入力端子ＩＮ＿Ａ、Ｂに入力されているデータＳ１＿Ａ、Ｂをラッチして組合せ論理回路ブロック２００へ出力する（出力Ｑ２、３）。その結果、組合せ論理回路ブロックの出力Ｄ２は「Ｓ１」に決定され、第２のクロックの立ち上がりにおいてスキャンフリップフロップ１０５がデータＳ１（出力Ｄ２）をラッチしてＳＣＡＮ＿ＯＵＴ端子へ出力する。
【００１５】
ＳＣＡＮ＿ＮＴ端子からスキャンモードを示す信号（ここでは、データ切換信号がロウレベル‘Ｌ’の場合）が入力されるスキャン動作時には、各スキャンフリップフロップ１０１〜１０５は入力端子ＤＴから入力されるデータをラッチして出力端子Ｑから出力する回路となる。つまり、ＳＣＡＮ＿ＮＴ端子が‘Ｌ’の期間に、例えばスキャンフリップフロップ１０３はＳＣＡＮ＿ＩＮ端子（スキャンデータ入力端子）に入力されたスキャンテスト用のデータ（ＳＣＡＮ入力）をＳＣＡＮ＿ＣＬＫの立ち上がりで取り込んで出力Ｑ１として出力する。このようにしてスキャンフリップフロップ１０１〜１０３から出力される出力Ｑ１〜Ｑ３により組合せ論理回路ブロック２００の出力Ｄ１、Ｄ２がＳＣＡＮ出力状態に決定される。一方、スキャンフリップフロップ１０３に直列接続されたスキャンフリップフロップ１０５は、ＳＣＡＮ＿ＮＴ端子が‘Ｌ’の期間に入力端子ＤＴへ入力されたスキャンフリップフロップ１０５の出力（Ｓ２＿Ｃ）をＳＣＡＮ＿ＣＬＫの立ち上がりでラッチして出力端子ＯＵＴ＿Ｂ（ＳＣＡＮ＿ＯＵＴ端子）へ出力する。その後、ＳＣＡＮ＿ＮＴ端子を‘Ｈ’に戻した後のＳＣＡＮ＿ＣＬＫの立ち上がりでスキャンフリップフロップ１０５はＳＣＡＮ出力状態（出力Ｄ２）をラッチしてＳＣＡＮ＿ＯＵＴ端子へ出力する。
【００１６】
このように、ＳＣＡＮ＿ＩＮ端子から入力した任意のデータにより決定されるスキャン出力状態を期待値としてＳＣＡＮ＿ＯＵＴ端子から取り出すことにより、組合せ論理回路ブロック２００内の故障箇所を推定することが可能となる。
【００１７】
続いて、スキャンテスト回路を設計するための基本的なプログラムについて、図１１に示すアルゴリズムを用いて説明する。
図１１に示すように、順序回路の論理回路設計が終わった後、順序回路に使用されるフリップフロップのスキャンフリップフロップへの置き換えや、ＳＣＡＮ＿ＩＮ端子やＳＣＡＮ＿ＯＵＴ端子の設定を実行する（スキャン挿入）。そして、スキャンフリップフロップが挿入・接続されたスキャンテスト回路で機能確認タイミングシミュレーションを行い、機能調整のルーチンを繰り返しながら、論理回路を決定する。
【００１８】
論理回路が決定した後、レイアウト自動配置配線を行ってレイアウト情報を作成し、タイミングシミュレーションを行いタイミング調整のルーチンを繰り返しながらレイアウトデータを決定する。決定したレイアウトデータを最終的にデザインルールで検証して設計が完成する。
【００１９】
図１２に上記のプログラムで作成された論理回路の構成の一例として、バッファ回路２０４の構成例を示す。図１２に示すように、このバッファ回路２０４は、Ｐチャンネルトランジスタ３０１、３０２、３０３、３０４と、Ｎチャンネルトランジスタ４０１、４０２、４０３、４０４と、インバータ回路５０１とからなり、各Ｐチャンネルトランジスタおよび各Ｍチャンネルトランジスタのゲートが全て入力端子ＢＵＦ＿ＩＮに接続されている。また、各Ｐチャンネルトランジスタのソースは電源に、各Ｎチャンネルトランジスタのソースはグランドに接続され、各Ｐチャンネルトランジスタのドレインと各Ｎチャンネルトランジスタのドレインはともに次段のインバータ回路５０１の入力端子に接続されている。
【００２０】
ここでＰチャンネルトランジスタ３０１、３０２、３０３、３０４それぞれのトランジスタサイズをチャネル幅Ｗｐ／チャネル長４Ｌｐと設定し、Ｎチャンネルトランジスタ４０１、４０２、４０３、４０４それぞれのトランジスタサイズをチャネル幅Ｗｎ／チャネル長４Ｌｎと設定することにより、バッファの前段が、チャネル幅Ｗｐ／チャネル長Ｌｐのトランジスタの能力を有するインバータ回路となる。
【００２１】
また、上記の機能確認タイミングシミュレーションあるいはタイミングシミュレーションでは、縮退故障を仮定したシミュレーション用のテストパターンが自動的に生成され（ＡＴＰＧ）、可能な限り多くの論理回路を動作させての検証が行われる。
【００２２】
図１３に、スキャンフリップフロップ１０３、１０１、１０２の出力Ｑ１、Ｑ２、Ｑ３が取り得る８つのパターンに対する組合せ論理回路ブロック２００内部の出力Ｎ２、Ｎ３、Ｎ４と組合せ論理回路ブロック２００の出力Ｄ１、Ｄ２の期待値のパターンをマトリクスで示す。
【００２３】
一方、上記のプログラムで設計された回路を実際に製造した後、そのＬＳＩに対してＬＳＩテスタによるファンクションテストを行い、期待値として得られた結果から、ゲートレベルのネットリスト上で故障が存在すると思われる箇所を推定する故障診断と呼ばれる解析手法を実行する。
【００２４】
図１４に故障診断の基本的なアルゴリズムを示す。
まず、図１１を用いて説明したように、論理回路設計後、順序回路に使用されるフリップフロップのスキャンフリップフロップへの置き換え等がほとんどの場合専用のソフトウェアにより自動的に行われ（スキャン挿入）、縮退故障を仮定したシミュレーション用のテストパターンの自動生成が行われ（ＡＴＰＧ）、シミュレーションが実行される。このシミュレーション結果は保存される。一方、上記のＡＴＰＧにより生成されたテストパターンからＬＳＩテスタ用のテストプログラムを作成して、製造したＬＳＩに対してファンクションテスト（テスタ検査）を行う。そして、このテスタ検査の結果と既に求めたシミュレーション結果を比較照合することにより故障診断を行う。
【００２５】
図１５に故障診断結果の一例を示す。
図１５は、図１３に示すパターン（１）の場合に出力Ｄ２が期待値に対してフェイル判定された場合の故障推定箇所を表しており、（１−ａ）は出力Ｎ２が‘Ｈ’の縮退故障を起こした場合のパターン、（１−ｂ）は出力Ｎ３が‘Ｈ’の縮退故障を起こした場合のパターン、（１−ｃ）は出力Ｎ４が‘Ｈ’の縮退故障を起こした場合のパターンを示す。前述した故障診断アルゴリズムを実行することにより、テスタ検査のフェイル判定結果だけからは判別できないこれらの故障箇所の推定を行うことができる。
【００２６】
そして、この推定した故障箇所を絞り込んでいき特定するのが故障診断による故障箇所特定の方法になるわけであるが、従来、故障箇所を絞り込むための方法としては、以下に述べるような２つの方法が考えられる。
【００２７】
まず１つめは、他のスキャンチェーンにおける故障診断の結果と組み合わせる方法である。縮退故障していると推定される箇所は、スキャンテスト回路の出力端子を経由して他のスキャンチェーンに接続されている場合が多いので、他のスキャンチェーンの故障診断結果と照らし合わせて、縮退故障していると推定される箇所の故障の有無を特定することが可能である。出力端子以降のスキャンテスト回路は千差万別であるため、ここでは詳細は省略する。
【００２８】
２つめの方法はテストパターンを変えることにより、出力の変化状態を照らし合わせて故障の有無を特定する方法である。出力Ｑ１、Ｑ２、Ｑ３の論理の組合せパターンを可能な限り試すことにより、故障箇所を絞り込むことが可能となる。
【００２９】
しかしながら、上記従来の手法を実施しようとした場合、故障箇所特定のために多くの時間を要するという問題がある。さらに、組合せ論理回路ブロックにバッファ回路が配置されている場合、バッファ回路の前後で起こる縮退故障を区別できないという問題もある。
【非特許文献１】Ｓａｍｉｈａ  Ｍｏｕｒａｄ、Ｙｅｒｖａｎｔ  Ｚｏｒｉａｎ著、「Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｔｅｓｔｉｎｇ  Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍｓ  Ｃｈａｐｔｅｒ  ９．２  ＳＣＡＮ−ＰＡＴＨ  ＤＥＳＩＧＮ」、Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  ｓｏｎｓ．Ｉｎｃ発行、２０００年、２１７頁
【発明の開示】
【発明が解決しようとする課題】
【００３０】
本発明は、上記問題点に鑑み、組合せ論理回路ブロック内の論理回路をセレクト機能付きの論理回路とし、そのセレクト端子と少なくとも一つの入力端子をスキャンテスト回路外部から制御可能とすることにより、その論理回路前の出力の状態によらない組合せ論理回路ブロックの出力を得ることが可能となり、故障箇所特定のために多くの時間を必要とせず、且つ故障箇所の絞込みの精度を上げることができるようになるとともに、その回路設計が従来の回路設計フローから大きく逸脱しないスキャンテスト回路およびスキャンテスト回路の設計方法を提供することを目的とする。
【課題を解決するための手段】
【００３１】
本発明の請求項１記載のスキャンテスト回路は、複数の論理回路からなる組合せ論理回路ブロックと該組合せ論理回路ブロックの入出力をラッチするスキャンフリップフロップで構成されたスキャンテスト回路において、前記複数の論理回路のうちの少なくとも一つをセレクト機能付き論理回路とし、該セレクト機能付き論理回路のセレクタ端子と少なくとも一つの入力端子をスキャンテスト回路外部から制御可能としたことを特徴とする。
【００３２】
また、本発明の請求項２記載のスキャンテスト回路は、請求項１記載のスキャンテスト回路において、前記セレクト機能付き論理回路の前記入力端子の制御が、スキャンテスト用のデータをスキャンテスト回路外部から入力するスキャンデータ入力端子から行われるよう構成したことを特徴とする。
【００３３】
また、本発明の請求項３記載のスキャンテスト回路は、請求項２記載のスキャンテスト回路において、前記セレクト機能付き論理回路の前記入力端子の制御が、前記スキャンテスト用のデータをラッチする前記スキャンフリップフロップの出力端子から行われるよう構成したことを特徴とする。
【００３４】
また、本発明の請求項４記載のスキャンテスト回路は、請求項１ないし３のいずれかに記載のスキャンテスト回路において、前記セレクト機能付き論理回路の前記セレクト端子の制御が、前記スキャンフリップフロップの入力先を切り換えるデータ切換信号をスキャンテスト回路外部から入力するデータ切換端子から行われるよう構成したことを特徴とする。
【００３５】
また、本発明の請求項５記載のスキャンテスト回路は、請求項４記載のスキャンテスト回路において、前記データ切換信号をラッチするフリップフロップをさらに設け、前記セレクト機能付き論理回路の前記セレクト端子の制御が前記フリップフロップの出力端子から行われるよう構成したことを特徴とする。
【００３６】
また、本発明の請求項６記載のスキャンテスト回路の設計方法は、請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、任意の論理回路を、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とする。
【００３７】
また、本発明の請求項７記載のスキャンテスト回路の設計方法は、請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、タイミングマージンがしきい値より小さい論理回路を抽出し、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とする。
【００３８】
また、本発明の請求項８記載のスキャンテスト回路の設計方法は、請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、駆動能力がしきい値より小さい論理回路を抽出し、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とする。
【００３９】
また、本発明の請求項９記載のスキャンテスト回路の設計方法は、請求項１ないし５のいずれかに記載のスキャンテスト回路をプログラムによって設計する方法であって、接続されたパスのうちの少なくとも一つの遅延がしきい値より大きい論理回路を抽出し、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換えることを特徴とする。
【００４０】
また、本発明の請求項１０記載のスキャンテスト回路の設計方法は、請求項６ないし９のいずれかに記載のスキャンテスト回路の設計方法において、セレクト機能付き論理回路は、置き換えられる論理回路と内部素子の配置位置が同一であることを特徴とする。
【発明の効果】
【００４１】
本発明によれば、セレクト機能付き論理回路に置き換えられた回路前の出力の状態によらない組合せ論理回路ブロックの出力を得ることが可能となり、故障箇所特定のために多くの時間を必要とせず、且つ故障箇所の絞込みの精度を上げることができるようになる。さらに、その回路設計は従来の回路設計フローから大きく逸脱しない。
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施の形態におけるスキャンテスト回路およびスキャンテスト回路の設計方法ついて、図面を交えて説明する。
図１は本実施の形態におけるスキャンテスト回路を示す。但し、図９に基づいて説明した部材と同一の部材には同一符号を付して、説明を省略する。
【００４３】
図１に示すスキャンテスト回路１００は、図９に示す回路と比べて、組合せ論理回路ブロック２００内のバッファ回路２０４がセレクト機能付きのバッファ回路２０７に置き換わっている点と、フリップフロップ１０６が追加されている点と、組合せ論理回路ブロック２００の出力Ｄ１を出力するＳＣＡＮ＿ＯＵＴ＿Ａ端子が追加されている点が異なる。
【００４４】
図１において、セレクト機能付きバッファ回路２０７はＮＯＲ回路２０３の出力Ｎ３とスキャンフリップフロップ１０３の出力Ｑ１を入力とし、出力Ｎ４を出力する。また、セレクト機能付きバッファ回路２０７のセレクト機能（セレクト端子）が、ＳＣＡＮ＿ＮＴ端子からの信号（データ切換信号）をフリップフロップ１０６で１クロック分シフトさせた信号Ｓにより制御される構成となっている。
【００４５】
このように、セレクト機能付きバッファ回路２０７には、ＮＯＲ回路２０３の出力端子から制御される本来のバッファ回路の入力端子に加えて、ＳＣＡＮ＿ＩＮ端子からのスキャンテスト用のデータをラッチするスキャンフリップフロップ１０３の出力端子Ｑから制御される入力端子と、ＳＣＡＮ＿ＮＴ端子からのデータ切換信号をラッチするフリップフロップ１０６の出力端子Ｑから制御されるセレクト端子が設けられている。なお、このセレクト機能付きバッファ回路２０７の入力端子とセレクト端子を、スキャンフリップフロップ１０３やフリップフロップ１０６を介すことなくスキャンテスト回路１００外部から直接制御できるよう構成してもよい。例えばＳＣＡＮ＿ＩＮ端子やＳＣＡＮ＿ＮＴ端子から直接制御できるように構成してもよい。
【００４６】
次に、組合せ論理回路ブロック２００内の故障箇所を特定するためのスキャンテスト回路１００の動作について、図２に示すタイミングチャートを用いて説明する。但し、図１０を用いて説明した動作と同一の動作については、説明を省略する。
【００４７】
ＳＣＡＮ＿ＮＴ端子が‘Ｌ’の期間に、スキャンフリップフロップ１０３はＳＣＡＮ＿ＩＮ端子に入力されたスキャンテスト用のデータ（ＦＯＵＬＴ入力）をＳＣＡＮ＿ＣＬＫの立ち上がりで取り込んで出力Ｑ１として出力する。このとき、フリップフロップ１０６の出力Ｓの信号レベルは‘Ｌ’レベルとなっており、セレクト機能付きバッファ回路２０７は出力Ｑ１を選択する状態となっている。したがって、セレクト機能付きバッファ回路２０７の出力Ｎ４は、出力Ｑ１（ＦＯＵＬＴ入力）となる。よって、組合せ論理回路ブロック２００の出力Ｄ１、Ｄ２は、セレクト機能付きバッファ回路２０７以前の出力の状態によらないＦＯＵＬＴ出力の状態となる。その後、ＳＣＡＮ＿ＮＴ端子を‘Ｈ’に戻した後のＳＣＡＮ＿ＣＬＫの立ち上がりにおいて、スキャンフリップフロップ１０４、１０５はＦＯＵＬＴ出力状態（出力Ｄ１、Ｄ２）をラッチしてＳＣＡＮ＿ＯＵＴ＿Ａ端子、ＳＣＡＮ＿ＯＵＴ＿Ｂ端子へ出力する。
【００４８】
このように、セレクト機能付きバッファ回路２０７以前の出力の状態によらないＦＡＵＬＴ出力状態を次のＳＣＡＮ＿ＣＬＫの立ち上がりでＳＣＡＮ＿ＯＵＴ端子から取り出すことにより、より簡単に故障箇所の特定を行うことが可能となる。
【００４９】
続いて、故障箇所を特定する方法の具体例について、図３を用いて説明する。
例えば、出力Ｎ２の縮退故障、出力Ｎ３の縮退故障、出力Ｎ４の縮退故障が推定される故障発生パターンが検出されると（図１５参照。）、ＳＣＡＮ＿ＩＮ端子に信号レベルが‘Ｈ’レベルあるいは‘Ｌ’レベルの信号を与えることにより、出力Ｄ１の状態だけが変化すれば出力Ｎ２の縮退故障、出力Ｄ２の状態だけが変化すれば出力Ｎ３の縮退故障、出力Ｄ１、Ｄ２ともに変化がなければ出力Ｎ４の縮退故障であると特定することが可能となる。
【００５０】
このように、従来の手法では故障箇所の絞込みに多くの時間を要していたのに対して、ＳＣＡＮ＿ＩＮ端子への入力パターンを追加するだけで故障箇所を１箇所に特定することが可能となり、かつ、バッファ回路を挿んだ出力Ｎ３の縮退故障と出力Ｎ４の縮退故障の区別をつけることが可能となる。
【００５１】
続いて、本実施の形態におけるスキャンテスト回路を設計するためのプログラムについて、図４に示すアルゴリズムを用いて説明する。
図４に示すように、順序回路の論理回路設計が終わった後、順序回路に使用されるフリップフロップのスキャンフリップフロップへの置き換え等を実行する（スキャン挿入）。そして、スキャンフリップフロップが挿入・接続されたスキャンテスト回路で機能確認タイミングシミュレーションを行い、機能調整のルーチンを繰り返しながら、論理回路を決定する。
【００５２】
論理回路が決定した後、任意の論理回路を、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換える処理（セレクタ挿入）を実行する。その後、レイアウト自動配置配線を行ってレイアウト情報を作成し、タイミングシミュレーションを行いタイミング調整のルーチンを繰り返しながらレイアウトデータを決定する。決定したレイアウトデータを最終的にデザインルールで検証して設計が完成する。
【００５３】
このように、論理回路設計が終わった状態で、任意の論理回路をセレクト機能付き論理回路に置き換えるので、従来の設計フローの工数に対するロスを最小限度に抑えて本実施の形態におけるスキャンテスト回路を実現することができる。なお、セレクト機能付き論理回路に置き換える論理回路の抽出は、例えば置き換える論理回路を予め任意に決定できるようにするなどすればよい。
【００５４】
また、図５に、本実施の形態におけるスキャンテスト回路を設計するための他のアルゴリズムを示す。
このアルゴリズムでは、スキャンフリップフロップが挿入・接続されたスキャンテスト回路で機能確認タイミングシミュレーションを行った後、タイミングマージンや駆動能力がしきい値より小さい論理回路を抽出して、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換える処理（セレクタ挿入）を実行する。そして、置き換えの終わったスキャンテスト回路に対して、機能調整のルーチンを繰り返しながら、論理回路を決定する。
【００５５】
このように論理回路設計の機能確認タイミングシミュレーションを行っていく過程で、例えばタイミングマージンのない論理回路や駆動能力の低い論理回路を抽出して、セレクト機能付き論理回路に置き換えるので、不具合による故障が起こりやすい箇所を事前に抑えることができ、故障発生箇所の解析の容易性の高いスキャンテスト回路を実現することができる。
【００５６】
また、図６に、本実施の形態におけるスキャンテスト回路を設計するための他のアルゴリズムを示す。
このアルゴリズムでは、レイアウト自動配置配線を行ってレイアウト情報を作成し、タイミングシミュレーションを行いタイミング調整のルーチンを繰り返しながらレイアウトデータを決定する過程の中で、論理回路に接続されたパスの情報を基に、接続されたパスのうちの少なくとも一つの遅延がしきい値より大きい論理回路を抽出して、論理回路の種類ごとに予め用意されたセレクト機能付き論理回路へ自動的に置き換える処理（セレクタ挿入）を実行する。そして再びタイミング調整のルーチンを繰り返しながらレイアウトデータを決定する。
【００５７】
このようにレイアウトデータを決定する過程で、例えば遅延の大きいパスに接続されている論理回路を抽出して、セレクト機能付き論理回路に置き換えるので、論理回路に接続されたパスの中で故障が起こりやすい箇所を事前に抑えることができ、故障発生箇所の解析の容易性の高いスキャンテスト回路を実現することができる。
【００５８】
続いて、本実施の形態におけるセレクト機能付き論理回路について、バッファ回路を例に説明する。まず、セレクト機能を持たないバッファ回路の構成の一例について、図７を用いて説明する。
【００５９】
図７に示すように、このバッファ回路は、Ｐチャンネルトランジスタ３０１、３０５、３０２、３０６、３０３、３０７、３０４、３０８と、Ｎチャンネルトランジスタ４０１、４０５、４０２、４０６、４０３、４０７、４０４、４０８と、インバータ回路５０１とからなる。
【００６０】
Ｐチャンネルトランジスタ３０１とＰチャンネルトランジスタ３０５、Ｐチャンネルトランジスタ３０２とＰチャンネルトランジスタ３０６、Ｐチャンネルトランジスタ３０３とＰチャンネルトランジスタ３０７、Ｐチャンネルトランジスタ３０４とＰチャンネルトランジスタ３０８はそれぞれ共通のドレインを介して直列に接続され、ゲートは各々入力端子ＢＵＦ＿ＩＮに接続されている。
【００６１】
また、Ｎチャンネルトランジスタ４０１とＮチャンネルトランジスタ４０５、Ｎチャンネルトランジスタ４０２とＮチャンネルトランジスタ４０６、Ｎチャンネルトランジスタ４０３とＮチャンネルトランジスタ４０７、Ｎチャンネルトランジスタ４０４とＮチャンネルトランジスタ４０８も、それぞれ共通のドレインを介して直列に接続され、ゲートは各々入力端子ＢＵＦ＿ＩＮに接続されている。
【００６２】
また、Ｐチャンネルトランジスタ３０１〜３０４のソースは電源に、Ｎチャンネルトランジスタ４０１〜４０４のソースはグランドに接続され、Ｐチャンネルトランジスタ３０５〜３０８のドレインとＮチャンネルトランジスタ４０５〜４０８のドレインがともに次段のインバータ回路５０１の入力端子に接続されている。
【００６３】
ここでＰチャンネルトランジスタ３０１のトランジスタサイズをチャネル幅Ｗｐ／チャネル長Ｌｐに設定し、このＰチャンネルトランジスタ３０１に直列接続しているＰチャンネルトランジスタ３０５のトランジスタサイズをチャネル幅Ｗｐ／チャネル長３Ｌｐに設定する。Ｐチャンネルトランジスタ３０２とＰチャンネルトランジスタ３０６、Ｐチャンネルトランジスタ３０３とＰチャンネルトランジスタ３０７、Ｐチャンネルトランジスタ３０４とＰチャンネルトランジスタ３０８についても同様に設定する。
【００６４】
また、Ｎチャンネルトランジスタ４０１のトランジスタサイズをチャネル幅Ｗｎ／チャネル長Ｌｎに設定し、このＮチャンネルトランジスタ４０１に直列接続しているＮチャンネルトランジスタ４０５のトランジスタサイズをチャネル幅Ｗｎ／チャネル長３Ｌｎに設定する。Ｎチャンネルトランジスタ４０２とＮチャンネルトランジスタ４０６、Ｎチャンネルトランジスタ４０３とＮチャンネルトランジスタ４０７、Ｎチャンネルトランジスタ４０４とＮチャンネルトランジスタ４０８についても同様に設定する。
【００６５】
このような回路構成とすることにより、バッファの前段が、チャネル幅Ｗｐ／チャネル長Ｌｐのトランジスタの能力を有するインバータ回路となり、従来例の回路（図１２参照。）と同じ能力のバッファ回路となる。
【００６６】
このバッファ回路をセレクト機能付きのバッファ回路へ置き換えた回路構成を図８に示す。このセレクト機能付きバッファ回路は、図７に示すバッファ回路の配線のみが変更された構成となっている。以下、図７に示すバッファ回路からの変更点を説明する。
【００６７】
図８において、Ｐチャンネルトランジスタ３０１とＰチャンネルトランジスタ３０５のゲートを接続し、Ｎチャンネルトランジスタ４０１とＮチャンネルトランジスタ４０５のゲートを接続し、Ｐチャンネルトランジスタ３０５とＮチャンネルトランジスタ４０５のドレインを接続してインバータ回路５０２とする。
【００６８】
同様に、Ｐチャンネルトランジスタ３０２とＰチャンネルトランジスタ３０６のゲートを接続し、Ｎチャンネルトランジスタ４０２とＮチャンネルトランジスタ４０６のゲートを接続し、Ｐチャンネルトランジスタ３０６とＮチャンネルトランジスタ４０６のドレインを接続してインバータ回路５０３とする。
【００６９】
インバータ回路５０２の入力をセレクト端子Ｓ（図１に示すフリップフロップ１０６の出力Ｓを受ける端子）からの入力とし、インバータ回路５０２の出力をインバータ回路５０３の入力に接続することにより、インバータ回路５０２の出力をセレクト端子Ｓからの入力信号の反転信号、インバータ回路５０３の出力をセレクト端子Ｓからの入力信号の正転信号とする。
【００７０】
一方、Ｐチャンネルトランジスタ３０３とＮチャンネルトランジスタ４０３のゲートを接続して入力端子ＳＥＬ＿ＩＮ＿Ａ（図１に示すＮＯＲ回路２０３の出力Ｎ３を受ける端子）とし、Ｐチャンネルトランジスタ３０７のゲート入力をインバータ回路５０２の出力に、Ｎチャンネルトランジスタ４０７のゲート入力をインバータ回路５０３の出力にそれぞれ接続することにより、トライステートインバータ回路６０１を構成する。
【００７１】
また、Ｐチャンネルトランジスタ３０４とＮチャンネルトランジスタ４０４のゲートを接続して入力端子ＳＥＬ＿ＩＮ＿Ｂ（図１に示すスキャンフリップフロップ１０３の出力Ｑ１を受ける端子）とし、Ｐチャンネルトランジスタ３０８のゲート入力をインバータ回路５０３の出力に、Ｎチャンネルトランジスタ４０８のゲート入力をインバータ回路５０２の出力にそれぞれ接続することにより、トライステートインバータ回路６０２を構成する。
【００７２】
上記のインバータ回路５０２、５０３とトライステートインバータ回路６０１、６０２を組み合わせることによりセレクト機能付きのバッファ回路を構成することが可能となる。このように、本実施の形態におけるセレクト機能付き論理回路は、置き換えられる論理回路と内部素子の配置位置が同一である。
【００７３】
以上のように、本実施の形態によれば、故障箇所特定のために多くの時間を必要とせず、且つ故障箇所の絞込みの精度を上げることができるようになる。さらに、その回路設計は従来の回路設計のフローから大きく逸脱しない。
【産業上の利用可能性】
【００７４】
本発明にかかるスキャンテスト回路およびスキャンテスト回路の設計方法は、故障箇所特定のために多くの時間を必要とせず、且つ故障箇所の絞込みの精度を上げることができるようになるとともに、その回路設計は従来の回路設計のフローから大きく逸脱せず、半導体集積回路装置の組合せ論理回路の故障箇所特定に有効である。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施の形態におけるスキャンテスト回路の回路図
【図２】本発明の実施の形態におけるスキャンテスト回路の動作を説明するためのタイミングチャートを示す図
【図３】本発明の実施の形態におけるスキャンテスト回路の故障箇所特定パターンの一例を示す図
【図４】本発明の実施の形態におけるスキャンテスト回路を設計するためのアルゴリズムを示す図
【図５】本発明の実施の形態におけるスキャンテスト回路を設計するための他のアルゴリズムを示す図
【図６】本発明の実施の形態におけるスキャンテスト回路を設計するための他のアルゴリズムを示す図
【図７】本発明の実施の形態におけるスキャンテスト回路内のセレクト機能付き論理回路へ置き換えられる論理回路の構成の一例を示す図
【図８】本発明の実施の形態におけるセレクト機能付きバッファ回路の構成の一例を示す図
【図９】従来のスキャンテスト回路の回路図
【図１０】従来のスキャンテスト回路の動作を説明するためのタイミングチャートを示す図
【図１１】従来のスキャンテスト回路を設計するためのアルゴリズムを示す図
【図１２】従来のスキャンテスト回路内のバッファ回路の構成の一例を示す図
【図１３】従来のスキャンテスト回路の期待値パターンの一例を示す図
【図１４】従来の故障診断のアルゴリズムを示す図
【図１５】従来のスキャンテスト回路の故障箇所特定パターンの一例を示す図
【符号の説明】
【００７６】
１００      スキャンテスト回路
１０１〜１０５      スキャンフリップフロップ
１０６      フリップフロップ
２００      組み合わせ論理回路ブロック
２０１、２０４      バッファ回路
２０２      ＡＮＤ回路
２０３、２０６      ＮＯＲ回路
２０５      ＮＡＮＤ回路
２０７      セレクト機能付きバッファ回路
３０１〜３０８      Ｐチャンネルトランジスタ
４０１〜４０８      Ｎチャンネルトランジスタ
５０１〜５０３      インバータ回路
６０１〜６０２      トライステートインバータ回路
【図１】
2006242781.tif 000003
【図２】
2006242781.tif 000004
【図３】
2006242781.tif 000005
【図４】
2006242781.tif 000006
【図５】
2006242781.tif 000007
【図６】
2006242781.tif 000008
【図７】
2006242781.tif 000009
【図８】
2006242781.tif 000010
【図９】
2006242781.tif 000011
【図１０】
2006242781.tif 000012
【図１１】
2006242781.tif 000013
【図１２】
2006242781.tif 000014
【図１３】
2006242781.tif 000015
【図１４】
2006242781.tif 000016
【図１５】
2006242781.tif 000017