(57)【特許請求の範囲】
【請求項１】
回路の設計データに基づき前記回路のシミュレーションを実行し、前記シミュレーションにより得られる前記回路内の各回路ブロックの特徴量を要素として共通のサンプリングポイントでサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択する電力見積ポイント選択方法であって、
前記回路ブロック毎に前記特徴量の所定値を基準とする所定範囲内で前記要素をグループ化するグループ化手順と、
前記サンプリングしたポイントのうち、グループ化された前記要素の数が最も多いポイントを選択するポイント選択手順と、をコンピュータが実行する電力見積ポイント選択方法。
【請求項２】
前記ポイント選択手順は、
前記回路ブロック毎の前記特徴量の所定値を含むグループの要素と、前記回路ブロックとを対応させたデータを前記ポイント毎にリストしたポイント別所定値データを作成する手順を有し、
前記ポイント別所定値データにおいて前記要素の数が最も多いポイントを選択する請求項１記載の電力見積ポイント選択方法。
【請求項３】
前記ポイント選択手順は、
前記回路ブロック毎に、前記特徴量の所定値と前記要素の特徴量との差分に基づきグループ内の前記要素に重み付けを行う重み付け手順と、
前記ポイント毎に、前記要素に付けられた重みの平均値を算出する手順とを有し、
前記要素の数が同じグループが存在する場合には、前記重みの平均値が小さいポイントから選択する請求項１又は２記載の電力見積ポイント選択方法。
【請求項４】
前記ポイント選択手順により選択されたポイントに基づき、前記ポイント別所定値データから削除するポイントのデータを決定する削除手順を有する請求項１乃至３の何れか一項に記載の電力見積ポイント選択方法。
【請求項５】
回路の設計データに基づき前記回路のシミュレーションを実行し、前記シミュレーションにより得られる前記回路内の各回路ブロックの特徴量を要素として共通のサンプリングポイントでサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択して消費電力の見積もりを行うシミュレーション装置であって、
前記回路ブロック毎に前記特徴量の所定値を基準とする所定範囲内で前記要素をグループ化するグループ化手段と、
前記サンプリングしたポイントのうち、グループ化された前記要素の数が最も多いポイントを選択するポイント選択手段と、を有するシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路ブロック毎に特徴量を要素としてサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択する電力見積ポイント選択方法及びシミュレーション装置に関する。
【背景技術】
【０００２】
半導体集積回路の設計は、ハードウェア記述言語で記述さたれＲＴＬ（Register Transfer Level）ファイルを論理合成してネットリストを生成し、そのネットリストに基づいてレイアウト設定を行ってレイアウトデータを生成している。そしてネットリストを作成する段階で、論理検証と共に消費電力を見積もることが行われる。消費電力を見積もる際には、半導体集積回路を構成する回路ブロック毎に、例えば消費電力の大きい点等の特徴的なポイントの波形データを取得し、この波形データに基づき消費電力の見積もりを行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−６５４９６号公報
【特許文献２】特開２００８−２３４２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、回路ブロック毎に波形データを取得するポイントを選択すると、ポイントの数が多くなり、消費電力の見積もりに時間がかかる。また回路ブロック毎の消費電力を知りたい場合には、必ずしも消費電力が大きい点が回路ブロックの消費電力を観測する上で好ましい点であるとはいえない。
【０００５】
このような理由により、波形データを取得するポイントは、最終的には回路設計者等の経験則によって決めなければならず、非技術的なコストがかかるという問題があった。
【０００６】
本発明は、上記の点に鑑みなされたもので、波形データを取得するポイントを自動的に適切に選択することが可能な電力見積ポイント選択方法及びシミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示の電力見積ポイント選択方法は、回路の設計データに基づき前記回路のシミュレーションを実行し、前記シミュレーションにより得られる前記回路内の各回路ブロックの特徴量を要素として共通のサンプリングポイントでサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択する電力見積ポイント選択方法であって、前記回路ブロック毎に前記特徴量の所定値を基準とする所定範囲内で前記要素をグループ化するグループ化手順と、前記サンプリングしたポイントのうち、グループ化された前記要素の数が最も多いポイントを選択するポイント選択手順と、コンピュータが実行する。
【発明の効果】
【０００８】
本発明によれば、波形データを取得するポイントを自動的に適切に選択することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施例に係るシミュレーション装置のハードウェア構成を示す図である。
【図２】本実施例のシミュレーション装置の機能構成を説明する図である。
【図３】本実施例のシミュレーション装置の動作を説明するフローチャートである。
【図４】本実施例の波形データ取得ポイント選択部の機能構成を説明する図である。
【図５】本実施例の波形データ取得ポイント選択部の動作を説明するフローチャートである。
【図６】特徴量データファイルを説明するための図である。
【図７】本実施例の特徴量データファイルの一例を示す図である。
【図８】本実施例の特徴量データの一例を示す図である。
【図９】本実施例の分類部によるグループ化を説明する第一の図である。
【図１０】本実施例の分類部によるグループ化を説明する図である。
【図１１】グループ化データの一例を示す図である。
【図１２】本実施例の同値類化部による同値類化を説明する第一のフローチャートである。
【図１３】本実施例の同値類化部による同値類化を説明する第二のフローチャートである。
【図１４】同値類化データの一例を示す図である。
【図１５】図９に示すグラフにおいて同値類化データを示す図である。
【図１６】本実施例の重み付同値類化データの一例を示す図である。
【図１７】ポイント別最大値データの一例を示す図である。
【図１８】ポイント別最大値データを説明するための図である。
【図１９】ハッシュの記述例を示す図である。
【図２０】ハッシュの記述例の応答を示す図である。
【図２１】ポイント選択部の処理を説明するためのフローチャートである。
【図２２】図２１のステップＳ２００３の処理の詳細を説明するフローチャートである。
【図２３】本実施例の中間データの一例を示す図である。
【図２４】図２３に示す中間データを表形式とした例を示す図である。
【図２５】ポイントＰ２が選択された状態を示す図である。
【図２６】図２１のステップＳ２００６の処理の詳細を説明するフローチャートである。
【図２７】削減ポリシー０に基づく削減を説明するフローチャートである。
【図２８】削減ポリシー０に基づきデータを削減したポイント別最大値データの例を示す図である。
【図２９】ポイントＰ５が選択された状態を示す図である。
【図３０】削減ポリシー０における結果データの一例を示す図である。
【図３１】削減ポリシー０における結果データをフォーマット変換した例を示す図である。
【図３２】削減ポリシー０において選択されたポイントを示す図である。
【図３３】削減ポリシー１に基づく削減を説明するフローチャートである。
【図３４】削減ポリシー１に基づきデータを削減したポイント別最大値データの例を示す図である。
【図３５】ポイントＰ６が選択された状態を示す図である。
【図３６】削減ポリシー１における結果データの一例を示す図である。
【図３７】削減ポリシー１における結果データをフォーマット変換した例を示す図である。
【図３８】削減ポリシー１において選択されたポイントを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１１】
本発明に係る方法を実現するシミュレーション装置１００は、コンピュータ装置であって、図１に示すようなハードウェア構成を有する。図１は、本発明の一実施例に係るシミュレーション装置のハードウェア構成を示す図である。
【００１２】
図１において、シミュレーション装置１００は、コンピュータによって制御される装置であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、入力ユニット１５と、記憶装置１７と、ドライバ１８とで構成され、システムバスＢに接続される。
【００１３】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従ってシミュレーション装置１００を制御する。メモリユニット１２は、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等にて構成され、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００１４】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。入力ユニット１５は、マウス、キーボード等を有し、利用者がシミュレーション装置１００が処理を行なうための必要な各種情報を入力するために用いられる。
【００１５】
記憶装置１７は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
【００１６】
シミュレーション装置１００によって行われる電力見積ポイント選択方法での処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）等の記憶媒体１９によってシミュレーション装置１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライバ１８にセットされると、ドライバ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。
【００１７】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。シミュレーション装置１００が外部とのネットワーク通信を行う通信ユニットを有する場合には、本発明に係る処理を実現するプログラムを通信ユニットによってネットワークを介してダウンロードし、記憶装置１７にインストールするようにしても良い。また、シミュレーション装置１００が外部記憶装置との接続を行うＵＳＢ（Universal Serial Bus）等のインタフェースを有する場合には、ＵＳＢ接続によって外部記憶媒体からプログラムを読み込んでもよい。
【００１８】
図２は、本実施例のシミュレーション装置の機能構成を説明する図である。
【００１９】
シミュレーション装置１００は、設計データ生成部１１０と、シミュレーション部１２０と、波形データ取得ポイント選択部１３０と、電力見積部１４０と、計測回路ライブラリ１５０と、を有する。また本実施例のシミュレーション装置１００は、例えば記憶装置１７に、設計データ２１０が格納されている。本実施例の設計データ２１０は、例えばＲＴＬファイルやネットリスト等を含む。また後述する処理により、記憶装置１７には、計測回路付設計データ２２０、特徴量データファイル２３０、波形データ２４０、解析結果データ２５０が格納される。
【００２０】
以下に、図３を参照して本実施例のシミュレーション装置１００の動作について説明する。図３は、本実施例のシミュレーション装置の動作を説明するフローチャートである。
【００２１】
設計データ生成部１１０は、設計データ２１０と計測回路ライブラリ１５０とに基づき計測回路付設計データ２２０を生成する（ステップＳ３０１）。尚計測回路ライブラリ１５０とは、例えばデータをカウントするカウンタ回路等が含まれる。
【００２２】
続いてシミュレーション部１２０は、計測回路付設計データ２２０のシミュレーションを実行し、特徴量データファイル２３０を生成する（ステップＳ３０２）。尚特徴量データファイル２３０は、所定期間毎にサンプリングしたポイントで、回路ブロック毎に計測された特徴量を示すデータを含む。特徴量とは、例えばクロックゲーティングセルの動作率とフリップフロップ数とを乗算した値や、フリップフロップの入力端子動作率等を用いる。
【００２３】
続いて波形データ取得ポイント選択部１３０は、特徴量データファイル２３０を解析して消費電力の見積のための波形データを取得するポイントを選択する（ステップＳ３０３）。本実施例の波形データ取得ポイント選択部１３０の処理の詳細は後述する。
【００２４】
続いてシミュレーション部１２０は、選択されたポイントから消費電力見積用の波形データ２４０を取得する（ステップＳ３０４）。続いて電力見積部１４０は、波形データ２４０を解析して消費電力の見積もりを行い、解析結果データ２５０を出力して（ステップＳ３０５）、処理を終了する。
【００２５】
本実施例のシミュレーション装置１００では、波形データ取得ポイント選択部１３０により、波形データ２４０を取得するポイントを自動的に選択する。以下に本実施例の波形データ取得ポイント選択部１３０の詳細を説明する。
【００２６】
図４は、本実施例の波形データ取得ポイント選択部の機能構成を説明する図である。本実施例の波形データ取得ポイント選択部１３０は、データ読み込み部１３１と、分類部１３２と、同値類化部１３３と、重み付け部１３４と、ポイント別データ作成部１３５と、ポイント選択部１３６と、削減部１３７と、結果データ出力部１３８と、を有する。
【００２７】
データ読み込み部１３１は、特徴量データファイル２３０を読み込んで解析し、後述する特徴量データ３１０を生成して出力する。
【００２８】
分類部１３２は、回路ブロック毎に特徴量データ３１０を参照して後述する方法でデータを分類し、グループ化したデータを、グループ化データ３２０として記憶領域に格納する。
【００２９】
同値類化部１３３は、回路ブロック毎にグループ化データ３２０を同値類化し、同値類化したデータを、同値類化データ３３０として記憶領域に格納する。
【００３０】
重み付け部１３４は、同値類化データ３３０に重み付し、重み付けした同値類化データ３３０を、重み付同値類化データ３４０として記憶領域に格納する。
【００３１】
ポイント別データ作成部１３５は、ポイント毎の最大値のデータを作成し、ポイント毎の最大値のデータをポイント別最大値データ３５０として記憶領域に格納する。
【００３２】
ポイント選択部１３６は、電力見積のためのポイントを選択し、その選択結果を結果データ３６０として記憶領域に格納する。削減部１３７は、結果データ３６０を参照して特定のポイントを削除する。
【００３３】
結果データ出力部１３８は、波形データ取得ポイント選択部１３０による処理の結果を結果データファイル３７０として記憶領域に格納する。
【００３４】
以下に、図５を参照して波形データ取得ポイント選択部１３０の動作を説明する。図５は、本実施例の波形データ取得ポイント選択部の動作を説明するフローチャートである。
【００３５】
波形データ取得ポイント選択部１３０が処理を開始すると、データ読み込み部１３１は、特徴量データファイル２３０を読み込み、特徴量データ３１０を生成する（ステップＳ５０１）。
【００３６】
ここで本実施例の特徴量データファイル２３０と、特徴量データ３１０について説明する。本実施例では、説明の便宜上、消費電力の見積対象を４つの回路ブロック（ＢｌｏｃｋＡ，・・・，ＢｌｏｃｋＤ）で構成される回路として説明する。
【００３７】
図６は、特徴量データファイルを説明するための図である。図６に示す特徴量テーブル２３０Ｔは、特徴量データファイル２３０と対応したテーブルである。特徴量テーブル２３０Ｔには、４つの回路ブロックＡ〜Ｄについて、ポイントＰ０〜Ｐ９までの１０ポイントの特徴量データが示されている。尚本実施例のポイントＰｎ（ｎは整数）は、消費電力のサンプリングを行ったタイミングを示す。
【００３８】
図７は、本実施例の特徴量データファイルの一例を示す図である。図７では特徴量データファイル２３０を、ＣＳＶ（Comma-Separated Values）形式とした例を示す。
【００３９】
図８は、本実施例の特徴量データの一例を示す図である。図８に示されるように、特徴量データファイル２３０を解析することによって、特徴量データ３１０のような配列構造で、回路ブロック毎にサンプリングした時系列順に特徴量データが出力される。
【００４０】
本実施例の特徴量データ３１０の配列は、インデックス番号が系列番号となる。系列番号は回路ブロックＡ〜Ｄを特定する値であり、本実施例では回路ブロックＡの系列番号をＳ０、回路ブロックＢの系列番号をＳ１、回路ブロックＣの系列番号をＳ２、回路ブロックＤの系列番号をＳ３とした。ｄａｔａ３１０［ｉｎｄｅｘ］は、ポイントを時系列順に並べたデータである。
【００４１】
例えばｄａｔａ３１０［１］［１］は、系列番号１（Ｓ１）のポイント１（Ｐ１）のデータである。すなわち以下のように示される。
【００４２】
＜３１０データ構造＞：= [＜系列０のデータ＞，・・・，＜系列Ｎのデータ＞]
＜系列Ｉのデータ＞：=[＜系列Ｉ，ポイント０の値＞,・・・,＜系列Ｉ,ポイントＭの値＞]
図５に戻って、次に波形データ取得ポイント選択部１３０は、特徴量データ３１０を参照して分類部１３２により、各系列のポイントをグループ化し、グループ化データ３２０を生成する（ステップＳ５０２）。
【００４３】
以下に図９ないし図１１を参照してグループ化について説明する。図９は、本実施例の分類部によるグループ化を説明する第一の図である。
【００４４】
図９は、特徴量データ３１０に基づき回路ブロック毎の特徴量の値をグラフにしたものである。図９において、回路ブロックＡはポイントＰ２で最も特徴量が大きく、回路ブロックＢはポイントＰ５で最も特徴量が大きく、回路ブロックＣはポイントＰ３で最も特徴量が大きく、回路ブロックＤはポイントＰ６で最も特徴量が大きいことがわかる。
【００４５】
図１０は、本実施例の分類部によるグループ化を説明する第二の図である。図１０では、回路ブロックＣを例として、グループ化について説明する。
【００４６】
本実施例の分類部１３２は、回路ブロックＣの各ポイントを基準として、基準となるポイントの特徴量から所定の範囲内の特徴量を有するポイントを１つのグループとしてグループ化する。
【００４７】
例えば特徴量データ３１０によれば、回路ブロックＣの特徴量データは、Ｐ０＝２．４，Ｐ１＝１７．０，Ｐ２＝１６．７，Ｐ３＝１７．５，Ｐ４＝１．５，Ｐ５＝１．０，Ｐ６＝０．９，Ｐ７＝１．１，Ｐ８＝１．１，Ｐ９＝０．０である。そこで分類部１３２は、始めにポイントＰ０を基準としてポイントＰ０の特徴量から所定の範囲内の特徴量を有するポイントを探す。尚実施例の所定の範囲とは、−２とした。
【００４８】
ポイントＰ０を基準として１つのグループとされるポイントは、特徴量が０．４から２．４の範囲にあるポイントである。回路ブロックＣでは、ポイントＰ０とグループ化されるのは、ポイントＰ４である。
【００４９】
次に分類部１３２は、ポイントＰ１とグループ化されるポイントを探す。ポイントＰ１とグループ化されるのは、特徴量が１５．０から１７．０の範囲にあるポイントである。よってポイントＰ１は、ポイントＰ２とグループ化される。図１０では、ポイントＰ１を基準としたグループをグループＧ１として示す。
【００５０】
次に分類部１３２は、ポイントＰ２とグループ化されるポイントを探す。ポイントＰ２とグループ化されるのは、特徴量が１４．７から１６．７の範囲にあるポイントである。よってポイントＰ２は、ポイントＰ２のみで一つのグループとされる。図１０では、ポイントＰ２を基準としたグループをグループＧ２として示す。
【００５１】
次に分類部１３２は、ポイントＰ３とグループ化されるポイントを探す。ポイントＰ３とグループ化されるのは、特徴量が１５．５から１７．５の範囲にあるポイントである。よってポイントＰ３は、ポイントＰ１及びポイントＰ２とグループ化される。図１０では、ポイントＰ３を基準としたグループをグループＧ３として示す。
【００５２】
分類部１３２は、回路ブロックＣの他のポイントについても同様にしてグループ化を行う。また分類部１３２は、他の回路ブロックについても同様にしてグループ化を行う。
【００５３】
図１１は、グループ化データの一例を示す図である。
【００５４】
図１１は、各回路ブロック（系列）毎において、ポイントＰ０〜Ｐ９をそれぞれ基準としてグループ化した結果を示している。例えば系列Ｓ２（回路ブロックＣ）では、ポイントＰ０を基準としたグループをグループＧ０、ポイントＰ１を基準としたグループをグループＧ１、・・・、ポイントＰ９を基準としたグループをグループＧ９とした。
【００５５】
尚図１１に示すグループ化データ３２０において、最も外側の配列のインデックスは系列番号（Ｓ）である。外側から２番目の配列のインデックスはポイント（Ｐ）である。外側から３番目の配列は、系列番号ＳのポイントＰを基準にグループ化したデータのリストである。このリストの要素も配列で[＜要素の値＞，＜ポイント番号＞]である。例えば、Ｓ０（回路ブロックＡ），Ｐ０の値を基準にグループ化した結果は[[１０．２，０]，１０．１，３]]であり、要素数は２である。メンバーはＳ０のＰ０(基準となるポイント）とＳ０のＰ３で、各々の要素値は１０．２、１０．１である。
【００５６】
すなわち本実施例のグループ化データ３２０は以下のように示される。
【００５７】
＜３２０データ構造＞：= [＜系列０のデータ＞，・・・，＜系列Ｎのデータ＞]
＜系列Ｉのデータ＞：=［＜ポイント０のデータ＞，・・・，＜ポイントＭのデータ＞]
＜ポイントＩのデータ＞：=[＜ポイントＭと同値なデータ０＞，・・・，＜ポイントＭと同値なデータＫ＞]
＜ポイントＭと同値なデータＩ＞：=[＜要素値＞，＜ポイント番号＞]
図５に戻って、次に波形データ取得ポイント選択部１３０は、グループ化データ３２０を参照して、同値類化部１３３により同値類化データ３３０を生成する（ステップＳ５０３）。
【００５８】
以下に図１２ないし図１５を参照して同値類化について説明する。図１２は、本実施例の同値類化部による同値類化を説明する第一のフローチャートである。
【００５９】
本実施例の同値類化部１３３は、グループ化データ３２０における特徴的なデータを取り出し、同値類化する。本実施例では、グループ化データ３２０において、要素数が多いグループのデータを特徴的なデータとした。
【００６０】
本実施例の同値類化部１３３は、例えばシミュレーション装置１００のメモリユニット１２に、同値類化データ３３０が格納される同値類化データの領域を生成する（ステップＳ１２０１）。次に同値類化部１３３は、グループ化データ３２０に含まれる全ての系列について処理が終了したか否かを判断する（ステップＳ１２０２）。
【００６１】
ステップＳ１２０２において、全ての系列について処理が終了していない場合、同値類化部１３３は、グループ化データ３２０に含まれる系列を選択する（ステップＳ１２０３）。そして選択された系列（以下、系列Ｓｘ）において、系列のリストを参照して同値類化の処理を行う（ステップＳ１２０４）。
【００６２】
以下に図１３を参照して図１２のステップＳ１２０４の処理の詳細を説明する。図１３は、本実施例の同値類化部による同値類化を説明する第二のフローチャートである。
【００６３】
本実施例の同値類化部１３３は、例えばメモリユニット１２に、系列Ｓｘの結果を書き込む領域を確保する（ステップＳ１３０１）。次に同値類化部１３３は、系列Ｓｘの要素数が０か否かを判断する（ステップＳ１３０２）。
【００６４】
ステップＳ１３０２において系列Ｓｘの要素数が０でない場合、同値類化部１３３は、系列Ｓｘのグループ化データ３２０において、要素数が最も多いグループを取り出す（ステップＳ１３０３）。尚要素数が同じグループの場合は、要素の値の最大値が大きい方のグループを取り出す。
【００６５】
同値類化部１３３は、取り出されたグループのデータを最重要データ３３１として、ステップＳ１３０１で確保された領域に登録する（ステップＳ１３０４）。また同値類化部１３３は、最重要データ３３１を系列Ｓｘ用の同値類化データ３３０Ａとして登録する。系列毎の同値類化データ３３０Ａは、同値類化データ３３０に含まれるデータである。
【００６６】
次に同値類化部１３３は、最重要データ３３１を参照し、系列Ｓｘから最重要データ３３１として登録された要素をグループ化データ３２０から全て除去する（ステップＳ１３０５）。次に同値類化部１３３は、系列Ｓｘにおいて空集合となったグループをグループ化データ３２０から除去する（ステップＳ１３０６）。
【００６７】
以下に、図１１を参照して、同値類化の処理を具体的に説明する。
【００６８】
図１２のステップＳ１２０３において、グループ化データ３２０の系列Ｓ２が選択されると、同値類化部１３３は、図１３のステップＳ１３０１において系列Ｓ２に含まれるグループのうち、要素数が最も多いグループを最重要データ３３１として取り出す（ステップＳ１３０３に対応）。
【００６９】
系列Ｓ２では、グループＧ４、Ｇ７、Ｇ８の要素数がそれぞれ５つあり、要素数が最も多い。そこで同値類化部１３３は、３つのグループのうち要素の値の最大値を含むグループを最重要データ３３１とする。系列Ｓ２では、グループＧ４のポイントＰ４の特徴量１．５が３つのグループのうち要素の値の最大値である。よって同値類化部１３３は、グループＧ４を最重要データ３３１として登録する。また同値類化部１３３は、系列Ｓ２用の同値類化データ３３０Ａとして登録する（ステップＳ１３０４に対応）。
【００７０】
次に同値類化部１３３は、系列Ｓ２から、最重要データ３３１に含まれる要素をグループ化データ３２０から全て除去する。最重要データ３３１に含まれる要素は、グループＧ４に含まれる［１．５，４］，［１．０，５］，［０．９，６］，［１．１，７］，［１．１，８］である。よって同値類化部１３３は、系列Ｓ２の各グループからポイントＰ４〜Ｐ８に対応する要素をグループ化データ３２０から除去する（ステップＳ１３０５に対応）。
【００７１】
するとグループＧ０ではポイントＰ０に対応する要素が残り、グループＧ１ではポイントＰ１、Ｐ２に対応する要素が残り、グループＧ２ではポイントＰ２に対応する要素が残り、グループＧ３ではポイントＰ１〜Ｐ３に対応する要素が残る。そしてグループＧ４は空集合となる。グループＧ５〜Ｇ９ではポイントＰ９に対応する要素が残る。
【００７２】
同値類化部１３３は、この処理を繰り返すことで、グループ化データ３２０の系列毎のデータを同値類化する。
【００７３】
図１４は、同値類化データの一例を示す図である。
【００７４】
本実施例の同値類化データ３３０では、最も外側の配列のインデックスは系列番号（Ｓ）である。外側から２番目の配列は同値類のリストである。この同値類の要素は、[＜要素の値＞，＜ポイント番号＞]である。
【００７５】
例えば、系列Ｓ２は下記の４つの同値類で構成されている。同値類リストの先頭の要素は、ポイントＰ１，Ｐ２，Ｐ３で構成され、各々の数値は１７．０，１６．０，１７．５である。同値類リストの先頭から、同値類１、同値類２、同値類３、同値類４と呼ぶ。
【００７６】
系列Ｓ２の同値類
[１７．０，１]，[１６．７，２]，[１７．５，３]]，
[[２．４，０]]，
[[１．５，４]，[１．０，５]，[０．９，６]，[１．１，７]，[１．１，８]]，
[[０．０，９]]
本実施例の同値類化データ３３０は、以下のように示される。
【００７７】
＜３３０データ構造＞：＝[＜系列０の同値類リスト＞，・・・，＜系列Ｎの同値類リスト＞]
＜系列Ｉの同値類リスト＞：＝[＜ポイントデータ０＞，・・・，＜ポイントデータＭ＞]
＜ポイントデータＩ＞：＝[＜要素の値＞，＜ポイント番号＞]
図１５は、図９に示すグラフにおいて同値類化データを示す図である。図１５では、系列Ｓ２（回路ブロックＣ）の同値類化データを示し、図１４に示す同値類１〜同値類４までが示されている。
【００７８】
図５に戻って、次に波形データ取得ポイント選択部１３０は、重み付け部１３４により同値類化データ３３０を加工して重み付けを行い、その結果である重み付同値類化データ３４０を出力する（ステップＳ５０４）。
【００７９】
同値類化データ３３０に対する重み付けの方法は、以下の３通りが考えられる。
【００８０】
まず一つ目の方法は、任意の系列Ｓの任意の同値類Ｉの要素の最大値Ｍａｘを調べ、Ｍａｘ−Ｐｎの値（各要素の値）を重み値とする方法である。例えば系列Ｓ２の同値類１の要素の最大値は１７．５である。よってこの場合、ポイントＰ１の重み値は、１７．５−１７．０＝０．５となる。またポイントＰ２の重み値は、１７．５−１６．７＝０．８となる。
【００８１】
二つ目の方法は、任意の系列Ｓの任意の同値類Ｉの要素の最大値Ｍａｘを調べて、（Ｍａｘ−Ｐｎ）２を重み値とする方法である。
【００８２】
三つ目の方法は、任意の系列Ｓの任意の同値類Ｉの要素の最大値Ｍａｘを調べて、（Ｍａｘ−Ｐ）２／（Ｍａｘ）２を重み値とする方法である。
【００８３】
波形データの取得ポイントを選択する際に、最終的に重み値が小さくなるポイントを選択する場合、一つ目の方法は各系列において特徴量が大きいポイントが選択される。一つ目の方法の場合、選択されたポイントから離れているものが1点あったとしても、他のポイントが選択されたポイントの特徴量に近ければ、好ましいポイントを選択したことになる。
【００８４】
二つ目の方法は、系列毎に最終結果を評価することを考えて、特徴量が極端に離れているものが選択されにくくした方法である。特徴量がＭａｘ値から離れるほど重み値（つまりペナルティ）が大きくなるので、特徴量がＭａｘ値と極端に離れたポイントは選択されにくくなる。
【００８５】
三つ目の方法は、二つ目の方法と同様であるが、特徴量の合計が回路面積等に比例する傾向がある場合等では、回路面積が大きいほうが良い値が割り振られやすくなる。そこで、最大値を基準にして規格したものである（ただし次数を合わせる）。尚上述の三つの方法以外にも、回路面積値等の回路情報を入れて計算しても良い。
【００８６】
本実施例の重み付け部１３４は、三つ目の方法により、同値類化データ３３０に対する重み付けを行う。本実施例では、重み付けの結果を重み付同値類化データ３４０とした。図１６は、本実施例の重み付同値類化データの一例を示す図である。
【００８７】
本実施例の重み付同値類化データ３４０は、同値類Ｉの要素に対して、重み値が付加された以外は、同値類化データ３３０と同じである。尚重み値は、二番目の要素となる。すなわち、重み付同値類化データ３４０のポイントデータＩは、
＜ポイントデータＩ＞：＝[＜要素の値＞，＜ポイント番号＞，＜重み値＞]
となる。
【００８８】
例えば系列Ｓ２の同値類化データ３３０に重み値が付加された場合、以下のようになる。
【００８９】
系列Ｓ２の重み付同値類
[１７．０，１，０．０００８]，[１６．７，２，０．００２１]，[１７．５，３，０．００００]]，
[[２．４，０，０．００００]]，
[[１．５，４，０．００００]，[１．０，５，０．１１１１]，[０．９，６，０．１６００]，[１．１，７，０．０７１１]，[１．１，８，０．０７１１]]，
[[０．０，９，０．００００]]
図５に戻って、次に波形データ取得ポイント選択部１３０は、ポイント別データ作成部１３５により、ポイント別最大値データ３５０を作成する（ステップＳ５０５）。
【００９０】
図１７は、ポイント別最大値データの一例を示す図である。
【００９１】
図１７に示す例は、ハッシュである。配列がインデックスで値を参照するのに対して、ハッシュはキー値で取り出すコンテナである。Perlでは連想配列と呼ばれるものに相当する。Rubyを用いて開発した場合、図１９のように書く。図１９は、ハッシュの記述例を示す図である。
【００９２】
図１９の例では、dataHashにHashクラスのオブジェクトを代入して、dataHashに対して'apple'というキーで参照できる領域に、更にHashクラスのオブジェクトを代入している。そして、dataHash['apple']['jp'] に'ringo'を代入している。Rubyには、p関数がある。これはデバッグ用の関数で、Array, Hashにおいては、データ構造をタプル形式で印字する。図１９に示す記述例のp関数の出力値は、図２０に示す応答例のようになる。図２０は、ハッシュの記述例の応答を示す図である。図１７の例では、この記述形式に習って、ハッシュは{＜keyValue0＞＝＞＜データ0＞，・・・，＜keyValueN＞＝＞＜データ  N＞}という形式で記述している。
【００９３】
図１７に示すポイント別最大値データ３５０は、ポイントをキーとするデータであり、各系列の要素の値の最大値を含む同値類の要素のリストである。ポイント別最大値データ３５０は、最も外側がハッシュになっている。
【００９４】
ポイント別最大値データ３５０の要素は、[＜要素値＞，＜重み＞，＜系列番号＞]という配列で表現されている。例えば、ポイントＰ１で何れの系列の最大値を含む同値類の要素になっているものは、[[１０．５，０．００２１，０]，[１７．０，０．０００８，２]，[７．１，０．００１６，３]]である。
【００９５】
これは、ポイントＰ１の系列Ｓ０で値が１０．５、重みが０．００２１、系列Ｓ２で値が１７．０、重みが０．０００８、系列Ｓ３で値が７．１、重みが０．００１６４の点の集合が何れかの系列の要素の値の最大値を含む同値類の要素のリストであることを示している。尚ポイント別最大値データ３５０は以下のように示される。
【００９６】
＜３５０データ構造＞：= {＜ポイントa0＞=＞＜ポイントa0のデータ＞，・・・，
＜ポイントaj＞=＞＜ポイントajのデータ＞}
＜ポイントaIのデータ＞：=［＜データタプル０＞，・・・，＜データタプルＫ＞]
＜データタプルＩ＞：= [＜要素値＞，＜重み＞，＜系列番号＞]
図１８は、ポイント別最大値データを説明するための図である。図１８に示すように、ポイントＰ０からポイントＰ７については、何れかの系列の要素の値の最大値を含む同値類の要素が存在するため、ポイント別最大値データ３５０が作成される。また各ポイントＰ８、Ｐ９では、何れかの系列の要素の値の最大値を含む同値類の要素が存在しなため、ポイント別最大値データ３５０は作成されない。
【００９７】
図５に戻って、次に波形データ取得ポイント選択部１３０は、ポイント選択部１３６により、ポイント別最大値データ３５０を参照して波形データを取得するポイントを選択し、その結果を示す結果データ３６０を生成する（ステップＳ５０６）。
【００９８】
以下に本実施例のポイント選択部１３６の処理について説明する。図２１は、ポイント選択部の処理を説明するためのフローチャートである。
【００９９】
本実施例のポイント選択部１３６は、任意の系列の最大値を含む同値類を処理対象とするものとして説明する。最大値を含む同値類を処理対象とすることで、実際には最大値とならないポイントであっても、最大値と同値であるポイントとして選択すべきポイントの候補として扱うことができる。
【０１００】
ポイント選択部１３６は、例えばメモリユニット１２等に、処理の終了判定を行うための判定用テーブル４１０を用意する（ステップＳ２００１）。本実施例の判定用テーブル４１０は、すべての要素が偽で初期化されている。判定用テーブル４１０は、系列から真偽のマップになっている。もし該当する系列が、既に後述する結果データ３６０に含まれている場合、該当する系列の要素は真である。また該当する系列が結果データ３６０に含まれていない場合、該当する系列の要素は偽である。
【０１０１】
次にポイント選択部１３６は、全ての系列が判定用テーブル４１０にエントリされているか否かを判断する（ステップＳ２００２）。
【０１０２】
ステップＳ２００２において、全ての系列がエントリされている場合（未処理の系列が存在しない場合）、判定用テーブル４１０において、すべて真になる。判定用テーブル４１０が全て真となれば、系列毎の条件を満たすデータが結果データ３６０に書き込まれたことになる。系列Ｓ０〜Ｓ３は回路ブロックＡ〜Ｄを表しているので、回路ブロック毎に着目すべきデータが見つけられたことになる。つまり所望のデータが結果データ３６０に書き込まれたことになり、ポイント選択の処理を終了することができる。
【０１０３】
ステップＳ２００２において全ての系列が判定用テーブル４１０にエントリされていない場合（未処理の系列が存在する場合）、ポイント選択部１３６は、ポイント別最大値データ３５０を参照して、結果データ３６０として登録する選択データ４１５を取り出す。またポイント選択部１３６は、取り出した選択データ４１５を結果データ３６０へ登録する（ステップＳ２００３）。尚ステップＳ２００３の詳細は後述する。
【０１０４】
次にポイント選択部１３６は、系列リスト４２０を生成する（ステップＳ２００４）。次にポイント選択部１３６は、選択データ４１５に含まれている系列の集合を取り出し、系列リスト４２０へ書き込む。また選択データ４１５に含まれている系列は、結果データ３６０に書き込まれているので、ポイント選択部１３６は判定用テーブル４１０の該当する系列の要素を真に更新する（ステップＳ２００５）。
【０１０５】
次にポイント選択部１３６は、削減部１３７によりポイント選択部１３６に選択されたポイントの数を削減する（ステップＳ２００６）。削減方法については、後述するステップＳ２００６の削減部１３７による処理の詳細で説明する。
【０１０６】
次に図２２を参照して、図２１のステップＳ２００３の処理の詳細を説明する。図２２は、図２１のステップＳ２００３の処理の詳細を説明するフローチャートである。
【０１０７】
本実施例のポイント選択部１３６は、メモリユニット１２等に、中間データを書き込むための中間データ領域を生成する（ステップＳ２１０１）。次にポイント選択部１３６は、ポイント別最大値データ３５０に含まれる全てのポイントＰｘ毎に各系列の重み付け計算をし、計算が終了したか否かを判断する（ステップＳ２１０２）。
【０１０８】
ステップＳ２１０２において全てのポイントについての計算が終了していない場合、ポイント選択部１３６は、ポイント別最大値データ３５０のポイントＰｘの重み値の平均値を算出して（ステップＳ２１０３）、算出したデータを中間データ４３０として、中間データ領域に記録する。そしてステップＳ２１０２に戻り、次のポイントＰｘについて同様の処理を行う。
【０１０９】
図２３は、本実施例の中間データの一例を示す図である。図２３に示す中間データ４３０は、ステップＳ２００３の実行回数が０回目の結果、つまり、ポイント別最大値データ３５０（図１７参照）の全要素に対して、ステップＳ２１０３を適用した結果である。本実施例の中間データ４３０のデータ構造は以下のようなリスト構造とした。尚メトリクス値とは、あるデータ同士の関連を数値化した値であり、本実施例ではポイントＰｘの重み値の平均値を示す。
【０１１０】
＜中間データ４３０のデータ構造＞：＝＜メトリクス値データ０＞，...，＜メトリクス値データＫ＞]
＜メトリクス値データＩ＞：＝[＜属性値＞，＜データ＞]
＜属性値＞：＝[＜ポイント番号＞，＜メトリクス値＞]
＜データ＞：＝[＜選択ポイントの構成データ０＞，...，＜選択ポイントの構成データＯ＞]
＜選択ポイントの構成データ＞：＝[＜要素値＞，＜重み＞，＜系列番号＞]
ポイント選択部１３６は、ステップＳ２１０２において全てのポイントについての計算が終了した場合、ポイント選択部１３６は、中間データ４３０を参照して最も重要なデータを探し、選択データ４１５として取り出す（ステップＳ２１０４）。
【０１１１】
ステップＳ２１０４における最も重要なデータとは、要素数の多いポイントに関するデータである。要素数の多いデータを選択すれば、できるだけ多くの要素がカバーできるポイントを選択することができる。この時点において、要素は、最大値となる要素又は最大値に対して同値類となる要素のみであるので、本実施例のポイント選択部１３６は、中間データ４３０を参照し、＜データ＞の要素数が多いものを選択する。もし要素数が同じ数である場合には、ポイント選択部１３６は、＜属性値＞の＜メトリクス値＞に基づき選択する順番をつける。
【０１１２】
本実施例の重み値は、特徴量の最大値と、該当するポイントの特徴量との差（ペナルティ）を示している。よって重み値が小さい方が良い。そこで本実施例で＜メトリクス値＞が小さいほうから順にポイントを選択する。
【０１１３】
図２４は、図２３に示す中間データを表形式とした例を示す図である。本実施例の中間データ４３０では、＜データ＞の要素数が多いポイントは、ポイントＰ１、Ｐ２、Ｐ３であり、それぞれのポイントにおいて要素数が３個ある。このポイントＰ１〜Ｐ３のメトリクス値（表中のscore）は、ポイントＰ１が０．００１５、ポイントＰ２が０．０００９、ポイントＰ３が０．００３８である。よってポイントＰ２のメトリクス値が一番小さいことがわかる。したがってポイント選択部１３６は、ステップＳ２１０４において、ポイントＰ２を選択し、選択データ４１５とする。図２５は、ポイントＰ２が選択された状態を示す図である。
【０１１４】
次に、図２１のステップＳ２００６の処理の詳細を説明する。本実施例の削減部１３７は、２種類の削減ポリシー（削減ポリシー０、削減ポリシー１）に基づき削減の処理を行う。削減ポリシーとは、ポイント選択部１３６により選択されたポイントの削減の仕方を定義したものである。
【０１１５】
図２６は、図２１のステップＳ２００６の処理の詳細を説明するフローチャートである。本実施例の削減部１３７は、削減ポリシー０又は削減ポリシー１の何れを用いるか判断する（ステップＳ２４０１）。ステップＳ２４０１において削減ポリシー０を用いる場合、削減部１３７は削減ポリシー０に基づき、系列リスト４２０を参照してポイントを削減し、ポイント別最大値データ３５０を書き換える（ステップＳ２４０２）。ステップＳ２４０１において削減ポリシー１を用いる場合、削減部１３７は削減ポリシー１に基づき、判定用テーブル４１０を参照してポイントを削減し、ポイント別最大値データ３５０を書き換える（ステップＳ２４０３）。
【０１１６】
始めに図２７ないし図３１を参照して、削減ポリシー０に基づく削減について説明する。図２７は、削減ポリシー０に基づく削減を説明するフローチャートである。
【０１１７】
削減ポリシー０は、系列リスト４２０、すなわち選択データ４１５に含まれる系列のリストを用いる。
【０１１８】
削減部１３７は、系列リスト４２０の全要素を評価したか否かを判断する（ステップＳ２５０１）。ステップＳ２５０１で全要素を評価していない場合、ポイント別最大値データ３５０からデータの削除を行い（ステップＳ２５０２）、ステップＳ２５０１へ戻る。
【０１１９】
以下にステップＳ２５０２の処理を説明する。
【０１２０】
削減部１３７は、ポイント別最大値データ３５０から、系列リスト４２０に含まれる系列を持つデータを削除する。本実施例の場合、選択データ４１５であるポイントＰ２に含まれる系列はＳ０、Ｓ２、Ｓ３である（図２３、２４参照）。ポイント別最大値データ３５０に削減ポリシー０を適用すると、例えば、ポイント別最大値データ３５０から系列Ｓ０のデータである[１０．２，０．００５３，０]、[１０．５，０．００２１，０]は削除される。その他の系列Ｓ０のデータも削除される。
【０１２１】
同様に系列Ｓ２、系列Ｓ３のデータもポイント別最大値データ３５０から削除される。その結果、空集合になるものがある。更にその空集合を取り除かれると、ポイント別最大値データ３５０は、図２８に示すように系列Ｓ１のデータのみとなる。図２８は、削減ポリシー０に基づきデータを削減したポイント別最大値データの例を示す図である。
【０１２２】
本実施例のポイント選択部１３６は、削減部１３７による削減処理が終了すると、図２１のステップＳ２００２へ戻り、ステップＳ２００２以降の処理を繰り返すことによって、ポイントＰ５を選択する。図２９は、ポイントＰ５が選択された状態を示す図である。以下にポイントＰ５が選択される様子について説明する。
【０１２３】
ポイント選択部１３６は、ステップＳ２００２へ戻り、全ての系列がエントリ済みか否かを判断する。このとき判定用テーブル４１０は、系列Ｓ０、Ｓ２、Ｓ３のみが真となっている。よってポイント選択部１３６はステップＳ２００３へ進む。
【０１２４】
ポイント選択部１３６は、系列Ｓ１のデータのみとなったポイント別最大値データ３５０を参照してステップＳ２００３の処理を行い、ポイントＰ５を選択データ４１５として新たに取り出し、結果データ３６０へ登録する。ポイント選択部１３６は、系列リスト４２０に系列Ｓ１を記憶し、判定用テーブル４１０の系列Ｓ１が真とされる。
【０１２５】
次に削減部１３７が削減ポリシー０に基づいて削減処理を行うと、図２８に示すポイント別最大値データ３５０から系列Ｓ１のデータが削除され、ポイント別最大値データ３５０は空集合となる。
【０１２６】
ポイント選択部１３６は、再度ステップＳ２００２へ戻り、全ての系列がエントリ済みか否かを判断する。このとき判定用テーブル４１０は、全ての系列が真となっているため、ポイント選択部１３６は処理を終了する。
【０１２７】
図５に戻って、以上で削減ポリシー０を用いた場合の図５のステップＳ５０６の処理が終了する。
【０１２８】
この処理で選択されたポイントは、図３０に示すように、結果データ３６０に登録されたポイントＰ２とポイントＰ５となる。図３０は、削減ポリシー０における結果データの一例を示す図である。
【０１２９】
次に本実施例の波形データ取得ポイント選択部１３０は、結果データ出力部１３８により結果データ３６０を結果データファイル３７０として出力する（ステップＳ５０７）。結果データ出力部１３８は、図３０に示す結果データ３６０をフォーマット変換し、図３１に示すデータを出力する。図３１は、削減ポリシー０における結果データをフォーマット変換した例を示す図である。
【０１３０】
以上のように本実施例では、削減ポリシー０に基づきポイントの選択を行った場合、図３２に示すように、系列Ｓ０、Ｓ２、Ｓ３ではポイントＰ２が選択され、系列Ｓ１ではポイントＰ５が選択されることがわかる。図３２は、削減ポリシー０において選択されたポイントを示す図である。
【０１３１】
次に、図３３ないし図３８を参照して、削減ポリシー１に基づく削減について説明する。図３３は、削減ポリシー１に基づく削減を説明するフローチャートである。
【０１３２】
削減ポリシー１は、判定用テーブル４１０を用いて削減するポイントを決定する。削減部１３７は、ポイント別最大値データ３５０の全要素を評価したか否かを判断する（ステップＳ３００１）。ステップＳ３００１で全要素を評価していない場合、判定用テーブル４１０を参照し、選択データ４１５を含む系列が登録されているか否かを判断する（ステップＳ３００２）。
【０１３３】
ステップＳ３００２において選択データ４１５を含む系列が登録されている場合、削減部１３７は、判定用テーブル４１０に登録されている系列のデータをポイント別最大値データ３５０から削除する（ステップＳ３００３）。
【０１３４】
例えばポイントＰ２が選択データ４１５として取り出されていた場合、判定用テーブル４１０は、ポイントＰ２に含まれる系列Ｓ０、Ｓ２、Ｓ３が真となっている。したがって削減部１３７は、ポイント別最大値データ３５０から系列Ｓ０、Ｓ２、Ｓ３以外の系列を含まないデータを削除する。
【０１３５】
すなわち削減部１３７は、ポイント別最大値データ３５０から、系列Ｓ１のデータを含まないデータを削除する。その結果、空集合になるものがある。更にその空集合を取り除かれると、ポイント別最大値データ３５０は、図３４に示すように、系列Ｓ１と系列Ｓ３のデータとなる。図３４は、削減ポリシー１に基づきデータを削減したポイント別最大値データの例を示す図である。
【０１３６】
本実施例のポイント選択部１３６は、削減部１３７による削減処理が終了すると、図２１のステップＳ２００２へ戻り、ステップＳ２００２以降の処理を繰り返すことによってポイントＰ６を選択する。図３５は、ポイントＰ６が選択された状態を示す図である。以下にポイントＰ６が選択される様子について説明する。
【０１３７】
ポイント選択部１３６は、ステップＳ２００２へ戻り、全ての系列がエントリ済みか否かを判断する。このとき判定用テーブル４１０は、系列Ｓ０、Ｓ２、Ｓ３のみが真となっている。よってポイント選択部１３６はステップＳ２００３へ進む。
【０１３８】
ポイント選択部１３６は、系列Ｓ１と系列Ｓ３のデータとなったポイント別最大値データ３５０を参照してステップＳ２００３の処理を行い、ポイントＰ６を選択データ４１５として新たに取り出して結果データ３６０へ登録する。ポイント選択部１３６は、系列リスト４２０に系列Ｓ１を記憶し、判定用テーブル４１０の系列Ｓ１が真とされる。
【０１３９】
次に削減部１３７が削減ポリシー１に基づいて削減処理を行うと、図３４に示すポイント別最大値データ３５０から、系列Ｓ１と系列Ｓ３以外の系列を含まないデータが削除される。すなわち図３４に示すポイント別最大値データ３５０から系列Ｓ０、系列Ｓ２を含まないデータが削除される。その結果ポイント別最大値データ３５０は空集合となる。
【０１４０】
ポイント選択部１３６は、再度ステップＳ２００２へ戻り、全ての系列がエントリ済みか否かを判断する。このとき判定用テーブル４１０は、全ての系列が真となっているため、ポイント選択部１３６は処理を終了する。
【０１４１】
図５に戻って、以上で削減ポリシー１を用いた場合の図５のステップＳ５０６の処理が終了する。
【０１４２】
この処理で選択されたポイントは、図３６に示すように、結果データ３６０に登録されたポイントＰ２とポイントＰ６となる。図３６は、削減ポリシー１における結果データの一例を示す図である。
【０１４３】
次に本実施例の波形データ取得ポイント選択部１３０は、結果データ出力部１３８により結果データ３６０を結果データファイル３７０として出力する（ステップＳ５０７）。結果データ出力部１３８は、図３６に示す結果データ３６０をフォーマット変換し、図３７に示すデータを出力する。図３７は、削減ポリシー１における結果データをフォーマット変換した例を示す図である。
【０１４４】
以上のように本実施例では、削減ポリシー１に基づきポイントの選択を行った場合、図３８に示すように、系列Ｓ０、Ｓ２、Ｓ３ではポイントＰ２が選択され、系列Ｓ１、Ｓ３ではポイントＰ６が選択されることがわかる。図３８は、削減ポリシー１において選択されたポイントを示す図である。
【０１４５】
尚本実施例において、削減ポリシー１のバリエーションとして、要素数が同じ場合、判定用テーブル４１０で偽が立っている要素数が多いものを選択し、偽が立っている要素数が同じものがある場合には、メトリクス値で選択するとしてもよい。このようにすると上述した方法に比べてより少ないポイントを選択できる可能性がある。
【０１４６】
以上に説明したように、本実施例では、重み付けの方針及び削減ポリシーに基づいて、自動的に波形データを取得するポイントを決定することができる。
【０１４７】
したがって、回路ブロック毎に特徴量の最大値となるポイントを選択する方法と比べて、波形データを取得するポイントの数を少なくすることができる。また例えば回路ブロックが多数存在した場合において、回路ブロック毎の最大値となるポイントから設計者の経験則により波形データを取得するポイントを決定する方法と比べて、自動的に回路ブロック単位で納得性が高いポイントを定量的に決定することができる。
【０１４８】
また、本実施例では、同値類にわけることにより、特異点を検出することも可能である。例えば、３個の同値類Ａ、Ｂ、Ｃに分けられていて、各々の最大値がａ、ｂ、ｃであって且つａ＞ｂ＞ｃの関係があるとき、同値類Ａの要素数が同値類Ｂの要素数の５％未満であれば同値類Ｂを最大値を含む同値類として選択するというルールをおけば、数が少ない突出したポイントを無視することが出来る。
【０１４９】
また本実施例では、同値類を検出するので、同値類間の大小関係により平均的な同値類に着目してもよいし、平均電力への応用を考えて、要素数が多い同値類に着目してもよい。または平均値を含む、あるいは近い同値類を選択するようにしてもよい。本実施例では、電力見積において最大電力に着目する場合が多いことを考慮して、最大値を含む同値類を例として説明した。
【０１５０】
以上に説明したように、本実施例によれば、波形データを取得するポイントを自動的に適切に選択することができる。
【０１５１】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
回路ブロック毎に特徴量を要素としてサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択する電力見積ポイント選択方法であって、
前記回路ブロック毎に前記特徴量の所定値を基準とする所定範囲内で前記要素をグループ化するグループ化手順と、
前記サンプリングしたポイントのうち、グループ化された前記要素の数が最も多いポイントを選択するポイント選択手順と、をコンピュータが実行する電力見積ポイント選択方法。
（付記２）
前記ポイント選択手順は、
前記回路ブロック毎の前記特徴量の所定値を含むグループの要素と、前記回路ブロックとを対応させたデータを前記ポイント毎にリストしたポイント別所定値データを作成する手順を有し、
前記ポイント別所定値データにおいて前記要素の数が最も多いポイントを選択する付記１記載の電力見積ポイント選択方法。
（付記３）
前記ポイント選択手順は、
前記回路ブロック毎に、前記特徴量の所定値と前記要素の特徴量との差分に基づきグループ内の前記要素に重み付けを行う重み付け手順と、
前記ポイント毎に、前記要素に付けられた重みの平均値を算出する手順とを有し、
前記要素の数が同じグループが存在する場合には、前記重みの平均値が小さいポイントから選択する付記１又は２記載の電力見積ポイント選択方法。
（付記４）
前記ポイント選択手順により選択されたポイントに基づき、前記ポイント別所定値データから削除するポイントのデータを決定する削除手順を有する付記１乃至３の何れか一項に記載の電力見積ポイント選択方法。
（付記５）
前記削除手順は、
前記ポイント別所定値データから、前記ポイント選択手順により選択されたポイントに含まれる要素と対応した前記回路ブロックのデータを削除する付記４記載の電力見積ポイント選択方法。
（付記６）
前記削除手順は、
前記ポイント別所定値データから、前記ポイント選択手順により選択されたポイントに含まれる要素と対応した前記回路ブロック以外の回路ブロックを含まないデータを削除する付記４記載の電力見積ポイント選択方法。
（付記７）
前記所定値は、前記特徴量の最大値である付記１乃至６の何れか一項に記載の電力見積ポイント選択方法。
（付記８）
回路ブロック毎に特徴量を要素としてサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択して消費電力の見積もりをシミュレーションするシミュレーション装置であって、
前記回路ブロック毎に前記特徴量の所定値を基準とする所定範囲内で前記要素をグループ化するグループ化手段と、
前記サンプリングしたポイントのうち、グループ化された前記要素の数が最も多いポイントを選択するポイント選択手段と、を有するシミュレーション装置。
（付記９）
回路ブロック毎に特徴量を要素としてサンプリングし、前記サンプリングしたポイントから消費電力を見積もるポイントを選択して消費電力の見積もりをシミュレーションするシミュレーション装置により実行される電力見積ポイント選択プログラムであって、
前記シミュレーション装置に、
前記回路ブロック毎に前記特徴量の所定値を基準とする所定範囲内で前記要素をグループ化するグループ化ステップと、
前記サンプリングしたポイントのうち、グループ化された前記要素の数が最も多いポイントを選択するポイント選択ステップと、を実行させる電力見積ポイント選択プログラム。
（付記１０）
付記９に記載の電力見積ポイント選択プログラムが記録されたコンピュータ読み取り可能な記憶媒体。
【０１５２】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１５３】
１００  シミュレーション装置
１１０  設計データ生成部
１２０  シミュレーション部
１３０  波形データ取得ポイント選択部
１３２  分類部
１３３  同値類化部
１３４  重み付け部
１３５  ポイント別データ作成部
１３６  ポイント選択部
１３７  削減部
１３８  結果データ出力部
１４０  電力見積部
１５０  計測回路ライブラリ
２３０  特徴量データファイル
２４０  波形データ
３２０  グループ化データ
３３０  同値類化データ
３４０  重み付同値類化データ
３５０  ポイント別最大値データ
３６０  結果データ
【図１】
0005423335.tif 000002
【図２】
0005423335.tif 000003
【図３】
0005423335.tif 000004
【図４】
0005423335.tif 000005
【図５】
0005423335.tif 000006
【図６】
0005423335.tif 000007
【図７】
0005423335.tif 000008
【図８】
0005423335.tif 000009
【図９】
0005423335.tif 000010
【図１０】
0005423335.tif 000011
【図１１】
0005423335.tif 000012
【図１２】
0005423335.tif 000013
【図１３】
0005423335.tif 000014
【図１４】
0005423335.tif 000015
【図１５】
0005423335.tif 000016
【図１６】
0005423335.tif 000017
【図１７】
0005423335.tif 000018
【図１８】
0005423335.tif 000019
【図１９】
0005423335.tif 000020
【図２０】
0005423335.tif 000021
【図２１】
0005423335.tif 000022
【図２２】
0005423335.tif 000023
【図２３】
0005423335.tif 000024
【図２４】
0005423335.tif 000025
【図２５】
0005423335.tif 000026
【図２６】
0005423335.tif 000027
【図２７】
0005423335.tif 000028
【図２８】
0005423335.tif 000029
【図２９】
0005423335.tif 000030
【図３０】
0005423335.tif 000031
【図３１】
0005423335.tif 000032
【図３２】
0005423335.tif 000033
【図３３】
0005423335.tif 000034
【図３４】
0005423335.tif 000035
【図３５】
0005423335.tif 000036
【図３６】
0005423335.tif 000037
【図３７】
0005423335.tif 000038
【図３８】
0005423335.tif 000039