(57)【要約】【課題】  マクロを含む回路を容易に設計するようにする。【解決手段】  スキャン回路設計部は、マクロ１５０にスキャンチェインを生成するとともに、マクロ１５０外部からのデータ入力の遮断を制御するマクロテストモード用回路１９０を挿入する。テストステート生成部は、マクロテストモード用回路１９０が挿入されたマクロ１５０のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成し、記憶部は、生成されたテストステートを記憶する。本発明は、マクロを含むＬＳＩを設計する回路設計装置に適用することができる。【選択図】図１０
2005346326.tif 000002
【特許請求の範囲】
【請求項１】
ＬＳＩ（Large Scale Integrated Circuit）設計におけるマクロ回路のスキャン設計を行うマクロ回路設計装置において、
前記マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成手段と、
前記マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入手段と、
前記挿入手段により前記テスト用制御回路が挿入された前記マクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成手段と、
前記テストステート生成手段により生成された前記テストステートを記憶する記憶手段と
を備えることを特徴とするマクロ回路設計装置。
【請求項２】
前記テスト用制御回路は、少なくともオア回路を含む
ことを特徴とする請求項１に記載のマクロ回路設計装置。
【請求項３】
前記テスト用制御回路は、少なくともオア回路とロックアップフリップフロップを含む
ことを特徴とする請求項１に記載のマクロ回路設計装置。
【請求項４】
他のマクロ回路が前記マクロ回路を含む場合、
前記テストステート生成手段は、前記記憶手段に記憶された前記マクロ回路のテストステートを前記他のマクロ回路のテストステートに変換するとともに、前記マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、前記他のマクロ回路の内部であって、前記マクロ回路の外部の複数の組み合わせ回路のテストステートを前記他のマクロ回路のテストステートとしてさらに生成する
ことを特徴とする請求項１に記載のマクロ回路設計装置。
【請求項５】
ＬＳＩ設計におけるマクロ回路のスキャン設計を行うマクロ回路設計装置のマクロ回路設計方法において、
前記マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップと、
前記マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップと、
前記挿入ステップの処理により前記テスト用制御回路が挿入された前記マクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップと、
前記テストステート生成ステップにより生成された前記テストステートへの記憶を制御する記憶制御ステップと
を含むことを特徴とするマクロ回路設計方法。
【請求項６】
ＬＳＩ設計におけるマクロ回路のスキャン設計を行う処理を実行するプログラムであって、
前記マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップと、
前記マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップと、
前記挿入ステップの処理により前記テスト用制御回路が挿入された前記マクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップと、
前記テストステート生成ステップにより生成された前記テストステートへの記憶を制御する記憶制御ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラムが記録されている記録媒体。
【請求項７】
ＬＳＩ設計におけるマクロ回路のスキャン設計を行う処理を実行するプログラムであって、
前記マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップと、
前記マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップと、
前記挿入ステップの処理により前記テスト用制御回路が挿入された前記マクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップと、
前記テストステート生成ステップにより生成された前記テストステートへの記憶を制御する記憶制御ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
スキャン設計されたＬＳＩにおける、組み合わせ回路を有するマクロ回路であって、
前記組み合わせ回路に接続されるスキャンチェイン回路と、
前記マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路と
を備えることを特徴とするマクロ回路。
【請求項９】
前記スキャンチェイン回路による前記マクロ回路のスキャンテストにおいては、第１のテストモードおよび第２のテストモードの２つのテストモードからなり、
前記テスト用制御回路は、前記データ入力を遮断することにより、前記スキャンチェイン回路による、前記マクロ回路のスキャンテストを前記マクロ回路外部からのデータ入力によって前記マクロ回路のステートを遷移させない前記第１のテストモードで行うように制御し、前記データ入力を伝達することにより、前記スキャンチェイン回路による、前記マクロ回路のスキャンテストを前記マクロ回路外部からのデータ入力が前記マクロ回路のステートを遷移させる前記第２のテストモードで行う
ことを特徴とする請求項８に記載のマクロ回路。
【請求項１０】
前記テスト用制御回路は、前記第１のテストモードでは、前記マクロ回路のデータ入力から組み合わせ回路のみを介して接続されるフリップフロップが、スキャンシフトを行う状態を保持し続けるように制御する
ことを特徴とする請求項９に記載のマクロ回路。
【請求項１１】
前記テスト用制御回路は、前記マクロ回路のスキャンデータ入力と前記マクロ回路の内部のフリップフロップとの間にロックアップフリップフロップを備え、
前記マクロ回路の前記スキャンチェイン回路がスキャンシフト動作を行う場合、前記ロックアップフリップフロップは、前記マクロ回路の前記スキャンデータ入力を前記スキャンチェイン回路へと順次転送し、
前記マクロ回路の前記スキャンチェイン回路がスキャンシフト動作を行わない場合、前記ロックアップフリップフロップは、自分自身に保持されている値を保持し続ける
ことを特徴とする請求項１０に記載のマクロ回路。
【請求項１２】
マクロ回路を含むＬＳＩのスキャン設計を行うＬＳＩ設計装置において、
前記マクロ回路は、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であって、
あらかじめ記憶されている前記マクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、前記ＬＳＩのテストステートに変換するテストステート変換手段と、
前記テストステート変換手段により変換された前記ＬＳＩのテストステートを、前記ＬＳＩのテストパターンに変換するテストパターン変換手段と、
前記マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、前記ＬＳＩの内部であって、前記マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンを前記ＬＳＩのテストパターンとして生成するテストパターン生成手段と
を備えることを特徴とするＬＳＩ設計装置。
【請求項１３】
前記マクロ回路は、前記テスト用制御回路に、スキャンテストを行う場合に前記マクロ回路が外部からの入力信号の遮断を制御する、スキャンチェイン回路の１段目のフリップフロップへの入力信号を切り替える信号を出力するオア回路を少なくとも含む
ことを特徴とする請求項１２に記載のＬＳＩ設計装置。
【請求項１４】
前記マクロ回路は、前記テスト用制御回路に、スキャンテストを行う場合にスキャンチェイン回路の入力値を固定するロックアップフリップフロップを少なくとも含む
ことを特徴とする請求項１２に記載のＬＳＩ設計装置。
【請求項１５】
前記マクロ回路は、内部にマクロ回路を包含する階層構造であって、上位階層の前記マクロ回路と下位階層の前記マクロ回路は、同じ信号に基づいて外部からの入力信号の遮断を制御する
ことを特徴とする請求項１２に記載のＬＳＩ設計装置。
【請求項１６】
前記マクロ回路は、内部にマクロ回路を包含する階層構造であって、上位階層の前記マクロ回路と下位階層の前記マクロ回路は、異なる信号に基づいて外部からの入力信号の遮断を制御する
ことを特徴とする請求項１２に記載のＬＳＩ設計装置。
【請求項１７】
マクロ回路を含むＬＳＩのスキャン設計を行うＬＳＩ設計装置のＬＳＩ設計方法において、
前記マクロ回路は、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であって、
あらかじめ記憶されている前記マクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、前記ＬＳＩのテストステートに変換するテストステート変換ステップと、
前記テストステート変換ステップの処理により変換された前記ＬＳＩのテストステートを、前記ＬＳＩのテストパターンに変換するテストパターン変換ステップと、
前記マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、前記ＬＳＩの内部であって、前記マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンを前記ＬＳＩのテストパターンとして生成するテストパターン生成ステップと
を含むことを特徴とするＬＳＩ設計方法。
【請求項１８】
マクロ回路を含むＬＳＩのスキャン設計を行う処理を実行するプログラムであって、
前記マクロ回路は、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であり、
あらかじめ記憶されている前記マクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、前記ＬＳＩのテストステートに変換するテストステート変換ステップと、
前記テストステート変換ステップの処理により変換された前記ＬＳＩのテストステートを、前記ＬＳＩのテストパターンに変換するテストパターン変換ステップと、
前記マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、前記ＬＳＩの内部であって、前記マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンを前記ＬＳＩのテストパターンとして生成するテストパターン生成ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラムが記録されている記録媒体。
【請求項１９】
マクロ回路を含むＬＳＩのスキャン設計を行う処理を実行するプログラムであって、
前記マクロ回路は、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であり、
あらかじめ記憶されている前記マクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、前記ＬＳＩのテストステートに変換するテストステート変換ステップと、
前記テストステート変換ステップの処理により変換された前記ＬＳＩのテストステートを、前記ＬＳＩのテストパターンに変換するテストパターン変換ステップと、
前記マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、前記ＬＳＩの内部であって、前記マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンを前記ＬＳＩのテストパターンとして生成するテストパターン生成ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マクロ回路設計装置、マクロ回路設計方法、マクロ回路、ＬＳＩ設計装置、ＬＳＩ設計方法、記録媒体、およびプログラムに関し、特に、スキャン設計において、マクロ回路を含む回路を容易に設計することができるようにしたマクロ回路設計装置、マクロ回路設計方法、マクロ回路、ＬＳＩ設計装置、ＬＳＩ設計方法、記録媒体、およびプログラムに関する。
【背景技術】
【０００２】
近年の半導体微細化技術の進歩により、ＬＳＩ(Large Scale Integrated Circuit)の集積度が著しく向上しているのに対し、ＬＳＩ設計技術の進歩はこれに追いつけず、設計期間の長期化や、設計工数の増加が問題となっている。
【０００３】
そこで、ＬＳＩの機能を小規模なモジュールに分割し同時並行して設計する「階層化設計」や、過去に設計済みのコアを再利用する「コアベース設計」などが提案されている。
【０００４】
しかしながら、「階層化設計」および「コアベース設計」などの設計方法であっても、製造不良をスクリーニングするためのテストパターンについては、モジュールやコア（以下、マクロと呼ぶ）のテストパターンをＬＳＩに再利用するためには、工夫が必要となってくる（例えば、特許文献１および特許文献２参照）。このことは、マクロの信号入出力ピンをＬＳＩの入出力ピンから直接的に入出力することが一般的にはできないからである。これを可能にするには、ＬＳＩピンとマクロとの間に「アクセスパス」が必要となる。
【０００５】
この「アクセスパス」の種類には、マクロのピンをＬＳＩのピンに直結した「ブロックアイソレーション」方式や、マクロのピンをスキャンチェインで取り囲み、ＬＳＩのピンからシリアルにパターンの入出力を行う「パラシリ変換」方式、また、IEEE（Institute of Electrical and Electronics Engineer）P1500の規格案が提案されている。
【０００６】
IEEE P1500の規格案では、マクロの各端子に直接信号を供給するために、または、マクロの各端子から出力された信号を直接取り出すために、マクロの各端子には、図１に示されるようなラッパー１０を接続する必要がある。また、ＬＳＩピンからシリアルおよびパラレルなアクセスパスが適宜構成され、マクロのテストパターンがＬＳＩのテストパターンの一部として、再利用される。図１のラッパー１０は、アクセス回路であり、２つのマルチプレクサ１１およびマルチプレクサ１３と、Ｆ／Ｆ（フリップフロップ）１２とにより構成されている。
【特許文献１】特開２００２−１００７３８号公報
【特許文献２】特表２００２−５４３５２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、IEEE P1500の規格案では、図１のラッパー１０の回路規模が無視できない。また、スピード測定テストを目的としたテストパターンを可能としたラッパーは、図２に示されるように、さらに大規模である。図２のラッパー４０は、マルチプレクサ４１、Ｆ／Ｆ４２、Ｆ／Ｆ４３、マルチプレクサ４４、およびマルチプレクサ４５により構成されている。一般的に、マクロのピン数は数百乃至数千であるため、次のような問題が生じる。
【０００８】
１．ラッパーによりＬＳＩのチップ面積が増大し、チップ製造コストが上昇する。
２．ラッパーを含めたＬＳＩの回路規模が増大するため、配置配線が困難になり、設計が長期化する。
３．ラッパーを構成するトランジスタのリーク電流により、ＬＳＩの消費電力が増大する。
【０００９】
これまでは、上述した半導体微細化技術の進歩がＬＳＩ設計技術の伸びを上回っており、ラッパーによる回路規模増大は将来さらに許容され易くなると考えられてきた。しかしながら、近年、微細化が進み、トランジスタのリーク電力の割合が無視できないほどの増加傾向にあり、特に、バッテリーによる長時間動作が必要なモバイル機器向けのＬＳＩにおいては、本来のシステム動作電力は設計技術により低く抑えられており、結果としてリークによる電力損失がＬＳＩの半分を占める場合も稀ではない。
【００１０】
従って、モバイル機器に使用されるＬＳＩでトランジスタのゲート幅が９０ナノメートル世代以降のものについては、テスト回路など本来のシステム動作に使用されない回路を極力減らすことが求められており、回路規模の大きいラッパーはその中でも影響が大きく、マクロのテストパターンを再利用する障害となりつつある。
【００１１】
IEEE P1500の規格案には、マクロ内でシステム動作に供されるフリップフロップのうち、マクロの境界に位置するものをラッパーのフリップフロップと共用することで、面積増加を抑えた図３に示されるようなラッパーが開示されている。図３のラッパー８０においては、マルチプレクサ８１およびＦ／Ｆ８２により構成されている。
【００１２】
しかしながら、微細化が進んだLSIの製造不良のスクリーニングに必要とされるスピード測定テストを目的としたテストパターンに対しては、図２に示されるようなラッパーを使わざるを得ず、根本的な解決になっていないという課題があった。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、回路の設計を容易にするものである。
【課題を解決するための手段】
【００１４】
本発明のマクロ回路設計装置は、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成手段と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入手段と、挿入手段によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成手段と、テストステート生成手段により生成されたテストステートを記憶する記憶手段とを備えることを特徴とする。
【００１５】
テスト用制御回路は、少なくともオア回路を含むものとすることができる。
【００１６】
テスト用制御回路は、少なくともオア回路とロックアップフリップフロップを含むものとすることができる。
【００１７】
他のマクロ回路がマクロ回路を含む場合、テストステート生成手段は、記憶手段に記憶されたマクロ回路のテストステートを他のマクロ回路のテストステートに変換するとともに、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、他のマクロ回路の内部であって、マクロ回路の外部の複数の組み合わせ回路のテストステートを他のマクロ回路のテストステートとしてさらに生成するものとすることができる。
【００１８】
本発明のマクロ回路設計方法は、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップと、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップと、挿入ステップの処理によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップと、テストステート生成ステップにより生成されたテストステートへの記憶を制御する記憶制御ステップとを含むことを特徴とする。
【００１９】
本発明の第１の記録媒体に記録されているプログラムは、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップと、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップと、挿入ステップの処理によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップと、テストステート生成ステップにより生成されたテストステートへの記憶を制御する記憶制御ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２０】
本発明の第１のプログラムは、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップと、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップと、挿入ステップの処理によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップと、テストステート生成ステップにより生成されたテストステートへの記憶を制御する記憶制御ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２１】
本発明のマクロ回路は、スキャン設計されたＬＳＩにおける、組み合わせ回路を有するマクロ回路であって、組み合わせ回路に接続されるスキャンチェイン回路と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路とを含むことを特徴とする。
【００２２】
スキャンチェイン回路によるマクロ回路のスキャンテストにおいては、第１のテストモードおよび第２のテストモードの２つのテストモードからなり、テスト用制御回路は、データ入力を遮断することにより、スキャンチェイン回路による、マクロ回路のスキャンテストをマクロ回路外部からのデータ入力によってマクロ回路のステートを遷移させない第１のテストモードで行うように制御し、データ入力を伝達することにより、スキャンチェイン回路による、マクロ回路のスキャンテストをマクロ回路外部からのデータ入力がマクロ回路のステートを遷移させる第２のテストモードで行うものとすることができる。
【００２３】
テスト用制御回路は、第１のテストモードでは、マクロ回路のデータ入力から組み合わせ回路のみを介して接続されるフリップフロップが、スキャンシフトを行う状態を保持し続けるように制御するものとすることができる。
【００２４】
テスト用制御回路は、マクロ回路のスキャンデータ入力とマクロ回路の内部のフリップフロップとの間にロックアップフリップフロップを備え、マクロ回路のスキャンチェイン回路がスキャンシフト動作を行う場合、ロックアップフリップフロップは、マクロ回路のスキャンデータ入力をスキャンチェイン回路へと順次転送し、マクロ回路のスキャンチェイン回路がスキャンシフト動作を行わない場合、ロックアップフリップフロップは、自分自身に保持されている値を保持し続けるものとすることができる。
【００２５】
本発明のＬＳＩ設計装置は、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換手段と、テストステート変換手段により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換手段と、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成手段とを備えることを特徴とする。
【００２６】
マクロ回路は、テスト用制御回路に、スキャンテストを行う場合にマクロ回路が外部からの入力信号の遮断を制御する、スキャンチェイン回路の１段目のフリップフロップへの入力信号を切り替える信号を出力するオア回路を少なくとも含むものとすることができる。
【００２７】
マクロ回路は、テスト用制御回路に、スキャンテストを行う場合にスキャンチェイン回路の入力値を固定するロックアップフリップフロップを少なくとも含むものとすることができる。
【００２８】
マクロ回路は、内部にマクロ回路を包含する階層構造であって、上位階層のマクロ回路と下位階層のマクロ回路は、同じ信号に基づいて外部からの入力信号の遮断を制御するものとすることができる。
【００２９】
マクロ回路は、内部にマクロ回路を包含する階層構造であって、上位階層のマクロ回路と下位階層のマクロ回路は、異なる信号に基づいて外部からの入力信号の遮断を制御するものとすることができる。
【００３０】
本発明のＬＳＩ設計方法は、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換ステップと、テストステート変換ステップの処理により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換ステップと、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成ステップとを含むことを特徴とする。
【００３１】
本発明の第２の記録媒体に記録されているプログラムは、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であり、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換ステップと、テストステート変換ステップの処理により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換ステップと、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００３２】
本発明の第２のプログラムは、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であり、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換ステップと、テストステート変換ステップの処理により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換ステップと、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００３３】
第１の本発明においては、マクロ回路にスキャンチェイン回路が生成され、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路が挿入され、マクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートが生成され、記憶される。
【００３４】
第２の本発明においては、マクロ回路に、組み合わせ回路に接続されるスキャンチェイン回路と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路とが含まれる。
【００３５】
第３の本発明においては、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートが、ＬＳＩのテストステートに変換され、ＬＳＩのテストステートが、ＬＳＩのテストパターンに変換され、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路のテストパターンがＬＳＩのテストパターンとして生成される。
【発明の効果】
【００３６】
第１の本発明によれば、回路の設計を容易にするものである。特に、本発明によれば、スキャン設計において、マクロ回路を含む回路を容易に設計することができる。
【００３７】
第２の本発明によれば、回路の設計を容易にするものである。特に、本発明によれば、スキャン設計において、マクロ回路を含む回路を容易に設計することができる。
【００３８】
第３の本発明によれば、回路の設計を容易にするものである。特に、本発明によれば、スキャン設計において、マクロ回路を含むＬＳＩを容易に設計することができる。
【発明を実施するための最良の形態】
【００３９】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００４０】
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００４１】
請求項１に記載のマクロ回路設計装置（例えば、図１のマクロ設計装置１００）は、ＬＳＩ（Large Scale Integrated Circuit）設計におけるマクロ回路のスキャン設計を行うマクロ回路設計装置であって、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成手段（例えば、図８のステップＳ６１を実行する図５のスキャン回路設計部１４１）と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入手段（例えば、図８のステップＳ６２を実行する図５のスキャン回路設計部１４１）と、挿入手段によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成手段（例えば、図７のステップＳ３２の処理を実行する図５のテストステート生成部１４２）と、テストステート生成手段により生成されたテストステートを記憶する記憶手段（例えば、図７のステップＳ３３の処理を実行する図４の記憶部１２６）とを備えることを特徴とする。
【００４２】
請求項２に記載のマクロ回路設計装置のテスト用制御回路は、少なくともオア回路（例えば、図１０のオア回路１９３）を含むことを特徴とする。
【００４３】
請求項３に記載のマクロ回路設計装置のテスト用制御回路は、少なくともオア回路（例えば、図１０のオア回路１９３）とロックアップフリップフロップ（例えば、図１０のロックアップＦ／Ｆ１９１）を含むことを特徴とする。
【００４４】
請求項４に記載のマクロ回路設計装置の他のマクロ回路（例えば、図２１の上位マクロ４００）がマクロ回路（例えば、図２１の下位マクロ１５０）を含む場合、テストステート生成手段は、記憶手段に記憶されたマクロ回路のテストステートを他のマクロ回路のテストステートに変換するとともに（例えば、図２０のステップＳ２０４）、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路と、他のマクロ回路の内部であって、マクロ回路の外部の複数の組み合わせ回路のテストステートを他のマクロ回路のテストステートとしてさらに生成する（例えば、図２０のステップＳ２０２）ことを特徴とする。
【００４５】
請求項５に記載のマクロ回路設計方法は、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップ（例えば、図８のステップＳ６１）と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップ（例えば、図８のステップＳ６２）と、挿入ステップの処理によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップ（例えば、図７のステップＳ３２）と、テストステート生成ステップにより生成されたテストステートへの記憶を制御する記憶制御ステップ（例えば、図７のステップＳ３３）とを含むことを特徴とする。
【００４６】
請求項６に記載の記録媒体に記録されているプログラムは、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップ（例えば、図８のステップＳ６１）と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップ（例えば、図８のステップＳ６２）と、挿入ステップの処理によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップ（例えば、図７のステップＳ３２）と、テストステート生成ステップにより生成されたテストステートへの記憶を制御する記憶制御ステップ（例えば、図７のステップＳ３３）とを含む処理をコンピュータに実行させることを特徴とする。
【００４７】
請求項７に記載のプログラムは、マクロ回路にスキャンチェイン回路を生成するスキャンチェイン回路生成ステップ（例えば、図８のステップＳ６１）と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路を挿入する挿入ステップ（例えば、図８のステップＳ６２）と、挿入ステップの処理によりテスト用制御回路が挿入されたマクロ回路のテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成ステップ（例えば、図７のステップＳ３２）と、テストステート生成ステップにより生成されたテストステートへの記憶を制御する記憶制御ステップ（例えば、図７のステップＳ３３）とを含む処理をコンピュータに実行させることを特徴とする。
【００４８】
請求項８に記載のマクロ回路は、スキャン設計されたＬＳＩ（例えば、図１７のＬＳＩ２５０）における、組み合わせ回路を有するマクロ回路（例えば、図１７のマクロ１５０）であって、組み合わせ回路（例えば、図１０の組み合わせ回路１６１乃至１６４）に接続されるスキャンチェイン回路（例えば、Ｆ／Ｆ１７１乃至１７９、並びにマルチプレクサ１８１乃至１８９）と、マクロ回路外部からのデータ入力の遮断を制御するテスト用制御回路（例えば、図１０のマクロテストモード用回路１９０）とを含むことを特徴とする。
【００４９】
請求項９に記載のマクロ回路は、前記スキャンチェイン回路による前記マクロ回路のスキャンテストにおいては、第１のテストモードおよび第２のテストモードの２つのテストモードからなり、前記テスト用制御回路は、前記データ入力を遮断することにより（例えば、ＣＴＭ＝１とすることにより）、前記スキャンチェイン回路による、前記マクロ回路のスキャンテストを前記マクロ回路外部からのデータ入力によって前記マクロ回路のステートを遷移させない前記第１のテストモードで行うように制御し、前記データ入力を伝達することにより（例えば、ＣＴＭ＝０とすることにより）、前記スキャンチェイン回路による、前記マクロ回路のスキャンテストを前記マクロ回路外部からのデータ入力が前記マクロ回路のステートを遷移させる前記第２のテストモードで行うことを特徴とする。
【００５０】
請求項１０に記載のマクロ回路の前記テスト用制御回路は、前記第１のテストモードでは、前記マクロ回路のデータ入力から組み合わせ回路のみを介して接続されるフリップフロップが、スキャンシフトを行う状態を保持し続けるように制御することを特徴とする。
【００５１】
請求項１１に記載のマクロ回路の前記テスト用制御回路は、前記マクロ回路のスキャンデータ入力と前記マクロ回路の内部のフリップフロップとの間にロックアップフリップフロップ（例えば、図１０のロックアップフリップフロップ１９１）を備え、前記マクロ回路の前記スキャンチェイン回路がスキャンシフト動作を行う場合（例えば、ＳＥ＝１である場合）、前記ロックアップフリップフロップは、前記マクロ回路の前記スキャンデータ入力を前記スキャンチェイン回路へと順次転送し、前記マクロ回路の前記スキャンチェイン回路がスキャンシフト動作を行わない場合（例えば、ＳＥ＝０である場合）、前記ロックアップフリップフロップは、自分自身に保持されている値を保持し続けることを特徴とする。
【００５２】
請求項１２に記載のＬＳＩ設計装置（例えば、図１３のＬＳＩ設計装置２００）は、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路（例えば、図１０のマクロテストモード用回路１９０）を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路（例えば、図１０の組み合わせ回路１６２、１６３）のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換手段（例えば、図１５のステップＳ１１４の処理を実行する図１４のテストステート生成部２４２）と、テストステート変換手段により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換手段（例えば、図１５のステップＳ１１５の処理を実行する図１４のテストパターン生成部２４３）と、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６１、１６４）と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路（例えば、図１７の組み合わせ回路２６１乃至２６５）のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成手段（例えば、図１５のステップＳ１１２の処理を実行する図１４のテストパターン生成部２４３）とを備えることを特徴とする。
【００５３】
請求項１３に記載のＬＳＩ設計装置のマクロ回路は、テスト用制御回路に、スキャンテストを行う場合にマクロ回路が外部からの入力信号の遮断を制御する、スキャンチェイン回路の１段目のフリップフロップ（例えば、図１７のＦ／Ｆ１７１乃至１７３）への入力信号を切り替える信号を出力するオア回路（例えば、図１７のオア回路１９３）を少なくとも含むことを特徴とする。
【００５４】
請求項１４に記載のＬＳＩ設計装置のマクロ回路は、テスト用制御回路に、スキャンテストを行う場合にスキャンチェイン回路の入力値を固定するロックアップフリップフロップ（例えば、図１７のロックアップＦ／Ｆ１９１）を少なくとも含むことを特徴とする。
【００５５】
請求項１５に記載のＬＳＩ設計装置のマクロ回路は、内部にマクロ回路を包含する階層構造であって、上位階層のマクロ（例えば、図１９の上位マクロ３５０）と下位階層のマクロ回路（例えば、図１９の下位マクロ１５０）は、同じ信号（ＣＴＭ）に基づいて外部からの入力信号の遮断を制御することを特徴とする。
【００５６】
請求項１６に記載のＬＳＩ設計装置のマクロ回路は、内部にマクロ回路を包含する階層構造であって、上位階層のマクロ回路（例えば、図２１のマクロ４００）と下位階層のマクロ回路（例えば、図２１のマクロ１５０）は、異なる信号（例えば、ＣＴＭ１およびＣＴＭ２）に基づいて外部からの入力信号の遮断を制御することを特徴とする。
【００５７】
請求項１７に記載のＬＳＩ設計方法は、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路（例えば、図１０のマクロテストモード用回路１９０）を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６２、１６３）のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換ステップ（例えば、図１５のステップＳ１１４）と、テストステート変換ステップの処理により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換ステップ（例えば、図１５のステップＳ１１５）と、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６１、１６４）と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路（例えば、図１７の組み合わせ回路２６１乃至２６５）のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成ステップ（例えば、図１５のステップＳ１１２）とを含むことを特徴とする。
【００５８】
請求項１８に記載の記録媒体に記録されているプログラムは、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路（例えば、図１０のマクロテストモード用回路１９０）を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６２、１６３）のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換ステップ（例えば、図１５のステップＳ１１４）と、テストステート変換ステップの処理により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換ステップ（例えば、図１５のステップＳ１１５）と、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６１、１６４）と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路（例えば、図１７の組み合わせ回路２６１乃至２６５）のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成ステップ（例えば、図１５のステップＳ１１２）とを含む処理をコンピュータに実行させることを特徴とする。
【００５９】
請求項１９に記載のプログラムは、マクロ回路が、外部からのデータ入力の遮断を制御するテスト用制御回路（例えば、図１０のマクロテストモード用回路１９０）を含むマクロ回路であって、あらかじめ記憶されているマクロ回路の入力と出力が順序回路に接続されている複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６２、１６３）のテストパターンにおける順序回路の状態遷移の値であるテストステートを、ＬＳＩのテストステートに変換するテストステート変換ステップ（例えば、図１５のステップＳ１１４）と、テストステート変換ステップの処理により変換されたＬＳＩのテストステートを、ＬＳＩのテストパターンに変換するテストパターン変換ステップ（例えば、図１５のステップＳ１１５）と、マクロ回路の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路（例えば、図１７の組み合わせ回路１６１、１６４）と、ＬＳＩの内部であって、マクロ回路の外部の回路の複数の組み合わせ回路（例えば、図１７の組み合わせ回路２６１乃至２６５）のテストパターンをＬＳＩのテストパターンとして生成するテストパターン生成ステップ（例えば、図１５のステップＳ１１２）とを含む処理をコンピュータに実行させることを特徴とする。
【００６０】
以下、図を参照して、本発明の実施の形態について説明する。
【００６１】
図４は、本発明を適用したマクロ（マクロ回路）設計装置１００の構成例を表している。図４の例の場合、マクロ設計装置１００は、例えば、３ビット幅の信号処理を実行する組み合わせ回路を有するマクロを設計する装置である。マクロ設計装置１００は、ＲＴＬ（Register Transfer Level）設計部１２１、論理合成部１２２、スキャン設計部１２３、シミュレーション部１２４、配置配線部１２５および記憶部１２６により構成されている。
【００６２】
ＲＴＬ設計部１２１は、設計仕様書などに基づいて、マクロの機能ブロック内部の構造と動作を決定する機能設計を行い、ＲＴＬ記述を表現し、表現されたＲＴＬ記述を論理合成部１２２に出力する。このとき表現されるＲＴＬ記述には、ハードウェア記述言語が用いられる。論理合成部１２２は、論理合成ツールを用いて、ＲＴＬ設計部１２１からのＲＴＬ記述を入力として、セルレベルのネットリスト（接続情報）を生成し、生成されたセルレベルのネットリストを、スキャン設計部１２３に出力する。セルとは、トランジスタからなるインバータ、ＮＡＮＤゲート、ＮＯＲゲートまたはフリップフロップ（以下、フリップフロップをＦ／Ｆと称する）などの、マクロを構成する素子のことである。
【００６３】
スキャン設計部１２３は、専用ツールを用いて、論理合成部１２２により生成されたセルレベルのネットリストのＦ／Ｆのそれぞれにマルチプレクサを対応付けて挿入し、それらを直列に接続するスキャンチェイン（スキャンチェイン回路）を設計する。そして、スキャン設計部１２３は、設計したスキャンチェインを含むセルレベルのネットリストを、シミュレーション部１２４に出力する。スキャンチェインは、このＦ／Ｆをピンから直接制御、観測する経路のことである。このスキャンチェインを利用して、マクロ内部の組み合わせ回路に対して、直接値を書き込んだり、値を読み出したりすることができる。
【００６４】
シミュレーション部１２４は、論理シミュレータを用いて、ネットリストの動作検証を行い、さらに、静的タイミングアナライザを用いて、ネットリストの最高動作周波数やセットアップタイムとホールドタイムの検証を行い、検証されたネットリストを配置配線部１２５に出力する。
【００６５】
配置配線部１２５は、シミュレーション部１２４により検証されたネットリストを用いて、マクロの配置を設定し、設定された配置に基づいて、セルの詳細な配置を実行する。そして、配置配線部１２５は、配置されたセル間を配線する。これにより、マクロが設計される。
【００６６】
記憶部１２６には、スキャン設計部１２３により生成されたマクロのテストステートを含むデータが、マクロデータ１３０として記憶される。
【００６７】
図５は、図４のスキャン設計部１２３の詳細な構成例を示す機能ブロック図である。
【００６８】
スキャン設計部１２３には、スキャン回路を設計するスキャン回路設計部１４１、マクロの回路データ（ネットリスト）に基づいて、所定の条件におけるマクロのテストステートを生成するテストステート生成部１４２、記憶部１２６への記憶を制御する記憶制御部１４３が設けられている。スキャン設計部１２３は、スキャン設計のための処理を実行する。スキャン設計部１２３によりスキャン設計が行われる。
【００６９】
次に、図６のフローチャートを参照して、図４のマクロ設計装置１００における、マクロ設計処理を説明する。なお、この処理は、ユーザによりマクロの設計の開始が指令されたとき開始される。
【００７０】
ステップＳ１において、ＲＴＬ設計部１２１は、設計仕様書などに基づいて、生成するマクロの機能ブロック内部の構造と動作を決定する機能設計を行い、ＲＴＬ記述を表現し、
表現されたＲＴＬ記述を論理合成部１２２に出力する。
【００７１】
ステップＳ２において、論理合成部１２２は、論理合成ツールを用いて、ＲＴＬ設計部１２１からのＲＴＬ記述を入力として、セルレベルのネットリスト（接続情報）を生成し、生成されたセルレベルのネットリスト（マクロ回路データ）を、スキャン設計部１２３に出力する。
【００７２】
ステップＳ３において、スキャン設計部１２３は、専用ツールを用いて、論理合成部１２２により生成されたセルレベルのネットリストのＦ／Ｆのそれぞれにマルチプレクサを対応付けて挿入し、それらを直列に接続するスキャンチェインを設計するとともにテストステートを生成する、スキャン設計処理を実行する。なお、この処理の詳細は、図７のフローチャートを参照して後述する。
【００７３】
シミュレーション部１２４は、ステップＳ４において、論理シミュレータを用いてネットリストの動作検証を行い、ステップＳ５において、静的タイミングアナライザを用いてネットリストの最高動作周波数やセットアップタイムとホールドタイムの検証を行い、検証されたネットリストを配置配線部１２５に出力する。
【００７４】
ステップＳ６において、配置配線部１２５は、シミュレーション部１２４により検証されたネットリストを用いて、マクロの配置を設定し、設定された配置に基づいて、セルの詳細な配置を実行する。そして、配置配線部１２５は、配置されたセル間を配線し、マクロを設計し、マクロ設計処理を終了する。
【００７５】
図６の処理により、複数（例えば、４個）の組み合わせ回路、Ｆ／Ｆ、マルチプレクサ（およびマクロテストモード用回路）などよりなるマクロが設計される。マクロテストモード用回路（テスト用制御回路）は、マクロが外部からのデータ入力に影響されないようにする回路である。
【００７６】
次に、図７のフローチャートを参照して、図６のステップＳ３の処理の詳細である、スキャン設計処理を説明する。なお、この処理は、図５のスキャン設計部１２３により実行される処理である。
【００７７】
ステップＳ３１において、スキャン回路設計部１４１は、スキャンチェインを生成し、マクロテストモード用回路を挿入するスキャン回路設計処理を実行する。この処理の詳細は、図８を参照して後述する。
【００７８】
ステップＳ３２において、テストステート生成部１４２は、ＣＴＭ＝１の条件で、マクロ１５０の組み合わせ回路１６２および１６３のデータに基づいて、マクロのテストステートを生成する。通常、テストステートとしては、ロードされるステートとアンロードされるステートがセットとして、数百から数万セットが生成される。テストステートは、マクロ１５０のテストパターンにおける順序回路の状態遷移の値である。
【００７９】
ステップＳ３３において、記憶制御部１４３は、ステップＳ３２の処理で生成されたマクロのテストステートを、マクロデータ１３０として、他のデータと関連付けて記憶部１２６に記憶させる。他のデータとは、ここでは、ステップＳ３１の処理で設計されたスキャン回路のデータなどを示す。その後、処理は図６のステップＳ３に戻り、それ以降の処理が行われる。
【００８０】
次に、図８のフローチャートを参照して、図７のステップＳ３１の処理の詳細である、スキャン回路設計処理を説明する。
【００８１】
ステップＳ６１において、スキャン回路設計部１４１は、スキャンチェインを生成（設計）する。具体的には、スキャン回路設計部１４１は、専用ツールを用いて、論理合成部１２２により生成されたセルレベルのネットリストのＦ／Ｆのそれぞれにマルチプレクサを対応付けて挿入し、それらを直列に接続するスキャンチェインを生成（設計）する。これにより、後述する図１０のマルチプレクサ１８１、Ｆ／Ｆ１７１、マルチプレクサ１８２、Ｆ／Ｆ１７２、マルチプレクサ１８３、Ｆ／Ｆ１７３、・・・、マルチプレクサ１８９、およびＦ／Ｆ１７９が直列に接続されるようスキャンチェインが設計される。
【００８２】
ステップＳ６２において、スキャン回路設計部１４１は、マクロテストモード用回路挿入処理を実行する。この処理の詳細を、図９を参照して説明する。その後、処理は図７のステップＳ３１に戻り、それ以降の処理が行われる。
【００８３】
図９のステップＳ８１において、スキャン回路設計部１４１は、ロックアップフリップフロップ（以下、ロックアップＦ／Ｆと称する）をマクロに挿入する。ロックアップＦ／Ｆ（後述する図１０のロックアップＦ／Ｆ１９１）の位置は、ロックアップＦ／Ｆの出力が図８のステップＳ６１で生成されたスキャンチェインの１番目のマルチプレクサ（後述する図１０のマルチプレクサ１８１）の一方の入力となるように挿入される。
【００８４】
ステップＳ８２において、スキャン回路設計部１４１は、マルチプレクサをマクロに挿入する。マルチプレクサの位置は、マルチプレクサの出力がロックアップＦ／Ｆへの入力信号となり、ロックアップＦ／Ｆの出力が、マルチプレクサの一方の入力となるように設定される（すなわち、後述する図１０のマルチプレクサ１９２の出力が、ロックアップＦ／Ｆ１９１への入力となるよう設定される）。
【００８５】
ステップＳ８３において、スキャン回路設計部１４１は、オア回路をマクロに挿入する。オア回路は、論理積回路であり、入力をＣＴＭ（マクロテストモード）とＳＥ（スキャンイネーブル）からの信号とし、出力をスキャンチェインの１段目（マクロの内部であって、その入力と出力が順序回路に接続されている１段目（最初）の組み合わせ回路）の入力側のＦ／Ｆに接続されるマルチプレクサ（この場合３個のマルチプレクサ１８１乃至１８３）の切り替え信号とするよう設定される。その後、処理は終了し、図８のステップＳ６２に戻る。図９の例では、マクロテストモード用回路は、ロックアップＦ／Ｆ、マルチプレクサ、およびオア回路により構成される。
【００８６】
図６乃至図９の処理により、組み合わせ回路にスキャンチェインが組み込まれるとともに、マクロテストモード用回路が挿入され、マクロが設計される。これにより、図１０に示されるような、スキャン設計が適用されたマクロ１５０が生成される。なお、マクロテストモード用回路は、マクロ外部からのデータ入力に影響されないような回路である。
【００８７】
図１０の例においては、マクロ１５０は、４個の組み合わせ回路１６１乃至１６４、９個のＦ／Ｆ１７１乃至１７９、Ｆ／Ｆ１７１乃至１７９のそれぞれに対応する９個のマルチプレクサ１８１乃至１８９、およびマクロテストモード用回路１９０により構成されている。組み合わせ回路１６１と１６４は、マクロ１５０の内部であって、その入力と出力が順序回路（Ｆ／Ｆ）に接続されていない組み合わせ回路であり、組み合わせ回路１６２と１６３は、マクロ１５０の内部であって、その入力と出力が順序回路（Ｆ／Ｆ）に接続されている組み合わせ回路である。
【００８８】
マクロテストモード用回路１９０には、上述した図９のステップＳ８１で挿入されるロックアップＦ／Ｆ１９１、ステップＳ８２で挿入されるマルチプレクサ１９２、およびステップＳ８３の処理で挿入されるオア回路１９３が設けられる。オア回路１９３は、入力を端子ＣＴＭとＳＥからの信号とする論理和を演算し、その結果をスキャンチェインの１段目のマルチプレクサ１８１乃至１８３が入力信号を選択するための切り替え信号として出力する。マルチプレクサ１９２は、入力を端子ＳＩとロックアップＦ／Ｆ１９１からの信号とし、端子ＳＥからの信号に基づいて、これらを選択し、選択した信号をロックアップＦ／Ｆ１９１に出力する。ロックアップＦ／Ｆ１９１は、入力をマルチプレクサ１９２からの信号とし、クロックＣＫの立ち上がりにラッチして入力された信号をマルチプレクサ１９２と後段のマルチプレクサ１８１に出力する。すなわち、ＳＥ＝０である場合、マルチプレクサ１９２はロックアップＦ／Ｆ１９１からの入力信号を選択するので、ロックアップＦ／Ｆ１９１は同じ値を保持することになる。
【００８９】
すなわち、マクロテストモード用回路１９０により、マクロ１５０に対して図示せぬ外部の制御回路から端子ＳＥに０が入力された場合、マクロ１５０は、本来のシステム動作を実行し、端子ＳＥに１が入力された場合、マクロ１５０のＦ／Ｆ１７１乃至１７９は、シフトレジスタ動作を行う。
【００９０】
４段の組み合わせ回路１６１乃至１６４は、それぞれ３つの入力端子を有しており、組み合わせ回路１６２乃至１６４（すなわち、組み合わせ回路１６１を除く組み合わせ回路）の前段には、Ｆ／Ｆが接続されている。ここで、前段とは、対象に信号を入力するものを指し、組み合わせ回路１６２の前段のＦ／Ｆは、Ｆ／Ｆ１７１乃至１７３、Ｆ／Ｆ１７３の前段はＦ／Ｆ１７２、Ｆ／Ｆ１７２の前段はＦ／Ｆ１７１である。また、後段とは、対象から出力された信号が入力されるものを指し、組み合わせ回路１６２の後段のＦ／Ｆは、Ｆ／Ｆ１７４乃至１７６である。
【００９１】
組み合わせ回路１６２の前段には、Ｄ（ディレイ）−フリップフロップにより構成されるＦ／Ｆ１７１，１７２および１７３が配置されており、組み合わせ回路１６３の前段には、Ｄ−Ｆ／Ｆにより構成されるＦ／Ｆ１７４，１７５および１７６が配置されており、組み合わせ回路１６４の前段には、Ｄ−Ｆ／Ｆにより構成されるＦ／Ｆ１７７，１７８および１７９が配置されている。また、Ｆ／Ｆ１７１乃至１７９は、それぞれが前段のマルチプレクサ１８１乃至１８９に接続されている。また、Ｆ／Ｆ１７９の前段は、Ｆ／Ｆ１７８、Ｆ／Ｆ１７８の前段はＦ／Ｆ１７７、Ｆ／Ｆ１７７の前段はＦ／Ｆ１７６、Ｆ／Ｆ１７６の前段はＦ／Ｆ１７５、・・・、Ｆ／Ｆ１７２の前段はＦ／Ｆ１７１とされる。なお、以下、組み合わせ回路１６１乃至１６４、Ｆ／Ｆ１７１乃至１７９、並びにマルチプレクサ１８１乃至１８９を個々に区別する必要がない場合、単に、それぞれ、組み合わせ回路１６０、Ｆ／Ｆ１７０、およびマルチプレクサ１８０と称する。
【００９２】
組み合わせ回路１６１には、外部からの正規信号ＩＮ１乃至ＩＮ３が入力される。なお、組み合わせ回路１６１から出力される信号をＩＮ１−１，ＩＮ２−１，およびＩＮ３−１とそれぞれ称し、組み合わせ回路１６２から出力される信号をＩＮ１−２，ＩＮ２−２，およびＩＮ３−２とそれぞれ称し、組み合わせ回路１６３から出力される信号をＩＮ１−３，ＩＮ２−３，およびＩＮ３−３とそれぞれ称し、組み合わせ回路１６４から出力される信号をＩＮ１−４，ＩＮ２−４，およびＩＮ３−４とそれぞれ称す。
【００９３】
マルチプレクサ１８１乃至１８３は、外部からのＣＴＭ信号とＳＥ信号に基づいてオア回路１９３により演算された結果の信号を選択信号として入力する。マルチプレクサ１８４乃至１８９は、ＳＥ信号を選択信号として入力する。
【００９４】
マルチプレクサ１８１は、選択信号が「１（Ｈ）」のときには、前段のロックアップＦ／Ｆ１９１からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６１からの正規信号ＩＮ３−１を選択し、選択した信号を、Ｆ／Ｆ１７１に出力する。マルチプレクサ１８２は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７１からの信号を選択し、選択信号が「０（Ｌ）」のときには、正規信号ＩＮ２−１を選択し、選択した信号を、Ｆ／Ｆ１７２に出力する。マルチプレクサ１８３は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７２からの信号を選択し、選択信号が「０（Ｌ）」のときには、正規信号ＩＮ１−１を選択し、選択した信号を、Ｆ／Ｆ１７３に出力する。マルチプレクサ１８４は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７３からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６２からの正規信号ＩＮ１−２を選択し、選択した信号を、Ｆ／Ｆ１７４に出力する。マルチプレクサ１８５は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７４からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６２からの正規信号ＩＮ２−２を選択し、選択した信号を、Ｆ／Ｆ１７５に出力する。マルチプレクサ１８６は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７５からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６２からの正規信号ＩＮ３−２を選択し、選択した信号を、Ｆ／Ｆ１７６に出力する。マルチプレクサ１８７は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７６からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６３からの正規信号ＩＮ３−３を選択し、選択した信号を、Ｆ／Ｆ１７７に出力する。マルチプレクサ１８８は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７７からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６３からの正規信号ＩＮ２−３を選択し、選択した信号を、Ｆ／Ｆ１７８に出力する。マルチプレクサ１８９は、選択信号が「１（Ｈ）」のときには、前段のＦ／Ｆ１７８からの信号を選択し、選択信号が「０（Ｌ）」のときには、組み合わせ回路１６３からの正規信号ＩＮ１−３を選択し、選択した信号を、Ｆ／Ｆ１７９に出力する。
【００９５】
Ｆ／Ｆ１７１乃至１７３は、マクロ１５０外部から入力されるクロックＣＫの立ち上がりにラッチして、マルチプレクサ１８１乃至１８３からの信号を、組み合わせ回路１６２の各入力端子に出力する。Ｆ／Ｆ１７４乃至１７６は、マクロ１５０の外部から入力されるクロックＣＫの立ち上がりにラッチして、組み合わせ回路１６２からの信号を、組み合わせ回路１６３の各入力端子に出力する。Ｆ／Ｆ１７７乃至１７９は、マクロ１５０外部から入力されるクロックＣＫの立ち上がりにラッチして、組み合わせ回路１６３からの信号を、組み合わせ回路１６４の各入力端子に出力する。組み合わせ回路１６２乃至１６４は、対象となるＦ／Ｆから入力された値に基づいて演算を行い、その結果を対象となるマルチプレクサの片方の入力端子に出力する。
【００９６】
すなわち、端子ＳＥに「０（Ｌ）」の信号が入力された場合、マクロ１５０は、本来のシステム動作（組み合わせ回路１６１乃至１６４を用いた演算処理）を実行し、端子ＳＥに「１（Ｈ）」の信号が入力された場合、マクロ１５０は、Ｆ／Ｆ１７１乃至１７９のそれぞれがシフトレジスタの動作を行う（組み合わせ回路１６１乃至１６４を介さない処理を行う）ように構成されている。そして、このシフトレジスタの先頭となるＦ／Ｆ１７１の前段には、ロックアップＦ／Ｆ１９１が設けられており、全体として、スキャンイン端子ＳＩからスキャンアウトＳＯ端子までのスキャンチェインが構成されている。
【００９７】
また、マクロ１５０の入力端子ＩＮ１乃至ＩＮ３から組み合わせ回路１６１を介してデータを受け取るＦ／Ｆ１７１乃至１７３は、端子ＳＥが「１（Ｈ）」の場合だけでなく、マクロテストモード端子ＣＴＭが「１（Ｈ）」の場合にもシフト動作を行うよう、ＳＥとＣＴＭで論理和を取った信号（すなわち、オア回路１９３からの信号）にて制御される。
【００９８】
このように、オア回路１９３からの信号が「０（Ｌ）」である場合、マルチプレクサ１８１乃至１８３は、組み合わせ回路１６１からの信号を選択し、それぞれＦ／Ｆ１７１乃至１７３に出力する。また、ＳＥ端子からの信号が「０（Ｌ）」である場合、マルチプレクサ１８４乃至１８９は、組み合わせ回路１６２および１６３からの信号を選択し、それぞれＦ／Ｆ１７４乃至１７９に出力する。また、ＳＥ＝１である場合、オア回路１９３からの信号は１であるので、マルチプレクサ１８１乃至１８９は前段のロックアップＦ／Ｆ１９１およびＦ／Ｆ１７１乃至１７８からの信号を選択し、それぞれＦ／Ｆ１７２乃至１７９に出力する。
【００９９】
図１１に、通常のスキャンテストを図１０のマクロ１５０に実施した場合の信号波形を示す。図１１においては、最初ＣＴＭ＝１、ＳＥ＝１の場合、組み合わせ回路１６２および１６３をテストするためのステート（Ｆ１Ｓ０乃至Ｆ９Ｓ０、並びにＬ１Ｓ０よりなる入力設定値）が、クロックＣＫの立ち上がりにラッチしてスキャンシフト（スキャンロード）される。図中、横軸は時間を示している。なお、Ｌ１はロックアップＦ／Ｆ１９１の状態を示し、Ｆ１乃至Ｆ９は、それぞれＦ／Ｆ１７１乃至１７９の状態を示す（以下、信号波形を示す図においては同様である）。これにより、組み合わせ回路１６２、１６３への入力設定値を供給すべき各Ｆ／Ｆ（順序回路）に、値を割り当てることができる。具体的には、ロックアップＦ／Ｆ１９１、Ｆ／Ｆ１７１乃至Ｆ／Ｆ１７９に、それぞれＬ１Ｓ０，Ｆ１Ｓ０，Ｆ２Ｓ０，Ｆ３Ｓ０，Ｆ４Ｓ０，Ｆ５Ｓ０，Ｆ６Ｓ０，Ｆ７Ｓ０，Ｆ８Ｓ０，Ｆ９Ｓ０を割り当てることができる。換言すると、最初のＣＴＭ＝１、ＳＥ＝１の条件では、組み合わせ回路１６２および１６３からの出力信号が後段のマルチプレクサ１８４乃至１８９で選択されないため、組み合わせ回路１６２および１６３からの出力信号は観測されず、ロックアップＦ／Ｆ１９１に入力された値が順次Ｆ／Ｆ１７１乃至Ｆ／Ｆ１７９に遷移することになる。
【０１００】
ステートＳ０がロードされると（ＣＴＭ＝１，ＳＥ＝０とされると）、ＳＯ端子からはＦ／Ｆ１７９に格納された（割り当てられた）Ｆ９Ｓ０が観測される。
【０１０１】
その後、ＣＴＭ＝１、ＳＥ＝０の条件でクロックを１回与えることで、マクロ１５０のステートはＳ０からＳ１へ遷移する。このとき、Ｆ／Ｆ１７１乃至１７９は、マルチプレクサ１８１乃至１８９からの信号を、クロックＣＫの立ち上がりにラッチして、それぞれ対応する組み合わせ回路１６２乃至１６４に出力するとともに、後段のマルチプレクサ１８２乃至１８９にそれぞれ出力する。すなわち、Ｆ／Ｆ１７１乃至１７３に与えられた入力設定値が組み合わせ回路１６２に供給され、組み合わせ回路１６２により演算された結果の値（ＩＮ１−２乃至ＩＮ３−２）が、それぞれマルチプレクサ１８４乃至１８６に入力され、マルチプレクサ１８４乃至１８６は、組み合わせ回路１６２からの信号を選択する。また、Ｆ／Ｆ１７４乃至１７６に与えられた入力設定値が組み合わせ回路１６３に供給され、組み合わせ回路１６３により演算された結果の値（ＩＮ１−３乃至ＩＮ３−３）が、それぞれマルチプレクサ１８９乃至１８７に入力され、マルチプレクサ１８９乃至１８６は、組み合わせ回路１６３からの信号を選択する。
【０１０２】
これにより、Ｆ／Ｆ１７４乃至１７６には、Ｆ／Ｆ１７１乃至１７３からの信号（入力設定値）を入力として組み合わせ回路１６２により演算された結果が入力され、Ｆ／Ｆ１７７乃至１７９には、Ｆ／Ｆ１７４乃至１７６信号（入力設定値）を入力として組み合わせ回路１６３により演算された結果が入力される。
【０１０３】
さらにその後、ＣＴＭ＝１、ＳＥ＝１の条件でクロックが与えられると、Ｆ／Ｆ１７１乃至Ｆ／Ｆ１７９に格納されている値が順次Ｆ／Ｆ１７９からスキャンアウトＳＯ信号として出力される。すなわち、ＣＴＭ＝１、ＳＥ＝１の条件における１回目のクロックＣＫでＳＯ信号としてＦ８Ｓ１が観測され、２，３，４，・・・９回目のクロックＣＫでＳＯ信号としてＦ７Ｓ１，Ｆ６Ｓ１，Ｆ５Ｓ１，Ｆ４Ｓ１，Ｆ２Ｓ０，Ｆ１Ｓ０，Ｌ１Ｓ０，Ｌ１Ｓ０がそれぞれ観測される。
【０１０４】
すなわち、ＣＴＭ＝１、ＳＥ＝０の条件で、組み合わせ回路１６２と１６３に入力設定値が入力され、組み合わせ回路１６２と１６３からそれぞれ演算された結果が出力される。そして、次のＣＴＭ＝１，ＳＥ＝１の条件で、組み合わせ回路１６２および１６３により演算された結果がそれぞれスキャンシフトされ、ＳＯ信号として順次出力される。換言すると、組み合わせ回路１６２および１６３のテスト結果のステート（Ｆ９Ｓ１乃至Ｆ１Ｓ０、並びにＬ１Ｓ０よりなる出力値）が、クロックＣＫの立ち上がりにラッチしてスキャンアウト（ステートのアンロード）される。
【０１０５】
アンロードされたステートＳ１は、従来のスキャンテストとは異なり、ＣＴＭ＝１という制約条件があるため、実際にはＬ１Ｓ１＝Ｌ１Ｓ０、Ｆ１Ｓ１＝Ｌ１Ｓ０、Ｆ２Ｓ１＝Ｆ１Ｓ０、Ｆ３Ｓ１＝Ｆ２Ｓ０という結果で観測される。この値（出力値）が、図７のステップＳ３２で生成されたテストステート（出力期待値）と一致すれば、マクロが正常に動作したことになる。
【０１０６】
このことから、再利用を目的とした、マクロをテストするステートの生成は、端子ＣＴＭを１（Ｈ）に固定して行う。この条件下では、マクロの入力に位置するＦ／Ｆ１７１乃至１７３は、スキャンイネーブル信号ＳＥの値に関わらず、常にシフトレジスタとして動作し、組み合わせ回路１６１からの出力は取り込まれない。このことは、Ｆ／Ｆ１７１乃至１７３には、オア回路１９３からの信号が入力され、オア回路１９３は、ＣＴＭが１であれば、ＳＥの値にかかわらず、１を出力するからである。
【０１０７】
Ｆ／Ｆ１７１乃至１７３がシフト動作をすると、その値はロックアップＦ／Ｆ１９１から供給される。ロックアップＦ／Ｆ１９１は、スキャンモード端子ＳＥが１（Ｈ）であれば、他のＦ／ＦＦ／Ｆ１７１乃至１７９とともに、入力をＳＩ端子、出力をＳＯ端子とするスキャンチェインの１ビットとして動作するが、ＳＥ＝０（Ｌ）ではロックアップＦ／Ｆ１９１の保持していた値を保持しつづける。スキャンモードとは、レジスタをシフトチェインとして動作させることで、ステートをマクロの外部端子から直接的に設定および観測するためのモードであり、これは、スキャン設計により実現される。
【０１０８】
このように、ＣＴＭ＝１であればステートのロード後（ＳＥ＝１からＳＥ＝０に変化させた直後）では、マクロのステート、すなわちＦ／Ｆ１７１乃至１７９、並びにロックアップＦ／Ｆ１９１の値は、組み合わせ回路１６１からの入力に影響されることなく、クロックに同期して遷移する。したがって、この条件で生成されたテストステートは、ＬＳＩ全体のステートへ単純変換することができ、テストステートを再利用することができる。
【０１０９】
ここで、マクロテストモードＣＴＭ＝１で生成したテストステートは、マクロ１５０の入力側の組み合わせ回路１６１およびマクロの出力側の組み合わせ回路１６４においては、テストが行われていない。組み合わせ回路１６１および組み合わせ回路１６４においては、どちらも、その出力を取り囲むＦ／Ｆが存在しないからである。組み合わせ回路１６１および組み合わせ回路１６４のテストは、マクロ１５０をＬＳＩに組み込んだ後に、ＣＴＭ＝０を固定して、テストパターンの生成を行うことで行えばよいし、マクロ１５０を構成する組み合わせ回路が、例えば３００個ある場合、入力側の１個の組み合わせ回路と出力側の１個の組み合わせ回路、すなわち、２個の組み合わせ回路のテストが行えないことはほとんど問題ではない。このことから、本実施の形態では、マクロ１５０のテストを１００％再利用することはできないが、組み合わせ回路１６１と組み合わせ回路１６４は、マクロ１５０の内部の組み合わせ回路である組み合わせ回路１６２および１６３に比べ、ごく小規模であると考えられるので、本発明の効果を著しく損なうものではない。
【０１１０】
なお、テストステートとは、同期回路の記憶素子（フリップフロップ等）に保持される回路状態（ステート）について、同期回路のテストを目的として状態遷移を生じさせた際の、状態遷移前と状態遷移後のそれぞれのステートを一対とした、ステート対の集合を指す。状態遷移には、ステートに変化のない場合も含まれる。
【０１１１】
これに対しテストパターンとは、被テスト回路の入力パターン系列と、それに呼応した出力パターン系列を一対とした、パターンの集合を指す。テストステートからテストパターンへの変換は、スキャン設計がなされた被テスト回路であれば、状態遷移前のステートはスキャンチェインを経由してシリアルに各フリップフロップにロード（スキャンイン）された被テスト回路への入力パターン系列と、状態遷移後のステートはスキャンチェインを経由してシリアルに各フリップフロップからアンロード（スキャンアウト）された被テスト回路からの出力パターン系列、とに展開することで実現される。テストパターンは被テスト回路の入力および出力ピンに対するパターン系列でのみ表現されるため、被テスト回路の状態（ステート）という概念を持たないものである。
【０１１２】
次に、図１２を参照して、スピード測定を目的としたスキャンテストを図１０のマクロ１５０に実施した場合の信号波形を説明する。
【０１１３】
図１２においては、組み合わせ回路１６２および１６３をテストするためのステートＳ０のロードは、図１１に示した通常のスキャンテストと同様に行われる。その後、ＳＥ＝０にてクロックＣＫを２回与え、このクロックＣＫ間にマクロのステートがＳ１からＳ２へと遷移できたか否かを、Ｓ２をアンロードする（再びＳＥ＝１とする）ことで確認する。すなわち、組み合わせ回路１６２および１６３が要する時間を計測するためのテストが行われる。なお、ステートＳ２のアンロードも、図１１に示される通常のスキャンテストと同様に行われるので、その説明は省略する。
【０１１４】
アンロードされたステートＳ２は、従来のスキャンテストとは異なり、ＣＴＭ＝１という制約条件があるため、実際にはＬ１Ｓ２＝Ｌ１Ｓ０、Ｆ１Ｓ２＝Ｌ１Ｓ０、Ｆ２Ｓ２＝Ｌ１Ｓ０、Ｆ３Ｓ２＝Ｆ１Ｓ０という結果で観測される。
【０１１５】
次に、図６乃至図９の処理により生成された図１０のマクロ１５０を含む、ＬＳＩの設計について以下に説明する。なお、図４のマクロ設計装置１００と図１３のＬＳＩ設計装置２００の構成を同様としてもよいが、本実施の形態では、説明しやすいように区別して説明する。
【０１１６】
図１３は、本発明を適用したＬＳＩ設計装置２００の構成例を表している。図１３において、図４と対応する名称のものは対応する機能を有しているので、その説明は省略する。図１３の例の場合、ＬＳＩ設計装置２００は、例えば、３ビット幅の信号処理を実行する組み合わせ回路を有するＬＳＩを設計する装置である。ＬＳＩ設計装置２００は、ＲＴＬ設計部２２１、論理合成部２２２、スキャン設計部２２３、シミュレーション部２２４、配置配線部２２５および記憶部２２６により構成されている。
【０１１７】
ＲＴＬ設計部２２１は、設計仕様書などに基づいて、ＬＳＩの機能ブロック内部の構造と動作を決定する機能設計を行い、ＲＴＬ記述を表現し、表現されたＲＴＬ記述を論理合成部２２２に出力する。このとき表現されるＲＴＬ記述には、ハードウェア記述言語が用いられる。論理合成部２２２は、論理合成ツールを用いて、ＲＴＬ設計部２２１からのＲＴＬ記述を入力として、セルレベルのネットリスト（接続情報）を生成し、生成されたセルレベルのネットリストを、スキャン設計部２２３に出力する。セルとは、トランジスタからなるインバータ、ＮＡＮＤゲート、ＮＯＲゲートまたはＦ／Ｆなどの、ＬＳＩを構成する素子のことである。
【０１１８】
スキャン設計部２２３は、専用ツールを用いて、論理合成部２２２により生成されたセルレベルのネットリストのＦ／Ｆのそれぞれにマルチプレクサを対応付けて挿入し、それらを直列に接続するスキャンチェインを設計する。そして、スキャン設計部２２３は、設計したスキャンチェインを含むセルレベルのネットリストを、シミュレーション部２２４に出力する。スキャンチェインは、このフリップフロップをピンから直接制御、観測する経路のことである。このスキャンチェインを利用して、ＬＳＩ内部の組み合わせ回路（またはＦ／Ｆ）に対して、直接値を書き込んだり、値を読み出したりすることができる。
【０１１９】
シミュレーション部２２４は、論理シミュレータを用いて、ネットリストのゲートレベルの動作検証を行い、さらに、静的タイミングアナライザを用いて、ネットリストのゲートレベルの最高動作周波数やセットアップタイムとホールドタイムの検証を行い、検証されたネットリストを配置配線部２２５に出力する。
【０１２０】
配置配線部２２５は、シミュレーション部２２４により検証されたネットリストを用いて、ＬＳＩの配置を設定し、設定された配置に基づいて、セルの詳細な配置を実行する。そして、配置配線部２２５は、配置されたセル間を配線する。これにより、ＬＳＩが設計される。設計されるＬＳＩは、例えば、複数のマクロ、組み合わせ回路、および順序回路などによりなる。
【０１２１】
記憶部２２６には、スキャン設計部２２３により生成されたＬＳＩのテストステートや、上述したマクロ設計装置１００により生成されたマクロ１５０のテストステートを含むデータが、マクロデータ２３０として記憶される。すなわち、このマクロデータ２３０には、上述した図４のマクロデータ１３０が含まれる。また、マクロデータ２３０は、複数のマクロデータ１３０の集合である。
【０１２２】
図１４は、図１３のスキャン設計部２２３の詳細な構成例を示す機能ブロック図である。
【０１２３】
スキャン設計部２２３には、スキャン回路を設計するスキャン回路設計部２４１、ＬＳＩの回路データ（ネットリスト）に基づいて、所定の条件におけるＬＳＩやマクロのテストパターンにおける順序回路の状態遷移の値であるテストステートを生成するテストステート生成部２４２、マクロやＬＳＩに含まれる組み合わせ回路やマクロ外部のテストパターンを生成するテストパターン生成部２４３、および記憶部２２６への記憶を制御する記憶制御部２４４が設けられている。スキャン設計部２２３は、スキャン設計のための処理を実行する。
【０１２４】
ここで、ＬＳＩ設計装置２００におけるＬＳＩ設計処理について説明する。
【０１２５】
ＬＳＩの設計は、基本的には、上述した図６の処理と同様であり、単に、設計の対象がマクロからＬＳＩに変更されるだけである。この場合、ＬＳＩに図６の処理で生成されたマクロが組み込まれる。また、ＬＳＩの生成とマクロの生成とでは、図６のステップＳ３のスキャン設計処理の詳細が異なってくる。そこで、図１５のフローチャートを参照して、ＬＳＩを生成する場合における、図６のステップＳ３のスキャン設計処理の詳細を説明する。すなわち、図１５の処理は、ＬＳＩを設計する場合の、本発明を適用したスキャン設計処理である。
【０１２６】
ステップＳ１１１において、スキャン回路設計部２４１は、スキャン回路設計処理を実行する。この処理の詳細を、図１６を参照して説明する。ステップＳ１３１において、スキャン回路設計部２４１は、マクロ１５０の組み合わせ回路以外のスキャンチェイン（すなわち、後述する図１７のＬＳＩ２５０の内部であって、マクロ１５０の外部の組み合わせ回路２６１乃至２６５のスキャンチェイン）を設計する。すなわち、マクロ１５０の内部のスキャンチェインは既に生成されている（記憶部２２６に記憶されている）ため、スキャン回路設計部２４１は、生成するＬＳＩにおいて、マクロ１５０の内部以外の回路におけるスキャンチェインを設計する。その後、処理は図１５のステップＳ１１１に戻る。
【０１２７】
このように、スキャン回路設計部２４１は、あらかじめ生成されたマクロ１５０のスキャンチェインを流用するため、マクロ１５０のスキャンチェインを改めて生成せずに済み、もって、スキャン設計を容易にすることができる。
【０１２８】
図１５に戻って、ステップＳ１１２において、テストパターン生成部２４３は、ＣＴＭ＝０の条件でマクロ１５０の組み合わせ回路１６１および１６４、並びにマクロ１５０の外部のテストパターンを生成する。具体的には、テストパターン生成部２４３は、後述する図１７において、マクロ１５０の組み合わせ回路１６１および１６４、並びに、ＬＳＩ２５０の内部であって、マクロ１５０の外部の回路（すなわち、図１７の組み合わせ回路２６１乃至２６５）のテストパターンを生成する。マクロ１５０の組み合わせ回路１６１、１６４は、マクロ１５０内部であって、その入力と出力が順序回路（Ｆ／Ｆ）に接続されていない組み合わせ回路である。
【０１２９】
ステップＳ１１３において、テストステート生成部２４２は、記憶制御部２４４を介して記憶部２２６に記憶されているマクロデータ２３０からマクロ１５０のテストステートを取得する。このテストステートは、図７のステップＳ３２でマクロ設計装置１００により生成され、記憶されたデータである。
【０１３０】
ステップＳ１１４において、テストステート生成部２４２は、ＣＴＭ＝１の条件で、マクロ１５０のテストステートをＬＳＩのテストステートに変換する。具体的には、テストステート生成部２４２は、ＬＳＩ全体のテストステートのうち、マクロ１５０に対応する部分のテストステートを、ステップＳ１１３で取得したテストステートとする。ＬＳＩのステートは、マクロのステートを包含しているので、この変換は単純な対応付けで行われる。
【０１３１】
ステップＳ１１５において、テストパターン生成部２４３は、ステップＳ１１４で生成（変換）されたＬＳＩのテストステートをテストパターンに変換する。具体的には、テストパターン生成部２４３は、ＬＳＩのテストステートを、スキャンシフトによるステートのロードとアンロードに展開することで、ＬＳＩのテストパターンに変換する。これにより、ＬＳＩの部分回路となったマクロの組み合わせ回路１６２および１６３について、テストパターンを再利用することができる。
【０１３２】
ステップＳ１１６において、テストパターン生成部２４３は、ステップＳ１１２の処理で生成した組み合わせ回路１６１、組み合わせ回路１６４、およびマクロ１５０外部のテストパターン、並びにマクロ１５０のテストステートが変換されたＬＳＩのテストパターンをあわせて、ＬＳＩのテストパターンとして出力する。その後、処理は図６のステップＳ３に戻る。
【０１３３】
図６、図１５、および図１６の処理により、マクロ１５０が含まれるＬＳＩ２５０のスキャン設計が行われる。このとき、マクロ１５０のテストパターンについては、あらかじめ生成されたマクロのテストステートが流用される。従って、マクロ１５０の組み合わせ回路１６２および１６３のテストパターンの生成が不要となるので、ＬＳＩのスキャン設計を容易にすることができる。すなわち、ＬＳＩ２５０の設計の全工程（図６の処理）を容易にすることができる。なお、ステップＳ１１２と、ステップＳ１１３乃至ステップＳ１１５の処理の順番は任意であり、平行に実行されてもよいし、逆に実行されてもよい。
【０１３４】
図１７は、図６、図１５および図１６の処理により設計されたＬＳＩ２５０の回路構成を示す図である。図１７の例においては、ＬＳＩ２５０は、マクロ１５０の他、５個の組み合わせ回路２６１乃至２６５、９個のＦ／Ｆ２７１乃至２７９、並びに、Ｆ／Ｆ２７１乃至２７９のそれぞれに対応する９個のマルチプレクサ２８１乃至２８９により構成されている。
【０１３５】
マクロ１５０のＣＴＭ端子はＬＳＩ２５０の端子に接続され、ＬＳＩテストパターンの中で直接制御可能となっている。残りのマクロ１５０の端子の接続については、従来のスキャン設計と何ら変わることは無いのでその説明は省略する。本実施の形態では、ＬＳＩ２５０に１個だけマクロ１５０を使用しているが、マクロが多種であったり、多数であったりした場合でも、同様に扱うことができる。その場合、ＣＴＭ信号は全マクロ共通に接続することができ、ＬＳＩ端子は１つでよい。また、ＬＳＩ２５０の場合、ＬＳＩ２５０を含むＬＳＩなどを作成することはないので、ＬＳＩ２５０の内部、かつ、マクロ１５０の外部に、ロックアップＦ／Ｆやオア回路は必要ない。
【０１３６】
なお、以下においては、マクロ１５０の内部の説明は省略し、ＬＳＩ２５０の内部であって、マクロ１５０の外部について説明する。
【０１３７】
図１７の例の場合、ＬＳＩ２５０に対して図示せぬ外部の制御回路から端子ＳＥに０が入力された場合、ＬＳＩ２５０は、本来のシステム動作を実行し、端子ＳＥに１が入力された場合、ＬＳＩ２５０のＦ／Ｆ２７１乃至２７９は、シフトレジスタ動作を行う。
【０１３８】
５段の組み合わせ回路２６１乃至２６５は、それぞれ３つの入力端子を有している。また、マルチプレクサ２８１乃至２８９は、ＳＥ信号により出力する信号が選択される（切り替えられる）。
【０１３９】
組み合わせ回路２６１からの出力信号は、マルチプレクサ２８１乃至２８３にそれぞれ入力され、Ｆ／Ｆ２７１乃至２７３からの信号は、組み合わせ回路２６２または後段のマルチプレクサ２８２乃至２８４にそれぞれ入力される。マルチプレクサ２８１にはまた、ＳＩ信号が入力される。組み合わせ回路２６２からの出力信号は、マルチプレクサ２８４乃至２８６にそれぞれ入力され、Ｆ／Ｆ２７４乃至２７６からの信号は、組み合わせ回路２６３または後段のマルチプレクサ２８５乃至２８７にそれぞれ入力される。また、Ｆ／Ｆ２７６からの出力信号はマクロ１５０のＳＩ端子に入力される。組み合わせ回路２６３からの出力信号は、マクロ１５０の組み合わせ回路１６１に入力される。また、マクロ１５０の組み合わせ回路１６４からの出力信号は、組み合わせ回路２６４に入力される。また、マクロ１５０のＦ／Ｆ１７９の出力信号は、マクロ１５０のＳＯ端子を介してマルチプレクサ２８７に入力される。組み合わせ回路２６４からの出力信号は、Ｆ／Ｆ２７７乃至２７９に入力され、マルチプレクサ２８８には、Ｆ／Ｆ２７７からの信号が入力され、マルチプレクサ２８９には、Ｆ／Ｆ２７８からの信号が入力され、これらがＳＥ信号に基づいて切り替えられる。Ｆ／Ｆ２７７乃至２７９からの信号は、組み合わせ回路２６５にそれぞれ入力される。また、Ｆ／Ｆ２７９からの信号は、ＳＯ端子に出力される。
【０１４０】
なお、Ｆ／Ｆ２７１乃至２７９の動作、並びにマルチプレクサ２８１乃至２８９の動作は、図１０のＦ／Ｆ１７１乃至１７９、マルチプレクサ１８１乃至１８９と同様である。単に、マルチプレクサ２８１乃至２８３を切り替える信号がＳＥの信号であり、マルチプレクサ２８１に入力される信号がＳＩ信号である点が図１０と異なる。
【０１４１】
図１７のマクロ１５０は、マクロテストモード用回路１９０に、スキャンテストを行う場合にマクロ１５０が外部からの入力信号の遮断を制御する、スキャンチェインの１段目のフリップフロップ（Ｆ／Ｆ１７１乃至１７３）への入力信号を切り替える信号を出力するオア回路１９３を含む。また、マクロ１５０は、マクロテストモード用回路１９０に、スキャンチェインの入力値を固定するロックアップＦ／Ｆ１９１を含む。
【０１４２】
さらにＬＳＩ２５０は、内部にマクロ１５０を包含する階層構造であって、上位階層のＬＳＩ２５０と下位階層のマクロ１５０は、同じ信号（ＣＴＭ）に基づいてスキャンテストを実行する。これにより、ＬＳＩ２５０の全体のスキャンテストをまとめて行うことができる。
【０１４３】
このように、スキャン設計されたマクロ１５０を対象とし、あらかじめマクロのテストステートとして生成された値を、ＬＳＩのテストステートとして流用し、それに基づいてテストパターンを生成することで、ＬＳＩの全設計（図６の処理）を迅速に行うことができる。
【０１４４】
また、マクロ１５０の内部のスキャンテストを、ラッパーを用いることなく行うことができる。このためラッパーによるＬＳＩのチップ面積増大を生じることなく、チップ製造コストを抑えることができる。また、ラッパーを用いないためＬＳＩの回路規模を小さくすることができるので、配置配線を簡単にするとともに、設計期間を短縮することができる。さらに、ラッパーを構成するトランジスタのリーク電流が生じないので、もって、ＬＳＩの消費電力を抑えることができる。
【０１４５】
また、テストパターンではなく、ステート（順序回路の状態）を再利用するため、マクロ１５０の前後の回路に如何に関わらず、生成されたステートをＬＳＩ全体のテストパターン作成に再利用することができる。
【０１４６】
さらに、マクロ１５０をテストするステート遷移を、図１１や図１２に示されるように制限する（ＣＴＭ＝１にする）ことで、ＬＳＩ２５０の設計に再利用することができる。
【０１４７】
次に、図１０のマクロ１５０を下位階層マクロとした、上位階層マクロを生成する場合の処理を説明する。なお、この処理においても、基本的な処理は図６のフローチャートと同様であるので省略し、図６のステップＳ３のスキャン設計処理の詳細を、図１８のフローチャートを参照して説明する。これは、マクロが階層を持った場合の一例である。
【０１４８】
ステップＳ１５１において、スキャン回路設計部２４１は、スキャン回路設計処理を実行する。この処理の詳細は、上述した図１６と同様であるので省略する。
【０１４９】
ステップＳ１５２において、テストステート生成部２４２は、記憶制御部２４４を介して記憶部２２６に記憶されているマクロデータ２３０から下位マクロ１５０のテストステートを取得する。このテストステートは、図７のステップＳ３２でマクロ設計装置１００により生成され、記憶されたデータである。
【０１５０】
ステップＳ１５３において、テストステート生成部２４２は、ＣＴＭ＝１の条件で、下位マクロ１５０のテストステートを上位マクロ（後述する図１９の上位マクロ３５０）のテストステートに変換する。下位マクロのテストステートは、上述した図１５の処理と同様に再利用される。この処理で変換される上位マクロのテストステートについては、図１９を参照して後述する。
【０１５１】
ステップＳ１５４において、テストステート生成部２４２は、ＣＴＭ＝１の条件で、上位マクロのテストステートを追加で生成する。この処理で生成される上位マクロのテストステートについては、図１９を参照して後述する。
【０１５２】
ステップＳ１５５において、テストステート生成部２４２は、ステップＳ１５２で変換された上位マクロのテストステート、およびステップＳ１５４の処理で生成した上位マクロのテストステートをあわせて、マクロのテストステートとして記憶する。その後、処理は図６のステップＳ３に戻る。
【０１５３】
このように、下位マクロのテストステートをＬＳＩの場合（図１５）と同様に再利用し、上位マクロの下位マクロを含まない部分のテストステートを追加生成（例えば、ステップＳ１５４）することで、上位マクロ全体のテストステートを得ることができる。なお、ステップＳ１５２およびステップＳ１５３の処理と、ステップＳ１５４の処理の順番は任意であり、平行に実行されてもよいし、逆に実行されてもよい。
【０１５４】
図１９は、図１８の処理により生成される、図１０のマクロ１５０を下位階層マクロとした上位階層マクロ３５０の例を示す図である。
【０１５５】
図１９のマクロ３５０には、マクロ１５０、５個の組み合わせ回路３６１乃至３６５、９個のＦ／Ｆ３７１乃至３７９、並びに、Ｆ／Ｆ３７１乃至３７９のそれぞれに対応する９個のマルチプレクサ３８１乃至３８９の他、ロックアップＦ／Ｆ３９１、マルチプレクサ３９２、およびオア回路３９３からなるマクロテストモード用回路３９０がさらに設けられている。
【０１５６】
ロックアップＦ／Ｆ３９１、マルチプレクサ３９２、およびオア回路３９３については、図１０のロックアップＦ／Ｆ１９１、マルチプレクサ１９２、およびオア回路１９３とそれぞれ同様の動作を行う。マクロ３５０の場合、図１７のＬＳＩ２５０とは異なり、マクロ３５０を含むＬＳＩなどを作成するので、上位マクロ３５０の内部、かつ、マクロ１５０の外部に、ロックアップＦ／Ｆやオア回路が必要となる。
【０１５７】
上述したステップＳ１５４の処理で追加生成された上位マクロのテストステートは、上位マクロの組み合わせ回路３６２だけである。ここで、対応しているのは、上位マクロの組み合わせ回路１６２、１６３、および３６２である。また、ここで変換とは、各端子の位置を下位マクロ１５０から上位マクロ３５０に変更する処理を表す。このように、ＣＴＭ＝１の条件において、組み合わせ回路３６２、１６２，１６３をテストすることができる。すなわち、下位マクロのテストステートを流用する（再利用する）ことができる。
【０１５８】
すなわち、上位階層マクロについてもＬＳＩと同様に適用することができ、ＣＴＭ信号を共有することができる。
【０１５９】
図１８の処理により生成されたマクロのテストステートは、図１５に示される処理により、ＬＳＩのテストパターンに変換することができる。ここで、ＣＴＭ＝１の条件で生成されるパターンは、上位マクロの組み合わせ回路３６２および３６４だけでなく、下位マクロの組み合わせ回路１６４を含む、下位マクロと上位マクロとの間に存在する組み合わせ回路部分（組み合わせ回路１６１および３６３を除き、組み合わせ回路１６４および３６４）をテストするものである。
【０１６０】
次に、図１０のマクロ１５０を下位階層マクロとした、上位階層マクロを生成する場合の他の処理を説明する。なおこの処理においても、基本的な処理は、図６のフローチャートと同様であるので省略し、図６のステップＳ３のスキャン設計処理の詳細を、図２０のフローチャートを参照して説明する。これは、マクロが階層を持った場合の一例であり、図２０の処理と図１８の処理では、ＣＴＭ信号を下位マクロと上位マクロとで独立させている点が異なる。
【０１６１】
ステップＳ２０１において、スキャン回路設計部２４１は、スキャン回路設計処理を実行する。この処理の詳細は、上述した図１６と同様であるので省略する。
【０１６２】
ステップＳ２０２において、テストステート生成部２４２は、ＣＴＭ１＝０かつＣＴＭ２＝１の条件で、下位マクロの組み合わせ回路１６１および１６４、上位マクロ（後述する図２１の上位マクロ４００）の内部であって、下位マクロ１５０以外の部分のテストステートを生成する。
【０１６３】
ステップＳ２０３において、テストステート生成部２４２は、記憶制御部２４４を介して記憶部２２６に記憶されているマクロデータ２３０から下位マクロ１５０のテストステートを取得する。このテストステートは、図７のステップＳ３２でマクロ設計装置１００により生成され、記憶されたデータである。
【０１６４】
ステップＳ２０４において、テストステート生成部２４２は、ＣＴＭ１＝ＣＴＭ２＝１の条件で、下位マクロ１５０のテストステートを上位マクロ（例えば、後述する図２１の上位マクロ４００）のテストステートに変換する。具体的には、下位マクロ１５０の組み合わせ回路１６２および１６３のテストステートが上位マクロのテストステートに変換される。このように、下位マクロのテストステートは、上位マクロのテストステートとして再利用することができる。
【０１６５】
ステップＳ２０５において、テストステート生成部２４２は、ステップＳ２０２の処理で生成した上位マクロのテストステート、およびステップＳ２０４で変換された上位マクロのテストステートをあわせて、マクロのテストステートとして記憶する。その後、処理は図６のステップＳ３に戻る。なお、ステップＳ２０２と、ステップＳ２０３乃至ステップＳ２０４の処理の順番は任意であり、平行に実行されてもよいし、逆に実行されてもよい。
【０１６６】
図２１は、図２０の処理により生成される、図１０のマクロ１５０を下位階層マクロとした上位階層マクロ４００の例を示す図である。図２１において、図１９のマクロ３５０と同じ部分については同一の符号を付してあり、その説明は繰り返しになるので省略する。
【０１６７】
図２１のマクロ４００には、図１９と同様に、マクロ１５０、５個の組み合わせ回路３６１乃至３６５、９個のＦ／Ｆ３７１乃至３７９、並びに、Ｆ／Ｆ３７１乃至３７９のそれぞれに対応する９個のマルチプレクサ３８１乃至３８９の他、ロックアップＦ／Ｆ３９１、マルチプレクサ３９２、およびオア回路３９３からなるマクロテストモード用回路３９０がさらに設けられている。
【０１６８】
図２１の例の場合、ＣＴＭ信号をＣＴＭ１およびＣＴＭ２として、下位マクロと上位マクロとで独立させている。ステップＳ２０２において、ＣＴＭ１＝０かつＣＴＭ２＝１の条件で生成されるマクロのステートは、組み合わせ回路３６２、３６３、１６１、１６４、および３６４のステートである。また、ステップＳ２０４において、ＣＴＭ１＝ＣＴＭ２＝１の条件で生成されるマクロのステートは、組み合わせ回路１６２、および１６３のステートである。
【０１６９】
このように、生成されたマクロのステートには、下位マクロ１５０の組み合わせ回路１６２と１６３の他、下位マクロ１５０と上位マクロ４００との間に存在する組み合わせ回路部分（組み合わせ回路３６３および１６１、並びに組み合わせ回路１６４および３６４）のテストステートが含まれる。また、ＬＳＩとマクロの場合においても、ＣＴＭを１と２に独立させてもよい。
【０１７０】
すなわち、上位マクロ４００が下位マクロ１５０を含む場合、テストステート生成部２４２は、記憶部２２６に記憶されたマクロ１５０のテストステートを上位マクロ４００のテストステートに変換するとともに（図２０のステップＳ２０４）、マクロ１５０の内部であって、その入力と出力が順序回路に接続されていない複数の組み合わせ回路（組み合わせ回路１６１および１６４）と、他のマクロの内部であって、マクロの外部の複数の組み合わせ回路（組み合わせ回路３６２乃至３６４）のテストステートを上位マクロ４００のテストステートとしてさらに生成する（図２０のステップＳ２０２）。
【０１７１】
これにより、マクロ１５０のテストステートを再利用することができる。
【０１７２】
このように、マクロの再利用が進んだ結果として、多数のマクロ階層を持つマクロに対しても、単独のマクロと同様に取り扱うことができ、マクロのテストステートについても、設計データと同様に再利用を重ねることができる。
【０１７３】
次に、本発明を適用した他の実施の形態について説明する。
【０１７４】
図２２は、本発明を適用した他の実施の形態のマクロ４５０を示す図である。図中、図１０と対応する部分については、同一の符号を付し、その説明は繰り返しになるので省略する。
【０１７５】
図２２のマクロ４５０は、図１０のマクロ１５０からロックアップＦ／Ｆ１９１とマルチプレクサ１９２を省略した構成とされている。
【０１７６】
図２２のマクロ４５０には、ロックアップＦ／Ｆ１９１がないため、マクロのステート遷移はステートだけでは決まらず、ＳＩ端子の値が影響する。マクロのデータ入力値の如何に関わらずステートのみでテストの再利用を行う、というのが本発明の趣旨であり、この実施の形態はそれに反するようにみえるが、図１７に示されるように、マクロをＬＳＩに組み込んだ場合には、ＳＩ端子はマクロ外部のＦ／Ｆ（例えば、図１７のＦ／Ｆ２７６）の出力に接続される。
【０１７７】
すなわち、オア回路１９３からの出力が１である場合、Ｆ／Ｆ１７１に接続されるマルチプレクサ１８１は、組み合わせ回路１６１からの出力信号ではなく、マクロ４５０のＳＩ端子からの信号を選択し、Ｆ／Ｆ１７１に出力する。マクロ４５０のＳＩ端子には、図１７の例の場合、Ｆ／Ｆ２７６から出力された信号が供給されるので、結果的には、Ｆ／Ｆ１７１にＦ／Ｆ２７６に保持されていた値が１回目のクロックＣＫの立ち上がりにラッチして入力される。同様に、２回目のクロックＣＫの立ち上がりにラッチして、Ｆ／Ｆ１７１に保持されていた値がマルチプレクサ１８２により選択されてＦ／Ｆ１７２に出力され、さらに３回目のクロックＣＫの立ち下がりにラッチして、Ｆ／Ｆ１７２に保持されていた値がマルチプレクサ１８３により選択されてＦ／Ｆ１７３に出力される。すなわち、オア回路１９３からの出力が１である場合においては、Ｆ／Ｆ１７１乃至１７３に組み合わせ回路１６１からの出力信号が入力されることはなく、マクロ１５０の外部のＦ／Ｆ（例えば、図１７のＦ／Ｆ２７６）が仮想的なロックアップＦ／Ｆとして扱われるので、マクロのテストステートを再利用することができる。
【０１７８】
図２３に、通常のスキャンテストを図２２のマクロ４５０に実施した場合の信号波形を示す。図２３においては、仮想的なロックアップＦ／Ｆ（例えば、図１７のＦ／Ｆ２７６）の値ＳＩＳ０を、ステートのロードが終了した時点で、ＳＩ端子に与えている。ステートＳ１のアンロードも、図１１に示される通常のスキャンテストと同様に行われる。
【０１７９】
また、図２４は、スピード測定を目的としたスキャンテストを図２２のマクロ４５０に実施した場合の信号波形を示している。図２４の例の場合、クロックＣＫを入力し、ステートを遷移させた時点で、仮想的なロックアップＦ／Ｆ（例えば、図１７のＦ／Ｆ２７６）の値は不定となり、その不定値を取り込んだ結果、Ｆ／Ｆ１７１の値であるＦ１Ｓ２も不定値となる。このことは、マクロのテストステートを生成する時点では、マクロ外部の回路構成がどうであるかを予測できないからである。
【０１８０】
図２３および図２４に示されるように、マクロ１５０の外部のＦ／Ｆを仮想的なロックアップＦ／Ｆとして流用することができるので、マクロのテストステートを再利用することができる。
【０１８１】
図２５は、本発明を適用した他の実施の形態のマクロ５００を示す図である。
【０１８２】
図２５と図１０とを比較するに、図２５のマクロ５００においては、図１０のマクロ１５０に、ＣＴＭからの入力信号を反転するアンド回路５１０がさらに設けられている。このアンド回路５１０は、ＣＴＭからの反転された信号と端子ＳＥからの値とを入力とし、その論理積を演算し、演算結果をマルチプレクサ１９２への切り替え信号としている。
【０１８３】
具体的には、図１０の例の場合、ロックアップＦ／Ｆ１９１がＳＥからの値にかかわらずＣＴＭ＝１であればシフト動作を行うのに対し、図２５のマクロ５００の場合、ＳＥ＝０であればＣＴＭ＝１であってもシフト動作を行わず、データを保持し続ける点が異なる。
【０１８４】
そのため、ステートのロードおよびアンロードを行うためには、ＣＴＭ＝０かつＳＥ＝１としなければならない。
【０１８５】
図２６および図２７は、通常のスキャンテストおよびスピード測定を目的としたスキャンテストを図２５のマクロ５００に実施した場合の信号波形をそれぞれ示している。図２６および図２７では、ステートのロードおよびアンロードを、ＣＴＭ＝０で行っているという点を除けば、図１１および図１２と同様の信号波形となる。
【０１８６】
図２８は、スピード測定を目的とした、異なるスキャンテストを図２５のマクロ５００に実施した際の信号波形を示している。図２８と図２７を比較するに、図２８では、ステートのロード後に与えられる１回目のクロックＣＫまでＳＥ＝１を持続し、１回目のクロックＣＫと２回目のクロックＣＫとの間にＳＥ＝０に変化させ、２回目のＣＫはＳＥ＝０で与える点が図２７とは異なっている。
【０１８７】
スピード測定を目的としたスキャンテストには、図１２および図２７のように、システム動作によるステートの遷移を行うものの他に、図２８のようにスキャンシフト動作によるステートの遷移を行うものがあり、図２５のマクロ５００はそのいずれのステートの遷移にも対応している。
【０１８８】
すなわち、図２５のマクロ５００によれば、システム動作によるステートの遷移を行うものに加えて、スキャンシフト動作によるステートの遷移を行うものに対し、マクロ５００のテストステートを再利用することができる。すなわち、図１０のマクロ１５０では、スキャンシフト動作によって、ロックアップＦ／Ｆ１９１の値の変化がマクロのステートではなくＳＩ端子の値によるが、図２５によれば、ロックアップＦ／Ｆ１９１の値の変化がＳＩ端子の値によらないので、マクロのテストステートを再利用することができる。
【０１８９】
以上により、マクロ１５０に少なくともオア回路１９３を挿入し、所定の条件においてスキャンテストを行うようにしたので、スキャン設計において、マクロのテストステートを再利用することができる。
【０１９０】
また、ＬＳＩのテストパターン生成期間を短縮することができる。さらに、ＬＳＩのテストパターン生成費用を削減することができる。また、マクロのテスト品質が予め保証されているため、ＬＳＩ全体のテスト品質を容易に向上させることができる。
【０１９１】
さらに、IEEE P1500の規格案などと比較して、ラッパー回路面積のオーバーヘッドを少なくすることができ、ＬＳＩの製造コストを抑えることができる。また、ラッパー回路配線が複雑ではなく、ＬＳＩ設計期間を短くすることができる。
【０１９２】
さらに、ラッパー回路トランジスタ数を少なく抑えることができ、リーク電力の損失も低く抑えることができる。
【０１９３】
また、マクロのスピード測定テストに関して、ＬＳＩ全体の動作スピードに影響されず、マクロのスピード測定テストを行うことができる。さらに、複数のマクロについて異なったスピードで同時並列にスピード測定テストを行うことができる。
【０１９４】
以上の処理をまとめると以下のようになる。
【０１９５】
スキャン設計は、同期回路（例えば、図１０のマクロ１５０）を用いることが前提であり、同期回路は、組み合わせ回路部分（例えば、図１０の組み合わせ回路１６１乃至１６４）と、クロックで動作するレジスタ部分（例えば、図１０のＦ／Ｆ１７１乃至１７９）で構成されている。同期回路は、クロックＣＫにより、外部入力と内部ステート（レジスタが保持する値）から、新たな内部ステートと外部出力へと状態を遷移する。スキャン設計は、ステートを外部端子から直接的に設定および観測するため、レジスタをシフトチェインとして動作させるモード（スキャンモード）を設けている。
【０１９６】
スキャン設計された回路のテストパターンを生成するには、まず組み合わせ回路部分のテストパターンを求め、組み合わせ回路への入力設定値を供給すべき外部端子とレジスタの値（ステート）へ割り当て、組み合わせ回路からの出力期待値を観測すべき外部端子とレジスタの値（ステート）へ割り当てる。
【０１９７】
レジスタへと割り当てられた入力設定値は、スキャンモードにてシリアルにロードされ（スキャンイン）、外部端子へ割り当てられた入力設定値が外部端子に直接設定される（例えば、図１１の最初のＣＴＭ＝１，ＳＥ＝１）。スキャンモードを解除したのち（ＳＥ＝０）、外部端子を直接観測して出力期待値を照合し、クロックを加えて内部ステートを遷移させて得られる出力期待値は、再びスキャンモードにてシリアルにアンロード（スキャンアウト）され照合される（次のＣＴＭ＝１，ＳＥ＝１の出力期待値）。
【０１９８】
以上がスキャンテストの概要であるが、スピード測定を目的として、ステートをロードした後に複数回連続したクロックを加えてステートを高速に遷移させ、最後にステートをアンロードする方式も行われている。
【０１９９】
スキャン設計されたマクロに対して単体でスキャンテストパターンを生成した場合に、マクロを含むＬＳＩ全体をテストするテストパターンの作成にマクロのパターンを再利用するには、一般的にはラッパーが必要となる。その理由は、マクロの入力端子へ与える設定値、およびマクロの出力端子で観測される期待値を、ＬＳＩ全体のステートへ単純変換することが、マクロの前後が直接的にレジスタに接続されている場合を除き、困難であり論理的に不可能である場合もあるからである。
【０２００】
そこで、本実施の形態では、生成するテストパターンのステートにＣＴＭ＝１という制約を与えるようにしたので、マクロ前後の回路に如何に関わらず、生成されたステートをＬＳＩ全体のテストパターン作成に再利用することができる。
【０２０１】
また、マクロ１５０は、スキャン設計されたＬＳＩ２５０における、組み合わせ回路を有するマクロ１５０であって、組み合わせ回路１６１乃至１６４に接続されるスキャンチェイン（Ｆ／Ｆ１７１乃至１７９、並びにマルチプレクサ１８１乃至１８９）と、マクロ外部からのデータ入力の遮断を制御するマクロテストモード用回路１９０とを含むので、マクロのテストステートを再利用してマクロを含むＬＳＩを設計することができる。
【０２０２】
さらに、マクロは、スキャンチェイン（Ｆ／Ｆ１７１乃至１７９、並びにマルチプレクサ１８１乃至１８９）によるマクロのスキャンテストにおいては、第１のテストモードおよび第２のテストモードの２つのテストモードからなり、マクロテストモード用回路１９０は、データ入力を遮断することにより（ＣＴＭ＝１とすることにより）、スキャンチェインによる、マクロのスキャンテストをマクロ外部からのデータ入力によってマクロのステートを遷移させない第１のテストモードで行うように制御し、データ入力を伝達することにより（ＣＴＭ＝０とすることにより）、スキャンチェインによる、マクロのスキャンテストをマクロ外部からのデータ入力がマクロのステートを遷移させる第２のテストモードで行うため、マクロのテストステートを再利用することができ、マクロを含むＬＳＩを容易に設計することができる。
【０２０３】
また、マクロテストモード用回路１９０は、第１のテストモードでは、マクロのデータ入力から組み合わせ回路のみを介して接続されるフリップフロップが、ステートを保持し続けるように制御するので、マクロを含むＬＳＩを容易に設計することができる。
【０２０４】
さらに、マクロテストモード用回路１９０は、マクロのスキャンデータ入力とマクロの内部のフリップフロップとの間に図１０のロックアップフリップフロップ１９１を備え、マクロのスキャンチェインがスキャンシフト動作を行う場合（ＳＥ＝１である場合）、ロックアップフリップフロップ１９１は、マクロのスキャンデータ入力をスキャンチェインへと順次転送し、マクロのスキャンチェインがスキャンシフト動作を行わない場合（ＳＥ＝０である場合）、ロックアップフリップフロップ１９１は、自分自身に保持されている値を保持し続けるので、マクロのテストステートを再利用することができる。
【０２０５】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、上述した図６乃至図９、図１５、図１６、図１８、および図２０の処理は、図２９に示されるようなパーソナルコンピュータ８００により実行される。
【０２０６】
図２９において、CPU８０１は、ROM８０２に記憶されているプログラム、または、記憶部８０８からRAM８０３にロードされたプログラムに従って各種の処理を実行する。RAM８０３にはまた、CPU８０１が各種の処理を実行する上において必要なデータなどが適宜記憶される。
【０２０７】
CPU８０１、ROM８０２、およびRAM８０３は、内部バス８０４を介して相互に接続されている。この内部バス８０４にはまた、入出力インターフェース８０５も接続されている。
【０２０８】
入出力インターフェース８０５には、キーボード、マウスなどよりなる入力部８０６、CRT，LCDなどよりなるディスプレイ、スピーカなどよりなる出力部８０７、ハードディスクなどより構成される記憶部８０８、並びに、モデム、ターミナルアダプタなどより構成される通信部８０９が接続されている。通信部８０９は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
【０２０９】
入出力インターフェース８０５にはまた、必要に応じてドライブ８１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどによりなるリムーバブルメディア８２１が適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部８０８にインストールされる。
【０２１０】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２１１】
この記録媒体は、図２９に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されているリムーバブルメディア８２１よりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM８０２や記憶部８０８が含まれるハードディスクなどで構成される。
【０２１２】
なお、本明細書において、コンピュータプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０２１３】
【図１】ラッパーの構成例を示す図である。
【図２】スピード測定テストを目的としたラッパーの構成例を示す図である。
【図３】面積増加を抑えたラッパーの構成例を示す図である。
【図４】本発明を適用したマクロ設計装置の機能的構成例を示す図である。
【図５】図４のスキャン設計部の詳細な機能的構成例を示すブロック図である。
【図６】マクロ設計処理を説明するフローチャートである。
【図７】図６のステップＳ３のスキャン設計処理を説明するフローチャートである。
【図８】図７のステップＳ３１のスキャン回路設計処理を説明するフローチャートである。
【図９】図８のステップＳ６２のマクロテストモード用回路挿入処理を説明するフローチャートである。
【図１０】図６乃至図９の処理により生成されたマクロの構成を示す図である。
【図１１】通常のスキャンテストを図１０のマクロに実施した場合の信号波形を示す図である。
【図１２】スピード測定を目的としたスキャンテストを図１０のマクロに実施した場合の信号波形を示す図である。
【図１３】本発明を適用したＬＳＩ設計装置の機能的構成例を示す図である。
【図１４】図１３のスキャン設計部の詳細な機能的構成例を示すブロック図である。
【図１５】図６のステップＳ３のスキャン設計処理を説明する他のフローチャートである。
【図１６】図１５のステップＳ１１１のスキャン回路設計処理を説明するフローチャートである。
【図１７】図１５および図１６の処理により生成されたＬＳＩの構成を示す図である。
【図１８】図６のステップＳ３のスキャン設計処理を説明する他のフローチャートである。
【図１９】図１８の処理により生成されたマクロの構成を示す図である。
【図２０】図６のステップＳ３のスキャン設計処理を説明する他のフローチャートである。
【図２１】図２０の処理により生成されたマクロの構成を示す図である。
【図２２】本発明を適用した他のマクロの構成を示す図である。
【図２３】通常のスキャンテストを図２２のマクロに実施した場合の信号波形を示す図である。
【図２４】スピード測定を目的としたスキャンテストを図２２のマクロに実施した場合の信号波形を示す図である。
【図２５】本発明を適用したさらに他のマクロの構成を示す図である。
【図２６】通常のスキャンテストを図２５のマクロに実施した場合の信号波形を示す図である。
【図２７】スピード測定を目的としたスキャンテストを図２５のマクロに実施した場合の信号波形を示す図である。
【図２８】スピード測定を目的とした、異なるスキャンテストを図２５のマクロに実施した場合の信号波形を示す図である。
【図２９】パーソナルコンピュータを説明する図である。
【符号の説明】
【０２１４】
１００  マクロ設計装置，  １２３  スキャン設計部，  １２６  記憶部，  １３０  マクロデータ，  １４１  スキャン回路設計部，  １４２  テストステート生成部，  １４３  記憶制御部，  １５０  マクロ，  １６１乃至１６４  組み合わせ回路，  １７１乃至１７９  Ｆ／Ｆ，  １８１乃至１８９  マルチプレクサ，  １９０  マクロテストモード用回路，  １９１  ロックアップＦ／Ｆ，  １９２  マルチプレクサ，  １９３  オア回路，  ２００  ＬＳＩ設計装置，  ２２３  スキャン設計部，  ２２６  記憶部，  ２３０  マクロデータ，  ２４１  スキャン回路設計部，  ２４２  テストステート生成部，  ２４３  テストパターン生成部，  ２４４  記憶制御部
【図１】
2005346326.tif 000003
【図２】
2005346326.tif 000004
【図３】
2005346326.tif 000005
【図４】
2005346326.tif 000006
【図５】
2005346326.tif 000007
【図６】
2005346326.tif 000008
【図７】
2005346326.tif 000009
【図８】
2005346326.tif 000010
【図９】
2005346326.tif 000011
【図１０】
2005346326.tif 000012
【図１１】
2005346326.tif 000013
【図１２】
2005346326.tif 000014
【図１３】
2005346326.tif 000015
【図１４】
2005346326.tif 000016
【図１５】
2005346326.tif 000017
【図１６】
2005346326.tif 000018
【図１７】
2005346326.tif 000019
【図１８】
2005346326.tif 000020
【図１９】
2005346326.tif 000021
【図２０】
2005346326.tif 000022
【図２１】
2005346326.tif 000023
【図２２】
2005346326.tif 000024
【図２３】
2005346326.tif 000025
【図２４】
2005346326.tif 000026
【図２５】
2005346326.tif 000027
【図２６】
2005346326.tif 000028
【図２７】
2005346326.tif 000029
【図２８】
2005346326.tif 000030
【図２９】
2005346326.tif 000031
【手続補正書】
【提出日】平成16年6月4日(2004.6.4)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２０
【補正方法】変更
【補正の内容】
【図２０】
2005346326.tif 000032
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
2005346326.tif 000033