JP6072383B1 - 高位合成装置、高位合成方法及び高位合成プログラム - Google Patents
高位合成装置、高位合成方法及び高位合成プログラム Download PDFInfo
- Publication number
- JP6072383B1 JP6072383B1 JP2016553026A JP2016553026A JP6072383B1 JP 6072383 B1 JP6072383 B1 JP 6072383B1 JP 2016553026 A JP2016553026 A JP 2016553026A JP 2016553026 A JP2016553026 A JP 2016553026A JP 6072383 B1 JP6072383 B1 JP 6072383B1
- Authority
- JP
- Japan
- Prior art keywords
- configuration
- circuit
- unit
- level synthesis
- execution units
- 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 abstract description 148
- 238000003786 synthesis reaction Methods 0.000 title claims abstract description 138
- 238000001308 synthesis method Methods 0.000 title claims description 6
- 230000003542 behavioural effect Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 80
- 230000008569 process Effects 0.000 claims description 71
- 238000012545 processing Methods 0.000 claims description 54
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 239000000872 buffer Substances 0.000 description 41
- 230000006870 function Effects 0.000 description 36
- 238000004458 analytical method Methods 0.000 description 29
- 230000015654 memory Effects 0.000 description 20
- 230000006872 improvement Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction 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
- G06F30/00—Computer-aided design [CAD]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Architecture (AREA)
- Software Systems (AREA)
Abstract
Description
設計者は、高級言語を用いたソースコードと、回路仕様とを高位合成ツールに入力することで、回路設計を行うことができる。また、設計者は、高級言語では表現できない、或いはソースコードで表現するには効率的でない回路仕様については、オプション、アトリビュート、プラグマといった高位合成オプションを設定して、高位合成ツールに入力する。
つまり、これらの高位合成オプションの組み合わせを試行し、試行結果から得られる特性、すなわち非機能要件を満たす最適な回路を選択することで、所望の回路を得ることができる。
しかしながら、これらの高位合成オプションの組み合わせは膨大になるため、探索の高速化が課題になる。そこで、特許文献1では、これらの高位合成オプションの設計空間を定義し、この設計空間の探索を高速に行う方法を開示している。
回路の動作を記述した動作記述であって複数の実行単位を含む動作記述を取得し、前記複数の実行単位で取り得る回路構成の候補を構成候補として決定する構成決定部と、
前記複数の実行単位の回路構成を前記構成候補とした場合の前記回路の特性を回路特性として算出し、前記回路特性が閾値を満たす場合に前記構成候補を決定回路構成として出力する判定部と、
前記複数の実行単位の回路構成が前記決定回路構成となるように前記動作記述に対して高位合成を実行する高位合成部とを備えた。
***構成の説明***
図1を用いて、本実施の形態に係る高位合成装置100の構成について説明する。
本実施の形態において、高位合成装置100は、コンピュータである。高位合成装置100は、プロセッサ910、記憶装置920、入力インタフェース930、出力インタフェース940といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを有する。
以下の説明では、高位合成装置100におけるロジック構成判定部110と、バッファ構成判定部120と、コード変換部130と、高位合成部140の機能を、高位合成装置100の「部」の機能という。ロジック構成判定部110の機能とは、単位構成決定部111と、構成決定部112と、判定部113と、解析部114と、回路共有指示部115の機能である。
高位合成装置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が記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
次に、本実施の形態の高位合成装置100の入出力について説明する。
高位合成装置100は、ソースコード151と非機能要件152と回路仕様153とを入力として高位合成を行い、RTL153と合成レポート155とを出力する。
また、ソースコード151は、複数の実行単位515を含む。実行単位515は、例えば、ループ記述、関数、動作単位、サブモジュールともいう。
合成レポート155は、RTL154と共に高位合成ツールから出力される。合成レポート155には、生成されたRTL154の非機能要件が設定される。即ち、合成レポート155には、生成されたRTLのレイテンシ、面積、スループット、消費電力、メモリ使用量、乗算器使用量、さらに回路への入力データの充填期間といった情報が設定されている。
ここで、回路への入力データの充填期間について説明する。回路の特性(性能)として一般的な項目は、レイテンシである。これは、入力データが回路に入力されてから、出力されるまでの期間、或いはサイクル数として定義されるのが一般である。
1つ目の回路構成は、F1とF2とを順序的に、直列に実行する回路構成である。これはF1を処理した後で、F2を処理する。この回路では、F1とF2で回路共有ができるため、回路規模の削減が見込める。つまり、F2が動作している期間はF1は動作しない。また、F1が動作している期間はF2は動作しないことになる。ここでF1のレイテンシをF1_LAT、F2のレイテンシをF2_LATとすると、トータルのレイテンシは、F1_LATとF2_LATを足した値F1_LAT+F2_LATとなる。
2つ目の回路構成は、F1とF2が並列で動作する場合である。F1とF2間にはダブルバッファとして、バッファAとバッファBとの2つのメモリを用意する。F1が処理結果をバッファAに書き込み、それと同時にF2はバッファBを読み出し、処理するという流れで、バケツリレーのように処理する。この回路構成のレイテンシも1つ目の回路構成と同じ、F1_LAT+F2_LATである。
ここで、入力データ充填期間を定義する。入力データ充填期間は、任意の関数で利用される配列へのデータ入力が充填される期間である。この入力データ充填期間をDTと呼ぶ。このDTは非機能要件152の1つである。
上記1つ目の回路構成では、DTは、F1_LAT+F2_LATである。上記2つ目の回路構成では、DTは、max(F1_LAT,F2_LAT)となる。
次に、本実施の形態に係る高位合成装置100の動作について説明する。
図2を用いて、本実施の形態に係る高位合成装置100の高位合成方法510及び高位合成プログラム520による高位合成処理S100の処理の概要について説明する。
高位合成処理S100は、ロジック構成判定処理S110と、バッファ構成判定処理S120と、コード変換処理S130と、高位合成実行処理S140とを有する。
ロジック構成判定処理S110は、非機能要件152を満たす回路全体の回路構成を決定回路構成310として、また、非機能要件152を満たす回路を構成するサブモジュール(実行単位)の単位内構成を決定単位内構成311として決定する。
また、バッファ構成判定処理S120は、各実行単位を接続するバッファ構成を決定する。このように、非機能要件152を満たす回路の回路構成と、この回路を構成する実行単位の単位内構成と、各実行単位を接続するバッファ構成とを決定することを、回路構成を探索するともいう。
図3は、本実施の形態に係るロジック構成判定処理S110を示すフロー図である。
ロジック構成判定処理S110は、単位構成決定処理S111と、構成決定処理S112と、判定処理S113と、解析処理S114と、回路共有指示処理S115とを有する。
まず、単位構成決定処理S111について説明する。単位構成決定処理S111では、単位構成決定部111は、複数の実行単位の各実行単位の取り得る単位内構成の候補を単位内構成候補として決定する。
そして、単位構成決定部111は、各ループ内にイタレーション間での依存関係があるか否かを判定する。単位構成決定部111は、各ループ内にイタレーション間での依存関係がないと判定した場合は、各ループをパイプライン化又は展開可能と判定する。ここで展開可能とは、並列化が可能であることを意味する。なお、各ループ内にイタレーション間での依存関係があるか否かの判定は、高位合成ツールを用いて行ってもよい。また、クラスタとしてループ以外の関数等を含んだ記述範囲を関数化してもよい。
単位構成決定部111は、各ループ内にイタレーション間での依存関係があると判定した場合は、各ループを非パイプライン及び展開不可と判定する。
単位構成決定処理S111により、各ループにおけるパイプライン化の可否と展開の可否とを判定できる。このため、パイプライン化又は展開ができないループ(回路)は、所望の回路の探索から除外することにより、探索処理を高速化することができる。
なお、このとき、単位構成決定部111は、高位合成ツールにおいて回路共有はしないモードを選択する。通常、回路共有を行うと、レイテンシが伸びる傾向になる。回路のレイテンシは高位合成ツールのオプションで設定が可能であるが、無限に設定できてしまう。本実施の形態では、単位構成決定処理S111時点での回路共有を抑制し、後工程である回路共有指示処理S116においてレイテンシを指定することによる回路共有を行うことで、探索範囲を限定し、高速に最適解を得られるという効果がある。
単位構成決定部111は、図4に示すソースコード151からループ記述箇所を構文解析により抽出し、ループ毎にF1,F2との関数化を行う。図4に示すF1のループ記述とF2のループ記述との各々が実行単位515の一例である。
図4に示すソースコード151では各ループ内で依存関係がないため、単位構成決定部111は、各ループ内で依存関係がないと判定し、いずれのループもパイプライン化又は展開が可能であると判定する。
そして、単位構成決定部111は、ソースコード151を高位合成ツールに入力する。
図5は、本実施の形態に係るソースコード151を高位合成ツールに入力した場合の合成結果51を示す図である。図5では、パイプライン化したループ(回路)で高位合成した場合の合成結果51を示しているが、非パイプラインで高位合成した場合も同様にして求められる。
次に、構成決定処理S112について説明する。
構成決定処理S112において、構成決定部112は、回路の動作を記述したソースコード151であって複数の実行単位を含むソースコード151を取得し、複数の実行単位で取り得る回路構成の候補を構成候補として決定する。
具体的には、構成決定部112は、異なるループ記述の依存関係から、構成候補を決定する。すなわち、構成決定部112は、異なるループ記述の依存関係から、異なるループ記述部分の回路が並列実行可能かどうかを判断する。構成決定部112は、異なるループ記述部分の回路が並列実行可能であると判定した場合、異なるループ記述部分の回路の並列実行開始が可能になるタイミングを計測する。
異なるループ記述の依存関係とは、ソースコード151により記述される回路において、ループで表される実行単位間の構成、すなわち回路全体の回路構成を意味する。
構成決定処理S112の手順は以下である。
(1)構成決定部112は、ループ間で共通に利用、即ち共通に参照或いは代入されている変数を構文解析により抽出する。
(2)構成決定部112は、各ループにおいて、変数へのライト及びリードするインデックスを構文解析により抽出する。変数へのライトにおいて、変数が配列でない場合は、最終イタレーション値、即ちループ上限値をインデックスとする。また、変数へのリードにおいて、変数が配列でない場合は、インデックスを0とする。
(3)構成決定部112は、共通する変数のライトとリードとのインデックスの差分絶対値を算出し、これらの中から最大値をDelayとして計算する。
(1)構成決定部112は、構文解析を用いて、ループ間で共通に利用されている変数sumとbとを抽出する。
(2)F1のループでsum及びb[i]へ代入されているインデックスを抽出する。sumへ代入されているインデックスはSIZE−1(ループ上限値)である。b[i]へ代入されているインデックスは「0・・・SIZE−1(+1)」である。ここで、・・・は()内に示す数だけ順に加算されていることを意味する。つまり、0,1,2,3,・・・,SIZE−1と同義である。
F2のループではsum及びb[i]はリードである。リードは、sum及びb[i]及びb[i+1]であり、それぞれのインデックスは0、「0・・・SIZE−1(+1)」、「1・・・SIZE−2(+1)」である。
(3)次にDelayを算出する。
例では、sumの場合、|(SIZE−1)−(0)|=SIZE−1である。b[i]の場合、|(0・・・SIZE−1)−(0・・・SIZE−1)|=0・・・0(0)である。b[i+1]の場合、|(0・・・SIZE−1)−(1・・・SIZE−2)|=1・・・1(0)である。よって、sum及びb[i]及びb[i+1]のうちインデックスの差分絶対値の最大値はSIZE−1である。
構成決定処理S112は、ソースコード151で表される全体回路に含まれる異なるループ記述部分の回路が並列型(遅延形)で構成可能か否かの決定を行う。構成決定処理S112は、ループ間アーキテクチャ判定処理ともいう。また、構成決定部112は、ループ間アーキテクチャ判定部ともいう。
判定処理S113では、判定部113は、複数のループ記述の回路構成を、構成決定処理S112で決定された構成候補とした場合の回路の特性を回路特性522として算出する。そして、判定部113は、回路特性522が閾値521を満たす場合にその構成候補を決定回路構成310として出力する。また、判定部113は、回路特性522が閾値521を満たす場合に複数の実行単位515の各実行単位515の単位内構成候補を決定単位内構成311として出力する。
具体的には、判定部113は、回路全体の回路構成(ループ間アーキテクチャ)の非機能(回路特性522)を計算する。このとき、判定部113は、実行単位の回路構成候補毎に、さらに、各実行単位の単位内構成候補毎に回路特性522を算出し、回路特性522を含む非機能要件結果52を算出する。判定部113は、回路のレイテンシと回路の入力データ充填期間(DT)とを含む回路特性522を算出する。
判定部113は、算出した非機能要件結果52が記憶部150に記憶されている非機能要件152(閾値521)を満たしているか否かの判定を行う(ステップS113a)。
また、図7は、本実施の形態に係る判定処理S113において用いられる回路構成(ループ間アーキテクチャ)の計算式31である回路構成計算式3132を示す図である。図8は、本実施の形態に係る判定処理S113において用いられる回路構成(ループ間アーキテクチャ)の計算式31であるDT計算式3133を示す図である。
ここで、LOOPは、ループ数である。Nは、並列数である。LOGIC_LATは、1イテレーション分レイテンシである。FNは、ループ番号Nの処理であり、サンプル(具体例)ではF1とF2がある。FNcycleは、FNのレイテンシである。Delayn−1,nは、FN番目とFN−1番目の上述した構成決定処理S112で求めた距離である。DII(Data Initiation Interval)は、パイプライン化した場合のスループットであり、これは高位合成ツールでも同様に定義される。
即ち、判定部113は、回路全体の回路構成(ループ間アーキテクチャ)の非機能として、レイテンシとDTとを非機能要件結果52として算出する。
図9及び図10に示すように、判定部113は、複数の実行単位の各実行単位の特性を単位毎特性として算出し、算出した単位毎特性に基づいて回路全体の回路特性522を算出する。また、図9及び図10に示すように、判定部113は、回路特性522を、複数の実行単位の各実行単位の単位内構成候補毎に算出する。すなわち、判定部113は、F1とF2との各々について、パイプラインの場合と非パイプラインの場合との単位内構成候補毎の単位毎特性を算出する。そして、算出した単位内構成候補毎の単位毎特性に基づいて、回路特性522を算出する。
判定部113は、非機能要件結果52が非機能要件152を満たしていないと判定した場合は、解析処理S114に進む。一方、判定部113は、非機能要件結果52が非機能要件152を満たすと判定した場合は、回路共有指示処理S115に進む。
解析処理S114において、解析部114は、判定部113により回路特性522が閾値521を満たさないと判定された場合、単位毎特性に基づいて構成を変更する実行単位515を解析する。具体的には、非機能要件結果52が非機能要件152を満たさない場合、非機能要件152を満たすための改善ポイントを解析する。解析部114は、改善のための指示を改善指示として単位構成決定処理S111に出力し、単位構成決定処理S111に処理を戻す。
また、解析部114は、非機能要件152としての回路規模が満たせない場合は、現在のLOGIC_LAT値から1を足した値をLOGIC_LATとして定義する改善指示を単位構成決定部111に出力する。単位構成決定処理S111では、単位構成決定部111は、解析部114から出力された改善指示に基づいて、高位合成ツール上の回路共有モードをオンにして、高位合成を実行する。先の単位構成決定処理S111では、回路共有モードをオフにして高位合成を実行していた。つまり、レイテンシは最も短く、回路規模は大きいものである。非機能要件152としての回路規模が満たせない場合は、回路共有モードをオンにするが、この場合、高位合成ツールは、どの程度、回路共有をすべきかが分からない。これはレイテンシが設定されていないからである。レイテンシを設定することで、限られた時間制約のもと回路共有を行うことができる。つまり、この処理は、非機能要件であるレイテンシを可能な限り維持しつつ、回路共有を探索する方法であり、回路規模共有の探索が高速に行える。
解析部114は、非機能要件結果52が非機能要件152を満たせていないと判定する。
解析部114は、F2を並列化N=2として指定する改善指示を生成し、単位構成決定部111に出力する。単位構成決定処理S111では、単位構成決定部111は、解析部114から出力された改善指示に基づいて、F2を並列化N=2とする改善指示を単位構成決定処理S111に出力し、再度評価を行う。
次に、図3に戻り説明を続ける。
回路共有指示部115は、判定部113により回路特性522が閾値521を満たすと判定された場合、各実行単位の単位毎特性に基づいて回路共有を指示する。具体的には、回路共有指示部115は、回路全体のレイテンシに影響しない単位内構成のレイテンシを求め、これを高位合成ツールへのオプションとして与える。
この処理は、回路構成として並列型が選択されている場合に限定される。並列型では、上述した計算式のように、実行単位のレイテンシがレイテンシ計算式、及びDT計算式上に現れない実行単位が存在する。例えば、並列型のDT計算式においては、Maxで計算するため、この最大値より小さい値を持つ実行単位のレイテンシを最大値以下に設定しても、全体の性能に影響を与えない。
そこで、該当する単位内構成のレイテンシを最大値までに引きあげる。このようにすることで、実行単位の回路共有が可能になり、かつ一般には回路共有によりレイテンシが伸びてしまうが、この場合に限り、全体のレイテンシには影響しないことなるため、効果的に最適な回路共有が可能になる。
次に、バッファ構成判定部120は、複数の実行単位が決定回路構成310を成す場合の複数の実行単位間のバッファ構成22を決定する。すなわち、バッファ構成判定部120は、ロジック構成判定処理S110において決定された決定回路構成310を実現するためのバッファ構成22を決定する。
(1)基本構成の決定
バッファ構成判定部120は、バッファの基本構成を、回路全体の回路構成(ループ間アーキテクチャ)が直列型ならShare型、並列型(基本形)ならダブルバッファ型、並列型(遅延型)ならラインバッファ型とする。
(2)SIZEの取得
(2−1)Share型の場合:配列の要素数等より判断する。
(2−2)ダブルバッファ型の場合:配列の要素数等より判断する。
(2−3)ラインバッファ型の場合:遅延量(Delay)とする。
(3)シフトレジスタ化
Share型、ダブルバッファ型、ラインバッファ型共に、配列に対して、複数のリード(参照)がある場合は、要素数のインデックスよりシフトレジスタ化を判定する。
(4)ポート数及びメモリ個数の判断
バッファ構成判定部120は、単位内構成が並列の場合、並列数に応じたポート数、メモリ個数を生成する。
以上の手順でバッファ構成判定部120は、バッファ構成22を決定する。
コード変換処理S130において、コード変換部130は、複数の実行単位の回路構成が決定回路構成310となるように動作記述を変換し、変換した動作記述を変換記述として出力する。さらに、コード変換部130は、複数の実行単位の各実行単位の単位内構成が決定単位内構成311となるように動作記述を変換すると共に高位合成オプションを設定する。さらに、コード変換部130は、バッファ構成判定部120により決定されたバッファ構成22を実現するように動作記述を変換すると共に高位合成オプションを設定する。
高位合成実行処理S140において、高位合成部140は、コード変換処理S130において生成されたソースコードと高位合成オプションとを高位合成ツールに入力することにより、高位合成実行処理S140を実行し、RTL154及び合成レポート155を出力する。
高位合成装置100は、通信装置を備え、通信装置を介して、ソースコード151、非機能要件152、回路仕様153を受信してもよい。また、高位合成装置100は、通信装置を介して、RTL154及び合成レポート155を送信してもよい。この場合、通信装置はレシーバとトランスミッタとを備える。具体的には、通信装置は通信チップ又はNIC(Network Interface Card)である。通信装置はデータを通信する通信部として機能する。レシーバはデータを受信する受信部として機能し、トランスミッタはデータを送信する送信部として機能する。
図15を用いて、本実施の形態の変形例に係る高位合成装置100xの構成について説明する。
図15に示すように、高位合成装置100xは、処理回路909、入力インタフェース930、出力インタフェース940といったハードウェアを備える。
本実施の形態に係る高位合成装置100は、回路の動作を記述した動作記述であるソースコードと、回路の特性を決める非機能要件と、合成対象の回路仕様とを入力として、高位合成処理を行い、ハードウェア記述言語を出力する。この高位合成装置100は、並列実行単位の内部アーキテクチャ及び並列化アーキテクチャを決めるロジック構成判定部と、並列化されたアーキテクチャ間のバッファ構成を決めるバッファ構成判定部とを備える。また、高位合成装置100は、ロジック構成判定部により決められたロジックアーキテクチャとバッファ構成判定部により決められたバッファ構成とを実現するソースコードと高位合成オプションとを生成するコード変換部を備える。よって、本実施の形態に係る高位合成装置100によれば、これまで手動で行ってきた、非機能要件を満たすためのアーキテクチャ設計と、そのアーキテクチャを実現するためのソースコード及び高位合成オプション等の設定を自動かつ高速に行うことができる。さらに、本実施の形態に係る高位合成装置100によれば、設計者に依存せず、短時間で最適な回路の設計が可能になる。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (8)
- 回路の動作を記述した動作記述であって複数の実行単位を含む動作記述を取得し、前記複数の実行単位で取り得る回路構成の候補を構成候補として決定する構成決定部と、
前記複数の実行単位で利用される配列へのデータ入力が充填される期間である入力データ充填期間の閾値を取得し、前記複数の実行単位の回路構成を前記構成候補とした場合の前記回路の入力データ充填期間を前記回路の回路特性として算出し、前記回路特性が前記閾値を満たす場合に前記構成候補を決定回路構成として出力する判定部と、
前記複数の実行単位の回路構成が前記決定回路構成となるように前記動作記述に対して高位合成を実行する高位合成部と
を備えた高位合成装置。 - 前記高位合成装置は、さらに、
前記複数の実行単位の回路構成が前記決定回路構成となるように前記動作記述を変換すると共に高位合成オプションを設定するコード変換部を備え、
前記高位合成部は、
前記コード変換部により変換された前記動作記述と前記高位合成オプションを用いて高位合成を実行する請求項1に記載の高位合成装置。 - 前記構成決定部は、
前記複数の実行単位の依存関係に基づいて前記構成候補を決定する請求項1または2に記載の高位合成装置。 - 前記構成決定部は、
前記複数の実行単位に共通の変数に基づいて前記複数の実行単位の依存関係を判定する請求項3に記載の高位合成装置。 - 前記高位合成装置は、さらに、
前記複数の実行単位の各実行単位の取り得る単位内構成の候補を単位内構成候補として決定する単位構成決定部を備え、
前記判定部は、
前記回路の特性を前記複数の実行単位の各実行単位の単位内構成候補毎に算出し、前記回路特性が閾値を満たす場合に前記複数の実行単位の各実行単位の単位内構成候補を決定単位内構成として出力し、
前記高位合成部は、
前記複数の実行単位の各実行単位の単位内構成が決定単位内構成となるように前記動作記述に対して高位合成を実行する請求項1から4のいずれか1項に記載の高位合成装置。 - 前記実行単位は、ループ記述である請求項1から5のいずれか1項に記載の高位合成装置。
- 構成決定部が、回路の動作を記述した動作記述であって複数の実行単位を含む動作記述を取得し、前記複数の実行単位で取り得る回路構成の候補を構成候補として決定し、
判定部が、前記複数の実行単位で利用される配列へのデータ入力が充填される期間である入力データ充填期間の閾値を取得し、前記複数の実行単位の回路構成を前記構成候補とした場合の前記回路の入力データ充填期間を前記回路の回路特性として算出し、前記回路特性が前記閾値を満たす場合に前記構成候補を決定回路構成として出力し、
高位合成部が、前記複数の実行単位の回路構成が前記決定回路構成となるように前記動作記述に対して高位合成を実行する高位合成方法。 - 回路の動作を記述した動作記述であって複数の実行単位を含む動作記述を取得し、前記複数の実行単位で取り得る回路構成の候補を構成候補として決定する構成決定処理と、
前記複数の実行単位で利用される配列へのデータ入力が充填される期間である入力データ充填期間の閾値を取得し、前記複数の実行単位の回路構成を前記構成候補とした場合の前記回路の入力データ充填期間を前記回路の回路特性として算出し、前記回路特性が前記閾値を満たす場合に前記構成候補を決定回路構成として出力する判定処理と、
前記複数の実行単位の回路構成が前記決定回路構成となるように前記動作記述に対して高位合成を実行する高位合成処理と
をコンピュータに実行させる高位合成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/057668 WO2017154183A1 (ja) | 2016-03-10 | 2016-03-10 | 高位合成装置、高位合成方法及び高位合成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6072383B1 true JP6072383B1 (ja) | 2017-02-01 |
JPWO2017154183A1 JPWO2017154183A1 (ja) | 2018-03-22 |
Family
ID=57937605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016553026A Active JP6072383B1 (ja) | 2016-03-10 | 2016-03-10 | 高位合成装置、高位合成方法及び高位合成プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10599803B2 (ja) |
JP (1) | JP6072383B1 (ja) |
WO (1) | WO2017154183A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599803B2 (en) * | 2016-03-10 | 2020-03-24 | Mitsubishi Electric Corporation | High level synthesis apparatus, high level synthesis method, and computer readable medium |
JP7150668B2 (ja) * | 2019-06-21 | 2022-10-11 | 株式会社日立製作所 | 高位合成装置及び高位合成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012079233A (ja) * | 2010-10-05 | 2012-04-19 | Fujitsu Semiconductor Ltd | 設計データ生成装置、設計データ生成方法及びプログラム |
JP2012118835A (ja) * | 2010-12-02 | 2012-06-21 | Nec Corp | 動作合成システム、動作合成方法、動作合成用プログラム及び半導体装置 |
JP2013235474A (ja) * | 2012-05-10 | 2013-11-21 | Mitsubishi Electric Corp | 回路設計支援装置及び回路設計支援方法及びプログラム |
JP2015095130A (ja) * | 2013-11-13 | 2015-05-18 | 三菱電機株式会社 | 回路設計支援装置及びプログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5491640A (en) * | 1992-05-01 | 1996-02-13 | Vlsi Technology, Inc. | Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication |
US5841663A (en) * | 1995-09-14 | 1998-11-24 | Vlsi Technology, Inc. | Apparatus and method for synthesizing integrated circuits using parameterized HDL modules |
US6421815B1 (en) * | 1998-01-09 | 2002-07-16 | Synopsys, Inc. | Method and apparatus for optimized partitioning of finite state machines synthesized from hierarchical high-level descriptions |
US6941541B2 (en) * | 2002-07-19 | 2005-09-06 | Hewlett-Packard Development Company, L.P. | Efficient pipelining of synthesized synchronous circuits |
WO2010113330A2 (en) | 2009-03-31 | 2010-10-07 | Nec Corporation | Method and apparatus for design space exploration in high level synthesis |
US8839255B2 (en) * | 2009-07-23 | 2014-09-16 | Empire Technology Development Llc | Scheduling of threads by batch scheduling |
WO2011125232A1 (en) | 2010-04-09 | 2011-10-13 | Nec Corporation | Method and apparatus for design space exploration acceleration |
US8464190B2 (en) * | 2011-02-17 | 2013-06-11 | Maxeler Technologies Ltd. | Method of, and apparatus for, stream scheduling in parallel pipelined hardware |
JP5985900B2 (ja) | 2012-06-22 | 2016-09-06 | ルネサスエレクトロニクス株式会社 | 動作合成装置、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム |
JP6081832B2 (ja) | 2013-03-13 | 2017-02-15 | ルネサスエレクトロニクス株式会社 | 動作合成装置及び動作合成プログラム |
US10599803B2 (en) * | 2016-03-10 | 2020-03-24 | Mitsubishi Electric Corporation | High level synthesis apparatus, high level synthesis method, and computer readable medium |
US10372507B2 (en) * | 2016-12-31 | 2019-08-06 | Intel Corporation | Compute engine architecture to support data-parallel loops with reduction operations |
US10380063B2 (en) * | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
-
2016
- 2016-03-10 US US16/061,442 patent/US10599803B2/en active Active
- 2016-03-10 JP JP2016553026A patent/JP6072383B1/ja active Active
- 2016-03-10 WO PCT/JP2016/057668 patent/WO2017154183A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012079233A (ja) * | 2010-10-05 | 2012-04-19 | Fujitsu Semiconductor Ltd | 設計データ生成装置、設計データ生成方法及びプログラム |
JP2012118835A (ja) * | 2010-12-02 | 2012-06-21 | Nec Corp | 動作合成システム、動作合成方法、動作合成用プログラム及び半導体装置 |
JP2013235474A (ja) * | 2012-05-10 | 2013-11-21 | Mitsubishi Electric Corp | 回路設計支援装置及び回路設計支援方法及びプログラム |
JP2015095130A (ja) * | 2013-11-13 | 2015-05-18 | 三菱電機株式会社 | 回路設計支援装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017154183A1 (ja) | 2018-03-22 |
US10599803B2 (en) | 2020-03-24 |
US20190303513A1 (en) | 2019-10-03 |
WO2017154183A1 (ja) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10684776B2 (en) | Memory configuration for inter-processor communication in an MPSoC | |
JP3860575B2 (ja) | 構成可能な実行ユニットを有する高性能のハイブリッドプロセッサ | |
US10331836B1 (en) | Loop optimization for implementing circuit designs in hardware | |
Abdelhalim et al. | An integrated high-level hardware/software partitioning methodology | |
Wang et al. | PipeCNN: An OpenCL-based FPGA accelerator for large-scale convolution neuron networks | |
US9483597B1 (en) | Opportunistic candidate path selection during physical optimization of a circuit design for an IC | |
CN106462431B (zh) | 在高级综合中提取系统架构 | |
Wang et al. | Ant colony optimizations for resource-and timing-constrained operation scheduling | |
Pursley et al. | High-level low-power system design optimization | |
US6604232B2 (en) | High-level synthesis method and storage medium storing the same | |
JP6072383B1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
Ronak et al. | Efficient mapping of mathematical expressions into DSP blocks | |
JP6246445B1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
Takach | Design and verification using high-level synthesis | |
WO2020188658A1 (ja) | アーキテクチャ推定装置、アーキテクチャ推定方法、およびアーキテクチャ推定プログラム | |
US9171117B2 (en) | Method for ranking paths for power optimization of an integrated circuit design and corresponding computer program product | |
JPWO2019171464A1 (ja) | 設計支援装置および設計支援プログラム | |
JP6735951B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
Augé et al. | User guided high level synthesis | |
US8056030B2 (en) | Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program | |
JP6305644B2 (ja) | アーキテクチャ生成装置およびアーキテクチャ生成プログラム | |
US10311188B2 (en) | Circuit design support apparatus, circuit design support method, and computer readable medium | |
JP6545406B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
KR102631214B1 (ko) | 대규모 언어 모델 추론을 가속화하기 위한 효율적인 데이터 포워딩 방법 및 시스템 | |
Trajkovic et al. | Automated generation of custom processor core from c code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20161125 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6072383 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |