(57)【特許請求の範囲】
【請求項１】
第１の組合せ回路から第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路に出力する少なくとも１つのシフト回路と、
所定のシステムクロックに基づいて所定のイネーブル信号及び所定のシフトクロックを生成し、該生成した所定のイネーブル信号及び所定のシフトクロックを前記シフト回路に出力するクロック生成回路と、を備え、
前記少なくとも１つのシフト回路は、
それぞれ一対の選択回路及び順序回路からなる複数の出力制御回路を有し、
前記複数の出力制御回路は、一の前記出力制御回路の該順序回路からの出力が他の前記出力制御回路の該選択回路に入力されるように環状に接続され、
前記クロック生成回路は、前記少なくとも１つのシフト回路における前記順序回路の個数の逓倍に対応する回数だけ前記所定のシステムクロックが交番する第１の期間にわたって第１の状態となり、前記第１の期間の後に前記第２の信号をキャプチャするために必要な第２の期間にわたって第２の状態となるように前記所定のイネーブル信号を生成し、対応する前記選択回路に出力するとともに、前記第１の期間に加えて前記所定のシステムクロックが１回交番する第３の期間にわたって交番するように前記所定のシフトクロックを生成し、対応する前記順序回路に出力し、
前記複数の出力制御回路のそれぞれの前記選択回路は、前記所定のイネーブル信号が前記第１の状態である場合に、前記環状に接続された他の出力制御回路の順序回路からの出力を選択して出力し、前記所定のイネーブル信号が前記第２の状態である場合に、前記第１の信号を選択して出力する、
半導体集積回路。
【請求項２】
前記複数の出力制御回路のそれぞれにおける該選択回路は、前記所定のイネーブル信号に従って、前記第１の信号又は前記一の出力制御回路の前段の出力制御回路における順序回路から出力される第２の信号のいずれかを、対応する該順序回路に選択信号として出力し、
前記複数の出力制御回路のそれぞれにおける該順序回路は、前記所定のシフトクロックに従って、前記対応する選択信号を前記第２の信号として出力する、
請求項１記載の半導体集積回路。
【請求項３】
前記シフト回路を複数備え、
前記複数のシフト回路のそれぞれは、同じ個数の順序回路を有するように構成される、
請求項１記載の半導体集積回路。
【請求項４】
半導体集積回路の消費電力を、制御装置の制御の下、測定するための測定方法であって、
環状に接続された複数の順序回路を有し、第１の組合せ回路から第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路に出力可能な少なくとも１つのシフト回路を備える半導体集積回路を準備することと、
前記半導体集積回路にテストパターンを入力することと、
前記テストパターンの複数の状態に対応する各前記順序回路の出力の状態を取得することと、
取得した前記各順序回路の出力の状態に基づいて、前記半導体集積回路の消費電力を算出することと、
を含み、
前記各順序回路の出力の状態を取得することは、
第１のモードで、前記半導体集積回路の動作周波数を第１の周波数に設定することと、
前記第１のモードで、前記第１の組合せ回路を介して入力を受けて、前記少なくとも１つのシフト回路における各順序回路の出力をキャプチャすることと、
第２のモードで、前記半導体集積回路の動作周波数を前記第１の周波数より高い第２の周波数に設定することと、
前記第２のモードで、前記少なくとも１つのシフト回路における前記環状に接続された一の前記順序回路の出力の状態を取得し、さらに、該少なくとも１つのシフト回路における前記環状に接続された各順序回路の出力の状態を次段の順序回路にシフトさせることを、前記少なくとも１つのシフト回路における順序回路の個数の逓倍に対応する回数に一回分加えた回数だけ繰り返すことと、
を含む、測定方法。
【請求項５】
半導体集積回路の消費電力を測定するための測定装置であって、
少なくともメモリ及びプロセッサを有する制御装置を備え、
前記制御装置は、
環状に接続された複数の順序回路を有し、第１の組合せ回路から第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路に出力可能な少なくとも１つのシフト回路を備える半導体集積回路を所定の位置に配置し、
前記半導体集積回路にテストパターンを入力し、
前記テストパターンの複数の状態に対して、
第１のモードで、前記半導体集積回路の動作周波数を第１の周波数に設定し、
前記第１のモードで、前記第１の組合せ回路を介して入力を受けて、前記少なくとも１つのシフト回路における各順序回路の出力をキャプチャし、
第２のモードで、前記半導体集積回路の動作周波数を第１の周波数より高い第２の周波数に設定し、
前記第２のモードで、前記少なくとも１つのシフト回路における前記環状に接続された一の前記順序回路の出力の状態を取得し、さらに、該少なくとも１つのシフト回路における前記環状に接続された各順序回路の出力の状態を次段の順序回路にシフトさせることを前記少なくとも１つのシフト回路における順序回路の個数の逓倍に対応する回数に一回分だけ加えた回数だけ繰り返し、
取得した前記順序回路の出力の状態に基づいて、前記半導体集積回路の消費電力を算出するように構成される、
測定装置。
【請求項６】
半導体集積回路モデルの設計を行うための半導体設計装置であって、
プロセッサと、
所定の設計プログラムを記憶可能なメモリと、を備え、
前記所定のプログラムを実行する前記プロセッサの制御の下、
各モジュールに割り当てられた属性に基づいて、消費電力の見積もりを個別に行うべきモジュールがあるか否かを判断し、
前記消費電力の見積もりを個別に行うべきモジュールがあると判断する場合、該モジュールのそれぞれに対する全ての順序回路モデルを抽出し、前記抽出した全ての順序回路モデルに対応するシフト回路モデルをそれぞれ生成し、さらに、生成した前記シフト回路モデルのそれぞれが有する順序回路モデルの個数が一致するように、前記シフト回路モデルのそれぞれにダミーの順序回路モデルを挿入し、
前記消費電力の見積もりを個別に行うモジュールがないと判断する場合、前記半導体集積回路モデルから全ての順序回路モデルを抽出し、前記抽出した全ての順序回路モデルを分割することで対応する複数のシフト回路を生成し、さらに、生成した前記複数のシフト回路モデルのそれぞれが有する順序回路モデルの個数が一致するように、前記複数のシフト回路モデルのそれぞれにダミーの順序回路モデルを挿入する、
半導体設計装置。
【請求項７】
半導体集積回路モデルの設計を行う半導体設計装置によって実行される半導体設計方法であって、
各モジュールに割り当てられた属性に基づいて、消費電力の見積もりを個別に行うべきモジュールがあるか否か判断することと、
前記消費電力の見積もりを個別に行うべきモジュールがあると判断する場合、該モジュールのそれぞれに対する全ての順序回路モデルを抽出し、前記抽出した全ての順序回路モデルに対応するシフト回路モデルをそれぞれ生成し、さらに、生成した前記シフト回路モデルのそれぞれが有する順序回路モデルの個数が一致するように、前記シフト回路モデルのそれぞれにダミーの順序回路モデルを挿入することと、
前記消費電力の見積もりを個別に行うべきモジュールがないと判断する場合前記半導体集積回路モデルから全ての順序回路モデルを抽出し、前記抽出した全ての順序回路モデルを分割することで対応する複数のシフト回路を生成し、さらに、生成した前記複数のシフト回路モデルのそれぞれが有する順序回路モデルの個数が一致するように、前記複数のシフト回路モデルのそれぞれにダミーの順序回路モデルを挿入することと、
を含む、半導体設計方法。
【請求項８】
半導体集積回路の消費電力を見積もるためのプログラムであって、
前記プログラムは、見積装置のプロセッサに、
第１の組合せ回路モデルから第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路モデルに出力する少なくとも１つのシフト回路モデルを形成する機能と、
所定のシステムクロックに基づいて所定のイネーブル信号及び所定のシフトクロックを生成し、該生成した所定のイネーブル信号及び所定のシフトクロックを前記シフト回路モデルに出力するクロック生成回路モデルを形成する機能と、を実現させるように構成され、
前記少なくとも１つのシフト回路モデルは、
それぞれ一対の選択回路モデル及び順序回路モデルからなる複数の出力制御回路モデルを有し、
前記複数の出力制御回路モデルは、一の前記出力制御回路モデルの該順序回路モデルからの出力が他の前記出力制御回路モデルの該選択回路モデルに入力されるように環状に接続され、
前記クロック生成回路モデルを形成する機能は、
前記少なくとも１つのシフト回路モデルにおける前記順序回路モデルの個数の逓倍に対応する回数だけ前記所定のシステムクロックが交番する第１の期間にわたって第１の状態となり、前記第１の期間の後に前記第２の信号をキャプチャするために必要な第２の期間にわたって第２の状態となるように前記所定のイネーブル信号を生成する機能と、
対応する前記選択回路モデルに出力するとともに、前記第１の期間に加えて前記所定のシステムクロックが１回交番する第３の期間にわたって交番するように前記所定のシフトクロックを生成し、対応する前記順序回路モデルに出力する機能と、を含み、
前記複数の出力制御回路モデルのそれぞれの前記選択回路モデルは、前記所定のイネーブル信号が前記第１の状態である場合に、前記環状に接続された他の出力制御回路モデルの順序回路からの出力を選択して出力し、前記所定のイネーブル信号が前記第２の状態である場合に、前記第１の信号を選択して出力する、
プログラム。
【請求項９】
半導体集積回路モデルの消費電力を見積もる見積装置により実行される見積方法であって、
環状に接続された複数の順序回路モデルを有し、第１の組合せ回路から第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路に出力可能な少なくとも１つのシフト回路モデルを備える半導体集積回路モデルを取得することと、
前記半導体集積回路モデルにシミュレーションパターンを入力することと、
前記シミュレーションパターンの複数の状態に対応する順序回路モデルの出力の状態を取得することと、
取得した前記順序回路モデルの出力の状態に基づいて、前記半導体集積回路モデルの消費電力を算出することと、を含み、
前記状態を取得することは、
第１のモードで、前記半導体集積回路モデルの動作周波数を第１の周波数に設定することと、
前記第１のモードで、前記第１の組合せ回路を介して入力を受けて、前記少なくとも１つのシフト回路モデルにおける各順序回路モデルの出力をキャプチャすることと、
第２のモードで、前記半導体集積回路モデルの動作周波数を前記第１の周波数より高い第２の周波数に設定することと、
前記第２のモードで、前記少なくとも１つのシフト回路モデルにおける前記環状に接続された一の前記順序回路モデルの出力の状態を取得し、さらに、該少なくとも１つのシフト回路モデルにおける前記環状に接続された各順序回路モデルの出力の状態を次段の順序回路モデルにシフトさせることを前記少なくとも１つのシフト回路モデルにおける順序回路モデルの個数の逓倍に対応する回数に１回分だけ加えた回数だけ繰り返すことと、
を含む、見積方法。
【請求項１０】
半導体集積回路モデルの消費電力を見積もるための見積装置であって、
少なくともメモリとプロセッサを含む実行装置と、
シミュレーションパターンを記憶する記憶装置と、を備え、
前記実行装置は、
環状に接続された複数の順序回路モデルを有し、第１の組合せ回路から第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路に出力可能な少なくとも１つのシフト回路モデルを取得し、
前記半導体集積回路モデルにシミュレーションパターンを入力し、
前記シミュレーションパターンの複数の状態に対して、
第１のモードで、前記半導体集積回路モデルの動作周波数を第１の周波数に設定し、
前記第１のモードで、前記第１の組合せ回路を介して入力を受けて、前記少なくとも１つのシフト回路モデルにおける各順序回路モデルの出力をキャプチャし、
第２のモードで、前記半導体集積回路モデルの動作周波数を前記第１の周波数より高い第２の周波数に設定し、
前記第２のモードで、前記少なくとも１つのシフト回路モデルにおける前記環状に接続された一の前記順序回路モデルの出力の状態を取得し、さらに、該少なくとも１つのシフト回路モデルにおける前記環状に接続された各順序回路モデルの出力の状態を次段の順序回路にシフトさせることを前記少なくとも１つのシフト回路モデルにおける順序回路モデルの個数の逓倍に対応する回数に１回分だけ加えた回数だけ繰り返し、
取得した前記順序回路モデルの出力の状態に基づいて、前記半導体集積回路モデルの消費電力を算出すように構成される、
見積装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の消費電力見積もり技術に関し、特に消費電力の測定を可能とする半導体集積回路、半導体集積回路の消費電力を測定する方法、半導体集積回路の消費電力を見積もる見積装置、及び消費電力の測定を可能とする半導体集積回路を設計する設計装置に関する。
【背景技術】
【０００２】
半導体集積回路にとって、消費電力は、チップの面積や省エネ性能などに影響するため、半導体集積回路の設計段階で消費電力を見積もることは重要である。半導体集積回路の消費電力を設計段階で見積もる方法として、シミュレーションを用いる方法が知られている。
【０００３】
シミュレーションを用いる方法では、半導体集積回路の実際の動作のシミュレーションを実行するためのシミュレーションプログラムと、半導体集積回路の回路構成に関する情報を記述した回路情報と、半導体集積回路を実際に動作させる際の入力信号のパターンを記述したシミュレーションパターンとが使用される。かかるシミュレーションでは、シミュレーションを実行する装置は、半導体集積回路において予め定められた観測ノードの状態が遷移した回数をシミュレーション結果として記憶媒体に記録する。シミュレーションを実行する装置は、記録されたノードの状態が遷移した回数（すなわち、トグル回数）に基づいて、設計対象の半導体集積回路の消費電力を見積もる。
【０００４】
シミュレーションを用いる方法では、消費電力を見積もるために半導体集積回路の観測ノードの状態の遷移の情報が必要とされる。しかしながら、従来のシミュレーション結果は、一般には、観測ノードの状態の遷移の情報の他に、例えば、観測ノードの電位のアナログ値や、スキュー及びスルーの情報など、消費電力の見積もりに必要としない情報を有している。従来のシミュレーションを用いる方法では、シミュレーションを実行する装置は、かかる消費電力の見積もりに不必要な情報を算出するために、その実行時間を増大させている。シミュレーションの実行時間は、観測ノード数に比例するため、シミュレーションの実行時間の増大は、観測ノード数が大きい半導体集積回路の消費電力を見積もる際に無視できない問題である。
【０００５】
一方、半導体集積回路の消費電力を実際に測定することは、製品評価のために重要である。半導体集積回路は、種々の機能を実現するための構成要素（すなわち、モジュール）を有しており、モジュール毎の消費電力を測定することが求められている。このような半導体集積回路の消費電力の見積もりのためのシミュレーションの実行時間の増大を抑制するとともに、半導体集積回路の消費電力をモジュール毎に実際に測定するために、計測対象回路の出力のトグル回数を記録する消費電力評価方法が存在する。
【０００６】
例えば、下記特許文献１は、消費電力計測対象回路の消費電力評価方法を開示する。下記特許文献１に開示される消費電力評価方法は、消費電力計測対象回路、及び該消費電力計測対象回路の回路要素のトグル回数を検出するトグル検出回路が構成されたフィールドプログラマブルアレイに対してシミュレーションパターンを入力し、該シミュレーションの終了後に該トグル検出回路により検出したトグル回数に基づいて、消費電力計測対象回路の消費電力を求めることを特徴とする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−２８８２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１に開示される従前の回路は、計測対象回路のトグル回数を記録するが、計測対象回路の全てのノードのトグル回数を記録する必要があり、シミュレーションの実行時間の増大の抑制にはいまだ課題を有していた。また、特許文献１に開示される従前の回路は、トグル検出回路が組み込まれた半導体集積回路、又はトグル検出回路が構成されたフィールドプログラマブルアレイをどのように制御して効率的に消費電力の見積もりのために計測対象のトグル回数の算出を行うことについて、何ら考慮されていなかった。また、特許文献１に開示される従前の回路は、計測対象回路のノード毎にトグル検出回路を必要とするため、半導体集積回路にトグル検出回路を組み込んだ場合、チップ面積の増大を招くという課題を有していた。
【０００９】
そこで、本発明は、チップ面積の増大を抑制しつつ、効率的に消費電力の見積もりを行うことができる半導体集積回路を提供することを目的とする。
【００１０】
また、本発明は、モジュール毎に効率的に消費電力の測定を行うことができる半導体集積回路を提供することを目的とする。
【００１１】
また、本発明は、半導体集積回路の消費電力を効率的に見積もることができる見積装置を提供することを目的とする。
【００１２】
また、本発明は、モジュール毎に効率的に消費電力の測定を行う半導体集積回路を設計することができる半導体設計装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【００１４】
すなわち、ある観点に従う本発明は、第１の組合せ回路から第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路に出力する少なくとも１つのシフト回路と、所定のシステムクロックに基づいて所定のイネーブル信号及び所定のシフトクロックを生成し、該生成した所定のイネーブル信号及び所定のシフトクロックを前記シフト回路に出力するクロック生成回路と、を備え、前記少なくとも１つのシフト回路は、それぞれ一対の選択回路及び順序回路からなる複数の出力制御回路を有し、前記複数の出力制御回路は、一の前記出力制御回路の該順序回路からの出力が他の前記出力制御回路の該選択回路に入力されるように環状に接続され、前記クロック生成回路は、前記少なくとも１つのシフト回路における前記順序回路の個数の逓倍に対応する回数だけ前記所定のシステムクロックが交番する第１の期間にわたって第１の状態となり、前記第１の期間の後に前記第２の信号をキャプチャするために必要な第２の期間にわたって第２の状態となるように前記所定のイネーブル信号を生成し、対応する前記選択回路に出力するとともに、前記第１の期間に加えて前記所定のシステムクロックが１回交番する第３の期間にわたって交番するように前記所定のシフトクロックを生成し、対応する前記順序回路に出力する、半導体集積回路である。
【００１５】
ここで、前記複数の出力制御回路のそれぞれにおける該選択回路は、前記所定のイネーブル信号に従って、前記第１の信号又は前記一の出力制御回路の前段の出力制御回路における順序回路から出力される第２の信号のいずれかを、対応する該順序回路に選択信号として出力し、前記複数の出力制御回路のそれぞれにおける該順序回路は、前記所定のシフトクロックに従って、前記対応する選択信号を前記第２の信号として出力しても良い。
【００１６】
また、前記半導体集積回路は、前記シフト回路を複数備え、前記複数のシフト回路のそれぞれは、同じ個数の順序回路を有するように構成されても良い。
【００１７】
さらに、別の観点に従う本発明は、半導体集積回路の消費電力を、制御装置の制御の下、測定するための測定方法であって、環状に接続された複数の順序回路を有する少なくとも１つのシフト回路を備える半導体集積回路を準備することと、前記半導体集積回路にテストパターンを入力することと、前記テストパターンの複数の状態に対応する各前記順序回路の出力の状態を取得することと、取得した前記各順序回路の出力の状態に基づいて、前記半導体集積回路の消費電力を算出することと、を含み、前記各順序回路の出力の状態を取得することは、前記半導体集積回路の動作周波数を第１の周波数に設定することと、前記少なくとも１つのシフト回路における各順序回路の出力をキャプチャすることと、前記半導体集積回路の動作周波数を前記第１の周波数より高い第２の周波数に設定することと、前記少なくとも１つのシフト回路における一の前記順序回路の出力の状態を取得し、さらに、該少なくとも１つのシフト回路における各順序回路の出力の状態を次段の順序回路にシフトさせることを、前記シフト回路における順序回路の個数の逓倍に対応する回数に一回分加えた回数だけ繰り返すことと、を含む、測定方法である。
【００１８】
さらに、別の観点に従う本発明は、半導体集積回路の消費電力を測定するための測定装置であって、少なくともメモリ及びプロセッサを有する制御装置を備え、前記制御装置は、環状に接続された複数の順序回路を有する少なくとも１つのシフト回路を備える半導体集積回路を所定の位置に配置し、前記半導体集積回路にテストパターンを入力し、前記テストパターンの複数の状態に対して、前記半導体集積回路の動作周波数を第１の周波数に設定し、前記少なくとも１つのシフト回路における各順序回路の出力をキャプチャし、前記半導体集積回路の動作周波数を第１の周波数より高い第２の周波数に設定し、前記少なくとも１つのシフト回路における一の前記順序回路の出力の状態を取得し、さらに、該少なくとも１つのシフト回路における各順序回路の出力の状態を次段の順序回路にシフトさせることを前記シフト回路における順序回路の個数の逓倍に対応する回数に一回分だけ加えた回数だけ繰り返し、取得した前記順序回路の出力の状態に基づいて、前記半導体集積回路の消費電力を算出するように構成される、測定装置である。
【００１９】
さらに、別の観点に従う本発明は、半導体集積回路モデルの設計を行うための半導体設計装置であって、プロセッサと、所定の設計プログラムを記憶可能なメモリと、を備え、前記所定のプログラムを実行する前記プロセッサの制御の下、各モジュールに割り当てられた属性に基づいて、消費電力の見積もりを個別に行うべきモジュールがあるか否かを判断し、前記消費電力の見積もりを個別に行うべきモジュールがあると判断する場合、該モジュールに対する順序回路モデルを抽出し、前記抽出した順序回路モデルに対応するシフト回路モデルを生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも１つに順序回路モデルを生成し、前記消費電力の見積もりを個別に行うモジュールがないと判断する場合、前記順序回路モデルに対応するシフト回路を生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも１つに順序回路モデルを生成する、半導体設計装置である。
【００２０】
さらに、別の観点に従う本発明は、半導体集積回路モデルの設計を行う半導体設計装置によって実行される半導体設計方法であって、各モジュールに割り当てられた属性に基づいて、消費電力の見積もりを個別に行うべきモジュールがあるか否か判断することと、前記消費電力の見積もりを個別に行うべきモジュールがあると判断する場合、該モジュールに対する順序回路モデルを抽出し、前記抽出した順序回路モデルに対応するシフト回路モデルを生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも１つに順序回路モデルを生成することと、前記消費電力の見積もりを個別に行うべきモジュールがないと判断する場合、前記順序回路モデルに対応するシフト回路モデルを生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも１つに順序回路モデルを生成することと、を含む、半導体設計方法である。
【００２１】
さらに、別の観点に従う本発明は、半導体集積回路の消費電力を見積もるためのプログラムであって、前記プログラムは、見積装置のプロセッサに、第１の組合せ回路モデルから第１の信号を受けて、該第１の信号に基づく第２の信号を第２の組合せ回路モデルに出力する少なくとも１つのシフト回路モデルを形成する機能と、所定のシステムクロックに基づいて所定のイネーブル信号及び所定のシフトクロックを生成し、該生成した所定のイネーブル信号及び所定のシフトクロックを前記シフト回路モデルに出力するクロック生成回路モデルを形成する機能と、を実現させるように構成され、前記少なくとも１つのシフト回路モデルは、それぞれ一対の選択回路モデル及び順序回路モデルからなる複数の出力制御回路モデルを有し、前記複数の出力制御回路モデルは、一の前記出力制御回路モデルの該順序回路モデルからの出力が他の前記出力制御回路モデルの該選択回路モデルに入力されるように環状に接続され、前記クロック生成回路モデルを形成する機能は、前記少なくとも１つのシフト回路モデルにおける前記順序回路モデルの個数の逓倍に対応する回数だけ前記所定のシステムクロックが交番する第１の期間にわたって第１の状態となり、前記第１の期間の後に前記第２の信号をキャプチャするために必要な第２の期間にわたって第２の状態となるように前記所定のイネーブル信号を生成する機能と、対応する前記選択回路モデルに出力するとともに、前記第１の期間に加えて前記所定のシステムクロックが１回交番する第３の期間にわたって交番するように前記所定のシフトクロックを生成し、対応する前記順序回路モデルに出力する機能と、を含む、プログラムである。
【００２２】
さらに、別の観点に従う本発明は、半導体集積回路モデルの消費電力を見積もる見積装置により実行される見積方法であって、環状に接続された複数の順序回路モデルを有する少なくとも１つのシフト回路モデルを備える半導体集積回路モデルを取得することと、前記半導体集積回路モデルにシミュレーションパターンを入力することと、前記シミュレーションパターンの複数の状態に対応する順序回路モデルの出力の状態を取得することと、取得した前記順序回路モデルの出力の状態に基づいて、前記半導体集積回路モデルの消費電力を算出することと、を含み、前記状態を取得することは、前記半導体集積回路モデルの動作周波数を第１の周波数に設定することと、前記少なくとも１つのシフト回路モデルにおける各順序回路モデルの出力をキャプチャすることと、前記半導体集積回路モデルの動作周波数を前記第１の周波数より高い第２の周波数に設定することと、前記少なくとも１つのシフト回路モデルにおける一の前記順序回路モデルの出力の状態を取得し、さらに、該少なくとも１つのシフト回路モデルにおける各順序回路モデルの出力の状態を次段の順序回路モデルにシフトさせることを前記シフト回路モデルにおける順序回路モデルの個数の逓倍に対応する回数に１回分だけ加えた回数だけ繰り返すことと、を含む、見積方法である。
【００２３】
さらに、別の観点に従う本発明は、半導体集積回路モデルの消費電力を見積もるための見積装置であって、少なくともメモリとプロセッサを含む実行装置と、シミュレーションパターンを記憶する記憶装置と、を備え、前記実行装置は、環状に接続された複数の順序回路モデルを有する少なくとも１つのシフト回路モデルを取得し、前記半導体集積回路モデルにシミュレーションパターンを入力し、前記シミュレーションパターンの複数の状態に対して、前記半導体集積回路モデルの動作周波数を第１の周波数に設定し、前記少なくとも１つのシフト回路モデルにおける各順序回路モデルの出力をキャプチャし、前記半導体集積回路モデルの動作周波数を前記第１の周波数より高い第２の周波数に設定し、前記少なくとも１つのシフト回路モデルにおける一の前記順序回路モデルの出力の状態を取得し、さらに、該少なくとも１つのシフト回路モデルにおける各順序回路モデルの出力の状態を次段の順序回路にシフトさせることを前記シフト回路モデルにおける順序回路モデルの個数の逓倍に対応する回数に１回分だけ加えた回数だけ繰り返し、取得した前記順序回路モデルの出力の状態に基づいて、前記半導体集積回路モデルの消費電力を算出すように構成される、見積装置である。
【発明の効果】
【００２４】
本発明によれば、半導体集積回路は、チップ面積の増大を抑制しつつ、効率的に消費電力の見積もりを行うことができるようになる。
【００２５】
また、本発明によれば、半導体集積回路は、モジュール毎に効率的に消費電力の測定を行うことができるようになる。
【００２６】
また、本発明によれば、見積装置は、半導体集積回路の消費電力を効率的に見積もることができるようになる。
【００２７】
また、本発明によれば、半導体設計装置は、モジュール毎に効率的に消費電力の測定を行うことができる半導体集積回路を設計することができるようになる。
【００２８】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。
【図２】本発明の一実施形態に係る半導体集積回路のクロック生成回路の構成の一例を示す図である。
【図３Ａ】本発明の一実施形態に係る半導体集積回路のシフト回路の構成の一例を示す図である。
【図３Ｂ】本発明の一実施形態に係る半導体集積回路のシフト回路の構成の他の例を示す図である。
【図３Ｃ】本発明の一実施形態に係る半導体集積回路のシフト回路の構成の他の例を示す図である。
【図４】本発明の一実施形態に係る半導体集積回路のテストモードにおける各種の信号のタイミングチャートである。
【図５】本発明の一実施形態に係る半導体測定システムの概略構成の一例を示す図である。
【図６】本発明の一実施形態に係る半導体測定装置が半導体集積回路の消費電力を測定する動作を概略的に示すフローチャートである。
【図７】本発明の一実施形態に係る半導体設計装置の概略構成の一例を示す図である。
【図８】本発明の一実施形態に係る半導体設計装置のメモリモジュールの記憶内容の一例を説明するための概念図である。
【図９】本発明の一実施形態に係る半導体設計装置が半導体集積回路を設計する際の動作を概略的に示すフローチャートである。
【図１０】本発明の一実施形態に係る半導体設計装置が仮想の半導体集積回路の消費電力を見積もるシミュレーションの動作を概略的に示すフローチャートである。
【発明を実施するための形態】
【００３０】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００３１】
図１は、本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体集積回路１０は、例えば、組合せ回路１１と、制御回路１２と、クロック生成回路１３と、複数のシフト回路１４と、複数の選択回路１５とを含んで構成される。
【００３２】
組合せ回路１１は、フリップフロップなどの順序回路を含まない論理回路である。組合せ回路１１（１）は、半導体集積回路１０の入力側に設けられ、外部から入力される入力信号ＩＮに対して論理演算を行い、該信号をデータ入力信号ＤＩＮとして複数のシフト回路１４に出力する。具体的には、組合せ回路１１（１）は、外部から入力される入力信号ＩＮ（１）乃至ＩＮ（ｍ）に対して論理演算を行いデータ入力信号ＤＩＮ１乃至ＤＩＮｎとして該信号をシフト回路１４（１）乃至１４（ｎ）のデータ端子ｄに出力する。ここで、値ｎは、半導体集積回路１０に設けられるシフト回路１４の数を示し、値ｍは、入力信号ＩＮの信号の数を示す。
【００３３】
また、組合せ回路１１（２）は、半導体集積回路１０の出力側に設けられ、複数のシフト回路１４から出力されるデータ出力信号ＤＯＵＴに対して論理演算を行い、該信号をユーザー信号ＵＳＲとして複数の選択回路１５に出力する。具体的には、組合せ回路１１（２）は、シフト回路１４（１）乃至１４（ｎ）から出力されるデータ出力信号ＤＯＵＴ１乃至ＤＯＵＴｎに対して論理演算を行いユーザー信号ＵＳＲ（１）乃至ＵＳＲ（ｎ）として該信号を選択回路１５（１）乃至１５（ｎ）の入力端子Ａ０に出力する。なお、本例では、ユーザー信号ＵＳＲは、組合せ回路１１（２）から出力されているが、これに限られるものではなく、組合せ回路１１（１）から出力されても良いし、図示しないその他の回路から出力されても良い。
【００３４】
制御回路１２は、外部からモード端子ｍｏｄｅを介して入力されるモード信号ＭＯＤＥに従って、半導体集積回路１０のテストモードのオン／オフを制御するとともに、システムクロックＣＬＫを生成し、該クロックを各構成要素に出力する。具体的には、制御回路１２は、外部からモード端子ｍｏｄｅを介して受け取ったモード信号ＭＯＤＥが“テストモード”を示す場合、テスト制御信号ＣＴ＿ＴＳＴの状態を“テストモード”に設定する。一方、制御回路１２は、外部からモード端子ｍｏｄｅを介して受け取ったモード信号ＭＯＤＥが“通常モード”を示す場合、テスト制御信号ＣＴ＿ＴＳＴの状態を“通常モード”に設定する。また、制御回路１２はシステムクロックＣＬＫを生成し、該クロックをクロック生成回路１３に出力するとともに、テスト制御信号ＣＴ＿ＴＳＴをクロック生成回路１３及び選択回路１５の選択端子ＳＬに出力する。
【００３５】
クロック生成回路１３は、制御回路１２から出力されるシステムクロックＣＬＫと、テスト制御信号ＣＴ＿ＴＳＴの状態“テストモード”又は“通常モード”とに従って、シフトクロックＳＦ＿ＣＬＫ及びイネーブル信号ＥＮＡを生成し出力する。具体的には、クロック生成回路１３は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴの状態を判断する。クロック生成回路１３は、テスト制御信号ＣＴ＿ＴＳＴが“テストモード”であると判断する場合、システムクロックＣＬＫのカウント回数に従って“キャプチャモード”又は“シフトモード”の状態をとるイネーブル信号ＥＮＡと、該イネーブル信号ＥＮＡに従うシフトクロックＳＦ＿ＣＬＫとを生成する。一方、クロック生成回路１３は、テスト制御信号ＣＴ＿ＴＳＴが“通常モード”であると判断する場合、常に“０”の状態をとるイネーブル信号ＥＮＡと、システムクロックＣＬＫと同じとなるシフトクロックＳＦ＿ＣＬＫとを生成する。そして、クロック生成回路１３は、シフトクロックＳＦ＿ＣＬＫをシフト回路１４のクロック端子ｃｋに、イネーブル信号ＥＮＡをシフト回路１４のイネーブル端子ｅｎａ、及び選択回路１５（ｎ＋１）の入力端子Ａ１に出力する。
【００３６】
シフト回路１４は、半導体集積回路１０の組合せ回路１１（１）と組合せ回路１１（２）との間に複数（ｎ個）設けられ、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫに基づいて、該クロック生成回路１３から出力されるイネーブル信号ＥＮＡの状態に従う信号を出力する。具体的には、シフト回路１４は、それぞれ、クロック生成回路１３から出力されるイネーブル信号ＥＮＡの状態を判断する。シフト回路１４は、それぞれ、イネーブル信号ＥＮＡの状態が“キャプチャモード”であると判断する場合、シフトクロックＳＦ＿ＣＬＫに基づいて、組合せ回路１１（１）から出力されるデータ入力信号ＤＩＮをデータ出力信号ＤＯＵＴとして、組合せ回路１１（２）へと出力する。一方、シフト回路１４は、それぞれ、イネーブル信号ＥＮＡの状態が“シフトモード”であると判断する場合、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫに基づいて、シフト端子ｓｆｏからシフト信号ＳＦＴを選択回路１５へと出力する。
【００３７】
なお、同図においてシフト回路１４は、半導体集積回路１０において組合せ回路１１（１）及び１１（２）を接続するように設けられているが、組合せ回路１１（１）又は１１（２）に少なくとも１つ以上設けられ少なくとも１つ以上の順序回路を有するモジュール毎にシフト回路１４が設けられても良い。かかる場合、シフト回路１４の出力は、それぞれ、モジュールの出力の状態を示す。
【００３８】
複数の選択回路１５（１）乃至１５（ｎ＋１）は、例えば、マルチプレクサである。複数の選択回路１５（１）乃至１５（ｎ＋１）は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴに従って組合せ回路１１（２）から出力されるユーザー信号ＵＳＲ（１）乃至（ｎ＋１）又は複数のシフト回路１４（１）乃至１４（ｎ）から出力されるシフト信号ＳＦＴを選択し、該選択結果を出力信号ＯＵＴとして外部に出力する。
【００３９】
具体的には、選択回路１５（ｉ）は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴの状態が“通常モード”であると判断する場合、組合せ回路１１（２）から出力されるユーザー信号ＵＳＲ（ｉ）を選択し、該選択結果を出力信号ＯＵＴ（ｉ）として出力する。一方、選択回路１５（ｉ）は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴの状態が“テストモード”であると判断する場合、シフト回路１４（ｉ）から出力されるシフト信号ＳＦＴ（ｉ）を選択し、該選択結果を出力信号ＯＵＴ（ｉ）として出力する。ここで、ｉは、１以上ｎ以下の正の整数である。
【００４０】
また、最後段の選択回路１５（ｎ＋１）は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴの状態が“通常モード”であると判断する場合、組合せ回路１１（２）から出力されるユーザー信号ＵＳＲ（ｎ＋１）を選択し、該選択結果を出力信号ＯＵＴ（ｉ）として出力する。一方、最後段の選択回路１５（ｎ＋１）は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴの状態が“テストモード”であると判断する場合、クロック生成回路１３から出力されるイネーブル信号ＥＮＡを選択し、該選択結果を出力信号ＯＵＴ（ｉ）として出力する。テストモードにおいて、最後段の選択回路１５（ｎ＋１）から出力される出力信号ＯＵＴ（ｎ＋１）は、半導体集積回路１０がテストモードであることを示す。
【００４１】
以上のように構成される半導体集積回路１０は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴに従って、外部から入力される入力信号ＩＮを、組合せ回路１１（１）、複数のシフト回路１４（１）乃至１４（ｎ）、及び組合せ回路１１（２）を介して、出力信号ＯＵＴとして出力するか、又は複数のシフト回路１４（１）乃至１４（ｎ）の出力の状態を出力信号ＯＵＴとして出力する。
【００４２】
図２は、本発明の一実施形態に係る半導体集積回路のクロック生成回路の構成の一例を示す図である。同図に示すように、クロック生成回路１３は、カウンタ１３１と、論理積回路１３２及び１３３と、選択回路１３４とを含んで構成される。
【００４３】
カウンタ１３１は、制御回路１２から出力されるシステムクロックＣＬＫから出力制御信号ＣＮＴ＿Ｏ及びクロック生成信号ＣＫＧ＿Ｏをそれぞれ生成し、出力制御信号ＣＮＴ＿Ｏを論理積回路１３２に、クロック生成信号ＣＫＧ＿Ｏを論理積回路１３３にそれぞれ出力する。
【００４４】
具体的には、カウンタ１３１は、シフト回路１４が有する後述する順序回路１４２の個数の逓倍（例えば１倍）の回数だけシステムクロックＣＬＫが交番する間“１”となり、その後に半導体集積回路１０がシフト回路１４の出力の状態をキャプチャするために必要な期間の間“０”となる出力制御信号ＣＮＴ＿Ｏを生成し、該信号を論理積回路１３２に出力する。さらに、カウンタ１３１は、出力制御信号ＣＮＴ＿Ｏが“１”となる期間に加えてシステムクロックＣＬＫが１回交番する間“１”となり、その後にシフト回路１４の出力の状態をキャプチャするために必要な期間よりもシステムクロックＣＬＫが１回交番する間だけ短い期間“０”となるクロック生成信号ＣＫＧ＿Ｏを生成し、該信号を論理積回路１３３に出力する。
【００４５】
なお、本例では、カウンタ１３１は、シフト回路１４が有する順序回路１４２の個数の逓倍（例えば１倍）の回数だけシステムクロックＣＬＫが交番する間“１”となるが、これに限られるものではなく、カウンタ１３１は、シフト回路１４が有する順序回路１４２の個数の２倍又は３倍など、任意の倍数の回数だけシステムクロックＣＬＫが交番する間“１”となっても良い。
【００４６】
論理積回路１３２は、例えば、ＡＮＤゲートである。論理積回路１３２は、出力制御信号ＣＮＴ＿Ｏと、テスト制御信号ＣＴ＿ＴＳＴとに対して論理積演算を行い、該演算結果をイネーブル信号ＥＮＡとして出力する。具体的には、論理積回路１３２は、カウンタ１３１から出力される出力制御信号ＣＮＴ＿Ｏと、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴとに対して論理積演算を行い、該演算結果をイネーブル信号ＥＮＡとして、シフト回路１４のイネーブル端子ｅｎａと、選択回路１５（ｎ＋１）の入力端子Ａ１に出力する。なお、イネーブル信号ＥＮＡはその状態が“０”である時“キャプチャモード”を示し、その状態が“１”である時“シフトモード”を示す。
【００４７】
論理積回路１３３は、例えば、ＡＮＤゲートである。論理積回路１３３は、クロック生成信号ＣＫＧ＿Ｏと、システムクロックＣＬＫとに対して論理積演算を行い、該演算結果を選択回路１３４の入力端子Ａ１に出力する。具体的には、論理積回路１３３は、カウンタ１３１から出力されるクロック生成信号ＣＫＧ＿Ｏと、制御回路１２から出力されるシステムクロックＣＬＫとに対して論理積演算を行い、該演算結果を選択回路１３４の入力端子Ａ１に出力する。
【００４８】
選択回路１３４は、例えば、マルチプレクサである。選択回路１３４は、テスト制御信号ＣＴ＿ＴＳＴの状態に従って、論理積回路１３３からの出力又はシステムクロックＣＬＫを選択し、該選択結果をシフトクロックＳＦ＿ＣＬＫとして出力する。具体的には、選択回路１３４は、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴの状態を判断する。選択回路１３４は、制御信号ＣＴ＿ＴＳＴの状態が“通常モード”であると判断する場合、制御回路１２から出力されるシステムクロックＣＬＫを選択し、該選択結果をシフトクロックＳＦ＿ＣＬＫとしてシフト回路１４のクロック端子ｃｋに出力する。一方、選択回路１３４は、制御信号ＣＴ＿ＴＳＴの状態が“テストモード”であると判断する場合、論理積回路１３３からの出力を選択し、該選択結果をシフトクロックＳＦ＿ＣＬＫとしてシフト回路１４のクロック端子ｃｋに出力する。
【００４９】
以上のように構成されるクロック生成回路１３は、テスト制御信号ＣＴ＿ＴＳＴが“テストモード”を示す間、シフト回路１４が有する順序回路１４２の個数の逓倍の回数だけシステムクロックＣＬＫが交番する間“１”となり、シフト回路１４の出力の状態をキャプチャするために必要な期間の間“０”となるイネーブル信号ＥＮＡと、該イネーブル信号ＥＮＡが“１”となる期間に加えてシステムクロックＣＬＫ１回分の間交番するシフトクロックＳＦ＿ＣＬＫとを生成し、該２つの信号を出力する。
【００５０】
図３Ａは、本発明の一実施形態に係る半導体集積回路のシフト回路の構成の一例を示す図である。同図に示すように、シフト回路１４（ｉ）は、選択回路１４１（１）乃至１４１（ｘ）と、順序回路１４２（１）乃至１４２（ｘ）とを含んで構成される。ここで値ｘは、シフト回路１４に設けられている選択回路１４１及び順序回路１４２の数を示す。また、選択回路１４１及び順序回路１４２は、それぞれ対になって出力制御回路１４０を構成する（例えば、図中の破線部）。複数の出力制御回路１４０は、それぞれ、自身の順序回路１４２から出力される信号が次段の出力制御回路１４０の選択回路１４１に入力されるように環状に接続される。
【００５１】
選択回路１４１は、例えば、マルチプレクサである。選択回路１４１は、クロック生成回路１３から出力されるイネーブル信号ＥＮＡに従って、組合せ回路１１（１）から出力されるデータ入力信号ＤＩＮｉ又は対応する順序回路１４２の前段の順序回路１４２が出力するデータ出力信号ＤＯＵＴｉを選択し、該選択結果を順序回路１４２に出力する。
【００５２】
具体的には、選択回路１４１（ｓ）は、クロック生成回路１３から出力されるイネーブル信号ＥＮＡの状態を判断する。選択回路１４１（ｓ）は、イネーブル信号ＥＮＡの状態が“キャプチャモード”であると判断する場合、組合せ回路１１（１）から出力されるデータ入力信号ＤＩＮｉ（ｓ）を選択し、該選択結果を順序回路１４２（ｓ）のデータ入力端子Ｄに出力する。一方、選択回路１４１（ｓ）は、イネーブル信号ＥＮＡの状態が“シフトモード”であると判断する場合、順序回路１４２（ｓ−１）から出力されるデータ出力信号ＤＯＵＴｉ（ｓ−１）を選択し、該選択結果を順序回路１４２（ｓ）のデータ入力端子Ｄに出力する。また、最前段の選択回路１４１（１）は、イネーブル信号ＥＮＡの状態が“シフトモード”であると判断する場合、最後段の順序回路１４２（ｘ）から出力されるデータ出力信号ＤＯＵＴｉ（ｘ）を選択し、該選択結果を順序回路１４２（１）のデータ入力端子Ｄに出力する。ここで、ｓは１以上ｘ以下の正の整数である。
【００５３】
順序回路１４２は、例えば、Ｄ型フリップフロップである。順序回路１４２は、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫに基づいて、選択回路１４１から出力される選択結果をデータ出力信号ＤＯＵＴｉとして組合せ回路１１（２）と、次段の選択回路１４１の入力端子Ａ１に出力する。
【００５４】
具体的には、順序回路１４２（ｓ）は、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫに基づいて、選択回路１４１（ｓ）から出力される選択結果をデータ出力信号ＤＯＵＴｉ（ｓ）として組合せ回路１１（２）と、選択回路１４１（ｓ＋１）の入力端子Ａ１に出力する。また、最後段の順序回路１４２（ｘ）は、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫに基づいて、選択回路１４１（ｓ）から出力される選択結果をデータ出力信号ＤＯＵＴｉ（ｓ）として組合せ回路１１（２）と、選択回路１４１（１）の入力端子Ａ１に出力し、該選択結果をシフト信号ＳＦＴとして、選択回路１５（ｉ）の入力端子Ａ１に出力する。
【００５５】
図３Ｂは、本発明の一実施形態に係る半導体集積回路のシフト回路の構成の他の例を示す図である。同図に示すように、シフト回路１４’は、図３Ａのシフト回路１４に論理積回路１４３とダミーの順序回路１４４とをさらに含んで構成される。同図における選択回路１４１及び順序回路１４２は、図３Ａで説明したものと同じであるため、その説明を省略する。
【００５６】
論理積回路１４３は、例えば、ＡＮＤゲートである。論理積回路１４３は、前段の順序回路１４２又は１４４からの出力と、イネーブル信号ＥＮＡとに対して論理積演算を行い、該演算結果を対応する順序回路１４４に出力する。具体的には、論理積回路１４３（ｓ）は、前段の順序回路１４２又は１４４から出力されるデータ出力信号ＤＯＵＴｉ（ｓ＋１）と、クロック生成回路１３から出力されるイネーブル信号ＥＮＡとに対して論理積演算を行い、該演算結果を対応する順序回路１４４（ｓ）のデータ入力端子Ｄに出力する。なお、上述したように、“キャプチャモード”は、論理演算における状態“０”を、“シフトモード”は、論理演算における状態“１”をそれぞれ示す。
【００５７】
順序回路１４４は、例えば、Ｄ型フリップフロップである。順序回路１４４は、シフトクロックＳＦ＿ＣＬＫに基づいて、対応する論理積回路１４３からの出力をデータ出力信号ＤＯＵＴｉとして組合せ回路１１（２）及び次段の論理積回路１４３に出力する。具体的には、順序回路１４４（ｓ）は、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫに基づいて、対応する論理積回路１４３（ｓ）からの出力をデータ出力信号ＤＯＵＴｉ（ｓ＋２）として組合せ回路１１（２）及び次段の論理積回路１４３（ｓ＋１）に出力する。
【００５８】
図３Ｃは、本発明の一実施形態に係る半導体集積回路のシフト回路の構成の他の例を示す図である。同図に示すように、シフト回路１４’’は、図３Ｂのシフト回路１４’に論理積回路１４５をさらに含んで構成される。また、シフト回路１４’’は、図３Ｂのシフト回路１４’において順序回路１４４に代えて順序回路１４４’を含んで構成される。同図における選択回路１４１、順序回路１４２及び論理積回路１４３は、図３Ｂで説明したものと同じであるため、その説明を省略する。
【００５９】
論理積回路１４５は、例えば、ＡＮＤゲートである。論理積回路１４５は、クロック生成回路１３から出力されるシフトクロックＳＦ＿ＣＬＫと、制御回路１２から出力されるテスト制御信号ＣＴ＿ＴＳＴとに対して論理積演算を行い、該演算結果を順序回路１４４’のクロック端子ＣＫに出力する。
【００６０】
順序回路１４４’は、例えば、Ｄ型フリップフロップである。順序回路１４４’は、論理積回路１４５からの出力に基づいて、対応する論理積回路１４３からの出力をデータ出力信号ＤＯＵＴｉとして組合せ回路１１（２）及び次段の論理積回路１４３に出力する。具体的には、順序回路１４４’（ｓ）は、論理積回路１４５からの出力に基づいて、対応する論理積回路１４３（ｓ）からの出力をデータ出力信号ＤＯＵＴｉ（ｓ＋２）として組合せ回路１１（２）及び次段の論理積回路１４３（ｓ＋１）に出力する。
【００６１】
以上のように構成されるシフト回路１４は、クロック生成回路１３から出力されるイネーブル信号ＥＮＡの状態“キャプチャモード”又は“シフトモード”に従って、組合せ回路１１（１）から出力されるデータ入力信号ＤＩＮｉを選択回路１４１及び順序回路１４２を介して組合せ回路１１（２）に出力するか、又は順序回路１４２及び１４４の出力の状態をチェーン状に接続された選択回路１４１と、論理積回路１４３と、順序回路１４２及び１４４とを介して、最後段の順序回路１４４から出力する。
【００６２】
図４は、本発明の一実施形態に係る半導体集積回路のテストモードにおける各種の信号のタイミングチャートである。同図において、システムクロックＣＬＫが交番するタイミングを時刻ｔ５０１乃至ｔ５１３と定義する。また、制御回路１２は、“テストモード”を示す制御信号ＣＴ＿ＴＳＴを出力しているものと仮定する。また、半導体集積回路１０のシフト回路１４は、３つの順序回路１４２を有するものと仮定する。また、シフト回路１４の出力の状態をキャプチャするために必要な期間は、システムクロックＣＬＫの４クロック分であると仮定する。
【００６３】
半導体集積回路１０のクロック生成回路１３は、制御回路１２から出力されるシステムクロックＣＬＫに基づいて、クロック生成信号ＣＫＧ＿Ｏ及び出力制御信号ＣＮＴ＿Ｏを生成し出力する。クロック生成回路１３は、シフト回路１４の出力の状態をキャプチャするために必要な期間の期間（すなわち、時刻ｔ５０１乃至ｔ５０５の期間）“０”となり、シフト回路１４が有する順序回路１４２の個数の逓倍（本例では１倍）の回数だけシステムクロックＣＬＫが交番する期間（すなわち、時刻ｔ５０５乃至ｔ５０８の期間）に“１”となる出力制御信号ＣＮＴ＿Ｏを生成し、テスト制御信号ＣＴ＿ＴＳＴとの論理積をとりイネーブル信号ＥＮＡとして、出力する。クロック生成回路１３は、時刻ｔ５０８以降においても時刻ｔ５０１乃至ｔ５０７と同じように出力制御信号ＣＮＴ＿Ｏを生成する。
【００６４】
また、クロック生成回路１３は、半導体集積回路１０のシフト回路１４の出力の状態をキャプチャするために必要な期間よりシステムクロックＣＬＫの１クロック分短い期間（すなわち、時刻ｔ５０２乃至ｔ５０５の期間）に“０”となり、出力制御信号ＣＮＴ＿Ｏの“１”の期間よりシステムクロックＣＬＫの１クロック分長い期間（すなわち、時刻ｔ５０５乃至ｔ５０９の期間）“１”となるクロック生成信号ＣＫＧ＿Ｏを生成する。クロック生成回路１３は、時刻ｔ５１０以降においても時刻ｔ５０２乃至ｔ５０９と同じようにクロック生成信号ＣＫＧ＿Ｏを生成する。
【００６５】
また、クロック生成回路１３は、自身が生成したクロック生成信号ＣＫＧ＿Ｏに基づいて、クロック生成信号ＣＫＧ＿Ｏが“１”の間交番するシフトクロックＳＦ＿ＣＬＫを生成する。クロック生成回路１３は、時刻ｔ５０２でシフトクロックＳＦ＿ＣＬＫの交番を停止し、時刻ｔ５０５で該クロックの交番を開始し、時刻ｔ５０９で該クロックの交番を停止する。クロック生成回路１３は、時刻ｔ５１０以降、時刻ｔ５０２乃至ｔ５０９での動作と同じようにシフトクロックＳＦ＿ＣＬＫの交番の停止と交番の開始を繰り返す。
【００６６】
シフト回路１４は、クロック生成回路１３から出力されるイネーブル信号ＥＮＡ（本例では出力制御信号ＣＮＴ＿Ｏと同じ）に従って、組合せ回路１１（１）から出力されるデータ入力信号ＤＩＮの状態か、又は順序回路１４２の状態をデータ出力信号ＤＯＵＴｉとして出力する。具体的には、シフト回路１４は、時刻ｔ５０１乃至ｔ５０５では、組合せ回路１１（１）が出力するデータ入力信号ＤＩＮの状態を出力し、時刻ｔ５０６乃至ｔ５０８では順序回路１４２の状態を出力し、時刻ｔ５０９乃至ｔ５１２ではまた組合せ回路１１（１）が出力するデータ入力信号ＤＩＮの状態を出力する。
【００６７】
順序回路１４２（１）乃至１４２（３）は、それぞれ、時刻ｔ５０１で、シフトクロックＳＦ＿ＣＬＫに基づいて、出力制御信号ＣＮＴ＿Ｏの状態“１”に従い、前段又は最後段の順序回路１４２から出力される状態ＤＡ１、ＤＢ１及びＤＣ１を出力する。続いて、順序回路１４２（１）乃至１４２（３）は、それぞれ、時刻ｔ５０５で、出力制御信号ＣＮＴ＿Ｏの状態“０”に従い、シフトクロックＳＦ＿ＣＬＫに基づいて、組合せ回路１１（１）から出力される状態ＤＡ２、ＤＢ２及びＤＣ２をキャプチャする。
【００６８】
次に、順序回路１４２（１）乃至１４２（３）は、それぞれ、時刻ｔ５０６で、出力制御信号ＣＮＴ＿Ｏの状態“１”に従い、シフトクロックＳＦ＿ＣＬＫに基づいて、前段又は最後段の順序回路１４２から出力される状態ＤＣ２、ＤＡ２及びＤＢ２を出力する。続いて、順序回路１４２（１）乃至１４２（３）は、それぞれ、時刻ｔ５０７で、出力制御信号ＣＮＴ＿Ｏの状態“１”に従い、シフトクロックＳＦ＿ＣＬＫに基づいて、前段又は最後段の順序回路１４２から出力される状態ＤＢ２、ＤＣ２及びＤＡ２を出力する。さらに、順序回路１４２（１）乃至１４２（３）は、それぞれ、時刻ｔ５０８で、出力制御信号ＣＮＴ＿Ｏの状態“１”に従い、シフトクロックＳＦ＿ＣＬＫに基づいて、前段又は最後段の順序回路１４２から出力される状態ＤＡ２、ＤＢ２及びＤＣ２を出力する。そして、順序回路１４２（１）乃至１４２（３）は、それぞれ、時刻ｔ５１２で、出力制御信号ＣＮＴ＿Ｏの状態“０”に従い、シフトクロックＳＦ＿ＣＬＫに基づいて、組合せ回路１１（１）から出力される状態ＤＡ３、ＤＢ３及びＤＣ３をキャプチャする。
【００６９】
上述したように、半導体集積回路１０は、実動作周波数で組合せ回路１１（１）から出力されるデータをキャプチャし、システムクロックＣＬＫの周波数でシフト回路１４が有する順序回路１４２の個数の逓倍＋１回分だけ順序回路１４２（１）乃至１４２（３）の状態をシフトする。これにより、半導体集積回路１０は、順序回路１４２（１）乃至１４２（３）の出力をシフトした後の状態を順序回路１４２（１）乃至１４２（３）の出力をシフトする前の状態と等しくすることができ、追加の処理を行わずに次に組合せ回路１１（１）が出力するデータのキャプチャを行えるため、効率的に順序回路１４２（１）乃至１４２（３）の状態を外部に出力することができる。
【００７０】
また、半導体集積回路１０は、消費電力の見積もりにあたって、クロック生成回路１３、シフト回路１４の選択回路１４１及び選択回路１５が既存の半導体集積回路に加えられたものであり、既存の半導体集積回路に対してチップ面積の増大を抑制して、消費電力を見積もることができる。
【００７１】
図５は、本発明の一実施形態に係る半導体測定システムの概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体測定システム１は、半導体集積回路１０と、半導体測定装置２０とを含んで構成される。ここで、半導体集積回路１０に関しては、図１において説明したものと同じであるため、その構成の詳細に関しては説明を省略する。
【００７２】
半導体集積回路１０は、外部から入力される入力信号ＩＮ（１）乃至ＩＮ（ｍ）に対して図１乃至図４で説明した処理を行い、出力信号ＯＵＴ（１）乃至ＯＵＴ（ｎ）として半導体測定装置２０に出力する。半導体集積回路１０は、半導体測定装置２０から入力信号ＩＮ及びモード信号ＭＯＤＥを受け、半導体測定装置２０の制御の下で動作する。また、半導体集積回路１０は、半導体測定装置２０から入力される動作モード（例えば、“テストモード”及び“通常モード”）を示すモード信号ＭＯＤＥに従って自身の動作モード（例えば、“テストモード”及び“通常モード”と、“キャプチャモード”及び“シフトモード”）とを決定する。
【００７３】
半導体測定装置２０は、例えば、ＬＳＩテスターや評価ボードである。半導体測定装置２０は、半導体集積回路１０の動作を制御するとともに、半導体集積回路１０の動作モードを制御する。半導体測定装置２０は、例えば、制御装置２１と、コンパレータ２２と、トグル回数算出装置２３と、記憶装置２４とを含んで構成される。記憶装置２４は、例えば、テストプログラム及びテストデータを記憶する。
【００７４】
制御装置２１は、メモリとプロセッサを有し（図示せず）、記憶装置２４から読み出されたテストプログラムに従って、半導体集積回路１０の動作及び動作モードを決定し、該動作及び動作モードの制御を行う入力信号ＩＮ及びモード信号ＭＯＤＥを半導体集積回路１０に出力する。次に、制御装置２１は、各コンパレータ２２の判断基準を評価信号ＶＡＬとして各コンパレータ２２に出力する。そして、制御装置２１はトグル回数算出装置２３が算出した半導体集積回路１０の順序回路１４２のトグル回数に基づいて、半導体集積回路１０の消費電力を測定し、該測定した消費電力の値を記憶装置２４に出力する。
【００７５】
コンパレータ２２は、制御装置２１から出力される評価信号ＶＡＬに従って、半導体集積回路１０から出力される出力信号ＯＵＴの状態をテスト信号ＴＳＴとして、トグル回数算出装置２３に出力する。
【００７６】
トグル回数算出装置２３は、コンパレータ２２から出力されるテスト信号ＴＳＴと、半導体集積回路１０から出力されるイネーブル信号ＥＮＡとに基づいて半導体集積回路１０の各モジュールの順序回路１４２のトグル回数を算出し、該算出した結果を制御装置２１に出力する。具体的には、トグル回数算出装置２３は、コンパレータ２２（１）乃至２２（ｎ）から出力されるテスト信号ＴＳＴ（１）乃至ＴＳＴ（ｎ）が示す状態が“１”から“０”へ、又は“０”から“１”へと遷移する回数をカウントする。次に、トグル回数算出装置２３は、該カウントした回数をコンパレータ２２毎に合計することで半導体集積回路１０の各モジュールのトグル回数を算出し、各モジュールのトグル回数と、該トグル回数の合計（すなわち、半導体集積回路１０全体のトグル回数）をテスト信号ＴＳＴとして制御装置２１に出力する。
【００７７】
以上のように構成される半導体測定システム１は、半導体集積回路１０の動作モードである“テストモード”及び“通常モード”と、半導体集積回路１０の動作を制御するテストパターンとを入力信号ＩＮ（１）乃至ＩＮ（ｍ）として半導体集積回路１０に出力するとともに、半導体集積回路１０から出力される出力信号ＯＵＴ（１）乃至ＯＵＴ（ｎ＋１）の状態を判断する。これにより、半導体測定システム１は、半導体集積回路１０の各モジュールの順序回路１４２のトグル回数を算出することによって、該トグル回数に基づいて、各モジュールの消費電力と、半導体集積回路１０全体の消費電力とを効率的に測定することができる。
【００７８】
図６は、本発明の一実施形態に係る半導体測定装置が半導体集積回路の消費電力を測定する動作を概略的に示すフローチャートである。同図において、まず、半導体測定装置２０は、半導体測定システム１の測定対象を配置すべき場所に消費電力を測定すべき半導体集積回路１０を配置する（Ｓ６０１）。次に、半導体測定装置２０は、記憶装置２４からテストパターンを取得し、該取得したテストパターンを配置した半導体集積回路１０に入力する（Ｓ６０２）。続いて、半導体測定装置２０は、半導体集積回路１０をテストモードに設定する（Ｓ６０３）。
【００７９】
半導体集積回路１０は、半導体測定装置２０の制御の下、自身をキャプチャモードに設定する（Ｓ６０４）。具体的には、半導体集積回路１０は、半導体測定装置２０の制御の下、キャプチャモードを示すイネーブル信号ＥＮＡと、該イネーブル信号ＥＮＡに従うシフトクロックＳＦ＿ＣＬＫとを生成する。半導体集積回路１０が“キャプチャモード”の間、半導体集積回路１０は、実動作周波数で動作する。
【００８０】
半導体測定装置２０は、半導体集積回路１０のシフト回路１４に半導体集積回路１０の組合せ回路１１（１）が出力するデータ入力信号ＤＩＮをキャプチャさせる（Ｓ６０５）。そして、半導体測定装置２０は、半導体集積回路１０を“シフトモード”に設定する（Ｓ６０６）。具体的には、半導体測定装置２０は、モード信号ＭＯＤＥを送信する。半導体集積回路１０は、半導体測定装置２０の制御の下、シフトモードを示すイネーブル信号ＥＮＡと、該イネーブル信号ＥＮＡに従うシフトクロックＳＦ＿ＣＬＫとを生成する。半導体集積回路１０が“シフトモード”の間、半導体集積回路１０は、システムクロックＣＬＫの周波数で動作する。
【００８１】
半導体集積回路１０は、半導体測定装置２０の制御の下、シフト回路１４が有する順序回路１４２の出力の状態を次段の順序回路１４２へとシフトさせる処理と、該順序回路１４２の状態を記憶する処理とをシフト回路１４が有する順序回路１４２の個数＋１回繰り返す（ループＡ：Ｓ６０７乃至Ｓ６０９）。
【００８２】
より具体的には、半導体集積回路１０は、半導体測定装置２０の制御の下、シフト回路１４が有する順序回路１４２の出力の状態を次段の順序回路１４２へと１回シフトさせる（Ｓ６０８）。次に、半導体測定装置２０は、最後段の順序回路１４２が出力する出力の状態をコンパレータ２２で判断し、該判断結果をトグル回数算出装置２３に出力する。トグル回数算出装置２３は、コンパレータ２２から出力された出力の状態を記録する（Ｓ６０９）。
【００８３】
半導体測定装置２０は、テストパターンの所望の状態に対して半導体集積回路１０のシフト回路１４の順序回路１４２の状態を記憶したかを判断する（Ｓ６１０）。半導体測定装置２０は、テストパターンの所望の状態に対して半導体集積回路１０のシフト回路１４の順序回路１４２の状態を記憶していないと判断する場合（Ｓ６１０のＮｏ）、ステップＳ６０４の処理に戻る。一方、半導体測定装置２０は、テストパターンの所望の状態に対して半導体集積回路１０のシフト回路１４の順序回路１４２の状態を記憶したと判断する場合（Ｓ６１０のＹｅｓ）、ステップＳ６１１の処理に進む。
【００８４】
半導体測定装置２０は、トグル回数算出装置２３が記憶したコンパレータ２２の結果に基づいて、トグル回数算出装置２３で半導体集積回路１０のトグル回数を算出する（Ｓ６１１）。そして、半導体測定装置２０は、該トグル回数に基づいて、制御装置２１で消費電力の算出を行い、該算出した消費電力の値を測定の結果として記憶装置２４に記憶させ（Ｓ６１２）、半導体集積回路１０の消費電力の測定を終了する。
【００８５】
上述したように、半導体集積回路１０は、半導体測定装置２０の制御の下、まずキャプチャモードで動作し、組合せ回路１１（１）から出力されるデータをキャプチャする。次に半導体集積回路１０は、半導体測定装置２０の制御の下、シフトモードで動作し半導体集積回路１０のシフト回路１４が有する順序回路１４２の数＋１回分だけ順序回路１４２の状態をシフトする。これにより、半導体集積回路１０は、半導体測定装置２０の制御の下、シフト回路１４が順序回路１４２の出力をシフトした後の状態を該順序回路１４２の出力をシフトする前の状態と等しくする。半導体集積回路１０は、半導体測定装置２０の制御の下、追加の処理を行わずに次に組合せ回路１１（１）が出力するデータのキャプチャを行えるため、効率的に順序回路１４２の状態をコンパレータ２２に出力することができる。
【００８６】
また、半導体測定装置２０は、コンパレータ２２毎に結果を処理することによって、各コンパレータ２２に対応する半導体集積回路１０のモジュール毎のトグル回数を算出し、該算出結果に基づいて半導体集積回路１０の消費電力をモジュール毎に測定することができる。
【００８７】
図７は、本発明の一実施形態に係る半導体設計装置の概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体設計装置７００は、プロセッサモジュール７０２と、チップセット７０３と、メモリモジュール７０４と、ストレージデバイス７０５と、入出力装置７０６とを含んで構成される。
【００８８】
プロセッサモジュール７０２は、例えば、プロセッサコア、マイクロコントローラ、デジタル信号プロセッサ及び／又はこれらの組合せを含むが、これらに限られるものではない。ここでは、「プロセッサコア」という用語は、メインプロセッサを意味するプロセッサ（すなわち、処理装置）やＣＰＵ、ＭＰＵ等と同義のものとして扱われる。プロセッサモジュール７０２は、１次又はそれ以上のレベルのキャッシュ機構を含んでも良い。
【００８９】
チップセット７０３は、プロセッサモジュール７０２、メモリモジュール７０４、ストレージデバイス７０５及び入出力装置７０６等を接続するバスとのブリッジや、コンピューティングデバイスを構成するために必要な他のコンポーネントを集積した回路からなる。チップセット７０３は、例えば、プロセッサモジュール７０２によって制御される。
【００９０】
メモリモジュール７０４は、典型的には、揮発性メモリ（例えばＲＡＭ）、不揮発性メモリ（例えばＲＯＭやフラッシュメモリ等）及び／又はこれらの組合せからなる１次記憶装置である。メモリモジュール７０４は、典型的には、デバイスドライバ、オペレーティングシステム（ＯＳ）プログラム、１又は２以上のプログラム及び各種プログラムの実行に必要な情報等の全部又は一部を保持し、プロセッサモジュール７０２の利用に供される。なお、プロセッサモジュール７０２、チップセット７０３及びメモリモジュール７０４は、実行装置７０１を構成する。
【００９１】
ストレージデバイス７０５は、典型的には、ハードディスクドライブ（ＨＤＤ）や光学式ディスクドライブ、ソリッドステートデバイス（ＳＳＤ）等からなる。ストレージデバイス７０５は、プロセッサモジュール７０２の２次記憶装置として機能し、ＯＳ、各種プログラム、各種プログラムの実行結果や、各種プログラムの実行に必要な情報を記憶する。
【００９２】
入出力装置７０６は、各種のペリフェラルインターフェースであり、例えば、キーボードや、マウス、ディスプレイ、印刷装置、通信装置などである。入出力装置７０６は、半導体設計装置７００が半導体集積回路１０を設計するために必要な情報の入力を受け付けるとともに、半導体設計装置７００よって設計された半導体集積回路１０の情報を出力する。
【００９３】
以上のように構成される半導体設計装置７００では、メモリモジュール７０４に記憶されるプログラムに従ってプロセッサモジュール７０２が半導体集積回路１０の設計を行う。また、半導体設計装置７００は、設計過程の半導体集積回路１０又は既に設計されている半導体集積回路１０の消費電力の見積装置としても機能する。すなわち、半導体設計装置７００は、メモリモジュール７０４に記憶されるプログラムに従って、プロセッサモジュール７０２が設計過程又は既に設計済の半導体集積回路１０のトグル回数の算出を行い、該算出したトグル回数に基づいて、半導体集積回路１０の消費電力を見積もる。
【００９４】
図８は、本発明の一実施形態に係る半導体設計装置のメモリモジュールの記憶内容の一例を説明するための概念図である。同図において、回路情報生成プログラム７０４１は、半導体設計装置７００上で半導体集積回路１０を設計するためのプログラムである。回路情報生成プログラム７０４１によって生成された半導体集積回路１０の回路構成は、回路情報７０４３としてメモリモジュール７０４に記憶される。また、回路情報生成プログラム７０４１は、半導体集積回路１０の設計のために、既存の回路情報７０４３をベースとして使用しても良い。
【００９５】
回路情報７０４３は、回路情報生成プログラム７０４１によって生成された半導体集積回路１０の回路構成の情報の一部又は全部を有するデータである。回路情報７０４３は、回路情報生成プログラム７０４１によって半導体集積回路１０の設計の過程においてさらに更新される。回路情報７０４３は、回路情報生成プログラム７０４１による半導体集積回路１０の設計によって、最終的に、上述した半導体集積回路１０の略全ての回路情報７０４３を有する。このように、半導体集積回路１０の略全ての回路情報を有する回路情報７０４３は、記憶媒体（本例ではメモりモジュール７０４）に記憶される。
【００９６】
シミュレーションパターン情報７０４４は、消費電力見積プログラム７０４２が上述した回路情報７０４３に示される仮想の半導体集積回路１０に対してシミュレーションを行う際に使用される仮想の入力信号の情報である。シミュレーションパターン情報７０４４は、上述した半導体設計装置７００が仮想の半導体集積回路１０に対して出力する入力信号ＩＮと略等しい信号の情報を有する。
【００９７】
消費電力見積プログラム７０４２は、半導体設計装置７００が設計過程又は設計済の半導体集積回路１０の消費電力を見積もるためのプログラムである。消費電力見積プログラム７０４２は、プロセッサモジュール７０２によって実行され、回路情報７０４３及びシミュレーションパターン情報７０４４に従って、回路情報７０４３に示される半導体集積回路１０のトグル回数を算出し、該算出したトグル回数に基づいて仮想の半導体集積回路１０の消費電力を見積もる。具体的には、消費電力見積プログラム７０４２は、プロセッサモジュール７０２によって実行され、回路情報７０４３に示される仮想の半導体集積回路１０に対して、仮想の入力信号であるシミュレーションパターン情報７０４４を入力することで、消費電力を見積もるためのシミュレーションを実行する。そして、消費電力見積プログラム７０４２は、プロセッサモジュール７０２によって実行され、仮想の半導体集積回路１０のシフト回路１４の順序回路１４２の出力の状態に基づいて該仮想の半導体集積回路１０のトグル回数を算出し、該算出したトグル回数に基づいて消費電力を見積もって、該消費電力の値をシミュレーション結果７０４５として記憶する。
【００９８】
図９は、本発明の一実施形態に係る半導体設計装置が半導体集積回路を設計する際の動作を概略的に示すフローチャートである。同図において、半導体設計装置７００は、まず半導体集積回路１０に消費電力を個別に見積もるべき（すなわち、シフト回路１４を別個に設けるべき）モジュールが存在するか否かを判断する（Ｓ９０１）。より、具体的には、各モジュールには、消費電力を個別に見積もるべきか否かを属性が予め割り当てられており、半導体設計装置７００は、各モジュールの該属性を参照することによって、半導体集積回路１０に消費電力を個別に見積もるべきモジュールが存在するか否かを判断する。半導体設計装置７００は、半導体集積回路１０に消費電力を個別に見積もるべきモジュールが存在しないと判断する場合（Ｓ９０１のＮｏ）、仮想の半導体集積回路１０が所定の数のシフト回路１４を有するように、仮想の半導体集積回路１０を分割し、仮想の半導体集積回路１０の全ての順序回路１４２（例えば、Ｄ型フリップフロップ）に対してシフト回路１４を構成し（Ｓ９０２）、ステップＳ９０７の処理に進む。
【００９９】
一方、半導体設計装置７００は、半導体集積回路１０に消費電力を個別に見積もるべきモジュールが存在すると判断する場合（Ｓ９０１のＹｅｓ）、別個に設けるべきモジュールを決定する（Ｓ９０３）。そして、決定したモジュールのうち指定の一つのモジュールから順序回路１４２を抽出し（Ｓ９０４）、該抽出した順序回路１４２に対してシフト回路１４を構成する（Ｓ９０５）。
【０１００】
半導体設計装置７００は、ステップＳ９０３で決定したシフト回路１４を別個に設けるべきモジュールの全てに対してシフト回路１４を構成したか否かを判断する（Ｓ９０６）。半導体設計装置７００は、シフト回路１４を別個に設けるべきモジュールの全てに対してシフト回路１４を構成していないと判断する場合（Ｓ９０６のＮｏ）、ステップＳ９０４の処理に進む。一方、半導体設計装置７００は、シフト回路１４を別個に設けるべきモジュールの全てに対してシフト回路１４を構成したと判断する場合（Ｓ９０６のＹｅｓ）、ステップＳ９０７の処理に進む。
【０１０１】
半導体設計装置７００は、仮想の半導体集積回路１０の全てのシフト回路１４に対して、各シフト回路１４が有する順序回路１４２の数が一致するように、ダミーの順序回路１４４を各シフト回路１４に挿入する（Ｓ９０７）。そして、半導体設計装置７００は、仮想の半導体集積回路１０に対してクロック生成回路１３と、選択回路１５と、シフト回路１４及び該選択回路１５を接続する信号線とを追加して（Ｓ９０８）、半導体集積回路１０の設計を終了する。
【０１０２】
図１０は、本発明の一実施形態に係る半導体設計装置が仮想の半導体集積回路の消費電力を見積もるシミュレーションの動作を概略的に示すフローチャートである。同図において、まず、半導体設計装置７００は、消費電力を測定すべき仮想の半導体集積回路１０の情報を有する回路情報７０４３をメモリモジュール７０４から取得する（Ｓ１００１）。次に、半導体設計装置７００は、メモリモジュール７０４から消費電力見積プログラム７０４２を起動し、該プログラムによって回路情報７０４３とシミュレーションパターン情報７０４４を選択する。そして、半導体設計装置７００は、回路情報７０４３に示される仮想の半導体集積回路１０に対して、シミュレーションパターン情報７０４４を入力してシミュレーションを開始し（Ｓ１００２）、仮想の半導体集積回路１０をテストモードに設定する（Ｓ１００３）。
【０１０３】
半導体設計装置７００は、仮想の半導体集積回路１０をキャプチャモードに設定する（Ｓ１００４）。具体的には、半導体設計装置７００は、仮想の半導体集積回路１０にキャプチャモードを示すイネーブル信号ＥＮＡと、該イネーブル信号ＥＮＡに従うシフトクロックＳＦ＿ＣＬＫとを生成させる。仮想の半導体集積回路１０が“キャプチャモード”の間、仮想の半導体集積回路１０は、実動作周波数で動作する。
【０１０４】
半導体設計装置７００は、仮想の半導体集積回路１０のシフト回路１４に半導体集積回路１０の組合せ回路１１（１）が出力するデータ入力信号ＤＩＮをキャプチャさせる（Ｓ１００５）。そして、半導体設計装置７００は、仮想の半導体集積回路１０を“シフトモード”に設定する（Ｓ１００６）。具体的には、半導体設計装置７００は、仮想の半導体集積回路１０にシフトモードを示すイネーブル信号ＥＮＡと、該イネーブル信号ＥＮＡに従うシフトクロックＳＦ＿ＣＬＫとを生成させる。仮想の半導体集積回路１０が“シフトモード”の間、半導体集積回路１０は、システムクロックＣＬＫの周波数で動作する。
【０１０５】
半導体設計装置７００は、仮想の半導体集積回路１０のシフト回路１４が有する順序回路１４２の出力の状態を次段の順序回路１４２へとシフトさせることと、該順序回路１４２の状態を記憶することとをシフト回路が有する順序回路１４２の個数＋１回繰り返す（ループＢ：Ｓ１００７乃至Ｓ１００９）。
【０１０６】
より具体的には半導体設計装置７００は、仮想の半導体集積回路１０のシフト回路１４が有する順序回路１４２の出力の状態を次段の順序回路１４２へと１回シフトさせる（Ｓ１００８）次に、半導体設計装置７００は、最後段の順序回路１４２が出力する出力の状態をシミュレーション結果７０４５として記憶する（Ｓ１００９）。
【０１０７】
半導体設計装置７００は、シミュレーションパターンの所望の状態に対して仮想の半導体集積回路１０のシフト回路１４の順序回路１４２の状態を記憶したかどうかを判断する（Ｓ１０１０）。半導体設計装置７００は、シミュレーションパターンの所望の状態に対して仮想の半導体集積回路１０のシフト回路１４の順序回路１４２の状態を記憶していないと判断する場合（Ｓ１０１０のＮｏ）、ステップＳ１００４の処理に戻る。一方、半導体設計装置７００は、シミュレーションパターンの所望の状態に対して仮想の半導体集積回路１０のシフト回路１４の順序回路１４２の状態を記憶したと判断する場合（Ｓ１０１０のＹｅｓ）、ステップＳ１０１１の処理に進む。
【０１０８】
半導体設計装置７００は、シミュレーション結果７０４５（すなわち、記憶した順序回路１４２の出力の状態）に基づいて、仮想の半導体集積回路１０のトグル回数を算出する（Ｓ１０１１）。そして、半導体設計装置７００は、該トグル回数に基づいて、仮想の半導体集積回路１０の消費電力を見積もり（Ｓ１０１２）、仮想の半導体集積回路１０の消費電力の見積もりを終了する。
【０１０９】
上述したように、半導体設計装置７００は、仮想の半導体集積回路１０をまずキャプチャモードで動作させ、組合せ回路１１（１）から出力されるデータをキャプチャさせる。次に半導体設計装置７００は、仮想の半導体集積回路１０をシフトモードで動作させ半導体集積回路１０のシフト回路１４が有する順序回路１４２の数＋１回分だけ順序回路１４２の状態をシフトする。これにより、半導体設計装置７００は、半導体集積回路１０に対して、シフト回路１４が順序回路１４２の出力をシフトした後の状態を該順序回路１４２の出力をシフトする前の状態と等しくさせる。半導体設計装置７００は、半導体集積回路１０に対して、追加の処理を行わずに次に組合せ回路１１（１）が出力するデータのキャプチャを行えるため、効率的に順序回路１４２の状態を記憶し、消費電力を見積もることができる。
【０１１０】
また、半導体設計装置７００は、仮想の半導体集積回路１０の出力毎に判断結果を処理することによって、各出力に対応する仮想の半導体集積回路１０のモジュール毎の消費電力を効率的に見積もることができる。
【０１１１】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【０１１２】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【０１１３】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ（技術的事項）を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。
【産業上の利用可能性】
【０１１４】
本発明は、半導体集積回路の分野に広く利用することができる。
【符号の説明】
【０１１５】
１…半導体測定システム
１０…半導体集積回路
１１…組合せ回路
１２…制御回路
１３…クロック生成回路
１３１…カウンタ
１３２，１３３…論理積回路
１３４…選択回路
１４…シフト回路
１４０…出力制御回路
１４１…選択回路
１４２，１４４…順序回路
１４３，１４５…論理積回路
１５…選択回路
２０…半導体測定装置
２１…制御装置
２２…コンパレータ
２３…トグル回数算出装置
２４…記憶装置
７００…半導体設計装置
７０１…実行装置
７０２…プロセッサモジュール
７０３…チップセット
７０４…メモリモジュール
７０４１…回路情報生成プログラム
７０４２…消費電力見積プログラム
７０４３…回路情報
７０４４…シミュレーションパターン情報
７０４５…シミュレーション結果
７０５…ストレージデバイス
７０６…入出力装置
【図１】
0006506010.tif 000002
【図２】
0006506010.tif 000003
【図３Ａ】
0006506010.tif 000004
【図３Ｂ】
0006506010.tif 000005
【図３Ｃ】
0006506010.tif 000006
【図４】
0006506010.tif 000007
【図５】
0006506010.tif 000008
【図６】
0006506010.tif 000009
【図７】
0006506010.tif 000010
【図８】
0006506010.tif 000011
【図９】
0006506010.tif 000012
【図１０】
0006506010.tif 000013