JP3544415B2 - 半導体集積回路及び検査系列生成方法 - Google Patents
半導体集積回路及び検査系列生成方法 Download PDFInfo
- Publication number
- JP3544415B2 JP3544415B2 JP26728095A JP26728095A JP3544415B2 JP 3544415 B2 JP3544415 B2 JP 3544415B2 JP 26728095 A JP26728095 A JP 26728095A JP 26728095 A JP26728095 A JP 26728095A JP 3544415 B2 JP3544415 B2 JP 3544415B2
- Authority
- JP
- Japan
- Prior art keywords
- scan
- test sequence
- logic block
- block
- flip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、複数のスキャンフリップフロップからなるスキャンチェーンを備えている半導体集積回路及びその故障検出のための検査系列生成方法に関するものである。
【0002】
【従来の技術】
従来、半導体集積回路内に発生した故障を検査するために、予め構成されている複数のスキャンフリップフロップ(以下、スキャンFFと略記する)からなるスキャンチェーンを用いる方法が利用されている。
【0003】
スキャンチェーンを用いた半導体集積回路の検査方法について、以下に説明する。
【0004】
図25はスキャンチェーンが構成されている半導体集積回路の回路図の例である。図25において、半導体集積回路50はスキャンFF51、52及び53並びにANDゲート54を備えている。
【0005】
スキャンFF51、52及び53は、ピンNTの状態が“0”のとき通常のフリップフロップとして動作し、入力されるクロックの立上がりエッジによってピンDの状態を内部データとして取り込む(これを通常モードという)。一方、ピンNTの状態が“1”のときは、入力されるクロックの立上がりエッジによってピンDTの状態を内部データとして取り込む(これをスキャンモードという)。
【0006】
半導体集積回路50のスキャンイン(Scan In )用外部端子SIはスキャンFF51のピンDTに接続されており、スキャンFF51のピンQはスキャンFF52のピンDTに接続されており、スキャンFF52のピンQはスキャンFF53のピンDTに接続されている。さらに、スキャンFF53のピンQは半導体集積回路50のスキャンアウト(Scan Out)用外部端子SOに接続されている。すなわち、スキャンFF51、52及び53は、スキャンモードにおいて、スキャンイン用外部端子SIを入力としスキャンアウト用外部端子SOを出力とするシフトレジスタを構成する。これがスキャンチェーンである。
【0007】
このスキャンチェーンのシフト動作によって、各スキャンFFへの状態の設定及び各スキャンFFの状態の観測を容易に行うことができるので、半導体集積回路中の故障の検査が容易に実行できる。
【0008】
半導体集積回路の故障を検出するための検査系列について、図25に示す回路を対象にして説明する。
【0009】
図25に示す回路において、信号線Aにおける1縮退故障の有無を検出する場合を考える。信号線Aの1縮退故障を検出するためには、信号線Aに“0”が設定され信号線Bに“1”が設定されたときの信号線Yの状態が観測できれば良い。信号線Yの状態が“0”であれば正常であり、“1”であれば故障が存在するということになる。
【0010】
信号線A及びBの状態はスキャンチェーンを用いることによって容易に設定できる。半導体集積回路50の外部端子NTから“1”を入力してピンNTの状態を“1”にすることによりスキャンFF51、52及び53をスキャンモードにし、スキャンイン用外部端子SIから“1”を、続いて“0”を入力してシフト動作を行うことによって、スキャンFF52に“1”を、スキャンFF51に“0”を内部データとして各々取り込ませれば良い。
【0011】
また、信号線Yの状態はスキャンチェーンを用いることによって容易に観測できる。半導体集積回路50の外部端子NTから“0”を入力してピンNTの状態を“0”にすることによりスキャンFF51、52及び53を通常モードにし、1クロック分の通常の動作を行わせることにより信号線Yの状態をスキャンFF53にピンDから取り込ませる。その後、ピンNTの状態を“1”にすることによりスキャンFF51、52及び53をスキャンモードにし、シフト動作によってスキャンFF53の内部データすなわち信号線Yの状態をスキャンアウト用外部端子SOから出力させれば良い。
【0012】
以上のような動作を行う際の半導体集積回路50の各外部端子のデータは図26のようになる。図26において、0及び1は各々入力“0”及び“1”を表し、Lは出力における期待値が“0”であることを表す。また、Xはドントケアである。
【0013】
図26において、時刻0〜5は、スキャンモード(NT=1)においてシフトイン動作を行っている。時刻0及び1は、スキャンFF53に設定する値を外部端子SIから入力している。スキャンFF53には値を設定する必要がないので入力はドントケアである。時刻2及び3は、スキャンFF52に設定する値を外部端子SIから入力している。スキャンFF52には“1”を設定する必要があるので“1”を入力している。さらに時刻4及び5は、スキャンFF51に設定する値を外部端子SIから入力している。スキャンFF51には“0”を設定する必要があるので“0”を入力している。ここまででシフトイン動作が完了する。
【0014】
時刻6及び7は、通常モード(NT=0)において、信号線Yの状態をスキャンFF53に取り込んでいる。
【0015】
時刻8〜13は、スキャンモード(NT=1)においてシフトアウト動作を行っている。時刻8及び9は、スキャンFF53に取り込まれたデータを外部端子SOから出力している。このデータが“0”であれば正常であり“1”であれば故障であると判断する(このようなデータを期待値比較用データという)。さらに、時刻10及び11はスキャンFF52に取り込まれたデータを外部端子SOから出力し、時刻12及び13はスキャンFF51に取り込まれたデータを外部端子SOから出力している。ここまででシフトアウト動作が完了する。
【0016】
図26に示すようなデータのパターンを検査系列という。クロックの立ち上がりによってデータが1つのフリップフロップ分シフトするので、検査系列の2行分が1つのシフトパターンに当たる。また、スキャンチェーンを備えた半導体集積回路の故障検出のために図26に示すような検査系列を生成する方法を検査系列生成方法といい、従来から様々な方法が提案されている。
【0017】
【発明が解決しようとする課題】
ところが、従来の検査系列生成方法には以下のような問題がある。
【0018】
従来の検査系列生成方法では、検査系列の生成を半導体集積回路全体に対して行っていた。すなわち、スキャンイン用外部端子からのデータ入力、スキャンチェーンにおける入力データのシフトイン動作及び期待値比較用データのシフトアウト動作、スキャンアウト用外部端子からのデータ出力といった一連の動作を半導体集積回路全体に対して行うための検査系列の生成を行っていた。
【0019】
半導体集積回路の規模が小さいときは、従来の検査系列生成方法で特に問題はなかった。しかし、集積技術の進歩に伴い半導体集積回路の規模が大きくなるにつれて、検査系列の生成に膨大な時間を要するようになった。特に近年、電子計算機によって検査系列を自動生成する場合が多いが、半導体集積回路の集積度の飛躍的な向上により従来の検査系列生成方法では検査系列生成及び系列長の圧縮に膨大な時間及び膨大な記憶容量が必要となるという問題があった。
【0020】
前記の問題に鑑み、本発明は、検査系列生成及び系列長の圧縮を容易に行うことができる半導体集積回路を対象にした検査系列生成方法を提供するものである。
【0021】
【課題を解決するための手段】
前記の目的を達成するため、本発明は、スキャンチェーンに属するスキャンFFによって他の論理ブロックとの信号の送受信を行うスキャン論理ブロックを備えた半導体集積回路を対象にし、前記スキャン論理ブロックを1つの回路と見なしてブロック検査系列を生成した後に、このブロック検査系列を半導体集積回路全体を対象とする検査系列に変換する検査系列生成方法である。
【0022】
具体的に本発明が対象とする半導体集積回路は、複数の論理ブロックを備え、1つ又は複数のスキャンフリップフロップが直列に接続されることにより構成され、入力端子及び出力端子が前記半導体集積回路の外部端子に各々接続されている1つ又は複数のスキャンチェーンを備え、前記複数の論理ブロックのうち少なくとも一つは、他の論理ブロックからの信号を受信する少なくとも1つのスキャンフリップフロップ及び他の論理ブロックに信号を送信する少なくとも1つのスキャンフリップフロップを含む複数のスキャンフリップフロップを有し、該複数のスキャンフリップフロップは各々前記1つ又は複数のスキャンチェーンのいずれかに属するスキャン論理ブロックである構成とする。
【0023】
この半導体集積回路の構成により、スキャンチェーンのシフト動作を用いることによって、スキャン論理ブロック中のスキャンフリップフロップに外部からデータを設定したりスキャンフリップフロップが保持するデータを外部から観測したりすることが可能となる。すなわち、スキャン論理ブロック中のスキャンフリップフロップは可制御又は可観測となる。スキャン論理ブロックは半導体集積回路の外部又は他の論理ブロックからの信号をスキャンフリップフロップで受信するので、スキャン論理ブロックの入力が可制御となり、半導体集積回路の外部又は他の論理ブロックへの信号もスキャンフリップフロップから送信するのでスキャン論理ブロックの出力が可観測となる。このため、スキャン論理ブロックを1つの回路として単独で検査を行うことができる。
【0024】
そして、請求項1の発明が講じた解決手段は、前記半導体集積回路内に仮定された故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属するスキャン論理ブロックを1つの回路とみなし、前記故障を検出するための検査系列であるブロック検査系列を生成する第1の処理と、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンに、前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップをシフトさせるパターンを追加する第2の処理と、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンに、前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップをシフトさせるパターンを追加する第3の処理とを備えている構成とするものである。
【0025】
また、請求項2の発明が講じた解決手段は、前記半導体集積回路内に仮定された故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属するスキャン論理ブロックを1つの回路とみなし、前記故障を検出するための検査系列であるブロック検査系列を生成する第1の処理と、前記スキャン論理ブロックを通過するスキャンチェーンの中でスキャンフリップフロップを最も多く含むスキャンチェーンに含まれているスキャンフリップフロップの数をMとし、前記スキャン論理ブロックを通過するスキャンチェーンの中で前記スキャン論理ブロックの中にあるスキャンフリップフロップを最も多く含むスキャンチェーンに含まれている前記スキャン論理ブロックの中にあるスキャンフリップフロップの数をSとしたとき、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数とSとの合計数をMから減じた数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第2の処理と、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数とSとの合計数をMから減じた数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第3の処理とを備えている構成とするものである。
【0026】
請求項2の発明の構成により、第1の処理によって、スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列が生成される。第2の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックに入力データをシフトインするシフトパターンの前後に、スキャン論理ブロックよりも入力側の構成に応じたシフトパターンが追加される。第3の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックから期待値比較用データをシフトアウトするシフトパターンの前後に、スキャン論理ブロックよりも出力側の構成に応じたシフトパターンが追加される。このため、前記ブロック検査系列が半導体集積回路全体を対象とした検査系列に変換されることになる。
【0027】
また、請求項3の発明は、請求項2の発明の構成に、前記スキャン論理ブロックを通過するスキャンチェーンの中で、前記半導体集積回路の外部端子から前記スキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記ブロック検査系列の中の前記スキャンチェーンに対する入力データを反転させる第4の処理と、前記スキャン論理ブロックを通過するスキャンチェーンの中で、前記スキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記ブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データを反転させる第5の処理とをさらに備えている構成を付加するものである。
【0028】
請求項3の発明の構成により、半導体集積回路の外部端子から前記スキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、第4の処理によって、前記ブロック検査系列の中の前記スキャンチェーンに対する入力データは反転される。また、前記スキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、第5の処理によって、前記ブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データは反転される。
【0029】
また、請求項4の発明が講じた解決手段は、前記半導体集積回路内に仮定された複数の故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属する各スキャン論理ブロックを1つの回路とみなし、該故障を検出するための検査系列であるブロック検査系列を各々生成し、生成された各ブロック検査系列を前記半導体集積回路全体を対象とした検査系列に各々変換する検査系列生成処理と、前記検査系列生成処理によって生成された複数の検査系列をマージして前記複数の故障を検出するための検査系列を生成する検査系列合成処理とを備えている構成とするものである。
【0030】
請求項5の発明は、請求項4の発明の構成に、前記検査系列生成処理は、仮定された故障が属するスキャン論理ブロックが前記1つ又は複数のスキャンチェーンのいずれにも属さないフリップフロップを有しているとき、該フリップフロップをブラックボックスとみなし前記スキャン論理ブロックをフルスキャン回路と仮定してブロック検査系列を生成する処理を有する構成を付加するものである。
【0031】
また、請求項6の発明が講じた解決手段は、前記半導体集積回路内に仮定された複数の故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属するA個のスキャン論理ブロックのうちi(1≦i≦A)番目のスキャン論理ブロックに対し、該スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列を生成する第1の処理と、前記A個のスキャン論理ブロックのいずれかを通過するスキャンチェーンの中で最も多くのスキャンフリップフロップを含むスキャンチェーンに含まれているスキャンフリップフロップの数をNとし、前記A個のスキャン論理ブロックのいずれかを通過するスキャンチェーンの中でi番目のスキャン論理ブロックの中にあるスキャンフリップフロップを最も多く含むスキャンチェーンに含まれている前記i番目のスキャン論理ブロックの中にあるスキャンフリップフロップの数をTi とするとき、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数とTi との合計数をNから減じた数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第2の処理と、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数とTi との合計数をNから減じた数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第3の処理とを備え、前記第1〜第3の処理を繰り返し実行することにより、前記A個のスキャン論理ブロックに対する検査系列を各々生成し、さらに、生成された複数の検査系列を時刻順に重ね合わせてマージすることによりA個のスキャン論理ブロック内に各々仮定した故障を検出するための検査系列を生成する第4の処理を備えている構成とするものである。
【0032】
請求項6の発明の構成により、第1の処理によって、i番目のスキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列が生成される。第2の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックに入力データをシフトインするシフトパターンの前後に、スキャン論理ブロックよりも入力側の構成に応じたシフトパターンが追加される。第3の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックから期待値比較用データをシフトアウトするシフトパターンの前後に、スキャン論理ブロックよりも出力側の構成に応じたシフトパターンが追加される。このため、前記ブロック検査系列が半導体集積回路全体を対象とした検査系列に変換される。前記第1〜第3の処理を繰り返し実行されると、A個のスキャン論理ブロックに対する検査系列が各々生成されることになる。第4の処理によって、A個のスキャン論理ブロックに対する各検査系列がマージされることにより仮定した故障を検出するための検査系列が生成される。
【0033】
請求項7の発明は、請求項6の発明の構成に、前記i番目のスキャン論理ブロックを通過するスキャンチェーンの中で、前記半導体集積回路の外部端子から前記i番目のスキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記i番目のスキャン論理ブロックに対するブロック検査系列の中の前記スキャンチェーンに対する入力データを反転させる第5の処理と、前記i番目のスキャン論理ブロックを通過するスキャンチェーンの中で、前記i番目のスキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記i番目のスキャン論理ブロックに対するブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データを反転させる第6の処理とをさらに備えている構成を付加するものである。
【0034】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照しながら説明する。
【0035】
(第1の実施形態)
図1は本発明の第1の実施形態に係る半導体集積回路10の回路図である。図1において、半導体集積回路10は4つの論理ブロック12、14、16及び18を備えている。論理ブロック12はスキャンFF12a、12b及び12c、NANDゲート12d及びDフリップフロップ12eを有している。また、論理ブロック14はスキャンFF14a及び14bを有しており、論理ブロック18はスキャンFF18aを有している。スキャンFF14a、14b、12b、12c及び18aによって第1のスキャンチェーンが構成され、スキャンFF12aによって第2のスキャンチェーンが構成されている。
【0036】
論理ブロック12は、他の論理ブロック14及び16からの信号をスキャンFF12a及び12bによって受信する一方、論理ブロック18への信号をスキャンFF12cによって送信する。本実施形態では、他の論理ブロックからの信号をスキャンFFによって受信する一方、他の論理ブロックへの信号をスキャンFFによって送信する論理ブロックをスキャン論理ブロックと呼ぶ。スキャン論理ブロック12において、スキャンFF12b及び12cによって第1の部分スキャンチェーンが構成され、スキャンFF12aによって第2の部分スキャンチェーンが構成されている。第1の部分スキャンチェーンの入力はブロックスキャンインピンB_SIに接続されており、ブロックスキャンインピンB_SIは論理ブロック14の有するスキャンFF14a及び14bを介して第1のスキャンイン用外部端子SI1に接続されている。一方、第1の部分スキャンチェーンの出力はブロックスキャンアウトピンB_SOに接続されており、ブロックスキャンアウトピンB_SOは論理ブロック18の有するスキャンFF18aを介して第1のスキャンアウト用外部端子SO1に接続されている。第2の部分スキャンチェーンの入力は第2のスキャンイン用外部端子SI2に直接接続されている一方、その出力は第2のスキャンアウト用外部端子SO2に直接接続されている。
【0037】
図2は本発明の第1の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【0038】
図2において、処理S11は、スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列を生成する処理である。
【0039】
処理S12は、処理S11によって生成されたブロック検査系列において、実際の回路と対応するように、スキャン論理ブロックに入力データをシフトインするパターンの前後にスキャンFFをシフトさせるパターン(以下、シフトパターンという)を追加する処理である。
【0040】
処理S13は、処理S11によって生成されたブロック検査系列において、実際の回路と対応するように、スキャン論理ブロックから出力データをシフトアウトするパターンの前後にシフトパターンを追加する処理である。
【0041】
図1に示す半導体集積回路において、スキャン論理ブロック12の信号線Aにおける0縮退故障の有無を検査するための検査系列を図2に示す検査系列生成方法によって生成する場合を例にとって、本実施形態を説明する。
【0042】
ここで、検査対象となるスキャン論理ブロックを通過するスキャンチェーンの中でスキャンFFを最も多く含むスキャンチェーンに含まれているスキャンFFの数をMとし、検査対象となるスキャン論理ブロックを通過するスキャンチェーンの中で前記スキャン論理ブロックの中にあるスキャンFFを最も多く含むスキャンチェーンに含まれている前記スキャン論理ブロックの中にあるスキャンFFの数をSとする。
【0043】
図1に示す半導体集積回路では、第1のスキャンチェーンに含まれるスキャンFFの数は5であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、Mの値は5となる。また、スキャン論理ブロック12の中にあるスキャンFFのうち、第1のスキャンチェーンに含まれるスキャンFFの数は2であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、Sの値は2となる。
【0044】
また、第1のスキャンチェーンに含まれるスキャンFFの中でスキャン論理ブロック12よりも入力側にあるものの数は2、出力側にあるものの数は1、第2のスキャンチェーンに含まれるスキャンFFの中でスキャン論理ブロック12よりも入力側にあるものの数は0、出力側にあるものの数は0である。
【0045】
まず、処理S11によって、図3に示すようなブロック検査系列が得られる。図3において、CLK、NT、IN、SI2及びSO2は半導体集積回路10の外部端子であり、B_SI、B_SOは検査対象となるスキャン論理ブロック12のピンである。0及び1は各々入力“0”及び“1”を表し、Hは出力における期待値が“1”であることを表す。また、Xはドントケアである。さらに、クロックの立ち上がりによってデータが1つシフトするので、検査系列の2行分が1つのシフトパターンに当たる。
【0046】
時刻0〜3は、スキャンモード(NT=1)において、スキャン論理ブロック12の各部分スキャンチェーンに入力データをシフトインする。時刻4〜7は、通常モード(NT=0)において、信号線AのデータをスキャンFF12cに取り込む。時刻8〜11は、スキャンモード(NT=1)において、スキャン論理ブロック12の各部分スキャンチェーンから期待値比較用のデータをシフトアウトする。
【0047】
次に、処理S12によって、図3に示す検査系列において、シフトインするパターンの前後にシフトパターンを追加する。
【0048】
具体的には次のような処理を行う。各部分スキャンチェーンが属するスキャンチェーン毎に、スキャン論理ブロック12よりも入力側にあるスキャンFFの数とSとをMから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンに入力データをシフトインするパターンの前に追加する。Mの値が5でありSの値が2であることから、第1の部分スキャンチェーンに入力データをシフトインするパターンの前に1(=M−S−2)個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするシフトパターンの前に3(=M−S−0)個のシフトパターンが追加される。
【0049】
また、各部分スキャンチェーンに入力データをシフトインするパターンの後に、各部分スキャンチェーンが属するスキャンチェーンにおいてスキャン論理ブロック12よりも入力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンに入力データをシフトインするパターンの後に2個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするシフトパターンの後に0個のシフトパターンが追加される。処理S12を行った結果得られる検査系列を図4に示す。
【0050】
次に、処理S13によって、図4に示す検査系列において、シフトアウトするパターンの前後にシフトパターンを追加する。
【0051】
具体的には次のような処理を行う。各部分スキャンチェーンから出力データをシフトアウトするパターンの前に、各部分スキャンチェーンが属するスキャンチェーンにおけるスキャン論理ブロック12よりも出力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンから出力データをシフトアウトするパターンの後に1個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするパターンの後に0個のシフトパターンが追加される。
【0052】
また、各部分スキャンチェーンが属するスキャンチェーン毎に、スキャン論理ブロック12よりも出力側にあるスキャンFFの数とSとをMから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンから出力データをシフトアウトするパターンの後に追加する。Mの値が5でありSの値が2であることから、第1の部分スキャンチェーンから出力データをシフトアウトするパターンの後に2(=M−S−1)個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするシフトパターンの後に3(=M−S−0)個のシフトパターンが追加される。処理S13を行った結果得られる検査系列を図5に示す。B_SIをSIに、B_SOをSOにそれぞれ変更することによって、図5に示す検査系列は半導体集積回路10全体を対象とした検査系列となる。
【0053】
以上説明したように、本実施形態によると、スキャン論理ブロックを1つの回路とみなしてブロック検査系列を生成した後に、シフトインするパターンの前後及びシフトアウトするパターンの前後に求められた数のシフトパターンを追加することによって、半導体集積回路全体を対象とした検査系列を従来よりも容易に生成することができる。
【0054】
なお、本実施形態によると、シフトインに要するクロック数とシフトアウトに要するクロック数とが等しくなることから、複数の故障の検出のために検査系列を連続して生成する場合に、ある検査系列のシフトアウトパターンと次の検査系列のシフトインパターンとのマージが可能となり、より短い検査系列を容易に生成することができる。
【0055】
(第2の実施形態)
図6は本発明の第2の実施形態に係る半導体集積回路20の回路図である。図1に示した第1の実施形態に係る半導体集積回路10と比較すると、論理ブロック14中のスキャンFF14bの出力が反転している(ピンNQから出力されている)点、及び論理ブロック18中のスキャンFF18aの出力が反転している(ピンNQから出力されている)点を除いて構成は同一であり、同一の構成要素には同一符号を付している。
【0056】
図7は本発明の第2の実施形態に係る検査系列生成方法の処理の流れを示す流れ図である。図2に示す第1の実施形態に係る検査系列生成方法と比較すると、処理S11と処理S21、処理S12と処理S24、及び処理S13と処理S25とは各々同じ処理である。
【0057】
処理S22は、スキャン論理ブロックを通過する各スキャンチェーンの中で、半導体集積回路のスキャンイン用外部端子からスキャン論理ブロックの入力ピンまでスキャンチェーンを介して入力データがシフトする間に信号が反転するスキャンチェーンについては、シフトインするパターン中の入力データを反転させる処理である。
【0058】
処理S23は、スキャン論理ブロックを通過する各スキャンチェーンの中で、スキャン論理ブロックの出力ピンから半導体集積回路のスキャンアウト用外部端子までスキャンチェーンを介して期待値比較用データがシフトする間に信号が反転するスキャンチェーンについては、シフトアウトするシフトパターン中の期待値比較用のデータを反転させる処理である。
【0059】
図6に示す半導体集積回路において、スキャン論理ブロック12の信号線Aにおける0縮退故障の有無を検査するための検査系列を図7に示す検査系列生成方法によって生成する場合を例にとって、本実施形態を説明する。
【0060】
まず、処理S21によって、第1の実施形態と同様に図3に示すようなブロック検査系列が得られる。
【0061】
次に、処理S22によって、図3に示すブロック検査系列が図8に示すようなブロック検査系列に変換される。ここでは、第1のスキャンチェーンを構成し且つスキャン論理ブロック12よりも入力側にあるスキャンFF14bの出力が反転しているので、時刻2及び3のブロックスキャンインピンB_SIの入力データが“1”から“0”に変換される。
【0062】
次に、処理S23によって、図8に示すブロック検査系列が図9に示すようなブロック検査系列に変換される。ここでは、第1のスキャンチェーンを構成し且つスキャン論理ブロック12よりも出力側にあるスキャンFF18aの出力が反転しているので、時刻8のブロックスキャンアウトピンB_SOの期待値比較用データが“H”から“L”に変換される。Lは出力における期待値が“0”であることを示す。
【0063】
次に、処理S24及びS25によって、第1の実施形態と同様にシフトインパターンの前後及びシフトアウトパターンの前後にシフトパターンの追加が行われ、図10に示すような検査系列が得られる。B_SIをSIに、B_SOをSOにそれぞれ変更することによって、図10に示す検査系列は半導体集積回路20全体を対象とした検査系列となる。
【0064】
以上説明したように、本実施形態によると、半導体集積回路のスキャンイン用外部端子からスキャン論理ブロックの入力までスキャンチェーンを介して入力データがシフトする間に信号が反転する回路、及びスキャン論理ブロックの出力からスキャンアウト用外部端子までスキャンチェーンを介して期待値比較用のデータがシフトする間に信号が反転する回路についても、検査系列の生成をスキャン論理ブロック毎に行うことができる。
【0065】
なお、第1及び第2の実施形態に係る半導体集積回路のスキャン論理ブロックは、他の論理ブロックからの信号を必ずしも全てスキャンFFによって受信していなくても構わない。また、他の論理ブロックへの信号を必ずしも全てスキャンFFによって送信していなくても構わない。
【0066】
図11は本実施形態に係る半導体集積回路の他の例を示す回路図である。図11において、20Aは半導体集積回路であり、図6に示す半導体集積回路20と比較すると、スキャン論理ブロック12にピンINX1及びORゲート12fが追加され、論理ブロック14中のスキャンFF14bの出力がピンINX1に入力されている点を除いて同じ構成であり、同一の構成要素には同一符号を付している。
【0067】
スキャン論理ブロック12は、ピンINX1の信号をスキャンFFで受信していない。しかし、外部端子INからの入力を“1”にすればピンINX1の入力に関わらず(ドントケアとして扱えば良い)ORゲート12fの出力を“1”にすることができるので、すでに説明した図6に示す回路に対する方法と同様の方法によって検査系列を生成することができる。
【0068】
(第3の実施形態)
本発明の第3の実施形態は、複数のスキャン論理ブロックを対象にして検査系列を生成するものである。
【0069】
図12は本発明の第3の実施形態に係る半導体集積回路30の回路図である。図12において、半導体集積回路30は第1のスキャン論理ブロック32、第2のスキャン論理ブロック34、論理ブロック36及び38を備えている。第1のスキャン論理ブロック32はスキャンFF32a、32b及び32c、Dフリップフロップ32d、NANDゲート32e及びANDゲート32fを有している。第2のスキャン論理ブロック34はスキャンFF34a及び34bを有している。論理ブロック38はスキャンFF38aを有している。スキャンFF34a、34b、32b、32c及び38aによって第1のスキャンチェーンが構成され、スキャンFF32aによって第2のスキャンチェーンが構成される。
【0070】
第1のスキャン論理ブロック32は、第2のスキャン論理ブロック34及び論理ブロック36からの信号をスキャンFF32a及び32bによって受信する一方、論理ブロック38への信号をスキャンFF32cによって送信する。スキャンFF32b及び32cによって第1の部分スキャンチェーンが構成され、スキャンFF32aによって第2の部分スキャンチェーンが構成されている。第1の部分スキャンチェーンの入力はブロックスキャンインピンB_SIに接続されており、ブロックスキャンインピンB_SIは第2のスキャン論理ブロック34の有するスキャンFF34a及び34bを介して第1のスキャンイン用外部端子SI1に接続されている。第1の部分スキャンチェーンの出力はブロックスキャンアウトピンB_SOに接続されており、ブロックスキャンアウトピンB_SOは論理ブロック38の有するスキャンFF38aを介して第1のスキャンアウト用外部端子SO1に接続されている。また、第2の部分スキャンチェーンの入力は第2のスキャンイン用外部端子SI2に直接接続されている一方、その出力は第2のスキャンアウト用外部端子SO2に直接接続されている。
【0071】
第2のスキャン論理ブロック34は、第1のスキャンイン用外部端子SI1からの信号をスキャンFF34aによって受信する一方、第1の論理ブロック32への信号をスキャンFF34bによって送信する。
【0072】
図13は本発明の第3の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。図7に示す第2の実施形態に係る検査系列生成方法と比較すると、処理S31は処理S21と同じであり、処理S32は処理S22と同じであり、処理S33は処理S23と同じである。処理S34は処理S24とほぼ同様であるが、追加するシフトパターンの数を求める方法が若干異なる。また、処理S35も処理S25とほぼ同様であるが、追加するシフトパターンの数を求める方法が若干異なる。この点については後述する。
【0073】
処理S31から処理S35までをスキャン論理ブロック毎に実行する。処理S36は、検査対象となる全てのスキャン論理ブロックについて検査系列を生成したか否かを判定する処理である。
【0074】
処理S37は、各スキャン論理ブロックについて生成された検査系列をマージする処理である。
【0075】
図12に示す半導体集積回路30において、第1のスキャン論理ブロック32の信号線Bにおける1縮退故障の有無を検査すると共に第2のスキャン論理ブロック34の信号線Cにおける0縮退故障の有無を検査するための検査系列を図13に示す検査系列方法によって生成する場合を例にとって、本実施形態を説明する。
【0076】
ここで、検査対象となるスキャン論理ブロックのいずれかを通過するスキャンチェーンの中で最も多くのスキャンFFを含むスキャンチェーンのスキャンFFの数をNとする。また、検査対象となるスキャン論理ブロック毎に、スキャン論理ブロックを通過するスキャンチェーンの中でスキャン論理ブロックの中にあるスキャンFFを最も多く含むスキャンチェーンに含まれているスキャン論理ブロックの中にあるスキャンFFの数を求め、その数をTi (iはスキャン論理ブロックの番号を示す)とする。
【0077】
図12に示す半導体集積回路では、第1のスキャンチェーンに含まれるスキャンFFの数は5であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、Nの値は5となる。また、第1のスキャン論理ブロック32の中にあるスキャンFFのうち第1のスキャンチェーンに含まれるスキャンFFの数は2であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、T1 は2となる。第2のスキャン論理ブロック34の中にある2つのスキャンFFは共に第1のスキャンチェーンに含まれるので、T2 は2となる。
【0078】
まず、第1のスキャン論理ブロック32について検査系列を生成する。第1のスキャンチェーンに含まれるスキャンFFの中で第1のスキャン論理ブロック32よりも入力側にあるものの数は2、出力側にあるものの数は1であり、第2のスキャンチェーンに含まれるスキャンFFの中で第1のスキャン論理ブロック32よりも入力側にあるものの数は0、出力側にあるものの数は0である。
【0079】
処理S31によって、Dフリップフロップ32dをブラックボックスとして、図14に示すようなブロック検査系列が得られる。図14において、CLK、NT、SI2及びSO2は半導体集積回路30の外部端子のデータであり、B_SI及びB_SOは検査対象となる第1のスキャン論理ブロック32のピンのデータである。
【0080】
スキャンFF34bの出力が反転している(ピンNQから出力されている)ので、処理S32によって、図14に示すブロック検査系列が図15に示すようなブロック検査系列に変換される。また、スキャンFF38aの出力が反転している(ピンNQから出力されている)ので、処理S33によって、図15に示すブロック検査系列が図16に示すようなブロック検査系列に変換される。
【0081】
次に、処理S34によって、図16に示す検査系列において、シフトインするパターンの前後にシフトパターンを追加する。
【0082】
具体的には次のような処理を行う。各部分スキャンチェーンが属するスキャンチェーン毎に、第1のスキャン論理ブロック32よりも入力側にあるスキャンFFの数とT1 とをNから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンに入力データをシフトインするパターンの前に追加する。Nの値が5でありT1 の値が2であることから、第1の部分スキャンチェーンに入力データをシフトインするパターンの前に1(=N−T1 −2)個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするパターンの前に3(=N−T1 −0)個のシフトパターンが追加される。
【0083】
また、各部分スキャンチェーンに入力データをシフトインするパターンの後に、各部分スキャンチェーンの属するスキャンチェーンにおいて第1のスキャン論理ブロック32よりも入力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンに入力データをシフトインするパターンの後に2個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするシフトパターンの後に0個のシフトパターンが追加される。処理S34を行った結果得られる検査系列を図17に示す。
【0084】
次に、処理S35によって、図17に示す検査系列において、シフトアウトするパターンの前後にシフトパターンを追加する。
【0085】
具体的には次のような処理を行う。各部分スキャンチェーンから出力データをシフトアウトするパターンの前に、各部分スキャンチェーンが属するスキャンチェーンにおいて第1のスキャン論理ブロック32よりも出力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンから出力データをシフトアウトするパターンの前に1個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするパターンの前に0個のシフトパターンが追加される。
【0086】
また、各部分スキャンチェーンが属するスキャンチェーン毎に、第1のスキャン論理ブロック32よりも出力側にあるスキャンFFの数とT1 とをNから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンから出力データをシフトアウトするパターンの後に追加する。Nの値が5でありT1 の値が2であることから、第1の部分スキャンチェーンから出力データをシフトアウトするパターンの後に2(=N−T1 −1)個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするパターンの後に3(=N−T1 −0)個のシフトパターンが追加される。
【0087】
処理S35を行った結果得られる検査系列を図18に示す。B_SIをSI1に、B_SOをSO2にそれぞれ変更することによって、図18に示す検査系列は半導体集積回路30全体を対象とした検査系列となる。
【0088】
次に、処理S36によって、全てのスキャン論理ブロックに対して検査系列の生成が終了したか否かを判断する。第2のスキャン論理ブロック34の検査系列はまだ生成されていないので、処理S31へ戻る。
【0089】
次に、第2のスキャン論理ブロック34に対して検査系列を生成する。第2のスキャン論理ブロック34を通過するスキャンチェーンは、第1のスキャンチェーンのみであり、第1のスキャンチェーンに含まれるスキャンFFの中で第2のスキャン論理ブロック32よりも入力側にあるものの数は0、出力側にあるものの数は3である。
【0090】
まず、処理S31によって図19に示すブロック検査系列が得られる。
【0091】
第1のスキャンチェーンにおいて第2のスキャン論理ブロック34よりも入力側では信号が反転しないので、処理S32はスキップされる。スキャンFF38aの出力が反転しているので、処理S33によって、図19に示すブロック検査系列が図20に示すようなブロック検査系列に変換される。
【0092】
次に、処理S34によって、Nが5、T2 が2であることから、第1のスキャンチェーンに入力データをシフトインするパターンの前に3個のシフトパターンが追加され、その後に0個のシフトパターンが追加される。処理S34の結果得られる検査系列を図21に示す。
【0093】
次に、処理S35によって、第1のスキャンチェーンから出力データをシフトアウトするパターンの前に3個のシフトパターンが追加され、その後に0個のシフトパターンが追加される。
【0094】
処理S35を行った結果得られる検査系列を図22に示す。B_SIをSI2に変更することによって、図22に示す検査系列は半導体集積回路30全体を対象とした検査系列となる。
【0095】
次に、処理S36によって、全てのスキャン論理ブロックに対して検査系列が生成されたと判断されるので、処理S37へ進む。
【0096】
処理S37によって、第1のスキャン論理ブロック32に対して生成された検査系列及び第2のスキャン論理ブロック34に対して生成された検査系列をマージする。
【0097】
図18に示す検査系列においてB_SIをSI1に変更すると共にB_SOをSO2に変更し、また、図22に示す検査系列においてB_SIをSI2に変更する。得られた2つの検査系列の各ピンのデータを、時刻順に重ね合わせて行く。データが異なる場合は、X(ドントケア)でない方を優先して選択する。この結果、図23に示すような検査系列を得ることができる。図23に示す検査系列を用いれば、第1のスキャン論理ブロック32の信号線Bにおける1縮退故障の有無及び第2のスキャン論理ブロック34の信号線Cにおける0縮退故障の有無を共に検査することができる。
【0098】
以上説明したように、本実施形態によると、検査系列の生成をスキャン論理ブロック毎に行った後にそのパターンをマージすることによって検査系列の圧縮を行うことができる。
【0099】
また、半導体集積回路の外部端子からスキャン論理ブロックの入力までスキャンチェーンを介して入力データがシフトする間に信号が反転する回路、及びスキャン論理ブロックの出力から半導体集積回路の外部端子までスキャンチェーンを介して出力データがシフトする間に信号が反転する回路が含まれていても、検査系列の生成及び圧縮を行うことができる。
【0100】
なお、本実施形態によると、シフトインに要するクロック数とシフトアウトに要するクロック数とが等しくなることから、複数の故障の検出のために検査系列を連続して生成する場合に、ある検査系列のシフトアウトパターンと次の検査系列のシフトインパターンとのマージが可能となり、より短い検査系列を容易に生成することができる。
【0101】
なお、本実施形態に係る半導体集積回路のスキャン論理ブロックは、他の論理ブロックからの信号を必ずしも全てスキャンFFによって受信していなくても構わない。また、他の論理ブロックへの信号を必ずしも全てスキャンFFによって送信していなくても構わない。
【0102】
図24は本実施形態に係る半導体集積回路の回路図である。図24において、30Aは半導体集積回路であり、図12に示す半導体集積回路30と比較すると、第1のスキャン論理ブロック32の2入力ANDゲート32fの代わりに3入力ANDゲート32gが配置され、さらにピンINX2が追加され、第2のスキャン論理ブロック34中のスキャンFF34bの出力がピンINX2に入力されている点を除いて同じ構成であり、同一の構成要素には同一符号を付している。
【0103】
第1のスキャン論理ブロック32は、ピンINX2の信号をスキャンFFで受信していない。しかし、スキャンFF32a及び32bの出力をシフトイン動作によって各々“1”に設定すればピンINX2の入力に関わらず(ドントケアとして扱えば良い)ANDゲート32gの出力を“0”にできるので、すでに説明した図12に示す回路に対する方法と同様の方法によって検査系列を生成することができる。
【0104】
【発明の効果】
請求項1〜3の発明に係る検査系列生成方法によると、スキャン論理ブロックを1つの回路とみなしてブロック検査系列を生成した後、簡単な処理によって半導体集積回路全体を対象とした検査系列に変換することができるので、大規模な半導体集積回路に対しても検査系列を容易に生成することができる。
【0105】
請求項4〜7の発明に係る検査系列生成方法によると、スキャン論理ブロック毎に検査系列を生成した後マージすることにより複数の故障を検査するための検査系列を生成することができるので、大規模な半導体集積回路に対しても検査系列を容易に生成することができると共に従来よりも検査系列を圧縮することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る半導体集積回路の回路図である。
【図2】本発明の第1の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【図3】本発明の第1の実施形態に係る検査系列生成方法の処理S11によって得られる検査系列を示す図である。
【図4】本発明の第1の実施形態に係る検査系列生成方法の処理S12によって得られる検査系列を示す図である。
【図5】本発明の第1の実施形態に係る検査系列生成方法によって得られる検査系列を示す図である。
【図6】本発明の第2の実施形態に係る半導体集積回路の回路図である。
【図7】本発明の第2の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【図8】本発明の第2の実施形態に係る検査系列生成方法の処理S22によって得られる検査系列を示す図である。
【図9】本発明の第2の実施形態に係る検査系列生成方法の処理S23によって得られる検査系列を示す図である。
【図10】本発明の第2の実施形態に係る検査系列生成方法によって得られる検査系列を示す図である。
【図11】本発明の第2の実施形態に係る半導体集積回路の回路図である。
【図12】本発明の第3の実施形態に係る半導体集積回路の回路図である。
【図13】本発明の第3の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【図14】本発明の第3の実施形態に係る検査系列生成方法の処理S31によって得られる検査系列を示す図である。
【図15】本発明の第3の実施形態に係る検査系列生成方法の処理S32によって得られる検査系列を示す図である。
【図16】本発明の第3の実施形態に係る検査系列生成方法の処理S33によって得られる検査系列を示す図である。
【図17】本発明の第3の実施形態に係る検査系列生成方法の処理S34によって得られる検査系列を示す図である。
【図18】本発明の第3の実施形態に係る検査系列生成方法の処理S35によって得られる検査系列を示す図である。
【図19】本発明の第3の実施形態に係る検査系列生成方法の処理S31によって得られる検査系列を示す図である。
【図20】本発明の第3の実施形態に係る検査系列生成方法の処理S33によって得られる検査系列を示す図である。
【図21】本発明の第3の実施形態に係る検査系列生成方法の処理S34によって得られる検査系列を示す図である。
【図22】本発明の第3の実施形態に係る検査系列生成方法の処理S35によって得られる検査系列を示す図である。
【図23】本発明の第3の実施形態に係る検査系列生成方法によって得られる検査系列を示す図である。
【図24】本発明の第3の実施形態に係る半導体集積回路の回路図である。
【図25】従来の検査系列生成方法を説明するための半導体集積回路の回路図である。
【図26】検査系列の例である。
【符号の説明】
10 半導体集積回路
12 スキャン論理ブロック
12a,12b,12c,14a,14b,18a スキャンフリップフロップ14,16,18 論理ブロック
20,20A 半導体集積回路
30,30A 半導体集積回路
32 スキャン論理ブロック
32a,32b,32c,34a,34b,38a スキャンフリップフロップ34,36,38 論理ブロック
【発明の属する技術分野】
本発明は、複数のスキャンフリップフロップからなるスキャンチェーンを備えている半導体集積回路及びその故障検出のための検査系列生成方法に関するものである。
【0002】
【従来の技術】
従来、半導体集積回路内に発生した故障を検査するために、予め構成されている複数のスキャンフリップフロップ(以下、スキャンFFと略記する)からなるスキャンチェーンを用いる方法が利用されている。
【0003】
スキャンチェーンを用いた半導体集積回路の検査方法について、以下に説明する。
【0004】
図25はスキャンチェーンが構成されている半導体集積回路の回路図の例である。図25において、半導体集積回路50はスキャンFF51、52及び53並びにANDゲート54を備えている。
【0005】
スキャンFF51、52及び53は、ピンNTの状態が“0”のとき通常のフリップフロップとして動作し、入力されるクロックの立上がりエッジによってピンDの状態を内部データとして取り込む(これを通常モードという)。一方、ピンNTの状態が“1”のときは、入力されるクロックの立上がりエッジによってピンDTの状態を内部データとして取り込む(これをスキャンモードという)。
【0006】
半導体集積回路50のスキャンイン(Scan In )用外部端子SIはスキャンFF51のピンDTに接続されており、スキャンFF51のピンQはスキャンFF52のピンDTに接続されており、スキャンFF52のピンQはスキャンFF53のピンDTに接続されている。さらに、スキャンFF53のピンQは半導体集積回路50のスキャンアウト(Scan Out)用外部端子SOに接続されている。すなわち、スキャンFF51、52及び53は、スキャンモードにおいて、スキャンイン用外部端子SIを入力としスキャンアウト用外部端子SOを出力とするシフトレジスタを構成する。これがスキャンチェーンである。
【0007】
このスキャンチェーンのシフト動作によって、各スキャンFFへの状態の設定及び各スキャンFFの状態の観測を容易に行うことができるので、半導体集積回路中の故障の検査が容易に実行できる。
【0008】
半導体集積回路の故障を検出するための検査系列について、図25に示す回路を対象にして説明する。
【0009】
図25に示す回路において、信号線Aにおける1縮退故障の有無を検出する場合を考える。信号線Aの1縮退故障を検出するためには、信号線Aに“0”が設定され信号線Bに“1”が設定されたときの信号線Yの状態が観測できれば良い。信号線Yの状態が“0”であれば正常であり、“1”であれば故障が存在するということになる。
【0010】
信号線A及びBの状態はスキャンチェーンを用いることによって容易に設定できる。半導体集積回路50の外部端子NTから“1”を入力してピンNTの状態を“1”にすることによりスキャンFF51、52及び53をスキャンモードにし、スキャンイン用外部端子SIから“1”を、続いて“0”を入力してシフト動作を行うことによって、スキャンFF52に“1”を、スキャンFF51に“0”を内部データとして各々取り込ませれば良い。
【0011】
また、信号線Yの状態はスキャンチェーンを用いることによって容易に観測できる。半導体集積回路50の外部端子NTから“0”を入力してピンNTの状態を“0”にすることによりスキャンFF51、52及び53を通常モードにし、1クロック分の通常の動作を行わせることにより信号線Yの状態をスキャンFF53にピンDから取り込ませる。その後、ピンNTの状態を“1”にすることによりスキャンFF51、52及び53をスキャンモードにし、シフト動作によってスキャンFF53の内部データすなわち信号線Yの状態をスキャンアウト用外部端子SOから出力させれば良い。
【0012】
以上のような動作を行う際の半導体集積回路50の各外部端子のデータは図26のようになる。図26において、0及び1は各々入力“0”及び“1”を表し、Lは出力における期待値が“0”であることを表す。また、Xはドントケアである。
【0013】
図26において、時刻0〜5は、スキャンモード(NT=1)においてシフトイン動作を行っている。時刻0及び1は、スキャンFF53に設定する値を外部端子SIから入力している。スキャンFF53には値を設定する必要がないので入力はドントケアである。時刻2及び3は、スキャンFF52に設定する値を外部端子SIから入力している。スキャンFF52には“1”を設定する必要があるので“1”を入力している。さらに時刻4及び5は、スキャンFF51に設定する値を外部端子SIから入力している。スキャンFF51には“0”を設定する必要があるので“0”を入力している。ここまででシフトイン動作が完了する。
【0014】
時刻6及び7は、通常モード(NT=0)において、信号線Yの状態をスキャンFF53に取り込んでいる。
【0015】
時刻8〜13は、スキャンモード(NT=1)においてシフトアウト動作を行っている。時刻8及び9は、スキャンFF53に取り込まれたデータを外部端子SOから出力している。このデータが“0”であれば正常であり“1”であれば故障であると判断する(このようなデータを期待値比較用データという)。さらに、時刻10及び11はスキャンFF52に取り込まれたデータを外部端子SOから出力し、時刻12及び13はスキャンFF51に取り込まれたデータを外部端子SOから出力している。ここまででシフトアウト動作が完了する。
【0016】
図26に示すようなデータのパターンを検査系列という。クロックの立ち上がりによってデータが1つのフリップフロップ分シフトするので、検査系列の2行分が1つのシフトパターンに当たる。また、スキャンチェーンを備えた半導体集積回路の故障検出のために図26に示すような検査系列を生成する方法を検査系列生成方法といい、従来から様々な方法が提案されている。
【0017】
【発明が解決しようとする課題】
ところが、従来の検査系列生成方法には以下のような問題がある。
【0018】
従来の検査系列生成方法では、検査系列の生成を半導体集積回路全体に対して行っていた。すなわち、スキャンイン用外部端子からのデータ入力、スキャンチェーンにおける入力データのシフトイン動作及び期待値比較用データのシフトアウト動作、スキャンアウト用外部端子からのデータ出力といった一連の動作を半導体集積回路全体に対して行うための検査系列の生成を行っていた。
【0019】
半導体集積回路の規模が小さいときは、従来の検査系列生成方法で特に問題はなかった。しかし、集積技術の進歩に伴い半導体集積回路の規模が大きくなるにつれて、検査系列の生成に膨大な時間を要するようになった。特に近年、電子計算機によって検査系列を自動生成する場合が多いが、半導体集積回路の集積度の飛躍的な向上により従来の検査系列生成方法では検査系列生成及び系列長の圧縮に膨大な時間及び膨大な記憶容量が必要となるという問題があった。
【0020】
前記の問題に鑑み、本発明は、検査系列生成及び系列長の圧縮を容易に行うことができる半導体集積回路を対象にした検査系列生成方法を提供するものである。
【0021】
【課題を解決するための手段】
前記の目的を達成するため、本発明は、スキャンチェーンに属するスキャンFFによって他の論理ブロックとの信号の送受信を行うスキャン論理ブロックを備えた半導体集積回路を対象にし、前記スキャン論理ブロックを1つの回路と見なしてブロック検査系列を生成した後に、このブロック検査系列を半導体集積回路全体を対象とする検査系列に変換する検査系列生成方法である。
【0022】
具体的に本発明が対象とする半導体集積回路は、複数の論理ブロックを備え、1つ又は複数のスキャンフリップフロップが直列に接続されることにより構成され、入力端子及び出力端子が前記半導体集積回路の外部端子に各々接続されている1つ又は複数のスキャンチェーンを備え、前記複数の論理ブロックのうち少なくとも一つは、他の論理ブロックからの信号を受信する少なくとも1つのスキャンフリップフロップ及び他の論理ブロックに信号を送信する少なくとも1つのスキャンフリップフロップを含む複数のスキャンフリップフロップを有し、該複数のスキャンフリップフロップは各々前記1つ又は複数のスキャンチェーンのいずれかに属するスキャン論理ブロックである構成とする。
【0023】
この半導体集積回路の構成により、スキャンチェーンのシフト動作を用いることによって、スキャン論理ブロック中のスキャンフリップフロップに外部からデータを設定したりスキャンフリップフロップが保持するデータを外部から観測したりすることが可能となる。すなわち、スキャン論理ブロック中のスキャンフリップフロップは可制御又は可観測となる。スキャン論理ブロックは半導体集積回路の外部又は他の論理ブロックからの信号をスキャンフリップフロップで受信するので、スキャン論理ブロックの入力が可制御となり、半導体集積回路の外部又は他の論理ブロックへの信号もスキャンフリップフロップから送信するのでスキャン論理ブロックの出力が可観測となる。このため、スキャン論理ブロックを1つの回路として単独で検査を行うことができる。
【0024】
そして、請求項1の発明が講じた解決手段は、前記半導体集積回路内に仮定された故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属するスキャン論理ブロックを1つの回路とみなし、前記故障を検出するための検査系列であるブロック検査系列を生成する第1の処理と、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンに、前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップをシフトさせるパターンを追加する第2の処理と、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンに、前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップをシフトさせるパターンを追加する第3の処理とを備えている構成とするものである。
【0025】
また、請求項2の発明が講じた解決手段は、前記半導体集積回路内に仮定された故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属するスキャン論理ブロックを1つの回路とみなし、前記故障を検出するための検査系列であるブロック検査系列を生成する第1の処理と、前記スキャン論理ブロックを通過するスキャンチェーンの中でスキャンフリップフロップを最も多く含むスキャンチェーンに含まれているスキャンフリップフロップの数をMとし、前記スキャン論理ブロックを通過するスキャンチェーンの中で前記スキャン論理ブロックの中にあるスキャンフリップフロップを最も多く含むスキャンチェーンに含まれている前記スキャン論理ブロックの中にあるスキャンフリップフロップの数をSとしたとき、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数とSとの合計数をMから減じた数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第2の処理と、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数とSとの合計数をMから減じた数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第3の処理とを備えている構成とするものである。
【0026】
請求項2の発明の構成により、第1の処理によって、スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列が生成される。第2の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックに入力データをシフトインするシフトパターンの前後に、スキャン論理ブロックよりも入力側の構成に応じたシフトパターンが追加される。第3の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックから期待値比較用データをシフトアウトするシフトパターンの前後に、スキャン論理ブロックよりも出力側の構成に応じたシフトパターンが追加される。このため、前記ブロック検査系列が半導体集積回路全体を対象とした検査系列に変換されることになる。
【0027】
また、請求項3の発明は、請求項2の発明の構成に、前記スキャン論理ブロックを通過するスキャンチェーンの中で、前記半導体集積回路の外部端子から前記スキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記ブロック検査系列の中の前記スキャンチェーンに対する入力データを反転させる第4の処理と、前記スキャン論理ブロックを通過するスキャンチェーンの中で、前記スキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記ブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データを反転させる第5の処理とをさらに備えている構成を付加するものである。
【0028】
請求項3の発明の構成により、半導体集積回路の外部端子から前記スキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、第4の処理によって、前記ブロック検査系列の中の前記スキャンチェーンに対する入力データは反転される。また、前記スキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、第5の処理によって、前記ブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データは反転される。
【0029】
また、請求項4の発明が講じた解決手段は、前記半導体集積回路内に仮定された複数の故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属する各スキャン論理ブロックを1つの回路とみなし、該故障を検出するための検査系列であるブロック検査系列を各々生成し、生成された各ブロック検査系列を前記半導体集積回路全体を対象とした検査系列に各々変換する検査系列生成処理と、前記検査系列生成処理によって生成された複数の検査系列をマージして前記複数の故障を検出するための検査系列を生成する検査系列合成処理とを備えている構成とするものである。
【0030】
請求項5の発明は、請求項4の発明の構成に、前記検査系列生成処理は、仮定された故障が属するスキャン論理ブロックが前記1つ又は複数のスキャンチェーンのいずれにも属さないフリップフロップを有しているとき、該フリップフロップをブラックボックスとみなし前記スキャン論理ブロックをフルスキャン回路と仮定してブロック検査系列を生成する処理を有する構成を付加するものである。
【0031】
また、請求項6の発明が講じた解決手段は、前記半導体集積回路内に仮定された複数の故障を検出するための検査系列を生成する検査系列生成方法を対象とし、仮定された故障が属するA個のスキャン論理ブロックのうちi(1≦i≦A)番目のスキャン論理ブロックに対し、該スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列を生成する第1の処理と、前記A個のスキャン論理ブロックのいずれかを通過するスキャンチェーンの中で最も多くのスキャンフリップフロップを含むスキャンチェーンに含まれているスキャンフリップフロップの数をNとし、前記A個のスキャン論理ブロックのいずれかを通過するスキャンチェーンの中でi番目のスキャン論理ブロックの中にあるスキャンフリップフロップを最も多く含むスキャンチェーンに含まれている前記i番目のスキャン論理ブロックの中にあるスキャンフリップフロップの数をTi とするとき、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数とTi との合計数をNから減じた数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第2の処理と、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数とTi との合計数をNから減じた数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第3の処理とを備え、前記第1〜第3の処理を繰り返し実行することにより、前記A個のスキャン論理ブロックに対する検査系列を各々生成し、さらに、生成された複数の検査系列を時刻順に重ね合わせてマージすることによりA個のスキャン論理ブロック内に各々仮定した故障を検出するための検査系列を生成する第4の処理を備えている構成とするものである。
【0032】
請求項6の発明の構成により、第1の処理によって、i番目のスキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列が生成される。第2の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックに入力データをシフトインするシフトパターンの前後に、スキャン論理ブロックよりも入力側の構成に応じたシフトパターンが追加される。第3の処理によって、第1の処理によって得られたブロック検査系列において、各スキャンチェーンを介して前記スキャン論理ブロックから期待値比較用データをシフトアウトするシフトパターンの前後に、スキャン論理ブロックよりも出力側の構成に応じたシフトパターンが追加される。このため、前記ブロック検査系列が半導体集積回路全体を対象とした検査系列に変換される。前記第1〜第3の処理を繰り返し実行されると、A個のスキャン論理ブロックに対する検査系列が各々生成されることになる。第4の処理によって、A個のスキャン論理ブロックに対する各検査系列がマージされることにより仮定した故障を検出するための検査系列が生成される。
【0033】
請求項7の発明は、請求項6の発明の構成に、前記i番目のスキャン論理ブロックを通過するスキャンチェーンの中で、前記半導体集積回路の外部端子から前記i番目のスキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記i番目のスキャン論理ブロックに対するブロック検査系列の中の前記スキャンチェーンに対する入力データを反転させる第5の処理と、前記i番目のスキャン論理ブロックを通過するスキャンチェーンの中で、前記i番目のスキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記i番目のスキャン論理ブロックに対するブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データを反転させる第6の処理とをさらに備えている構成を付加するものである。
【0034】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照しながら説明する。
【0035】
(第1の実施形態)
図1は本発明の第1の実施形態に係る半導体集積回路10の回路図である。図1において、半導体集積回路10は4つの論理ブロック12、14、16及び18を備えている。論理ブロック12はスキャンFF12a、12b及び12c、NANDゲート12d及びDフリップフロップ12eを有している。また、論理ブロック14はスキャンFF14a及び14bを有しており、論理ブロック18はスキャンFF18aを有している。スキャンFF14a、14b、12b、12c及び18aによって第1のスキャンチェーンが構成され、スキャンFF12aによって第2のスキャンチェーンが構成されている。
【0036】
論理ブロック12は、他の論理ブロック14及び16からの信号をスキャンFF12a及び12bによって受信する一方、論理ブロック18への信号をスキャンFF12cによって送信する。本実施形態では、他の論理ブロックからの信号をスキャンFFによって受信する一方、他の論理ブロックへの信号をスキャンFFによって送信する論理ブロックをスキャン論理ブロックと呼ぶ。スキャン論理ブロック12において、スキャンFF12b及び12cによって第1の部分スキャンチェーンが構成され、スキャンFF12aによって第2の部分スキャンチェーンが構成されている。第1の部分スキャンチェーンの入力はブロックスキャンインピンB_SIに接続されており、ブロックスキャンインピンB_SIは論理ブロック14の有するスキャンFF14a及び14bを介して第1のスキャンイン用外部端子SI1に接続されている。一方、第1の部分スキャンチェーンの出力はブロックスキャンアウトピンB_SOに接続されており、ブロックスキャンアウトピンB_SOは論理ブロック18の有するスキャンFF18aを介して第1のスキャンアウト用外部端子SO1に接続されている。第2の部分スキャンチェーンの入力は第2のスキャンイン用外部端子SI2に直接接続されている一方、その出力は第2のスキャンアウト用外部端子SO2に直接接続されている。
【0037】
図2は本発明の第1の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【0038】
図2において、処理S11は、スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列を生成する処理である。
【0039】
処理S12は、処理S11によって生成されたブロック検査系列において、実際の回路と対応するように、スキャン論理ブロックに入力データをシフトインするパターンの前後にスキャンFFをシフトさせるパターン(以下、シフトパターンという)を追加する処理である。
【0040】
処理S13は、処理S11によって生成されたブロック検査系列において、実際の回路と対応するように、スキャン論理ブロックから出力データをシフトアウトするパターンの前後にシフトパターンを追加する処理である。
【0041】
図1に示す半導体集積回路において、スキャン論理ブロック12の信号線Aにおける0縮退故障の有無を検査するための検査系列を図2に示す検査系列生成方法によって生成する場合を例にとって、本実施形態を説明する。
【0042】
ここで、検査対象となるスキャン論理ブロックを通過するスキャンチェーンの中でスキャンFFを最も多く含むスキャンチェーンに含まれているスキャンFFの数をMとし、検査対象となるスキャン論理ブロックを通過するスキャンチェーンの中で前記スキャン論理ブロックの中にあるスキャンFFを最も多く含むスキャンチェーンに含まれている前記スキャン論理ブロックの中にあるスキャンFFの数をSとする。
【0043】
図1に示す半導体集積回路では、第1のスキャンチェーンに含まれるスキャンFFの数は5であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、Mの値は5となる。また、スキャン論理ブロック12の中にあるスキャンFFのうち、第1のスキャンチェーンに含まれるスキャンFFの数は2であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、Sの値は2となる。
【0044】
また、第1のスキャンチェーンに含まれるスキャンFFの中でスキャン論理ブロック12よりも入力側にあるものの数は2、出力側にあるものの数は1、第2のスキャンチェーンに含まれるスキャンFFの中でスキャン論理ブロック12よりも入力側にあるものの数は0、出力側にあるものの数は0である。
【0045】
まず、処理S11によって、図3に示すようなブロック検査系列が得られる。図3において、CLK、NT、IN、SI2及びSO2は半導体集積回路10の外部端子であり、B_SI、B_SOは検査対象となるスキャン論理ブロック12のピンである。0及び1は各々入力“0”及び“1”を表し、Hは出力における期待値が“1”であることを表す。また、Xはドントケアである。さらに、クロックの立ち上がりによってデータが1つシフトするので、検査系列の2行分が1つのシフトパターンに当たる。
【0046】
時刻0〜3は、スキャンモード(NT=1)において、スキャン論理ブロック12の各部分スキャンチェーンに入力データをシフトインする。時刻4〜7は、通常モード(NT=0)において、信号線AのデータをスキャンFF12cに取り込む。時刻8〜11は、スキャンモード(NT=1)において、スキャン論理ブロック12の各部分スキャンチェーンから期待値比較用のデータをシフトアウトする。
【0047】
次に、処理S12によって、図3に示す検査系列において、シフトインするパターンの前後にシフトパターンを追加する。
【0048】
具体的には次のような処理を行う。各部分スキャンチェーンが属するスキャンチェーン毎に、スキャン論理ブロック12よりも入力側にあるスキャンFFの数とSとをMから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンに入力データをシフトインするパターンの前に追加する。Mの値が5でありSの値が2であることから、第1の部分スキャンチェーンに入力データをシフトインするパターンの前に1(=M−S−2)個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするシフトパターンの前に3(=M−S−0)個のシフトパターンが追加される。
【0049】
また、各部分スキャンチェーンに入力データをシフトインするパターンの後に、各部分スキャンチェーンが属するスキャンチェーンにおいてスキャン論理ブロック12よりも入力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンに入力データをシフトインするパターンの後に2個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするシフトパターンの後に0個のシフトパターンが追加される。処理S12を行った結果得られる検査系列を図4に示す。
【0050】
次に、処理S13によって、図4に示す検査系列において、シフトアウトするパターンの前後にシフトパターンを追加する。
【0051】
具体的には次のような処理を行う。各部分スキャンチェーンから出力データをシフトアウトするパターンの前に、各部分スキャンチェーンが属するスキャンチェーンにおけるスキャン論理ブロック12よりも出力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンから出力データをシフトアウトするパターンの後に1個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするパターンの後に0個のシフトパターンが追加される。
【0052】
また、各部分スキャンチェーンが属するスキャンチェーン毎に、スキャン論理ブロック12よりも出力側にあるスキャンFFの数とSとをMから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンから出力データをシフトアウトするパターンの後に追加する。Mの値が5でありSの値が2であることから、第1の部分スキャンチェーンから出力データをシフトアウトするパターンの後に2(=M−S−1)個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするシフトパターンの後に3(=M−S−0)個のシフトパターンが追加される。処理S13を行った結果得られる検査系列を図5に示す。B_SIをSIに、B_SOをSOにそれぞれ変更することによって、図5に示す検査系列は半導体集積回路10全体を対象とした検査系列となる。
【0053】
以上説明したように、本実施形態によると、スキャン論理ブロックを1つの回路とみなしてブロック検査系列を生成した後に、シフトインするパターンの前後及びシフトアウトするパターンの前後に求められた数のシフトパターンを追加することによって、半導体集積回路全体を対象とした検査系列を従来よりも容易に生成することができる。
【0054】
なお、本実施形態によると、シフトインに要するクロック数とシフトアウトに要するクロック数とが等しくなることから、複数の故障の検出のために検査系列を連続して生成する場合に、ある検査系列のシフトアウトパターンと次の検査系列のシフトインパターンとのマージが可能となり、より短い検査系列を容易に生成することができる。
【0055】
(第2の実施形態)
図6は本発明の第2の実施形態に係る半導体集積回路20の回路図である。図1に示した第1の実施形態に係る半導体集積回路10と比較すると、論理ブロック14中のスキャンFF14bの出力が反転している(ピンNQから出力されている)点、及び論理ブロック18中のスキャンFF18aの出力が反転している(ピンNQから出力されている)点を除いて構成は同一であり、同一の構成要素には同一符号を付している。
【0056】
図7は本発明の第2の実施形態に係る検査系列生成方法の処理の流れを示す流れ図である。図2に示す第1の実施形態に係る検査系列生成方法と比較すると、処理S11と処理S21、処理S12と処理S24、及び処理S13と処理S25とは各々同じ処理である。
【0057】
処理S22は、スキャン論理ブロックを通過する各スキャンチェーンの中で、半導体集積回路のスキャンイン用外部端子からスキャン論理ブロックの入力ピンまでスキャンチェーンを介して入力データがシフトする間に信号が反転するスキャンチェーンについては、シフトインするパターン中の入力データを反転させる処理である。
【0058】
処理S23は、スキャン論理ブロックを通過する各スキャンチェーンの中で、スキャン論理ブロックの出力ピンから半導体集積回路のスキャンアウト用外部端子までスキャンチェーンを介して期待値比較用データがシフトする間に信号が反転するスキャンチェーンについては、シフトアウトするシフトパターン中の期待値比較用のデータを反転させる処理である。
【0059】
図6に示す半導体集積回路において、スキャン論理ブロック12の信号線Aにおける0縮退故障の有無を検査するための検査系列を図7に示す検査系列生成方法によって生成する場合を例にとって、本実施形態を説明する。
【0060】
まず、処理S21によって、第1の実施形態と同様に図3に示すようなブロック検査系列が得られる。
【0061】
次に、処理S22によって、図3に示すブロック検査系列が図8に示すようなブロック検査系列に変換される。ここでは、第1のスキャンチェーンを構成し且つスキャン論理ブロック12よりも入力側にあるスキャンFF14bの出力が反転しているので、時刻2及び3のブロックスキャンインピンB_SIの入力データが“1”から“0”に変換される。
【0062】
次に、処理S23によって、図8に示すブロック検査系列が図9に示すようなブロック検査系列に変換される。ここでは、第1のスキャンチェーンを構成し且つスキャン論理ブロック12よりも出力側にあるスキャンFF18aの出力が反転しているので、時刻8のブロックスキャンアウトピンB_SOの期待値比較用データが“H”から“L”に変換される。Lは出力における期待値が“0”であることを示す。
【0063】
次に、処理S24及びS25によって、第1の実施形態と同様にシフトインパターンの前後及びシフトアウトパターンの前後にシフトパターンの追加が行われ、図10に示すような検査系列が得られる。B_SIをSIに、B_SOをSOにそれぞれ変更することによって、図10に示す検査系列は半導体集積回路20全体を対象とした検査系列となる。
【0064】
以上説明したように、本実施形態によると、半導体集積回路のスキャンイン用外部端子からスキャン論理ブロックの入力までスキャンチェーンを介して入力データがシフトする間に信号が反転する回路、及びスキャン論理ブロックの出力からスキャンアウト用外部端子までスキャンチェーンを介して期待値比較用のデータがシフトする間に信号が反転する回路についても、検査系列の生成をスキャン論理ブロック毎に行うことができる。
【0065】
なお、第1及び第2の実施形態に係る半導体集積回路のスキャン論理ブロックは、他の論理ブロックからの信号を必ずしも全てスキャンFFによって受信していなくても構わない。また、他の論理ブロックへの信号を必ずしも全てスキャンFFによって送信していなくても構わない。
【0066】
図11は本実施形態に係る半導体集積回路の他の例を示す回路図である。図11において、20Aは半導体集積回路であり、図6に示す半導体集積回路20と比較すると、スキャン論理ブロック12にピンINX1及びORゲート12fが追加され、論理ブロック14中のスキャンFF14bの出力がピンINX1に入力されている点を除いて同じ構成であり、同一の構成要素には同一符号を付している。
【0067】
スキャン論理ブロック12は、ピンINX1の信号をスキャンFFで受信していない。しかし、外部端子INからの入力を“1”にすればピンINX1の入力に関わらず(ドントケアとして扱えば良い)ORゲート12fの出力を“1”にすることができるので、すでに説明した図6に示す回路に対する方法と同様の方法によって検査系列を生成することができる。
【0068】
(第3の実施形態)
本発明の第3の実施形態は、複数のスキャン論理ブロックを対象にして検査系列を生成するものである。
【0069】
図12は本発明の第3の実施形態に係る半導体集積回路30の回路図である。図12において、半導体集積回路30は第1のスキャン論理ブロック32、第2のスキャン論理ブロック34、論理ブロック36及び38を備えている。第1のスキャン論理ブロック32はスキャンFF32a、32b及び32c、Dフリップフロップ32d、NANDゲート32e及びANDゲート32fを有している。第2のスキャン論理ブロック34はスキャンFF34a及び34bを有している。論理ブロック38はスキャンFF38aを有している。スキャンFF34a、34b、32b、32c及び38aによって第1のスキャンチェーンが構成され、スキャンFF32aによって第2のスキャンチェーンが構成される。
【0070】
第1のスキャン論理ブロック32は、第2のスキャン論理ブロック34及び論理ブロック36からの信号をスキャンFF32a及び32bによって受信する一方、論理ブロック38への信号をスキャンFF32cによって送信する。スキャンFF32b及び32cによって第1の部分スキャンチェーンが構成され、スキャンFF32aによって第2の部分スキャンチェーンが構成されている。第1の部分スキャンチェーンの入力はブロックスキャンインピンB_SIに接続されており、ブロックスキャンインピンB_SIは第2のスキャン論理ブロック34の有するスキャンFF34a及び34bを介して第1のスキャンイン用外部端子SI1に接続されている。第1の部分スキャンチェーンの出力はブロックスキャンアウトピンB_SOに接続されており、ブロックスキャンアウトピンB_SOは論理ブロック38の有するスキャンFF38aを介して第1のスキャンアウト用外部端子SO1に接続されている。また、第2の部分スキャンチェーンの入力は第2のスキャンイン用外部端子SI2に直接接続されている一方、その出力は第2のスキャンアウト用外部端子SO2に直接接続されている。
【0071】
第2のスキャン論理ブロック34は、第1のスキャンイン用外部端子SI1からの信号をスキャンFF34aによって受信する一方、第1の論理ブロック32への信号をスキャンFF34bによって送信する。
【0072】
図13は本発明の第3の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。図7に示す第2の実施形態に係る検査系列生成方法と比較すると、処理S31は処理S21と同じであり、処理S32は処理S22と同じであり、処理S33は処理S23と同じである。処理S34は処理S24とほぼ同様であるが、追加するシフトパターンの数を求める方法が若干異なる。また、処理S35も処理S25とほぼ同様であるが、追加するシフトパターンの数を求める方法が若干異なる。この点については後述する。
【0073】
処理S31から処理S35までをスキャン論理ブロック毎に実行する。処理S36は、検査対象となる全てのスキャン論理ブロックについて検査系列を生成したか否かを判定する処理である。
【0074】
処理S37は、各スキャン論理ブロックについて生成された検査系列をマージする処理である。
【0075】
図12に示す半導体集積回路30において、第1のスキャン論理ブロック32の信号線Bにおける1縮退故障の有無を検査すると共に第2のスキャン論理ブロック34の信号線Cにおける0縮退故障の有無を検査するための検査系列を図13に示す検査系列方法によって生成する場合を例にとって、本実施形態を説明する。
【0076】
ここで、検査対象となるスキャン論理ブロックのいずれかを通過するスキャンチェーンの中で最も多くのスキャンFFを含むスキャンチェーンのスキャンFFの数をNとする。また、検査対象となるスキャン論理ブロック毎に、スキャン論理ブロックを通過するスキャンチェーンの中でスキャン論理ブロックの中にあるスキャンFFを最も多く含むスキャンチェーンに含まれているスキャン論理ブロックの中にあるスキャンFFの数を求め、その数をTi (iはスキャン論理ブロックの番号を示す)とする。
【0077】
図12に示す半導体集積回路では、第1のスキャンチェーンに含まれるスキャンFFの数は5であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、Nの値は5となる。また、第1のスキャン論理ブロック32の中にあるスキャンFFのうち第1のスキャンチェーンに含まれるスキャンFFの数は2であり第2のスキャンチェーンに含まれるスキャンFFの数は1であるので、T1 は2となる。第2のスキャン論理ブロック34の中にある2つのスキャンFFは共に第1のスキャンチェーンに含まれるので、T2 は2となる。
【0078】
まず、第1のスキャン論理ブロック32について検査系列を生成する。第1のスキャンチェーンに含まれるスキャンFFの中で第1のスキャン論理ブロック32よりも入力側にあるものの数は2、出力側にあるものの数は1であり、第2のスキャンチェーンに含まれるスキャンFFの中で第1のスキャン論理ブロック32よりも入力側にあるものの数は0、出力側にあるものの数は0である。
【0079】
処理S31によって、Dフリップフロップ32dをブラックボックスとして、図14に示すようなブロック検査系列が得られる。図14において、CLK、NT、SI2及びSO2は半導体集積回路30の外部端子のデータであり、B_SI及びB_SOは検査対象となる第1のスキャン論理ブロック32のピンのデータである。
【0080】
スキャンFF34bの出力が反転している(ピンNQから出力されている)ので、処理S32によって、図14に示すブロック検査系列が図15に示すようなブロック検査系列に変換される。また、スキャンFF38aの出力が反転している(ピンNQから出力されている)ので、処理S33によって、図15に示すブロック検査系列が図16に示すようなブロック検査系列に変換される。
【0081】
次に、処理S34によって、図16に示す検査系列において、シフトインするパターンの前後にシフトパターンを追加する。
【0082】
具体的には次のような処理を行う。各部分スキャンチェーンが属するスキャンチェーン毎に、第1のスキャン論理ブロック32よりも入力側にあるスキャンFFの数とT1 とをNから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンに入力データをシフトインするパターンの前に追加する。Nの値が5でありT1 の値が2であることから、第1の部分スキャンチェーンに入力データをシフトインするパターンの前に1(=N−T1 −2)個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするパターンの前に3(=N−T1 −0)個のシフトパターンが追加される。
【0083】
また、各部分スキャンチェーンに入力データをシフトインするパターンの後に、各部分スキャンチェーンの属するスキャンチェーンにおいて第1のスキャン論理ブロック32よりも入力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンに入力データをシフトインするパターンの後に2個のシフトパターンが追加され、第2の部分スキャンチェーンに入力データをシフトインするシフトパターンの後に0個のシフトパターンが追加される。処理S34を行った結果得られる検査系列を図17に示す。
【0084】
次に、処理S35によって、図17に示す検査系列において、シフトアウトするパターンの前後にシフトパターンを追加する。
【0085】
具体的には次のような処理を行う。各部分スキャンチェーンから出力データをシフトアウトするパターンの前に、各部分スキャンチェーンが属するスキャンチェーンにおいて第1のスキャン論理ブロック32よりも出力側にあるスキャンFFの数のシフトパターンを追加する。第1の部分スキャンチェーンから出力データをシフトアウトするパターンの前に1個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするパターンの前に0個のシフトパターンが追加される。
【0086】
また、各部分スキャンチェーンが属するスキャンチェーン毎に、第1のスキャン論理ブロック32よりも出力側にあるスキャンFFの数とT1 とをNから減じた数を求め、求めた数のシフトパターンを各部分スキャンチェーンから出力データをシフトアウトするパターンの後に追加する。Nの値が5でありT1 の値が2であることから、第1の部分スキャンチェーンから出力データをシフトアウトするパターンの後に2(=N−T1 −1)個のシフトパターンが追加され、第2の部分スキャンチェーンから出力データをシフトアウトするパターンの後に3(=N−T1 −0)個のシフトパターンが追加される。
【0087】
処理S35を行った結果得られる検査系列を図18に示す。B_SIをSI1に、B_SOをSO2にそれぞれ変更することによって、図18に示す検査系列は半導体集積回路30全体を対象とした検査系列となる。
【0088】
次に、処理S36によって、全てのスキャン論理ブロックに対して検査系列の生成が終了したか否かを判断する。第2のスキャン論理ブロック34の検査系列はまだ生成されていないので、処理S31へ戻る。
【0089】
次に、第2のスキャン論理ブロック34に対して検査系列を生成する。第2のスキャン論理ブロック34を通過するスキャンチェーンは、第1のスキャンチェーンのみであり、第1のスキャンチェーンに含まれるスキャンFFの中で第2のスキャン論理ブロック32よりも入力側にあるものの数は0、出力側にあるものの数は3である。
【0090】
まず、処理S31によって図19に示すブロック検査系列が得られる。
【0091】
第1のスキャンチェーンにおいて第2のスキャン論理ブロック34よりも入力側では信号が反転しないので、処理S32はスキップされる。スキャンFF38aの出力が反転しているので、処理S33によって、図19に示すブロック検査系列が図20に示すようなブロック検査系列に変換される。
【0092】
次に、処理S34によって、Nが5、T2 が2であることから、第1のスキャンチェーンに入力データをシフトインするパターンの前に3個のシフトパターンが追加され、その後に0個のシフトパターンが追加される。処理S34の結果得られる検査系列を図21に示す。
【0093】
次に、処理S35によって、第1のスキャンチェーンから出力データをシフトアウトするパターンの前に3個のシフトパターンが追加され、その後に0個のシフトパターンが追加される。
【0094】
処理S35を行った結果得られる検査系列を図22に示す。B_SIをSI2に変更することによって、図22に示す検査系列は半導体集積回路30全体を対象とした検査系列となる。
【0095】
次に、処理S36によって、全てのスキャン論理ブロックに対して検査系列が生成されたと判断されるので、処理S37へ進む。
【0096】
処理S37によって、第1のスキャン論理ブロック32に対して生成された検査系列及び第2のスキャン論理ブロック34に対して生成された検査系列をマージする。
【0097】
図18に示す検査系列においてB_SIをSI1に変更すると共にB_SOをSO2に変更し、また、図22に示す検査系列においてB_SIをSI2に変更する。得られた2つの検査系列の各ピンのデータを、時刻順に重ね合わせて行く。データが異なる場合は、X(ドントケア)でない方を優先して選択する。この結果、図23に示すような検査系列を得ることができる。図23に示す検査系列を用いれば、第1のスキャン論理ブロック32の信号線Bにおける1縮退故障の有無及び第2のスキャン論理ブロック34の信号線Cにおける0縮退故障の有無を共に検査することができる。
【0098】
以上説明したように、本実施形態によると、検査系列の生成をスキャン論理ブロック毎に行った後にそのパターンをマージすることによって検査系列の圧縮を行うことができる。
【0099】
また、半導体集積回路の外部端子からスキャン論理ブロックの入力までスキャンチェーンを介して入力データがシフトする間に信号が反転する回路、及びスキャン論理ブロックの出力から半導体集積回路の外部端子までスキャンチェーンを介して出力データがシフトする間に信号が反転する回路が含まれていても、検査系列の生成及び圧縮を行うことができる。
【0100】
なお、本実施形態によると、シフトインに要するクロック数とシフトアウトに要するクロック数とが等しくなることから、複数の故障の検出のために検査系列を連続して生成する場合に、ある検査系列のシフトアウトパターンと次の検査系列のシフトインパターンとのマージが可能となり、より短い検査系列を容易に生成することができる。
【0101】
なお、本実施形態に係る半導体集積回路のスキャン論理ブロックは、他の論理ブロックからの信号を必ずしも全てスキャンFFによって受信していなくても構わない。また、他の論理ブロックへの信号を必ずしも全てスキャンFFによって送信していなくても構わない。
【0102】
図24は本実施形態に係る半導体集積回路の回路図である。図24において、30Aは半導体集積回路であり、図12に示す半導体集積回路30と比較すると、第1のスキャン論理ブロック32の2入力ANDゲート32fの代わりに3入力ANDゲート32gが配置され、さらにピンINX2が追加され、第2のスキャン論理ブロック34中のスキャンFF34bの出力がピンINX2に入力されている点を除いて同じ構成であり、同一の構成要素には同一符号を付している。
【0103】
第1のスキャン論理ブロック32は、ピンINX2の信号をスキャンFFで受信していない。しかし、スキャンFF32a及び32bの出力をシフトイン動作によって各々“1”に設定すればピンINX2の入力に関わらず(ドントケアとして扱えば良い)ANDゲート32gの出力を“0”にできるので、すでに説明した図12に示す回路に対する方法と同様の方法によって検査系列を生成することができる。
【0104】
【発明の効果】
請求項1〜3の発明に係る検査系列生成方法によると、スキャン論理ブロックを1つの回路とみなしてブロック検査系列を生成した後、簡単な処理によって半導体集積回路全体を対象とした検査系列に変換することができるので、大規模な半導体集積回路に対しても検査系列を容易に生成することができる。
【0105】
請求項4〜7の発明に係る検査系列生成方法によると、スキャン論理ブロック毎に検査系列を生成した後マージすることにより複数の故障を検査するための検査系列を生成することができるので、大規模な半導体集積回路に対しても検査系列を容易に生成することができると共に従来よりも検査系列を圧縮することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る半導体集積回路の回路図である。
【図2】本発明の第1の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【図3】本発明の第1の実施形態に係る検査系列生成方法の処理S11によって得られる検査系列を示す図である。
【図4】本発明の第1の実施形態に係る検査系列生成方法の処理S12によって得られる検査系列を示す図である。
【図5】本発明の第1の実施形態に係る検査系列生成方法によって得られる検査系列を示す図である。
【図6】本発明の第2の実施形態に係る半導体集積回路の回路図である。
【図7】本発明の第2の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【図8】本発明の第2の実施形態に係る検査系列生成方法の処理S22によって得られる検査系列を示す図である。
【図9】本発明の第2の実施形態に係る検査系列生成方法の処理S23によって得られる検査系列を示す図である。
【図10】本発明の第2の実施形態に係る検査系列生成方法によって得られる検査系列を示す図である。
【図11】本発明の第2の実施形態に係る半導体集積回路の回路図である。
【図12】本発明の第3の実施形態に係る半導体集積回路の回路図である。
【図13】本発明の第3の実施形態に係る検査系列生成方法における処理の流れを示す流れ図である。
【図14】本発明の第3の実施形態に係る検査系列生成方法の処理S31によって得られる検査系列を示す図である。
【図15】本発明の第3の実施形態に係る検査系列生成方法の処理S32によって得られる検査系列を示す図である。
【図16】本発明の第3の実施形態に係る検査系列生成方法の処理S33によって得られる検査系列を示す図である。
【図17】本発明の第3の実施形態に係る検査系列生成方法の処理S34によって得られる検査系列を示す図である。
【図18】本発明の第3の実施形態に係る検査系列生成方法の処理S35によって得られる検査系列を示す図である。
【図19】本発明の第3の実施形態に係る検査系列生成方法の処理S31によって得られる検査系列を示す図である。
【図20】本発明の第3の実施形態に係る検査系列生成方法の処理S33によって得られる検査系列を示す図である。
【図21】本発明の第3の実施形態に係る検査系列生成方法の処理S34によって得られる検査系列を示す図である。
【図22】本発明の第3の実施形態に係る検査系列生成方法の処理S35によって得られる検査系列を示す図である。
【図23】本発明の第3の実施形態に係る検査系列生成方法によって得られる検査系列を示す図である。
【図24】本発明の第3の実施形態に係る半導体集積回路の回路図である。
【図25】従来の検査系列生成方法を説明するための半導体集積回路の回路図である。
【図26】検査系列の例である。
【符号の説明】
10 半導体集積回路
12 スキャン論理ブロック
12a,12b,12c,14a,14b,18a スキャンフリップフロップ14,16,18 論理ブロック
20,20A 半導体集積回路
30,30A 半導体集積回路
32 スキャン論理ブロック
32a,32b,32c,34a,34b,38a スキャンフリップフロップ34,36,38 論理ブロック
Claims (7)
- 半導体集積回路内に仮定された故障を検出するための検査系列を生成する検査系列生成方法であって、
前記半導体集積回路は、
複数の論理ブロックと、
1つ又は複数のスキャンフリップフロップが直列に接続されることにより構成され、入力端子及び出力端子が前記半導体集積回路の外部端子に各々接続されている1つ又は複数のスキャンチェーンとを備え、
前記複数の論理ブロックのうち少なくとも一つは、
他の論理ブロックからの信号を受信する少なくとも1つのスキャンフリップフロップ及び他の論理ブロックに信号を送信する少なくとも1つのスキャンフリップフロップを含む複数のスキャンフリップフロップを有し、該複数のスキャンフリップフロップは各々前記1つ又は複数のスキャンチェーンのいずれかに属するスキャン論理ブロックであるものであり、
当該検査系列生成方法は、
仮定された故障が属するスキャン論理ブロックを1つの回路とみなし、前記故障を検出するための検査系列であるブロック検査系列を生成する第1の処理と、
前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンに、前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップをシフトさせるパターンを追加する第2の処理と、
前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンに、前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップをシフトさせるパターンを追加する第3の処理とを備えている
ことを特徴とする検査系列生成方法。 - 半導体集積回路内に仮定された故障を検出するための検査系列を生成する検査系列生成方法であって、
前記半導体集積回路は、
複数の論理ブロックと、
1つ又は複数のスキャンフリップフロップが直列に接続されることにより構成され、入力端子及び出力端子が前記半導体集積回路の外部端子に各々接続されている1つ又は複数のスキャンチェーンとを備え、
前記複数の論理ブロックのうち少なくとも一つは、
他の論理ブロックからの信号を受信する少なくとも1つのスキャンフリップフロップ及び他の論理ブロックに信号を送信する少なくとも1つのスキャンフリップフロップを含む複数のスキャンフリップフロップを有し、該複数のスキャンフリップフロップは各々前記1つ又は複数のスキャンチェーンのいずれかに属するスキャン論理ブロックであるものであり、
当該検査系列生成方法は、
仮定された故障が属するスキャン論理ブロックを1つの回路とみなし、前記故障を検出するための検査系列であるブロック検査系列を生成する第1の処理と、
前記スキャン論理ブロックを通過するスキャンチェーンの中でスキャンフリップフロップを最も多く含むスキャンチェーンに含まれているスキャンフリップフロップの数をMとし、前記スキャン論理ブロックを通過するスキャンチェーンの中で前記スキャン論理ブロックの中にあるスキャンフリップフロップを最も多く含むスキャンチェーンに含まれている前記スキャン論理ブロックの中にあるスキャンフリップフロップの数をSとしたとき、
前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数とSとの合計数をMから減じた数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、
前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第2の処理と、
前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、
前記スキャン論理ブロックを通過する各スキャンチェーンに対して前記スキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数とSとの合計数をMから減じた数を求め、前記ブロック検査系列の中の、前記スキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第3の処理とを備えている
ことを特徴とする検査系列生成方法。 - 請求項2に記載の検査系列方法において、
前記スキャン論理ブロックを通過するスキャンチェーンの中で、前記半導体集積回路の外部端子から前記スキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記ブロック検査系列の中の前記スキャンチェーンに対する入力データを反転させる第4の処理と、
前記スキャン論理ブロックを通過するスキャンチェーンの中で、前記スキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記ブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データを反転させる第5の処理とをさらに備えている
ことを特徴とする検査系列生成方法。 - 半導体集積回路内に仮定された複数の故障を検出するための検査系列を生成する検査系列生成方法であって、
前記半導体集積回路は、
複数の論理ブロックと、
1つ又は複数のスキャンフリップフロップが直列に接続されることにより構成され、入力端子及び出力端子が前記半導体集積回路の外部端子に各々接続されている1つ又は複数のスキャンチェーンとを備え、
前記複数の論理ブロックのうち少なくとも一つは、
他の論理ブロックからの信号を受信する少なくとも1つのスキャンフリップフロップ及び他の論理ブロックに信号を送信する少なくとも1つのスキャンフリップフロップを含む複数のスキャンフリップフロップを有し、該複数のスキャンフリップフロップは各々前記1つ又は複数のスキャンチェーンのいずれかに属するスキャン論理ブロックであるものであり、
当該検査系列生成方法は、
仮定された故障が属する各スキャン論理ブロックを1つの回路とみなし、該故障を検出するための検査系列であるブロック検査系列を各々生成し、生成された各ブロック検査系列を前記半導体集積回路全体を対象とした検査系列に各々変換する検査系列生成処理と、
前記検査系列生成処理によって生成された複数の検査系列をマージすることにより前記複数の故障を検出するための検査系列を生成する検査系列合成処理とを備えている
ことを特徴とする検査系列生成方法。 - 請求項4に記載の検査系列生成方法において、
前記検査系列生成処理は、仮定された故障が属するスキャン論理ブロックが前記1つ又は複数のスキャンチェーンのいずれにも属さないフリップフロップを有しているとき、該フリップフロップをブラックボックスとみなし、前記スキャン論理ブロックをフルスキャン回路と仮定してブロック検査系列を生成する処理を有する
ことを特徴とする検査系列生成方法。 - 半導体集積回路内に仮定された複数の故障を検出するための検査系列を生成する検査系列生成方法であって、
前記半導体集積回路は、
複数の論理ブロックと、
1つ又は複数のスキャンフリップフロップが直列に接続されることにより構成され、入力端子及び出力端子が前記半導体集積回路の外部端子に各々接続されている1つ又は複数のスキャンチェーンとを備え、
前記複数の論理ブロックのうち少なくとも一つは、
他の論理ブロックからの信号を受信する少なくとも1つのスキャンフリップフロップ及び他の論理ブロックに信号を送信する少なくとも1つのスキャンフリップフロップを含む複数のスキャンフリップフロップを有し、該複数のスキャンフリップフロップは各々前記1つ又は複数のスキャンチェーンのいずれかに属するスキャン論理ブロックであるものであり、
当該検査系列生成方法は、
仮定された故障が属するA個のスキャン論理ブロックのうちi(1≦i≦A)番目のスキャン論理ブロックに対し、該スキャン論理ブロックを1つの回路とみなしたときの検査系列であるブロック検査系列を生成する第1の処理と、
前記A個のスキャン論理ブロックのいずれかを通過するスキャンチェーンの中で最も多くのスキャンフリップフロップを含むスキャンチェーンに含まれているスキャンフリップフロップの数をNとし、前記A個のスキャン論理ブロックのいずれかを通過するスキャンチェーンの中で前記i番目のスキャン論理ブロックの中にあるスキャンフリップフロップを最も多く含むスキャンチェーンに含まれている前記i番目のスキャン論理ブロックの中にあるスキャンフリップフロップの数をTi とするとき、
前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数とTi との合計数をNから減じた数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、
前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも入力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックに各スキャンチェーンを介して入力データをシフトインするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第2の処理と、
前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの前に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する一方、
前記i番目のスキャン論理ブロックを通過する各スキャンチェーンに対して前記i番目のスキャン論理ブロックよりも出力側にあるスキャンフリップフロップの数とTi との合計数をNから減じた数を求め、前記ブロック検査系列の中の、前記i番目のスキャン論理ブロックから各スキャンチェーンを介して期待値比較用データをシフトアウトするパターンの後に、求めた数のスキャンフリップフロップをシフトさせるパターンを各々追加する第3の処理とを備え、
前記第1〜第3の処理を繰り返し実行することにより、前記A個のスキャン論理ブロックに対する検査系列を各々生成し、さらに、
生成された複数の検査系列を時刻順に重ね合わせてマージすることにより前記複数の故障を検出するための検査系列を生成する第4の処理を備えている検査系列生成方法。 - 請求項6に記載の検査系列生成方法において、
前記i番目のスキャン論理ブロックを通過するスキャンチェーンの中で、前記半導体集積回路の外部端子から前記i番目のスキャン論理ブロックの入力端子まで入力データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記i番目のスキャン論理ブロックに対するブロック検査系列の中の前記スキャンチェーンに対する入力データを反転させる第5の処理と、
前記i番目のスキャン論理ブロックを通過するスキャンチェーンの中で、前記i番目のスキャン論理ブロックの出力端子から前記半導体集積回路の外部端子まで期待値比較用データがシフトする間に信号が反転するスキャンチェーンがあるとき、前記i番目のスキャン論理ブロックに対するブロック検査系列の中の前記スキャンチェーンに対する期待値比較用データを反転させる第6の処理とをさらに備えていることを特徴とする検査系列生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26728095A JP3544415B2 (ja) | 1994-10-18 | 1995-10-16 | 半導体集積回路及び検査系列生成方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25192194 | 1994-10-18 | ||
JP6-251921 | 1994-10-18 | ||
JP26728095A JP3544415B2 (ja) | 1994-10-18 | 1995-10-16 | 半導体集積回路及び検査系列生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08170979A JPH08170979A (ja) | 1996-07-02 |
JP3544415B2 true JP3544415B2 (ja) | 2004-07-21 |
Family
ID=26540432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26728095A Expired - Fee Related JP3544415B2 (ja) | 1994-10-18 | 1995-10-16 | 半導体集積回路及び検査系列生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3544415B2 (ja) |
-
1995
- 1995-10-16 JP JP26728095A patent/JP3544415B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08170979A (ja) | 1996-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Edirisooriya et al. | Diagnosis of scan path failures | |
US7475308B2 (en) | implementing deterministic based broken scan chain diagnostics | |
CN105631077B (zh) | 具有增大的故障覆盖率的集成电路 | |
JP2003332443A (ja) | 半導体集積回路とその設計支援装置およびテスト方法 | |
US20090217116A1 (en) | Diagnosable general purpose test registers scan chain design | |
JPH04233635A (ja) | 順序ディジタル論理回路の組み込み自己検査用装置 | |
US7107502B2 (en) | Diagnostic method for detection of multiple defects in a Level Sensitive Scan Design (LSSD) | |
US6883115B2 (en) | LSI diagnostic system and method of diagnosing LSI | |
Ghosh-Dastidar et al. | Adaptive techniques for improving delay fault diagnosis | |
JP2004510989A (ja) | 内部中間スキャンテスト故障をデバッグするテストアクセスポート(tap)コントローラシステムおよび方法 | |
JP3785388B2 (ja) | 故障検出方法 | |
JP2002257903A (ja) | 半導体集積回路の試験方法と試験パタン生成方法及び装置並びにプログラム | |
CN101315412A (zh) | 一种扫描链故障诊断方法及系统 | |
US6105156A (en) | LSI tester for use in LSI fault analysis | |
JP3544415B2 (ja) | 半導体集積回路及び検査系列生成方法 | |
US6079040A (en) | Module level scan testing | |
Tekumalla | On reducing aliasing effects and improving diagnosis of logic BIST failures | |
JPH05119122A (ja) | スキヤン回路のテストパターン生成方法 | |
JPH08220192A (ja) | 組み込み型自己テスト論理回路 | |
JP3003781B2 (ja) | 検査容易化設計方法、バスエラー回避設計方法及び集積回路 | |
EP0543506A2 (en) | Enhanced boundary-scan interconnect test diagnosis through utilization of board topology data | |
JP3964179B2 (ja) | Lsiスキャンテスト装置、テストシステム、テスト方法、及びテストパターン作成方法 | |
JP4272898B2 (ja) | 半導体テスト回路及びそのテスト方法 | |
Kundu et al. | Diagnosing multiple faulty chains with low pin convolution compressor using compressed production test set | |
JP3117676B2 (ja) | 検査容易化設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040402 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |