JP2011502267A - スキャンチェーンを分析する方法、及びスキャンチェーンにおけるホールドタイム障害の数又は位置を判定する方法 - Google Patents
スキャンチェーンを分析する方法、及びスキャンチェーンにおけるホールドタイム障害の数又は位置を判定する方法 Download PDFInfo
- Publication number
- JP2011502267A JP2011502267A JP2010532295A JP2010532295A JP2011502267A JP 2011502267 A JP2011502267 A JP 2011502267A JP 2010532295 A JP2010532295 A JP 2010532295A JP 2010532295 A JP2010532295 A JP 2010532295A JP 2011502267 A JP2011502267 A JP 2011502267A
- Authority
- JP
- Japan
- Prior art keywords
- scan chain
- scan
- pattern
- value
- hold time
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
Abstract
スキャンチェーンの環境変数を、ホールドタイム障害を生じると思われる値に設定し、スキャンチェーンを通るようにパターンをシフトする。このパターンは、第1論理状態の少なくともn個の連続したビットと、その後に続く第2論理状態の少なくとも1つのビットを含むバックグラウンドパターンを有する。nはスキャンチェーンの長さである。i)少なくとも1つのビットがスキャンチェーンの出力において遷移を生じると予測されるクロックサイクルと、ii)少なくとも1つのビットがスキャンチェーンの出力において実際に遷移を生じるクロックサイクルとの差として、スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定する。スキャンチェーンが正確に動作する環境変数の値が存在する場合には、ホールドタイム障害の1つ以上の場所を判定することができる。
【選択図】図3
【選択図】図3
Description
本発明は、スキャンチェーンを分析する方法、及びスキャンチェーンにおけるホールドタイム障害の数又は位置を判定する方法に関する。
本出願は2007年10月31日に提出された第11/931,847号の一部継続出願であり、本願ではこの出願の内容を参照し、援用する。
本出願は2007年10月31日に提出された第11/931,847号の一部継続出願であり、本願ではこの出願の内容を参照し、援用する。
テクノロジーノードが小さくなると、テストを行う目的で装置に付加されるスキャンチェーン中に、より多くの欠陥が発見されるようになる。これは、本書でも説明するように多くの理由によるものである。新しい集積回路を市場に出すために、そして歩留まりを許容可能レベルに向上させるために、スキャンチェーンの欠陥を識別する新たな方法及び装置が必要である。
スキャンチェーンはテストを行うため、及び歩留まり向上のために重要なものである。スキャンチェーンが壊れると、被試験装置(例えばチップ)が不良品に格下げとなるばかりでなく(歩留まり損失問題を増大させる)、複合的かつ連鎖的な配電、若しくはクロック論理を原因とするその他の障害が隠蔽され、それらを適時且つ正確に評価することができなくなる。
テスト容易化設計(DFT)又はスキャンメソッドの手法は、1つのデザイン中の全てのフリップフロップをスキャンフリップフロップで置き換えることである。スキャンフリップフロップ(又はスキャンセル)は、各フリップフロップに入る2つの経路を提供する:1つは設計上のミッションを実行するための経路であり、もう1つはテストを容易化するための経路である。
スキャンフリップフロップに対する最も一般的な2つの手法は、MUXD手法とLSSD手法である。MUXD手法はフリップフロップのD入力のフロントエンドにマルチプレクサ(mux)を配置する。スキャンイネーブルとして知られるmuxへのセレクタは、muxのミッションモード入力又はスキャンテスト入力を使用すべきか否かを判定する。LSSD手法は、複数の非オーバラップクロックを使用する:そのうちの1つの組は、ミッションデータを伝えるために分離したマスタラッチとスレーブラッチを操作し、他の組は、スキャンシフト操作を生成するために分離したマスタラッチとスレーブラッチを操作するものである。LLSD手法では、全体のスキャンシフト及びサンプル操作を1対のクロックのみ、又はクロックの全てを組み合わせて行なうことができる。
DUTのスキャンフリップフロップ(又はスキャンセル)を、スキャンチェーンと呼ばれる1つ以上のシフトレジスタにつなぐことによって、各フリップフロップを予め設定したり観察したりすることができる。そのようにすることで、DUTの副回路において障害を検出することに集中するテストパターンを構成することができる。
MUXDタイプのスキャンに焦点を当てて更に説明するが、それは説明がより容易であると共により単純なためである。MUXDタイプスキャンでは、各スキャンフリップフロップが2つの入力経路を有し、これをフリップフロップのD入力においてmuxが制御する。スキャンイネーブルがアサートされると、スキャンチェーンはシフトレジスタとして動作する。これにより、各フリップフロップを特定の状態にセットすることができる。また、値が装置からスキャン出力へとシフトアウトされる際に各フリップフロップの状態を観察することができる。レベルセンシティブスキャン設計は、ストリー(Storey)らの非特許文献1において、さらには特許文献1及び特許文献2において開示されたものである。
スキャンチェーンにおける欠陥(又は障害)には、一般に認識されているモデルが幾つかある:それらは、ブロック化チェーン障害、ブリッジ障害、及びホールドタイム障害である。
ブロック化チェーン障害−スキャンモードにある間にスキャン出力を観察することによって、その状態を判断する。チェーンにシフトされたデータに関らず出力が一定レベルにある場合には、チェーンは1つ以上のポイントでブロック化されており、スキャン出力に最も近いブロックが、そのチェーンから何が観察されるかを支配する。一般に障害モデルでは、スキャンチェーンの出力はそのブロックポイントに位置する順次素子からの0縮退障害又は1縮退障害のいずれかとなる。
ブリッジ障害−ブリッジ障害は、1つのスキャンチェーンを通過するデータが別のスキャンチェーンで、又は同一スキャンチェーン内の異なる位置でデータを修正できる場合のデータ依存の状態である。推測されるメカニズムは、含まれる2つの信号が逆の値をとる場合に使用される「アグレッサ−ビクティム」の短絡又はブリッジである。
ホールドタイム障害−ホールドタイム障害は、あるフリップフロップからのデータをスキャンチェーン内で前に進める状態である。ホールドタイム障害は、例えばフリップフロップとクロックスキューのクロック−Q時間に比較してワイヤルートが長いこと等、多くの要因に起因するものである。この状態は、出力で生成されたデータがまだトグルしているがスキューしたようでもある(応答は正確であるが時間がシフトしている)場合や、ビットが欠如している(データが不鮮明であったり、ビットがとんでいたりする)場合に推測される状態である。全体的に、ホールドタイム障害は「偶然の暗号化」と見なすことができる。スキャン入力において適用したビット数がスキャン出力におけるデータと合わない場合には、ホールドタイム障害の存在が疑われる。場合によっては、ホールドタイム障害によりスキャンチェーンは実際の保有数よりも少ない数のフリップフロップを有するように見える。
ホールドタイムはスキャンチェーンにおける2つの隣接したセルの間のデータ通信障害であり、スキャン入力に最も近いビットはアグレッサセルであり、スキャン出力に最も近いビットがビクティムセルである。ホールドタイム障害が存在すると、ビクティムセルのデータ値はアグレッサセルのデータ値で置き換えられる。その結果のデータストリームはアグレッサのデータを二度示すこととなり、ビクティムのデータは失われる。ホールドタイム障害には3つの通常のタイプがある。
標準的ホールドタイム障害−両方のデータ状態(アグレッサとビクティム)が不適切に伝わると、障害シグネチャはスキャンチェーン内で欠如したフリップフロップを装う形となる。
データ1ホールドタイム障害−アグレッサセルのデータが論理1である場合、そのデータが1つ前の位置に引きよせられてビクティムのデータに上書きされる。その結果、障害シグネチャが含む1の数が多すぎることになる。
データ0ホールドタイム障害−アグレッサセルのデータがゼロである場合、そのデータが1つ前の位置に引きよせられてビクティムのデータに上書きされる。その結果、障害シグネチャが含む0の数が多すぎることになる。
典型的には、スキャンチェーンテスト論理が動作可能であることを保証するべく、装置の機能論理のテストを実行する前にスキャンチェーンテスト論理に関するテストを行う。スキャンチェーンテスト論理に関するテストは、一般にスキャンチェーンインテグリティテストとして知られている。最も一般的な手法は、スキャン入力において一連の1及び0を送ることである。スキャンイネーブルがアサートされると、スキャンチェーンは本質的に大きいシフトレジスタとなる。スキャンイネーブルが継続的にアサートされると、機能論理がテストから除外される。n個のクロックサイクルの後(nはチェーン内のスキャンセルの数に等しい)、スキャンチェーンが正確に動作していればスキャン出力において入力ストリームが観察されるはずである。
スキャンチェーンがスキャン入力からスキャン出力へと正確にデータを転送しなければ、スキャンメソッド全体が失われる。チェーンにロードする入力データとチェーンからアンロードする出力データの両方が乱れる。その乱れは典型的にスキャンチェーンのインテグリティ障害として表れる。これにより、スキャンチェーンは少なくとも1フロップ分実際よりも短くなる。クロックスキューの問題は、例えばタイミング収束のような設計の問題、又は例えばバイアスの不良やクロックツリーバッファの欠陥等の製造上の欠陥によって生じ得る。ナノメートル構造では、クロックスキューは上記2つの問題が組み合わさって生じることが多く、ホールドタイム問題による歩留まりの損失を生じることになる。
第14回設計自動化会議議事録492頁から494頁「遅延テストシミュレーション」(1977年6月)
ATPGツールの生成する従来のチェーンインテグリティパターンは、今日では「00110011」シーケンスが繰り返すストリームとして実行される。このシーケンスは1ベクタおきに変化するデータを有する。そのため、標準的なホールドタイム障害のある装置が1ビット分シフトされたようになり、最終ビットが不確定となる。シフトアウトされた最終ビットはパターンの一部ではなく、それはスキャンアウトシーケンスが適用された際のスキャンインピンでの状態である。ここで図1を参照する。1つの標準的なホールドタイム障害を有する障害シグネチャは基本的に合−否−合−否であることに注目されたい。
多くの場合、ホールドタイム障害はタイミングに影響を受け易い。即ち、フリップフロップのQ出力の立上り時間及び立下り時間は対称でないため、ホールドタイム障害が生じると、フリップフロップはあるデータ状態の伝送はできても他のデータ状態の伝送はできないということになる。この障害は立下り時間より立上り時間が遅いQ出力によって生じ得る。
図2に示す例は1つのホールドタイム障害を想定したものであり、「0」がアグレッサ状態、「1」がビクティム状態となっている。装置が単一チェーンに複数のホールドタイム障害を有する場合には、データは各障害に対してサイクルを1つシフトする。より小さい形状の装置が単一チェーンに複数のホールドタイム障害を有することは極めて一般的である。標準的な00110011パターンでは、チェーンがデータ4ポジションをシフトして、パターンの終端で実際にスキャンチェーンテストに合格する可能性もある。
前述のように、テストメソッドに対するデザインでは、フリップフロップは二重の機能性を有する。標準又は機能モード中、フリップフロップは回路においてデータ状態をラッチして、デザインにおける論理の次のクラウドに伝送する値を記憶する。テストモード中は、フリップフロップは組み合わせ論理にテスト刺激を提供して、論理演算の結果を収集するよう使用される。被試験装置の内外にテストパターンを伝送するために、フリップフロップは1つ以上のシリアルシフトレジスタとして再構成される。
セットアップ違反として知られる1つのタイプの設計の問題は、レジスタの2つのバンク間の論理の量が大きすぎてデータが論理を通って伝わらず、スキャンチェーンがクロック制御される前に許容されるセットアップ時間内に、フリップフロップへの入力においてデータが安定しない場合に発生する。これが発生すると、フリップフロップへとクロック供給される結果が無効となる可能性がある。この問題は、設計メソッドと「タイミング分析」に関連したツールによって解決される。
所望のスキャンパターンが1つ以上のスキャンチェーンにロードされた後、スキャンイネーブルがアサートされず、装置の論理は一回以上ミッションモードでクロック制御される。論理演算の結果は装置のスキャンフリップフロップで取り込まれる。この結果を被試験装置から取り出して、テストシステムが検査できるようすることが望ましい。これは、フリップフロップをシリアルシフトモードに戻し、その後スキャンアウトポートから多数のスキャンチェーンに全てのビットをシフトするのに十分なクロックを適用することによって実行される。ほとんどの設計には他のものより長いスキャンチェーンがいくらか備わっているため、最も長いスキャンチェーンでも完全にアンロードできる十分な回数でデータをシフトすることが重要である。比較的短いチェーンはオーバシフトするため、X(ドントケア(don’t care))状態で埋める。この同じ技術はデータがシフトインされた際に適用され、比較的短いチェーンは、実際のデータストリームの前にダミーの0データで事前に埋めることが典型的である。この時点で、スキャンインポートを通るように新たなテストパターンをシフトインすることが一般的である。
スキャンレジスタの従来の実行では、クロック事象のみならず、状態の変更を確立するために電荷の流れ又は電流が必要である。装置の導電媒体に欠陥があれば、電流率が下がり、状態の変更若しくはクロック事象が所望の時間から遅延する可能性がある。さらにクロック信号はチップ全体に分配されなければならないため、電流を引き上げるバッファが必要である。任意の2つのクロック信号のレジスタへの到達に差が生じることがあるが、これはクロックスキューと呼ばれており、バッファサイズとクロック信号を運ぶワイヤのルートを調整することによって対応することができる。
ホールドタイム障害の影響の一例として、長さ8(即ち8ビットポジション、フリップフロップ又はスキャンセル)、スキャンアウトポートに最も近いものがビット0、そしてスキャンインポートに最も近いものがビット7というスキャンチェーンについて検討する。機能クロックの後に、装置の論理状態はスキャンチェーンの8つのレジスタ内に次のように完全に取り込まれる:
V(O)V(1)V(2)V(3)V(4)V(5)V(6)V(7)。
V(O)V(1)V(2)V(3)V(4)V(5)V(6)V(7)。
正しいシフトレジスタでは、8ビットのそれぞれが連続的にシフトアウトし、I(0)で始まる新規なテストパターンがシフトインする。しかし、ここでビット6がホールドタイム障害を示すと想定する。第1シフトクロックでは、V(0)がスキャンアウトポートから放出される。しかし、ビット6における障害により、この第1シフトの間にV(6)ではなくV(7)が取り込まれることになる。8つのシフトクロックが適用された後、スキャンアウトにおいて取り込まれるパターンは以下のようになる:
V(0)V(1)V(2)V(3)V(4)V(5)V(7)I(0)。
V(0)V(1)V(2)V(3)V(4)V(5)V(7)I(0)。
また、上記スキャンチェーンの入力テストパターンの破損については以下のようになると考えられる:
I(0)I(1)I(2)I(3)I(4)I(5)I(7)I(N)。
I(0)I(1)I(2)I(3)I(4)I(5)I(7)I(N)。
スキャンチェーンは従来10,000のレジスタ(即ち、フリップフロップ又はセル)を含み、たとえ1パーセント未満がホールドタイム障害を示すとしても、スキャンチェーン中の何百ものビットが無効になり得ることが理解されよう。
本発明を例示する実施形態を図面に示す。
なお、以下の記載において、同様の要素/特徴については複数の異なる図面にわたって同じ参照番号を付して示す。
1つ以上のスキャンチェーンにおけるホールドタイム障害の数又は位置を判定する複数の新規な方法を記載する前に、一例としての被試験装置300、スキャンチェーン314、316、及びテストシステム312を示す。図3は、2つのスキャンチェーン314、316を含む一例としての回路300(又は被試験装置(DUT))を示し、スキャンチェーン314は、一連の4つのフリップフロップ302、304、306、308を含み、これらは回路300の組み合わせ論理310と相互接続している。組み合わせ論理310は単純に示すために「黒のボックス」で示している。例えば、各スキャンチェーン314、316は、対応するフリップフロップ302、304、306、308のデータ入力(D)の前に信号マルチプレクサを付加することによって作られている。スキャンイネーブル(SE)と呼ばれる1つの制御信号を付加して、これらマルチプレクサの選択を制御する。代替的に、スキャンチェーン314、316はLSSD技術等の他の方法で作成することもできる。SE信号がローであれば、回路300は通常の動作をするが、これはフリップフロップ302、304、306、308へのデータ入力が組み合わせ回路310からなされることを意味している。SE信号がハイであれば、各フリップフロップ302、304、306、308の入力は別のフリップフロップの出力に、又は回路300のスキャンアウト(SO)ピンに接続される。スキャンチェーンにおける第1フリップフロップ302へのデータ入力は、回路300の外部ピン(即ちスキャンイン(SI)ピン)にも接続している。テスト(又は分析)パターンがスキャンチェーン314にシフトインされた後、1サイクルの間SE信号はローになり、シフトインされたテストパターンから得られた組み合わせ論理310のデータ出力が、フリップフロップ302、304、306、308に取り込まれる。SE信号が再びハイになると、取り込まれたデータ結果がSOピンからシフトアウトされてテストシステム312の予測値と比較される。組み合わせ論理310に操作の欠陥があれば、データ出力シーケンスの1以上のビットが予測値と異なることになる。
一例としてのテストシステム312は、装置300の構造テスト(スキャンテスト若しくはDFTテストとしても知られている)を実行することができ、場合によっては回路300の機能テストを実行することもできる。データパターンメモリには、装置300に与えるテストパターンと、装置300から読み出されると予測されるデータパターンがロードされている。テストシステム300は選択可能なモード、即ち、1)エラーが生じた場合(例えば、出力データ状態が予測するデータ状態とは違う場合)にはいつでもテストを終了するというモード、又は2)全てのパターンセットを完了して観察したエラーのすべてを記録するというモードである。これを達成するために、テストシステムにはデータ収集メモリを備える必要がある。このメモリは、エラーを観察されたデータサイクルカウントと出力ピンを記録することができるものである。データ収集メモリの別のモードは、装置300のスキャン出力から読み取った生の(実際の)状態を記録することである。
図4から図9は、被試験装置(DUT)のスキャンチェーンを分析するための様々な例の方法400、500、600、700、800、900を示す。これらの方法は、詳細にはスキャンチェーンをホールドタイム障害に関して分析する仕様となっているが、これらの方法を用いてスキャンチェーンを他のタイプの障害に関して分析することもできる。
図4はスキャンチェーンにおいて起こり得るホールドタイム障害の数を判定するための一例としての方法400を示す。方法400は、スキャンチェーンがホールドタイム障害分析の対象として適しているかを判定すること(ブロック402)を含み、適している場合には、複数のスキャンテストの結果を用いて、スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定すること(ブロック404)を含む。起こり得るホールドタイム障害の数を判定する一例としての方法については後述する。
図5は、スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定する一例としての方法500を示す。方法500は、スキャンチェーンがホールドタイム障害分析に対する対象として適しているかを判定すること(ブロック502)を含む。適している場合には、スキャンチェーンがホールドタイム障害挙動を示した環境変数の値を(環境変数の第1の値として)確認する(ブロック504)。次いで環境変数を1つ以上の異なる値に設定し、スキャンチェーンがホールドタイム障害挙動を示すことなく動作する値である環境変数の第2の値が存在するか否かについて判定する(ブロック506)。第2の値が存在すると判定した場合には、複数のスキャンテストの結果を用いて、スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定する(ブロック508)。複数のスキャンテストは環境変数の第1の値と第2の値を使用して実行される。スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定するための例示の方法について、後述する。
方法500により変化する環境変数は多様な形態をとることが可能であり、一部の例では供給電圧、温度、若しくはスキャンシフトクロックレートのうちの1つ以上を含み得る。発明者が実験を行ったところ、場合によっては、スキャンチェーン(又は総じてDUT)の供給電圧を上げる又は下げることで、ホールドタイム問題を引き起こす又はなくすのに十分なスキャンチェーンの内部タイミングを変えることができることが分かった。温度及びスキャンシフトクロックレート(図3のCK速度)も内部タイミングに影響を与える可能性があり、スキャンチェーンの有効な動作に寄与することができる
図6は、図4及び図5に示す方法400及び方法500を組み合わせて実行する一例としての方法600を示す。方法600は、スキャンチェーンをシフトモードにすることで開始する(ブロック602)。その後、環境変数の1つ以上の値のそれぞれに対して(ブロック604参照)、方法600は一連のステップを反復して行う。
ブロック606では、スキャンチェーンを通して一定でないシーケンスパターンをシフトし、スキャンチェーンの出力を観察する(ブロック608)。「一定でないシーケンスパターン」は、ここでは少なくとも2つの論理状態を含むパターンと定義する。必ずということではないが、好ましくは「一定でないシーケンスパターン」はまた、2つ以上の論理状態の間で頻繁に遷移することを含む。「一定でない」とは、パターンが反復しないという意味ではない。
ブロック610において、予測時間に一定でないシーケンスパターンがスキャンチェーンから出力されるかを判定する。出力される場合、スキャンチェーンは環境変数の特定の値において「良」と識別されたことになる(ブロック612)。出力されない場合には、方法600はステップ614に進む。ブロック614では、スキャンチェーンの出力がトグル出力となっているかを判定する。スキャンチェーンから不測のトグルパターンが出力された場合(即ちブロック614の回答がYESの場合)には、スキャンチェーンはホールドタイム障害分析に適した対象である。スキャンチェーンからフラットラインパターンが出力される場合には、スキャンチェーンを「フラットライン」と判断する(ブロック616)。「フラットラインパターン」とは、ここでは1つの論理状態を有する連続的なビットを含むパターンと定義する(例えば全て論理1、又は全て論理0である)。一定でないシーケンスパターンに応答してフラットラインパターンを出力するスキャンチェーンは、(例えば、グランドにショートしているために)遮断されるのが典型的である。
ホールドタイム障害分析は判定ブロック618で始まり、スキャンチェーンが環境変数の任意の値において一定でないシーケンスパターンを出力するかを判定することを含む。スキャンチェーンが環境変数の任意の値において一定でないシーケンスパターンを出力しなかった場合には、スキャンチェーンにおいて起こり得るホールドタイム障害の数を、第1の数のスキャンテストの結果に基づいて判定する(ブロック620)。一方、スキャンチェーンが一定でないシーケンスパターンを出力する場合には、スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を、第2の数のスキャンテストの結果に基づいて判定する(ブロック622;好ましくは、全てのホールドタイム障害の位置を判定する)。第2の数のスキャンテストは、環境変数の第1の値及び第2の値を使用して実行する。
方法400、方法500、及び方法600のステップは単なる例示にすぎず、方法400、方法500、方法600の順列は様々なものが存在する。場合によっては、方法400、方法500、方法600に追加のステップを挿入してもよい。また、同じ場合に又は異なる場合に、ステップを実行する順序を変えることもできる。
図7は方法600の1つの順列700を示す。図7では、スキャンチェーンが不測のトグルパターンを出力する(即ちホールドタイム障害分析に適した対象である)場合、スキャンチェーンが環境変数の任意の値において一定でないシーケンスパターンを出力するかに関わらず、スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定する(ブロック702)。
起こり得るホールドタイム障害の数又は位置を判定するための一例としての方法を示す前に、「バックグラウンドパターン」の概念を説明する。バックグラウンドパターンは少なくともn個の連続的なビットからなるパターンであり、nは分析するスキャンチェーンの長さである。ホールドタイム障害が起こり得るスキャンチェーンは、データが変化している際には確実にロードされる又はアンロードされることができないため、さらにはかかるスキャンチェーンの長さは一貫していない可能性が高いため、スキャンチェーンに分析パターン(即ち、スキャンチェーンの出力が観察されるパターンである)をロードする前に、バックグラウンドパターンをスキャンチェーンにロードすることが望ましい。バックグラウンドパターンは未知のデータ遷移のスキャンチェーンをフラッシュするよう作用する。バックグラウンドパターンに従う分析パターンのタイプによって、バックグラウンドパターンは例えば論理1からなる少なくともn個の連続したビットである場合もあれば、論理0からなるn個の連続したビットである場合もある。場合によっては、バックグラウンドパターンを分析パターンに従わせて、アグレッサビットが分析パターンを破損しないよう保証する場合もある。
バックグラウンドパターンの概念について説明したが、図8はスキャンチェーンにおいて起こり得るホールドタイム障害の数を判定する一例としての方法800を示す図である。例えば、方法800は図4、図6、又は図7で示す方法400、方法600、方法700のいずれかを実行した結果として実行してもよい。
方法800は、スキャンチェーンにおいてホールドタイム障害を生じると思われる値に、スキャンチェーンの環境変数を設定することで開始する(ブロック802)。次いで、スキャンチェーンを通るようにパターンをシフトする(ブロック804)。パターンは第1論理状態の少なくともn個の連続したビットとその後に続く第2論理状態の少なくとも1つのビットからなるバックグラウンドパターンを含む。なお、nはスキャンチェーンの長さである。スキャンチェーンを通るようにパターンをシフトしている間又はその後、スキャンチェーンにおいて起こり得るホールドタイム障害の数については、1)少なくとも1つのビットがスキャンチェーンの出力において遷移を生じると予測されるクロックサイクルと、2)少なくとも1つのビットがスキャンチェーンの出力において実際に遷移を生じたクロックサイクルとの差として判定することができる(ブロック806)。換言すれば、ホールドタイム障害があればデータが1つ以上のスキャンセルを非常に速く伝播することができるため、方法800は、「第2の論理状態の少なくとも1つのビット」がスキャンチェーンの出力において遷移を生じる、「速すぎる」クロックサイクルがいくつあるかを判定する。第2論理状態の少なくとも1つのビットが予測の時点で遷移を生じた場合には、スキャンチェーンにはホールドタイム障害がなく、第2論理状態の少なくとも1つのビットが非常に遅くに遷移を生じた場合には、スキャンチェーンにはホールドタイム障害以外の障害がある可能性がある。
第1論理状態のバックグラウンドパターンに続く第2論理状態の少なくとも1つのビットは単一のビットのみを含み得るが、ロバスト性(そして従来のスキャンチェーンのロードプロセスとの適合性)を考慮して、「第2論理状態の少なくとも1つのビット」を第2論理状態の少なくともn個の連続したビットとして構成することが好ましい。
方法800は、前述のように1つの「極性」からなるホールドタイム障害の数(例えば、立上りエッジ若しくは論理0−1障害の数、又は立下りエッジ若しくは論理1−0障害の数)を判定することができる。ただし、方法800を拡大して、立上りエッジのホールドタイム障害の数と立下りエッジのホールドタイム障害の数を判定できるようにしてもよい。例えば一実施形態では、方法800によってスキャンチェーンを通るようにシフトしたパターンは、第1論理状態の2n個のビットと、その後に続く第2論理状態の2n個のビットと、その後に続く第1論理状態のn個のビットとを含み得る。この実施形態では、スキャンチェーンを通るようにパターンをシフトしている間又はその後に、立上りエッジのホールドタイム障害の数と立下りエッジのホールドタイム障害の数について、1)それぞれのエッジがスキャンチェーンから出力されると予測されるクロックサイクルと、2)それぞれのエッジがスキャンチェーンから実際に出力されたクロックサイクルとの差として判定することができる。スキャンチェーンを通るようにシフトするパターンには第1論理状態の最初の2n個のビットが備わっているが、これはチェーンにホールドタイム障害があればスキャンチェーンの「見掛け上の」長さが変化するが、2n個のビットであれば完全に放出されたスキャンチェーンにより似たものが得られるためである。
起こり得るホールドタイム欠陥の位置を判定するための一例としての方法を開示する前に、環境変数の第1の値と第2の値を判定する一例としての方法について説明する。第1の値はホールドタイム障害挙動がスキャンチェーンにおいて観察される値であり、第2の値はホールドタイム障害挙動がスキャンチェーンにおいて観察されない値である。
場合によっては、環境変数の第1の値と第2の値を単純にユーザから受け付けて判定してもよい。例えばユーザは、コンピュータのユーザインタフェースを介して値を入力することによって、又は電子ファイルに値を保存することによって、値を提供することができる。ユーザは第1の値でスキャンチェーンはホールドタイム障害挙動を示し、第2の値ではホールドタイム障害挙動を示さないという推定又は知識に基づいて値を提供し得る;又は、ユーザは第1の値を「目標値」とすること(又はスキャンチェーンに対する環境変数の正常動作範囲内にあること)に基づいて、そして第2の値をスキャンチェーンに対する環境変数の正常動作範囲外の値とすることに基づいて、値を提供し得る。第2の値は環境変数の正常動作範囲外にあっても、スキャンチェーンにダメージを与えないと予測される範囲内にあることを保証するよう留意すべきである。
別の場合においては、方法600(図6)等の方法を用いて環境変数の第1の値又は第2の値を識別することができる。即ち、環境変数の複数の値(即ち2つ以上の値)の各々に対して、一定でないシーケンスパターンがスキャンチェーンを通るようにシフトして、一定でないシーケンスパターンが予測時間にスキャンチェーンから出力されるかを判定することができる(ブロック606、608、610、614)。スキャンチェーンに不測のトグルパターンを出力させる複数の値(又は目標値、又はスキャンチェーンの正常動作範囲内の値)のうちの1つとして環境変数の第1の値を識別する(ブロック618)。環境変数の第2の値については、予測した時間に一定でないシーケンスパターンをスキャンチェーンから出力させる複数の値のうちの1つとして識別する(ブロック610)。
一部の実施形態では、ブロック604内の方法600のステップは、目標値より低い値から始まってその後増加する環境変数の値に対して連続的に繰り返す。他の実施形態では、ブロック604内のステップは目標値より高い値から始まってその後減少する環境変数の値に対して連続的に繰り返す。いずれの場合も、ブロック604内のステップを繰り返す対象の環境変数の値は、ステップサイズによって環境変数の値を段階的に変化させる(又は徐々に変化させる)ことによって判定し得る。ステップサイズは、第1の値及び第2の値が存在するかを判定することが十分にできるよう選択することができる。代替的に、環境変数の値を任意に選択してもよく、又は何の値が良好に機能するかについての知識に基づいて選択してもよい。
方法600のブロック604内のステップを環境変数のそれぞれの値に対して一度ならず反復して、結果が反復することを保証することが好ましい。
環境変数の第1の値又は第2の値を識別する別の方法は、環境変数の異なる値に対して方法800等の方法を実行することによるものである。第1の値は、スキャンチェーン出力を予測時間(又はクロックサイクル)の前に遷移させる値として識別し、第2の値はスキャンチェーン出力を予測時間に遷移させる値として識別することができる。
環境変数の適切な第1及び第2の値を判定するための様々な方法の例を説明してきたが、図9を参照してスキャンチェーンにおいて起こり得るホールドタイム障害の数を判定する一例としての方法900を説明する。例えば、方法900は図5、図6、又は図7で示す方法500、方法600、方法700のいずれかを実行した結果として実行し得る。
方法900の実行は、スキャンチェーンの環境変数を第1の値と第2の値に交互に設定できると仮定するものであるが、ここで第1の値はスキャンチェーンのホールドタイム障害を生じる値とし、第2の値はスキャンチェーンのホールドタイム障害を生じない値とする。この文脈において、方法900はスキャンチェーンに少なくとも1つのスキャンパターンをシフトインし、環境変数を第2の値に設定する(ブロック902、Nはスキャンチェーンにシフトインするスキャンパターンの数とする)ことで開始する。スキャンチェーンにシフトインしたそれぞれのスキャンパターンに対して、特定のスキャンパターンをスキャンチェーンにシフトインした後に(ブロック904参照)、環境変数を一時的に第1の値に設定する(ブロック906)。環境変数の第1の値において少なくとも一度スキャンチェーンをクロック制御する(ブロック908)。その後環境変数を第2の値に戻し、環境変数が第2の値にしたままで特定のスキャンパターンをスキャンチェーンからシフトアウトする(ブロック910)。スキャンチェーンからシフトアウトされる各特定のスキャンパターンを、予測スキャンパターンとビット毎に比較し、ビットに違いのある位置を少なくとも1つ識別する(ブロック912)。ビットにおける違いを識別する度に、その違いに基づいて起こり得るホールドタイム障害の新たな位置を識別する(ブロック914)。
方法900は環境変数の安全値(即ち第2の値)においてスキャンチェーンからデータをシフトアウトされるため、スキャンチェーンが環境変数の第1の値においてクロック制御される(即ち、スキャンチェーンにおいてホールドタイム障害を生じるとする環境変数の値でクロック制御される)と、欠陥のあるビットは誤転送を示す。好ましくは、バックグラウンドパターンのロードを用いて、スキャンチェーンの出力観察対象の各スキャンパターンをロードする前に、望ましくないデータを含むスキャンチェーンを放出する。
多くの場合、方法900によってスキャンチェーンを通るようシフトされる1つ以上のパターンは、反復する00110011のパターンのようなチェーンインテグリティパターンに基づくものとすることができる。
方法900は少なくとも1つの追加のクロックを導入するため、スキャンチェーンが環境変数の第1の値でシフトされると、スキャンチェーンの出力において予測されるスキャンパターンは少なくとも1ビット分減ることになろう。これは、ロードされるパターンの1つ以上の先頭ビットが、通常のアンロードプロセス中ではなく追加クロック中にシフトアウトされるためである。よって、偶数パリティのスキャンチェーンに対して、以下がロードパターンと予想パターンとなる:
ロードパターン00110011
予測パターン0110011。
ロードパターン00110011
予測パターン0110011。
データ遷移にはホールドタイム障害が発生するものもあれば、発生しないものもあるため、方法900は、スキャンチェーンが環境変数の第1の値においてクロック制御される際にスキャンチェーンにおける各スキャンセルが論理0−1、論理1−1、論理1−0、そして論理0−0と遷移することを保証するよう構成することができる。一実施形態では、これを達成するにあたり、反復する00110011パターンの異なる位相をスキャンチェーンを通るようシフトし、各フェーズパターンに対して、環境変数の第1の値においてスキャンチェーンを1度のみクロック制御する。より詳細には、異なる位相は以下の通りである:
第1位相:00110011(即ち16進法3)第2位相:01100110(即ち16進法6)
第3位相:11001100(即ち16進数C)第4位相:10011001(即ち16進法9)。
第1位相:00110011(即ち16進法3)第2位相:01100110(即ち16進法6)
第3位相:11001100(即ち16進数C)第4位相:10011001(即ち16進法9)。
位相の命名規則と適用する順序は重要ではない。
上記例示した位相パターンと偶数パリティスキャンチェーンでは、ロードパターンと予想パターンは以下のようになる:
第1位相のロードパターン:00110011
第1位相の予想パターン:0110011
第2位相のロードパターン:01100110
第2位相の予想パターン:1100110
第3位相のロードパターン:11001100
第3位相の予想パターン:1001100
第4位相のロードパターン:10011001
第4位相の予想パターン:0011001。
第1位相のロードパターン:00110011
第1位相の予想パターン:0110011
第2位相のロードパターン:01100110
第2位相の予想パターン:1100110
第3位相のロードパターン:11001100
第3位相の予想パターン:1001100
第4位相のロードパターン:10011001
第4位相の予想パターン:0011001。
上記位相パターンは単なる例示にすぎず、他のパターンを使用して、スキャンチェーンが環境変数の第1の値でクロック制御される際に、スキャンチェーンにおける各スキャンセルが論理0−1、論理1−1、論理1−0、論理0−0と遷移することを保証することができる。スキャンセルが全ての可能な論理遷移を起こすように方法900を構成することによって、方法900を用いることで、ホールドタイム障害の極性に関わらず、起こり得る全てのホールドタイム障害の位置(1つ又は複数)を判定することが可能となる。
スキャンチェーンにおいて起こり得るホールドタイム障害の数より反復パターンの長さを大きくし、反復パターンのコピーが自ら破損しないようにしなければならないことに留意されたい。
スキャンチェーンを一定でないシーケンスパターンで満たすことによって、ホールドタイム障害の位置を識別する速度は通常増すが、ホールドタイム障害が予測又は検出されるスキャンチェーンの特定の領域に対して短いデータシーケンスを適用することが有用である場合もある。例えばゼロからなるバックグラウンドと単一の最前ベクタを含む1000010000パターンの場合、環境変数の第1の値(又は安全でない値)において1つ以上のサイクルの間スキャンチェーンの一領域を通してクロック制御することで、データ感度を検出できる場合もある。
本明細書に示した方法400、方法500、方法600、方法700、方法800、方法900は複数のスキャンチェーンを有するDUTに適用することができる。このような場合、バックグラウンドパターン又は分析パターンと並行して複数の(又は全ての)スキャンチェーンをロードすることができる。しかし、バックグラウンドパターンと共に全てのスキャンチェーンをロードして、分析パターンと共にスキャンチェーンを1つのみロードすることによって、ホールドタイム障害の数又は位置を分離することが必要な場合もある。また、スキャンチェーンの長さが違う場合には、一部のスキャンチェーンを「ドントケア」ビットで事前に又は事後に埋める必要がある場合もある。これらの場合には、典型的に「ドントケア」ビットの状態をバックグラウンドパターンに適合させることが望ましい。
方法500、方法600、方法700、又は方法900を複数のスキャンチェーンを有するDUTに適用した場合、スキャンチェーンのそれぞれに対して環境変数の「第2の値」(又は安全値)を判定する、又は使用することができる。
本明細書に示した方法400、方法500、方法600、方法700、方法800、方法900は、偶数パリティ又は奇数パリティを有するスキャンチェーンに適用することができる。偶数パリティを有するスキャンチェーンにこれらの方法のいずれかを適用した場合には、方法400、方法500、方法600、方法700、方法800、又は方法900はスキャンチェーンから特定のパターンが出力されるかを判定する際にパターン逆転を生じる場合もある。
前述のように、本明細書に示す方法400、方法500、方法600、方法700、方法800、方法900により、スキャンチェーンにおけるホールドタイム障害の数又は位置を判定することができる。多くの場合、これはDUTのクロック分配システムに存在し得る欠陥のタイプ又は位置を判定することに役立つ。
方法400、方法500、方法600、方法700、方法800、方法900は、それらの実行によって、様々な利点を提供することができる。例えば、特定のDUTに対する特定のテストプログラムを必要とすることなく、標準的な方法でホールドタイム障害の数及び/又は位置を判定する適応性のあるプロセスの一環として、これらの方法を実行することができる。またこれらの方法は、従来のチェーンインテグリティ又は縮退ベクトルを使用するよう構成することで、ホールドタイム障害の診断に特定したベクトルを必要とすることが最少化又は削減される。これらの方法は、実時間分析を提供するよう構成することもできる。
方法600及び方法700では実時間判定を行うことができ、方法600及び方法700のフローは、スキャンチェーンがホールドタイム障害分析に対して「適しているか」、「フラットラインであるか」、又は「適した対象であるか」という判断に基づいて修正することができる。スキャンチェーンがホールドタイム障害分析に対して適した対象であると思われる際には、目標値とは異なる環境変数の値においてスキャンチェーンが正確に動作するか否かによって、異なるタイプの分析を開始することができる。
方法400、方法500、方法600、方法700、方法800、及び方法900はまた、立上りエッジ及び立下りエッジの両方のホールドタイム障害の数及び/又は位置を提供することができるため、かかる障害の原因の判定に役立てることができる。
一部の実施形態では、チェーンインテグリティテストが失敗した際に、又はスキャンチェーンエラーが存在する可能性があるというその他の通知の後に、方法400、方法500、方法600、方法700、方法800、及び方法900のうちの1つ以上を自動的に開始させることができる。
本明細書に示す方法400、方法500、方法600、方法700、方法800、及び方法900は様々な方法で実行することができ、また一部の実施形態では主にソフトウェア又はファームウェアによって実行することができる。ここでソフトウェア又はファームウェアは、コンピュータ又はテストシステムによって実行される際に、一連のスキャンパターンを1つ以上のスキャンチェーンのスキャン入力及びスキャン出力に適用させ、1つ以上のスキャンチェーンのスキャン入力及びスキャン出力から一連のスキャンパターンの読出しを行わせる命令を含み得る。ソフトウェア又はファームウェアはまた、スキャンイネーブル(SE)及びスキャンクロック(CK)入力の値等のスキャンテストに関するその他の変数のみでなく、スキャンチェーンに対する1つ以上の環境変数の値を制御する命令を含み得る。ソフトウェア又はファームウェアはコンピュータ可読媒体に保存してもよい。コンピュータ可読媒体は、例えば、ネットワーク上の単一の位置にある又はネットワーク上に分散した任意の数又は組み合わせの固定若しくはリムーバブル媒体(1つ以上の固定ディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、あるいはコンパクトディスク等)を含み得る。コンピュータ可読媒体はまた、フィールドプログラマブルゲートアレイ(FPGA)のようなプログラム化した回路を含み得る。
方法400、方法500、方法600、方法700、方法800、及び方法900はまた、それらがスキャンチェーンのスキャン出力から読み出される(又は予想パターンに関して供給される)際に、スキャンパターンを比較するハードウェアのようなハードウェアを用いて実行され得る。さらなる例として、ハードウェアベースのカウンタを使用して、スキャンパターンがスキャン出力において「早い」遷移又は「遅い」遷移を生じるクロックサイクルがいくつ存在するかを判定することもできる。方法500、方法600、方法700、及び方法900の使用するハードウェアはまた、パターン制御下で第1電圧と第2電圧との間で切り替えできるパターン制御電源を含み得る。
場合によっては、方法400、方法500、方法600、方法700、方法800、及び方法900を実行することによって得られたホールドタイム障害の数又は位置をファイルにセーブすることで、ユーザ又は下流の分析ソフトウェアは後にそれらを読み出す又は解釈することができる。代替的に、方法400、方法500、方法600、方法700、方法800、及び方法900から導出したデータは、テキストフォーマット又はグラフィックフォーマットで直ちにディスプレイすることができる。例えば、障害の数をテキスト形態でディスプレイしたり、影響を受けたスキャンセルのディスプレイ画像に障害の位置をマップしたりすることもできる。
300 被試験装置(回路)
302、304、306、308 フリップフロップ
310 組み合わせ回路(組み合わせ論理)
312 テストシステム
314、316 スキャンチェーン
302、304、306、308 フリップフロップ
310 組み合わせ回路(組み合わせ論理)
312 テストシステム
314、316 スキャンチェーン
Claims (28)
- 被試験装置のスキャンチェーンを分析する方法であって、
前記スキャンチェーンの環境変数を第1の値に設定し、一定でないシーケンスパターンが前記スキャンチェーンを通るようにシフトして、前記スキャンチェーンから不測のトグルパターンが出力されるかを判定することと、
前記環境変数を第2の値に設定し、前記一定でないシーケンスパターンが前記スキャンチェーンを通るようにシフトして、前記スキャンチェーンから前記一定でないシーケンスパターンが予測時間に出力されるかを判定することと、
i)前記スキャンチェーンが、前記環境変数の前記第1の値において不測のトグルパターンを出力する場合、及びii)前記スキャンチェーンが、前記環境変数の前記第2の値において前記一定でないシーケンスパターンを前記予測時間に出力しない場合、の両方が少なくとも生じた場合に、第1の数のスキャンテストの結果に基づいて、前記スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定することと、
を含むことを特徴とする方法。 - (i)前記スキャンチェーンが、前記環境変数の前記第1の値において不測のトグルパターンを出力する場合、及び(ii)前記スキャンチェーンが、前記環境変数の前記第2の値において前記一定でないシーケンスパターンを前記予測時間に出力する場合、の両方が生じた場合に、第2の数のスキャンテストの結果に基づいて、前記スキャンチェーンにおいて起こり得るホールドタイム障害の位置を判定することをさらに含み、前記環境変数の前記第1の値及び前記第2の値を用いて第2の数のスキャンテストを行うこと、
を特徴とする請求項1に記載の方法。 - 前記スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定することが、
前記環境変数を前記第2の値に設定して、前記スキャンチェーンに少なくとも1つのスキャンパターンをシフトインすることと、
前記スキャンチェーンにシフトインした前記少なくとも1つのスキャンパターンの各々に対して、前記スキャンチェーンに特定のスキャンパターンをシフトインした後に、
前記環境変数を一時的に前記第1の値に設定し、
前記スキャンチェーンを少なくとも一度クロック制御し、
前記環境変数を前記第2の値に設定して、前記スキャンチェーンから前記特定のスキャンパターンをシフトアウトすることと、
ビット毎に、前記スキャンチェーンからシフトアウトした各特定のスキャンパターンを予測スキャンパターンと比較して、ビットに違いのある少なくとも1つの位置を識別することと、
前記ビットに違いのある少なくとも1つの位置に基づいて、前記スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の前記位置を判定することと、
を含むこと、
を特徴とする請求項2に記載の方法。 - 前記スキャンチェーンに少なくとも1つのスキャンパターンをシフトインすることが、
前記スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定する際に、前記スキャンチェーンに複数のスキャンパターンをシフトインすることを含み、前記スキャンチェーンが前記環境変数の前記第1の値においてクロック制御された際に、各スキャンセルが論理0−1、論理1−1、論理1−0、論理0−0の遷移を生じることを保証するビットのシーケンスを前記複数のスキャンパターンが有することで、1つ以上の前記ホールドタイム障害の極性に関らず、起こり得る全てのホールドタイム障害の1つ以上の位置を判定できること、
を特徴とする請求項3に記載の方法。 - 前記複数のスキャンパターンが反復する16進数3、6、C、9のパターンを含むこと、を特徴とする請求項4に記載の方法。
- 前記スキャンチェーンを少なくとも一度クロック制御することが、前記スキャンチェーンを一度のみクロック制御することを含むこと、を特徴とする請求項3に記載の方法。
- i)前記スキャンチェーンが、前記環境変数の前記第1の値において不測のトグルパターンを出力する場合、及びii)前記スキャンチェーンが、前記環境変数の前記第2の値において前記一定でないシーケンスパターンを出力する場合、の両方が生じた場合に、第1の数のスキャンテストの結果に基づいて、前記スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定することをさらに含むこと、
を特徴とする請求項1に記載の方法。 - 前記環境変数の前記第1の値において、前記一定でないシーケンスパターンが前記スキャンチェーンを通るようにシフトした後に、i)前記スキャンチェーンから予測パターンが出力された際に前記スキャンチェーンを「良」と識別し、及びii)前記スキャンチェーンからフラットラインパターンが出力された際に前記スキャンチェーンを「フラットライン」と識別することをさらに含むこと、
を特徴とする請求項1に記載の方法。 - 前記スキャンチェーンが前記環境変数の前記第1の値において不測のトグルパターンを出力した場合には、前記環境変数を前記第2の値に設定することのみを行うことをさらに含むこと、を特徴とする請求項8に記載の方法。
- 前記環境変数の前記第1の値及び前記第2の値をユーザから受け付けることをさらに含むこと、を特徴とする請求項1に記載の方法。
- 前記環境変数の複数の値の各々に対して、前記一定でないシーケンスパターンが前記スキャンチェーンを通るようにシフトして、前記一定でないシーケンスパターンが予測時間に前記スキャンチェーンから出力されるかを判定し、
前記環境変数の前記第2の値を、前記複数の値のうち、前記予測時間に前記一定でないシーケンスパターンを前記スキャンチェーンから出力させる複数の値の1つとして識別することによって、前記環境変数の前記第2の値を識別することをさらに含むこと、
を特徴とする請求項1に記載の方法。 - 前記第1の値が前記スキャンチェーンに対する前記環境変数の正常動作範囲にあり、前記第2の値が前記スキャンチェーンに対する前記環境変数の正常動作範囲外にあること、を特徴とする請求項1に記載の方法。
- 前記スキャンチェーンにおける前記ホールドタイム障害の数を判定することが、
前記環境変数を前記第1の値に設定することと、
第1論理状態の少なくともn個の連続したビットと、その後に続く第2論理状態の少なくとも1つのビットを含むバックグラウンドパターンを、前記スキャンパターンを通るようにシフトすることと、
i)前記少なくとも1つのビットが前記スキャンチェーンの出力において遷移を生じると予測されるクロックサイクルと、ii)前記少なくとも1つのビットが前記スキャンチェーンの前記出力において実際に遷移を生じるクロックサイクルとの差として、前記スキャンチェーンにおいて起こり得る前記ホールドタイム障害の数を判定することと、
を含むことを特徴とする請求項1に記載の方法。 - 前記スキャンチェーンにおける前記ホールドタイム障害の数を判定することが、
前記環境変数を前記第1の値に設定することと、
第1論理状態の2n個のビットと、その後に続く第2論理状態の2n個のビットを含むパターンを、前記スキャンチェーンを通るようにシフトすることであって(nは前記スキャンチェーンにおけるスキャンセルの数)、前記シフトすることと、
立上りエッジホールドタイム障害の数と立下りエッジホールドタイム障害の数を、i)それぞれのエッジが前記スキャンチェーンから出力されると予測されるクロックサイクルと、ii)それぞれのエッジが前記スキャンチェーンから実際に出力されるクロックサイクルとの差として判定することと、
を含むことを特徴とする請求項1に記載の方法。 - 前記スキャンチェーンが奇数パリティを有する場合に、前記スキャンチェーンから特定のパターンが出力されるかを判定することが、パターンの逆転を考慮することを含むこと、を特徴とする請求項1に記載の方法。
- 前記環境変数が供給電圧であること、を特徴とする請求項1に記載の方法。
- 前記環境変数が温度であること、を特徴とする請求項1に記載の方法。
- 前記環境変数がスキャンシフトクロックレートであること、を特徴とする請求項1に記載の方法。
- 被試験装置のスキャンチェーンを分析する方法であって、
前記スキャンチェーンの環境変数を第1の値に設定し、一定でないシーケンスパターンが前記スキャンチェーンを通るようにシフトして、前記スキャンチェーンから不測のトグルパターンが出力されるかを判定することと、
前記環境変数を第2の値に設定し、前記一定でないシーケンスパターンが前記スキャンチェーンを通るようにシフトして、前記スキャンチェーンから前記一定でないシーケンスパターンが予測時間に出力されるかを判定することと、
(i)前記スキャンチェーンが、前記環境変数の前記第1の値において不測のトグルパターンを出力する場合、及び(ii)前記スキャンチェーンが、前記環境変数の前記第2の値において前記一定でないシーケンスパターンを前記予測時間に出力する場合、の両方が生じた場合に、複数のスキャンテストの結果に基づいて、前記スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定することと、
を含み、前記環境変数の前記第1の値及び前記第2の値を用いて、第2の数のスキャンテストを実行すること、
を特徴とする方法。 - 前記環境変数が供給電圧であること、を特徴とする請求項19に記載の方法。
- 被試験装置のスキャンチェーンにおいて起こり得るホールドタイム障害の数を判定する方法であって、
前記スキャンチェーンの環境変数を、前記スキャンチェーンにおいてホールドタイム障害を生じると思われる値に設定することと、
前記スキャンチェーンを通るようにパターンをシフトすることであって、前記パターンが第1論理状態の少なくともn個の連続したビットと、その後に続く第2論理状態の少なくとも1つのビットを含むバックグラウンドパターンを有し(nは前記スキャンチェーンの長さ)、前記シフトすることと、
i)前記少なくとも1つのビットが前記スキャンチェーンの出力において遷移を生じると予測されるクロックサイクルと、ii)前記少なくとも1つのビットが前記スキャンチェーンの出力において実際に遷移を生じるクロックサイクルと、の差として前記スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定することと、
を含むことを特徴とする方法。 - 前記スキャンチェーンを通るようにシフトした前記パターンが、前記第1論理状態の2n個のビットと、その後に続く前記第2論理状態の2n個のビットと、その後に続く前記第1論理状態のn個のビットを含み、
前記スキャンチェーンにおいて起こり得るホールドタイム障害の数を判定することが、立上りエッジホールドタイム障害の数と立下りエッジホールドタイム障害の数を、i)それぞれのエッジが前記スキャンチェーンから出力されると予測されるクロックサイクルと、ii)前記それぞれのエッジが前記スキャンチェーンから実際に出力されるクロックサイクルと、の差として判定することを含むこと、
を特徴とする請求項21に記載の方法。 - 前記環境変数が供給電圧であること、を特徴とする請求項21に記載の方法。
- 被試験装置のスキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定する方法であって、
前記スキャンチェーンの環境変数を第1の値と第2の値に交互に設定することであって、前記第1の値が前記スキャンチェーンにおいてホールドタイム障害を生じると思われる値であり、前記第2の値が前記スキャンチェーンにおいてホールドタイム障害を生じないと思われる値であり、前記交互に設定することと、
前記環境変数を前記第2の値に設定して、少なくとも1つのスキャンパターンを前記スキャンチェーンにシフトインすることと、
前記スキャンチェーンにシフトインした各スキャンパターンに対して、前記スキャンチェーンに特定のスキャンパターンをシフトインした後に、
前記環境変数を前記第1の値に一時的に設定し、
前記スキャンチェーンを少なくとも一度クロック制御し、
前記環境変数を前記第2の値に設定して、前記スキャンチェーンから前記特定のスキャンパターンをシフトアウトすることと、
ビット毎に、前記スキャンチェーンからシフトアウトした各特定のスキャンパターンを予測スキャンパターンと比較して、ビットに違いのある少なくとも1つの位置を識別することと、
ビットに違いのある前記少なくとも1つの位置に基づいて、前記スキャンチェーンにおいて起こり得る少なくとも1つのホールドタイム障害の位置を判定することと、
を含むことを特徴とする方法。 - 少なくとも1つのスキャンパターンを前記スキャンチェーンにシフトインすることが、
前記スキャンチェーンに複数のスキャンパターンをシフトインすることを含み、前記スキャンチェーンが前記環境変数の前記第1の値においてクロック制御される際に、各スキャンセルが論理0−1、論理1−1、論理1−0、論理0−0の遷移を生じることを保証するビットのシーケンスを前記複数のスキャンパターンが有することで、1つ以上の前記ホールドタイム障害の極性に関らず、起こり得る全てのホールドタイム障害の1つ以上の位置を判定できること、
を特徴とする請求項24に記載の方法。 - 前記複数のスキャンパターンが反復する16進数3、6、C、及び9のパターンを含むこと、を特徴とする請求項25に記載の方法。
- 前記スキャンチェーンを少なくとも一度クロック制御することが、前記スキャンチェーンを一度のみクロック制御することを含むこと、を特徴とする請求項24に記載の方法。
- 前記環境変数が供給電圧であること、を特徴とする請求項24に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/931,847 US7853846B2 (en) | 2007-10-31 | 2007-10-31 | Locating hold time violations in scan chains by generating patterns on ATE |
US12/058,768 US8010856B2 (en) | 2007-10-31 | 2008-03-31 | Methods for analyzing scan chains, and for determining numbers or locations of hold time faults in scan chains |
PCT/US2008/082088 WO2009059207A1 (en) | 2007-10-31 | 2008-10-31 | Methods for analyzing scan chains, and for determining numbers or locations of hold time faults in scan chains |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011502267A true JP2011502267A (ja) | 2011-01-20 |
Family
ID=40584468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010532295A Pending JP2011502267A (ja) | 2007-10-31 | 2008-10-31 | スキャンチェーンを分析する方法、及びスキャンチェーンにおけるホールドタイム障害の数又は位置を判定する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8010856B2 (ja) |
JP (1) | JP2011502267A (ja) |
KR (1) | KR101592042B1 (ja) |
CN (1) | CN101911491B (ja) |
TW (1) | TWI442071B (ja) |
WO (1) | WO2009059207A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI497328B (zh) * | 2010-02-12 | 2015-08-21 | Synopsys Shanghai Co Ltd | Consider the reconstruction method and device of the scan chain of the program group |
US8677199B2 (en) * | 2010-02-16 | 2014-03-18 | Apple Inc. | Pulse dynamic logic gates with mux-D scan functionality |
US8578226B2 (en) * | 2010-08-17 | 2013-11-05 | Eigenix | Apparatus and system for implementing variable speed scan testing |
TWI472912B (zh) * | 2012-09-11 | 2015-02-11 | Univ Nat Cheng Kung | 以電路內部事件作為觸發條件之除錯控制系統及其方法 |
US9188643B2 (en) * | 2012-11-13 | 2015-11-17 | Globalfoundries Inc. | Flexible performance screen ring oscillator within a scan chain |
US10310015B2 (en) * | 2013-07-19 | 2019-06-04 | Advanced Micro Devices, Inc. | Method and apparatus for providing clock signals for a scan chain |
US9885753B2 (en) | 2013-10-09 | 2018-02-06 | Nvidia Corporation | Scan systems and methods |
US9097765B1 (en) | 2014-05-08 | 2015-08-04 | International Business Machines Corporation | Performance screen ring oscillator formed from multi-dimensional pairings of scan chains |
US9128151B1 (en) | 2014-05-08 | 2015-09-08 | International Business Machines Corporation | Performance screen ring oscillator formed from paired scan chains |
US9490808B2 (en) * | 2014-12-01 | 2016-11-08 | Mediatek Inc. | Sensing circuit |
US9618579B2 (en) * | 2015-04-28 | 2017-04-11 | Lattice Semiconductor Corporation | Programmable circuits for correcting scan-test circuitry defects in integrated circuit designs |
US10449879B2 (en) * | 2016-04-15 | 2019-10-22 | The Boeing Company | Protective removable cover |
US11681843B2 (en) * | 2018-01-17 | 2023-06-20 | Siemens Industry Software Inc. | Input data compression for machine learning-based chain diagnosis |
US10838449B2 (en) * | 2018-07-05 | 2020-11-17 | International Business Machines Corporation | Automatic detection of clock grid misalignments and automatic realignment |
TWI681200B (zh) | 2018-10-19 | 2020-01-01 | 瑞昱半導體股份有限公司 | 晶片 |
US11041906B2 (en) * | 2019-04-19 | 2021-06-22 | Siemens Industry Software Inc. | Optimized scan chain diagnostic pattern generation for reversible scan architecture |
CN111650499B (zh) * | 2020-05-29 | 2022-08-16 | Oppo广东移动通信有限公司 | 扫描链故障的诊断方法、装置、测试设备及存储介质 |
US11579191B2 (en) * | 2020-06-19 | 2023-02-14 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and system for testing an integrated circuit |
US11768239B1 (en) * | 2021-05-12 | 2023-09-26 | Marvell Asia Pte Ltd | Method and apparatus for timing-annotated scan-chain testing using parallel testbench |
CN116106729A (zh) * | 2023-02-10 | 2023-05-12 | 无锡玖熠半导体科技有限公司 | 基于代价损失因子的扫描链及组合逻辑故障诊断方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3783254A (en) | 1972-10-16 | 1974-01-01 | Ibm | Level sensitive logic system |
US4293919A (en) | 1979-08-13 | 1981-10-06 | International Business Machines Corporation | Level sensitive scan design (LSSD) system |
US6085345A (en) * | 1997-12-24 | 2000-07-04 | Intel Corporation | Timing control for input/output testability |
US6516432B1 (en) | 1999-12-22 | 2003-02-04 | International Business Machines Corporation | AC scan diagnostic method |
TW530521B (en) * | 2000-08-28 | 2003-05-01 | Koninkl Philips Electronics Nv | Circuit device for operating a high-pressure discharge lamp with successive current phases |
US6954887B2 (en) | 2001-03-22 | 2005-10-11 | Syntest Technologies, Inc. | Multiple-capture DFT system for scan-based integrated circuits |
US7058869B2 (en) * | 2003-01-28 | 2006-06-06 | Syntest Technologies, Inc. | Method and apparatus for debug, diagnosis, and yield improvement of scan-based integrated circuits |
JP2005032102A (ja) * | 2003-07-09 | 2005-02-03 | Matsushita Electric Ind Co Ltd | スキャンテスト設計方法、スキャンテスト回路、スキャンフリップフロップ回路、スキャンテスト回路挿入用cadプログラム、大規模集積回路及び携帯デジタル機器 |
US7225374B2 (en) | 2003-12-04 | 2007-05-29 | International Business Machines Corporation | ABIST-assisted detection of scan chain defects |
US7107502B2 (en) * | 2004-01-29 | 2006-09-12 | International Business Machines Corporation | Diagnostic method for detection of multiple defects in a Level Sensitive Scan Design (LSSD) |
US7234090B2 (en) | 2004-09-02 | 2007-06-19 | International Business Machines Corporation | Method and apparatus for selective scan chain diagnostics |
US7395470B2 (en) | 2005-06-09 | 2008-07-01 | International Business Machines Corporation | Method, apparatus, and computer program product for diagnosing a scan chain failure employing fuses coupled to the scan chain |
US7840862B2 (en) * | 2006-02-17 | 2010-11-23 | Mentor Graphics Corporation | Enhanced diagnosis with limited failure cycles |
US7788561B2 (en) | 2006-08-14 | 2010-08-31 | Yu Huang | Diagnosing mixed scan chain and system logic defects |
US7568139B2 (en) | 2006-12-12 | 2009-07-28 | Inovys Corporation | Process for identifying the location of a break in a scan chain in real time |
US8615695B2 (en) | 2007-04-04 | 2013-12-24 | Mentor Graphics Corporation | Fault dictionary-based scan chain failure diagnosis |
-
2008
- 2008-03-31 US US12/058,768 patent/US8010856B2/en active Active
- 2008-10-30 TW TW097141777A patent/TWI442071B/zh active
- 2008-10-31 CN CN200880123543.5A patent/CN101911491B/zh not_active Expired - Fee Related
- 2008-10-31 KR KR1020107011990A patent/KR101592042B1/ko active IP Right Grant
- 2008-10-31 JP JP2010532295A patent/JP2011502267A/ja active Pending
- 2008-10-31 WO PCT/US2008/082088 patent/WO2009059207A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR101592042B1 (ko) | 2016-02-05 |
TW200931045A (en) | 2009-07-16 |
WO2009059207A1 (en) | 2009-05-07 |
US20090113263A1 (en) | 2009-04-30 |
US8010856B2 (en) | 2011-08-30 |
CN101911491A (zh) | 2010-12-08 |
KR20100086024A (ko) | 2010-07-29 |
CN101911491B (zh) | 2013-07-10 |
TWI442071B (zh) | 2014-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011502267A (ja) | スキャンチェーンを分析する方法、及びスキャンチェーンにおけるホールドタイム障害の数又は位置を判定する方法 | |
KR101006822B1 (ko) | 투명한 테스트 방법 및 스캔 플립 플롭 | |
Rearick | Too much delay fault coverage is a bad thing | |
US8032806B1 (en) | Input-output device testing including initializing and leakage testing input-output devices | |
US7386775B2 (en) | Scan verification for a scan-chain device under test | |
US7853846B2 (en) | Locating hold time violations in scan chains by generating patterns on ATE | |
US11156661B2 (en) | Reversible multi-bit scan cell-based scan chains for improving chain diagnostic resolution | |
US11073556B2 (en) | Low pin count reversible scan architecture | |
US6651238B1 (en) | Providing fault coverage of interconnect in an FPGA | |
US10520550B2 (en) | Reconfigurable scan network defect diagnosis | |
US6976199B2 (en) | AC LSSD/LBIST test coverage enhancement | |
US11408938B2 (en) | Bidirectional scan cells for single-path reversible scan chains | |
US7328385B2 (en) | Method and apparatus for measuring digital timing paths by setting a scan mode of sequential storage elements | |
JP2013019744A (ja) | 故障箇所推定装置と方法並びにプログラム | |
JP5761819B2 (ja) | スキャン非同期記憶素子およびそれを備えた半導体集積回路ならびにその設計方法およびテストパターン生成方法 | |
US9869718B1 (en) | Scan test architecture and method for scan testing | |
US9171116B1 (en) | Method and system for reducing redundant logic in an integrated circuit | |
Lee et al. | Design for Test | |
Thangammal et al. | Architecture for at Speed Testing of Crosstalk Faults in Through Silicon Vias in Three Dimensional Integrated Circuits | |
Praveen et al. | A Novel Techniques to Reduce the Test Data Volume and Test Time for General Configurations by Embedded Deterministic Testing | |
JP5803561B2 (ja) | 論理回路の故障検出方法、テスト回路挿入方法、テスト回路挿入装置および半導体集積回路 | |
Tsai et al. | A robust automated scan pattern mismatch debugger | |
Fang | At-speed scan insertion and automatic test pattern generation of integrated circuits with fault-grading and speed-grading | |
Gill | Optimizing Test Pattern Generation Using Top-Off ATPG Methodology for Stuck–AT, Transition and Small Delay Defect Faults | |
Vemula | Scan based delay testing |