JP4028574B2 - LSI testability design method - Google Patents
LSI testability design method Download PDFInfo
- Publication number
- JP4028574B2 JP4028574B2 JP2006035244A JP2006035244A JP4028574B2 JP 4028574 B2 JP4028574 B2 JP 4028574B2 JP 2006035244 A JP2006035244 A JP 2006035244A JP 2006035244 A JP2006035244 A JP 2006035244A JP 4028574 B2 JP4028574 B2 JP 4028574B2
- Authority
- JP
- Japan
- Prior art keywords
- logic gate
- detection rate
- pointer
- failure detection
- logic
- 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
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Description
本発明は論理ゲートを含む集積回路に対するテスト容易化設計に関する。 The present invention relates to testability design for integrated circuits including logic gates.
近年の半導体集積回路技術の進歩に伴い、LSI(大規模集積回路)中に含まれる素子(論理ゲート)数も増大し、それに伴い、LSIのテストをいかに効率よく行うかが問題となってきた。この問題を解決する方法としてテスト容易化設計がある。代表的なものにスキャンパス法を用いたスキャンパス設計がある(例えば特許文献1参照)。 With recent advances in semiconductor integrated circuit technology, the number of elements (logic gates) included in LSIs (Large Scale Integrated Circuits) has increased, and along with this, how efficiently LSI testing has become a problem. . There is a testability design as a method for solving this problem. A typical one is a scan path design using a scan path method (see, for example, Patent Document 1).
スキャンパス法では、LSI中に含まれるフリップフロップの全部または一部をテスト用のフリップフロップ(以下、「スキャンフリップフロップ」という。)に置き換え、これらをシリアルに接続してスキャンパスを形成する(これを「スキャンパス挿入」という。)。ここで、スキャンフリップフロップは、一般に、テストモードに設定するためのテストイネーブル端子、スキャンデータを入力するためのスキャンイン端子、スキャンデータを出力するためのスキャンアウト端子等を有する。最初のスキャンフリップフロップのスキャンイン端子はLSIの外部入力端子に接続され、最後のスキャンフリップフロップのスキャンアウト端子はLSIの外部出力端子に接続される。そして、各スキャンフリップフロップのクロックを外部より制御し、シフトレジスタとして動作させる。このとき、外部入力端子を介してテストデータを与え、各スキャンフリップフロップに記憶された値を外部出力端子を介して順次取り出すことにより、各スキャンフリップフロップに接続された組み合わせ回路のテストを行う。 In the scan path method, all or a part of flip-flops included in an LSI are replaced with test flip-flops (hereinafter referred to as “scan flip-flops”), and these are connected serially to form a scan path ( This is called “insert scan path”). Here, the scan flip-flop generally has a test enable terminal for setting a test mode, a scan-in terminal for inputting scan data, a scan-out terminal for outputting scan data, and the like. The scan-in terminal of the first scan flip-flop is connected to the external input terminal of the LSI, and the scan-out terminal of the last scan flip-flop is connected to the external output terminal of the LSI. Then, the clock of each scan flip-flop is controlled from the outside to operate as a shift register. At this time, test data is given through the external input terminal, and the values stored in each scan flip-flop are sequentially taken out through the external output terminal, thereby testing the combinational circuit connected to each scan flip-flop.
このようなスキャンパス法を用いたテスト容易化設計(スキャンパス設計)に対しては、いくつかの基本的な設計ルールがある。例えば、1)フリップフロップのクロックは全て外部ポートから制御可能であること、2)非同期リセット/セットが外部ポートから制御可能であること、3)組み合わせ回路のフィードバックを含まないこと等の設計ルールがある。 There are some basic design rules for design for testability (scan path design) using such a scan path method. For example, design rules such as 1) all flip-flop clocks can be controlled from an external port, 2) asynchronous reset / set can be controlled from an external port, and 3) no combinational circuit feedback is included. is there.
そこで、スキャンパス設計を行う前に、対象回路に対して設計ルールの検査を行った後、スキャンパス設計が可能であれば、スキャンパス挿入を行い、テストパターン自動生成(ATPG: Automatic Test Pattern Generator)を行う。テストパターン自動生成では、テストパターンと、そのテストパターンによる縮退故障の検出度合いを示す故障検出率とが出力される。その後、故障検出率を確認して、故障検出率が不十分であれば回路修正やスキャン化率の増減を行った後、再度、テスト容易化設計ルールの検査を行い、スキャンパス挿入、テストパターン自動生成を行う。テストパターン自動生成により十分な故障検出率が得られるまで、上記処理を繰り返す。
このように、従来では、故障検出率を求めるために、テスト容易化設計のルール検査、スキャンパス挿入、テストパターン自動生成(ATPG)による故障検出率の算出、スキャン化率の増減や回路修正の各処理を繰り返して行う必要があった。 As described above, conventionally, in order to obtain the failure detection rate, rule inspection for easy test design, scan path insertion, calculation of failure detection rate by automatic test pattern generation (ATPG), increase / decrease of scan rate and circuit correction Each treatment had to be repeated.
この場合、スキャンパス法、特に、回路中の一部のフリップフロップをスキャンフリップに置換するパーシャルスキャンにおいては、スキャンパス挿入、ATPGによる故障検出率の算出を繰り返すため、設計時間が長くなるという問題がある。 In this case, in the scan path method, particularly in the partial scan in which a part of the flip-flops in the circuit is replaced with the scan flip, the scan time insertion and calculation of the failure detection rate by ATPG are repeated, so that the design time becomes long. There is.
本発明は上記課題を解決すべくなされたものであり、その目的とするところは、LSIの設計期間を短縮するテスト容易化設計方法を提供することにある。 The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a testability design method that shortens the design period of an LSI.
本発明に係るテスト容易化設計方法は、論理ゲートを含む回路に対してスキャンパスを設計するステップと、前記スキャンパスを挿入することでテストパターンを生成するステップとを有するLSIのテスト容易化設計方法であってコンピュータによって実行される。コンピュータは、後入れ先出し機能を有するスタック構造メモリと演算手段とを備える。LSIのテスト容易化設計方法は、スキャンパスを挿入する前に、テストパターンによる故障検出率を概算するステップを含む。その故障検出率を概算するステップは、演算手段により、訪問する論理ゲートを示すポインタを、最初に設定された入力端子を持つ論理ゲートの出力が接続された論理ゲートの入力端子のポインタのみが格納されたスタック構造メモリに格納するステップと、演算手段により、スタック構造メモリに格納されたポインタにしたがって論理ゲートを順次訪問し、各論理ゲートに対して論理演算を行い論理演算結果を順次求めることでテストパターンによる故障検出率を概算するステップとを含む。 A testability design method according to the present invention includes a step of designing a scan path for a circuit including a logic gate, and a step of generating a test pattern by inserting the scan path. A method executed by a computer. The computer includes a stack structure memory having a last-in first-out function and an arithmetic means. The LSI testability design method includes a step of estimating a failure detection rate based on a test pattern before inserting a scan path. In the step of estimating the failure detection rate, the calculation means stores a pointer indicating the logic gate to be visited , and stores only the pointer of the input terminal of the logic gate to which the output of the logic gate having the input terminal set first is connected. The logic gate sequentially visits the logic gate according to the pointer stored in the stack structure memory by the step of storing in the stack structure memory and the pointer stored in the stack structure memory, and performs the logic operation on each logic gate and sequentially obtains the logic operation result. Estimating a failure detection rate according to the test pattern.
本発明によれば、LSIの設計期間を短縮できる。 According to the present invention, the LSI design period can be shortened.
以下、添付の図面を参照して本発明に係るテスト容易化設計ルール検査装置の実施の形態を説明する。本実施形態のテスト容易化設計ルール検査装置は、半導体集積回路に対してスキャンパス設計を行う際の設計ルールを検査する装置であり、テストパターン自動生成(ATPG)により生成されるテストパターンの故障検出率を概算する。 Embodiments of a testability design rule inspection apparatus according to the present invention will be described below with reference to the accompanying drawings. The testability design rule inspection apparatus according to the present embodiment is an apparatus for inspecting a design rule when performing a scan path design for a semiconductor integrated circuit, and a test pattern failure generated by automatic test pattern generation (ATPG). Estimate the detection rate.
<テスト容易化設計ルール検査装置の構成>
図1はテスト容易化設計ルール検査装置の構成を示すブロック図である。テスト容易化設計ルール検査装置は、外部よりデータや設定値、ユーザの操作情報等を入力するデータ入力部3と、スキャンパス設計を行うときの一般的な設計ルール(設計制約)を検査するDFTルール検査部5と、回路に対する故障検出率を算出する故障検出率算出部10と、故障検出率の算出結果等の種々の表示を行う表示制御部20とを備える。故障検出率算出部10は、論理値を伝播させてネット探索を行うネット探索部13と、故障検出率を算出するために、特定の条件を満たす論理ゲートの入出力端子を元とする集合を求める集合生成部15と、故障検出率を計算する故障検出率計算部17とからなる。さらに、テスト容易化設計ルール検査装置は、ネットワーク構造データベース50と、集合データベース60とを備える。なお、本実施形態のテスト容易化設計ルール検査装置は、図示してないが、Verilog-HDL等で記述されるテスト対象回路の回路情報である論理回路情報も有する。
<Configuration of testability design rule inspection device>
FIG. 1 is a block diagram showing the configuration of the testability design rule inspection apparatus. The testability design rule inspection apparatus includes a
上記のような構成のテスト容易化設計ルール検査装置は、所定のプログラムを実行し所定の機能を実現するCPU、プログラムやデータ等を格納するハードディスクやROM等の記憶装置、CPUが実行するプログラムがロードされるRAM、表示装置およびキーボードやマウス等の入力装置等のハードウェアから構成されてもよい。この場合、図1に示す各ブロックの機能は、ハードディスクやROM等の情報記録媒体に格納された所定のプログラムがRAMにロードされ、CPUにより実行されることにより実現される。 The testability design rule inspection device configured as described above includes a CPU that executes a predetermined program and realizes a predetermined function, a storage device such as a hard disk or ROM that stores programs and data, and a program executed by the CPU. It may be configured by hardware such as a loaded RAM, a display device, and an input device such as a keyboard and a mouse. In this case, the function of each block shown in FIG. 1 is realized by loading a predetermined program stored in an information recording medium such as a hard disk or ROM into the RAM and executing it by the CPU.
<種々のデータベース>
ネットワーク構造データベース50は、回路を構成する論理ゲートを定義する情報である論理ゲート情報51と、論理ゲート間の接続関係を定義する情報である信号接続情報53とを有する。論理ゲート情報51には、論理ゲートの名前と、論理ゲートの入力端子群、論理ゲートの出力端子群の情報と、論理ゲートの演算子を示す情報(演算オペコード)とが含まれる。信号接続情報53には、論理ゲート間を接続する信号線の名前と、信号線に接続される論理ゲート端子の情報とが含まれる。
<Various databases>
The
図2に、論理ゲート情報51をC言語の構造体を用いて構成した例を示す。図に示すように論理ゲート情報構造体100は、論理ゲート名101と、出力端子リストへのポインタ103と、入力端子リストへのポインタ105とからなる。出力端子リストへのポインタ103は、出力端子リストの先頭アドレスを格納する。すなわち、出力端子リストへのポインタ103は、最初の出力端子名103aの記憶場所(アドレス)を格納する。この出力端子リストへのポインタ103が示すアドレスを基準として出力端子リストに含まれる出力端子名を順次読み出すことができる。同様に、入力端子リストへのポインタ105は、入力端子リストの先頭アドレスを格納する。
FIG. 2 shows an example in which the
さらに、論理ゲート情報51は、出力端子名103a…と関連付けられた演算子構造体110を有する。演算子構造体110は、演算を示す演算子オペコードを格納する演算オペコード111と、演算に対する第1の引数のアドレスを格納する第1引数ポインタ113と、第2の引数のアドレスを格納する第2引数ポインタ115とからなる。演算オペコード111は、場合によっては入力端子名を格納する。
Further, the
図3に、上記構造体を用いた論理ゲート情報51におけるデータの具体例を示す。図3の(b)は、図3の(a)に示すANDゲートに対して、論理ゲート情報51に格納されるデータ例を示している。図3の(a)に示すANDゲートの論理ゲート名は「AND03」であり、端子名が「I1」、「I2」、「I3」となる3つの入力端子を有し、端子名が「O1」となる1つの出力端子を有する。すなわち、図3の(b)に示すように、論理ゲート構造体100において、論理ゲート名101には「AND03」が格納され、出力端子リストへのポインタ103が示す出力端子名103aには「O1」が格納される。また、演算子構造体110において、演算オペコード111にはAND演算を示すオペコードである「&」が格納され、第1引数ポインタ113には演算子構造体110bの先頭アドレスが、第2引数ポインタ115には演算子構造体110cの先頭アドレスが格納される。演算子構造体110bの演算オペコード111bには入力端子名「I1」が格納される。演算子構造体110cにおいて、演算オペコード111cにはAND演算を示すオペコードである「&」が格納され、第1引数ポインタ113cには演算子構造体110dの先頭アドレスが、第2引数ポインタ115cには演算子構造体110eの先頭アドレスが格納される。演算子構造体110dの演算オペコード111dには入力端子名「I2」が格納される。演算子構造体110eの演算オペコード111eには入力端子名「I3」が格納される。入力端子リストへのポインタ105が示すアドレス領域105aには入力端子名「I1」が記憶される。その後、順次、入力端子リストの所定領域に入力端子名「I2」、「I3」が記憶される。なお、図中、「null」はデータが格納されていないことを示し、出力端子リスト及び入力端子リストにおいては、データの終了を示す。
FIG. 3 shows a specific example of data in the
図4に、信号接続情報53をC言語の構造体を用いて構成した例を示す。図に示すように信号接続情報構造体200は、信号線名201と、ファンインへのポインタ203と、ファンアウトリストへのポインタ205とからなる。ファンインへのポインタ203は、この信号線の入力側に接続される論理ゲートの出力端子名が格納される記憶域のアドレスを格納する。ファンアウトリストへのポインタ205は、ファンアウトリストの先頭アドレスを格納する。ファンアウトリストは、ポインタ205a、205b…からなる。ポインタ205a、205b…は、信号線に対して出力側に接続される論理ゲートの入力端子名の記憶域のアドレスを格納する。
FIG. 4 shows an example in which the
図5は、上記構造体を用いた信号接続情報53におけるデータの具体例を示した図である。図5の(b)は、図5の(a)に示す回路に対して、信号接続情報53に格納されるデータ例を示している。図5の(a)では、ANDゲート(AND03)の出力が、信号線(NET01)を介して、インバータ(INV01)及びANDゲート(AND04)に接続された例を示す。この例では、信号接続情報構造体200において、信号線名201には、「NET01」が、ファンインへのポインタ203には、出力端子「O1」のアドレスが格納される。ファンアウトリストへのポインタ205には、ファンアウトリストの先頭アドレス、すなわち、ポインタ205aのアドレスが格納される。ポインタ205aには入力端子「I4」のアドレスが格納され、ポインタ205bには入力端子「I5」のアドレスが格納される。ポインタ205cにはファンアウトリストの終了を示す「null」が格納される。
FIG. 5 is a diagram showing a specific example of data in the
集合データベース60は、論理ゲート端子のうちテスト不可能な端子を元とする集合UTと、論理ゲート端子のうちテスト時に外部から制御不可能な端子を元とする集合UCと、論理ゲート端子のうちテスト時に外部から観測不可能な端子を元とする集合UOとからなる。集合データベース60をC言語構造体を用いて構成した例を図6の(a)に示す。集合構造体300は、集合名301と、端子リストへのポインタ303とからなる。端子リストへのポインタ303には、端子リストの先頭アドレス、すなわち、ポインタ303aのアドレスが格納される。端子リストは、集合に含まれる端子の端子名が格納された記憶域を示すポインタ303a…からなる。図6の(b)にデータ格納例を示す。
The set database 60 includes a set UT based on untestable terminals among logic gate terminals, a set UC based on terminals that cannot be controlled from the outside during testing, and logic gate terminals. It consists of a set UO based on terminals that cannot be observed from the outside during testing. FIG. 6A shows an example in which the collective database 60 is configured using a C language structure. The
<テスト容易化設計ルール検査装置の動作>
以上のように構成されるテスト容易化設計ルール検査装置の動作について説明する。
<Operation of the testability test rule inspection device>
The operation of the testability design rule inspection apparatus configured as described above will be described.
本実施形態のテスト容易化設計ルール検査装置は、テスト容易化設計ルールを検査する際に、所定の論理値を伝播させてネット検査を行うことにより、ATPGにより生成されるテストパターンの故障検出率を概算する。テスト容易化設計ルール検査装置の全体動作を説明する前に、まず、ネット探索処理について説明する。 The testability design rule inspection device of this embodiment performs a net inspection by propagating a predetermined logical value when inspecting a testability design rule, thereby detecting a failure detection rate of a test pattern generated by ATPG. Estimate. Before describing the overall operation of the testability design rule inspection apparatus, the net search process will be described first.
<ネット探索処理>
図7に、テスト容易化設計ルール検査装置のネット探索処理を示すフローチャートを示す。ネット探索処理では、深さ方向に論理ゲートを順次訪問し、訪問した論理ゲートにおいてその演算オペコードに応じた論理演算を行う。本処理はネット探索部13により制御される。
<Net search processing>
FIG. 7 is a flowchart showing the net search process of the testability design rule inspection device. In the net search process, logic gates are sequentially visited in the depth direction, and logic operations corresponding to the operation opcodes are performed at the visited logic gates. This process is controlled by the
図に示すように、まず、ネット探索を開始するため初期条件を設定する。すなわち、ネット探索を開始する入力端子と、伝播させる論理値とをデータ入力部3を介して入力する(S101)。次に、入力した入力端子の格納場所を示すポインタをスタック構造メモリにプッシュする(S102)。ここで、スタック構造メモリとは一般的に後入れ先出し機能(LIFO)を実現するメモリであり、スタック構造メモリにデータを格納する操作をプッシュといい、スタック構造メモリからデータを取り出す操作をポップという。スタック構造メモリは、訪問すべき論理ゲートの入力端子のポインタを格納する。 As shown in the figure, first, initial conditions are set to start a net search. That is, an input terminal for starting a net search and a logical value to be propagated are input via the data input unit 3 (S101). Next, a pointer indicating the storage location of the input terminal that has been input is pushed to the stack structure memory (S102). Here, the stack structure memory is generally a memory that realizes a last-in first-out function (LIFO). An operation for storing data in the stack structure memory is called a push, and an operation for taking out data from the stack structure memory is called a pop. . The stack structure memory stores a pointer to the input terminal of the logic gate to be visited.
その後、スタック構造メモリに格納されたポインタに従って、論理ゲートを訪問し、その論理ゲートに応じて論理演算を行う。 Thereafter, the logic gate is visited according to the pointer stored in the stack structure memory, and the logic operation is performed according to the logic gate.
すなわち、スタック構造メモリから論理ゲートの入力端子のアドレスをポップする(S103)。スタック構造メモリからのアドレスのポップの可否を判断し(S104)、スタック構造メモリからアドレスをポップできないとき、すなわち、スタック構造メモリが空のときは、ネット探索処理を終了する。アドレスがポップできたときは、論理ゲート情報を参照し、その入力端子のアドレスから論理ゲートのアドレスを取得し(S105)、さらに、その論理ゲートの出力端子のアドレスを取得する(S106)。出力端子のアドレス取得の可否を判断し(S107)、取得できなかったときはステップS103に戻る。出力端子のアドレスが取得できたときは、その論理ゲートに対して演算オペコードと論理値とに基づき論理演算を行う(S108)。なお、論理演算の結果は、その論理ゲートでの伝播結果として所定の記憶域に保持される。 That is, the address of the input terminal of the logic gate is popped from the stack structure memory (S103). It is determined whether or not an address can be popped from the stack structure memory (S104). When the address cannot be popped from the stack structure memory, that is, when the stack structure memory is empty, the net search process is terminated. When the address can be popped, the logic gate information is referred to, the address of the logic gate is obtained from the address of the input terminal (S105), and the address of the output terminal of the logic gate is obtained (S106). It is determined whether or not the output terminal address can be acquired (S107). When the address of the output terminal can be acquired, a logical operation is performed on the logical gate based on the operation opcode and the logical value (S108). The result of the logical operation is held in a predetermined storage area as a propagation result at the logical gate.
その後、現時点で訪問している論理ゲートの次に訪問すべき全ての論理ゲートを探し、それらに対して、それらの入力端子のアドレスおよび伝播させる論理値を設定する(S109)。本処理の詳細は後述する。 Thereafter, all logic gates to be visited next to the currently visited logic gates are searched, and the addresses of the input terminals and the logic values to be propagated are set for them (S109). Details of this processing will be described later.
訪問すべき論理ゲートの入力端子のアドレスおよび伝播させる論理値の設定(S109)が終了すると、ステップS106に戻る。1つの論理ゲートに対する全ての出力端子に対して上記処理(S106〜S109)が繰り返され、その後、ステップS103に戻り、スタック構造メモリから次に探索する入力端子のアドレスをポップする。このとき、スタック構造メモリには、最初に設定された入力端子を持つ論理ゲートの出力が接続された次の論理ゲートの入力端子が格納されており、深さ方向に1つ進んだことになる。以後、上記処理を繰り返すことにより、深さ方向に順次探索が行われる。 When setting of the address of the input terminal of the logic gate to be visited and the logic value to be propagated (S109) is completed, the process returns to step S106. The above processing (S106 to S109) is repeated for all the output terminals for one logic gate, and then the process returns to step S103 to pop the address of the input terminal to be searched next from the stack structure memory. At this time, the stack structure memory stores the input terminal of the next logic gate to which the output of the logic gate having the input terminal set first is connected, and is advanced by one in the depth direction. . Thereafter, the above process is repeated to sequentially search in the depth direction.
なお、上記フローチャートにおいて、ネットの終端に達したときは、次の訪問先の設定処理(ステップS109)に入っても、スタック構造メモリに新たに入力端子のアドレスがプッシュされることはない。これによって、次にスタック構造メモリをポップすることにより、別の枝に接続する論理ゲートに対して連続してネット探索を行うことができる。 In the flowchart, when the end of the net is reached, the address of the input terminal is not newly pushed to the stack structure memory even if the next visited destination setting process (step S109) is entered. Thus, by popping the stack structure memory next time, it is possible to continuously perform a net search for a logic gate connected to another branch.
上記ステップS109における次の訪問先の設定処理を図8に示すフローチャートを用いて説明する。 The next visit destination setting process in step S109 will be described with reference to the flowchart shown in FIG.
まず、信号線接続情報を参照して、今訪問中の出力端子のアドレスに基づき、その出力端子が接続される次の論理ゲートの入力端子のアドレスを順次取得する(S111)。入力端子のアドレスは、信号線接続情報のファンアウトリストへのアドレスによって順次指定されることにより取得される。その後、アドレス取得の可否を判断する(S112)。アドレスが取得されたときは、その入力端子に入力する論理値として、前段の論理ゲートでの論理演算結果(ステップS108で計算されたもの)を設定する(S113)。その後、スタック構造メモリに次の入力端子のアドレスをプッシュし(S114)、ステップS111に戻る。今訪問中の論理ゲートの出力端子に対する全ての入力端子のアドレスおよび論理値の設定が終了するまで上記処理を繰り返す。 First, with reference to the signal line connection information, the address of the input terminal of the next logic gate to which the output terminal is connected is sequentially obtained based on the address of the currently visited output terminal (S111). The address of the input terminal is acquired by being sequentially designated by the address to the fan-out list of the signal line connection information. Thereafter, it is determined whether or not an address can be acquired (S112). When the address is acquired, the logical operation result (calculated in step S108) at the preceding logic gate is set as the logical value input to the input terminal (S113). Thereafter, the address of the next input terminal is pushed to the stack structure memory (S114), and the process returns to step S111. The above processing is repeated until the setting of the addresses and logic values of all input terminals for the output terminal of the currently visited logic gate is completed.
<ネット探索処理のプログラム例>
図9に、図7及び図8のフローチャートで示されるネット探索処理を実現するプログラムの一例を示す。なお、本プログラムはC言語の文法に基づいて記載されている。
<Example of program for net search processing>
FIG. 9 shows an example of a program for realizing the net search process shown in the flowcharts of FIGS. This program is written based on C language grammar.
図9において、(a)で示す関数depth_search()はネット探索を行う関数である。関数depth_search()はスタック構造メモリを用い、訪問する論理ゲートのアドレスをスタック構造メモリに格納しながらネット探索を行う。関数depth_search()において、変数v、o_pin、instanceはそれぞれ入力端子、出力端子、論理ゲートのアドレスの値を格納するポインタである。(b)で示す関数culc_opr(a,b)は、引数aにより指定される論理ゲートの演算オペコードを参照し、引数bの値を用いて論理演算を実行し、その論理演算結果を返す。(c)で示す関数stuck_push(x)は、スタック構造メモリに引数xで指定されるポインタをプッシュする。(d)で示す関数stuck_pop()は、スタック構造メモリからポインタをポップして返す。(e)で示す関数get_funout(x)は、引数xで指定される論理ゲート(または出力端子)に接続される論理ゲートの入力端子のアドレスを返す。この場合、引数xで指定される論理ゲート(または出力端子)に接続される論理ゲートの入力端子が複数あるときは、関数が呼び出される度にそれらの入力端子のアドレスを順次返す。depth_search()に対しては、ネット探索を開始する論理ゲートの入力端子のポインタi_pinと、論理値の初期値valとが引数として渡される。 In FIG. 9, a function depth_search () indicated by (a) is a function for performing a net search. The function depth_search () uses the stack structure memory, and searches the net while storing the address of the logic gate to be visited in the stack structure memory. In the function depth_search (), variables v, o_pin, and instance are pointers that store the values of the input terminal, output terminal, and logic gate addresses, respectively. The function culc_opr (a, b) shown in (b) refers to the operation opcode of the logic gate specified by the argument a, executes the logical operation using the value of the argument b, and returns the logical operation result. The function stuck_push (x) shown in (c) pushes the pointer specified by the argument x to the stack structure memory. The function stuck_pop () shown in (d) pops and returns a pointer from the stack structure memory. The function get_funout (x) shown in (e) returns the address of the input terminal of the logic gate connected to the logic gate (or output terminal) specified by the argument x. In this case, when there are a plurality of input terminals of the logic gate connected to the logic gate (or output terminal) specified by the argument x, the addresses of these input terminals are returned sequentially each time the function is called. For depth_search (), the pointer i_pin of the input terminal of the logic gate for starting the net search and the initial value val of the logic value are passed as arguments.
図9に示すプログラムにおいて、ステ−トメント(1)、(2)は、ステップS101、S102に対応する。ステ−トメント(3)は、ステップS103、S104に対応する。ステ−トメント(4)は、ステップS105に対応する。ステ−トメント(5)は、ステップS106、S107に対応する。ステ−トメント(6)は、ステップS108に対応する。ステ−トメント(7)は、ステップS111、S112に対応する。ステ−トメント(8)は、ステップS113に対応する。ステ−トメント(9)は、ステップS114に対応する。プログラムループで見ると、ステートメント(3)〜(12)のループは、ステップS103〜S109のループに対応する。ステートメント(5)〜(11)のループは、ステップS106〜S109のループに対応する。ステートメント(7)〜(10)のループは、ステップS109すなわちステップS111〜S114のループに対応する。 In the program shown in FIG. 9, statements (1) and (2) correspond to steps S101 and S102. Statement (3) corresponds to steps S103 and S104. Statement (4) corresponds to step S105. Statement (5) corresponds to steps S106 and S107. Statement (6) corresponds to step S108. Statement (7) corresponds to steps S111 and S112. Statement (8) corresponds to step S113. Statement (9) corresponds to step S114. In terms of the program loop, the loops of statements (3) to (12) correspond to the loops of steps S103 to S109. The loop of statements (5) to (11) corresponds to the loop of steps S106 to S109. The loop of statements (7) to (10) corresponds to the loop of step S109, that is, steps S111 to S114.
<メインフロ−>
以下に、テスト容易化設計ルール検査装置の全体動作を図10のフローチャートを用いて説明する。
<Main flow>
The overall operation of the testability design rule inspection apparatus will be described below with reference to the flowchart of FIG.
テスト容易化設計ルール検査装置において、データ入力部3において動作の開始操作が入力されると、DFTルール検査部5は、Verilog-HDL等で記述されたテスト対象回路の論理回路情報を参照し、スキャンパス設計における一般的な設計ルールの検査を行う(S1)。一般的なスキャンパス設計における設計ルールとしては、例えば、以下の項目が検査される。すなわち、a)スキャン対象のフリップフロップのクロック、セット/リセット端子が外部から制御可能であるか否か、b)スキャン対象のフリップフロップが、対応するスキャンフリップフロップを有するか否か等が検査される。その後、検査結果を判断し(S2)、スキャンパス設計のための制約を満たしていれば、故障検出率算出部10は、所定のネット探索処理を行って故障検出率を算出する(S3)。最後に、表示制御部20は、設計制約の検査結果、故障検出率、ネット探索処理の結果等を表示する(S4)。
In the testability design rule inspection device, when an operation start operation is input in the
<故障検出率算出処理>
以下に、上記故障検出率の算出(ステップS3)について図11のフローチャートを用いて説明する。前述のように本処理は故障検出率算出部10により制御される。
<Failure detection rate calculation process>
Hereinafter, the calculation of the failure detection rate (step S3) will be described with reference to the flowchart of FIG. As described above, this process is controlled by the failure detection
図11において、最初に、データ入力部3がテストパターン自動生成(ATPG)のためのコンストレイン、すなわちテストモードに設定するための信号と、伝播させる論理値の初期値とを入力する(S11)。その後、故障検出率算出部10のネット探索部13は、入力した論理値を回路内の各論理ゲートに伝播させる(S12)。ここで、論理値を伝播させるとは、一の論理ゲートに対して所定の論理値を与えて論理演算を行い、その演算結果を次の論理ゲートに与えて論理演算を行い、さらに、その演算結果をその次の論理ゲートに入力して論理演算を行うという処理を繰り返して、論理演算結果を順次求めていくことである。例えば、図12の(a)に示す例では、外部入力端子71、ANDゲート72、インバータ73、ORゲート74に対して、論理値は0→0→1→1と伝播する。
In FIG. 11, first, the
次に、集合生成部15は、テストモード時にコンストレインによって値が固定されるためにテスト不可能となる論理ゲート端子の集合UTを求める(S13)。つまり、集合生成部15は、論理値の伝播結果を参照し、コンストレインにより端子の状態が0または1に固定される論理ゲート端子(ノード)を検出し、これらの論理ゲート端子を元とする集合UTを作成する。例えば、ANDゲートの入力端子の1つがコンストレインにより0になるとき、ANDゲートの出力は0に固定されるため、その出力端子は集合UTに含まれる。集合UTには、図6に示すような構造体を持つデータベースにおいて、論理ゲート端子名の格納場所のアドレス(ポインタ)が格納される。
Next, the
次に、集合生成部15は、テストモード時に制御不可能な論理ゲート端子の集合である集合UCを求める。すなわち、ネット探索部13は、スキャン変換対象外のフリップフロップのQ出力から論理値X(論理値Xは「0」または「1」のいずれの値でもよい。)を伝播させてネット探索を行う(S14)。その後、論理値Xの伝播によるネット探索において、論理値XがXのまま伝播する論理ゲート端子を検出し、これらの論理ゲート端子を元とする集合UCを作成する(S15)。
Next, the
ここで、論理値Xの伝播について図12の(b)を用いて説明する。図において、ORゲート84の一方の入力はコンストレインにより「0」に固定され、また、ANDゲート85の一方の入力もコンストレインにより「0」に固定される。このような回路に、外部入力端子81から論理値Xを伝播させると、インバータ82の出力は「Xを反転した値」に、インバータ83の出力は「X」に、ORゲート84の出力は「X」に、ANDゲート85の出力は「0」になる。したがって、インバータ82、83の入出力端子と、ORゲート84の入力端子の他方と、ANDゲート85の入力端子の他方については論理値Xが伝播したことになり、それ以外の端子には論理値Xが伝播しないことになる。この論理値Xの伝播によるネット探索は、ネットワーク構造データベース50に格納された各論理ゲート情報及び信号接続情報を参照して行われる。
Here, propagation of the logical value X will be described with reference to FIG. In the figure, one input of the
図11に戻り、さらに、集合生成部15は、テストモード時に観測不可能な論理ゲート端子の集合である集合UOを求める。すなわち、集合生成部15は、上記のステップで求めた集合UT、UCに含まれない論理ゲート端子の集合UOを仮に作成する(S16)。その後、仮の集合UO内の各論理ゲート端子に対して論理値Xの伝播によるネット探索を実施して(S17)、外部出力端子またはスキャン変換対象のフリップフロップのD入力まで到達できた論理ゲート端子を検出し、仮の集合UOからこれらの論理ゲート端子を除き、最終的な集合UOを作成する(S18)。
Returning to FIG. 11, the
最後に、故障検出率計算部17が、集合UT、集合UC、集合UOのそれぞれの元の数をut、uc、uoと、回路中の前端子数をtotalとし、スキャンパス挿入後の故障検出率を次式を用いて算出する(S19)。
故障検出率 = ( total - ( ut + uc + uo ) ) / total * 100 (%)
Finally, the failure detection
Failure detection rate = (total-(ut + uc + uo)) / total * 100 (%)
このようにして、テスト容易化設計ルール検査装置は、スキャンパス挿入後の故障検出率を求める。 In this way, the testability design rule inspection apparatus obtains the failure detection rate after the scan path is inserted.
以上のように、集合UTは、ATPGのためのコンストレインにより論理値が固定されるため、テスト不能とみなされる論理ゲート端子群である。集合UCは、スキャン変換対象外のフリップフロップ、すなわちスキャンパス挿入後の回路においてスキャンされないフリップフロップのデータ出力により制御されるのでコンビネーショナルATPGでは制御不能となる論理ゲート端子群である。また、集合UOは、スキャン変換対象のフリップフロップ、すなわちスキャンパス挿入後の回路においてスキャンされるフリップフロップや、外部出力端子から観測不能となる論理ゲート端子群である。近年のコンビネーショナルATPGでは、冗長回路、フィードバックループパスを除けば、ほぼ100%の故障検出可能なパターンが生成できる。また、近年の論理合成ツールで論理回路を合成すれば冗長回路は皆無にできる。したがって、上記のように回路中の全論理回路ゲートの端子数から、テスト時に値が固定されるためにテスト不可能な端子、テスト時に制御不可能な端子、観測不可能な端子を除いて故障検出率を求めることにより、ATPGによる故障検出率を予想することができる。 As described above, the set UT is a group of logic gate terminals that are regarded as untestable because the logic value is fixed by the constraint for ATPG. The set UC is a logic gate terminal group that cannot be controlled by the combinational ATPG because it is controlled by the data output of flip-flops that are not subject to scan conversion, that is, flip-flops that are not scanned in the circuit after the scan path is inserted. The set UO is a flip-flop to be subjected to scan conversion, that is, a flip-flop scanned in a circuit after insertion of a scan path, or a logic gate terminal group that cannot be observed from an external output terminal. With a recent combinational ATPG, almost 100% of fault detectable patterns can be generated except for redundant circuits and feedback loop paths. In addition, if a logic circuit is synthesized with a recent logic synthesis tool, there is no redundant circuit. Therefore, from the number of terminals of all logic circuit gates in the circuit as described above, except for terminals that cannot be tested because they are fixed during testing, terminals that cannot be controlled during testing, and terminals that cannot be observed. By obtaining the detection rate, the failure detection rate by ATPG can be predicted.
<ネット探索結果等の表示処理>
次に、上記ネット探索処理の結果等の表示処理(ステップS4)について説明する。本処理は表示制御部20により制御され、故障検出率の算出過程において求められた集合UT、集合UC、集合UOに属する端子名のリストを表示装置に表示させる。すなわち、集合UT、集合UC、集合UOのそれぞれに属する端子に対して、論理ゲート構造体を参照して端子名を取得し、それらの端子名を表示装置上に表示させる。これにより、ユーザは表示装置上でテスト不能個所、制御不能個所、観測不能個所を確認できるため、テスト容易化のための回路修正個所の特定や、スキャン化率の検討を容易にでき、設計効率を向上できる。
<Display processing of net search results>
Next, the display process (step S4) of the result of the net search process will be described. This process is controlled by the display control unit 20 and causes the display device to display a list of terminal names belonging to the set UT, the set UC, and the set UO obtained in the process of calculating the failure detection rate. That is, for the terminals belonging to each of the set UT, the set UC, and the set UO, the terminal names are obtained by referring to the logic gate structure, and these terminal names are displayed on the display device. This allows the user to check untestable, uncontrollable, and unobservable locations on the display device, making it easy to identify circuit correction locations for ease of testing and to examine the scan rate. Can be improved.
また、本テスト容易化設計ルール検査装置において、データ入力部3はATPGのためのコンストレインのみならず、ユーザにより指定された回路の範囲、すなわち論理ゲートの範囲を入力するようにしてもよい。このとき、表示制御部20は、指定された回路範囲内のネットワークに対するネット探索結果、すなわち論理値の伝播状況を表示するようにする。すなわち、指定された回路の範囲において論理値がどのように伝播していくかを表示する。これにより、ユーザは、ネット探索結果を確認し、その結果が所望のものか否かを迅速に判断でき、伝播させる論理値の変更→確認→変更等を対話的に処理できる。これにより、テスト容易化のための回路修正等に対して迅速な対応が可能となり、設計効率を向上できる。
In the testability design rule inspection apparatus, the
以上のように、本テスト容易化設計ルール検査装置は、DFTルールの検査を行う際に同時に故障検出率を算出する。このため、故障検出率の算出するために、従来のようにDFTルール検査、スキャンパス挿入、テストパターン自動生成(ATPG)による故障検出率の算出、スキャン化率の増減や回路修正を繰り返す必要がなく、設計効率を向上できる。 As described above, the test-enabling design rule inspection apparatus calculates the failure detection rate at the same time when the DFT rule is inspected. For this reason, in order to calculate the failure detection rate, it is necessary to repeat DFT rule inspection, scan path insertion, calculation of failure detection rate by automatic test pattern generation (ATPG), increase / decrease in scan rate, and circuit correction as in the past. Design efficiency can be improved.
本実施形態のテスト容易化設計ルール検査装置によれば、テスト容易化設計ルール検査において、テストパターン自動生成(ATPG)による故障検出率を予想することができる。これにより、故障検出率を求めるために、テスト容易化設計のルール検査、スキャンパス挿入、テストパターン自動生成による故障検出率の算出、スキャン化率の増減や回路修正の各処理を繰り返す必要がなくなり、設計効率を向上できる。 According to the testability design rule inspection apparatus of this embodiment, it is possible to predict a failure detection rate by automatic test pattern generation (ATPG) in testability design rule inspection. As a result, it is not necessary to repeat each process of rule inspection for easy test design, scan path insertion, calculation of fault detection rate by automatic test pattern generation, increase / decrease of scan rate, and circuit correction to obtain the fault detection rate Design efficiency can be improved.
また、テスト不能個所、制御不可能個所、観測不可能個所が表示されるため、テスト容易化設計のための回路修正個所の特定やスキャン化率の検討が容易にでき、設計効率を向上できる。 In addition, since the untestable part, the uncontrollable part, and the unobservable part are displayed, it is possible to easily identify the circuit correction part for the testability design and to examine the scan rate, and to improve the design efficiency.
また、指定された回路範囲におけるネット探索の結果が表示される。このため、ユーザは回路の所望範囲の論理伝播状況を確認でき、テスト状態時のスキャンパス解析が可能となる。これにより、テスト容易化設計のための回路修正個所の特定やスキャン化率の検討が容易にでき、設計効率を向上できる。 In addition, the result of the net search in the designated circuit range is displayed. For this reason, the user can confirm the logic propagation state in the desired range of the circuit, and can perform a scan path analysis in the test state. As a result, it is possible to easily specify the circuit correction location for the design for testability and to examine the scan rate, thereby improving the design efficiency.
本発明は、論理ゲートを含む集積回路に対するテスト容易化設計に適用可能である。 The present invention is applicable to a testability design for an integrated circuit including a logic gate.
3 データ入力部
5 DFTルール検査部
10 故障率算出部
13 ネット探索部
15 集合生成部
17 故障率計算部
20 表示制御部
50 ネットワーク構造データベース
51 論理ゲート情報
53 信号接続情報
60 集合データベース
3
Claims (1)
前記コンピュータは、後入れ先出し機能を有するスタック構造メモリと演算手段とを備えており、
前記LSIのテスト容易化設計方法は、前記スキャンパスを挿入する前に、前記テストパターンによる故障検出率を概算するステップを含み、
前記故障検出率を概算するステップは、
前記演算手段により、訪問する論理ゲートを示すポインタを、最初に設定された入力端子を持つ論理ゲートの出力が接続された論理ゲートの入力端子のポインタのみが格納された前記スタック構造メモリに格納するステップと、
前記演算手段により、前記スタック構造メモリに格納されたポインタにしたがって論理ゲートを順次訪問し、各論理ゲートに対して論理演算を行い論理演算結果を順次求めることで前記テストパターンによる故障検出率を概算するステップとを含む、
LSIのテスト容易化設計方法。 In an LSI testability design method executed by a computer, including a step of designing a scan path for a circuit including a logic gate, and a step of generating a test pattern by inserting the scan path.
The computer includes a stack structure memory having a last-in first-out function and an arithmetic means.
The LSI testability design method includes a step of estimating a failure detection rate by the test pattern before inserting the scan path,
The step of estimating the failure detection rate includes:
The arithmetic means stores the pointer indicating the logic gate to be visited in the stack structure memory in which only the pointer of the input terminal of the logic gate to which the output of the logic gate having the input terminal initially set is connected is stored. Steps,
The arithmetic means visits the logic gates sequentially according to the pointers stored in the stack structure memory, performs a logical operation on each logic gate, and sequentially obtains the logical operation results, thereby approximating the failure detection rate by the test pattern. Including the steps of
LSI testability design method.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006035244A JP4028574B2 (en) | 2006-02-13 | 2006-02-13 | LSI testability design method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006035244A JP4028574B2 (en) | 2006-02-13 | 2006-02-13 | LSI testability design method |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31738198A Division JP3829021B2 (en) | 1998-11-09 | 1998-11-09 | Easier test design rule inspection device |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007078913A Division JP2007226818A (en) | 2007-03-26 | 2007-03-26 | LSI testability design method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006228213A JP2006228213A (en) | 2006-08-31 |
| JP4028574B2 true JP4028574B2 (en) | 2007-12-26 |
Family
ID=36989495
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006035244A Expired - Fee Related JP4028574B2 (en) | 2006-02-13 | 2006-02-13 | LSI testability design method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4028574B2 (en) |
-
2006
- 2006-02-13 JP JP2006035244A patent/JP4028574B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006228213A (en) | 2006-08-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Drechsler et al. | On acceleration of SAT-based ATPG for industrial designs | |
| US7296249B2 (en) | Using constrained scan cells to test integrated circuits | |
| US8732649B2 (en) | Backward analysis for determining fault masking factors | |
| US6301688B1 (en) | Insertion of test points in RTL designs | |
| Mahmod et al. | Special session: Delay fault testing-present and future | |
| Gurumurthy et al. | Automatic generation of instructions to robustly test delay defects in processors | |
| JP3095066B2 (en) | Low cost test method for register transfer level circuit | |
| Long et al. | FILL and FUNI: Algorithms to identify illegal states and sequentially untestable faults | |
| Suryasarman et al. | Automation of test program synthesis for processor post-silicon validation | |
| JP3829021B2 (en) | Easier test design rule inspection device | |
| Tsai et al. | Efficient test-point selection for scan-based BIST | |
| Kambe et al. | Efficient template generation for instruction-based self-test of processor cores | |
| JP4028574B2 (en) | LSI testability design method | |
| JP2007226818A (en) | LSI testability design method | |
| Eggersglüß et al. | MONSOON: SAT-based ATPG for path delay faults using multiple-valued logics | |
| Sugathan et al. | Optimized Test Pattern Generation for Digital Circuits using SAT-Based ATPG and Scan Insertion Method | |
| Chang et al. | Rtl analysis and modifications for improving at-speed test | |
| Huhn et al. | Integrated Circuits | |
| Sun et al. | On the generation of diagnostic test set for intra-cell defects | |
| Raik et al. | Constraint-based hierarchical untestability identification for synchronous sequential circuits | |
| Pomeranz | Minimal Set of Primary Input Vector Pairs for Two-Cycle Gate-Exhaustive Faults | |
| Savanur et al. | A Fault Model to Detect Design Errors in Combinational Circuits | |
| Borecký et al. | Evaluation of the SEU Faults Coverage of a Simple Fault Model for Application-Oriented FPGA Testing | |
| Foti | New techniques for path delay faults functional test | |
| Sartoni | New Techniques to Detect and Mitigate Aging Effects in Advanced Semiconductor Technologies |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070123 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070326 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070529 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070730 |
|
| 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: 20071002 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071011 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111019 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121019 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131019 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |