JP6787024B2 - 設計支援プログラム、設計支援方法、および情報処理装置 - Google Patents

設計支援プログラム、設計支援方法、および情報処理装置 Download PDF

Info

Publication number
JP6787024B2
JP6787024B2 JP2016201330A JP2016201330A JP6787024B2 JP 6787024 B2 JP6787024 B2 JP 6787024B2 JP 2016201330 A JP2016201330 A JP 2016201330A JP 2016201330 A JP2016201330 A JP 2016201330A JP 6787024 B2 JP6787024 B2 JP 6787024B2
Authority
JP
Japan
Prior art keywords
value
circuit
parameter
performance
target circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016201330A
Other languages
English (en)
Other versions
JP2018063561A (ja
Inventor
通高 橋本
通高 橋本
亮 水谷
亮 水谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016201330A priority Critical patent/JP6787024B2/ja
Priority to US15/690,491 priority patent/US10380304B2/en
Publication of JP2018063561A publication Critical patent/JP2018063561A/ja
Application granted granted Critical
Publication of JP6787024B2 publication Critical patent/JP6787024B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、設計支援プログラム、設計支援方法、および情報処理装置に関する。
従来、製造後に購入者や設計者が内部に所望の回路構成を設定できる集積回路としてFPGA(Field Programmable Gate Array)が公知である。FPGAに回路構成を設定する方法としては、ハードウェア記述言語を使って設計の対象回路の機能が記述されたネットリストを論理合成し、論理合成によって得られたゲートレベルのネットリストに基づいてFPGAに対してレイアウトを行う技術が公知である。また、FPGAに回路を構成した後に、タイミング、エリア、消費電力等が所定の制約を満たしているか否かを判定する処理などが行われる。
FPGAへの回路構成の設定や制約を満たすかの判定などの処理については、例えばFPGAの供給業者が提供しているアプリケーションプログラムによって行われる。設計者は、例えば、アプリケーションプログラムが提供している各種パラメータに値を設定してアプリケーションプログラムによってFPGAに対象回路を構成させる。各種パラメータに設定可能な値については、予め提供される。
先行技術としては、電気配線と光接続を有する回路の設計において、電子回路のレイアウト設計および評価により光接続リストおよび電子回路接続リストを生成し、光接続リストに基づく光接続の設計と、電子回路接続リストに基づく電子回路のレイアウト設計とを行う技術がある(例えば、以下特許文献1参照。)。
また、先行技術としては、シミュレーションに用いる入力パラメータの修正ごとに修正過程を記憶手段に記憶し、入力パラメータに初期値を与えた際のシミュレーション結果と目標出力との関係が類似している修正過程の記録を参照して入力パラメータの修正を行う技術がある(例えば、以下特許文献2参照。)。
特開2005−174153号公報 特開平2−162466号公報
しかしながら、パラメータに設定可能な値の中から、対象回路の性能が制約を満たすことができる値をパラメータに設定させることは困難である。例えば、複数の値の中から最適な値をパラメータに設定させることは、設計者の習熟度によっては困難である。また、パラメータに選択された値を設定して対象回路をFPGAに構成させるには時間がかかる。このため、複数の値のそれぞれを順番にパラメータに設定して対象回路の性能が制約を満たすようになるまで対象回路をFPGAに構成させることは困難である。
1つの側面では、本発明は、パラメータに設定可能な複数の値の中から、対象回路の性能が制約を満たすことができる値を容易に得ることができる設計支援プログラム、設計支援方法、および情報処理装置を提供することを目的とする。
1つの実施態様では、回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、を記憶する記憶部を有するコンピュータが、設計の対象回路の仕様に関する特徴情報を受け付け、前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する処理を実行する設計支援プログラム、設計支援方法、および情報処理装置が提案される。
一態様によれば、パラメータに設定可能な複数の値の中から、対象回路の性能が制約を満たすことができる値を容易に得ることができる。
図1は、本発明にかかる情報処理装置の一動作例を示す説明図である。 図2は、情報処理装置のハードウェア構成例を示す説明図である。 図3は、情報処理装置の機能的構成例を示すブロック図である。 図4は、機械学習DB例を示す説明図である。 図5は、有効性テーブル例を示す説明図である。 図6は、特徴情報の受け付け例を示す説明図である。 図7は、特徴情報の抽出例を示す説明図である。 図8は、タイミングが制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。 図9は、エリアおよび消費電力が制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。 図10は、タイミングとエリアおよび消費電力とを平均的に考慮した場合におけるパラメータの値の組み合わせ例を示す説明図である。 図11は、所定数の組み合わせの選択例を示す説明図である。 図12は、情報処理装置による設計支援処理手順例を示すフローチャート(その1)である。 図13は、情報処理装置による設計支援処理手順例を示すフローチャート(その2)である。
以下に添付図面を参照して、本発明にかかる設計支援プログラム、設計支援方法、および情報処理装置の実施の形態を詳細に説明する。
図1は、本発明にかかる情報処理装置の一動作例を示す説明図である。情報処理装置100は、対象回路103をFPGA104に構成させる設計を支援するコンピュータである。情報処理装置100としては、サーバやPCなどが挙げられる。
上述したように、従来、設計者は、FPGAの供給業者などが提供しているアプリケーションプログラムによって対象回路をFPGAに構成させるために、アプリケーションプログラムのパラメータに値を設定する。
近年、対象回路の大規模化および高速化などによって、パラメータに設定される値によっては、FPGAに構成された対象回路の性能が設計の制約を満たさない場合がある。そして、パラメータに設定可能な値の中から、対象回路の性能が制約を満たすことができる値をパラメータに設定させることは困難である。例えば、複数の値の中から最適な値をパラメータに設定させることは、設計者の習熟度によっては困難である。例えば、パラメータに値を設定して対象回路をFPGAに1回構成させるのにかかる時間は、アプリケーションプログラムを実行するコンピュータの性能に応じて異なるが、1日程度の場合もあるなど長い。このため、パラメータに設定可能な複数の値を順番にすべてパラメータに設定させ、対象回路の性能が制約を満たすようになるまでFPGAに対象回路を構成させるという手法を用いることは困難である。
そこで、情報処理装置100は、対象回路103の特徴情報が機械学習DB(Database)101になく、ある値をパラメータに設定してFPGA104へ対象回路103を構成させた場合に対象回路103の性能が所定制約を満たすか否かを判定する。情報処理装置100は、対象回路103の性能が所定制約を満たさない時に、性能の向上度が高い値をパラメータに設定してFPGA104に対象回路103を再構成させ、性能達成時の値と特徴情報とを機械学習DB101に格納する。これにより、短時間に最適な値を容易に得ることができる。また、設計者の習熟度に関係なく最適な値を得ることができる。
まず、図示省略するが記憶部は、第1対応関係情報と、第2対応関係情報と、を記憶する。第1対応関係情報は、過去に設計された回路の仕様に関する特徴情報と、過去に設計された回路を内部に構成可能な集積回路に回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた情報である。第1対応関係情報は、例えば、機械学習DB101と称する。本実施の形態では、回路を内部に構成可能な集積回路として、FPGA104を例に挙げるが、FPGA104に限らずその他のPLDなどであってもよい。
第2対応関係情報は、パラメータに設定可能な複数の値の各々の値について、値と、値をパラメータに設定して回路を集積回路に構成させた場合における回路の性能の向上度合いと、を対応付けた情報である。第2対応関係情報は、例えば、有効性テーブル102と称する。図1の例では、パラメータAに設定可能な値は、「o」、「p」、「q」、「r」、「s」の5つである。
まず、情報処理装置100は、設計の対象回路103の仕様に関する特徴情報105を受け付ける。図1の例では、情報処理装置100は、特徴情報105として、クロック周波数と最大ゲート段数とを示す情報を受け付ける。
つぎに、情報処理装置100は、機械学習DB101を参照して、受け付けた特徴情報105に対応付けられた値を検索する。情報処理装置100は、受け付けた特徴情報105に対応付けられた値を検出した場合、検出した値を最適な値とする。
図1の例では、クロック周波数が「c2」であり、最大ゲート段数が「ddd」である特徴情報105は機械学習DB101に含まれていない。情報処理装置100は、特徴情報105に対応付けられた値がない場合、有効性テーブル102を参照して、複数の値のうちのいずれかの値をパラメータに設定して対象回路103をFPGA104に構成させる。そして、情報処理装置100は、いずれかの値をパラメータに設定して対象回路103をFPGA104に構成させた場合における対象回路103の性能が所定制約を満たすか否かを判定する。対象回路103の性能とは、対象回路103のタイミング、エリア、消費電力などの性能が挙げられる。
複数の値のうちのいずれかの値は、例えば、アプリケーションプログラムの開発者によって提供されたデフォルト値である。従来、例えば、対象回路103が大規模でなく、対象回路103の処理が高速でない場合、パラメータにはデフォルト値を設定することにより対象回路103の性能が制約を満たすように対象回路103をFPGA104に構成させることができる。このように、デフォルト値であれば対象回路103の性能が制約を満たすように対象回路103をFPGA104に構成させることができる可能性が高いため、情報処理装置100は、まずパラメータにデフォルト値を設定する。
また、いずれかの値は、例えば、受け付けた特徴情報105に類似した特徴情報に対応付けられた値であってもよい。類似した特徴情報とは、例えば、受け付けた特徴情報105が示すクロック周波数との差が所定範囲内である特徴情報やクロック周波数と最大ゲート段数とのうちの少なくとも一方が同じである特徴情報などが挙げられる。また、いずれかの値は、向上度合いが後述する閾値以上の値であってもよい。
図1では、いずれかの値として「s」を例に挙げる。情報処理装置100は、対象回路103の性能が所定制約を満たすと判定した場合に、パラメータに設定した値を最適な値とする。
また、情報処理装置100は、所定制約を満たさないと判定した場合に、対象回路103の性能についての向上度合いが閾値以上の値を複数の値から選択する。図1の例では、「o」と「p」とが選択される。閾値については、設計者が指定してもよいし、情報処理装置100の開発者が予め定めていてもよい。ここで、情報処理装置100は、いずれかの値を除外して閾値以上の値を選択してもよい。
つぎに、情報処理装置100は、選択した値をパラメータに設定して対象回路103をFPGA104に構成させた場合における対象回路103の性能が所定制約を満たすか否かを判定する。所定制約は、例えば、対象回路103の仕様などに基づいて予め定められてある。図1の例では、パラメータの値が「o」の場合、対象回路103の性能が所定制約を満たす。図1の例では、パラメータの値が「p」の場合、対象回路103の性能が所定制約を満たさない。
そして、情報処理装置100は、対象回路103の性能が所定制約を満たすと判定した場合に、受け付けた特徴情報105と、選択した値と、を対応付けて機械学習DB101に格納する。図1に示すように、パラメータの値「o」と特徴情報105とが対応付けられて機械学習DB101に格納される。これにより、短時間で、かつ設計者の習熟度に関係なく性能が制約を満たすことが可能な値を得ることができる。
(情報処理装置100のハードウェア構成例)
図2は、情報処理装置のハードウェア構成例を示す説明図である。情報処理装置100は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、ディスクドライブ204と、ディスク205と、を有する。情報処理装置100は、I/F(Inter/Face)206と、キーボード207と、マウス208と、ディスプレイ209と、を有する。また、CPU201と、ROM202と、RAM203と、ディスクドライブ204と、I/F206と、キーボード207と、マウス208と、ディスプレイ209とは、バス200によってそれぞれ接続される。
ここで、CPU201は、情報処理装置100の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。ディスクドライブ204は、CPU201の制御にしたがってディスク205に対するデータのリード/ライトを制御する。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する。ディスク205としては、磁気ディスク、光ディスクなどが挙げられる。
I/F206は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク210に接続され、このネットワーク210を介して他の装置に接続される。そして、I/F206は、ネットワーク210と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F206には、例えばモデムやLANアダプタなどを採用することができる。
キーボード207やマウス208は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ209は、CPU201の指示により、データを出力するインターフェースである。
また、図示を省略するが、情報処理装置100には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、情報処理装置100には、プリンタなどの出力装置が設けられていてもよい。
また、本実施の形態では、情報処理装置100のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。情報処理装置100がサーバである場合、情報処理装置100と、利用者が操作可能な装置やディスプレイ209などと、がネットワーク210を介して接続されてもよい。
(情報処理装置100の機能的構成例)
図3は、情報処理装置の機能的構成例を示すブロック図である。情報処理装置100は、入力受付部301と、抽出部302と、選択部303と、特定部304と、格納部305と、記憶部310と、を有する。入力受付部301から格納部305部までの制御部の処理は、例えば、図2に示すCPU201がアクセス可能なROM202、RAM203、ディスク205などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU201が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ROM202、RAM203、ディスク205などの記憶装置に記憶される。
記憶部310は、ROM202、RAM203、ディスク205などの記憶装置である。記憶部310は、例えば、機械学習DB311や有効性テーブル312を記憶する。
図4は、機械学習DB例を示す説明図である。機械学習DB311は、回路の仕様に関する特徴情報と、回路をFPGAに構成させた場合に各パラメータに与える値と、を対応付けた第1対応関係情報である。機械学習DB311は、情報処理装置100の開発者によって、設計ノウハウや過去の設計情報から回路の仕様に関する特徴情報を抽出することによって作成される。過去の設計情報は、例えば、RTL(Register Transfer Lever)データ、ターゲットデバイスに対するレイアウトを行ったレイアウトデータやレイアウトによって得られるレポートなどである。
機械学習DB311は、特徴情報、正解予測値のフィールドを有する。特徴情報のフィールドには、過去に設計された回路の仕様に関する特徴を示す情報が設定される。機械学習DB311は、各フィールドに情報が設定されることによりレコード(例えば、400−1〜400−4)が記憶される。
正解予測値のフィールドには、過去に設計された回路をFPGAに構成させる場合に用いた各パラメータの値が設定される。特徴情報のフィールドには、デバイス、最大クロック周波数、クロック数、最大論理段数、使用率などのフィールドを有する。デバイスのフィールドには、例えば、回路を構成させるターゲットとなるFPGAの識別情報などが設定される。FPGAの識別情報とは、例えば、FPGAの名称などである。最大クロック周波数のフィールドには、回路を動作させるクロックの最大のクロック周波数が設定される。クロック数のフィールドには、回路内で使用されるクロックの本数が設定される。最大論理段数のフィールドには、パス上に設けられるゲート段数の最大値が設定される。使用率のフィールドには、回路をFPGAに構成させた場合のFPGAの使用率が設定される。
また、正解予測値のフィールドには、パラメータごとに値を設定可能なフィールドを有する。図4の例では、パラメータは、論理合成関連パラメータと、物理関連パラメータと、に大別される。論理合成関連パラメータのフィールドには、論理合成に用いられるパラメータの値が設定される。物理関連パラメータのフィールドには、FPGAへのレイアウトに用いられるパラメータの値が設定される。
図4では、「Synth Effort」と、「Timing Driven」と、「Fitter Effort」と、「Physical Synth」と、などのように4つのパラメータを例に挙げている。図4の例では、各パラメータの値は、2つであるが、パラメータによっては、最大で7つ程度の値が設定可能である。また、パラメータは、50〜60種類程度ある。このため、各パラメータに設定可能な値が2つである場合、各パラメータの値の組み合わせは、25060通り存在する。
図5は、有効性テーブル例を示す説明図である。有効性テーブル312は、パラメータの値と、複数の性能の各々についての性能の向上度合いと、を対応付けた第2対応関係情報である。
有効性テーブル312は、パラメータのフィールド、ターゲットのフィールドを有する。パラメータのフィールドには、各パラメータの値が設定される。パラメータは、上述したように、論理合成関連と物理関連に区別される。図5の例では、パラメータのフィールドには、パラメータごとにパラメータに設定可能な値が設定されてある。
ターゲットのフィールドには、タイミング、エリア、消費電力のフィールドを有する。タイミングのフィールドには、パラメータに値を設定してFPGAに回路を構成させた場合における回路のタイミングの向上度合いが設定される。回路のタイミングの向上度合いは、タイミングに関する性能値の向上度合いである。タイミングに関する性能値がスラック値である場合、スラック値が大きいほど、タイミングはよいことを示す。タイミングの向上度合いが高いとは、スラック値が大きくなる可能性が高いことを示す。
エリアのフィールドには、パラメータに値を設定してFPGAに回路を構成させた場合における回路のエリアが小さくなる度合いが設定される。エリアの向上度合いとは、エリアが小さくなる度合いである。また、消費電力のフィールドには、パラメータに値を設定してFPGAに回路を構成させた場合における回路の消費電力が小さくなる度合いが設定される。
回路の性能において、エリアと消費電力とは、比例関係にある。回路のエリアが大きくなれば、回路の消費電力も大きくなる。回路のエリアが小さくなれば、回路の消費電力も小さくなる。ここで、エリアや消費電力において、性能が向上するとは、エリアや消費電力が小さくなることを示す。
これに対して、回路の性能において、タイミングと、エリアおよび消費電力とは、反比例の関係にある。タイミングの指標値であるスラック値が小さくなる、エリアおよび消費電力は大きくなる。例えば、タイミングの指標値であるスラック値が大きくなると、エリアおよび消費電力は小さくなる。
ここでの各性能の向上度合いは、「1」、「2」、「3」の3段階で表されるが、これに限らず、種々変更可能である。「1」は、性能を改善する効果が無いことを示す。「2」は、性能を改善する効果が小さいことを示す。「3」は、性能を改善する効果が大きいことを示す。
パラメータ「Synth Effort」に値「Auto」が設定される場合、タイミングについての向上度合いは、「2」であり、エリアおよび消費電力についての向上度合いは、「2」である。
図4および図5において、パラメータの値のすべての組み合わせは、2×2×2×3の24通りである。
つぎに、図3に示す入力受付部301は、設計の対象回路の仕様に関する特徴情報の入力を受け付ける。特徴情報の受け付ける例について図6を用いて説明する。
図6は、特徴情報の受け付け例を示す説明図である。入力受付部301は、例えば、設計者の操作入力によって、ディスプレイ209に表示された対象回路に関する各項目についての情報の入力を受け付ける。これにより、入力受付部301は、特徴情報を受け付ける。
また、情報処理装置100は、特徴情報を直接受け付けることに限らず、設計の対象回路に関する各種情報から特徴情報を抽出してもよい。各種情報から特徴情報を抽出する例にいて図7を用いて説明する。
図7は、特徴情報の抽出例を示す説明図である。入力受付部301は、設計の対象回路のセルおよびセルの接続関係を示すRTLネットリストおよびタイミング制約情報などの対象回路の設計に関する情報の入力を受け付ける。そして、抽出部302は、受け付けたRTLネットリストおよびタイミング制約情報などから、設計の対象回路の仕様に関する特徴情報を抽出する。タイミング制約情報には、例えば、最大クロック周波数などが記述されてある。また、RTLネットリストには、例えば、最大ゲート段数などの情報が含まれる。
つぎに、図3の説明に戻って、パラメータが1つであり、対象回路の評価対象となる性能の種類が1つの場合を例に挙げて説明する。
選択部303は、機械学習DB311を参照して、入力受付部301によって受け付けた特徴情報に対応付けられた値を選択する。特定部304は、選択部303によって機械学習DB311に、入力受付部301によって受け付けた特徴情報に対応付けられた値を最適な値として特定する。
つぎに、選択部303は、機械学習DB311に入力受付部301によって受け付けた特徴情報に対応付けられた値がない場合、パラメータに設定可能な複数の値のうちのいずれかの値をパラメータに設定して対象回路をFPGAに構成させる。特定部304は、いずれかの値をパラメータに設定して対象回路をFPGAに構成させた場合における対象回路の性能が所定制約を満たすか否かを判定する。いずれかの値は、上述したように、例えば、デフォルト値や受け付けた特徴情報に類似する特徴情報に対応付けられた値である。
特定部304は、対象回路の性能が所定制約を満たすと判断した場合、いずれかの値を最適な値として特定する。格納部305は、受け付けた特徴情報と、いずれかの値と、を対応付けて機械学習DB311に格納する。
選択部303は、対象回路の性能が所定制約を満たさないと判定した場合、有効性テーブル312を参照して、対象回路の性能についての向上度合いが閾値以上の値を複数の値から選択する。そして、選択部303は、選択した値を適用する。ここで、適用するとは、ターゲットのFPGAに対象回路を構成させることを示す。ターゲットのFPGAに対象回路を構成させるとは、例えば、FPGAを対象回路に構成可能なアプリケーションプログラムによって行われる。アプリケーションプログラムは、情報処理装置100が実行してもよいし、情報処理装置100がアクセス可能な他の装置が実行してもよい。
特定部304は、選択された値をパラメータに設定して対象回路をFPGAに構成させた場合における対象回路の性能が所定制約を満たすか否かを判定する。所定制約は、例えば、設計者や対象回路の仕様によって予め定められてある。対象回路の性能としては、例えば、タイミング、エリア、消費電力などが挙げられる。
特定部304は、例えば、選択された値をパラメータに設定して対象回路をFPGAに構成させた場合における対象回路の性能が所定制約を満たすと判定した場合に、選択部303によって選択された値を最適な値として特定する。格納部305は、受け付けた特徴情報と、最適な値と、を対応付けて機械学習DB311に格納する。
また、選択された値が複数ある場合、特定部304は、選択された複数の値の各々について対象回路をFPGAに構成させた場合における対象回路の性能が所定制約を満たすか否かを判定する。特定部304は、複数の値において対象回路の性能が所定制約を満たすと判定した場合、複数の値のうち、対象回路の性能が最高となる場合の値を最適な値として特定する。そして、格納部305は、受け付けた特徴情報と、最適な値と、を対応付けて機械学習DB311に格納する。
ここで、アプリケーションプログラムは、例えば、対象回路のRTLネットリストを論理合成したゲートレベルのネットリストに基づいて、ターゲットのFPGAに対して配置配線処理を行う。そして、アプリケーションプログラムは、配置配線処理結果に基づいて、対象回路のエリアを特定する。また、アプリケーションプログラムは、配置配線処理結果に基づいて、タイミング解析を行う。また、アプリケーションプログラムは、配置配線処理結果に基づいて、消費電力の解析を行う。
つぎに、パラメータが複数あり、かつ対象回路の性能が複数ある場合について説明する。
選択部303は、例えば、受け付けた特徴情報に対応する複数のパラメータの各々に設定する値の組み合わせを選択する。
特定部304は、選択部303によって機械学習DB311に、入力受付部301によって受け付けた特徴情報に対応付けられた組み合わせを最適解として特定する。
つぎに、選択部303は、機械学習DB311に入力受付部301によって受け付けた特徴情報に対応付けられた組み合わせがない場合、いずれかの組み合わせを複数のパラメータに設定して対象回路をFPGAに構成させる。特定部304は、いずれかの組み合わせを複数のパラメータに設定して対象回路をFPGAに構成させた場合における対象回路の複数の性能のそれぞれが所定制約を満たすか否かを判定する。いずれかの組み合わせは、例えば、デフォルト値の組み合わせや受け付けた特徴情報に類似する特徴情報に対応付けられた組み合わせである。
特定部304は、対象回路の複数の性能のそれぞれが所定制約を満たすと判断した場合、いずれかの組み合わせを最適解として特定する。
選択部303は、対象回路の複数の性能のいずれかの性能が所定制約を満たさないと判定した場合、有効性テーブル312を参照して、複数のパラメータの各々のパラメータについて、所定制約を満たさない性能についての向上度合いが閾値以上の値を選択する。ここで、選択部303は、複数種類の性能が所定制約を満たさない場合、所定制約を満たさないすべての性能についての向上度合いが閾値以上の値を選択する。また、選択部303は、複数種類の性能が所定制約を満たさない場合、所定制約を満たさないすべての性能についての向上度合いが閾値の値を選択してもよい。
そして、選択部303は、選択した値に基づいて、複数のパラメータの各々に設定する値の組み合わせを生成する。選択部303は、選択した組み合わせを適用する。図8〜図10を用いて組み合わせ例を説明する。選択部303は、いずれかの組み合わせを除外した組み合わせを生成してもよい。
図8は、タイミングが制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。選択部303は、例えば、タイミングが所定制約を満たしていない場合に、タイミングについての向上度合いが閾値以上のパラメータの値の組み合わせを選択する。閾値は、例えば、「2」とする。図8では、タイミングについての向上度合いが「2」以上のパラメータの値が点線枠で囲われている。
パラメータが4種類あり、閾値以上のパラメータの値として各パラメータの値は2つずつ選択される。図8の例では、選択部303は、選択した値に基づいて、2×2×2×2の16通りのパラメータの値の組み合わせを生成する。特定部304は、16通りの組み合わせから最適解を特定する。これにより、パラメータの値のすべての組み合わせは24通りであるため、特定部304は、2/3の実行数によって最適解を特定できる。実行とは、上述したアプリケーションによって対象回路をFPGAに構成させ、かつ性能の検証を行うことを示す。したがって、最適解を得るための時間を短縮することができる。
図9は、エリアおよび消費電力が制約を満たしていない場合におけるパラメータの値の組み合わせ例を示す説明図である。選択部303は、エリアおよび消費電力についての向上度合いが閾値以上のパラメータの値を選択する。閾値は、例えば、「2」とする。図9では、エリアおよび消費電力についての向上度合いが「2」以上のパラメータの値が点線枠で囲われている。
パラメータが4種類ある。そして、閾値以上のパラメータの値として、パラメータ「Synth Effort」,「Timing Driven」,「Fitter Effort」の値は1つ選択され、パラメータ「Physical Synthesis Effort Level」の値は2つ選択される。図9の例では、選択部303は、選択した値に基づいて、1×1×1×2の2通りのパラメータの値の組み合わせを生成する。特定部304は、2通りの組み合わせから最適解を特定する。これにより、元々のパラメータの値のすべての組み合わせは24通りであるため、特定部304は、1/12の実行数で最適解を特定できる。したがって、最適解を得るための時間を短縮することができる。
図10は、タイミングとエリアおよび消費電力とを平均的に考慮した場合におけるパラメータの値の組み合わせ例を示す説明図である。選択部303は、エリアおよび消費電力についての向上度合いが閾値以上のパラメータの値を選択する。または、選択部303は、エリアおよび消費電力についての向上度合いが閾値のパラメータの値を選択する。ここでは、閾値は2である。図10では、エリアおよび消費電力についての向上度合いが「2」のパラメータの値が点線枠で囲われている。
パラメータが4種類あり、そして、閾値以上のパラメータの値として、各パラメータの値は1つずつ選択される。図10の例では、選択部303は、選択した値に基づいて、1×1×1×1の1通りのパラメータの値の組み合わせを生成する。特定部304は、1通りのパラメータの値の組み合わせから最適解を特定する。これにより、パラメータの値のすべての組み合わせは1通りであるため、特定部304は、1/24の実行数で最適解を特定できる。したがって、最適解を得るための時間を短縮することができる。
つぎに、特定部304は、選択された組み合わせをパラメータに設定して対象回路をFPGAに構成させた場合における対象回路の複数の性能のそれぞれが所定制約を満たすか否かを判定する。
特定部304は、選択された組み合わせを複数のパラメータに設定して対象回路を構成させた場合における対象回路の複数の性能のそれぞれが所定制約を満たすと判定した場合に、選択された組み合わせを最適解として特定する。そして、格納部305は、受け付けた特徴情報と、選択された組み合わせと、を対応付けて機械学習DB311に格納する。
また、生成された組み合わせが多い場合に、組み合わせの各々について対象回路をFPGAに構成させると時間がかかる。そこで、選択部303は、複数の組み合わせから所定数の組み合わせを選択してもよい。ここで、所定数については、入力受付部301によって設計者からの入力を受け付けてもよいし、情報処理装置100の開発者によって予め定められていてもよい。
選択部303は、例えば、選択された組み合わせごとに、組み合わせに含まれるパラメータの値に対応付けられた向上度合いに基づいて、組み合わせの評価値を算出する。そして、選択部303は、複数の組み合わせのうち、算出した評価値に基づいて所定数の組み合わせを選択する。評価値は、例えば、向上度合いの合計値であってもよいし、向上度合いの平均値であってもよいし、特に限定しない。
ここでは、評価値が向上度合いの合計値である場合に所定数の組み合わせを選択する例について説明する。選択部303は、評価値である向上度合いの合計値の降順に組み合わせを並べ替える。そして、選択部303は、降順に所定数の組み合わせを選択する。
図11は、所定数の組み合わせの選択例を示す説明図である。図11には、図8に示す16通りの組み合わせを合計値が高い順に並べた例を示す。そして、所定数は、例えば、5である。このため、選択部303は、合計値が高い順に5通りの組み合わせを選択する。そして、選択部303は、選択した組み合わせを適用する。
特定部304は、選択された組み合わせの各々について、複数のパラメータに組み合わせを設定して対象回路をFPGAに構成させた場合における対象回路の複数の性能の各々が所定制約を満たすか否かを判定する。
特定部304は、対象回路の複数の性能の各々が所定制約を満たすと判定した組み合わせを最適解として特定する。そして、格納部305は、特定部304によって特定された最適解と、受け付けた特徴情報と、を対応付けて機械学習DB311に格納する。
また、特定部304は、選択した組み合わせのうち、対象回路の複数の性能の各々が所定制約を満たすと判定した組み合わせが複数ある場合、複数の組み合わせから、複数の性能のうちのいずれかの性能が最も高い組み合わせを最適解として特定する。ここでは、いずれかの性能として消費電力を例に挙げて説明する。特定部304は、例えば、性能の制約を満たすと判定した複数の組み合わせのうち、消費電力が最も低い組み合わせを最適解として特定する。
例えば、図11に示す選択された組み合わせのうち、対象回路の各性能が所定制約を満たした組み合わせが、1番目の組み合わせと2番目の組み合わせとする。
(情報処理装置100による設計支援処理手順例)
図12および図13は、情報処理装置による設計支援処理手順例を示すフローチャートである。情報処理装置100は、例えば、設計の対象回路に関する各種情報から特徴情報を抽出する(ステップS1201)。ステップS1201において、情報処理装置100は、抽出部302により受け付けた対象回路に関する各種情報から特徴情報を抽出する処理の代わりに、入力受付部301によって対象回路の仕様に関する特徴情報そのものを受け付けてもよい。
つぎに、情報処理装置100は、機械学習DB311に抽出した特徴情報があるか否かを判断する(ステップS1202)。情報処理装置100は、機械学習DB311に抽出した特徴情報があると判断した場合(ステップS1202:Yes)、抽出した特徴情報に対応する各パラメータの値の組み合わせを最適解として適用し(ステップS1203)、一連の処理を終了する。ここで、組み合わせを適用するとは、各パラメータに組み合わせを設定してアプリケーションプログラムによって対象回路をFPGAに構成させて対象回路の性能を検証させることを示す。
情報処理装置100は、機械学習DB311に抽出した特徴情報がないと判断した場合(ステップS1202:No)、デフォルト値の組み合わせを各パラメータの最適解候補として選択して適用する(ステップS1204)。つぎに、情報処理装置100は、対象回路の各性能が所定制約を満たしたか否かを判断する(ステップS1205)。情報処理装置100は、対象回路の各性能が所定制約を満たしたと判断した場合(ステップS1205:Yes)、最適解候補を最適解として選択する(ステップS1206)。情報処理装置100は、抽出した特徴情報と最適解とを対応付けて機械学習DB311に登録し(ステップS1207)、一連の処理を終了する。
情報処理装置100は、対象回路の各性能が所定制約を満たしていないと判断した場合(ステップS1205:No)、図13に示すステップS1301へ移行する。情報処理装置100は、有効性テーブル312を参照して、各パラメータについて、対象回路の各性能のうち制約を未達成の性能についての向上度合いが閾値以上の値を選択する(ステップS1301)。情報処理装置100は、複数のパラメータに設定する値の組み合わせを生成する(ステップS1302)。つぎに、情報処理装置100は、組み合わせごとに組み合わせに含まれるパラメータの値に対応する向上度合いを合計する(ステップS1303)。そして、情報処理装置100は、合計値の降順に組み合わせを並べ替え(ステップS1304)。つぎに、情報処理装置100は、降順に所定数の組み合わせを最適解候補として選択する(ステップS1305)。
つぎに、情報処理装置100は、選択した最適解候補ごとに適用する(ステップS1306)。そして、情報処理装置100は、各性能が所定制約を満たした最適解候補があるか否かを判断する(ステップS1307)。
対象回路の各性能が所定制約を満たした最適解候補があると判断した場合(ステップS1307:Yes)、情報処理装置100は、エリアおよび消費電力が最小の最適解候補を最適解として選択する(ステップS1308)。情報処理装置100は、抽出した特徴情報と最適解とを対応付けて機械学習DB311に登録し(ステップS1309)、一連の処理を終了する。ステップS1307において、対象回路の各性能が所定制約を満たした組み合わせがないと判断した場合(ステップS1307:No)、情報処理装置100は、パラメータにより調整できないことを通知し(ステップS1310)、一連の処理を終了する。
以上説明したように、情報処理装置100は、対象回路の特徴情報が機械学習DBになく、ある値をパラメータとして対象回路をFPGAに構成させた時の性能が未達成の時に、性能向上度が高い値をパラメータとして再構成させる。そして、情報処理装置100は、性能達成時の値と特徴情報を機械学習DBに格納する。これにより、短時間で、設計者の習熟度によらずに、対象回路の性能制約を満たすことができるパラメータの値を得ることができる。したがって、設計時間の短縮化を図ることができる。
また、情報処理装置100は、いずれかの値をパラメータに設定して対象回路をFPGAに構成させた場合における対象回路の複数の性能のうち所定制約を満たさない性能についての向上度合いが閾値以上の値を選択して再構成させる。これにより、未達成の性能を向上させるように再構成させることができる。
また、情報処理装置100は、対象回路の性能が所定制約を満たすと判定したパラメータの値が複数ある場合に、選択したパラメータの値のうち対象回路の性能が最高となる値を最適な値とする。これにより、性能がより高くなるように対象回路をFPGAに構成させることができる。
また、情報処理装置100は、パラメータが複数ある場合、各パラメータについて選択した値に基づいて、複数のパラメータの各々に設定する値の組み合わせを生成し、組み合わせごとに複数のパラメータに設定して対象回路を構成させる。これにより、パラメータが複数あっても対象回路の性能が制約を満たすようなパラメータの値の組み合わせを容易に得ることができる。
また、情報処理装置100は、組み合わせが多い場合に、組み合わせに含まれる値に対応付けられた度合いに基づいて組み合わせの評価値を算出して評価値が高い順に所定数の組み合わせを選択する。これにより、対象回路をFPGAに構成させる回数を低減させることができ、設計時間の短縮化を図ることができる。
また、情報処理装置100は、対象回路の性能が制約を満たすと判定した組み合わせが複数ある場合、対象回路の性能が最高の組み合わせを最適解として特定する。これにより、性能がより高くなるように対象回路をFPGAに構成させることができる。
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、
前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、
を記憶する記憶部を有するコンピュータに、
設計の対象回路の仕様に関する特徴情報を受け付け、
前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する、
処理を実行させることを特徴とする設計支援プログラム。
(付記2)前記第2対応関係情報は、前記複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の複数の性能の各々の性能についての前記性能の向上度合いと、を対応付け、
前記値を選択する処理では、
前記第2対応関係情報を参照して、前記複数の値のうち、前記いずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の複数の性能のうち前記所定制約を満たさない性能についての前記向上度合いが前記閾値以上の値を選択する、
ことを特徴とする付記1に記載の設計支援プログラム。
(付記3)前記第1対応関係情報に格納する処理では、
選択した前記値のうち、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した値が複数ある場合に、選択した前記値から、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が最高の値と、受け付けた前記特徴情報と、を対応付けて格納する、
ことを特徴とする付記1または2に記載の設計支援プログラム。
(付記4)前記第1対応関係情報には、前記特徴情報と、前記集積回路に前記回路を構成させる場合に用いる複数のパラメータの各々のパラメータについての前記パラメータに設定する値と、が対応付けられ、
前記第2対応関係情報は、前記複数のパラメータの各々のパラメータについて、前記パラメータに設定可能な複数の値の各々の値についての前記値と、前記値を前記パラメータに設定して前記回路を集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付け、
前記コンピュータに、
前記複数のパラメータの各々のパラメータについて選択した前記値に基づいて、前記複数のパラメータの各々に設定する値の組み合わせを生成する、
処理を実行させ、
前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
生成した前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする付記1〜3のいずれか一つに記載の設計支援プログラム。
(付記5)前記コンピュータに、
前記第2対応関係情報を参照して、生成した複数の組み合わせの各々の組み合わせについて、前記組み合わせに含まれる値に対応付けられた前記向上度合いに基づいて、前記組み合わせの評価値を算出し、
前記複数の組み合わせのうち、算出した前記評価値に基づいて所定数の組み合わせを選択する、
処理を実行させ、
前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
前記所定数の組み合わせの各々の組み合わせについて、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする付記4に記載の設計支援プログラム。
(付記6)前記コンピュータに、
前記所定数の組み合わせのうち、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した組み合わせが複数ある場合、前記対象回路の性能が最高の組み合わせを特定する、
処理を実行させ、
前記第1対応関係情報に格納する処理では、
受け付けた前記特徴情報と、特定した前記組み合わせと、を対応付けて前記第1対応関係情報に格納する、
ことを特徴とする付記5に記載の設計支援プログラム。
(付記7)前記コンピュータに、
前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たす場合、受け付けた前記特徴情報と、前記いずれかの値と、を対応付けて前記第1対応関係情報に格納する、
処理を実行させることを特徴とする付記1〜6のいずれか一つに記載の設計支援プログラム。
(付記8)回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、
前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、
を記憶する記憶部を有するコンピュータが、
設計の対象回路の仕様に関する特徴情報を受け付け、
前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する、
処理を実行することを特徴とする設計支援方法。
(付記9)回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、を記憶する記憶部と、
設計の対象回路の仕様に関する特徴情報を受け付け、前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する制御部と、
を有することを特徴とする情報処理装置。
100 情報処理装置
101,311 機械学習DB
102,312 有効性テーブル
103 対象回路
104 FPGA
105 特徴情報
301 入力受付部
302 抽出部
303 選択部
304 特定部
305 格納部
310 記憶部

Claims (8)

  1. 回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、
    前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、
    を記憶する記憶部を有するコンピュータに、
    設計の対象回路の仕様に関する特徴情報を受け付け、
    前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
    選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
    選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する、
    処理を実行させることを特徴とする設計支援プログラム。
  2. 前記第2対応関係情報は、前記複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の複数の性能の各々の性能についての前記性能の向上度合いと、を対応付け、
    前記値を選択する処理では、
    前記第2対応関係情報を参照して、前記複数の値のうち、前記いずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の複数の性能のうち前記所定制約を満たさない性能についての前記向上度合いが前記閾値以上の値を選択する、
    ことを特徴とする請求項1に記載の設計支援プログラム。
  3. 前記第1対応関係情報に格納する処理では、
    選択した前記値のうち、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した値が複数ある場合に、選択した前記値から、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が最高の値と、受け付けた前記特徴情報と、を対応付けて格納する、
    ことを特徴とする請求項1または2に記載の設計支援プログラム。
  4. 前記第1対応関係情報には、前記特徴情報と、前記集積回路に前記回路を構成させる場合に用いる複数のパラメータの各々のパラメータについての前記パラメータに設定する値と、が対応付けられ、
    前記第2対応関係情報は、前記複数のパラメータの各々のパラメータについて、前記パラメータに設定可能な複数の値の各々の値についての前記値と、前記値を前記パラメータに設定して前記回路を集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付け、
    前記コンピュータに、
    前記複数のパラメータの各々のパラメータについて選択した前記値に基づいて、前記複数のパラメータの各々に設定する値の組み合わせを生成する、
    処理を実行させ、
    前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
    生成した前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする請求項1〜3のいずれか一つに記載の設計支援プログラム。
  5. 前記コンピュータに、
    前記第2対応関係情報を参照して、生成した複数の組み合わせの各々の組み合わせについて、前記組み合わせに含まれる値に対応付けられた前記向上度合いに基づいて、前記組み合わせの評価値を算出し、
    前記複数の組み合わせのうち、算出した前記評価値に基づいて所定数の組み合わせを選択する、
    処理を実行させ、
    前記対象回路の性能が前記所定制約を満たすか否かを判定する処理では、
    前記所定数の組み合わせの各々の組み合わせについて、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定することを特徴とする請求項4に記載の設計支援プログラム。
  6. 前記コンピュータに、
    前記所定数の組み合わせのうち、前記組み合わせを前記複数のパラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した組み合わせが複数ある場合、前記対象回路の性能が最高の組み合わせを特定する、
    処理を実行させ、
    前記第1対応関係情報に格納する処理では、
    受け付けた前記特徴情報と、特定した前記組み合わせと、を対応付けて前記第1対応関係情報に格納する、
    ことを特徴とする請求項5に記載の設計支援プログラム。
  7. 回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、
    前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、
    を記憶する記憶部を有するコンピュータが、
    設計の対象回路の仕様に関する特徴情報を受け付け、
    前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、
    選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、
    選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する、
    処理を実行することを特徴とする設計支援方法。
  8. 回路の仕様に関する特徴情報と、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いるパラメータに設定する値と、を対応付けた第1対応関係情報と、前記パラメータに設定可能な複数の値の各々の値について、前記値と、前記値を前記パラメータに設定して前記回路を前記集積回路に構成させた場合における前記回路の性能の向上度合いと、を対応付けた第2対応関係情報と、を記憶する記憶部と、
    設計の対象回路の仕様に関する特徴情報を受け付け、前記第1対応関係情報を参照して、受け付けた前記特徴情報に対応付けられた値がない場合に、前記第2対応関係情報を参照して、前記複数の値のうちのいずれかの値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が所定制約を満たさなければ、前記対象回路の性能についての前記向上度合いが閾値以上の値を前記複数の値から選択し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすか否かを判定し、選択した前記値を前記パラメータに設定して前記対象回路を前記集積回路に構成させた場合における前記対象回路の性能が前記所定制約を満たすと判定した場合に、受け付けた前記特徴情報と、選択した前記値と、を対応付けて前記第1対応関係情報に格納する制御部と、
    を有することを特徴とする情報処理装置。
JP2016201330A 2016-10-12 2016-10-12 設計支援プログラム、設計支援方法、および情報処理装置 Active JP6787024B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016201330A JP6787024B2 (ja) 2016-10-12 2016-10-12 設計支援プログラム、設計支援方法、および情報処理装置
US15/690,491 US10380304B2 (en) 2016-10-12 2017-08-30 Assistance programs, design assistance methods, and information processing apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016201330A JP6787024B2 (ja) 2016-10-12 2016-10-12 設計支援プログラム、設計支援方法、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2018063561A JP2018063561A (ja) 2018-04-19
JP6787024B2 true JP6787024B2 (ja) 2020-11-18

Family

ID=61830069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016201330A Active JP6787024B2 (ja) 2016-10-12 2016-10-12 設計支援プログラム、設計支援方法、および情報処理装置

Country Status (2)

Country Link
US (1) US10380304B2 (ja)
JP (1) JP6787024B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558776B2 (en) 2017-10-09 2020-02-11 Autodesk, Inc. Trigger-action-circuits: leveraging generative design to enable novices to design and build circuitry
KR102546528B1 (ko) * 2020-10-15 2023-06-21 영남대학교 산학협력단 반도체 제조 파라미터 설정 방법 및 이를 수행하기 위한 컴퓨팅 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2824071B2 (ja) 1988-12-16 1998-11-11 株式会社日立製作所 最適設計支援方法
JP4532893B2 (ja) 2003-12-15 2010-08-25 キヤノン株式会社 電気配線と光接続を有する回路の設計装置
US8281270B2 (en) * 2009-08-27 2012-10-02 Solido Design Automation Inc. Method and system for proximity-aware circuit design

Also Published As

Publication number Publication date
US10380304B2 (en) 2019-08-13
US20180101634A1 (en) 2018-04-12
JP2018063561A (ja) 2018-04-19

Similar Documents

Publication Publication Date Title
JP6801383B2 (ja) 設計支援プログラム、設計支援方法、および情報処理装置
US8051397B2 (en) Method and system for conducting design explorations of an integrated circuit
US7934180B2 (en) Incremental speculative merging
US10860764B1 (en) Layer assignment technique to improve timing in integrated circuit design
JP6787024B2 (ja) 設計支援プログラム、設計支援方法、および情報処理装置
JP2008041097A (ja) ゲートレベルでの動的シミュレーション方法及び装置
US8516411B2 (en) Register transfer level design compilation advisor
JP6787045B2 (ja) 検証支援プログラム、検証支援方法、および情報処理装置
US7949509B2 (en) Method and tool for generating simulation case for IC device
JP6819306B2 (ja) 迂回配線チェックプログラム、迂回配線チェック方法、および情報処理装置
US9697314B1 (en) Identifying and using slices in an integrated circuit (IC) design
US9690890B1 (en) Creating and using a wide-bus data structure to represent a wide-bus in an integrated circuit (IC) design
US8959467B2 (en) Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
US7971167B2 (en) Semiconductor design support device, semiconductor design support method, and manufacturing method for semiconductor integrated circuit
US10796051B1 (en) Adaptive model interface for a plurality of EDA programs
US9460253B1 (en) Selecting predefined circuit implementations in a circuit design system
US8701062B2 (en) Apparatus and method for generating a netlist using non-uniquified module during logic synthesis stage
JP6242170B2 (ja) 回路設計支援装置及びプログラム
US10255396B2 (en) Graphical analysis of complex clock trees
US10354032B2 (en) Optimizing an integrated circuit (IC) design comprising at least one wide-gate or wide-bus
US10157253B2 (en) Multi-bit-mapping aware clock gating
US11514222B1 (en) Cell-width aware buffer insertion technique for narrow channels
CN113688587B (zh) 一种电路布图的生成方法、装置、计算机设备及存储介质
US11983478B2 (en) Selection of full or incremental implementation flows in processing circuit designs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200915

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201012

R150 Certificate of patent or registration of utility model

Ref document number: 6787024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150