図面 (/)

技術 LSIのテスト容易化設計方法

出願人 株式会社リコー
発明者 山田孝光
出願日 2007年3月26日 (13年10ヶ月経過) 出願番号 2007-078913
公開日 2007年9月6日 (13年5ヶ月経過) 公開番号 2007-226818
状態 拒絶査定
技術分野 CAD 電子回路の試験
主要キーワード 回路範囲 集合構造体 LIFO ネット探索 検出度 ルール検査 C言語 伝播状況
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2007年9月6日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題

LSIの設計期間を短縮するテスト容易化設計方法を提供する。

解決手段

論理ゲートを含む回路に対してスキャンパスを設計するステップと、前記スキャンパスを挿入することでテストパターンを生成するステップとを有するLSIのテスト容易化設計方法において、スキャンパスを挿入する前に、前記テストパターンによる故障検出率概算するステップ(10)と、概算した故障検出率が所定値を超えない場合は、前記故障検出率が前記所定値を満たすようにスキャン化率の増減または回路修正を行うステップとを含む。

概要

背景

近年の半導体集積回路技術の進歩に伴い、LSI(大規模集積回路)中に含まれる素子論理ゲート)数も増大し、それに伴い、LSIのテストをいかに効率よく行うかが問題となってきた。この問題を解決する方法としてテスト容易化設計がある。代表的なものにスキャンパス法を用いたスキャンパス設計がある(例えば特許文献1参照)。

スキャンパス法では、LSI中に含まれるフリップフロップの全部または一部をテスト用のフリップフロップ(以下、「スキャンフリップフロップ」という。)に置き換え、これらをシリアルに接続してスキャンパスを形成する(これを「スキャンパス挿入」という。)。ここで、スキャンフリップフロップは、一般に、テストモードに設定するためのテストイネーブル端子スキャンデータを入力するためのスキャンイン端子、スキャンデータを出力するためのスキャンアウト端子等を有する。最初のスキャンフリップフロップのスキャンイン端子はLSIの外部入力端子に接続され、最後のスキャンフリップフロップのスキャンアウト端子はLSIの外部出力端子に接続される。そして、各スキャンフリップフロップのクロックを外部より制御し、シフトレジスタとして動作させる。このとき、外部入力端子を介してテストデータを与え、各スキャンフリップフロップに記憶された値を外部出力端子を介して順次取り出すことにより、各スキャンフリップフロップに接続された組み合わせ回路のテストを行う。

このようなスキャンパス法を用いたテスト容易化設計(スキャンパス設計)に対しては、いくつかの基本的な設計ルールがある。例えば、1)フリップフロップのクロックは全て外部ポートから制御可能であること、2)非同期リセット/セットが外部ポートから制御可能であること、3)組み合わせ回路のフィードバックを含まないこと等の設計ルールがある。

そこで、スキャンパス設計を行う前に、対象回路に対して設計ルールの検査を行った後、スキャンパス設計が可能であれば、スキャンパス挿入を行い、テストパターン自動生成ATPG: Automatic Test Pattern Generator)を行う。テストパターン自動生成では、テストパターンと、そのテストパターンによる縮退故障検出度合いを示す故障検出率とが出力される。その後、故障検出率を確認して、故障検出率が不十分であれば回路修正スキャン化率の増減を行った後、再度、テスト容易化設計ルールの検査を行い、スキャンパス挿入、テストパターン自動生成を行う。テストパターン自動生成により十分な故障検出率が得られるまで、上記処理を繰り返す。
特開平5−6409号公報

概要

LSIの設計期間を短縮するテスト容易化設計方法を提供する。論理ゲートを含む回路に対してスキャンパスを設計するステップと、前記スキャンパスを挿入することでテストパターンを生成するステップとを有するLSIのテスト容易化設計方法において、スキャンパスを挿入する前に、前記テストパターンによる故障検出率を概算するステップ(10)と、概算した故障検出率が所定値を超えない場合は、前記故障検出率が前記所定値を満たすようにスキャン化率の増減または回路修正を行うステップとを含む。

目的

本発明は上記課題を解決すべくなされたものであり、その目的とするところは、LSIの設計期間を短縮するテスト容易化設計方法を提供することにある。

効果

実績

技術文献被引用数
0件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

論理ゲートを含む回路に対してスキャンパスを設計するステップと、前記スキャンパスを挿入することでテストパターンを生成するステップとを有するLSIのテスト容易化設計方法において、前記スキャンパスを挿入する前に、前記テストパターンによる故障検出率概算するステップと、前記概算した故障検出率が所定値を超えない場合は、前記故障検出率が前記所定値を満たすようにスキャン化率の増減または回路修正を行うステップとを含む、LSIのテスト容易化設計方法。

技術分野

0001

本発明は論理ゲートを含む集積回路に対するテスト容易化設計に関する。

背景技術

0002

近年の半導体集積回路技術の進歩に伴い、LSI(大規模集積回路)中に含まれる素子(論理ゲート)数も増大し、それに伴い、LSIのテストをいかに効率よく行うかが問題となってきた。この問題を解決する方法としてテスト容易化設計がある。代表的なものにスキャンパス法を用いたスキャンパス設計がある(例えば特許文献1参照)。

0003

スキャンパス法では、LSI中に含まれるフリップフロップの全部または一部をテスト用のフリップフロップ(以下、「スキャンフリップフロップ」という。)に置き換え、これらをシリアルに接続してスキャンパスを形成する(これを「スキャンパス挿入」という。)。ここで、スキャンフリップフロップは、一般に、テストモードに設定するためのテストイネーブル端子スキャンデータを入力するためのスキャンイン端子、スキャンデータを出力するためのスキャンアウト端子等を有する。最初のスキャンフリップフロップのスキャンイン端子はLSIの外部入力端子に接続され、最後のスキャンフリップフロップのスキャンアウト端子はLSIの外部出力端子に接続される。そして、各スキャンフリップフロップのクロックを外部より制御し、シフトレジスタとして動作させる。このとき、外部入力端子を介してテストデータを与え、各スキャンフリップフロップに記憶された値を外部出力端子を介して順次取り出すことにより、各スキャンフリップフロップに接続された組み合わせ回路のテストを行う。

0004

このようなスキャンパス法を用いたテスト容易化設計(スキャンパス設計)に対しては、いくつかの基本的な設計ルールがある。例えば、1)フリップフロップのクロックは全て外部ポートから制御可能であること、2)非同期リセット/セットが外部ポートから制御可能であること、3)組み合わせ回路のフィードバックを含まないこと等の設計ルールがある。

0005

そこで、スキャンパス設計を行う前に、対象回路に対して設計ルールの検査を行った後、スキャンパス設計が可能であれば、スキャンパス挿入を行い、テストパターン自動生成ATPG: Automatic Test Pattern Generator)を行う。テストパターン自動生成では、テストパターンと、そのテストパターンによる縮退故障検出度合いを示す故障検出率とが出力される。その後、故障検出率を確認して、故障検出率が不十分であれば回路修正スキャン化率の増減を行った後、再度、テスト容易化設計ルールの検査を行い、スキャンパス挿入、テストパターン自動生成を行う。テストパターン自動生成により十分な故障検出率が得られるまで、上記処理を繰り返す。
特開平5−6409号公報

発明が解決しようとする課題

0006

このように、従来では、故障検出率を求めるために、テスト容易化設計のルール検査、スキャンパス挿入、テストパターン自動生成(ATPG)による故障検出率の算出、スキャン化率の増減や回路修正の各処理を繰り返して行う必要があった。

0007

この場合、スキャンパス法、特に、回路中の一部のフリップフロップをスキャンフリップ置換するパーシャルスキャンにおいては、スキャンパス挿入、ATPGによる故障検出率の算出を繰り返すため、設計時間が長くなるという問題がある。

0008

本発明は上記課題を解決すべくなされたものであり、その目的とするところは、LSIの設計期間を短縮するテスト容易化設計方法を提供することにある。

課題を解決するための手段

0009

本発明に係るテスト容易化設計方法は、論理ゲートを含む回路に対してスキャンパスを設計するステップと、前記スキャンパスを挿入することでテストパターンを生成するステップとを有するLSIのテスト容易化設計方法において、スキャンパスを挿入する前に、テストパターンによる故障検出率を概算するステップと、概算した故障検出率が所定値を超えない場合は、故障検出率が前記所定値を満たすようにスキャン化率の増減または回路修正を行うステップとを含む。

発明の効果

0010

本発明によれば、LSIの設計期間を短縮できる。

発明を実施するための最良の形態

0011

以下、添付の図面を参照して本発明に係るテスト容易化設計ルール検査装置の実施の形態を説明する。本実施形態のテスト容易化設計ルール検査装置は、半導体集積回路に対してスキャンパス設計を行う際の設計ルールを検査する装置であり、テストパターン自動生成(ATPG)により生成されるテストパターンの故障検出率を概算する。

0012

<テスト容易化設計ルール検査装置の構成>
図1はテスト容易化設計ルール検査装置の構成を示すブロック図である。テスト容易化設計ルール検査装置は、外部よりデータや設定値、ユーザの操作情報等を入力するデータ入力部3と、スキャンパス設計を行うときの一般的な設計ルール(設計制約)を検査するDFTルール検査部5と、回路に対する故障検出率を算出する故障検出率算出部10と、故障検出率の算出結果等の種々の表示を行う表示制御部20とを備える。故障検出率算出部10は、論理値伝播させてネット探索を行うネット探索部13と、故障検出率を算出するために、特定の条件を満たす論理ゲートの入出力端子を元とする集合を求める集合生成部15と、故障検出率を計算する故障検出率計算部17とからなる。さらに、テスト容易化設計ルール検査装置は、ネットワーク構造データベース50と、集合データベース60とを備える。なお、本実施形態のテスト容易化設計ルール検査装置は、図示してないが、Verilog-HDL等で記述されるテスト対象回路回路情報である論理回路情報も有する。

0013

上記のような構成のテスト容易化設計ルール検査装置は、所定のプログラムを実行し所定の機能を実現するCPU、プログラムやデータ等を格納するハードディスクやROM等の記憶装置、CPUが実行するプログラムがロードされるRAM、表示装置およびキーボードマウス等の入力装置等のハードウェアから構成されてもよい。この場合、図1に示す各ブロックの機能は、ハードディスクやROM等の情報記録媒体に格納された所定のプログラムがRAMにロードされ、CPUにより実行されることにより実現される。

0014

<種々のデータベース>
ネットワーク構造データベース50は、回路を構成する論理ゲートを定義する情報である論理ゲート情報51と、論理ゲート間接続関係を定義する情報である信号接続情報53とを有する。論理ゲート情報51には、論理ゲートの名前と、論理ゲートの入力端子群、論理ゲートの出力端子群の情報と、論理ゲートの演算子を示す情報(演算オペコード)とが含まれる。信号接続情報53には、論理ゲート間を接続する信号線の名前と、信号線に接続される論理ゲート端子の情報とが含まれる。

0015

図2に、論理ゲート情報51をC言語構造体を用いて構成した例を示す。図に示すように論理ゲート情報構造体100は、論理ゲート名101と、出力端子リストへのポインタ103と、入力端子リストへのポインタ105とからなる。出力端子リストへのポインタ103は、出力端子リストの先頭アドレスを格納する。すなわち、出力端子リストへのポインタ103は、最初の出力端子名103aの記憶場所アドレス)を格納する。この出力端子リストへのポインタ103が示すアドレスを基準として出力端子リストに含まれる出力端子名を順次読み出すことができる。同様に、入力端子リストへのポインタ105は、入力端子リストの先頭アドレスを格納する。

0016

さらに、論理ゲート情報51は、出力端子名103a…と関連付けられた演算子構造体110を有する。演算子構造体110は、演算を示す演算子オペコードを格納する演算オペコード111と、演算に対する第1の引数のアドレスを格納する第1引数ポインタ113と、第2の引数のアドレスを格納する第2引数ポインタ115とからなる。演算オペコード111は、場合によっては入力端子名を格納する。

0017

図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」はデータが格納されていないことを示し、出力端子リスト及び入力端子リストにおいては、データの終了を示す。

0018

図4に、信号接続情報53をC言語の構造体を用いて構成した例を示す。図に示すように信号接続情報構造体200は、信号線名201と、ファンインへのポインタ203と、ファンアウトリストへのポインタ205とからなる。ファンインへのポインタ203は、この信号線の入力側に接続される論理ゲートの出力端子名が格納される記憶域のアドレスを格納する。ファンアウトリストへのポインタ205は、ファンアウトリストの先頭アドレスを格納する。ファンアウトリストは、ポインタ205a、205b…からなる。ポインタ205a、205b…は、信号線に対して出力側に接続される論理ゲートの入力端子名の記憶域のアドレスを格納する。

0019

図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」が格納される。

0020

集合データベース60は、論理ゲート端子のうちテスト不可能な端子を元とする集合UTと、論理ゲート端子のうちテスト時に外部から制御不可能な端子を元とする集合UCと、論理ゲート端子のうちテスト時に外部から観測不可能な端子を元とする集合UOとからなる。集合データベース60をC言語構造体を用いて構成した例を図6の(a)に示す。集合構造体300は、集合名301と、端子リストへのポインタ303とからなる。端子リストへのポインタ303には、端子リストの先頭アドレス、すなわち、ポインタ303aのアドレスが格納される。端子リストは、集合に含まれる端子の端子名が格納された記憶域を示すポインタ303a…からなる。図6の(b)にデータ格納例を示す。

0021

<テスト容易化設計ルール検査装置の動作>
以上のように構成されるテスト容易化設計ルール検査装置の動作について説明する。

0022

本実施形態のテスト容易化設計ルール検査装置は、テスト容易化設計ルールを検査する際に、所定の論理値を伝播させてネット検査を行うことにより、ATPGにより生成されるテストパターンの故障検出率を概算する。テスト容易化設計ルール検査装置の全体動作を説明する前に、まず、ネット探索処理について説明する。

0023

<ネット探索処理>
図7に、テスト容易化設計ルール検査装置のネット探索処理を示すフローチャートを示す。ネット探索処理では、深さ方向に論理ゲートを順次訪問し、訪問した論理ゲートにおいてその演算オペコードに応じた論理演算を行う。本処理はネット探索部13により制御される。

0024

図に示すように、まず、ネット探索を開始するため初期条件を設定する。すなわち、ネット探索を開始する入力端子と、伝播させる論理値とをデータ入力部3を介して入力する(S101)。次に、入力した入力端子の格納場所を示すポインタをスタック構造メモリプッシュする(S102)。ここで、スタック構造メモリとは一般的に後入れ先出し機能(LIFO)を実現するメモリであり、スタック構造メモリにデータを格納する操作をプッシュといい、スタック構造メモリからデータを取り出す操作をポップという。スタック構造メモリは、訪問すべき論理ゲートの入力端子のポインタを格納する。

0025

その後、スタック構造メモリに格納されたポインタに従って、論理ゲートを訪問し、その論理ゲートに応じて論理演算を行う。

0026

すなわち、スタック構造メモリから論理ゲートの入力端子のアドレスをポップする(S103)。スタック構造メモリからのアドレスのポップの可否を判断し(S104)、スタック構造メモリからアドレスをポップできないとき、すなわち、スタック構造メモリが空のときは、ネット探索処理を終了する。アドレスがポップできたときは、論理ゲート情報を参照し、その入力端子のアドレスから論理ゲートのアドレスを取得し(S105)、さらに、その論理ゲートの出力端子のアドレスを取得する(S106)。出力端子のアドレス取得の可否を判断し(S107)、取得できなかったときはステップS103に戻る。出力端子のアドレスが取得できたときは、その論理ゲートに対して演算オペコードと論理値とに基づき論理演算を行う(S108)。なお、論理演算の結果は、その論理ゲートでの伝播結果として所定の記憶域に保持される。

0027

その後、現時点で訪問している論理ゲートの次に訪問すべき全ての論理ゲートを探し、それらに対して、それらの入力端子のアドレスおよび伝播させる論理値を設定する(S109)。本処理の詳細は後述する。

0028

訪問すべき論理ゲートの入力端子のアドレスおよび伝播させる論理値の設定(S109)が終了すると、ステップS106に戻る。1つの論理ゲートに対する全ての出力端子に対して上記処理(S106〜S109)が繰り返され、その後、ステップS103に戻り、スタック構造メモリから次に探索する入力端子のアドレスをポップする。このとき、スタック構造メモリには、最初に設定された入力端子を持つ論理ゲートの出力が接続された次の論理ゲートの入力端子が格納されており、深さ方向に1つ進んだことになる。以後、上記処理を繰り返すことにより、深さ方向に順次探索が行われる。

0029

なお、上記フローチャートにおいて、ネットの終端に達したときは、次の訪問先設定処理(ステップS109)に入っても、スタック構造メモリに新たに入力端子のアドレスがプッシュされることはない。これによって、次にスタック構造メモリをポップすることにより、別の枝に接続する論理ゲートに対して連続してネット探索を行うことができる。

0030

上記ステップS109における次の訪問先の設定処理を図8に示すフローチャートを用いて説明する。

0031

まず、信号線接続情報を参照して、今訪問中の出力端子のアドレスに基づき、その出力端子が接続される次の論理ゲートの入力端子のアドレスを順次取得する(S111)。入力端子のアドレスは、信号線接続情報のファンアウトリストへのアドレスによって順次指定されることにより取得される。その後、アドレス取得の可否を判断する(S112)。アドレスが取得されたときは、その入力端子に入力する論理値として、前段の論理ゲートでの論理演算結果(ステップS108で計算されたもの)を設定する(S113)。その後、スタック構造メモリに次の入力端子のアドレスをプッシュし(S114)、ステップS111に戻る。今訪問中の論理ゲートの出力端子に対する全ての入力端子のアドレスおよび論理値の設定が終了するまで上記処理を繰り返す。

0032

<ネット探索処理のプログラム例>
図9に、図7及び図8のフローチャートで示されるネット探索処理を実現するプログラムの一例を示す。なお、本プログラムはC言語の文法に基づいて記載されている。

0033

図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とが引数として渡される。

0034

図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のループに対応する。

0035

メインフロ−>
以下に、テスト容易化設計ルール検査装置の全体動作を図10のフローチャートを用いて説明する。

0036

テスト容易化設計ルール検査装置において、データ入力部3において動作の開始操作が入力されると、DFTルール検査部5は、Verilog-HDL等で記述されたテスト対象回路の論理回路情報を参照し、スキャンパス設計における一般的な設計ルールの検査を行う(S1)。一般的なスキャンパス設計における設計ルールとしては、例えば、以下の項目が検査される。すなわち、a)スキャン対象のフリップフロップのクロック、セット/リセット端子が外部から制御可能であるか否か、b)スキャン対象のフリップフロップが、対応するスキャンフリップフロップを有するか否か等が検査される。その後、検査結果を判断し(S2)、スキャンパス設計のための制約を満たしていれば、故障検出率算出部10は、所定のネット探索処理を行って故障検出率を算出する(S3)。最後に、表示制御部20は、設計制約の検査結果、故障検出率、ネット探索処理の結果等を表示する(S4)。

0037

<故障検出率算出処理
以下に、上記故障検出率の算出(ステップS3)について図11のフローチャートを用いて説明する。前述のように本処理は故障検出率算出部10により制御される。

0038

図11において、最初に、データ入力部3がテストパターン自動生成(ATPG)のためのコンストレイン、すなわちテストモードに設定するための信号と、伝播させる論理値の初期値とを入力する(S11)。その後、故障検出率算出部10のネット探索部13は、入力した論理値を回路内の各論理ゲートに伝播させる(S12)。ここで、論理値を伝播させるとは、一の論理ゲートに対して所定の論理値を与えて論理演算を行い、その演算結果を次の論理ゲートに与えて論理演算を行い、さらに、その演算結果をその次の論理ゲートに入力して論理演算を行うという処理を繰り返して、論理演算結果を順次求めていくことである。例えば、図12の(a)に示す例では、外部入力端子71、ANDゲート72、インバータ73、ORゲート74に対して、論理値は0→0→1→1と伝播する。

