Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3829021B2 - Easier test design rule inspection device - Google Patents
[go: Go Back, main page]

JP3829021B2 - Easier test design rule inspection device - Google Patents

Easier test design rule inspection device Download PDF

Info

Publication number
JP3829021B2
JP3829021B2 JP31738198A JP31738198A JP3829021B2 JP 3829021 B2 JP3829021 B2 JP 3829021B2 JP 31738198 A JP31738198 A JP 31738198A JP 31738198 A JP31738198 A JP 31738198A JP 3829021 B2 JP3829021 B2 JP 3829021B2
Authority
JP
Japan
Prior art keywords
logic gate
terminal
design rule
logic
rule inspection
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
Application number
JP31738198A
Other languages
Japanese (ja)
Other versions
JP2000148813A (en
Inventor
孝光 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP31738198A priority Critical patent/JP3829021B2/en
Publication of JP2000148813A publication Critical patent/JP2000148813A/en
Application granted granted Critical
Publication of JP3829021B2 publication Critical patent/JP3829021B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は論理ゲートを含む集積回路に対するテスト容易化設計においてスキャンパス設計の可否を検査する装置に関する。
【0002】
【従来の技術】
近年の半導体集積回路技術の進歩に伴い、LSI(大規模集積回路)中に含まれる素子(論理ゲート)数も増大し、それに伴い、LSIのテストをいかに効率よく行うかが問題となってきた。この問題を解決する方法としてテスト容易化設計がある。代表的なものにスキャンパス法を用いたスキャンパス設計がある。
【0003】
スキャンパス法では、LSI中に含まれるフリップフロップの全部または一部をテスト用のフリップフロップ(以下、「スキャンフリップフロップ」という。)に置き換え、これらをシリアルに接続してスキャンパスを形成する(これを「スキャンパス挿入」という。)。ここで、スキャンフリップフロップは、一般に、テストモードに設定するためのテストイネーブル端子、スキャンデータを入力するためのスキャンイン端子、スキャンデータを出力するためのスキャンアウト端子等を有する。最初のスキャンフリップフロップのスキャンイン端子はLSIの外部入力端子に接続され、最後のスキャンフリップフロップのスキャンアウト端子はLSIの外部出力端子に接続される。そして、各スキャンフリップフロップのクロックを外部より制御し、シフトレジスタとして動作させる。このとき、外部入力端子を介してテストデータを与え、各スキャンフリップフロップに記憶された値を外部出力端子を介して順次取り出すことにより、各スキャンフリップフロップに接続された組み合わせ回路のテストを行う。
【0004】
このようなスキャンパス法を用いたテスト容易化設計(スキャンパス設計)に対しては、いくつかの基本的な設計ルールがある。例えば、1)フリップフロップのクロックは全て外部ポートから制御可能であること、2)非同期リセット/セットが外部ポートから制御可能であること、3)組み合わせ回路のフィードバックを含まないこと等の設計ルールがある。
【0005】
そこで、スキャンパス設計を行う前に、対象回路に対して設計ルールの検査を行った後、スキャンパス設計が可能であれば、スキャンパス挿入を行い、テストパターン自動生成(ATPG: Automatic Test Pattern Generator)を行う。テストパターン自動生成では、テストパターンと、そのテストパターンによる縮退故障の検出度合いを示す故障検出率とが出力される。その後、故障検出率を確認して、故障検出率が不十分であれば回路修正やスキャン化率の増減を行った後、再度、テスト容易化設計ルールの検査を行い、スキャンパス挿入、テストパターン自動生成を行う。テストパターン自動生成により十分な故障検出率が得られるまで、上記処理を繰り返す。
【0006】
【発明が解決しようとする課題】
このように、従来では、故障検出率を求めるために、テスト容易化設計のルール検査、スキャンパス挿入、テストパターン自動生成(ATPG)による故障検出率の算出、スキャン化率の増減や回路修正の各処理を繰り返して行う必要があった。
【0007】
この場合、スキャンパス法、特に、回路中の一部のフリップフロップをスキャンフリップに置換するパーシャルスキャンにおいては、スキャンパス挿入、ATPGによる故障検出率の算出を繰り返すため、設計時間が長くなるという問題がある。
【0008】
本発明は上記課題を解決すべくなされたものであり、その目的とするところは、LSIの設計期間を短縮するテスト容易化設計ルール検査装置を提供することにある。
【0009】
【課題を解決するための手段】
本発明に係る第1のテスト容易化設計ルール検査装置は、論理ゲートを含む回路に対して、該回路中に含まれるフリップフロップをテスト用のスキャンフリップフロップに置換し、置換したスキャンフリップフロップを直列に接続するスキャンパス設計を行う際の設計ルールを検査する。そのテスト容易化設計ルール検査装置は、テストモードに設定するための条件を入力する入力手段と、該入力手段を介してテストモードに設定されたときに、端子のとり得る値が固定されるためにテスト不可能な論理ゲート端子の集合を求めるテスト不可端子集合生成手段と、上記回路の外部から制御不可能な論理ゲート端子の集合を求める制御不可端子集合生成手段と、上記回路の外部から観測不可能な論理ゲート端子の集合を求める観測不可端子集合生成手段と、故障検出率を算出する故障検出率算出手段とを備える。このとき、故障検出率Xは次式で求める。
X=(Y−(A+B+C))/Y×100
ここで、上記テスト不可能な論理ゲート端子の集合の元の数をA、上記制御不可能な論理ゲート端子の集合の元の数をB、上記観測不可能な論理ゲート端子の集合の元の数をC、全論理ゲート端子数をYとする。なお、観測不可能な論理ゲート端子の集合と、制御不可能な論理ゲート端子の集合と、テスト不可能な論理ゲート端子の集合とのいずれか二つ以上の集合に重複して含まれるゲート端子は、上記元の数A、B、Cにおいて重複しないようにカウントする。
【0010】
本発明に係る第2のテスト容易化設計ルール検査装置では、第1のテスト容易化設計ルール検査装置において、上記制御不可端子集合生成手段は、上記テスト用フリップフロップへの置換対象外のフリップフロップの出力端子から不定の論理値の伝播によるネット探索を行い、この探索により訪問された論理ゲート端子から、上記制御不可能な論理ゲート端子の集合を求める。また、上記観測不可端子集合生成手段は、全論理ゲートの端子から、上記テスト不可能な論理ゲート端子および上記制御不可能な論理ゲート端子を除き、さらに、所定の論理値を伝播させてネット探索を行ったときに、該所定の論理値が外部出力端子、またはテスト用フリップフロップに置換可能なフリップフロップの入力端子まで、到達できた論理ゲート端子を除くことにより、上記観測不可能な論理ゲート端子の集合を求める。
【0011】
本発明に係る第3のテスト容易化設計ルール検査装置は、上記第1のテスト容易化設計ルール検査装置において、さらに、上記テスト不可端子集合生成手段、上記制御不可端子集合生成手段および観測不可端子集合生成手段により求められた各集合の元を表示する表示手段を備える。
【0012】
本発明に係る第4のテスト容易化設計ルール検査装置は、上記第2のテスト容易化設計ルール検査装置において、さらに、論理ゲートの範囲を入力する範囲入力手段と、該範囲入力手段により指定された範囲内の論理ゲートで構成されるネットワークにおけるネット探索処理の結果を表示する表示手段とを備える。
【0013】
【発明の実施の形態】
以下、添付の図面を参照して本発明に係るテスト容易化設計ルール検査装置の実施の形態を説明する。本実施形態のテスト容易化設計ルール検査装置は、半導体集積回路に対してスキャンパス設計を行う際の設計ルールを検査する装置であり、テストパターン自動生成(ATPG)により生成されるテストパターンの故障検出率を概算する。
【0014】
<テスト容易化設計ルール検査装置の構成>
図1はテスト容易化設計ルール検査装置の構成を示すブロック図である。テスト容易化設計ルール検査装置は、外部よりデータや設定値、ユーザの操作情報等を入力するデータ入力部3と、スキャンパス設計を行うときの一般的な設計ルール(設計制約)を検査するDFTルール検査部5と、回路に対する故障検出率を算出する故障検出率算出部10と、故障検出率の算出結果等の種々の表示を行う表示制御部20とを備える。故障検出率算出部10は、論理値を伝播させてネット探索を行うネット探索部13と、故障検出率を算出するために、特定の条件を満たす論理ゲートの入出力端子を元とする集合を求める集合生成部15と、故障検出率を計算する故障検出率計算部17とからなる。さらに、テスト容易化設計ルール検査装置は、ネットワーク構造データベース50と、集合データベース60とを備える。なお、本実施形態のテスト容易化設計ルール検査装置は、図示してないが、Verilog-HDL等で記述されるテスト対象回路の回路情報である論理回路情報も有する。
【0015】
上記のような構成のテスト容易化設計ルール検査装置は、所定のプログラムを実行し所定の機能を実現するCPU、プログラムやデータ等を格納するハードディスクやROM等の記憶装置、CPUが実行するプログラムがロードされるRAM、表示装置およびキーボードやマウス等の入力装置等のハードウェアから構成されてもよい。この場合、図1に示す各ブロックの機能は、ハードディスクやROM等の情報記録媒体に格納された所定のプログラムがRAMにロードされ、CPUにより実行されることにより実現される。
【0016】
<種々のデータベース>
ネットワーク構造データベース50は、回路を構成する論理ゲートを定義する情報である論理ゲート情報51と、論理ゲート間の接続関係を定義する情報である信号接続情報53とを有する。論理ゲート情報51には、論理ゲートの名前と、論理ゲートの入力端子群、論理ゲートの出力端子群の情報と、論理ゲートの演算子を示す情報(演算オペコード)とが含まれる。信号接続情報53には、論理ゲート間を接続する信号線の名前と、信号線に接続される論理ゲート端子の情報とが含まれる。
【0017】
図2に、論理ゲート情報51をC言語の構造体を用いて構成した例を示す。図に示すように論理ゲート情報構造体100は、論理ゲート名101と、出力端子リストへのポインタ103と、入力端子リストへのポインタ105とからなる。出力端子リストへのポインタ103は、出力端子リストの先頭アドレスを格納する。すなわち、出力端子リストへのポインタ103は、最初の出力端子名103aの記憶場所(アドレス)を格納する。この出力端子リストへのポインタ103が示すアドレスを基準として出力端子リストに含まれる出力端子名を順次読み出すことができる。同様に、入力端子リストへのポインタ105は、入力端子リストの先頭アドレスを格納する。
【0018】
さらに、論理ゲート情報51は、出力端子名103a…と関連付けられた演算子構造体110を有する。演算子構造体110は、演算を示す演算子オペコードを格納する演算オペコード111と、演算に対する第1の引数のアドレスを格納する第1引数ポインタ113と、第2の引数のアドレスを格納する第2引数ポインタ115とからなる。演算オペコード111は、場合によっては入力端子名を格納する。
【0019】
図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」はデータが格納されていないことを示し、出力端子リスト及び入力端子リストにおいては、データの終了を示す。
【0020】
図4に、信号接続情報53をC言語の構造体を用いて構成した例を示す。図に示すように信号接続情報構造体200は、信号線名201と、ファンインへのポインタ203と、ファンアウトリストへのポインタ205とからなる。ファンインへのポインタ203は、この信号線の入力側に接続される論理ゲートの出力端子名が格納される記憶域のアドレスを格納する。ファンアウトリストへのポインタ205は、ファンアウトリストの先頭アドレスを格納する。ファンアウトリストは、ポインタ205a、205b…からなる。ポインタ205a、205b…は、信号線に対して出力側に接続される論理ゲートの入力端子名の記憶域のアドレスを格納する。
【0021】
図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」が格納される。
【0022】
集合データベース60は、論理ゲート端子のうちテスト不可能な端子を元とする集合UTと、論理ゲート端子のうちテスト時に外部から制御不可能な端子を元とする集合UCと、論理ゲート端子のうちテスト時に外部から観測不可能な端子を元とする集合UOとからなる。集合データベース60をC言語構造体を用いて構成した例を図6の(a)に示す。集合構造体300は、集合名301と、端子リストへのポインタ303とからなる。端子リストへのポインタ303には、端子リストの先頭アドレス、すなわち、ポインタ303aのアドレスが格納される。端子リストは、集合に含まれる端子の端子名が格納された記憶域を示すポインタ303a…からなる。図6の(b)にデータ格納例を示す。
【0023】
<テスト容易化設計ルール検査装置の動作>
以上のように構成されるテスト容易化設計ルール検査装置の動作について説明する。
【0024】
本実施形態のテスト容易化設計ルール検査装置は、テスト容易化設計ルールを検査する際に、所定の論理値を伝播させてネット検査を行うことにより、ATPGにより生成されるテストパターンの故障検出率を概算する。テスト容易化設計ルール検査装置の全体動作を説明する前に、まず、ネット探索処理について説明する。
【0025】
<ネット探索処理>
図7に、テスト容易化設計ルール検査装置のネット探索処理を示すフローチャートを示す。ネット探索処理では、深さ方向に論理ゲートを順次訪問し、訪問した論理ゲートにおいてその演算オペコードに応じた論理演算を行う。本処理はネット探索部13により制御される。
【0026】
図に示すように、まず、ネット探索を開始するため初期条件を設定する。すなわち、ネット探索を開始する入力端子と、伝播させる論理値とをデータ入力部3を介して入力する(S101)。次に、入力した入力端子の格納場所を示すポインタをスタック構造メモリにプッシュする(S102)。ここで、スタック構造メモリとは一般的に後入れ先出し機能(LIFO)を実現するメモリであり、スタック構造メモリにデータを格納する操作をプッシュといい、スタック構造メモリからデータを取り出す操作をポップという。スタック構造メモリは、訪問すべき論理ゲートの入力端子のポインタを格納する。
【0027】
その後、スタック構造メモリに格納されたポインタに従って、論理ゲートを訪問し、その論理ゲートに応じて論理演算を行う。
【0028】
すなわち、スタック構造メモリから論理ゲートの入力端子のアドレスをポップする(S103)。スタック構造メモリからのアドレスのポップの可否を判断し(S104)、スタック構造メモリからアドレスをポップできないとき、すなわち、スタック構造メモリが空のときは、ネット探索処理を終了する。アドレスがポップできたときは、論理ゲート情報を参照し、その入力端子のアドレスから論理ゲートのアドレスを取得し(S105)、さらに、その論理ゲートの出力端子のアドレスを取得する(S106)。出力端子のアドレス取得の可否を判断し(S107)、取得できなかったときはステップS103に戻る。出力端子のアドレスが取得できたときは、その論理ゲートに対して演算オペコードと論理値とに基づき論理演算を行う(S108)。なお、論理演算の結果は、その論理ゲートでの伝播結果として所定の記憶域に保持される。
【0029】
その後、現時点で訪問している論理ゲートの次に訪問すべき全ての論理ゲートを探し、それらに対して、それらの入力端子のアドレスおよび伝播させる論理値を設定する(S109)。本処理の詳細は後述する。
【0030】
訪問すべき論理ゲートの入力端子のアドレスおよび伝播させる論理値の設定(S109)が終了すると、ステップS106に戻る。1つの論理ゲートに対する全ての出力端子に対して上記処理(S106〜S109)が繰り返され、その後、ステップS103に戻り、スタック構造メモリから次に探索する入力端子のアドレスをポップする。このとき、スタック構造メモリには、最初に設定された入力端子を持つ論理ゲートの出力が接続された次の論理ゲートの入力端子が格納されており、深さ方向に1つ進んだことになる。以後、上記処理を繰り返すことにより、深さ方向に順次探索が行われる。
【0031】
なお、上記フローチャートにおいて、ネットの終端に達したときは、次の訪問先の設定処理(ステップS109)に入っても、スタック構造メモリに新たに入力端子のアドレスがプッシュされることはない。これによって、次にスタック構造メモリをポップすることにより、別の枝に接続する論理ゲートに対して連続してネット探索を行うことができる。
【0032】
上記ステップS109における次の訪問先の設定処理を図8に示すフローチャートを用いて説明する。
【0033】
まず、信号線接続情報を参照して、今訪問中の出力端子のアドレスに基づき、その出力端子が接続される次の論理ゲートの入力端子のアドレスを順次取得する(S111)。入力端子のアドレスは、信号線接続情報のファンアウトリストへのアドレスによって順次指定されることにより取得される。その後、アドレス取得の可否を判断する(S112)。アドレスが取得されたときは、その入力端子に入力する論理値として、前段の論理ゲートでの論理演算結果(ステップS108で計算されたもの)を設定する(S113)。その後、スタック構造メモリに次の入力端子のアドレスをプッシュし(S114)、ステップS111に戻る。今訪問中の論理ゲートの出力端子に対する全ての入力端子のアドレスおよび論理値の設定が終了するまで上記処理を繰り返す。
【0034】
<ネット探索処理のプログラム例>
図9に、図7及び図8のフローチャートで示されるネット探索処理を実現するプログラムの一例を示す。なお、本プログラムはC言語の文法に基づいて記載されている。
【0035】
図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とが引数として渡される。
【0036】
図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のループに対応する。
【0037】
<メインフロ−>
以下に、テスト容易化設計ルール検査装置の全体動作を図10のフローチャートを用いて説明する。
【0038】
テスト容易化設計ルール検査装置において、データ入力部3において動作の開始操作が入力されると、DFTルール検査部5は、Verilog-HDL等で記述されたテスト対象回路の論理回路情報を参照し、スキャンパス設計における一般的な設計ルールの検査を行う(S1)。一般的なスキャンパス設計における設計ルールとしては、例えば、以下の項目が検査される。すなわち、a)スキャン対象のフリップフロップのクロック、セット/リセット端子が外部から制御可能であるか否か、b)スキャン対象のフリップフロップが、対応するスキャンフリップフロップを有するか否か等が検査される。その後、検査結果を判断し(S2)、スキャンパス設計のための制約を満たしていれば、故障検出率算出部10は、所定のネット探索処理を行って故障検出率を算出する(S3)。最後に、表示制御部20は、設計制約の検査結果、故障検出率、ネット探索処理の結果等を表示する(S4)。
【0039】
<故障検出率算出処理>
以下に、上記故障検出率の算出(ステップS3)について図11のフローチャートを用いて説明する。前述のように本処理は故障検出率算出部10により制御される。
【0040】
図11において、最初に、データ入力部3がテストパターン自動生成(ATPG)のためのコンストレイン、すなわちテストモードに設定するための信号と、伝播させる論理値の初期値とを入力する(S11)。その後、故障検出率算出部10のネット探索部13は、入力した論理値を回路内の各論理ゲートに伝播させる(S12)。ここで、論理値を伝播させるとは、一の論理ゲートに対して所定の論理値を与えて論理演算を行い、その演算結果を次の論理ゲートに与えて論理演算を行い、さらに、その演算結果をその次の論理ゲートに入力して論理演算を行うという処理を繰り返して、論理演算結果を順次求めていくことである。例えば、図12の(a)に示す例では、外部入力端子71、ANDゲート72、インバータ73、ORゲート74に対して、論理値は0→0→1→1と伝播する。
【0041】
次に、集合生成部15は、テストモード時にコンストレインによって値が固定されるためにテスト不可能となる論理ゲート端子の集合UTを求める(S13)。つまり、集合生成部15は、論理値の伝播結果を参照し、コンストレインにより端子の状態が0または1に固定される論理ゲート端子(ノード)を検出し、これらの論理ゲート端子を元とする集合UTを作成する。例えば、ANDゲートの入力端子の1つがコンストレインにより0になるとき、ANDゲートの出力は0に固定されるため、その出力端子は集合UTに含まれる。集合UTには、図6に示すような構造体を持つデータベースにおいて、論理ゲート端子名の格納場所のアドレス(ポインタ)が格納される。
【0042】
次に、集合生成部15は、テストモード時に制御不可能な論理ゲート端子の集合である集合UCを求める。すなわち、ネット探索部13は、スキャン変換対象外のフリップフロップのQ出力から論理値X(論理値Xは「0」または「1」のいずれの値でもよい。)を伝播させてネット探索を行う(S14)。その後、論理値Xの伝播によるネット探索において、論理値XがXのまま伝播する論理ゲート端子を検出し、これらの論理ゲート端子を元とする集合UCを作成する(S15)。
【0043】
ここで、論理値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に格納された各論理ゲート情報及び信号接続情報を参照して行われる。
【0044】
図11に戻り、さらに、集合生成部15は、テストモード時に制御不可能な論理ゲート端子の集合である集合UOを求める。すなわち、集合生成部15は、上記のステップで求めた集合UT、UCに含まれない論理ゲート端子の集合UOを仮に作成する(S16)。その後、仮の集合UO内の各論理ゲート端子に対して論理値Xの伝播によるネット探索を実施して(S17)、外部出力端子またはスキャン変換対象のフリップフロップのD入力まで到達できた論理ゲート端子を検出し、仮の集合UOからこれらの論理ゲート端子を除き、最終的な集合UOを作成する(S18)。
【0045】
最後に、故障検出率計算部17が、集合UT、集合UC、集合UOのそれぞれの元の数をut、uc、uoと、回路中の前端子数をtotalとし、スキャンパス挿入後の故障検出率を次式を用いて算出する(S19)。
故障検出率 = ( total - ( ut + uc + uo ) ) / total * 100 (%)
【0046】
このようにして、テスト容易化設計ルール検査装置は、スキャンパス挿入後の故障検出率を求める。
【0047】
以上のように、集合UTは、ATPGのためのコンストレインにより論理値が固定されるため、テスト不能とみなされる論理ゲート端子群である。集合UCは、スキャン変換対象のフリップフロップ、すなわちスキャンパス挿入後の回路においてスキャンされないフリップフロップのデータ出力により制御されるのでコンビネーショナルATPGでは制御不能となる論理ゲート端子群である。また、集合UOは、スキャン変換対象のフリップフロップ、すなわちスキャンパス挿入後の回路においてスキャンされるフリップフロップや、外部出力端子から観測不能となる論理ゲート端子群である。近年のコンビネーショナルATPGでは、冗長回路、フィードバックループパスを除けば、ほぼ100%の故障検出可能なパターンが生成できる。また、近年の論理合成ツールで論理回路を合成すれば冗長回路は皆無にできる。したがって、上記のように回路中の全論理回路ゲートの端子数から、テスト時に値が固定されるためにテスト不可能な端子、テスト時に制御不可能な端子、観測不可能な端子を除いて故障検出率を求めることにより、ATPGによる故障検出率を予想することができる。
【0048】
<ネット探索結果等の表示処理>
次に、上記ネット探索処理の結果等の表示処理(ステップS4)について説明する。本処理は表示制御部20により制御され、故障検出率の算出過程において求められた集合UT、集合UC、集合UOに属する端子名のリストを表示装置に表示させる。すなわち、集合UT、集合UC、集合UOのそれぞれに属する端子に対して、論理ゲート構造体を参照して端子名を取得し、それらの端子名を表示装置上に表示させる。これにより、ユーザは表示装置上でテスト不能個所、制御不能個所、観測不能個所を確認できるため、テスト容易化のための回路修正個所の特定や、スキャン化率の検討を容易にでき、設計効率を向上できる。
【0049】
また、本テスト容易化設計ルール検査装置において、データ入力部3はATPGのためのコンストレインのみならず、ユーザにより指定された回路の範囲、すなわち論理ゲートの範囲を入力するようにしてもよい。このとき、表示制御部20は、指定された回路範囲内のネットワークに対するネット探索結果、すなわち論理値の伝播状況を表示するようにする。すなわち、指定された回路の範囲において論理値がどのように伝播していくかを表示する。これにより、ユーザは、ネット探索結果を確認し、その結果が所望のものか否かを迅速に判断でき、伝播させる論理値の変更→確認→変更等を対話的に処理できる。これにより、テスト容易化のための回路修正等に対して迅速な対応が可能となり、設計効率を向上できる。
【0050】
以上のように、本テスト容易化設計ルール検査装置は、DFTルールの検査を行う際に同時に故障検出率を算出する。このため、故障検出率の算出するために、従来のようにDFTルール検査、スキャンパス挿入、テストパターン自動生成(ATPG)による故障検出率の算出、スキャン化率の増減や回路修正を繰り返す必要がなく、設計効率を向上できる。
【0051】
【発明の効果】
本発明の第1及び第2のテスト容易化設計ルール検査装置によれば、テスト容易化設計ルール検査において、テストパターン自動生成(ATPG)による故障検出率を予想することができる。これにより、故障検出率を求めるために、テスト容易化設計のルール検査、スキャンパス挿入、テストパターン自動生成による故障検出率の算出、スキャン化率の増減や回路修正の各処理を繰り返す必要がなくなり、設計効率を向上できる。
【0052】
本発明の第3のテスト容易化設計ルール検査装置によれば、テスト不能個所、制御不可能個所、観測不可能個所が表示されるため、テスト容易化設計のための回路修正個所の特定やスキャン化率の検討が容易にでき、設計効率を向上できる。
【0053】
本発明の第4のテスト容易化設計ルール検査装置によれば、指定された回路範囲におけるネット探索の結果が表示される。このため、ユーザは回路の所望範囲の論理伝播状況を確認でき、テスト状態時のスキャンパス解析が可能となる。これにより、テスト容易化設計のための回路修正個所の特定やスキャン化率の検討が容易にでき、設計効率を向上できる。
【図面の簡単な説明】
【図1】 本発明に係るテスト容易化設計ルール検査装置のブロック構成図。
【図2】 C言語の構造体を用いて構成された論理ゲート情報の構成例を示した図。
【図3】 C言語の構造体を用いて構成された論理ゲート情報において格納されるデータの具体例を示した図。
【図4】 C言語の構造体を用いて構成された信号接続情報の構成例を示した図。
【図5】 C言語の構造体を用いて構成された信号接続情報において格納されるデータの具体例を示した図。
【図6】 (a)C言語の構造体を用いて構成された集合データベースの構成例を示した図と、(b)その集合データベースにおいて格納されるデータの具体例を示した図。
【図7】 本発明に係るテスト容易化設計ルール検査装置のネット探索処理を示すフローチャート。
【図8】 本発明に係るテスト容易化設計ルール検査装置のネット探索処理における次の訪問先の設定処理を示すフローチャート。
【図9】 本発明に係るテスト容易化設計ルール検査装置のネット探索処理を実現するプログラム例を示す図。
【図10】 本発明に係るテスト容易化設計ルール検査装置の全体動作を示すフローチャート。
【図11】 本発明に係るテスト容易化設計ルール検査装置の故障検出率算出処理を示すフローチャート。
【図12】 (a)一般的な論理値の伝播を説明した図と、(b)論理値Xの伝播を説明した図。
【符号の説明】
3 データ入力部
5 DFTルール検査部
10 故障率算出部
13 ネット探索部
15 集合生成部
17 故障率計算部
20 表示制御部
50 ネットワーク構造データベース
51 論理ゲート情報
53 信号接続情報
60 集合データベース
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an apparatus for inspecting the feasibility of scan path design in testability design for an integrated circuit including a logic gate.
[0002]
[Prior art]
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 scan path design using the scan path method.
[0003]
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.
[0004]
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.
[0005]
Therefore, after design path inspection is performed on the target circuit before scan path design, if scan path design is possible, scan path insertion is performed and automatic test pattern generation (ATPG: Automatic Test Pattern Generator) )I do. In the test pattern automatic generation, a test pattern and a fault detection rate indicating the degree of detection of stuck-at faults by the test pattern are output. Then, check the failure detection rate, and if the failure detection rate is insufficient, correct the circuit and increase / decrease the scan rate, then check the testability design rule again, insert the scan path, and test pattern Generate automatically. The above process is repeated until a sufficient failure detection rate is obtained by automatic test pattern generation.
[0006]
[Problems to be solved by the invention]
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.
[0007]
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.
[0008]
The present invention has been made to solve the above-described problems, and an object of the present invention is to provide an easy-to-test design rule inspection apparatus that shortens the LSI design period.
[0009]
[Means for Solving the Problems]
  A first testability design rule inspection device according to the present invention replaces a flip-flop included in a circuit including a logic gate with a test scan flip-flop, and the replaced scan flip-flop. Check the design rules when designing scan paths connected in series. The testability design rule inspection device has an input means for inputting a condition for setting to the test mode, and when the test mode is set via the input means,Because the possible value of the terminal is fixedA non-testable terminal set generating means for obtaining a set of untestable logic gate terminals; an uncontrollable terminal set generating means for obtaining a set of uncontrollable logic gate terminals from outside the circuit; and an unobservable from the outside of the circuit. An unobservable terminal set generation unit for obtaining a set of possible logic gate terminals and a failure detection rate calculation unit for calculating a failure detection rate are provided. At this time, the failure detection rate X is obtained by the following equation.
X = (Y− (A + B + C)) / Y × 100
  Here, the original number of the untestable logic gate terminal set is A, the original number of the uncontrollable logic gate terminal set is B, and the original number of the unobservable logic gate terminal set is Let C be the number and Y be the total number of logic gate terminals. It should be noted that a gate terminal that is duplicated in any two or more of a set of unobservable logic gate terminals, a set of uncontrollable logic gate terminals, and a set of untestable logic gate terminals Is duplicated in the original numbers A, B, CSo as not tocountTo do.
[0010]
  In the second testability design rule inspection apparatus according to the present invention, in the first testability design rule inspection apparatus, the uncontrollable terminal set generation means includes a flip-flop that is not a replacement target for the test flip-flop. A net search is performed by propagation of an indefinite logic value from the output terminal of the output terminal, and the set of uncontrollable logic gate terminals is obtained from the logic gate terminals visited by this search. The unobservable terminal set generation means excludes the untestable logic gate terminal and the uncontrollable logic gate terminal from all logic gate terminals, and further propagates a predetermined logic value to search the net. When the predetermined logic value is performed to the external output terminal, or the input terminal of the flip-flop that can be replaced with the test flip-flop,Was able to reachBy excluding the logic gate terminals, the set of logic gate terminals that cannot be observed is obtained.
