(57)【要約】【課題】半導体集積回路の面積を増大させることなく、配線性のよいテスト専用回路の電源遮断を実現する半導体集積回路を提供する。【解決手段】テスト実行時のみ動作するテスト専用回路を有する半導体集積回路１であって、当該半導体集積回路１の内部回路領域（内部制御回路部１００）に電源を供給する通常電源（通常動作用電源）１０４と、当該内部回路領域の全面にメッシュ状に配線され、テスト専用回路に電源供給するテスト用電源１０３と、テスト用電源１０３と通常電源１０４とを接続及び遮断して、通常電源１０４からテスト用電源１０３への電源供給を制御する電源遮断スイッチ１０９と、を備える。【選択図】図１
2013003035.tif 000002
【特許請求の範囲】
【請求項１】
テスト実行時のみ動作するテスト専用回路を有する半導体集積回路であって、
当該半導体集積回路の内部回路領域に電源を供給する通常動作用電源と、
当該内部回路領域の全面にメッシュ状に配線され、前記テスト専用回路に電源供給するテスト用電源と、
前記テスト用電源と前記通常動作用電源とを接続及び遮断して、前記通常動作用電源から前記テスト用電源への電源供給を制御する電源遮断部と、を備える半導体集積回路。
【請求項２】
前記電源遮断部は、当該半導体集積回路のテスト実施時に前記テスト用電源と前記通常動作用電源とを接続し、通常動作時に前記テスト用電源と前記通常動作用電源とを遮断するように制御することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記電源遮断部は、前記テスト用電源と前記通常動作用電源とを接続及び遮断する電源遮断スイッチを有することを特徴とする請求項２記載の半導体集積回路。
【請求項４】
前記電源遮断部を制御する制御回路を当該半導体集積回路内に備えることを特徴とする請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項５】
前記電源遮断部は、当該半導体集積回路外部から電源端子を介して制御されることを特徴とする請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項６】
設計装置が設計する、テスト回路を含む半導体集積回路の設計方法であって、
前記テスト回路の設計を実施した当該半導体集積回路の回路データから、テスト実行時のみ動作するテスト専用回路を抽出し、抽出したテスト専用回路を記録したテスト専用回路リストをメモリへ格納し、
前記回路データに対し、電源遮断された際に抽出したテスト専用回路が不定値の伝播を防止する遮断回路を挿入し、
前記遮断回路を挿入した回路データと、当該半導体集積回路全体にメッシュ状に配線されるテスト用電源のレイアウトデータとを用いて、レイアウト及びタイミング検証を実施し、タイミング検証結果からスキャンチェーン上に配置されたホールド調整回路を抽出し、抽出したホールド調整回路を記録したホールド調整回路リストをメモリへ格納し、
前記メモリから、前記テスト専用回路リストと前記ホールド調整用リストを読み出し、前記テスト専用回路リストに記録された前記テスト専用回路と前記ホールド調整回路リストに記録された前記ホールド調整回路とをテスト用電源に接続する半導体集積回路の設計方法。
【請求項７】
前記遮断回路の挿入は、テスト設計を実行する前の回路データに存在する全てのスキャンフリップフロップのＳＩＮ端子に対し、不定値伝播を制御する回路を挿入することを特徴とする請求項６記載の半導体集積回路の設計方法。
【請求項８】
前記遮断回路の挿入は、
前記テスト回路から、テスト対象となる回路への入力に対して、通常動作時の入力信号とテスト動作時の入力信号とを切り替えるテストセレクタ回路を抽出し、
前記テスト専用回路リストに記録されたテスト専用回路から、前記テストセレクタ回路のテスト動作時に選択される入力の前段に配置されるテスト専用回路を抽出し、抽出したテスト専用回路の出力に対し、不定値伝播を制御する回路を挿入することを特徴とする請求項６または請求項７記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路とその設計方法に関し、特にテスト回路を実装する半導体集積回路の電源構成と、その電源構成を用いたテスト回路の電源遮断方法に関する。
【背景技術】
【０００２】
近年グリーンＩＴ等の法規制に伴い、半導体集積回路に対しても消費電力低減に対する要求が高まってきている。
一方、半導体集積回路は、製造後に不良の有無を確認するために試験（以下、適宜「テスト」とも称す）が行われる。このようなテストに関し、テスタビリティを高めるためのテスト回路の設計（以下、適宜「テスト設計」とも称す）として、スキャンテスト設計やＢＩＳＴ設計などが行われている。これらのテスト回路には、テストを実行する場合のみしか動作しない回路（以下、適宜「テスト専用回路」とも称す）を多く含んでいる。
【０００３】
例えば、図１７に示す特許文献１のＲＡＭビスト回路内のパタン生成回路ＰＧや出力結果の期待値照合を行う回路（以下、期待値照合回路）ＣＯＭＰ、図１８に示す特許文献２の制御用フリップフロップ３ｘや観測用フリップフロップ７ｘなどのテスト専用回路が、テスタビリティ向上のためにテスト回路に作りこまれている。
【０００４】
このようなテスト専用回路は、テストを実行する場合のみしか動作しない回路であるが、通常動作時においても電源供給されているために無駄な電力を消費してしまう。近年の半導体集積回路の規模増加に伴うテスト回路の規模増加によって、テスト専用回路も増加しており、消費電力が増加している。
【０００５】
前述したテスト専用回路の消費電力の削減は、通常動作用の電源（以下、「通常電源」と称す）と電源を分離し、テストの実行時以外は電源供給を制御し、電源遮断することで実現することができる。
特許文献３には、低消費電力設計における、電源遮断方法の一般的な技術として、部分的に電源を遮断する方法が記載されている。
図１９は、特許文献３における半導体集積回路装置１ｘの電源遮断制御を行う場合の構成図である。
半導体集積回路装置１ｐは、機能毎にコア電源領域（電源領域）２〜８が分割されており、一部のコア電源領域（たとえば、コア電源領域８）に対する電源供給ＯＦＦ（遮断）したまま、その他のコア電源領域（たとえば、コア電源領域２〜７）に対する電源供給を行い、コア電源領域における通常の動作を可能とする。これらコア電源領域２〜８の周辺部には、電源スイッチ領域（電源供給部）９がそれぞれ設けられている。電源スイッチ領域９には、電源スイッチ（電源スイッチ部）が設けられている。電源用スイッチは、コア電源領域２〜８と基準電位ＶＳＳとの間にそれぞれ接続されており、制御信号に基づいて、任意のコア電源領域と基準電位ＶＳＳとを接続／非接続とすることによって電源供給のＯＮ／ＯＦＦを行う。
【０００６】
また、特許文献４には、電力低減に対する技術として、事前に準備したセル毎に電源遮断用の回路を設けて、電源遮断をする方法が記載されている。
図２０は、特許文献２における機能セル毎に電源遮断機能を持たせた場合の構成図である。
図２０で示す回路例では、要電源遮断セルであるインバータＧ４１〜Ｇ４３に対し、ＮＭＯＳトランジスタＱ３，Ｑ６，Ｑ９，バッファゲートＧ３１，Ｇ３２によりなる遮断用制御回路を生成する処理を儲け、遮断用制御回路は要電源遮断セルであるインバータＧ４１〜Ｇ４３を制御信号ＳＣ１によって強制的に電源遮断状態にすることができる。この技術を用いることによりテスト時のみにしか動作しない回路の電源遮断をすることが出来る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−３１９２９７号公報
【特許文献２】特開２００９−２０５４１４号公報
【特許文献３】特開２００７−２４３０７７号公報
【特許文献４】特開２００９−２００６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献３を用いてテスト専用回路の電源遮断を実現する場合、小さいエリア単位で電源遮断の制御が必要となってしまう。このような場合、そのエリア単位毎に電源遮断スイッチを挿入し、電源遮断を行う場合、電源遮断スイッチを大量に配置していかなければならなくなるため、面積が増大するという問題が発生する。
また特許文献３では、テスト専用回路を一箇所に固めて置くことで、上述の電源遮断スイッチの大量配置による面積が増大するという問題を回避することを可能とする。しかし、テスト専用回路が１箇所に集中してしまうことにより、例えば図１９のコア電源領域８にテスト専用回路をまとめて配置してしまうと、各コア電源領域２〜７からコア電源領域８に対して配線をする必要が発生する。これにより、コア電源領域８に対しての配線が集中してしまうため、配線性を悪化させてしまう。また、コア電源領域２とコア電源領域８は、配置そのものが離れてしまうため、セットアップタイミングの収束が困難となる問題を引き起こしてしまう。
【０００９】
また、特許文献４を用いてテスト専用回路の電源遮断を実現する場合、電源遮断スイッチを備えたセルを準備し、それらのセルを、テスト専用回路を構成する論理回路素子として配置していくことになる。
このとき、セル毎に備えた電源スイッチは、セルの遅延特性や電流特性などを劣化させないためには、電源遮断用スイッチの電源がオン状態になったときの抵抗値を小さくしないと回路動作に影響があるため、セル１つ１つのサイズは電源遮断スイッチが入っていない通常のセルサイズに対し大きくなってしまう。
よって、テスト品質を向上させるために挿入したテスト専用回路に対し電源スイッチを備えたセルＧ４１，Ｇ４２，Ｇ４３が増加し、半導体集積回路の面積が増大するという問題が発生する。
【課題を解決するための手段】
【００１０】
発明者らは、半導体集積回路の面積を増大させることなく、配線性のよいテスト専用回路の電源遮断を実現できることを発見した。
本発明に係る半導体集積回路の一態様は、テスト実行時のみ動作するテスト専用回路を有する半導体集積回路であって、当該半導体集積回路の内部回路領域に電源を供給する通常動作用電源と、当該内部回路領域の全面にメッシュ状に配線され、前記テスト専用回路に電源供給するテスト用電源と、前記テスト用電源と前記通常動作用電源とを接続及び遮断して、前記通常動作用電源から前記テスト用電源への電源供給を制御する電源遮断部と、を備える。テスト用電源は、電源遮断部によって、通常電源からの電源供給を制御可能とする構成であり、かつ、当該半導体集積回路全面にメッシュ状に配線されている。電源遮断部がテスト用電源全体を制御するため、電源遮断部を多量に配置する必要がなくなり、面積の増加を抑制することが可能になる。また、テスト用電源が半導体集積装置全体にメッシュ状に配線されていることから、配線性がよくなる。
【００１１】
また、本発明に係る半導体集積回路の設計方法は、設計装置が設計する、テスト回路を含む半導体集積回路の設計方法であって、前記テスト回路（全テスト回路）の設計を実施した当該半導体集積回路の回路データ（テスト回路挿入後回路データ）から、テスト実行時のみ動作するテスト専用回路を抽出し、抽出したテスト専用回路を記録したテスト専用回路リストをメモリへ格納し（テスト設計実施工程）、前記回路データに対し、電源遮断された際に抽出したテスト専用回路が不定値の伝播を防止する遮断回路を挿入し（不定値伝播遮断工程）、前記遮断回路を挿入した回路データと、当該半導体集積回路全体にメッシュ状に配線されるテスト用電源のレイアウトデータとを用いて、レイアウト（Ｐ＆Ｒ）及びタイミング検証（ＳＴＡ）を実施し、タイミング検証結果からスキャンチェーン上に配置されたホールド調整回路を抽出し、抽出したホールド調整回路を記録したホールド調整回路リストをメモリへ格納し（レイアウト工程）、前記メモリから、前記テスト専用回路リストと前記ホールド調整用リストを読み出し、前記テスト専用回路リストに記録された前記テスト専用回路と前記ホールド調整回路リストに記録された前記ホールド調整回路とをテスト用電源に接続する（テスト用電源接続工程）。
【発明の効果】
【００１２】
本発明によれば、半導体集積回路の面性を増大させることなく、配線性の良いテスト専用回路の電気遮断を実現することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態の半導体集積回路の電源構造を示す図である。
【図２】図１の内部制御領域１０５の拡大図である。
【図３】図１の電源遮断スイッチの回路例を示す図である。
【図４】本発明の実施形態のテスト専用回路を抽出する方法と、不定値伝播制御用のＡＮＤ回路セルの挿入と、テスト専用回路をテスト用電源に接続するフローを示す図である。
【図５】図４の制御用テスト専用回路の最終段回路リストの生成方法を示すフロー図である。
【図６】図４の不定値の伝播遮断処理で挿入された制御用、観測用セレクタ回路以外のテスト専用回路リストの生成方法を示すフロー図である。
【図７】図４の処理手順Ｓ００１実行前の入力回路データに搭載されるメモリ部に対する接続図である。
【図８】図４の処理手順を説明していくためのテスト挿入前の一般的な回路接続図である。
【図９】図４の処理手順Ｓ００１実行後のテスト挿入後のメモリに対する接続図である。
【図１０】図４の処理手順Ｓ００１実行後のテスト挿入後の一般的な回路接続図である。
【図１１】図４の処理手順Ｓ００２実行後のメモリ周辺の接続図である。
【図１２】図４の処理手順Ｓ００２実行後の回路接続図である。
【図１３】図４の処理手順Ｓ００３実行後のホールド調整回路挿入後の回路接続図である。
【図１４】図４の処理手順Ｓ００５実行後の図１１に対し電源接続を変更した後のメモリ周辺の接続図である。
【図１５】図４の処理手順Ｓ００５実行後の図１３に対し電源接続を変更した後の回路接続図である。
【図１６】本発明を実施するためのコンピュータシステム構成の一例の図である。
【図１７】特許文献１に開示された、一般的なＲＡＭビスト回路の構成を示す一例の図である。
【図１８】特許文献２に開示された、制御用フリップフロップ、観測用フリップフロップを配置したスキャン構成の一例を示す図である。
【図１９】特許文献３に開示された、電源分離遮断の電源構造を示した図である。
【図２０】特許文献４に開示された、電源遮断スイッチをセル毎に準備したセル構成を示した図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１５】
本発明の半導体集積回路の一態様は、テスト回路を有し、当該テスト回路内にテスト実行時のみ動作するテスト専用回路を有する半導体集積回路である。テスト専用回路に電源供給するテスト用電源を有し、当該半導体集積回路の内部回路領域の全面にメッシュ状（網目状）に配線される。テスト用電源への電源供給は、内部回路に供給する通常動作用電源との接続／遮断を制御する電源遮断手段により行う。電源遮断手段は、テスト用電源と前記通常動作用電源を、当該半導体集積回路のテスト実施時に接続し、通常動作時に遮断するように制御する。
【００１６】
また、本発明の半導体集積回路の設計方法の一態様は、テスト回路を有し、当該テスト回路内にテスト実行時のみ動作するテスト専用回路を有する半導体集積回路の設計方法であって、次の工程を有する。テスト設計を実施した当該半導体集積回路の回路データから、テスト専用回路を抽出する工程１（テスト設計実施工程）。前記回路データに対し、工程１にて抽出したテスト専用回路が電源遮断された際に不定値の伝播を防止するための遮断回路挿入する工程２（不定値伝播遮断工程）。前記遮断回路挿入後の回路データを用いたレイアウト（Ｐ＆Ｒ）実施後のタイミング検証（ＳＴＡ）結果からスキャンチェーン上に配置されたホールド調整回路を抽出する工程３（レイアウト工程）。工程１で抽出されたテスト専用回路と工程３で抽出されたホールド調整回路をテスト用電源に接続する工程４（テスト用電源接続工程）。
以下、図面を参照して、本発明に係る半導体集積回路及びその設計方法について説明する。
【００１７】
実施形態１．
実施形態１の構成
図１は、本発明の実施形態の半導体集積回路１の電源構造を示すレイアウト図である。
半導体集積回路１は、ＩＯバッファ配置領域１０１と、内部制御回路部１００と、ＧＮＤ１０２と、テスト用電源（テスト専用電源）１０３と、通常電源（通常動作用電源）１０４と、複数の電源遮断スイッチ１０９で構成される。
ＩＯバッファ配置領域１０１は、半導体集積回路１の外周部に位置し、ボンディングパッドやＩＯバッファブロックを配置する領域である。
内部制御回路部１００は、半導体集積回路１においてＩＯバッファ配置領域１０１を除く領域であり、ＩＯバッファ配置領域１０１を外周として囲まれた内部領域である。また、内部制御回路部１００は、機能マクロやユーザ回路などの内部回路とテスト回路が構成される領域である。
【００１８】
ＧＮＤ１０２は、内部回路とテスト回路の全体にＧＮＤ電位を供給する電源配線である。
テスト用電源１０３は、テスト回路に内在するテスト専用回路に電源電位を供給する電源配線である。
通常電源１０４は、テスト専用回路以外のテスト回路と内部回路に電源電位を供給する電源配線である。
【００１９】
ＧＮＤ１０２、通常電源１０４、テスト用電源１０３のそれぞれの電源配線は、内部制御回路部１００の全面にメッシュ状で構成される。このときそれぞれの電源配線において、メッシュ状に配線された縦方向と横方向の電源配線は異なる配線層であるものとし、縦配線と横配線が交差した箇所に接続用スルーホールを設けて接続するものとする。
また、ＧＮＤ１０２、通常電源１０４、テスト用電源１０３のそれぞれの縦方向の電源配線は、同じ配線層でも良いし、異なる配線層でも良い。横方向の電源配線も同様である。
ここで、内部制御回路部１００の全面とは、内部制御回路部１００の全体に概ね均一でメッシュ状にテスト用電源の配線が構成されることが好ましい。しかしながら、内部制御回路部１００の一部の領域に電源配線が構成されていない場合であっても、所望の電源供給が可能であればよい。加えて、メッシュ状配線の密度は、内部制御回路部１００の全体で均一である必要はなく、例えば一部で異なる配線密度であっても、所望の電源供給が可能であれば構わない。
【００２０】
テスト用電源１０３は、複数の電源遮断スイッチ１０９を介し、通常電源１０４に接続される。このとき、電源遮断スイッチ１０９の配置に制限は無いが、本実施形態では内部制御回路部１００に構成される内部回路の配置への影響を少なくするために、外周部に近い位置に配置している。
【００２１】
電源遮断スイッチ（電源遮断部）９は、制御信号ＳＷ＿ＥＮによってＯＮ／ＯＦＦを制御される。
テストモード生成回路ＴＥＳＴ＿ＤＥＣ（制御回路）は、制御信号ＳＷ＿ＥＮを生成する。
制御信号ＳＷ＿ＥＮは、通常動作時（テスト動作以外）には制御信号がＯＦＦ状態となり、テスト用電源１０３の電源を遮断し、テスト動作時に制御信号がＯＮ状態になり、通常電源１０４とテスト用電源１０３とを接続しテスト用電源１０３に電源を供給する。よって、テストを実施しない時はテスト用電源１０３には電源供給がされないため、テスト専用回路に無駄な消費電力が発生しない。
【００２２】
図２は、図１の内部制御領域１０５の拡大図である。図２を用いてテスト専用回路がテスト用電源１０３に接続されている状態を示す。
内部制御領域１０５は、ＧＮＤ１０２、通常電源１０４、テスト用電源１０３、セル電源５０４Ｖ、セルＧＮＤ５０４Ｇ、接続スルーホール５０５ａ〜５０５ｃ、常時動作するセル（以下、常時動作セル）５０７、テスト専用回路５０６で構成される。テスト専用回路５０６は常時動作セル（通常電源接続セル）５０７で挟まれる形で配置されている。
【００２３】
常時動作セル５０７では、セル電源５０４Ｖと通常電源１０４とは、接続スルーホール５０５ａを介して接続される。セルＧＮＤ５０４ＧとＧＮＤ１０２とは接続スルーホール５０５ｂを介して接続される。またテスト専用回路５０６では、セル電源５０４Ｖを、接続スルーホール５０５ｃを用いてテスト用電源１０３に接続する。テスト専用回路５０６は前述のように、テスト用電源１０３が電源遮断スイッチ１０９によりＯＮ／ＯＦＦ制御され、通常動作時は、テスト用電源１０３に対し電源を供給する必要がないので、電源遮断スイッチ１０９をＯＦＦ状態とする。また、テスト動作時は、テスト用電源１０３に対し電源を供給する必要があるため、電源遮断スイッチ１０９をＯＮ状態とする。
通常電源１０４とテスト用電源１０３は異なる配線層で重ねて配線することも可能である。
【００２４】
図３は、電源遮断スイッチ１０９の構成例である。
電源遮断スイッチ１０９は、トランジスタ１０６、端子ＶＤＤ１、端子ＶＤＤ２、制御端子ＳＷ＿ＥＮで構成される。端子ＶＤＤ１を通常電源１０４、端子ＶＤＤ２をテスト用電源１０３に接続し、半導体集積回路１は、制御端子ＳＷ＿ＥＮを変化させることでトランジスタ１０６のＯＮ／ＯＦＦを行う。通常動作時は、トランジスタ１０６をＯＦＦ状態にすることで通常電源１０４とテスト用電源１０３の電源を遮断し、テスト動作時はトランジスタ１０６をＯＮ状態とすることで通常電源１０４とテスト用電源１０３の電源を通電することができる。
【００２５】
また、本実施形態では、半導体集積回路１に電源遮断スイッチ１０９を備え、電源スイッチ領域９の制御信号ＳＷ＿ＥＮの制御を行う事で、テスト実施時にテスト用電源１０３の電源を遮断するものであるが、電源遮断スイッチ１０９を備えずに、通常電源１０４とテスト用電源１０３のそれぞれの電源端子を、ＬＳＩ外部から電源遮断制御しても良い。例えば、テスト時は、テストボード上からテスト用電源端子に電源供給しテスト用電源１０３をＯＮ状態とするが、通常動作時は、半導体集積回路１を搭載する実装基板上でテスト用電源端子に電源を接続しない状態とすることで、テスト用電源１０３の電源遮断をすることが可能となる。
【００２６】
実施形態１の半導体集積回路の製造方法
図４は本実施形態における図１の半導体集積回路１の電源構成を実現し、テスト用電源１０３にテスト専用回路を接続する設計方法を示すフロー図である。図５は、図４のステップＳ００８の入力データである制御用テスト専用回路の最終段回路リスト（最終段回路のインスタンス名のリスト）の生成方法を示すフロー図である。図６は、図４のステップＳ００９の入力データである、ステップＳ００１テスト設計（ＤＦＴ）で挿入された制御用、観測用セレクタ回路（制御用テスト専用回路または観測用テスト専用回路）以外のテスト専用回路のインスタンス名を記録する、テスト専用回路リスト６０８の生成方法を示すフロー図である。
【００２７】
ステップＳ００１：
まず、テスト設計を実施する。具体的には、フリップフロップ等の順序回路、メモリ等の記憶回路、ＮＡＮＤ回路等の組み合わせ回路等で構成される内部回路の回路データ６０１を入力データとして受け取り、テスト回路の設計を実施する。このとき入力される内部回路の回路データ６０１は、図７や図８等に示す回路を含む構成のネットリストやＲＴＬ（Register Transfer Lavel）などである。入力される回路データ６０１に対して一般的なテスト設計ツールによりテスト設計を実施し、テスト回路挿入後回路データ６０２と、回路データ６０１に存在する全フリップフロップのインスタンス名を記録する、回路データ６０１のＦＦリスト６０３を出力する。
【００２８】
本実施形態では、テスト設計として一般的に適用されるＲＡＭＢＩＳＴ設計とスキャンテスト設計を、以下に示す図７及び図８の回路に実施した一例を引用する。
また、テスト設計の実施は、一般的なＲＡＭＢＩＳＴ設計やスキャンテスト設計などの専用ツールやプログラム等によってコンピュータ上で実行される。
【００２９】
図７は、内部回路の回路データ６０１に含まれるＲＡＭの回路接続構成の一例である。
ＲＡＭ４０３は、データ入力端子ＤＩと、アドレス入力端子ＡＤＲと、書き込み制御入力端子ＷＥＮと、クロック入力端子ＣＫを備える。このとき、データ入力端子ＤＩとアドレス入力端子ＡＤＲとデータ出力端子ＤＱは、ＲＡＭ４０３の構成（ワード・ビットのサイズなど）によって決まる個数分を備える。ｎはデータ幅、ｍはワード数により決定されるアドレスの本数である。
データ入力端子ＤＩには内部回路からのデータ入力信号ＵＤＩが入力され、アドレス入力端子ＡＤＲには内部回路からのアドレス信号ＵＡＤＲが入力され、書き込み制御入力端子ＷＥＮには、内部回路からの書き込み制御信号ＵＷＥＮが入力され、クロック入力端子ＣＫにはクロック信号ＣＬＫが入力され、データ出力端子ＤＱには内部回路へのデータ出力信号ＤＯを出力する。
また、ＲＡＭ４０３は通常電源１０４から電源供給される。
【００３０】
図８は、内部回路の回路データ６０１に含まれるフリップフロップと組み合わせ論理回路からなるユーザ回路構成の一例である。
図８のユーザ回路は、フリップフロップ４０１Ａ、４０１Ｂと、組み合わせ論理回路２０５、２０７、２０８から構成される。
フリップフロップ４０１Ａ、４０１Ｂは、通常データ入力端子Ｄと、スキャンシフトデータ入力端子ＳＩＮと、入力される通常データ入力とスキャンシフトデータ入力のどちらをラッチするか選択する信号である入力端子ＳＭＣと、クロック入力端子ＣＬＫと、データ出力端子ＱＯを備える。
【００３１】
組み合わせ論理回路２０７は、入力端子ＩＮ１Ａ、ＩＮ１Ｂと、出力端子ＯＵＴ１を備える。組み合わせ論理回路２０８は、入力端子ＩＮ２と、出力端子ＯＵＴ２を備える。組み合わせ論理回路２０５は、出力端子ＯＵＴ３を備える。なお、本例で示す組み合わせ論理回路２０７は、本例の説明のためにフリップフロップ４０１Ａ、４０１Ｂと組み合わせ論理回路２０５、２０７、２０８の接続に関係する信号のみを示しており、一般的には複数入力、複数出力の複雑な構成である。
【００３２】
フリップフロップ４０１Ａ、４０１Ｂの入力端子ＳＩＮと入力端子ＳＭＣには０レベルの信号が入力され、入力端子ＣＬＫにはクロック信号ＣＬＫが接続される。フリップフロップ４０１Ａの入力端子Ｄには前段の内部回路からの入力ＤＩが接続され、出力端子ＱＯには組み合わせ論理回路２０７の入力端子ＩＮ１Ａが接続される。フリップフロップ４０１Ｂの入力端子Ｄには組み合わせ論理回路２０８の出力端子ＯＵＴ２が接続され、出力端子ＱＯには後段の内部回路への出力となる信号Ｑが接続される。組み合わせ論理回路２０７の入力端子ＩＮ１Ｂには組み合わせ論理回路２０５の出力端子ＯＵＴ３が接続される。組み合わせ論理回路２０８の入力端子ＩＮ２には組み合わせ論理回路２０７の出力端子ＯＵＴ１が接続される。
また、フリップフロップ４０１Ａ、４０１Ｂと組み合わせ論理回路２０５、２０７、２０８は通常電源１０４から電力を供給される。
【００３３】
また、ステップＳ００１の入力となる回路データ６０１には、図８で示すような回路が複数存在し、図８で示すようなフリップフロップ４０１Ａ、４０１Ｂが、回路データ６０１には多数存在する。前述のフリップフロップ４０１Ａ、４０１Ｂ等が、ステップＳ００１の出力となる、回路データ６０１のＦＦリスト６０３に含まれるフリップフロップの対象となる。
【００３４】
入力された回路データ６０１に対するテスト設計実施後の回路構成の一例を図９、図１０に示す。
図９は、図７のＲＡＭ４０３に対するテスト設計を実施した状態を示している。図９の回路は、ＲＡＭ４０３に対しテスト設計にて生成されたテスト回路２０９を追加して構成する。
テスト回路２０９は、ＲＡＭ４０３の各入力端子（データ入力端子ＤＩ、アドレス入力端子ＡＤＲ、書き込み制御入力端子ＷＥＮ、クロック入力端子ＣＫ）とデータ出力端子ＤＱの故障検出を行うものである。テスト回路２０９は、テストセレクタ回路４０８と、パタン生成回路４１０と、セレクト信号生成回路４１１と、テスト用クロック生成回路４１２と、期待値照合回路４０９とを備える。この中において、パタン生成回路４１０と期待値照合回路４０９は、テスト専用回路である。
【００３５】
パタン生成回路４１０は、ＲＡＭ４０３への各入力端子（データ入力端子ＤＩ、アドレス入力端子ＡＤＲ、書き込み制御入力端子ＷＥＮ、クロック入力端子ＣＫ）へ、それぞれテスト時にテストセレクタ回路４０８にて選択して入力するテスト用入力信号（テストデータ入力信号ＴＤＩ、テストアドレス信号ＴＡＤＲ、テスト書き込み制御信号ＴＷＮ）を生成するものである。パタン生成回路４１０は、生成する信号毎にフリップフロップ４０１Ｃをｎ個、４０１Ｄをｍ個、４０１Ｅを備え、これら全ては通常電源１０４から電源供給する。このとき、テストデータ入力端子ＴＤＩとテストアドレス入力端子ＴＡＤＲは、ＲＡＭ４０３の構成（ワードｍ個・ビットｎ個サイズなど）によって決まる個数分を備え、フリップフロップ４０１Ｃ、４０１Ｄはテストデータ入力端子ＴＤＩとテストアドレス入力端子ＴＡＤＲの個数に合わせた信号毎に接続される。また、フリップフロップ４０１Ｃ、４０１Ｄ、４０１ＥはＲＡＭ４０３の動作を制御するテスト用の入力信号を生成する回路あるため、「制御用テスト制御回路」である。
【００３６】
フリップフロップ４０１Ｃ、４０１Ｄ、４０１Ｅは、スキャンフリップフロップであり、
出力端子ＱＯはテストセレクタ回路４０８のセレクタ回路４０２Ｃ、４０２Ｄ、４０２Ｅの入力端子Ｓ１に接続される。ここで、セレクタ回路４０２Ｃ、４０２Ｄ、４０２Ｅの入力端子Ｓ０は内部回路からの各入力信号（データ入力信号ＵＤＩ、アドレス信号ＵＡＤＲ、書き込み制御信号ＵＷＥＮ）をＲＡＭ４０３に入力する場合、即ち通常動作時に選択され、入力端子Ｓ１はテスト専用回路からの各テスト用入力信号（テストデータ入力信号ＴＤＩ、テストアドレス信号ＴＡＤＲ、テスト書き込み制御信号ＴＷＮ）をＲＡＭ４０３に入力する場合、即ちテスト動作時に選択される。フリップフロップ４０１Ｃ、４０１Ｄ、４０１Ｅに入力される信号（入力端子Ｄ、入力端子ＳＩＮ、入力端子ＳＭＣ、入力端子ＣＬＫ）については、本発明の特徴に関連するものでは無いため説明を省略する。フリップフロップ４０１Ｃ、４０１Ｄ、４０１Ｅにより、ＲＡＭ４０３に対するテスト入力信号が生成される。
【００３７】
期待値照合回路４０９は、ＲＡＭ４０３の出力端子ＤＱから出力されるデータ出力信号ＤＯと期待値との照合を行うものであり、フリップフロップ４０１Ｆと、比較回路４２０を備え、これら全ては通常電源１０４から電源供給する。
比較回路４２０は、入力端子ＤＶＩと出力端子ＤＶＯを備える。入力端子ＤＶＩはＲＡＭ４０３の出力端子ＤＱに接続される。比較回路４２０はＲＡＭ４０３のテスト結果とテスト期待値との比較を行い、比較結果を出力する。比較回路４２０の構成は本発明の特徴に関連するものでは無いため説明を省略する。
【００３８】
フリップフロップ４０１Ｆは、スキャンフリップフロップであり、入力端子Ｄは比較回路４２０の出力端子ＤＶＯに接続され、出力端子ＱＯはテスト結果出力信号ＲＳに接続される。また、フリップフロップ４０１ＦはＲＡＭ４０３のテスト結果を観測する回路なので、観測用テスト制御回路である。フリップフロップ４０１Ｆの入力端子Ｄ以外に入力される信号（入力端子ＳＩＮ、入力端子ＳＭＣ、入力端子ＣＬＫ）については、本発明の特徴に関連するものでは無いため説明を省略する。
パタン生成回路４１０と期待値照合回路４０９以外の構成は、本発明の特徴に関連するものでは無いため説明を省略する。
【００３９】
図１０は、図８のユーザ回路に対するテスト設計を実施した状態を示している。
図１０の回路は、図８のユーザ回路に対しテスト設計にて生成されたフリップフロップ７０１、７０２、セレクタ回路４０２Ｆを追加して構成される。
テスト設計により、フリップフロップ７０１の出力端子ＱＯはセレクタ回路４０２Ｆの入力端子Ｓ１に接続され、フリップフロップ７０２の入力端子Ｄは組み合わせ論理回路２０７の出力端子ＯＵＴ１と論理回路２０８の入力端子ＩＮ２を接続する配線に接続される。フリップフロップ７０１、７０２の入力端子ＣＬＫにはクロック信号ＣＬＫが接続される。フリップフロップ７０１のデータ入力端子Ｄには１レベルを入力する。フリップフロップ７０２の出力端子ＱＯはシフトデータ出力信号ＳＯＵＴが接続される。組み合わせ論理回路２０７の入力端子ＩＮ１Ｂはセレクタ回路４０２Ｆの出力端子Ｙに接続される。組み合わせ論理回路２０５の出力端子ＯＵＴ３はセレクタ回路４０２Ｆの入力端子Ｓ０に接続される。セレクタ回路４０２Ｆの入力端子ＳＥＬは通常動作とスキャンテスト動作を選択する信号ＡＭＣに接続される。
【００４０】
フリップフロップ４０１Ａ、４０１Ｂ、７０１、７０２の入力端子ＳＭＣはスキャンシフトモードと通常データのキャプチャモードを切り替えるためのＳＭＣ信号が接続される。
フリップフロップ４０１Ａの入力端子ＳＩＮにはフリップフロップ７０１の出力端子ＱＯが接続され、フリップフロップ４０１Ｂの入力端子ＳＩＮにはフリップフロップ４０１Ａの出力端子ＱＯが接続され、フリップフロップ７０１の入力端子ＳＩＮにはシフトデータ入力信号ＳＩＮが接続され、フリップフロップ７０２の入力端子ＳＩＮにはフリップフロップ４０１Ｂの出力端子ＱＯが接続される。
フリップフロップ７０１、７０２、組み合わせ論理回路２０７は通常電源１０４から電源供給する。
【００４１】
図１０の例はテスト時において、組み合わせ論理回路２０５の出力端子ＯＵＴ３と組み合わせ論理回路２０８の出力端子ＯＵＴ２の制御性が悪い場合に、テスト設計を実施する例を示している。制御性が悪いとは、例えば、組み合わせ論理回路の出力信号が通常動作時は０または１どちらも出力するが、テスト時には０または１どちらかの固定値を出力するように、テスト時において、組み合わせ論理回路２０５の出力端子ＯＵＴ３と組み合わせ論理回路２０８の出力端子ＯＵＴ２との制御が困難な場合である。
【００４２】
例えば、組み合わせ論理回路２０７が２入力ＡＮＤ回路と等価な場合に、テスト時において組み合わせ論理回路２０５の出力端子ＯＵＴ３が０のみを出力する回路構成の場合、フリップフロップ４０１Ａの出力端子ＱＯが０および１を出力しても組み合わせ論理回路２０７の出力端子ＯＵＴ１は０しか出力せず、組み合わせ論理回路２０７の出力端子ＯＵＴ１が１を出力する動作のテストができない。そこで前記組み合わせ論理回路２０７の出力端子ＯＵＴ１が１を出力する動作のテストができない問題の対策として、信号値が０のとき通常動作、１のときはスキャンテスト動作を示す信号ＡＭＣで入力を選択するセレクタ回路４０２Ｆをテスト設計で追加し、テスト時はシフトデータ入力信号ＳＩＮによって０または１を自由に出力できるフリップフロップ７０１の出力を組み合わせ論理回路２０７の入力端子ＩＮ１Ｂに入力する。これにより、組み合わせ論理回路２０７の出力端子ＯＵＴ１から０または１どちらも出力させる。このように、フリップフロップ７０１はテスト用に挿入される制御性が悪い信号を制御可能にする回路、すなわち「制御用テスト専用回路」である。
【００４３】
また、例えばテスト時において組み合わせ論理回路２０８の入力端子ＩＮ２に０および１を入力しても組み合わせ論理回路２０８の出力端子ＯＵＴ２は０しか出力しない回路構成の場合、組み合わせ論理回路２０７の出力端子ＯＵＴ１が０または１どちらを出力しても組み合わせ論理回路２０８の出力端子ＯＵＴ２は０を出力するため、組み合わせ論理回路２０７の出力端子ＯＵＴ１が０または１の両方を出力できていることの確認ができない。そこで前記組み合わせ論理回路２０７の出力端子ＯＵＴ１が０または１の両方を出力できていることの確認のテストができない問題の対策として、組み合わせ論理回路２０７の出力端子ＯＵＴ１をテスト設計で追加したフリップフロップ７０２でラッチする。これにより、組み合わせ論理回路２０７の出力端子ＯＵＴ１の動作を確認することができる。このように、フリップフロップ７０２はテスト用に挿入される観測性が悪い信号を観測可能にする回路、すなわち「観測用テスト専用回路」である。
【００４４】
ステップＳ００１では、入力した図７および図８で構成される内部回路の回路データ６０１に対してテスト設計を実施し、図９および図１０へ回路構成が変更されたテスト回路挿入後回路データ６０２を出力する。
このとき、入力した回路データ６０１に存在する全てのフリップフロップのインスタンス名を記録する、回路データ６０１のＦＦリスト６０３を出力する。回路データ６０１中のＦＦリスト６０３は、図８の４０１Ａ、４０１Ｂで示される回路データ６０１のＦＦリストのインスタンス名のデータである。
回路データ６０１のＦＦリスト６０３はテスト設計ツールを実行することで、テスト設計実施時に容易に抽出することができる。
【００４５】
ステップＳ００２：
テスト設計（Ｓ００１）後、電源分離による不定値の伝播を遮断する回路を挿入する処理（不定値の伝播遮断処理）を実施する。具体的には、ステップＳ００１で出力されたテスト回路挿入後回路データ６０２と、回路データ６０１のＦＦリスト６０３と、最終段回路リスト６０７とを入力データとして受け取る。最終段回路リスト６０７は、制御用テスト専用回路の最終段回路のインスタンス名を記録するリストである。入力データを用いて、最終段回路リスト６０７でインスタンス名が指定される制御用テスト専用回路の最終段回路の出力端子と、回路データ６０１のＦＦリスト６０３でインスタンス名が指定される全てのフリップフロップの入力端子ＳＩＮとへ、テスト専用回路の電源分離を行った際の不定値の伝播を遮断するための処理を実施する。実施した結果として、Ｐ＆Ｒ入力回路データ６１０を出力する。
【００４６】
なお、最終段回路リスト６０７は、ステップＳ００１で挿入されたテスト専用回路の一部の回路、具体的にはテスト対象となる回路の入力信号を生成するテスト専用回路（図９のパタン生成回路４１０）、およびテスト対象となる組み合わせ回路の故障検出率向上を目的として挿入される制御用テスト専用回路（図１０のフリップフロップ７０１）のインスタンス名により作成される。生成方法については後述し別途に説明する。
【００４７】
ステップＳ００２で実施する不定値の伝播遮断処理は、以下の２種の処理を実施する。
第一に、入力されるテスト回路挿入後回路データ６０２（図９と図１０）に対し、回路データ６０１のＦＦリスト６０３で指定されるフリップフロップ４０１Ａ、４０１Ｂのスキャンシフトデータ入力端子ＳＩＮに、テスト専用回路であるフリップフロップ７０１、７０２からの電源分離による不定値出力の伝播を遮断するために図１２の不定値出力の伝播を遮断するＡＮＤ回路７０４、７０５を挿入する。言い換えると、テスト設計を実行する前の回路データ６０１内に存在する全てのスキャンフリップフロップのＳＩＮ端子に対し、不定値を遮断する回路を挿入する。本実施形態では不定値出力の伝播を遮断する回路としてＡＮＤ回路７０４、７０５を使用しているが、不定値出力の伝播を遮断する回路であれば、必ずしもＡＮＤ回路である必要はない。
【００４８】
ここで、ＡＮＤ回路７０４、７０５が必要な理由について、図１２のＡＮＤ回路７０４を例に説明する。図１０において、ユーザ回路であるフリップフロップ４０１Ａの入力端子ＳＩＮとテスト専用回路であるフリップフロップ７０１の出力端子ＱＯが接続されている。本実施形態は、テスト専用回路であるフリップフロップ７０１はテスト時のみ電力を供給するテスト用電源１０３により電源を供給する構成となるため、通常動作時はフリップフロップ７０１には電源が供給されず、フリップフロップ７０１は電源電位とグラウンド電位の中間電位等の不定値を出力する。フリップフロップ７０１が出力する不定値が通常動作時も電源が供給され動作しているフリップフロップ４０１Ａに伝播しないように、ＡＮＤ回路７０４を挿入する。同様に、フリップフロップ４０１Ｂに不定値が伝播しないように、ＡＮＤ回路７０５を挿入する。
【００４９】
挿入されたＡＮＤ回路７０４、７０５の入力端子Ｂにはスキャンシフトモードと通常データのキャプチャモードを切り替えるためのＳＭＣ信号が接続され、ＡＮＤ回路７０４の入力端子Ａにはフリップフロップ７０１の出力端子ＳＯＵＴが接続され、ＡＮＤ回路７０４の出力端子Ｘにはフリップフロップ４０１Ａのスキャンシフトデータ入力端子ＳＩＮが接続される。ＡＮＤ回路７０５の入力端子Ａにはフリップフロップ４０１Ａの出力端子ＱＯが接続され、ＡＮＤ回路７０５の出力端子Ｘにはフリップフロップ４０１Ｂのスキャンシフトデータ入力端子ＳＩＮが接続される。スキャンシフトモードと通常データのキャプチャモードを切り替えるためのＳＭＣ信号が１レベルになるのはテスト時のみであり、通常動作時は０レベルであるため、ＡＮＤ回路７０４、７０５は通常動作時は常に０レベルを出力し、不定値の伝播を遮断する。
【００５０】
第２に、入力されるテスト回路挿入後回路データ６０２（図９、図１０）に対し、最終段回路リスト６０７で指定される制御用テスト専用回路の最終段回路であるフリップフロップ４０１Ｃ、４０１Ｄ、４０１Ｅの出力端子ＱＯに不定値の伝播を遮断するために図１１のＡＮＤ回路７０６Ａ、７０６Ｂ、７０６Ｃを挿入する。言い換えると、テストセレクタ回路のテスト動作時に選択される入力の前段に配置されるテスト専用回路の出力に対し、不定値を遮断する回路を挿入する。本実施形態では不定値出力の伝播を遮断する回路としてＡＮＤ回路７０６Ａ、７０６Ｂ、７０６Ｃを使用しているが、不定値出力の伝播を遮断する回路であれば、必ずしもＡＮＤ回路である必要はない。
【００５１】
ＡＮＤ回路７０６Ａ、７０６ＢはＲＡＭ４０３のビットｎ個、ワードｍ個数分挿入する。
ここで、ＡＮＤ回路７０６Ａ、７０６Ｂ、７０６Ｃが必要な理由について、図１１のＡＮＤ回路７０６Ａを例に説明する。図９において、セレクタ回路４０２Ｃの入力端子Ｓ１とテスト専用回路であるフリップフロップ４０１Ｃの出力端子ＱＯが接続されている。本実施形態は、テスト専用回路であるフリップフロップ４０１Ｃはテスト時のみ電力を供給するテスト用電源１０３により電源を供給する構成となるため、通常動作時はフリップフロップ４０１Ｃには電源が供給されず、フリップフロップ４０１Ｃは電源電位とグラウンド電位の中間電位等の不定値を出力する。フリップフロップ４０１Ｃが出力する不定値が通常動作時も電源が供給され動作しているセレクタ回路４０２Ｃに伝播しないように、ＡＮＤ回路７０６Ａを挿入する。
【００５２】
挿入されたＡＮＤ回路７０６Ａの入力端子ＢにはＲＡＭ４０３の入力信号を通常動作信号およびテスト動作信号に切り替えるためのセレクト信号ＴＳＥＬが接続され、ＡＮＤ回路７０６Ａの入力端子Ａにはフリップフロップ４０１Ｃの出力端子ＱＯがそれぞれ接続され、ＡＮＤ回路７０６Ａの出力端子Ｘにはセレクタ回路４０２Ｃの入力端子Ｓ１が接続される。セレクト信号ＴＳＥＬは通常動作時も動作する必要があるため、セレクト信号生成回路４１１はテスト用電源１０３での電源供給はできず、通常電源１０４での電源供給をおこなう。また、通常動作時、セレクト信号ＴＳＥＬは０レベルを出力し、それによりＡＮＤ回路７０６Ａは通常動作時は常に０レベルを出力するので、不定値の伝播を遮断する。なお、図１１ではＡＮＤ回路７０６Ｂ、７０６Ｃの接続について省略しているが、ＡＮＤ回路７０６Ａと同様の接続構成であり、不定値の伝播を遮断する。
【００５３】
更に、図１０の制御用テスト専用回路の最終段回路であるフリップフロップ７０１の出力端子ＱＯに図１２のＡＮＤ回路７０３を挿入する。本実施形態では不定値出力の伝播を遮断する回路としてＡＮＤ回路７０３を使用しているが、不定値出力の伝播を遮断する回路であれば、必ずしもＡＮＤ回路である必要はない。
【００５４】
挿入されたＡＮＤ回路７０３の入力端子Ｂにはスキャンシフトモードと通常データのキャプチャモードを切り替えるためのＳＭＣ信号が接続され、ＡＮＤ回路７０３の入力端子Ａにはフリップフロップ７０１の出力端子ＱＯが接続され、ＡＮＤ回路７０３の出力端子Ｘにはテスト対象となる組み合わせ論理回路２０７の入力端子ＩＮ２が接続される。スキャンシフトモードと通常データのキャプチャモードを切り替えるためのＳＭＣ信号が１レベルになるのはテスト時のみであり、通常動作時は０レベルであるため、ＡＮＤ回路７０３は通常動作時は常に０レベルを出力し、不定値の伝播を遮断する。
【００５５】
ここで、フリップフロップ４０１Ａ、４０１Ｂの入力端子ＳＩＮにＡＮＤ回路７０４、７０５を挿入しているのに対し、フリップフロップ７０１、７０２、４０１Ｃ、４０１Ｆの入力端子ＳＩＮにＡＮＤ回路を挿入しない。フリップフロップ７０１、７０２、４０１Ｃ、４０１Ｆはテスト用電源１０３により電源が供給されるため、通常動作時は電源が供給されておらず、不定値が伝播しても問題ないためである。
【００５６】
また、テスト専用回路であるフリップフロップ７０１、４０１Ｃ、４０１Ｄ、４０１Ｅの出力端子ＱＯにＡＮＤ回路７０３、７０６Ａ、７０６Ｂ、７０６Ｃを挿入しているのに対し、同じくテスト専用回路であるフリップフロップ７０２、４０９の出力端子ＱＯにＡＮＤ回路を挿入しない。観測用テスト制御回路であるフリップフロップ７０２、４０１Ｆの出力端子ＱＯに接続されるのはフリップフロップの入力端子ＳＩＮのみであり、フリップフロップの入力端子ＳＩＮにはＡＮＤ回路７０４、７０５で示されるＡＮＤ回路が挿入されており、不定値の伝播は遮断されるため、ＡＮＤ回路を挿入する必要はない。
【００５７】
また、電源遮断のために挿入されるＡＮＤ回路７０３、７０４、７０５、７０６Ａ、７０６Ｂ、７０６Ｃは通常電源１０４から電力を供給される。
ステップＳ００２では、図１１、図１２で示される構成のＰ＆Ｒ入力回路データ６１０を出力する。
【００５８】
なお、説明の例ではフリップフロップの出力端子に対してのみＡＮＤ回路を挿入しているが、組み合わせ回路の出力端子に対して同様のＡＮＤ回路を挿入することも可能である。
【００５９】
ステップＳ００３：
ステップＳ００２から出力されたＰ＆Ｒ入力回路データ６１０（図１１と図１２）と、図１に示すメッシュ構造の電源のレイアウトを設定する電源レイアウトデータ６０９とを入力データとして受け取り、自動レイアウト配置配線処理（Ｐ＆Ｒ処理）を実行する。このＰ＆Ｒ処理によって、Ｐ＆Ｒ入力回路データ６１０に対し、電源レイアウトデータ６０９の電源配線との接続が行われ、Ｐ＆Ｒ入力回路データ６１０の全ての回路を通常電源１０４に接続する。
Ｐ＆Ｒ処理を実施後、中間Ｐ＆Ｒデータ６１１と、Ｐ＆Ｒ後回路データ６１５と、Ｐ＆Ｒによる半導体集積装置内の回路、配線の遅延情報であるＳＤＦ６１６とを出力する。
【００６０】
ステップＳ００４：
ステップＳ００３から出力されたＰ＆Ｒ後回路データ６１５と、ＳＤＦ６１６とを入力データとして受け取り、静的タイミング解析（ＳＴＡ）を実行し、タイミング解析結果であるＳＴＡ実行結果６１７を出力する。
【００６１】
ステップＳ００５：
ステップＳ００４から出力されたＳＴＡ実行結果６１７を入力データとして受け取り、ステップＳ００４で実行したＳＴＡの結果の判断を行う。ＳＴＡ実行結果６１７にタイミング違反が存在しなければ、ステップＳ００７に進む。ＳＴＡ実行結果６１７にタイミング違反が存在すれば、ステップＳ００６に進む。
ここでタイミング違反とは、Ｐ＆Ｒ後の回路、配線の遅延情報であるＳＤＦ６１６に示される回路、配線の遅延値が、Ｐ＆Ｒ後回路データ６１５が正常に動作するためのセットアップ時間、ホールド時間を満たさないことを表す。
【００６２】
ステップＳ００６：
ステップＳ００５にて、ＳＴＡ実行結果６１７にタイミング違反が存在すると判断された場合、回路修正を実施する。具体的には、ステップＳ００３から出力されたＰ＆Ｒ後回路データ６１５と、ステップＳ００４から出力されたＳＴＡ実行結果６１７とを入力データとして受け取る。Ｐ＆Ｒ後回路データ６１５に対し、ＳＴＡ実行結果６１７で示されるセットアップ時間、ホールド時間のタイミング違反を回避するための回路修正を実施する。回路修正の結果として、Ｐ＆Ｒ入力回路データ６１０を書き換え、テスト専用ホールド違反回避用バッファ（ホールド調整回路、ホールド調整用遅延回路）のインスタンス名を記録する、ホールド調整回路リスト６１２を出力する。
【００６３】
一般的にセットアップ時間の最適化処理は使用する回路セルのリサイズ（サイズアップ）と配線迂回の回避処理、ホールド時間の最適化処理はバッファ回路の挿入を実施する。例えば、図１２では、フリップフロップ４０１Ａの出力端子ＱＯとＡＮＤ回路７０５の入力端子Ａの配線経路はテスト動作であるスキャンシフト時のみ使用され、通常動作時は機能する必要はない。しかし、スキャンシフト時のホールド時間を満足しない場合、ホールド違反回避用にバッファ回路を挿入する。このように、テスト動作時のみ動作する配線経路に挿入されるバッファ回路はテスト専用回路であるため、挿入されるテスト専用のホールド違反回避用バッファのインスタンス名をホールド調整回路リスト６１２として出力する。
図１３は、図１２に上述したホールド違反回避用バッファ２０６を挿入した構成を示す。このとき、ホールド違反回避用バッファ２０６は通常電源１０４から電源供給される。
【００６４】
なお、ステップＳ００５でＳＴＡ実行結果６１７にタイミング違反が存在しても、ホールド時間の違反がないのであれば、ホールド調整回路リスト６１２の作り直しは必要ない。
【００６５】
ステップＳ００６にて、Ｐ＆Ｒ後回路データ６１５に対しＳＴＡ実行結果６１７で示されるセットアップ時間、ホールド時間のタイミング違反を回避するための回路修正を実施する。回路修正の実施結果として、Ｐ＆Ｒ入力回路データ６１０を書き換え、ホールド調整回路リスト６１２を出力する。その後、ステップＳ００３へ戻り、書き換えたＰ＆Ｒ入力回路データ６１０を用いてＰ＆Ｒを再実行する。この一連の処理は、ステップＳ００５においてＳＴＡ実行結果６１７にタイミング違反が収束するまで繰り返し、タイミング違反が収束しなければ回路データ６０１の再設計を行い、スタートからやり直す。ここで、例えば繰り返す回数の制限を決定しておくこと等により、タイミング違反が収束できないことを判断することができる。
【００６６】
ステップＳ００７：
ステップＳ００３で出力された中間Ｐ＆Ｒデータ６１１と、ホールド調整回路リスト６１２と、テスト専用回路リスト６０８と、図１に示す電源レイアウトデータ６０９とを入力データとして受け取る。中間Ｐ＆Ｒデータ６１１に対し、ホールド調整回路リスト６１２およびテスト専用回路リスト６０８で指定されるインスタンス名の回路を電源レイアウトデータ６０９で指示されるテスト用電源１０３の配線に接続し、最終Ｐ＆Ｒデータ６１３を出力する。
【００６７】
なお、テスト専用回路リスト６０８は、ステップＳ００１のテスト設計実行で挿入されたテスト専用回路のインスタンス名のリストであり、その生成方法については後述し、別途に説明する。
図１４は、図１１に対してテスト専用回路リスト６０８で指定される回路をテスト用電源１０３に接続した状態を示しており、図１５は、図１３に対してホールド調整回路リスト６１２とテスト専用回路リスト６０８で指定される回路をテスト用電源１０３に接続した状態を示している。
図１４において、テスト専用回路であるフリップフロップ４０１Ｃ、４０１Ｄ、４０１Ｅと、テスト用クロック生成回路４１２と、期待値照合回路４０９はテスト用電源１０３に接続する。
図１５において、テスト専用回路であるフリップフロップ７０１、７０２とホールド違反回避用バッファ２０６はテスト用電源１０３に接続する。最終Ｐ＆Ｒデータ６１３は図１４、図１５の回路接続構成で構成される。
【００６８】
なお、本実施形態ではホールド調整回路リスト６１２とテスト専用回路リスト６０８で指定される回路に対し、テスト用電源１０３へ接続する処理をステップＳ００７で実行するフローを説明しているが、テスト用電源１０３への接続をステップＳ００３で実行し、ステップＳ００７の実行を省略することも可能である。この場合、本フローでステップＳ００７に入力しているホールド調整回路リスト６１２とテスト専用回路リスト６０８をステップＳ００３に入力する必要がある。
【００６９】
また、上記の説明では不定値出力の伝播を遮断することを目的とするＡＮＤ回路をステップＳ００２で挿入したが、図１４のＡＮＤ回路７０６Ａ、７０６Ｂ、７０６Ｃおよび図１５のＡＮＤ回路７０３、７０４、７０５に示す不定値出力の伝播を遮断するＡＮＤ回路とフリップフロップを予め接続した不定値出力伝播の遮断を考慮した回路を用意しておき、ステップＳ００１のテスト設計実施後に回路を置き換えることで対処することも可能である。
【００７０】
図５は、図４のステップＳ００２の入力データである最終段回路リスト６０７の作成方法について説明したフロー図である。
ステップＳ００８：
ステップＳ００１で出力されるテスト回路挿入後回路データ６０２と、ステップＳ００１の処理で容易に作成できるテストセレクタ回路のインスタンス名を記録する、テストセレクタ回路リスト６０６とを入力データとして受け取る。テスト回路挿入後回路データ６０２に含まれる制御用テスト専用回路の最終段回路のインスタンス名を抽出し、制御用テスト専用回路の最終段回路のインスタンス名を記録する、最終段回路リスト６０７を出力する。
【００７１】
ここで、テストセレクタ回路とは、通常動作信号とテスト動作信号とを切り替えて出力する回路である。言い換えると、テスト対象となる回路への入力に対して、通常動作時（通常モード）の入力信号とテスト動作時（テストモード）の入力信号とを切り替える回路である。本ステップの入力データであるテストセレクタ回路リスト６０６を作成する方法をテスト回路挿入後回路データ６０２の構成を示す図９に対して説明すると、ＲＡＭ４０３の入力信号を通常動作信号およびテスト動作信号に切り替えるためのセレクト信号ＴＳＥＬが接続されている回路、つまり図９におけるセレクタ回路４０２Ｃ、４０２Ｄ、４０２Ｅ、４０２Ａを抽出することで作成できる。
また、上述した本ステップの処理を行う事で、図１０の通常動作とスキャンテスト動作を選択する信号ＡＭＣが接続されている回路、つまり図１０におけるセレクタ回路４０２Ｆを抽出することもできる。
これはステップＳ００１で使用する一般的なテスト設計ツールで容易に実現できる。
【００７２】
本ステップでの処理の詳細を説明する。テスト回路挿入後回路データ６０２について、テストセレクタ回路リスト６０６で指定されるセレクタ回路のテスト専用回路側のデータ入力端子から前段の回路を探索して、制御用テスト専用回路の最終段回路のインスタンス名を抽出し、抽出した最終段回路のインスタンス名を記録する最終段回路リスト６０７を作成する。
【００７３】
テスト回路挿入後回路データ６０２の構成を示す図９を用いて説明すると、テストセレクタ回路リスト６０６で指定されるセレクタ回路４０２Ｃのテスト専用回路側のデータ入力端子Ｓ１に接続される前段の回路であるフリップフロップ４０１Ｃを抽出し、フリップフロップ４０１Ｃのインスタンス名を最終段回路リスト６０７として出力する。これをテストセレクタ回路リスト６０６で指定される全てのセレクタ回路（図９のセレクタ回路４０２Ｃ、４０２Ｄ、４０２Ｅ、４０２Ａ）に対して実行する。ここで抽出された回路、例えば図９のフリップフロップ４０１Ｃは制御用テスト専用回路の最終段回路である。
【００７４】
また、テスト回路挿入後回路データ６０２の構成を示す図１０を用いて説明すると、テストセレクタ回路リスト６０６で指定されるセレクタ回路４０２Ｆのテスト専用回路側のデータ入力端子Ｓ１に接続される前段の回路であるフリップフロップ７０１を抽出し、フリップフロップ７０１のインスタンス名を最終段回路リスト６０７として出力する。ここで抽出された回路、図１０のフリップフロップ７０１は制御用テスト専用回路の最終段回路である。
【００７５】
図６は、図４のステップＳ００７の入力データである全テスト専用回路のインスタンス名を記録する、テスト専用回路リスト６０８の作成方法について説明したフロー図である。
ステップＳ００９：
ステップＳ００１の処理で容易に作成できるテストセレクタ回路リスト６０６と、ステップＳ００１の処理で容易に作成できる全テスト回路のインスタンス名を記録する、全テスト回路リスト６１４とを入力データとして受け取る。全テスト回路リスト６１４で指定されるインスタンス名からテストセレクタ回路リスト６０６で指定されるインスタンス名を除外して作成するテスト専用回路リスト６０８を出力する。
【００７６】
ここで、本ステップの入力データである全テスト回路リスト６１４を作成する方法をテスト回路挿入後回路データ６０２の構成を示す図９、図１０に対して説明すると、テスト設計で挿入された全ての回路、つまり図９におけるセレクタ回路４０２Ｃ、４０２Ｄ、４０２Ｅ、４０２Ａ、フリップフロップ４０１Ｃ、４０１Ｄ、４０１Ｅ、４０１Ｆ、テスト結果とテスト期待値の比較回路４２０、およびその他のテスト回路２０９の階層内の全ての回路、また図１０におけるセレクタ回路４０２Ｆ、フリップフロップ７０１、７０２を抽出することで作成でき、これはステップＳ００１で使用する一般的なテスト設計ツールで容易に実現できる。
【００７７】
本ステップでの処理の詳細を説明する。全テスト回路リスト６１４で指定されるインスタンス名から、テストセレクタ回路リスト６０６で指定されるインスタンス名を除外し、テスト専用回路リスト６０８を出力する。
【００７８】
テスト回路挿入後回路データ６０２の構成を示す図９を用いて説明すると、全テスト回路リスト６１４で指定されるＲＡＭのテスト回路２０９を構成する全ての回路のインスタンス名のリストからテストセレクタ回路リスト６０６で指定されるセレクタ回路４０２Ｃ、４０２Ｄ、４０２Ｅ、４０２Ａのインスタンス名を除外したリスト、すなわちテスト専用回路リスト６０８を作成する。
また、上述した本ステップの処理を行う事で、図１０の全テスト回路リスト６１４で指定される全テスト専用回路のインスタンス名のリスト、すなわちセレクタ回路４０２Ｆとフリップフロップ７０１、７０２から、テストセレクタ回路リスト６０６で指定されるセレクタ回路４０２Ｆのインスタンス名を除外したリスト、すなわちテスト専用回路リスト６０８を作成する。
【００７９】
なお、説明の都合上、ステップＳ００８、Ｓ００９について、テスト設計実施工程（ステップＳ００１）とは別のステップとして説明したが、ステップＳ００１で使用するテスト設計ツールを用いて実現するため、テスト設計実施工程に含むようにしてもよい。
【００８０】
本実施形態の半導体集積回路の設計手法は、コンピュータシステムによって実現できる。
図１６は本発明の実施形態による半導体集積回路の設計手法を実施するためのコンピュータシステム構成の一例を示す図であり、サーバ３０１、一つ以上のコンピュータ装置３０６、及び、ネットワーク３０５から構成される。サーバ３０１は、ＣＰＵ（Central Processing Unit）で構成される処理部３０２、記録媒体３０３、及び、入出力インターフェースである入出力部３０４で構成される例を示す。コンピュータ装置３０６は、ネットワーク３０５と通信部３０７、記録媒体３０８、ＣＰＵで構成される処理部３０９、及び、入出力インターフェースである入出力部３１０で構成される例を示す。
【００８１】
まず、ネットワーク３０５は、コンピュータ装置３０６とサーバ３０１との間の通信を接続する。例えば、ネットワーク３０５は、移動体通信網や、専用線網や、ＬＡＮ（Local Area Network）といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【００８２】
サーバ３０１は、本実施形態における半導体集積回路の設計手法を実現するための実行プログラムや、解析データ、入力情報、対応後の出力情報といったデータを記憶する記録媒体３０３を備える。記録媒体３０３は、ハードディスクやＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）といった記憶装置で構成される。さらに、サーバ３０１は、ＣＰＵ（Central Processing Unit）で構成される処理部３０２を備え、この処理部により記録媒体３０３に記憶されたサーバ３０１の機能を実現するための実行プログラムを読み込んで実行することで、サーバ３０１の機能を実現する。なお、各実行プログラムやデータは、サーバ３０１の管理者により、キーボードやマウスや、ＬＣＤ（Liquid Crystal Display）といった入出力部３０４を用いて外部から記録媒体３０３へ記憶される。上述の構成により、サーバ３０１は、実行プログラムやデータを、ネットワーク３０５を介してコンピュータ装置３０６へ提供することが可能である。
【００８３】
コンピュータ装置３０６は、本実施形態における半導体集積回路の設計手法を実現するための生成システムを実行する。コンピュータ装置３０６は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータである。コンピュータ装置３０６は、通信部３０７を備え、ネットワーク３０５を介してサーバ３０１と通信が可能である。コンピュータ装置３０６は、ネットワーク３０５を介してサーバ３０１へ接続して、本実施形態における半導体集積回路の設計手法を実現するための実行プログラムやデータを取得し、記録媒体３０８へ記憶する。コンピュータ装置３０６は、ＣＰＵで構成される処理部３０９を備える。この処理部は、記憶部に記憶されたコンピュータ装置３０６の機能を実現するための実行プログラムを読み込んで、実行することによりコンピュータ装置３０６の機能を実現する。なお、コンピュータ装置３０６は、コンピュータ装置３０６の使用者との入出力インターフェースである入出力部３１０を備える。入出力部３１０は、キーボードやマウスや、ＬＣＤで構成される。コンピュータ装置３０６は、上述の構成により、サーバ３０１から取得された実行プログラムを読み込んで実行し、本実施形態における半導体集積回路の設計手法を実現する。
【００８４】
ここで、本実施形態における半導体集積回路の設計手法の実行プログラムは、サーバ３０１の記録媒体３０３に記憶される形態には限定しない。実行プログラムは、例えば、ＣＤ（Compact Disk）やフラッシュメモリを搭載したＵＳＢ（Universal Serial Bus）メモリといった持ち運び可能な記録媒体に記録されてもよい。この場合、実行プログラムは、これらの持ち運び可能な記録媒体から、コンピュータ装置３０６の備えるＣＤドライブや、ＵＳＢポート等を介して導入される。
【００８５】
加えて、上述の例において、上述した実行プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８６】
前記のフローチャートのすべてのステップを、このコンピュータシステムを用いて実現することができる。
例えば、コンピュータシステムを用いて、上述した半導体集積回路の設計方法（図４）を実現する場合、プログラムは、テスト設計実施処理（図４のステップＳ００1）、不定値伝播遮断処理（図４のステップＳ００２）、レイアウト処理（図４のステップＳ００３〜Ｓ００６）、及び、テスト用電源接続処理（図４のステップＳ００７）をコンピュータシステムに実行させる手順を含む。図４に示す各リスト等は、コンピュータシステム内のメモリに書き込まれ、書き込まれた各リスト等が読みだされて処理される。
【００８７】
実施形態１のメカニズムおよび効果
本実施形態は、図１の半導体集積回路１に示すように、内部制御回路部１００の全面にテスト用電源１０３をメッシュ状に構成し、テスト用電源１０３でテスト専用回路に電源を供給し、テスト用電源は、電源遮断スイッチ１０９を介し通常電源との接続をＯＮ／ＯＦＦし電源供給を遮断する構成を有する。
【００８８】
さらに、図１の半導体集積回路１の設計方法として、図４のフローに示すように、テスト専用回路を抽出するステップＳ００１を持ち、電源遮断による不定値出力の信号パスに対し不定値の伝播を遮断する回路（例えば、ＡＮＤ回路）を挿入するステップＳ００２と、前述の図１の電源レイアウト構造に対しテスト専用回路の電源接続を行うステップＳ００７を有することにより、テスト用電源１０３に対する電源ＯＮ／ＯＦＦ制御を行いテスト専用回路の電源遮断制御を可能とする半導体集積回路１を生成する。
【００８９】
よって、特許文献３のように、電源遮断スイッチの大量配置による面積の増大、または、テスト専用回路を固めておく事による配線性の悪化や、特許文献４のようにテスト専用回路のセル毎に電源遮断スイッチを持つ事による面積の増大をすることなく、当該半導体集積回路のテスト実施時のみテスト専用回路に電源供給し、テスト実施時以外はテスト専用回路を電源遮断することが可能となる。
更に、本発明の半導体集積回路の設計方法は、通常動作時にテスト専用回路を電源遮断した際に不定値の伝播を防止する事が可能となる半導体集積回路を設計する事ができる。
【００９０】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【００９１】
１      ：半導体集積回路
２〜８  ：コア電源領域（電源領域）
２ｘ，２ａ，２ｂ，６ｘ，６ａ，６ｂ：ロジックコーン
３ｘ    ：制御用フリップフロップ
４ｘ，８ｘ：保持用フリップフロップ
５ｘ，１１ｘ：マクロテスト用スキャンパス
７ｘ    ：観測用フリップフロップ
９      ：電源遮断スイッチ領域
１０ｘ  ：テスト対象マクロ
１００  ：内部制御回路部
１０１  ：ＩＯバッファ配置領域
１０２  ：ＧＮＤ
１０３  ：テスト用電源（テスト専用電源）
１０４  ：通常電源（通常動作用電源）
１０５  ：内部制御領域
１０６  ：トランジスタ
１０９  ：電源遮断スイッチ
２０５，２０７，２０８：組み合わせ論理回路
２０６  ：ホールド違反回避用バッファ
３０１  ：サーバ
３０２、３０９：処理部
３０３、３０８：記録媒体
３０４、３１０：入出力部
３０５  ：ネットワーク
３０６  ：コンピュータ装置
３０７  ：通信部
４０１Ａ，４０１Ｂ，４０１Ｃ，４０１Ｄ，４０１Ｅ，４０１Ｆ：フリップフロップ
４０２Ａ，４０２Ｃ，４０２Ｄ，４０２Ｅ，４０２Ｆ：セレクタ回路
４０３  ：ＲＡＭ
４０８  ：テストセレクタ回路（テストモード切り替え回路）
４０９  ：期待値照合回路
４１０  ：パタン生成回路
４１１  ：テスト制御回路
４１２  ：テスト用クロック生成回路
４２０  ：比較回路
５０４Ｖ：セル電源
５０４Ｇ：セルＧＮＤ
５０５ａ〜５０５ｃ：接続スルーホール
５０６  ：テスト専用回路
５０７  ：常時動作セル
６０１  ：入力回路データ（ＲＴＬ含む）
６０２  ：テスト回路挿入後の回路データ
６０３  ：回路データ６０１のＦＦリスト
６０６  ：テストセレクタ回路リスト
６０７  ：最終段回路リスト
６０８  ：テスト専用回路リスト
６０９  ：電源レイアウトデータ
６１０  ：Ｐ＆Ｒ入力回路データ
６１１  ：中間Ｐ＆Ｒデータ
６１２  ：ホールド調整回路リスト
６１３  ：最終Ｐ＆Ｒデータ
６１４  ：全テスト回路リスト
６１５  ：Ｐ＆Ｒ後回路データ
６１６  ：ＳＤＦ（レイアウト後の遅延データ）
６１７  ：ＳＴＡ実行結果
７０１、７０２  ：フリップフロップ
７０３，７０４，７０５，７０６Ａ，７０６Ｂ，７０６Ｃ：ＡＮＤ回路
【図１】
2013003035.tif 000003
【図２】
2013003035.tif 000004
【図３】
2013003035.tif 000005
【図４】
2013003035.tif 000006
【図５】
2013003035.tif 000007
【図６】
2013003035.tif 000008
【図７】
2013003035.tif 000009
【図８】
2013003035.tif 000010
【図９】
2013003035.tif 000011
【図１０】
2013003035.tif 000012
【図１１】
2013003035.tif 000013
【図１２】
2013003035.tif 000014
【図１３】
2013003035.tif 000015
【図１４】
2013003035.tif 000016
【図１５】
2013003035.tif 000017
【図１６】
2013003035.tif 000018
【図１７】
2013003035.tif 000019
【図１８】
2013003035.tif 000020
【図１９】
2013003035.tif 000021
【図２０】
2013003035.tif 000022