0039

次に、集合生成部15は、テストモード時にコンストレインによって値が固定されるためにテスト不可能となる論理ゲート端子の集合UTを求める(S13)。つまり、集合生成部15は、論理値の伝播結果を参照し、コンストレインにより端子の状態が0または1に固定される論理ゲート端子(ノード)を検出し、これらの論理ゲート端子を元とする集合UTを作成する。例えば、ANDゲートの入力端子の1つがコンストレインにより0になるとき、ANDゲートの出力は0に固定されるため、その出力端子は集合UTに含まれる。集合UTには、図6に示すような構造体を持つデータベースにおいて、論理ゲート端子名の格納場所のアドレス(ポインタ)が格納される。

0040

次に、集合生成部15は、テストモード時に制御不可能な論理ゲート端子の集合である集合UCを求める。すなわち、ネット探索部13は、スキャン変換対象外のフリップフロップのQ出力から論理値X(論理値Xは「0」または「1」のいずれの値でもよい。)を伝播させてネット探索を行う(S14)。その後、論理値Xの伝播によるネット探索において、論理値XがXのまま伝播する論理ゲート端子を検出し、これらの論理ゲート端子を元とする集合UCを作成する(S15)。

0041

ここで、論理値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に格納された各論理ゲート情報及び信号接続情報を参照して行われる。

0042

図11に戻り、さらに、集合生成部15は、テストモード時に制御不可能な論理ゲート端子の集合である集合UOを求める。すなわち、集合生成部15は、上記のステップで求めた集合UT、UCに含まれない論理ゲート端子の集合UOを仮に作成する(S16)。その後、仮の集合UO内の各論理ゲート端子に対して論理値Xの伝播によるネット探索を実施して(S17)、外部出力端子またはスキャン変換対象のフリップフロップのD入力まで到達できた論理ゲート端子を検出し、仮の集合UOからこれらの論理ゲート端子を除き、最終的な集合UOを作成する(S18)。

0043

最後に、故障検出率計算部17が、集合UT、集合UC、集合UOのそれぞれの元の数をut、uc、uoと、回路中の前端子数をtotalとし、スキャンパス挿入後の故障検出率を次式を用いて算出する(S19)。
故障検出率 = ( total - ( ut + uc + uo ) ) / total * 100 (%)

0044

このようにして、テスト容易化設計ルール検査装置は、スキャンパス挿入後の故障検出率を求める。

0045

以上のように、集合UTは、ATPGのためのコンストレインにより論理値が固定されるため、テスト不能とみなされる論理ゲート端子群である。集合UCは、スキャン変換対象外のフリップフロップ、すなわちスキャンパス挿入後の回路においてスキャンされないフリップフロップのデータ出力により制御されるのでコンビネーショナルATPGでは制御不能となる論理ゲート端子群である。また、集合UOは、スキャン変換対象のフリップフロップ、すなわちスキャンパス挿入後の回路においてスキャンされるフリップフロップや、外部出力端子から観測不能となる論理ゲート端子群である。近年のコンビネーショナルATPGでは、冗長回路フィードバックループパスを除けば、ほぼ100%の故障検出可能なパターンが生成できる。また、近年の論理合成ツール論理回路を合成すれば冗長回路は皆無にできる。したがって、上記のように回路中の全論理回路ゲート端子数から、テスト時に値が固定されるためにテスト不可能な端子、テスト時に制御不可能な端子、観測不可能な端子を除いて故障検出率を求めることにより、ATPGによる故障検出率を予想することができる。

0046

<ネット探索結果等の表示処理
次に、上記ネット探索処理の結果等の表示処理(ステップS4)について説明する。本処理は表示制御部20により制御され、故障検出率の算出過程において求められた集合UT、集合UC、集合UOに属する端子名のリストを表示装置に表示させる。すなわち、集合UT、集合UC、集合UOのそれぞれに属する端子に対して、論理ゲート構造体を参照して端子名を取得し、それらの端子名を表示装置上に表示させる。これにより、ユーザは表示装置上でテスト不能個所、制御不能個所、観測不能個所を確認できるため、テスト容易化のための回路修正個所の特定や、スキャン化率の検討を容易にでき、設計効率を向上できる。

0047

また、本テスト容易化設計ルール検査装置において、データ入力部3はATPGのためのコンストレインのみならず、ユーザにより指定された回路の範囲、すなわち論理ゲートの範囲を入力するようにしてもよい。このとき、表示制御部20は、指定された回路範囲内のネットワークに対するネット探索結果、すなわち論理値の伝播状況を表示するようにする。すなわち、指定された回路の範囲において論理値がどのように伝播していくかを表示する。これにより、ユーザは、ネット探索結果を確認し、その結果が所望のものか否かを迅速に判断でき、伝播させる論理値の変更→確認→変更等を対話的に処理できる。これにより、テスト容易化のための回路修正等に対して迅速な対応が可能となり、設計効率を向上できる。

0048

以上のように、本テスト容易化設計ルール検査装置は、DFTルールの検査を行う際に同時に故障検出率を算出する。このため、故障検出率の算出するために、従来のようにDFTルール検査、スキャンパス挿入、テストパターン自動生成(ATPG)による故障検出率の算出、スキャン化率の増減や回路修正を繰り返す必要がなく、設計効率を向上できる。

0049

本実施形態のテスト容易化設計ルール検査装置によれば、テスト容易化設計ルール検査において、テストパターン自動生成(ATPG)による故障検出率を予想することができる。これにより、故障検出率を求めるために、テスト容易化設計のルール検査、スキャンパス挿入、テストパターン自動生成による故障検出率の算出、スキャン化率の増減や回路修正の各処理を繰り返す必要がなくなり、設計効率を向上できる。

0050

また、テスト不能個所、制御不可能個所、観測不可能個所が表示されるため、テスト容易化設計のための回路修正個所の特定やスキャン化率の検討が容易にでき、設計効率を向上できる。

0051

また、指定された回路範囲におけるネット探索の結果が表示される。このため、ユーザは回路の所望範囲論理伝播状況を確認でき、テスト状態時のスキャンパス解析が可能となる。これにより、テスト容易化設計のための回路修正個所の特定やスキャン化率の検討が容易にでき、設計効率を向上できる。

0052

本発明は、論理ゲートを含む集積回路に対するテスト容易化設計に適用可能である。

図面の簡単な説明

0053

本発明に係るテスト容易化設計ルール検査装置のブロック構成図。
C言語の構造体を用いて構成された論理ゲート情報の構成例を示した図。
C言語の構造体を用いて構成された論理ゲート情報において格納されるデータの具体例を示した図。
C言語の構造体を用いて構成された信号接続情報の構成例を示した図。
C言語の構造体を用いて構成された信号接続情報において格納されるデータの具体例を示した図。
(a)C言語の構造体を用いて構成された集合データベースの構成例を示した図と、(b)その集合データベースにおいて格納されるデータの具体例を示した図。
本発明に係るテスト容易化設計ルール検査装置のネット探索処理を示すフローチャート。
本発明に係るテスト容易化設計ルール検査装置のネット探索処理における次の訪問先の設定処理を示すフローチャート。
本発明に係るテスト容易化設計ルール検査装置のネット探索処理を実現するプログラム例を示す図。
本発明に係るテスト容易化設計ルール検査装置の全体動作を示すフローチャート。
本発明に係るテスト容易化設計ルール検査装置の故障検出率算出処理を示すフローチャート。
(a)一般的な論理値の伝播を説明した図と、(b)論理値Xの伝播を説明した図。

符号の説明

0054

3データ入力部
5DFTルール検査部
10故障率算出部
13ネット探索部
15集合生成部
17 故障率計算部
20表示制御部
50ネットワーク構造データベース
51論理ゲート情報
53信号接続情報
60集合データベース

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