JP6257421B2 - 回路設計支援装置および回路設計支援プログラム - Google Patents

回路設計支援装置および回路設計支援プログラム Download PDF

Info

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
Application number
JP2014076955A
Other languages
English (en)
Other versions
JP2015197883A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2014076955A priority Critical patent/JP6257421B2/ja
Publication of JP2015197883A publication Critical patent/JP2015197883A/ja
Application granted granted Critical
Publication of JP6257421B2 publication Critical patent/JP6257421B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体集積回路の設計を支援する技術に関するものである。
従来、半導体集積回路を設計するために、ハードウェア記述言語を用いて、レジスタ(フリップフロップ)間の組み合わせ回路の動作を記述したRTLを設計していた。RTLはResister Transfer Levelの略称である。
近年では集積回路の回路規模が増大しており、RTLの設計に多大な時間を要するようになっていた。
そこで、RTLよりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて、自動的にRTLを生成する技術が提唱されている。そして、これを実現するツールが高位合成ツールとして市販されている。
一方で、既に最適化されたRTLの設計資産を利用することによって、高性能で小規模な集積回路を短期間で設計する方法も広く行われている。RTLの設計資産はRTL IP(Interllectual Property)と呼ばれる。
非特許文献1は、高性能で小規模なRTLを短期間で得るために、以下のような方法を開示している。
その方法は、ユーザーが記述した高級言語から高位合成によって得られるCDFGの部分とパターンが一致するCDFGテンプレートを、既に最適化されたRTL IPから自動的に抽出する、というものである。CDFGはコントロールデータフローグラフの略称である。
しかし、非特許文献1は、得られたCDFGの部分とパターンが類似するCDFGテンプレートを利用する技術を開示していない。そのため、非特許文献1で得られたRTLが最適解であるとは限らない。
特許文献1は、小規模なRTLを短期間で得るために、以下のような方法を開示している。
その方法は、ユーザーが記述した高級言語から高位合成によってCDFGを得て、CDFGから類似性が高いパターン対を自動的に抽出し、抽出したパターン対がタイミングの関係で共有可能であるか判定し、共有可能であるパターン対を共有化する、というものである。
しかし、特許文献1は、得られたCDFGから類似性の高いパターン対をより多く抽出するための技術を開示していない。そのため、特許文献1で得られたRTLが最適解であるとは限らない。
特開2002−123563号公報
M.Corazao,M.Khalaf,L.Guerra,M.Potkonjak,and J.Rabaey,"Perfomance Optimization Using Template Mapping for Datapath−Intensive High−Level Synthesis",Proceedings of IEEE Transactions on Computer−Aided Design of Integrated Curcuits and Systems,vol.15, No.8, 1996
本発明は、コントロールデータフローグラフから定型部分をより多く抽出できるようにすることを目的とする。
本発明の回路設計支援装置は、
第一の演算順序を表す第一のコントロールデータフローグラフに基づいて、前記第一のコントロールデータフローグラフが表す前記第一の演算順序とは異なる演算順序を表す変形のコントロールデータフローグラフを生成するグラフ変形部と、
前記グラフ変形部によって生成された前記変形のコントロールデータフローグラフから、定型のコントロールデータフローグラフと同じ演算順序を表す定型部分を抽出する定型部分抽出部とを備える。
本発明によれば、コントロールデータフローグラフから定型部分をより多く抽出することができる。
実施の形態1における高位合成システム100の構成図である。 実施の形態1における回路設計支援装置200の機能構成図である。 実施の形態1における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。 実施の形態1における元のCDFGファイル130に含まれる元のCDFG131の一例を示す図である。 実施の形態1における第一のCDFGテンプレート140に含まれる第一の定型のCDFG141の一例を示す図である。 実施の形態1における第二のCDFGテンプレート140に含まれる第二の定型のCDFG141の一例を示す図である。 実施の形態1における元のCDFGファイル130に含まれる元のCDFG131の一例を示す図である。 実施の形態1における変形のCDFGファイル130に含まれる変形のCDFG131の一例を示す図である。 実施の形態1におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。 実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態1におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。 実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態1におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。 実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態1における回路設計支援装置200のハードウェア構成図である。 実施の形態2における回路設計支援装置200の機能構成図である。 実施の形態2における一致部分抽出処理(S120)のフローチャートである。 実施の形態2におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態2におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。 実施の形態2におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。 実施の形態3における回路設計支援装置200の機能構成図である。 実施の形態3におけるリソース共有化部260の機能構成図である。 実施の形態3における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。 実施の形態3におけるリソース共有化処理(S160)のフローチャートである。 実施の形態3における変形のCDFGファイル130に含まれる変形のCDFG131の一例を示す図である。 実施の形態3におけるスケジューリングのCDFGファイル130に含まれるスケジューリングのCDFG131の一例を示す図である。 実施の形態3におけるスケジューリングのCDFGファイル130に含まれるスケジューリングのCDFG131の一例を示す図である。 実施の形態3における共有化のCDFGファイル130に含まれる共有化のCDFG131の一例を示す図である。 実施の形態3における共有化のCDFGファイル130に含まれる共有化のCDFG131の一例を示す図である。
実施の形態1.
コントロールデータフローグラフから定型部分をより多く抽出する形態について説明する。
図1は、実施の形態1における高位合成システム100の構成図である。
実施の形態1における高位合成システム100の構成について、図1に基づいて説明する。
但し、高位合成システム100の構成は図1と異なる構成であっても構わない。例えば、高位合成装置110および回路設計支援装置200を1台の装置で構成しても構わない。
高位合成システム100は高位合成を行うシステムである。
高位合成は、C言語、C++言語、SystemC言語などの高級言語を用いた集積回路の動作を記述した動作記述から、レジスタ転送レベル(RTL)で集積回路の動作を記述したRTL記述を生成する技術である。
高位合成システム100は、高位合成を実行する高位合成装置110と、高位合成の実行を支援する回路設計支援装置200とを備える。
高位合成装置110は、CDFG生成部111と、スケジューリング部112と、バインディング部113と、RTL記述生成部114と、合成装置記憶部120とを備える。
CDFG生成部111は、動作記述を含む動作記述ファイル121からCDFGを含むCDFGファイル130を生成する。CDFGは集積回路が行う複数の演算の演算順序を表す。CDFGはコントロールデータフローグラフの略称であり、コントロールフローグラフ(CFG)とデータフローグラフ(DFG)とを含む。
CDFGファイル130を生成する方法は、従来の高位合成におけるCDFG生成方法と同様である。
スケジューリング部112は、CDFGファイル130に基づいて、スケジューリングデータ122を生成する。
スケジューリングデータ122は、CDFGに含まれる各演算の実行時間帯を示すデータである。
スケジューリングデータ122を生成する方法は、従来の高位合成におけるスケジューリング方法と同様である。
バインディング部113は、CDFGファイル130とスケジューリングデータ122とに基づいて、バインディングデータ123を生成する。
バインディングデータ123は、CDFGに含まれる各演算に割り当てられる演算リソースを示すデータである。演算リソースは、演算器およびレジスタなどである。
バインディングデータ123を生成する方法は、従来の高位合成におけるバインディング方法と同様である。
RTL記述生成部114は、CDFGファイル130とスケジューリングデータ122とバインディングデータ123とに基づいて、RTL記述を示すRTL記述ファイル124を生成する。
RTL記述ファイル124を生成する方法は、従来の高位合成におけるRTL記述生成方法と同様である。
合成装置記憶部120は、高位合成装置110が使用、生成または入出力するデータを記憶する。
例えば、合成装置記憶部120は、動作記述ファイル121、CDFGファイル130、スケジューリングデータ122、バインディングデータ123およびRTL記述ファイル124などを記憶する。
図2は、実施の形態1における回路設計支援装置200の機能構成図である。
実施の形態1における回路設計支援装置200の機能構成について、図2に基づいて説明する。但し、回路設計支援装置200の機能構成は図2と異なる機能構成であっても構わない。
回路設計支援装置200は、CDFG取得部210と、一致部分抽出部220と、CDFG変形部230と、支援データ提供部280と、支援装置記憶部290とを備える。
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は、回路設計支援装置200が使用、生成または入出力するデータを記憶する。
例えば、支援装置記憶部290は、CDFGファイル130、一致部分データ291およびCDFGテンプレート140などを記憶する。
CDFGテンプレート140は、RTL設計資産(RTL IP)の一例である。
図3は、実施の形態1における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。
実施の形態1における回路設計支援装置200が実行する回路設計支援処理について、図3に基づいて説明する。但し、回路設計支援処理は図3と異なる処理であっても構わない。
S110において、高位合成装置110のCDFG生成部111は、動作記述ファイル121に基づいてCDFGファイル130を生成する。
そして、回路設計支援装置200のCDFG取得部210は、CDFG生成部111によって生成されたCDFGファイル130を高位合成装置110から取得(受信)する。
以下、S110で取得されるCDFGファイル130を元のCDFGファイル130という。また、元のCDFGファイル130に含まれるCDFGを元のCDFG131という。
S110の後、処理はS120に進む。
図4は、実施の形態1における元のCDFGファイル130に含まれる元のCDFG131の一例を示す図である。
実施の形態1における元のCDFGファイル130に含まれる元のCDFG131について、図4に基づいて説明する。但し、元のCDFG131は図4と異なるCDFGであっても構わない。
元のCDFG131は、Y=((A+B)×(C+D)−E)+(((G+H)×(I+J)+K−L)>>F)×M+N−Oという演算式を表している。
図中の矢印は演算の実行順序、つまり、演算順序を表している。
図中の四角形は演算で用いられる変数を表している。
図中の丸印は演算の内容を示す演算記号を表している。
以降のCDFGの図において、矢印、四角形および丸印の意味は図4と同様である。
例えば、CDFG取得部210は、図4に示すような元のCDFGファイル130を取得する。
図3に戻り、S120から説明を続ける。
S120において、一致部分抽出部220は、元のCDFGファイル130に含まれる元のCDFG131から、いずれかのCDFGテンプレート140に含まれる定型のCDFGと演算順序が一致する一致部分132を抽出する。
例えば、一致部分抽出部220は、非特許文献1に開示されているテンプレートマッチングなどの方法を用いて、一致部分132を抽出する。
そして、一致部分抽出部220は、一致部分132を特定する情報を含む一致部分データ291を生成する。但し、一致部分132がみつからない場合、一致部分抽出部220は一致部分データ291を生成しない。
S120の後、処理はS130に進む。
図5は、実施の形態1における第一のCDFGテンプレート140に含まれる第一の定型のCDFG141の一例を示す図である。
図6は、実施の形態1における第二のCDFGテンプレート140に含まれる第二の定型のCDFG141の一例を示す図である。
CDFGテンプレート140に含まれる定型のCDFG141の一例について、図5および図6に基づいて説明する。但し、定型のCDFG141は図5および図6と異なるCDFGであっても構わない。
図5において、第一の定型のCDFG141は、Y=(A+B)×(C+D)−Eという演算式を表している。
図6において、第二の定型のCDFG141は、Y=(A+B)×Cという演算式を表している。
図7は、実施の形態1における元のCDFGファイル130に含まれる元のCDFG131の一例を示す図である。
図7において、第一の一致部分132は、第一の定型のCDFG141(図5参照)と演算順序が一致している。
また、第二の一致部分132は、第二の定型のCDFG141(図6参照)と演算順序が一致している。
そのため、一致部分抽出部220は、元のCDFG131から第一の一致部分132を抽出する。また、一致部分抽出部220は、元のCDFG131から第二の一致部分132を抽出する。
図3に戻り、S130から説明を続ける。
S130において、CDFG変形部230は、元のCDFGファイル130に含まれる元のCDFG131を変形できるか判定する。
但し、二回目以降のS130において、CDFG変形部230は、変形のCDFGファイル130に含まれる変形のCDFG131を変形できるか判定する。
CDFG131の変形方法については後述する。
CDFG131を変形することができる場合(YES)、処理はS131に進む。
CDFG131を変形することができない場合(NO)、処理はS140に進む。
S131において、CDFG変形部230は、元のCDFGファイル130に含まれる元のCDFG131を変形することによって、変形のCDFGファイル130を生成する。
但し、二回目以降のS131において、CDFG変形部230は、変形のCDFGファイル130に含まれる変形のCDFG131を変形することによって、変形のCDFGファイル130を新たに生成する。
S131の後、処理はS132に進む。
図7において、加減算部分133は、加算(+K)と減算(−L)とから成る部分である。
例えば、CDFG変形部230は、加減算部分133の加算を加減算部分133の減算と入れ換えて、元のCDFG131を変形する。
これにより、図8に示す変形のCDFG131が得られる。変形の加減算部分133(図8参照)の演算結果は変形の加減算部分133(図7参照)の演算結果と同じである。
図3に戻り、S132から説明を続ける。
S132において、一致部分抽出部220は、変形のCDFGファイル130に含まれる変形のCDFG131から新たな一致部分132を抽出し、抽出した新たな一致部分132を特定する情報を含む新たな一致部分データ291を生成する。
S132はS120と同様の処理である。
S132の後、処理はS130に戻る。
図8は、実施の形態1における変形のCDFGファイル130に含まれる変形のCDFG131の一例を示す図である。
図8において、第一の一致部分132(2)は、第一の定型のCDFG141(図5参照)と演算順序が一致する。
そのため、一致部分抽出部220は、変形のCDFG131から第一の一致部分132(2)を抽出する。
図3に戻り、S140から説明を続ける。
S140において、支援データ提供部280は、最後に生成された変形のCDFGファイル130と、各一致部分132の一致部分データ291とを高位合成装置110に提供(送信)する。
但し、変形のCDFGファイル130が生成されなかった場合、支援データ提供部280は、変形のCDFGファイル130の代わりに元のCDFGファイル130を高位合成装置110に提供する。
高位合成装置110において、スケジューリング部112は、提供されたCDFGファイル130および一致部分データ291に基づいて、スケジューリングデータ122を生成する。例えば、スケジューリング部112は、非特許文献1に開示される方法によって、スケジューリングデータ122を生成する。
バインディング部113は、提供されたCDFGファイル130および生成されたスケジューリングデータ122に基づいて、バインディングデータ123を生成する。バインディングデータ123を生成する方法は、一般的なバインディング方法と同じでよい。
RTL記述生成部114は、提供されたCDFGファイル130、生成されたスケジューリングデータ122および生成されたバインディングデータ123に基づいて、RTL記述ファイル124を生成する。RTL記述ファイル124を生成する方法は、一般的なRTL記述生成方法と同じでよい。
S140の後、回路設計支援処理は終了する。
以下に、CDFG131を変形する変形方法について説明する。
例えば、CDFG変形部230は、以下に示す変形方法によって、CDFG131を変形する。但し、CDFG変形部230は、以下に示す変形方法とは異なる方法で、CDFG131を変形しても構わない。
まず、第一の変形方法について説明する。
CDFG変形部230は、加算と減算とから成る加減算部分(可変部分の一例)をCDFG131から選択する。そして、CDFG変形部230は、加減算部分の加算と加減算部分の減算との演算順序を入れ換えることによって、CDFG131を変形する。
なお、加減算部分の加算と加減算部分の減算との演算順序を入れ換えても、加減算部分の演算結果は変わらない。
図9は、実施の形態1におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。
図9において、定型のCDFG141は、Y=(A×B)−C+Dという演算式を表している。
図10は、実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図10において、CDFG131は、(A×B)+C−Dという部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図9参照)と演算順序が異なる。
但し、この演算部分は、+C−Dという加減算部分133を含んでいる。加減算部分133の加算と加減算部分133の減算とを入れ換えることにより、図11に示すCDFG131が得られる。
図11は、実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図11において、CDFG131は、(A×B)−D+Cという部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図9参照)と演算順序が同じである。
したがって、一致部分抽出部220は、この演算部分を一致部分132として抽出することができる。
なお、図11に示すCDFG131の演算結果は、図10に示すCDFG131の演算結果と同じである。
次に、第二の変形方法について説明する。
CDFG変形部230は、減算元の値から複数の減算値を引く多重減算(可変部分の一例)をCDFG131から選択する。そして、CDFG変形部230は、多重減算を合計減算に変形することによって、CDFG131を変形する。合計減算は複数の減算値を合計して得られる合計値を減算元の値から引く演算である。
なお、合計減算の演算結果は多重減算の演算結果と同じである。
図12は、実施の形態1におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。
図12において、定型のCDFG141は、Y=(A+B)−(C+D)という演算式を表している。
図13は、実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図13において、CDFG131は、(A+B)−C−Dという部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図12参照)と演算順序が異なる。
但し、この演算部分は、−C−Dという多重減算134を含んでいる。多重減算134を−(C+D)という合計減算に変形することにより、図14に示すCDFG131が得られる。
図14は、実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図14において、CDFG131は、(A+B)−(C+D)という部分式を表す演算部分を含んでいる。
この演算部分は、定型のCDFG141(図12参照)と演算順序が同じである。
したがって、一致部分抽出部220は、この演算部分を一致部分132として抽出することができる。
なお、図14に示すCDFG131の演算結果は、図13に示すCDFG131の演算結果と同じである。
次に、第三の変形方法について説明する。
CDFG変形部230は、複数の条件に基づいて処理が分岐する条件分岐部分をCDFG131から選択する。そして、CDFG変形部230は、条件分岐部分の複数の条件を互いに入れ換えることによって、CDFG131を変形する。
図15は、実施の形態1におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。
図15において、定型のCDFG141は、A=0の場合の演算式であるY=B+Cと、A≠0の場合の演算式であるY=B−Cとを示す条件分岐の演算を表している。
図16は、実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図16において、CDFG131は、A≠0の場合の演算式であるY=B+Cと、A=0の場合の演算式であるY=B−Cとを示す条件分岐部分を含んでいる。
この条件分岐部分は、定型のCDFG141(図15参照)と演算順序が異なる。
但し、条件分岐部分の第一の条件であるA≠0と条件分岐部分の第二の条件であるA=0とを入れ換えることにより、図17に示すCDFG131が得られる。
図17は、実施の形態1におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図17において、CDFG131は、A=0の場合の演算式であるY=B+Cと、A≠0の場合の演算式であるY=B−Cとを示す条件分岐部分を含んでいる。
この条件分岐部分は、定型のCDFG141(図15参照)と演算順序が同じである。
したがって、一致部分抽出部220は、この条件分岐部分を一致部分132として抽出することができる。
図18は、実施の形態1における回路設計支援装置200のハードウェア構成図である。
実施の形態1における回路設計支援装置200のハードウェア構成について、図18に基づいて説明する。
但し、回路設計支援装置200のハードウェア構成は図18に示す構成と異なる構成であってもよい。なお、高位合成システム100のハードウェア構成は回路設計支援装置200と同様である。
回路設計支援装置200は、演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905を備えるコンピュータである。
演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
主記憶装置903は、例えば、RAM(Random Access Memory)である。
通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
プログラムは、補助記憶装置902に記憶されている。
例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置902に記憶される。
プログラムは、補助記憶装置902に記憶されており、主記憶装置903にロードされ、演算装置901に読み込まれ、演算装置901によって実行される。
「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置903または補助記憶装置902に記憶される。
実施の形態1により、RTL設計資産であるCDFGテンプレート140を利用して、非特許文献1に開示される技術よりもハードウェア構成が小規模な半導体集積回路を設計することができる。
実施の形態2.
CDFG131の変数のビット数が定型のCDFG141と類似になるようにCDFG131を変形する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
高位合成システム100の構成は、実施の形態1(図1参照)と同様である。
図19は、実施の形態2における回路設計支援装置200の機能構成図である。
実施の形態2における回路設計支援装置200の機能構成について、図19に基づいて説明する。但し、回路設計支援装置200の機能構成は図19と異なる機能構成であっても構わない。
回路設計支援装置200は、実施の形態1(図2参照)で説明した機能構成に加えて、CDFG補助変形部240を備える。
一致部分抽出部220は、CDFG131から定型のCDFG141と演算順序が同じである部分を一致部分132の候補として抽出する。
CDFG補助変形部240はCDFG131から交換演算を選択し、選択した交換演算を一致部分132の候補に含まれる演算(以下、部分演算という)と入れ換える。交換演算は、部分演算と同じ種類の演算である。交換演算を部分演算と入れ換えても一致部分132の候補の演算順序は変わらず、CDFG131の演算結果は変わらない。交換演算の具体例については後述する。
一致部分抽出部220は、交換演算を部分演算と入れ換えた後の一致部分132の候補を一致部分132として抽出する。
回路設計支援装置200の回路設計支援処理は、実施の形態1(図3参照)と同様である。
但し、S120およびS132において、一致部分132を抽出するために、一致部分抽出部220およびCDFG補助変形部240は以下のように動作する。
図20は、実施の形態2における一致部分抽出処理(S120)のフローチャートである。
実施の形態2における一致部分抽出処理(S120)について、図20に基づいて説明する。但し、一致部分抽出処理(S120)は図20と異なる処理であっても構わない。
なお、一致部分抽出処理(S132)は一致部分抽出処理(S120)と同様である。
S121において、一致部分抽出部220は、いずれかのCDFGテンプレート140に含まれる定型のCDFG141と演算順序が一致する部分をCDFG131から一致部分132の候補として抽出する。
例えば、一致部分抽出部220は、CDFG131(図21参照)から、定型のCDFG141(図22参照)と演算順序が一致する一致部分132の候補を抽出する。
S121の後、処理はS122に進む。
図21は、実施の形態2におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
図22は、実施の形態2におけるCDFGテンプレート140に含まれる定型のCDFG141の一例を示す図である。
CDFG131および定型のCDFG141に含まれる各矢印に付記されている数値は、変数のビット数を表している。
図20に戻り、S122から説明を続ける。
S122において、CDFG補助変形部240は、定型のCDFG141に含まれる演算(以下、定型演算142という)で用いられる変数とビット数が異なる変数が用いられる部分演算135を、一致部分132の候補から選択する。
定型演算142は、一致部分132の候補における部分演算135と順番が同じである演算である。
以下、部分演算135で用いられる変数のビット数を元のビット数といい、定型演算142で用いられる変数のビット数を定型のビット数という。
例えば、CDFG補助変形部240は、一致部分132の候補(図21参照)から、定型のCDFG141(図22参照)の定型演算142と変数のビット数が異なる部分演算135を選択する。部分演算135の元のビット数(10)は定型演算142の定型のビット数(32)と異なっている。
S122の後、処理はS123に進む。
S123において、CDFG補助変形部240は、CDFG131から交換演算136の候補群を選択する。以下、交換演算136の候補で用いられる変数のビット数を交換のビット数という。
例えば、CDFG補助変形部240は、CDFG131(図21参照)から交換演算136の2つの候補を選択する。いずれの候補も加算であるため、加算である部分演算135と入れ換えても、一致部分132の候補の演算順序は定型のCDFG141(図22参照)と一致する。また、部分演算135をいずれの候補と入れ換えても、CDFG131の演算結果は変わらない。
S123の後、処理はS124に進む。
S124において、CDFG補助変形部240は、部分演算135の元のビット数よりも、定型演算142の定型のビット数に近いビット数の変数が用いられる交換演算136の候補群を選択する。
例えば、CDFG補助変形部240は、CDFG131(図21参照)から交換演算136の2つの候補を選択する。いずれの候補の交換のビット数(20、30)も、部分演算135の元のビット数(10)よりも、定型演算142(図22参照)の定型のビット数(32)に近い。
そして、CDFG補助変形部240は、定型演算142の定型のビット数に最も近いビット数の変数が用いられる交換演算136の候補を交換演算136として選択する。
例えば、交換演算136の2つの候補(図21参照)のそれぞれの交換のビット数は20および30である。一方、定型演算142(図22参照)の定型のビット数は32である。したがって、CDFG補助変形部240は、交換演算136の2つの候補から、交換のビット数が30である方の候補を交換演算136として選択する。
S124の後、処理はS125に進む。
S125において、CDFG補助変形部240は、一致部分132の候補に含まれる部分演算135をS124で選択した交換演算136と入れ換える。
例えば、CDFG補助変形部240は、元のビット数が10である部分演算135(図21参照)を、交換のビット数が30である交換演算136と入れ換える。これにより、CDFG131は図23に示すように変形される。
図23は、実施の形態2におけるCDFGファイル130に含まれるCDFG131の一例を示す図である。
S125の後、処理はS126に進む。
S126において、一致部分抽出部220は、部分演算135を交換演算136と入れ換えた後の一致部分132の候補をCDFG131から一致部分132として抽出する。
例えば、一致部分抽出部220は、CDFG131(図23参照)から一致部分132を抽出する。
S126の後、一致部分抽出処理(S120)は終了する。
実施の形態2により、定型のCDFG141における各変数のビット数を考慮して、半導体集積回路を設計することができる。
実施の形態3.
CDFG131が表す演算群の実行に用いる演算リソースの共有化を図る形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
高位合成システム100の構成は、実施の形態1(図1参照)と同様である。
図24は、実施の形態3における回路設計支援装置200の機能構成図である。
実施の形態3における回路設計支援装置200の機能構成について、図24に基づいて説明する。但し、回路設計支援装置200の機能構成は図24と異なる機能構成であっても構わない。
回路設計支援装置200は、実施の形態1(図2参照)で説明した機能に加えて、スケジューリングデータ取得部250とリソース共有化部260とを備える。
スケジューリングデータ取得部250は、変形のCDFGファイル130と各一致部分132の一致部分データ291とを高位合成装置110に提供する。
そして、スケジューリングデータ取得部250は、変形のCDFGファイル130と各一致部分132の一致部分データ291とに基づいて生成されたスケジューリングデータ122を高位合成装置110200から取得する。
但し、スケジューリングデータ取得部250は、元のCDFGファイル130を提供し、元のCDFGファイル130に基づいて生成されたスケジューリングデータ122を取得しても構わない。
リソース共有化部260は、変形のCDFGファイル130とスケジューリングデータ122とに基づいて、共有化のCDFGファイル130を生成する。但し、リソース共有化部260は、元のCDFGファイル130とスケジューリングデータ122とに基づいてCDFGファイル130を生成しても構わない。
共有化のCDFGファイル130は共有化のCDFG131を表す。共有化のCDFG131は、演算リソースの共有化を図るために、変形のCDFG131または元のCDFG131を変形したものである。
支援データ提供部280は、共有化のCDFGファイル130と各一致部分132の一致部分データ291とを高位合成装置110に提供する。
高位合成装置110のスケジューリング部112は、提供された共有化のCDFGファイル130と各一致部分データ291とに基づいて、スケジューリングデータ122を新たに生成する。そして、バインディング部113およびRTL記述生成部114は、共有化のCDFGファイル130と新たに生成されたスケジューリングデータ122とに基づいて、バインディングデータ123およびRTL記述ファイル124を生成する。
図25は、実施の形態3におけるリソース共有化部260の機能構成図である。
実施の形態3におけるリソース共有化部260の機能構成について、図25に基づいて説明する。但し、リソース共有化部260の機能構成は図25と異なる機能構成であっても構わない。
リソース共有化部260は、包含グラフ置換部261と、未使用演算選択部262と、代替演算選択部263と、演算置換部264とを備える。
以下、変形のCDFGファイル130および変形のCDFG131は元のCDFGファイル130および元のCDFG131と読み替えてもよい。
包含グラフ置換部261は、変形のCDFGファイル130に含まれる変形のCDFG131のうちの第二の一致部分132を、第二の定型のCDFG141を包含する第一の定型のCDFG141に置き換える。第二の一致部分132は、第二の定型のCDFG141と同じ演算順序を表す部分である。
未使用演算選択部262は、第一の定型のCDFG141に置き換えられた後の第二の一致部分132から、第一の定型のCDFG141に含まれるが第二の定型のCDFG141に含まれない演算(以下、未使用演算という)を選択する。
代替演算選択部263は、未使用演算と同じ種類の演算(以下、代替演算という)を変形のCDFG131から選択する。なお、未使用演算が実行されるタイミングで代替演算が実行されても、変形のCDFG131の演算結果は変わらない。
演算置換部264は、変形のCDFG131から代替演算を削除し、未使用演算を代替演算に置き換える。
演算置換部264によって処理された後の変形のCDFG131または包含グラフ置換部261によって処理された後の変形のCDFG131が、共有化のCDFGファイル130である。
図26は、実施の形態3における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。
実施の形態3における回路設計支援装置200が実行する回路設計支援処理について、図26に基づいて説明する。但し、回路設計支援処理は図26と異なる処理であっても構わない。
S110からS132は、実施の形態1(図3参照)と同じである。
S150において、スケジューリングデータ取得部250は、最終的に生成された変形のCDFGファイル130と、その変形のCDFG131に含まれる各一致部分132の一致部分データ291と、を高位合成装置110に提供する。
高位合成装置110のスケジューリング部112は、提供された変形のCDFGファイル130と各一致部分データ291とに基づいて、スケジューリングデータ122を生成する。
そして、スケジューリングデータ取得部250は、生成されたスケジューリングデータ122を取得する。
S150の後、処理はS160に進む。
S160において、リソース共有化部260は、S150で提供された変形のCDFGファイル130と、S150で取得されたスケジューリングデータ122とに基づいて、共有化のCDFGファイル130を生成する。
リソース共有化処理(S160)の詳細については後述する。
S160の後、処理はS170に進む。
S170において、支援データ提供部280は、共有化のCDFGファイル130と共有化のCDFG131に含まれる各一致部分132の一致部分データ291とを高位合成装置110に提供する。
そして、高位合成装置110のスケジューリング部112、バインディング部113およびRTL記述生成部114は、提供された共有化のCDFGファイル130と各一致部分データ291とに基づいて、スケジューリングデータ122、バインディングデータ123およびRTL記述ファイル124を生成する(図3のS140と同様)。
S170の後、回路設計支援処理は終了する。
図27は、実施の形態3におけるリソース共有化処理(S160)のフローチャートである。
実施の形態3におけるリソース共有化処理(S160)について、図27に基づいて説明する。但し、リソース共有化処理(S160)は図27と異なる処理であっても構わない。
ここで、変形のCDFG131は、第一の一致部分132と第二の一致部分132とを含む複数の一致部分132を含んでいるものとする。
以下に説明する第二の一致部分132が変形のCDFG131に含まれない場合、リソース共有化処理(S160)は不要である。
S161において、包含グラフ置換部261は、スケジューリングデータ122に基づいて、スケジューリングのCDFGファイル130に含まれる変形のCDFG131から第二の一致部分132を選択する。
例えば、包含グラフ置換部261は、特許文献1に開示されている技術を用いて、第二の一致部分132を選択する。
スケジューリングのCDFGファイル130は、スケジューリングされた変形のCDFGファイル130である。
第二の一致部分132は、第一の定型のCDFG141に包含される第二の定型のCDFG141と演算順序が同じである部分であり、第一の定型のCDFG141と演算順序が同じである第一の一致部分132と実行時間帯が重複しない。
そして、包含グラフ置換部261は、第二の一致部分132を第一の定型のCDFG141に置き換える。また、包含グラフ置換部261は、第二の一致部分132を第一の定型のCDFG141に置き換えたことを示す情報を、第二の一致部分132に関する一致部分データ291に記録する。
例えば、包含グラフ置換部261は、非特許文献1に開示されているテンプレートマッチングなどの技術を用いて、第二の一致部分132を第一の定型のCDFG141に置き換える。
S161の後、処理はS162に進む。
第一の定型のCDFG141(図5参照)は、第二の定型のCDFG141を包含している。
つまり、第一の定型のCDFG141は、(A+B)×Cと演算順序が同じ部分を含んでおり、変数Dの値および変数Eの値がゼロであれば、第二の定型のCDFG141と同じ演算結果が得られる。
第一の定型のCDFG141および第二の定型のCDFG141は、特許文献1におけるパターン対に相当する。
図28は、実施の形態3における変形のCDFGファイル130に含まれる変形のCDFG131の一例を示す図である。
図28に示す変形のCDFG131は、図8に示した変形のCDFG131と同じ内容である。
IP(1)は、第一の定型のCDFG141と演算順序が同じである第一の一致部分132を表している。
IP(2)は、第二の定型のCDFG141と演算順序が同じである第二の一致部分132を表している。
図29は、実施の形態3におけるスケジューリングのCDFGファイル130に含まれるスケジューリングのCDFG131の一例を示す図である。
図29において、変数Aから変数Eが入力されるIP(1)は、変数Gから変数Lが入力されるIP(1)の後の時間帯にスケジューリングされている。
スケジューリングのCDFGファイル130に含まれる縦破線は、クロック境界を表している。つまり、IP(1)は2クロックの時間で実行され、IP(2)は1クロックの時間で実行される。
例えば、包含グラフ置換部261は、IP(1)に包含されるIP(2)を第二の一致部分132として選択し、IP(2)をIP(1)に置き換える。
これにより、図30に示すスケジューリングのCDFGファイル130が得られる。
図30は、実施の形態3におけるスケジューリングのCDFGファイル130に含まれるスケジューリングのCDFG131の一例を示す図である。
図27に戻り、S162から説明を続ける。
S162において、未使用演算選択部262は、第一の定型のCDFG141に置き換えた後の第二の一致部分132から、未使用演算137を選択する。
例えば、図30において、未使用演算選択部262は、破線枠で囲んだIP(1)に含まれているが、IP(1)に包含されるIP(2)には含まれていない減算を未使用演算137として選択する。
S162の後、処理はS163に進む。
S163において、代替演算選択部263は、スケジューリングのCDFG131から、代替演算138を選択する。
例えば、図30において、代替演算選択部263は、未使用演算137と同じ種類の演算である代替演算138を選択する。なお、未使用演算137が実行されるタイミングで代替演算138が実行されても、スケジューリングのCDFG131の実行結果は変わらない。
S163の後、処理はS164に進む。
S164において、演算置換部264は、スケジューリングのCDFG131から代替演算138を削除し、スケジューリングのCDFG131に含まれる未使用演算137を代替演算138に置き換える。
また、演算置換部264は、未使用演算137を代替演算138に置き換えたことを示す情報を、第二の一致部分132に関する一致部分データ291に記録する。
S164の後、リソース共有化処理(S160)は終了する。
図31、図32は、実施の形態3における共有化のCDFGファイル130に含まれる共有化のCDFG131の一例を示す図である。
図31および図32に示す共有化のCDFG131は、図30において代替演算138を削除し、未使用演算137を代替演算138に置き換えたCDFG131である。
実施の形態3において、実施の形態2と同様に、各変数のビット数を考慮しても構わない。
実施の形態3により、演算リソースを共有化し、特許文献1よりもハードウェア構成が小規模な半導体集積回路を設計することができる。
各実施の形態は、高位合成システム100および回路設計支援装置200の形態の一例である。
つまり、高位合成システム100および回路設計支援装置200は、各実施の形態で説明した構成要素の一部を備えなくても構わない。また、高位合成システム100および回路設計支援装置200は、各実施の形態で説明していない構成要素を備えても構わない。さらに、高位合成システム100および回路設計支援装置200は、各実施の形態の構成要素の一部または全てを組み合わせたものであっても構わない。
各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法およびプログラムの処理手順の一例である。各実施の形態に係る方法およびプログラムは、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。
各実施の形態において「〜部」は「〜処理」「〜工程」「〜プログラム」「〜装置」と読み替えることができる。
100 高位合成システム、110 高位合成装置、111 CDFG生成部、112 スケジューリング部、113 バインディング部、114 RTL記述生成部、120 合成装置記憶部、121 動作記述ファイル、122 スケジューリングデータ、123 バインディングデータ、124 RTL記述ファイル、130 CDFGファイル、131 CDFG、132 一致部分、133 加減算部分、134 多重減算、135 部分演算、136 交換演算、137 未使用演算、138 代替演算、140 CDFGテンプレート、141 CDFG、142 定型演算、200 回路設計支援装置、210 CDFG取得部、220 一致部分抽出部、230 CDFG変形部、240 CDFG補助変形部、250 スケジューリングデータ取得部、260 リソース共有化部、261 包含グラフ置換部、262 未使用演算選択部、263 代替演算選択部、264 演算置換部、280 支援データ提供部、290 支援装置記憶部、291 一致部分データ、901 演算装置、902 補助記憶装置、903 主記憶装置、904 通信装置、905 入出力装置、909 バス。