[0011]
A third testability design rule inspection device according to the present invention is the first testability design rule inspection device, further comprising the test impossible terminal set generation unit, the uncontrollable terminal set generation unit, and the unobservable terminal. Display means for displaying the element of each set determined by the set generation means.
[0012]
A fourth testability design rule inspection apparatus according to the present invention is the second testability design rule inspection apparatus according to the second testability design rule inspection apparatus, further comprising range input means for inputting a range of logic gates, and the range input means. Display means for displaying a result of a net search process in a network composed of logic gates within the specified range.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
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.
[0014]
<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 data input unit 3 for inputting data, setting values, user operation information, and the like from the outside, and a DFT for inspecting general design rules (design constraints) when performing scan path design. A rule inspection unit 5, a failure detection rate calculation unit 10 that calculates a failure detection rate for a circuit, and a display control unit 20 that performs various displays such as a calculation result of the failure detection rate. The failure detection rate calculation unit 10 includes a net search unit 13 that performs a net search by propagating a logical value, and a set based on input / output terminals of logic gates that satisfy a specific condition in order to calculate the failure detection rate. A set generation unit 15 to be obtained and a failure detection rate calculation unit 17 for calculating a failure detection rate. Furthermore, the testability design rule inspection device includes a network structure database 50 and a collective database 60. Note that the testability design rule inspection apparatus of the present embodiment also has logic circuit information that is circuit information of a test target circuit described in Verilog-HDL or the like, although not shown.
[0015]
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.
[0016]
<Various databases>
The network structure database 50 includes logic gate information 51 that is information defining logic gates that constitute a circuit, and signal connection information 53 that is information defining connection relationships between logic gates. The logic gate information 51 includes the name of the logic gate, information on the input terminal group of the logic gate, information on the output terminal group of the logic gate, and information (operation opcode) indicating the operator of the logic gate. The signal connection information 53 includes the names of signal lines that connect the logic gates and information on the logic gate terminals that are connected to the signal lines.
[0017]
FIG. 2 shows an example in which the logic gate information 51 is configured using a C language structure. As shown in the figure, the logic gate information structure 100 includes a logic gate name 101, a pointer 103 to an output terminal list, and a pointer 105 to an input terminal list. The pointer 103 to the output terminal list stores the head address of the output terminal list. That is, the pointer 103 to the output terminal list stores the storage location (address) of the first output terminal name 103a. The output terminal names included in the output terminal list can be sequentially read out based on the address indicated by the pointer 103 to the output terminal list. Similarly, the pointer 105 to the input terminal list stores the head address of the input terminal list.
[0018]
Further, the logic gate information 51 has an operator structure 110 associated with the output terminal names 103a. The operator structure 110 includes an operation opcode 111 that stores an operator opcode indicating an operation, a first argument pointer 113 that stores an address of a first argument for the operation, and a second that stores an address of a second argument. It consists of an argument pointer 115. The operation opcode 111 stores an input terminal name in some cases.
[0019]
FIG. 3 shows a specific example of data in the logic gate information 51 using the structure. FIG. 3B shows an example of data stored in the logic gate information 51 for the AND gate shown in FIG. The logical gate name of the AND gate shown in FIG. 3A is “AND03”, has three input terminals whose terminal names are “I1”, “I2”, and “I3”, and the terminal name is “O1”. "Has one output terminal. That is, as shown in FIG. 3B, in the logic gate structure 100, “AND03” is stored in the logic gate name 101, and “O1” is stored in the output terminal name 103a indicated by the pointer 103 to the output terminal list. Is stored. In the operator structure 110, “&”, which is an operation code indicating an AND operation, is stored in the operation opcode 111, and the first address of the operator structure 110 b is stored in the first argument pointer 113, and the second argument pointer 115. Stores the start address of the operator structure 110c. The operation terminal 111b of the operator structure 110b stores the input terminal name “I1”. In the operator structure 110c, “&” which is an operation code indicating an AND operation is stored in the operation opcode 111c, the start address of the operator structure 110d is stored in the first argument pointer 113c, and the second argument pointer 115c is stored in the second argument pointer 115c. The head address of the operator structure 110e is stored. The input terminal name “I2” is stored in the operation opcode 111d of the operator structure 110d. The input terminal name “I3” is stored in the operation opcode 111e of the operator structure 110e. The input terminal name “I1” is stored in the address area 105a indicated by the pointer 105 to the input terminal list. Thereafter, the input terminal names “I2” and “I3” are sequentially stored in a predetermined area of the input terminal list. In the figure, “null” indicates that no data is stored, and the output terminal list and the input terminal list indicate the end of data.
[0020]
FIG. 4 shows an example in which the signal connection information 53 is configured using a C language structure. As shown in the figure, the signal connection information structure 200 includes a signal line name 201, a fan-in pointer 203, and a fan-out list pointer 205. The fan-in pointer 203 stores the address of the storage area in which the output terminal name of the logic gate connected to the input side of this signal line is stored. The fan-out list pointer 205 stores the head address of the fan-out list. The fan-out list is made up of pointers 205a, 205b. Pointers 205a, 205b,... Store addresses of storage areas for input terminal names of logic gates connected to the output side with respect to the signal lines.
[0021]
FIG. 5 is a diagram showing a specific example of data in the signal connection information 53 using the structure. FIG. 5B shows an example of data stored in the signal connection information 53 for the circuit shown in FIG. FIG. 5A shows an example in which the output of the AND gate (AND03) is connected to the inverter (INV01) and the AND gate (AND04) via the signal line (NET01). In this example, in the signal connection information structure 200, “NET01” is stored in the signal line name 201, and the address of the output terminal “O1” is stored in the pointer 203 to the fan-in. The fan-out list pointer 205 stores the head address of the fan-out list, that is, the address of the pointer 205a. The address of the input terminal “I4” is stored in the pointer 205a, and the address of the input terminal “I5” is stored in the pointer 205b. The pointer 205c stores “null” indicating the end of the fan-out list.
[0022]
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 aggregate structure 300 includes an aggregate name 301 and a pointer 303 to a terminal list. The terminal list pointer 303 stores the head address of the terminal list, that is, the address of the pointer 303a. The terminal list includes pointers 303a... Indicating storage areas in which terminal names of terminals included in the set are stored. FIG. 6B shows an example of data storage.
[0023]
<Operation of the testability test rule inspection device>
The operation of the testability design rule inspection apparatus configured as described above will be described.
[0024]
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. Approximate Before describing the overall operation of the testability design rule inspection apparatus, the net search process will be described first.
[0025]
<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 net search unit 13.
[0026]
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.
[0027]
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.
[0028]
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 address of the output terminal can be acquired (S107). If the address cannot be acquired, the process returns to step S103. 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.
[0029]
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.
[0030]
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.
[0031]
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.
[0032]
The next visit destination setting process in step S109 will be described with reference to the flowchart shown in FIG.
[0033]
First, referring 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 acquired 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.
[0034]
<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.
[0035]
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.
[0036]
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.
[0037]
<Main flow>
The overall operation of the testability design rule inspection apparatus will be described below with reference to the flowchart of FIG.
[0038]
In the testability design rule inspection device, when an operation start operation is input in the data input unit 3, the DFT rule inspection unit 5 refers to the logic circuit information of the test target circuit described in Verilog-HDL, A general design rule in the scan campus design is inspected (S1). As design rules in general scan path design, for example, the following items are inspected. That is, a) whether the clock of the flip-flop to be scanned and the set / reset terminal can be controlled from the outside, b) whether or not the flip-flop to be scanned has a corresponding scan flip-flop, etc. The Thereafter, the inspection result is determined (S2), and if the constraints for scan path design are satisfied, the failure detection rate calculation unit 10 performs a predetermined net search process to calculate the failure detection rate (S3). Finally, the display control unit 20 displays the design constraint inspection result, failure detection rate, net search processing result, and the like (S4).
[0039]
<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 rate calculation unit 10.
[0040]
In FIG. 11, first, the data input unit 3 inputs a constraint for test pattern automatic generation (ATPG), that is, a signal for setting a test mode, and an initial value of a logical value to be propagated (S11). . Thereafter, the net search unit 13 of the failure detection rate calculation unit 10 propagates the input logic value to each logic gate in the circuit (S12). Here, the propagation of a logical value means that a logical operation is performed by giving a predetermined logical value to one logic gate, and a logical operation is performed by giving the operation result to the next logic gate. The process of inputting a result to the next logic gate and performing a logical operation is repeated to obtain logical operation results sequentially. For example, in the example shown in FIG. 12A, the logical value propagates from 0 → 0 → 1 → 1 to the external input terminal 71, AND gate 72, inverter 73, and OR gate 74.
[0041]
Next, the set generation unit 15 obtains a set UT of logic gate terminals that cannot be tested because the value is fixed by the constraint in the test mode (S13). That is, the set generation unit 15 refers to the propagation result of the logical value, detects a logic gate terminal (node) whose terminal state is fixed to 0 or 1 by the constraint, and uses these logic gate terminals as a basis. Create a set UT. For example, when one of the input terminals of the AND gate becomes 0 due to the constraint, the output of the AND gate is fixed to 0, so that the output terminal is included in the set UT. The set UT stores an address (pointer) of a storage location of the logic gate terminal name in a database having a structure as shown in FIG.
[0042]
Next, the set generation unit 15 obtains a set UC that is a set of logic gate terminals that cannot be controlled in the test mode. That is, the net search unit 13 performs a net search by propagating a logical value X (the logical value X may be “0” or “1”) from the Q output of the flip-flop that is not subject to scan conversion. (S14). Thereafter, in the net search by the propagation of the logical value X, the logical gate terminals that propagate with the logical value X remaining as X are detected, and a set UC based on these logical gate terminals is created (S15).
[0043]
Here, propagation of the logical value X will be described with reference to FIG. In the figure, one input of the OR gate 84 is fixed to “0” by the constraint, and one input of the AND gate 85 is also fixed to “0” by the constraint. When a logical value X is propagated from such an external input terminal 81 to such a circuit, the output of the inverter 82 is “inverted value of X”, the output of the inverter 83 is “X”, and the output of the OR gate 84 is “ The output of the AND gate 85 becomes “0” at “X”. Therefore, the logical value X has propagated to the input / output terminals of the inverters 82 and 83, the other input terminal of the OR gate 84, and the other input terminal of the AND gate 85, and the other terminals have logical values. X will not propagate. The net search by the propagation of the logical value X is performed with reference to each logic gate information and signal connection information stored in the network structure database 50.
[0044]
  Returning to FIG. 11, the set generation unit 15 further obtains a set UO that is a set of logic gate terminals that cannot be controlled in the test mode. That is, the set generation unit 15 temporarily creates a set UO of logic gate terminals not included in the sets UT and UC obtained in the above steps (S16). Thereafter, a net search is performed by propagation of the logical value X for each logical gate terminal in the temporary set UO (S17), and the external output terminalOrThe logic gate terminals that have reached the D input of the scan conversion target flip-flop are detected, and these logic gate terminals are removed from the temporary set UO to create a final set UO (S18).
