(57)【特許請求の範囲】
【請求項１】
ＲＴＬ記述内の回路要素に必要に応じてスルー機能およびホールド機能を付加してテスト容易化する方法であって、プログラムに従ってコンピュータに以下のステップを実行させることによって実現され、
（ａ）コンピュータの記憶装置に格納されている動作記述に含まれる演算を抽出して記憶装置内の使用演算リストに格納し、
（ｂ）使用演算リスト内の各演算について、展開前の演算に対してテスト容易化するか、演算を複数の回路要素に展開した後の各回路要素に対してテスト容易化するかを決定してその結果を記憶装置に格納し、
（ｃ）記憶装置に格納されている決定に従って、動作記述からテスト容易化したＲＴＬ記述を生成してテスト容易化済みＲＴＬ記述として記憶装置に格納する各ステップを具備する論理回路のテスト容易化方法。
【請求項２】
ステップ（ｂ）は
（ｉ）各演算について、複数の回路要素に展開するか否かを示すパラメータを生成し、
（ii）展開前の演算に対してテスト容易化する演算について、テスト容易化の形態および、演算の展開形態を示す回路情報を生成するサブステップを含み、
ステップ（ｃ）は、
（ｉ）前記パラメータに従って、動作記述から演算を複数の回路要素に展開したＲＴＬ記述および演算を展開しないＲＴＬ記述を含むＲＴＬ記述を生成し、
（ii）前記テスト容易化形態および回路情報に従って、該ＲＴＬ記述からテスト容易化したＲＴＬ記述を生成するサブステップを含む請求項１記載の方法。
【請求項３】
前記テスト容易化形態および回路情報は各回路要素に対するテスト容易化の形態を記憶するＤＦＴライブラリに追加され、
サブステップ（ｃ）（ii）において、該ＤＦＴライブラリを参照することによってＲＴＬ記述からテスト容易化したＲＴＬ記述が生成される請求項２記載の方法。
【請求項４】
ステップ（ｂ）における決定はテスト容易化による回路面積の増加を評価することにより行なわれる請求項１記載の方法。
【請求項５】
ＲＴＬ記述内の回路要素に必要に応じてスルー機能およびホールド機能を付加してテスト容易化する装置であって、プログラムに従ってコンピュータを動作させることによって実現される以下のものによって構成され、
コンピュータの記憶装置に格納されている動作記述に含まれる演算を抽出して記憶装置内の使用演算リストに格納する演算解析部と、
使用演算リスト内の各演算について、展開前の演算に対してテスト容易化するか、演算を複数の回路要素に展開した後の各回路要素に対してテスト容易化するかを決定してその結果を記憶装置に格納する手段と、
記憶装置に格納されている決定に従って、動作記述からテスト容易化したＲＴＬ記述を生成してテスト容易化済みＲＴＬ記述として記憶装置に格納する手段とを具備する論理回路のテスト容易化装置。
【請求項６】
前記決定手段は
各演算について、複数の回路要素に展開するか否かを示すパラメータを生成する手段と、
展開前の演算に対してテスト容易化する演算について、テスト容易化の形態および、演算の展開形態を示す回路情報を生成する手段とを含み、
前記生成手段は、
前記パラメータに従って、動作記述から演算を複数の回路要素に展開したＲＴＬ記述および演算を展開しないＲＴＬ記述を含むＲＴＬ記述を生成する動作合成部と、
前記テスト容易化形態および回路情報に従って、該ＲＴＬ記述からテスト容易化したＲＴＬ記述を生成するテスト容易化部とを含む請求項５記載の装置。
【請求項７】
前記テスト容易化形態および回路情報は各回路要素に対するテスト容易化の形態を記憶するＤＦＴライブラリに追加され、
前記テスト容易化部は、該ＤＦＴライブラリを参照することによってＲＴＬ記述からテスト容易化したＲＴＬ記述を生成する請求項６記載の装置。
【請求項８】
前記決定手段の決定はテスト容易化のための回路面積の増加を評価することにより行なわれる請求項５記載の装置。
【請求項９】
請求項１〜４記載のいずれか１項に記載の方法をコンピュータに実行させるためのプログラムを記憶した記憶媒体。
【請求項１０】
請求項１〜４記載のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路のテスト容易化の方法と装置およびプログラムに関する。
【０００２】
【従来の技術】
従来、論理回路のテスト容易化設計技術としては、論理回路のＲＴＬ回路記述に対してテスト容易化を行う、和田、増澤、Ｋ．Ｓａｌｕｊａ、藤原、“完全故障検出効率を保証するデータパスの非スキャンテスト容易化設計法、”電子情報通信学会論文誌Ｄ−Ｉ，ＶＯＬ．Ｊ８２−Ｄ−Ｉ，Ｎｏ．７，Ｊｕｌｙ  １９９９、に記載されたものが知られている。この文献では、ＲＴＬ回路記述とＤＦＴライブラリを入力しテスト容易化回路を付加したテスト容易化済ＲＴＬ回路を生成する。
【０００３】
このテスト容易化回路とは、外部入力からテスト対象となる回路要素の入力へ任意の値を伝達しその出力の値を外部出力へ伝達することを可能にするため、各回路要素へ必要に応じて付加されるマスク素子やバイパス回路を用いたスルー機能とレジスタのホールド機能である。
【０００４】
【発明が解決しようとする課題】
テスト容易化回路の生成においては、各演算器に対してテスト容易化のために付加する回路の面積をなるべく小さくすることが要求されている。本発明は、テスト容易化のために付加する回路面積を低減することを目的とする。
【０００５】
【課題を解決するための手段】
この課題を解決するために本発明では、動作記述に含まれる演算を抽出し、抽出された各演算について、展開前の演算に対してテスト容易化するか、演算を複数の回路要素に展開した後の各回路要素に対してテスト容易化するかを決定し、決定に従って、動作記述からテスト容易化したＲＴＬ記述を生成する。
【０００６】
この決定は例えばテスト容易化による回路面積の増加を評価することにより行なわれる。
【０００７】
【発明の実施の形態】
前述のテスト容易化回路の付加は、従来では、図１に示すように、Ｃ言語などにより回路の動作を記述した動作記述１０から動作合成１２によりＲＴＬ記述１４を生成した後にＤＦＴライブラリ１７を参照して行なわれていた（１６，１８）。ＲＴＬ記述１４の生成の際には、動作記述に含まれる例えば
Ｙ＝｜Ａ−Ｂ｜
のような演算（図２参照）は、
0003701230.tif 000002
のように展開される。これは図３に示す回路に相当する。このように展開された後に従来のＤＦＴライブラリ１７を参照してテスト容易化１６が行なわれると、図３の比較器２２と引算器２４にスルー機能を実現するための回路を付加することになる。
【０００８】
一方、展開前の図２に着目すると、図４に示すように、ＴＥＳＴ入力を０にすることによりＢ入力をゼロにするＡＮＤ回路２６を付加するだけで演算Ｙ＝｜Ａ−Ｂ｜に対するスルー機能を達成でき、テスト容易化のために付加される回路の面積を削減することができる。
【０００９】
本発明では、動作記述内に含まれている各演算について、展開前の演算に対してテスト容易化するか、演算を複数の回路要素に展開した後の各回路要素に対してテスト容易化するかを決定し、決定に従って動作記述からテスト容易化したＲＴＬ記述を生成する。この決定は例えばテスト容易化による回路面積の増加をそれぞれ評価して比較することにより行なわれる。
【００１０】
図５は本発明に係るテスト容易化処理の一実施例のフローチャートであり、図６はその中の演算解析部３０の処理の一例を示し、図７はＤＦＴライブラリとパラメータ演算部３４の処理の一例を示す。
【００１１】
図５において、演算解析部３０は動作記述１０中に現われる演算の種類を解析し抽出する。例えば図６に示すような（ａ１，ａ２）と（ｂ１，ｂ２）の２点間のマンハッタン距離を計算する回路の場合、動作記述１０から“ｄｉｆｆ（Ａ，Ｂ）”と“＋”の２つの演算が使用演算リスト３２として抽出される。
【００１２】
ＤＦＴライブラリ及びパラメータ生成部３４はこの使用演算リスト３２を入力し、各演算について展開の可能性および展開可能である場合には展開前の演算に対してテスト容易化する場合と展開後にテスト容易化する場合のそれぞれについて、例えば付加回路の面積を評価し、その結果に基いて展開前の演算に対してテスト容易化するか展開後にテスト容易化するかの決定を行なう。展開前にテスト容易化すると決定された演算については、演算を展開しないことを指示するパラメータ３６と、ＤＦＴライブラリ１７に追加する情報を生成し出力する。ＤＦＴライブラリ１７に追加する情報には、演算とその演算のテスト容易化の形態とその演算の展開の形態が含まれる。
【００１３】
図７に示すように、マンハッタン距離を計算する回路の例では、Ｙ＝ｄｉｆｆ（Ａ，Ｂ）を展開しないことを指示するパラメータが生成され、ＤＦＴライブラリ１７に追加するものとしては、ｄｉｆｆ（Ａ，Ｂ）とそのスルー機能付加の形態と展開のための回路情報とが生成される。
【００１４】
図５に戻って、動作合成部１２′は、動作記述１０からＲＴＬ記述１４′を生成する。この際に演算を展開しないことをパラメータ３６で指示されている演算については、演算を展開しない。テスト容易化部１６′はＤＦＴライブラリ１７′を参照してＲＴＬ記述１４′のテスト容易化を行なう。この際に、展開のための回路情報がＤＦＴライブラリ１７′に格納されている演算については、テスト容易化のための回路を付加した後に演算の展開が行なわれ、テスト容易化済ＲＴＬ記述１８′が生成される。マンハッタン距離を計算する回路の例では、Ｙ＝｜Ａ−Ｂ｜のＢにテスト容易化のためのＡＮＤ回路（前述）が付加され、さらに比較器とセレクタと引算器に展開された形のテスト容易化済ＲＴＬ記述が生成される。
【００１５】
図８には３次ラティスウェーブフィルタの動作記述に対応するデータフローグラフを示す。図中、ＰＩはデータの入力、ＰＯはデータの出力、Ｄ１，Ｄ２，Ｄ３はデータ変換、黒丸は変数を表わす。この場合に、演算解析部３０が抽出する演算リストは
｛＋（加算）、＊（乗算）｝
となる。乗算器は動作合成において通常、図９に示す加算器を使った回路に展開されるが、この展開された各回路要素に対してテスト容易化すると付加すべき回路面積が増大する。そこで、ＤＦＴライブラリとパラメータ演算部３４はＤＦＴライブラリに乗算器用として図１０に示すテスト容易化の構成と図９に示す展開の構成を追加し、＊（乗算）を加算器を使用した回路に展開しないことを指示するパラメータを生成する。
【００１６】
これにより、動作合成部１２′は図１１に示すように、乗算器（Ｍｕｌｔ．１）を展開しない形のＲＴＬ記述１４′を生成し、テスト容易化部１６′はＤＦＴライブラリ１７′を参照して、図１２に示すように乗算器に対するテスト容易化を行なう。図示しないが、この後テスト容易化部１６′はＤＦＴライブラリ１７′の情報に基いて乗算器Ｍｕｌｔ．１を加算器を使用した構成に展開する。
【００１７】
以上説明した例では、動作合成と演算解析部とＤＦＴライブラリ及びパラメータ生成部とを区別して構成した例で説明したが、動作合成の中に演算解析部とＤＦＴライブラリ及びパラメータ生成部の機能をもたせることによっても同様に実施可能である。
【００１８】
また、図１３に示すように動作記述そのものを変更することによっても同様に実施可能である。この場合に、前述のマンハッタン距離計算の例では、ブロック４０において、動作記述
0003701230.tif 000003
に変換され、ｄｉｆｆ（Ａ，Ｂ）を展開しないことを指示するパラメータが生成される。動作合成部１２′はパラメータの指示に従ってｄｉｆｆ（Ａ，Ｂ）を展開しないＲＴＬ記述を生成し、テスト容易化部１６′はｄｉｆｆ（Ａ，Ｂ）に対してＤＦＴライブラリ１７′を参照してテスト容易化した後、展開する。
【００１９】
これまでに説明したテスト容易化方法はコンピュータに所定の処理を実行させるためのプログラムにより実現される。このプログラムは、コンピュータに接続されたハードディスクに格納しても良いし、ＣＤ−ＲＯＭなどの記憶媒体に記憶させて必要に応じてＣＤ−ＲＯＭをＣＤ−ＲＯＭドライブへ挿入することにより、ＣＤ−ＲＯＭに格納されたプログラムをコンピュータ内の記憶装置へ読み込ませても良いし、ネットワークを介してネットワークに接続された記憶装置から必要に応じてパーソナルコンピュータ内の記憶装置へ読み込ませても良い。それによって、本発明の方法及び装置が実現される。
【００２０】
【発明の効果】
以上のように本発明によれば、テスト容易化のために付加する回路の面積を低減するという有利な効果が得られる。
【図面の簡単な説明】
【図１】従来のテスト容易化の手順を示す図である。
【図２】動作記述内の演算の一例を示す図である。
【図３】図２の演算を展開した形を示す図である。
【図４】展開前の演算を考慮したテスト容易化の一例を示す図である。
【図５】本発明のテスト容易化の手順を示す図である。
【図６】演算解析部の動作の一例を示す図である。
【図７】ＤＦＴライブラリ及びパラメータ生成部の動作の一例を示す図である。
【図８】動作記述の他の例を示すデータフローグラフである。
【図９】乗算器の展開を示す図である。
【図１０】展開前の乗算器を考慮したテスト容易化の例を示す図である。
【図１１】図８の動作記述から生成されるＲＴＬ記述を示す図である。
【図１２】テスト容易化したＲＴＬ記述の例を示す図である。
【図１３】本発明のテスト容易化の手順の他の例を示す図である。
【図１】
0003701230.tif 000004
【図２】
0003701230.tif 000005
【図３】
0003701230.tif 000006
【図４】
0003701230.tif 000007
【図５】
0003701230.tif 000008
【図６】
0003701230.tif 000009
【図７】
0003701230.tif 000010
【図８】
0003701230.tif 000011
【図９】
0003701230.tif 000012
【図１０】
0003701230.tif 000013
【図１１】
0003701230.tif 000014
【図１２】
0003701230.tif 000015
【図１３】
0003701230.tif 000016