(57)【要約】【課題】スキャンフリップフロップ回路の所定の論理値になる確率を考慮することで、消費電力の削減を図る。【解決手段】スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を解析する解析処理（Ｓ３１）と、この解析処理の結果に基づいて、キャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインを構築するスキャンチェイン構築処理（Ｓ３２）とを演算処理部（３）に実行させる。スキャン動作時の遷移確率が低下されたスキャンチェインが形成されることによって、スキャンテスト時の消費電力の低減を図ることができる。【選択図】図１
2013025338.tif 000002
【特許請求の範囲】
【請求項１】
スキャン動作とキャプチャ動作との切り替えが可能なスキャンフリップフロップ回路を含む半導体装置の設計方法であって、
上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を解析する解析処理と、
上記解析処理の結果に基づいて、キャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインを構築するスキャンチェイン構築処理と、を演算処理部に実行させることを特徴とする、半導体装置の設計方法。
【請求項２】
上記スキャンチェイン構築処理を上記演算処理部に実行させた後に、上記スキャンチェインを構成する各スキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスク可能なマスクコントロールロジックを付加する固定値マスク機能付加処理を上記演算処理部に実行させる、請求項１記載の半導体装置の設計方法。
【請求項３】
上記圧縮スキャン付加処理を上記演算処理部に実行させた後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理を上記演算処理部に実行させる、請求項２記載の半導体装置の設計方法。
【請求項４】
上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を制御可能なテストポイント回路を挿入するための処理を上記演算処理部に実行させる、請求項３記載の半導体装置の設計方法。
【請求項５】
上記スキャンチェイン構築処理を上記演算処理部に実行させた後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理を上記演算処理部に実行させる、請求項１記載の半導体装置の設計方法。
【請求項６】
スキャン動作とキャプチャ動作との切り替えが可能なスキャンフリップフロップ回路を含む半導体装置の設計が可能な設計装置であって、
予め設定されたプログラムに従って所定の処理を実行可能な演算処理部を備え、
上記演算処理部は、上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を解析する解析処理と、
上記解析処理の結果に基づいて、キャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインを構築するスキャンチェイン構築処理と、を実行することを特徴とする設計装置。
【請求項７】
上記演算処理部は、上記スキャンチェイン構築処理を実行後に、上記スキャンチェインを構成する各スキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスク可能なマスクコントロールロジックを付加する固定値マスク機能付加処理を実行する請求項６記載の設計装置。
【請求項８】
上記演算処理部は、上記圧縮スキャン付加処理を実行後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理を実行する請求項７記載の設計装置。
【請求項９】
上記演算処理部は、上記スキャンチェイン構築処理を実行後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理を実行する請求項６記載の設計装置。
【請求項１０】
スキャン動作とキャプチャ動作との切り替えが可能なスキャンフリップフロップ回路を含む半導体装置であって、
上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインが構築されたことを特徴とする半導体装置。
【請求項１１】
キャプチャ動作後にとる確率の高いほうの論理値にマスク可能なマスクコントロールロジックを含む請求項１０記載の半導体装置。
【請求項１２】
キャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路を含む請求項１１記載の半導体装置。
【請求項１３】
上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を制御可能なテストポイント回路を含む請求項１２記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン動作とキャプチャ動作との切り替えが可能なスキャンフリップフロップ回路を含む半導体装置の設計方法、設計装置、及び半導体装置に関する。
【背景技術】
【０００２】
半導体装置の一例とされる半導体集積回路（ＬＳＩ）のスキャンテストを可能にするには、回路中のフリップフロップ回路（「ＦＦ」という）をスキャンＦＦと呼ばれるマルチプレクサ（「ＭＵＸ」という）付のＦＦに置換し、テスト入力と通常動作の入力とを切り替えれるようにする。そして、スキャンＦＦを、外部入出力から制御可能なシフトレジスタ（これを「スキャンチェイン」と呼ぶ）として動作するように構成する。スキャンチェインをシフト動作（これを「スキャンシフト動作」と呼ぶ）させることによって、任意のテストパタンを各ＦＦに設定することができる。ＭＵＸの制御信号の論理を切り替えて通常動作からの入力を取り込む（これを「キャプチャ動作」と呼ぶ）。キャプチャ動作で取得した値を再びシフト動作させて、応答を出力する（「アンロード」という）と同時に次のテストパタンの印加（「ロード」という）を行う。このようにしてスキャンテストが行われる。スキャン動作時に印加されるテストパタンは、ほぼランダムに近い状態であるため、スキャン動作中のＦＦは約５０％の確率で値が遷移する。この５０％という遷移確率は、通常動作時よりも遥かに高い。また、スキャン動作時においては、全てのＦＦを動作させる必要がある。そのため、スキャンテスト動作時はＦＦの値の遷移の影響を受けて、全体における論理遷移を生ずる回路の割合（これを「活性化率」という）が高くなり、通常動作時よりも多くの電力を消費する傾向にある。
【０００３】
ＦＦにおいて、出力値と入力値のＥＸ−ＯＲ（エクスクルージブオア）又はＥＸ−ＮＯＲ（エクスクルージブノア）と、クロック入力とのＮＡＮＤ（ナンド）論理又はＡＮＤ（アンド）論理をとり、同じ値が連続して印加された際にクロックマスクを行うことで電力を削減する技術が知られている（例えば特許文献１−５参照）。
【０００４】
また、Ｄ型ＦＦの1段目のラッチを現在の値と入力値のＥＸ−ＮＯＲの出力とクロックとのＯＲ論理をとり、２段目のラッチの入力値と出力値のＥＸ−ＯＲの出力とクロックとのＡＮＤ論理をとり、Ｄ端子（入力端子）に同じ値が連続して入力されたときにクロックマスクを行うことで消費電力を削減する技術が知られている（例えば特許文献５）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１−２８６６０９号公報
【特許文献２】特開平１０−４１７８９号公報
【特許文献３】特開平１０−２９０１４３号公報
【特許文献４】特開２００７−２３５５０１号公報
【特許文献５】特開２００４−５６６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１−４によれば、ホールドタイミングは正相ラッチに近く、クロックがローレベルの期間以外は値の変動が許されない。クロックがハイレベルの期間にデータ端子の遷移が発生するのは禁止される。クロックがハイレベルの期間にデータ端子にグリッチ（遷移）が発生した場合、その遷移がＥＸ−ＯＲゲートを通り内部ＦＦのクロック入力端子まで到達する。その結果、データ端子に変動が発生している状態で、グリッチの載ったクロックがＦＦに入力されるため、内部ＦＦの値は不定になる。例えば図２４に示される回路構成においては、図２５に示されるように、ハザードの影響で、出力論理が不定になることが考えられる。また、回路構成において、論理値が１（又は０）になる確率については考慮されていない。
【０００７】
特許文献５によれば、入力端子に同じ値が連続して印加されたときにクロックマスクを行うことで消費電力を削減するようにしており、この場合には、クロックがハイレベル期間に入力端子にデータの遷移が発生しても出力は不定値とならない。
【０００８】
しかし、特許文献５によれば、ＥＸ−ＯＲゲートとＥＸ−ＮＯＲゲートの両方を使うことで面積オーバーヘッドが大きくなる。また、特許文献５においては、論理値０，１のどちらが連続して印加されてもマスクが行われるようになっており、論理値が１（又は０）になる確率については考慮されていない。
【０００９】
本発明の目的は、スキャンフリップフロップ回路の所定の論理値になる確率を考慮することで、消費電力の削減を図るための技術を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
すなわち、スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を解析する解析処理と、この解析処理の結果に基づいて、キャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインを構築するスキャンチェイン構築処理とを演算処理部に実行させる。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、スキャンフリップフロップ回路の所定の論理値になる確率を考慮することで、消費電力の削減を図るための技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明にかかる設計装置の構成例ブロック図である。
【図２】図１に示される設計装置における主要処理のフローチャートである。
【図３】各論理ゲートの入力側の1になる確率に対応する出力側の論理値1になる確率の説明図である。
【図４】ＦＦを含む半導体装置における主要部の論理値1になる確率の説明図である。
【図５】図１に示される設計装置における主要処理のフローチャートである。
【図６】図１に示される設計装置における主要処理のフローチャートである。
【図７】図１に示される設計装置における主要処理のフローチャートである。
【図８】図１に示される設計装置における主要処理のフローチャートである。
【図９】論理値０が連続して印加されたときのみ電力削減可能なＦＦの構成例回路図である。
【図１０】論理値１が連続して印加されたときのみ電力削減可能なＦＦの構成例回路図である。
【図１１】ホールド違反対策なしのスキャンＦＦの構成例回路図である。
【図１２】図１１に示されるスキャンＦＦにおける主要部の動作タイミング図である。
【図１３】キャプチャ動作時のホールド違反対策を行った電力削減スキャンＦＦの構成例回路図である。
【図１４】図１３に示される電力削減スキャンＦＦにおける主要部の動作タイミング図である。
【図１５】シフト動作時とキャプチャ動作時のホールド違反対策を行った論理値０の値が連続して印加したときのみ電力削減可能なスキャンＦＦの構成例回路図である。
【図１６】図１５に示されるスキャンＦＦにおける主要部の動作タイミング図である。
【図１７】本発明にかかる半導体装置の構成例回路図である。
【図１８】本発明にかかる半導体装置の別の構成例回路図である。
【図１９】本発明にかかる半導体装置の別の構成例回路図である。
【図２０】図１に示される設計装置における主要処理の別のフローチャートである。
【図２１】図１に示される設計装置における主要処理の別のフローチャートである。
【図２２】図１に示される設計装置における主要処理の別のフローチャートである。
【図２３】本発明にかかる半導体装置の別の構成例回路図である。
【図２４】ハザードの影響で、出力論理が不定になるＦＦの構成例回路図である。
【図２５】図２４に示されるＦＦにおける主要部の動作タイミング図である。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕本発明の代表的な実施の形態に係る半導体装置の設計方法は、上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を解析する解析処理（Ｓ３１）と、上記解析処理の結果に基づいて、キャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインを構築するスキャンチェイン構築処理（Ｓ３２）と、を演算処理部（３）に実行させる。
【００１８】
スキャン動作時においては、全てのＦＦを動作させる必要がある。そのため、スキャンテスト動作時はＦＦの値の遷移の影響を受けて、論理回路の活性化率が高くなり、通常動作時よりも多くの電力を消費する傾向にある。逆に、スキャン動作時において論理が遷移する確率（これを「遷移確率」という）を低く抑えることができれば、それだけ電力消費を抑えることができる。本発明の代表的な実施の形態に係る半導体装置の設計方法によれば、上記解析処理の結果に基づいて、所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインが構築される。所定の論理状態になる確率とは、論理値１（又は０）になる確率を意味する。
【００１９】
ここで、例えば論理値１になる確率が５０％のスキャンフリップフロップ回路による第１スキャンチェインと、論理値１になる確率が５０％未満のスキャンフリップフロップ回路による第２スキャンチェインと、論理値１になる確率が５０％を越えるスキャンフリップフロップ回路による第３スキャンチェインとが構築される場合を考える。尚、論理値１になる確率が５０％未満のスキャンフリップフロップ回路による第２スキャンチェインは、論理値０になる確率が５０％を越えるスキャンフリップフロップ回路によるスキャンチェインに相当する。
【００２０】
第２スキャンチェインや第３スキャンチェインは、第１スキャンチェインに比べて、スキャン動作時の遷移確率が低くなる。このため、第２スキャンチェインや第３スキャンチェインでの電力消費は、第１スキャンチェインでの電力消費に比べて少なくなる。
【００２１】
このように所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインが構築されることにより、スキャン動作時の遷移確率が低下されたスキャンチェインが形成されることから、スキャンテスト時の消費電力の低減を図ることができる。
【００２２】
〔２〕上記〔１〕において、上記スキャンチェイン構築処理を上記演算処理部に実行させた後に、上記スキャンチェインを構成する各スキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスク可能なマスクコントロールロジックを付加する固定値マスク機能付加処理（Ｓ３３）を上記演算処理部に実行させることができる。各チェインに含まれるＦＦのキャプチャ動作後にとる確率の高い値に対応した固定値マスク機能を付加することによって、各スキャンチェインのＦＦの値は、テストパタンのシフトイン（ロード）とキャプチャ値のシフトアウト（アンロード）に渡って同じ値をとる確率が高くなる。これにより、スキャンテスト動作時の遷移確率を低下させることができるので、スキャンテスト時の消費電力の低減を図ることができる。
【００２３】
〔３〕上記〔２〕において、上記圧縮スキャン付加処理を上記演算処理部に実行させた後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理（Ｓ３４）を上記演算処理部に実行させることができる。電力削減可能なスキャンフリップフロップ回路に置換されることは、電力削減効果を図る上で有効とされる。また、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路は、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率が論理値１又は０に制限される。そのような論理構成は、論理値０，１のどちらが連続して印加されてもマスクが行われるようにＥＸ−ＯＲゲートやＥＸ−ＮＯＲゲートを使う場合に比べて簡素化されるので、面積オーバヘッドの低減を図ることができる。
【００２４】
〔４〕上記〔３〕において、上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を制御可能なテストポイント回路を挿入するための処理（Ｓ４０）を上記演算処理部に実行させることができる。テストポイント回路が挿入されることにより、ＦＦが論理値1になる確率を変更することができる。
【００２５】
〔５〕上記〔１〕において、上記スキャンチェイン構築処理を上記演算処理部に実行させた後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理（Ｓ３４）を上記演算処理部に実行させることができる。
【００２６】
〔６〕本発明の代表的な実施の形態に係る半導体装置の設計装置（１）は、予め設定されたプログラムに従って所定の処理を実行可能な演算処理部（３）を備える。上記演算処理部は、上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を解析する解析処理（Ｓ３１）と、上記解析処理の結果に基づいて、キャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインを構築するスキャンチェイン構築処理（Ｓ３２）とを実行する。上記のように所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインが構築されることにより、スキャン動作時の遷移確率が低下されたスキャンチェインが形成されることから、スキャンテスト時の消費電力の低減を図ることができる。
【００２７】
〔７〕上記〔６〕において、上記演算処理部は、上記スキャンチェイン構築処理を実行後に、上記スキャンチェインを構成する各スキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスク可能なマスクコントロールロジック（１７５）を付加する固定値マスク機能付加処理を実行する。各チェインに含まれるＦＦのキャプチャ動作後にとる確率の高い値に対応した固定値マスク機能を付加することによって、各スキャンチェインのＦＦの値は、テストパタンのシフトイン（ロード）とキャプチャ値のシフトアウト（アンロード）に渡って同じ値をとる確率が高くなる。これにより、スキャンテスト動作時の遷移確率を低下させることができるので、スキャンテスト時の消費電力の低減を図ることができる。
【００２８】
〔８〕上記〔７〕において、上記演算処理部は、上記圧縮スキャン付加処理を実行後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための置換処理を実行する。電力削減可能なスキャンフリップフロップ回路に置換されることは、電力削減効果を図る上で有効とされる。また、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路は、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率が論理値１又は０に制限される。そのような論理構成は、論理値０，１のどちらが連続して印加されてもマスクが行われるようにＥＸ−ＯＲゲートやＥＸ−ＮＯＲゲートを使う場合に比べて簡素化されるので、面積オーバヘッドの低減を図ることができる。
【００２９】
〔９〕上記〔６〕において、上記演算処理部は、上記スキャンチェイン構築処理を実行後に、上記スキャンチェインを構成するスキャンフリップフロップ回路の上記所定の論理状態になる確率の情報に基づいて、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路（１８３，１８４）に置換するための置換処理を実行する。電力削減可能なスキャンフリップフロップ回路に置換することは、電力削減効果を図る上で有効とされる。
【００３０】
〔１０〕本発明の代表的な実施の形態に係る半導体装置（１７０）は、スキャン動作とキャプチャ動作との切り替えが可能なスキャンフリップフロップ回路を含む。このとき、上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェイン（１７１，１７２）が構築される。上記のように所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインが構築されることにより、スキャン動作時の遷移確率が低下されたスキャンチェインが形成されることから、スキャンテスト時の消費電力の低減を図ることができる。
【００３１】
〔１１〕上記〔１０〕において、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスク可能なマスクコントロールロジック（１７５）を設けることができる。各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスクされることにより、各スキャンチェインのＦＦの値は、テストパタンのシフトイン（ロード）とキャプチャ値のシフトアウト（アンロード）に渡って同じ値をとる確率が高くなる。これにより、スキャンテスト動作時の遷移確率を低下させることができるので、スキャンテスト時の消費電力の低減を図ることができる。
【００３２】
〔１２〕上記〔１１〕において、当該スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路（１８３，１８４）を設けることができる。電力削減可能なスキャンフリップフロップ回路が設けられることは、電力削減効果を図る上で有効とされる。
【００３３】
〔１３〕上記〔１２〕において、上記スキャンフリップフロップ回路のキャプチャ動作後の出力値が所定の論理状態になる確率を制御可能なテストポイント回路（２３１〜２３３，２３７〜２３９）を設けることができる。テストポイント回路が挿入されることにより、ＦＦが論理値1になる確率を変更することができる。
【００３４】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３５】
《実施の形態１》
図１には、本発明にかかる設計装置の構成例が示される。
【００３６】
図１に示される設計装置１は、低電力スキャンテストが可能なネットリストを設計することができる。この設計装置１は、制御入力部２、表示出力部６、入出力Ｉ／Ｆ（interface；インタフェース）部、演算処理部３、記憶部４を含む。制御入力部２は、オペレータが演算処理部２及び記憶部４を制御するための装置の総称で、キーボードやマウス等が挙げられる。表示出力部６は、オペレータが演算処理部３及び記憶部４の動作を確認するためのもので、液晶ディスプレイ等が挙げられる。演算処理部２は、半導体設計に必要なプログラムを実行することにより、ＬＳＩの設計に必要な各機能プロセスを実行する機能を有するＣＰＵ（中央処理装置）と、その周辺デバイスが含まれる。記憶部４は、ＬＳＩの設計に使用されるライブラリやネットリストの情報を保存するハードディスクや半導体メモリなどの記憶媒体とされる。演算処理部２では、所定のプログラムが実行されることにより、ＦＦの論理値1になる確率の解析処理Ｓ３１、スキャンＦＦ置換及びスキャンチェイン構築処理Ｓ３２、圧縮スキャン及び固定値マスク付加処理Ｓ３３、電力削減スキャンＦＦ置換処理Ｓ３４などの各処理が行われる。ＦＦの論理値1になる確率の解析処理Ｓ３１では、記憶部４１内のネットリスト４１と機能ライブラリ４２とが参照されて、スキャンフリップフロップ回路のキャプチャ動作後の出力値が例えば論理値１などの所定の論理状態になる確率が解析される。この解析結果は、ＦＦの論理値１になる確率リスト４３として記憶部４１に格納される。スキャンＦＦ置換及びスキャンチェイン構築処理Ｓ３２では、記憶部４１内のネットリスト４１、機能ライブラリ４２、及びＦＦの論理値１になる確率リスト４３が参照されて、スキャンＦＦへの置換や、論理値１になる確率が同程度の複数のスキャンＦＦ毎にスキャンチェインの構築が行われる。スキャンチェインの構築結果は、チェイン構築済ネットリスト４４として記憶部４に格納される。圧縮スキャン及び固定値マスク付加処理Ｓ３３では、記憶部４１内のネットリスト４１、機能ライブラリ４２、及びＦＦの論理値１になる確率リスト４３が参照されて、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値にマスク可能な圧縮スキャン回路が付加される。圧縮スキャン及び固定値マスク付加処理Ｓ３３の結果は、固定値マスク付加済ネットリスト４５として記憶部４に格納される。電力削減スキャンＦＦ置換処理Ｓ３４では、記憶部４１内のネットリスト４１、機能ライブラリ４２、及びＦＦの論理値１になる確率リスト４３が参照されて、スキャンフリップフロップ回路を、各スキャンチェインに含まれるスキャンフリップフロップ回路のキャプチャ動作後にとる確率の高いほうの論理値が連続して入力されたときにクロックマスクが有効とされることで電力削減可能なスキャンフリップフロップ回路に置換するための処理が行われる。この置換処理結果は、電力削減スキャンＦＦ置換ネットリスト４６として記憶部４に格納される。
【００３７】
次に、上記各処理の詳細について説明する。
【００３８】
図２には、ＦＦの論理値1になる確率の解析処理Ｓ３１の流れが示される。
【００３９】
各ＦＦがキャプチャ動作後に論理値1になる確率が解析される。この解析結果はスキャンチェイン構築時に利用される。各ＦＦの論理値1になる確率の情報は、ネットリスト４１、機能ライブラリ４２を入力データとし（Ｓ１）、入力されたネットリスト４１からＦＦを識別し（Ｓ２）、各パスの起点で論理値1になる確率を１／２に設定し（Ｓ３）、各パスの終点で論理値1になる確率を算出する（Ｓ４）、という手順で作成する。
【００４０】
各論理ゲートの入力端子での論理値1になる確率が決まれば、論理に応じてそのゲートの出力端子での論理値1になる確率を求めることができる。スキャンテスト時に各ＦＦに設定される値はほぼランダムであるため、スキャンシフト完了後に各ＦＦの出力に設定される値が1になる確率は１／２とみなすことができる。また、オープンパスに関しては、１／２の確率で論理値1が設定されるものとする。そこで、識別したネットリストのパスの起点（ＦＦのデータ出力端子及びオープンパスの起点）が1になる確率を１／２として設定し、論理回路を経由するパスの終点（ＦＦの入力端子）における1になる確率を算出する。パスの終点（ＦＦのデータ入力端子）における1になる確率は、キャプチャ動作後に各ＦＦの値が1になる確率となる。
【００４１】
図３に各論理ゲートの入力側の1になる確率に対応する出力側の論理値1になる確率が示される。
【００４２】
２入力ＡＮＤゲート３１では、各入力端子での論理値1になる確率がＡとＢであれば、その出力端子が1になる確率は、２つの入力端子が同時に1にならなければならないので「Ａ＊Ｂ」になる。「＊」は乗算を意味する。同様に２入力ＯＲゲート３２では、各入力端子での論理値1になる確率がＡ，Ｂのとき、出力端子での論理値１になる確率は、「Ａ＋Ｂ−Ａ＊Ｂ」になる。ＮＯＴゲート３３の場合は、値が反転するため、入力端子での論理値1になる確率がＡだった場合、出力端子での論理値１になる確率は、「１−Ａ」になる。ＥＸ−ＯＲゲート３４では、各入力端子での論理値1になる確率がＡ，Ｂのとき、出力端子での論理値１になる確率は、「Ａ＊（１−Ｂ）＋（１−Ａ）＊Ｂ」になる。
【００４３】
図４には、図３に示される確率の計算式に基いて、各ＦＦの出力端子での論理値1になる確率を１／２とし、ＦＦの入力端子での論理値1になる確率を算出した例が示される。
【００４４】
ＦＦ１４１，１４２から直接到達するＡＮＤゲート１４５の出力が論理値1になる確率は１／４、ＦＦ１４３，１４４から直接到達するＯＲゲート１４６の出力（ＦＦ１４９の入力）が論理値１になる確率は３／４になる。それらの影響を受けて、論理値1になる確率が１／４，３／４の信号線に結合された入力端子を有するＡＮＤゲート１４７の出力（ＦＦ１４８の入力）が論理値1になる確率は３／１６になる。
【００４５】
図５には、スキャンＦＦ置換及びスキャンチェイン構築処理Ｓ３２の流れが示される。
【００４６】
ネットリスト４１、機能ライブラリ４２、及びＦＦの論理値１になる確率リスト４３が演算処理部３に入力される（Ｓ６）。そしてネットリスト４１からスキャン対象ＦＦが識別され（Ｓ７）、スキャン対象ＦＦの論理値１になる確率情報を取得する（Ｓ８）。論理値1になる確率が同程度のＦＦの集合でスキャンチェインを構築し（Ｓ９）、スキャンチェイン構築済ネットリスト４４を出力する（Ｓ１０）。
【００４７】
図６には、圧縮スキャン及び固定値マスク付加処理Ｓ３３の流れが示される。
【００４８】
この圧縮スキャン及び固定値マスク付加処理Ｓ３３では、ＦＦの論理値1になる確率情報を利用して、各スキャンチェインに含まれるＦＦがキャプチャ動作後にとる確率の高い値に対応する０又は１の固定値マスクを可能にする固定値マスク回路、及び圧縮スキャンを行うための圧縮スキャン回路が付加される。固定値マスク付加済ネットリストの生成は、チェイン構築済ネットリスト４４と機能ライブラリ４２とＦＦの論理値1になる確率リスト４３の情報を入力とし、次に示す手順で行われる。
【００４９】
先ず、入力されたネットリスト４１からスキャンチェインに含まれるスキャンＦＦが識別され、そのスキャンＦＦに対応する、論理値1になる確率が関連づけられる（Ｓ１２）。そして、スキャンテスト時のロードに起因する活性化率が低くなるように、各スキャンチェインに対して、そのスキャンチェインを構成するＦＦがキャプチャ動作後にとる確率の高い値を固定値マスクでのマスク値とする（Ｓ１３）。例えば、論理値1になる確率の高いスキャンＦＦを多く含むスキャンチェインでは、固定値マスクの値を１とし、論理値０になる確率の高いスキャンＦＦを多く含むスキャンチェインでは、固定値マスクの値を０にする。そして、各スキャンチェインに対して、固定値マスク回路と圧縮スキャン回路を付加し（Ｓ１４）、固定値マスク付加済ネットリスト４５を出力する。ここで、圧縮スキャン回路には、スキャンチェインに供給されるテストパタンを生成するためのパタン生成器や、スキャンチェインから出力されたテストパタンデータを圧縮して出力するためのパタン圧縮器が含まれる。また、固定値マスク回路には、上記パタン生成器の出力に代えて、所定のマスク値（論理値１又は０）をスキャンチェインに供給することによって、スキャンチェインから所定のマスク値を出力させるためのマスクコントロールロジックが含まれる。
【００５０】
図７には、電力削減スキャンＦＦ置換処理Ｓ３４の流れが示される。
【００５１】
先ず、固定値マスク付加済ネットリスト４５と機能ライブラリ４２とＦＦの論理値1になる確率リスト４３が演算処理部３に入力される（Ｓ１６）。尚、ここで想定する入力ネットリストは、スキャンチェイン構築の有無、固定値マスク機能の付加の有無は問わない。各ＦＦの論理値1になる確率の情報より電力削減スキャンＦＦへの置換を行うため、どの段階のネットリストでも電力スキャンＦＦへの置換は可能となる。電力スキャンＦＦ置換済スキャン化ネットリストは、ネットリストと機能ライブラリとＦＦの論理値1になる確率の情報を入力として次の手順で行われる。
【００５２】
入力ネットリストより、スキャン対象ＦＦが識別される（Ｓ１７）。入力ネットリストがスキャンチェイン構築済であった場合は、チェイントレースによってスキャンＦＦが識別される。識別した各スキャン対象ＦＦに対して、各ＦＦが論理値1になる確率の情報を元に、ＦＦがとる確率の高い値に対応した0又は1のどちらかの値が連続して印加されたときのみ電力削減可能なスキャンＦＦで置換される（Ｓ１８）。そして、電力削減スキャンＦＦ置換ネットリストが出力される（Ｓ１９）。
【００５３】
《実施の形態２》
図８には、電力削減スキャンＦＦ置換処理Ｓ３４の別の流れが示される。
【００５４】
図８に示される電力削減スキャンＦＦ置換処理Ｓ３４では、固定値マスク機能の構成から、固定値マスクで設定する値に対応する0又は1のどちらかが連続して印加されたときのみ電力削減可能なスキャンＦＦで置換するようにしている。
【００５５】
先ず、固定値マスク付加済ネットリスト４５と機能ライブラリ４２が演算処理部３に入力される（Ｓ２０）。各スキャンチェインに対する固定値マスクの値から置換対象とする電力削減スキャンＦＦの種類が解析される（Ｓ１７）。つまり、論理値０が連続して印加されたときのみ電力削減可能なスキャンＦＦであるか、又は論理値1が連続して印加されたときのみ電力削減可能なスキャンＦＦであるかが判別される。そのため、入力情報として、ＦＦの論理値1になる確率リスト４３は不要とされる。そして、固定値マスクの値に対応する値が連続して印加されたときのみ電力削減可能なスキャンＦＦで置換され（Ｓ２３）、電力削減スキャンＦＦ置換ネットリスト４６が出力される（Ｓ２４）。
【００５６】
《実施の形態３》
図９には、論理値０が連続して印加されたときのみ電力削減可能なＦＦの回路例が示される。
【００５７】
図９に示されるＦＦ９０は、内部ＦＦ９３の前段に、ＯＲゲート９１及びＡＮＤゲート９２が配置されて成る。ＯＲゲート９１では、内部ＦＦ９３におけるデータ出力端子の論理値と、内部ＦＦ９３におけるデータ入力端子の論理値とのＯＲ論理がとられる。ＡＮＤゲート９２では、ＯＲゲート９１の出力とクロックｃｌｋとのＡＮＤ論理がとられる。ＡＮＤゲート９２の出力が内部ＦＦ９３のクロック入力端子に伝達される。これにより、現在の出力ｑが論理値０で、入力が論理値０のとき（つまり、論理値０が連続して印加されたとき）にのみＯＲゲート９１の出力値が論理値０となり、クロックマスクが有効となる。換言すれば、クロックｃｌｋが入力されているにもかかわらず、出力ｑが論理値０のままであり、論理変化を生じない。このため、論理値０が連続して印加された場合の当該ＦＦ９０での電力消費を抑えることができる。
【００５８】
図１０には、論理値１が連続して印加されたときのみ電力削減可能なＦＦの回路例が示される。
【００５９】
図１０に示されるＦＦ１００は、内部ＦＦ１０３の前段に、ＮＡＮＤゲート１０１及びＡＮＤゲート１０２が配置されて成る。ＮＡＮＤゲート１０１では、内部ＦＦ１０３におけるデータ出力端子の論理値と、内部ＦＦ９３におけるデータ入力端子の論理値とのＮＡＮＤ論理がとられる。ＡＮＤゲート１０２では、ＮＡＮＤゲート１０１の出力とクロックｃｌｋとのＡＮＤ論理がとられる。ＡＮＤゲート１０２の出力が内部ＦＦ１０３のクロック入力端子に伝達される。これにより、現在の出力ｑが論理値１で、入力が論理値１のとき（つまり、論理値１が連続して印加されたとき）にのみＮＡＮＤゲート１０１の出力値が論理値１となり、クロックマスクが有効となる。換言すれば、クロックｃｌｋが入力されているにもかかわらず、出力ｑが論理値１のままであり、論理変化を生じない。このため、論理値１が連続して印加された場合の当該ＦＦ１００での電力消費を抑えることができる。
【００６０】
一般的にＦＦはクロックが入力されただけで電力を消費する。このため、現在の値と入力値を比較し、同じだった場合はＦＦへのクロック入力をマスクすることで電力削減が可能となる。ここで従来技術によれば、電力削減ＦＦとしてＥX−ＯＲゲートを用いることで、論理値０／１のどちらの値が連続して印加されてもクロックマスクが行われて電力削減が行われるようになっている。ＥX−ＯＲゲートは、ＯＲゲートや、ＮＡＮＤゲートに比べて構成素子数が多くなる。このため、図９や図１０に示される構成によれば、ＥX−ＯＲの代わりに、ＯＲゲート９１や、ＮＡＮＤゲート１０１を採用しているため、ＥX−ＯＲを用いる場合に比べて、面積オーバーヘッドを低減することができる。図１に示される設計装置１で設計される半導体装置においては、所定の論理状態になる確率が同程度の複数のスキャンフリップフロップ回路毎にスキャンチェインが構築されるため、スキャンテスト動作時の各ＦＦの値は論理値０又は１のどちらかの値になる確率が高くなる。そのため、連続して印加される論理値に応じて、図９又は図１０の構成が採用されることにより、面積オーバーヘッドの低減、及び電力削減を達成することができる。
【００６１】
《実施の形態４》
次に、電力削減スキャンＦＦのホールドタイミング対策について説明する。
【００６２】
電力削減スキャンＦＦでは、ホールドタイミング対策を無視できない。シフト動作時、キャプチャ動作時ともに、クロックｃｌｋがローレベル期間中の変化しか許されず、クロックｃｌｋがハイレベルの期間に内部ＦＦの入力値に変動があると、出力値が不定になる。
【００６３】
図１１には、ホールド違反対策なしのスキャンＦＦが示される。このスキャンＦＦ１１０は、マルチプレクサ１１１、ＯＲゲート１１２、ＡＮＤゲート１１３、及び内部ＦＦ１１４を含み、論理値０が連続して印加されたときのみ電力削減可能とされる。スキャン動作とキャプチャ動作との切り替えは、マルチプレクサ１１１に入力されるスキャンイネーブル信号ｓｅｎによって行われる。ノードｆｆｉｎの論理値が０で、スキャンアウト端子ｓｏの論理値が０のとき、内部ＦＦ１１４へのクロック入力（ノードｎ２）はマスクされ、出力されない。内部ＦＦ１１４への入力値（ノードｆｆｉｎの値）が、クロックｃｌｋがローレベルの期間に変化した場合は、不正な出力は発生せず正常に動作する。現在の値が０で、且つクロックｃｌｋがハイベルの期間にノードｆｆｉｎの値が変化すると、その影響を受けて、ノードｎ２でクロックパルスが発生する。つまり、マスクを行うべき期間でクロックが出力され、不正な値になる。また、キャプチャ動作時において、クロックｃｌｋがハイレベルの期間にデータ端子に変動があると、高速なクロックが出力され、出力qの論理値が不定になるおそれがある。図１２には、この場合の例が示される。すなわち、電力スキャンＦＦ１１０において、クロックｃｌｋがハイレベルの期間にデータ入力端子に値の変動があり、不正な値が出力されている。
【００６４】
図１３には、キャプチャ動作時のホールド違反対策を行った電力削減スキャンＦＦの例が示される。図１３に示される電力削減スキャンＦＦ１３０は、マルチプレクサ１３１、ＯＲゲート１３２、ＡＮＤゲート１３３、及び内部ＦＦ１３４を含む。図１３に示される電力削減スキャンＦＦが、図１１に示されるのと大きく相違するのは、３入力ＯＲゲート１３２が設けられている点である。このＯＲゲート１３２には、スキャンイネーブル信号ＳＥＮが論理反転されてから入力される。これにより、スキャンイネーブル信号ＳＥＮがハイレベルの期間（スキャンシフト動作時）のみ、クロックマスク機能が有効にされ、キャプチャ動作時にはクロックマスクが無効にされる。この結果、キャプチャ動作時には、クロックｃｌｋがハイレベルの期間においてデータ入力端子に値の変動が発生しても出力値は不確定にならず、ホールドタイミング違反のおそれがなくなる。しかし、シフト動作期間においては、ホールドタイミング違反のおそれがあり、例えば図１４に示されるように、クロックｃｌｋがハイレベルの期間にデータ端子の変動が存在すると、不正な値になる。
【００６５】
図１５には、シフト動作時とキャプチャ動作時のホールド違反対策を行った論理値０の値が連続して印加したときのみ電力削減可能なスキャンＦＦの例が示される。図１５に示されるマルチプレクサ１５１、ＯＲゲート１５２、ＡＮＤゲート１５３、及び内部ＦＦ１５４、ＡＮＤゲート１５５、及びラッチ回路１５６を含む。図１５に示される電力削減スキャンＦＦが、図１３に示されるのと大きく相違するのは、ＡＮＤゲート１５５及びラッチ回路１５６が設けられている点である。このようにスキャンアウト端子ｓｏの直前に反転クロックが入力されるラッチ回路１５６が設けられることにより、スキャンアウト端子ｓｏの値は、クロックがローレベルの期間でのみ値が更新されるため、シフト動作時は、クロックｃｌｋがハイレベルの期間にデータ入力端子の値が変動することはなくなり、ホールドタイミング違反の心配はなくなる。また、ホールド対策用のラッチ回路１５６のクロック入力端子には、ＡＮＤゲート１５５が結合され、通常動作時はスキャンイネーブル信号ｓｅｎでマスクが行われる。これにより通常動作時におけるラッチ回路１５６の動作が制限されるので、消費電力が削減される。
【００６６】
ラッチ回路１５６には、反転クロックが印加される。この場合、スキャンアウト端子ｓｏの値はクロックの値がレベルのときのみ更新されるため、スキャンシフト動作時のノードｆｆｉｎの値はクロックがローレベルの期間しか変化しなくなる。このため、図１６に示されるように、スキャンシフト動作時のクロックｃｌｋがハイレベルのホールドタイミング違反に起因する不正なクロック出力は生じないので、キャプチャ動作時のクロックｃｌｋがハイレベルの期間にデータ端子に変動があっても、出力値は不定にはならなくなる。
【００６７】
《実施の形態５》
図１７には、本発明にかかる半導体装置の構成例が示される。
【００６８】
図１７に示される半導体装置１７０は、図１に示される設計装置１によって設計されたものである。この半導体装置１７０は、キャプチャ動作後の値が論理値1になる確率が同程度のＦＦの集合で構成されたスキャンチェインを持ち、そのスキャンチェインに対して、そのスキャンチェインを構成するＦＦがキャプチャ動作後にとる確率の高い値に対応した論理値０又は１の固定値マスクマスクを行う機能を持つスキャンチェインが少なくとも1本以上存在する。
【００６９】
図１７に示される半導体装置１７０は、スキャンチェイン１７１，１７２、ＡＮＤゲート１７３、ＯＲゲート１７４、マスクコントロールロジック１７５、パタン生成器／パタン圧縮器１７６、論理値０を出力する確率の高い論理１７７、論理値１を出力する確率の高い論理１７８を含む。
【００７０】
スキャンチェイン１７１は、キャプチャ動作後に論理値０になる確率の高いスキャンＦＦの集合で構成されている。スキャンチェイン１７１における初段のスキャンＦＦのスキャンイン端子には、ＡＮＤゲート１７３の出力が伝達される。スキャンチェイン１７１における２段目以降のスキャンＦＦのスキャンイン端子には、前段のスキャンＦＦにおけるスキャンアウト端子の出力が伝達されるようになっている。スキャンチェイン１７２は、キャプチャ動作後に論理値１になる確率の高いスキャンＦＦの集合で構成されている。スキャンチェイン１７２における初段のスキャンＦＦのスキャンイン端子には、ＯＲゲート１７４の出力が伝達される。スキャンチェイン１７２における２段目以降のスキャンＦＦのスキャンイン端子には、前段のスキャンＦＦにおけるスキャンアウト端子の出力が伝達されるようになっている。論理値０を出力する確率の高い論理１７７の出力は、スキャンチェイン１７２における各スキャンＦＦのデータ端子に伝達される。スキャンチェイン１７２における各スキャンＦＦの出力は、論理値１を出力する確率の高い論理１７８に伝達される。そして、論理値１を出力する確率の高い論理１７８の出力は、スキャンチェイン１７２における各スキャンＦＦのデータ端子に伝達される。スキャンチェイン１７１，１７２における最終段のスキャンＦＦのスキャン出力は、パタン生成器／パタン圧縮機１７６に伝達される。
【００７１】
ＡＮＤゲート１７３は、マスクコントロールロジック１７５の出力と、パタン生成器／パタン圧縮器１７６の出力とのＡＮＤ論理を得る。ＯＲゲート１７４は、マスクコントロールロジック１７５の出力と、パタン生成器／パタン圧縮器１７６の出力とのＯＲ論理を得る。マスクコントロールロジック１７５は、ＡＮＤゲート１７３を介することにより、スキャンチェイン１７１に対して論理値０でマスクすることができる。また、マスクコントロールロジック１７５は、ＯＲゲート１７４を介することにより、スキャンチェイン１７２に対して論理値１でマスクすることができる。
【００７２】
上記の構成において、キャプチャ動作においては、論理値０を出力する確率の高い論理１７７の出力がスキャンチェイン１７１に取り込まれ、論理値１を出力する確率の高い論理１７８の出力がスキャンチェイン１７２に取り込まれる。スキャンシフト動作においては、パタン生成器／パタン圧縮機１７６から出力されたテストパタンデータがＡＮＤゲート１７３を介してスキャンチェイン１７１に伝達され、ＯＲゲート１７４を介してスキャンチェイン１７２に伝達される。また、マスクコントロールロジック１７５の制御により、上記パタン生成器の出力に代えて、論理値０をスキャンチェイン１７１に供給することができ、論理値１をスキャンチェイン１７２に供給することができる。
【００７３】
スキャンテスト時に消費電力が多くなる原因として、スキャンシフト動作中のＦＦの活性化率が高いために論理全体の活性化率が上がることが挙げられる。これに対して上記の構成によれば、論理値1になる確率が同程度のＦＦで構成されたスキャンチェイン１７１では、キャプチャ動作後のシフトアウト（アンロード）に起因する活性化率が低下される。また、マスクコントロールロジック１７５は、論理値０になる確率が高いスキャンチェイン１７１には論理値０を供給し、論理値１になる確率が高いスキャンチェイン１７２には、論理値１を供給するように構成されているため、スキャンチェインに対する固定値マスクが有効とされる時には、ロードとアンロードの境界に起因する活性化率の低減が可能となる。このようにＦＦの活性化率が低下されることによって、スキャンフリップフロップ回路を含む半導体装置の電力削減を達成することができる。
【００７４】
《実施の形態６》
図１８には、本発明にかかる半導体装置の別の構成例が示される。
【００７５】
図１８に示される半導体装置１８０は、図１に示される設計装置１によって設計されたものである。この半導体装置１８０は、キャプチャ動作後ＦＦの値が論理値1になる確率が同程度のＦＦの集合で構成したスキャンチェインを持ち、そのスキャンチェインには、キャプチャ動作後ＦＦがとる確率の高いのに対応した論理値０又は１が連続して印加されたときのみ電力削減可能なスキャンＦＦが1個以上含まれる。このようなスキャンチェインが少なくとも1本以上存在する。
【００７６】
スキャンチェイン１８１は、キャプチャ動作後に論理値０になる確率の高いＦＦの集合で構成されている。スキャンチェイン１８２は、キャプチャ動作後に論理値１になる確率の高いＦＦの集合で構成されている。スキャンチェイン１８１には、論理値０を出力する確率の高い論理１８７の出力が供給される。スキャンチェイン１８２には、論理値１を出力する確率の高い論理１８８の出力が供給される。スキャンチェイン１８１を構成するスキャンＦＦ１８３には、論理値０が連続して印加されたときのみ電力削減可能なスキャンＦＦが適用される。このスキャンＦＦ１８３は、図１５に示されるのと同一構成とされる。スキャンチェイン１８２を構成するスキャンＦＦ１８４には、論理値１が連続して印加されたときのみ電力削減可能なスキャンＦＦが適用される。このようなスキャンＦＦ１８４は、図１０に示されるＦＦに、図１５に示されるマルチプレクサ１５１、ＡＮＤゲート１５５、ラッチ回路１５６が付加されたものに相当する。
【００７７】
尚、図１８では省略されているが、図１７におけるＡＮＤゲート１７３、ＯＲゲート１７４、マスクコントロールロジック１７５、パタン生成器／パタン圧縮器１７６等に相当するものが設けられている。
【００７８】
キャプチャ動作後に論理値０になる確率の高いＦＦで構成したスキャンチェインに含まれるＦＦは、キャプチャ動作後のシフトアウト（アンロード）で、論理値０が連続して印加される可能性が高くなる。このため、アンロードに起因する活性化率が低くなり、論理値０が連続して印加されたときのみ電力削減可能なスキャンＦＦ１８３では、電力削減機能が働く可能性が高くなる。また、キャプチャ動作後に論理値１になる確率の高いＦＦで構成したスキャンチェインに含まれるＦＦは、キャプチャ動作後のシフトアウト（アンロード）で、論理値1が連続して印加される可能性が高くなる。このため、アンロードに起因する活性化率が低くなり、論理値１が連続して印加されたときのみ電力削減可能なスキャンＦＦ１８４では、電力削減機能が働く可能性が高くなる。
【００７９】
《実施の形態７》
図１９には、本発明にかかる半導体装置の別の構成例が示される。
【００８０】
図１９に示される半導体装置１９０は、スキャンチェイン１９１，１９２、ＡＮＤゲート１９３，１９４、マスクコントロールロジック１９５、パタン生成器／パタン圧縮器１９６を含む。スキャンチェイン１９１，１９２は、キャプチャ動作後に、論理値０又は１になる確率の高いスキャンＦＦの集合で構成されている。スキャンチェイン１９１，１９２は、固定値マスクでマスク制御可能とされる。スキャンチェイン１９１，１９２には、固定値マスクによるマスクの値に対応する論理値０又は１のどちらかの値が連続して印加されたときのみ電力削減可能なスキャンＦＦ１９７が含まれる。このスキャンＦＦ１９７には、図１８に示されるスキャンＦＦ１８３と同一構成のものを適用することができる。この場合、電力削減可能なスキャンＦＦでは、論理値０が連続して印加された場合に、電力削減の可能性が高くなるので、電力削減が期待できる。尚、スキャンＦＦ１９７に、図１８に示されるスキャンＦＦ１８４と同一構成のものを適用することができ、その場合には、電力削減可能なスキャンＦＦでは、論理値１が連続して印加された場合に、電力削減可能性が高くなる。
【００８１】
《実施の形態８》
図１に示される設計装置１では、半導体装置の面積制約を考慮して電力削減スキャンＦＦが置換される。電力削減スキャンＦＦは、セルの面積が大きいため、全て電力削減ＦＦに置換しようとすると、面積オーバーヘッドが大きくなる。そのため、面積制約を与えて電力削減効果の高いスキャンＦＦから優先して電力削減スキャンＦＦセルに置換することで、面積オーバーヘッドを抑えて高い電力削減効果を得る。面積制約を越えた時点で、電力削減スキャンＦＦの使用は辞めて、通常のスキャンＦＦを使用すると良い。
【００８２】
本機能で想定する入力ネットリストは、スキャンチェインの有無、固定値マスク機能の付加の有無は問わない。ただし、スキャンチェイン構築前の場合は、最終的なネットリスト（固定値マスクの有無や各ＦＦの論理値1になる確率の情報を利用したスキャンチェインの有無）を想定した電力削減スキャンＦＦ置換を行う。本機能を利用した電力削減スキャンＦＦ置換済ネットリストは、ネットリストと機能ライブラリとＦＦの論理値1になる確率の情報と面積ライブラリと面積制約を入力として、図２０に示される手順で行うことができる。
【００８３】
ネットリスト４１、機能ライブラリ４２、ＦＦの論理値１になる確率リスト４３に加えて、面積制約、面積ライブラリが演算処理部３に取り込まれる（Ｓ２５）。
【００８４】
入力されたネットリスト４１からスキャン対象ＦＦを識別する（Ｓ２６）。電力削減スキャンＦＦ置換ネットリストを参照する場合は、チェイントレースで識別したＦＦを対象とする。識別したスキャン化対象ＦＦに対して、シフト動作中の遷移確率を解析する（Ｓ２７）。この遷移確率の解析手順については、後に詳述するように、入力ネットリストの種類に応じて行われる。そして、面積制約の範囲内で、遷移確率が低いスキャンＦＦから順に、そのＦＦがとる確率の高い値に対応した論理値０又は１のどちらかが連続して印加されたときのみ電力削減可能な電力削減スキャンＦＦに置換される（Ｓ２８）。そして電力削減スキャンＦＦ置換ネットリスト４６が作成される（Ｓ２９）。
【００８５】
次に、上記ステップＳ２７でのスキャンシフト動作時のＦＦの遷移確率の算出について説明する。
【００８６】
入力ネットリストに対して、ＦＦの遷移確率の算出方法は、下記３通りに分けられる。
【００８７】
すなわち、（１）固定値マスク付加済みネットリストの場合（ＦＦの論理値1になる確率を利用して構築したスキャンチェインを含まない）、（２）ＦＦの論理値1になる確率に基づいたチェイン構成のネットリストの場合（固定値マスク機能無し）、（３）ＦＦの論理値1になる確率に基づいたチェイン構成で、且つ固定値マスクの機能を持つネットリストの場合、である。
【００８８】
（１）先ず、固定値マスク付加済みネットリストの場合（ＦＦの論理値1になる確率を利用して構築したスキャンチェインを含まない）について説明する。
【００８９】
パタン生成時に固定値マスクによって制御するロードの活性化率をＮ％（N＝０〜５０）、回路の最大チェイン段数を「Ｌ」とし、スキャンＦＦのアンロードの活性化率を「１／２」とし、そのスキャンＦＦの属するチェインの先頭からそのＦＦまでの段数を「Ｂ」とする。このときＦＦの遷移しない確率は次式によって示される。尚、「＊」は乗算を示す。
【００９０】
【数１】
2013025338.tif 000003
【００９１】
面積制約に基づく電力削減スキャンＦＦ置換では、単純にスキャンチェインの始端に近いＦＦから順番に置換することになる。これは、スキャンチェインの始端に近いＦＦは固定値マスクの影響を受けて、連続した値が印加され易いためである。
【００９２】
（２）次に、ＦＦの論理値1になる確率に基づいたチェイン構成のネットリストの場合（固定値マスク機能無し）について説明する。
【００９３】
回路の最大チェイン段数を「Ｌ」、スキャンＦＦの論理値1になる確率を「Ａ」、そのスキャンＦＦの属するチェインの先頭からそのＦＦまでの段数を「Ｂ」とする。同程度の論理値１になる確率のＦＦの集合で構成したチェインの場合、チェインを構成するＦＦの論理値1になる確率が０又は１に近く、スキャンチェイン末端に近いＦＦであるほど連続した値が印加される可能性が高くなる。チェインの末端のＦＦにおいて、アンロード時に遷移しない確率は、Ａ≦１／２のとき、「１−Ａ」とされ、Ａ＞１／２のとき、「Ａ」で表される。従って、ＦＦが遷移しない確率は、次式によって示される。
【００９４】
【数２】
2013025338.tif 000004
【００９５】
【数３】
2013025338.tif 000005
【００９６】
面積制約に基づく電力削減スキャンＦＦ置換では、上記計算値が大きいＦＦから順番に電力削減スキャンＦＦに置換される。
【００９７】
（３）次に、ＦＦの論理値1になる確率に基づいたチェイン構成で、且つ固定値マスクの機能を持つネットリストの場合について説明する。
【００９８】
パタン生成時に固定値マスクによって制御するロードの活性化率をＮ％（Ｎ=０〜５０）、回路の最大チェイン段数を「Ｌ」、スキャンＦＦの論理値1になる確率を「Ａ」、そのスキャンＦＦの属するチェインの先頭からそのＦＦまでの段数を「Ｂ」とする。ロードの活性化率がＮ％のとき、あるチェインの先頭のＦＦで遷移が発生しない確率は、１−（Ｎ／１００）となる。その確率がチェインの先頭にあるほど影響する。また、末端にあるほど、アンロードによる影響を受ける。従って、ＦＦが遷移しない確率は次式によって示される。
【００９９】
【数４】
2013025338.tif 000006
【０１００】
【数５】
2013025338.tif 000007
【０１０１】
面積制約に基づく電力削減スキャンＦＦ置換では、上記計算値が大きいＦＦから順番に電力削減スキャンＦＦに置換される。
【０１０２】
スキャンシフト動作中のＦＦの遷移確率が低いほど、同じ値が印加される可能性が高く、電力削減スキャンＦＦ置換時に、クロックマスクによる電力削減効果は大きくなる。ここで算出されたＦＦの遷移確率の情報は、電力削減スキャンＦＦ置換の際、置換の優先度を決定する際に利用される。このように優先度の高いものだけを置換することで、面積オーバーヘッドが低いにもかかわらず、高い電力削減効果が得られる。
【０１０３】
《実施の形態９》
本実施の形態で示す設計方法は、電力削減スキャンＦＦ置換の際、電力削減制約を満たすように電力削減スキャンＦＦで置換される。電力削減スキャンＦＦは、セルの面積が大きいため、全て置換しようとすると面積オーバーヘッドが大きくなる。そのため、電力制約を与えて電力削減効果の高いスキャンＦＦから優先して電力削減スキャンＦＦセルに置換することで、面積オーバーヘッドを抑えて高い電力削減効果を得る。そして、電力制約を満たした時点で電力削減スキャンＦＦの使用は辞めて、通常のスキャンＦＦを使用する。
【０１０４】
本設計方法で想定する入力ネットリストは、スキャンチェインの有無、固定値マスク機能の付加の有無は問わない。ただし、スキャンチェイン構築前の場合は、最終的なネットリスト（固定値マスクの有無と各ＦＦの論理値1になる確率の情報を利用したスキャンチェインの有無）を想定した電力削減スキャンＦＦ置換を行う。スキャン化済みネットリストの場合はチェイントレースで識別したＦＦを対象とする。本機能を利用した電力削減スキャンＦＦ置換済ネットリストは、ネットリストと機能ライブラリとＦＦの論理値1になる確率の情報と電力ライブラリと電力制約を入力として次の手順で行われる。初めに入力ネットリストからスキャン化対象ＦＦを識別する。識別したスキャン化対象ＦＦに対して、シフト動作中の遷移確率を解析する。この遷移確率の解析手順については入力ネットリストの種類に応じて、実施の形態７の手順で行われる。解析結果から得られたスキャンシフト動作中のＦＦの遷移確率と電力ライブラリより消費電力を求める。このとき求める消費電力は、ＦＦの現在の消費電力と、そのＦＦのとる高い値に対応した論理値０又は１のどちらかが連続して印加されたときのみ電力削減可能なスキャンＦＦで置換した場合の消費電力を求める。現在の消費電力と電力削減スキャンＦＦ置換時の消費電力の差分が大きいＦＦから順に電力削減スキャンＦＦに置換する。そして、電力制約を満たした時点で電力削減スキャンＦＦへの置換をやめる。最後に電力削減スキャンＦＦ置換済みネットリストを出力する。
【０１０５】
本機能の実行フローチャート例として、実施の形態２の拡張例が図２１に示される。実施の形態２からスキャン対象ＦＦ解析ステップ（Ｓ３１）の後に、スキャンシフト動作中の遷移確率解析ステップ（Ｓ３２）と消費電力算出のステップ（Ｓ３３）を追加する。実施の形態３からの拡張の場合は、同様に実施の形態３のスキャンチェイン解析ステップの後に、遷移確率解析のステップと消費電力算出のステップが追加される。
【０１０６】
このように、各ＦＦの電力消費量を概算することで、電力削減スキャンＦＦの効果の高いＦＦを選択できる。また、電力消費量を概算するために、電力制約に基づいて置換対象ＦＦを選択できる。電力削減効果が高いＦＦのみを電力削減スキャンＦＦで置換することで、面積オーバーヘッドが低いにもかかわらず、高い電力削減効果が得られる。
【０１０７】
《実施の形態１０》
本実施の形態で示す設計方法は、ＦＦの論理値1になる確率を０又は１に近づけるテストポイントが挿入される。つまり、各ＦＦの論理値1になる確率の情報の結果から、確率が１／２に近いＦＦに対して、確率が0又は1に近くなるようにテストポイントが挿入される。テストポイント挿入に関しては、一般的な手法を採用することができる。例えばＡＮＤゲート又はＯＲゲートの挿入とテストポイント制御用ＦＦが挿入される。そして、テストポイント挿入の結果得られたネットリストに対して、論理値１になる確率が再度導出され、各ＦＦの論理値1になる確率情報が出力される。
【０１０８】
図２２に、実施の形態１における各ＦＦの論理値1になる機能を拡張した場合の実行フローチャートが示される。
【０１０９】
この例では、実施の形態１の論理値1になる確率の解析ステップの後に、テストポイント挿入ステップと挿入後に確率の再計算を行うステップとが追加されている。このフローチャートでは、ステップＳ３６で入力ネットリストとライブラリから論理構造を解析しスキャン対象ＦＦが識別される（Ｓ３７）。次に、識別したＦＦの出力値の論理値1になる確率が１／２に設定され、外部入力端子も1になる確率が１／２に設定される（Ｓ３８）。次に、前ステップで１／２を指定した点から、論理を通りパスの終点で論理値１になる確率を導出する（Ｓ３９）。次に、識別した結果から、確率が１／２に近いＦＦに対してテストポイントを挿入することにより（Ｓ４０）、ＦＦが論理値1になる確率を０又は１に近づけられる。テストポイント挿入によって、影響を受けたＦＦの論理値1になる確率が再計算される（Ｓ４１）。最後に、確率の解析結果とTPI済ネットリストが出力される（Ｓ４２）。
【０１１０】
ＦＦの論理値1になる確率に基づいたチェイン構成や電力削減スキャンＦＦへの置換を想定した場合、キャプチャ動作後に論理値1になる確率が１／２に近いＦＦでは、電力削減効果が低くなる。そこで、テストポイント挿入により、キャプチャ動作後のＦＦの論理値1になる確率を0又は1に近づける。これにより、テスト動作時の遷移率が下がることになり、高い電力削減効果が得られるようになる。
【０１１１】
《実施の形態１１》
図２３には、実施の形態１０の設計方法によりテストポイントが挿入された半導体装置の構成例が示される。
【０１１２】
図２３に示される半導体装置２３０では、論理値０を出力する確率の高い論理２３５、論理値１を出力する確率が１／２の論理２３４、スキャンチェイン２３６、論理値１を出力する確率の高い論理２４１、論理値１を出力する確率が１／２の論理２４０、スキャンチェイン２４２を含む。そしてこの半導体装置２３０には、キャプチャ動作後のＦＦの論理値１になる確率を１又は０に近づけるための二つのテストポイントが存在する。第１テストポイントを構成する回路（これを「第１テストポイント回路」という）は、ＡＮＤゲート２３２，２３３とスキャンＦＦ２３１とを含んで成る。第２テストポイントを構成する回路（これを「第２テストポイント回路」という）は、ＯＲゲート２３８，２３９とスキャンＦＦ２３７とを含んで成る。ＡＮＤゲート２３２，２３３は、論理値１を出力する確率が１／２の論理２３４と、スキャンチェイン２３６と間に配置される。ＯＲゲート２３８，２３９は、論理値１を出力する確率が１／２の論理２４０と、スキャンチェイン２４２との間に配置される。
【０１１３】
上記の構成において、ＡＮＤゲート２３２，２３３及びＯＲゲート２３８，２３９は、通常動作時は、テストポイントでマスクを行わない。つまり、スキャンＦＦ２３１の出力が論理値１にされることで、論理値１を出力する確率が１／２の論理２３４の出力がスキャンチェイン２３６に伝達される。同様に、スキャンＦＦ２３７の出力が論理値０にされることで、論理値１を出力する確率が１／２の論理２４０の出力がスキャンチェイン２４２に伝達される。キャプチャ動作後は、スキャンＦＦ２３１の出力が論理値０にされる。これにより、ＡＮＤゲート２３２，２３３の出力は論理値０にマスクされるので、その出力が伝達されるスキャンＦＦは、論理値１を出力する確率が１／２の論理２３４の後段に配置されているにもかかわらず、キャプチャ動作後に論理値０になる確率が高いＦＦとなる。これにより、スキャンチェイン２３６は、キャプチャ動作後に論理値０になる確率の高いＦＦの集合となる。同様に、キャプチャ動作後は、スキャンＦＦ２３７の出力が論理値１にされる。これにより、ＯＲゲート２３８，２３９の出力は論理値１にマスクされるので、その出力が伝達されるスキャンＦＦは、論理値１を出力する確率が１／２の論理２４０の後段に配置されているにもかかわらず、キャプチャ動作後に論理値１になる確率が高いＦＦとなる。これにより、スキャンチェイン２４２は、キャプチャ動作後に論理値１になる確率の高いＦＦの集合となる。このようにテストポイント挿入により、シフト動作時の活性化率が低下できる構造になっているので、そのとき論理値０又は１のどちらかの値が連続して印加された場合に電力削減の効果が大きくなる。
【０１１４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【０１１５】
１  設計装置
２  制御入力部
３  演算処理部
４  記憶部
５  入出力ＩＦ
６  表示出力部
４１  ネットリスト
４２  機能ライブラリ
４３  ＦＦの論理値１になる確率リスト
４４  チェイン構築済ネットリスト
４５  固定値マスク付加済ネットリスト
４６  電力削減スキャンＦＦ置換ネットリスト
１７１，１７２，１８１，１８２，１９１，１９２，２３６，２４２  スキャンチェイン
１７５  マスクコントロールロジック
【図１】
2013025338.tif 000008
【図２】
2013025338.tif 000009
【図３】
2013025338.tif 000010
【図４】
2013025338.tif 000011
【図５】
2013025338.tif 000012
【図６】
2013025338.tif 000013
【図７】
2013025338.tif 000014
【図８】
2013025338.tif 000015
【図９】
2013025338.tif 000016
【図１０】
2013025338.tif 000017
【図１１】
2013025338.tif 000018
【図１２】
2013025338.tif 000019
【図１３】
2013025338.tif 000020
【図１４】
2013025338.tif 000021
【図１５】
2013025338.tif 000022
【図１６】
2013025338.tif 000023
【図１７】
2013025338.tif 000024
【図１８】
2013025338.tif 000025
【図１９】
2013025338.tif 000026
【図２０】
2013025338.tif 000027
【図２１】
2013025338.tif 000028
【図２２】
2013025338.tif 000029
【図２３】
2013025338.tif 000030
【図２４】
2013025338.tif 000031
【図２５】
2013025338.tif 000032