[0045]
Finally, the failure detection rate calculation unit 17 sets the original numbers of the set UT, the set UC, and the set UO as ut, uc, uo, and the total number of previous terminals in the circuit, and detects a failure after inserting the scan path. The rate is calculated using the following equation (S19).
Failure detection rate = (total-(ut + uc + uo)) / total * 100 (%)
[0046]
In this way, the testability design rule inspection apparatus obtains the failure detection rate after the scan path is inserted.
[0047]
  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. Set UC is scan conversion targetOutsideThis is a group of logic gate terminals that cannot be controlled by the combinational ATPG because it is controlled by the data output of the flip-flops that are not scanned in the circuit after the insertion of the scan path. The set UO is a flip-flop to be scan-converted, 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.
[0048]
<Display processing of net search results>
Next, display processing (step S4) of the result of the net search processing 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.
[0049]
In the testability design rule inspection apparatus, the data input unit 3 may input not only the constraints for ATPG but also the circuit range designated by the user, that is, the logic gate range. At this time, the display control unit 20 displays the net search result for the network within the designated circuit range, that is, the propagation state of the logical value. That is, it displays how the logical value propagates in the designated circuit range. Thereby, the user can confirm the net search result, can quickly determine whether or not the result is a desired one, and can interactively process the change of the logical value to be propagated → confirmation → change. As a result, it is possible to quickly cope with circuit correction for facilitating the test, and the design efficiency can be improved.
[0050]
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.
[0051]
【The invention's effect】
According to the first and second testability design rule inspection devices of the present invention, it is possible to predict a failure detection rate by automatic test pattern generation (ATPG) in the 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.
[0052]
According to the third testability design rule inspection apparatus of the present invention, the untestable part, the uncontrollable part, and the unobservable part are displayed. The design rate can be easily examined, and the design efficiency can be improved.
[0053]
According to the fourth testability design rule inspection device of the present invention, 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.
[Brief description of the drawings]
FIG. 1 is a block diagram of a testability design rule inspection apparatus according to the present invention.
FIG. 2 is a diagram showing a configuration example of logic gate information configured using a C language structure.
FIG. 3 is a diagram showing a specific example of data stored in logic gate information configured using a C language structure.
FIG. 4 is a diagram showing a configuration example of signal connection information configured using a C language structure.
FIG. 5 is a diagram showing a specific example of data stored in signal connection information configured using a C language structure.
6A is a diagram showing a configuration example of a collective database configured using a C language structure, and FIG. 6B is a diagram showing a specific example of data stored in the collective database.
FIG. 7 is a flowchart showing a net search process of the testability design rule inspection device according to the present invention.
FIG. 8 is a flowchart showing a next visit destination setting process in the net search process of the testability design rule inspection apparatus according to the present invention.
FIG. 9 is a diagram showing an example of a program that realizes a net search process of the testability design rule inspection device according to the present invention.
FIG. 10 is a flowchart showing the overall operation of the testability design rule inspection apparatus according to the present invention.
FIG. 11 is a flowchart showing a failure detection rate calculation process of the testability design rule inspection device according to the present invention.
12A is a diagram illustrating propagation of a general logical value, and FIG. 12B is a diagram illustrating propagation of a logical value X. FIG.
[Explanation of symbols]
3 Data input section
5 DFT rule inspection department
10 Failure rate calculator
13 Net search part
15 Set generation unit
17 Failure rate calculator
20 Display controller
50 Network structure database
51 Logic gate information
53 Signal connection information
60 collective database

Claims (4)

論理ゲートを含む回路に対して、該回路中に含まれるフリップフロップをテスト用のスキャンフリップフロップに置換し、置換したスキャンフリップフロップを直列に接続するスキャンパス設計を行う際の設計ルールを検査するテスト容易化設計ルール検査装置において、
テストモードに設定するための条件を入力する入力手段と、
該入力手段を介してテストモードに設定されたときに、端子のとり得る値が固定されるためにテスト不可能な論理ゲート端子の集合を求めるテスト不可端子集合生成手段と、
上記回路の外部から制御不可能な論理ゲート端子の集合を求める制御不可端子集合生成手段と、
上記回路の外部から観測不可能な論理ゲート端子の集合を求める観測不可端子集合生成手段と、
上記テスト不可能な論理ゲート端子の集合の元の数をA、上記制御不可能な論理ゲート端子の集合の元の数をB、上記観測不可能な論理ゲート端子の集合の元の数をC、全論理ゲート端子数をYとして、故障検出率XをX=(Y−(A+B+C))/Y×100で算出する故障検出率算出手段とを備え、
観測不可能な論理ゲート端子の集合と、制御不可能な論理ゲート端子の集合と、テスト不可能な論理ゲート端子の集合とのいずれか二つ以上の集合に重複して含まれるゲート端子は、上記元の数A、B、Cにおいて重複しないようにカウントする、
ことを特徴とするテスト容易化設計ルール検査装置。
For a circuit including a logic gate, replace a flip-flop included in the circuit with a test scan flip-flop, and inspect a design rule when performing a scan path design in which the replaced scan flip-flops are connected in series. In the testability design rule inspection device,
Input means for inputting conditions for setting to the test mode;
A non-testable terminal set generation means for obtaining a set of logic gate terminals that cannot be tested because the possible values of the terminals are fixed when the test mode is set via the input means;
Uncontrollable terminal set generation means for obtaining a set of logic gate terminals that cannot be controlled from outside the circuit;
An unobservable terminal set generation means for obtaining a set of logic gate terminals that cannot be observed from outside the circuit;
The original number of the untestable logic gate terminal set is A, the original number of the uncontrollable logic gate terminal set is B, and the original number of the unobservable logic gate terminal set is C. Failure detection rate calculation means for calculating failure detection rate X as X = (Y− (A + B + C)) / Y × 100, where Y is the total number of logic gate terminals,
A gate terminal that is duplicated in any two or more of the set of unobservable logic gate terminals, the set of uncontrollable logic gate terminals, and the set of untestable logic gate terminals is: Count so as not to overlap in the original numbers A, B, C.
An easy-to-test design rule inspection device.
請求項1に記載のテスト容易化設計ルール検査装置において、
上記制御不可端子集合生成手段は、上記テスト用フリップフロップへの置換対象外のフリップフロップの出力端子から不定の論理値の伝播によるネット探索を行い、この探索により訪問された論理ゲート端子の集合を、上記制御不可能な論理ゲート端子の集合として求め、
上記観測不可端子集合生成手段は、全論理ゲート端子から、上記テスト不可能な論理ゲート端子および上記制御不可能な論理ゲート端子を除き、さらに、所定の論理値を伝播させてネット探索を行ったときに該所定の論理値が外部出力端子またはテスト用フリップフロップに置換可能なフリップフロップの入力端子まで、到達できた論理ゲート端子を除くことにより、上記観測不可能な論理ゲート端子の集合を求める
ことを特徴とするテスト容易化設計ルール検査装置。
In the testability design rule inspection device according to claim 1,
The uncontrollable terminal set generation means performs a net search by propagation of an indefinite logic value from an output terminal of a flip-flop that is not a replacement target to the test flip-flop, and determines a set of logic gate terminals visited by the search. And as a set of uncontrollable logic gate terminals,
The unobservable terminal set generation means performs a net search by propagating a predetermined logic value from all the logic gate terminals, excluding the untestable logic gate terminal and the uncontrollable logic gate terminal. Sometimes the set of unobservable logic gate terminals is obtained by excluding the logic gate terminals where the predetermined logic value can reach the external output terminal or the input terminal of the flip-flop that can be replaced with the test flip-flop. An easy-to-test design rule inspection device.
請求項1に記載のテスト容易化設計ルール検査装置において、上記テスト不可端子集合生成手段、上記制御不可端子集合生成手段または観測不可端子集合生成手段により求められた各集合の元を表示する表示手段をさらに備えたことを特徴とするテスト容易化設計ルール検査装置。  2. The testability design rule inspection device according to claim 1, wherein the display means displays the origin of each set obtained by the untestable terminal set generation means, the uncontrollable terminal set generation means or the unobservable terminal set generation means. An easy-to-test design rule inspection device characterized by further comprising: 請求項2に記載のテスト容易化設計ルール検査装置において、論理ゲートの範囲を入力する範囲入力手段と、該範囲入力手段により指定された範囲内の論理ゲートで構成されるネットワークにおけるネット探索処理の結果を表示する表示手段とをさらに備えたことを特徴とするテスト容易化設計ルール検査装置。  3. The testability design rule inspection apparatus according to claim 2, wherein a network search process in a network constituted by range input means for inputting a range of logic gates and logic gates within the range specified by the range input means. An easy-to-test design rule inspection apparatus, further comprising display means for displaying a result.
JP31738198A 1998-11-09 1998-11-09 Easier test design rule inspection device Expired - Fee Related JP3829021B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31738198A JP3829021B2 (en) 1998-11-09 1998-11-09 Easier test design rule inspection device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31738198A 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
JP2006035244A Division JP4028574B2 (en) 2006-02-13 2006-02-13 LSI testability design method

