(57)【要約】【課題】ＲＴレベルより高い抽象度で高速に消費電力測定ができる半導体集積回路のシミュレーション装置を実現し、シミュレーション結果を用いた低電力化設計を可能にする。【解決手段】設計対象回路のサイクルベースモデルを状態制御モジュールモデルと演算モジュールモデルとメモリモデルとで構成し、演算モジュールモデルではアルゴリズム表記し、ハードウェアのパイプラインなどの詳細構成を単位クロックで処理される演算に短絡し、タイミングずれは状態制御モジュールモデルのウェイトステートで吸収することで高速なシミュレーションを実現し、シミュレーションモデルの活性化率測定に面積、配線容量などの情報を付加することで消費電力測定を可能にし、この測定結果から機能モジュールの優先配置配線を行い、シミュレーションを繰り返して最適な配置配線を行うことで低電力化設計を実現する。【選択図】  図５
2005242642.tif 000002
【特許請求の範囲】
【請求項１】
クロックレベルで動作記述された半導体集積回路のシミュレーション装置であって、
設計対象回路の処理内容のアルゴリズム記述を単位クロックで処理される演算とメモリアクセスに変換して記述した１つ以上の演算モジュールモデルと、
前記演算モジュールモデルの入力パラメータと動作開始および動作終了を制御する単位クロックにおける制御状態の遷移が記述された状態制御モジュールモデルと、
メモリを配列で模擬した１つ以上のメモリモデルと、
を有するシミュレーション装置。
【請求項２】
前記状態制御モジュールモデルおよび前記演算モジュールモデルにおける単位クロックが１回の関数コールに相当する請求項１記載のシミュレーション装置。
【請求項３】
前記状態制御モジュールモデルに指定変数分のクロックをウェイトする状態を設けて前記演算モジュールモデルと設計対象回路との間の動作開始もしくは動作終了のタイミングのずれを調整する請求項１または２記載のシミュレーション装置。
【請求項４】
一定区間毎の前記演算モジュールモデルの活性化状況と前記演算モジュールモデルによる前記メモリモデルの活性化状況とを測定する機能を有する請求項１から３のいずれか一項記載のシミュレーション装置。
【請求項５】
前記演算モジュールモデル毎の動作周波数とゲート数と単位ゲート当りの消費電力値と前記メモリモデルの周波数単位当りの消費電力値とを格納したデータベースを備える請求項４記載のシミュレーション装置。
【請求項６】
前記演算モジュールモデルおよび前記メモリモデルの活性化状況と前記データベースとから一定区間毎の消費電力値を算出する機能を有する請求項５記載のシミュレーション装置。
【請求項７】
前記演算モジュールモデルから前記メモリモデルまでの配線距離情報と単位距離当りの配線容量をデータベースに格納する請求項６記載のシミュレーション装置。
【請求項８】
前記一定区間毎の消費電力値を算出する機能は、前記データベースにより前記演算モジュールモデルから前記メモリモデルまでの配線の負荷容量を算出し、前記演算モジュールモデルから前記メモリモデルまでの配線の消費電力値を算出する機能を含む請求項７記載のシミュレーション装置。
【請求項９】
前記消費電力値に対して補正値を掛ける機能を有する請求項６から８のうちいずれか１項記載のシミュレーション装置。
【請求項１０】
前記一定区間および前記データベースは外部からアクセスして値を変更することが可能な請求項４から９のいずれか一項記載のシミュレーション装置。
【請求項１１】
前記消費電力値を演算モジュールモデル毎に区分けして表示する機能を有する請求項６から１０のいずれか一項記載のシミュレーション装置。
【請求項１２】
前記消費電力値をメモリモデル毎に区分けして表示する機能を有する請求項６から１１のいずれか一項記載のシミュレーション装置。
【請求項１３】
ＣＰＵもしくはＤＳＰの単位クロック毎のプロセッサ動作に対応した動作をするプロセッサモデルを１つ以上備える請求項１から１２のいずれか一項記載のシミュレーション装置。
【請求項１４】
請求項６から１３のいずれか一項記載のシミュレーション装置において算出された演算モジュールモデル毎およびメモリモデル毎の消費電力値に基づき、設計対象回路の各機能モジュールの相対位置の最適解を決定するステップＡと、
タイミング面で前記機能モジュール毎の最適な配置位置を決定するステップＢと、
前記決定された配置位置による距離情報および配線幅および配線ピッチから抽出した単位距離当りの配線容量および補正値を前記シミュレーション装置に戻すステップＣとを繰り返し、
各機能モジュールの最適な配置位置を決定するステップＤを備える半導体集積回路の設計方法。
【請求項１５】
前記ステップＡと前記ステップＢとの間に、前記消費電力値により電源幅および電源ピッチを決定するステップＢ０を備える請求項１４記載の半導体集積回路の設計方法。
【請求項１６】
前記ステップＡからステップＣまでの手順を繰り返す中で、前記消費電力値の高い機能モジュールあるいはメモリを優先的に隣接配置する請求項１４または１５記載の半導体集積回路の設計方法。
【請求項１７】
前記ステップＣにおいて前記距離情報を各機能モジュールの重心位置から算出する請求項１４または１５記載の半導体集積回路の設計方法。
【請求項１８】
前記ステップＣにおいて前記距離情報を各機能モジュール間の最長距離から算出する請求項１４または１５記載の半導体集積回路の設計方法。
【請求項１９】
前記ステップＡからステップＣまでの手順を繰り返す中で、各機能モジュールの閾値電圧を変化させてタイミング的に仕様を満たす閾値電圧から補正値を算出する請求項１４または１５記載の半導体集積回路の設計方法。
【請求項２０】
前記ステップＡからステップＣまでの手順を繰り返す中で、挿入されたバッファ段数からステップＣにおける補正値を算出する請求項１４または１５記載の半導体集積回路の設計方法。
【請求項２１】
前記ステップＡからステップＣまでの手順を繰り返す中で、前記消費電力値の高い機能モジュール間の配線のピッチを太く配線する請求項１４または１５記載の半導体集積回路の設計方法。
【請求項２２】
前記ステップＢ０において、前記消費電力値を算出する区間を小さくしてピーク電力を測定した後に、前記ピーク電力に起因する機能モジュールの配置位置に優先的に電源幹線を配線あるいは容量セルの補強をする請求項１５記載の半導体集積回路の設計方法。
【請求項２３】
前記半導体集積回路がルックアップテーブル、フリップフロップおよびメモリを含む論理ブロックと配線とスイッチング素子から構成されるプログラマブルロジックゲートアレイである場合に、請求項６から１３のいずれか一項記載のシミュレーション装置において算出された演算モジュールモデル毎およびメモリモデル毎の消費電力値に基づき、前記消費電力値の高い演算モジュールモデルあるいはメモリモデルから優先的に論理ブロックにマッピングする半導体集積回路の設計方法。
【請求項２４】
前記プログラマブルロジックゲートアレイは動的再構成が可能なプログラマブルロジックゲートアレイである請求項２３記載の半導体集積回路の設計方法。
【請求項２５】
前記消費電力値の高い演算モジュールモデルあるいはメモリモデルから優先的に論理ブロックにマッピングする際に、請求項４記載の一定区間毎の前記演算モジュールモデルの活性化状況に基づき優先的にマッピングする論理ブロックを決定する請求項２４記載の半導体集積回路の設計方法。
【請求項２６】
請求項１４から２５のいずれか一項記載の半導体集積回路の設計方法を実施する半導体集積回路の設計装置。
【請求項２７】
請求項１４から２５のいずれか一項記載の半導体集積回路の設計方法を実施する半導体集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムＬＳＩの設計方法に関し、特にＬＳＩのシミュレーション装置におけるシミュレーションモデル設計方法、およびこのモデルを利用した消費電力見積もり方法、ならびにこの見積もり結果を元にしたレイアウト工程と配置配線工程での低消費電力化設計方法に関する。
【背景技術】
【０００２】
近年、大規模化が進むシステムＬＳＩなどの半導体集積回路において消費電力の低減が強く要望されている。特に携帯端末用に関しては、限られた電池寿命の中で利用用途がインターネット接続、テレビ電話、動画再生などマルチメディア化しており、低消費電力化が最重要の課題になっている。
【０００３】
従来、ＬＳＩの消費電力の推定はＲＴレベルもしくはネットリストを用いて実際の配置配線を行った後に実施されるのが一般的である。しかし、ＲＴレベルやネットリストおよび配置配線情報を利用した消費電力の見積もりは多大なシミュレーション時間を要し、かつ大規模化する集積回路全体をシミュレートするには高性能な大型計算機等の装置を必要とし、ＬＳＩの規模によってはシミュレーションが実行できない事態も引き起こしている。また、ＬＳＩの短期開発が要求される中で、このような消費電力の見積もりに工数確保ができない事態も生じている。
【０００４】
そこでこのような課題を解決する手段として、トランザクション解析技術を消費電力の推定に利用する技術がある(例えば、特許文献１参照)。ここで開示されている技術はトランザクションという性能解析にしばしば利用されてきた技術であり、これを消費電力推定に適用し、フロアプラン工程、配置配線工程において面積、消費電力の最適解を得るものである。
【０００５】
この設計手法のステップとして、実際のアプリケーションを実行し各設計対象の回路における各種演算処理の発生確率を計測してデータベースに備えるか、あるいは各種演算処理内容の発生確率を正規分布で近似することでトランザクション解析を実施し、さらに面積推定用のデータベースや単位面積当りのエネルギーデータを備えることで消費電力推定を行っている。また、上位レベルであるコントロールデータフローグラフを使用して面積を推定し、機能シミュレーションを実施後に動作解析と消費電力算出を行っている。
【特許文献１】特開２００１−３３８０１０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記技術は、消費電力見積もりを高速に実施するために、トランザクション解析結果を統計処理してデータベース化する技術、もしくはコントロールデータフローグラフを利用し動作情報を得てトランザクション解析に適用する技術であるが、前者は統計データ化するため実際の動作からの誤差が大きくなることから、データベース構築には設計対象の回路もしくは等価な動作モデルが必要となる。
【０００７】
また、後者のコントロールデータフローグラフは、ＲＴレベルの記述を用いる方法と比較してシミュレーション速度向上が望めるが、組み込みソフトウェアやアプリケーションを含むソフトウェアとハードウェアからなるＬＳＩ全体をシミュレートすると、集積回路の大規模化が進むにつれシミュレーション速度の低下が無視できないレベルになるという問題がある。また、消費電力推定にて仕様を満足しない場合の後戻りが大きいという問題があった。
【０００８】
本発明は、半導体集積回路のシミュレーション装置において、Ｃ言語のような汎用プログラミング言語を用いてＲＴレベルよりも高い抽象度で、かつ組み込みソフトウェア等と協調して高速にシミュレーションを実行できるシミュレーションモデル設計方法を実現し、このシミュレーションモデルを用いた高速で高精度な消費電力見積もり方法を提供することを目的とする。また、本発明は、この見積もり結果をフロアプラン工程と配置配線工程で用いて後戻りを最小限に抑えつつ低電力化を実現する低消費電力化設計方法を提供することも目的とする。
【課題を解決するための手段】
【０００９】
本発明の半導体集積回路のシミュレーション装置におけるシミュレーションモデル設計方法では、設計対象のハードウェアを状態制御モジュールモデルと演算モジュールモデルとメモリモデルに分割して設計する。このとき、設計対象のハードウェア回路の内部レジスタを変数として設計対象のハードウェア回路に実装される状態制御部を忠実に再現しようとするとシミュレーション速度の低下を招く。そこで、設計対象回路の状態制御を、アイドル、実行、割り込みの３ステートに大別し、さらに回路の特性に応じて、実行ステートをメモリリード、演算、メモリライトのように細分化していくようにする。
【００１０】
演算モジュールモデルにおいては、ハードウェアのデータパスで処理される演算内容を数式で表記する。この数式はアルゴリズム記述の数式を採用するのが望ましい。しかし、アルゴリズム記述で頻繁に使用されるループ構造は取り払い、設計対象のハードウェアが単位クロックで処理する演算内容を記述する。ループ構造についてはカウンタを設け、単位クロック毎にカウンタ値を制御することで同等の処理を実現させる。また、設計対象回路のパイプライン構造は再現させない。これらにより変数が削減されることで処理速度を向上させる。
【００１１】
しかしながら、上記構造でモデリングをすると、実行開始と実行終了のタイミングが設計対象回路とずれてしまい、結果として組み込みソフトウェアと協調動作するときに重要になる割り込み出力のタイミングのずれや、複数存在する割り込みの前後関係のずれが生じ、ソフトウェアの処理が実際と異なるものになる。
【００１２】
これを回避するために、状態制御モジュールモデルに指定クロック分をウェイトするステートを設ける。このステートは他のすべてのステートから遷移し、かつすべてのステートへ遷移可能にする。上記構成をとることで、演算モジュールモデルの変更を最小限に抑えつつハードウェア回路とのタイミングのずれを吸収することができる。また、上記単位クロックの概念を各演算モジュールの関数コールに相当させることで、Ｃ言語のような汎用プログラミング言語でもハードウェアのモデリングが可能となる。
【００１３】
本発明の消費電力見積もり方法は、上記シミュレーションモデルによる機能シミュレーションを実施し、そのときの各演算モジュールモデルの動作サイクル数を状態制御モジュールモデルのステートを監視することで見積もりを行う。このとき、演算モジュールモデルによるメモリのリードおよびライトアクセスの状況も測定する。上記測定結果とシミュレーション装置の外部から設定される各演算モジュールの面積、単位面積当りの消費電力およびメモリの周波数当りの消費電力からロジックとメモリによる消費電力の推定が可能になる。
【００１４】
また、この状態では配線、特に機能モジュールとメモリ間配線での消費電力が考慮されていない。そこで、距離情報、配線幅、配置ピッチを外部設定してデータベースに格納することで、負荷容量を算出し、配線による消費電力の推定を可能にする。
【００１５】
また、上記消費電力算出区間を可変にすることで、ある時間におけるピーク電力解析など消費電力を細部にわたり分析したいときは消費電力算出区間を短く設定することで分析が可能になる。上記設定は算出する頻度が高くなるためシミュレーション速度が落ちる。  しかし、長区間での平均電力を解析したいときは、上記設定を長く設定することで算出頻度が低くなり高速性は維持される。また、上記算出した演算モジュール毎の消費電力値に補正をかける仕組みを備えることで、さらに高精度の見積もりを可能とする。
【００１６】
本発明の低消費電力化設計方法は、機能シミュレーションにより各機能モジュールの相対位置の最適解を決定するステップＡと、消費電力値に基づき電源幅および電源ピッチを決定するステップＢ０と、タイミング面で各機能モジュールの最適な配置位置を決定するステップＢと、配置位置から距離情報、配線幅、配線ピッチ、補正値を機能シミュレーションに戻すステップＣを繰り返し、各機能モジュールの最適な配置位置を決定するステップＤを備えた半導体集積回路の設計方法である。この方法により、半導体集積回路の早い段階から消費電力を考慮したフロアプランが実施でき、低消費電力化を実現することができる。
【００１７】
各機能モジュールの相対位置の最適解を決定するステップＡでは、まず、上記シミュレーションモデルによる機能シミュレーションを実施し、そのときの機能モジュール間の消費電力を含むロジックおよびメモリの消費電力を推定する。この結果より、消費電力の高い機能モジュールのインターフェースに対しては、隣接配置をすることで配線距離を短く、配線ピッチを広く設定し、再度シミュレーションを実施する。このような消費電力の最適化を複数回繰り返すことで、各機能モジュールの最適な相対位置および配線ピッチの関係を半導体集積回路設計の早い段階で決定することができる。
【００１８】
消費電力値を元に電源幅および電源ピッチを決定するステップＢ０では、前工程で推定した消費電力値を元に電源設計を実施する。これにより各機能モジュールの詳細な消費電力を参考にし、最適な電源間隔、電源幅、リング電源を使用する各機能モジュールを決定することができる。さらに、消費電力を見積もる際に、区間を小さくしてピーク電力測定後、このピーク電力に起因する機能モジュールを決定し、その機能モジュールの配置位置に優先的に電源幹線の配線を決定あるいは容量セルの使用頻度を決定することで、より好適な電源設計を実現できる。
【００１９】
タイミング面で各機能モジュールの最適な配置位置を決定するステップＢでは、ステップＡで求めた各機能モジュールの相対位置、配線ピッチからフロアプランを実施する。その後、仕様を満たすように、配線ピッチ、配線幅、配置位置についてタイミングの面での最適化を実施する。これにより初期フロアプランの段階から消費電力を考慮した半導体集積回路の設計が可能となる。
【００２０】
配置位置から距離情報、配線幅、配線ピッチ、補正値を機能シミュレーションに戻すステップＣでは、ステップＢのフロアプラン結果から、タイミング面で最適化を実施したフロアプランの詳細な機能モジュールの相対位置と配線幅、配線ピッチ、補正値を抽出する。これにより、さらに詳細な消費電力解析が可能となる。
【００２１】
上記配線位置から配線距離を抽出する方法は、各機能モジュールの重心点を求め、その重心点の距離を計算する方法である。この方法により、レイアウト上広がりを持った機能モジュールの場合、平均的な配線距離を算出することができる。
【００２２】
上記配線位置から配線距離を抽出する方法として、各機能モジュールの最長距離を計算する方法もある。この方法により、メモリのようなマクロ化された機能モジュールは、現実に近い配線距離を算出することができる。上記配線幅、配線ピッチの抽出は、ステップＡで決定した値が現実に配線性やタイミング要求を満たせない箇所に対して抽出する。これにより、より詳細な消費電力をステップＡで推定し、各機能モジュール間で最適な配線幅、配線ピッチを決定することができる。
【００２３】
上記補正値を抽出する方法は、機能モジュール間の配線距離よりバッファの挿入段数を推定し、消費電力に補正値をかける方法である。この方法により、レイアウト情報を考慮したより詳細な消費電力解析が可能となる。上記補正値を抽出する方法として、タイミングの厳しい機能モジュールに対して閾値電圧から補正値をかけて消費電力を推定することで、機能モジュールの閾値電圧を決定することもできる。
【００２４】
各機能モジュールの最適な配置位置を決定するステップＤでは、タイミング制約と消費電力仕様を確認し、各機能モジュールの配置位置を最終的に決定する。これにより、半導体集積回路の消費電力を早期に推定することができる。
【発明の効果】
【００２５】
本発明によれば、Ｃ言語のような汎用プログラミング言語を用いてＲＴレベルよりも格段に高速に半導体集積回路のシミュレーションを実行することが可能になる。実績比として平均１０００倍程度の高速性が実現される。
【００２６】
また、本発明の消費電力見積もり方法によれば、補正前で実測値の±２０％以内、補正後で±１０％以内と高精度の消費電力見積もりが可能となる。さらに本発明の低消費電力化設計方法によれば、フロアプラン工程と配置配線工程内での後戻りを最小限に抑えつつ低電力化設計が実現できる。
【発明を実施するための最良の形態】
【００２７】
（実施の形態１）
以下、本発明の最良の実施形態について図面等を参照しながら詳細に説明する。まず、本発明の第１の目的である高速なサイクルベースシミュレーションを実現する高い抽象度のシミュレーションモデル設計方法について説明する。
【００２８】
そのために、Ｃ言語で記述されたハードウェアのアルゴリズムモデル例として、"function_b"を次に示す。
void  function_b(size_a,in0,in1)
{
int   i,  tmp;
for(i=0;i<size_a;i++){
tmp = mem0[i] + mem1[i];  
tmp *=  in0;
tmp +=  in1;
mem2[i] = tmp; 
}
}
【００２９】
このアルゴリズムモデルに対応する本発明における高速のサイクルベースモデルを備えたシミュレーション装置の概略図を図１に示す。設計対象のモデル１０１は、状態制御モジュールモデル１０２、演算モジュールモデル１０３、メモリモデル１０４、１０５、１０６から構成される。また、外部ハードウェアモデル１０７との通信として、演算開始を通知されるstart_signal信号、演算終了を通知するend_signal信号、演算パラメータとしてsize_a、in0、in1、がある。外部ハードウェアモデル１０７はＣＰＵなどのプロセッサモデルであってもよい。さらに、クロック概念としてメイン制御部１０８を備え、メイン制御部からの１回の関数コールが１クロックに相当する。
【００３０】
次に、演算モジュールモデル１０３の"deta_path"を以下のように記述する。
void  data_path(size_a,in0,in1)
{
int   tmp;
tmp = mem0[count] + mem1[count];
tmp *=  in0;
tmp +=  in1;
mem2[count] = tmp;
count++;
}
【００３１】
この演算モジュールモデルにおいては、演算内容はアルゴリズムモデルと差異はないが、ループ構造をなくしている。そのためにカウンタを備え、ループをカウンタ制御することで所望のデータ処理を実現している。
【００３２】
このカウンタ制御は状態制御モジュールモデル"control_model"が担い、下記のように記述する。
void controll_model( )
{
switch(state){
case IDLE：
end_signal = 0;
count = 0;
if(start_signal) state = EXE
break;
case EXE：
data_path(size,in0,in1);
if(count==size) state = END;
break;
case END:
end_signal = 1;
state = IDLE;
break;
}
}
【００３３】
この状態制御モジュールモデルはアイドル"IDLE"、実行"EXE"、終了"END"ステートを有している。初期化状態ではIDLEステートに位置しており、外部からのstart_signalよりステートをEXEに移し、EXEステートでは演算モジュールモデルのdata_pathをコールする。  前記演算モジュールモデルによる処理サイズが外部からの指定パラメータsizeに達したらステートをENDへ移し、end_signalを外部へ出力する。
【００３４】
次に、演算モジュールモデルに相当する実ハードウェアのコントロールデータフローグラフを図２に示す。実ハードウェアを機能合成により生成してコントロールデータフローグラフを得てもよい。実ハードウェアは第１ステージ２０１から第４ステージ２０４に分割されており、パイプライン構成を有している。
【００３５】
このパイプライン構成により、実ハードウェアと前記サイクルベースモデルの動作終了タイミングに３クロックのずれが生じる。これを吸収するサイクルベースモデルを備えたシミュレーション装置の概略図を図３に示す。この吸収する方法として、前記演算モジュールモデルに変更は加えず、前記状態制御モジュールモデルにウェイトステート３０１を設ける。
【００３６】
この修正された状態制御モジュールモデル"control_model"の記述を以下に示す。
void controll_model( )
{
switch(state){
case IDLE：
end_signal = 0;
count = 0;
if(start_signal) state = EXE
break;
case EXE：
data_path(size,in0,in1);
if(count==size){
state = WAIT;
wait_num = 3;
next_state = END;
}
break;
case END:
end_signal = 1;
state = IDLE;
break;
case WAIT:
wait_cnt++;
if(wait_cnt>=wait_num){
state = next_state;
wait_cnt = 0;
}
break;
}
}
【００３７】
ここでは、EXEステートにて所望の処理サイズに達したらWAITステートに移し、WAITステートでは指定サイクル数をウェイトし、その後、ENDステートに移るようにしている。  このような手法によりサイクルモデルを設計することにより、汎用のプログラミング言語で高速のサイクルシミュレートを実現することができる。
【００３８】
（実施の形態２）
本発明の第２の目的である高い抽象度のシミュレーションモデルからの高精度な消費電力見積もり方法について、実施の形態１のハードウェアモデルを使用して説明する。図４は消費電力測定機能を備えたシミュレーション装置を示す概略図である。このシミュレーション装置に組み込みソフトウェアなどを使用して実動作のシミュレーションを実施し、消費電力測定を行うことにより消費電力値の見積もりを得る。
【００３９】
本シミュレーション装置では、ユーザインターフェイス４０２を介して設定されたある一定区間(T)毎に、状態制御モジュールモデル１０２が使用した演算モジュールモデル１０３の動作サイクル数(Act)と、演算モジュールモデル１０３が使用したメモリモデル１０４、１０５、１０６のアクセス回数(Actmem)を電力計測部４０１で測定する。
【００４０】
これらの測定結果と、ユーザインターフェイス４０２を介してデータベース４０４により設定された演算モジュールモデル１０３の動作周波数(f)、面積(area)、単位面積当りの消費電力(p)、メモリの周波数単位当りの消費電力(pmem)を使用し、一定区間における消費電力(Pa)を測定する。電力測定時の消費電力Paの計算式は数１のようになる。
（数１）
Pa = (Act / T × area × p) + Actmem / T × (pmem × f)
【００４１】
この消費電力Paでは配線、特に演算モジュールモデル１０２とメモリモデル１０４、１０５、１０６の間の配線による消費電力が考慮されていない。そのため、ユーザイン  ターフェイスを介してデータベース４０３により設定された演算モジュールモデル１０２からメモリモデル１０４、１０５、１０６までのそれぞれの配線距離(d1,d2,d3)、単位距離の配線容量(c1,c2,c3)、動作電圧(V)、各メモリモデル１０４、１０５、１０６のバス幅(b1,b2,b3)を使用し、配線における消費電力(Pb)を測定する。消費電力Pbの計算式は数２のようになる。
（数２）
Pb = Actmem × (d1×c1×b1 + d2×c2×b2 + d3×c3×b3) × V^2 × f
【００４２】
配線距離は演算モジュールモデル１０２からその他の演算モジュールモデルとの距離でもよい。さらに、消費電力Pbに対する外部設定からの補正値(x)を数３により適用可能にする。
（数３）
Pb = Pb + x
【００４３】
ここで、補正値xは初期値を０に設定しておき、フロアプランや配置配線工程の物理設計での内容を反映して電力測定精度を向上させることが可能なようにする。以上のように、本実施の形態によれば、抽象度の高いシミュレーションモデルを用いても、精度の高い消費電力の見積もりが可能となる。
【００４４】
（実施の形態３）
本発明の第３の目的である高い抽象度のシミュレーションモデルからの消費電力見積もり結果を用いたフロアプラン工程と配置配線工程における低消費電力化設計方法について説明する。図５は、実施の形態１のシミュレーションモデル設計方法と実施の形態２の消費電力見積もり方法を踏まえた、本発明の実施の形態３に係る半導体集積回路の低消費電力化設計方法を示すフロー図である。
【００４５】
図５において、まずアーキテクチャ設計ＳＴ１で、ハードウェアとソフトウェアのパーティショニングおよび詳細仕様が設計され、アルゴリズム記述のハードウェアモデルＤ１とＣプログラムのソフトウェアモデルＤ２が作成される。
【００４６】
次に、実施の形態１のシミュレーションモデル設計方法により、サイクルベースモデルＤ４を設計し、ソフトウェアモデルＤ２に関しては組み込み用ＣコンパイラＤ３を使用してオブジェクトコードＤ５を得る。また、サイクルベースモデルＤ４から機能合成ＳＴ３によりＲＴレベル記述Ｄ６を生成する。このＳＴ３は機能合成ではなく人手による設計でもよい。さらに、Ｄ６から面積およびライブラリ情報Ｄ７を推定する。
【００４７】
ここで、サイクルベースモデルＤ４、オブジェクトコードＤ５、面積およびライブラリ情報Ｄ７を使用し、実施の形態２の消費電力見積もり方法による消費電力測定用のシミュレーション装置でサイクルベースシミュレーションＳＴ２を実施し、動的消費電力情報Ｄ８を得る。
【００４８】
次に、フロアプランステップＳＴ４で、前工程で作成したモデルを使用し、各機能モジュールの消費電力解析を実施することで消費電力が最適になるように機能モジュールの相対位置および配線ピッチを決定する。この最適化を図る上で、機能モジュールの相対位置と配線幅および配線ピッチから抽出した単位距離当りの配線容量をサイクルベースシミュレーションＳＴ２にフィードバックし、消費電力測定シミュレーションを繰り返し実行する。
【００４９】
次に、電源設計ステップＳＴ５で、消費電力解析結果より、電源配線面積、電源配線幅、電源ピッチを決定し、電源設計を実施する。次に、配置配線ステップＳＴ６では、ＲＴレベル記述Ｄ６から生成されたネットリストＤ９とフロアプランステップＳＴ４で求めた各機能モジュールの相対位置および配線ピッチから配置配線を実施する。その後、仕様を満たすように、配線ピッチ、配線幅、配置位置のタイミングの面での最適化を実施する。
【００５０】
次に、フィードバックステップＳＴ７では、配置配線ステップＳＴ６により機能モジュールの相対位置と配線幅および配線ピッチについてタイミング面での最適化を実施した結果から単位距離当りの配線容量および補正値Ｄ１０を抽出し、サイクルベースシミュレーションＳＴ２にフィードバックに戻す。
【００５１】
このようにして、ＳＴ２、ＳＴ４、ＳＴ５、ＳＴ６、ＳＴ７の各ステップを繰り返しながら、タイミングおよび電力確認ステップＳＴ８でタイミング制約と消費電力仕様を確認し、各機能モジュールの配置位置を決定する。
【００５２】
次に、上記各ステップの詳細な処理内容を具体例により説明する。図６はフロアプランステップＳＴ４における電流の最適化の例を説明した図である。図６（ａ）において、６０１がメモリ、６０２がモジュール１、６０３がモジュール２、６０４がメモリとモジュール１の間の配線、６０５がメモリとモジュール２の間の配線である。
【００５３】
この場合はモジュール１がモジュール２より相対的にメモリに近い配置が想定されており、配線ピッチも一定のピッチになっている。この状態を初期状態として消費電力測定シミュレーションを実施する。その結果を元に、モジュール１よりモジュール２の方が消費電力が大きい場合は、配線６０５での消費電力が大きくなることが推測されるため、図６（ｂ）に示すように、モジュール２をメモリ６０１に対して隣接配置し、メモリとモジュール２の間の新たな配線６０６は配線ピッチを広げる。モジュール１は相対的に配置位置がメモリから遠くなり、新たな配線６０７で接続される。
【００５４】
ここで説明した初期状態は一例であり、一般には機能モジュールのハードウェア規模を示すデータである面積およびライブラリ情報Ｄ７などから大まかに推定して決定する。このように、初期状態に対して消費電力測定の条件を変えてシミュレーションを繰り返し、最適な相対配線位置および配線ピッチを決定する。
【００５５】
次に、図７〜図１０を用いて電源設計ステップＳＴ５について詳細を説明する。図７は、電源の強化度合いを決定するためのグラフであり、７０１は半導体集積回路の消費電力と電源線の総面積に関する特性を示している。これにより、ＩＲドロップの仕様を満たすように事前に消費電力に対して電源の面積がどのくらい必要になるのか推定しておく。  そして、フロアプランステップＳＴ４にて消費電力解析結果により電源線の総面積を決定する。
【００５６】
図８は、電源幅および電源ピッチを決定するグラフであり、８０１は配線性と電源メッシュ間隔、電源配線幅の特性である。これにより、ＩＲドロップの仕様を満たすように事前に最適な電源メッシュ間隔、電源配線幅がどのくらい必要になるのか推定しておく。そして、図７により電源メッシュ間隔および電源配線幅を決定する。
【００５７】
図９は、フロアプランステップＳＴ４の消費電力解析において求めた各機能モジュールの消費電力のグラフであり、９０１が機能ブロック１、９０２が機能ブロック２、９０３が機能ブロック３の消費電力を示している。この場合、９０１において微小区間で大きなピークが見られるため、電源強化ブロックとあるいは容量セル補強ブロックを決定する。
【００５８】
図１０は電源設計について説明した図である。図１０において、１００１は機能モジュール１、１００２は機能モジュール２、１００３は機能モジュール３、１００４は半導体集積回路全体の電源線、１００５は機能モジュール３の電源線である。
【００５９】
電源線１００４は、図７および図８により全モジュールの消費電力解析結果から求められた電源メッシュ間隔および電源幅で設計されている。電源線１００５は、図９で消費電力のピークを持つ機能モジュール３について電源リングを張り、電源メッシュ幅を小さくして電源強化をしている。以上のように、フロアプランステップＳＴ４の消費電力解析結果から、電源設計ステップＳＴ５において半導体集積回路の電源設計を行う。
【００６０】
次に、図１１〜図１３を用いて配置配線ステップＳＴ６について説明する。図１１は配線性の最適化の例について説明した図である。図１１（ａ）において、１１０１はメモリ、１１０２はモジュール１、１１０３はメモリとモジュール１の間の配線である。図１１（ａ）の状態が、フロアプランステップＳＴ４の消費電力解析において求められた結果を反映してフロアプランをした結果である。
【００６１】
配線１１０３は消費電力を小さくするために電源配線ピッチを広くしていたが、配置配線をした結果の配線性が悪かったため、図１１（ｂ）に示すように、メモリとモジュール１の相対位置は変えずに、メモリとモジュール１の間の配線の配線ピッチを狭くし、新たな配線１１０４により配線性を改善している。ここでは、全体的な配線性を緩和するために部分に配線ピッチを狭くしたが、モジュール間の相対距離を変更する方法もある。
【００６２】
図１２は配置配線時のタイミング最適化の例について説明した図である。図１２（ａ）において、１２０１はメモリ、１２０２はモジュール１、１２０３はモジュール２、１２０４はメモリとモジュール１の間の配線、１２０５はメモリとモジュール２の間の配線である。図１２（ａ）の状態が、フロアプランステップＳＴ４の消費電力解析において求められた結果を反映してフロアプランをした結果である。
【００６３】
ここで、モジュール１がモジュール２よりタイミングが厳しかった場合を説明する。図１２（ｂ）が再配置配線の結果である。メモリの位置は変えずにモジュール１とモジュール２の位置を交換し、モジュール２をメモリに隣接配置をする。配線１２０５は配線幅を広げ配線ピッチを広くして新たな配線１２０６とすることで、配線抵抗、配線容量を低下させ、タイミング面で有利にさせる。
【００６４】
図１３は配置配線時のタイミング最適化の他の例を説明した図である。図１３（ａ）において、１３０１はメモリ、１３０２はモジュール１、１３０３はメモリとモジュール１の間の配線である。図１３（ａ）の状態が、フロアプランステップＳＴ４の消費電力解析において求められた結果を反映して配置配線をした結果である。
【００６５】
ここで、メモリとモジュール１を隣接配置し、配線１３０３の配線幅および配線間隔を広くしたにもかかわらず、配線１３０３でのタイミングが厳しかった場合について説明する。図１３（ｂ）が再配置配線の結果である。メモリ、モジュール１、メモリとモジュール１の間の配線の配置配線は変えずに、モジュール１で使用しているセルの種類を低い閾値電圧で動作するセル１３０４に変更することでタイミングを有利にさせている。
【００６６】
次に、図１４〜図１６を用いてフィードバックステップＳＴ７について説明する。図１４は使用されたバッファセルの駆動タイプとその平均ドライブ距離特性を記したグラフである。１４０１はタイプ１の平均ドライブ距離L1、１４０２はタイプ２の平均ドライブ距離L2、１４０３はタイプ３の平均ドライブ距離L3であり、これらはフロアプランの結果のネットリストより抽出した結果である。
【００６７】
図１５はバッファセルの駆動タイプとその使用数特性である。１５０１はタイプ１の使用数N1、１５０２はタイプ２の使用数N2、１５０３はタイプ３の使用数N3であり、これらは配置配線後のネットリストより抽出した結果である。
【００６８】
図１６はフィードバックステップＳＴ７で抽出するモジュール間の補正値のモデルについて説明した図である。１６０１はメモリ、１６０２はモジュール１、１６０３はモジュール２、１６０４はメモリとモジュール１の間の配線、１６０６はメモリとモジュール２の間の配線である。１６０５、１６０７は、電力測定精度を上げるためにモデル化したリピータバッファである。
【００６９】
これらのバッファのモデルは、図１４および図１５から求めたバッファセルの平均ドライブ距離とバッファ数から決定する。モデル化したバッファセルの平均ドライブ距離Lmおよび内部消費電力Pmは、平均ドライブ距離Lm分の配線負荷容量がついたときのタイプ１、２、３の内部消費電力をそれぞれP1、P2、P3とすると、それぞれ数４および数５のようになる。
（数４）
Lm = (N1×L1＋N2×L2＋N3×L3) / (N1＋N2＋N3)
（数５）
Pm = (P1×N1＋P2×N2＋P3×N3) / (N1＋N2＋N3)
【００７０】
これらの値を使用し、数２のモジュール間配線の消費電力PbにΣPmを補正値として補正をかけた後、サイクルベースシミュレーションＳＴ２にフィードバックをする。すなわち、補正後の消費電力Pb1は数６のようになる。
（数６）
Pb1 = Pb ＋ ΣPm
【００７１】
なお、ここでは数４および数５を用いてバッファのモデル化を行ったが、簡易な手法として、使用率の高いバッファタイプのセルを使用する方法も有効である。
【００７２】
図１７は、フィードバックステップＳＴ７で抽出するセル領域が確定しているハードマクロモジュール間距離を説明した図である。１７０１はモジュール１、１７０２はモジュール２、１７０３はモジュール１とモジュール２の間の距離、１７０４はモジュール１とモジュール２の間の最長距離である。距離は各モジュールの重心位置との距離であるが、マクロのようなモジュールについては１７０４の距離で電力解析するのも有効である。
【００７３】
図１８は、フィードバックステップＳＴ７で抽出するマクロ化されていない広がりを持ったモジュール間の距離について説明した図である。１８０１はモジュール１のセル群、１８０２はモジュール２のセル群、１８０３はモジュール１とモジュール２の重心距離である。ここで重心点(X1,Y1)、(X2,Y2)は、各セルのX座標をX1k、X2k、Y座標をY1k、Y2k、各セル数をN1、N2とすると、数７および数８により算出する。
（数７）
(X1,Y1) = (ΣX1k/N1,ΣY1k/N1)
（数８）
(X2,Y2) = (ΣX2k/N2,ΣY2k/N2)
【００７４】
これらの結果により、モジュール１とモジュール２の相対距離L12を数９により算出する。ここでは、配線方向は９０度方向のみを想定しており、45度配線のときは、同様に斜め配線も考慮に入れ距離の算出をする。
（数９）
L12 = √( (X1-X2)^2 ＋ (Y1-Y2)^2 )
【００７５】
以上説明したように、数６で与えられる補正値、数９で与えられるモジュール間の相対距離、図１１〜図１３の配置配線で変更された相対配線距離、配線幅および配線ピッチから抽出した単位距離当りの配線容量、セルの異なる種類への変更結果から抽出した補正値などをフロアプランにフィードバックをする。
【００７６】
前述したステップを繰り返し、タイミングおよび電力確認ステップＳＴ８において最終的にタイミング面や消費電力面で仕様を満たしていることを確認する。このように、本実施の形態の低電力化設計手法によれは、モジュールごとに詳細な電力解析ができ、その結果をフロアプラン、電源設計、配置配線に反映させることで低消費電力化を図ることができる。
【００７７】
（実施の形態４）
図１９は、プログラマブルロジックゲートアレイを対象とした場合の、本発明の実施の形態４に係る半導体集積回路の低消費電力化設計方法を示すフロー図である。図１９において、動的消費電力情報Ｄ８およびネットリストＤ９を得るまでの、プログラマブルロジックゲートアレイマッピングステップＳＴ９に至る過程は実施の形態３に相当する内容である。
【００７８】
プログラマブルロジックゲートアレイマッピングステップＳＴ９では、最終製品の形態が、図２０に示すように、ルックアップテーブルやメモリを含む論理ブロック２００１、スイッチ２００２、スイッチマトリクス２００３、配線２００４から構成されるＦＰＧＡなどのプログラマブルロジックゲートアレイであるときに、動的消費電力情報Ｄ８に基づいて消費電力が大きい機能ブロックから順に、各論理ブロックの広がりを最小にするようにマッピングする。
【００７９】
図２１に上記マッピングの実施例を示す。消費電力情報Ｄ８において機能ブロック１の消費電力が最大であるとき、これを最初にマッピングさせるブロックとして選択して２１０１に配置する。続けて、機能ブロック２の消費電力が次に大きいとき、これを次にマッピングさせるブロックとして選択して２１０２に配置する。その後、最後のブロックマッピングが終了するまで繰り返しマッピングしていく。
【産業上の利用可能性】
【００８０】
本発明のシミュレーション装置および半導体集積回路の設計方法はハードウェアと等価な動作を有し、かつ高速シミュレーションを実現していることから、アーキテクチャ解析、ソフトウェア開発用プラットフォームとしても応用可能である。また、消費電力測定や低電力化設計も含めて近年集積回路設計のソフトウェアが膨大化していることから、特に消費電力解析、低電力化が望まれる携帯電話に代表される携帯機器の集積回路設計にも有用である。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態１に係る半導体集積回路のシミュレーションモデル設計方法に基づくサイクルベースモデルを備えたシミュレーション装置の概略図。
【図２】実ハードウェアのコントロールデータフローグラフ。
【図３】実ハードウェアとシミュレーションモデルのサイクル誤差を吸収するサイクルベースモデルを備えたシミュレーション装置の概略図。
【図４】本発明の実施の形態２に係る半導体集積回路の消費電力測定機能を備えたシミュレーション装置を示す概略図。
【図５】本発明の実施の形態３に係る半導体集積回路の低消費電力化設計方法を示すフロー図。
【図６】フロアプランステップの消費電力解析における電流最適化の例を説明する図。
【図７】電源設計の際に電源強化度合いを決定するための消費電力−電源線の総面積特性のグラフ。
【図８】電源設計の際に電源配線幅とピッチを決定するための配線性―電源配線幅および電源配線ピッチ特性のグラフ。
【図９】電源強化ブロックを決定するための各機能モジュールの消費電力特性のグラフ。
【図１０】電源設計方法を説明する図。
【図１１】配線性の最適化の例を説明する図。
【図１２】配置配線時のタイミング最適化の例を説明する図。
【図１３】配置配線時のタイミング最適化の例を説明する図。
【図１４】バッファセルの駆動タイプ−平均ドライブ距離特性のグラフ。
【図１５】バッファセルの駆動タイプとその使用数特性のグラフ。
【図１６】消費電力解析にフィードバックをするモジュール間の補正値のモデルを説明する図。
【図１７】ハードマクロモジュール間の距離を説明する図。
【図１８】マクロ化されていない広がりを持ったモジュール間の距離を説明する図。
【図１９】本発明の実施の形態４に係る半導体集積回路の低消費電力化設計方法を示すフロー図。
【図２０】プログラマブルロジックゲートアレイの構成例を示す図。
【図２１】プログラマブルロジックゲートアレイへのマッピング実施例を示す図。
【符号の説明】
【００８２】
１０１  設計対象ハードウェアのサイクルベースモデル
１０２  状態制御モジュールモデル
１０３  演算モジュールモデル
１０４、１０５、１０６  メモリモデル
１０７  外部ハードウェアモデル
１０８  メイン制御部
２０１〜２０４  コントロールデータフローグラフの各ステージ
３０１  ウェイトステート
４０１  電力計測部
４０２  ユーザインターフェイス
４０３  面積、周波数、メモリライブラリ情報
４０４  配線距離、動作電圧、補正値
６０１、１１０１、１２０１、１３０１、１６０１  メモリ
６０２、１１０２、１２０２、１３０２、１３０４、１６０２  モジュール１
６０３、１２０３、１６０３  モジュール２
６０４、６０７、１１０３、１１０４、１２０４、１２０７、１３０３、１６０４  メモリ−モジュール１間配線
６０５、６０６、１２０５、１２０６、１６０６  メモリ−モジュール２間配線
７０１  消費電力−電源線の総面積特性
８０１  配線性−電源配線幅、電源配線ピッチ特性
９０１〜９０３  モジュール１〜３の消費電力
１００１〜１００３  機能モジュール１〜機能モジュール３
１００４  半導体集積回路全体の電源線
１００５  機能モジュール３の電源線
１４０１〜１４０３  セルタイプ１〜３の平均ドライブ距離
１５０１〜１５０３  セルタイプ１〜３の個数
１６０５、１６０７  バッファモデル
１７０１  マクロ化されたモジュール１
１７０２  マクロ化されたモジュール２
１７０３  モジュール１−モジュール２間の重心点距離
１７０４  モジュール１−モジュール２間の最長距離
１８０１  モジュール１セル群
１８０２  モジュール２セル群
１８０３  モジュール１−モジュール２間の重心距離
２００１  論理ブロック
２００２  スイッチ
２００３  スイッチマトリクス
２００４  配線
２１０１  機能ブロック１がマッピングされる範囲
２１０２  機能ブロック２がマッピングされる範囲
Ｄ１  ハードウェアモデル（アルゴリズム記述）
Ｄ２  ソフトウェアモデル
Ｄ３  組み込み用Ｃコンパイラ
Ｄ４  サイクルベースモデル
Ｄ５  ソフトウェアのオブジェクトコード
Ｄ６  ＲＴレベル記述
Ｄ７  面積、メモリライブラリ情報のデータベース
Ｄ８  動的消費電力情報
Ｄ９  ネットリスト
Ｄ１０  配線距離、単位距離当りの配線容量、補正値のデータベース
ＳＴ１  アーキテクチャ設計ステップ
ＳＴ２  サイクルベースシミュレーションステップ
ＳＴ３  機能合成ステップ
ＳＴ４  フロアプランステップ
ＳＴ５  電源設計ステップ
ＳＴ６  配置配線ステップ
ＳＴ７  フィードバックステップ
ＳＴ８  タイミングおよび電力確認ステップ
ＳＴ９  プログラマブルロジックゲートアレイマッピングステップ
【図１】
2005242642.tif 000003
【図２】
2005242642.tif 000004
【図３】
2005242642.tif 000005
【図４】
2005242642.tif 000006
【図５】
2005242642.tif 000007
【図６】
2005242642.tif 000008
【図７】
2005242642.tif 000009
【図８】
2005242642.tif 000010
【図９】
2005242642.tif 000011
【図１０】
2005242642.tif 000012
【図１１】
2005242642.tif 000013
【図１２】
2005242642.tif 000014
【図１３】
2005242642.tif 000015
【図１４】
2005242642.tif 000016
【図１５】
2005242642.tif 000017
【図１６】
2005242642.tif 000018
【図１７】
2005242642.tif 000019
【図１８】
2005242642.tif 000020
【図１９】
2005242642.tif 000021
【図２０】
2005242642.tif 000022
【図２１】
2005242642.tif 000023