(57)【特許請求の範囲】
【請求項１】
テスト時にテスト用のスキャンパタンをシリアル入力するスキャンシフト入力端子と、前記スキャンシフト入力端子から与えられた前記スキャンパタンをシフトレジスタ動作で順次転送する第１のスキャンフリップフロップ群と、対応する前記第１のスキャンフリップフロップ群から転送された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理し出力する第１の組み合わせ回路群と、前記第１の組み合わせ回路群で処理された前記スキャンパタンを、前記スキャンパタンによる論理に従って演算処理しその処理結果を出力するハードマクロ回路と、前記ハードマクロ回路で演算処理された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理して出力する第２の組み合わせ回路群と、前記第２の組み合わせ回路群で処理された前記スキャンパタンを入力しシフトレジスタ動作で順次転送する第２のスキャンフリップフロップ群と、前記第２のスキャンフリップフロップ群から転送された前記スキャンパタンを、あらかじめ定めた期待値と比較させるための比較信号として外部にシリアル出力するスキャンシフト出力端子とを備えた回路構成であり、かつ、前記テスト時に前記回路構成に適用される前記スキャンパタンは、前記ハードマクロ回路、前記ハードマクロ回路の入力側に接続される前記第１の組み合わせ回路群、前記ハードマクロ回路の出力側に接続される前記第２の組み合わせ回路群、それぞれの論理も含めてテストする構成を有することを特徴とするハードマクロテスト回路。
【請求項２】
あらかじめレイアウトデータ、マクロの論理回路、マクロ単体テスト用のテストパタン、シミュレーションデータも含みデータベース化されて登録されたハードマクロ回路と、前記ハードマクロ回路の周辺回路としてあらかじめ内在させたスキャンパス手段のスキャンフリップフロップ群および組み合わせ回路群とを備え、前記スキャンパス手段が、あらかじめ準備したテスト用のスキャンパタンにより、スキャンフリップフロップ群と前記ハードマクロ回路との間に配置された前記組み合わせ回路の論理も含めてテストする機能を有することを特徴とするハードマクロテスト回路。
【請求項３】
テスト用の前記スキャンパタンは、あらかじめセルライブラリに登録された前記ハードマクロ回路の単体テスト用テストパタンを、１パタン目より順次に、前記組み合わせ回路の論理も含めてテストするパタンに変換して生成したテストパタンである請求項１または２記載のハードマクロテスト回路。
【請求項４】
通常動作時には入力データをパラレル入力し、テスト時にはシフトレジスタとしてスキャンパス手段を構成しスキャンシフト入力端子からの入力データをシリアル転送する前記第１のスキャンフリップフロップ群とこれら第１のスキャンフリップフロップ群それぞれのパラレル出力を入力する第１の組み合わせ回路群とからなる入力側のユーザロジックと、前記第１の組み合わせ回路群それぞれの出力を入力する前記ハードマクロ回路と、このハードマクロ回路の複数の出力のうち、それぞれ対応する出力を入力する第２の組み合わせ回路群とこれら第２の組み合わせ回路群それぞれの対応する出力をパラレル入力し、かつテスト時には前記スキャンパス手段として前記第１のスキャンフリップフロップ群からシリアル転送された入力データをシリアル入力する前記第２のスキャンフリップフロップ群とからなる出力側のユーザロジックとで構成する請求項１、または２記載のハードマクロテスト回路。
【請求項５】
前記通常動作時または前記テスト時のいずれの状態であっても、前記組み合わせ回路と前記ハードマクロ回路との間は、他の回路を介さず、常時直接接続状態とする請求項４記載のハードマクロテスト回路。
【請求項６】
テスト時にテスト用のスキャンパタンをシリアル入力するスキャンシフト入力端子と、前記スキャンシフト入力端子から与えられた前記スキャンパタンをシフトレジスタ動作で順次転送する第１のスキャンフリップフロップ群と、対応する前記第１のスキャンフリップフロップ群から転送された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理し出力する第１の組み合わせ回路群と、前記第１の組み合わせ回路群で処理された前記スキャンパタンを、前記スキャンパタンによる論理に従って演算処理しその処理結果を出力するハードマクロ回路と、前記ハードマクロ回路で演算処理された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理して出力する第２の組み合わせ回路群と、前記第２の組み合わせ回路群で処理された前記スキャンパタンを入力しシフトレジスタ動作で順次転送する第２のスキャンフリップフロップ群と、前記第２のスキャンフリップフロップ群から転送された前記スキャンパタンを、あらかじめ定めた期待値と比較させるための比較信号として外部に出力するスキャンシフト出力端子とを備えたハードマクロテスト回路であり、かつ、前記テスト時に、前記ハードマクロテスト回路が、前記スキャンパタンにより、前記ハードマクロ回路、前記ハードマクロ回路の入力側に接続される前記第１の組み合わせ回路群、前記ハードマクロ回路の出力側に接続される前記第２の組み合わせ回路群それぞれの論理も含めてテストすることを特徴とするハードマクロテスト回路のテスト方法。
【請求項７】
あらかじめレイアウトデータ、マクロの論理回路、マクロ単体テスト用のテストパタン、シミュレーションデータも含みデータベース化されて登録されたハードマクロ回路と、前記ハードマクロ回路の周辺回路としてあらかじめ内在させたスキャンパス手段のスキャンフリップフロップ群および組み合わせ回路群とを備え、前記スキャンパス手段が、予め準備したテスト用のスキャンパタンにより、スキャンフリップフロップ群と前記ハードマクロ回路との間に配置された前記組み合わせ回路の論理も含めてテストすることを特徴とするハードマクロテスト回路のテスト方法。
【請求項８】
前記ハードマクロ回路の周辺回路に内在させたスキャンパス手段が、前記スキャンフリップフロップと前記ハードマクロ回路との間に配置された組み合わせ回路の論理も含めたテストを行うために、前記ハードマクロ回路の入力条件を満たすようにあらかじめ設定した前記組み合わせ回路群の入力値を前記スキャンフリップフロップの入力とするテストパタンを用いて、前記テストを実行する請求項６記載のハードマクロテスト回路のテスト方法。
【請求項９】
前記スキャンパス手段が、あらかじめセルライブラリに登録された前記ハードマクロ回路の単体テスト用テストパタンを、１パタン目より順次に、前記組み合わせ回路の論理も含めてテストするパタンに変換して生成したテスト用の前記スキャンパタンを用いてテストする請求項７記載のハードマクロテスト回路のテスト方法。
【請求項１０】
入力手段と記憶手段と制御手段と表示手段とを備え、あらかじめ前記記憶手段のセルライブラリにデータベースとして登録されているハードマクロ回路の単体テスト用テストパタンを基に、ハードマクロ回路のスキャンテストパタン自動生成および前記テストパタンによる故障シミュレーションを実行する機能を備えたエンジニアリング・ワークステーション（ＥＷＳ）装置を用い、前記記憶手段から読み出したスキャンパタン自動生成用回路を前記制御手段に入力するとともに、前記制御手段が、
前記スキャンパタン自動生成用回路から単体テスト用テストパタンを選択し、そのパタン番号に対応する前記ハードマクロ回路の入力値を基に入力側の前記スキャンフリップフロップ群それぞれの入力値を逆算して求め、さらに、前記ハードマクロ回路の出力値を基に出力側の前記スキャンフリップフロップ群それぞれの出力値を求める処理を前記パタン番号の終了まで順次に繰り返して前記ハードマクロ回路の単体テスト用テストパタンをスキャンテストパタン自動生成パタンに変換する処理と、変換したスキャンテストパタン自動生成パタンを故障シミュレーションを実行して目標とする故障検出率が得られたかを検証し、未達成の場合はテストポイントとして新たなスキャンフリップフロップを挿入しパタン値を与えて目標とする故障検出率が得られるようにした後、前記スキャンテストパタン自動生成パタンを前記ハードマクロ回路のテスト用のスキャンパタンに変換する処理を実行して、テスト用の前記スキャンパタンを生成することを特徴とするハードマクロテスト回路のテストパタン生成方法。
【請求項１１】
前記ハードマクロ回路の単体テスト用パタンをマクロテスト用スキャン自動生成パタンに変換する処理は、前記制御手段が、
前記スキャンパタン自動生成用回路から前記入力側のスキャンフリップフロップおよび組み合わせ回路と、ハードマクロ回路と、出力側の組み合わせ回路およびスキャンフリップフロップとをそれぞれ切り出すハードマクロ回路のスキャンテストパタン自動生成用のマクロテスト回路生成処理と、予め所定の記憶装置に格納されている前記単体テスト用パタンを呼び出して１パタン目を選択してパタン変換の開始をテストパタンの先頭から行えるように設定する初期設定処理と、
前記初期設定処理で選択されているパタン番号を選択し、前記ハードマクロ回路の入力および出力端に割り当てるパタン選択処理と、
前記パタン選択処理で割り当てられたパタン番号に対応するハードマクロ回路の入力値を、前記入力側の組み合わせ回路を経由して入力側のスキャンフリップフロップの方向に論理を逆算し、前記パタン選択処理で割り当てられた値を実現するためのスキャンフリップフロップに設定すべき値を求めるスキャンテストパタン自動生成用の入力パタン生成処理と、
前記パタン選択処理で割り当てられたパタン番号に対応する、ハードマクロ回路の出力値を出力側の組み合わせ回路を経由して出力側のスキャンフリップフロップの方向に論理を伝播し、前記パタン選択処理で割り当てられた値を実現するための出力側の前記スキャンフリップフロップに出力される値を求めるスキャンテストパタン自動生成用の出力パタン生成処理と、
前記スキャンテストパタン自動生成用の前記入力および出力パタン生成処理において対象とならなかったスキャンフリップフロップの論理値を不定値に設定する対象外スキャンフリップフロップのパタン設定処理と、
入力されたハードマクロ回路の単体テスト用パタンを１パタン目から最終パタンまで順次パタン生成が行われたと判定された時、前記マクロテスト用スキャン自動生成パタンを出力するマクロテスト用スキャン自動生成パタンのパタン出力処理と、
前記パタン選択処理で選択されているパタン番号が、前記ハードマクロ回路の前記単体テスト用パタンの最終パタン番号に到達していれば、前記マクロテスト用スキャン自動生成パタンのパタン出力処理へ移行し、到達していなければパタンカウンタ処理へ移行するパタン終了判定処理と、
ハードマクロ回路の単体テスト用テストパタンのパタン番号を１パタン進めて、次のテストパタンをパタン選択処理で選択できるようにするパタンカウンタ処理と、を実行する請求項１０記載のハードマクロテスト回路のテストパタン生成方法。
【請求項１２】
前記スキャンテストパタン自動生成パタンを前記ハードマクロ回路のテスト用のスキャンパタンに変換する処理は、前記制御手段が、
前記スキャンパタン自動生成用回路から入力側のスキャンフリップフロップと入力側の組み合わせ回路とハードマクロ回路とを切り出した回路を生成するハードマクロ回路の入力側テストパタン自動生成用の回路生成処理と、
前段の処理で生成したマクロテスト用スキャン自動生成パタンを用いて、ハードマクロ回路の入力側スキャンテストパタン自動生成用の回路生成処理で生成して切り出した回路の動作を検証するテスト困難度調査処理と、
前記テスト困難度調査処理で検証した処理結果を、予め設定された故障検出率に到達したかを判定し、到達していない場合はテストポイント挿入処理へ移行し、到達した場合はハードマクロ回路の出力側スキャンテストパタン自動生成用の回路生成処理に移行する判定処理と、
前記判定処理における判定結果が予め設定された故障検出率に到達していない原因である未検出故障箇所の内、最も入力側に近い箇所にテストポイントを挿入し、かつ挿入したテストポイントに論理が伝播する値を入力するための端子と、その伝搬する値とを設定するテストポイント挿入処理と、
通常のスキャンテストパタン自動生成に用いるスキャンテストパタン自動生成用回路から、ハードマクロ回路と組み合わせ回路とスキャンフリップフロップとを切り出した回路を生成する前記ハードマクロ回路の出力側スキャンテストパタン自動生成用の回路生成処理と、
前記ハードマクロ回路の入力側スキャンテストパタン自動生成用の回路生成処理から前記ハードマクロ回路の出力側スキャンテストパタン自動生成用の回路生成処理までと同じ処理を出力側のユーザロジックに対して行う処理と、
入力側及び出力側の前記テストポイント挿入処理でそれぞれ挿入されたテストポイントに対し、前記スキャンフリップフロップそれぞれに値を設定出来るように、前記ハードマクロ回路テスト対象外であるスキャンフリップフロップ以外の出力とテストポイントの接続とを前記ハードマクロ回路のテスト対象スキャンフリップフロップとして扱うために、前記テスト対象外スキャンフリップフロップのリストから削除し、かつ、前記マクロテスト用スキャン自動生成パタンに対し、前記テストポイントに論理が伝播する値を設定するテストポイント接続処理と、予め準備されている前記ハードマクロ回路の制御入力に対して、スキャンシフト動作時にそれ以前の入力パタン値を固定する回路を挿入するハードマクロ回路の制御回路挿入処理と、
前記マクロ用スキャン自動生成パタンを当該半導体装置のハードマクロ回路テスト用のスキャンパタンに変換するハードマクロ回路テスト用のスキャンテストパタン自動生成処理と、を実行する請求項１０記載のハードマクロテスト回路のテストパタン生成方法。
【請求項１３】
入力側および出力側の前記テストポイント挿入処理は、前記テスト困難度調査処理の処理結果に対し、予め指定された、テストポイント挿入対象外とする指定が有った故障については、未検出故障から削除する請求項１２記載のハードマクロテスト回路のテストパタン生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はハードマクロテスト回路、そのテスト方法およびテストパタン生成方法に係わり、特にハードマクロ回路およびそのテスト回路を内蔵した半導体装置（ＬＳＩ）に対するスキャンパス検査および内蔵したハードマクロ回路に対する単体検査の両方の検査を一体化して試験するハードマクロテスト回路、そのテスト方法およびテストパタン生成方法に関する。
【０００２】
【従来の技術】
近年、半導体素子の微細化技術の進展に伴い、その半導体素子で構成する半導体装置も大規模化している。例えば、１つの半導体基板上に既存の複数のチップを搭載し、これらのチップ相互間を所定の配線で結線することによって、これらのチップの組み合わせに基づいた所望の多機能な処理を実現する半導体装置、いわゆるシステムオンチップ（以下、ＳＯＣと称する）を構成することも可能になってきている。
【０００３】
この種の従来のシステムオンチップの機能をテストする方法も考慮した設計、すなわち、テスト設計が一般的に行われるようになっている。このテスト設計では、ランダムロジックによる組み合わせ回路やフリップフロップ等の順序回路で構成する周辺回路（以下、ユーザロジックと称す）部分に対しては、フリップフロップ群をセレクタにより通常動作時の接続状態からテスト状態に切り替えることによって、フリップフロップ群を直列接続しシフトレジスタの状態にした上で、テストパターンをシリアルに与え、テストパタンが順次に最後のフリップフロップまで到達した時点で、通常動作の接続状態にセレクタを切り替えフリップフロップにデータを取り込み、再度テスト状態に切り替えることによって、それぞれの保持内容を順次に読み出すスキャンパスによるテストを適用し、ハードマクロ回路に対してはテストバスを用いるテストを適用するといった、個々に確立したテスト方式を組み合わせている。
【０００４】
ハ−ドマクロのライブラリは、レイアウトのみならずマクロの論理回路、マクロ単体テスト用パタン等、シミュレーションデータなども含みデータベース化されている。
【０００５】
半導体装置上に搭載するハードマクロ回路は、その個数だけでなく、各ハードマクロ回路の端子（以下、ハードマクロ回路端子と称す）も増えてきており、ハードマクロ回路端子に接続する接続線をマルチプレクサ等を経由して半導体装置の入出力端子まで引き出し接続することにより、これらの入出力端子を介してハードマクロ回路をテストする、いわゆるテストバス方式の限界が見えてきている。
【０００６】
上述したテストバス方式の一例の構成を示した図５を参照すると、（ハードマクロ回路端子数）≦（半導体装置の端子数）の関係が成立する場合、ハードマクロ回路の入力端子とユーザロジックである組み合わせ回路の出力端子との間に、マルチプレクサ３０１を挿入している。
【０００７】
このマルチプレクサ３０１それぞれのデータ入力端子の一方を、周辺に配置された組み合わせ回路１０の対応する回路の出力端子に接続し、マルチプレクサ３０１のデータ入力端子の他方を、それぞれ対応するテストバス３１０に接続する。
【０００８】
一方、マルチプレクサ３０１それぞれの出力端子の出力線がそれぞれ対応する入力端子に接続されるハードマクロ回路２の出力端子を、それぞれ対応するテストバス３１０に接続することによって、ハードマクロ回路単体のテストが行えるように構成されている。
【０００９】
ここで、（ハードマクロ回路端子数）≦（半導体装置の端子数の関係が）が成立しない場合であっても、ハードマクロ回路を半導体装置と見立ててテストするため、半導体装置の入出力端子に割り当てられないハードマクロ回路端子が発生し、半導体装置外部と直接信号のやり取りが行えない入出力端子が存在することになる。
【００１０】
そこで、ハードマクロ回路の出力を組み合わせ回路を用いて論理演算する。すなわち、ハードマクロ回路と、組み合わせ回路で実現したテスト用周辺回路とを含めたテストパタンを作成し、このテストパタンを、前述したテストバスを用いて（ハードマクロ回路）＋（テスト用周辺回路）とやり取りを行っている。
【００１１】
上述したように従来のハードマクロ回路では、ハードマクロ回路と、組み合わせ回路で実現したテスト用周辺回路とを含めたテストパタンを予め作成しておき、テスト時には、作成しておいたテストパタンを前述したテストバスを介して、ハードマクロ回路およびテスト用周辺回路を含めてデータ信号のやり取りを行っている。
【００１２】
そのため、例えば、図５およびハードマクロ回路端子数を半導体装置の入出力端子数以下にする組み合わせ回路を追加したハードマクロ回路テスト回路図を示す図６を併せて参照すると、テストバス３１０のバス配線領域およびマルチプレクサ３０１の面積オーバーヘッドの他に、さらに図６に示したＥＸＯＲ回路３０２を含むテスト用周辺回路の面積オーバーヘッドが発生する。
【００１３】
また、他の例として、ハードマクロ回路と組み合わせ回路との境界の論理をバイパスするための迂回回路を有する構成を示した図７を参照すると、ハードマクロ回路２と組み合わせ回路２３との境界の論理をハードマクロ回路２の論理に関与しない他のスキャンフリップフロップ回路３０と迂回経路３１１およびＥＸＯＲ回路３０２を介して接続するためのマルチプレクサＭＵＸ３０３と組み合わせ回路２４とを有する。その配線領域分が、更に追加のオーバーヘッドとなっている。
【００１４】
一方、ハードマクロ回路のテスト回路の例が特開平１１−１０１８５９号公報に記載されている。同公報記載の構成を示した図８を参照すると、機能マクロ回路と、この機能マクロ回路の入力信号をテスト信号ＭＴＥＳＴに応答して選択する選択回路Ｓ１と、この選択回路Ｓ１の一方の入力端子に接続される組み合わせ回路Ｃ１と、選択回路Ｓ１の他方の入力端子に接続される検査入力端子Ｋ２、前段の組み合わせ回路の出力をＤ入力に受けスキャン入力端子Ｋ１からスキャン入力信号をＤＴ入力に受け後段の組み合わせ回路Ｃ１に信号を出力するスキャンフリップフロップＳＦＦ１と、テスト信号ＳＴＥＳＴの極性反転信号に応答して機能マクロ回路の出力または他方の入力を選択する選択回路Ｓ２と、この選択回路Ｓ２の出力を外部へ出力する検査出力Ｋ３と、選択回路Ｓ２の出力を受ける組み合わせ回路Ｃ２と、この組み合わせ回路Ｃ２の出力をＤ入力に受けＤＴ入力にＳＦＦ１の負極性出力を受けて正極性の出力を次段の選択回路へ出力するＳＦＦ２と、このＳＦＦ２の負極性出力をＤＴ入力に受けＤ入力に前段の組み合わせ回路の出力を受け正極性出力を選択回路Ｓ２の他方の入力端へ出力するＳＦＦ３と、このＳＦＦ３の負極性出力をＤＴ入力に受け前段の組み合わせ回路の出力をＤ入力に受けるＳＦＦ４と、このＳＦＦ４の正極性出力を受ける組み合わせ回路Ｃ３と、この組み合わせ回路Ｃ３の出力を一方の選択入力端に入力し、他方の選択入力端に選択回路Ｓ１の出力を受ける選択回路Ｓ３と、この選択回路Ｓ３の出力をＤ入力端に受けＤＴ入力にＳＦＦ４の負極性出力を受けるとともに自身の正極性出力を次段の選択回路へ出力するＳＦＦ５と、このＳＦＦ５の負極性出力をＤＴ入力に受けＤ入力に前段の組み合わせ回路の出力をを受けるとともに自身の負極性出力をスキャン出力端子Ｋ４を介して外部へ出力するＳＦＦ６と、このＳＦＦ６の正極性出力およびテスト信号ＳＴＥＳＴの論理をとりその出力で選択回路Ｓ３を制御するＡＮＤ回路３ＡＣとで構成する。
【００１５】
なお、各スキャンフリップフロップＳＦＦは、Ｔ入力端に入力するキャプチャモード信号ＴＥに応答してＤ入力またはＤＴ入力を選択する。
【００１６】
上述したスキャン入力信号またはデータ入力信号を受けるＳＦＦ１の出力と機能マクロ回路の入力との間に挿入された組み合わせ回路Ｃ１の故障検出は経路Ｋ３２で行い、機能マクロ回路の出力とＳＦＦ２の入力との間に挿入された組み合わせ回路Ｃ２の故障検出は経路Ｋ３４で行い、ＳＦＦ４とＳＦＦ５との間に挿入された組み合わせ回路Ｃ３の故障検出は経路Ｋ３３で行うことができる。
【００１７】
そのため、ハードマクロ回路だけでなく設けられた全ての組み合わせ回路の故障検出が行える。
【００１８】
【発明が解決しようとする課題】
上述したように従来のハードマクロ回路では、図５，図６および図７で説明したように、テストバス３１０のバス配線領域、およびマルチプレクサ３０１の面積オーバーヘッド、図６におけるＥＸＯＲ回路３０２のオーバヘッドに加え、迂回経路３１１、即ちハードマクロ回路と組み合わせ回路の境界の論理をハードマクロ回路の論理に関与しない他のスキャンフリップフロップ回路と接続するための迂回経路３１１と図７のＥＸＯＲ回路３０２とマルチプレクサ３０３とその配線領域分が、更に追加のオーバーヘッドとなっている。
【００１９】
一方、特開平１１−１０１８５９号公報に記載のハードマクロ回路のテスト回路では、組み合わせ回路の前または後に設ける選択回路およびその接続配線分のオーバヘッドが増加する。
【００２０】
本発明の目的は、上述した従来の欠点に鑑みなされたものであり、ハードマクロ回路の周辺回路に設けたマルチプレクサ（選択回路）およびテストバスや迂回回路、ＥＸＯＲ回路等によるチップサイズに対するオーバーヘッドが生じない工夫をした、ハードマクロ回路を内蔵した半導体装置のスキャンパス検査および内蔵したハードマクロ回路の単体検査の両検査が適用できる回路構成を提供することにある。
【００２１】
【課題を解決するための手段】
本発明のハードマクロテスト回路は、テスト時にテスト用のスキャンパタンをシリアル入力するスキャンシフト入力端子と、前記スキャンシフト入力端子から与えられた前記スキャンパタンをシフトレジスタ動作で順次転送する第１のスキャンフリップフロップ群と、対応する前記第１のスキャンフリップフロップ群から転送された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理し出力する第１の組み合わせ回路群と、前記第１の組み合わせ回路群で処理された前記スキャンパタンを、前記スキャンパタンによる論理に従って演算処理しその処理結果を出力するハードマクロ回路と、前記ハードマクロ回路で演算処理された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理して出力する第２の組み合わせ回路群と、前記第２の組み合わせ回路群で処理された前記スキャンパタンを入力しシフトレジスタ動作で順次転送する第２のスキャンフリップフロップ群と、前記第２のスキャンフリップフロップ群から転送された前記スキャンパタンを、あらかじめ定めた期待値と比較させるための比較信号として外部にシリアル出力するスキャンシフト出力端子とを備えた回路構成であり、かつ、前記テスト時に前記回路構成に適用される前記スキャンパタンは、前記ハードマクロ回路、前記ハードマクロ回路の入力側に接続される前記第１の組み合わせ回路群、前記ハードマクロ回路の出力側に接続される前記第２の組み合わせ回路群、それぞれの論理も含めてテストする構成を有することを特徴とする。
【００２２】
本発明のハードマクロテスト回路の他の特徴は、あらかじめレイアウトデータ、マクロの論理回路、マクロ単体テスト用のテストパタン、シミュレーションデータも含みデータベース化されて登録されたハードマクロ回路と、前記ハードマクロ回路の周辺回路としてあらかじめ内在させたスキャンパス手段のスキャンフリップフロップ群および組み合わせ回路群とを備え、前記スキャンパス手段が、予め準備したテスト用のスキャンパタンにより、スキャンフリップフロップ群と前記ハードマクロ回路との間に配置された前記組み合わせ回路の論理も含めてテストする機能を有することにある。
【００２４】
また、テスト用の前記スキャンパタンは、あらかじめセルライブラリに登録された前記ハードマクロ回路の単体テスト用テストパタンを、１パタン目より順次に、前記組み合わせ回路の論理も含めてテストするパタンに変換して生成したテストパタンである。
【００２６】
また、通常動作時には入力データをパラレル入力し、テスト時にはシフトレジスタとしてスキャンパス手段を構成しスキャンシフト入力端子からの入力データをシリアル転送する前記第１のスキャンフリップフロップ群とこれら第１のスキャンフリップフロップ群それぞれのパラレル出力を入力する第１の組み合わせ回路群とからなる入力側のユーザロジックと、前記第１の組み合わせ回路群それぞれの出力を入力する前記ハードマクロ回路と、このハードマクロ回路の複数の出力のうち、それぞれ対応する出力を入力する第２の組み合わせ回路群とこれら第２の組み合わせ回路群それぞれの対応する出力をパラレル入力し、かつテスト時には前記スキャンパス手段として前記第１のスキャンフリップフロップ群からシリアル転送された入力データをシリアル入力する前記第２のスキャンフリップフロップ群とからなる出力側のユーザロジックとで構成することもできる。
【００２７】
さらにまた、前記通常動作時または前記テスト時のいずれの状態であっても、前記組み合わせ回路と前記ハードマクロ回路との間は、他の回路を介さず、常時直接接続状態とする。
【００２８】
本発明のハードマクロテスト回路のテスト方法は、テスト時にテスト用のスキャンパタンをシリアル入力するスキャンシフト入力端子と、前記スキャンシフト入力端子から与えられた前記スキャンパタンをシフトレジスタ動作で順次転送する第１のスキャンフリップフロップ群と、対応する前記第１のスキャンフリップフロップ群から転送された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理し出力する第１の組み合わせ回路群と、前記第１の組み合わせ回路群で処理された前記スキャンパタンを、前記スキャンパタンによる論理に従って演算処理しその処理結果を出力するハードマクロ回路と、前記ハードマクロ回路で演算処理された前記スキャンパタンを入力し組み合わせ回路の論理に従い処理して出力する第２の組み合わせ回路群と、前記第２の組み合わせ回路群で処理された前記スキャンパタンを入力しシフトレジスタ動作で順次転送する第２のスキャンフリップフロップ群と、前記第２のスキャンフリップフロップ群から転送された前記スキャンパタンを、あらかじめ定めた期待値と比較させるための比較信号として外部に出力するスキャンシフト出力端子とを備えたハードマクロテスト回路であり、かつ、前記テスト時に、前記ハードマクロテスト回路が、前記スキャンパタンにより、前記ハードマクロ回路、前記ハードマクロ回路の入力側に接続される前記第１の組み合わせ回路群、前記ハードマクロ回路の出力側に接続される前記第２の組み合わせ回路群それぞれの論理も含めてテストすることにある。
【００２９】
本発明のハードマクロテスト回路のテスト方法の他の特徴は、あらかじめレイアウトデータ、マクロの論理回路、マクロ単体テスト用のテストパタン、シミュレーションデータも含みデータベース化されて登録されたハードマクロ回路と、前記ハードマクロ回路の周辺回路としてあらかじめ内在させたスキャンパス手段のスキャンフリップフロップ群および組み合わせ回路群とを備え、前記スキャンパス手段が、予め準備したテスト用のスキャンパタンにより、スキャンフリップフロップ群と前記ハードマクロ回路との間に配置された前記組み合わせ回路の論理も含めてテストすることにある。
【００３０】
また、前記ハードマクロ回路の周辺回路に内在させたスキャンパス手段が、前記スキャンフリップフロップと前記ハードマクロ回路との間に配置された組み合わせ回路の論理も含めたテストを行うために、前記ハードマクロ回路の入力条件を満たすようにあらかじめ設定した前記組み合わせ回路群の入力値を前記スキャンフリップフロップの入力とするテストパタンを用いて、前記テストを実行する。
【００３１】
さらに、前記スキャンパス手段が、あらかじめセルライブラリに登録された前記ハードマクロ回路の単体テスト用テストパタンを、１パタン目より順次に、前記組み合わせ回路の論理も含めてテストするパタンに変換して生成したテスト用の前記スキャンパタンを用いてテストすることもできる。
【００３２】
入力手段と記憶手段と制御手段と表示手段とを備え、あらかじめ前記記憶手段のセルライブラリにデータベースとして登録されているハードマクロ回路の単体テスト用テストパタンを基に、ハードマクロ回路のスキャンテストパタン自動生成および前記テストパタンによる故障シミュレーションを実行する機能を備えたエンジニアリング・ワークステーション（ＥＷＳ）装置を用い、前記記憶手段から読み出したスキャンパタン自動生成用回路を前記制御手段に入力するとともに、前記制御手段が、
前記スキャンパタン自動生成用回路から単体テスト用テストパタンを選択し、そのパタン番号に対応する前記ハードマクロ回路の入力値を基に入力側の前記スキャンフリップフロップ群それぞれの入力値を逆算して求め、さらに、前記ハードマクロ回路の出力値を基に出力側の前記スキャンフリップフロップ群それぞれの出力値を求める処理を前記パタン番号の終了まで順次に繰り返して前記ハードマクロ回路の単体テスト用テストパタンをスキャンテストパタン自動生成パタンに変換する処理と、変換したスキャンテストパタン自動生成パタンを故障シミュレーションを実行して目標とする故障検出率が得られたかを検証し、未達成の場合はテストポイントとして新たなスキャンフリップフロップを挿入しパタン値を与えて目標とする故障検出率が得られるようにした後、前記スキャンテストパタン自動生成パタンを前記ハードマクロ回路のテスト用のスキャンパタンに変換する処理を実行して、テスト用の前記スキャンパタンを生成することを特徴とする。
【００３４】
また、前記ハードマクロ回路の単体テスト用パタンをマクロテスト用スキャン自動生成パタンに変換する処理は、前記制御手段が、
前記スキャンパタン自動生成用回路から前記入力側のスキャンフリップフロップおよび組み合わせ回路と、ハードマクロ回路と、出力側の組み合わせ回路およびスキャンフリップフロップとをそれぞれ切り出すハードマクロ回路のスキャンテストパタン自動生成用のマクロテスト回路生成処理と、予め所定の記憶装置に格納されている前記単体テスト用パタンを呼び出して１パタン目を選択してパタン変換の開始をテストパタンの先頭から行えるように設定する初期設定処理と、
前記初期設定処理で選択されているパタン番号を選択し、前記ハードマクロ回路の入力および出力端に割り当てるパタン選択処理と、
前記パタン選択処理で割り当てられたパタン番号に対応するハードマクロ回路の入力値を、前記入力側の組み合わせ回路を経由して入力側のスキャンフリップフロップの方向に論理を逆算し、前記パタン選択処理で割り当てられた値を実現するためのスキャンフリップフロップに設定すべき値を求めるスキャンテストパタン自動生成用の入力パタン生成処理と、
前記パタン選択処理で割り当てられたパタン番号に対応する、ハードマクロ回路の出力値を出力側の組み合わせ回路を経由して出力側のスキャンフリップフロップの方向に論理を伝播し、前記パタン選択処理で割り当てられた値を実現するための出力側の前記スキャンフリップフロップに出力される値を求めるスキャンテストパタン自動生成用の出力パタン生成処理と、
前記スキャンテストパタン自動生成用の前記入力および出力パタン生成処理において対象とならなかったスキャンフリップフロップの論理値を不定値に設定する対象外スキャンフリップフロップのパタン設定処理と、
入力されたハードマクロ回路の単体テスト用パタンを１パタン目から最終パタンまで順次パタン生成が行われたと判定された時、前記マクロテスト用スキャン自動生成パタンを出力するマクロテスト用スキャン自動生成パタンのパタン出力処理と、
前記パタン選択処理で選択されているパタン番号が、前記ハードマクロ回路の前記単体テスト用パタンの最終パタン番号に到達していれば、前記マクロテスト用スキャン自動生成パタンのパタン出力処理へ移行し、到達していなければパタンカウンタ処理へ移行するパタン終了判定処理と、
ハードマクロ回路の単体テスト用テストパタンのパタン番号を１パタン進めて、次のテストパタンをパタン選択処理で選択できるようにするパタンカウンタ処理と、を実行することができる。
【００３５】
さらに、前記スキャンテストパタン自動生成パタンを前記ハードマクロ回路のテスト用のスキャンパタンに変換する処理は、前記制御手段が、
前記スキャンパタン自動生成用回路から入力側のスキャンフリップフロップと入力側の組み合わせ回路とハードマクロ回路とを切り出した回路を生成するハードマクロ回路の入力側テストパタン自動生成用の回路生成処理と、
前段の処理で生成したマクロテスト用スキャン自動生成パタンを用いて、ハードマクロ回路の入力側スキャンテストパタン自動生成用の回路生成処理で生成して切り出した回路の動作を検証するテスト困難度調査処理と、
前記テスト困難度調査処理で検証した処理結果を、予め設定された故障検出率に到達したかを判定し、到達していない場合はテストポイント挿入処理へ移行し、到達した場合はハードマクロ回路の出力側スキャンテストパタン自動生成用の回路生成処理に移行する判定処理と、
前記判定処理における判定結果が予め設定された故障検出率に到達していない原因である未検出故障箇所の内、最も入力側に近い箇所にテストポイントを挿入し、かつ挿入したテストポイントに論理が伝播する値を入力するための端子と、その伝搬する値とを設定するテストポイント挿入処理と、
通常のスキャンテストパタン自動生成に用いるスキャンテストパタン自動生成用回路から、ハードマクロ回路と組み合わせ回路とスキャンフリップフロップとを切り出した回路を生成する前記ハードマクロ回路の出力側スキャンテストパタン自動生成用の回路生成処理と、
前記ハードマクロ回路の入力側スキャンテストパタン自動生成用の回路生成処理から前記ハードマクロ回路の出力側スキャンテストパタン自動生成用の回路生成処理までと同じ処理を出力側のユーザロジックに対して行う処理と、
入力側及び出力側の前記テストポイント挿入処理でそれぞれ挿入されたテストポイントに対し、前記スキャンフリップフロップそれぞれに値を設定出来るように、前記ハードマクロ回路テスト対象外であるスキャンフリップフロップ以外の出力とテストポイントの接続とを前記ハードマクロ回路のテスト対象スキャンフリップフロップとして扱うために、前記テスト対象外スキャンフリップフロップのリストから削除し、かつ、前記マクロテスト用スキャン自動生成パタンに対し、前記テストポイントに論理が伝播する値を設定するテストポイント接続処理と、予め準備されている前記ハードマクロ回路の制御入力に対して、スキャンシフト動作時にそれ以前の入力パタン値を固定する回路を挿入するハードマクロ回路の制御回路挿入処理と、
前記マクロ用スキャン自動生成パタンを当該半導体装置のハードマクロ回路テスト用のスキャンパタンに変換するハードマクロ回路テスト用のスキャンテストパタン自動生成処理と、を実行することもできる。
【００３６】
さらにまた、入力側および出力側の前記テストポイント挿入処理は、前記テスト困難度調査処理の処理結果に対し、予め指定された、テストポイント挿入対象外とする指定が有った故障については、未検出故障から削除することもできる。
【００３７】
【発明の実施の形態】
まず、本発明の概要を述べる。本発明のハードマクロ回路のテスト回路（以下、ハードマクロテスト回路と称す）を示した図１を参照すると、本発明によるハードマクロテスト回路は、ランダムロジックによる組み合わせ回路やフリップフロップ等の順序回路で構成する周辺回路であるユーザロジック１０と、このユーザロジック１０のテストのために予めユーザロジック１０内に内在させてあるスキャンパス回路のスキャンフリップフロップ（以下、ＳＣＡＮ−ＦＦと称す）３０と、組み合わせ回路２１および２２と、ハードマクロ回路２とを半導体装置（ＬＳＩ）１に有して構成されている。
【００３８】
ここでのＳＣＡＮ−ＦＦ３０は、図示しないが、従来の構成と同様に、通常動作時のデータ入力端子と、テスト時にシリアル信号を入力するシリアルデータ入力端子と、テスト時にシリアルデータ入力モードに固定するための制御端子と、クロック端子と、出力端子とを備える。
【００３９】
上述したハードマクロテスト回路の構成によれば、前述した図５における従来技術では必要不可欠であったマルチプレクサ３０１とテストバス３１０とが削除されていることがわかる。
【００４０】
このハードマクロテスト回路は、スキャンパス回路のスキャンテスト動作において、組み合わせ回路２１の論理を考慮したハードマクロ回路テスト用のスキャンパタンを、スキャンシフト入力端子ＳＩＮからＳＣＡＮ−ＦＦ３０に設定する。この設定されたハードマクロ回路テスト用のスキャンパタンは組み合わせ回路２１を経由してハードマクロ回路２に出力される。
【００４１】
ハードマクロ回路２は入力したハードマクロ回路テスト用のスキャンパタンの論理に従って動作し、その結果、ハードマクロ回路２は処理したハードマクロ回路テスト用のスキャンパタンに従い演算動作結果を組み合わせ回路２２に出力する。ハードマクロ回路テスト用のスキャンパタンを受けた組み合わせ回路２２は、組み合わせ回路の論理に従ってハードマクロ回路テスト用のスキャンパタンを処理し、その処理結果をＳＣＡＮ−ＦＦ３０に取り込む。
【００４２】
組み合わせ回路の処理結果を受けたＳＣＡＮ−ＦＦ３０は、それぞれの保持内容を直列に順次シフトしながらスキャンシフト出力端子ＳＯＴから出力する。スキャンシフト出力端子ＳＯＴから順次出力される出力信号を、予め準備された組み合わせ回路２２の論理を考慮した期待値とを比較して、ハードマクロ回路２と組み合わせ回路２１、２２の良／不良の判定を行う。
【００４３】
つまり、ハードマクロ回路およびこのハードマクロ回路周辺に配置されるスキャンスリップフロップもハードマクロ回路と一体化でスキャン変換して生成されたハードマクロ回路テスト用のスキャンパタンによりテストされる構成を備えていることになり、ここでいう一体化とは、ハードマクロ回路の周辺回路に内在させたスキャンパス回路により、スキャンフリップフロップおよびハードマクロ回路間に配置された組み合わせ回路の論理も含めたテストを行うことを意味する。
【００４４】
従って、図５におけるテストバス３１０、マルチプレクサ３０１が不要となるので、マクロテスト回路の面積オーバーヘッドを減少させることができる。
【００４５】
本発明のハードマクロテスト回路の作成ツールとしては、特に図示はしないが、例えば一般的なエンジニアリング・ワークステーション（ＥＷＳ：Ｅｎｇｉｎｅｅｒｉｎｇ  Ｗｏｒｋｓｔａｔｉｏｎ）を対象とし、メニューを表示する表示装置と、表示されているメニューについて外部からの選択指示をを受ける入力装置と、データを格納する記憶装置と、入力されたコマンドの処理を実行するコンピュータとを備える。
【００４６】
上述したＥＷＳによるハードマクロ回路テスト用のスキャンパタンを生成するフローを示した図３を参照すると、本発明よるハードマクロ回路テスト用のスキャンパタンは、従来技術と同様に事前に準備されているハードマクロ回路の単体テスト用テストパタンを、１パタン目より順次組み合わせ回路２１、２２を考慮したパタンに変換して、ハードマクロ回路テスト用のスキャンパタンを生成する。
【００４７】
従って、組み合わせ回路２１、２２の論理を考慮したハードマクロ回路テスト用のスキャンパタンを使用するので、図７で説明した迂回経路３１１、ＥＸＯＲ回路３０２およびマルチプレクサ３０３のテスト回路追加を行わなくても、組み合わせ回路２１、２２の故障検出が可能となる。
【００４８】
ハードマクロ回路のテスト回路部分を取り出して示した図２を参照すると、入力側に配置されたＳＣＡＮ−ＦＦ３０と出力側に配置されたＳＣＡＮ−ＦＦ３０とで挟まれた領域の部分回路にテスト対象となるハードマクロ回路２が含まれている。
【００４９】
このハードマクロ回路２の入力端子に組み合わせ回路２１の出力端子がそれぞれ接続され、ハードマクロ回路２の出力端子に組み合わせ回路２２がそれぞれ接続されている。
【００５０】
組み合わせ回路２１は、ハードマクロ回路２と入力側のＳＣＡＮ−ＦＦ３０、あるいは外部入力端子（図示せず）を境界とするハードマクロ回路２の入力に影響のある組み合わせ回路群で構成されている。組み合わせ回路２２は、ハードマクロ回路２と入力側のＳＣＡＮ−ＦＦ３０、あるいは外部出力端子（図示せず）を境界とするハードマクロ回路２の出力の影響を受ける組み合わせ回路群で構成されている。
【００５１】
スキャンパス回路を構成するＳＣＡＮ−ＦＦ３０は、入力側のＳＣＡＮ−ＦＦ３０および出力側のＳＣＡＮ−ＦＦ３０の他に、それぞれ組み合わせ回路２１、２２に接続されていないものも含まれている。
【００５２】
図１および図２に示したスキャンパス回路自体の構成および動作は、公知のものであり、また本発明とは直接関係しないので、ここでの詳細な説明は省略する。
【００５３】
再び図１を参照しながらさらに詳述する。このハードマクロテスト回路は、スキャンパス回路のスキャンテスト動作によってハードマクロ回路２とこのハードマクロ回路２の前段および後段に配置された組み合わせ回路２１，２２のテストを行うものである。
【００５４】
すなわち、このハードマクロテスト回路のテスト方法を説明すると、スキャンパス回路であるフリップフロップ群のＳＣＡＮ−ＦＦ３０は、前述したように公知の回路構成および動作を有しており、組み合わせ回路２１の論理を考慮したハードマクロ回路テスト用のスキャンパタンをスキャンシフト入力端子ＳＩＮから順次シリアルに入力することによって、まずハードマクロ回路テスト用のスキャンパタンの論理値が入力側のＳＣＡＮ−ＦＦ３０に設定される。
【００５５】
入力側のＳＣＡＮ−ＦＦ３０にそれぞれ設定されたハードマクロ回路テスト用のスキャンパタンデータは、スキャンクロックに同期して組み合わせ回路２１を経由してハードマクロ回路２のそれぞれ対応する入力端子に与えられる。
【００５６】
その結果、ハードマクロ回路２のそれぞれの出力端子から出力されたハードマクロ回路テスト用のスキャンパタンデータは、組み合わせ回路２２を経由してそれぞれ対応する出力側のＳＣＡＮ−ＦＦ３０に取り込まれる。
【００５７】
出力側のＳＣＡＮ−ＦＦ３０に取り込まれたハードマクロ回路テスト用のスキャンパタンデータは、スキャンクロックに同期して順次シフトされてスキャンシフト出力端子ＳＯＴから出力される。
【００５８】
スキャンシフト出力端子ＳＯＴから順次出力されるハードマクロ回路テスト用のスキャンパタンデータを、予め準備された期待値とそれぞれ比較することによって、組み合わせ回路２１とハードマクロ回路２と組み合わせ回路２２とからなる経路の良／不良の判定を行うことができる。
【００５９】
ここではこの経路の良／不良が判定できればよいのであって、個々の回路の良／不良は区別しない。
【００６０】
通常、半導体装置のテストに使用するテストパタンは、どこが不良かを検出できるかではなく、半導体装置として良品か不良品かを検出できるかが問題である。
【００６１】
テストの結果、全チップあるいは低歩留まりの時、設計起因による不良か、製造上の問題かを判別する為、解析を必要とすることがあるが、ハードマクロ回路は事前にＴＥＧ（ハードマクロの評価用チップ）を作成し、その妥当性を確認している。
【００６２】
したがって、設計起因による不良は組合せ回路部分が不良かマクロとのインタフェース部分が不良かのどちらかである。
【００６３】
本発明のハードマクロテスト回路の動作は、前述したように公知の技術であるスキャンパス回路の動作に従い、ハードマクロ回路テスト用のスキャンパタンによってスキャンパス回路はシフト動作に設定される。
【００６４】
このシフト動作設定により、ハードマクロ回路テスト用のスキャンパタンに記述されているスキャンシフト入力が、ハードマクロ回路テスト用のスキャンパタンに設定された数だけスキャンシフト入力端子ＳＩＮからシフト入力されて入力側のＳＣＡＮ−ＦＦ３０に所定の値が設定される。
【００６５】
この時、ハードマクロ回路２の制御入力は、図示しない公知のスキャン制御回路の信号により、ハードマクロ回路の動作を保持するモードに固定されているものとする。
【００６６】
次に、ハードマクロ回路テスト用のスキャンパタンによってスキャンパス回路はパラレル動作に設定され、シフト動作で設定された入力側のＳＣＡＮ−ＦＦ３０の値が組み合わせ回路２１を経由して、ハードマクロ回路２の入力に到達する。
【００６７】
この時、ハードマクロ回路２の制御入力は、図示しないスキャン制御回路の出力信号により、ハードマクロ回路の動作を保持するモードを解除され、組み合わせ回路２１の出力値によりハードマクロ回路２は論理演算を実行して、その演算結果をハードマクロ回路２の出力から組み合わせ回路２２を経由して、出力側のＳＣＡＮ−ＦＦ３０に出力する。
【００６８】
組み合わせ回路２２の出力端に接続されている出力側のＳＣＡＮ−ＦＦ３０は、その出力値を取り込む。
【００６９】
スキャンパス回路はシフト動作に設定され、スキャンシフト出力端子ＳＯＴに入力側のＳＣＡＮ−ＦＦ３０の値を順次シフト出力し、ハードマクロ回路テスト用のスキャンパタンに記載されている期待値と比較し、ハードマクロ回路２と組み合わせ回路２１、２２の良／不良の判定を行う。
【００７０】
この時、ハードマクロ回路２の制御入力は、図示しない公知のスキャン制御回路の信号により、ハードマクロ回路の動作を保持するモードに固定されているものとする。
【００７１】
この一連の動作を、ハードマクロ回路テスト用のスキャンパタンに記載されているパタン数分だけ、繰り返すことによりテストを実行する。
【００７２】
次に、ハードマクロ回路テスト用のＳＣＡＮ  ＡＴＧパタン（以下、マクロテスト用スキャン自動生成パタンと称す）生成フローを示した図３を参照しながら、ＥＷＳによる故障シミュレーションを実行して、マクロテスト用スキャン自動生成パタンを生成するフローを説明する。
【００７３】
なお、自動テストパタン生成（ＡＴＧ＝Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｉｏｎ）は、論理回路情報から半導体装置のテストパタンを自動生成する。組み合わせ回路ならばテストパタンをほぼ求められるが、順序回路を含む論理回路に対しては難しく、その解決策の一つとして順序回路の全てをテストモード時に一本のシフトレジスタとして動作させている。
【００７４】
前述したハードマクロ回路テスト用のスキャンパタン生成フローは、スキャンテストパタン自動生成用のマクロテスト回路生成処理１００、初期設定処理１０１、パタン選択処理１０２、マクロテスト用スキャン自動生成パタン用の入力パタン生成処理１０３、マクロテスト用スキャン自動生成パタンの出力パタン生成処理１０４、対象外ＳＣＡＮ−ＦＦ３０のパタン設定処理１０５、マクロテスト用スキャン自動生成パタン用のパタン出力処理１０６と、パタンＥＮＤ判定処理１０７、パタンカウンタ処理１０８を有する。
【００７５】
まず、スキャンテストパタン自動生成用のマクロテスト回路生成処理１００は、通常のスキャンテスト用パタン生成に用いるスキャンテストパタン自動生成用回路をこの回路が格納された記憶装置から制御装置に入力して、入力側のＳＣＡＮ−ＦＦ３０と、組み合わせ回路２１と、組み合わせ回路２２と、ハードマクロ回路２と、出力側のＳＣＡＮ−ＦＦ３０とを切り出した回路を生成する処理である。
【００７６】
初期設定処理１０１は、ハードマクロ回路の単体テスト用テストパタンが予め準備され格納されている記憶媒体から単体テスト用パタンを呼び出し、そのパタン番号の内、１パタン目を選択する。
【００７７】
すなわち、パタン変換の開始をテストパタンの先頭から行えるように設定する処理である。
【００７８】
パタン選択処理１０２は、処理１０１で選択されているパタン番号を選択し、ハードマクロ回路２の入力および出力に割り当てる処理である。
【００７９】
ハードマクロ回路のスキャンテストパタン自動生成用の入力パタン生成処理１０３は、パタン選択処理１０２で割り当てられたパタン番号に対応するハードマクロ回路２の入力値を、組み合わせ回路２１を経由して、入力側のＳＣＡＮ−ＦＦ３０の方向に論理を伝播し、パタン選択処理１０２で割り当てられた値を実現するための入力側のＳＣＡＮ−ＦＦ３０に設定すべき値を求める処理である。
【００８０】
ハードマクロ回路用のスキャンテストパタン自動生成用の出力パタン生成処理１０４は、パタン選択処理１０２で割り当てられたパタン番号に対応する、ハードマクロ回路２の出力値を組み合わせ回路２２を経由して、出力側のＳＣＡＮ−ＦＦ３０の方向に論理を伝播し、パタン選択処理１０２で割り当てられた値によって出力側のＳＣＡＮ−ＦＦ３０に出力される値を求める処理である。
【００８１】
対象外スキャンフリップフロップのパタン設定処理１０５は、マクロテスト用スキャン自動生成パタン用の入力パタン生成処理１０３とマクロテスト用スキャン自動生成パタン用の出力パタン生成処理１０４において対象とならなかったＳＣＡＮ−ＦＦ３０との論理値を不定値に設定する処理である。
【００８２】
マクロテスト用スキャン自動生成パタン用のパタン出力処理１０６は、入力されたハードマクロ回路の単体テスト用テストパタンを１パタン目から最終パタンまで順次パタン生成が行われたと判定された時、マクロテスト用スキャン自動生成パタンを出力する処理である。
【００８３】
パタン終了（ＥＮＤ）判定処理１０７は、パタン選択処理１０２で選択されているパタン番号が、ハードマクロ回路の単体テスト用テストパタンの最終パタン番号に到達していれば処理を終了し、到達していなければパタンカウンタ処理１０８へ移行する処理である。
【００８４】
パタンカウンタ処理１０８は、ハードマクロ回路の単体テスト用テストパタンのパタン番号を１パタン進める、すなわち、次のテストパタンをパタン選択処理１０２で選択できるようにする処理である。
【００８５】
つまり、ハードマクロ回路の入力側の値を処理１０３で求め、出力側の値を処理１０４で求め、処理１０３、１０４のパタンをマージして、処理１０５で対象外のものは不定値を入れて、マクロテスト用スキャン自動生成パタンに順次出力する。
【００８６】
処理１０３のパタンと処理１０４のパタンをマージしても、同じＳＣＡＮ−ＦＦ３０の出力値が重複することはなく、同様に同じＳＣＡＮ−ＦＦ３０の入力値が重複することもない。
【００８７】
マージ後、対象外のＳＣＡＮ−ＦＦ３０には、不定値を与えることにより、１パタン分が生成される。これを順次追加することでマクロテスト用スキャン自動生成パタンが作成できる。
【００８８】
次に、ここでも上述したＥＷＳを使用ツールとして、ハードマクロ回路テスト用のスキャンパタン変換フローを示した図４を参照すると、このハードマクロ回路テスト用のスキャンパタン変換フローは、ハードマクロ回路の入力側スキャン自動生成パタン用の回路生成処理１２０と、テスト困難度調査処理１２１と、判定処理１２２と、テストポイント挿入処理１２３と、ハードマクロ回路の出力側スキャン自動生成パタン用の回路生成処理１２４と、テスト困難度調査処理１２５と、判定処理１２６と、テストポイント挿入処理１２７と、テストポイント接続処理１２８と、ハードマクロ回路の制御回路挿入処理１２９と、ハードマクロ回路テスト用のスキャンテストパタン自動生成処理１３０とを有している。
【００８９】
ハードマクロ回路の入力側スキャン自動生成パタン用の回路生成処理１２０は、通常のスキャンテスト用パタン生成に用いるスキャンテストパタン自動生成用回路から、入力側のＳＣＡＮ−ＦＦ３０と、組み合わせ回路２１と、ハードマクロ回路２を切り出した回路を生成する処理である。
【００９０】
テスト困難度調査処理１２１は、図３におけるハードマクロ回路用のスキャン自動生成パタン用のパタン生成フローで生成したハードマクロ回路テスト用のスキャン自動生成パタンを用いて、ハードマクロ回路の入力側スキャン自動生成パタン用の回路生成処理１２０で生成して切り出した回路の動作を故障シミュレーションにより検証する処理である。
【００９１】
故障シミュレーションは論理回路のどの部分の故障が検出できるか否かを判定し、入力のテストベクトルは故障検出率を上げるように工夫する。この故障検出率が低いパタンだとデバイス評価時に良否の判定テストができない。従って、後工程の自動テストパタン生成ができるような設計が要求される。
【００９２】
判定処理１２２は、テスト困難度調査処理１２１で検証した処理結果を、予め設定された故障検出率に到達したかを判定する。もし、到達していない場合はテストポイント挿入処理１２３へ移行し、到達した場合はハードマクロ回路の出力側スキャン自動生成パタン用の回路生成処理１２４に移行する処理である。
【００９３】
テストポイント挿入処理１２３は、判定処理１２２における判定結果が予め設定された故障検出率に到達していない原因である未検出故障箇所の内、例えば、最も入力側に近い箇所にテストポイントを挿入し、かつ挿入したテストポイントに論理が伝播する値を入力するための端子と、その伝搬する値を設定する処理である。  尚、テストポイント挿入個所および挿入回路の選定については、図示しない公知の技術がそのまま適用できる。
【００９４】
ハードマクロ回路の出力側スキャン自動生成パタン用の回路生成処理１２４は、通常のスキャンテスト用パタン生成に用いるスキャンテストパタン自動生成用回路から、ハードマクロ回路２と、組み合わせ回路２２と、出力側のＳＣＡＮ−ＦＦ３０とを切り出した回路を生成する処理である。
【００９５】
テスト困難度調査処理１２５は、図３におけるハードマクロ回路テスト用のスキャンパタン生成フローで生成したマクロテスト用スキャン自動生成パタンを用いて、ハードマクロ回路の出力側スキャン自動生成パタン用の回路生成処理１２４で生成して切り出した回路の動作を検証する処理である。
【００９６】
判定処理１２６は、テスト困難度調査処理１２５における動作検証処理結果を、予め設定された故障検出率に到達したかを判定する。もし到達していない場合は、テストポイント挿入処理１２７へ移行し、到達した場合はテストポイント接続処理１２８に移行する処理である。
【００９７】
テストポイント挿入処理１２７は、判定結果が到達していない原因である未検出故障箇所の内、例えば、最も入力に近い箇所にテストポイントを挿入し、かつ挿入したテストポイントに論理が伝播する値を入力するための端子と、その伝搬する値を設定する処理である。
【００９８】
テストポイント接続処理１２８は、テストポイント挿入処理１２３および１２７で挿入されたテストポイントに、入力側のＳＣＡＮ−ＦＦ３０と出力側のＳＣＡＮ−ＦＦ３０とに値を設定出来るように、ハードマクロ回路テスト対象外のＳＣＡＮ−ＦＦ３０以外の出力とテストポイントの接続とハードマクロ回路のテスト対象ＳＣＡＮ−ＦＦ３０として扱うように、ハードマクロ回路のテスト対象外ＳＣＡＮ−ＦＦ３０のリストから削除し、かつ、マクロテスト用スキャン自動生成パタンに対してテストポイントに論理が伝播する値を設定する処理である。
【００９９】
ハードマクロ回路の制御回路挿入処理１２９は、予め準備されているハードマクロ回路２の制御入力に対して、スキャンシフト動作時にそれ以前の入力パタン値を固定する（把持する）回路を挿入する処理である。
【０１００】
ハードマクロ回路テスト用のスキャンテストパタン自動生成処理１３０は、ハードマクロ回路テスト用のスキャンテストパタン自動生成パタンを当該半導体装置（本発明のマクロテスト回路を搭載した）のハードマクロ回路テスト用のスキャンパタンに変換する処理である。
【０１０１】
すなわち、ＳＣＡＮ−ＦＦ３０に設定する論理値、およびＳＣＡＮ−ＦＦ３０が受け取る論理値を表現した図３で示した処理１０８で得られたパタンを、図４における処理１２０、１２９において、故障検出率向上のために挿入したテストポイントを考慮したマクロテスト用スキャン自動生成パタンに修正される。
【０１０２】
この部分は、スキャンパステストのパタン生成における、基本的な原理に相当する所定の手順である。
【０１０３】
すなわち、このマクロテスト用スキャン自動生成パタンは、各ＳＣＡＮ−ＦＦ３０、および外部端子の値が表現されているが、実際の半導体装置ではスキャンパステストの原理上、ＳＣＡＮ−ＦＦ３０に直接半導体装置外部から値を設定できない。
【０１０４】
したがって、スキャンシフト出力ＳＯＴに近いＳＣＡＮ−ＦＦ３０に設定する論理値から順にスキャンシフト入力ＳＩＮに対して入力できるようなパタンに変換し、同様にスキャンシフト出力ＳＯＴには、スキャンシフト出力ＳＯＴに近いＳＣＡＮ−ＦＦ３０が受け取る論理値を期待値として、比較照合できるようにしたパタンに変換する。
【０１０５】
上述した図４のテストポイント挿入処理１２３および１２７は、テスト困難度調査処理１２１および１２５の処理結果に対し、予め指定された、テストポイント挿入対象外とする指定が有った故障については、未検出故障から削除することも可能である。
【０１０６】
例えば、組み合わせ回路２１、２２では、実現出来ない論理の組み合わせがハードマクロ回路の単体テスト用パタンに含まれていた場合、この半導体装置では使用しない機能であるため、削除することにより、テストポイントの挿入量を減らすこともできる。
【０１０７】
さらに、図４のハードマクロ回路テスト用のスキャンパタン変換フローにおいて、テストポイントの挿入が行われるが、テストポイントとは、例えば、２入力ＯＲゲートを回路に挿入し、一方の入力と出力を、挿入した箇所のユーザロジックに接続し、他方の入力をテスト信号で、通常は“０”、挿入した箇所の論理を強制的に“１”にしたい時に、“１”を入力する。
【０１０８】
なお、挿入箇所に用いられる回路の構成、および動作は、公知であり、また本発明とは直接関係しないので、その詳細は省略する。
【０１０９】
上述したように、ハードマクロ回路テストにおいて、テストバスを用いず、予めユーザロジック１０のテストのために内在しているスキャンパス回路を使用するため、図５に示すテストバス３１０の配線領域、およびマルチプレクサ３０１の面積オーバーヘッドが削減できるという効果が有る。
【０１１０】
更に、ハードマクロ回路の端子数が半導体装置の端子数を超えた場合に発生する問題、すなわち、（ハードマクロ回路の端子数）≦（半導体装置の端子数）が成立しない場合、ハードマクロ回路を半導体装置と見立ててテストするため、半導体装置の端子に割り当てられないハードマクロ回路の端子が発生し、半導体装置の外部にハードマクロ回路の端子を引き出すということができないことから、半導体装置の外部に引き出すハードマクロ回路の端子数を削減するために、組み合わせ回路を追加してテストを行うという問題が発生しない、という効果が有る。
【０１１１】
しかも、ＳＣＡＮ−ＦＦ３０とハードマクロ回路の入力、および出力の間にある組み合わせ回路のテストは、この組み合わせ回路とハードマクロ回路を含めた回路をテスト対象としたハードマクロ回路テスト用のスキャンパタンを用いるため、図７に示す迂回経路３１１、すなわち、ハードマクロ回路と組み合わせ回路の境界の論理をハードマクロ回路の論理に関与しない、他のＳＣＡＮ−ＦＦ３０と接続するためのマルチプレクサ３０３とその配線領域を追加すること無く、組み合わせ回路の故障検出も可能である。
【０１１２】
【発明の効果】
上述したように、本発明のハードマクロテスト回路は、組み合わせ回路の論理を考慮したハードマクロ回路テスト用のスキャンパタンを、スキャンシフト入力端子から入力側のスキャンフリップフロップに設定するとともにスキャンフリップフロップの出力を入力側の組み合わせ回路を経由してハードマクロ回路に入力し、ハードマクロ回路の演算結果をさらに出力側の組み合わせ回路を経由して出力側のスキャンフリップフロップに取り込み、そのスキャンフリップフロップ出力をスキャンシフト出力端子においてあらかじめ定めた期待値と比較させるための比較信号として出力するので、テストバスを用いず、予めユーザロジックのテストのために内在しているスキャンパス回路を使用するため、テストバスの配線領域、およびマルチプレクサの面積オーバーヘッドが削減できるという効果が有る。
【０１１３】
更に、ハードマクロ回路端子数が半導体装置の端子数を超えた場合、すなわち、ハードマクロ回路端子数≦半導体装置の端子数が成立しない場合、ハードマクロ回路を半導体装置と見立ててテストするので、半導体装置の端子に割り当てられないハードマクロ回路端子が発生し、半導体装置外部にハードマクロ回路の端子を引き出すということがある。したがって、半導体装置外部に引き出すハードマクロ回路の端子数を削減するために行っていた、組み合わせ回路を追加してテストを行う必要がない、という効果が有る。
【０１１４】
しかも、ＳＣＡＮ−ＦＦ３０とハードマクロ回路の入力、および出力の間にある組み合わせ回路のテストは、この組み合わせ回路とハードマクロ回路を含めた回路をテスト対象としたハードマクロ回路テスト用のスキャンパタンを用いるので、従来必要とした迂回経路、すなわちハードマクロ回路と組み合わせ回路の境界の論理をハードマクロ回路の論理に関与しない、他のＳＣＡＮ−ＦＦ３０と接続するためのマルチプレクサとその配線領域を追加すること無く、組み合わせ回路の故障検出も可能である。
【図面の簡単な説明】
【図１】本発明のハードマクロテスト回路を搭載した半導体装置の概略の構成図である。
【図２】本発明のハードマクロテスト回路の構成図である。
【図３】本発明のハードマクロ回路テスト用のスキャンパタン生成フローである。
【図４】本発明のハードマクロ回路テスト用のスキャンパタン変換フローである。
【図５】従来技術のテストバス方式による半導体装置の構成図である。
【図６】従来技術のハードマクロ回路端子数を半導体装置の端子数以下にする組み合わせ回路を追加したハードマクロテスト回の構成図である。
【図７】従来技術のハードマクロ回路およびＳＣＡＮ−ＦＦ間の組み合わせ回路の故障検出を可能とする迂回経路を追加したハードマクロテスト回路の構成図である。
【図８】従来のハードマクロテスト回路の他の例の回路図である。
【符号の説明】
ＳＩＮ    スキャンシフト入力
ＳＯＴ    スキャンシフト出力
１    半導体装置
２    ハードマクロ回路
１０    ユーザロジック
２１、２２、２３、２４    組み合わせ回路
３０    ＳＣＡＮ−ＦＦ
３０１、３０３    マルチプレクサ
３０２    ＥＸＯＲ回路
３１０    テストバス
３１１    迂回経路
【図１】
0003544912.tif 000002
【図２】
0003544912.tif 000003
【図３】
0003544912.tif 000004
【図４】
0003544912.tif 000005
【図５】
0003544912.tif 000006
【図６】
0003544912.tif 000007
【図７】
0003544912.tif 000008
【図８】
0003544912.tif 000009