Publications (2)

Publication Number Publication Date
JP2000148813A JP2000148813A (en) 2000-05-30
JP3829021B2 true JP3829021B2 (en) 2006-10-04

Family

ID=18087624

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31738198A Expired - Fee Related JP3829021B2 (en) 1998-11-09 1998-11-09 Easier test design rule inspection device

Country Status (1)

Country Link
JP (1) JP3829021B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005107372A2 (en) * 2004-05-10 2005-11-17 Nibea Quality Management Solutions Ltd. Product functionality assurance and guided troubleshooting
JP4541196B2 (en) * 2005-03-15 2010-09-08 富士通株式会社 Failure detection improvement device, failure detection improvement program, failure detection improvement method
KR100755665B1 (en) * 2005-11-23 2007-09-05 삼성전자주식회사 Yield improvement method and yield improvement system of semiconductor integrated circuit device
JP2016180636A (en) * 2015-03-24 2016-10-13 日本電気株式会社 Asynchronous reset circuit test device, asynchronous reset circuit test method, and program

Also Published As

Publication number Publication date
JP2000148813A (en) 2000-05-30

Similar Documents

Publication Publication Date Title
US7296249B2 (en) Using constrained scan cells to test integrated circuits
Venkataraman et al. POIROT: A logic fault diagnosis tool and its applications
Larrabee Efficient generation of test patterns using Boolean difference
US6301688B1 (en) Insertion of test points in RTL designs
Lai et al. Test program synthesis for path delay faults in microprocessor cores
JPH06331709A (en) Circuit wherein testability is improved and method for improving testability of circuit
JP2004125670A (en) Test pattern selection device, test pattern selection method, and test pattern selection program
EP1188117B1 (en) Method of discriminating between different types of scan failures, a computer implemented circuit simulation and fault detection system
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
KR920006969B1 (en) Automatic test generator for logic device
JP3829021B2 (en) Easier test design rule inspection device
Bartenstein Fault distinguishing pattern generation
Van Riessen et al. Design and implementation of a hierarchical testable architecture using the boundary scan standard
JP4028574B2 (en) LSI testability design method
JP2007226818A (en) LSI testability design method
Lee et al. An efficient procedure to generate highly compact diagnosis patterns for transition faults
Huhn et al. Integrated Circuits
Borecký et al. Evaluation of the SEU Faults Coverage of a Simple Fault Model for Application-Oriented FPGA Testing
Venkat Raman Conventional Methods for Fault Diagnosis
Pomeranz Minimal Set of Primary Input Vector Pairs for Two-Cycle Gate-Exhaustive Faults
Joe Incremental Test Pattern Generation for structurally similar circuits
JPH10198717A (en) Boundary scan compatible integrated circuit design support system
Castello Improving Apple Test Chips Efficacy through the Integration of SSN and ICL Automation Flows
JP3117676B2 (en) Inspection design method

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20050324

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050419

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20050824

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060515

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: 20060704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060710

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: 20090714

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130714

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees