(57)【要約】      （修正有）【課題】回路規模の増大を抑制しつつスキャンテスト時の消費電力を削減する半導体集積回路の設計装置および設計方法を提供する。【解決手段】対象抽出部１０２は、組み合せ回路のうちの活性化状態が評価される対象となる回路部分を抽出する。削減量算出部１０４は、組み合せ回路に入力されるスキャンフリップフロップのそれぞれの出力信号を１個ずつ固定化してスキャンフリップフロップ毎の消費電力の削減量を算出し、評価部１０８は、その結果に基づいて、スキャンフリップフロップの出力信号を固定化したときの消費電力の削減量が最も多いスキャンフリップフロップを選択する。固定化情報蓄積部１０６は固定化情報を保持し、対象抽出部１０２はその固定化情報に基づいて、評価対象となる回路部分を抽出する。評価部１０８は、抽出された回路部分毎に１つのスキャンフリップフロップを選択し、削減できる消費電力値の合計が所定の値になるまで上記を繰り返す。【選択図】図３
2012022566.tif 000002
【特許請求の範囲】
【請求項１】
スキャンテスト時にスキャンチェーンを形成する複数のスキャンフリップフロップと、前記スキャンチェーンから出力される信号を取り込んで論理演算結果を前記スキャンチェーンに出力する組み合せ回路とを具備する半導体集積回路の回路データをネットリストに基づいて生成する回路データ生成部と、
前記組み合せ回路のうちの活性化状態が評価される対象となる回路部分を抽出する対象抽出部と、
前記組み合せ回路に入力される前記スキャンフリップフロップのそれぞれの出力信号を１個ずつ固定化して前記スキャンフリップフロップ毎の消費電力の削減量を算出する削減量算出部と、
前記削減量算出部で算出した結果に基づいて、前記スキャンフリップフロップの出力信号を固定化したときの前記消費電力の削減量が最も多いスキャンフリップフロップを選択する評価部と、
前記選択されたスキャンフリップフロップを示す固定化情報を保持する固定化情報蓄積部と
を具備し、
前記対象抽出部は、前記固定化情報蓄積部に保持される前記固定化情報に基づいて前記評価される対象となる回路部分を抽出し、
前記評価部は、抽出された前記評価される対象となる回路部分毎に１つのスキャンフリップフロップを選択し、
削減できる消費電力値の合計が所定の値になるまで繰り返す
半導体集積回路の設計装置。
【請求項２】
前記消費電力の削減量は、前記スキャンフリップフロップの出力信号を固定化することによって、出力信号が固定化される論理ゲートの数とする
請求項１に記載の半導体集積回路の設計装置。
【請求項３】
前記消費電力の削減量は、前記スキャンフリップフロップの出力信号を固定化することによって、出力信号が固定化される論理ゲートの負荷容量の和とする
請求項１に記載の半導体集積回路の設計装置。
【請求項４】
スキャンテスト時にスキャンチェーンを形成する複数のスキャンフリップフロップと、前記スキャンチェーンから出力される信号を取り込んで論理演算結果を前記スキャンチェーンに出力する組み合せ回路とを具備する半導体集積回路の回路データをネットリストに基づいて生成するステップと、
前記組み合せ回路のうちの活性化状態が評価される対象となる回路部分を抽出するステップと、
前記組み合せ回路に入力される前記スキャンフリップフロップのそれぞれの出力信号を１個ずつ固定化して前記スキャンフリップフロップ毎の消費電力の削減量を算出するステップと、
前記削減量を算出するステップにおいて算出された結果に基づいて、前記スキャンフリップフロップの出力信号を固定化したときの前記消費電力の削減量が最も多いスキャンフリップフロップを選択するステップと、
前記選択されたスキャンフリップフロップを示す固定化情報を保持するステップと
を具備し、
前記対象となる回路部分を抽出するステップは、保持される前記固定化情報に基づいて前記評価される対象となる回路部分を抽出するステップを備え、
前記評価するステップは、抽出された前記評価される対象となる回路部分毎に１つのスキャンフリップフロップを選択するステップを備え、
削減できる消費電力値の合計が所定の値になるまで繰り返す
半導体集積回路の設計方法。
【請求項５】
前記消費電力の削減量は、前記スキャンフリップフロップの出力信号を固定化することによって、出力信号が固定化される論理ゲートの数とする
請求項４に記載の半導体集積回路の設計方法。
【請求項６】
前記消費電力の削減量は、前記スキャンフリップフロップの出力信号を固定化することによって、出力信号が固定化される論理ゲートの負荷容量の和とする
請求項４に記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計装置および設計方法に関し、特にテスト回路の設計方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化により、スキャンテストは必須のテスト手法になっている。スキャンテストは通常動作よりも回路の活性化率が高く消費電力が大きくなる。通常動作時は正しく動作する半導体であっても、スキャンテスト時に多くの回路が活性化し、許容を超える電圧降下によって良品が不良品と誤判断されることがある。スキャンテストのシフト動作時（以降「スキャンシフト」と称する）における消費電力を削減するための一般的な技術として、例えば、特開２００１−１４１７８５号公報に開示される技術が知られている。この技術では、スキャンシフト動作時にスキャンフリップフロップから組み合せ回路へ出力される全ての出力信号が論理値“０”または“１”に強制的に固定され（以降「固定化」と称する）、後段の組み合せ回路の動作を止めて消費電力が削減される。しかし、この方法では、全てのスキャンフリップフロップの出力信号が固定化されるため、多くのゲートを追加する必要があり回路規模が増加する。そのため、消費電力を削減しつつ回路規模の増加を抑える技術が求められている。
【０００３】
例えば、特開２００９−１７５１５４号公報に開示される技術は、回路面積が増加することを抑えつつ、スキャンシフト動作時における消費電力を低減することができる半導体集積回路およびその設計方法である。この技術によれば、スキャンフリップフロップの出力信号を固定化する方法として、スキャンフリップフロップの消費電力削減効果が高い順番を求め、目標とする消費電力に達するまで順に固定化していき、組み合せ回路のスキャンシフト時の不要な動作を止める。
【０００４】
図１を参照して、この設計方法について説明する。このスキャンテスト回路生成方法は、回路データ（ネットリスト）を生成するステップ９１０と、生成された回路データ内に含まれるスキャンフリップフロップを１つ以上選択するステップ９２０と、回路データ（ネットリスト）を修正するステップ９３０とを具備する。ステップ９１０において生成される回路データは、半導体集積回路を構成している複数の組み合せ論理素子、および複数のスキャンフリップフロップの接続情報を含んでいる。ステップ９２０において選択されるスキャンフリップフロップは、スキャンシフト動作時において消費電力に与える影響が大きいもの順に選択される。ステップ９３０では、ステップ９２０において選択されたスキャンフリップフロップに対して、スキャンシフト動作中に組み合せ回路への出力値が固定されるように回路データが修正される。
【０００５】
ステップ９２０は、影響を評価するステップ９２２と、スキャンフリップフロップを選択するステップ９２４と、効果を判定するステップ９２６と、次のスキャンフリップフロップを選択するステップ９２８とを含む。影響を評価するステップ９２２では、回路中の各スキャンフリップフロップが消費電力に対して与える影響が評価される。スキャンフリップフロップを選択するステップ９２４では、最も消費電力に対する影響が大きいスキャンフリップフロップが選択される。効果を判定するステップ９２６では、選択されたスキャンフリップフロップの出力を固定化することにより、所望の消費電力まで削減できるかが判定される。次のスキャンフリップフロップを選択するステップ９２８では、未だ選択されていないスキャンフリップフロップの中から、最も消費電力に対する影響が大きいスキャンフリップフロップが選択される。
【０００６】
このように、スキャンフリップフロップと組み合せ回路との間に値を固定化する回路を追加し、組み合せ回路の動作を抑制することによって、スキャンシフト時の消費電力が削減される。しかし、この技術では、固定化のための回路が余分に追加され、回路規模が増加する。
【０００７】
図７に示されるスキャンチェーン８１０と組み合せ回路８２０とを備える回路の概念図を参照してその理由を説明する。組み合せ回路８２０は、組み合せ回路８２１、８２３、８２４を含み、組み合せ回路８２１は組み合せ回路８２２を内包する。回路の規模は、組み合せ回路８２１＞組み合せ回路８２２＞組み合せ回路８２３＞組み合せ回路８２４とする。
【０００８】
上記技術によると、まず全てのスキャンフリップフロップの消費電力削減効果が評価される（ステップ９２２）。すなわち、組み合せ回路の規模の大小関係に基づいて、スキャンフリップフロップ８１１、８１２、８１３、８１４の順に優先順位が決められる。
【０００９】
次に、決められた優先順位にしたがい、組み合せ回路８２０に与える影響が最も大きいスキャンフリップフロップ８１１が選択される（ステップ９２４）。スキャンフリップフロップ８１１の出力が固定化されると、組み合せ回路８２１の動作が固定化されることになる。この状態で目標とする消費電力削減まで達したか判断される（ステップ９２６）。ここでは未達であり、次に影響が大きいスキャンフリップフロップ８１２が選択される（ステップ９２８）。スキャンフリップフロップ８１２の出力が固定化されることになるが、スキャンフリップフロップ８１２の出力は、組み合せ回路８２２に影響を及ぼすだけである。組み合せ回路８２２は、既にスキャンフリップフロップ８１１の出力が固定化されることにより動作を抑制されている。したがって、このスキャンフリップフロップ８１２の出力を固定化する回路は、消費電力削減に寄与することはない。すなわち、固定化しても消費電力削減に寄与しないスキャンフリップフロップの出力信号を固定化する無駄な固定化回路が挿入されることになり、回路規模が無駄に増加する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−１４１７８５号公報
【特許文献２】特開２００９−１７５１５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、回路規模の増大を抑制しつつスキャンテスト時の消費電力を削減する半導体集積回路の設計装置および設計方法を提供する。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明の観点では、半導体集積回路の設計装置は、回路データ生成部（１００）と、対象抽出部（１０２）と、削減量算出部（１０４）と、評価部（１０８）と、固定化情報蓄積部（１０６）とを具備する。回路データ生成部（１００）は、スキャンテスト時にスキャンチェーンを形成する複数のスキャンフリップフロップと、スキャンチェーンから出力される信号を取り込んで論理演算結果をスキャンチェーンに出力する組み合せ回路とを具備する半導体集積回路の回路データをネットリストに基づいて生成する。対象抽出部（１０２）は、組み合せ回路のうちの活性化状態が評価される対象となる回路部分を抽出する。削減量算出部（１０４）は、組み合せ回路に入力されるスキャンフリップフロップのそれぞれの出力信号を１個ずつ固定化してスキャンフリップフロップ毎の消費電力の削減量を算出する。評価部（１０８）は、削減量算出部（１０４）で算出した結果に基づいて、スキャンフリップフロップの出力信号を固定化したときの消費電力の削減量が最も多いスキャンフリップフロップを選択する。固定化情報蓄積部（１０６）は、選択されたスキャンフリップフロップを示す固定化情報を保持する。対象抽出部（１０２）は、固定化情報蓄積部（１０６）に保持される固定化情報に基づいて、評価される対象となる回路部分を抽出する。評価部（１０８）は、抽出された評価される対象となる回路部分毎に１つのスキャンフリップフロップを選択し、削減できる消費電力値の合計が所定の値になるまで上記を繰り返す。
【００１４】
本発明の他の観点では、半導体集積回路の設計方法は、スキャンテスト時にスキャンチェーンを形成する複数のスキャンフリップフロップと、スキャンチェーンから出力される信号を取り込んで論理演算結果を前記スキャンチェーンに出力する組み合せ回路とを具備する半導体集積回路の回路データをネットリストに基づいて生成するステップと、その組み合せ回路のうちの活性化状態が評価される対象となる回路部分を抽出するステップと、組み合せ回路に入力されるスキャンフリップフロップのそれぞれの出力信号を１個ずつ固定化してスキャンフリップフロップ毎の消費電力の削減量を算出するステップと、削減量を算出するステップにおいて算出された結果に基づいて、スキャンフリップフロップの出力信号を固定化したときの消費電力の削減量が最も多いスキャンフリップフロップを選択するステップと、選択されたスキャンフリップフロップを示す固定化情報を保持するステップとを具備する。対象となる回路部分を抽出するステップは、保持される固定化情報に基づいて、評価される対象となる回路部分を抽出するステップを備え、評価するステップは、抽出された評価される対象となる回路部分毎に１つのスキャンフリップフロップを選択するステップを備え、削減できる消費電力値の合計が所定の値になるまで上記を繰り返す。
【発明の効果】
【００１５】
本発明によれば、回路規模の増大を抑制しつつスキャンテスト時の消費電力を削減する半導体集積回路の設計装置および設計方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】従来の半導体集積回路の設計方法を説明する図である。
【図２】本発明の実施の形態に係る半導体集積回路の設計装置の構成を示す図である。
【図３】本発明の実施の形態に係る半導体集積回路の設計装置の処理構成を示す図である。
【図４】本発明の実施の形態に係る半導体集積回路の設計装置の動作を説明する図である。
【図５】本発明の実施の形態において説明される回路例を示す図である。
【図６】本発明の実施の形態において生成される回路例を示す図である。
【図７】問題が解決される理由を説明するための回路概念図である。
【図８】固定化情報の格納の状態を示す図である。
【発明を実施するための形態】
【００１７】
図面を参照して、本発明を実施するための形態を説明する。
【００１８】
図２に、本発明の実施の形態に係る半導体集積回路の設計装置の構成が示される。本実施の形態では、設計装置は、コンピュータシステムによって実現される。このコンピュータシステムは、当業者によって適宜構築される。スキャンテスト生成手法を実施するためのコンピュータシステムは、コンピュータ装置１０とサーバ１４と記録媒体１６とネットワーク１２とを備える。
【００１９】
サーバ１４は、インターネット等に例示されるネットワーク１２を介して、エンジニアリングワークステーション等に例示されるコンピュータ装置１０に接続される。記録媒体１６は、サーバ１４に保持されている。記録媒体１６に格納されている実行プログラムは、ネットワーク１２を介してコンピュータ装置１０にダウンロードされる。ダウンロードされた実行プログラムは、コンピュータ装置１０に内蔵されるハードディスクやメモリ等に格納され、実行される。
【００２０】
本発明の実施の形態に係る設計装置は、図３に示されるように、処理構成として、回路データ生成部１００、対象抽出部１０２、削減量算出部１０４、固定化情報蓄積部１０６、評価部１０８、回路データ修正部１１０を具備する。回路データ生成部１００は、スキャンテスト機能を内蔵する半導体集積回路の回路データをネットリストに基づいて生成する。回路データは、論理合成ツール等のＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールによって容易に生成できるため、回路データの生成手法に関する詳細な説明は省略する。
【００２１】
出力信号を固定化されるフリップフロップを示す固定化情報は、固定化情報蓄積部１０６に格納されている。対象抽出部１０２は、固定化情報に基づいて評価対象の回路部分を抽出する。固定化情報蓄積部１０６に対象のフリップフロップが登録されていないときは、スキャンテスト時の消費電力を算出する組み合せ回路（以降「評価対象回路」と称する）に含まれる全ての論理ゲートが評価対象となる。
【００２２】
削減量算出部１０４は、組み合せ回路に入力される複数のスキャンフリップフロップのそれぞれの出力信号を１個ずつ固定化して消費電力の削減量を算出する。消費電力削減量は、全てのスキャンフリップフロップについて、スキャンフリップフロップ毎に算出される。
【００２３】
評価部１０８は、削減量算出部１０４で算出した結果に基づいて、出力信号を固定化した時に消費電力削減量が最も多いスキャンフリップフロップを１つ選択し、固定化情報蓄積部１０８に固定化情報を保持させる。固定化情報とは、出力を固定化したスキャンフリップフロップの名称（ノード名など）と、出力信号の論理値を“０”または“１”のどちらかに固定化する情報を示す。評価部１０８は、固定化情報に基づいて仮想的にスキャンフリップフロップ出力信号を固定化してシミュレーションを行う。固定化されている論理ゲート数に基づいて、削減できる消費電力値を算出する。削減できる消費電力値と目標値とを比較し、削減できる消費電力値が目標値以上の場合、消費電力値が目標まで達していると判断して、回路データ修正部１１０へ制御を移す。一方、達していなかった場合は、次の候補を求める。
【００２４】
固定化情報蓄積部１０６は、図８に示されるように、フリップフロップ名称３０１と固定化値３０２とを含む固定化情報を格納し、対象抽出部１０２、回路データ修正部１１０に提供する。回路データ修正部１１０は、固定化情報に基づいて、フリップフロップの出力を固定化するための回路を追加するように回路データを修正する。
【００２５】
ここでは、図２に示されるコンピュータシステムにおいて、記録媒体１６に格納されるプログラムをコンピュータ装置１０が実行することにより、図３に示される機能が実現される。各処理に入力されるデータや出力されるデータ等は、記録媒体１６とコンピュータ装置１０との間で授受される。
【００２６】
図４に、本発明の実施の形態に係る半導体集積回路の設計装置の動作、設計方法を説明するフローチャートを示す。
【００２７】
コンピュータ装置１０によって実現される回路データ生成部１００は、スキャンテスト機能を内蔵する半導体集積回路の回路データを作成する（ステップＳ１００）。回路データ（ネットリスト）は、論理合成ツール等のＥＤＡツールで容易に生成できるため、回路データの生成手法に関する説明は省略する。
【００２８】
ここでは、回路データ生成部１００によって生成される回路データは、例えば、図５に示されるように、スキャンチェーン２１０と組み合せ回路２２０とを備えるものとして説明する。スキャンチェーン２１０は、スキャンフリップフロップ２１１、２１２、２１３、２１４、２１５を備える。組み合せ回路２２０は、ＡＮＤ回路２２１、ＮＡＮＤ回路２２２、２２５、ＮＯＴ回路２２３、２２４を備える。
【００２９】
スキャンフリップフロップ２１１の出力端子Ｑはスキャンフリップフロップ２１２の入力端子ＤＴに接続され、スキャンフリップフロップ２１２の出力端子Ｑはスキャンフリップフロップ２１３の入力端子ＤＴに接続され、スキャンフリップフロップ２１３の出力端子Ｑはスキャンフリップフロップ２１４の入力端子ＤＴに接続され、スキャンフリップフロップ２１４の出力端子Ｑはスキャンフリップフロップ２１５の入力端子ＤＴに接続される。スキャンフリップフロップ２１１の入力端子ＤＴにスキャン入力信号ＳＩが印加され、スキャンフリップフロップ２１５の出力端子Ｑからスキャンアウト信号ＳＯが出力される。スキャンフリップフロップ２１１〜２１４の出力端子Ｑから出力される信号は、組み合せ回路２２０に入力され、組み合せ回路２２０から出力される信号は、スキャンフリップフロップ２１５の入力端子Ｄに入力される。図示されないが、スキャンフリップフロップ２１１〜２１４の入力端子Ｄ、スキャンフリップフロップ２１５の出力端子Ｑは、他の組み合せ回路に接続される。
【００３０】
スキャンフリップフロップ２１１〜２１５は、スキャンイネーブル端子ＮＴに印加されるスキャンイネーブル信号ＳＥがアクティブを示すとき、クロック信号に応答して入力端子ＤＴから信号を取り込んで出力端子Ｑから出力する。すなわち、スキャンモードのときに、スキャンチェーン２１０は、クロック信号に同期してデータをシフトするシフトレジスタとして動作する。
【００３１】
組み合せ回路２２０では、ＡＮＤ回路２２１の２つの入力端子は、スキャンフリップフロップ２１１、２１２の出力端子Ｑに接続される。ＡＮＤ回路２２１の出力端子は、ＮＡＮＤ回路２２２の２つの入力端子のうちの一方に接続される。ＮＡＮＤ回路２２２の他方の入力端子は、スキャンフリップフロップ２１３の出力端子Ｑに接続される。ＮＡＮＤ回路２２２の出力端子は、ＮＯＴ回路２２３の入力端子に接続され、ＮＯＴ回路２２３の出力端子はＮＯＴ回路２２４の入力端子に接続される。ＮＯＴ回路２２４の出力端子はＮＡＮＤ回路２２５の２つの入力端子の一方に接続され、ＮＡＮＤ回路２２５の他方の入力端子は、スキャンフリップフロップ２１４の出力端子Ｑに接続される。ＮＡＮＤ回路２２５の出力端子は、スキャンフリップフロップ２１５の入力端子Ｄに接続される。
【００３２】
回路データが生成されると、対象抽出部１０２は、固定化情報蓄積部１０６に格納される固定化情報を参照して、評価対象回路の論理ゲートを全て抽出する（ステップＳ１０２）。評価対象回路は、スキャンテスト時の消費電力を算出する対象となる回路部分である。最初の抽出においては、固定化情報蓄積部１０６には登録されている情報がないため、組み合せ回路２２０全体が対象となる。したがって、ＡＮＤ回路２２１、ＮＡＮＤ回路２２２、２２５、ＮＯＴ回路２２３、２２４が抽出される。
【００３３】
対象が抽出されると、削減量算出部１０４は、組み合せ回路２２０に信号を供給するスキャンフリップフロップ２１１〜２１４の出力信号を固定化したときに削減される消費電力を推定する（ステップＳ１０４）。消費電力削減量は、スキャンフリップフロップの出力信号１つ毎に算出される。半導体集積回路の消費電力は、単位時間当たりに論理値が“０”から“１”、もしくは“１”から“０”に変化するその回路内のノード数に比例する。そのノードは、ＡＮＤ回路、ＯＲ回路、ＮＯＴ回路等の基本ゲート回路の出力端子であると定義すると、消費電力削減効果は、固定化される基本ゲート回路の出力端子の個数を算出することで見積もることができる。
【００３４】
図５に示される回路では、スキャンフリップフロップ２１１、２１２、２１３、２１４の出力信号を１つずつ順番に論理値“０”または“１”に固定化して、組み合せ回路２２０の各基本ゲート回路の出力信号が論理値“０”または“１”に固定されるか変化するかがトレースされる。評価対象回路の中で固定化される基本ゲート回路の出力ノード数は、消費電力削減量として、スキャンフリップフロップ毎に算出される。
【００３５】
例えば、スキャンフリップフロップ２１１の出力が論理値“０”に固定化される場合、ＡＮＤ回路２２１の出力信号は論理値“０”に固定化される。ＡＮＤ回路２２１の出力信号が印加されるＮＡＮＤ回路２２２の出力信号は論理値“１”に固定化される。ＮＯＴ回路２２３の出力信号は論理値“０”に固定化され、ＮＯＴ回路２２４の出力信号は論理値“１”に固定化される。したがって、合計４個の基本ゲート回路の出力信号が固定化される。スキャンフリップフロップ２１１の出力が論理値“１”に固定化される場合は、評価対象回路の範囲で固定化される基本ゲート回路は存在しない。スキャンフリップフロップ２１２、２１３、２１４に対してもこのような処理が同様に行われる。このようにして削減量算出部１０４は、評価対象回路である組み合せ回路２２０のどの基本ゲート回路の出力信号が論理値“０”または“１”に固定化されるかをトレースし、固定化される基本ゲート回路の出力ノード数を算出する。
【００３６】
図５に示される回路の場合、スキャンフリップフロップ２１１の出力信号を“０”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路の出力ノード数は４個となる。スキャンフリップフロップ２１１の出力信号を“１”に固定化した場合、評価対象回路の中の固定化される基本ゲートの出力ノード数は０個となる。スキャンフリップフロップ２１２の出力信号を“０”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路の出力ノード数は４個となる。スキャンフリップフロップ２１２の出力信号を“１”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路のノード数は０個となる。スキャンフリップフロップ２１３の出力信号を“０”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路の出力ノード数は３個となる。スキャンフリップフロップ２１３の出力信号を“１”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路の出力ノード数は０個となる。スキャンフリップフロップ２１４の出力信号を“０”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路のノード数は１個となる。スキャンフリップフロップ２１４の出力信号を“１”に固定化した場合、評価対象回路の中の固定化される基本ゲート回路の出力ノード数は０個となる。
【００３７】
次に、算出された消費電力削減量の推定値は、評価部１０８によって評価される。評価部１０８は、まず算出された消費電力の削減量の推定値に基づいて、評価対象回路に信号を供給するスキャンフリップフロップのなかから最も消費電力削減量の推定値が大きいスキャンフリップフロップを１つ選択し、固定化情報を固定化情報蓄積部１０６に格納する（ステップＳ１０６）。
【００３８】
図５に示される回路の場合、スキャンフリップフロップ２１１の出力信号を“０”、またはスキャンフリップフロップ２１２の出力信号を“０”に固定化したときに、評価対象回路の固定化される基本ゲート回路の出力ノード数が最多の４個となり、他のスキャンフリップフロップの出力信号を固定化するより削減量が大きいと推定される。この場合、最も多いものが４個と同数であり、どちらでも任意の一方を選択してよい。ここでは、スキャンフリップフロップ２１１の出力信号を“０”に固定化する。
【００３９】
出力信号が固定化されるスキャンフリップフロップが選択されると、評価部１０８は、固定化情報蓄積部１０６に選択されたスキャンフリップフロップの出力信号の固定化情報を保持させる。固定化情報は、図８に示されるように、出力を固定化したスキャンフリップフロップの名称（ノード名など）３０１と、出力信号を論理値“０”または“１”のどちらで固定化するかという固定化値情報３０２とを含む。したがって、固定化情報蓄積部１０６には、図８に示されるように、スキャンフリップフロップ２１１を示すフリップフロップ名称３０１とその出力信号を固定化する固定化値３０２とが登録される。
【００４０】
固定化情報を登録すると、評価部１０８は、固定化情報蓄積部１０６に格納される固定化情報に基づいて、スキャンフリップフロップの出力信号を仮想的に固定してシミュレーションを行う。評価部１０８は、固定化されている基本ゲート回路のノード数に基づいて、削減できる消費電力値を算出する（ステップＳ１０８）。削減できる消費電力値が算出されると、評価部１０８は、削減できる消費電力値と目標値とを比較する（ステップＳ１０９）。比較の結果、削減できる消費電力値が目標値以上であれば（ステップＳ１０９ＹＥＳ）、評価部１０８は、消費電力値が目標値に達しているとし、回路データ修正部１１０に回路データの修正を指示する。一方、達していない場合（ステップＳ１０９−ＮＯ）、対象抽出部１０２に新たな評価対象の組み合せ回路部分を抽出するように指示する。
【００４１】
図５に示される回路の場合、スキャンフリップフロップ２１１の出力信号は論理値“０”に固定化されるため、ＡＮＤ回路２２１、２２２、ＮＯＴ回路２２３、２２４の４つの基本ゲート回路が固定化され、ＮＡＮＤ回路２２５は固定化されない。ここでは、全ての組み合せ回路を固定化する１００％削減を目標として設定するとして説明している。したがって、消費電力削減目標１００％に達していないため、ステップＳ１１２へ移行する。
【００４２】
次に、対象抽出部１０２は、固定化情報蓄積部１０６に格納されている固定化情報に基づいて、スキャンフリップフロップの出力信号を固定化することによって固定化される基本ゲート回路を評価対象回路から除外した新たな評価対象回路を生成する（ステップＳ１１２）。すなわち、対象抽出部１０２は、固定化情報蓄積部１０６に格納されている固定化情報に基づいてスキャンフリップフロップの出力信号を固定化しても、出力ノードの論理値が固定化されない基本ゲート回路を抽出し、新しい評価対象回路とする。
【００４３】
図５に示される回路の場合、当初の評価対象回路である組み合せ回路２２０から、ＡＮＤ回路２２１、２２２、ＮＯＴ回路２２３、２２４の４つの基本ゲート回路が除外され、新たな評価対象回路は、ＮＡＮＤ回路２２５のみとなる。
【００４４】
この新たに抽出された評価対象回路に対して、削減量算出部１０４は、消費電力削減量を全てのスキャンフリップフロップ毎に算出する（ステップＳ１０４）。このとき、固定化情報蓄積部１０６に保持される固定情報には、スキャンフリップフロップ２１１の出力信号を論理値“０”に固定化することが登録されているため、スキャンフリップフロップ２１１の出力信号を論理値“０”に固定化した状態で削減量が算出される。
【００４５】
評価対象回路の中で固定化される論理ゲート数は、スキャンフリップフロップ２１２の出力信号を論理値“０”に固定した場合、０個、論理値“１”に固定した場合、０個となる。スキャンフリップフロップ２１３の出力信号を論理値“０”に固定した場合、固定化される論理ゲート数は０個、論理値“１”に固定した場合、０個となる。スキャンフリップフロップ２１４の出力信号を論理値“０”に固定した場合、固定化される論理ゲート数は１個、論理値“１”に固定した場合、１個となる
次に、新たな評価対象回路に関する消費電力削減量の推定値が算出されると、評価部１０８は、算出された結果に基づいて、出力信号が固定化されていないスキャンフリップフロップのなかから最も消費電力削減量の推定値が大きいスキャンフリップフロップを１つ選択し、固定化情報を固定化情報蓄積部１０６に格納する（ステップＳ１０６）。
【００４６】
図５に示される回路の場合、スキャンフリップフロップ２１４の出力信号を論理値“０”に固定化したとき、またはスキャンフリップフロップ２１４の出力信号を論理値“１”に固定したときに、評価対象回路の固定化される基本ゲート回路の出力ノード数が最多の１個となり、他のスキャンフリップフロップの出力信号を固定化するより削減量が大きいと推定される。この場合、最も多いものが１個と同数であり、どちらでも任意の一方を選択してよい。ここでは、スキャンフリップフロップ２１４の出力信号を論理値“０”に固定化する。
【００４７】
出力信号が固定化されるスキャンフリップフロップが選択されると、評価部１０８は、固定化情報蓄積部１０６に選択されたスキャンフリップフロップの出力信号の固定化情報を追加保持させる。保持される固定情報は、図８に示されるように、１回目の固定化情報である「フリップフロップ名称＝ＦＦ２１１」と「固定化値＝０」に、２回目の固定化情報として「フリップフロップ名称＝ＦＦ２１４」と「固定化値＝０」とが加わる。
【００４８】
固定化情報を登録すると、評価部１０８は、固定化情報蓄積部１０６に格納される固定化情報に基づいて、スキャンフリップフロップの出力信号を仮想的に固定してシミュレーションを行う。評価部１０８は、固定化されている基本ゲート回路の出力ノード数に基づいて、削減できる消費電力値を算出する（ステップＳ１０８）。削減できる消費電力値が算出されると、評価部１０８は、削減できる消費電力値と目標値とを比較し（ステップＳ１０９）、消費電力値が目標まで達しているか否か判断する。
【００４９】
１回目にスキャンフリップフロップ２１１の出力信号が論理値“０”に固定され、更に２回目にスキャンフリップフロップ２１４の出力信号が論理値“０”に固定されるため、組み合せ回路２２０に含まれるＡＮＤ回路２２１、ＮＡＮＤ回路２２２、２２５ＮＯＴ回路２２３、２２４の５個の基本ゲート回路の出力ノードの全てが固定化される。したがって、評価部１０８は、消費電力削減目標１００％が達成できていると判断し、回路データ修正部１１０に回路データの修正を指示する（ステップＳ１０９−ＹＥＳ）。ここで、消費電力削減目標に達していなければ、さらに評価対象回路を絞り込み、消費電力削減目標に達していると判断されるまで、上記の一連の処理を繰り返すこととなる。
【００５０】
次に、回路データ修正部１１０は、固定化情報蓄積部１０６に格納される固定化情報に基づいて、スキャンフリップフロップの出力信号を固定化する回路を追加し、回路データを修正して処理を終了する（ステップＳ１１０）。
【００５１】
図６に、上述の処理によって、図５に示される回路から生成された回路が示される。図６に示される回路は、図５に示される回路に、ＡＮＤ回路２３１、２３２およびＮＯＴ回路２３８が追加されている。ＮＯＴ回路２３８は、スキャンイネーブル信号ＳＥを論理反転してＡＮＤ回路２３１、２３２に供給する。ＡＮＤ回路２３１は、スキャンフリップフロップ２１１の出力端子ＱとＡＮＤ回路２２１の入力端子との間に挿入される。ＡＮＤ回路２３１は、スキャンイネーブル信号ＳＥがインアクティブのときにスキャンフリップフロップ２１１の出力をＡＮＤ回路２２１に供給し、スキャンイネーブル信号ＳＥがアクティブのときに固定化値“０”をＡＮＤ回路２２１に供給する。ＡＮＤ回路２３２は、スキャンフリップフロップ２２４の出力端子ＱとＮＡＮＤ回路２２５の入力端子との間に挿入される。ＡＮＤ回路２３２は、スキャンイネーブル信号ＳＥがインアクティブのときにスキャンフリップフロップ２２４の出力をＮＡＮＤ回路２２５に供給し、スキャンイネーブル信号ＳＥがアクティブのときに固定化値“０”をＮＡＮＤ回路２２５に供給する。ＡＮＤ回路２３１、２３２を加えることにより、スキャンシフト時に、組み合せ回路２２０は固定化される。したがって、組み合せ回路２２０は無駄な消費電力を発生しない。
【００５２】
本実施の形態では、スキャンフリップフロップ出力信号を論理値“０”に固定化する例を示した。スキャンフリップフロップ出力信号を論理値“１”に固定化する場合は、制御入力としてスキャンイネーブル信号ＳＥが供給されるＯＲ回路を追加することにより可能である。また、本実施の形態では、固定化される組み合せ回路のゲート数（基本ゲート回路の出力ノード数）に基づいて消費電力削減効果を評価する例を示したが、そのノードの負荷容量の和を用いても良い。
【００５３】
図７に示されるスキャンチェーン８１０と組み合せ回路８２０とを備える回路の概念図を参照して、本発明によって上記の問題が解決される理由を説明する。
【００５４】
スキャンチェーン８１０は、スキャンフリップフロップ８１１〜８１８を含む。組み合せ回路８２０は、組み合せ回路８２１、８２３、８２４を含み、組み合せ回路８２１は組み合せ回路８２２を内包する。回路の規模は、組み合せ回路８２１＞組み合せ回路８２２＞組み合せ回路８２３＞組み合せ回路８２４とする。
【００５５】
組み合せ回路８２１は、スキャンフリップフロップ８１１の出力信号を固定化すると状態を変化させない回路である。組み合せ回路８２２は、スキャンフリップフロップ８１２の出力信号を固定化すると状態を変化させない回路である。組み合せ回路８２３は、スキャンフリップフロップ８１３の出力信号を固定化すると状態を変化させない回路である。組み合せ回路８２４は、スキャンフリップフロップ８１４の出力信号を固定化すると状態を変化させない回路である。組み合せ回路８２１、８２３、８２４は、互いに重なる回路はない。組み合せ回路８２２は、組み合せ回路８２１に包含されているため、スキャンフリップフロップ８１２の出力信号を固定化しても、スキャンフリップフロップ８１１の出力信号を固定化しても状態を変化させない。
【００５６】
スキャンフリップフロップ８１１〜８１８のそれぞれは、スキャンシフト動作中に入力信号を受けるための入力端子ＤＴと、ファンクション動作中、もしくはスキャンテストのキャプチャー動作中に入力信号を受けるための入力端子Ｄと、スキャンイネーブル信号ＳＥを受けるための入力端子ＮＴと、クロック信号入力用の入力端子ＣＫと、データ出力端子Ｑとを備える。スキャンイネーブル信号ＳＥは、論理値“１”によってスキャンシフト動作中を示し、論理値“０”によってスキャンテストのキャプチャー動作中を示す。
【００５７】
これらスキャンフリップフロップ８１１〜８１８は、直列に接続されていてスキャンチェーン８１０を形成している。すなわち、スキャンフリップフロップ８１１〜８１７の出力端子Ｑは、次段のスキャンフリップフロップ８１２〜８１８の入力端子ＤＴに接続される。また、スキャンフリップフロップ８１８の出力端子Ｑは、スキャンチェーン８１０のスキャンアウト信号ＳＯを出力する。また、スキャンフリップフロップ８１１の入力端子ＤＴは、スキャンチェーン８１０のスキャンイン信号ＳＩを取り込む。また、スキャンフリップフロップ８１１〜８１８の入力端子ＮＴは、スキャンイネーブル信号ＳＥを取り込む。また、スキャンフリップフロップ８１１、８１２、８１３、Ｆ８１４の出力端子Ｑは、組み合せ回路８２１、８２２、８２３、８２４に接続される。また、スキャンフリップフロップ８１５、８１６、８１７、８１８の入力端子Ｄは、組み合せ回路８２０に接続される。
【００５８】
本発明では、回路規模の関係から１回目の選択において、スキャンフリップフロップ８１１が最も消費電力削減効果が高いと評価され、出力が固定化されるスキャンフリップフロップに選択される。したがって、組み合せ回路８２１が固定化される。このとき、組み合せ回路８２１に包含される組み合せ回路８２２も固定化される。新たな評価対象回路を抽出するときに、組み合せ回路８２２を包含する組み合せ回路８２１は除外され、評価対象回路は組み合せ回路８２３、８２４となる。したがって、２回目の選択において、消費電力削減効果が評価され、スキャンフリップフロップ８１３が選択されることになり、組み合せ回路８２２が選択されることはない。
【００５９】
よって上述のように、本発明は消費電力削減に寄与しないスキャンフリップフロップを選択することなく、消費電力削減効果が高い順にスキャンフリップフロップを選択することが可能となる。上記では、コンピュータシステムによって処理が行われるとしたが、一部処理あるいは全ての処理は専用のハードウェアにより実施されてもよい。
【００６０】
動作が固定された回路部分を評価対象から除外して評価対象回路を更新するため、消費電力削減に寄与しないスキャンフリップフロップを選択することなく最も消費電力削減効果が高い順にスキャンフリップフロップを選択できる。したがって、本発明によれば、スキャンシフト時の消費電力削減を実現する際に回路規模の増加を少なくすることができる。
【００６１】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００６２】
１０  コンピュータ装置
１２  ネットワーク
１４  サーバ
１６  記録媒体
１００  回路データ生成部
１０２  対象抽出部
１０４  削減量算出部
１０６  固定化情報蓄積部
１０８  評価部
１１０  回路データ修正部
２１０  スキャンチェーン
２１１〜２１５  スキャンフリップフロップ
２２０  組み合せ回路
２２１、２３１、２３２  ＡＮＤ回路
２２２、２２５  ＮＡＮＤ回路
２２３、２２４、２３８  ＮＯＴ回路
３０１  フリップフロップ名称
３０２  固定化値
８１０  スキャンチェーン
８１１〜８１５  スキャンフリップフロップ
８２０〜８２４  組み合せ回路
【図１】
2012022566.tif 000003
【図２】
2012022566.tif 000004
【図３】
2012022566.tif 000005
【図４】
2012022566.tif 000006
【図５】
2012022566.tif 000007
【図６】
2012022566.tif 000008
【図７】
2012022566.tif 000009
【図８】
2012022566.tif 000010