【解決手段】入力される第1の信号に基づき第2の信号を出力する少なくとも1つのシフト回路14を備え、少なくとも1つのシフト回路は、それぞれ一対の選択回路及び順序回路を有し、一の順序回路からの出力が他の一対の選択回路に入力されるように環状に接続される。シフト回路の順序回路の数の逓倍に対応する回数だけシステムクロックが交番する第1期間にわたり第1状態となり、第1期間の後に第2の信号をキャプチャするために必要な第2期間にわたり第2状態となるイネーブル信号を生成し選択回路に出力し、第1期間に加えてシステムクロックが1回交番する第3期間にわたり交番するシフトクロックを生成し順序回路に出力するクロック生成回路13をさらに備える。
前記複数の出力制御回路のそれぞれにおける該選択回路は、前記所定のイネーブル信号に従って、前記第1の信号又は前記一の出力制御回路の前段の出力制御回路における順序回路から出力される第2の信号のいずれかを、対応する該順序回路に選択信号として出力し、
前記複数の出力制御回路のそれぞれにおける該順序回路は、前記所定のシフトクロックに従って、前記対応する選択信号を前記第2の信号として出力する、
請求項1記載の半導体集積回路。
半導体集積回路。
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した特許文献1に開示される従前の回路は、計測対象回路のトグル回数を記録するが、計測対象回路の全てのノードのトグル回数を記録する必要があり、シミュレーションの実行時間の増大の抑制にはいまだ課題を有していた。また、特許文献1に開示される従前の回路は、トグル検出回路が組み込まれた半導体集積回路、又はトグル検出回路が構成されたフィールドプログラマブルアレイをどのように制御して効率的に消費電力の見積もりのために計測対象のトグル回数の算出を行うことについて、何ら考慮されていなかった。また、特許文献1に開示される従前の回路は、計測対象回路のノード毎にトグル検出回路を必要とするため、半導体集積回路にトグル検出回路を組み込んだ場合、チップ面積の増大を招くという課題を有していた。
【0009】
そこで、本発明は、チップ面積の増大を抑制しつつ、効率的に消費電力の見積もりを行うことができる半導体集積回路を提供することを目的とする。
【0010】
また、本発明は、モジュール毎に効率的に消費電力の測定を行うことができる半導体集積回路を提供することを目的とする。
【0011】
また、本発明は、半導体集積回路の消費電力を効率的に見積もることができる見積装置を提供することを目的とする。
【0012】
また、本発明は、モジュール毎に効率的に消費電力の測定を行う半導体集積回路を設計することができる半導体設計装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
上記課題を解決するための本発明は、以下の技術的特徴乃至は発明特定事項を含んで構成される。
【0014】
すなわち、ある観点に従う本発明は、第1の組合せ回路から第1の信号を受けて、該第1の信号に基づく第2の信号を第2の組合せ回路に出力する少なくとも1つのシフト回路と、所定のシステムクロックに基づいて所定のイネーブル信号及び所定のシフトクロックを生成し、該生成した所定のイネーブル信号及び所定のシフトクロックを前記シフト回路に出力するクロック生成回路と、を備え、前記少なくとも1つのシフト回路は、それぞれ一対の選択回路及び順序回路からなる複数の出力制御回路を有し、前記複数の出力制御回路は、一の前記出力制御回路の該順序回路からの出力が他の前記出力制御回路の該選択回路に入力されるように環状に接続され、前記クロック生成回路は、前記少なくとも1つのシフト回路における前記順序回路の個数の逓倍に対応する回数だけ前記所定のシステムクロックが交番する第1の期間にわたって第1の状態となり、前記第1の期間の後に前記第2の信号をキャプチャするために必要な第2の期間にわたって第2の状態となるように前記所定のイネーブル信号を生成し、対応する前記選択回路に出力するとともに、前記第1の期間に加えて前記所定のシステムクロックが1回交番する第3の期間にわたって交番するように前記所定のシフトクロックを生成し、対応する前記順序回路に出力する、半導体集積回路である。
【0015】
ここで、前記複数の出力制御回路のそれぞれにおける該選択回路は、前記所定のイネーブル信号に従って、前記第1の信号又は前記一の出力制御回路の前段の出力制御回路における順序回路から出力される第2の信号のいずれかを、対応する該順序回路に選択信号として出力し、前記複数の出力制御回路のそれぞれにおける該順序回路は、前記所定のシフトクロックに従って、前記対応する選択信号を前記第2の信号として出力しても良い。
【0016】
また、前記半導体集積回路は、前記シフト回路を複数備え、前記複数のシフト回路のそれぞれは、同じ個数の順序回路を有するように構成されても良い。
【0017】
さらに、別の観点に従う本発明は、半導体集積回路の消費電力を、制御装置の制御の下、測定するための測定方法であって、環状に接続された複数の順序回路を有する少なくとも1つのシフト回路を備える半導体集積回路を準備することと、前記半導体集積回路にテストパターンを入力することと、前記テストパターンの複数の状態に対応する各前記順序回路の出力の状態を取得することと、取得した前記各順序回路の出力の状態に基づいて、前記半導体集積回路の消費電力を算出することと、を含み、前記各順序回路の出力の状態を取得することは、前記半導体集積回路の動作周波数を第1の周波数に設定することと、前記少なくとも1つのシフト回路における各順序回路の出力をキャプチャすることと、前記半導体集積回路の動作周波数を前記第1の周波数より高い第2の周波数に設定することと、前記少なくとも1つのシフト回路における一の前記順序回路の出力の状態を取得し、さらに、該少なくとも1つのシフト回路における各順序回路の出力の状態を次段の順序回路にシフトさせることを、前記シフト回路における順序回路の個数の逓倍に対応する回数に一回分加えた回数だけ繰り返すことと、を含む、測定方法である。
【0018】
さらに、別の観点に従う本発明は、半導体集積回路の消費電力を測定するための測定装置であって、少なくともメモリ及びプロセッサを有する制御装置を備え、前記制御装置は、環状に接続された複数の順序回路を有する少なくとも1つのシフト回路を備える半導体集積回路を所定の位置に配置し、前記半導体集積回路にテストパターンを入力し、前記テストパターンの複数の状態に対して、前記半導体集積回路の動作周波数を第1の周波数に設定し、前記少なくとも1つのシフト回路における各順序回路の出力をキャプチャし、前記半導体集積回路の動作周波数を第1の周波数より高い第2の周波数に設定し、前記少なくとも1つのシフト回路における一の前記順序回路の出力の状態を取得し、さらに、該少なくとも1つのシフト回路における各順序回路の出力の状態を次段の順序回路にシフトさせることを前記シフト回路における順序回路の個数の逓倍に対応する回数に一回分だけ加えた回数だけ繰り返し、取得した前記順序回路の出力の状態に基づいて、前記半導体集積回路の消費電力を算出するように構成される、測定装置である。
【0019】
さらに、別の観点に従う本発明は、半導体集積回路モデルの設計を行うための半導体設計装置であって、プロセッサと、所定の設計プログラムを記憶可能なメモリと、を備え、前記所定のプログラムを実行する前記プロセッサの制御の下、各モジュールに割り当てられた属性に基づいて、消費電力の見積もりを個別に行うべきモジュールがあるか否かを判断し、前記消費電力の見積もりを個別に行うべきモジュールがあると判断する場合、該モジュールに対する順序回路モデルを抽出し、前記抽出した順序回路モデルに対応するシフト回路モデルを生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも1つに順序回路モデルを生成し、前記消費電力の見積もりを個別に行うモジュールがないと判断する場合、前記順序回路モデルに対応するシフト回路を生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも1つに順序回路モデルを生成する、半導体設計装置である。
【0020】
さらに、別の観点に従う本発明は、半導体集積回路モデルの設計を行う半導体設計装置によって実行される半導体設計方法であって、各モジュールに割り当てられた属性に基づいて、消費電力の見積もりを個別に行うべきモジュールがあるか否か判断することと、前記消費電力の見積もりを個別に行うべきモジュールがあると判断する場合、該モジュールに対する順序回路モデルを抽出し、前記抽出した順序回路モデルに対応するシフト回路モデルを生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも1つに順序回路モデルを生成することと、前記消費電力の見積もりを個別に行うべきモジュールがないと判断する場合、前記順序回路モデルに対応するシフト回路モデルを生成し、さらに、生成した前記シフト回路モデルのそれぞれに対応する順序回路モデルの個数が一致するように、前記シフト回路モデルの少なくとも1つに順序回路モデルを生成することと、を含む、半導体設計方法である。
【0021】
さらに、別の観点に従う本発明は、半導体集積回路の消費電力を見積もるためのプログラムであって、前記プログラムは、見積装置のプロセッサに、第1の組合せ回路モデルから第1の信号を受けて、該第1の信号に基づく第2の信号を第2の組合せ回路モデルに出力する少なくとも1つのシフト回路モデルを形成する機能と、所定のシステムクロックに基づいて所定のイネーブル信号及び所定のシフトクロックを生成し、該生成した所定のイネーブル信号及び所定のシフトクロックを前記シフト回路モデルに出力するクロック生成回路モデルを形成する機能と、を実現させるように構成され、前記少なくとも1つのシフト回路モデルは、それぞれ一対の選択回路モデル及び順序回路モデルからなる複数の出力制御回路モデルを有し、前記複数の出力制御回路モデルは、一の前記出力制御回路モデルの該順序回路モデルからの出力が他の前記出力制御回路モデルの該選択回路モデルに入力されるように環状に接続され、前記クロック生成回路モデルを形成する機能は、前記少なくとも1つのシフト回路モデルにおける前記順序回路モデルの個数の逓倍に対応する回数だけ前記所定のシステムクロックが交番する第1の期間にわたって第1の状態となり、前記第1の期間の後に前記第2の信号をキャプチャするために必要な第2の期間にわたって第2の状態となるように前記所定のイネーブル信号を生成する機能と、対応する前記選択回路モデルに出力するとともに、前記第1の期間に加えて前記所定のシステムクロックが1回交番する第3の期間にわたって交番するように前記所定のシフトクロックを生成し、対応する前記順序回路モデルに出力する機能と、を含む、プログラムである。
【0022】
さらに、別の観点に従う本発明は、半導体集積回路モデルの消費電力を見積もる見積装置により実行される見積方法であって、環状に接続された複数の順序回路モデルを有する少なくとも1つのシフト回路モデルを備える半導体集積回路モデルを取得することと、前記半導体集積回路モデルにシミュレーションパターンを入力することと、前記シミュレーションパターンの複数の状態に対応する順序回路モデルの出力の状態を取得することと、取得した前記順序回路モデルの出力の状態に基づいて、前記半導体集積回路モデルの消費電力を算出することと、を含み、前記状態を取得することは、前記半導体集積回路モデルの動作周波数を第1の周波数に設定することと、前記少なくとも1つのシフト回路モデルにおける各順序回路モデルの出力をキャプチャすることと、前記半導体集積回路モデルの動作周波数を前記第1の周波数より高い第2の周波数に設定することと、前記少なくとも1つのシフト回路モデルにおける一の前記順序回路モデルの出力の状態を取得し、さらに、該少なくとも1つのシフト回路モデルにおける各順序回路モデルの出力の状態を次段の順序回路モデルにシフトさせることを前記シフト回路モデルにおける順序回路モデルの個数の逓倍に対応する回数に1回分だけ加えた回数だけ繰り返すことと、を含む、見積方法である。
【0023】
さらに、別の観点に従う本発明は、半導体集積回路モデルの消費電力を見積もるための見積装置であって、少なくともメモリとプロセッサを含む実行装置と、シミュレーションパターンを記憶する記憶装置と、を備え、前記実行装置は、環状に接続された複数の順序回路モデルを有する少なくとも1つのシフト回路モデルを取得し、前記半導体集積回路モデルにシミュレーションパターンを入力し、前記シミュレーションパターンの複数の状態に対して、前記半導体集積回路モデルの動作周波数を第1の周波数に設定し、前記少なくとも1つのシフト回路モデルにおける各順序回路モデルの出力をキャプチャし、前記半導体集積回路モデルの動作周波数を前記第1の周波数より高い第2の周波数に設定し、前記少なくとも1つのシフト回路モデルにおける一の前記順序回路モデルの出力の状態を取得し、さらに、該少なくとも1つのシフト回路モデルにおける各順序回路モデルの出力の状態を次段の順序回路にシフトさせることを前記シフト回路モデルにおける順序回路モデルの個数の逓倍に対応する回数に1回分だけ加えた回数だけ繰り返し、取得した前記順序回路モデルの出力の状態に基づいて、前記半導体集積回路モデルの消費電力を算出すように構成される、見積装置である。
【発明の効果】
【0024】
本発明によれば、半導体集積回路は、チップ面積の増大を抑制しつつ、効率的に消費電力の見積もりを行うことができるようになる。
【0025】
また、本発明によれば、半導体集積回路は、モジュール毎に効率的に消費電力の測定を行うことができるようになる。
【0026】
また、本発明によれば、見積装置は、半導体集積回路の消費電力を効率的に見積もることができるようになる。
【0027】
また、本発明によれば、半導体設計装置は、モジュール毎に効率的に消費電力の測定を行うことができる半導体集積回路を設計することができるようになる。
【0028】
本発明の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。
【発明を実施するための形態】
【0030】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【0031】
図1は、本発明の一実施形態に係る半導体集積回路の概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体集積回路10は、例えば、組合せ回路11と、制御回路12と、クロック生成回路13と、複数のシフト回路14と、複数の選択回路15とを含んで構成される。
【0032】
組合せ回路11は、フリップフロップなどの順序回路を含まない論理回路である。組合せ回路11(1)は、半導体集積回路10の入力側に設けられ、外部から入力される入力信号INに対して論理演算を行い、該信号をデータ入力信号DINとして複数のシフト回路14に出力する。具体的には、組合せ回路11(1)は、外部から入力される入力信号IN(1)乃至IN(m)に対して論理演算を行いデータ入力信号DIN1乃至DINnとして該信号をシフト回路14(1)乃至14(n)のデータ端子dに出力する。ここで、値nは、半導体集積回路10に設けられるシフト回路14の数を示し、値mは、入力信号INの信号の数を示す。
【0033】
また、組合せ回路11(2)は、半導体集積回路10の出力側に設けられ、複数のシフト回路14から出力されるデータ出力信号DOUTに対して論理演算を行い、該信号をユーザー信号USRとして複数の選択回路15に出力する。具体的には、組合せ回路11(2)は、シフト回路14(1)乃至14(n)から出力されるデータ出力信号DOUT1乃至DOUTnに対して論理演算を行いユーザー信号USR(1)乃至USR(n)として該信号を選択回路15(1)乃至15(n)の入力端子A0に出力する。なお、本例では、ユーザー信号USRは、組合せ回路11(2)から出力されているが、これに限られるものではなく、組合せ回路11(1)から出力されても良いし、図示しないその他の回路から出力されても良い。
【0034】
制御回路12は、外部からモード端子modeを介して入力されるモード信号MODEに従って、半導体集積回路10のテストモードのオン/オフを制御するとともに、システムクロックCLKを生成し、該クロックを各構成要素に出力する。具体的には、制御回路12は、外部からモード端子modeを介して受け取ったモード信号MODEが“テストモード”を示す場合、テスト制御信号CT_TSTの状態を“テストモード”に設定する。一方、制御回路12は、外部からモード端子modeを介して受け取ったモード信号MODEが“通常モード”を示す場合、テスト制御信号CT_TSTの状態を“通常モード”に設定する。また、制御回路12はシステムクロックCLKを生成し、該クロックをクロック生成回路13に出力するとともに、テスト制御信号CT_TSTをクロック生成回路13及び選択回路15の選択端子SLに出力する。
【0035】
クロック生成回路13は、制御回路12から出力されるシステムクロックCLKと、テスト制御信号CT_TSTの状態“テストモード”又は“通常モード”とに従って、シフトクロックSF_CLK及びイネーブル信号ENAを生成し出力する。具体的には、クロック生成回路13は、制御回路12から出力されるテスト制御信号CT_TSTの状態を判断する。クロック生成回路13は、テスト制御信号CT_TSTが“テストモード”であると判断する場合、システムクロックCLKのカウント回数に従って“キャプチャモード”又は“シフトモード”の状態をとるイネーブル信号ENAと、該イネーブル信号ENAに従うシフトクロックSF_CLKとを生成する。一方、クロック生成回路13は、テスト制御信号CT_TSTが“通常モード”であると判断する場合、常に“0”の状態をとるイネーブル信号ENAと、システムクロックCLKと同じとなるシフトクロックSF_CLKとを生成する。そして、クロック生成回路13は、シフトクロックSF_CLKをシフト回路14のクロック端子ckに、イネーブル信号ENAをシフト回路14のイネーブル端子ena、及び選択回路15(n+1)の入力端子A1に出力する。
【0036】
シフト回路14は、半導体集積回路10の組合せ回路11(1)と組合せ回路11(2)との間に複数(n個)設けられ、クロック生成回路13から出力されるシフトクロックSF_CLKに基づいて、該クロック生成回路13から出力されるイネーブル信号ENAの状態に従う信号を出力する。具体的には、シフト回路14は、それぞれ、クロック生成回路13から出力されるイネーブル信号ENAの状態を判断する。シフト回路14は、それぞれ、イネーブル信号ENAの状態が“キャプチャモード”であると判断する場合、シフトクロックSF_CLKに基づいて、組合せ回路11(1)から出力されるデータ入力信号DINをデータ出力信号DOUTとして、組合せ回路11(2)へと出力する。一方、シフト回路14は、それぞれ、イネーブル信号ENAの状態が“シフトモード”であると判断する場合、クロック生成回路13から出力されるシフトクロックSF_CLKに基づいて、シフト端子sfoからシフト信号SFTを選択回路15へと出力する。
【0037】
なお、同図においてシフト回路14は、半導体集積回路10において組合せ回路11(1)及び11(2)を接続するように設けられているが、組合せ回路11(1)又は11(2)に少なくとも1つ以上設けられ少なくとも1つ以上の順序回路を有するモジュール毎にシフト回路14が設けられても良い。かかる場合、シフト回路14の出力は、それぞれ、モジュールの出力の状態を示す。
【0038】
複数の選択回路15(1)乃至15(n+1)は、例えば、マルチプレクサである。複数の選択回路15(1)乃至15(n+1)は、制御回路12から出力されるテスト制御信号CT_TSTに従って組合せ回路11(2)から出力されるユーザー信号USR(1)乃至(n+1)又は複数のシフト回路14(1)乃至14(n)から出力されるシフト信号SFTを選択し、該選択結果を出力信号OUTとして外部に出力する。
【0039】
具体的には、選択回路15(i)は、制御回路12から出力されるテスト制御信号CT_TSTの状態が“通常モード”であると判断する場合、組合せ回路11(2)から出力されるユーザー信号USR(i)を選択し、該選択結果を出力信号OUT(i)として出力する。一方、選択回路15(i)は、制御回路12から出力されるテスト制御信号CT_TSTの状態が“テストモード”であると判断する場合、シフト回路14(i)から出力されるシフト信号SFT(i)を選択し、該選択結果を出力信号OUT(i)として出力する。ここで、iは、1以上n以下の正の整数である。
【0040】
また、最後段の選択回路15(n+1)は、制御回路12から出力されるテスト制御信号CT_TSTの状態が“通常モード”であると判断する場合、組合せ回路11(2)から出力されるユーザー信号USR(n+1)を選択し、該選択結果を出力信号OUT(i)として出力する。一方、最後段の選択回路15(n+1)は、制御回路12から出力されるテスト制御信号CT_TSTの状態が“テストモード”であると判断する場合、クロック生成回路13から出力されるイネーブル信号ENAを選択し、該選択結果を出力信号OUT(i)として出力する。テストモードにおいて、最後段の選択回路15(n+1)から出力される出力信号OUT(n+1)は、半導体集積回路10がテストモードであることを示す。
【0041】
以上のように構成される半導体集積回路10は、制御回路12から出力されるテスト制御信号CT_TSTに従って、外部から入力される入力信号INを、組合せ回路11(1)、複数のシフト回路14(1)乃至14(n)、及び組合せ回路11(2)を介して、出力信号OUTとして出力するか、又は複数のシフト回路14(1)乃至14(n)の出力の状態を出力信号OUTとして出力する。
【0042】
図2は、本発明の一実施形態に係る半導体集積回路のクロック生成回路の構成の一例を示す図である。同図に示すように、クロック生成回路13は、カウンタ131と、論理積回路132及び133と、選択回路134とを含んで構成される。
【0043】
カウンタ131は、制御回路12から出力されるシステムクロックCLKから出力制御信号CNT_O及びクロック生成信号CKG_Oをそれぞれ生成し、出力制御信号CNT_Oを論理積回路132に、クロック生成信号CKG_Oを論理積回路133にそれぞれ出力する。
【0044】
具体的には、カウンタ131は、シフト回路14が有する後述する順序回路142の個数の逓倍(例えば1倍)の回数だけシステムクロックCLKが交番する間“1”となり、その後に半導体集積回路10がシフト回路14の出力の状態をキャプチャするために必要な期間の間“0”となる出力制御信号CNT_Oを生成し、該信号を論理積回路132に出力する。さらに、カウンタ131は、出力制御信号CNT_Oが“1”となる期間に加えてシステムクロックCLKが1回交番する間“1”となり、その後にシフト回路14の出力の状態をキャプチャするために必要な期間よりもシステムクロックCLKが1回交番する間だけ短い期間“0”となるクロック生成信号CKG_Oを生成し、該信号を論理積回路133に出力する。
【0045】
なお、本例では、カウンタ131は、シフト回路14が有する順序回路142の個数の逓倍(例えば1倍)の回数だけシステムクロックCLKが交番する間“1”となるが、これに限られるものではなく、カウンタ131は、シフト回路14が有する順序回路142の個数の2倍又は3倍など、任意の倍数の回数だけシステムクロックCLKが交番する間“1”となっても良い。
【0046】
論理積回路132は、例えば、ANDゲートである。論理積回路132は、出力制御信号CNT_Oと、テスト制御信号CT_TSTとに対して論理積演算を行い、該演算結果をイネーブル信号ENAとして出力する。具体的には、論理積回路132は、カウンタ131から出力される出力制御信号CNT_Oと、制御回路12から出力されるテスト制御信号CT_TSTとに対して論理積演算を行い、該演算結果をイネーブル信号ENAとして、シフト回路14のイネーブル端子enaと、選択回路15(n+1)の入力端子A1に出力する。なお、イネーブル信号ENAはその状態が“0”である時“キャプチャモード”を示し、その状態が“1”である時“シフトモード”を示す。
【0047】
論理積回路133は、例えば、ANDゲートである。論理積回路133は、クロック生成信号CKG_Oと、システムクロックCLKとに対して論理積演算を行い、該演算結果を選択回路134の入力端子A1に出力する。具体的には、論理積回路133は、カウンタ131から出力されるクロック生成信号CKG_Oと、制御回路12から出力されるシステムクロックCLKとに対して論理積演算を行い、該演算結果を選択回路134の入力端子A1に出力する。
【0048】
選択回路134は、例えば、マルチプレクサである。選択回路134は、テスト制御信号CT_TSTの状態に従って、論理積回路133からの出力又はシステムクロックCLKを選択し、該選択結果をシフトクロックSF_CLKとして出力する。具体的には、選択回路134は、制御回路12から出力されるテスト制御信号CT_TSTの状態を判断する。選択回路134は、制御信号CT_TSTの状態が“通常モード”であると判断する場合、制御回路12から出力されるシステムクロックCLKを選択し、該選択結果をシフトクロックSF_CLKとしてシフト回路14のクロック端子ckに出力する。一方、選択回路134は、制御信号CT_TSTの状態が“テストモード”であると判断する場合、論理積回路133からの出力を選択し、該選択結果をシフトクロックSF_CLKとしてシフト回路14のクロック端子ckに出力する。
【0049】
以上のように構成されるクロック生成回路13は、テスト制御信号CT_TSTが“テストモード”を示す間、シフト回路14が有する順序回路142の個数の逓倍の回数だけシステムクロックCLKが交番する間“1”となり、シフト回路14の出力の状態をキャプチャするために必要な期間の間“0”となるイネーブル信号ENAと、該イネーブル信号ENAが“1”となる期間に加えてシステムクロックCLK1回分の間交番するシフトクロックSF_CLKとを生成し、該2つの信号を出力する。
【0050】
図3Aは、本発明の一実施形態に係る半導体集積回路のシフト回路の構成の一例を示す図である。同図に示すように、シフト回路14(i)は、選択回路141(1)乃至141(x)と、順序回路142(1)乃至142(x)とを含んで構成される。ここで値xは、シフト回路14に設けられている選択回路141及び順序回路142の数を示す。また、選択回路141及び順序回路142は、それぞれ対になって出力制御回路140を構成する(例えば、図中の破線部)。複数の出力制御回路140は、それぞれ、自身の順序回路142から出力される信号が次段の出力制御回路140の選択回路141に入力されるように環状に接続される。
【0051】
選択回路141は、例えば、マルチプレクサである。選択回路141は、クロック生成回路13から出力されるイネーブル信号ENAに従って、組合せ回路11(1)から出力されるデータ入力信号DINi又は対応する順序回路142の前段の順序回路142が出力するデータ出力信号DOUTiを選択し、該選択結果を順序回路142に出力する。
【0052】
具体的には、選択回路141(s)は、クロック生成回路13から出力されるイネーブル信号ENAの状態を判断する。選択回路141(s)は、イネーブル信号ENAの状態が“キャプチャモード”であると判断する場合、組合せ回路11(1)から出力されるデータ入力信号DINi(s)を選択し、該選択結果を順序回路142(s)のデータ入力端子Dに出力する。一方、選択回路141(s)は、イネーブル信号ENAの状態が“シフトモード”であると判断する場合、順序回路142(s−1)から出力されるデータ出力信号DOUTi(s−1)を選択し、該選択結果を順序回路142(s)のデータ入力端子Dに出力する。また、最前段の選択回路141(1)は、イネーブル信号ENAの状態が“シフトモード”であると判断する場合、最後段の順序回路142(x)から出力されるデータ出力信号DOUTi(x)を選択し、該選択結果を順序回路142(1)のデータ入力端子Dに出力する。ここで、sは1以上x以下の正の整数である。
【0053】
順序回路142は、例えば、D型フリップフロップである。順序回路142は、クロック生成回路13から出力されるシフトクロックSF_CLKに基づいて、選択回路141から出力される選択結果をデータ出力信号DOUTiとして組合せ回路11(2)と、次段の選択回路141の入力端子A1に出力する。
【0054】
具体的には、順序回路142(s)は、クロック生成回路13から出力されるシフトクロックSF_CLKに基づいて、選択回路141(s)から出力される選択結果をデータ出力信号DOUTi(s)として組合せ回路11(2)と、選択回路141(s+1)の入力端子A1に出力する。また、最後段の順序回路142(x)は、クロック生成回路13から出力されるシフトクロックSF_CLKに基づいて、選択回路141(s)から出力される選択結果をデータ出力信号DOUTi(s)として組合せ回路11(2)と、選択回路141(1)の入力端子A1に出力し、該選択結果をシフト信号SFTとして、選択回路15(i)の入力端子A1に出力する。
【0055】
図3Bは、本発明の一実施形態に係る半導体集積回路のシフト回路の構成の他の例を示す図である。同図に示すように、シフト回路14’は、
図3Aのシフト回路14に論理積回路143とダミーの順序回路144とをさらに含んで構成される。同図における選択回路141及び順序回路142は、
図3Aで説明したものと同じであるため、その説明を省略する。
【0056】
論理積回路143は、例えば、ANDゲートである。論理積回路143は、前段の順序回路142又は144からの出力と、イネーブル信号ENAとに対して論理積演算を行い、該演算結果を対応する順序回路144に出力する。具体的には、論理積回路143(s)は、前段の順序回路142又は144から出力されるデータ出力信号DOUTi(s+1)と、クロック生成回路13から出力されるイネーブル信号ENAとに対して論理積演算を行い、該演算結果を対応する順序回路144(s)のデータ入力端子Dに出力する。なお、上述したように、“キャプチャモード”は、論理演算における状態“0”を、“シフトモード”は、論理演算における状態“1”をそれぞれ示す。
【0057】
順序回路144は、例えば、D型フリップフロップである。順序回路144は、シフトクロックSF_CLKに基づいて、対応する論理積回路143からの出力をデータ出力信号DOUTiとして組合せ回路11(2)及び次段の論理積回路143に出力する。具体的には、順序回路144(s)は、クロック生成回路13から出力されるシフトクロックSF_CLKに基づいて、対応する論理積回路143(s)からの出力をデータ出力信号DOUTi(s+2)として組合せ回路11(2)及び次段の論理積回路143(s+1)に出力する。
【0058】
図3Cは、本発明の一実施形態に係る半導体集積回路のシフト回路の構成の他の例を示す図である。同図に示すように、シフト回路14’’は、
図3Bのシフト回路14’に論理積回路145をさらに含んで構成される。また、シフト回路14’’は、
図3Bのシフト回路14’において順序回路144に代えて順序回路144’を含んで構成される。同図における選択回路141、順序回路142及び論理積回路143は、
図3Bで説明したものと同じであるため、その説明を省略する。
【0059】
論理積回路145は、例えば、ANDゲートである。論理積回路145は、クロック生成回路13から出力されるシフトクロックSF_CLKと、制御回路12から出力されるテスト制御信号CT_TSTとに対して論理積演算を行い、該演算結果を順序回路144’のクロック端子CKに出力する。
【0060】
順序回路144’は、例えば、D型フリップフロップである。順序回路144’は、論理積回路145からの出力に基づいて、対応する論理積回路143からの出力をデータ出力信号DOUTiとして組合せ回路11(2)及び次段の論理積回路143に出力する。具体的には、順序回路144’(s)は、論理積回路145からの出力に基づいて、対応する論理積回路143(s)からの出力をデータ出力信号DOUTi(s+2)として組合せ回路11(2)及び次段の論理積回路143(s+1)に出力する。
【0061】
以上のように構成されるシフト回路14は、クロック生成回路13から出力されるイネーブル信号ENAの状態“キャプチャモード”又は“シフトモード”に従って、組合せ回路11(1)から出力されるデータ入力信号DINiを選択回路141及び順序回路142を介して組合せ回路11(2)に出力するか、又は順序回路142及び144の出力の状態をチェーン状に接続された選択回路141と、論理積回路143と、順序回路142及び144とを介して、最後段の順序回路144から出力する。
【0062】
図4は、本発明の一実施形態に係る半導体集積回路のテストモードにおける各種の信号のタイミングチャートである。同図において、システムクロックCLKが交番するタイミングを時刻t501乃至t513と定義する。また、制御回路12は、“テストモード”を示す制御信号CT_TSTを出力しているものと仮定する。また、半導体集積回路10のシフト回路14は、3つの順序回路142を有するものと仮定する。また、シフト回路14の出力の状態をキャプチャするために必要な期間は、システムクロックCLKの4クロック分であると仮定する。
【0063】
半導体集積回路10のクロック生成回路13は、制御回路12から出力されるシステムクロックCLKに基づいて、クロック生成信号CKG_O及び出力制御信号CNT_Oを生成し出力する。クロック生成回路13は、シフト回路14の出力の状態をキャプチャするために必要な期間の期間(すなわち、時刻t501乃至t505の期間)“0”となり、シフト回路14が有する順序回路142の個数の逓倍(本例では1倍)の回数だけシステムクロックCLKが交番する期間(すなわち、時刻t505乃至t508の期間)に“1”となる出力制御信号CNT_Oを生成し、テスト制御信号CT_TSTとの論理積をとりイネーブル信号ENAとして、出力する。クロック生成回路13は、時刻t508以降においても時刻t501乃至t507と同じように出力制御信号CNT_Oを生成する。
【0064】
また、クロック生成回路13は、半導体集積回路10のシフト回路14の出力の状態をキャプチャするために必要な期間よりシステムクロックCLKの1クロック分短い期間(すなわち、時刻t502乃至t505の期間)に“0”となり、出力制御信号CNT_Oの“1”の期間よりシステムクロックCLKの1クロック分長い期間(すなわち、時刻t505乃至t509の期間)“1”となるクロック生成信号CKG_Oを生成する。クロック生成回路13は、時刻t510以降においても時刻t502乃至t509と同じようにクロック生成信号CKG_Oを生成する。
【0065】
また、クロック生成回路13は、自身が生成したクロック生成信号CKG_Oに基づいて、クロック生成信号CKG_Oが“1”の間交番するシフトクロックSF_CLKを生成する。クロック生成回路13は、時刻t502でシフトクロックSF_CLKの交番を停止し、時刻t505で該クロックの交番を開始し、時刻t509で該クロックの交番を停止する。クロック生成回路13は、時刻t510以降、時刻t502乃至t509での動作と同じようにシフトクロックSF_CLKの交番の停止と交番の開始を繰り返す。
【0066】
シフト回路14は、クロック生成回路13から出力されるイネーブル信号ENA(本例では出力制御信号CNT_Oと同じ)に従って、組合せ回路11(1)から出力されるデータ入力信号DINの状態か、又は順序回路142の状態をデータ出力信号DOUTiとして出力する。具体的には、シフト回路14は、時刻t501乃至t505では、組合せ回路11(1)が出力するデータ入力信号DINの状態を出力し、時刻t506乃至t508では順序回路142の状態を出力し、時刻t509乃至t512ではまた組合せ回路11(1)が出力するデータ入力信号DINの状態を出力する。
【0067】
順序回路142(1)乃至142(3)は、それぞれ、時刻t501で、シフトクロックSF_CLKに基づいて、出力制御信号CNT_Oの状態“1”に従い、前段又は最後段の順序回路142から出力される状態DA1、DB1及びDC1を出力する。続いて、順序回路142(1)乃至142(3)は、それぞれ、時刻t505で、出力制御信号CNT_Oの状態“0”に従い、シフトクロックSF_CLKに基づいて、組合せ回路11(1)から出力される状態DA2、DB2及びDC2をキャプチャする。
【0068】
次に、順序回路142(1)乃至142(3)は、それぞれ、時刻t506で、出力制御信号CNT_Oの状態“1”に従い、シフトクロックSF_CLKに基づいて、前段又は最後段の順序回路142から出力される状態DC2、DA2及びDB2を出力する。続いて、順序回路142(1)乃至142(3)は、それぞれ、時刻t507で、出力制御信号CNT_Oの状態“1”に従い、シフトクロックSF_CLKに基づいて、前段又は最後段の順序回路142から出力される状態DB2、DC2及びDA2を出力する。さらに、順序回路142(1)乃至142(3)は、それぞれ、時刻t508で、出力制御信号CNT_Oの状態“1”に従い、シフトクロックSF_CLKに基づいて、前段又は最後段の順序回路142から出力される状態DA2、DB2及びDC2を出力する。そして、順序回路142(1)乃至142(3)は、それぞれ、時刻t512で、出力制御信号CNT_Oの状態“0”に従い、シフトクロックSF_CLKに基づいて、組合せ回路11(1)から出力される状態DA3、DB3及びDC3をキャプチャする。
【0069】
上述したように、半導体集積回路10は、実動作周波数で組合せ回路11(1)から出力されるデータをキャプチャし、システムクロックCLKの周波数でシフト回路14が有する順序回路142の個数の逓倍+1回分だけ順序回路142(1)乃至142(3)の状態をシフトする。これにより、半導体集積回路10は、順序回路142(1)乃至142(3)の出力をシフトした後の状態を順序回路142(1)乃至142(3)の出力をシフトする前の状態と等しくすることができ、追加の処理を行わずに次に組合せ回路11(1)が出力するデータのキャプチャを行えるため、効率的に順序回路142(1)乃至142(3)の状態を外部に出力することができる。
【0070】
また、半導体集積回路10は、消費電力の見積もりにあたって、クロック生成回路13、シフト回路14の選択回路141及び選択回路15が既存の半導体集積回路に加えられたものであり、既存の半導体集積回路に対してチップ面積の増大を抑制して、消費電力を見積もることができる。
【0071】
図5は、本発明の一実施形態に係る半導体測定システムの概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体測定システム1は、半導体集積回路10と、半導体測定装置20とを含んで構成される。ここで、半導体集積回路10に関しては、
図1において説明したものと同じであるため、その構成の詳細に関しては説明を省略する。
【0072】
半導体集積回路10は、外部から入力される入力信号IN(1)乃至IN(m)に対して
図1乃至
図4で説明した処理を行い、出力信号OUT(1)乃至OUT(n)として半導体測定装置20に出力する。半導体集積回路10は、半導体測定装置20から入力信号IN及びモード信号MODEを受け、半導体測定装置20の制御の下で動作する。また、半導体集積回路10は、半導体測定装置20から入力される動作モード(例えば、“テストモード”及び“通常モード”)を示すモード信号MODEに従って自身の動作モード(例えば、“テストモード”及び“通常モード”と、“キャプチャモード”及び“シフトモード”)とを決定する。
【0073】
半導体測定装置20は、例えば、LSIテスターや評価ボードである。半導体測定装置20は、半導体集積回路10の動作を制御するとともに、半導体集積回路10の動作モードを制御する。半導体測定装置20は、例えば、制御装置21と、コンパレータ22と、トグル回数算出装置23と、記憶装置24とを含んで構成される。記憶装置24は、例えば、テストプログラム及びテストデータを記憶する。
【0074】
制御装置21は、メモリとプロセッサを有し(図示せず)、記憶装置24から読み出されたテストプログラムに従って、半導体集積回路10の動作及び動作モードを決定し、該動作及び動作モードの制御を行う入力信号IN及びモード信号MODEを半導体集積回路10に出力する。次に、制御装置21は、各コンパレータ22の判断基準を評価信号VALとして各コンパレータ22に出力する。そして、制御装置21はトグル回数算出装置23が算出した半導体集積回路10の順序回路142のトグル回数に基づいて、半導体集積回路10の消費電力を測定し、該測定した消費電力の値を記憶装置24に出力する。
【0075】
コンパレータ22は、制御装置21から出力される評価信号VALに従って、半導体集積回路10から出力される出力信号OUTの状態をテスト信号TSTとして、トグル回数算出装置23に出力する。
【0076】
トグル回数算出装置23は、コンパレータ22から出力されるテスト信号TSTと、半導体集積回路10から出力されるイネーブル信号ENAとに基づいて半導体集積回路10の各モジュールの順序回路142のトグル回数を算出し、該算出した結果を制御装置21に出力する。具体的には、トグル回数算出装置23は、コンパレータ22(1)乃至22(n)から出力されるテスト信号TST(1)乃至TST(n)が示す状態が“1”から“0”へ、又は“0”から“1”へと遷移する回数をカウントする。次に、トグル回数算出装置23は、該カウントした回数をコンパレータ22毎に合計することで半導体集積回路10の各モジュールのトグル回数を算出し、各モジュールのトグル回数と、該トグル回数の合計(すなわち、半導体集積回路10全体のトグル回数)をテスト信号TSTとして制御装置21に出力する。
【0077】
以上のように構成される半導体測定システム1は、半導体集積回路10の動作モードである“テストモード”及び“通常モード”と、半導体集積回路10の動作を制御するテストパターンとを入力信号IN(1)乃至IN(m)として半導体集積回路10に出力するとともに、半導体集積回路10から出力される出力信号OUT(1)乃至OUT(n+1)の状態を判断する。これにより、半導体測定システム1は、半導体集積回路10の各モジュールの順序回路142のトグル回数を算出することによって、該トグル回数に基づいて、各モジュールの消費電力と、半導体集積回路10全体の消費電力とを効率的に測定することができる。
【0078】
図6は、本発明の一実施形態に係る半導体測定装置が半導体集積回路の消費電力を測定する動作を概略的に示すフローチャートである。同図において、まず、半導体測定装置20は、半導体測定システム1の測定対象を配置すべき場所に消費電力を測定すべき半導体集積回路10を配置する(S601)。次に、半導体測定装置20は、記憶装置24からテストパターンを取得し、該取得したテストパターンを配置した半導体集積回路10に入力する(S602)。続いて、半導体測定装置20は、半導体集積回路10をテストモードに設定する(S603)。
【0079】
半導体集積回路10は、半導体測定装置20の制御の下、自身をキャプチャモードに設定する(S604)。具体的には、半導体集積回路10は、半導体測定装置20の制御の下、キャプチャモードを示すイネーブル信号ENAと、該イネーブル信号ENAに従うシフトクロックSF_CLKとを生成する。半導体集積回路10が“キャプチャモード”の間、半導体集積回路10は、実動作周波数で動作する。
【0080】
半導体測定装置20は、半導体集積回路10のシフト回路14に半導体集積回路10の組合せ回路11(1)が出力するデータ入力信号DINをキャプチャさせる(S605)。そして、半導体測定装置20は、半導体集積回路10を“シフトモード”に設定する(S606)。具体的には、半導体測定装置20は、モード信号MODEを送信する。半導体集積回路10は、半導体測定装置20の制御の下、シフトモードを示すイネーブル信号ENAと、該イネーブル信号ENAに従うシフトクロックSF_CLKとを生成する。半導体集積回路10が“シフトモード”の間、半導体集積回路10は、システムクロックCLKの周波数で動作する。
【0081】
半導体集積回路10は、半導体測定装置20の制御の下、シフト回路14が有する順序回路142の出力の状態を次段の順序回路142へとシフトさせる処理と、該順序回路142の状態を記憶する処理とをシフト回路14が有する順序回路142の個数+1回繰り返す(ループA:S607乃至S609)。
【0082】
より具体的には、半導体集積回路10は、半導体測定装置20の制御の下、シフト回路14が有する順序回路142の出力の状態を次段の順序回路142へと1回シフトさせる(S608)。次に、半導体測定装置20は、最後段の順序回路142が出力する出力の状態をコンパレータ22で判断し、該判断結果をトグル回数算出装置23に出力する。トグル回数算出装置23は、コンパレータ22から出力された出力の状態を記録する(S609)。
【0083】
半導体測定装置20は、テストパターンの所望の状態に対して半導体集積回路10のシフト回路14の順序回路142の状態を記憶したかを判断する(S610)。半導体測定装置20は、テストパターンの所望の状態に対して半導体集積回路10のシフト回路14の順序回路142の状態を記憶していないと判断する場合(S610のNo)、ステップS604の処理に戻る。一方、半導体測定装置20は、テストパターンの所望の状態に対して半導体集積回路10のシフト回路14の順序回路142の状態を記憶したと判断する場合(S610のYes)、ステップS611の処理に進む。
【0084】
半導体測定装置20は、トグル回数算出装置23が記憶したコンパレータ22の結果に基づいて、トグル回数算出装置23で半導体集積回路10のトグル回数を算出する(S611)。そして、半導体測定装置20は、該トグル回数に基づいて、制御装置21で消費電力の算出を行い、該算出した消費電力の値を測定の結果として記憶装置24に記憶させ(S612)、半導体集積回路10の消費電力の測定を終了する。
【0085】
上述したように、半導体集積回路10は、半導体測定装置20の制御の下、まずキャプチャモードで動作し、組合せ回路11(1)から出力されるデータをキャプチャする。次に半導体集積回路10は、半導体測定装置20の制御の下、シフトモードで動作し半導体集積回路10のシフト回路14が有する順序回路142の数+1回分だけ順序回路142の状態をシフトする。これにより、半導体集積回路10は、半導体測定装置20の制御の下、シフト回路14が順序回路142の出力をシフトした後の状態を該順序回路142の出力をシフトする前の状態と等しくする。半導体集積回路10は、半導体測定装置20の制御の下、追加の処理を行わずに次に組合せ回路11(1)が出力するデータのキャプチャを行えるため、効率的に順序回路142の状態をコンパレータ22に出力することができる。
【0086】
また、半導体測定装置20は、コンパレータ22毎に結果を処理することによって、各コンパレータ22に対応する半導体集積回路10のモジュール毎のトグル回数を算出し、該算出結果に基づいて半導体集積回路10の消費電力をモジュール毎に測定することができる。
【0087】
図7は、本発明の一実施形態に係る半導体設計装置の概略構成の一例を示す図である。同図に示すように、本実施形態に係る半導体設計装置700は、プロセッサモジュール702と、チップセット703と、メモリモジュール704と、ストレージデバイス705と、入出力装置706とを含んで構成される。
【0088】
プロセッサモジュール702は、例えば、プロセッサコア、マイクロコントローラ、デジタル信号プロセッサ及び/又はこれらの組合せを含むが、これらに限られるものではない。ここでは、「プロセッサコア」という用語は、メインプロセッサを意味するプロセッサ(すなわち、処理装置)やCPU、MPU等と同義のものとして扱われる。プロセッサモジュール702は、1次又はそれ以上のレベルのキャッシュ機構を含んでも良い。
【0089】
チップセット703は、プロセッサモジュール702、メモリモジュール704、ストレージデバイス705及び入出力装置706等を接続するバスとのブリッジや、コンピューティングデバイスを構成するために必要な他のコンポーネントを集積した回路からなる。チップセット703は、例えば、プロセッサモジュール702によって制御される。
【0090】
メモリモジュール704は、典型的には、揮発性メモリ(例えばRAM)、不揮発性メモリ(例えばROMやフラッシュメモリ等)及び/又はこれらの組合せからなる1次記憶装置である。メモリモジュール704は、典型的には、デバイスドライバ、オペレーティングシステム(OS)プログラム、1又は2以上のプログラム及び各種プログラムの実行に必要な情報等の全部又は一部を保持し、プロセッサモジュール702の利用に供される。なお、プロセッサモジュール702、チップセット703及びメモリモジュール704は、実行装置701を構成する。
【0091】
ストレージデバイス705は、典型的には、ハードディスクドライブ(HDD)や光学式ディスクドライブ、ソリッドステートデバイス(SSD)等からなる。ストレージデバイス705は、プロセッサモジュール702の2次記憶装置として機能し、OS、各種プログラム、各種プログラムの実行結果や、各種プログラムの実行に必要な情報を記憶する。
【0092】
入出力装置706は、各種のペリフェラルインターフェースであり、例えば、キーボードや、マウス、ディスプレイ、印刷装置、通信装置などである。入出力装置706は、半導体設計装置700が半導体集積回路10を設計するために必要な情報の入力を受け付けるとともに、半導体設計装置700よって設計された半導体集積回路10の情報を出力する。
【0093】
以上のように構成される半導体設計装置700では、メモリモジュール704に記憶されるプログラムに従ってプロセッサモジュール702が半導体集積回路10の設計を行う。また、半導体設計装置700は、設計過程の半導体集積回路10又は既に設計されている半導体集積回路10の消費電力の見積装置としても機能する。すなわち、半導体設計装置700は、メモリモジュール704に記憶されるプログラムに従って、プロセッサモジュール702が設計過程又は既に設計済の半導体集積回路10のトグル回数の算出を行い、該算出したトグル回数に基づいて、半導体集積回路10の消費電力を見積もる。
【0094】
図8は、本発明の一実施形態に係る半導体設計装置のメモリモジュールの記憶内容の一例を説明するための概念図である。同図において、回路情報生成プログラム7041は、半導体設計装置700上で半導体集積回路10を設計するためのプログラムである。回路情報生成プログラム7041によって生成された半導体集積回路10の回路構成は、回路情報7043としてメモリモジュール704に記憶される。また、回路情報生成プログラム7041は、半導体集積回路10の設計のために、既存の回路情報7043をベースとして使用しても良い。
【0095】
回路情報7043は、回路情報生成プログラム7041によって生成された半導体集積回路10の回路構成の情報の一部又は全部を有するデータである。回路情報7043は、回路情報生成プログラム7041によって半導体集積回路10の設計の過程においてさらに更新される。回路情報7043は、回路情報生成プログラム7041による半導体集積回路10の設計によって、最終的に、上述した半導体集積回路10の略全ての回路情報7043を有する。このように、半導体集積回路10の略全ての回路情報を有する回路情報7043は、記憶媒体(本例ではメモりモジュール704)に記憶される。
【0096】
シミュレーションパターン情報7044は、消費電力見積プログラム7042が上述した回路情報7043に示される仮想の半導体集積回路10に対してシミュレーションを行う際に使用される仮想の入力信号の情報である。シミュレーションパターン情報7044は、上述した半導体設計装置700が仮想の半導体集積回路10に対して出力する入力信号INと略等しい信号の情報を有する。
【0097】
消費電力見積プログラム7042は、半導体設計装置700が設計過程又は設計済の半導体集積回路10の消費電力を見積もるためのプログラムである。消費電力見積プログラム7042は、プロセッサモジュール702によって実行され、回路情報7043及びシミュレーションパターン情報7044に従って、回路情報7043に示される半導体集積回路10のトグル回数を算出し、該算出したトグル回数に基づいて仮想の半導体集積回路10の消費電力を見積もる。具体的には、消費電力見積プログラム7042は、プロセッサモジュール702によって実行され、回路情報7043に示される仮想の半導体集積回路10に対して、仮想の入力信号であるシミュレーションパターン情報7044を入力することで、消費電力を見積もるためのシミュレーションを実行する。そして、消費電力見積プログラム7042は、プロセッサモジュール702によって実行され、仮想の半導体集積回路10のシフト回路14の順序回路142の出力の状態に基づいて該仮想の半導体集積回路10のトグル回数を算出し、該算出したトグル回数に基づいて消費電力を見積もって、該消費電力の値をシミュレーション結果7045として記憶する。
【0098】
図9は、本発明の一実施形態に係る半導体設計装置が半導体集積回路を設計する際の動作を概略的に示すフローチャートである。同図において、半導体設計装置700は、まず半導体集積回路10に消費電力を個別に見積もるべき(すなわち、シフト回路14を別個に設けるべき)モジュールが存在するか否かを判断する(S901)。より、具体的には、各モジュールには、消費電力を個別に見積もるべきか否かを属性が予め割り当てられており、半導体設計装置700は、各モジュールの該属性を参照することによって、半導体集積回路10に消費電力を個別に見積もるべきモジュールが存在するか否かを判断する。半導体設計装置700は、半導体集積回路10に消費電力を個別に見積もるべきモジュールが存在しないと判断する場合(S901のNo)、仮想の半導体集積回路10が所定の数のシフト回路14を有するように、仮想の半導体集積回路10を分割し、仮想の半導体集積回路10の全ての順序回路142(例えば、D型フリップフロップ)に対してシフト回路14を構成し(S902)、ステップS907の処理に進む。
【0099】
一方、半導体設計装置700は、半導体集積回路10に消費電力を個別に見積もるべきモジュールが存在すると判断する場合(S901のYes)、別個に設けるべきモジュールを決定する(S903)。そして、決定したモジュールのうち指定の一つのモジュールから順序回路142を抽出し(S904)、該抽出した順序回路142に対してシフト回路14を構成する(S905)。
【0100】
半導体設計装置700は、ステップS903で決定したシフト回路14を別個に設けるべきモジュールの全てに対してシフト回路14を構成したか否かを判断する(S906)。半導体設計装置700は、シフト回路14を別個に設けるべきモジュールの全てに対してシフト回路14を構成していないと判断する場合(S906のNo)、ステップS904の処理に進む。一方、半導体設計装置700は、シフト回路14を別個に設けるべきモジュールの全てに対してシフト回路14を構成したと判断する場合(S906のYes)、ステップS907の処理に進む。
【0101】
半導体設計装置700は、仮想の半導体集積回路10の全てのシフト回路14に対して、各シフト回路14が有する順序回路142の数が一致するように、ダミーの順序回路144を各シフト回路14に挿入する(S907)。そして、半導体設計装置700は、仮想の半導体集積回路10に対してクロック生成回路13と、選択回路15と、シフト回路14及び該選択回路15を接続する信号線とを追加して(S908)、半導体集積回路10の設計を終了する。
【0102】
図10は、本発明の一実施形態に係る半導体設計装置が仮想の半導体集積回路の消費電力を見積もるシミュレーションの動作を概略的に示すフローチャートである。同図において、まず、半導体設計装置700は、消費電力を測定すべき仮想の半導体集積回路10の情報を有する回路情報7043をメモリモジュール704から取得する(S1001)。次に、半導体設計装置700は、メモリモジュール704から消費電力見積プログラム7042を起動し、該プログラムによって回路情報7043とシミュレーションパターン情報7044を選択する。そして、半導体設計装置700は、回路情報7043に示される仮想の半導体集積回路10に対して、シミュレーションパターン情報7044を入力してシミュレーションを開始し(S1002)、仮想の半導体集積回路10をテストモードに設定する(S1003)。
【0103】
半導体設計装置700は、仮想の半導体集積回路10をキャプチャモードに設定する(S1004)。具体的には、半導体設計装置700は、仮想の半導体集積回路10にキャプチャモードを示すイネーブル信号ENAと、該イネーブル信号ENAに従うシフトクロックSF_CLKとを生成させる。仮想の半導体集積回路10が“キャプチャモード”の間、仮想の半導体集積回路10は、実動作周波数で動作する。
【0104】
半導体設計装置700は、仮想の半導体集積回路10のシフト回路14に半導体集積回路10の組合せ回路11(1)が出力するデータ入力信号DINをキャプチャさせる(S1005)。そして、半導体設計装置700は、仮想の半導体集積回路10を“シフトモード”に設定する(S1006)。具体的には、半導体設計装置700は、仮想の半導体集積回路10にシフトモードを示すイネーブル信号ENAと、該イネーブル信号ENAに従うシフトクロックSF_CLKとを生成させる。仮想の半導体集積回路10が“シフトモード”の間、半導体集積回路10は、システムクロックCLKの周波数で動作する。
【0105】
半導体設計装置700は、仮想の半導体集積回路10のシフト回路14が有する順序回路142の出力の状態を次段の順序回路142へとシフトさせることと、該順序回路142の状態を記憶することとをシフト回路が有する順序回路142の個数+1回繰り返す(ループB:S1007乃至S1009)。
【0106】
より具体的には半導体設計装置700は、仮想の半導体集積回路10のシフト回路14が有する順序回路142の出力の状態を次段の順序回路142へと1回シフトさせる(S1008)次に、半導体設計装置700は、最後段の順序回路142が出力する出力の状態をシミュレーション結果7045として記憶する(S1009)。
【0107】
半導体設計装置700は、シミュレーションパターンの所望の状態に対して仮想の半導体集積回路10のシフト回路14の順序回路142の状態を記憶したかどうかを判断する(S1010)。半導体設計装置700は、シミュレーションパターンの所望の状態に対して仮想の半導体集積回路10のシフト回路14の順序回路142の状態を記憶していないと判断する場合(S1010のNo)、ステップS1004の処理に戻る。一方、半導体設計装置700は、シミュレーションパターンの所望の状態に対して仮想の半導体集積回路10のシフト回路14の順序回路142の状態を記憶したと判断する場合(S1010のYes)、ステップS1011の処理に進む。
【0108】
半導体設計装置700は、シミュレーション結果7045(すなわち、記憶した順序回路142の出力の状態)に基づいて、仮想の半導体集積回路10のトグル回数を算出する(S1011)。そして、半導体設計装置700は、該トグル回数に基づいて、仮想の半導体集積回路10の消費電力を見積もり(S1012)、仮想の半導体集積回路10の消費電力の見積もりを終了する。
【0109】
上述したように、半導体設計装置700は、仮想の半導体集積回路10をまずキャプチャモードで動作させ、組合せ回路11(1)から出力されるデータをキャプチャさせる。次に半導体設計装置700は、仮想の半導体集積回路10をシフトモードで動作させ半導体集積回路10のシフト回路14が有する順序回路142の数+1回分だけ順序回路142の状態をシフトする。これにより、半導体設計装置700は、半導体集積回路10に対して、シフト回路14が順序回路142の出力をシフトした後の状態を該順序回路142の出力をシフトする前の状態と等しくさせる。半導体設計装置700は、半導体集積回路10に対して、追加の処理を行わずに次に組合せ回路11(1)が出力するデータのキャプチャを行えるため、効率的に順序回路142の状態を記憶し、消費電力を見積もることができる。
【0110】
また、半導体設計装置700は、仮想の半導体集積回路10の出力毎に判断結果を処理することによって、各出力に対応する仮想の半導体集積回路10のモジュール毎の消費電力を効率的に見積もることができる。
【0111】
上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
【0112】
例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
【0113】
また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。