説明

半導体集積回路および半導体集積回路の設計方法

【課題】半導体集積回路の面積を増大させることなく、配線性のよいテスト専用回路の電源遮断を実現する半導体集積回路を提供する。
【解決手段】テスト実行時のみ動作するテスト専用回路を有する半導体集積回路1であって、当該半導体集積回路1の内部回路領域(内部制御回路部100)に電源を供給する通常電源(通常動作用電源)104と、当該内部回路領域の全面にメッシュ状に配線され、テスト専用回路に電源供給するテスト用電源103と、テスト用電源103と通常電源104とを接続及び遮断して、通常電源104からテスト用電源103への電源供給を制御する電源遮断スイッチ109と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路とその設計方法に関し、特にテスト回路を実装する半導体集積回路の電源構成と、その電源構成を用いたテスト回路の電源遮断方法に関する。
【背景技術】
【0002】
近年グリーンIT等の法規制に伴い、半導体集積回路に対しても消費電力低減に対する要求が高まってきている。
一方、半導体集積回路は、製造後に不良の有無を確認するために試験(以下、適宜「テスト」とも称す)が行われる。このようなテストに関し、テスタビリティを高めるためのテスト回路の設計(以下、適宜「テスト設計」とも称す)として、スキャンテスト設計やBIST設計などが行われている。これらのテスト回路には、テストを実行する場合のみしか動作しない回路(以下、適宜「テスト専用回路」とも称す)を多く含んでいる。
【0003】
例えば、図17に示す特許文献1のRAMビスト回路内のパタン生成回路PGや出力結果の期待値照合を行う回路(以下、期待値照合回路)COMP、図18に示す特許文献2の制御用フリップフロップ3xや観測用フリップフロップ7xなどのテスト専用回路が、テスタビリティ向上のためにテスト回路に作りこまれている。
【0004】
このようなテスト専用回路は、テストを実行する場合のみしか動作しない回路であるが、通常動作時においても電源供給されているために無駄な電力を消費してしまう。近年の半導体集積回路の規模増加に伴うテスト回路の規模増加によって、テスト専用回路も増加しており、消費電力が増加している。
【0005】
前述したテスト専用回路の消費電力の削減は、通常動作用の電源(以下、「通常電源」と称す)と電源を分離し、テストの実行時以外は電源供給を制御し、電源遮断することで実現することができる。
特許文献3には、低消費電力設計における、電源遮断方法の一般的な技術として、部分的に電源を遮断する方法が記載されている。
図19は、特許文献3における半導体集積回路装置1xの電源遮断制御を行う場合の構成図である。
半導体集積回路装置1pは、機能毎にコア電源領域(電源領域)2〜8が分割されており、一部のコア電源領域(たとえば、コア電源領域8)に対する電源供給OFF(遮断)したまま、その他のコア電源領域(たとえば、コア電源領域2〜7)に対する電源供給を行い、コア電源領域における通常の動作を可能とする。これらコア電源領域2〜8の周辺部には、電源スイッチ領域(電源供給部)9がそれぞれ設けられている。電源スイッチ領域9には、電源スイッチ(電源スイッチ部)が設けられている。電源用スイッチは、コア電源領域2〜8と基準電位VSSとの間にそれぞれ接続されており、制御信号に基づいて、任意のコア電源領域と基準電位VSSとを接続/非接続とすることによって電源供給のON/OFFを行う。
【0006】
また、特許文献4には、電力低減に対する技術として、事前に準備したセル毎に電源遮断用の回路を設けて、電源遮断をする方法が記載されている。
図20は、特許文献2における機能セル毎に電源遮断機能を持たせた場合の構成図である。
図20で示す回路例では、要電源遮断セルであるインバータG41〜G43に対し、NMOSトランジスタQ3,Q6,Q9,バッファゲートG31,G32によりなる遮断用制御回路を生成する処理を儲け、遮断用制御回路は要電源遮断セルであるインバータG41〜G43を制御信号SC1によって強制的に電源遮断状態にすることができる。この技術を用いることによりテスト時のみにしか動作しない回路の電源遮断をすることが出来る。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−319297号公報
【特許文献2】特開2009−205414号公報
【特許文献3】特開2007−243077号公報
【特許文献4】特開2009−200690号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献3を用いてテスト専用回路の電源遮断を実現する場合、小さいエリア単位で電源遮断の制御が必要となってしまう。このような場合、そのエリア単位毎に電源遮断スイッチを挿入し、電源遮断を行う場合、電源遮断スイッチを大量に配置していかなければならなくなるため、面積が増大するという問題が発生する。
また特許文献3では、テスト専用回路を一箇所に固めて置くことで、上述の電源遮断スイッチの大量配置による面積が増大するという問題を回避することを可能とする。しかし、テスト専用回路が1箇所に集中してしまうことにより、例えば図19のコア電源領域8にテスト専用回路をまとめて配置してしまうと、各コア電源領域2〜7からコア電源領域8に対して配線をする必要が発生する。これにより、コア電源領域8に対しての配線が集中してしまうため、配線性を悪化させてしまう。また、コア電源領域2とコア電源領域8は、配置そのものが離れてしまうため、セットアップタイミングの収束が困難となる問題を引き起こしてしまう。
【0009】
また、特許文献4を用いてテスト専用回路の電源遮断を実現する場合、電源遮断スイッチを備えたセルを準備し、それらのセルを、テスト専用回路を構成する論理回路素子として配置していくことになる。
このとき、セル毎に備えた電源スイッチは、セルの遅延特性や電流特性などを劣化させないためには、電源遮断用スイッチの電源がオン状態になったときの抵抗値を小さくしないと回路動作に影響があるため、セル1つ1つのサイズは電源遮断スイッチが入っていない通常のセルサイズに対し大きくなってしまう。
よって、テスト品質を向上させるために挿入したテスト専用回路に対し電源スイッチを備えたセルG41,G42,G43が増加し、半導体集積回路の面積が増大するという問題が発生する。
【課題を解決するための手段】
【0010】
発明者らは、半導体集積回路の面積を増大させることなく、配線性のよいテスト専用回路の電源遮断を実現できることを発見した。
本発明に係る半導体集積回路の一態様は、テスト実行時のみ動作するテスト専用回路を有する半導体集積回路であって、当該半導体集積回路の内部回路領域に電源を供給する通常動作用電源と、当該内部回路領域の全面にメッシュ状に配線され、前記テスト専用回路に電源供給するテスト用電源と、前記テスト用電源と前記通常動作用電源とを接続及び遮断して、前記通常動作用電源から前記テスト用電源への電源供給を制御する電源遮断部と、を備える。テスト用電源は、電源遮断部によって、通常電源からの電源供給を制御可能とする構成であり、かつ、当該半導体集積回路全面にメッシュ状に配線されている。電源遮断部がテスト用電源全体を制御するため、電源遮断部を多量に配置する必要がなくなり、面積の増加を抑制することが可能になる。また、テスト用電源が半導体集積装置全体にメッシュ状に配線されていることから、配線性がよくなる。
【0011】
また、本発明に係る半導体集積回路の設計方法は、設計装置が設計する、テスト回路を含む半導体集積回路の設計方法であって、前記テスト回路(全テスト回路)の設計を実施した当該半導体集積回路の回路データ(テスト回路挿入後回路データ)から、テスト実行時のみ動作するテスト専用回路を抽出し、抽出したテスト専用回路を記録したテスト専用回路リストをメモリへ格納し(テスト設計実施工程)、前記回路データに対し、電源遮断された際に抽出したテスト専用回路が不定値の伝播を防止する遮断回路を挿入し(不定値伝播遮断工程)、前記遮断回路を挿入した回路データと、当該半導体集積回路全体にメッシュ状に配線されるテスト用電源のレイアウトデータとを用いて、レイアウト(P&R)及びタイミング検証(STA)を実施し、タイミング検証結果からスキャンチェーン上に配置されたホールド調整回路を抽出し、抽出したホールド調整回路を記録したホールド調整回路リストをメモリへ格納し(レイアウト工程)、前記メモリから、前記テスト専用回路リストと前記ホールド調整用リストを読み出し、前記テスト専用回路リストに記録された前記テスト専用回路と前記ホールド調整回路リストに記録された前記ホールド調整回路とをテスト用電源に接続する(テスト用電源接続工程)。
【発明の効果】
【0012】
本発明によれば、半導体集積回路の面性を増大させることなく、配線性の良いテスト専用回路の電気遮断を実現することが可能となる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施形態の半導体集積回路の電源構造を示す図である。
【図2】図1の内部制御領域105の拡大図である。
【図3】図1の電源遮断スイッチの回路例を示す図である。
【図4】本発明の実施形態のテスト専用回路を抽出する方法と、不定値伝播制御用のAND回路セルの挿入と、テスト専用回路をテスト用電源に接続するフローを示す図である。
【図5】図4の制御用テスト専用回路の最終段回路リストの生成方法を示すフロー図である。
【図6】図4の不定値の伝播遮断処理で挿入された制御用、観測用セレクタ回路以外のテスト専用回路リストの生成方法を示すフロー図である。
【図7】図4の処理手順S001実行前の入力回路データに搭載されるメモリ部に対する接続図である。
【図8】図4の処理手順を説明していくためのテスト挿入前の一般的な回路接続図である。
【図9】図4の処理手順S001実行後のテスト挿入後のメモリに対する接続図である。
【図10】図4の処理手順S001実行後のテスト挿入後の一般的な回路接続図である。
【図11】図4の処理手順S002実行後のメモリ周辺の接続図である。
【図12】図4の処理手順S002実行後の回路接続図である。
【図13】図4の処理手順S003実行後のホールド調整回路挿入後の回路接続図である。
【図14】図4の処理手順S005実行後の図11に対し電源接続を変更した後のメモリ周辺の接続図である。
【図15】図4の処理手順S005実行後の図13に対し電源接続を変更した後の回路接続図である。
【図16】本発明を実施するためのコンピュータシステム構成の一例の図である。
【図17】特許文献1に開示された、一般的なRAMビスト回路の構成を示す一例の図である。
【図18】特許文献2に開示された、制御用フリップフロップ、観測用フリップフロップを配置したスキャン構成の一例を示す図である。
【図19】特許文献3に開示された、電源分離遮断の電源構造を示した図である。
【図20】特許文献4に開示された、電源遮断スイッチをセル毎に準備したセル構成を示した図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【0015】
本発明の半導体集積回路の一態様は、テスト回路を有し、当該テスト回路内にテスト実行時のみ動作するテスト専用回路を有する半導体集積回路である。テスト専用回路に電源供給するテスト用電源を有し、当該半導体集積回路の内部回路領域の全面にメッシュ状(網目状)に配線される。テスト用電源への電源供給は、内部回路に供給する通常動作用電源との接続/遮断を制御する電源遮断手段により行う。電源遮断手段は、テスト用電源と前記通常動作用電源を、当該半導体集積回路のテスト実施時に接続し、通常動作時に遮断するように制御する。
【0016】
また、本発明の半導体集積回路の設計方法の一態様は、テスト回路を有し、当該テスト回路内にテスト実行時のみ動作するテスト専用回路を有する半導体集積回路の設計方法であって、次の工程を有する。テスト設計を実施した当該半導体集積回路の回路データから、テスト専用回路を抽出する工程1(テスト設計実施工程)。前記回路データに対し、工程1にて抽出したテスト専用回路が電源遮断された際に不定値の伝播を防止するための遮断回路挿入する工程2(不定値伝播遮断工程)。前記遮断回路挿入後の回路データを用いたレイアウト(P&R)実施後のタイミング検証(STA)結果からスキャンチェーン上に配置されたホールド調整回路を抽出する工程3(レイアウト工程)。工程1で抽出されたテスト専用回路と工程3で抽出されたホールド調整回路をテスト用電源に接続する工程4(テスト用電源接続工程)。
以下、図面を参照して、本発明に係る半導体集積回路及びその設計方法について説明する。
【0017】
実施形態1.
実施形態1の構成
図1は、本発明の実施形態の半導体集積回路1の電源構造を示すレイアウト図である。
半導体集積回路1は、IOバッファ配置領域101と、内部制御回路部100と、GND102と、テスト用電源(テスト専用電源)103と、通常電源(通常動作用電源)104と、複数の電源遮断スイッチ109で構成される。
IOバッファ配置領域101は、半導体集積回路1の外周部に位置し、ボンディングパッドやIOバッファブロックを配置する領域である。
内部制御回路部100は、半導体集積回路1においてIOバッファ配置領域101を除く領域であり、IOバッファ配置領域101を外周として囲まれた内部領域である。また、内部制御回路部100は、機能マクロやユーザ回路などの内部回路とテスト回路が構成される領域である。
【0018】
GND102は、内部回路とテスト回路の全体にGND電位を供給する電源配線である。
テスト用電源103は、テスト回路に内在するテスト専用回路に電源電位を供給する電源配線である。
通常電源104は、テスト専用回路以外のテスト回路と内部回路に電源電位を供給する電源配線である。
【0019】
GND102、通常電源104、テスト用電源103のそれぞれの電源配線は、内部制御回路部100の全面にメッシュ状で構成される。このときそれぞれの電源配線において、メッシュ状に配線された縦方向と横方向の電源配線は異なる配線層であるものとし、縦配線と横配線が交差した箇所に接続用スルーホールを設けて接続するものとする。
また、GND102、通常電源104、テスト用電源103のそれぞれの縦方向の電源配線は、同じ配線層でも良いし、異なる配線層でも良い。横方向の電源配線も同様である。
ここで、内部制御回路部100の全面とは、内部制御回路部100の全体に概ね均一でメッシュ状にテスト用電源の配線が構成されることが好ましい。しかしながら、内部制御回路部100の一部の領域に電源配線が構成されていない場合であっても、所望の電源供給が可能であればよい。加えて、メッシュ状配線の密度は、内部制御回路部100の全体で均一である必要はなく、例えば一部で異なる配線密度であっても、所望の電源供給が可能であれば構わない。
【0020】
テスト用電源103は、複数の電源遮断スイッチ109を介し、通常電源104に接続される。このとき、電源遮断スイッチ109の配置に制限は無いが、本実施形態では内部制御回路部100に構成される内部回路の配置への影響を少なくするために、外周部に近い位置に配置している。
【0021】
電源遮断スイッチ(電源遮断部)9は、制御信号SW_ENによってON/OFFを制御される。
テストモード生成回路TEST_DEC(制御回路)は、制御信号SW_ENを生成する。
制御信号SW_ENは、通常動作時(テスト動作以外)には制御信号がOFF状態となり、テスト用電源103の電源を遮断し、テスト動作時に制御信号がON状態になり、通常電源104とテスト用電源103とを接続しテスト用電源103に電源を供給する。よって、テストを実施しない時はテスト用電源103には電源供給がされないため、テスト専用回路に無駄な消費電力が発生しない。
【0022】
図2は、図1の内部制御領域105の拡大図である。図2を用いてテスト専用回路がテスト用電源103に接続されている状態を示す。
内部制御領域105は、GND102、通常電源104、テスト用電源103、セル電源504V、セルGND504G、接続スルーホール505a〜505c、常時動作するセル(以下、常時動作セル)507、テスト専用回路506で構成される。テスト専用回路506は常時動作セル(通常電源接続セル)507で挟まれる形で配置されている。
【0023】
常時動作セル507では、セル電源504Vと通常電源104とは、接続スルーホール505aを介して接続される。セルGND504GとGND102とは接続スルーホール505bを介して接続される。またテスト専用回路506では、セル電源504Vを、接続スルーホール505cを用いてテスト用電源103に接続する。テスト専用回路506は前述のように、テスト用電源103が電源遮断スイッチ109によりON/OFF制御され、通常動作時は、テスト用電源103に対し電源を供給する必要がないので、電源遮断スイッチ109をOFF状態とする。また、テスト動作時は、テスト用電源103に対し電源を供給する必要があるため、電源遮断スイッチ109をON状態とする。
通常電源104とテスト用電源103は異なる配線層で重ねて配線することも可能である。
【0024】
図3は、電源遮断スイッチ109の構成例である。
電源遮断スイッチ109は、トランジスタ106、端子VDD1、端子VDD2、制御端子SW_ENで構成される。端子VDD1を通常電源104、端子VDD2をテスト用電源103に接続し、半導体集積回路1は、制御端子SW_ENを変化させることでトランジスタ106のON/OFFを行う。通常動作時は、トランジスタ106をOFF状態にすることで通常電源104とテスト用電源103の電源を遮断し、テスト動作時はトランジスタ106をON状態とすることで通常電源104とテスト用電源103の電源を通電することができる。
【0025】
また、本実施形態では、半導体集積回路1に電源遮断スイッチ109を備え、電源スイッチ領域9の制御信号SW_ENの制御を行う事で、テスト実施時にテスト用電源103の電源を遮断するものであるが、電源遮断スイッチ109を備えずに、通常電源104とテスト用電源103のそれぞれの電源端子を、LSI外部から電源遮断制御しても良い。例えば、テスト時は、テストボード上からテスト用電源端子に電源供給しテスト用電源103をON状態とするが、通常動作時は、半導体集積回路1を搭載する実装基板上でテスト用電源端子に電源を接続しない状態とすることで、テスト用電源103の電源遮断をすることが可能となる。
【0026】
実施形態1の半導体集積回路の製造方法
図4は本実施形態における図1の半導体集積回路1の電源構成を実現し、テスト用電源103にテスト専用回路を接続する設計方法を示すフロー図である。図5は、図4のステップS008の入力データである制御用テスト専用回路の最終段回路リスト(最終段回路のインスタンス名のリスト)の生成方法を示すフロー図である。図6は、図4のステップS009の入力データである、ステップS001テスト設計(DFT)で挿入された制御用、観測用セレクタ回路(制御用テスト専用回路または観測用テスト専用回路)以外のテスト専用回路のインスタンス名を記録する、テスト専用回路リスト608の生成方法を示すフロー図である。
【0027】
ステップS001:
まず、テスト設計を実施する。具体的には、フリップフロップ等の順序回路、メモリ等の記憶回路、NAND回路等の組み合わせ回路等で構成される内部回路の回路データ601を入力データとして受け取り、テスト回路の設計を実施する。このとき入力される内部回路の回路データ601は、図7や図8等に示す回路を含む構成のネットリストやRTL(Register Transfer Lavel)などである。入力される回路データ601に対して一般的なテスト設計ツールによりテスト設計を実施し、テスト回路挿入後回路データ602と、回路データ601に存在する全フリップフロップのインスタンス名を記録する、回路データ601のFFリスト603を出力する。
【0028】
本実施形態では、テスト設計として一般的に適用されるRAMBIST設計とスキャンテスト設計を、以下に示す図7及び図8の回路に実施した一例を引用する。
また、テスト設計の実施は、一般的なRAMBIST設計やスキャンテスト設計などの専用ツールやプログラム等によってコンピュータ上で実行される。
【0029】
図7は、内部回路の回路データ601に含まれるRAMの回路接続構成の一例である。
RAM403は、データ入力端子DIと、アドレス入力端子ADRと、書き込み制御入力端子WENと、クロック入力端子CKを備える。このとき、データ入力端子DIとアドレス入力端子ADRとデータ出力端子DQは、RAM403の構成(ワード・ビットのサイズなど)によって決まる個数分を備える。nはデータ幅、mはワード数により決定されるアドレスの本数である。
データ入力端子DIには内部回路からのデータ入力信号UDIが入力され、アドレス入力端子ADRには内部回路からのアドレス信号UADRが入力され、書き込み制御入力端子WENには、内部回路からの書き込み制御信号UWENが入力され、クロック入力端子CKにはクロック信号CLKが入力され、データ出力端子DQには内部回路へのデータ出力信号DOを出力する。
また、RAM403は通常電源104から電源供給される。
【0030】
図8は、内部回路の回路データ601に含まれるフリップフロップと組み合わせ論理回路からなるユーザ回路構成の一例である。
図8のユーザ回路は、フリップフロップ401A、401Bと、組み合わせ論理回路205、207、208から構成される。
フリップフロップ401A、401Bは、通常データ入力端子Dと、スキャンシフトデータ入力端子SINと、入力される通常データ入力とスキャンシフトデータ入力のどちらをラッチするか選択する信号である入力端子SMCと、クロック入力端子CLKと、データ出力端子QOを備える。
【0031】
組み合わせ論理回路207は、入力端子IN1A、IN1Bと、出力端子OUT1を備える。組み合わせ論理回路208は、入力端子IN2と、出力端子OUT2を備える。組み合わせ論理回路205は、出力端子OUT3を備える。なお、本例で示す組み合わせ論理回路207は、本例の説明のためにフリップフロップ401A、401Bと組み合わせ論理回路205、207、208の接続に関係する信号のみを示しており、一般的には複数入力、複数出力の複雑な構成である。
【0032】
フリップフロップ401A、401Bの入力端子SINと入力端子SMCには0レベルの信号が入力され、入力端子CLKにはクロック信号CLKが接続される。フリップフロップ401Aの入力端子Dには前段の内部回路からの入力DIが接続され、出力端子QOには組み合わせ論理回路207の入力端子IN1Aが接続される。フリップフロップ401Bの入力端子Dには組み合わせ論理回路208の出力端子OUT2が接続され、出力端子QOには後段の内部回路への出力となる信号Qが接続される。組み合わせ論理回路207の入力端子IN1Bには組み合わせ論理回路205の出力端子OUT3が接続される。組み合わせ論理回路208の入力端子IN2には組み合わせ論理回路207の出力端子OUT1が接続される。
また、フリップフロップ401A、401Bと組み合わせ論理回路205、207、208は通常電源104から電力を供給される。
【0033】
また、ステップS001の入力となる回路データ601には、図8で示すような回路が複数存在し、図8で示すようなフリップフロップ401A、401Bが、回路データ601には多数存在する。前述のフリップフロップ401A、401B等が、ステップS001の出力となる、回路データ601のFFリスト603に含まれるフリップフロップの対象となる。
【0034】
入力された回路データ601に対するテスト設計実施後の回路構成の一例を図9、図10に示す。
図9は、図7のRAM403に対するテスト設計を実施した状態を示している。図9の回路は、RAM403に対しテスト設計にて生成されたテスト回路209を追加して構成する。
テスト回路209は、RAM403の各入力端子(データ入力端子DI、アドレス入力端子ADR、書き込み制御入力端子WEN、クロック入力端子CK)とデータ出力端子DQの故障検出を行うものである。テスト回路209は、テストセレクタ回路408と、パタン生成回路410と、セレクト信号生成回路411と、テスト用クロック生成回路412と、期待値照合回路409とを備える。この中において、パタン生成回路410と期待値照合回路409は、テスト専用回路である。
【0035】
パタン生成回路410は、RAM403への各入力端子(データ入力端子DI、アドレス入力端子ADR、書き込み制御入力端子WEN、クロック入力端子CK)へ、それぞれテスト時にテストセレクタ回路408にて選択して入力するテスト用入力信号(テストデータ入力信号TDI、テストアドレス信号TADR、テスト書き込み制御信号TWN)を生成するものである。パタン生成回路410は、生成する信号毎にフリップフロップ401Cをn個、401Dをm個、401Eを備え、これら全ては通常電源104から電源供給する。このとき、テストデータ入力端子TDIとテストアドレス入力端子TADRは、RAM403の構成(ワードm個・ビットn個サイズなど)によって決まる個数分を備え、フリップフロップ401C、401Dはテストデータ入力端子TDIとテストアドレス入力端子TADRの個数に合わせた信号毎に接続される。また、フリップフロップ401C、401D、401EはRAM403の動作を制御するテスト用の入力信号を生成する回路あるため、「制御用テスト制御回路」である。
【0036】
フリップフロップ401C、401D、401Eは、スキャンフリップフロップであり、
出力端子QOはテストセレクタ回路408のセレクタ回路402C、402D、402Eの入力端子S1に接続される。ここで、セレクタ回路402C、402D、402Eの入力端子S0は内部回路からの各入力信号(データ入力信号UDI、アドレス信号UADR、書き込み制御信号UWEN)をRAM403に入力する場合、即ち通常動作時に選択され、入力端子S1はテスト専用回路からの各テスト用入力信号(テストデータ入力信号TDI、テストアドレス信号TADR、テスト書き込み制御信号TWN)をRAM403に入力する場合、即ちテスト動作時に選択される。フリップフロップ401C、401D、401Eに入力される信号(入力端子D、入力端子SIN、入力端子SMC、入力端子CLK)については、本発明の特徴に関連するものでは無いため説明を省略する。フリップフロップ401C、401D、401Eにより、RAM403に対するテスト入力信号が生成される。
【0037】
期待値照合回路409は、RAM403の出力端子DQから出力されるデータ出力信号DOと期待値との照合を行うものであり、フリップフロップ401Fと、比較回路420を備え、これら全ては通常電源104から電源供給する。
比較回路420は、入力端子DVIと出力端子DVOを備える。入力端子DVIはRAM403の出力端子DQに接続される。比較回路420はRAM403のテスト結果とテスト期待値との比較を行い、比較結果を出力する。比較回路420の構成は本発明の特徴に関連するものでは無いため説明を省略する。
【0038】
フリップフロップ401Fは、スキャンフリップフロップであり、入力端子Dは比較回路420の出力端子DVOに接続され、出力端子QOはテスト結果出力信号RSに接続される。また、フリップフロップ401FはRAM403のテスト結果を観測する回路なので、観測用テスト制御回路である。フリップフロップ401Fの入力端子D以外に入力される信号(入力端子SIN、入力端子SMC、入力端子CLK)については、本発明の特徴に関連するものでは無いため説明を省略する。
パタン生成回路410と期待値照合回路409以外の構成は、本発明の特徴に関連するものでは無いため説明を省略する。
【0039】
図10は、図8のユーザ回路に対するテスト設計を実施した状態を示している。
図10の回路は、図8のユーザ回路に対しテスト設計にて生成されたフリップフロップ701、702、セレクタ回路402Fを追加して構成される。
テスト設計により、フリップフロップ701の出力端子QOはセレクタ回路402Fの入力端子S1に接続され、フリップフロップ702の入力端子Dは組み合わせ論理回路207の出力端子OUT1と論理回路208の入力端子IN2を接続する配線に接続される。フリップフロップ701、702の入力端子CLKにはクロック信号CLKが接続される。フリップフロップ701のデータ入力端子Dには1レベルを入力する。フリップフロップ702の出力端子QOはシフトデータ出力信号SOUTが接続される。組み合わせ論理回路207の入力端子IN1Bはセレクタ回路402Fの出力端子Yに接続される。組み合わせ論理回路205の出力端子OUT3はセレクタ回路402Fの入力端子S0に接続される。セレクタ回路402Fの入力端子SELは通常動作とスキャンテスト動作を選択する信号AMCに接続される。
【0040】
フリップフロップ401A、401B、701、702の入力端子SMCはスキャンシフトモードと通常データのキャプチャモードを切り替えるためのSMC信号が接続される。
フリップフロップ401Aの入力端子SINにはフリップフロップ701の出力端子QOが接続され、フリップフロップ401Bの入力端子SINにはフリップフロップ401Aの出力端子QOが接続され、フリップフロップ701の入力端子SINにはシフトデータ入力信号SINが接続され、フリップフロップ702の入力端子SINにはフリップフロップ401Bの出力端子QOが接続される。
フリップフロップ701、702、組み合わせ論理回路207は通常電源104から電源供給する。
【0041】
図10の例はテスト時において、組み合わせ論理回路205の出力端子OUT3と組み合わせ論理回路208の出力端子OUT2の制御性が悪い場合に、テスト設計を実施する例を示している。制御性が悪いとは、例えば、組み合わせ論理回路の出力信号が通常動作時は0または1どちらも出力するが、テスト時には0または1どちらかの固定値を出力するように、テスト時において、組み合わせ論理回路205の出力端子OUT3と組み合わせ論理回路208の出力端子OUT2との制御が困難な場合である。
【0042】
例えば、組み合わせ論理回路207が2入力AND回路と等価な場合に、テスト時において組み合わせ論理回路205の出力端子OUT3が0のみを出力する回路構成の場合、フリップフロップ401Aの出力端子QOが0および1を出力しても組み合わせ論理回路207の出力端子OUT1は0しか出力せず、組み合わせ論理回路207の出力端子OUT1が1を出力する動作のテストができない。そこで前記組み合わせ論理回路207の出力端子OUT1が1を出力する動作のテストができない問題の対策として、信号値が0のとき通常動作、1のときはスキャンテスト動作を示す信号AMCで入力を選択するセレクタ回路402Fをテスト設計で追加し、テスト時はシフトデータ入力信号SINによって0または1を自由に出力できるフリップフロップ701の出力を組み合わせ論理回路207の入力端子IN1Bに入力する。これにより、組み合わせ論理回路207の出力端子OUT1から0または1どちらも出力させる。このように、フリップフロップ701はテスト用に挿入される制御性が悪い信号を制御可能にする回路、すなわち「制御用テスト専用回路」である。
【0043】
また、例えばテスト時において組み合わせ論理回路208の入力端子IN2に0および1を入力しても組み合わせ論理回路208の出力端子OUT2は0しか出力しない回路構成の場合、組み合わせ論理回路207の出力端子OUT1が0または1どちらを出力しても組み合わせ論理回路208の出力端子OUT2は0を出力するため、組み合わせ論理回路207の出力端子OUT1が0または1の両方を出力できていることの確認ができない。そこで前記組み合わせ論理回路207の出力端子OUT1が0または1の両方を出力できていることの確認のテストができない問題の対策として、組み合わせ論理回路207の出力端子OUT1をテスト設計で追加したフリップフロップ702でラッチする。これにより、組み合わせ論理回路207の出力端子OUT1の動作を確認することができる。このように、フリップフロップ702はテスト用に挿入される観測性が悪い信号を観測可能にする回路、すなわち「観測用テスト専用回路」である。
【0044】
ステップS001では、入力した図7および図8で構成される内部回路の回路データ601に対してテスト設計を実施し、図9および図10へ回路構成が変更されたテスト回路挿入後回路データ602を出力する。
このとき、入力した回路データ601に存在する全てのフリップフロップのインスタンス名を記録する、回路データ601のFFリスト603を出力する。回路データ601中のFFリスト603は、図8の401A、401Bで示される回路データ601のFFリストのインスタンス名のデータである。
回路データ601のFFリスト603はテスト設計ツールを実行することで、テスト設計実施時に容易に抽出することができる。
【0045】
ステップS002:
テスト設計(S001)後、電源分離による不定値の伝播を遮断する回路を挿入する処理(不定値の伝播遮断処理)を実施する。具体的には、ステップS001で出力されたテスト回路挿入後回路データ602と、回路データ601のFFリスト603と、最終段回路リスト607とを入力データとして受け取る。最終段回路リスト607は、制御用テスト専用回路の最終段回路のインスタンス名を記録するリストである。入力データを用いて、最終段回路リスト607でインスタンス名が指定される制御用テスト専用回路の最終段回路の出力端子と、回路データ601のFFリスト603でインスタンス名が指定される全てのフリップフロップの入力端子SINとへ、テスト専用回路の電源分離を行った際の不定値の伝播を遮断するための処理を実施する。実施した結果として、P&R入力回路データ610を出力する。
【0046】
なお、最終段回路リスト607は、ステップS001で挿入されたテスト専用回路の一部の回路、具体的にはテスト対象となる回路の入力信号を生成するテスト専用回路(図9のパタン生成回路410)、およびテスト対象となる組み合わせ回路の故障検出率向上を目的として挿入される制御用テスト専用回路(図10のフリップフロップ701)のインスタンス名により作成される。生成方法については後述し別途に説明する。
【0047】
ステップS002で実施する不定値の伝播遮断処理は、以下の2種の処理を実施する。
第一に、入力されるテスト回路挿入後回路データ602(図9と図10)に対し、回路データ601のFFリスト603で指定されるフリップフロップ401A、401Bのスキャンシフトデータ入力端子SINに、テスト専用回路であるフリップフロップ701、702からの電源分離による不定値出力の伝播を遮断するために図12の不定値出力の伝播を遮断するAND回路704、705を挿入する。言い換えると、テスト設計を実行する前の回路データ601内に存在する全てのスキャンフリップフロップのSIN端子に対し、不定値を遮断する回路を挿入する。本実施形態では不定値出力の伝播を遮断する回路としてAND回路704、705を使用しているが、不定値出力の伝播を遮断する回路であれば、必ずしもAND回路である必要はない。
【0048】
ここで、AND回路704、705が必要な理由について、図12のAND回路704を例に説明する。図10において、ユーザ回路であるフリップフロップ401Aの入力端子SINとテスト専用回路であるフリップフロップ701の出力端子QOが接続されている。本実施形態は、テスト専用回路であるフリップフロップ701はテスト時のみ電力を供給するテスト用電源103により電源を供給する構成となるため、通常動作時はフリップフロップ701には電源が供給されず、フリップフロップ701は電源電位とグラウンド電位の中間電位等の不定値を出力する。フリップフロップ701が出力する不定値が通常動作時も電源が供給され動作しているフリップフロップ401Aに伝播しないように、AND回路704を挿入する。同様に、フリップフロップ401Bに不定値が伝播しないように、AND回路705を挿入する。
【0049】
挿入されたAND回路704、705の入力端子Bにはスキャンシフトモードと通常データのキャプチャモードを切り替えるためのSMC信号が接続され、AND回路704の入力端子Aにはフリップフロップ701の出力端子SOUTが接続され、AND回路704の出力端子Xにはフリップフロップ401Aのスキャンシフトデータ入力端子SINが接続される。AND回路705の入力端子Aにはフリップフロップ401Aの出力端子QOが接続され、AND回路705の出力端子Xにはフリップフロップ401Bのスキャンシフトデータ入力端子SINが接続される。スキャンシフトモードと通常データのキャプチャモードを切り替えるためのSMC信号が1レベルになるのはテスト時のみであり、通常動作時は0レベルであるため、AND回路704、705は通常動作時は常に0レベルを出力し、不定値の伝播を遮断する。
【0050】
第2に、入力されるテスト回路挿入後回路データ602(図9、図10)に対し、最終段回路リスト607で指定される制御用テスト専用回路の最終段回路であるフリップフロップ401C、401D、401Eの出力端子QOに不定値の伝播を遮断するために図11のAND回路706A、706B、706Cを挿入する。言い換えると、テストセレクタ回路のテスト動作時に選択される入力の前段に配置されるテスト専用回路の出力に対し、不定値を遮断する回路を挿入する。本実施形態では不定値出力の伝播を遮断する回路としてAND回路706A、706B、706Cを使用しているが、不定値出力の伝播を遮断する回路であれば、必ずしもAND回路である必要はない。
【0051】
AND回路706A、706BはRAM403のビットn個、ワードm個数分挿入する。
ここで、AND回路706A、706B、706Cが必要な理由について、図11のAND回路706Aを例に説明する。図9において、セレクタ回路402Cの入力端子S1とテスト専用回路であるフリップフロップ401Cの出力端子QOが接続されている。本実施形態は、テスト専用回路であるフリップフロップ401Cはテスト時のみ電力を供給するテスト用電源103により電源を供給する構成となるため、通常動作時はフリップフロップ401Cには電源が供給されず、フリップフロップ401Cは電源電位とグラウンド電位の中間電位等の不定値を出力する。フリップフロップ401Cが出力する不定値が通常動作時も電源が供給され動作しているセレクタ回路402Cに伝播しないように、AND回路706Aを挿入する。
【0052】
挿入されたAND回路706Aの入力端子BにはRAM403の入力信号を通常動作信号およびテスト動作信号に切り替えるためのセレクト信号TSELが接続され、AND回路706Aの入力端子Aにはフリップフロップ401Cの出力端子QOがそれぞれ接続され、AND回路706Aの出力端子Xにはセレクタ回路402Cの入力端子S1が接続される。セレクト信号TSELは通常動作時も動作する必要があるため、セレクト信号生成回路411はテスト用電源103での電源供給はできず、通常電源104での電源供給をおこなう。また、通常動作時、セレクト信号TSELは0レベルを出力し、それによりAND回路706Aは通常動作時は常に0レベルを出力するので、不定値の伝播を遮断する。なお、図11ではAND回路706B、706Cの接続について省略しているが、AND回路706Aと同様の接続構成であり、不定値の伝播を遮断する。
【0053】
更に、図10の制御用テスト専用回路の最終段回路であるフリップフロップ701の出力端子QOに図12のAND回路703を挿入する。本実施形態では不定値出力の伝播を遮断する回路としてAND回路703を使用しているが、不定値出力の伝播を遮断する回路であれば、必ずしもAND回路である必要はない。
【0054】
挿入されたAND回路703の入力端子Bにはスキャンシフトモードと通常データのキャプチャモードを切り替えるためのSMC信号が接続され、AND回路703の入力端子Aにはフリップフロップ701の出力端子QOが接続され、AND回路703の出力端子Xにはテスト対象となる組み合わせ論理回路207の入力端子IN2が接続される。スキャンシフトモードと通常データのキャプチャモードを切り替えるためのSMC信号が1レベルになるのはテスト時のみであり、通常動作時は0レベルであるため、AND回路703は通常動作時は常に0レベルを出力し、不定値の伝播を遮断する。
【0055】
ここで、フリップフロップ401A、401Bの入力端子SINにAND回路704、705を挿入しているのに対し、フリップフロップ701、702、401C、401Fの入力端子SINにAND回路を挿入しない。フリップフロップ701、702、401C、401Fはテスト用電源103により電源が供給されるため、通常動作時は電源が供給されておらず、不定値が伝播しても問題ないためである。
【0056】
また、テスト専用回路であるフリップフロップ701、401C、401D、401Eの出力端子QOにAND回路703、706A、706B、706Cを挿入しているのに対し、同じくテスト専用回路であるフリップフロップ702、409の出力端子QOにAND回路を挿入しない。観測用テスト制御回路であるフリップフロップ702、401Fの出力端子QOに接続されるのはフリップフロップの入力端子SINのみであり、フリップフロップの入力端子SINにはAND回路704、705で示されるAND回路が挿入されており、不定値の伝播は遮断されるため、AND回路を挿入する必要はない。
【0057】
また、電源遮断のために挿入されるAND回路703、704、705、706A、706B、706Cは通常電源104から電力を供給される。
ステップS002では、図11、図12で示される構成のP&R入力回路データ610を出力する。
【0058】
なお、説明の例ではフリップフロップの出力端子に対してのみAND回路を挿入しているが、組み合わせ回路の出力端子に対して同様のAND回路を挿入することも可能である。
【0059】
ステップS003:
ステップS002から出力されたP&R入力回路データ610(図11と図12)と、図1に示すメッシュ構造の電源のレイアウトを設定する電源レイアウトデータ609とを入力データとして受け取り、自動レイアウト配置配線処理(P&R処理)を実行する。このP&R処理によって、P&R入力回路データ610に対し、電源レイアウトデータ609の電源配線との接続が行われ、P&R入力回路データ610の全ての回路を通常電源104に接続する。
P&R処理を実施後、中間P&Rデータ611と、P&R後回路データ615と、P&Rによる半導体集積装置内の回路、配線の遅延情報であるSDF616とを出力する。
【0060】
ステップS004:
ステップS003から出力されたP&R後回路データ615と、SDF616とを入力データとして受け取り、静的タイミング解析(STA)を実行し、タイミング解析結果であるSTA実行結果617を出力する。
【0061】
ステップS005:
ステップS004から出力されたSTA実行結果617を入力データとして受け取り、ステップS004で実行したSTAの結果の判断を行う。STA実行結果617にタイミング違反が存在しなければ、ステップS007に進む。STA実行結果617にタイミング違反が存在すれば、ステップS006に進む。
ここでタイミング違反とは、P&R後の回路、配線の遅延情報であるSDF616に示される回路、配線の遅延値が、P&R後回路データ615が正常に動作するためのセットアップ時間、ホールド時間を満たさないことを表す。
【0062】
ステップS006:
ステップS005にて、STA実行結果617にタイミング違反が存在すると判断された場合、回路修正を実施する。具体的には、ステップS003から出力されたP&R後回路データ615と、ステップS004から出力されたSTA実行結果617とを入力データとして受け取る。P&R後回路データ615に対し、STA実行結果617で示されるセットアップ時間、ホールド時間のタイミング違反を回避するための回路修正を実施する。回路修正の結果として、P&R入力回路データ610を書き換え、テスト専用ホールド違反回避用バッファ(ホールド調整回路、ホールド調整用遅延回路)のインスタンス名を記録する、ホールド調整回路リスト612を出力する。
【0063】
一般的にセットアップ時間の最適化処理は使用する回路セルのリサイズ(サイズアップ)と配線迂回の回避処理、ホールド時間の最適化処理はバッファ回路の挿入を実施する。例えば、図12では、フリップフロップ401Aの出力端子QOとAND回路705の入力端子Aの配線経路はテスト動作であるスキャンシフト時のみ使用され、通常動作時は機能する必要はない。しかし、スキャンシフト時のホールド時間を満足しない場合、ホールド違反回避用にバッファ回路を挿入する。このように、テスト動作時のみ動作する配線経路に挿入されるバッファ回路はテスト専用回路であるため、挿入されるテスト専用のホールド違反回避用バッファのインスタンス名をホールド調整回路リスト612として出力する。
図13は、図12に上述したホールド違反回避用バッファ206を挿入した構成を示す。このとき、ホールド違反回避用バッファ206は通常電源104から電源供給される。
【0064】
なお、ステップS005でSTA実行結果617にタイミング違反が存在しても、ホールド時間の違反がないのであれば、ホールド調整回路リスト612の作り直しは必要ない。
【0065】
ステップS006にて、P&R後回路データ615に対しSTA実行結果617で示されるセットアップ時間、ホールド時間のタイミング違反を回避するための回路修正を実施する。回路修正の実施結果として、P&R入力回路データ610を書き換え、ホールド調整回路リスト612を出力する。その後、ステップS003へ戻り、書き換えたP&R入力回路データ610を用いてP&Rを再実行する。この一連の処理は、ステップS005においてSTA実行結果617にタイミング違反が収束するまで繰り返し、タイミング違反が収束しなければ回路データ601の再設計を行い、スタートからやり直す。ここで、例えば繰り返す回数の制限を決定しておくこと等により、タイミング違反が収束できないことを判断することができる。
【0066】
ステップS007:
ステップS003で出力された中間P&Rデータ611と、ホールド調整回路リスト612と、テスト専用回路リスト608と、図1に示す電源レイアウトデータ609とを入力データとして受け取る。中間P&Rデータ611に対し、ホールド調整回路リスト612およびテスト専用回路リスト608で指定されるインスタンス名の回路を電源レイアウトデータ609で指示されるテスト用電源103の配線に接続し、最終P&Rデータ613を出力する。
【0067】
なお、テスト専用回路リスト608は、ステップS001のテスト設計実行で挿入されたテスト専用回路のインスタンス名のリストであり、その生成方法については後述し、別途に説明する。
図14は、図11に対してテスト専用回路リスト608で指定される回路をテスト用電源103に接続した状態を示しており、図15は、図13に対してホールド調整回路リスト612とテスト専用回路リスト608で指定される回路をテスト用電源103に接続した状態を示している。
図14において、テスト専用回路であるフリップフロップ401C、401D、401Eと、テスト用クロック生成回路412と、期待値照合回路409はテスト用電源103に接続する。
図15において、テスト専用回路であるフリップフロップ701、702とホールド違反回避用バッファ206はテスト用電源103に接続する。最終P&Rデータ613は図14、図15の回路接続構成で構成される。
【0068】
なお、本実施形態ではホールド調整回路リスト612とテスト専用回路リスト608で指定される回路に対し、テスト用電源103へ接続する処理をステップS007で実行するフローを説明しているが、テスト用電源103への接続をステップS003で実行し、ステップS007の実行を省略することも可能である。この場合、本フローでステップS007に入力しているホールド調整回路リスト612とテスト専用回路リスト608をステップS003に入力する必要がある。
【0069】
また、上記の説明では不定値出力の伝播を遮断することを目的とするAND回路をステップS002で挿入したが、図14のAND回路706A、706B、706Cおよび図15のAND回路703、704、705に示す不定値出力の伝播を遮断するAND回路とフリップフロップを予め接続した不定値出力伝播の遮断を考慮した回路を用意しておき、ステップS001のテスト設計実施後に回路を置き換えることで対処することも可能である。
【0070】
図5は、図4のステップS002の入力データである最終段回路リスト607の作成方法について説明したフロー図である。
ステップS008:
ステップS001で出力されるテスト回路挿入後回路データ602と、ステップS001の処理で容易に作成できるテストセレクタ回路のインスタンス名を記録する、テストセレクタ回路リスト606とを入力データとして受け取る。テスト回路挿入後回路データ602に含まれる制御用テスト専用回路の最終段回路のインスタンス名を抽出し、制御用テスト専用回路の最終段回路のインスタンス名を記録する、最終段回路リスト607を出力する。
【0071】
ここで、テストセレクタ回路とは、通常動作信号とテスト動作信号とを切り替えて出力する回路である。言い換えると、テスト対象となる回路への入力に対して、通常動作時(通常モード)の入力信号とテスト動作時(テストモード)の入力信号とを切り替える回路である。本ステップの入力データであるテストセレクタ回路リスト606を作成する方法をテスト回路挿入後回路データ602の構成を示す図9に対して説明すると、RAM403の入力信号を通常動作信号およびテスト動作信号に切り替えるためのセレクト信号TSELが接続されている回路、つまり図9におけるセレクタ回路402C、402D、402E、402Aを抽出することで作成できる。
また、上述した本ステップの処理を行う事で、図10の通常動作とスキャンテスト動作を選択する信号AMCが接続されている回路、つまり図10におけるセレクタ回路402Fを抽出することもできる。
これはステップS001で使用する一般的なテスト設計ツールで容易に実現できる。
【0072】
本ステップでの処理の詳細を説明する。テスト回路挿入後回路データ602について、テストセレクタ回路リスト606で指定されるセレクタ回路のテスト専用回路側のデータ入力端子から前段の回路を探索して、制御用テスト専用回路の最終段回路のインスタンス名を抽出し、抽出した最終段回路のインスタンス名を記録する最終段回路リスト607を作成する。
【0073】
テスト回路挿入後回路データ602の構成を示す図9を用いて説明すると、テストセレクタ回路リスト606で指定されるセレクタ回路402Cのテスト専用回路側のデータ入力端子S1に接続される前段の回路であるフリップフロップ401Cを抽出し、フリップフロップ401Cのインスタンス名を最終段回路リスト607として出力する。これをテストセレクタ回路リスト606で指定される全てのセレクタ回路(図9のセレクタ回路402C、402D、402E、402A)に対して実行する。ここで抽出された回路、例えば図9のフリップフロップ401Cは制御用テスト専用回路の最終段回路である。
【0074】
また、テスト回路挿入後回路データ602の構成を示す図10を用いて説明すると、テストセレクタ回路リスト606で指定されるセレクタ回路402Fのテスト専用回路側のデータ入力端子S1に接続される前段の回路であるフリップフロップ701を抽出し、フリップフロップ701のインスタンス名を最終段回路リスト607として出力する。ここで抽出された回路、図10のフリップフロップ701は制御用テスト専用回路の最終段回路である。
【0075】
図6は、図4のステップS007の入力データである全テスト専用回路のインスタンス名を記録する、テスト専用回路リスト608の作成方法について説明したフロー図である。
ステップS009:
ステップS001の処理で容易に作成できるテストセレクタ回路リスト606と、ステップS001の処理で容易に作成できる全テスト回路のインスタンス名を記録する、全テスト回路リスト614とを入力データとして受け取る。全テスト回路リスト614で指定されるインスタンス名からテストセレクタ回路リスト606で指定されるインスタンス名を除外して作成するテスト専用回路リスト608を出力する。
【0076】
ここで、本ステップの入力データである全テスト回路リスト614を作成する方法をテスト回路挿入後回路データ602の構成を示す図9、図10に対して説明すると、テスト設計で挿入された全ての回路、つまり図9におけるセレクタ回路402C、402D、402E、402A、フリップフロップ401C、401D、401E、401F、テスト結果とテスト期待値の比較回路420、およびその他のテスト回路209の階層内の全ての回路、また図10におけるセレクタ回路402F、フリップフロップ701、702を抽出することで作成でき、これはステップS001で使用する一般的なテスト設計ツールで容易に実現できる。
【0077】
本ステップでの処理の詳細を説明する。全テスト回路リスト614で指定されるインスタンス名から、テストセレクタ回路リスト606で指定されるインスタンス名を除外し、テスト専用回路リスト608を出力する。
【0078】
テスト回路挿入後回路データ602の構成を示す図9を用いて説明すると、全テスト回路リスト614で指定されるRAMのテスト回路209を構成する全ての回路のインスタンス名のリストからテストセレクタ回路リスト606で指定されるセレクタ回路402C、402D、402E、402Aのインスタンス名を除外したリスト、すなわちテスト専用回路リスト608を作成する。
また、上述した本ステップの処理を行う事で、図10の全テスト回路リスト614で指定される全テスト専用回路のインスタンス名のリスト、すなわちセレクタ回路402Fとフリップフロップ701、702から、テストセレクタ回路リスト606で指定されるセレクタ回路402Fのインスタンス名を除外したリスト、すなわちテスト専用回路リスト608を作成する。
【0079】
なお、説明の都合上、ステップS008、S009について、テスト設計実施工程(ステップS001)とは別のステップとして説明したが、ステップS001で使用するテスト設計ツールを用いて実現するため、テスト設計実施工程に含むようにしてもよい。
【0080】
本実施形態の半導体集積回路の設計手法は、コンピュータシステムによって実現できる。
図16は本発明の実施形態による半導体集積回路の設計手法を実施するためのコンピュータシステム構成の一例を示す図であり、サーバ301、一つ以上のコンピュータ装置306、及び、ネットワーク305から構成される。サーバ301は、CPU(Central Processing Unit)で構成される処理部302、記録媒体303、及び、入出力インターフェースである入出力部304で構成される例を示す。コンピュータ装置306は、ネットワーク305と通信部307、記録媒体308、CPUで構成される処理部309、及び、入出力インターフェースである入出力部310で構成される例を示す。
【0081】
まず、ネットワーク305は、コンピュータ装置306とサーバ301との間の通信を接続する。例えば、ネットワーク305は、移動体通信網や、専用線網や、LAN(Local Area Network)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【0082】
サーバ301は、本実施形態における半導体集積回路の設計手法を実現するための実行プログラムや、解析データ、入力情報、対応後の出力情報といったデータを記憶する記録媒体303を備える。記録媒体303は、ハードディスクやRAM(Random Access Memory)やROM(Read Only Memory)といった記憶装置で構成される。さらに、サーバ301は、CPU(Central Processing Unit)で構成される処理部302を備え、この処理部により記録媒体303に記憶されたサーバ301の機能を実現するための実行プログラムを読み込んで実行することで、サーバ301の機能を実現する。なお、各実行プログラムやデータは、サーバ301の管理者により、キーボードやマウスや、LCD(Liquid Crystal Display)といった入出力部304を用いて外部から記録媒体303へ記憶される。上述の構成により、サーバ301は、実行プログラムやデータを、ネットワーク305を介してコンピュータ装置306へ提供することが可能である。
【0083】
コンピュータ装置306は、本実施形態における半導体集積回路の設計手法を実現するための生成システムを実行する。コンピュータ装置306は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータである。コンピュータ装置306は、通信部307を備え、ネットワーク305を介してサーバ301と通信が可能である。コンピュータ装置306は、ネットワーク305を介してサーバ301へ接続して、本実施形態における半導体集積回路の設計手法を実現するための実行プログラムやデータを取得し、記録媒体308へ記憶する。コンピュータ装置306は、CPUで構成される処理部309を備える。この処理部は、記憶部に記憶されたコンピュータ装置306の機能を実現するための実行プログラムを読み込んで、実行することによりコンピュータ装置306の機能を実現する。なお、コンピュータ装置306は、コンピュータ装置306の使用者との入出力インターフェースである入出力部310を備える。入出力部310は、キーボードやマウスや、LCDで構成される。コンピュータ装置306は、上述の構成により、サーバ301から取得された実行プログラムを読み込んで実行し、本実施形態における半導体集積回路の設計手法を実現する。
【0084】
ここで、本実施形態における半導体集積回路の設計手法の実行プログラムは、サーバ301の記録媒体303に記憶される形態には限定しない。実行プログラムは、例えば、CD(Compact Disk)やフラッシュメモリを搭載したUSB(Universal Serial Bus)メモリといった持ち運び可能な記録媒体に記録されてもよい。この場合、実行プログラムは、これらの持ち運び可能な記録媒体から、コンピュータ装置306の備えるCDドライブや、USBポート等を介して導入される。
【0085】
加えて、上述の例において、上述した実行プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0086】
前記のフローチャートのすべてのステップを、このコンピュータシステムを用いて実現することができる。
例えば、コンピュータシステムを用いて、上述した半導体集積回路の設計方法(図4)を実現する場合、プログラムは、テスト設計実施処理(図4のステップS001)、不定値伝播遮断処理(図4のステップS002)、レイアウト処理(図4のステップS003〜S006)、及び、テスト用電源接続処理(図4のステップS007)をコンピュータシステムに実行させる手順を含む。図4に示す各リスト等は、コンピュータシステム内のメモリに書き込まれ、書き込まれた各リスト等が読みだされて処理される。
【0087】
実施形態1のメカニズムおよび効果
本実施形態は、図1の半導体集積回路1に示すように、内部制御回路部100の全面にテスト用電源103をメッシュ状に構成し、テスト用電源103でテスト専用回路に電源を供給し、テスト用電源は、電源遮断スイッチ109を介し通常電源との接続をON/OFFし電源供給を遮断する構成を有する。
【0088】
さらに、図1の半導体集積回路1の設計方法として、図4のフローに示すように、テスト専用回路を抽出するステップS001を持ち、電源遮断による不定値出力の信号パスに対し不定値の伝播を遮断する回路(例えば、AND回路)を挿入するステップS002と、前述の図1の電源レイアウト構造に対しテスト専用回路の電源接続を行うステップS007を有することにより、テスト用電源103に対する電源ON/OFF制御を行いテスト専用回路の電源遮断制御を可能とする半導体集積回路1を生成する。
【0089】
よって、特許文献3のように、電源遮断スイッチの大量配置による面積の増大、または、テスト専用回路を固めておく事による配線性の悪化や、特許文献4のようにテスト専用回路のセル毎に電源遮断スイッチを持つ事による面積の増大をすることなく、当該半導体集積回路のテスト実施時のみテスト専用回路に電源供給し、テスト実施時以外はテスト専用回路を電源遮断することが可能となる。
更に、本発明の半導体集積回路の設計方法は、通常動作時にテスト専用回路を電源遮断した際に不定値の伝播を防止する事が可能となる半導体集積回路を設計する事ができる。
【0090】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【0091】
1 :半導体集積回路
2〜8 :コア電源領域(電源領域)
2x,2a,2b,6x,6a,6b:ロジックコーン
3x :制御用フリップフロップ
4x,8x:保持用フリップフロップ
5x,11x:マクロテスト用スキャンパス
7x :観測用フリップフロップ
9 :電源遮断スイッチ領域
10x :テスト対象マクロ
100 :内部制御回路部
101 :IOバッファ配置領域
102 :GND
103 :テスト用電源(テスト専用電源)
104 :通常電源(通常動作用電源)
105 :内部制御領域
106 :トランジスタ
109 :電源遮断スイッチ
205,207,208:組み合わせ論理回路
206 :ホールド違反回避用バッファ
301 :サーバ
302、309:処理部
303、308:記録媒体
304、310:入出力部
305 :ネットワーク
306 :コンピュータ装置
307 :通信部
401A,401B,401C,401D,401E,401F:フリップフロップ
402A,402C,402D,402E,402F:セレクタ回路
403 :RAM
408 :テストセレクタ回路(テストモード切り替え回路)
409 :期待値照合回路
410 :パタン生成回路
411 :テスト制御回路
412 :テスト用クロック生成回路
420 :比較回路
504V:セル電源
504G:セルGND
505a〜505c:接続スルーホール
506 :テスト専用回路
507 :常時動作セル
601 :入力回路データ(RTL含む)
602 :テスト回路挿入後の回路データ
603 :回路データ601のFFリスト
606 :テストセレクタ回路リスト
607 :最終段回路リスト
608 :テスト専用回路リスト
609 :電源レイアウトデータ
610 :P&R入力回路データ
611 :中間P&Rデータ
612 :ホールド調整回路リスト
613 :最終P&Rデータ
614 :全テスト回路リスト
615 :P&R後回路データ
616 :SDF(レイアウト後の遅延データ)
617 :STA実行結果
701、702 :フリップフロップ
703,704,705,706A,706B,706C:AND回路