Claims (11)

  1. 第一の演算順序を表す第一のコントロールデータフローグラフに基づいて、前記第一のコントロールデータフローグラフが表す前記第一の演算順序とは異なる演算順序を表す変形のコントロールデータフローグラフを生成するグラフ変形部と、
    前記グラフ変形部によって生成された前記変形のコントロールデータフローグラフから、定型のコントロールデータフローグラフと同じ演算順序を表す定型部分を抽出する定型部分抽出部と
    を備えることを特徴とする回路設計支援装置。
  2. 前記グラフ変形部は、変形しても演算結果が変わらない可変部分を前記第一のコントロールデータフローグラフから選択し、選択した前記可変部分を変形することによって、前記変形のコントロールデータフローグラフを生成する
    ことを特徴とする請求項1に記載の回路設計支援装置。
  3. 前記グラフ変形部は、加算と減算とから成る加減算部分を前記可変部分として選択し、前記加減算部分の前記加算と前記加減算部分の前記減算との演算順序を入れ換える変形によって、前記変形のコントロールデータフローグラフを生成する
    ことを特徴とする請求項2に記載の回路設計支援装置。
  4. 前記グラフ変形部は、減算元の値から複数の減算値を引く多重減算を前記可変部分として選択し、前記多重減算を、前記複数の減算値を合計して得られる合計値を前記減算元の値から引く合計減算に変形することによって、前記変形のコントロールデータフローグラフを生成する
    ことを特徴とする請求項2に記載の回路設計支援装置。
  5. 前記グラフ変形部は、複数の条件に基づいて処理が分岐する条件分岐部分を前記第一のコントロールデータフローグラフから選択し、選択した前記条件分岐部分の前記複数の条件を互いに入れ換える変形によって、前記変形のコントロールデータフローグラフを生成する
    ことを特徴とする請求項1に記載の回路設計支援装置。
  6. 前記回路設計支援装置は、グラフ補助変形部を備え、
    前記定型部分抽出部は、前記変形のコントロールデータフローグラフから前記定型部分の候補を抽出し、
    前記グラフ補助変形部は、前記定型部分の候補に含まれる部分演算と同じ種類の演算を前記変形のコントロールデータフローグラフから交換演算として選択し、前記交換演算を前記部分演算と入れ換え、
    前記定型部分抽出部は、前記部分演算の代わりに前記交換演算を含む前記定型部分の候補を前記定型部分として抽出する
    ことを特徴とする請求項1から請求項5のいずれかに記載の回路設計支援装置。
  7. 前記変形のコントロールデータフローグラフは、前記部分演算で用いられる変数のビット数を表す元のビット数値と、前記交換演算の候補群と、各交換演算の候補で用いられる変数のビット数を表す交換のビット数値を含み、
    前記定型のコントロールデータフローグラフは、前記部分演算と順番が同じである定型演算と、前記定型演算で用いられる変数のビット数を表す定型のビット数値とを含み、
    前記グラフ補助変形部は、前記変形のコントロールデータフローグラフに含まれる前記交換演算の候補群から、前記変形のコントロールデータフローグラフに含まれる前記元のビット数値よりも、前記定型のコントロールデータフローグラフに含まれる前記定型のビット数値に近いビット数の変数が用いられる候補を前記交換演算として選択する
    ことを特徴とする請求項6に記載の回路設計支援装置。
  8. 前記回路設計支援装置は、包含グラフ置換部を備え、
    前記定型部分抽出部は、第一の定型のコントロールデータフローグラフと同じ演算順序を表す第一の定型部分と、前記第一の定型のコントロールデータフローグラフに包含される第二の定型のコントロールデータフローグラフと同じ演算順序を表す第二の定型部分とを前記変形のコントロールデータフローグラフから抽出し、
    前記包含グラフ置換部は、前記変形のコントロールデータフローグラフに含まれる前記第二の定型部分を前記第一の定型のコントロールデータフローグラフに置き換える
    ことを特徴とする請求項1から請求項7のいずれかに記載の回路設計支援装置。
  9. 前記回路設計支援装置は、前記第一の定型部分が実行される第一の実行時間帯と前記第二の定型部分が実行される第二の実行時間帯とを示すスケジューリングデータを取得するスケジューリングデータ取得部を備え、
    前記包含グラフ置換部は、前記スケジューリングデータが示す前記第一の実行時間帯と前記スケジューリングデータが示す前記第二の実行時間帯とが重複しない場合に、前記第二の定型部分を前記第一の定型のコントロールデータフローグラフに置き換える
    ことを特徴とする請求項8に記載の回路設計支援装置。
  10. 前記第一の定型のコントロールデータフローグラフに置き換えられた後の前記第二の定型部分から、前記第一の定型のコントロールデータフローグラフに含まれるが前記第二の定型のコントロールデータフローグラフに含まれない未使用演算を選択する未使用演算選択部と、
    前記未使用演算選択部によって選択された前記未使用演算と同じ種類の演算を、前記変形のコントロールデータフローグラフから、代替演算として選択する代替演算選択部と、
    前記代替演算選択部によって選択された前記代替演算を削除し、前記未使用演算を前記代替演算に置き換える演算置換部と
    を備えることを特徴とする請求項8または請求項9に記載の回路設計支援装置。
  11. 第一の演算順序を表す第一のコントロールデータフローグラフに基づいて、前記第一のコントロールデータフローグラフが表す前記第一の演算順序とは異なる演算順序を表す変形のコントロールデータフローグラフを生成するグラフ変形処理と、
    前記グラフ変形処理によって生成された前記変形のコントロールデータフローグラフから、定型のコントロールデータフローグラフと同じ演算順序を表す定型部分を抽出する定型部分抽出処理と
    をコンピュータに実行させるための回路設計支援プログラム。
JP2014076955A 2014-04-03 2014-04-03 回路設計支援装置および回路設計支援プログラム Expired - Fee Related JP6257421B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 三菱電機株式会社 共通データフロー抽出システムおよび共通データフロー抽出方法

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