JP6257421B2 - 回路設計支援装置および回路設計支援プログラム - Google Patents
回路設計支援装置および回路設計支援プログラム Download PDFInfo
- Publication number
- JP6257421B2 JP6257421B2 JP2014076955A JP2014076955A JP6257421B2 JP 6257421 B2 JP6257421 B2 JP 6257421B2 JP 2014076955 A JP2014076955 A JP 2014076955A JP 2014076955 A JP2014076955 A JP 2014076955A JP 6257421 B2 JP6257421 B2 JP 6257421B2
- Authority
- JP
- Japan
- Prior art keywords
- cdfg
- control data
- data flow
- flow graph
- graph
- 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.)
- Expired - Fee Related
Links
- 238000013461 design Methods 0.000 title claims description 75
- 238000004364 calculation method Methods 0.000 claims description 96
- 238000000034 method Methods 0.000 claims description 79
- 230000008569 process Effects 0.000 claims description 40
- 238000000605 extraction Methods 0.000 claims description 33
- 239000000284 extract Substances 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 56
- 230000015572 biosynthetic process Effects 0.000 description 48
- 238000003786 synthesis reaction Methods 0.000 description 48
- 238000007792 addition Methods 0.000 description 23
- 230000002452 interceptive effect Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Description
近年では集積回路の回路規模が増大しており、RTLの設計に多大な時間を要するようになっていた。
そこで、RTLよりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて、自動的にRTLを生成する技術が提唱されている。そして、これを実現するツールが高位合成ツールとして市販されている。
その方法は、ユーザーが記述した高級言語から高位合成によって得られるCDFGの部分とパターンが一致するCDFGテンプレートを、既に最適化されたRTL IPから自動的に抽出する、というものである。CDFGはコントロールデータフローグラフの略称である。
しかし、非特許文献1は、得られたCDFGの部分とパターンが類似するCDFGテンプレートを利用する技術を開示していない。そのため、非特許文献1で得られたRTLが最適解であるとは限らない。
その方法は、ユーザーが記述した高級言語から高位合成によってCDFGを得て、CDFGから類似性が高いパターン対を自動的に抽出し、抽出したパターン対がタイミングの関係で共有可能であるか判定し、共有可能であるパターン対を共有化する、というものである。
しかし、特許文献1は、得られたCDFGから類似性の高いパターン対をより多く抽出するための技術を開示していない。そのため、特許文献1で得られたRTLが最適解であるとは限らない。
第一の演算順序を表す第一のコントロールデータフローグラフに基づいて、前記第一のコントロールデータフローグラフが表す前記第一の演算順序とは異なる演算順序を表す変形のコントロールデータフローグラフを生成するグラフ変形部と、
前記グラフ変形部によって生成された前記変形のコントロールデータフローグラフから、定型のコントロールデータフローグラフと同じ演算順序を表す定型部分を抽出する定型部分抽出部とを備える。
コントロールデータフローグラフから定型部分をより多く抽出する形態について説明する。
実施の形態1における高位合成システム100の構成について、図1に基づいて説明する。
但し、高位合成システム100の構成は図1と異なる構成であっても構わない。例えば、高位合成装置110および回路設計支援装置200を1台の装置で構成しても構わない。
高位合成は、C言語、C++言語、SystemC言語などの高級言語を用いた集積回路の動作を記述した動作記述から、レジスタ転送レベル(RTL)で集積回路の動作を記述したRTL記述を生成する技術である。
CDFGファイル130を生成する方法は、従来の高位合成におけるCDFG生成方法と同様である。
スケジューリングデータ122は、CDFGに含まれる各演算の実行時間帯を示すデータである。
スケジューリングデータ122を生成する方法は、従来の高位合成におけるスケジューリング方法と同様である。
バインディングデータ123は、CDFGに含まれる各演算に割り当てられる演算リソースを示すデータである。演算リソースは、演算器およびレジスタなどである。
バインディングデータ123を生成する方法は、従来の高位合成におけるバインディング方法と同様である。
RTL記述ファイル124を生成する方法は、従来の高位合成におけるRTL記述生成方法と同様である。
例えば、合成装置記憶部120は、動作記述ファイル121、CDFGファイル130、スケジューリングデータ122、バインディングデータ123およびRTL記述ファイル124などを記憶する。
実施の形態1における回路設計支援装置200の機能構成について、図2に基づいて説明する。但し、回路設計支援装置200の機能構成は図2と異なる機能構成であっても構わない。
CDFG取得部210は、高位合成装置110からCDFGファイル130を取得する。
一致部分抽出部220は、CDFGファイル130に含まれるCDFGからCDFGテンプレート140に含まれる定型のCDFGと演算順序が一致する一致部分(定型部分の一例)を抽出し、抽出した一致部分を特定する情報を含む一致部分データ291を生成する。一致部分は定型のCDFGと同じ演算順序を表す定型部分である。
CDFG変形部230は、CDFGファイル130に含まれるCDFGを変形することによって、変形のCDFGファイル130を生成する。
支援データ提供部280は、変形のCDFGファイル130と一致部分データ291とを高位合成装置110に提供する。
高位合成装置110のスケジューリング部112は、提供された変形のCDFGファイル130と一致部分データ291とに基づいて、スケジューリングデータ122を生成する。そして、バインディング部113およびRTL記述生成部114は、変形のCDFGファイル130とスケジューリングデータ122とに基づいて、バインディングデータ123およびRTL記述ファイル124を生成する。
例えば、支援装置記憶部290は、CDFGファイル130、一致部分データ291およびCDFGテンプレート140などを記憶する。
CDFGテンプレート140は、RTL設計資産(RTL IP)の一例である。
実施の形態1における回路設計支援装置200が実行する回路設計支援処理について、図3に基づいて説明する。但し、回路設計支援処理は図3と異なる処理であっても構わない。
そして、回路設計支援装置200のCDFG取得部210は、CDFG生成部111によって生成されたCDFGファイル130を高位合成装置110から取得(受信)する。
以下、S110で取得されるCDFGファイル130を元のCDFGファイル130という。また、元のCDFGファイル130に含まれるCDFGを元のCDFG131という。
S110の後、処理はS120に進む。
実施の形態1における元のCDFGファイル130に含まれる元のCDFG131について、図4に基づいて説明する。但し、元のCDFG131は図4と異なるCDFGであっても構わない。
図中の矢印は演算の実行順序、つまり、演算順序を表している。
図中の四角形は演算で用いられる変数を表している。
図中の丸印は演算の内容を示す演算記号を表している。
以降のCDFGの図において、矢印、四角形および丸印の意味は図4と同様である。
図3に戻り、S120から説明を続ける。
例えば、一致部分抽出部220は、非特許文献1に開示されているテンプレートマッチングなどの方法を用いて、一致部分132を抽出する。
S120の後、処理はS130に進む。
図6は、実施の形態1における第二のCDFGテンプレート140に含まれる第二の定型のCDFG141の一例を示す図である。
CDFGテンプレート140に含まれる定型のCDFG141の一例について、図5および図6に基づいて説明する。但し、定型のCDFG141は図5および図6と異なるCDFGであっても構わない。
図6において、第二の定型のCDFG141は、Y=(A+B)×Cという演算式を表している。
図7において、第一の一致部分132は、第一の定型のCDFG141(図5参照)と演算順序が一致している。
また、第二の一致部分132は、第二の定型のCDFG141(図6参照)と演算順序が一致している。
そのため、一致部分抽出部220は、元のCDFG131から第一の一致部分132を抽出する。また、一致部分抽出部220は、元のCDFG131から第二の一致部分132を抽出する。
図3に戻り、S130から説明を続ける。
但し、二回目以降のS130において、CDFG変形部230は、変形のCDFGファイル130に含まれる変形のCDFG131を変形できるか判定する。
CDFG131の変形方法については後述する。
CDFG131を変形することができる場合(YES)、処理はS131に進む。
CDFG131を変形することができない場合(NO)、処理はS140に進む。
但し、二回目以降のS131において、CDFG変形部230は、変形のCDFGファイル130に含まれる変形のCDFG131を変形することによって、変形のCDFGファイル130を新たに生成する。
S131の後、処理はS132に進む。
例えば、CDFG変形部230は、加減算部分133の加算を加減算部分133の減算と入れ換えて、元のCDFG131を変形する。
これにより、図8に示す変形のCDFG131が得られる。変形の加減算部分133(図8参照)の演算結果は変形の加減算部分133(図7参照)の演算結果と同じである。
図3に戻り、S132から説明を続ける。
S132はS120と同様の処理である。
S132の後、処理はS130に戻る。
図8において、第一の一致部分132(2)は、第一の定型のCDFG141(図5参照)と演算順序が一致する。
そのため、一致部分抽出部220は、変形のCDFG131から第一の一致部分132(2)を抽出する。
図3に戻り、S140から説明を続ける。
但し、変形のCDFGファイル130が生成されなかった場合、支援データ提供部280は、変形のCDFGファイル130の代わりに元のCDFGファイル130を高位合成装置110に提供する。
バインディング部113は、提供されたCDFGファイル130および生成されたスケジューリングデータ122に基づいて、バインディングデータ123を生成する。バインディングデータ123を生成する方法は、一般的なバインディング方法と同じでよい。
RTL記述生成部114は、提供されたCDFGファイル130、生成されたスケジューリングデータ122および生成されたバインディングデータ123に基づいて、RTL記述ファイル124を生成する。RTL記述ファイル124を生成する方法は、一般的なRTL記述生成方法と同じでよい。
S140の後、回路設計支援処理は終了する。
例えば、CDFG変形部230は、以下に示す変形方法によって、CDFG131を変形する。但し、CDFG変形部230は、以下に示す変形方法とは異なる方法で、CDFG131を変形しても構わない。
CDFG変形部230は、加算と減算とから成る加減算部分(可変部分の一例)をCDFG131から選択する。そして、CDFG変形部230は、加減算部分の加算と加減算部分の減算との演算順序を入れ換えることによって、CDFG131を変形する。
なお、加減算部分の加算と加減算部分の減算との演算順序を入れ換えても、加減算部分の演算結果は変わらない。
図9において、定型のCDFG141は、Y=(A×B)−C+Dという演算式を表している。
図10において、CDFG131は、(A×B)+C−Dという部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図9参照)と演算順序が異なる。
但し、この演算部分は、+C−Dという加減算部分133を含んでいる。加減算部分133の加算と加減算部分133の減算とを入れ換えることにより、図11に示すCDFG131が得られる。
図11において、CDFG131は、(A×B)−D+Cという部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図9参照)と演算順序が同じである。
したがって、一致部分抽出部220は、この演算部分を一致部分132として抽出することができる。
なお、図11に示すCDFG131の演算結果は、図10に示すCDFG131の演算結果と同じである。
CDFG変形部230は、減算元の値から複数の減算値を引く多重減算(可変部分の一例)をCDFG131から選択する。そして、CDFG変形部230は、多重減算を合計減算に変形することによって、CDFG131を変形する。合計減算は複数の減算値を合計して得られる合計値を減算元の値から引く演算である。
なお、合計減算の演算結果は多重減算の演算結果と同じである。
図12において、定型のCDFG141は、Y=(A+B)−(C+D)という演算式を表している。
図13において、CDFG131は、(A+B)−C−Dという部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図12参照)と演算順序が異なる。
但し、この演算部分は、−C−Dという多重減算134を含んでいる。多重減算134を−(C+D)という合計減算に変形することにより、図14に示すCDFG131が得られる。
図14において、CDFG131は、(A+B)−(C+D)という部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図12参照)と演算順序が同じである。
したがって、一致部分抽出部220は、この演算部分を一致部分132として抽出することができる。
なお、図14に示すCDFG131の演算結果は、図13に示すCDFG131の演算結果と同じである。
CDFG変形部230は、複数の条件に基づいて処理が分岐する条件分岐部分をCDFG131から選択する。そして、CDFG変形部230は、条件分岐部分の複数の条件を互いに入れ換えることによって、CDFG131を変形する。
図15において、定型のCDFG141は、A=0の場合の演算式であるY=B+Cと、A≠0の場合の演算式であるY=B−Cとを示す条件分岐の演算を表している。
図16において、CDFG131は、A≠0の場合の演算式であるY=B+Cと、A=0の場合の演算式であるY=B−Cとを示す条件分岐部分を含んでいる。
この条件分岐部分は、定型のCDFG141(図15参照)と演算順序が異なる。
但し、条件分岐部分の第一の条件であるA≠0と条件分岐部分の第二の条件であるA=0とを入れ換えることにより、図17に示すCDFG131が得られる。
図17において、CDFG131は、A=0の場合の演算式であるY=B+Cと、A≠0の場合の演算式であるY=B−Cとを示す条件分岐部分を含んでいる。
この条件分岐部分は、定型のCDFG141(図15参照)と演算順序が同じである。
したがって、一致部分抽出部220は、この条件分岐部分を一致部分132として抽出することができる。
実施の形態1における回路設計支援装置200のハードウェア構成について、図18に基づいて説明する。
但し、回路設計支援装置200のハードウェア構成は図18に示す構成と異なる構成であってもよい。なお、高位合成システム100のハードウェア構成は回路設計支援装置200と同様である。
演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
主記憶装置903は、例えば、RAM(Random Access Memory)である。
通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置902に記憶される。
プログラムは、補助記憶装置902に記憶されており、主記憶装置903にロードされ、演算装置901に読み込まれ、演算装置901によって実行される。
CDFG131の変数のビット数が定型のCDFG141と類似になるようにCDFG131を変形する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
実施の形態2における回路設計支援装置200の機能構成について、図19に基づいて説明する。但し、回路設計支援装置200の機能構成は図19と異なる機能構成であっても構わない。
一致部分抽出部220は、CDFG131から定型のCDFG141と演算順序が同じである部分を一致部分132の候補として抽出する。
CDFG補助変形部240はCDFG131から交換演算を選択し、選択した交換演算を一致部分132の候補に含まれる演算(以下、部分演算という)と入れ換える。交換演算は、部分演算と同じ種類の演算である。交換演算を部分演算と入れ換えても一致部分132の候補の演算順序は変わらず、CDFG131の演算結果は変わらない。交換演算の具体例については後述する。
一致部分抽出部220は、交換演算を部分演算と入れ換えた後の一致部分132の候補を一致部分132として抽出する。
但し、S120およびS132において、一致部分132を抽出するために、一致部分抽出部220およびCDFG補助変形部240は以下のように動作する。
実施の形態2における一致部分抽出処理(S120)について、図20に基づいて説明する。但し、一致部分抽出処理(S120)は図20と異なる処理であっても構わない。
なお、一致部分抽出処理(S132)は一致部分抽出処理(S120)と同様である。
例えば、一致部分抽出部220は、CDFG131(図21参照)から、定型のCDFG141(図22参照)と演算順序が一致する一致部分132の候補を抽出する。
S121の後、処理はS122に進む。
図22は、実施の形態2におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。
CDFG131および定型のCDFG141に含まれる各矢印に付記されている数値は、変数のビット数を表している。
図20に戻り、S122から説明を続ける。
定型演算142は、一致部分132の候補における部分演算135と順番が同じである演算である。
以下、部分演算135で用いられる変数のビット数を元のビット数といい、定型演算142で用いられる変数のビット数を定型のビット数という。
S122の後、処理はS123に進む。
例えば、CDFG補助変形部240は、CDFG131(図21参照)から交換演算136の2つの候補を選択する。いずれの候補も加算であるため、加算である部分演算135と入れ換えても、一致部分132の候補の演算順序は定型のCDFG141(図22参照)と一致する。また、部分演算135をいずれの候補と入れ換えても、CDFG131の演算結果は変わらない。
S123の後、処理はS124に進む。
例えば、CDFG補助変形部240は、CDFG131(図21参照)から交換演算136の2つの候補を選択する。いずれの候補の交換のビット数(20、30)も、部分演算135の元のビット数(10)よりも、定型演算142(図22参照)の定型のビット数(32)に近い。
例えば、交換演算136の2つの候補(図21参照)のそれぞれの交換のビット数は20および30である。一方、定型演算142(図22参照)の定型のビット数は32である。したがって、CDFG補助変形部240は、交換演算136の2つの候補から、交換のビット数が30である方の候補を交換演算136として選択する。
S124の後、処理はS125に進む。
例えば、CDFG補助変形部240は、元のビット数が10である部分演算135(図21参照)を、交換のビット数が30である交換演算136と入れ換える。これにより、CDFG131は図23に示すように変形される。
図23は、実施の形態2におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
S125の後、処理はS126に進む。
例えば、一致部分抽出部220は、CDFG131(図23参照)から一致部分132を抽出する。
S126の後、一致部分抽出処理(S120)は終了する。
CDFG131が表す演算群の実行に用いる演算リソースの共有化を図る形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
実施の形態3における回路設計支援装置200の機能構成について、図24に基づいて説明する。但し、回路設計支援装置200の機能構成は図24と異なる機能構成であっても構わない。
そして、スケジューリングデータ取得部250は、変形のCDFGファイル130と各一致部分132の一致部分データ291とに基づいて生成されたスケジューリングデータ122を高位合成装置110200から取得する。
但し、スケジューリングデータ取得部250は、元のCDFGファイル130を提供し、元のCDFGファイル130に基づいて生成されたスケジューリングデータ122を取得しても構わない。
共有化のCDFGファイル130は共有化のCDFG131を表す。共有化のCDFG131は、演算リソースの共有化を図るために、変形のCDFG131または元のCDFG131を変形したものである。
高位合成装置110のスケジューリング部112は、提供された共有化のCDFGファイル130と各一致部分データ291とに基づいて、スケジューリングデータ122を新たに生成する。そして、バインディング部113およびRTL記述生成部114は、共有化のCDFGファイル130と新たに生成されたスケジューリングデータ122とに基づいて、バインディングデータ123およびRTL記述ファイル124を生成する。
実施の形態3におけるリソース共有化部260の機能構成について、図25に基づいて説明する。但し、リソース共有化部260の機能構成は図25と異なる機能構成であっても構わない。
以下、変形のCDFGファイル130および変形のCDFG131は元のCDFGファイル130および元のCDFG131と読み替えてもよい。
未使用演算選択部262は、第一の定型のCDFG141に置き換えられた後の第二の一致部分132から、第一の定型のCDFG141に含まれるが第二の定型のCDFG141に含まれない演算(以下、未使用演算という)を選択する。
代替演算選択部263は、未使用演算と同じ種類の演算(以下、代替演算という)を変形のCDFG131から選択する。なお、未使用演算が実行されるタイミングで代替演算が実行されても、変形のCDFG131の演算結果は変わらない。
演算置換部264は、変形のCDFG131から代替演算を削除し、未使用演算を代替演算に置き換える。
実施の形態3における回路設計支援装置200が実行する回路設計支援処理について、図26に基づいて説明する。但し、回路設計支援処理は図26と異なる処理であっても構わない。
高位合成装置110のスケジューリング部112は、提供された変形のCDFGファイル130と各一致部分データ291とに基づいて、スケジューリングデータ122を生成する。
そして、スケジューリングデータ取得部250は、生成されたスケジューリングデータ122を取得する。
S150の後、処理はS160に進む。
リソース共有化処理(S160)の詳細については後述する。
S160の後、処理はS170に進む。
そして、高位合成装置110のスケジューリング部112、バインディング部113およびRTL記述生成部114は、提供された共有化のCDFGファイル130と各一致部分データ291とに基づいて、スケジューリングデータ122、バインディングデータ123およびRTL記述ファイル124を生成する(図3のS140と同様)。
S170の後、回路設計支援処理は終了する。
実施の形態3におけるリソース共有化処理(S160)について、図27に基づいて説明する。但し、リソース共有化処理(S160)は図27と異なる処理であっても構わない。
以下に説明する第二の一致部分132が変形のCDFG131に含まれない場合、リソース共有化処理(S160)は不要である。
例えば、包含グラフ置換部261は、特許文献1に開示されている技術を用いて、第二の一致部分132を選択する。
第二の一致部分132は、第一の定型のCDFG141に包含される第二の定型のCDFG141と演算順序が同じである部分であり、第一の定型のCDFG141と演算順序が同じである第一の一致部分132と実行時間帯が重複しない。
例えば、包含グラフ置換部261は、非特許文献1に開示されているテンプレートマッチングなどの技術を用いて、第二の一致部分132を第一の定型のCDFG141に置き換える。
S161の後、処理はS162に進む。
つまり、第一の定型のCDFG141は、(A+B)×Cと演算順序が同じ部分を含んでおり、変数Dの値および変数Eの値がゼロであれば、第二の定型のCDFG141と同じ演算結果が得られる。
第一の定型のCDFG141および第二の定型のCDFG141は、特許文献1におけるパターン対に相当する。
図28に示す変形のCDFG131は、図8に示した変形のCDFG131と同じ内容である。
IP(1)は、第一の定型のCDFG141と演算順序が同じである第一の一致部分132を表している。
IP(2)は、第二の定型のCDFG141と演算順序が同じである第二の一致部分132を表している。
図29において、変数Aから変数Eが入力されるIP(1)は、変数Gから変数Lが入力されるIP(1)の後の時間帯にスケジューリングされている。
スケジューリングのCDFGファイル130に含まれる縦破線は、クロック境界を表している。つまり、IP(1)は2クロックの時間で実行され、IP(2)は1クロックの時間で実行される。
これにより、図30に示すスケジューリングのCDFGファイル130が得られる。
図27に戻り、S162から説明を続ける。
例えば、図30において、未使用演算選択部262は、破線枠で囲んだIP(1)に含まれているが、IP(1)に包含されるIP(2)には含まれていない減算を未使用演算137として選択する。
S162の後、処理はS163に進む。
例えば、図30において、代替演算選択部263は、未使用演算137と同じ種類の演算である代替演算138を選択する。なお、未使用演算137が実行されるタイミングで代替演算138が実行されても、スケジューリングのCDFG131の実行結果は変わらない。
S163の後、処理はS164に進む。
また、演算置換部264は、未使用演算137を代替演算138に置き換えたことを示す情報を、第二の一致部分132に関する一致部分データ291に記録する。
S164の後、リソース共有化処理(S160)は終了する。
図31および図32に示す共有化のCDFG131は、図30において代替演算138を削除し、未使用演算137を代替演算138に置き換えたCDFG131である。
つまり、高位合成システム100および回路設計支援装置200は、各実施の形態で説明した構成要素の一部を備えなくても構わない。また、高位合成システム100および回路設計支援装置200は、各実施の形態で説明していない構成要素を備えても構わない。さらに、高位合成システム100および回路設計支援装置200は、各実施の形態の構成要素の一部または全てを組み合わせたものであっても構わない。
Claims (11)
- 第一の演算順序を表す第一のコントロールデータフローグラフに基づいて、前記第一のコントロールデータフローグラフが表す前記第一の演算順序とは異なる演算順序を表す変形のコントロールデータフローグラフを生成するグラフ変形部と、
前記グラフ変形部によって生成された前記変形のコントロールデータフローグラフから、定型のコントロールデータフローグラフと同じ演算順序を表す定型部分を抽出する定型部分抽出部と
を備えることを特徴とする回路設計支援装置。 - 前記グラフ変形部は、変形しても演算結果が変わらない可変部分を前記第一のコントロールデータフローグラフから選択し、選択した前記可変部分を変形することによって、前記変形のコントロールデータフローグラフを生成する
ことを特徴とする請求項1に記載の回路設計支援装置。 - 前記グラフ変形部は、加算と減算とから成る加減算部分を前記可変部分として選択し、前記加減算部分の前記加算と前記加減算部分の前記減算との演算順序を入れ換える変形によって、前記変形のコントロールデータフローグラフを生成する
ことを特徴とする請求項2に記載の回路設計支援装置。 - 前記グラフ変形部は、減算元の値から複数の減算値を引く多重減算を前記可変部分として選択し、前記多重減算を、前記複数の減算値を合計して得られる合計値を前記減算元の値から引く合計減算に変形することによって、前記変形のコントロールデータフローグラフを生成する
ことを特徴とする請求項2に記載の回路設計支援装置。 - 前記グラフ変形部は、複数の条件に基づいて処理が分岐する条件分岐部分を前記第一のコントロールデータフローグラフから選択し、選択した前記条件分岐部分の前記複数の条件を互いに入れ換える変形によって、前記変形のコントロールデータフローグラフを生成する
ことを特徴とする請求項1に記載の回路設計支援装置。 - 前記回路設計支援装置は、グラフ補助変形部を備え、
前記定型部分抽出部は、前記変形のコントロールデータフローグラフから前記定型部分の候補を抽出し、
前記グラフ補助変形部は、前記定型部分の候補に含まれる部分演算と同じ種類の演算を前記変形のコントロールデータフローグラフから交換演算として選択し、前記交換演算を前記部分演算と入れ換え、
前記定型部分抽出部は、前記部分演算の代わりに前記交換演算を含む前記定型部分の候補を前記定型部分として抽出する
ことを特徴とする請求項1から請求項5のいずれかに記載の回路設計支援装置。 - 前記変形のコントロールデータフローグラフは、前記部分演算で用いられる変数のビット数を表す元のビット数値と、前記交換演算の候補群と、各交換演算の候補で用いられる変数のビット数を表す交換のビット数値を含み、
前記定型のコントロールデータフローグラフは、前記部分演算と順番が同じである定型演算と、前記定型演算で用いられる変数のビット数を表す定型のビット数値とを含み、
前記グラフ補助変形部は、前記変形のコントロールデータフローグラフに含まれる前記交換演算の候補群から、前記変形のコントロールデータフローグラフに含まれる前記元のビット数値よりも、前記定型のコントロールデータフローグラフに含まれる前記定型のビット数値に近いビット数の変数が用いられる候補を前記交換演算として選択する
ことを特徴とする請求項6に記載の回路設計支援装置。 - 前記回路設計支援装置は、包含グラフ置換部を備え、
前記定型部分抽出部は、第一の定型のコントロールデータフローグラフと同じ演算順序を表す第一の定型部分と、前記第一の定型のコントロールデータフローグラフに包含される第二の定型のコントロールデータフローグラフと同じ演算順序を表す第二の定型部分とを前記変形のコントロールデータフローグラフから抽出し、
前記包含グラフ置換部は、前記変形のコントロールデータフローグラフに含まれる前記第二の定型部分を前記第一の定型のコントロールデータフローグラフに置き換える
ことを特徴とする請求項1から請求項7のいずれかに記載の回路設計支援装置。 - 前記回路設計支援装置は、前記第一の定型部分が実行される第一の実行時間帯と前記第二の定型部分が実行される第二の実行時間帯とを示すスケジューリングデータを取得するスケジューリングデータ取得部を備え、
前記包含グラフ置換部は、前記スケジューリングデータが示す前記第一の実行時間帯と前記スケジューリングデータが示す前記第二の実行時間帯とが重複しない場合に、前記第二の定型部分を前記第一の定型のコントロールデータフローグラフに置き換える
ことを特徴とする請求項8に記載の回路設計支援装置。 - 前記第一の定型のコントロールデータフローグラフに置き換えられた後の前記第二の定型部分から、前記第一の定型のコントロールデータフローグラフに含まれるが前記第二の定型のコントロールデータフローグラフに含まれない未使用演算を選択する未使用演算選択部と、
前記未使用演算選択部によって選択された前記未使用演算と同じ種類の演算を、前記変形のコントロールデータフローグラフから、代替演算として選択する代替演算選択部と、
前記代替演算選択部によって選択された前記代替演算を削除し、前記未使用演算を前記代替演算に置き換える演算置換部と
を備えることを特徴とする請求項8または請求項9に記載の回路設計支援装置。 - 第一の演算順序を表す第一のコントロールデータフローグラフに基づいて、前記第一のコントロールデータフローグラフが表す前記第一の演算順序とは異なる演算順序を表す変形のコントロールデータフローグラフを生成するグラフ変形処理と、
前記グラフ変形処理によって生成された前記変形のコントロールデータフローグラフから、定型のコントロールデータフローグラフと同じ演算順序を表す定型部分を抽出する定型部分抽出処理と
をコンピュータに実行させるための回路設計支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076955A JP6257421B2 (ja) | 2014-04-03 | 2014-04-03 | 回路設計支援装置および回路設計支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076955A JP6257421B2 (ja) | 2014-04-03 | 2014-04-03 | 回路設計支援装置および回路設計支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015197883A JP2015197883A (ja) | 2015-11-09 |
JP6257421B2 true JP6257421B2 (ja) | 2018-01-10 |
Family
ID=54547499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014076955A Expired - Fee Related JP6257421B2 (ja) | 2014-04-03 | 2014-04-03 | 回路設計支援装置および回路設計支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6257421B2 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4165712B2 (ja) * | 2004-11-10 | 2008-10-15 | シャープ株式会社 | データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体 |
JP2009169694A (ja) * | 2008-01-16 | 2009-07-30 | Panasonic Corp | 高位合成方法、高位合成装置及びプログラム |
JP5253286B2 (ja) * | 2009-04-30 | 2013-07-31 | 三菱電機株式会社 | 共通データフロー抽出システムおよび共通データフロー抽出方法 |
-
2014
- 2014-04-03 JP JP2014076955A patent/JP6257421B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015197883A (ja) | 2015-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089426B2 (en) | Logic circuit generation device and method | |
JP6227195B1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN103329132A (zh) | 架构优化器 | |
JP6331756B2 (ja) | テストケース生成プログラム、テストケース生成方法、及びテストケース生成装置 | |
JP2006285333A (ja) | 動作合成装置及び方法 | |
Zhang et al. | CMOST: A system-level FPGA compilation framework | |
JP5157534B2 (ja) | 動作合成装置、および、プログラム | |
Liyanage et al. | Efficient end-to-end long-read sequence mapping using minimap2-fpga integrated with hardware accelerated chaining | |
JP6173644B1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6257421B2 (ja) | 回路設計支援装置および回路設計支援プログラム | |
JP6776069B2 (ja) | Rtl最適化システム及びrtl最適化プログラム | |
US8522175B2 (en) | Semiconductor circuit design supporting apparatus and method, and non-transitory computer-readable medium | |
Biggs et al. | ATHEENA: A Toolflow for Hardware Early-Exit Network Automation | |
JP2008129914A (ja) | ソフトウェア検証用モデル生成装置、及びソフトウェア検証用モデル生成方法 | |
JP6091140B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP6548848B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6342065B2 (ja) | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム | |
JP6897213B2 (ja) | コード生成装置、コード生成方法及びコード生成プログラム | |
Leipnitz et al. | Constraint-Aware Multi-Technique Approximate High-Level Synthesis for FPGAs | |
JP6266183B2 (ja) | 回路設計支援装置および回路設計支援プログラム | |
JP2016099726A (ja) | 仕様生成方法、仕様生成装置、及びプログラム | |
Wijesundera et al. | Technique for Vendor and Device Agnostic Hardware Area-Time Estimation | |
JP6468743B2 (ja) | 情報処理装置及びその制御方法 | |
Sinha et al. | IP‐Enabled C/C++ Based High Level Synthesis: A Step towards Better Designer Productivity and Design Performance | |
JP6317603B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171024 |
|
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: 20171107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6257421 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |