(57)【要約】  【課題】  バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することを目的とする。  【解決手段】  オンチップバスで消費される電力を計算する際に、必要となるそのオンチップバス中の各ビットがトグルする確率を求め（Ｓ１０２）、この確率を消費電力の見積もり計算に使用する（Ｓ１０３）ため、ゲートレベルのネットリスト作成を待つことなく、設計初期段階にてオンチップバスの消費電力の計算が可能となり、バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することができる。【選択図】    図１
2005277105.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路に搭載され複数の機能ブロックに接続されるオンチップバスの消費電力を見積もる方法であって、
前記機能ブロックが接続しているオンチップバスのうちで変化する可能性のある接続ビット数を求める工程と、
前記各接続ビットの値が変化する確率を求める工程と、
前記オンチップバスに接続される配線の総配線負荷容量を求める工程と、
前記確率，前記接続ビット数，前記総配線負荷容量および前記オンチップバスの動作電源電圧より前記オンチップバスの消費電力を見積もる工程と
を有することを特徴とするバス消費電力見積もり方法。
【請求項２】
前記消費電力をＰ，前記オンチップバスの動作電源電圧をＶＤＤ，前記総配線負荷容量をＣＬ，前記確率をＴＰ，前記接続ビット数をＢとして、前記消費電力の見積もりを、
Ｐ＝ＶＤＤ２・ＣＬ・ＴＰ・Ｂ
として求めることを特徴とする請求項１記載のバス消費電力見積もり方法。
【請求項３】
前記接続ビットの各ビットの次サイクルでの値の変化を確認し、前記ビットの次サイクルの値に制約がない場合には、前記確率を１／２とすることを特徴とする請求項１または請求項２のいずれかに記載のバス消費電力見積もり方法。
【請求項４】
前記接続ビットの各ビットの次サイクルでの値の変化を確認し、前記ビットの次サイクルで必ず値が変化する場合には、前記ビット幅をｍビットとして、前記確率を２ｍ−１／２ｍ−１とすることを特徴とする請求項１または請求項２または請求項３のいずれかに記載のバス消費電力見積もり方法。
【請求項５】
前記総配線負荷容量を、前記半導体集積回路の予想ゲート数から求められるワイヤロードモデルより求めることを特徴とする請求項１または請求項２または請求項３または請求項４のいずれかに記載のバス消費電力見積もり方法。
【請求項６】
前記オンチップバスの総配線長を概略フロアプランから求め、その概略総配線長より前記総配線負荷容量を求めることを特徴とする請求項１または請求項２または請求項３または請求項４のいずれかに記載のバス消費電力見積もり方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能ブロックを有する半導体集積回路上のオンチップバスで消費される電力を、そのオンチップバスに接続される機能ブロックからのデータ出力毎に、静的に見積もるバス消費電力見積もり方法に関する。
【背景技術】
【０００２】
半導体集積回路の消費電力を見積もる技術としては、対象となる回路のゲートレベルのネットリストをシミュレーションし、シミュレーション時のゲート出力のトグル数をカウントする方法が一般に知られている。
また、シミュレーションによらないトグル数の見積もり方法としては、ゲート間の最大信号到達時間を計算し、その到達時間の逆数の周波数を、単位時間あたりのトグル数として見積もる方法がある（例えば、特許文献１参照）。
【特許文献１】特開平７−１２０５３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般的に行われている、ゲートレベルのネットリストをシミュレーションする方法では、ゲートレベルネットリストが準備できるまで消費電力の見積もりを行うことはできない。たとえ、消費電力見積もりが必要となるのがオンチップバス部分のみであったとしても、そのオンチップバスに接続される機能ブロックのゲートレベルネットリストは必要となる。通常、半導体集積回路の設計工程上、ゲートレベルのネットリストが準備できるのは、設計開始時から相当の期間が必要となり、結果的に消費電力の見積もりが設計の後期にならないとできないという問題点があった。
【０００４】
また、ゲートレベルのシミュレーションのためには、テストベクタも同時に準備する必要があり、テストベクタの作成にも多大な工数を要する。さらに、ゲートレベルのシミュレーションそのものが、かなりの時間を必要とする。特開平７−１２０５３２号公報に開示される技術においても、テストベクタの準備やシミュレーションそのものは必要ないが、やはりゲートレベルネットリストが準備できるまでは実施できず、さらに、ゲート間の最大信号到達時間を計算する工数も必要となるため、消費電力見積もりに対する工数が大きくなるという問題点があった。
【０００５】
上記問題点を解決するために、本発明のバス消費電力見積もり方法は、バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の請求項１記載のバス消費電力見積もり方法は、半導体集積回路に搭載され複数の機能ブロックに接続されるオンチップバスの消費電力を見積もる方法であって、前記機能ブロックが接続しているオンチップバスのうちで変化する可能性のある接続ビット数を求める工程と、前記各接続ビットの値が変化する確率を求める工程と、前記オンチップバスに接続される配線の総配線負荷容量を求める工程と、前記確率，前記接続ビット数，前記総配線負荷容量および前記オンチップバスの動作電源電圧より前記オンチップバスの消費電力を見積もる工程とを有することを特徴とする。
【０００７】
請求項２記載のバス消費電力見積もり方法は、請求項１記載のバス消費電力見積もり方法において、前記消費電力をＰ，前記オンチップバスの動作電源電圧をＶＤＤ，前記総配線負荷容量をＣＬ，前記確率をＴＰ，前記接続ビット数をＢとして、前記消費電力の見積もりを、Ｐ＝ＶＤＤ２・ＣＬ・ＴＰ・Ｂとして求めることを特徴とする。
【０００８】
請求項３記載のバス消費電力見積もり方法は、請求項１または請求項２のいずれかに記載のバス消費電力見積もり方法において、前記接続ビットの各ビットの次サイクルでの値の変化を確認し、前記ビットの次サイクルの値に制約がない場合には、前記確率を１／２とすることを特徴とする。
【０００９】
請求項４記載のバス消費電力見積もり方法は、請求項１または請求項２または請求項３のいずれかに記載のバス消費電力見積もり方法において、前記接続ビットの各ビットの次サイクルでの値の変化を確認し、前記ビットの次サイクルで必ず値が変化する場合には、前記ビット幅をｍビットとして、前記確率を２ｍ−１／２ｍ−１とすることを特徴とする。
【００１０】
請求項５記載のバス消費電力見積もり方法は、請求項１または請求項２または請求項３または請求項４のいずれかに記載のバス消費電力見積もり方法において、前記総配線負荷容量を、前記半導体集積回路の予想ゲート数から求められるワイヤロードモデルより求めることを特徴とする。
【００１１】
請求項６記載のバス消費電力見積もり方法は、請求項１または請求項２または請求項３または請求項４のいずれかに記載のバス消費電力見積もり方法において、前記オンチップバスの総配線長を概略フロアプランから求め、その概略総配線長より前記総配線負荷容量を求めることを特徴とする。
【００１２】
以上により、バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することができる。
【発明の効果】
【００１３】
本発明では、オンチップバスで消費される電力を計算する際に、必要となるそのオンチップバス中の各ビットがトグルする確率を求め、この確率を消費電力の見積もり計算に使用するため、ゲートレベルのネットリスト作成を待つことなく、設計初期段階にてオンチップバスの消費電力の計算が可能となり、バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することができる。
【００１４】
また、必要となるオンチップバスの負荷容量を、そのオンチップバスが搭載される半導体集積回路の規模に応じて決定されるワイヤロードモデル、あるいは、概略フロアプランより求められる概略総配線長より求めることにより、バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することができる。
【発明を実施するための最良の形態】
【００１５】
まず、図を用いて本発明の消費電力見積もり方法の概要を説明する。
図１は本発明の消費電力計算方法の要旨を示すフローチャートである。
図１において、オンチップバス部分に対して、そのオンチップバスに接続される機能ブロックからの出力データ毎に消費電力を見積もる方法であって、まず、機能ブロックが接続されているオンチップバスの接続ビット数を求め（Ｓ１０１）、次に、接続された各ビットがトグルする（変化する）確率を求め（Ｓ１０２）、この確率より、出力データによってトグルするそのオンチップバスの全ビットに対するトグル確率を見積もり、最後に、全ビットに対するトグル確率で表わしたトグルするビットの数および負荷容量を用いて、オンチップバスの消費電力の見積もりを行う（Ｓ１０３）。
【００１６】
この時のオンチップバス上のビットがトグルする確率を、次サイクルにとり得る値に制約がない場合は１／２にし、機能ブロックから出力される値が、オンチップバス上の値と必ず異なる場合は、オンチップバス上のビットがトグルする確率を、オンチップバスへの接続ポートのうち、変化するビット数ｎに応じて、２（ｎ−１）／２ｎ−１とする。
【００１７】
さらに、オンチップバスの消費電力を見積もりに用いるオンチップバスの負荷容量として、そのオンチップバスが搭載される半導体集積回路の規模に応じて決定されるワイヤロード、または、半導体集積回路装置の設計の比較的初期に概略フロアプランを作成し、そのオンチップバスの総配線長の概略を求め、その概略総配線長より負荷容量を総配線負荷容量として求める。
【００１８】
以下、具体的な実施例について図を用いて説明する。
まず初めに、一般的な消費電力について、図２，図３を用いて説明する。
図２はビット変化率を示す図，図３は４ビットのデータ変化を示す図である。
【００１９】
一般的に、容量への１回の充放電の際に消費される電力ＰＧは次の式で表すことができる。
ＰＧ＝ＶＤＤＧ２・ＣＬＧ      ・・・（１）
ここで、
ＶＤＤＧ：電源電圧
ＣＬＧ：負荷容量
である。
【００２０】
オンチップバス上に接続されている機能ブロックからデータ出力がある時に、そのオンチップバスで消費される電力Ｐは、各ビットの値が変化するする確率、即ち充電もしくは放電が起こる確率にそのオンチップバスのビット数をかければよい。従って、次式で表すことができる。
【００２１】
Ｐ＝ＶＤＤ２・ＣＬ・ＴＰ・Ｂ  ・・・（２）
ここで、
ＶＤＤ：そのオンチップバスの動作電源電圧
ＣＬ：そのオンチップバスの各ビットの総負荷容量
ＴＰ：各ビットのトグルする確率
Ｂ：そのオンチップバスの変化する可能性のあるビット数
である。
【００２２】
また、各ビットの値が変化する確率（トグル確率）は、次のようにして求めることができる。
まず、オンチップバスがある時点で保持している値が、次サイクルで機能ブロックから出力されるデータの値によって書き換えられる際、ビット単位で値がどのように変化するかを見てみる。
【００２３】
次サイクルにとり得る値に制約がない場合、図２に示すように、保持している値が”０”であるか”１”であるかに関わらず、各ビットのとり得る値は、”０”または”１”となる。つまり、この場合の値が変化する割合、つまり、トグルする確率ＴＰは、１／２となる。
【００２４】
次サイクルにとり得る値が、保持している値と必ず異なる場合、次サイクルにとり得る値が制約される。図３に示すような４ビットのデータの場合を見てみる。例えば、現在保持している値が”００００”であったとする。次サイクルにとり得る値は、”００００”以外に１５通りある値のうちの一つである。つまり、現在保持している値を除いた値のうちのいずれかになる。
【００２５】
一般的に、ｎビットのデータのとり得る値は、２ｎ通りである。従って、ｎビットのデータで次サイクルの値が現在保持している値と異なるという制約がある場合、とりうる値は、２ｎ−１通りである。つまり、
次サイクルの値が現在保持している値と異なるという制約がある場合のｎビットのデータがとりうる値＝２ｎ−１通り・・・（３）
となる。
【００２６】
このように、各ビットがトグルするのは、２ｎ−１通りになる。現在あるビットが保持している値が”０”であったとすると、各ビットがトグルするのは、次サイクルで”１”になる時である。例えば、ｎビットのデータで”０”であった場合、即ち全ビットが”０”であった場合、あるビットが次サイクルで”１”になるのは、ｎビットのとりうる値２ｎのうちの１／２、即ち２ｎ−１通りである。よって、
ｎビットのデータの各ビットがトグルする値＝２ｎ−１通り・・・（４）
となる。
【００２７】
従って、次サイクルの値が現在保持している値と異なるという制約がある場合、ビットがトグルする確率ＴＰは、とり得る値のうちトグルする値、即ち式（４）÷式（３）、２ｎ−１／２ｎ−１である。
【００２８】
次に、オンチップバスの各ビットのトグル確率を用いたバスの消費電力の算出方法を図４，図５を用いて説明する。
図４は半導体集積回路装置のオンチップバスを例示するブロック図，図５はワイヤロードモデルを例示する図である。
【００２９】
図４において、４０１はバスマスターであって、オンチップバスを介して４０４で表されるＳＲＡＭからデータを読み出すとする。４０２はオンチップバスのうちアドレスを示すアドレスバス、４０３はオンチップバスのうちデータを示すデータバスである。
【００３０】
例えば、上記のバスマスターが、このＳＲＡＭからバーストモードで１００バイト分のデータを読み出すときに、平均どの程度の電力を消費するのかを、半導体集積回路装置の設計初期段階で見積もるとする。
【００３１】
このオンチップバスが、バーストモード時に、アクセスするアドレスを順次インクリメントしていく仕様のものであるとする。また、このオンチップバスには、当該バスマスターとＲＡＭ以外に、５つの機能ブロック４０５が接続されているとする。半導体集積回路装置の電源電圧をＶｄｄとする。また、データバスのビット幅をｎビット、アドレスバスのビット幅をｍビットとする。
【００３２】
この時、それぞれのバスの総トグル数は次のように計算される。
データバスの場合、転送されるデータ間に特に制約はないので、各ビットでのトグル確率は１／２となり、
１転送時にトグルするビット数ＴＰ・Ｂ＝ｎ／２      ・・・（５）
と表わすことができる。
【００３３】
アドレスバスの場合、アドレスが順次インクリメントしていく。従って、アドレスデータの値は、次データ転送時にはかならず異なるという制約があり、各ビットでのトグル確率は２ｍ−１／２ｍ−１となる。この場合、１転送時にトグルするビットの数は、
１転送時にトグルするビット数ＴＰ・Ｂ＝ｍ・２ｍ−１／２ｍ−１・・・（６）
と表わすことができる。
【００３４】
設計初期の段階では、半導体集積回路装置の物理情報は何も決まっていないことが多い。しかし、一つのオンチップバス上に接続される機能ブロックの数は決定されている。また、おおまかなゲート数も見積もることができる。この場合、オンチップバス上の各ビット線の配線負荷容量は、当該ゲート数より決定されるワイヤロードモデルから求めることができる。図５は、そのようなワイヤロードモデルの例である。
【００３５】
例えば、図５のようなワイヤロードモデルから容量を求めると、容量の単位をｐＦとすると、オンチップバスに接続されている機能ブロックの数が２個の時０．０２２８０９６ｐＦ、３個の時０．０４４６６８８ｐＦとして求められる。
【００３６】
図４において、オンチップバス上に合計４つの機能ブロックと１つのＳＲＡＭの合計５つのブロックが接続されているためｆａｎｏｕｔ５となり、この時、ワイヤロードモデルから定義される配線の負荷容量は、０．０４６０９４４ｐＦと求められる。また、各機能ブロックの入力ゲートの平均負荷容量を０．０２ｐＦとすると、総入力ゲート容量は、
０．０２ｐＦ×５＝０．１ｐＦ    ・・・（７）
となる。
【００３７】
これらより、この例のオンチップバスの総容量ＣＬは、
０．０４６０９４４ｐＦ＋０．１ｐＦ＝０．１４６０９４４ｐＦ・・・（８）
となる。
【００３８】
１回のデータ転送で消費される電力は、式（２）で表される。この例の場合は、
０．１４６０９４４×Ｖｄｄ２×Ｔｂ×Ｂ  ［ｐＷ］・・・（９）
ということになる。ここで、Ｔｂは各ビット単位のトグル確率でデータバス、アドレスバスそれぞれを含めて求めた確率を示す。つまり、Ｔｂ×Ｂは、データバス、アドレスバスそれぞれを合わせた全体のトグルするビットの数を確率として、式（５）、式（６）から求めて示されている。従って、式（９）は、
０．１４６０９４４×Ｖｄｄ２×（ｎ／２＋ｍ・２ｍ−１／２ｍ−１）・・・（１０）
となり、１００バイトのバースト転送ではこれが
１４．６０９４４×Ｖｄｄ２×（ｎ／２＋ｍ・２ｍ−１／２ｍ−１）・・・（１１）
となる。１００バイトのアドレス空間は、７ビットで表現できる。つまり、アドレスバスのビット幅に関わらず、変化するのは７ビットのみである。従って、例えば、電源電圧を３．３Ｖ、データバス３２ビット、アドレスバス７ビットとすると、１回の転送で消費する電力は、
１４．６０９４４×３．３２×（３２／２＋７×２６／２７−１）＝３１０５．１５  ［ｐＷ］・・・（１２）
として計算することができる。
【００３９】
図６を用いて以上の処理フローをまとめる。
図６は本発明の消費電力計算方法を示すフローチャートである。
図６において、まず、機能ブロックが接続しているオンチップバスの接続ビット数を求めることにより、消費電力を求める期間に変化する可能性のあるビット幅を求める（Ｓ７０１）。
【００４０】
次に、このビット幅で次サイクルに必ず値が変化するかどうかを確認し（Ｓ７０２）、このビット幅で次サイクルに必ず値が変化する場合には、式（６）より、ビット幅をｍビットとして、各ビットがトグルする確率を２ｍ−１／２ｍ−１とし、全体のトグルするビットの数としてビット幅がトグルする確率をｍ・２ｍ−１／２ｍ−１とする（Ｓ７０４）。また、このビット幅で次サイクルの値に制約がない場合には、式（５）より、ビット幅をｎビットとして、各ビットがトグルする確率を１／２とし、全体のトグルするビットの数としてビット幅がトグルする確率をｎ／２とする（Ｓ７０３）。
【００４１】
次に、各機能ブロックのワイヤロードモデルより、機能ブロック毎の配線負荷容量を求め、全ての機能ブロックの配線負荷容量より、オンチップバスに接続される配線の総配線負荷容量を求める（Ｓ７０５）。この時、フロアプランから見積もられる配線長を用いて、オンチップバスに接続される配線の総配線負荷容量を求めることもできる。
【００４２】
最後に、電源電圧，総配線負荷容量およびビット幅がトグルする確率より１回の転送で消費する電力を求め、データ転送数を乗ずることにより、対象となる期間での消費電力を見積もる（Ｓ７０６）。
【００４３】
以上のように、全体のトグルするビットの数としてオンチップバスに接続されるビット幅単位のトグル確率を求め、このビット幅単位のトグル確率とあらかじめ見積もった対象となる配線の総配線負荷容量および電源電圧から１回の転送で消費する電力を求め、データ転送数を乗ずることにより、対象となる期間での消費電力を見積もることにより、ネットリストが生成できないような設計初期の段階で消費電力を見積もることができ、ネットリストの作成や工数のかかる計算が必要ないので、見積もり工数を削減することができる。
【００４４】
また、消費電力計算は、時間のかかるダイナミックシミュレーションを行う必要もなく、テストベクタを作成する必要もないことからも、見積もり工数を削減することができる。
【００４５】
また、本発明は、ＲＴＬ作成を待つことなく、オンチップバスの消費電力を見積もることができ、半導体集積回路装置のオンチップバス構造の検討、フロアプランへの適用などに応用できる。
【００４６】
なお、接続ビットが次サイクルにとり得る値の制約がないとあらかじめ分かっている場合には、工程Ｓ７０２、Ｓ７０４を行う必要がなく、また逆に、接続ビットがオンチップバス上の値と必ず異なると分かっている場合には、工程Ｓ７０２、Ｓ７０３を行う必要がない。
【００４７】
また、ここでは、ビット幅単位で一括して次サイクルでの値の変化の制約を確認したが、各ビット毎に次サイクルでの値の変化の制約を確認し、それぞれのビットがトグルする確率を求め、それを合計することによって、消費電力の計算に用いても良い。
【産業上の利用可能性】
【００４８】
本発明は、バスの消費電力を設計の初期段階で見積もり、また、見積もりの工数を削減することができ、機能ブロックを有する半導体集積回路上のオンチップバスで消費される電力を、そのオンチップバスに接続される機能ブロックからのデータ出力毎に、静的に見積もるバス消費電力見積もり方法等に有用である。
【図面の簡単な説明】
【００４９】
【図１】本発明の消費電力計算方法の要旨を示すフローチャート
【図２】ビット変化率を示す図
【図３】４ビットのデータ変化を示す図
【図４】半導体集積回路装置のオンチップバスを例示するブロック図
【図５】ワイヤロードモデルを例示する図
【図６】本発明の消費電力計算方法を示すフローチャート
【符号の説明】
【００５０】
４０１    バスマスター
４０２    アドレスバス
４０３    データバス
４０４    ＳＲＡＭ
４０５    機能ブロック
【図１】
2005277105.tif 000003
【図２】
2005277105.tif 000004
【図３】
2005277105.tif 000005
【図４】
2005277105.tif 000006
【図５】
2005277105.tif 000007
【図６】
2005277105.tif 000008