(57)【要約】【課題】パラメータに設定可能な複数の値の中から、対象回路の性能が制約を満たすことができる値を容易に得ること。【解決手段】情報処理装置１００は、機械学習ＤＢ１０１を参照して、設計の対象回路１０３の仕様に関する特徴情報１０５に対応付けられた値がなく、複数の値のうちのいずれかの値をパラメータに設定して対象回路１０３に構成させた場合における対象回路１０３の性能が所定制約を満たさないと、対象回路１０３の性能についての向上度合いが閾値以上の値を選択する。情報処理装置１００は、選択した値をパラメータに設定して対象回路１０３をＦＰＧＡ１０４に構成させた場合における対象回路１０３の性能が所定制約を満たすと判定した場合に、受け付けた特徴情報と、選択した値と、を対応付けて機械学習ＤＢ１０１に格納する。【選択図】図１
2018063561.tif 000002
【特許請求の範囲】
【請求項１】
回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、
前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、
を記憶する記憶部を有するコンピュータに、
設計の対象回路の仕様に関する特徴情報を受け付け、
前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する、
処理を実行させることを特徴とする設計支援プログラム。
【請求項２】
前記第２対応関係情報は、前記複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の複数の性能の各々の性能についての前記性能の向上度合いと、を対応付け、
前記値を選択する処理では、
前記第２対応関係情報を参照して、前記複数の値のうち、前記いずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の複数の性能のうち前記所定制約を満たさない性能についての前記向上度合いが前記閾値以上の値を選択する、
ことを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記第１対応関係情報に格納する処理では、
選択した前記値のうち、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した値が複数ある場合に、選択した前記値から、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が最高の値と、受け付けた前記特徴情報と、を対応付けて格納する、
ことを特徴とする請求項１または２に記載の設計支援プログラム。
【請求項４】
前記第１対応関係情報には、前記特徴情報と、前記集積回路に前記回路を構成させる場合に用いる複数のパラメータの各々のパラメータについての前記パラメータに設定する値と、が対応付けられ、
前記第２対応関係情報は、前記複数のパラメータの各々のパラメータについて、前記パラメータに設定可能な複数の値の各々の値についての前記値と、前記値を前記パラメータに設定して前記回路を集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付け、
前記コンピュータに、
前記複数のパラメータの各々のパラメータについて選択した前記値に基づいて、前記複数のパラメータの各々に設定する値の組み合わせを生成する、
処理を実行させ、
前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
生成した前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする請求項１〜３のいずれか一つに記載の設計支援プログラム。
【請求項５】
前記コンピュータに、
前記第２対応関係情報を参照して、生成した複数の組み合わせの各々の組み合わせについて、前記組み合わせに含まれる値に対応付けられた前記向上度合いに基づいて、前記組み合わせの評価値を算出し、
前記複数の組み合わせのうち、算出した前記評価値に基づいて所定数の組み合わせを選択する、
処理を実行させ、
前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
前記所定数の組み合わせの各々の組み合わせについて、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする請求項４に記載の設計支援プログラム。
【請求項６】
前記コンピュータに、
前記所定数の組み合わせのうち、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した組み合わせが複数ある場合、前記対象回路の性能が最高の組み合わせを特定する、
処理を実行させ、
前記第１対応関係情報に格納する処理では、
受け付けた前記特徴情報と、特定した前記組み合わせと、を対応付けて前記第１対応関係情報に格納する、
ことを特徴とする請求項５に記載の設計支援プログラム。
【請求項７】
回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、
前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、
を記憶する記憶部を有するコンピュータが、
設計の対象回路の仕様に関する特徴情報を受け付け、
前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する、
処理を実行することを特徴とする設計支援方法。
【請求項８】
回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、を記憶する記憶部と、
設計の対象回路の仕様に関する特徴情報を受け付け、前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する制御部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援プログラム、設計支援方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、製造後に購入者や設計者が内部に所望の回路構成を設定できる集積回路としてＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が公知である。ＦＰＧＡに回路構成を設定する方法としては、ハードウェア記述言語を使って設計の対象回路の機能が記述されたネットリストを論理合成し、論理合成によって得られたゲートレベルのネットリストに基づいてＦＰＧＡに対してレイアウトを行う技術が公知である。また、ＦＰＧＡに回路を構成した後に、タイミング、エリア、消費電力等が所定の制約を満たしているか否かを判定する処理などが行われる。
【０００３】
ＦＰＧＡへの回路構成の設定や制約を満たすかの判定などの処理については、例えばＦＰＧＡの供給業者が提供しているアプリケーションプログラムによって行われる。設計者は、例えば、アプリケーションプログラムが提供している各種パラメータに値を設定してアプリケーションプログラムによってＦＰＧＡに対象回路を構成させる。各種パラメータに設定可能な値については、予め提供される。
【０００４】
先行技術としては、電気配線と光接続を有する回路の設計において、電子回路のレイアウト設計および評価により光接続リストおよび電子回路接続リストを生成し、光接続リストに基づく光接続の設計と、電子回路接続リストに基づく電子回路のレイアウト設計とを行う技術がある（例えば、以下特許文献１参照。）。
【０００５】
また、先行技術としては、シミュレーションに用いる入力パラメータの修正ごとに修正過程を記憶手段に記憶し、入力パラメータに初期値を与えた際のシミュレーション結果と目標出力との関係が類似している修正過程の記録を参照して入力パラメータの修正を行う技術がある（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１７４１５３号公報
【特許文献２】特開平２−１６２４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、パラメータに設定可能な値の中から、対象回路の性能が制約を満たすことができる値をパラメータに設定させることは困難である。例えば、複数の値の中から最適な値をパラメータに設定させることは、設計者の習熟度によっては困難である。また、パラメータに選択された値を設定して対象回路をＦＰＧＡに構成させるには時間がかかる。このため、複数の値のそれぞれを順番にパラメータに設定して対象回路の性能が制約を満たすようになるまで対象回路をＦＰＧＡに構成させることは困難である。
【０００８】
１つの側面では、本発明は、パラメータに設定可能な複数の値の中から、対象回路の性能が制約を満たすことができる値を容易に得ることができる設計支援プログラム、設計支援方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの実施態様では、回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、を記憶する記憶部を有するコンピュータが、設計の対象回路の仕様に関する特徴情報を受け付け、前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する処理を実行する設計支援プログラム、設計支援方法、および情報処理装置が提案される。
【発明の効果】
【００１０】
一態様によれば、パラメータに設定可能な複数の値の中から、対象回路の性能が制約を満たすことができる値を容易に得ることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明にかかる情報処理装置の一動作例を示す説明図である。
【図２】図２は、情報処理装置のハードウェア構成例を示す説明図である。
【図３】図３は、情報処理装置の機能的構成例を示すブロック図である。
【図４】図４は、機械学習ＤＢ例を示す説明図である。
【図５】図５は、有効性テーブル例を示す説明図である。
【図６】図６は、特徴情報の受け付け例を示す説明図である。
【図７】図７は、特徴情報の抽出例を示す説明図である。
【図８】図８は、タイミングが制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。
【図９】図９は、エリアおよび消費電力が制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。
【図１０】図１０は、タイミングとエリアおよび消費電力とを平均的に考慮した場合におけるパラメータの値の組み合わせ例を示す説明図である。
【図１１】図１１は、所定数の組み合わせの選択例を示す説明図である。
【図１２】図１２は、情報処理装置による設計支援処理手順例を示すフローチャート（その１）である。
【図１３】図１３は、情報処理装置による設計支援処理手順例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援方法、および情報処理装置の実施の形態を詳細に説明する。
【００１３】
図１は、本発明にかかる情報処理装置の一動作例を示す説明図である。情報処理装置１００は、対象回路１０３をＦＰＧＡ１０４に構成させる設計を支援するコンピュータである。情報処理装置１００としては、サーバやＰＣなどが挙げられる。
【００１４】
上述したように、従来、設計者は、ＦＰＧＡの供給業者などが提供しているアプリケーションプログラムによって対象回路をＦＰＧＡに構成させるために、アプリケーションプログラムのパラメータに値を設定する。
【００１５】
近年、対象回路の大規模化および高速化などによって、パラメータに設定される値によっては、ＦＰＧＡに構成された対象回路の性能が設計の制約を満たさない場合がある。そして、パラメータに設定可能な値の中から、対象回路の性能が制約を満たすことができる値をパラメータに設定させることは困難である。例えば、複数の値の中から最適な値をパラメータに設定させることは、設計者の習熟度によっては困難である。例えば、パラメータに値を設定して対象回路をＦＰＧＡに１回構成させるのにかかる時間は、アプリケーションプログラムを実行するコンピュータの性能に応じて異なるが、１日程度の場合もあるなど長い。このため、パラメータに設定可能な複数の値を順番にすべてパラメータに設定させ、対象回路の性能が制約を満たすようになるまでＦＰＧＡに対象回路を構成させるという手法を用いることは困難である。
【００１６】
そこで、情報処理装置１００は、対象回路１０３の特徴情報が機械学習ＤＢ（Ｄａｔａｂａｓｅ）１０１になく、ある値をパラメータに設定してＦＰＧＡ１０４へ対象回路１０３を構成させた場合に対象回路１０３の性能が所定制約を満たすか否かを判定する。情報処理装置１００は、対象回路１０３の性能が所定制約を満たさない時に、性能の向上度が高い値をパラメータに設定してＦＰＧＡ１０４に対象回路１０３を再構成させ、性能達成時の値と特徴情報とを機械学習ＤＢ１０１に格納する。これにより、短時間に最適な値を容易に得ることができる。また、設計者の習熟度に関係なく最適な値を得ることができる。
【００１７】
まず、図示省略するが記憶部は、第１対応関係情報と、第２対応関係情報と、を記憶する。第１対応関係情報は、過去に設計された回路の仕様に関する特徴情報と、過去に設計された回路を内部に構成可能な集積回路に回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた情報である。第１対応関係情報は、例えば、機械学習ＤＢ１０１と称する。本実施の形態では、回路を内部に構成可能な集積回路として、ＦＰＧＡ１０４を例に挙げるが、ＦＰＧＡ１０４に限らずその他のＰＬＤなどであってもよい。
【００１８】
第２対応関係情報は、パラメータに設定可能な複数の値の各々の値について、値と、値をパラメータに設定して回路を集積回路に構成させた場合における回路の性能の向上度合いと、を対応付けた情報である。第２対応関係情報は、例えば、有効性テーブル１０２と称する。図１の例では、パラメータＡに設定可能な値は、「ｏ」、「ｐ」、「ｑ」、「ｒ」、「ｓ」の５つである。
【００１９】
まず、情報処理装置１００は、設計の対象回路１０３の仕様に関する特徴情報１０５を受け付ける。図１の例では、情報処理装置１００は、特徴情報１０５として、クロック周波数と最大ゲート段数とを示す情報を受け付ける。
【００２０】
つぎに、情報処理装置１００は、機械学習ＤＢ１０１を参照して、受け付けた特徴情報１０５に対応付けられた値を検索する。情報処理装置１００は、受け付けた特徴情報１０５に対応付けられた値を検出した場合、検出した値を最適な値とする。
【００２１】
図１の例では、クロック周波数が「ｃ２」であり、最大ゲート段数が「ｄｄｄ」である特徴情報１０５は機械学習ＤＢ１０１に含まれていない。情報処理装置１００は、特徴情報１０５に対応付けられた値がない場合、有効性テーブル１０２を参照して、複数の値のうちのいずれかの値をパラメータに設定して対象回路１０３をＦＰＧＡ１０４に構成させる。そして、情報処理装置１００は、いずれかの値をパラメータに設定して対象回路１０３をＦＰＧＡ１０４に構成させた場合における対象回路１０３の性能が所定制約を満たすか否かを判定する。対象回路１０３の性能とは、対象回路１０３のタイミング、エリア、消費電力などの性能が挙げられる。
【００２２】
複数の値のうちのいずれかの値は、例えば、アプリケーションプログラムの開発者によって提供されたデフォルト値である。従来、例えば、対象回路１０３が大規模でなく、対象回路１０３の処理が高速でない場合、パラメータにはデフォルト値を設定することにより対象回路１０３の性能が制約を満たすように対象回路１０３をＦＰＧＡ１０４に構成させることができる。このように、デフォルト値であれば対象回路１０３の性能が制約を満たすように対象回路１０３をＦＰＧＡ１０４に構成させることができる可能性が高いため、情報処理装置１００は、まずパラメータにデフォルト値を設定する。
【００２３】
また、いずれかの値は、例えば、受け付けた特徴情報１０５に類似した特徴情報に対応付けられた値であってもよい。類似した特徴情報とは、例えば、受け付けた特徴情報１０５が示すクロック周波数との差が所定範囲内である特徴情報やクロック周波数と最大ゲート段数とのうちの少なくとも一方が同じである特徴情報などが挙げられる。また、いずれかの値は、向上度合いが後述する閾値以上の値であってもよい。
【００２４】
図１では、いずれかの値として「ｓ」を例に挙げる。情報処理装置１００は、対象回路１０３の性能が所定制約を満たすと判定した場合に、パラメータに設定した値を最適な値とする。
【００２５】
また、情報処理装置１００は、所定制約を満たさないと判定した場合に、対象回路１０３の性能についての向上度合いが閾値以上の値を複数の値から選択する。図１の例では、「ｏ」と「ｐ」とが選択される。閾値については、設計者が指定してもよいし、情報処理装置１００の開発者が予め定めていてもよい。ここで、情報処理装置１００は、いずれかの値を除外して閾値以上の値を選択してもよい。
【００２６】
つぎに、情報処理装置１００は、選択した値をパラメータに設定して対象回路１０３をＦＰＧＡ１０４に構成させた場合における対象回路１０３の性能が所定制約を満たすか否かを判定する。所定制約は、例えば、対象回路１０３の仕様などに基づいて予め定められてある。図１の例では、パラメータの値が「ｏ」の場合、対象回路１０３の性能が所定制約を満たす。図１の例では、パラメータの値が「ｐ」の場合、対象回路１０３の性能が所定制約を満たさない。
【００２７】
そして、情報処理装置１００は、対象回路１０３の性能が所定制約を満たすと判定した場合に、受け付けた特徴情報１０５と、選択した値と、を対応付けて機械学習ＤＢ１０１に格納する。図１に示すように、パラメータの値「ｏ」と特徴情報１０５とが対応付けられて機械学習ＤＢ１０１に格納される。これにより、短時間で、かつ設計者の習熟度に関係なく性能が制約を満たすことが可能な値を得ることができる。
【００２８】
（情報処理装置１００のハードウェア構成例）
図２は、情報処理装置のハードウェア構成例を示す説明図である。情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ディスクドライブ２０４と、ディスク２０５と、を有する。情報処理装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）２０６と、キーボード２０７と、マウス２０８と、ディスプレイ２０９と、を有する。また、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ディスクドライブ２０４と、Ｉ／Ｆ２０６と、キーボード２０７と、マウス２０８と、ディスプレイ２０９とは、バス２００によってそれぞれ接続される。
【００２９】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがってディスク２０５に対するデータのリード／ライトを制御する。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する。ディスク２０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００３０】
Ｉ／Ｆ２０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１０に接続され、このネットワーク２１０を介して他の装置に接続される。そして、Ｉ／Ｆ２０６は、ネットワーク２１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３１】
キーボード２０７やマウス２０８は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ２０９は、ＣＰＵ２０１の指示により、データを出力するインターフェースである。
【００３２】
また、図示を省略するが、情報処理装置１００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、情報処理装置１００には、プリンタなどの出力装置が設けられていてもよい。
【００３３】
また、本実施の形態では、情報処理装置１００のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。情報処理装置１００がサーバである場合、情報処理装置１００と、利用者が操作可能な装置やディスプレイ２０９などと、がネットワーク２１０を介して接続されてもよい。
【００３４】
（情報処理装置１００の機能的構成例）
図３は、情報処理装置の機能的構成例を示すブロック図である。情報処理装置１００は、入力受付部３０１と、抽出部３０２と、選択部３０３と、特定部３０４と、格納部３０５と、記憶部３１０と、を有する。入力受付部３０１から格納部３０５部までの制御部の処理は、例えば、図２に示すＣＰＵ２０１がアクセス可能なＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ２０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶される。
【００３５】
記憶部３１０は、ＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置である。記憶部３１０は、例えば、機械学習ＤＢ３１１や有効性テーブル３１２を記憶する。
【００３６】
図４は、機械学習ＤＢ例を示す説明図である。機械学習ＤＢ３１１は、回路の仕様に関する特徴情報と、回路をＦＰＧＡに構成させた場合に各パラメータに与える値と、を対応付けた第１対応関係情報である。機械学習ＤＢ３１１は、情報処理装置１００の開発者によって、設計ノウハウや過去の設計情報から回路の仕様に関する特徴情報を抽出することによって作成される。過去の設計情報は、例えば、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｒ）データ、ターゲットデバイスに対するレイアウトを行ったレイアウトデータやレイアウトによって得られるレポートなどである。
【００３７】
機械学習ＤＢ３１１は、特徴情報、正解予測値のフィールドを有する。特徴情報のフィールドには、過去に設計された回路の仕様に関する特徴を示す情報が設定される。機械学習ＤＢ３１１は、各フィールドに情報が設定されることによりレコード（例えば、４００−１〜４００−４）が記憶される。
【００３８】
正解予測値のフィールドには、過去に設計された回路をＦＰＧＡに構成させる場合に用いた各パラメータの値が設定される。特徴情報のフィールドには、デバイス、最大クロック周波数、クロック数、最大論理段数、使用率などのフィールドを有する。デバイスのフィールドには、例えば、回路を構成させるターゲットとなるＦＰＧＡの識別情報などが設定される。ＦＰＧＡの識別情報とは、例えば、ＦＰＧＡの名称などである。最大クロック周波数のフィールドには、回路を動作させるクロックの最大のクロック周波数が設定される。クロック数のフィールドには、回路内で使用されるクロックの本数が設定される。最大論理段数のフィールドには、パス上に設けられるゲート段数の最大値が設定される。使用率のフィールドには、回路をＦＰＧＡに構成させた場合のＦＰＧＡの使用率が設定される。
【００３９】
また、正解予測値のフィールドには、パラメータごとに値を設定可能なフィールドを有する。図４の例では、パラメータは、論理合成関連パラメータと、物理関連パラメータと、に大別される。論理合成関連パラメータのフィールドには、論理合成に用いられるパラメータの値が設定される。物理関連パラメータのフィールドには、ＦＰＧＡへのレイアウトに用いられるパラメータの値が設定される。
【００４０】
図４では、「Ｓｙｎｔｈ  Ｅｆｆｏｒｔ」と、「Ｔｉｍｉｎｇ  Ｄｒｉｖｅｎ」と、「Ｆｉｔｔｅｒ  Ｅｆｆｏｒｔ」と、「Ｐｈｙｓｉｃａｌ  Ｓｙｎｔｈ」と、などのように４つのパラメータを例に挙げている。図４の例では、各パラメータの値は、２つであるが、パラメータによっては、最大で７つ程度の値が設定可能である。また、パラメータは、５０〜６０種類程度ある。このため、各パラメータに設定可能な値が２つである場合、各パラメータの値の組み合わせは、２50〜60通り存在する。
【００４１】
図５は、有効性テーブル例を示す説明図である。有効性テーブル３１２は、パラメータの値と、複数の性能の各々についての性能の向上度合いと、を対応付けた第２対応関係情報である。
【００４２】
有効性テーブル３１２は、パラメータのフィールド、ターゲットのフィールドを有する。パラメータのフィールドには、各パラメータの値が設定される。パラメータは、上述したように、論理合成関連と物理関連に区別される。図５の例では、パラメータのフィールドには、パラメータごとにパラメータに設定可能な値が設定されてある。
【００４３】
ターゲットのフィールドには、タイミング、エリア、消費電力のフィールドを有する。タイミングのフィールドには、パラメータに値を設定してＦＰＧＡに回路を構成させた場合における回路のタイミングの向上度合いが設定される。回路のタイミングの向上度合いは、タイミングに関する性能値の向上度合いである。タイミングに関する性能値がスラック値である場合、スラック値が大きいほど、タイミングはよいことを示す。タイミングの向上度合いが高いとは、スラック値が大きくなる可能性が高いことを示す。
【００４４】
エリアのフィールドには、パラメータに値を設定してＦＰＧＡに回路を構成させた場合における回路のエリアが小さくなる度合いが設定される。エリアの向上度合いとは、エリアが小さくなる度合いである。また、消費電力のフィールドには、パラメータに値を設定してＦＰＧＡに回路を構成させた場合における回路の消費電力が小さくなる度合いが設定される。
【００４５】
回路の性能において、エリアと消費電力とは、比例関係にある。回路のエリアが大きくなれば、回路の消費電力も大きくなる。回路のエリアが小さくなれば、回路の消費電力も小さくなる。ここで、エリアや消費電力において、性能が向上するとは、エリアや消費電力が小さくなることを示す。
【００４６】
これに対して、回路の性能において、タイミングと、エリアおよび消費電力とは、反比例の関係にある。タイミングの指標値であるスラック値が小さくなる、エリアおよび消費電力は大きくなる。例えば、タイミングの指標値であるスラック値が大きくなると、エリアおよび消費電力は小さくなる。
【００４７】
ここでの各性能の向上度合いは、「１」、「２」、「３」の３段階で表されるが、これに限らず、種々変更可能である。「１」は、性能を改善する効果が無いことを示す。「２」は、性能を改善する効果が小さいことを示す。「３」は、性能を改善する効果が大きいことを示す。
【００４８】
パラメータ「Ｓｙｎｔｈ  Ｅｆｆｏｒｔ」に値「Ａｕｔｏ」が設定される場合、タイミングについての向上度合いは、「２」であり、エリアおよび消費電力についての向上度合いは、「２」である。
【００４９】
図４および図５において、パラメータの値のすべての組み合わせは、２×２×２×３の２４通りである。
【００５０】
つぎに、図３に示す入力受付部３０１は、設計の対象回路の仕様に関する特徴情報の入力を受け付ける。特徴情報の受け付ける例について図６を用いて説明する。
【００５１】
図６は、特徴情報の受け付け例を示す説明図である。入力受付部３０１は、例えば、設計者の操作入力によって、ディスプレイ２０９に表示された対象回路に関する各項目についての情報の入力を受け付ける。これにより、入力受付部３０１は、特徴情報を受け付ける。
【００５２】
また、情報処理装置１００は、特徴情報を直接受け付けることに限らず、設計の対象回路に関する各種情報から特徴情報を抽出してもよい。各種情報から特徴情報を抽出する例にいて図７を用いて説明する。
【００５３】
図７は、特徴情報の抽出例を示す説明図である。入力受付部３０１は、設計の対象回路のセルおよびセルの接続関係を示すＲＴＬネットリストおよびタイミング制約情報などの対象回路の設計に関する情報の入力を受け付ける。そして、抽出部３０２は、受け付けたＲＴＬネットリストおよびタイミング制約情報などから、設計の対象回路の仕様に関する特徴情報を抽出する。タイミング制約情報には、例えば、最大クロック周波数などが記述されてある。また、ＲＴＬネットリストには、例えば、最大ゲート段数などの情報が含まれる。
【００５４】
つぎに、図３の説明に戻って、パラメータが１つであり、対象回路の評価対象となる性能の種類が１つの場合を例に挙げて説明する。
【００５５】
選択部３０３は、機械学習ＤＢ３１１を参照して、入力受付部３０１によって受け付けた特徴情報に対応付けられた値を選択する。特定部３０４は、選択部３０３によって機械学習ＤＢ３１１に、入力受付部３０１によって受け付けた特徴情報に対応付けられた値を最適な値として特定する。
【００５６】
つぎに、選択部３０３は、機械学習ＤＢ３１１に入力受付部３０１によって受け付けた特徴情報に対応付けられた値がない場合、パラメータに設定可能な複数の値のうちのいずれかの値をパラメータに設定して対象回路をＦＰＧＡに構成させる。特定部３０４は、いずれかの値をパラメータに設定して対象回路をＦＰＧＡに構成させた場合における対象回路の性能が所定制約を満たすか否かを判定する。いずれかの値は、上述したように、例えば、デフォルト値や受け付けた特徴情報に類似する特徴情報に対応付けられた値である。
【００５７】
特定部３０４は、対象回路の性能が所定制約を満たすと判断した場合、いずれかの値を最適な値として特定する。格納部３０５は、受け付けた特徴情報と、いずれかの値と、を対応付けて機械学習ＤＢ３１１に格納する。
【００５８】
選択部３０３は、対象回路の性能が所定制約を満たさないと判定した場合、有効性テーブル３１２を参照して、対象回路の性能についての向上度合いが閾値以上の値を複数の値から選択する。そして、選択部３０３は、選択した値を適用する。ここで、適用するとは、ターゲットのＦＰＧＡに対象回路を構成させることを示す。ターゲットのＦＰＧＡに対象回路を構成させるとは、例えば、ＦＰＧＡを対象回路に構成可能なアプリケーションプログラムによって行われる。アプリケーションプログラムは、情報処理装置１００が実行してもよいし、情報処理装置１００がアクセス可能な他の装置が実行してもよい。
【００５９】
特定部３０４は、選択された値をパラメータに設定して対象回路をＦＰＧＡに構成させた場合における対象回路の性能が所定制約を満たすか否かを判定する。所定制約は、例えば、設計者や対象回路の仕様によって予め定められてある。対象回路の性能としては、例えば、タイミング、エリア、消費電力などが挙げられる。
【００６０】
特定部３０４は、例えば、選択された値をパラメータに設定して対象回路をＦＰＧＡに構成させた場合における対象回路の性能が所定制約を満たすと判定した場合に、選択部３０３によって選択された値を最適な値として特定する。格納部３０５は、受け付けた特徴情報と、最適な値と、を対応付けて機械学習ＤＢ３１１に格納する。
【００６１】
また、選択された値が複数ある場合、特定部３０４は、選択された複数の値の各々について対象回路をＦＰＧＡに構成させた場合における対象回路の性能が所定制約を満たすか否かを判定する。特定部３０４は、複数の値において対象回路の性能が所定制約を満たすと判定した場合、複数の値のうち、対象回路の性能が最高となる場合の値を最適な値として特定する。そして、格納部３０５は、受け付けた特徴情報と、最適な値と、を対応付けて機械学習ＤＢ３１１に格納する。
【００６２】
ここで、アプリケーションプログラムは、例えば、対象回路のＲＴＬネットリストを論理合成したゲートレベルのネットリストに基づいて、ターゲットのＦＰＧＡに対して配置配線処理を行う。そして、アプリケーションプログラムは、配置配線処理結果に基づいて、対象回路のエリアを特定する。また、アプリケーションプログラムは、配置配線処理結果に基づいて、タイミング解析を行う。また、アプリケーションプログラムは、配置配線処理結果に基づいて、消費電力の解析を行う。
【００６３】
つぎに、パラメータが複数あり、かつ対象回路の性能が複数ある場合について説明する。
【００６４】
選択部３０３は、例えば、受け付けた特徴情報に対応する複数のパラメータの各々に設定する値の組み合わせを選択する。
【００６５】
特定部３０４は、選択部３０３によって機械学習ＤＢ３１１に、入力受付部３０１によって受け付けた特徴情報に対応付けられた組み合わせを最適解として特定する。
【００６６】
つぎに、選択部３０３は、機械学習ＤＢ３１１に入力受付部３０１によって受け付けた特徴情報に対応付けられた組み合わせがない場合、いずれかの組み合わせを複数のパラメータに設定して対象回路をＦＰＧＡに構成させる。特定部３０４は、いずれかの組み合わせを複数のパラメータに設定して対象回路をＦＰＧＡに構成させた場合における対象回路の複数の性能のそれぞれが所定制約を満たすか否かを判定する。いずれかの組み合わせは、例えば、デフォルト値の組み合わせや受け付けた特徴情報に類似する特徴情報に対応付けられた組み合わせである。
【００６７】
特定部３０４は、対象回路の複数の性能のそれぞれが所定制約を満たすと判断した場合、いずれかの組み合わせを最適解として特定する。
【００６８】
選択部３０３は、対象回路の複数の性能のいずれかの性能が所定制約を満たさないと判定した場合、有効性テーブル３１２を参照して、複数のパラメータの各々のパラメータについて、所定制約を満たさない性能についての向上度合いが閾値以上の値を選択する。ここで、選択部３０３は、複数種類の性能が所定制約を満たさない場合、所定制約を満たさないすべての性能についての向上度合いが閾値以上の値を選択する。また、選択部３０３は、複数種類の性能が所定制約を満たさない場合、所定制約を満たさないすべての性能についての向上度合いが閾値の値を選択してもよい。
【００６９】
そして、選択部３０３は、選択した値に基づいて、複数のパラメータの各々に設定する値の組み合わせを生成する。選択部３０３は、選択した組み合わせを適用する。図８〜図１０を用いて組み合わせ例を説明する。選択部３０３は、いずれかの組み合わせを除外した組み合わせを生成してもよい。
【００７０】
図８は、タイミングが制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。選択部３０３は、例えば、タイミングが所定制約を満たしていない場合に、タイミングについての向上度合いが閾値以上のパラメータの値の組み合わせを選択する。閾値は、例えば、「２」とする。図８では、タイミングについての向上度合いが「２」以上のパラメータの値が点線枠で囲われている。
【００７１】
パラメータが４種類あり、閾値以上のパラメータの値として各パラメータの値は２つずつ選択される。図８の例では、選択部３０３は、選択した値に基づいて、２×２×２×２の１６通りのパラメータの値の組み合わせを生成する。特定部３０４は、１６通りの組み合わせから最適解を特定する。これにより、パラメータの値のすべての組み合わせは２４通りであるため、特定部３０４は、２／３の実行数によって最適解を特定できる。実行とは、上述したアプリケーションによって対象回路をＦＰＧＡに構成させ、かつ性能の検証を行うことを示す。したがって、最適解を得るための時間を短縮することができる。
【００７２】
図９は、エリアおよび消費電力が制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。選択部３０３は、エリアおよび消費電力についての向上度合いが閾値以上のパラメータの値を選択する。閾値は、例えば、「２」とする。図９では、エリアおよび消費電力についての向上度合いが「２」以上のパラメータの値が点線枠で囲われている。
【００７３】
パラメータが４種類ある。そして、閾値以上のパラメータの値として、パラメータ「Ｓｙｎｔｈ  Ｅｆｆｏｒｔ」，「Ｔｉｍｉｎｇ  Ｄｒｉｖｅｎ」，「Ｆｉｔｔｅｒ  Ｅｆｆｏｒｔ」の値は１つ選択され、パラメータ「Ｐｈｙｓｉｃａｌ  Ｓｙｎｔｈｅｓｉｓ  Ｅｆｆｏｒｔ  Ｌｅｖｅｌ」の値は２つ選択される。図９の例では、選択部３０３は、選択した値に基づいて、１×１×１×２の２通りのパラメータの値の組み合わせを生成する。特定部３０４は、２通りの組み合わせから最適解を特定する。これにより、元々のパラメータの値のすべての組み合わせは２４通りであるため、特定部３０４は、１／１２の実行数で最適解を特定できる。したがって、最適解を得るための時間を短縮することができる。
【００７４】
図１０は、タイミングとエリアおよび消費電力とを平均的に考慮した場合におけるパラメータの値の組み合わせ例を示す説明図である。選択部３０３は、エリアおよび消費電力についての向上度合いが閾値以上のパラメータの値を選択する。または、選択部３０３は、エリアおよび消費電力についての向上度合いが閾値のパラメータの値を選択する。ここでは、閾値は２である。図１０では、エリアおよび消費電力についての向上度合いが「２」のパラメータの値が点線枠で囲われている。
【００７５】
パラメータが４種類あり、そして、閾値以上のパラメータの値として、各パラメータの値は１つずつ選択される。図１０の例では、選択部３０３は、選択した値に基づいて、１×１×１×１の１通りのパラメータの値の組み合わせを生成する。特定部３０４は、１通りのパラメータの値の組み合わせから最適解を特定する。これにより、パラメータの値のすべての組み合わせは１通りであるため、特定部３０４は、１／２４の実行数で最適解を特定できる。したがって、最適解を得るための時間を短縮することができる。
【００７６】
つぎに、特定部３０４は、選択された組み合わせをパラメータに設定して対象回路をＦＰＧＡに構成させた場合における対象回路の複数の性能のそれぞれが所定制約を満たすか否かを判定する。
【００７７】
特定部３０４は、選択された組み合わせを複数のパラメータに設定して対象回路を構成させた場合における対象回路の複数の性能のそれぞれが所定制約を満たすと判定した場合に、選択された組み合わせを最適解として特定する。そして、格納部３０５は、受け付けた特徴情報と、選択された組み合わせと、を対応付けて機械学習ＤＢ３１１に格納する。
【００７８】
また、生成された組み合わせが多い場合に、組み合わせの各々について対象回路をＦＰＧＡに構成させると時間がかかる。そこで、選択部３０３は、複数の組み合わせから所定数の組み合わせを選択してもよい。ここで、所定数については、入力受付部３０１によって設計者からの入力を受け付けてもよいし、情報処理装置１００の開発者によって予め定められていてもよい。
【００７９】
選択部３０３は、例えば、選択された組み合わせごとに、組み合わせに含まれるパラメータの値に対応付けられた向上度合いに基づいて、組み合わせの評価値を算出する。そして、選択部３０３は、複数の組み合わせのうち、算出した評価値に基づいて所定数の組み合わせを選択する。評価値は、例えば、向上度合いの合計値であってもよいし、向上度合いの平均値であってもよいし、特に限定しない。
【００８０】
ここでは、評価値が向上度合いの合計値である場合に所定数の組み合わせを選択する例について説明する。選択部３０３は、評価値である向上度合いの合計値の降順に組み合わせを並べ替える。そして、選択部３０３は、降順に所定数の組み合わせを選択する。
【００８１】
図１１は、所定数の組み合わせの選択例を示す説明図である。図１１には、図８に示す１６通りの組み合わせを合計値が高い順に並べた例を示す。そして、所定数は、例えば、５である。このため、選択部３０３は、合計値が高い順に５通りの組み合わせを選択する。そして、選択部３０３は、選択した組み合わせを適用する。
【００８２】
特定部３０４は、選択された組み合わせの各々について、複数のパラメータに組み合わせを設定して対象回路をＦＰＧＡに構成させた場合における対象回路の複数の性能の各々が所定制約を満たすか否かを判定する。
【００８３】
特定部３０４は、対象回路の複数の性能の各々が所定制約を満たすと判定した組み合わせを最適解として特定する。そして、格納部３０５は、特定部３０４によって特定された最適解と、受け付けた特徴情報と、を対応付けて機械学習ＤＢ３１１に格納する。
【００８４】
また、特定部３０４は、選択した組み合わせのうち、対象回路の複数の性能の各々が所定制約を満たすと判定した組み合わせが複数ある場合、複数の組み合わせから、複数の性能のうちのいずれかの性能が最も高い組み合わせを最適解として特定する。ここでは、いずれかの性能として消費電力を例に挙げて説明する。特定部３０４は、例えば、性能の制約を満たすと判定した複数の組み合わせのうち、消費電力が最も低い組み合わせを最適解として特定する。
【００８５】
例えば、図１１に示す選択された組み合わせのうち、対象回路の各性能が所定制約を満たした組み合わせが、１番目の組み合わせと２番目の組み合わせとする。
【００８６】
（情報処理装置１００による設計支援処理手順例）
図１２および図１３は、情報処理装置による設計支援処理手順例を示すフローチャートである。情報処理装置１００は、例えば、設計の対象回路に関する各種情報から特徴情報を抽出する（ステップＳ１２０１）。ステップＳ１２０１において、情報処理装置１００は、抽出部３０２により受け付けた対象回路に関する各種情報から特徴情報を抽出する処理の代わりに、入力受付部３０１によって対象回路の仕様に関する特徴情報そのものを受け付けてもよい。
【００８７】
つぎに、情報処理装置１００は、機械学習ＤＢ３１１に抽出した特徴情報があるか否かを判断する（ステップＳ１２０２）。情報処理装置１００は、機械学習ＤＢ３１１に抽出した特徴情報があると判断した場合（ステップＳ１２０２：Ｙｅｓ）、抽出した特徴情報に対応する各パラメータの値の組み合わせを最適解として適用し（ステップＳ１２０３）、一連の処理を終了する。ここで、組み合わせを適用するとは、各パラメータに組み合わせを設定してアプリケーションプログラムによって対象回路をＦＰＧＡに構成させて対象回路の性能を検証させることを示す。
【００８８】
情報処理装置１００は、機械学習ＤＢ３１１に抽出した特徴情報がないと判断した場合（ステップＳ１２０２：Ｎｏ）、デフォルト値の組み合わせを各パラメータの最適解候補として選択して適用する（ステップＳ１２０４）。つぎに、情報処理装置１００は、対象回路の各性能が所定制約を満たしたか否かを判断する（ステップＳ１２０５）。情報処理装置１００は、対象回路の各性能が所定制約を満たしたと判断した場合（ステップＳ１２０５：Ｙｅｓ）、最適解候補を最適解として選択する（ステップＳ１２０６）。情報処理装置１００は、抽出した特徴情報と最適解とを対応付けて機械学習ＤＢ３１１に登録し（ステップＳ１２０７）、一連の処理を終了する。
【００８９】
情報処理装置１００は、対象回路の各性能が所定制約を満たしていないと判断した場合（ステップＳ１２０５：Ｎｏ）、図１３に示すステップＳ１３０１へ移行する。情報処理装置１００は、有効性テーブル３１２を参照して、各パラメータについて、対象回路の各性能のうち制約を未達成の性能についての向上度合いが閾値以上の値を選択する（ステップＳ１３０１）。情報処理装置１００は、複数のパラメータに設定する値の組み合わせを生成する（ステップＳ１３０２）。つぎに、情報処理装置１００は、組み合わせごとに組み合わせに含まれるパラメータの値に対応する向上度合いを合計する（ステップＳ１３０３）。そして、情報処理装置１００は、合計値の降順に組み合わせを並べ替え（ステップＳ１３０４）。つぎに、情報処理装置１００は、降順に所定数の組み合わせを最適解候補として選択する（ステップＳ１３０５）。
【００９０】
つぎに、情報処理装置１００は、選択した最適解候補ごとに適用する（ステップＳ１３０６）。そして、情報処理装置１００は、各性能が所定制約を満たした最適解候補があるか否かを判断する（ステップＳ１３０７）。
【００９１】
対象回路の各性能が所定制約を満たした最適解候補があると判断した場合（ステップＳ１３０７：Ｙｅｓ）、情報処理装置１００は、エリアおよび消費電力が最小の最適解候補を最適解として選択する（ステップＳ１３０８）。情報処理装置１００は、抽出した特徴情報と最適解とを対応付けて機械学習ＤＢ３１１に登録し（ステップＳ１３０９）、一連の処理を終了する。ステップＳ１３０７において、対象回路の各性能が所定制約を満たした組み合わせがないと判断した場合（ステップＳ１３０７：Ｎｏ）、情報処理装置１００は、パラメータにより調整できないことを通知し（ステップＳ１３１０）、一連の処理を終了する。
【００９２】
以上説明したように、情報処理装置１００は、対象回路の特徴情報が機械学習ＤＢになく、ある値をパラメータとして対象回路をＦＰＧＡに構成させた時の性能が未達成の時に、性能向上度が高い値をパラメータとして再構成させる。そして、情報処理装置１００は、性能達成時の値と特徴情報を機械学習ＤＢに格納する。これにより、短時間で、設計者の習熟度によらずに、対象回路の性能制約を満たすことができるパラメータの値を得ることができる。したがって、設計時間の短縮化を図ることができる。
【００９３】
また、情報処理装置１００は、いずれかの値をパラメータに設定して対象回路をＦＰＧＡに構成させた場合における対象回路の複数の性能のうち所定制約を満たさない性能についての向上度合いが閾値以上の値を選択して再構成させる。これにより、未達成の性能を向上させるように再構成させることができる。
【００９４】
また、情報処理装置１００は、対象回路の性能が所定制約を満たすと判定したパラメータの値が複数ある場合に、選択したパラメータの値のうち対象回路の性能が最高となる値を最適な値とする。これにより、性能がより高くなるように対象回路をＦＰＧＡに構成させることができる。
【００９５】
また、情報処理装置１００は、パラメータが複数ある場合、各パラメータについて選択した値に基づいて、複数のパラメータの各々に設定する値の組み合わせを生成し、組み合わせごとに複数のパラメータに設定して対象回路を構成させる。これにより、パラメータが複数あっても対象回路の性能が制約を満たすようなパラメータの値の組み合わせを容易に得ることができる。
【００９６】
また、情報処理装置１００は、組み合わせが多い場合に、組み合わせに含まれる値に対応付けられた度合いに基づいて組み合わせの評価値を算出して評価値が高い順に所定数の組み合わせを選択する。これにより、対象回路をＦＰＧＡに構成させる回数を低減させることができ、設計時間の短縮化を図ることができる。
【００９７】
また、情報処理装置１００は、対象回路の性能が制約を満たすと判定した組み合わせが複数ある場合、対象回路の性能が最高の組み合わせを最適解として特定する。これにより、性能がより高くなるように対象回路をＦＰＧＡに構成させることができる。
【００９８】
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１００】
（付記１）回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、
前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、
を記憶する記憶部を有するコンピュータに、
設計の対象回路の仕様に関する特徴情報を受け付け、
前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する、
処理を実行させることを特徴とする設計支援プログラム。
【０１０１】
（付記２）前記第２対応関係情報は、前記複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の複数の性能の各々の性能についての前記性能の向上度合いと、を対応付け、
前記値を選択する処理では、
前記第２対応関係情報を参照して、前記複数の値のうち、前記いずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の複数の性能のうち前記所定制約を満たさない性能についての前記向上度合いが前記閾値以上の値を選択する、
ことを特徴とする付記１に記載の設計支援プログラム。
【０１０２】
（付記３）前記第１対応関係情報に格納する処理では、
選択した前記値のうち、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した値が複数ある場合に、選択した前記値から、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が最高の値と、受け付けた前記特徴情報と、を対応付けて格納する、
ことを特徴とする付記１または２に記載の設計支援プログラム。
【０１０３】
（付記４）前記第１対応関係情報には、前記特徴情報と、前記集積回路に前記回路を構成させる場合に用いる複数のパラメータの各々のパラメータについての前記パラメータに設定する値と、が対応付けられ、
前記第２対応関係情報は、前記複数のパラメータの各々のパラメータについて、前記パラメータに設定可能な複数の値の各々の値についての前記値と、前記値を前記パラメータに設定して前記回路を集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付け、
前記コンピュータに、
前記複数のパラメータの各々のパラメータについて選択した前記値に基づいて、前記複数のパラメータの各々に設定する値の組み合わせを生成する、
処理を実行させ、
前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
生成した前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする付記１〜３のいずれか一つに記載の設計支援プログラム。
【０１０４】
（付記５）前記コンピュータに、
前記第２対応関係情報を参照して、生成した複数の組み合わせの各々の組み合わせについて、前記組み合わせに含まれる値に対応付けられた前記向上度合いに基づいて、前記組み合わせの評価値を算出し、
前記複数の組み合わせのうち、算出した前記評価値に基づいて所定数の組み合わせを選択する、
処理を実行させ、
前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
前記所定数の組み合わせの各々の組み合わせについて、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする付記４に記載の設計支援プログラム。
【０１０５】
（付記６）前記コンピュータに、
前記所定数の組み合わせのうち、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した組み合わせが複数ある場合、前記対象回路の性能が最高の組み合わせを特定する、
処理を実行させ、
前記第１対応関係情報に格納する処理では、
受け付けた前記特徴情報と、特定した前記組み合わせと、を対応付けて前記第１対応関係情報に格納する、
ことを特徴とする付記５に記載の設計支援プログラム。
【０１０６】
（付記７）前記コンピュータに、
前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たす場合、受け付けた前記特徴情報と、前記いずれかの値と、を対応付けて前記第１対応関係情報に格納する、
処理を実行させることを特徴とする付記１〜６のいずれか一つに記載の設計支援プログラム。
【０１０７】
（付記８）回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、
前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、
を記憶する記憶部を有するコンピュータが、
設計の対象回路の仕様に関する特徴情報を受け付け、
前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する、
処理を実行することを特徴とする設計支援方法。
【０１０８】
（付記９）回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第１対応関係情報と、前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第２対応関係情報と、を記憶する記憶部と、
設計の対象回路の仕様に関する特徴情報を受け付け、前記第１対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第２対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第１対応関係情報に格納する制御部と、
を有することを特徴とする情報処理装置。
【符号の説明】
【０１０９】
１００  情報処理装置
１０１，３１１  機械学習ＤＢ
１０２，３１２  有効性テーブル
１０３  対象回路
１０４  ＦＰＧＡ
１０５  特徴情報
３０１  入力受付部
３０２  抽出部
３０３  選択部
３０４  特定部
３０５  格納部
３１０  記憶部
【図１】
2018063561.tif 000003
【図２】
2018063561.tif 000004
【図３】
2018063561.tif 000005
【図４】
2018063561.tif 000006
【図５】
2018063561.tif 000007
【図６】
2018063561.tif 000008
【図７】
2018063561.tif 000009
【図８】
2018063561.tif 000010
【図９】
2018063561.tif 000011
【図１０】
2018063561.tif 000012
【図１１】
2018063561.tif 000013
【図１２】
2018063561.tif 000014
【図１３】
2018063561.tif 000015