【特許請求の範囲】
【請求項1】
テスト実行時のみ動作するテスト専用回路を有する半導体集積回路であって、
当該半導体集積回路の内部回路領域に電源を供給する通常動作用電源と、
当該内部回路領域の全面にメッシュ状に配線され、前記テスト専用回路に電源供給するテスト用電源と、
前記テスト用電源と前記通常動作用電源とを接続及び遮断して、前記通常動作用電源から前記テスト用電源への電源供給を制御する電源遮断部と、を備える半導体集積回路。
【請求項2】
前記電源遮断部は、当該半導体集積回路のテスト実施時に前記テスト用電源と前記通常動作用電源とを接続し、通常動作時に前記テスト用電源と前記通常動作用電源とを遮断するように制御することを特徴とする請求項1記載の半導体集積回路。
【請求項3】
前記電源遮断部は、前記テスト用電源と前記通常動作用電源とを接続及び遮断する電源遮断スイッチを有することを特徴とする請求項2記載の半導体集積回路。
【請求項4】
前記電源遮断部を制御する制御回路を当該半導体集積回路内に備えることを特徴とする請求項1乃至3のいずれか一項に記載の半導体集積回路。
【請求項5】
前記電源遮断部は、当該半導体集積回路外部から電源端子を介して制御されることを特徴とする請求項1乃至3のいずれか一項に記載の半導体集積回路。
【請求項6】
設計装置が設計する、テスト回路を含む半導体集積回路の設計方法であって、
前記テスト回路の設計を実施した当該半導体集積回路の回路データから、テスト実行時のみ動作するテスト専用回路を抽出し、抽出したテスト専用回路を記録したテスト専用回路リストをメモリへ格納し、
前記回路データに対し、電源遮断された際に抽出したテスト専用回路が不定値の伝播を防止する遮断回路を挿入し、
前記遮断回路を挿入した回路データと、当該半導体集積回路全体にメッシュ状に配線されるテスト用電源のレイアウトデータとを用いて、レイアウト及びタイミング検証を実施し、タイミング検証結果からスキャンチェーン上に配置されたホールド調整回路を抽出し、抽出したホールド調整回路を記録したホールド調整回路リストをメモリへ格納し、
前記メモリから、前記テスト専用回路リストと前記ホールド調整用リストを読み出し、前記テスト専用回路リストに記録された前記テスト専用回路と前記ホールド調整回路リストに記録された前記ホールド調整回路とをテスト用電源に接続する半導体集積回路の設計方法。
【請求項7】
前記遮断回路の挿入は、テスト設計を実行する前の回路データに存在する全てのスキャンフリップフロップのSIN端子に対し、不定値伝播を制御する回路を挿入することを特徴とする請求項6記載の半導体集積回路の設計方法。
【請求項8】
前記遮断回路の挿入は、
前記テスト回路から、テスト対象となる回路への入力に対して、通常動作時の入力信号とテスト動作時の入力信号とを切り替えるテストセレクタ回路を抽出し、
前記テスト専用回路リストに記録されたテスト専用回路から、前記テストセレクタ回路のテスト動作時に選択される入力の前段に配置されるテスト専用回路を抽出し、抽出したテスト専用回路の出力に対し、不定値伝播を制御する回路を挿入することを特徴とする請求項6または請求項7記載の半導体集積回路の設計方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−3035(P2013−3035A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−136092(P2011−136092)
【出願日】平成23年6月20日(2011.6.20)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】