(57)【特許請求の範囲】
【請求項１】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する手段と、
前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。
【請求項２】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、
前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する手段と、
この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。
【請求項３】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。
【請求項４】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、
選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、
前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、
この選択結果を出力する手段とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定装置。
【請求項５】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、更に各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの関数であることを特徴とする請求項１から４のいずれか１項に記載の集積回路構成判定装置。
【請求項６】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるもののべき乗の関数であることを特徴とする請求項１から４のいずれか１項に記載の集積回路構成判定装置。
【請求項７】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの２乗の関数であることを特徴とする請求項１から４のいずれか１項に記載の集積回路構成判定装置。
【請求項８】
少なくとも１個の回路ブロックが複数の動作モードを有する場合において、該回路ブロックの性質を規定するデータ、および該回路ブロックのパラメータが、各動作モードごと独立に割当てられることを特徴とする請求項１から７のいずれか１項に記載の集積回路構成判定装置。
【請求項９】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算するステップと、
前記中央処理装置が前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。
【請求項１０】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算するステップと、
前記中央処理装置が、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。
【請求項１１】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、
前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。
【請求項１２】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、
選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、
前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、
前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、
前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、
前記ファイル装置に保存された前記選択結果を出力するステップとを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする集積回路構成判定方法。
【請求項１３】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの関数であることを特徴とする請求項９から１２のいずれか１項に記載の集積回路構成判定方法。
【請求項１４】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるもののべき乗の関数であることを特徴とする請求項９から１２のいずれか１項に記載の集積回路構成判定方法。
【請求項１５】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの２乗の関数であることを特徴とする請求項９から１２のいずれか１項に記載の集積回路構成判定方法。
【請求項１６】
少なくとも１個の回路ブロックが複数の動作モードを有する場合において、該回路ブロックの性質を規定するデータ、および該回路ブロックのパラメータが、各動作モードごと独立に割当てられることを特徴とする請求項９から１５のいずれか１項に記載の集積回路構成判定方法。
【請求項１７】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、
前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する処理と、
前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する処理と、
この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。
【請求項１８】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、
選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、
前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する処理と、
この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。
【請求項１９】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、
前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、
この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。
【請求項２０】
一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれかひとつ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、
前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、
前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、
この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、
この選択結果を出力する処理とを含み、
前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とするプログラム。
【請求項２１】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの関数であることを特徴とする請求項１７から２０のいずれか１項に記載のプログラム。
【請求項２２】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるもののべき乗の関数であることを特徴とする請求項１７から２０のいずれか１項に記載のプログラム。
【請求項２３】
前記性能評価関数が、各回路ブロックの動作電力と待機電力の総和に加えて、各回路ブロックへの要求速度に応じて重み付けられた、各回路ブロックの遅延時間のうち最大となるものの２乗の関数であることを特徴とする請求項１７から２０のいずれか１項に記載のプログラム。
【請求項２４】
少なくとも１個の回路ブロックが複数の動作モードを有する場合において、該回路ブロックの性質を規定するデータ、および該回路ブロックのパラメータが、各動作モードごと独立に割当てられることを特徴とする請求項１７から２３のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は集積回路構成判定装置及びその方法並びにプログラムに関し、特に集積回路に適用するトランジスタの設計パラメータ並びにその電源電圧を集積回路のスピードと消費電力の観点から最適化することができる集積回路構成の予測のためのシステムに関するものである。
【０００２】
なお、本明細書において「集積回路構成」とは、単に回路の構成そのものだけではなく、集積回路内でしきい値などのトランジスタ設計パラメータ値や電源電圧値、動作周波数がどのように選択されているか、複数ブロックが存在する場合は各々にどのような値が割り当てられているか、を含めた集積回路のあり様を表す概念であるとする。
【０００３】
【従来の技術】
ＣＭＯＳトランジスタからなる集積回路の設計においては、通常トランジスタの設計と回路の設計は分離して行われてきた。すなわち、トランジスタの設計者はある時点で実現できる製造技術に基づき、最適と思われるトランジスタのゲート長、ゲート酸化膜厚、しきい値などの設計パラメータを選択し、トランジスタの設計を行う。このとき、同時にトランジスタに適用する電源電圧も指定される。回路設計者は与えられたトランジスタを用いて所望の回路部品を設計し、さらにこれら部品を組み合わせて集積回路システムを構築する。
【０００４】
回路設計者がより高性能な集積回路を実現できるように、トランジスタ設計者は、設計パラメータが異なる複数種類のトランジスタを用意し、提供する場合がある。一例として、高速だがリーク電流が大きい低しきい値のトランジスタと、低速だが、リーク電流が小さい高しきい値のトランジスタとを提供する。あるいは、使用する電源電圧に関して複数の選択肢を提供する場合がある。回路設計者は与えられたトランジスタあるいは電源電圧から目的に適すると思われるものを適宜選択し、利用することでより高い性能を実現しようとする。
【０００５】
なお、回路設計者は同一集積回路内に上記のような複数種類のトランジスタあるいは電源電圧を同時に使用することができる。同一集積回路内には機能が異なる複数のブロックが存在する場合があり、それぞれのブロックに適するトランジスタあるいは電源電圧が異なる場合があるためである。この場合はブロックごとにトランジスタと電源電圧を選択することができる。
【０００６】
複数種類のトランジスタあるいは電源電圧の選択肢が与えられた場合、どのトランジスタあるいは電源電圧を選択するかは、回路設計者が作成しようとする集積回路の構成、特性などを勘案し、経験に基づいて行っていた。このため、回路設計者の経験が浅い場合には最適な選択を誤る可能性があり、結果として、完成した集積回路の性能、コストなどが理想的な場合に比べて劣化するという問題があった。また、集積回路の複雑化によって最適な選択の判定作業にかかる時間が増大するという問題があった。
【０００７】
従来、トランジスタの設計パラメータはトランジスタ設計者が決定している。しかし最適なトランジスタの設計パラメータは利用する回路の構成によって異なる。このため回路設計者が、逆にトランジスタ設計者に対して、集積回路の構成に応じた最適なトランジスタの設計パラメータを指定することができれば、集積回路の性能を向上できる可能性がある。しかし、集積回路の構成に基づいて最適なトランジスタの設計パラメータを決定する一般的な方法については知られていなかった。
【０００８】
【発明が解決しようとする課題】
第１の問題点は、従来の設計手法において集積回路に用いるトランジスタの特性および電源電圧の選択が最適になされない可能性が高いことである。その理由は、この種の大枠設計を実施者の経験に頼っていることである。
【０００９】
第２の問題点は、従来の設計手法において集積回路に用いるトランジスタの特性および電源電圧の選択に要する設計時間が長いということである。その理由は、集積回路が複数種類のトランジスタや複数種類の電源電圧を使う等により複雑化していること、この種の大枠設計を実施者の経験と手作業に頼っていることである。
【００１０】
第３の問題点は、従来トランジスタの設計はトランジスタ設計者が一方的に行うため、トランジスタの設計パラメータが特定の回路構成に対して必ずしも最適に設定されないということである。
【００１１】
本発明の第１の目的は、集積回路に用いるのに最適なトランジスタあるいは電源電圧を、回路設計者の経験に頼ることなく、かつ短時間に予測する手段を提供することである。特に同一集積回路内において複数種類のトランジスタあるいは複数の電源電圧値を用いる場合においては、各回路ブロックに最適なトランジスタあるいは電源電圧の割り当てを、回路設計者の経験に頼ることなく、かつ短時間に予測する手段を提供することである。
【００１２】
本発明の第２の目的は、集積回路の構成に応じた最適なトランジスタの設計パラメータ値あるいは電源電圧値を算出し、この情報をトランジスタ設計者に対し提供することができるようにすることである。
【００１３】
【課題を解決するための手段】
本発明による集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する手段と、前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００１４】
本発明による他の集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する手段と、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００１５】
本発明による更に他の集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００１６】
本発明による別の集積回路構成判定装置は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定装置であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する手段と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する手段と、前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する手段と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する手段と、この選択結果を出力する手段とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００１９】
本発明による集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算するステップと、前記中央処理装置が前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との総和の関数であることを特徴とする。
【００２０】
本発明による他の集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算するステップと、前記中央処理装置が、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との総和の関数であることを特徴とする。
【００２１】
本発明による更に他の集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００２２】
本発明による別の集積回路構成判定方法は、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法であって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力装置から入力してファイル装置に保存するステップと、選択対象パラメータ・ベクトルの各要素の選択肢を入力装置から入力してファイル装置に保存するステップと、前記パラメータと、前記データと、前記集積回路の評価関数と、をメモリにロードするステップと、前記メモリを参照して、中央処理装置が前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整するステップと、前記中央処理装置が、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択して該選択結果を前記ファイル装置に保存するステップと、前記ファイル装置に保存された前記選択結果を出力するステップとを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００２３】
本発明によるプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、前記データに基づき複数のパラメータ・ベクトル値に対して前記集積回路の性能評価関数を計算する処理と、前記性能評価関数を最大または最小とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００２４】
本発明による他のプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、前記データに基づき前記選択対象パラメータ・ベクトルの可能な割り当て方に対して前記集積回路の性能評価関数を計算する処理と、この計算結果のうち前記性能評価関数を最小または最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００２５】
本発明による更に他のプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれか一つ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、前記データに基づき調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、前記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００２６】
本発明による別の他のプログラムは、一以上の回路ブロックから成る集積回路の設計において、選択されるべきパラメータである電源電圧、しきい値電圧、ゲート絶縁膜厚のいずれかひとつ以上の、各ブロックごとの最適な選択を判定するための集積回路構成判定方法をコンピュータに実行させるためのプログラムであって、前記集積回路を構成する各回路ブロックの性質を決定するためのデータとして、各ブロックにおける前記パラメータを要素とする特定パラメータ・ベクトル値における動作電力値と、待機電力値と、各回路ブロックへの要求速度比とを入力する処理と、選択対象パラメータ・ベクトルの各要素の選択肢を入力する処理と、前記データに基づき前記選択対象パラメータ・ベクトルと調整対象パラメータ・ベクトルの可能な割り当て方に対して、各割り当て方ごとに前記集積回路の性能評価関数を最小化または最大化するよう前記調整対象パラメータ・ベクトルの各要素を調整する処理と、この調整結果のうち前記性能評価関数を最小化した結果を最小、または最大化した結果を最大とするパラメータ・ベクトル値を選択する処理と、この選択結果を出力する処理とを含み、記性能評価関数が各回路ブロックの動作電力と待機電力の総和と、各回路ブロックへの要求速度比に応じて重み付けられた各回路ブロックの遅延時間との関数であることを特徴とする。
【００２７】
【発明の実施の形態】
以下に本発明の実施の形態につき詳述する。本発明を用いて設計しようとする集積回路は、Ｎ個の回路ブロック（部品）を組み合わせて構成されているものとする。ただしＮは１以上の整数である。先ず、図５を参照すると、図５は集積回路の概念図を示す図である（この図では、Ｎ＝４である）。各ブロックを番号ｉ（＝１，２，…，Ｎ）で識別する。一般に、ある回路ブロックはそれぞれに異なる性質を持っている。本発明はこの性質の組み合わせ方に応じた最適な設計を導き出すものである。最適化において、回路ブロックの性質を記述するデータとしてその動作電力と待機電力が重要である。
【００２８】
トランジスタの設計パラメータ（しきい値、ゲート絶縁膜の厚さ等）、電源電圧、動作周波数など、集積回路の性能を決定付ける種々の値を単に「パラメータ」と呼ぶことにする。これらパラメータは図５において各ブロックすべてにおいて共通の値であってもよいし、各ブロックすべてにおいて異なっても良い。このように、可能な集積回路の構成には自由度がある。本発明において最適な設計とは、これらパラメータの割り当て、値の設定を最適にすることである。
【００２９】
図１は本発明による最適集積回路構成判定装置の構成であり、通常は中央処理装置１、入力装置２、出力装置３、メモリ４、ファイル装置５を含んでいる。本発明を実施するためのプログラム４１は、ファイル装置５からメモリ４にロードされ、その記述に従って中央処理装置１が一連の処理を実行する。本発明を実施するためのプログラムは、必要に応じて回路ブロックの性質を記述する回路ブロック・データ４２をメモリ４上にロードして使用する。
【００３０】
各回路ブロックの性質は以下のようなデータによって記述することができる。
【００３１】
（１）ある動作条件における回路ブロックｉの動作電力：
Ｐi （Ｘi ，Ｙi ，Ｚi ）＝Ｐi （Ｇ）
（２）上記動作電力評価時の選択対象パラメータ・ベクトル：  Ｘi
（３）上記動作電力評価時の調整対象パラメータ・ベクトル：  Ｙi
（４）上記動作電力評価時の決定済みパラメータ・ベクトル：  Ｚi
（５）ある動作条件における回路ブロックｉの待機電力：
Ｑi （Ｘi ’，Ｙi ’，Ｚi ’）＝Ｑi （Ｇ’）
（６）上記待機電力評価時の選択対象パラメータ・ベクトル：  Ｘi ’
（７）上記待機電力評価時の調整対象パラメータ・ベクトル：  Ｙi ’
（８）上記待機電力評価時の決定済みパラメータ・ベクトル：  Ｚi ’
【００３２】
ここで、Ｘi 、Ｘi ’、Ｙi 、Ｙi ’、Ｚi 、Ｚi ’は０個以上のパラメータを要素とするベクトルある。選択対象パラメータとは、複数（ｎ個とする）の選択肢が与えられており、選択できる最大数（１以上の整数、ｎを最大値とする）が決められたパラメータである。調整対象パラメータとは、使用する値をある連続的範囲内で任意に選択でき、使用できる値の数の最大数（ｍとする）が決められたパラメータである。決定済みパラメータとは、使用する値があらかじめ決定されているパラメータである。これら選択対象、調整対象、決定済みの各パラメータ・ベクトルを束ねたものを簡単化のためＧ＝（Ｘ，Ｙ，Ｚ）と表わし、これを単にパラメータ・ベクトルと呼ぶことにする。選択対象、調整対象、決定済みの各パラメータ・ベクトルＸ、Ｙ、ＺはＧの部分パラメータ・ベクトルとなる。
【００３３】
上記データＰi とＱi の入力は、例えば次のように行うことができる。まず、あるＧにおいて、回路ブロックｉを通常動作させたときの消費電力を評価すると、これはＰi （Ｇ）＋Ｑi （Ｇ）に相当する。次に、回路ブロックｉのクロックを停止したときの消費電力を評価すると、これはＱi （Ｇ’）に相当する。ただし、ここでＧ’とは動作周波数Ｆ（通常は決定済みパラメータ・ベクトルの一要素である）がゼロである点を除きＧと等しい。Ｑi はＦに依存しないから、Ｑi （Ｇ）＝Ｑi （Ｇ’）である。以上より、通常動作時の消費電力と、クロック停止時の消費電力を入力すれば、Ｐi は前者から後者を差し引いたものに、Ｑi は後者と等しいので、回路ブロックの性質データを決定することができる。
【００３４】
ただし、上記はデータ入力方法の一例である。パラメータ・ベクトルＧ、Ｇ’の各要素値は、決定済みパラメータ・ベクトル値も含めて、使用を想定しているパラメータ・ベクトルの各要素値と必ずしも一致する必要はない。また、Ｇは必ずしも異なるｉどうしで等しい必要もない。また、Ｇ’は必ずしも異なるｉどうしで等しい必要もない。なぜなら、あるパラメータ・ベクトルでのＰまたはＱがわかれば、後に述べる遅延・電力モデルを用いて、任意のパラメータ・ベクトルでのＰとＱは推定ができるからである。
【００３５】
本発明を実施するためのプログラムは電力・遅延モデルを含んでいる。これはパラメータ・ベクトルＧが変化したときに、各ブロックｉにおける動作電力Ｐi 、待機電力Ｑi 、遅延時間Ｔi がどのように変化するかを記述する電力・遅延モデル数式ｐ（Ｇ）、ｑ（Ｇ）、ｔ（Ｇ）からなっている。一例として、任意のブロックｉにおいて、パラメータ・ベクトルがＧからＧ’に変化したときの動作電力は、数式ｐ（Ｇ）により、
Ｐi （Ｇ’）＝Ｐi （Ｇ）＊ｐ（Ｇ’）／ｐ（Ｇ）      （式１）
となる。また待機電力は数式ｑ（Ｇ）により、
Ｑi （Ｇ’）＝Ｑi （Ｇ）＊ｑ（Ｇ’）／ｑ（Ｇ）      （式２）
となる。更に、遅延時間は数式ｔ（Ｇ）により、
Ｔi （Ｇ’）＝Ｔi （Ｇ）＊ｔ（Ｇ’）／ｔ（Ｇ）      （式３）
となる。
【００３６】
このように、ある基準点Ｇにおける動作電力、待機電力、遅延時間を元に、他のパラメータ・ベクトル値Ｇ’における動作電力、待機電力、遅延時間を計算することができるようになっている。
【００３７】
本発明を実施するためのプログラムは、集積回路の性能を数値として表す評価関数Ｅを含んでいる。Ｅはある判断基準に基づいた集積回路の性能が高ければ高いほど小さくなる（あるいは大きくなる）ように定義されている。以後、Ｅが小さいほど良いと仮定して説明を行うが、Ｅが大きいほど良いという定義を用いても良い。ＥはＰi 、Ｑi 、Ｔi （ｉ＝１，２，…，Ｎ）の関数である。Ｅに適する関数としては、
0004085622.tif 000002
がある。
【００３８】
ここで、ｍａｘ（  ）は引数のうち最大のものを選択する関数である。Ｅ（Ｘ）は消費電力が小さく、遅延時間が小さいほど値が小さくなる。Ｋi （ｉ＝１，…，Ｎ）は各ブロックｉに要求される速度の比率を設定する数値であり、これが大きい回路ブロックほど遅くて構わない。Ｒは定数であり、例えば２とする。
【００３９】
複数の回路ブロックを混載した集積回路において、各回路ブロックごとに要求される速度が異なっている場合がある。評価関数Ｅはこのような場合についても取り扱えるように定義されていることが重要である。そのためには式４に示すように、要求速度の比率を表す数値Ｋi を用いてＴi に重みをつければよい。Ｋi は各ブロックの動作周波数Ｆi を用いて決定しても良い。なぜなら、動作周波数が大きい回路ブロックほど高速性が要求されると判断するのが合理的だからである。それには、
Ｋi ＝Ｆ1 ／Ｆi （ｉ＝１，…，Ｎ）          （式５）
とすれば良い。あるいはＫi を決定済みパラメータ・ベクトルの一要素として与えても良い。
【００４０】
以上のデータ、モデル式およびＥの定義を用いると、任意のパラメータ・ベクトルＧ＝（Ｘ，Ｙ，Ｚ）に対するＥを計算することが可能である。すなわち任意のパラメータ・ベクトルに対して集積回路の性能を数値として表すことができる。
【００４１】
第１の実施の形態として、あるパラメータについて有限個の選択肢が与えられ、その中から最適なパラメータ値を決定する場合を説明する。図２はこの場合のフローチャートである。本実施の形態は、Ｘの要素数が１以上であり、Ｙの要素数がゼロである場合に相当する。
【００４２】
最適化しようとする集積回路を構成する各回路ブロックの性質を記述するデータが入力装置から入力される（ステップＳ１）。また、選択対象パラメータ・ベクトルＸとして、選択可能な選択肢Ｘt1，…，Ｘtn（選択肢数＝ｎ）、および前記選択肢から選択できる最大数ｎmax が入力装置から入力される（ステップＳ２）。また、使用時の決定済みパラメータ・ベクトルＺt が入力装置から入力される（ステップＳ３）。ここで、入力装置としてキーボードなどの他、他のプログラムによって生成された入力データが記録されたファイル装置であっても良い。
【００４３】
次に、上記制約のもとで評価関数Ｅを最小化する、各回路ブロックへのＸの割り当てを決定する。具体的には以下のように行う。
【００４４】
（１）Ｎ個の回路ブロックに対する可能なすべてのＸの割り当て方についてＥを計算する（ステップＳ４）。可能な割り当て方の例を挙げれば、ブロック数Ｎ＝２、選択肢数ｎ＝３、最大選択数ｎmax ＝２の場合、ブロック１にＸtiがブロック２にＸtjが割当てられることを［ｉ，ｊ］と表記すると、
［１，１］、［２，２］、［３，３］、［１，２］、［２，１］、［１，３］、［３，１］、［２，３］、［３，２］
の９通りの割当て方がある。
【００４５】
（２）（１）の結果、Ｎ個の回路ブロックに対する可能なＸの割り当て方すべての中でＥを最小とするものを選択する（ステップＳ５）。
【００４６】
次に、上記で選択した、Ｅを最小とするＸの各ブロックへの割り当て方と割り当て値をＣＲＴ（表示装置）、プリンタなどの出力装置に出力する（ステップＳ６）。ここで出力装置としてファイル装置を選択し、結果を他のプログラムが利用できるようファイルの形で出力しても良い。
【００４７】
第２の実施の形態として、あるパラメータについて任意に選択できる場合に、最適なパラメータ値を決定する場合を説明する。図３はこの場合のフローチャートである。本実施の形態は、Ｙの要素数が１以上であり、Ｘの要素数がゼロである場合に相当する。
【００４８】
最適化しようとする集積回路を構成する各回路ブロックの性質を記述するデータが入力装置から入力される（ステップＳ１１）。また、調整対象パラメータ・ベクトルＹから選択できる最大数ｎが入力装置から入力される（ステップＳ１２）。また、使用時の決定済みパラメータ・ベクトルＺt が入力装置から入力される（ステップＳ１３）。ここで、入力装置としては、キーボードなどの他、他のプログラムによって生成された入力データが記録された、ファイル装置であっても良い。
【００４９】
次に、上記制約のもとで評価関数Ｅを最小化する各回路ブロックのＹの割り当てを決定する。具体的には以下のように行う。
【００５０】
（１）Ｎ個の回路ブロックに対する可能なすべてのＹの割り当て方について（２）を行う。ただし、この割当てのときＹti（ｉ＝１，…，ｍ）の具体的値は未定であり、ｍ種類の値をどのブロックに割り当てるかという組み合わせのみを定める。可能な割り当て方の例を挙げれば、ブロック数Ｎ＝３、最大選択数ｍ＝２の場合、ブロック１にＹtiが、ブロック２にＹtjが、ブロック３にＹtkが割当てられることを［ｉ，ｊ，ｋ］と表記すると、
［１，１，１］、[1，１，２］、［１，２，１］、［２，１，１］、［１，２，２］、［２，１，２］、［２，２，１］、［２，２，２］
の８通りの割当て方がある。
【００５１】
しかしＹtiの具体的値は未定なので、例えば［１，１，２］と［２，２，１］は、どちらもブロック１と２は同じＹを、ブロック３だけ異なるＹを割当てるという点で等価である。よって、この例では、実質的に異なる４通りの割当て方がある。上記した「すべてのＹの割当て方」とは「実質的に異なるすべて」を含めば良い。
【００５２】
（２）（１）で未定であったＹの値Ｙt1，…，Ｙtmを、それぞれのＹの割当て方ごとに、Ｅを最小化するように決定する。これにはシミュレーテッド・アニーリングなど公知の最大／最小値探索アルゴリズムを利用すれば良い。さらにこれによって最小化されたＥの値を決定する（ステップＳ１４）。
【００５３】
（３）（１）の結果、Ｎ個の回路ブロックに対する可能なｍ個のＹの割り当て方すべての中でＥを最小とするものを選択する（ステップＳ１５）。
【００５４】
次に、上記で選択した、Ｅを最小とするＹの各ブロックへの割り当て方と割り当て値をＣＲＴ、プリンタなどの出力装置に出力する（ステップＳ１６）。ここで出力装置としてファイル装置を選択し、結果を他のプログラムが利用できるようファイルの形で出力しても良い。
【００５５】
第３の実施の形態として、あるパラメータについては有限個の選択肢が与えられ、他のあるパラメータについては任意に選択できる場合に、最適なパラメータ値を決定する場合を説明する。図４はこの場合のフローチャートである。本実施の形態はＸとＹの要素数がともに１以上である場合に相当する。
【００５６】
最適化しようとする集積回路を構成する各回路ブロックの性質を記述するデータが入力装置から入力される（ステップＳ２１）。また、選択対象パラメータ・ベクトルＸとして選択可能な選択肢Ｘt1，…，Ｘtn（選択肢数＝ｎ）、および前記選択肢から選択できる最大数ｎmax が入力装置から入力される（ステップＳ２２）。また、調整対象パラメータ・ベクトルＹから選択できる最大数ｍが入力装置から入力される（ステップＳ２３）。また、使用時の決定済みパラメータ・ベクトルＺt が入力装置から入力される（ステップＳ２４）。ここで、入力装置としては、キーボードなどの他、他のプログラムによって生成された入力データが記録された、ファイル装置であっても良い。
【００５７】
次に、上記制約のもとで評価関数Ｅを最小化する各回路ブロックのＸとＹの割り当てを決定する。具体的には以下のように行う。
【００５８】
（１）Ｎ個の回路ブロックに対する可能なすべてのＸとＹの割り当て方について（２）を行う。ただし、このときＹti（ｉ＝１，…，ｍ）の具体的値は未定であり、その割り当て方のみを定めている。ＸtiとＺt はあらかじめ決まっている。可能な割り当て方の例を挙げれば、ブロック数Ｎ＝２、Ｘの選択肢数ｎ＝２、Ｘの最大選択数ｎmax ＝２、Ｙの最大選択数ｍ＝２の場合、ブロック１にＸtiとＹtjが、ブロック２にＸtkとＹtlが割当てられることを［ｉ，ｋ，ｊ，ｌ］と表記すると、
［１，１，１，１］、［１，２，１，１］、［２，１，１，１］、
［２，２，１，１］、［１，１，１，２］、［１，２，１，２］、
［２，１，１，２］、［２，２，１，２］、［１，１，２，１］、
［１，２，２，１］、［２，１，２，１］、［２，２，２，１］、
［１，１，２，２］、［１，２，２，２］、［２，１，２，２］、
［２，２，２，２］
の１６通りの割当て方がある。
【００５９】
しかし、Ｙtiの具体的値は未定なので、例えば［１，１，１，２］と［１，１，２，１］は、どちらもブロック１とブロック２とで異なるＹを割当てるという点で等価である。よって、この例では実質的に異なる８通りの割当て方がある。上記した「すべてのＸとＹの割当て方」とは「実質的に異なるすべて」を含めば良い（ステップＳ２５）。
【００６０】
（２）（１）で未定であったＹの値Ｙt1，…，Ｙtmを、それぞれのＸとＹの割当て方ごとに、Ｅを最小化するように決定する。これにはシミュレーテッド・アニーリングなど公知の最大／最小値探索アルゴリズムを利用すれば良い。さらに最小化されたＥの値を決定する。
【００６１】
（３）（１）の結果、Ｎ個の回路ブロックに対する可能なＸとＹの割り当て方すべての中でＥを最小とするものを選択する（ステップＳ２６）。ただし、Ｙは（２）により、各割り当て方ごとにＥを最小とするよう選択されている。
【００６２】
次に、上記で選択した、Ｅを最小とするＸとＹの各ブロックへの割り当て方と割り当て値をＣＲＴ、プリンタなどの出力装置に出力する（ステップＳ２７）。ここで出力装置としてファイル装置を選択し、結果を他のプログラムが利用できるようファイルの形で出力しても良い。
【００６３】
以上第１から第３の実施の形態において、各種データを入力する順番は任意に変更して良い。また結果の出力において、Ｅを最小とするもの以外に、最小から２番目の場合、３番目の場合など、他の場合を大きさの順に並べて出力しても良い。こうすると、プログラムの使用者は、例えば１番目から３番目の構成を候補として任意の場合を選択するといった判断が可能となる。例えば、第１番目の構成はＥを最小とし、第２番目の構成はＥが若干第１番目の構成に劣るが、製造コストが第１番目の構成に比べて大幅に小さいと仮定する。
【００６４】
一般に使用するパラメータが少ないほど製造コストは小さい。この場合、製造コストを重視してプログラム使用者は第２番目の構成を選択することができる。Ｅの順番に複数の構成を出力すれば、プログラム使用者にこのような判断の自由度を与えることができる。
【００６５】
Ｅを最小化するＸtiまたはＹの割り当て方を決定したとき、結果として使うＸtiまたはＹtiの値の種類が利用可能な数ｎmax またはｍを下回る場合がある。これはＸまたはＹの種類を少なくしたほうが性能的に有利であることを意味する。また、Ｅを最小化するＹtiを決定したとき、結果としてｉが異なるＹtiどうしの値が等しくなる場合がある。これは、Ｙtiの値を敢えて変えないほうが性能的に有利であることを意味する。
【００６６】
次に、上記した方法により集積回路の性能を最大化するパラメータ・ベクトルを決定できる理由をさらに説明する。以下に数式を導くにあたってはＣＭＯＳトランジスタにより構成される集積回路を想定している。しかし、ＣＭＯＳ以外の集積回路であっても、適宜それにあわせて数式を変更すれば本発明は適用可能である。
【００６７】
一般に、ある集積回路または回路ブロックに着目すると、その性能は遅延時間と消費電力の２つによって規定される。さらに、消費電力は動作電力と待機電力とに分けられる。遅延時間Ｔ、動作電力Ｐ、待機電力Ｑのいずれも小さければ小さいほど良い。しかし、これらの間にはどれかを減らそうとすると他が増加するという相互関係（トレードオフ）があるため、集積回路の性能を高めるためにはこれら三者のバランスを最適に調整することが必要となる。このような最適化は複雑であるため、直感に頼って実施することが困難である。
【００６８】
遅延時間Ｔは負荷容量に溜まった電荷を充電または放電するのに要する時間で決まり、概略、
Ｔ∝ＣＶdd／Ｉon                      （式６）
で与えられる。
【００６９】
動作電力Ｐは負荷容量を充放電するために消費される電力であって、動作周波数に比例する性質がある。これは概略、
Ｐ＝ａＷＦＣＶdd2                        （式７）
で与えられる。また、待機電力Ｑはもれ電流によって消費される電力であって、動作周波数に関係なく消費される電力である。これは概略、
Ｑ＝ＷＩoff Ｖdd                      （式８）
で与えられる。ここで、Ｖddは電源電圧、Ｆは動作周波数、Ｗはトランジスタの総チャネル幅、Ｃはトランジスタの単位チャネル幅あたりの平均負荷容量、ａは動作率である。
【００７０】
Ｉonはチャネル幅あたりの駆動電流である。これはトランジスタがオン状態での最大駆動電流であり、トランジスタのソース電極とゲート電極との間に電源電圧に等しい電圧が印加された状態で流せる電流値である。これは概略、
Ｉon∝（Ｖdd−Ｖth）A  ／（Ｔox＋Ｄox）    （式９）
で与えられる。ここで、Ｖddは電源電圧、Ｖthはしきい値電圧、Ｔoxはゲート酸化膜厚である。Ｄoxはプロセス技術によって決まる定数であり、概略１０ｎｍである。Ａは１〜２の定数である。
【００７１】
Ｉoff は単位チャネル幅あたりの待機電流である。これはトランジスタがスイッチングしなくても常時流れ続ける漏れ電流であり、
Ｉoff ＝ｋ1 ＊１０(-Vth/S)＋ｋ2 ＊１０(-Tox/Sox)    （式１０）
で与えられる。ここでｋ1 、ｋ2 、Ｓ、Ｓoxはトランジスタの設計や使用するプロセス技術によって決まる定数である。
【００７２】
Ｗは回路規模に比例する。Ｃは平均的なファンアウトの数と平均的な配線長により決まる。ａはクロック周期内にあるトランジスタがスイッチする平均数である。以上は回路構成の詳細によって決定され、通常は任意に変更することができない。これら以外でＴ、Ｐ、Ｑに大きく影響するパラメータはＦ、Ｖdd、Ｖth、Ｔoxである。よって、これらは本発明による最適化において重要なパラメータ・ベクトルの要素である。
【００７３】
ゲート酸化膜が十分厚ければ、ＭＯＳトランジスタのゲート電極からのもれ電流は無視することができた。しかし、ゲート長０．１８μｍ以下のＭＯＳトランジスタにおいては、ゲート酸化膜が３ｎｍ以下にまで薄くされるため、ゲート酸化膜を通じたもれ電流が問題になる。この点を考慮して式９、式１０においては、Ｔoxへの依存性をも考慮している。
【００７４】
式１〜式３におけるｐ（Ｇ）、ｑ（Ｇ）、ｔ（Ｇ）は、式６〜式１０のごとき物理モデル式が与えられれば容易に決定され得ることは明らかである。式６〜式１０としては、説明の都合上簡単な式を用いている。これらは実際良い近似式ではあるが、さらに高精度にＴ、Ｐ、Ｑを記述するために、より複雑なパラメータ依存性を想定しても良い。一例を挙げれば、Ｃはトランジスタ自体の容量も含むのでＴoxにも若干依存する。そこで、ＣをＴoxの関数として与えても良い。より一般的には、式６〜式１０のモデル式を、より複雑だが高精度な式に置き換えてもよい。この目的に適う式としては、公知の回路シミュレーション用トランジスタ・モデル式を用いることができる。
【００７５】
式６〜式１０においては説明の簡単化のため、ＣＭＯＳがｎＭＯＳトランジスタとｐＭＯＳトランジスタからなることを無視している。これらの簡単化は本発明の本質に関わるものではないため、上記においては簡単化した式６〜式１０を示した。
【００７６】
Ｗ、Ｉon、Ｉoff はｎＭＯＳとｐＭＯＳとで異なる値をとるのが通常である。よって式６〜式１２（以下に示す式）におけるＷ、Ｉon、Ｉdff はｎＭＯＳとｐＭＯＳにおける値を実効的に平均したものとして定義すれば良い。Ｗについては、たとえばｎＭＯＳにおける総チャネル幅ＷｎとｐＭＯＳにおける総チャネル幅Ｗｐの平均として、
Ｗ＝（Ｗn ＋Ｗp ）／２                  （式１１）
と定義すれば良い。
【００７７】
式６、式９におけるＩonはｎＭＯＳにおける駆動電流Ｉon，ｎＭＯＳとｐＭＯＳにおける駆動電流Ｉon,pの実効的な平均として定義できる。すなわち、
１／（ＩonＷ）＝｛１／（Ｉon,nＷn ）＋
１／（Ｉon,pＷp ）｝／２      （式１２）
と定義すれば良い。ここで、逆数の平均をとる理由は、式６において遅延時間がＩonの逆数に比例し、総遅延時間はｎＭＯＳによる遅延とｐＭＯＳによる遅延の平均とみなせるからである。
【００７８】
式８、式１０、式１２におけるＩoff はｎＭＯＳにおける待機電流Ｉoff ，ｎとｐＭＯＳにおける待機電流Ｉoff,p の実効的な平均として定義できる。すなわち、
Ｉoff Ｗ＝（Ｉoff,n Ｗn ＋Ｉoff,p Ｗp ）／２（式１３）
と定義すれば良い。
【００７９】
上記で述べたトレードオフを式６〜式１０を参照して説明すると、Ｔを減らすにはＶddを上げるか、Ｖthを下げれば良い。しかし、Ｖddを上げるとＰが増し、Ｖthを下げるとＱが増す。Ｐを減らすにはＶddを下げれば良い。しかし、そうするとＴが増え、これを防ごうとＶthを下げればＱが増える。Ｑを減らすにはＶthを上げればよい。しかし、そうするとＴが増え、これを防ごうとＶddを増やせばＰが増える。このように、ＴとＰとＱとの間にはトレードオフの関係がある。
【００８０】
従来、トランジスタの寸法が大きくＶddが高い（例えば、５〜２．５Ｖ）間は、ＶthをＱが十分小さくなるよう（例えば、０．５Ｖに）設定しても、ＶthがＶddに比べて小さいために、十分なＩonを確保できた。この状態からトランジスタ寸法の微細化を行ない、かつＶddを下げると、主としてＣが減る（寸法の縮小による）ことによりＴが減る。Ｐに着目すると、微細化によって集積度が上がるのでＮが増し、さらに速度の向上によりＦも増加するが、ＣとＶddの減少によってＰは増加しない。また、Ｖthが十分高ければＱは無視できる。
【００８１】
以上のように、トランジスタの微細化と電源電圧の低下を同時に行うことで、消費電力を増やさずに速度と集積度を向上させることができた。しかし、トランジスタの微細化が進み、Ｖddが２Ｖを下回ると、式９より、Ｑを十分抑えるほどにＶthを大きくしたのではＩonの劣化が大きくなり、微細化しても性能が向上しにくくなる。この問題を解決するには、Ｖddを下げると同時にＶthも下げる必要があるが、これによりＱが増加し、Ｑが無視できなくなる。また、微細化に伴ってＴoxも小さくしてきたが、これによってゲートのもれ電流が発生し、これもＱを増大させる。
【００８２】
このような状況で、集積回路構成を最適化するには、Ｔ、Ｐ、Ｑの三者の関係を考慮する必要があるため、最適なパラメータを直感的に決定することは難しくなる。
【００８３】
上記の複雑さに加えて、近年では集積度の向上に伴い、同一集積回路内に性格が異なる回路ブロックを混載する必要性が高まっている。この場合性格が異なる回路ブロックには異なるパラメータを用いたほうが集積回路全体の性能が向上する場合がある。このような場合において最適なパラメータを選択することは、決定すべきパラメータの数が増すことから、単一回路ブロックの場合よりも最適パラメータの決定はより一層困難となる。
【００８４】
本発明は、すでに説明した手続きをコンピュータにより自動的に実行することにより、以上のような困難を取り除き、最適な集積回路構成（あるいはパラメータ）を容易に決定することができるよう、まず集積回路全体の性能を単純な１個の値で表現するための評価関数Ｅを利用している。評価関数ＥはＴi 、Ｐi 、Ｑi の関数として与える。ｉは回路ブロックを区別するための添字である。さらに、Ｔi 、Ｐi 、Ｑi がパラメータ・ベクトルを変化させたときにどのように変化するのかを再現する電力・遅延モデルを利用している。さらに、各回路ブロックの性質を規定するデータとして、あるパラメータ・ベクトルにおいて各回路ブロックにおけるＴi 、Ｐi 、Ｑi の値を推定可能とするためのデータを入力としている。
【００８５】
以上によって集積回路全体としての性能が各ブロックにおけるパラメータ・ベクトルの値の関数として直接表現されるようにしている。集積回路の性能をパラメータ・ベクトルの関数として記述することにより、性能を最大化するパラメータ・ベクトルをコンピュータを用いて自動的に選択することが可能となる。
【００８６】
なお、上記入力データとして、必ずしもＴi 、Ｐi 、Ｑi のすべてを確定するのに必要なすべてのデータを揃える必要はない。集積回路の性能は消費電力と遅延により決まる。本発明の目的を達成するためには、異なるパラメータ・ベクトルにおいて、どちらのほうが相対的に性能が高いかを判定できれば良い。よって消費電力と遅延時間がパラメータ・ベクトルの変化によってどのような比率に変化するかが知られれば良く、この条件が満足される範囲で消費電力と遅延時間の絶対値は必ずしもすべて知られる必要はない。
【００８７】
ＰとＱを調整するのに最も重要なパラメータはＶdd、Ｖth、Ｔoxである。そこで、Ｖdd、Ｖth、Ｔoxをパラメータ・ベクトルの要素であるとすると、遅延時間のパラメータ・ベクトルへの依存性は式６と式９によって完全に記述される。すなわち、パラメータ・ベクトルがある値から他の値に変化した時、遅延時間が何倍になるかは式６と式９によって完全に決定される。さらに、Ｖdd、Ｖth、Ｔoxが等しければ回路ブロックが異なっても遅延時間はほぼ同一であることが多い。以上より、Ｔの各ブロックにおける具体的な値Ｔ1 、Ｔ2 、…等については、それを特定するためのデータを必ずしも入力する必要はない。
【００８８】
一方、消費電力は動作電力Ｐと待機電力Ｑの和で与えられる。ＰとＱのＶdd、Ｖth、Ｔoxへの依存の仕方は式７、８、１０からわかるように、互いに異っている。従って、あるパラメータ・ベクトル値におけるＰ＋Ｑの値が知られていても、パラメータ・ベクトルが他の値に変化したときにＰ＋Ｑが何倍になるかは決定されない。Ｐ＋Ｑが何倍になるかを決定するためには、あるパラメータ・ベクトル値においてＰとＱとの大きさの比率が知られている必要がある。パラメータ・ベクトルが変化したときにＰとＱがそれぞれ何倍になるかは式１と式２により決定することができる。これに加えてＰとＱの当初の比率が判明していれば、パラメータ・ベクトルが変化したときにＰ＋Ｑが何倍になるかを決定することができる。
【００８９】
複数の回路ブロックが存在する場合、式４の評価関数を計算するためにはさらにＰ1 、Ｑ1 、Ｐ2 、Ｑ2 、…、ＰN 、ＱN すべての間の比率を推定するためのデータが必要となる。なぜなら、Ｔの場合とは違い、ＰあるいはＱについては、回路ブロック間で、主として回路規模の違いに応じて、大きく値が異なることが通常だからである。このような値の違いが回路ブロックの性質を決定づける主要な要因である。従って、通常はすべてのブロックについて、あるパラメータ・ベクトルでのＰi とＱi の値を入力するのが良い。
【００９０】
上記実施の形態の説明においては、入力データとして消費電力を与えるものとして説明したが、あるパラメータ・ベクトル値ＧにおけるＰi （Ｇ）、Ｑi （Ｇ）の値、あるいは比率を確定できる任意のデータを入力として与えても良い。例えば、式６ないし式８におけるＣ、ａ、Ｗ、Ｆの各回路ブロックにおける値（Ｃi 、ａi 、Ｗi 、Ｆi ）を入力データとしても良い。
【００９１】
使用するしきい値Ｖthが十分高く、リーク電流が問題にならないことが判っている場合には、Ｑi の値をすべてゼロと近似し、かつＱi に関するデータの入力を省略することができる。この場合、Ｖthは決定済みパラメータとするべきである。
【００９２】
複数回路ブロックが存在するとき、全回路の消費電力は各回路ブロックの消費電力の単純な総和となる。よって評価関数Ｅとしては、式４の例に示すように、全消費電力の関数となるよう選択することが望ましい。
【００９３】
複数回路ブロックが存在するとき、全ブロックが全く同じ遅延で動作することが要求される場合には、全回路の遅延時間は最も遅いブロックによって決定されてしまう。あるいはブロックｉにおいて要求される遅延が基準値に比較してＫi 倍である場合においては、Ｔi ／Ｋi が最大であるブロックによって全回路の遅延時間が決定されてしまう。よって評価関数Ｅとしては、式４の例に示すように、Ｔ1 ／Ｋ1 、…、ＴN ／ＫN の最大値の関数となるよう選択することが望ましい。
【００９４】
以上の条件のもと、Ｅを消費電力が増すほど、遅延時間が増すほど増加（あるいは減少）するように定義すれば良い。式４はＥとして適しているが、これに限らず最適化の目的に応じてＥを変更することは差し支えない。例えば、遅延時間と消費電力のうち消費電力をより重視したい場合には、式４においてＭを小さくすれば良い。あるいは、全消費電力がある上限値以下でありさえすれば良い場合においては、全消費電力が上限値以下では評価関数が一定で、全消費電力が上限値を超えると評価関数が急激に増加する関数をＥとして選択すれば良い。あるいは、Ｔi ／Ｋi がある上限値以下でありさえすれば良い場合においては、Ｔi ／Ｋi のうち最大のものが上限値以下である場合は評価関数が一定で、Ｔi ／Ｋi のうち最大のものが上限値を超えると評価関数が急激に増加する関数をＥとして選択すれば良い。
【００９５】
集積回路の使用中に回路ブロックの性質は、実際には時間とともに変化している。例えば、計算の実施中の状態と入力待ちの状態とでは、一般に動作電力Ｐi が前者では大きく、後者では小さくなる。これは主として式７における動作率ａが変化することによる。今までの説明において、回路ブロックの性質とはこうした時間変化を十分長時間にわたって平均したものを用いることを暗黙に仮定していた。しかしながら、集積回路の消費電力を抑えるために、例えば回路ブロックの負荷が重いときには電源電圧を高めて処理能力を高め、負荷が軽いときには電源電圧を低めて消費電力を抑える、といった制御をしたい場合がある。すなわち、複数の動作モード（上記例で言えば高負荷モードと低負荷モード）を設け、各モードごとにパラメータを変更したい場合がある。
【００９６】
このような場合の最適パラメータ判定に対しても、本発明は以下に述べる方法により対応可能である。回路ブロックｉの性質はモードによって異なるので、回路ブロックの性質データは各モードごとに必要となる。回路ブロックｉのモードｊ（ｊ＝１，２，…，Ｍ）での動作電力と待機電力をＰijとＱijとする。回路ブロックｉのモードｊでの要求速度比をＫijとする。また、モードｊの出現時間比率をＳj とする。回路ブロックの性質データとしては、以上の関する情報が入力される必要がある。ある回路ブロックは動作モードに応じて動作を変えるが、他の回路ブロックは動作を変えない場合もある。このような動作モードによる区別がないブロックを取り扱うには、回路ブロックの性質データを適宜異なるｊにおいて等しくなるよう設定すればよい。
【００９７】
評価関数Ｅはこれに対応して，
0004085622.tif 000003
のように変更すれば良い。
【００９８】
式１４の右辺において、電力についてはすべてのｉとｊの組み合わせについて各動作モードの出現時間比で重みづけた和をとっている。これは結局、全消費電力の期待値に他ならない。また、遅延に関してはＫijで重みづけた最大値のＲ乗をとっている。
【００９９】
通常、同一の回路ブロックにおけるしきい値Ｖthやゲート絶縁膜の厚さＴoxといったプロセスによって決まるパラメータは、モードごとに変更することができない。この制約に対応するためには、最適構成の選択手続きにおいて、同一回路ブロックに異なるプロセス・パラメータを割り当てる構成を選択から排除すれば良い。
【０１００】
同一回路ブロックの異なるモードに対して異なる電源電圧Ｖddを割り当てることは可能である。このような構成において評価関数が小さくなった場合は、動作モードごとに電源電圧を変化させることが有効であることを意味する。
【０１０１】
【実施例】
２つのブロックから成る集積回路を実現したいものとする。使用するトランジスタはＶth＝０．２Ｖ、０．３Ｖ、０．５Ｖの３種類から２種類まで選択することができる。Ｖddは１．５Ｖに決定されている。過去の設計データを元に、Ｖdd＝２．０Ｖ、Ｖth＝０．５Ｖ、Ｆ＝１００ＭＨｚのとき、ブロック１においてＰ＝１Ｗ、Ｑ＝１ｍＷと推定された。また、Ｖdd＝１．５Ｖ、Ｖth＝０．３Ｖ、Ｆ＝１００ＭＨｚのとき、ブロック２においてＰ＝１Ｗ、Ｑ＝１０ｍＷと推定された。また、ブロック１は２００ＭＨｚ、ブロック２は１００ＭＨｚで動作させる予定であり、ブロック１はブロック２より２倍高速である必要がある。このときＶthは選択対象パラメータ・ベクトルの要素、Ｖddは決定済みパラメータ・ベクトルの要素となる。
【０１０２】
回路ブロック・データとして、
Ｇ＝（Ｖth，Ｖdd，Ｆ）＝（０．５，２．０，１００）のとき、
Ｐ１＝１、Ｑ１＝０．００１
Ｇ＝（Ｖth，Ｖdd，Ｆ）＝（０．３，１．５，１００）のとき、
Ｐ２＝１、Ｑ２＝０．０１
使用時の決定済みパラメータとして、
Ｖdd＝１．５
Ｆ1 ＝２００
Ｆ2 ＝１００
Ｋ1 ＝１
Ｋ2 ＝２
を入力し、図４の手続きを適用したところ、ブロック１でＶth＝０．２Ｖ、ブロック２でＶth＝０．５Ｖとするのが最適であった。
【０１０３】
一方、Ｖthを１種類しか使えないとして同様の手続きを行ったところ、Ｖth＝０．３Ｖが最適であったが、このときはＶthを２種類使うのに比べて消費電力が１０％増大した。よって、２種類のＶthを用いることは有効と判定された。これは第１の実施形態において、Ｎ＝２である場合の例である。
【０１０４】
２つのブロックからなる集積回路を実現したいものとする。使用するトランジスタはＶth＝０．３Ｖと決定されている。Ｖddは未定であり、最大２つの値を自由に選択できる。過去の設計データを元に、Ｖdd＝２．０Ｖ、Ｖth＝０．５Ｖ、Ｆ＝１００ＭＨｚのとき、ブロック１においてＰ＝１Ｗ、Ｑ＝１ｍＷと推定された。また、Ｖdd＝１．５Ｖ、Ｖth＝０．３Ｖ、Ｆ＝１００ＭＨｚのとき、ブロック２においてＰ＝１Ｗ、Ｑ＝１０ｍＷと推定された。また、ブロック１は２００ＭＨｚ、ブロック２は１００ＭＨｚで動作させる予定であり、ブロック１はブロック２より２倍高速である必要がある。このとき、Ｖddは調整対象パラメータ・ベクトルの要素、Ｖthは決定済みパラメータ・ベクトルの要素となる。
【０１０５】
回路ブロック・データとして、
Ｇ＝（Ｖth，Ｖdd，Ｆ）＝（０．５，２．０，１００）のとき、
Ｐ1 ＝１、Ｑ2 ＝０．００１
Ｇ＝（Ｖth，Ｖdd，Ｆ）＝（０．３，１．５，１００）のとき、
Ｐ1 ＝１、Ｑ2 ＝０．０１
使用時の決定済みパラメータとして、
Ｖth＝０．３
Ｆ1 ＝２００
Ｆ2 ＝１００
Ｋ1 ＝１
Ｋ2 ＝２
を入力し、図４の手続きを適用したところ、ブロック１でＶdd＝１．５Ｖ、ブロック２でＶdd＝１．２Ｖとするのが最適であった。
【０１０６】
一方、Ｖddを１種類しか使えないとして同様の手続きを行ったところ、Ｖdd＝１．５Ｖが最適であったが、このときはＶddを２種類使うのに比べて消費電力が２０％増大した。よって、２種類のＶddを用いることは有効と判定された。これは第２の実施形態において、Ｎ＝２である場合の例である。
【０１０７】
２つのブロックから成る集積回路を実現したいものとする。使用するトランジスタはＶth＝０．２Ｖ、０．３Ｖ、０．５Ｖの３種類から２種類まで選択することができる。Ｖddは未定であり、１つの値のみを自由に選択できる。過去の設計データを元に、Ｖdd＝２．０Ｖ、Ｖth＝０．５Ｖ、Ｆ＝１００ＭＨｚのとき、ブロック１においてＰ＝１Ｗ、Ｑ＝１ｍＷと推定された。また、Ｖdd＝１．５Ｖ、Ｖth＝０．３Ｖ、Ｆ＝１００ＭＨｚのとき、ブロック２においてＰ＝１Ｗ、Ｑ＝１０ｍＷと推定された。
【０１０８】
また、ブロック１は２００ＭＨｚ、ブロック２は１００ＭＨｚで動作させる予定であり、ブロック１はブロック２より２倍高速である必要がある。このときＶthは選択対象パラメータ・ベクトルの要素、Ｖddは調整対象パラメータ・ベクトルの要素となる。
【０１０９】
回路ブロック・データとして、
Ｇ＝（Ｖth，Ｖdd，Ｆ）＝（０．５，２．０，１００）のとき、
Ｐ1 ＝１、Ｑ２＝０．００１
Ｇ＝（Ｖth，Ｖdd，Ｆ）＝（０．３，１．５，１００）のとき、
Ｐ1 ＝１、Ｑ2 ＝０．０１
使用時の決定済みパラメータとして、
Ｋ1 ＝１
Ｋ2 ＝２
Ｆ1 ＝２００
Ｆ2 ＝１００
を入力データとし、図４の手続きを適用したところ、ブロック１でＶth＝０．２Ｖ、ブロック２でＶth＝０．５Ｖ、共通のＶdd＝１．３Ｖとするのが最適であった。
【０１１０】
一方、Ｖthを１種類しか使えないとして同様の手続きを行ったところ、Ｖth＝０．３Ｖ、Ｖdd＝１．５Ｖが最適であったが、このときはＶthを２種類使うのに比べて消費電力が３０％増大した。よって、２種類のＶthを用いることは効果が大きいと判定された。これは第３の実施形態において、Ｎ＝２である場合の例である。
【０１１１】
単一の回路ブロックからなる集積回路を、現在は電源電圧Ｖdd＝２Ｖ、しきい値電圧Ｖth＝０．５Ｖとして使用しているが、果たしてこのＶddとＶthでの使用が性能を高めるために最適であるかは不明であった。このとき、動作電力は待機電力の１００倍であった。そこで、ＶddとＶthを調整対象パラメータ・ベクトルの２つの要素とし、Ｇ＝（Ｖdd，Ｖth）＝（２．０，０．５）のときのＰ（Ｇ）＝１００、Ｑ（Ｇ）＝１を入力データとした。これに図３の手続きを適用したところ、Ｖdd＝１．８Ｖ、Ｖth＝０．３Ｖにおいて評価関数が最小となった。そこで、Ｖdd＝１．８Ｖ、Ｖth＝０．３Ｖに変更したところ、動作速度はほとんど変化なく、消費電力が２０％削減されることが判明した。これは第２の実施形態において、Ｎ＝１である場合の例である。
【０１１２】
ある集積回路を実現するためのトランジスタにおいて、最適なゲート酸化膜厚を決定したい。ゲート酸化膜を厚くしすぎるとＩonが小さくなり、薄くしすぎるとゲートのもれ電流が大きくなるため、最適な値を選択する必要がある。そこで、ＶthとＴoxを調整可能パラメータ、Ｖdd＝２Ｖを決定済みパラメータとした。ＶddとＶthは１種類のみ使用するとした。入力データとしては、Ｇ＝（Ｖdd，Ｖth，Ｔox）＝（２Ｖ，０．４Ｖ，３ｎｍ）におけるＰ（Ｇ）＝１ＷとＱ（Ｇ）＝１ｍＷを入力した。
【０１１３】
ここで、図３の手続きを適用したところ、Ｖth＝０．３Ｖ、Ｔox＝２．２ｎｍにおいて評価関数が最小となった。この結果を元にトランジスタに用いるゲート酸化膜の厚さを２．２ｎｍに決定した。これは第２の実施形態において、Ｎ＝１である場合である。
【０１１４】
単一ブロックから成る集積回路に高負荷モード（モード１）と低負荷モード（モード２）を設け、それぞれで異なる電源電圧を使用したい。低負荷モードではクロック周波数を１／２に落とすので、動作速度も高負荷モードの２分の１で良い。両モードは等しい時間比で生じる。しきい値電圧Ｖth＝０．３Ｖと決まっている。Ｖddは調整対象パラメータとなる。以上の条件のもと、回路ブロックデータとして、
Ｇ＝（Ｖdd，Ｆ）＝（１．２，１００）のとき、
Ｐ11＝１、Ｑ12＝０．０１
Ｇ＝（Ｖdd，Ｆ）＝（１．２，１００）のとき、
Ｐ11＝０．１、Ｑ12＝０．０１
使用時の決定済みパラメータとして、
Ｋ11＝１
Ｋ12＝２
Ｆ1 ＝２００
Ｆ2 ＝１００
を入力データとし、図３の手続きを適用したところ、モード１のＶdd＝１．２Ｖ、モード２のＶdd＝０．９Ｖにおいて評価関数が最小となった。よって、電源電圧をモード１で１．２Ｖ、モード２で０．７Ｖとするのが良く、これによりＶddをモードに関わらず一定にする場合に比べて消費電力を１５％削減できることが判った。
【０１１５】
【発明の効果】
第１の効果は、集積回路に用いるのに最適なトランジスタあるいは電源電圧を、回路設計者の経験に頼ることなく、かつ短時間に予測できることにある。特に、同一集積回路内において複数種類のトランジスタあるいは複数の電源電圧値を用いる場合においては、各回路ブロックに最適なトランジスタあるいは電源電圧の割り当てを、回路設計者の経験に頼ることなく、かつ短時間に予測できることである。その理由は、本発明により回路または回路ブロックの性質、および回路の性能が経験に左右されない数値として表現されるため、最適なトランジスタあるいは電源電圧の選択がコンピュータによって非経験的かつ迅速に実施し得るからである。
【０１１６】
第２の効果は、集積回路の構成に応じた最適なトランジスタの設計パラメータ値あるいは電源電圧値を算出し、この情報をトランジスタ設計者に対し提供することができることである。その理由は、本発明により回路または回路ブロックの性質、および回路の性能が数値として表現されるため、最適なトランジスタあるいは電源電圧が数学的手続きによって決定できるからである。
【図面の簡単な説明】
【図１】本発明の実施の形態の構成を示すブロック図である。
【図２】第１の実施の形態の動作を示す流れ図である。
【図３】第２の実施の形態の動作を示す流れ図である。
【図４】第３の実施の形態の動作を示す流れ図である。
【図５】複数のブロックから成る集積回路の概念図である。
【符号の説明】
１  中央処理装置
２  入力装置
３  出力装置
４  メモリ
５  ファイル装置
４１  制御プログラム
４２  回路ブロック・データ
【図１】
0004085622.tif 000004
【図２】
0004085622.tif 000005
【図３】
0004085622.tif 000006
【図４】
0004085622.tif 000007
【図５】
0004085622.tif 000008