(57)【要約】【課題】抽象度の高い設計段階において省電力化を考慮した半導体集積回路を効率よく設計することができる半導体集積回路設計装置を提供する。【解決手段】各動作モードにおける各ハードウェア構成要素モデルのコードカバレッジを測定するコードカバレッジ測定機能部１２と、該測定結果に基づいて動作モード毎に複数のハードウェア構成要素モデルを使用ブロックと未使用ブロックにそれぞれ分割する第１の分割処理を実行し、該第１の分割処理結果に基づき複数のハードウェア構成要素モデルを電源制御の最小単位である電源制御単位ブロックにそれぞれ分割する第２の分割処理を実行するブロック分割機能部１３と、を備える。【選択図】        図５
2010003162.tif 000002
【特許請求の範囲】
【請求項１】
複数のハードウェア構成要素を含む半導体集積回路の設計を行う半導体集積回路設計装置であって、
前記夫々のハードウェア構成要素に夫々対応する複数のハードウェア構成要素モデルを含む半導体集積回路モデルと、該半導体集積回路モデルの動作モード毎に用意される動作プログラムと、に基づいてシミュレーションを実行して各動作モードにおける各ハードウェア構成要素モデルのコードカバレッジを測定するコードカバレッジ測定機能部と、
該測定結果に基づいて動作モード毎に複数のハードウェア構成要素モデルを使用ブロックと未使用ブロックにそれぞれ分割する第１の分割処理を実行し、該第１の分割処理結果に基づき複数のハードウェア構成要素モデルを電源制御の最小単位である電源制御単位ブロックにそれぞれ分割する第２の分割処理を実行するブロック分割機能部と、
を備えることを特徴とする半導体集積回路設計装置。
【請求項２】
前記ブロック分割機能部における第１および第２の分割処理結果に基づき、各動作モードにおいて使用ブロックに電源を供給し未使用ブロックに電源を供給しない電源制御を前記電源制御単位ブロックを単位として実行する電源制御モデルを生成する電源制御モデル作成機能部をさらに備えることを特徴とする請求項１に記載の半導体集積回路設計装置。
【請求項３】
前記全ての電源制御単位ブロックおよび前記電源制御モデルを含む半導体集積回路モデルと、動作モードを遷移させる状態遷移毎に用意される状態遷移プログラムと、に基づいてシミュレーションを実行して動作モードの遷移にかかる処理時間を状態遷移毎に測定する処理時間計測機能部をさらに備え、
前記電源制御モデル作成機能部は、前記処理時間に基づき選択された一部の電源制御単位ブロックに対し省電力モードで電源供給を行う電源制御をさらに実行する電源制御モデルを生成する、
ことを特徴とする請求項２に記載の半導体集積回路設計装置。
【請求項４】
前記半導体集積回路モデルを構成するハードウェア構成要素モデルは、動作モードを示す動作モードフラグが記憶されたメモリモデルを含み、
前記電源制御モデル作成機能部は、前記動作モードフラグを監視することによって前記電源制御を行う、
ことを特徴とする請求項２または３に記載の半導体集積回路設計装置。
【請求項５】
複数のハードウェア構成要素を含む半導体集積回路の設計を行う半導体集積回路設計プログラムであって、
前記夫々のハードウェア構成要素に夫々対応する複数のハードウェア構成要素モデルを含む半導体集積回路モデルと、該半導体集積回路モデルの動作モード毎に用意される動作プログラムと、に基づいてシミュレーションを実行して各動作モードにおける各ハードウェア構成要素モデルのコードカバレッジを測定するコードカバレッジ測定手順と、
該測定結果に基づいて動作モード毎に複数のハードウェア構成要素モデルを使用ブロックと未使用ブロックにそれぞれ分割する第１の分割処理を実行し、該第１の分割処理結果に基づき複数のハードウェア構成要素モデルを電源制御の最小単位である電源制御単位ブロックにそれぞれ分割する第２の分割処理を実行するブロック分割手順と、
前記第１および第２の分割処理結果に基づき、各動作モードにおいて使用ブロックに電源を供給し未使用ブロックに電源を供給しない電源制御を前記電源制御単位ブロックを単位として実行する電源制御モデルを生成する電源制御モデル生成手順と、
をコンピュータに実行させることを特徴とする半導体集積回路設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、省電力化を考慮した半導体集積回路の設計を行う半導体集積回路設計装置および半導体集積回路設計プログラムに関する。
【背景技術】
【０００２】
近年の半導体集積回路の高集積化に伴い、その設計にかかる労力が増加する傾向にある。また、高消費電力化も進み、効率的に電源制御を行うように工夫することが望まれる。
【０００３】
半導体集積回路の設計現場においては、要求仕様を分析した後、ソフトウェアの仕様分析、機能抽出、タスク設計を行うとともに、ハードウェア（電子回路）に関しては、アルゴリズム設計、アーキテクチャ設計、ビヘイビア設計、ＲＴＬ（レジスタトランスファーレベル）設計というように、抽象度の高い設計レベルから徐々に抽象度を下げ、詳細化していく手法がある。
【０００４】
一般的に、設計の抽象度が低いほど消費電力の見積もりを含めた検証にかかる時間と労力とが増大する。したがって、より抽象度の高い設計段階で電源制御を考慮した設計を行うことができる技術が要望されている。
【０００５】
特許文献１によれば、半導体集積回路の設計時に論理回路を用いて消費電力測定を行い、最適な消費電力を求めるようにしているが、ＲＴＬ設計よりも抽象度の高い早期の設計段階では消費電力を考慮した設計はなされていない。また、特許文献２によれば、ＲＴＬ設計以上の設計段階において消費電力の測定が可能となるが、配線の最適化により消費電力を低減しており、電源制御については記載がない。また、特許文献３によれば、専用の命令でプロセッサ単位の電源制御を行っており、効率的な電源制御ではない。
【０００６】
【特許文献１】特開平１１−１６１６９２号公報
【特許文献２】特開２００５−２４２６４２号公報
【特許文献３】特開２００３−３４５７７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、抽象度の高い設計段階において省電力化を考慮した半導体集積回路を効率よく設計することができる半導体集積回路設計装置および半導体集積回路設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、複数のハードウェア構成要素を含む半導体集積回路の設計を行う半導体集積回路設計装置であって、前記夫々のハードウェア構成要素に夫々対応する複数のハードウェア構成要素モデルを含む半導体集積回路モデルと、該半導体集積回路モデルの動作モード毎に用意される動作プログラムと、に基づいてシミュレーションを実行して各動作モードにおける各ハードウェア構成要素モデルのコードカバレッジを測定するコードカバレッジ測定機能部と、該測定結果に基づいて動作モード毎に複数のハードウェア構成要素モデルを使用ブロックと未使用ブロックにそれぞれ分割する第１の分割処理を実行し、該第１の分割処理結果に基づき複数のハードウェア構成要素モデルを電源制御の最小単位である電源制御単位ブロックにそれぞれ分割する第２の分割処理を実行するブロック分割機能部と、を備えることを特徴とする半導体集積回路設計装置が提供される。
【０００９】
また、本願発明の一態様によれば、複数のハードウェア構成要素を含む半導体集積回路の設計を行う半導体集積回路設計プログラムであって、前記夫々のハードウェア構成要素に夫々対応する複数のハードウェア構成要素モデルを含む半導体集積回路モデルと、該半導体集積回路モデルの動作モード毎に用意される動作プログラムと、に基づいてシミュレーションを実行して各動作モードにおける各ハードウェア構成要素モデルのコードカバレッジを測定するコードカバレッジ測定手順と、該測定結果に基づいて動作モード毎に複数のハードウェア構成要素モデルを使用ブロックと未使用ブロックにそれぞれ分割する第１の分割処理を実行し、該第１の分割処理結果に基づき複数のハードウェア構成要素モデルを電源制御の最小単位である電源制御単位ブロックにそれぞれ分割する第２の分割処理を実行するブロック分割手順と、前記第１および第２の分割処理結果に基づき、各動作モードにおいて使用ブロックに電源を供給し未使用ブロックに電源を供給しない電源制御を前記電源制御単位ブロックを単位として実行する電源制御モデルを生成する電源制御モデル生成手順と、をコンピュータに実行させることを特徴とする半導体集積回路設計プログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、抽象度の高い設計段階において省電力化を考慮した半導体集積回路を効率よく設計することができる半導体集積回路設計装置および半導体集積回路設計プログラムを提供することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、この発明にかかる半導体集積回路設計装置および半導体集積回路設計方法の最良な実施の形態を詳細に説明する。
【００１２】
（実施の形態）
まず、本発明の実施の形態にかかる半導体集積回路設計装置の概要を述べる。本発明の実施の形態の半導体集積回路設計装置は、プロセッサ・コア、周辺回路ブロック、オンチップ・バスなど構成要素毎に記述されるモデル(ハードウェア構成要素モデル)の組み合わせによって構成されている半導体集積回路モデルを対象とし、効率よく電源制御を行うことができるように、各ハードウェア構成要素モデルをさらに小さい電源制御単位ブロックに分割する。
【００１３】
例えば、図１に示すような、プロセッサ１（ｐ１）、プロセッサ（ｐ２）、周辺モデル（ｓ１）、バス（ｂｕｓ）、およびメモリ（ｍｅｍ）の各ハードウェア構成要素モデルから構成され、ModeA〜ModeDの動作モードを実現することが要求される半導体集積回路モデルを考える。各ハードウェア構成要素モデルは、ＲＴＬ設計以上の記述レベルで記述されるものであって、例えばビヘイビア設計レベルで記述されているとする。周辺モデルとは、要求される機能を実現するために対象の半導体集積回路に組み込まれるハードウェアモデルであり、例えばメモリコントローラの記述モデルや各種Ｉ／Ｏの記述モデルなどであってよい。また、動作モードとは、対象の半導体集積回路に要求される動作のモードであって、該半導体集積回路が例えばビデオ用ＬＳＩである場合、早送り、停止、および再生などの各動作のモードを指す。
【００１４】
対象の半導体集積回路モデルに含まれるハードウェア構成要素モデルは、全ての動作モードの動作中に全ての部分が常時使用されるとは限らない。つまり、夫々のハードウェア構成要素モデルの各動作モード用に特化された部分および動作モードによらず使用される部分のみに電源供給を行うことによって、半導体集積回路モデルの省電力化を図ることができる。本実施の形態の半導体集積回路設計装置は、使用される部分と使用されない部分とを動作モード毎に割り出し、各動作モードにおいて電源を供給する部分が小さくなるように、夫々のハードウェア構成要素モデルをさらに小さな単位である電源制御単位プロックにブロック分割する。
【００１５】
そして、本発明の実施の形態の半導体集積回路設計装置は、このように分割された電源制御単位ブロック毎に、電源供給、電源停止、および状態を保持したまま電源停止する制御を、動作モードに応じて実行する電源制御モデルを生成する。
【００１６】
例えば図２のModeA〜ModeDの列に示すように各動作モードにおいて使用される部分（使用ブロック）と使用されない部分（未使用ブロック）とを割り出したとすると、本実施の形態の半導体集積回路設計装置は、図２の最右列に示す分割結果のように電源制御単位ブロックにブロック分割する。メモリモデルおよびバスモデルは常に全て使用されるものであり、分割対象とはならないので、図２には表示していない。
【００１７】
すなわち、図１に示す半導体集積回路モデルは、効率のよい電源制御を行うことができるように、図３に示す半導体集積回路モデルのように夫々のハードウェア構成要素モデルが分割される。
【００１８】
このように電源制御の単位に分割し、夫々の電源制御単位ブロックに電源を供給するか否かの制御を行うことによって、使用される部分にのみ電源を供給することができるようになる。一例を挙げると、ModeDの動作モードのときはp1_block1、p1_block2、s1_block1およびs1_block2の電源制御単位ブロックに電源を供給するだけでよいようになる。
【００１９】
次に、本実施の形態の半導体集積回路設計装置の詳細を説明する。図４は、本発明の実施の形態にかかる半導体集積回路設計装置のハードウェア構成を示すブロック図である。図４に示すように、本実施の形態の半導体集積回路設計装置１は、ＣＰＵなどの制御装置２と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置３と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置４と、ディスプレイ装置などの表示装置５と、キーボードやマウスなどの入力装置６とを備えており、通常のコンピュータを利用したハードウェア構成となっている。半導体集積回路設計装置１は、このようなコンピュータにおいて所定のプログラムを実行することにより、図５に示すような半導体集積回路設計装置１の各機能部を生成する。
【００２０】
本実施の形態の半導体集積回路設計装置１の機能部の構成を示す機能構成図を図５に示す。図５において、半導体集積回路設計装置１は、入力機能部１０、電源制御モデル作成機能部１１、コードカバレッジ測定機能部１２、ブロック分割機能部１３、および処理時間計測機能部１４を備える。
【００２１】
入力機能部１０は、本半導体集積回路設計装置１が備える各機能部を操作する種々の操作命令や、電源制御モデルを生成するためのパラメータの入力を受け付ける。
【００２２】
電源制御モデル作成機能部１１は、入力機能部１０から入力されるパラメータ、すなわち、ハードウェア構成要素モデルおよび電源制御単位ブロックなど、設計対象の半導体集積回路モデルを構成する各構成ブロックについて電源制御方式を識別するための情報である構成ブロック情報と、生成される電源制御モデルが動作モードを判別するためのフラグ（電源制御用フラグ）の参照先アドレスと、に基づいて、夫々の構成ブロックに対する電源制御を行う電源制御モデルを生成する。
【００２３】
ここで、電源制御方式には、電源を常時供給する第１の電源制御方式と、使用時には電源を供給し、不使用時には電源供給を停止する第２の電源制御方式と、使用時には電源を供給し、不使用時は待機電源を供給し、速やか復帰できるようにする第３の電源制御方式とが選択可能であり、構成ブロック情報においては、夫々、「電源オン」、「電源オフ」、「状態保持」と設定される。
【００２４】
作成された電源制御モデルは、パラメータに設定された参照先アドレスに記憶されている動作モードごとに変化する電源制御用フラグ（動作モードフラグ）を監視し、動作モードが変化したとき使用状態から不使用状態または不使用状態から使用状態に変化する電源制御単位ブロックに対して、予め構成ブロック情報に設定されている第２または第３の電源制御方式の電源制御を行う。
【００２５】
コードカバレッジ測定機能部１２は、半導体集積回路モデルと、該半導体集積回路モデルの動作モード毎に用意される動作プログラムと、該半導体集積回路モデルに対して電源制御モデル作成機能部１１が作成した電源制御モデルと、を使用してシミュレータを構築し、シミュレーションを実行し、動作モード毎にコードカバレッジを測定する。これにより、動作モード毎に半導体集積回路モデルの使用される部分と使用されない部分とが明らかとなる。
【００２６】
ブロック分割機能部１３は、動作モード毎に使用される部分と使用されない部分とが明らかになった各ハードウェア構成要素モデルを、全ての動作モードにおいて電源供給する部分を最小にできるようにブロック分割する。
【００２７】
処理時間計測機能部１４は、電源制御モデルと、電源制御単位ブロックからなる半導体集積回路モデルと、要求仕様に基づいて動作モードの遷移である状態遷移毎に用意されたファームウェアと、を用いてシミュレータを構築してシミュレーションを行い、状態遷移にかかる処理時間を状態遷移毎に計測する。
【００２８】
ここで、状態遷移とは、ビデオ用ＬＳＩの場合、ビデオを再生するモードから停止するモードに移る変化や、早送りモードから再生モードの移る変化などが挙げられる。なお、これらの状態遷移にかかる時間の上限は予め要求仕様により決められているとする。
【００２９】
設計者は、計測した夫々の処理時間と、要求仕様により要求される処理時間（要求時間）と、を比較し、要求される処理時間を越える状態遷移の動作を抽出し、該抽出した状態遷移において、電源オフ状態から電源オン状態に移行する電源制御ブロックの電源制御方式の設定を、第２の電源制御方式を示す「電源オフ」ではなく第３の電源制御方式を示す「状態保持」に設定するようにする。そして、「状態保持」に設定する電源制御単位ブロックおよび常時電源供給を行う「電源オン」に設定する電源制御単位ブロック以外の電源制御ブロックについて、第２の電源制御方式である「電源オフ」と設定するようにする。
【００３０】
なお、ＲＴＬ設計以上の抽象度の設計においては電源を記述するフォーマットがない。このため、本実施の形態の半導体集積回路設計装置１が生成する電力制御モデルにおいては、第１、第２、および第３の電源制御方式の記述を、夫々、常時クロック供給する記述、使用時はクロック供給し、不使用時はクロックを停止するとともにリセット信号を送信する記述、および使用時はクロック供給し、不使用時はクロック供給停止する記述、で置き換えることとする。
【００３１】
すなわち、第２の電源制御方式の記述によれば、不使用時から使用時に変化したとき、リセット状態からの復帰になるので、復帰に時間がかかるが、不使用時には電源供給を完全に停止することができる。第３の電源制御方式の記述によれば、使用時から不使用時に変化したときにリセットはされず、状態が保持されているので、不使用時から使用時に変化するとき、速やかに復帰することができる。この記述によれば、不使用時において状態を保持するために電源が供給される必要があるが、クロック供給が停止される分、第１の電源制御方式に比べて電力消費は少ない。電源制御モデルにおけるこれらの電源制御方式の具体的な記述例については後述する。
【００３２】
次に、以上のように構成される本実施の形態の半導体集積回路設計装置の動作を説明する。図６は、半導体集積回路設計装置１による設計動作の概略を説明するフローチャートである。
【００３３】
図６において、まず、設計者は、接続されるハードウェア構成要素モデルを構成ブロックとし、各構成ブロックの電源制御方式を第１の電源制御方式とした構成ブロック情報と、電源制御用フラグの参照先と、からパラメータを作成して半導体集積回路設計装置１に入力する。電源制御モデル作成機能部１１は、入力されたパラメータに基づいて電源制御モデルを生成する（ステップＳ１）。
【００３４】
次に、コードカバレッジ測定機能部１２は、生成された電源制御モデルと、接続される各ハードウェア構成要素モデルと、動作モード毎に用意されるファームウェアと、に基づいてシミュレータを構築してシミュレーションを実行し、動作モード毎にコードカバレッジを測定する（ステップＳ２）。
【００３５】
続いて、ブロック分割機能部１３は、コードカバレッジ測定結果に基づいて、電源制御単位ブロックにブロック分割する（ステップＳ３）。
【００３６】
続いて、設計者は、接続される電源制御単位ブロック毎に電源制御方式を設定する構成ブロック情報と、電源制御用フラグのアドレスと、を用いてパラメータを作成し、入力する。設計者は、コードカバレッジ測定の結果、未使用な動作モードが存在する電源制御単位ブロックについては、電源制御方式を「電源オフ」と設定しておく。電源制御モデル作成機能部１１は、この入力されたパラメータに基づき、再度電源制御モデルを作成する（ステップＳ４）。
【００３７】
次に、処理時間計測機能部１４は、この作成された電源制御モデルと、電源制御単位ブロックに分割された半導体集積回路モデルと、動作モードの状態遷移毎に用意される状態遷移ファームウェアとに基づいてシミュレータを構築してシミュレーションを実行し、状態遷移にかかる処理時間を状態遷移毎に計測する（ステップＳ５）。
【００３８】
最後に、設計者は、計測された処理時間が設定された要求時間を越える状態遷移を抽出し、該抽出した状態遷移の際に未使用ブロックから使用ブロックに変化する電源制御単位ブロックを選択し、選択した電源制御単位ブロックについて、パラメータにおける電源制御方式の設定を「電源オフ」から「状態保持」に変更する。電源制御モデル作成機能部１１は、この変更されたパラメータに基づいて最終的な電源制御モデルを生成する（ステップＳ６）。
【００３９】
例えば、図１に示す半導体集積回路モデルは、要求仕様により、図７に示すようにModeAからModeB、ModeAからModeC、ModeBからModeD、ModeDからModeB、ModeDからModeC、ModeCからModeDの状態遷移を行うことが要求されているとすると、設計者は、計測された処理時間ab、処理時間ac、処理時間bd、処理時間db、処理時間dcおよび処理時間cdを、要求時間である処理時間AB、処理時間AC、処理時間BD、処理時間DB、処理時間DCおよび処理時間CDと比較する。処理時間dcが処理時間DC以上の値であったとする。ModeDからModeCへの状態遷移において、電源制御単位ブロックp2_block3が不使用状態から使用状態に変化している。すなわち、p2_block3が不使用状態から使用状態に復帰する時間（以下、復帰時間という）が長くかかるために、この状態遷移にかかる処理時間が要求時間を越える原因となっていることがわかる。そこで、設計者は、p2_block3に関しては、不使用時には電源供給を停止する第２の電源制御方式ではなく、復帰時間を短縮できる第３の電源制御方式を設定するようにする。
【００４０】
このようにパラメータが決定され、該パラメータにより生成される電源制御モデルは、各動作モードにおいて、電源を供給する部分を最小にし、かつ復帰時間が長くかかる電源制御単位ブロックに対しては不使用時には状態保持できる待機電源を供給することによって、状態遷移にかかる処理時間を要求時間以内に実行させる。すなわち、この電源制御モデルは、効率のよい電源制御を行うことができる。
【００４１】
次に、このような半導体集積回路設計装置１を用いた設計動作を、具体例を用いてより詳細に説明する。以降の説明においても、図７に示した状態遷移を行う図１に示した半導体設計モデルについて説明する。図８は、半導体集積回路設計装置１によってこの半導体集積回路モデルを設計する動作を説明するフロー図である。
【００４２】
図８において、まず、設計者は、電源制御モデル作成機能部１１に使用させるパラメータＤ１を作成する。設計者は、５つの構成ブロック（プロセッサ１、プロセッサ２、周辺モデル、メモリおよびバス）について電源制御方式を全て「電源オン」と設定し、電源制御用フラグをメモリの「0x50_0000」に記憶させるとし、パラメータＤ１を作成する。
【００４３】
図９は作成されたパラメータの一例である。図９のパラメータの例において、「POWER」というカテゴリが用意され、このカテゴリ内で、接続される構成ブロック数が「BLOCK」で指定されている。モード変化を示すフラグが格納されているアドレスが「ADDRESS」において設定されている。そして、接続される構成ブロックの電源制御方式（POWER_MODE）において、すべての構成ブロックが第１の電源制御方式を示す「ON」と設定されている。
【００４４】
図８に戻り、電源制御モデル作成機能部１１は、パラメータＤ１に基づいて電源制御モデルを生成する（ステップＳ１０）。続いて、コードカバレッジ測定機能部１２は、ステップＳ１０にて生成された電源制御モデルと、動作モード毎に用意されたファームウェアＤ２と、５つの構成ブロックとに基づいてシミュレータを構築してシミュレーションを実行し（ステップＳ１１）、コードカバレッジを測定する（ステップＳ１２）。コードカバレッジは、全ての動作モードにおいて測定される。
【００４５】
続いて、ブロック分割機能部１３は、計測したコードカバレッジに基づいて、各ハードウェア構成要素モデルを電源制御単位ブロックに分割する（ステップＳ１３）。これにより、図１に示す半導体集積回路モデルの各ハードウェア構成要素モデルは、図３に示すように、電源制御単位ブロックに分割される。
【００４６】
図８に戻り、設計者は、このような分割結果に基づいて、再度パラメータＤ３を作成する。すなわち、p1_block1、p1_block2、p2_block1、p2_block2、p2_block3、s1_block1、s1_block2、およびメモリ、バスの、合計９個の電源制御単位ブロックを構成ブロックとする図３の半導体集積回路モデルについて、動作モードによっては不使用時が存在するp1_block2、p2_block1、p2_block2、p2_block3、およびs1_block2を「電源オフ」としたパラメータＤ３を作成する。図１０は作成されたパラメータＤ３の例を示す図である。図１０において、p1_block2、P2_Block1、p2_block2、p2_block3、およびs1_block2の電源制御の方式が第２の電源制御方式を示す「OFF」に設定されている。
【００４７】
図８に戻り、電源制御モデル作成機能部１１は、パラメータＤ３に基づいて電源制御モデルを作成する（ステップＳ１４）。処理時間計測機能部１４は、パラメータＤ３に基づいて作成された電源制御モデルと、p1_block1、p1_block2、p2_block1、P2_Block2、p2_block3、s1_block1、s1_block2、およびメモリ、バスのモデルと、状態遷移のファームウェアＤ４とに基づいてシミュレータを構築し、シミュレーションを行い、処理時間を計測する（ステップＳ１５）。
【００４８】
設計者は、処理時間の計測結果と要求時間とを比較し（ステップＳ１６）、計測時間が要求時間以内であった場合（ステップＳ１６、Ｙｅｓ）、別の遷移状態について処理時間を計測するために、別の遷移状態のファームウェアを選び、再度ステップＳ１５に移行する。ステップＳ１６において、計測時間が要求時間を越えた場合（ステップＳ１６、Ｎｏ）、設計者は、その状態遷移において電源が停止されている状態から電源供給状態に復帰する電源制御単位ブロックの設定を「電源オフ」から「状態保持」に変更する。図１１は、処理時間cdおよび処理時間dcが夫々要求時間である処理時間CDおよび処理時間DCを越えた場合に変更されたパラメータＤ５の例を示す図である。ModeCからModeDへの状態遷移においてはp1_block2およびs1_block2が不使用状態から使用状態に変化し、ModeDからModeCへの状態遷移においてはp2_block3が不使用状態から使用状態に変化するので、図１１において、p1_block2、p2_block3およびs1_block2の電源制御方式は、第３の電源制御方式を示す「KEEP」に設定されている。
【００４９】
電源制御モデル作成機能部１１は、該変更されたパラメータＤ５を用いて電源制御モデルを再度生成する（ステップＳ１４）。そして、ステップＳ１５に移行し、処理時間計測機能部１４は、生成された電源制御モデルと、電源制御単位ブロックにより構成される半導体集積回路モデルと、次の状態遷移のファームウェアと、を用いてシミュレーションを行い、処理時間を計測する。
【００５０】
全ての状態遷移において、ステップＳ１４〜ステップＳ１６の動作を終了すると、最終的なパラメータが決定され、該パラメータに基づき、電源制御モデルが完成される。
【００５１】
完成した電源制御モデルの一部を図１２に示す。図１２においては、p2_block2およびp2＿block3の部分について記述されている。電源制御モデルは、電源制御モデルのクロックに同期した動作を行う関数procClock()において、モード変化を示すフラグが格納先の値に基づいて当該ブロックの値（p2_b2_flag、p2_b3_flag）を変化させ、クロックを供給するかしないか判断する。
【００５２】
この電源制御モデルにおいて、電源制御方式が「OFF」に設定されているp2_block2に対しては、不使用時はクロック停止およびリセットするような記述となっている（図１２中（１））。そして、「KEEP」に設定されているp2＿block3に対しては、不使用時にはクロック停止をするように記述されている（図１２中（２））。
【００５３】
このように生成された電源制御モデルと接続されるp2_block2の記述例を図１３に示す。図１３において、コードカバレッジ計測の結果から、「funcA()」という関数が抽出され、p2_block2に割り当てられたとしている。電源制御はクロックを供給するか否かで判断される為、クロックポートを追加されている（図１３中（１））。そして、クロック信号がtrueの時に動作するように記述されている（図１３中（２））。
【００５４】
このように、本実施の形態の半導体集積回路設計装置によれば、各動作モードにおいて電源を供給する部分が最小になるように、半導体集積回路モデルを構成するハードウェア構成要素モデルを分割するようにしたので、抽象度の高い設計段階において省電力化を考慮した半導体集積回路を効率よく設計することができる。また、各動作モードにおいて使用ブロックに電源を供給し使用されないブロックに電源を供給しない電源制御を前記電源制御単位ブロックを単位として実行する電源制御モデルを生成するようにしたので、作成された半導体集積回路モデルは電力消費を低減されたものとなる。また、生成された電源制御モデルを含む半導体集積回路モデルについて状態遷移にかかる処理時間を計測し、計測結果に基づき選択された一部の電源制御単位ブロックを、電源供給状態になったとき短時間で復帰できるように、不使用時には待機電源を供給する電源制御方式（省電力モード）で電源制御するようにしたので、電力消費を低減し、かつ状態遷移にかかる処理時間を所望の時間以内に行う半導体集積回路を設計できる。また、生成された電源制御モデルは、動作モード毎に変化するフラグを監視することによって電源制御を行うようにしたので、特別なハードウェアを追加することなく、簡単に電源制御を行う半導体集積回路を設計することができる。
【００５５】
なお、本実施の形態の半導体集積回路設計装置で実行される前記する所定のプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供されるようにしてもよい。
【００５６】
また、本実施の形態の半導体集積回路設計装置で実行される前記する所定のプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の半導体集積回路設計装置１で実行される前記する所定のプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、前記する所定のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００５７】
本実施の形態の半導体集積回路設計装置で実行される前記する所定のプログラムは、上述した各機能部（入力機能部、電源制御モデル作成機能部、ブロック分割機能部および処理時間計測機能部）を含むモジュール構成とし、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から該プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、入力機能部、電源制御モデル作成機能部、ブロック分割機能部および処理時間計測機能部が主記憶装置上に生成されるようにしてよい。
【００５８】
また、本実施の形態の半導体集積回路設計装置による一連の設計動作の説明において、パラメータ作成動作や各種判断動作など、設計者による動作が行われるように説明したが、該動作は、半導体集積回路設計装置により自動的に行われるように構成してもよい。
【００５９】
なお、本実施の形態の半導体集積回路設計装置の説明においては、ＲＴＬ設計以上の抽象度の設計においては電源を記述するフォーマットがないので、第１、第２、および第３の電源制御方式の記述を、夫々、常時クロック供給する記述、使用時はクロック供給し、不使用時はクロックを停止するとともにリセット信号を送信する記述、および使用時はクロック供給し、不使用時はクロック供給停止する記述、で置き換えることとして説明した。クロック供給／停止して省電力化する制御はクロックゲーティング制御とよばれ、電源を直接オン／オフする制御以外の非常に有効な省電力化技術でもある。したがって、本実施の形態の半導体集積回路設計装置による電源制御技術は、クロックゲーティング技術にそのまま適用できるものでもある。
【図面の簡単な説明】
【００６０】
【図１】設計対象の半導体集積回路モデルの具体例を示す図。
【図２】電源制御単位ブロックに分割した分割例を示す図。
【図３】ブロック分割された半導体集積回路モデルを示す図。
【図４】本発明の実施の形態に従った半導体集積回路設計装置のハードウェア構成を示す図。
【図５】本発明の実施の形態の半導体集積回路設計装置の機能構成を示す図。
【図６】本発明の実施の形態の半導体集積回路設計装置による設計動作の概略を説明するフローチャート。
【図７】状態遷移を具体的に説明する図。
【図８】本発明の実施の形態の半導体集積回路設計装置による設計動作を説明する図。
【図９】作成されたパラメータの一例を示す図。
【図１０】作成されたパラメータの一例を示す図。
【図１１】生成されたパラメータの一例を示す図。
【図１２】完成した電源制御モデルの一部を示す図。
【図１３】電源制御モデルと接続されるp2_block2のプログラム例を示す図。
【符号の説明】
【００６１】
１  半導体集積回路設計装置、１０  入力機能部、１１  電源制御モデル作成機能部、１２  コードカバレッジ測定機能部、１３  ブロック分割機能部、１４  処理時間計測機能部
【図１】
2010003162.tif 000003
【図２】
2010003162.tif 000004
【図３】
2010003162.tif 000005
【図４】
2010003162.tif 000006
【図５】
2010003162.tif 000007
【図６】
2010003162.tif 000008
【図７】
2010003162.tif 000009
【図８】
2010003162.tif 000010
【図９】
2010003162.tif 000011
【図１０】
2010003162.tif 000012
【図１１】
2010003162.tif 000013
【図１２】
2010003162.tif 000014
【図１３】
2010003162.tif 000015