(57)【要約】【課題】チップ製造後における機能ブロック毎の電流測定を可能とする技術を提供する。【解決手段】複数の機能ブロック（２Ａ〜２Ｄ）のうち電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止し、且つ、上記電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させる。この状態で半導体集積回路チップの電源端子（１１）に流れる電流を測定する。このとき、電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給が停止されているため、機能ブロック毎の電流測定が可能とされる。しかも、上記機能ブロック毎の電流測定は、半導体集積回路チップ（１）の電源端子に流れる電流を測定することによって可能とされるため、チップ製造後における電流測定が可能とされる。【選択図】図１
2008209201.tif 000002
【特許請求の範囲】
【請求項１】
供給されたクロック信号に基づいて自己診断のためのパターン信号を発生可能なビルトインセルフテスト回路と、上記ビルトインセルフテスト回路によって発生されたパターン信号を上記クロック信号に同期してスキャン可能なスキャン回路とをそれぞれ含んで成る複数の機能ブロックを備えた半導体集積回路チップにおける電流測定方法であって、
上記複数の機能ブロックのうち電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止し、且つ、上記電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させた状態で、上記半導体集積回路チップの電源端子に流れる電流を測定することを特徴とする電流測定方法。
【請求項２】
上記複数の機能ブロックのうち電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止し、且つ、上記電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させた状態で上記半導体集積回路チップの電源端子に流れる電流と、上記複数の機能ブロックの全てについて上記クロック信号の供給を停止した状態で上記半導体集積回路チップの電源端子に流れる電流との差分を求めることで、上記機能ブロック毎の実動作電流を得る請求項１記載の電流測定方法。
【請求項３】
上記電流測定は、上記半導体集積回路チップが実装ボードに実装された状態で行われる請求項１記載の電流測定方法。
【請求項４】
複数の機能ブロックと、
上記複数の機能ブロックのうち電流測定対象とされる機能ブロックに対してクロック信号を選択的に供給可能な制御回路と、を含み、
上記機能ブロックは、上記制御回路の制御によって供給された上記クロック信号に基づいて自己診断のためのパターン信号を発生可能なビルトインセルフテスト回路と、
上記ビルトインセルフテスト回路によって発生されたパターン信号を、上記制御回路の制御によって供給された上記クロック信号に同期してスキャン可能なスキャン回路と、を含むことを特徴とする半導体集積回路。
【請求項５】
上記機能ブロックは、上記制御回路から供給されたイネーブル信号に応じて、上記ビルトインセルフテスト回路及び上記スキャン回路への上記クロック信号の供給を制御可能な論理ゲートを含む請求項４記載の半導体集積回路。
【請求項６】
上記機能ブロックは、ランダムアクセス可能なメモリ部を更に含み、
上記ビルトインセルフテスト回路は、自己診断のために上記スキャン回路に供給されるパターン信号を生成可能な第１ビルトインセルフテスト回路と、
自己診断のために上記メモリに書き込まれるパターン信号を生成可能な第２ビルトインセルフテスト回路と、を含む請求項５記載の半導体集積回路。
【請求項７】
上記機能ブロックは、上記ビルトインセルフテスト回路によって発生されたパターン信号を上記クロック信号に同期してスキャンイン及びスキャンアウト可能な複数のフリップフロップ回路と、
上記フリップフロップ回路における出力論理のトグル数に基づいて上記フリップフロップ回路を含むロジック部の電力を検出可能なロジック電力情報検出部と、
上記メモリ部の電力を検出可能なメモリ電力情報検出部と、を含む請求項６記載の半導体集積回路。
【請求項８】
上記機能ブロックは、上記フリップフロップ回路に入力されるデータと、上記フリップフロップ回路から出力されるデータとの排他的論理和を得るゲート回路を含み、
上記ロジック電力情報検出部は、測定サイクルの期間中における上記ゲート回路の出力をカウントすることで上記フリップフロップ回路のトグル数を累積し、その累積結果に基づいて上記ロジック部の電力検出を行う請求項７記載の半導体集積回路。
【請求項９】
上記メモリ電力情報検出部は、上記メモリ部を選択可能なイネーブル信号に対して所定の係数で重み付けした信号を上記メモリの電流値計算の情報として使用する請求項７記載の半導体集積回路。
【請求項１０】
複数の機能ブロックを備えた半導体集積回路であって、
上記機能ブロックは、組合せ回路とフリップフロップとを含むロジック部と、
ランダムアクセス可能なメモリ部と、
上記フリップフロップ回路における出力論理のトグル数に基づいて上記フリップフロップ回路を含むロジック部の電力を検出可能なロジック電力情報検出部と、
上記メモリ部の電力を検出可能なメモリ電力情報検出部と、を含んで成ることを特徴とする半導体集積回路。
【請求項１１】
上記機能ブロックは、上記フリップフロップ回路に入力されるデータと、上記フリップフロップ回路から出力されるデータとの排他的論理和を得るゲート回路を含み、
上記ロジック電力情報検出部は、測定サイクルの期間中における上記ゲート回路の出力をカウントすることで上記フリップフロップ回路のトグル数を累積し、その累積結果に基づいて上記ロジック部の電力検出を行う請求項１０記載の半導体集積回路。
【請求項１２】
上記メモリ電力情報検出部は、上記メモリ部を選択可能なイネーブル信号に対して所定の係数で重み付けした信号を上記メモリの電流値計算の情報として使用する請求項１０記載の半導体集積回路。
【請求項１３】
上記機能ブロックは、供給されたクロック信号に基づいて自己診断のためのパターンを発生可能なビルトインセルフテスト回路を含み、
上記ロジック部は、上記ビルトインセルフテスト回路によって発生されたパターンを上記フリップフロップにより上記クロック信号に同期してスキャンイン及びスキャンアウトすることで診断され、
上記メモリ部は、上記ビルトインセルフテスト回路によって発生されたパターンを用いて診断される請求項１０記載の半導体集積回路。
【請求項１４】
ＦＰＧＡによって形成された請求項１０乃至１３の何れか１項記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路における消費電流評価技術に関する。
【背景技術】
【０００２】
微細化の進展に伴い、ＬＳＩの集積度が向上し、チップ上に複数の機能ブロックが実装されることで、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）が形成される。上記機能ブロックには、マイクロコンピュータや、その周辺回路など、それぞれ所定の機能を発揮するように形成された回路ブロックが含まれる。携帯電話やＰＤＡなどのバッテリー駆動のディジタル機器にもＳｏＣが内蔵され、多様なアプリケーションソフトウェアが実行される。これらバッテリー駆動のディジタル機器では、低消費電力であることが強く求められており、ＳｏＣ上のハードウェアや、ＳｏＣで動作されるソフトウェアによって、きめ細かい電力制御が行われている。ＳｏＣの低消費電力化において、消費電力評価は欠かせない。一般にＳｏＣのチップ製造前や製造後に、ＳｏＣのどの部分がどの程度の電力を消費するかが評価される。そして必要に応じて低消費電力化の方針が立てられ、低消費電力化の効果が調べられる。
【０００３】
チップ製造前段階での電力評価では、従来、特定の短い機能テストパターン信号を用いたゲートシミュレーションが行なわれてきた。全ゲートの出力ネットの０と１の反転数（トグルと呼ぶ）データから全ゲートの電力値が累算される。このゲートシミュレーションによれば、精度が高い反面、（ａ）ゲートシミュレーションのため、実行速度が遅い、（ｂ）パターン信号は短い機能試験用で、実アプリケーションレベルのパターン信号は実時間では実行できない、（ｃ）テストパターン信号の開発工数が大きい、（ｄ）各機能ブロックの電力を評価するためには機能ブロックごとにテストパターン信号を準備する必要がある、など改善すべき点がある。
【０００４】
上記（ａ），（ｂ）に関しては、トグル計数回路を埋め込んだＦＰＧＡを用いた電力評価が提案されている（例えば特許文献１参照）。上記（ｃ），（ｄ）に関しては、ＡＴＰＧによるテストパターン信号の自動化が提案されている（例えば特許文献２参照）。
【０００５】
チップ製造後に関しては、テスタによるテストパターン信号の電流測定、又は実装ボードによるテストパターン信号の電流測定が行われる。実アプリケーションソフトウェアが開発された後は実装ボードにより電力測定が行われる。ＳｏＣの外部のジャンパに直列に電流計を挿入するか、電流プローブを用いて電流が測定される。
【０００６】
しかしながら、上記テストパターン信号では単一の機能ブロックの測定はできない。クロック信号制御部、バス、マイクロプロセッサなど複数の機能ブロックが動作した状態での電流測定となる。従来より、クロック信号制御レジスタによるクロック信号のオン、オフで差分電流を測ることが行われているが、制御レジスタのビットがない機能ブロックに関しては差分電流による測定ができない。
【０００７】
【特許文献１】特開２００２−２８８２５７号公報
【特許文献２】特開２００３−８５２３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献１によれば、ＦＰＧＡ（Field Programmable Gate Array）にトグル計数回路を埋込むことでトグル計数を高速化することができる。トグル計数回路は、実際の製品には搭載されず、ＦＰＧＡ上でのみ実装される機能である。トグル計数回路は、フリップフロップ回路、ＥＯＲ（排他的論理和）ゲート、加算器により構成され、インバータとバッファを除く各ゲートの出力に挿入される。トグル結果はスキャンチェーンにより出力される。本願発明者の検討によれば、この場合のトグル計数回路は、単体でもＦＦ（フリップフロップ回路）と加算器を含むため論理規模が大きいことと、各ゲートに挿入されるため対象箇所が多く、トグル計数回路の全体の回路規模は非常に大きいことが見いだされた。
【０００９】
上記特許文献２記載の技術は、シミュレーションを前提とした電力評価となっており、実チップでの測定には対応していない。
【００１０】
そして、チップ製造後において、上記のようにテストパターン信号では単一の機能ブロックの測定に対して、クロック信号制御レジスタによるクロック信号のオン、オフで差分電流を測ることが行われているが、制御レジスタのビットがない機能ブロックに関しては上記差分電流による測定ができない。また、実チップにて単一の機能ブロックの測定可能とするためには、単一の機能ブロックのみを動作させるように回路を独立して動作させなければならない。
【００１１】
しかしながら、実チップにおける単一の機能ブロックの電流測定を行うことについては、上記特許文献において記載も示唆もされていない。
【００１２】
本発明の目的は、チップ製造後の実チップにおける機能ブロック毎の電流測定を可能とする技術を提供することにある。
【００１３】
本発明の別の目的は、実チップにて単一の機能ブロックの電流測定を可能とするために回路を独立して動作することができる半導体集積回路を提供することにある。
【００１４】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１６】
すなわち、複数の機能ブロックのうち電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止し、且つ、上記電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させる。この状態で半導体集積回路チップの電源端子に流れる電流を測定する。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１８】
すなわち、チップ製造後の実チップにおける機能ブロック毎の電流測定を可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【００１９】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２０】
〔１〕本発明の代表的な実施の形態に係る電流測定方法は、複数の機能ブロックのうち電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止し、且つ、上記電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させた状態で半導体集積回路チップの電源端子に流れる電流を測定する。
【００２１】
上記の構成によれば、電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させた状態で半導体集積回路チップの電源端子に流れる電流が測定される。このとき、電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給が停止されているため、機能ブロック毎の電流測定が可能とされる。しかも、上記機能ブロック毎の電流測定は、半導体集積回路チップの電源端子に流れる電流を測定することによって可能とされるため、実チップにおける機能ブロック毎の電流測定をも可能とされる。
【００２２】
〔２〕このとき、上記複数の機能ブロックのうち電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止し、且つ、上記電流測定対象とされる機能ブロックにおける上記ビルトインセルフテスト回路と上記スキャン回路とを動作させた状態で上記半導体集積回路チップの電源端子に流れる電流と、上記複数の機能ブロックの全てについて上記クロック信号の供給を停止した状態で上記半導体集積回路チップの電源端子に流れる電流との差分を求めることで、上記機能ブロック毎の実動作電流を得ることができる。
【００２３】
〔３〕本発明の別の観点によれば、複数の機能ブロック（２Ａ，２Ｂ，２Ｃ，２Ｄ）と、上記複数の機能ブロックのうち電流測定対象とされる機能ブロックに対してクロック信号を選択的に供給可能な制御回路（４）とを含んで半導体集積回路を構成する。このとき、上記機能ブロックは、上記制御回路の制御によって供給された上記クロック信号に基づいて自己診断のためのパターン信号を発生可能なビルトインセルフテスト回路（６）と、上記ビルトインセルフテスト回路によって発生されたパターン信号を、上記制御回路の制御によって供給された上記クロック信号に同期してスキャン可能なスキャン回路（ＳＣＮ−ＣＨＮ）とを含んで構成する。
【００２４】
上記の構成によれば、電流測定対象とされる機能ブロックを除く他の機能ブロックについて上記クロック信号の供給を停止することができるため、機能ブロック毎の電流測定が可能とされる。しかも、上記機能ブロック毎の電流測定は、半導体集積回路チップの電源端子に流れる電流を測定することによって可能とされるため、実チップにおける電流測定が可能とされる。
【００２５】
〔４〕上記機能ブロックは、上記制御回路から供給されたイネーブル信号に応じて、上記ビルトインセルフテスト回路及び上記スキャン回路への上記クロック信号の供給を制御可能な論理ゲート（１３）を含めることができる。
【００２６】
〔５〕上記機能ブロックは、ランダムアクセス可能なメモリ（８）を設けることができる。その場合において、上記ビルトインセルフテスト回路は、自己診断のために上記スキャン回路に供給されるパターン信号を生成可能な第１ビルトインセルフテスト回路（６Ａ）と、自己診断のために上記メモリに書き込まれるパターン信号を生成可能な第２ビルトインセルフテスト回路（６Ｂ）とを含んで構成することができる。
【００２７】
〔６〕上記機能ブロックは、上記ビルトインセルフテスト回路によって発生されたパターン信号を上記クロック信号に同期してスキャンイン及びスキャンアウト可能な複数のフリップフロップ回路（２２）と、上記フリップフロップ回路における出力論理のトグル数に基づいて上記フリップフロップ回路を含むロジック部の電力を検出可能なロジック電力情報検出部（３０）と、上記メモリの電力を検出可能なメモリ電力情報検出部（３１）とを含んで構成することができる。
【００２８】
〔７〕上記機能ブロックは、上記フリップフロップ回路に入力されるデータと、上記フリップフロップ回路から出力されるデータとの排他的論理和を得るゲート回路（３２）を含んで構成することができる。その場合において、上記ロジック電力情報検出部は、測定サイクルの期間中における上記ゲート回路の出力をカウントすることで上記フリップフロップ回路のトグル数を累積し、その累積結果に基づいて上記ロジック部の電力検出を行うように構成することができる。
【００２９】
〔８〕上記メモリ電力情報検出部は、上記メモリ部を選択可能なイネーブル信号に対して所定の係数で重み付けした信号を上記メモリ部の電流値計算の情報として使用するように構成することができる。
【００３０】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００３１】
図１には、本発明にかかる半導体集積回路の第１の実施形態が適用されたシステムオンチップ（ＳｏＣ）１が示される。このシステムオンチップ１は、特に制限されないが、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）やバイポーラトランジスタなどを形成する半導体集積回路技術によって、単結晶シリコン基板のような１個の半導体基板に形成される。
【００３２】
システムオンチップ１は、それぞれ所定の機能を実現する機能ブロック（ＦＢ）２Ａ、２Ｂ、２Ｃ、２Ｄ、クロック信号を形成するＰＬＬ（フェーズ・ロックド・ループ）３、制御部（ＣＴＬ）４、機能ブロック間を接続するための内部バス９、内部バス制御部（ＢＣ）５から構成される。特に制限されないが、内部バス９はクロスバ型とされ、内部バス制御部５は、上記内部バス９のスイッチ制御を行う。電源端子１１，１２が設けられ、この電源端子１１，１２を介して電源電圧ＶＤＤ，ＶＳＳの取り込みが行われる。
【００３３】
ＰＬＬ３は、ユーザクロック信号ｕｓｒ＿ｃｋと、テストクロック信号ｔｓｔ＿ｃｋとを出力する。機能ブロック２Ａ、２Ｂ、２Ｃ、２Ｄのテスト時の入力クロック信号ｃｋは、機能ブロック２Ａ、２Ｂ、２Ｃ、２Ｄのテスト時と、テスト以外の動作（通常動作）時とで異なる。すなわち、テスト時には、セレクタＳＥＬによってテストクロック信号ｔｓｔ＿ｃｋが選択的に機能ブロック２Ａ、２Ｂ、２Ｃ、２Ｄ及び制御部４に伝達される。通常動作時には、セレクタＳＥＬによってユーザクロック信号ｕｓｒ＿ｃｋが選択的に機能ブロック２Ａ、２Ｂ、２Ｃ、２Ｄ及び制御部４に伝達される。セレクタＳＥＬの動作制御は制御部４によって行われる。コントローラ４は、セレクタＳＥＬの動作制御信号ｃｎｔ、クロック信号の有効性を示すクロックイネーブル信号ｃｋｅｎ、テスト関連信号ｔｅｔ＿ｓｉｇを出力する。クロックイネーブル信号ｃｋｅｎ、及びテスト関連信号ｔｅｔ＿ｓｉｇは、機能ブロック２Ａ、２Ｂ、２Ｃ、２Ｄに供給される。
【００３４】
図２には、上記機能ブロック２Ａの構成例が示される。
【００３５】
機能ブロック２Ａは、ＢＩＳＴ（ビルトインセルフテスト）回路６、ロジック（ＬＧＣ）部７、メモリ（ＭＥＭ）部８、及び２入力アンドゲート１３を含む。ロジック部７は、組合せ回路２９Ａ、２９Ｂ、２９Ｃ、２９Ｄと、この組合せ回路２９Ａ、２９Ｂ、２９Ｃ、２９ＤにスキャンチェーンＳＣＮ−ＣＨＮで接続された複数のスキャン端子付フリップフロップ回路２２とを含む。スキャン端子付フリップフロップ回路２２は、スキャンイン端子ＳＩ、データ端子Ｄ、クロック端子、スキャンアウト端子ＳＯ、及びテスト端子ＴＳＴを含む。スキャン端子付フリップフロップ回路２２のスキャンアウト端子ＳＯが、別のスキャン端子付フリップフロップ回路２２のスキャンイン端子ＳＩに結合されることで、スキャンチェーンＳＣＮ−ＣＨＮが形成される。
【００３６】
メモリ部８は、上記ロジック部７に結合された複数のＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）２３を含んで成る。ＳＲＡＭ２３は、クロック信号ｃｌｋ、クロックイネーブル信号ｃｅｎ、テストイネーブル信号ｔｅｎが取り込まれる。クロック信号ｃｌｋ、クロックイネーブル信号ｃｅｎはロジック部７で生成される。テストイネーブル信号ｔｅｎは、制御部４で生成される。
【００３７】
ＢＩＳＴ回路６は、ロジック部７に対応するロジックＢＩＳＴ部６Ａと、メモリ部８に対応するメモリＢＩＳＴ部６Ｂとを含む。ロジックＢＩＳＴ部６Ａは、ランダムパターン信号を生成するロジックランダムパターン生成部（ＬＲＰＧ）２０、及びテスト結果を圧縮するロジックテスト出力圧縮器（ＬＴＯＣ）２１を含んで成る。メモリＢＩＳＴ部６Ｂは、アドレス生成器（ＡＤＲ＿ＧＥＮ）２４、データ生成器（ＤＡＴＡ＿ＧＥＮ）２５、制御部（ＭＢＩＳＴ＿ＣＴＬ）２６、メモリ出力比較器（ＭＣＭＰ）２７を含んで成る。テスト関連のＩ／Ｆとして、テストモード、テストクロック信号、入出力データをまとめてテスト関連信号ｔｓｔ＿ｓｉｇとされる。２入力アンドゲート１３は、入力クロック信号ｃｋとクロックイネーブル信号ｃｋｅｎとのアンド論理を得る。クロックイネーブル信号ｃｋｅｎがハイレベルの期間に、入力クロック信号ｃｋがロジック部７及びメモリ部８に伝達される。
【００３８】
尚、他の機能ブロック２Ｂ、２Ｃ、２Ｄも上記機能ブロック２Ａと同様に構成される。
【００３９】
図４には、システムオンチップ１における機能ブロック２Ａに流れる電流の実測の様子が示される。
【００４０】
システムオンチップ１は、ＳｏＣ実装ボード６０に搭載されている。ＳｏＣ実装ボード６０の電源端子６７には、電源装置６６から電源電圧が供給される。この電源装置６６から供給された電源電圧は、ジャンパ６８を介してシステムオンチップ１に供給される。オシロスコープ６２には高精度電流プローブ６１が接続される。高精度電流プローブ６１の先端部を上記ジャンパ６８に近接すると、上記ジャンパ６８に流れる電流、すなわち、システムオンチップ１に流れる電流の情報をオシロスコープ６２に表示することができる。オシロスコープ６２の拡大表示画面６２ＤＳＰには、ロジックＢＩＳＴ（ＬＢＩＳＴ）６Ａを用いたときの電流測定結果が示される。６４は、スキャンチェーンＳＣＮ−ＣＨＮでスキャンインした期間である。６３は、ユーザクロック信号にて実動作した期間である。６５は、スキャンアウトした期間である。ユーザクロック信号ｕｓｒ＿ｃｋ使用時の実動作電流６６と、機能ブロック２Ａ，２Ｂ，２Ｃ，２Ｄのクロック信号停止時のＰＬＬ３と制御部４の電流６７の差分をとると、機能ブロック毎の実動作電流が求められる。例えば機能ブロック２Ａに対するクロックイネーブル信号ｃｋｅｎのみがハイレベルとされて、他の機能ブロック２Ｂ，２Ｃ，２Ｄへのクロック信号の供給が停止されている場合には、機能ブロック２Ａについての実動作電流が求められる。
【００４１】
図５には、電流測定の流れが示される。
【００４２】
まず、電流測定の対象とされる機能ブロックの選択が行われる（５０１）。そして、測定終了か否かの判別が行われ（５０２）、ロジック電流を測定するか否かの判別が行われる（５０３）。ここでは、機能ブロック２Ａが選択され、ロジックＢＩＳＴ（ＬＢＩＳＴ）部６Ａを用いて電流測定が行われるものとする。機能ブロック２Ａが選択され、ロジックＢＩＳＴ部６Ａを用いて電流測定が行われる場合、他の機能ブロック２Ｂ、２Ｃ、２Ｄ、並びにバス制御部５へのクロック信号の供給が停止される。常に動作する部分はＰＬＬ３と制御部４である。ＰＬＬ３は別電源としてもよい。ロジックＢＩＳＴ部６Ａの設定が行われ（５０４）、生成されたランダムパターン信号が、スキャンチェーンＳＣＮ−ＣＨＮで接続されるフリップフロップ回路２２にクロック信号ｔｓｔ＿ｃｋに同期して順番に伝達される（５０５，５０６）。スキャン時のクロック信号は、ＰＬＬ３の出力のうちテストクロック信号ｔｓｔ＿ｃｋとされる。スキャンチェーンで全フリップフロップ回路の値が設定されると、制御部４で選択されたユーザクロック信号ｕｓｒ＿ｃｋによって１サイクル動作し、動作後にキャプチャされたフリップフロップ回路値がスキャンチェーンで再びクロック信号ｔｓｔ＿ｃｋにより順番に送り出され、ＢＩＳＴ内で結果を圧縮し、チップ外に出力する（５０７〜５０９）。図１、図２では省略しているが、ユーザクロック信号には、周波数が異なる複数のクロック信号を用いることができる。電流を測定する期間は、ユーザクロック信号による動作部分（１クロック信号）である。スキャンシフト後のユーザクロック信号停止状態では、ＰＬＬ３と制御部４の電流が求められることから、ユーザクロック信号供給時の電流６６と、スキャンシフト後のユーザクロック信号停止状態の電流６７の差分により機能ブロック２Ａの電流を求めることができる。
【００４３】
次に、メモリＢＩＳＴ（ＭＢＩＳＴ）部６Ｂを用いてメモリ部８の電流を測定する場合について説明する。
【００４４】
上記ステップ５０３の判別において、ロジック電流の測定ではない（ｎｏ）と判断された場合には、メモリ部分の電流測定のため、メモリＢＩＳＴ部６Ｂの設定が行われる（５１０）。メモリＢＩＳＴ部６Ｂが設定された後、マーチングなどの生成したメモリパターン信号のアドレス、データ、及び期待値が生成される（５１１）。そしてＳＲＡＭ２３で実動作される。この実動作では、ＳＲＡＭ２３の記憶データが読み出され、それが期待値と比較される（５１３）。そして、この実動作において電流測定が行われる（５１２）。電流測定期間の動作部分は、ＰＬＬ３、制御部４、機能ブロック２Ａのみである。メモリパターン信号終了後にユーザクロック信号を停止すると、そのときの電流はＰＬＬ３、制御部４のみのため、ロジックＢＩＳＴ部６Ａを用いて電流測定する場合と同様に、メモリＢＩＳＴ部６Ｂの実動作時とユーザクロック信号停止時の差分を求めることで、機能ブロック２Ａの電流を求めることができる。
【００４５】
他の機能ブロックも独立して同様に電流を測定できる。通常、電流測定は論理動作を考慮したテストパターン信号を用いる。この場合、複数の機能ブロックが動作することと、クロック信号制御ができない部分、例えばバス制御部などが常に動作するが、ＢＩＳＴ６生成のランダムパターンでは論理動作を考慮する必要がなくなるため、スキャンチェーンなどの論理的に閉じた箇所のみで電流を測定することができる。本例ではスキャンチェーンを機能ブロック毎に分離した。このため、上記の電流測定においては、クロック信号制御により他の機能ブロックで電流が消費されない。
【００４６】
尚、上記ロジックＢＩＳＴ部６Ａと、メモリＢＩＳＴ部６Ｂとを同時に用いて電流測定を行うこともできる。
【００４７】
図３には、クロック信号イネーブルｃｋｅｎを用いてクロック信号を停止する際の機能ブロックの状態が示される。
【００４８】
クロック信号イネーブルｃｋｅｎをネゲートすると、機能ブロックのフリップフロップ回路のクロック信号が停止され、フリップフロップ回路の出力論理は固定される。組み合わせ回路（ｃｍｂＢ）８１と、組み合わせ回路（ｃｍｂＣ）８２は、組み合わせ回路の入力が固定されるため、その動作が停止される。このとき、機能ブロックの出力インタフェースｏｕｔ＿ＩＦは固定される。他の機能ブロックもクロック信号イネーブルがネゲートされていると出力インタフェースが固定されていると考えられるため、該機能ブロックの入力インタフェースは、分周器とクロック信号制御部のインタフェースを除き、停止される。図３では、入力インタフェースｉｎ＿ＩＦは全て停止するので、それを入力とする組み合わせ回路ｃｍｂＡ８０も停止する。従って、クロック信号イネーブルがネゲートされると、機能ブロックの大部分のゲートの動作が停止されるため、そこでは電流消費されない。
【００４９】
図５に示される電流測定では、ＢＩＳＴはランダムパターンなので、このパターン信号により電流の変動が予測される。そこで、ロジックＢＩＳＴ部６Ａ、及びメモリＢＩＳＴ部６Ｂの電流測定をそれぞれ複数回行い、その平均や分散などの統計処理を行うことにより機能ブロックの電流算出の精度を高めることができる。
【００５０】
上記例によれば、以下の作用効果を得ることができる。
【００５１】
（１）機能ブロック２Ａ，２Ｂ，２Ｃ，２Ｄ内に専用のＢＩＳＴ回路６を有し、ロジック部７はロジックＢＩＳＴ部６Ａ、メモリ部８はメモリＢＩＳＴ部６Ｂを用いてそれぞれパターン信号を自動生成することができる。ロジックＢＩＳＴ部６Ａ内のランダムパターンジェネレータ（ＬＲＰＧ）２０がスキャン用のパターン信号を、メモリＢＩＳＴ部６Ｂ内のアドレス生成器２４、データ生成器２５、制御部２６によってマーチングやチェッカ・ボードなどのテストパターン信号が生成される。故障検出用の自動生成パターン信号を複数用い、図５の測定フローチャートに従うことで、機能ブロックの電流を測定できる。ユーザクロック信号による動作中は、ロジックＢＩＳＴ部６Ａを用いることでロジック部７のみで電流を消費させることができ、メモリＢＩＳＴ部６Ｂを用いることでメモリ部８のみで電流を消費させることができる。
【００５２】
（２）クロック信号を供給するか否かを制御部４で制御することにより、実チップにて単一の機能ブロックの電流測定を可能とするために回路を独立して動作することができる。また、上記の構成は、別の使い方として、ＳｏＣテスト時の電流削減を行うことができる。例えば、機能ブロックＦＢ＿Ａのテスト、特にビルトインセルフテストを行う際、テスト対象の機能ブロック以外の機能ブロック、例えばＦＢ＿Ｂ、ＦＢ＿Ｃ、ＦＢ＿Ｄ、ＢＣを停止することで、テスト時の電流削減を行うことができる。
【００５３】
次に、第２の実施形態としてＦＰＧＡに論理を実装し、高速に電流評価を行う場合について説明する。
【００５４】
ＦＰＧＡでは数１０ＭＨｚで動作するため、ＲＴＬ（レジスタ、トランスファレベルのハードウェア記述言語）やゲートシミュレーションの数百倍高速である。ただし、実装率が低いため、電流評価用の追加回路をできるだけ小さくしなければならない。
【００５５】
図６に本発明の第２の実施形態に係る機能ブロック（ＦＢ）は、ＦＰＧＡによって形成される。また、図６に示される機能ブロック２Ａが、図２に示されるのと大きく相違するのは、ロジック電力情報検出部（ＰＷＲ＿ＬＧＣ）３０とメモリ電力情報検出部（ＰＷＲ＿ＭＥＭ）３１を備え、制御用の信号としてストローブ信号ｓｔｒｂを使用する点である。尚、ＦＰＧＡでは、故障検出をしなくても良いので、ＬＢＩＳＴＭＢＩＳＴは無くても良い。
【００５６】
ロジック部７は、組み合わせ回路３４Ａ，３４Ｂ，３４Ｃ，３４Ｄ，３４Ｅ，３４Ｆと、複数のフリップフロップ回路２２を含んで構成されるが、フリップフロップ回路２３に、ある規模の組み合わせ回路３４Ａ〜３４Ｆが付随するものとする。例えば、１ビットのフリップフロップ回路に平均的に１００ゲートの組み合わせ回路が付随するものとする。そして、フリップフロップ回路２２における論理値‘０’から論理値‘１’、論理値‘１’から論理値‘０’のトグル数を計測することにより、付随するゲートのトグル数が適当な確率でトグルすると仮定する。例えば、１ビットのフリップフロップ回路がトグルすると、１００ゲートのうち１０％のゲートの出力がトグルすると仮定する。これらフリップフロップ回路に付随するゲート数は、予めゲートを調べるか、幾つかの製品における機能ブロックから統計的に算出しておけばよい。このようにフリップフロップ回路のトグル数を計測することにより、ロジック部７のトグル数が概算できるため、これにプロセスや面積などの容量のパラメータを用いて、そこでの電流を見積もることができる。ロジック部７では、各フリップフロップ回路２２の出力と入力の排他的論理和をとるＥＯＲゲート３２がフリップフロップ回路２２に結合され、このＥＯＲゲート３２の出力信号がロジック電力情報検出部（ＰＷＲ＿ＬＧＣ）３０に入力される。メモリ部８には、コンパイルドＲＡＭなどの複数のＳＲＡＭ２３が設けられる。このＳＲＡＭ２３の電力は、各ＳＲＡＭのクロック信号とチップイネーブル、サイズなどのパラメータを用いて電流を算出することができる。そこで、各ＳＲＡＭ２３のクロック信号ｃｌｋ５４とクロックイネーブル信号ｃｅｎ、サイズなどのパラメータを考慮した係数を用いる。
【００５７】
図８には、上記ロジック電力情報検出部３０の構成例が示される。
【００５８】
ロジック電力情報検出部３０は、フリップフロップ回路における出力論理のトグル数に基づいてロジック回路毎の電力を検出する機能を有し、特に制限されないが、トグルカウンタ（ＣＮＴ）４０、加算器（＋）４１、ロジック用トグル保持用レジスタ（ＬＲＥＧ）４２、測定サイクル数保持レジスタ４５、インクリメンタ（ＩＮＣ）４６を含んで成る。Ｎ（Ｎは０を除く正の整数を意味する）本のフリップフロップ回路のトグル数ｆｆ＿ｔｏｇｇｌｅと、フリップフロップ回路４２の測定期間を示すストローブ信号ｓｔｒｂを入力とし、ロジックトグル保持用レジスタ４２にフリップフロップ回路のカウント数が保持される。測定サイクル数保持用レジスタ４５には、測定ストローブ信号のアサート期間に１サイクルに１づつインクリメンタ４６で加算しながら、測定サイクル数が保持される。複数のＥＯＲゲート３２の出力信号がトグルカウンタ４０に伝達される。このトグルカウンタ４０によりフリップフロップ回路のトグル数が合計され、ｌｏｇ（Ｎ＋１）ビット幅となり、加算器４１により複数サイクルのトグル数が累積される。トグル数の累積結果が大きいほど、多くの電力を消費するから、上記トグル数の累積結果に基づいてロジック回路毎の電力を検出することができる。ロジックトグル保持用レジスタ４２並びに、測定サイクル数保持用レジスタ４５はアドレスを有するメモリマップドレジスタのため、アドレス指定により、内部バス９からレジスタのリードライトを行うことができる。
【００５９】
図９には、上記メモリ電力情報検出部３１の構成例が示される。
【００６０】
メモリ電力情報検出部３１は、上記メモリを選択するためのクロックイネーブル信号ｃｅｎに対して所定の係数で重み付けした信号を上記メモリの電流値計算の情報として使用する機能を有し、特に制限されないが、クロックイネーブル信号ｃｅｎとクロック信号ｃｌｋとのアンド論理を得るＡＮＤ（アンド）ゲート５０、サイズなどのパラメータで異なる電力値に対応するための係数情報Ｃｏｅｆｆ１とバッファ５８の出力信号とのアンド論理を得るＡＮＤゲート５１、加算器５２、メモリ電力情報保持用のレジスタ（ＭＲＥＧ）５３、測定サイクル数保持レジスタ５６、インクリメンタ（ＩＮＣ）５７を含んで成る。クロックイネーブル信号ｃｅｎとクロック信号ｃｌｋ及びそれに対応する論理回路５０〜５１は、図６に示される複数のＳＲＡＭ２３に対応する。係数は、メモリの種類、例えばシングルポート、デュアルポート、レジスタファイル、ＲＯＭなど、あるいはサイズ１ｋＢ、１６ｋＢなどにより電流情報の重み付けを行う。加算器４２により複数サイクルのメモリ情報が累積される。測定サイクル数保持用レジスタ５６には、測定ストローブ信号のアサート期間に１サイクルに１ずつインクリメンタ５７で加算しながら、測定サイクル数を保持する。尚、測定サイクル数保持用レジスタ５６とインクリメンタ５７は、ロジック電力情報検出部３０と共用しても良い。メモリ電力情報保持レジスタ５３並びに、測定サイクル数保持用レジスタ５６はアドレスを有するメモリマップドレジスタのため、アドレス指定により、内部バス９から各レジスタのリードライトを行うことができる。
【００６１】
図７には、図６に示される構成を採用した場合の電流測定の流れが示される。
【００６２】
電流測定を行うのは、通常のプログラム、あるいはテスト用自動生成パターンのロジックＢＩＳＴ部６Ａ、メモリＢＩＳＴ部６Ｂのいずれでも構わない（７０１）。ロジック部７とメモリ部８とは同時に計測が可能であるが、設定方法と測定方法が異なるため、説明の便宜上、本フローチャートではそれらを分離している。
【００６３】
まず、ロジック部７を計測する場合、すなわち、ステップ７０２の判別において「ｙｅｓ」と判断された場合について説明する。
【００６４】
ロジック用トグル保持用レジスタ４２と測定サイクル数保持レジスタ４５とが初期化される（７０３）。測定開始はストローブ信号ｓｔｒｂがアサートされる（７０４）。測定ストローブ信号は、制御部４で生成される。ソフトウェアで測定期間を設定できるように制御部４内に、ストローブ信号生成用のメモリマップドされたレジスタを設けてもよい。ロジック部７のフリップフロップ回路のトグル和は、ＥＯＲゲート３２の出力をカウントすることで得る（７０５）。測定サイクル数はストローブ信号を毎サイクル更新することで得られる。そして、測定サイクルの期間中は、フリップフロップ回路のトグル数の累算を行う（７０６）。測定終了は、ｓｔｒｂ信号のネゲートによって知ることができる（７０７）。フリップフロップ回路のトグル数の累算と有効サイクル数から、ＦＦに繋がる組み合わせ回路のトグルも考慮し、予め、フリップフロップ回路のトグル数の累算と有効サイクル数から換算される電流値を用意することにより、電流値が求められる（７０８）。
【００６５】
次に、メモリ部８を計測する場合、すなわち、ステップ７０７の判別において「ｎｏ」と判断された場合について説明する。
【００６６】
メモリ用トグル保持用レジスタ４２と測定サイクル数保持レジスタ４５とが初期化される（７１０）。測定開始はストローブ信号ｓｔｒｂがアサートされる（７１１）。メモリのクロックイネーブル信号ｃｅｎを係数重み付けした信号を電流値計算の情報として使用する（７１２）。ここで、チップイネーブル信号をメモリの電流値計算に使用する理由について説明する。
【００６７】
例えばＳＲＡＭ２３が図１０に示されるように構成されているものとする。すなわち、ＳＲＡＭ２３は、ＳＲＡＭ制御部（ＣＴＬ）７０、クロック信号制御を行うＳＲＡＭクロック信号制御部（ＣＣＴＬ）７１、データやアドレスの入出力バッファ（ＩＯＢＵＦ）７２、アドレスのローデコーダ（ＲＤＥＣ）７３、ワードドライバ（ＷＤ）７４、カラムデコーダ（ＣＤＥＣ）７５、カラムドライバ（ＣＤ）７６、メモリアレイ（ＭＡＲＹ）７７、センスアンプ（ＳＡ）７８を含んで成る。メモリのクロックイネーブル信号ｃｅｎは、ハイアクティブ（正論理）であり、ＳＲＡＭ制御部７０と入出力バッファ７２へのクロック信号を供給する。ＳＲＡＭ制御部７０は、ワードドライバ７４、カラムドライバ７６、センスアンプ７８を制御する。クロックイネーブル信号ｃｅｎが非アクティブとされるとき、ＳＲＡＭ制御部７０、入出力バッファ７２、ワードドライバ７４、カラムドライバ７６、センスアンプ７８が停止されるため、電流をほとんど消費しない。そこで、クロックイネーブル信号ｃｅｎの論理状態によって、ＳＲＡＭ２３で電流を消費するか否かを判別することができる。尚、メモリ部８での電流消費量は、メモリサイズ等により異なるため、適宜の係数で重み付けを行うようにする。
【００６８】
メモリの測定サイクル数はストローブ信号を毎サイクル更新することで得られる（７１３）。そして、測定サイクルの期間中は、クロックイネーブル信号ｃｅｎに係数重み付けした値の累算を行う。測定終了は、ｓｔｒｂ信号のネゲートによって知ることができる（７１４）。係数付ｃｅｎ和の累算と有効サイクル数から、予め、係数付ｃｅｎ和の累算と有効サイクル数から換算される電流値を用意することにより、メモリの電流値が求められる（７１５）。そして、測定を終了するか否かの判別が行われる（７０９）。この判別において、未だ測定を終了しないと判断された場合には、ステップ７０１に戻される。
【００６９】
上記の例によれば、単一のロジック電力情報検出部３０により、複数のＥＯＲゲート３２の出力信号を取り込むことで、フリップフロップ回路２２における出力論理のトグル数に基づく電力検出が可能とされるので、ＦＰＧＡ上のトグル計測回路の回路規模を小さく抑えることができる。しかも、ＥＯＲゲート３２によりフリップフロップ回路２２における出力論理のトグル数を精度良く取り込むことができるので、電流精度の低下を抑えることができる。
【００７０】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７１】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＳｏＣに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。
【図面の簡単な説明】
【００７２】
【図１】本発明にかかる半導体集積回路の構成例ブロック図である。
【図２】上記システムオンチップに含まれる機能ブロックの構成例ブロック図である。
【図３】クロックイネーブル信号を用いてクロック信号を停止する際の機能ブロックの状態説明図である。
【図４】上記システムオンチップにおける機能ブロックに流れる電流の実測説明図である。
【図５】上記システムオンチップにおける機能ブロックに流れる電流測定の流れを示すフローチャートである。
【図６】本発明にかかる半導体集積回路の別の構成例ブロック図である。
【図７】図６に示される構成を採用した場合の電流測定の流れを示すフローチャートである。
【図８】図６におけるロジック電力情報検出部の構成例ブロック図である。
【図９】図６におけるメモリ電力情報検出部の構成例ブロック図である。
【図１０】図６におけるＳＲＡＭの構成例ブロック図である。
【符号の説明】
【００７３】
１  システムオンチップ（ＳｏＣ）
２Ａ、２Ｂ、２Ｃ、２Ｄ  機能ブロック（ＦＢ）
３  ＰＬＬ
４  制御部（ＣＴＬ）
５  バス制御部（ＢＣ）
６  ビルトインセルフテスト（ＢＩＳＴ）
６Ａ  ロジックＢＩＳＴ部
６Ｂ  メモＢＩＳＴ部
７  ロジック部
８  メモリ部
９  内部バス
１１，１２  電源端子
１３、５０，５１  ＡＮＤゲート
２０  ロジックランダムパターン生成部（ＬＲＰＧ）
２１  ロジックテスト出力圧縮器（ＬＴＯＣ）
２２  スキャン端子付フリップフロップ回路
２３  ＳＲＡＭ
２４  アドレス生成器（ＡＤＲ＿ＧＥＮ）
２５  データ生成器（ＤＡＴＡ＿ＧＥＮ）
２６  制御部（ＭＢＩＳＴ＿ＣＴＬ）
２７  メモリ出力比較器（ＭＣＭＰ）
３０  ロジック電力情報検出部
３１  メモリ電力情報検出部
３２  ＥＯＲゲート
４０  トグルカウンタ
４１、５２  加算器
４２  ロジックトグル保持用レジスタ
４５、５６  測定サイクル数保持用レジスタ
４６、５７  インクリメンタ
５３  メモリ情報レジスタ
５８  バッファ
６０  ＳｏＣ実装ボード
６１  電流プローブ
６２  オシロスコープ
６２ＤＳＰ  オシロスコープの表示画面
７０  ＳＲＡＭ制御部（ＣＴＬ）
７１  ＳＲＡＭクロック信号制御部（ＣＣＴＬ）
７２  入出力バッファ（ＩＯＢＵＦ）
７３  ローデコーダ（ＲＤＥＣ）
７４  ワードドライバ（ＷＤ）
７５  カラムデコーダ（ＣＤＥＣ）
７６  カラムドライバ（ＣＤ）
７７  メモリアレイ（ＭＡＲＹ）
７８  センスアンプ（ＳＡ）
２９Ａ，２９Ｂ，２９Ｃ，２９Ｄ，３４Ａ，３４Ｂ，３４Ｃ，３４Ｄ，３４Ｅ，３４Ｆ，８０，８１，８２  組み合わせ回路
【図１】
2008209201.tif 000003
【図２】
2008209201.tif 000004
【図３】
2008209201.tif 000005
【図４】
2008209201.tif 000006
【図５】
2008209201.tif 000007
【図６】
2008209201.tif 000008
【図７】
2008209201.tif 000009
【図８】
2008209201.tif 000010
【図９】
2008209201.tif 000011
【図１０】
2008209201.tif 000012