(57)【特許請求の範囲】
【請求項１】
論理回路の動作率の算出において、テストパタンと前記論理回路のＲＴＬモデルとを入力し前記論理回路の有するレジスタについてレジスタ０確率データとレジスタ動作率データとの算出を行うレジスタデータ算出手段を含みＲＴＬシミュレーションを行うＲＴＬシミュレーション手段と、前記レジスタ０確率データと前記レジスタ動作率データとに準拠するテストパタン数列を生成するゲート動作率算出用パタン作成手段と、前記論理回路のネットリストからレジスタ部分を取り除いた編集済ネットリストを生成するネットリスト編集手段と、前記数列と前記編集済ネットリストを入力してゲート動作率データの算出を行うゲート動作率算出手段を含みネットリストシミュレーションを行うネットリストシミュレーション手段と、を備えることを特徴とする動作率算出システム。
【請求項２】
前記レジスタデータ算出手段による前記レジスタ動作率データと、前記ゲート動作率算出手段によるゲート動作率データとを併合することにより前記論理回路の動作率とすることを特徴とする請求項１記載の動作率算出システム。
【請求項３】
前記ＲＴＬシミュレーション手段は、さらに、レジスタの０と１の組み合わせからなるテスト結果からテストパタン長に占める０の割合をレジスタ０確率データとして算出し、テスト結果の隣接する２つの数値において０から１へ遷移する数と１から０へ遷移する数とを合計しそれがテストパタン長に占める割合をレジスタ動作率データとして算出することを特徴とする請求項１記載の動作率算出システム。
【請求項４】
前記レジスタ０確率データと前記レジスタ動作率データとに準拠する０と１との乱数を発生させ０と１とより構成されるテストパタン数列を生成するゲート動作率算出用パタン作成手段を備えることを特徴とする請求項１記載の動作率算出システム。
【請求項５】
前記論理回路に対応するネットリストからレジスタに関する部分を取り除いた編集済ネットリストを生成するネットリスト編集手段を備えることを特徴とする請求項１記載の動作率算出システム。
【請求項６】
前記編集済ネットリストを入力しネットリストシミュレーションによってレジスタ以外のゲート動作率データを算出するネットリストシミュレーション手段を備えることを特徴とする請求項１記載の動作率算出システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＭＯＳ−ＬＳＩ等の論理回路における消費電力の算定を論理回路を構成する各レジスタとゲートの動作率から算定するに関し、特にネットリストを使用した場合の動作率の計算に多大な時間を要しているのを改善した動作率算出システムに関する。
【０００２】
【従来の技術】
ＣＭＯＳ−ＬＳＩ等の論理論理回路の消費電力を求めるためには、論理回路を構成するＡＮＤ，ＯＲ，ＮＯＴ等の各ゲートや各レジスタ毎の動作率（単位クロックあたりに０→１及び１→０に変化する率）を求める必要がある。これに関し、従来以下のような手法を用いていた。
（１）ネットリスト（論理論理回路をゲート間の接続情報で表現したモデル）に対し、所定周期で変化する外部入力信号の信号変化を示すパタンによって装置動作を想定したテストパタンを生成し、それを用いてシミュレーションを行い、各ゲートの動作率を算出する手法。
（２）シミュレーションにより求めるのでなく、過去の経験から妥当と思われる推測して動作率を割り振る手法。
【０００３】
【発明が解決しようとする課題】
ところが、以上の手法についてそれぞれ以下のような問題があった。
（１）ネットリストを使用して動作率を算定する手法。
【０００４】
この場合、正確な動作率が求められるが、装置動作を想定したテストパタンは、膨大なクロック数を要する。従って、ネットリストレベルでシミュレーションすると、膨大な時間がかかってしまう、という問題があった。
（２）過去の経験から動作率を割り振る手法。
【０００５】
この場合、時間はかからないが、動作率の正確性に問題があった。
【０００６】
本発明は、ＣＭＯＳ−ＬＳＩ等の論理論理回路における消費電力を各ゲートの動作率から算定するにあたって、以上の問題点を解決する動作率算出システムである。
【０００７】
【課題を解決するための手段】
本発明の第１の動作率算出システムは、論理回路の動作率の算出において、テストパタンと前記論理回路のＲＴＬモデルとを入力し前記論理回路の有するレジスタについてレジスタ０確率データとレジスタ動作率データとの算出を行うレジスタデータ算出手段を含みＲＴＬシミュレーションを行うＲＴＬシミュレーション手段と、前記レジスタ０確率データと前記レジスタ動作率データとに準拠するテストパタン数列を生成するゲート動作率算出用パタン作成手段と、前記論理回路のネットリストからレジスタ部分を取り除いた編集済ネットリストを生成するネットリスト編集手段と、前記数列と前記編集済ネットリストを入力してゲート動作率データの算出を行うゲート動作率算出手段を含みネットリストシミュレーションを行うネットリストシミュレーション手段と、を備える。
【０００８】
本発明の第２の動作率算出システムは、第１の発明において、前記レジスタデータ算出手段による前記レジスタ動作率データと、前記ゲート動作率算出手段によるゲート動作率データとを併合することにより前記論理回路の動作率とすることを備える。
【０００９】
本発明の第３の動作率算出システムは、第１の発明において、前記ＲＴＬシミュレーション手段は、さらに、レジスタの０と１の組み合わせからなるテスト結果からテストパタン長に占める０の割合をレジスタ０確率データとして算出し、テスト結果の隣接する２つの数値において０から１へ遷移する数と１から０へ遷移する数とを合計しそれがテストパタン長に占める割合をレジスタ動作率データとして算出することを備える。
【００１０】
本発明の第４の動作率算出システムは、第１の発明において、前記レジスタ０確率データと前記レジスタ動作率データとに準拠する０と１との乱数を発生させ０と１とより構成されるテストパタン数列を生成するゲート動作率算出用パタン作成手段を備える。
【００１１】
本発明の第５の動作率算出システムは、第１の発明において、前記論理回路に対応するネットリストからレジスタに関する部分を取り除いた編集済ネットリストを生成するネットリスト編集手段を備える。
【００１２】
本発明の第６の動作率算出システムは、第１の発明において、前記編集済ネットリストを入力しネットリストシミュレーションによってレジスタ以外のゲート動作率データを算出するネットリストシミュレーション手段を備える。
【００１３】
【発明の実施の形態】
次に、本発明の第１の実施例について図面を参照して詳細に説明する。
【００１４】
図１を参照すると、図１は、本発明の特徴となる手段であるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）シミュレーション手段３と、論理回路からレジスタ部分を取り除いたゲートの動作率の算定を行う為のテストパタンを生成するゲート動作率算出用パタン作成手段７と、ネットリストからレジスタ部分を取り除いたネットリストを生成するネットリスト編集手段９と、ネットリストシミュレーション手段１２と、を含む。
【００１５】
ＲＴＬシミュレーション手段３は、通常のＲＴＬシミュレーション機能の他に、テストデータとして投入するテストパタン１に従って生ずる各レジスタの０、１のビットの遷移状態を０確率データ、動作率データとして編集出力するレジスタデータ算出手段３０を有する。
【００１６】
ＲＴＬシミュレーション手段３は、動作率算出に用いるテストパタン１と動作率の算出対象の論理回路についてのＲＴＬモデル２とを入力し、通常のシミュレーションを行う。その際、各レジスタ毎のビットの変化が判るので、レジスタデータ算出手段３０を用い、論理回路中の全てのレジスタについて、レジスタ０確率データ５とレジスタ動作率データ６とを作成する。ここで、レジスタ０確率データ５とは、投入されたテストパタン１に従って０、１の値で遷移するレジスタのテスト結果において、０状態のビット数を投入されるテストパタン１のテストパタン長で割った値を０確率と称し、１状態の数をテストパタン長で割った値を１確率と称する。、２つを一緒にして０／１確率と称する。よって、０確率＋１確率＝１が成り立つ。
【００１７】
又、レジスタ動作率データ６とは、投入されたテストパタン１に対し、レジスタにおける０→１へ遷移した数、１→０へ遷移した数を合計し、それをテストパタン長で割ったものである。
【００１８】
動作率算出用パタン作成手段７は、ＲＴＬシミュレーション手段３によって作成された論理回路中のレジスタの０確率データ５とレジスタ動作率データ６とに準拠し、あるアルゴリズムに従って０又は１からなる乱数の数列を発生させる。ここで得た数列をゲート動作率算出用テストパタン１０とする。そのため、ネットリスト８に基づいた動作率を算定するのに使用するテストパタン数に比べ、テストパタン数が小さいゲートの動作率算出用のテストパタンの作成ができる。経験則として概ね１０００から１００００パタン程度のテストパタンで良好なゲートの動作率を算定できることが判明している。
【００１９】
ネットリスト編集手段９は、論理回路のネットリスト８を入力とし、論理回路中のレジスタ部分を取り除き、ゲートの動作率算出用に特化して編集した編集済ネットリスト１１を作成する。
【００２０】
ネットリストシミュレーション手段１２は、通常のネットリストシミュレーションの他に、ゲート動作率算出手段１２０を有している。
【００２１】
ネットリストシミュレーション手段１２は、ゲート動作率算出用テストパタン１０と編集済ネットリスト１１を入力し通常のシミュレーションを行う。その際、各ゲート毎の変化が判るので、ゲート動作率算出手段１２０を用い、ゲート動作率データ１４を作成する。
【００２２】
ＲＴＬモデル２は、物理的なネットリスト８とは対応していない為、全てのゲートについてのゲート動作率データ１４を算出する事はできない。しなしながら、レジスタについては、ネットリスト８と対応が取れている。従って、その高速性を活かし、レジスタの動作率と０確率（又は１確率）を、ネットリストシミュレーションに比べて非常に高速に算出する事が可能である。
【００２３】
このようにして作成された、論理回路中の各レジスタについてのレジスタ０確率データ５とレジスタ動作率データ６とからゲート動作率算出用テストパタン生成手段７を用い、ゲート動作率算出用テストパタン１０を作成する。このパタンのパタン数は、元のテストパタンのクロック数によらず、ある一定の大きさを確保すれば良い（例えば、１０００テストパタン数とか１００００テストパタン数とか）。
【００２４】
そして、このゲート動作率算出用テストパタン１０とゲートの動作率算出用にレジスタ部分を取り除いて編集されたネットリスト１１を入力し、ゲート動作率算出手段１２０を有するネットリストシミュレーション手段１２により、各ゲートのゲート動作率データ１４を算出する。
【００２５】
この時、従来のテストパタン数に比べて非常にパタン数が小さい為、ネットリストシミュレーションにかかる時間は非常に小さく抑えられる。又、シミュレーションによって求める為、動作率は正確である。このようにして論理回路を構成するレジスタ部分とレジスタを取り除いたゲート部分の動作率をそれぞれ求め、それを合計することで論理回路全体の動作率を求めて消費電力を算定することが可能となる。
【００２６】
次に、本発明の実施例の動作について図１から図１１の図面を参照して詳細に説明する。
【００２７】
論理回路をＲＴＬ記述によってモデル化すると、例えば２ビットのアダー論理回路の場合、図２に示すような表現となる。この同じ内容をネットリストで表現した一例が、図３である。このように、ＲＴＬ表現とネットリスト表現とを比べると、ＲＴＬ表現の方が記述量が小さくて済むため、論理回路の動作のシミュレーションを行う場合、ＲＴＬシミュレーションの方がネットリストによるシミュレーションと比較すると非常に高速である。
【００２８】
又、ＲＴＬモデル２では、論理回路を構成する全てのゲートの記述がなされている訳ではないが、レジスタについては、ネットリスト８の記述と１：１に対応する。そこで、ＲＴＬシミュレーション手段３を用いて、レジスタのシミュレーションによる結果のデータを算出する。レジスタ０確率（又は１確率）データ５とレジスタ動作率データ６を求めるため、テストパタン１と、ＲＴＬモデル２を入力しシミュレーションを行う。
【００２９】
その結果、例えば図４のようにテストパタン番号に対して、レジスタ毎の値の情報が得られる。図４でＣ０，Ｂ０，Ｃ１，Ｂ１はそれぞれ１ビットからなるレジスタを意味している。この情報より、レジスタ算出手段３０は、レジスタ０確率データ５とレジスタ動作率データ６をテストパタン長で割ることによって求める。ここで求めた結果を例えば、図５のように出力する（１確率は、「１マイナス０確率」によって求められる）。
【００３０】
一方、図６の（ａ）に示すような手法でもって、与えられたレジスタの０確率と動作率を元にそれに準拠した０と１とからなる数列を作成する手法が存在する。
又、図６の（ｂ）には、０確率（又は１確率）と動作率の取りうる値の範囲をグラフ上の斜線部分で表している。ゲート動作率算出用パタン作成手段７は、このアルゴリズム（手法）を有している。ゲート動作率算出用パタン作成手段７に対して、生成する数列の大きさを指定することができる。例えば１０００個の数列とか１００００個の数列とかを指定することができる。この値がネットリストシミュレーション手段１２におけるテストパタン長となる。そこで、ゲートの動作率算出パタン生成手段７は、各レジスタに対し、図５に示すような０確率、動作率に準拠する数列を図７のように指定された長さ分作成する。この際、元のテストパタンのような膨大なパタン数は必要ではなく、元のパタン数によらず、ある程度のパタン数があれば良い事が知られている。このようにして、元のパタンに比べてパタン数の小さい、ゲート動作率算出用パタン１０の作成ができる。
【００３１】
次に、図３のネットリスト８からレジスタ部分を削除するネットリスト編集手段９によって、図８に１例として示すような編集済ネットリスト１１を作成する。
【００３２】
図８は、レジスタ部分を取り除いた論理回路の一部であるが、図においてＣ（０）、Ｂ（０）、Ｃ（１）、Ｂ（１）はそれぞれ入力ピンを表し、レジスタを取り除く前は、それぞれ図７のＣ０、ＢＯ、Ｃ１、Ｂ１のレジスタに相当する箇所であって、Ａ（０）、Ａ（１）は出力ピンである。図７のＣ０，Ｂ０．Ｃ１，Ｂ１の各レジスタについて生成された数列をＣ（０）、Ｂ（０）、Ｃ（１）、Ｂ（１）の各入力ピンから投入することになる。投入されたテストパタンに従い、各ゲート（図８でのＥＸＯＲ、ＡＮＤ等）から出力されるシミュレーション結果を保存し、この内容を元に各ゲートの動作率の算定を実施する。
【００３３】
尚、図８の回路で出力ピンにあたるＡ（０）、Ａ（１）もレジスタに相当する箇所であったとすると、図示されてないＡ（０），Ａ（１）の右側に存在するゲートの動作率の算定には、Ａ（０），Ａ（１）に対応するレジスタについての乱数列を投入することになる。
【００３４】
このようにして論理回路全体についてシミュレーションを実行し、論理回路を構成する各部分回路の評価結果から論理回路全体の動作率を算出する為の情報を得ることができる。
【００３５】
ゲートの動作率算出用テストパタン１０と編集済ネットリスト１１を用い、ネットリストシミュレーション手段１２により以上のようにシミュレーションを行う。このとき、元のテストパタンに比べて非常にパタン数が小さい事、レジスタの演算をしなくて良い事により、このシミュレーション時間は、元のテストパタンを用いてネットリストシミュレーションを行う場合に比べて非常に小さな時間で行う事ができる。
【００３６】
ネットリストシミュレーション手段１２によってシミュレーションを行うと、図９に示すように各ゲート毎の値が観測できる。この情報より、各ゲートの動作率を容易に求める事が可能である。これをゲートの動作率算出手段１２０とし、求めたゲートの動作率データ１４を、例えば図１０のように保持する。
【００３７】
最後に、図５に例示するようなレジスタについての動作率と図１０に例示するようなレジスタ以外のゲートの動作率についての値を合計することで、図１１のように、論理回路を構成する全素子の動作率情報を求めることができ、論理回路に必要な消費電力の算定が可能となる。
【００３８】
【発明の効果】
第一の効果は、ネットリストシミュレーション時間を抑えられるので、非常に高速に動作率を求められる点である。
【００３９】
第二の効果は、シミュレーションを行って求める為、正確な動作率が求められる点である。
【００４０】
第三の効果は、以上からＣＭＯＳ−ＬＳＩ等の論理論理回路の電力消費量の高速且つ正確な算出が可能なことである。
【図面の簡単な説明】
【図１】本発明の第１の実施例の構成を示すブロック図である。
【図２】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図３】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図４】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図５】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図６】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図７】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図８】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図９】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図１０】本発明の第１の実施例の詳細な構成を示すブロック図である。
【図１１】本発明の第１の実施例の詳細な構成を示すブロック図である。
【符号の説明】
１    テストパタン
２    ＲＴＬモデル
３    ＲＴＬシミュレーション手段
３０    レジスタデータ算出手段
５    レジスタ０確率データ
６    レジスタ動作率データ
７    ゲート動作率算出用パタン作成手段
８    ネットリスト
９    ネットリスト編集手段
１０    ゲート動作率算出用テストパタン
１１    編集済ネットリスト
１２    ネットリストシミュレーション手段
１２０    ゲート動作率算出手段
１４    ゲート動作率データ
【図１】
0003576928.tif 000002
【図２】
0003576928.tif 000003
【図３】
0003576928.tif 000004
【図４】
0003576928.tif 000005
【図５】
0003576928.tif 000006
【図６】
0003576928.tif 000007
【図７】
0003576928.tif 000008
【図８】
0003576928.tif 000009
【図９】
0003576928.tif 000010
【図１０】
0003576928.tif 000011
【図１１】
0003576928.tif 000012