JP6246445B1 - 高位合成装置、高位合成方法及び高位合成プログラム - Google Patents
高位合成装置、高位合成方法及び高位合成プログラム Download PDFInfo
- Publication number
- JP6246445B1 JP6246445B1 JP2017547004A JP2017547004A JP6246445B1 JP 6246445 B1 JP6246445 B1 JP 6246445B1 JP 2017547004 A JP2017547004 A JP 2017547004A JP 2017547004 A JP2017547004 A JP 2017547004A JP 6246445 B1 JP6246445 B1 JP 6246445B1
- Authority
- JP
- Japan
- Prior art keywords
- cdfg
- processing
- level synthesis
- arithmetic
- pipeline
- 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
Links
- 230000015572 biosynthetic process Effects 0.000 title claims description 96
- 238000003786 synthesis reaction Methods 0.000 title claims description 85
- 238000001308 synthesis method Methods 0.000 title claims description 8
- 238000000034 method Methods 0.000 claims abstract description 241
- 230000008569 process Effects 0.000 claims abstract description 226
- 238000012545 processing Methods 0.000 claims abstract description 214
- 230000003252 repetitive effect Effects 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 74
- 230000008859 change Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 238000007667 floating Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
Abstract
Description
演算処理を繰り返す繰り返し演算処理であって前記演算処理の出力を次の演算処理の入力とする繰り返し演算処理を表したCDFG(コントロールデータフローグラフ)を第1CDFGとして取得し、前記第1CDFGを、前記第1CDFGで表された前記繰り返し演算処理をパイプライン処理で実行する前記第2CDFGに変更するCDFG変更部を備えた。
***構成の説明***
図1を用いて、本実施の形態に係る高位合成装置100の構成について説明する。
本実施の形態において、高位合成装置100は、コンピュータである。高位合成装置100は、プロセッサ910、記憶装置920、入力インタフェース930、出力インタフェース940といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、高位合成装置100におけるCDFG生成部110と、スケジューリング部120と、パイプライン判定部150と、CDFG変更部160と、バインディング部130と、RTL生成部140とをまとめて高位合成部101ともいう。また、以下の説明では、高位合成装置100におけるCDFG生成部110と、スケジューリング部120と、パイプライン判定部150と、CDFG変更部160と、バインディング部130と、RTL生成部140の機能を、高位合成装置100の「部」の機能という。
高位合成装置100の「部」の機能は、ソフトウェアで実現される。
プロセッサ910は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ910は、具体的には、CPU(Central Processing Unit)である。
出力インタフェース940は、ディスプレイ装置といった表示機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイ装置は、具体的には、LCD(Liquid Crystal Display)である。なお、出力インタフェース940は、プリンタ装置といった出力装置に接続されていてもよい。
なお、「部」の機能を実現するプログラムを高位合成プログラム520ともいう。高位合成プログラム520は、「部」として説明している機能を実現するプログラムである。また、高位合成プログラムプロダクトと称されるものは、高位合成プログラム520が記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
図2は、本実施の形態の前提となる高位合成技術を用いた高位合成装置100xの構成を示す図である。
高位合成装置100xは、図1で説明した本実施の形態に係る高位合成装置100の構成から、パイプライン判定部150とCDFG変更部160とを除いた構成である。すなわち高位合成装置100xの高位合成部101xは、CDFG生成部110と、スケジューリング部120xと、バインディング部130と、RTL生成部140とを備える。また、記憶部170には、第1CDFG111と制御サイクル情報121とが記憶され、スケジューリング結果122と第2CDFG112とは記憶されていない。
合成制約情報172は、高位合成対象の回路の回路規模、資源量、タイミング制約、クロック周波数、パイプライン化対象部といった情報を含む。合成制約情報172は、入力装置から入力インタフェース930を介して入力され、記憶部170に記憶される。
回路情報173は、高位合成後の回路を実装するLSIに設けられた演算ユニット、レジスタ、メモリユニット等の規模及び遅延情報等の情報を含む。回路情報173は、入力装置から入力インタフェース930を介して入力され、記憶部170に記憶される。
RTL174は、回路の構造がハードウェア記述言語で記述された回路記述である。回路記述とは、回路動作を、レジスタ間の信号の流れと論理演算の組み合わせとにより記述したものである。回路記述は、回路の構造記述ともいう。
図4は、ソースコード171の具体例を示す図である。図4では、浮動小数点の複数入力値の合計値を算出する動作記述を記載したC言語のプログラムをソースコード171の例として示している。
図4に示すソースコード171は、入力となる浮動小数点の配列“in_d”に格納されているN個の値の合計値を“res_d”に格納する動作を示している。図4に示すソースコード171では、初期状態で“res_d”に‘0’を設定し、ループ処理毎に“res_d”に入力値である“in_d[i]”を加算する処理を繰り返すことで、入力値の合計値を算出する。図4に示すソースコード171では、ループ回数はN回である。
図5に示すように、浮動小数点の加算演算は、入力変数A300と入力変数B301に対して、変数入替処理302、桁合せ処理303、加算処理304、丸め処理305を行い、演算結果306を得る。
また、桁合せ処理が不要な変数として変数入替処理302から渡された変数の仮数部は入力された値がそのまま加算処理304に渡される。
Loop400は図4に示した繰り返し処理のループ回数を示す。Cycle401はクロック周期を示す。処理402は1回目のループでのクロック周期毎の処理を示す。処理403は2回目のループでのクロック周期毎の処理を示す。図4では、ループ回数はNである。
図6の処理402及び処理403のクロック周期毎の処理で、図6の変数入替A0及び変数入替A1は図5の変数入替処理302に該当する。図6の桁合せB0及び桁合せB1は図5の桁合せ処理303に該当する。図6の加算C0及び加算C1は図5の加算処理304に該当する。図6の丸めD0及び丸めD1は図5の丸め処理305に該当する。
しかし、図6では、処理402の丸めD0が4回目のサイクルで実行されているのに対し、処理403の変数入替A1が2回目のサイクルで実行されている。処理402の丸めD0の出力データと処理403の変数入替A1の入力データとはイタレーション間のデータ依存があるため、データハザードが発生し、所望の演算結果が得られない虞がある。
図7において、Loop500は図6のLoop400に対応し、Cycle501は図6のCycle401に対応する。また、処理502は図6の処理402に対応し、処理503は図6の処理403に対応している。
図7では、処理502の丸めD0を4回目のサイクルで実行後、処理503の変数入替A1を第5サイクルで実行するように変更し、データハザードを回避している。
しかし、図7では、N個の浮動小数点配列からの合計値算出の処理サイクル数は「N×4」サイクルが必要となる。
次に、本実施の形態に係る高位合成装置100の動作について説明する。
図8を用いて、本実施の形態に係る高位合成装置100の高位合成方法510及び高位合成プログラム520による高位合成処理S100の処理の概要について説明する。
図8に示す高位合成処理S100では、図3に示した高位合成処理S100xに対して、パイプライン判定処理S150と、CDFG変更処理S160とが追加されている。また、スケジューリング処理S120は、図3で説明したスケジューリング処理S120xに、スケジューリング結果122を出力する処理を加えた処理である。CDFG生成処理S110、バインディング処理S130、RTL生成処理S140の処理については、図3で説明したものと同様である。
また、第1CDFG111は、演算処理を繰り返す繰り返し演算処理であって演算処理の出力を次の演算処理の入力とする繰り返し演算処理を表したCDFGである。具体的には、第1CDFG111は、CDFG生成部110によりソースコード171から生成される。
また、以下において、第1CDFG111のパイプライン化とは、第1CDFG111に表された繰り返し演算処理をパイプライン処理で実行できるようにすることを意味する。
スケジューリング処理S120において、スケジューリング部120は、第1CDFGに表された繰り返し演算処理をパイプライン処理で実行した場合のスケジューリング結果122を出力する。具体的には、スケジューリング部120は、パイプライン処理を行う制御サイクルで処理を実現出来なかったことを示す情報と、データハザードが発生したデータハザード変数と、パイプラインの処理サイクルが4サイクルであることを含むスケジューリング結果122を出力する。データハザード変数とは、第1CDFG111に表された繰り返し演算処理をパイプライン処理で実行した場合にデータハザードが生じた変数である。パイプラインの処理サイクルとは、すなわち演算処理の処理サイクルである。
第1CDFG111のパイプライン化が可能と判定された場合、処理はCDFG変更処理S160に進む。
第1CDFG111のパイプライン化が不可と判定された場合、処理はバインディング処理S130に進む。
パイプライン判定処理S150については後で詳しく説明する。
CDFG変更処理S160については後で詳しく説明する。
CDFG生成処理S110は、上述したように、ソースコード171から第1CDFG111を生成する処理である。
図9において、第1CDFG111は、演算処理702を繰り返す繰り返し演算処理790であって演算処理702の出力を次の演算処理702の入力とする繰り返し演算処理790を表している。第1CDFG111は、複数のDFG(データフローグラフ)から構成される。
初期設定DFG700は、初期設定のDFGで、ループ条件判定をする変数‘i’と演算結果値“res_d”とに0を設定している。
条件判定DFG701は、条件判定の制御を表し、“i<N”の場合は、演算処理を行い、“else”(その他)の場合は、演算処理を終了することを示している。
演算処理DFG702は、演算処理のDFGであり、図5で示した浮動小数点の加算処理を行っている。
条件更新DFG703は、ループ条件判定を行う変数‘i’を更新するDFGで、‘i’は1ループ毎に1ずつ加算される。
スケジューリング処理S120において、スケジューリング部120は、第1CDFG111内の各ノードで示される処理を実行するために必要な制御サイクルを決定する。
スケジューリング部120は、図9の第1CDFG111が入力されると、図5で示した処理に対応付け、変数入替処理302、桁合せ処理303、加算処理304、丸め処理305にそれぞれに1サイクルの処理サイクルを割り付ける。
スケジューリング部120は、試行した制御サイクルで処理が実行出来ない場合は、別の方法を試行し、制御サイクルを決定する。具体的には、図6で示したパイプライン処理の場合、イタレーション間に依存性のある変数があり、データハザードが発生するため処理を実行することが出来ない。そのため、スケジューリング部120は、図7で示したタイミングで処理を行う制御サイクルに決定する。
また、スケジューリング部120は、試行した制御サイクルで処理が実行出来なかったことを示す情報をスケジューリング結果122として出力する。具体的には、スケジューリング部120は、パイプラン処理を行うような制御サイクルで処理を実現出来なかったことと、データハザードが発生したデータハザード変数と、パイプラインの処理サイクルとを含むスケジューリング結果122を出力する。
図6で示したパイプライン処理の制御サイクルが実行できなかった場合、スケジューリング部120は、図10に示すようなスケジューリング結果122を出力する。スケジューリング結果122は、パイプラン処理を行う制御サイクルで処理を実現出来たか否かを示す情報と、データハザードが発生したデータハザード変数222と、パイプラインの処理サイクルとが含まれる。図6で示したパイプライン処理の制御サイクルが実行できなかった場合、スケジューリング結果122には、パイプライン試行結果221は失敗、データハザード変数222はres_d、パイプラインの処理サイクル223として4が設定される。
パイプライン判定処理S150において、パイプライン判定部150は、スケジューリング部120により通知されたスケジューリング結果122に基づいて、第1CDFG111のパイプライン化の可否を判定する。パイプライン判定部150は、第1CDFG111についてパイプライン化が不要又はパイプライン化が不可と判定した場合、スケジューリング部120が出力した制御サイクル情報121をバインディング部130に出力する。パイプライン判定部150は、パイプライン化が可能と判定した場合、スケジューリング部120から通知されたスケジューリング結果122をCDFG変更部160に通知し、第1CDFG111の変更を指示する。
ステップS151において、パイプライン判定部150は、スケジューリング結果122に基づいて、データハザードが発生しパイプライン化が失敗したか否かを判定する。具体的には、パイプライン判定部150は、スケジューリング結果122の「パイプライン化の試行結果」欄と、「データハザード変数」欄とから、データハザードが発生しパイプライン化が失敗したか否かを判定する。図10の例では、パイプライン判定部150は、「パイプライン化の試行結果」欄が失敗であり、「データハザード変数」欄にres_dが設定されているので、データハザードが発生しパイプライン化が失敗したと判定する。パイプライン判定部150は、データハザードが発生しパイプライン化が失敗したと判定した場合、ステップS152に進み、それ以外の場合、ステップS154に進む。
ステップS154において、パイプライン判定部150は、第1CDFG111のパイプライン化は不要又は不可であると判定する。パイプライン判定部150は、パイプライン化が不要又はパイプライン化が不可と判定した場合、スケジューリング部120が出力した制御サイクル情報121をバインディング部130に出力する。
CDFG変更処理S160において、CDFG変更部160は、第1CDFG111を、第1CDFG111で表された繰り返し演算処理790をパイプライン処理で実行する第2CDFG112に変更する。CDFG変更部160は、パイプライン判定部150により、第1CDFG111に表された繰り返し演算処理790がパイプライン処理できると判定された場合に第1CDFG111を第2CDFG112に変更する。
言い換えると、CDFG変更部160は、CDFG生成部110が生成した第1CDFG111を、演算処理(ループ処理)の処理サイクルのパイプライン処理で実現できるように変更する。すなわち、CDFG変更部160は、第1CDFG111を、演算処理(ループ処理)の処理サイクルである4サイクルのパイプライン処理で実現できるように第2CDFG112に変更する。
CDFG変更部160は、繰り返し演算処理790のループ回数と演算処理の処理サイクルとに基づいて、第1CDFG111を第2CDFG112に変更する。
CDFG変更部160は、第1CDFG111を、繰り返し演算処理790を処理サイクルの数のサブ繰り返し演算処理に分割する。そして、CDFG変更部160は、処理サイクルの数のサブ繰り返し演算処理を実行する第1演算処理804と、処理サイクルの数のサブ繰り返し演算処理の各々の出力を入力として演算処理812を実行する第2演算処理814とを表した第2CDFG112に変更する。
第1演算処理804は、パイプライン処理で実行できる。第1演算処理804は、第一の繰り返し演算処理ともいう。第2演算処理814は、パイプライン処理で実行できる。なお、第2演算処理814は、時分割処理で実行してもよい。第2演算処理814は、第二の繰り返し演算処理ともいう。
1つ目は、第1CDFG111の初期設定700が、第2CDFG112では初期設定800に変更された点である。
2つ目は、第1CDFG111の演算処理702が、第2CDFG112では演算処理802に変更された点である。
3つ目は、第2CDFG112では、初期設定810と、条件判定811と、演算処理812と、ループ条件変数更新813とから成る第2演算処理が追加された点である。
ステップS161において、CDFG変更部160は、演算処理702の出力変数“red_d”を、演算処理(パイプライン処理)の処理サイクル数分で配列化するように第1CDFG111を変更する。本実施の形態では、演算処理(パイプライン処理)のサイクル数が4サイクルであることから、CDFG変更部160は、演算処理802のように出力変数を“res_d1[0]〜res_d1[4]”に配列化し、演算結果の取得元と保存先を“red_d1[i%4]”として、ループ回数毎に“res_d1[0]”〜“res_d1[3]”から割り当てている。
具体的には、CDFG変更部160は、まず、初期設定700を複製し初期設定800を生成する。次に、CDFG変更部160は、条件判定701の繰り返し演算数“i<N”を“i<4”に変更し、条件判定811を生成する。次に、演算処理702の入力変数“in_d”を“red_d1[i]”に変更し、演算処理812を生成する。最後に、ループ条件変数更新703を複製し、ループ条件変数更新813を生成する。
一方、回路図61では、演算処理回路611が図12の第1演算処理804に対応し、演算処理回路613が図12の第2演算処理814に対応している。演算処理回路611は演算処理をパイプライン処理で実施し、演算結果はFIFO612に一旦保存された後、演算処理回路613で演算処理を時分割処理で実施する。
本実施の形態の図15では第2演算処理814に対応する演算処理回路613を時分割処理で実施している例を示しているが、第2演算処理は第1演算処理と同様にパイプライン処理で行っても良いし、並列処理で行っても良い。
図16を用いて、本実施の形態の変形例に係る高位合成装置100yの構成について説明する。
図16に示すように、高位合成装置100yは、処理回路909、入力インタフェース930、出力インタフェース940といったハードウェアを備える。
以上のように、本実施の形態に係る高位合成装置100は、CDFGを変更するCDFG変更部を備える。CDFG変更部は、出力変数を次の入力変数として演算処理を繰り返す繰り返し演算処理をパイプライン化可能なようにCDFGを変更する。よって、出力変数を次の入力変数として演算処理を繰り返す繰り返し演算処理についてもパイプライン化をすると共に、適切な演算結果を得ることができる。また、このようにループ1回の処理の入力が前回の結果を参照するような回路においても、処理性能(処理レイテンシとクロック周期の積)が高いRTL記述を生成することができる。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (9)
- 演算処理を繰り返す繰り返し演算処理であって前記演算処理の出力を次の演算処理の入力とする繰り返し演算処理を表したCDFG(コントロールデータフローグラフ)を第1CDFGとして取得し、前記第1CDFGを、前記第1CDFGで表された前記繰り返し演算処理をパイプライン処理で実行する第2CDFGに変更するCDFG変更部を備えた高位合成装置。
- 前記高位合成装置は、さらに、
前記第1CDFGに表された前記繰り返し演算処理をパイプライン処理で実行した場合のスケジューリング結果を出力するスケジューリング部と、
前記スケジューリング結果に基づいて、前記第1CDFGに表された前記繰り返し演算処理がパイプライン処理できるか否かを判定するパイプライン判定部と
を備え、
前記CDFG変更部は、
前記パイプライン判定部により、前記第1CDFGに表された前記繰り返し演算処理がパイプライン処理できると判定された場合に前記第1CDFGを前記第2CDFGに変更する請求項1に記載の高位合成装置。 - 前記スケジューリング部は、
前記第1CDFGに表された前記繰り返し演算処理をパイプライン処理で実行した場合にデータハザードが生じた変数をデータハザード変数として含む前記スケジューリング結果を出力し、
前記パイプライン判定部は、
前記スケジューリング結果に含まれる前記データハザード変数に基づいて、前記第1CDFGに表された前記繰り返し演算処理がパイプライン処理できるか否かを判定する請求項2に記載の高位合成装置。 - 前記CDFG変更部は、
前記繰り返し演算処理のループ回数と前記演算処理の処理サイクルとに基づいて、前記第1CDFGを前記第2CDFGに変更する請求項1から3のいずれか1項に記載の高位合成装置。 - 前記CDFG変更部は、
前記第1CDFGを、前記繰り返し演算処理を前記処理サイクルの数のサブ繰り返し演算処理に分割し、前記処理サイクルの数のサブ繰り返し演算処理を実行する第1演算処理と、前記処理サイクルの数のサブ繰り返し演算処理の各々の出力を入力として前記演算処理を実行する第2演算処理とを表した前記第2CDFGに変更する請求項4に記載の高位合成装置。 - 前記第1演算処理は、パイプライン処理で実行できる請求項5に記載の高位合成装置。
- 前記第2演算処理は、パイプライン処理で実行できる請求項5又は6に記載の高位合成装置。
- 高位合成装置の高位合成方法において、
CDFG変更部が、演算処理を繰り返す繰り返し演算処理であって前記演算処理の出力を次の演算処理の入力とする繰り返し演算処理を表したCDFG(コントロールデータフローグラフ)を第1CDFGとして取得し、前記第1CDFGを、前記第1CDFGで表された前記繰り返し演算処理をパイプライン処理で実行する第2CDFGに変更する高位合成方法。 - 演算処理を繰り返す繰り返し演算処理であって前記演算処理の出力を次の演算処理の入力とする繰り返し演算処理を表したCDFG(コントロールデータフローグラフ)を第1CDFGとして取得し、前記第1CDFGを、前記第1CDFGで表された前記繰り返し演算処理をパイプライン処理で実行する第2CDFGに変更するCDFG変更処理をコンピュータに実行させる高位合成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/058445 WO2017158785A1 (ja) | 2016-03-17 | 2016-03-17 | 高位合成装置、高位合成方法及び高位合成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6246445B1 true JP6246445B1 (ja) | 2017-12-13 |
JPWO2017158785A1 JPWO2017158785A1 (ja) | 2018-03-22 |
Family
ID=59851689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017547004A Active JP6246445B1 (ja) | 2016-03-17 | 2016-03-17 | 高位合成装置、高位合成方法及び高位合成プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190034562A1 (ja) |
JP (1) | JP6246445B1 (ja) |
WO (1) | WO2017158785A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6761182B2 (ja) * | 2017-03-14 | 2020-09-23 | 富士通株式会社 | 情報処理装置、情報処理方法及びプログラム |
WO2019186618A1 (ja) * | 2018-03-26 | 2019-10-03 | 三菱電機株式会社 | 高位合成装置、高位合成方法および高位合成プログラム |
JP7407192B2 (ja) * | 2018-08-09 | 2023-12-28 | イーエニエーエスセー テック インスティチュート デ エンゲンハリア デ システマス エ コンピュータドレス テクノロジア エ シエンシア | フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009025973A (ja) * | 2007-07-18 | 2009-02-05 | Sharp Corp | 動作合成装置、半導体集積回路の製造方法、動作合成方法、動作合成制御プログラムおよび可読記録媒体 |
JP2009238085A (ja) * | 2008-03-28 | 2009-10-15 | Nec Corp | 動作合成システム、動作合成方法および動作合成用プログラム |
JP2010015339A (ja) * | 2008-07-02 | 2010-01-21 | Sharp Corp | 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法 |
JP2014006650A (ja) * | 2012-06-22 | 2014-01-16 | Renesas Electronics Corp | 動作合成装置、動作合成方法、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム |
JP2014174940A (ja) * | 2013-03-13 | 2014-09-22 | Renesas Electronics Corp | 動作合成装置及び動作合成プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689647A (en) * | 1989-03-14 | 1997-11-18 | Sanyo Electric Co., Ltd. | Parallel computing system with processing element number setting mode and shortest route determination with matrix size information |
JP4770657B2 (ja) * | 2006-09-13 | 2011-09-14 | 日本電気株式会社 | パイプライン合成システム、方法及びプログラム |
JP4444305B2 (ja) * | 2007-03-28 | 2010-03-31 | 株式会社東芝 | 半導体装置 |
-
2016
- 2016-03-17 WO PCT/JP2016/058445 patent/WO2017158785A1/ja active Application Filing
- 2016-03-17 JP JP2017547004A patent/JP6246445B1/ja active Active
- 2016-03-17 US US16/073,204 patent/US20190034562A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009025973A (ja) * | 2007-07-18 | 2009-02-05 | Sharp Corp | 動作合成装置、半導体集積回路の製造方法、動作合成方法、動作合成制御プログラムおよび可読記録媒体 |
JP2009238085A (ja) * | 2008-03-28 | 2009-10-15 | Nec Corp | 動作合成システム、動作合成方法および動作合成用プログラム |
JP2010015339A (ja) * | 2008-07-02 | 2010-01-21 | Sharp Corp | 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法 |
JP2014006650A (ja) * | 2012-06-22 | 2014-01-16 | Renesas Electronics Corp | 動作合成装置、動作合成方法、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム |
JP2014174940A (ja) * | 2013-03-13 | 2014-09-22 | Renesas Electronics Corp | 動作合成装置及び動作合成プログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2017158785A1 (ja) | 2017-09-21 |
JPWO2017158785A1 (ja) | 2018-03-22 |
US20190034562A1 (en) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hara et al. | Chstone: A benchmark program suite for practical c-based high-level synthesis | |
US8689156B2 (en) | Method of, and apparatus for, optimization of dataflow hardware | |
US7353491B2 (en) | Optimization of memory accesses in a circuit design | |
Ma et al. | Algorithm-hardware co-design of single shot detector for fast object detection on FPGAs | |
US7917882B2 (en) | Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof | |
US8839163B2 (en) | Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus | |
JP6246445B1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
US11995386B2 (en) | Verification of hardware design for data transformation component | |
US10599803B2 (en) | High level synthesis apparatus, high level synthesis method, and computer readable medium | |
Chowdhury et al. | Leveraging automatic high-level synthesis resource sharing to maximize dynamical voltage overscaling with error control | |
Stitt et al. | A parallel sliding-window generator for high-performance digital-signal processing on FPGAs | |
JP2016122299A (ja) | ステートマシン分割プログラム、情報処理装置およびステートマシン分割方法 | |
JPWO2019171464A1 (ja) | 設計支援装置および設計支援プログラム | |
US10303832B2 (en) | Architecture generating device | |
US9268891B1 (en) | Compact and efficient circuit implementation of dynamic ranges in hardware description languages | |
WO2018150588A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP2004246402A (ja) | 論理回路最適化方法、論理回路最適化装置、及び、論理回路合成装置 | |
JP5267376B2 (ja) | 動作合成装置、動作合成方法、ならびに、プログラム | |
US7853907B2 (en) | Over approximation of integrated circuit based clock gating logic | |
US20240320407A1 (en) | Verification of hardware design for data transformation component | |
US20240220121A1 (en) | Methods and apparatus for storing data | |
JP6545406B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
JP6266183B2 (ja) | 回路設計支援装置および回路設計支援プログラム | |
Lam et al. | Rapid evaluation of custom instruction selection approaches with FPGA estimation | |
US20070168788A1 (en) | Detector in parallel with a logic component |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170906 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170906 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20171003 |
|
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: 20171017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171114 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6246445 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |