JP2024010862A - テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法 - Google Patents
テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法 Download PDFInfo
- Publication number
- JP2024010862A JP2024010862A JP2022112415A JP2022112415A JP2024010862A JP 2024010862 A JP2024010862 A JP 2024010862A JP 2022112415 A JP2022112415 A JP 2022112415A JP 2022112415 A JP2022112415 A JP 2022112415A JP 2024010862 A JP2024010862 A JP 2024010862A
- Authority
- JP
- Japan
- Prior art keywords
- test pattern
- circuit
- clock
- pattern generation
- scan
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 365
- 238000000034 method Methods 0.000 title claims description 187
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000013461 design Methods 0.000 claims abstract description 26
- 239000004065 semiconductor Substances 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 91
- 230000008569 process Effects 0.000 claims description 57
- 230000008859 change Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 38
- 238000001514 detection method Methods 0.000 description 32
- 230000007704 transition Effects 0.000 description 28
- 230000003068 static effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000004088 simulation Methods 0.000 description 9
- 238000002360 preparation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000003066 decision tree Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 102100023152 Scinderin Human genes 0.000 description 3
- 101710190410 Staphylococcal complement inhibitor Proteins 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/318552—Clock circuits details
-
- 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/318522—Test of Sequential circuits
- G01R31/318525—Test of flip-flops or latches
-
- 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/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
- G01R31/31726—Synchronization, e.g. of test, clock or strobe signals; Signals in different clock domains; Generation of Vernier signals; Comparison and adjustment of the signals
-
- 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/318594—Timing aspects
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
【課題】複数のクロック信号が用いられる半導体集積回路の試験コストを低減する。【解決手段】コンピュータに、半導体集積回路の設計情報に基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出し、複数のクロック信号の印加順序と対象回路への入力値とを含むテストパターンを生成する際に、ある回路領域に対して対象回路への入力値または対象回路からの応答値を送る第1の保持回路と、対象回路からの応答値を受ける第2の保持回路(図8の例では、領域15fに対しては第1及び第2の保持回路は、ノンスキャンFF部18とスキャンFF部14eであり、領域15cに対しては第1及び第2の保持回路は、スキャンFF部14aとノンスキャンFF部18である)とが、複数のクロックドメインのうちの何れに属するかに基づいて、印加順序を変更し、テストパターンの情報を出力する、処理を実行させる。【選択図】図8
Description
本発明は、テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法に関する。
半導体集積回路の試験では、シリアルに接続された複数のスキャンフリップフロップ(以下、スキャンFFという)を含む試験用回路を用いて、半導体集積回路内に仮定する故障を検出するためのテストパターンの生成と回路応答の観測が行われる。シリアルに接続された複数のスキャンFFによる経路はスキャンチェーンとも呼ばれる。
スキャンFFを用いた試験(スキャンテスト)は、スキャンイン動作、キャプチャ動作、スキャンアウト動作という動作順序で行われる。スキャンイン動作では、各スキャンFFに対象回路への入力値が設定される。キャプチャ動作では、送り側のスキャンFFに設定された入力値が、対象回路に送られ、対象回路からの応答値がクロック信号に同期して受け側のスキャンFFに取り込まれる。スキャンアウト動作では、各スキャンFFに保持されている値が読み出され、期待値と比較され故障の有無が判定される。
複数のクロック信号が用いられる半導体集積回路におけるテストパターンは、各スキャンFFに設定される0または1の値の組合せと、各クロック信号の印加順序を含む。このような半導体集積回路に対しては、異なるクロック信号で動作する回路領域(以下クロックドメインという)を跨ぐ部分(異なるクロックドメイン間の渡り部分)を考慮したテストパターンの生成が行われる。渡り部分に対する送り側と受け側のクロックドメインに対するクロック信号の印加順序を、受け側を後にした場合、受け側のスキャンFFに渡り部分の故障内容が反映される前に、送り側のスキャンFFの設定値が更新されてしまう(無効となる)ためである。逆に、送り側と受け側のクロックドメインに対するクロック信号の印加順序を、送り側を後にした場合、受け側のスキャンFFにより渡り部分の故障内容が反映された後に、送り側のスキャンFFの設定値が更新される。
上記のような渡り部分を含む半導体集積回路に対するテストパターンの生成方式として、たとえば、以下に示すような方式がある。
(a)単一クロック印加方式
この方式は、スキャンイン動作からスキャンアウト動作の間で、1つのクロック信号を印加するテストパターンを生成する方式である。この方式では1つのテストパターンの回路状態を表現する時間枠は1つであり、そのテストパターンにおいて異なるクロック信号の印加によるスキャンFFの状態の更新はないため、上記のような渡り部分を考慮しなくてもよい。
(a)単一クロック印加方式
この方式は、スキャンイン動作からスキャンアウト動作の間で、1つのクロック信号を印加するテストパターンを生成する方式である。この方式では1つのテストパターンの回路状態を表現する時間枠は1つであり、そのテストパターンにおいて異なるクロック信号の印加によるスキャンFFの状態の更新はないため、上記のような渡り部分を考慮しなくてもよい。
(b)複数クロック印加方式(時間展開方式)
この方式は、スキャンイン動作からスキャンアウト動作の間で、複数のクロック信号を印加するテストパターンを生成する方式である。この方式では印加するクロック信号の数分の時間枠(クロック印加時刻ごとの回路情報)が用いられるため、クロック信号の印加によるスキャンFFの状態の更新が表現可能である。これにより、渡り部分を含む半導体集積回路に対する適切なテストパターンを生成することができる。なお、時間枠や時間展開の例については後述する(図4参照)。
この方式は、スキャンイン動作からスキャンアウト動作の間で、複数のクロック信号を印加するテストパターンを生成する方式である。この方式では印加するクロック信号の数分の時間枠(クロック印加時刻ごとの回路情報)が用いられるため、クロック信号の印加によるスキャンFFの状態の更新が表現可能である。これにより、渡り部分を含む半導体集積回路に対する適切なテストパターンを生成することができる。なお、時間枠や時間展開の例については後述する(図4参照)。
(c)複数クロック印加方式(クロック印加順序固定方式)(たとえば、特許文献1参照)
この方式も、(b)の方式と同様にスキャンイン動作からスキャンアウト動作の間で、複数のクロック信号を印加するテストパターンを生成する方式である。しかし、この方式では(b)の方式と異なり、渡り部分の認識とクロック信号の印加順序の決定の工夫を行うことで、1つのテストパターンに対して使用する時間枠を1つにすることを可能としている。この方式では、前述のように渡り部分に対する送り側と受け側のクロック信号の印加順序を、受け側を先にすることで送り側のスキャンFFの設定値は無効にならないため、渡り部分ごとの故障数に基づきクロック信号の印加順序の決定が行われる。このとき、スキャンFFの設定値が無効となる渡り部分は一時的に試験対象外とすることで無駄なテストパターンが生成されないようにしている。
この方式も、(b)の方式と同様にスキャンイン動作からスキャンアウト動作の間で、複数のクロック信号を印加するテストパターンを生成する方式である。しかし、この方式では(b)の方式と異なり、渡り部分の認識とクロック信号の印加順序の決定の工夫を行うことで、1つのテストパターンに対して使用する時間枠を1つにすることを可能としている。この方式では、前述のように渡り部分に対する送り側と受け側のクロック信号の印加順序を、受け側を先にすることで送り側のスキャンFFの設定値は無効にならないため、渡り部分ごとの故障数に基づきクロック信号の印加順序の決定が行われる。このとき、スキャンFFの設定値が無効となる渡り部分は一時的に試験対象外とすることで無駄なテストパターンが生成されないようにしている。
(d)クロック一本化、クロック供給・停止方式(たとえば、特許文献2参照)
上記(a)~(c)の方式では、スキャンテストにおいて各クロックドメインに供給される複数のクロック信号は独立であるが、本方式では、各クロックドメインへのスキャンクロック信号の供給源が一本化されている。そして、各クロックドメインに供給されるスキャンクロック信号ごとに供給または停止が制御される。また、この方式では、タイミング解析を用いて、各クロックドメインに同時にスキャンクロック信号を印加しても回路が正常に動作するようにしている。
上記(a)~(c)の方式では、スキャンテストにおいて各クロックドメインに供給される複数のクロック信号は独立であるが、本方式では、各クロックドメインへのスキャンクロック信号の供給源が一本化されている。そして、各クロックドメインに供給されるスキャンクロック信号ごとに供給または停止が制御される。また、この方式では、タイミング解析を用いて、各クロックドメインに同時にスキャンクロック信号を印加しても回路が正常に動作するようにしている。
上記のような従来の方式では、クロック信号の数が増加すると、試験コスト(時間や資源など)の増加やテスト品質の低下という問題がある。なお、上記(a)~(d)の方式について試験コストの増加やテスト品質の低下が生じる理由については後述する。
1つの側面では、本発明は、複数のクロック信号が用いられる半導体集積回路の試験コストを低減することを目的とする。
1つの実施態様では、コンピュータに、半導体集積回路の設計情報に基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出し、前記複数のクロック信号の印加順序と第1の対象回路への第1の入力値とを含むテストパターンを生成する際に、第1の回路領域に対して前記第1の入力値または前記第1の対象回路からの第1の応答値を送る第1の保持回路と、前記第1の応答値を受ける第2の保持回路とが、前記複数のクロックドメインのうちの何れに属するかに基づいて、前記印加順序を変更し、前記テストパターンの情報を出力する、処理を実行させるテストパターン生成プログラムが提供される。
また、1つの実施態様ではテストパターン生成装置が提供される。
また、1つの実施態様ではテストパターン生成方法が提供される。
また、1つの実施態様ではテストパターン生成方法が提供される。
1つの側面では、本発明は、複数のクロック信号が用いられる半導体集積回路の試験コストを低減することができる。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態のテストパターン生成方法及びテストパターン生成装置の一例を示す図である。
(第1の実施の形態)
図1は、第1の実施の形態のテストパターン生成方法及びテストパターン生成装置の一例を示す図である。
第1の実施の形態のテストパターン生成装置10は、半導体集積回路(以下LSI(Large Scale Integrated circuit)と表記する)の試験を行うためのテストパターンを生成し、生成したテストパターンを用いて試験(故障シミュレーション)を行う。
テストパターン生成装置10は、記憶部11及び処理部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性の記憶装置である。
記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性の記憶装置である。
記憶部11は、LSIの設計情報(回路モデル)11aや生成したテストパターン情報11bなどを記憶する。なお、設計情報には、検出対象の故障や各種試験情報が含まれていてもよい。
なお、テストパターン生成装置10が、ユーザによる入力を受け付けて、その入力に基づいて、設計情報11aなどを作成してもよいし、テストパターン生成装置10は、他の装置から設計情報11aを取得してもよい。
処理部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのハードウェアであるプロセッサにより実現される。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、RAMなどのメモリに記憶されたプログラムを実行する。たとえば、テストパターン生成プログラムが実行される。なお、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」ということがある。
処理部12は、異なるクロック信号で動作するクロックドメインを跨ぐ部分(異なるクロックドメイン間の渡り部分)を考慮したテストパターンの生成を行う。
まず、処理部12は記憶部11に記憶されている設計情報11aに基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出する(ステップS1)。クロックドメインの具体的な検出手順については後述する(図14参照)。なお、複数のクロック信号は、たとえば、それぞれ異なる周波数(または位相)をもつ複数のクロック信号、同じ周波数(または位相)であるが別々に印加が制御される複数のクロック信号などである。
まず、処理部12は記憶部11に記憶されている設計情報11aに基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出する(ステップS1)。クロックドメインの具体的な検出手順については後述する(図14参照)。なお、複数のクロック信号は、たとえば、それぞれ異なる周波数(または位相)をもつ複数のクロック信号、同じ周波数(または位相)であるが別々に印加が制御される複数のクロック信号などである。
ステップS1の処理後、処理部12は、テストパターンの生成を行う(ステップS2)。テストパターンには、対象回路への入力値(スキャンイン値とも呼ばれる)と複数のクロック信号の印加順序が含まれる。入力値は、スキャンFFなどの保持回路に設定される、0または1の組合せにより表される。入力値は、対象とする故障(たとえば、縮退故障など)を検出可能なように、たとえば、処理部12が実行するATPG(Automatic Test Pattern Generator)機能により生成される。複数のクロック信号の仮の印加順序(本実施の形態の処理による印加順序変更前の印加順序)もATPG機能により決定可能である。
ここで処理部12は、LSIの回路領域に対して、対象回路への入力値または対象回路からの応答値を送る第1の保持回路と、応答値を受ける第2の保持回路とが、複数のクロックドメインのうちの何れに属するかに基づいて、印加順序を変更する。応答値は、入力値に基づいて動作する対象回路の出力であり、故障が発生している場合には、その故障を反映した値となる。また、処理部12は、印加順序を管理する。
図2は、LSIにおける渡り部分の一例を示す図である。
LSI13は、スキャンイン端子SCINとスキャンアウト端子SCOUTとの間にシリアルに接続されたスキャンFF部14a,14b,14c,14d,14e,14fを有する。スキャンFF部14a~14fのそれぞれは1つまたはシリアルに接続された複数のスキャンFFを有する。各スキャンFFには、スキャンイン動作時において、スキャンイン端子SCINからの入力値に含まれる0または1の値が設定される。
LSI13は、スキャンイン端子SCINとスキャンアウト端子SCOUTとの間にシリアルに接続されたスキャンFF部14a,14b,14c,14d,14e,14fを有する。スキャンFF部14a~14fのそれぞれは1つまたはシリアルに接続された複数のスキャンFFを有する。各スキャンFFには、スキャンイン動作時において、スキャンイン端子SCINからの入力値に含まれる0または1の値が設定される。
ここで、スキャンFF部14a~14fのうち、スキャンFF部14b,14c,14fは、クロック端子CLKAに印加されるクロック信号Aにしたがって動作する。スキャンFF部14a~14fのうち、スキャンFF部14a,14d,14eは、クロック端子CLKBに印加されるクロック信号Bにしたがって動作する。つまり、スキャンFF部14a,14d,14eと、スキャンFF部14b,14c,14fは、異なるクロックドメインに属する。
さらに、LSI13は、領域15a,15b,15c,15d,15e,15fを有する。領域15a~15fは、たとえば、各種のゲート回路による組合せ回路による回路領域である。領域15a~15fの何れかまたは全てに上記対象回路が含まれる。
図2の例では、スキャンFF部14aは、領域15a,15cに対して入力値を送る。スキャンFF部14bは、領域15bに対して入力値を送る。スキャンFF部14cは、領域15d,15fに対して入力値を送るとともに、領域15b,15cから応答値を受ける。スキャンFF部14dは、領域15eに対して入力値を送るとともに、領域15aから応答値を受ける。スキャンFF部14eは、領域15e,15fから応答値を受け、スキャンFF部14fは、領域15dから応答値を受ける。
このため、スキャンFF部14aは、領域15bに対して、上記の第1の保持回路に相当し、スキャンFF部14bは、領域15a,15cに対して、上記の第1の保持回路に相当する。また、スキャンFF部14cは、領域15d,15fに対して、上記の第1の保持回路に相当するとともに、領域15b,15cに対して、上記の第2の保持回路に相当する。スキャンFF部14dは、領域15eに対して、上記の第1の保持回路に相当するとともに、領域15aに対して、上記の第2の保持回路に相当する。スキャンFF部14eは、領域15e,15fに対して、上記の第2の保持回路に相当し、スキャンFF部14fは、領域15dに対して、上記の第2の保持回路に相当する。
なお、領域15a~15fのそれぞれに表示されている“A→A”、“A→B”などは、各領域に対象回路への入力値を送る第1の保持回路が属するクロックドメインと、各領域からの出力を受ける第2の保持回路が属するクロックドメインを表している。“A”は、クロック信号Aにしたがって動作するクロックドメインを表し、“B”は、クロック信号Bにしたがって動作するクロックドメインを表している。
図2において、“B→A”と表示されている領域15cと、“A→B”と表示されている領域15fが前述の渡り部分に相当する。
前述のように、渡り部分に対する送り側と受け側のクロックドメインに対するクロック信号の印加順序を、受け側を後にした場合、受け側の第2の保持回路に渡り部分の故障内容が反映される前に、送り側の第1の保持回路の設定値が更新されてしまう。
前述のように、渡り部分に対する送り側と受け側のクロックドメインに対するクロック信号の印加順序を、受け側を後にした場合、受け側の第2の保持回路に渡り部分の故障内容が反映される前に、送り側の第1の保持回路の設定値が更新されてしまう。
このため、たとえば、処理部12は、“A→B”と表示されている領域15fを試験対象または対象回路からの応答値を伝搬する経路とする場合に、クロック信号A,Bの順序で印加順序が仮に決定されている場合、このような印加順序を避けるように印加順序を変更する。具体的な印加順序の変更例については後述する(図8参照)。
処理部12は、生成したテストパターンの情報(テストパターン情報11b)を出力する(ステップS3)。たとえば、処理部12は、記憶部11にテストパターン情報11bを出力して記憶させてもよいし、テストパターン生成装置10の外部にテストパターン情報11bを出力してもよい。
このように出力されたテストパターン情報11bは、たとえば、実際のLSIの出荷前の試験などにおいて故障の有無を確認するために使用される。
以上のようなテストパターン生成装置10によれば、無駄なテストパターンの生成を防ぐことができるため、試験コストを低減することができる。以下、前述した(a)~(d)のテストパターンの生成方式と比較した本実施の形態のテストパターン生成装置10の効果を説明する。
以上のようなテストパターン生成装置10によれば、無駄なテストパターンの生成を防ぐことができるため、試験コストを低減することができる。以下、前述した(a)~(d)のテストパターンの生成方式と比較した本実施の形態のテストパターン生成装置10の効果を説明する。
(a)単一クロック印加方式との比較
図3は、単一クロック印加方式におけるテストパターンの生成例を示す図である。図3には、前述のLSI13(図2参照)が示されている。ただし、動作しないスキャンFFや領域は、破線で示されている。
図3は、単一クロック印加方式におけるテストパターンの生成例を示す図である。図3には、前述のLSI13(図2参照)が示されている。ただし、動作しないスキャンFFや領域は、破線で示されている。
パターンt1は、クロック信号Aが印加されるテストパターンである。パターンt2は、クロック信号Bが印加されるテストパターンである。
単一クロック印加方式では、スキャンイン動作からスキャンアウト動作の間で印加されるクロック信号は1つに限定されるため、試験される回路の範囲も限定される。このため、クロック信号の数が増加すると回路全体の試験を行うために用いられるテストパターンの数が増加し、スキャンイン動作とスキャンアウト動作の回数も増えるため、試験コストが増加する。
単一クロック印加方式では、スキャンイン動作からスキャンアウト動作の間で印加されるクロック信号は1つに限定されるため、試験される回路の範囲も限定される。このため、クロック信号の数が増加すると回路全体の試験を行うために用いられるテストパターンの数が増加し、スキャンイン動作とスキャンアウト動作の回数も増えるため、試験コストが増加する。
この方式と比較して本実施の形態のテストパターン生成方法では、スキャンイン動作からスキャンアウト動作の間で印加されるクロック信号は1つに限定されるわけではない。後述のように、スキャンイン動作からスキャンアウト動作の間で複数のクロック信号を印加することが可能である(図9参照)。このため、試験コストの増加を抑えることができる。
(b)複数クロック印加方式(時間展開方式)との比較
この方式では、スキャンイン動作からスキャンアウト動作の間で印加されるクロック信号数分の時間枠が用いられ、クロック信号数が増加すると展開する時間枠も増加する。そして、時間枠が増加することは故障検出条件を探す探索空間が増加することであり、扱う探索問題が複雑化することを意味する。
この方式では、スキャンイン動作からスキャンアウト動作の間で印加されるクロック信号数分の時間枠が用いられ、クロック信号数が増加すると展開する時間枠も増加する。そして、時間枠が増加することは故障検出条件を探す探索空間が増加することであり、扱う探索問題が複雑化することを意味する。
図4は、複数クロック印加方式(時間展開方式)におけるテストパターンの生成例を示す図である。図4には、前述のLSI13(図2参照)が示されているが、スキャンイン動作とクロック信号Aの印加が行われる時間枠と、クロック信号Bの印加とスキャンアウト動作が行われる時間枠が示されている。
図4において、領域15fで発生する故障を検出することを考える。この場合、故障検出条件の探索は、観測が行われる時間枠[クロック信号B印加+スキャンアウト動作]だけでなく、対象回路への入力値の設定が行われる時間枠[スキャンイン動作+クロック信号A印加]においても行われる。そして、さらに、時間枠[クロック信号B印加+スキャンアウト動作]での探索は、クロック信号Aによる回路状態の更新を考慮して行われる。
このように探索問題が複雑化すると、探索時間が長大化しテストパターン生成時間が増加する。
一般に実際のテストパターンの生成では、探索時間の無限(長大)化回避のため探索打ち切り基準が設定される。そのため扱う探索問題の複雑化に伴い、探索打ち切りにより故障を検出可能なテストパターンを生成できない可能性が増加する。つまり、この方式ではクロック信号数の増加に伴い、テストパターン生成の失敗による故障検出率の低下というテスト品質低下の問題もある。
一般に実際のテストパターンの生成では、探索時間の無限(長大)化回避のため探索打ち切り基準が設定される。そのため扱う探索問題の複雑化に伴い、探索打ち切りにより故障を検出可能なテストパターンを生成できない可能性が増加する。つまり、この方式ではクロック信号数の増加に伴い、テストパターン生成の失敗による故障検出率の低下というテスト品質低下の問題もある。
この方式と比較して本実施の形態のテストパターン生成方法では、スキャンイン動作からスキャンアウト動作の間で1つの時間枠が用いられるため、探索問題の複雑化が避けられ、試験コストの増加や探索打ち切りによるテスト品質の低下を抑えることができる。
(c)複数クロック印加方式(クロック印加順序固定方式)との比較
図5は、複数クロック印加方式(クロック印加順序固定方式)におけるテストパターンの生成例を示す図である。図5には前述のLSI13(図2参照)が示されている。
図5は、複数クロック印加方式(クロック印加順序固定方式)におけるテストパターンの生成例を示す図である。図5には前述のLSI13(図2参照)が示されている。
図5の例では、クロック信号A、クロック信号Bの印加順序のテストパターンが生成されている。このテストパターンでは、渡り部分である領域15cに対する試験が可能であるが、スキャンFF部14cの入力値が無効となる渡り部分である領域15fは一時的に試験対象外とされる。
そして、クロック信号Bだけが印加される追加テストパターンが生成され、領域15fの渡り部分が試験対象に復帰され、試験が行われる。追加テストパターンが増えるごとに、スキャンイン動作及びスキャンアウト動作の回数も増えるため、試験コストが増加する。以下、送り側と受け側のクロックドメインに印加される異なる2つのクロック信号の符号の組合せで表される“A→B”や“B→A”などを、渡りの組合せという。
この方式では印加するクロック信号の順序が最初に固定されるため、クロック信号数が増加すると、追加テストパターンが生成される渡りの組合せが増加する。
図6は、クロック信号数と追加テストパターンが生成される渡りの組合せを示す図である。“×”印は、追加テストパターンが生成される渡りの組合せを表している。
図6は、クロック信号数と追加テストパターンが生成される渡りの組合せを示す図である。“×”印は、追加テストパターンが生成される渡りの組合せを表している。
クロック信号が{A,B}の順で印加される場合、追加テストパターンが生成される渡りの組合せ(試験対象外の領域が発生する組合せ)は、送り側と受け側のクロックドメインに印加されるクロック信号の全4通りの組合せ中の1通り(25%)である。
クロック信号が{A,B,C}の順で印加される場合、追加テストパターンが生成される渡りの組合せは、送り側と受け側のクロックドメインに印加されるクロック信号の全9通りの組合せ中の3通り(33%)である。
クロック信号が{A,B,C,D}の順で印加される場合、追加テストパターンが生成される渡りの組合せは、送り側と受け側のクロックドメインに印加されるクロック信号の全16通りの組合せ中の6通り(38%)である。
クロック信号が{A,B,C,D,E}の順で印加される場合、追加テストパターンが生成される渡りの組合せは、送り側と受け側のクロックドメインに印加されるクロック信号の全25通りの組合せ中の10通り(40%)である。
このようにクロック信号数が増加すると、追加テストパターンが生成される渡りの組合せも増加する。つまり、(c)の方式ではクロック信号数の増加に伴い追加テストパターンが増加し、試験コストが増加する。
ところで、高性能なLSIでは実装密度向上のためスキャンFFよりも回路面積の小さい、フリップフロップ(以下ノンスキャンFFという)やラッチ回路といった保持回路(順序回路)が使われることがある。このような保持回路は、スキャンチェーンに含まれない。(c)の方式ではこのような保持回路を用いた場合に、正しいテストパターンが生成できない場合がある。
図7は、ノンスキャンFFを含む回路に対する(c)の方式の問題点を説明する図である。図7には、クロック信号Bで動作するスキャンFF16a,16bの間に、クロック信号Aで動作するノンスキャンFF17が存在する回路の例が示されている。なお、図7では、スキャンFF16aとノンスキャンFF17との間の回路領域や、ノンスキャンFF17とスキャンFF16bとの間の回路領域は図示が省略されている。
クロック信号の印加順序が{A,B}のテストパターンpにより、スキャンFF16aからノンスキャンFF17の間の回路領域に仮定される故障fが正しく伝搬されるが、ノンスキャンFF17とスキャンFF16bとの間では、正しく伝搬されない。
クロック信号の印加順序が{A,B}のテストパターンp+1を追加しても、クロック信号Aの印加により、テストパターンpでノンスキャンFF17に取り込まれた故障fのデータが破壊される可能性がある。このため、次にクロック信号Bが印加されても、故障fがスキャンFF16bに伝搬されない可能性がある。つまり時刻を跨いだ故障伝搬ができない可能性がある。
このように、(c)の方式では、スキャンFF以外の保持回路が試験結果のデータ(上記の例では故障f)の伝搬に用いられる場合、実際には故障検出が行えない無効なテストパターンが生成されている可能性がある。
この方式と比較して本実施の形態のテストパターン生成方法では、上記のような無効なテストパターンの生成を防ぐことができる。以下、その理由をより具体的に説明する。
図8は、本実施の形態のテストパターン生成方法におけるテストパターン生成例を示す図である。図8に示したLSI13aにおいて、図2に示したLSI13と同じ要素については同一符号が付されている。なお、図2に示したスキャンイン端子SCIN、スキャンアウト端子SCOUTやスキャンFF部間を接続する配線などについては図示が省略されている。また、図8では、領域15a~15fのそれぞれに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(A,A)、(A,B)、(B,A)、(B,B)と表示されている。
図8は、本実施の形態のテストパターン生成方法におけるテストパターン生成例を示す図である。図8に示したLSI13aにおいて、図2に示したLSI13と同じ要素については同一符号が付されている。なお、図2に示したスキャンイン端子SCIN、スキャンアウト端子SCOUTやスキャンFF部間を接続する配線などについては図示が省略されている。また、図8では、領域15a~15fのそれぞれに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(A,A)、(A,B)、(B,A)、(B,B)と表示されている。
図8に示したLSI13aは、ノンスキャンFF部18を有する。ノンスキャンFF部18は、1または複数のノンスキャンFFを有する。ノンスキャンFF部18は、領域15d,15fに対して、対象回路への入力値を送る前述の第1の保持回路に相当するとともに、領域15b,15cの出力(対象回路からの応答値)を受ける前述の第2の保持回路に相当する。
図8に示すようなLSI13aに対するテストパターンの生成の際、処理部12は、たとえば、以下のようにクロック信号の印加順序を決定する。印加順序は、たとえば、図8に示すようなクロック印加順序情報として記憶部11に保存される。クロック印加順序情報は、前述のテストパターン情報11bに含まれるものである。なお、以下の例では、渡り部分の1つである領域15cの故障がターゲットである。
処理部12は、テストパターンpの生成の初期状態において、領域15cの故障(領域15cの対象回路からの応答値)がノンスキャンFF部18に伝搬したときに、ノンスキャンFF部18に故障をキャプチャさせるようにする。そのため、処理部12は、たとえばATPG機能により、印加順序の先頭にクロック信号Aを設定する。
処理部12は、クロックドメインの検出結果に基づいて、領域15cに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(B,A)であるから、クロック信号Aの印加順序が先頭の場合、適切に故障伝搬が行えると判定する。このため、処理部12は、ノンスキャンFF部18におけるキャプチャを有効にする。
次に、処理部12は、故障が領域15fを通りスキャンFF部14eに伝搬したときにスキャンFF部14eで故障をキャプチャするため、たとえばATPG機能により、クロック信号Aの次の印加順序としてクロック信号Bを設定する。
処理部12は、クロックドメインの検出結果に基づいて、領域15fに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(A,B)であるから、クロック信号A,Bの印加順序の場合、適切に故障伝搬が行えないと判定する。このため、処理部12は、スキャンFF部14eにおける故障(応答値)のキャプチャを無効にする(たとえば、データ入力端子の状態を非制御状態に設定する)。
処理部12は、テストパターンpにおける故障のキャプチャが失敗したため、クロック印加順序情報から、クロック信号Bを2番目の印加順序としていた情報を削除する。つまり、テストパターンpにおいて、クロック信号Bを印加する設定が削除されることで、ATPG機能によって仮に設定された印加順序が変更される。
処理部12は、テストパターンpにおける故障伝搬が失敗したため、故障伝搬を可能とするために、テストパターンp+1の生成を開始する。
処理部12は、ノンスキャンFF部18に保持されている領域15cの故障がスキャンFF部14eに伝搬したときに、スキャンFF部14eで故障をキャプチャさせるため、印加順序の先頭にクロック信号Bを設定する。
処理部12は、ノンスキャンFF部18に保持されている領域15cの故障がスキャンFF部14eに伝搬したときに、スキャンFF部14eで故障をキャプチャさせるため、印加順序の先頭にクロック信号Bを設定する。
処理部12は、クロックドメインの検出結果に基づいて、領域15cに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(A,B)であるから、クロック信号Bの印加順序が先頭の場合、適切に故障伝搬が行えると判定する。このため、処理部12は、スキャンFF部14eにおけるキャプチャを有効にする。
以上のように、本実施の形態のテストパターン生成方法では、(c)の方式では認識できないノンスキャンFFなどのスキャンFF以外の保持回路を通過するパスを認識できるので、無効なテストパターンの生成を防ぐことができる。
なお、ノンスキャンFF部18の代わりに、RAMなどの保持回路を用いても同様の効果を得ることができる。
さらに、本実施の形態のテストパターン生成方法では、以下のような手法を用いることにより、(c)の方式で発生するようなクロック信号数の増加に伴う追加テストパターンの増大を抑制できる。
さらに、本実施の形態のテストパターン生成方法では、以下のような手法を用いることにより、(c)の方式で発生するようなクロック信号数の増加に伴う追加テストパターンの増大を抑制できる。
図9は、動的故障圧縮手法によるテストパターン生成例を示す図である。
処理部12は、同一のテストパターンでより多くの故障を検出するために、以下のような動的故障圧縮手法を実行できる。図9では、図8に示したテストパターンp,p+1が生成されている状態を初期状態としている。
処理部12は、同一のテストパターンでより多くの故障を検出するために、以下のような動的故障圧縮手法を実行できる。図9では、図8に示したテストパターンp,p+1が生成されている状態を初期状態としている。
たとえば、処理部12は、テストパターンpでさらに領域15aの故障を検出できるように以下のような変更を行う。
領域15aの故障がスキャンFF部14dに伝搬したときに、スキャンFF部14dで故障をキャプチャするため、処理部12は、たとえばATPG機能により、印加順序の2番目にクロック信号Bを設定する。
領域15aの故障がスキャンFF部14dに伝搬したときに、スキャンFF部14dで故障をキャプチャするため、処理部12は、たとえばATPG機能により、印加順序の2番目にクロック信号Bを設定する。
処理部12は、クロックドメインの検出結果に基づいて、領域15aに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(B,B)であるから、クロック信号A,Bの印加順序でも適切に故障伝搬が行えると判定する。このため、処理部12は、スキャンFF部14dにおけるキャプチャを有効にする。
このようなテストパターンpでは、(A,B)と表されている渡り部分以外の領域が試験対象となる。
次に、処理部12は、テストパターンp+1でさらに領域15dの故障を検出できるように以下のような変更を行う。
次に、処理部12は、テストパターンp+1でさらに領域15dの故障を検出できるように以下のような変更を行う。
領域15dの故障がスキャンFF部14fに伝搬したときに、スキャンFF部14fで故障をキャプチャするため、処理部12は、たとえばATPG機能により、印加順序の2番目にクロック信号Aを設定する。
処理部12は、クロックドメインの検出結果に基づいて、領域15dに対する送り側と受け側のクロックドメインに印加されるクロック信号の組合せが(A,A)であるから、クロック信号B,Aの印加順序でも適切に故障伝搬が行えると判定する。このため、処理部12は、スキャンFF部14fにおけるキャプチャを有効にする。
このようなテストパターンp+1では、(B,A)と表されている渡り部分以外の領域が試験対象となる。
以上のように、本実施の形態のテストパターン生成方法では、クロック信号の印加順序は、{A,B}、{B,A}のように可変となるので、クロック信号数が増えても、クロック印加順序を固定する(c)の方式よりも、テストパターンの追加数を抑えることができる。
以上のように、本実施の形態のテストパターン生成方法では、クロック信号の印加順序は、{A,B}、{B,A}のように可変となるので、クロック信号数が増えても、クロック印加順序を固定する(c)の方式よりも、テストパターンの追加数を抑えることができる。
(d)クロック一本化、クロック供給・停止方式との比較
図10は、クロック一本化、クロック供給・停止方式の例を示す図である。図10において、図2に示したLSI13と同じ要素については同一符号が付されている。図10に示したLSI13bは、制御回路19が追加されている。
図10は、クロック一本化、クロック供給・停止方式の例を示す図である。図10において、図2に示したLSI13と同じ要素については同一符号が付されている。図10に示したLSI13bは、制御回路19が追加されている。
制御回路19は、キャプチャ動作時において、クロック端子CLKに印加される共通のクロック信号を、クロック端子CLKA,CLKBを介して、各クロックドメインに供給する。
この方式は、テスタでの端子数の制約から元の複数のクロック信号を一本化することを前提とするため、回路内に供給するクロック信号数は元のクロック信号数以下になる。
つまり、回路が正常動作する(元のクロック信号数以下の)クロック信号の組み合わせでテストパターンを生成した後、別のクロック信号の組み合わせによる追加のテストパターンを生成することになる。このため、(c)の方式と類似し、クロック信号数の増加に伴うテストパターンの追加による試験コストの増加の問題がある。
つまり、回路が正常動作する(元のクロック信号数以下の)クロック信号の組み合わせでテストパターンを生成した後、別のクロック信号の組み合わせによる追加のテストパターンを生成することになる。このため、(c)の方式と類似し、クロック信号数の増加に伴うテストパターンの追加による試験コストの増加の問題がある。
たとえば、図10において、クロック一本化を行ってもスキューの問題がなく正常動作する回路に対してクロック端子CLKA,CLKBを介してクロック信号を供給、制御して試験が行われる。他方、スキューのため正常動作しない回路に対してはクロック端子CLKA,CLKBのどちらかを介してのクロック信号の供給、制御を停止するテストパターンを生成する場合がある。
この方式と比較して本実施の形態のテストパターン生成方法では、前述の図9のような動的故障圧縮手法の適用が可能であり、追加のテストパターンの増加を抑えることができる。
なお、上記の説明では、スタティック試験におけるテストパターンを生成する例を説明したが、処理部12は、高速試験におけるテストパターンを生成することもできる。高速試験におけるテストパターンの生成方法については、次の第2の実施の形態にて説明する。
(第2の実施の形態)
次に、第2の実施の形態を説明する。
図11は、テストパターン生成装置のハードウェア例を示すブロック図である。
次に、第2の実施の形態を説明する。
図11は、テストパターン生成装置のハードウェア例を示すブロック図である。
テストパターン生成装置20は、CPU21、RAM22、HDD23、GPU(Graphics Processing Unit)24、入力インタフェース25、媒体リーダ26及び通信インタフェース27を有する。上記ユニットは、バスに接続されている。
CPU21は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU21は、HDD23に記憶されたプログラムやデータの少なくとも一部をRAM22にロードし、プログラムを実行する。なお、CPU21は複数のプロセッサコアを備えてもよく、テストパターン生成装置20は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM22は、CPU21が実行するプログラムやCPU21が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、テストパターン生成装置20は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD23は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、及び、データを記憶する不揮発性の記憶装置である。プログラムには、たとえば、テストパターン生成装置20にテストパターンの生成などの処理を行わせるテストパターン生成プログラムが提供される。なお、テストパターン生成装置20は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
GPU24は、CPU21からの命令にしたがって、テストパターン生成装置20に接続されたディスプレイ24aに画像を出力する。ディスプレイ24aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力インタフェース25は、テストパターン生成装置20に接続された入力デバイス25aから入力信号を取得し、CPU21に出力する。入力デバイス25aとしては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、テストパターン生成装置20に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ26は、記録媒体26aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体26aとして、たとえば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ26は、たとえば、記録媒体26aから読み取ったプログラムやデータを、RAM22やHDD23などの他の記録媒体にコピーする。読み取られたプログラムは、たとえば、CPU21によって実行される。なお、記録媒体26aは、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体26aやHDD23を、コンピュータ読み取り可能な記録媒体ということがある。
通信インタフェース27は、ネットワーク27aに接続され、ネットワーク27aを介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース27は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
図1に示した第1の実施の形態のテストパターン生成装置10についても上記のようなハードウェア構成にて実現可能である。
次に、テストパターン生成装置20の機能及び処理手順を説明する。
次に、テストパターン生成装置20の機能及び処理手順を説明する。
図12は、テストパターン生成装置の機能例を示すブロック図である。
テストパターン生成装置20は、設計情報記憶部31、情報取得部32、クロックドメイン検出部33、ドメイン情報記憶部34、テストパターン生成部35、テストパターン情報記憶部36、故障シミュレーション部37、出力部38を有する。設計情報記憶部31、ドメイン情報記憶部34、テストパターン情報記憶部36は、図1の記憶部11に相当し、たとえば、RAM22またはHDD23に確保した記憶領域を用いて実装できる。情報取得部32、クロックドメイン検出部33、テストパターン生成部35、故障シミュレーション部37、出力部38は、図1の処理部12に相当し、たとえば、CPU21が実行するプログラムモジュールを用いて実装できる。
テストパターン生成装置20は、設計情報記憶部31、情報取得部32、クロックドメイン検出部33、ドメイン情報記憶部34、テストパターン生成部35、テストパターン情報記憶部36、故障シミュレーション部37、出力部38を有する。設計情報記憶部31、ドメイン情報記憶部34、テストパターン情報記憶部36は、図1の記憶部11に相当し、たとえば、RAM22またはHDD23に確保した記憶領域を用いて実装できる。情報取得部32、クロックドメイン検出部33、テストパターン生成部35、故障シミュレーション部37、出力部38は、図1の処理部12に相当し、たとえば、CPU21が実行するプログラムモジュールを用いて実装できる。
設計情報記憶部31は、LSIの設計情報(回路モデル)を記憶する。なお、テストパターン生成装置20が、ユーザによる入力を受け付けて、その入力に基づいて設計情報を作成し、設計情報記憶部31に記憶してもよいし、テストパターン生成装置20は、他の装置から設計情報を取得して設計情報記憶部31に記憶してもよい。なお、検出対象の故障や各種試験条件が、設計情報に含まれていてもよい。
情報取得部32は、設計情報記憶部31から設計情報を取得する(読み込む)。なお、情報取得部32は、検出対象の故障や各種試験条件などを、たとえば、テストパターン生成装置20の外部から取得してもよい。
クロックドメイン検出部33は、設計情報に基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出する。
ドメイン情報記憶部34は、検出された複数のクロックドメインの情報を記憶する。
ドメイン情報記憶部34は、検出された複数のクロックドメインの情報を記憶する。
テストパターン生成部35は、複数のクロックドメインの情報に基づいて、テストパターンの生成を行う。
テストパターン情報記憶部36は、生成されたテストパターンの情報を記憶する。
テストパターン情報記憶部36は、生成されたテストパターンの情報を記憶する。
故障シミュレーション部37は、生成されたテストパターンを用いて、スタティック試験や高速試験などの故障シミュレーションを行う。そして、故障シミュレーション部37は、用いたテストパターンによる故障検出率の評価を行い、期待値を含んだテストパターンをテストパターン情報記憶部36に記憶する。
出力部38は、期待値を含んだテストパターンの情報を出力する。出力部38は、テストパターンの情報をディスプレイ24aに出力して表示させてもよいし、HDD23などの記憶装置に記憶して記憶させてもよい。また、出力部38は、テストパターンの情報を、外部の装置に送信してもよい。
(スタティック試験におけるテストパターン生成)
図13は、スタティック試験のテストパターンを生成する手順の一例を示すフローチャートである。
図13は、スタティック試験のテストパターンを生成する手順の一例を示すフローチャートである。
情報取得部32は、設計情報記憶部31から設計情報を読み込む(ステップS10)。その後、クロックドメイン検出部33やテストパターン生成部35などの初期化が行われる(ステップS11)。
次に、クロックドメイン検出部33によるクロックドメインの検出が行われる(ステップS12)。
テストパターン生成部35は、対象回路への入力値と複数のクロック信号の印加順序を含むテストパターンを生成する(ステップS13)。ここでテストパターン生成部35は、試験対象の個々の領域に対して対象回路への入力値を送る第1の保持回路と、個々の領域からの出力を受ける第2の保持回路とが、複数のクロックドメインのうちの何れに属するかに基づいて、印加順序を変更/管理する。
テストパターン生成部35は、対象回路への入力値と複数のクロック信号の印加順序を含むテストパターンを生成する(ステップS13)。ここでテストパターン生成部35は、試験対象の個々の領域に対して対象回路への入力値を送る第1の保持回路と、個々の領域からの出力を受ける第2の保持回路とが、複数のクロックドメインのうちの何れに属するかに基づいて、印加順序を変更/管理する。
故障シミュレーション部37は、生成されたテストパターンを用いて、故障シミュレーションを行う(ステップS14)。
テストパターン生成部35は、検出対象の故障が残っているか否かを判定し(ステップS15)、検出対象の故障が残っていると判定した場合、ステップS13の処理を再び行う。
テストパターン生成部35は、検出対象の故障が残っているか否かを判定し(ステップS15)、検出対象の故障が残っていると判定した場合、ステップS13の処理を再び行う。
検出対象の故障が残っていないと判定された場合、出力部38は、故障シミュレーションによって得られた期待値を含むテストパターンの情報を出力する(ステップS16)。これにより、テストパターンの生成処理が終了する。
(クロックドメイン検出手順)
図14は、クロックドメインの検出手順の一例を示すフローチャートである。
また、図15は、クロックドメインの検出例を示す図である。図15は、図8に示したLSI13aに対するクロックドメインの検出例が示されている。
図14は、クロックドメインの検出手順の一例を示すフローチャートである。
また、図15は、クロックドメインの検出例を示す図である。図15は、図8に示したLSI13aに対するクロックドメインの検出例が示されている。
クロックドメイン検出部33は、1つのクロック端子を選択し、同端子からフォワードトレースを行い到達可能な保持回路(スキャンFF部またはノンスキャンFF部)を抽出する(ステップS20)。たとえば、クロックドメイン検出部33は、図15に示したようなLSI13aにおいてクロック端子CLKAを選択し、クロック端子CLKAからフォワードトレースにより到達可能な、スキャンFF部14b,14f、ノンスキャンFF部18を抽出する。
さらに、クロックドメイン検出部33は、到達した保持回路から次段の保持回路までフォワードトレースする(ステップS21)。たとえば、クロックドメイン検出部33は、図15に示したような、スキャンFF部14bからノンスキャンFF部18まで、ノンスキャンFF部18からスキャンFF部14fまで、フォワードトレース(図15では“f-trace”)する。
その後、クロックドメイン検出部33は、到達した保持回路から前段の保持回路までバックトレースを行う(ステップS22)。たとえば、クロックドメイン検出部33は、図15に示したようなスキャンFF部14fからノンスキャンFF部18まで、ノンスキャンFF部18からスキャンFF部14bまで、バックトレース(図15では“b-trace”)する。
クロックドメイン検出部33は、フォワードトレースの領域に「送り」をマークし(ステップS23)、バックトレースの領域に「受け」をマークする(ステップS24)。より具体的には、「送り」のマークは、たとえば、フォワードトレースが始まる保持回路に含まれるFFのデータ入力端子に付与され、「受け」のマークは、たとえば、バックトレースが始まる保持回路に含まれるFFのデータ入力端子に付与される。
「送り」と「受け」は、それぞれ送り側と受け側のクロックドメインに印加されるクロック信号名により表現できる。たとえば、図15において、領域15b,15dに対する送り側と受け側のクロックドメインに印加されるクロック信号はともにクロック信号Aであるため、(A,A)と表記される。このようなマークの結果が、クロックドメイン情報としてドメイン情報記憶部34に記憶される。
その後、クロックドメイン検出部33は、全てのクロック信号について処理済みであるか否かを判定する(ステップS25)。クロックドメイン検出部33は、全てのクロック信号について処理済みではないと判定した場合、ステップS20からの処理を繰り返す。クロックドメイン検出部33は、全てのクロック信号について処理済みであると判定した場合、クロックドメインの検出処理を終了する。
たとえば、図15において、クロック端子CLKBを選択して、ステップS20~S24までの処理が繰り返される。これによって、図15に示すLSI13aの任意の領域に対する(送り、受け)は、(A,A)、(B,B)、(A,B)、(B,A)の4通りの何れかとなる。
(テストパターン生成手順)
図16は、テストパターンの生成手順の一例を示すフローチャートである。図16では、ATPG機能における含意処理の全体フローが示されている。
図16は、テストパターンの生成手順の一例を示すフローチャートである。図16では、ATPG機能における含意処理の全体フローが示されている。
テストパターン生成部35は、含意処理におけるイベント(あるクロック端子をONするイベントなど)があるか否かを判定する(ステップS30)。テストパターン生成部35は、イベントがあると判定した場合、ステップS31の処理を行い、イベントがないと判定した場合、テストパターン生成処理を終える。
ステップS31の処理では、テストパターン生成部35は、着目するイベントを取り出す。そして、テストパターン生成部35は、そのイベントがクロック端子をONするものであるか否かを判定する(ステップS32)。
テストパターン生成部35は、取り出したイベントがクロック端子をONするものであると判定した場合、印加順序保存処理を行う(ステップS33)。印加順序保存処理は、印加順序を、前述の図8に示したようなクロック印加順序情報として保存する処理である。ステップS32の処理で、イベントがクロック端子をONするものであると判定した場合、そのクロック端子に印加されるクロック信号名(図8の例ではAまたはB)が印加順序に追加される。
ステップS33の処理後、またはステップS32の処理で、取り出したイベントがクロック端子をONにするものではないと判定した場合、テストパターン生成部35は、ゲート処理を行う(ステップS34)。ゲート処理の手順については後述する。
ゲート処理後、テストパターン生成部35が、故障を検出するための各保持回路への設定値に矛盾があるか否かを判定し、矛盾がないと判定した場合、ステップS30からの処理を繰り返す。矛盾があると判定した場合、NGとなりテストパターンの生成処理が終了する。
(ゲート処理手順)
図17は、ゲート処理の手順の一例を示すフローチャートである。なお、図17には、保持回路の一例であるフリップフロップ(FF)またはラッチ回路(Latch)の、端子例(CK端子(クロック端子)、D端子(データ入力端子)、Q端子(出力端子))が示されている。
図17は、ゲート処理の手順の一例を示すフローチャートである。なお、図17には、保持回路の一例であるフリップフロップ(FF)またはラッチ回路(Latch)の、端子例(CK端子(クロック端子)、D端子(データ入力端子)、Q端子(出力端子))が示されている。
テストパターン生成部35は、イベントがクロック端子をONするものであるか否かを判定する(ステップS40)。イベントがクロック端子をONするものであると判定した場合、テストパターン生成部35は、ステップS41の処理を行う。イベントがクロック端子をONするものではないと判定した場合、テストパターン生成部35は、ステップS45の処理を行う。
ステップS41の処理では、テストパターン生成部35は、クロックドメインの認識を行う。テストパターン生成部35は、D端子に対応するクロックドメイン情報を参照し、「送り」、「受け」のクロック信号を取得することでクロックドメインの認識を行う。
そして、テストパターン生成部35は、「送り」と「受け」が同じであるか否かを判定する(ステップS42)。テストパターン生成部35は、「送り」と「受け」が同じであると判定した場合、ステップS45の処理を行い、「送り」と「受け」が同じではないと判定した場合、ステップS43の処理を行う。
ステップS43の処理では、テストパターン生成部35は、クロック印加順序情報を参照して、クロック印加順序が{…、受け、…、送り、…}であるか否かを判定する。より具体的には、テストパターン生成部35は、図15に示した領域15a~15fに対する(送り、受け)とクロック印加順序情報から、領域15a~15fのそれぞれについて、クロック印加順序が{…、受け、…、送り、…}となっているか判定する。これにより、ONとされるクロック端子に印加されるクロック信号を印加順序に追加したときに、適切に故障を伝達できる印加順序になっているか否かが判定される。
たとえば、図8に示したように、(送り、受け)が(A,B)である領域15fについて、クロック印加順序が{A,B}となる場合、クロック印加順序が{…、受け、…、送り、…}となっていないと判定される。
なお、{…、受け、…、送り、…}の表記は、着目する領域に対する「送り」または「受け」のクロック信号とは異なるクロック信号が、「…」の部分に含まれてよいことを示している。
テストパターン生成部35は、クロック印加順序が{…、受け、…、送り、…}となっていると判定した場合、ステップS45の処理を行い、クロック印加順序が{…、受け、…、送り、…}となっていないと判定した場合、ステップS44の処理を行う。
ステップS44の処理では、テストパターン生成部35は、クロック印加順序が{…、受け、…、送り、…}となっていない領域に対する受け側の保持回路のD端子のステートを“U”(制御不能)とし、ステップS45の処理を行う。
ステップS45の処理では、テストパターン生成部35は、保持回路の通常のゲート処理を行う。ステップS45の処理では、テストパターン生成部35は、テストパターンに含まれる対象回路への入力値をD端子に設定する。
これにより、ゲート処理が終了する。
このようなゲート処理により、テストパターンごとにクロック印加順序がチェックされ、故障を適切に伝搬できないクロック印加順序となっている場合には、そのテストパターンにおけるD端子でのキャプチャが無効とされる。
このようなゲート処理により、テストパターンごとにクロック印加順序がチェックされ、故障を適切に伝搬できないクロック印加順序となっている場合には、そのテストパターンにおけるD端子でのキャプチャが無効とされる。
(クロック印加順序情報の詳細)
図18は、クロック印加順序情報の詳細な例を示す図である。
クロック印加順序情報は、作成されるテストパターン数分の大きさの配列データである。配列の各要素には、クロック信号が印加されたクロック端子の端子名(図18の例では“ClockA”、“ClockB”など)のリストが格納される。端子名は、印加順に格納される。なお、図8に示したように、クロック信号名(“A”や“B”など)が配列の各要素に格納されるようにしてもよい。
図18は、クロック印加順序情報の詳細な例を示す図である。
クロック印加順序情報は、作成されるテストパターン数分の大きさの配列データである。配列の各要素には、クロック信号が印加されたクロック端子の端子名(図18の例では“ClockA”、“ClockB”など)のリストが格納される。端子名は、印加順に格納される。なお、図8に示したように、クロック信号名(“A”や“B”など)が配列の各要素に格納されるようにしてもよい。
(決定木を用いたクロック印加順序情報の更新例)
図19は、決定木を用いたクロック印加順序情報の更新例を示す図である。図19では、図8に示したテストパターンの生成例と同様の印加順序が、決定木を用いて決定される例が示されている。
図19は、決定木を用いたクロック印加順序情報の更新例を示す図である。図19では、図8に示したテストパターンの生成例と同様の印加順序が、決定木を用いて決定される例が示されている。
まず、ノードn1の選択がクロック印加順序情報に追加される。ノードn1の選択は、パターンpでクロック信号A(端子名“ClockA”のクロック端子に印加されるクロック信号)を印加することに相当する。
次に、ノードn2の選択がクロック印加順序情報に追加される。ノードn2の選択は、パターンpでクロック信号B(端子名“ClockB”のクロック端子に印加されるクロック信号)を印加することに相当する。
その後、図8に示したように、クロック信号A,Bの印加順序の場合、適切に故障伝搬が行えないと判定されるため(探索の結果:NG)、ノードn2の選択(クロック信号Bを印加すること)が、クロック印加順序情報から削除される。
そして、ノードn2の次の選択がクロック印加順序情報に追加される。ノードn2の次の選択は、パターンp+1でクロック信号Bを印加することに相当する。
(高速試験のテストパターンの生成)
高速試験(at-speed試験とも呼ばれる)は、フリップフロップやラッチ回路などの保持回路間の被測定パスの遅延故障を検出する試験である。以下では保持回路の一例として、フリップフロップまたはラッチ回路(FF/Latchと表記する)を用いた場合について説明する。
(高速試験のテストパターンの生成)
高速試験(at-speed試験とも呼ばれる)は、フリップフロップやラッチ回路などの保持回路間の被測定パスの遅延故障を検出する試験である。以下では保持回路の一例として、フリップフロップまたはラッチ回路(FF/Latchと表記する)を用いた場合について説明する。
図20は、高速試験の概要を示す図である。図20では、FF/Latch40,41の間の被測定パス(NAND(否論理積)回路42を含む)の遅延故障を検出する高速試験の例が示されている。
高速試験では、送り側と受け側の両方のFF/Latch40,41に同じ(同相の)クロック信号(実際に用いられるシステム周波数に近い周波数をもつ)のペアが印加される。図20の例では、FF/Latch40のQ端子から出力される、論理レベルがL(Low)レベルからH(High)レベルに立ち上がる信号は、被測定パスにおいて論理レベルがHレベルからLレベルに反転する。しかし、FF/Latch41に印加されるクロック信号の立ち上がりタイミングまでに、D端子において論理レベルの変化が検出されない場合、遅延故障が発生したものと判定される。
図8に示したようなLSI13aの例では、高速試験の対象となる領域は、クロック信号Aが送り側と受け側の保持回路に印加される領域15b,15d、クロック信号Bが送り側と受け側の保持回路に印加される領域15a,15eである。
前述の(a)~(d)の方式では、高速試験を行うに際し、以下の問題がある。
(a)単一クロック印加方式の問題
高速試験ではクロック信号がペアとなる違いがあるが、スタティック試験と同様に各クロック信号について試験を行うので、クロック信号数の増加に伴いLSIの試験コストが増加する。
(a)単一クロック印加方式の問題
高速試験ではクロック信号がペアとなる違いがあるが、スタティック試験と同様に各クロック信号について試験を行うので、クロック信号数の増加に伴いLSIの試験コストが増加する。
(b)複数クロック印加方式(時間展開方式)の問題
高速試験ではクロック信号がペアとなる違いがあるが、スタティック試験と同様に各クロック信号についての時間展開が行われるため、クロック信号数の増加に伴い、展開する時間枠が増加し、故障検出条件を探す探索空間が増加する。これにより、扱う探索問題が複雑化する。
高速試験ではクロック信号がペアとなる違いがあるが、スタティック試験と同様に各クロック信号についての時間展開が行われるため、クロック信号数の増加に伴い、展開する時間枠が増加し、故障検出条件を探す探索空間が増加する。これにより、扱う探索問題が複雑化する。
図21は、高速試験時における時間展開例を示す図である。図21には、前述のLSI13(図2参照)が示されているが、スキャンイン動作とクロック信号Aの印加が行われる送りの時間枠と、クロック信号Aの印加とスキャンアウト動作が行われる受けの時間枠が示されている。送りの時間枠は、試験対象の回路領域にデータを送る時間の回路状態を表し、受けの時間枠は、試験対象の回路領域からデータを受ける時間の回路状態を表す。
たとえば、領域15d内のNAND回路15d1を含む被測定パスの遅延故障を検出する場合、送りの時間枠ではスキャンFF部14c内のFF/Latchに値=1が設定される。そして、受けの時間枠では、被測定パスを経由したデータがスキャンFF部14fのFF/Latchに取り込まれる。
(b)の方式では、クロック信号ごとに、上記のような時間枠のペアを用いて回路状態が表現されるため、扱う探索問題はスタティック試験よりもさらに複雑化することになる。
(c)複数クロック印加方式(クロック印加順序固定方式)の問題
高速試験では、たとえば、図5に示したようなLSI13において、“A→A”、“B→B”といった送り側と受け側のクロックドメインに印加されるクロック信号が同じ(同相)の領域が試験対象となる。したがって、(c)の方式における“A→B”や“B→A”といった渡り部分に関する判定基準は、高速試験における試験コストの増加や、テスト品質の低下といった問題に対する解決手段を提供するものではない。
高速試験では、たとえば、図5に示したようなLSI13において、“A→A”、“B→B”といった送り側と受け側のクロックドメインに印加されるクロック信号が同じ(同相)の領域が試験対象となる。したがって、(c)の方式における“A→B”や“B→A”といった渡り部分に関する判定基準は、高速試験における試験コストの増加や、テスト品質の低下といった問題に対する解決手段を提供するものではない。
(d)クロック一本化、クロック供給・停止方式の問題
(d)の方式は、クロック信号を一本化するため、時間展開が簡単になる。しかし、高速試験でも、複数のクロック信号の組み合わせでテストパターン生成した後、別の複数のクロック信号の組み合わせによる追加のテストパターンが必要なのはスタティック試験と同様である。このため、クロック信号数の増加に伴うテストパターンの追加による試験コストの増加の問題がある。
(d)の方式は、クロック信号を一本化するため、時間展開が簡単になる。しかし、高速試験でも、複数のクロック信号の組み合わせでテストパターン生成した後、別の複数のクロック信号の組み合わせによる追加のテストパターンが必要なのはスタティック試験と同様である。このため、クロック信号数の増加に伴うテストパターンの追加による試験コストの増加の問題がある。
(時間枠再利用方式)
本実施の形態のテストパターン生成方法では、高速試験時において、以下のような方式(時間枠再利用方式という)が用いられる。
本実施の形態のテストパターン生成方法では、高速試験時において、以下のような方式(時間枠再利用方式という)が用いられる。
図22は、時間枠再利用方式の例を示す図である。図22には、前述のLSI13(図2参照)が示されているが、スキャンイン動作とクロック信号の印加が行われる送りの時間枠と、クロック信号の印加とスキャンアウト動作が行われる受けの時間枠が示されている。
図22の例では、最初に送りと受けのクロック信号をクロック信号A、次の送りと受けのクロック信号をクロック信号Bとする高速試験のテストパターンの例が示されている。また、図22の例では、クロック信号Aの印加の際には、NAND回路15d1を含む被測定パスを有する領域15dが高速試験の対象となっている。また、クロック信号Bの印加の際には、NAND回路15e1を含む被測定パスを有する領域15eが高速試験の対象となっている。
本実施の形態のテストパターン生成方法では、たとえば、送りの時間枠と受けの時間枠のペアのそれぞれにおいてクロック信号Aの印加が行われ、その後、クロック切替処理により、同じ時間枠ペアにおいてクロック信号Bの印加が行われる。つまり、前述の(b)の方式とは異なり、クロック信号数が増えても、同じ時間枠ペアが再使用されるため、時間枠は増加しない。これにより、探索問題の複雑化を防ぐことができ、探索打ち切りによるテスト品質の低下を低減できる。
図23は、高速試験のテストパターンを生成する手順の一例を示すフローチャートである。なお、図23の手順には、図13に示したスタティック試験における手順が内包されている。スタティック試験における処理と同様の処理については説明を省略する。
ステップS50~S52の処理は、図13に示したステップS10~S12の処理と同じである。
ステップS52の処理後、テストパターン生成部35は、高速試験におけるクロック信号の印加順序を決定する(ステップS53)。たとえば、テストパターン生成部35は、複数のクロックドメインの情報と、遅延故障に関する故障情報とに基づいて、故障数の多い領域に対する送り側及び受け側のクロックドメインに印加されるクロック信号を優先するように印加順序を決定する。
ステップS52の処理後、テストパターン生成部35は、高速試験におけるクロック信号の印加順序を決定する(ステップS53)。たとえば、テストパターン生成部35は、複数のクロックドメインの情報と、遅延故障に関する故障情報とに基づいて、故障数の多い領域に対する送り側及び受け側のクロックドメインに印加されるクロック信号を優先するように印加順序を決定する。
次に、テストパターン生成部35は、クロック切替処理を行う(ステップS54)。ステップS54の処理では、送りの時間枠と受けの時間枠において、印加するクロック信号を切り替えたときの回路状態の設定が行われる。回路状態の例や、クロック切替処理の手順の例については後述する。
ステップS54の処理後、テストパターン生成部35は、設定された回路状態で高速試験用のテストパターンを生成する(ステップS55)。
ステップS55の処理後、テストパターン生成部35は、クロック切替準備処理を行う(ステップS56)。ステップS56の処理では、次に選択されるクロック信号のための初期化用回路状態の取得が行われる。クロック切替準備処理の手順の例については後述する。
ステップS55の処理後、テストパターン生成部35は、クロック切替準備処理を行う(ステップS56)。ステップS56の処理では、次に選択されるクロック信号のための初期化用回路状態の取得が行われる。クロック切替準備処理の手順の例については後述する。
ステップS56の処理後、テストパターン生成部35は、ステップS54のクロック切替処理でまだ切替が行われていないクロック信号(残クロック)があるか否かを判定する(ステップS57)。残クロックがあると判定された場合、ステップS54からの処理が繰り返され、残クロックがないと判定された場合、ステップS58の処理が行われる。
ステップS58~S60の処理は、図13に示したステップS14~S16の処理と同じである。ただし、ステップS59の処理で、残故障がありと判定された場合、ステップS53からの処理が繰り返される。
(クロック切替処理の手順)
図24は、クロック切替処理の手順の一例を示すフローチャートである。
テストパターン生成部35は、送りの時間枠と受けの時間枠の回路状態を初期化する(ステップS70)。
図24は、クロック切替処理の手順の一例を示すフローチャートである。
テストパターン生成部35は、送りの時間枠と受けの時間枠の回路状態を初期化する(ステップS70)。
テストパターン生成部35は、前述のステップS53の処理で決定された印加順序に基づいて、送りの時間枠と受けの時間枠において、何れかのクロック信号が印加されるクロック端子を選択してONする(ステップS71)。
テストパターン生成部35は、上記選択されたクロック端子に印加されるクロック信号を用いて高速試験を行うための回路状態を設定する(ステップS72)。ステップS72の処理では、テストパターン生成部35は、以前のクロック信号の印加により設定される回路状態のうち、今回のクロック信号の印加時に設定可能な回路状態を取得し、回路状態の設定を行う。回路状態は、たとえば、保持回路(前述のFF部に含まれるFF/Latchなど)の送り“s”と受け“r”の値である。
以上で、クロック切替処理が終了する。
(クロック切替準備処理の手順)
図25は、クロック切替準備処理の手順の一例を示すフローチャートである。
(クロック切替準備処理の手順)
図25は、クロック切替準備処理の手順の一例を示すフローチャートである。
テストパターン生成部35は、未使用のFF/Latchのクロック端子をOFFに設定し(ステップS80)し、次の印加順のクロック信号を印加する際に用いる回路状態の取得を行う(ステップS81)。
以上で、クロック切替準備処理が終了する。
図26は、回路状態の取得処理の手順の一例を示すフローチャートである。図26には、上記ステップS81の処理の手順の一例が示されている。
図26は、回路状態の取得処理の手順の一例を示すフローチャートである。図26には、上記ステップS81の処理の手順の一例が示されている。
テストパターン生成部35は、保持回路(FF/Latchなど)ごとに以下の処理を行う。
まず、テストパターン生成部35は、クロックドメイン情報に基づいて、保持回路に印加されるクロック信号を特定する(ステップS90)。
まず、テストパターン生成部35は、クロックドメイン情報に基づいて、保持回路に印加されるクロック信号を特定する(ステップS90)。
そして、テストパターン生成部35は、クロック信号の種別を判定する(ステップS91)。ステップS91の処理では、特定したクロック信号が、ステップS54の処理で切り替えられる前のクロック信号であるか、切り替えられた後のクロック信号であるか、今後切り替えられる予定のクロック信号であるかが判定される。以下、切り替えられる前のクロック信号を過去のクロック、切り替えられた後のクロック信号を現在のクロック、今後切り替えられる予定のクロック信号を未来のクロックという。
特定したクロック信号を過去のクロックと判定した場合、テストパターン生成部35は、ステップS92の処理を行う。ステップS92の処理では、テストパターン生成部35は、送りの時間枠における保持回路の出力値(送り.q)が決定しているとき、テストパターン生成部35は、送り.qを、次のクロック信号を印加する際に用いる回路状態(送り、送り)として取得する。送りの時間枠において保持回路の出力値であるqが決まっているならば、その保持回路の状態は更新されることはないので、このように、次のクロック信号で設定する回路状態として取得される。(送り、送り)は、送りの時間枠と受けの時間枠の両方においてその保持回路の出力値として、送り.qと同じ値が設定される回路状態を示す。
特定したクロック信号を現在のクロックと判定した場合、テストパターン生成部35は、ステップS93の処理を行う。ステップS93の処理では、テストパターン生成部35は、受けの時間枠において保持回路の出力値(受け.q)が決定しているとき、テストパターン生成部35は、受け.qを、次のクロック信号を印加する際に用いる回路状態(受け、受け)として取得する。(受け、受け)は、送りの時間枠と受けの時間枠の両方においてその保持回路の出力値として、受け.qと同じ値が設定される回路状態を示す。また、テストパターン生成部35は、受けの時間枠において保持回路の出力値(受け.q)が未定であり、かつ、クロック端子≠OFFのとき、次のクロック信号を印加する際に用いる回路状態を(U、U)として取得する。(U、U)は、送りの時間枠と受けの時間枠の両方においてその保持回路の出力値として設定される回路状態が制御不能であることを示す。
特定したクロック信号を未来のクロックと判定した場合、送りの時間枠において保持回路の出力値(送り.q)が決定しているとき、テストパターン生成部35は、送り.qを、次のクロック信号を印加する際に用いる回路状態(送り、_)として取得する(ステップS94)。(送り、_)は、送りの時間枠においてその保持回路の出力値として、送り.qと同じ値が設定される回路状態を示す。
ステップS92~S94の処理後、テストパターン生成部35は、残りの保持回路があるか否かを判定する(ステップS95)。
テストパターン生成部35は、残りの保持回路があると判定した場合、ステップS90からの処理を繰り返し、残りの保持回路がないと判定した場合、回路状態の取得処理を終える。
テストパターン生成部35は、残りの保持回路があると判定した場合、ステップS90からの処理を繰り返し、残りの保持回路がないと判定した場合、回路状態の取得処理を終える。
図27及び図28は、回路状態の取得及び設定処理の例を示す図である。なお、図27、図28では、図8に示したLSI13aとほぼ同様のLSIについての回路状態の取得及び設定処理の例が示されている。ただし、説明の便宜上、スキャンFF部14dについては、クロック信号Bではなく、クロック信号Aで動作するものとしている。
図27では、{送りの時間枠のクロック信号、受けの時間枠のクロック信号}を、{A,A}、{B,B}の印加順序としたテストパターンを生成する場合の例が示されている。図27の左側には、クロック信号Aによるテストパターン生成後の、前述の図23のステップS56のクロック切替準備処理における回路状態の取得の様子が示されている。また、図27の右側には、クロック信号Bによるテストパターン生成前の、前述の図23のステップS54のクロック切替処理における回路状態の設定の様子が示されている。
図27の左側に示されているように、受けの時間枠において、現在のクロックであるクロック信号Aによって動作するノンスキャンFF部18の回路状態が、q=1やq=0と決定されている。このような回路状態は、次のクロック信号Bの印加によっては更新されない。そのため、このような回路状態は、図27の右側に示されているように、クロック信号Bのテストパターン生成の際の送りの時間枠及び受けの時間枠における初期値として取得され、設定される。このような取得処理は、図26のステップS93の処理の受け.qが決定している場合の回路状態の取得の処理に対応する。
一方、図27の左側に示されているように、受けの時間枠において、クロック信号Aによって動作するスキャンFF部14dの回路状態が、q=x(未決定)と決定していない。このような回路状態では、次のクロック信号Bの印加によって、スキャンFF部14dの出力値であるqの値は0になるか1になるかが不明である。そのため、このような回路状態は、図27の右側に示されているように、クロック信号Bのテストパターン生成の際の送りの時間枠及び受けの時間枠において、受け.q=U(制御不能)して取得され、設定される。このような取得処理は、図26のステップS93の処理の受け.qが未定で、かつクロック端子≠OFFの場合の回路状態の取得の処理に対応する。
さらに、図27の左側に示されているように、送りの時間枠において、未来のクロックであるクロック信号Bによって動作するスキャンFF部14aの回路状態が、q=1と決定されている。このような回路状態は、次に印加されるクロック信号Bの影響を受ける前の入力値(スキャンイン値)によるものである。そのため、このような回路状態は、図27の右側に示されているように、クロック信号Bのテストパターン生成の際の送りの時間枠における初期値として取得され、設定される。このような取得処理は、図26のステップS94の処理に対応する。
図28では、{A,A}、{B,B}の後に、クロック信号Xが送りの時間枠と受けの時間枠において印加されるテストパターンを生成する場合の例が示されている。なお、図28の例ではクロック信号A,Bしか印加されないため、実際にはクロック信号Xは印加されないが、説明の都合上、このようなクロック信号Xが仮定されている。
図28の左側には、クロック信号Bによるテストパターン生成後の、前述の図23のステップS56のクロック切替準備処理における回路状態の取得の様子が示されている。また、図28の右側には、クロック信号Xによるテストパターン生成前の、前述の図23のステップS54のクロック切替処理における回路状態の設定の様子が示されている。
図28の左側に示されているように、送りの時間枠において、過去のクロックであるクロック信号Aによって動作するノンスキャンFF部18とスキャンFF部14dの回路状態が、q=1、q=0、q=Uと決定されている。このような回路状態は、以降のクロック信号Xの印加では更新されない。そのため、このような回路状態は、図28の右側に示されているように、クロック信号Xのテストパターン生成の際の送りの時間枠及び受けの時間枠における初期値として取得され、設定される。このような取得処理は、図26のステップS92の処理に対応する。
以上のように、第2の実施の形態のテストパターン生成装置20によれば、第1の実施の形態のテストパターン生成装置10と同様に、より一層の多機能化によりクロック信号数が増えてもスタティック試験における試験コストを低減できる。また、(b)の方式に見られるようなテスト品質の低下を低減できる。
さらに、第2の実施の形態のテストパターン生成装置20によれば、試験対象の回路領域に対してデータを送る時間のLSIの回路状態を表す送りの時間枠と、回路領域からデータを受ける時間のLSIの回路状態を表す受けの時間枠を用いて、テストパターンが生成される。この際に、所定の順序で使用するクロック信号が切り替えられるとともに、切替前のクロック信号による動作の結果に基づいて、切替後のクロック信号を印加する際の、送りの時間枠または受けの時間枠の回路状態が設定される(図27、図28参照)。つまり、クロック信号が変わっても時間枠のペアが再利用される。このような時間枠再利用方式を用いることで、高速試験における試験コストの低減効果や、テスト品質の低減効果が得られる。
なお、上記の各フローチャートで示した処理の順序は一例であり、適宜処理の順序を入れ替えてもよい。
なお、前述のように、上記の処理内容は、テストパターン生成装置10,20にプログラム(テストパターン生成プログラム)を実行させることで実現できる。
なお、前述のように、上記の処理内容は、テストパターン生成装置10,20にプログラム(テストパターン生成プログラム)を実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体(たとえば、記録媒体26a)に記録しておくことができる。記録媒体として、たとえば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FD及びHDDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(Rewritable)、DVD及びDVD-R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体から他の記録媒体(たとえば、HDD23)にプログラムをコピーして実行してもよい。
以上、実施の形態に基づき、本発明のテストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 テストパターン生成装置
11 記憶部
11a 設計情報(回路モデル)
11b テストパターン情報
12 処理部
11 記憶部
11a 設計情報(回路モデル)
11b テストパターン情報
12 処理部
Claims (8)
- コンピュータに、
半導体集積回路の設計情報に基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出し、
前記複数のクロック信号の印加順序と第1の対象回路への第1の入力値とを含むテストパターンを生成する際に、第1の回路領域に対して前記第1の入力値または前記第1の対象回路からの第1の応答値を送る第1の保持回路と、前記第1の応答値を受ける第2の保持回路とが、前記複数のクロックドメインのうちの何れに属するかに基づいて、前記印加順序を変更し、
前記テストパターンの情報を出力する、
処理を実行させるテストパターン生成プログラム。 - 前記第1の保持回路に印加される第1のクロック信号の次に、前記第2の保持回路に印加される第2のクロック信号が印加されるように前記印加順序が設定された場合、前記テストパターンにおいて、前記第2のクロック信号を印加する設定を削除することで、前記印加順序を変更する、
処理を前記コンピュータに実行させる請求項1に記載のテストパターン生成プログラム。 - 前記第2のクロック信号を印加する前記設定を削除する場合、前記第2の保持回路による前記第1の応答値の取り込みを無効にし、
前記第1の回路領域とは異なる第2の回路領域に対して前記テストパターンに含まれる第2の対象回路への第2の入力値を送る第3の保持回路と、前記第2の回路領域の前記第2の対象回路からの第2の応答値を受ける第4の保持回路とが、同じクロックドメインに属する場合、前記第3の保持回路及び前記第4の保持回路に印加される第3のクロック信号を、前記第1のクロック信号の次に印加するように前記印加順序を変更する、
処理を前記コンピュータに実行させる請求項2に記載のテストパターン生成プログラム。 - 前記第1の保持回路または前記第2の保持回路の一方は、シリアルに接続された複数のスキャンフリップフロップのうちの1つであり、前記第1の保持回路または前記第2の保持回路の他方は、前記複数のスキャンフリップフロップに含まれない保持回路である、請求項1に記載のテストパターン生成プログラム。
- 試験対象の回路領域に対してデータを送る時間の前記半導体集積回路の第1の回路状態を表す第1の時間枠と、前記回路領域からデータを受ける時間の前記半導体集積回路の第2の回路状態を表す第2の時間枠を用いて、前記半導体集積回路の高速試験の前記テストパターンを生成する際に、
所定の順序で前記複数のクロック信号のうち使用するクロック信号を切り替えるとともに、切替前のクロック信号による前記半導体集積回路の動作の結果に基づいて、切替後のクロック信号を印加する際の、前記第1の回路状態または前記第2の回路状態を設定する、
処理を前記コンピュータに実行させる請求項1に記載のテストパターン生成プログラム。 - 前記第1の回路状態と前記第2の回路状態は、前記第1の保持回路または前記第2の保持回路の出力値である、請求項5に記載のテストパターン生成プログラム。
- 半導体集積回路の設計情報を記憶する記憶部と、
前記設計情報に基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出し、前記複数のクロック信号の印加順序と第1の対象回路への第1の入力値とを含むテストパターンを生成する際に、第1の回路領域に対して前記第1の入力値または前記第1の対象回路からの第1の応答値を送る第1の保持回路と、前記第1の応答値を受ける第2の保持回路とが、前記複数のクロックドメインのうちの何れに属するかに基づいて、前記印加順序を変更し、前記テストパターンの情報を出力する処理部と、
を有するテストパターン生成装置。 - コンピュータが、
半導体集積回路の設計情報に基づいて、複数のクロック信号の何れかにしたがってそれぞれ動作する複数のクロックドメインを検出し、
前記複数のクロック信号の印加順序と第1の対象回路への第1の入力値とを含むテストパターンを生成する際に、第1の回路領域に対して前記第1の入力値または前記第1の対象回路からの第1の応答値を送る第1の保持回路と、前記第1の応答値を受ける第2の保持回路とが、前記複数のクロックドメインのうちの何れに属するかに基づいて、前記印加順序を変更し、
前記テストパターンの情報を出力する、
テストパターン生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022112415A JP2024010862A (ja) | 2022-07-13 | 2022-07-13 | テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法 |
US18/191,094 US20240019492A1 (en) | 2022-07-13 | 2023-03-28 | Computer-readable recording medium storing test pattern generation program, test pattern generation apparatus, and test pattern generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022112415A JP2024010862A (ja) | 2022-07-13 | 2022-07-13 | テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024010862A true JP2024010862A (ja) | 2024-01-25 |
Family
ID=89509646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022112415A Pending JP2024010862A (ja) | 2022-07-13 | 2022-07-13 | テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240019492A1 (ja) |
JP (1) | JP2024010862A (ja) |
-
2022
- 2022-07-13 JP JP2022112415A patent/JP2024010862A/ja active Pending
-
2023
- 2023-03-28 US US18/191,094 patent/US20240019492A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240019492A1 (en) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3851782B2 (ja) | 半導体集積回路及びそのテスト方法 | |
JP3893238B2 (ja) | 半導体記憶装置の不良解析装置 | |
US5583787A (en) | Method and data processing system for determining electrical circuit path delays | |
JP4482622B2 (ja) | 変換装置、変換方法、変換方法をコンピュータに実行させることが可能なプログラム、及び、このプログラムを記録した記録媒体 | |
US7139948B2 (en) | Method for determining the impact on test coverage of scan chain parallelization by analysis of a test set for independently accessible flip-flops | |
JP4636989B2 (ja) | 遅延解析装置、遅延解析方法、遅延解析プログラム、および記録媒体 | |
US20050172188A1 (en) | Diagnostic method for detection of multiple defects in a Level Sensitive Scan Design (LSSD) | |
US10482207B2 (en) | Verification support apparatus and design verification support method | |
JP3243207B2 (ja) | テスト容易な集積回路、集積回路のテスト容易化設計方法、および集積回路のテスト容易化設計のためのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Auvray et al. | Effective scan chain failure analysis method | |
JP2004110265A (ja) | 半導体集積回路のテスト容易化方法 | |
US7039843B2 (en) | Modeling custom scan flops in level sensitive scan design | |
US11693054B2 (en) | Computer-readable recording medium storing analysis program, analysis method, and analysis device | |
JP2024010862A (ja) | テストパターン生成プログラム、テストパターン生成装置及びテストパターン生成方法 | |
US9239897B2 (en) | Hierarchical testing architecture using core circuit with pseudo-interfaces | |
US7555687B2 (en) | Sequential scan technique for testing integrated circuits with reduced power, time and/or cost | |
US20100131910A1 (en) | Simulating Scan Tests with Reduced Resources | |
US8468409B2 (en) | Speed-path debug using at-speed scan test patterns | |
US6876934B2 (en) | Method for determining fault coverage from RTL description | |
US7500165B2 (en) | Systems and methods for controlling clock signals during scan testing integrated circuits | |
JP2005308471A (ja) | パスディレイテスト方法 | |
JP5625241B2 (ja) | 半導体装置及びその試験方法 | |
JPH05119122A (ja) | スキヤン回路のテストパターン生成方法 | |
JPH11174126A (ja) | 論理回路の組込み自己検査パターン発生装置およびパタ ーン選定方法 | |
JP4526985B2 (ja) | テストシステム |