JP5910108B2 - 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 - Google Patents
高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 Download PDFInfo
- Publication number
- JP5910108B2 JP5910108B2 JP2012013177A JP2012013177A JP5910108B2 JP 5910108 B2 JP5910108 B2 JP 5910108B2 JP 2012013177 A JP2012013177 A JP 2012013177A JP 2012013177 A JP2012013177 A JP 2012013177A JP 5910108 B2 JP5910108 B2 JP 5910108B2
- Authority
- JP
- Japan
- Prior art keywords
- latency
- description file
- function
- circuit
- level synthesis
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
例えば,C/C++言語で記述すると,タイミングなどの時間の概念を記述することができない。したがって,高位設計を行う場合は,集積回路の機能すべてを高位言語で記述するのではなく,適材適所で既存のRTL設計と組み合わせて行うのが一般的である。
プロセッサと,
前記プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成部と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出部と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成部と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出部と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,前記レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成部と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入部とを有する。
本実施の形態では,上記のラッパーモジュールのHDLファイルの開発を,高位言語によるビヘイビア記述とは別に行うのではなく,アルゴリズム機能部分の記述と,外部IFや機能部分の制御を行う部分(以下制御部分と称する。)の記述とを含むビヘイビア記述ファイルを開発する。そして,そのビヘイビア記述ファイルを高位合成することにより,アルゴリズム機能回路と,そのレイテンシに対応する制御や外部IFを行う制御回路とを有するHDLファイルに変換する。この高位合成により,レイテンシの計算を行う回路が自動的に生成される。その結果,生成されたHDLファイルの回路では,アルゴリズム機能回路内でその計算回路がレイテンシを計算し,制御回路に出力して,制御回路がレイテンシに基づく制御を行う。
図7は,本実施の形態における高位合成装置の構成図である。高位合成装置は,CPUなどのプロセッサ10と,RAMなどのメモリ12と,プログラムファイルやデータファイルが格納されたファイルシステムとがバスBUSを介して接続されるコンピュータシステムである。ファイルシステム内には,レイテンシ計算回路挿入機能付きの高位合成プログラム100と,高位合成用ライブラリ103とが格納される。レイテンシ計算回路挿入機能付き高位合成プログラム100は,通常の高位合成を行う高位合成プログラム110と,レイテンシ計算回路挿入プログラム120とを有する。
図9は,本実施の形態における動的レイテンシ計算回路挿入装置の処理のフローチャート図である。以下,処理の概略を説明し,その後ビヘイビア記述の具体例に基づいて,詳細に説明する。
(1)C/C++で記述された機能部分からレイテンシ拡張変数と関数を抽出し,拡張変数DB122を生成する(拡張変数抽出処理121)。
(2)前記関数に含まれるループを抽出し,ループ回数を含むループ情報を抽出し,ループ情報DB124を生成する(ループ情報抽出処理123)。
(3)前記関数を要素毎に分割し,各要素の静的なレイテンシを求め,静的レイテンシDB126を生成する(静的レイテンシ抽出処理125)。これでレイテンシ計算回路を生成するために必要なデータベースが構築される。
(4)前記ループ情報と前記静的なレイテンシとに基づき,動的レイテンシを計算するための式を求める(レイテンシ計算回路生成処理127)。
(5)レイテンシ計算式に相当する回路のHDLファイル128を,高位合成で変換された回路のHDLファイル104の中のレイテンシ拡張変数の箇所に挿入する(レイテンシ計算回路挿入処理129)。である。
図10は,ビヘイビア記述ファイルの例を示す図である。この例は,C/C++で記述され,px列,py行の画素マトリクス内の各画素データの平均値を求める機能部分を有する。
入力px:横の画像サイズ
入力py:縦の画像サイズ
入力mem:画像のメモリ
入力start:開始信号
出力run:計算中を示す状態信号
出力done:終了信号
戻り値ave:平均算出結果(pxとpyの全画素を累積加算して,平均値を求める)
そして,画像メモリmemから横の画像サイズpxと縦の画像サイズpyで指定したサイズの画像データを読み込み,指定サイズの画像データの画素の平均値を算出して,平均値aveを出力する処理内容となっている。例えば,px=8,py=8の場合は,8×8=64画素分の平均値を求めて出力する。従って,本ソースコードは,平均値算出のためのループ回数がpxとpyで可変となり,高位合成した回路もpxとpyに従って入力から演算結果が出力されるまでのレイテンシが可変になっている。
図10のビヘイビア記述ファイルを例にして,図8,図9を参照しながら,本実施の形態における高位合成装置(または高位合成プログラム)100の詳細な処理について説明する。以下,高位合成プログラムをプロセッサが実行した場合の処理として説明する。
高位合成プログラム110は,コード解析処理111にて,ビヘイビア記述ファイル101が高位合成可能な記述であることをチェックし,高位合成装置が解釈できるフォーマットに変換する。このコード解析処理は,一般的なコンパイラ技術をもとに作られており,字句解析,構文解析,意味解析,などからなる。コード解析の処理後に拡張変数抽出処理121で拡張変数を抽出する処理を行う。
図13は,拡張変数抽出処理121のフローチャート図である。図14は,拡張変数DB122の内容とそれを生成する段階で生成される関数ツリーを示す図である。ビヘイビア記述ファイル101(図10のソースコード例参照)をコード処理111で解析を行った後,図13のフローチャート図に従って,拡張変数P_HLS_LAYTENCYを拡張変数DB 122に登録する。
コード最適化処理112では,コード解析111の結果をもとにコード記述の最適化を行う。例えば,冗長なコードがある場合に冗長性をなくすよう最適化するなどである。一般的なコンパイラ技術の最適化のフェーズにあたる。
次に,最適化したソースコードからデータ・フロー・グラフを生成し,高位合成に必要なデータの流れを明確にする。このコントロール・データ・フロー解析113内のループ解析113aと条件分岐解析113bで,後工程であるリソース・アロケーション115とスケジューリング116の処理対象となるループ文や条件分岐の解析を行い,ループや条件分岐が反映されたデータ・フロー・グラフを生成する。そして,コントロール・データ・フロー解析の処理後にループ情報抽出123でループ情報を抽出する処理を行う。
図15は,ループ情報抽出123の処理フローチャート図である。図16は,抽出されたループ情報データベースの一例を示す図である。コントロール・データ・フロー解析113でループ解析113aや条件分岐解析113bを行った後に,動的レイテンシ計算回路挿入プログラム120が,ループ情報抽出処理123を実行する。
高位合成プログラム110に戻り,ライブラリ選択処理114では,高位合成制約102で指定したライブラリを高位合成ライブラリ103から読み込み,高位合成に必要な演算リソースの作成や,すでに準備された演算リソースを選択して,次の処理であるリソース・アロケーション115にライブラリデータを渡す。
次に,リソース・アロケーション処理115では,コントロール・データ・フロー解析113で生成したデータ・フロー・グラフの各演算パーツ(加減算器,乗算器,除算器,など)に対して,ライブラリ選択114で読み込んだライブラリのリソースを割り当てる。これも高位合成の一般的処理である。
スケジューリング処理116では,リソース・アロケーション115でライブラリデータを適用したデータ・フロー・グラフに対して,高位合成制約102で記述した目標動作周波数,スループットなどの制約を与え,その制約を満たす範囲内で高位合成可能なクロックサイクルを計算する。本処理の時点でUntimedな処理フローからフリップフロップを利用したクロックサイクルの処理フロー(RTL: Register Transfer Level)への変換が行われる。本実施の形態では,スケジューリングの処理後に静的レイテンシ抽出125で静的レイテンシを抽出する処理を行う。
次に,スケジューリング116で各関数内に存在する静的なレイテンシが決定可能になるので,静的レイテンシ抽出処理125では,静的レイテンシの値を抽出し,静的レイテンシDB 126に登録する。
関数pixel_aveの場合では,
I:条件式であるため文属性は条件式,親ループは存在せずなし,レイテンシは0
II:代入文であるため文属性は代入,親ループは存在せずなし,レイテンシは1
III:累積加算であるため文属性は計算式,親ループはループL1,レイテンシは5
IV:関数であるため文属性は関数,親ループは存在せずなし,レイテンシは未定
V:リターンであるため文属性はリターン,親ループは存在せずなし,レイテンシは0
また,関数calc_aveの場合では,
VI:計算式であるため文属性は式,親ループは存在せずなし,レイテンシは3
VII:リターンであるため文属性はリターン,親ループは存在せずなし,レイテンシは0
上記の両関数の演算要素のレイテンシ抽出により,両関数に対する静的レイテンシDBは,図20の表6,表7に示されるとおりとなる。さらに,関数calc_aveのレイテンシは,表7のレイテンシの列を加算することで得られ,関数calc_aveのレイテンシは3+0=3となる。
高位合成プログラム110に戻り,回路最適化処理117にて,スケジューリング116で生成されたRTL(図17(3))に対して,演算器やフリップフロップの最適化を行い,制約を満たす範囲内で最適な回路を構築する。この最適化処理により,冗長な構成や無駄な構成などが最適化される。これも一般的な高位合成プログラムの処理の一つである。
高位合成プログラム110は,上記の最適化されたRTL回路からHDLファイルを生成する。HDLファイルとしては,一般的にVerilog-HDLやVHDLが使用される。本実施の形態では,HDLファイル生成処理118の後にレイテンシ計算回路挿入処理129でレイテンシ計算回路の生成と挿入を行う。
一方,動的レイテンシ計算回路挿入プログラム120は,レイテンシ計算回路生成処理127を実行して,レイテンシ計算回路のHDLファイルを生成する。レイテンシ計算回路生成処理127では,図16のループ情報DB 124と図20の静的レイテンシDB 126に基づいて,動的レイテンシ計算回路のHDLファイル128を生成する。
表9の関数pixel_aveの親ループL0の情報は,表3の関数pixel_aveのループ情報DBにおけるループ名L0の列を参照することで取得できる(S42)。この場合,表3の関数pixel_aveのループ情報DBでは,ループL0の親ループはなし,回数属性は変数,変数名はpxであるため,表9の要素IIIの親ループ名をL0から親ループなしに書き換え(S43),表3のループL0のループ回数である変数名pxに基づいて,表9のIIIのレイテンシを5*px*pyに書き換える(S44)。上記の処理を行うことで,図24において表9は表10のように更新される。
処理S42-S44の繰り返しにより,静的レイテンシDB内の未確定情報がすべて確定したため,表10のレイテンシの列の総和が関数pixel_aveのレイテンシの計算式になる(S45)。表10の例では,「1+5*px*py+3」というレイテンシ計算式になる。そこで,このレイテンシ計算式に相当する回路のHDLファイルが,動的なレイテンシ計算回路128として生成される(S46)。
レイテンシ計算回路挿入処理129では,HDLファイル104内の拡張変数と拡張変数DB 122に登録されている拡張変数が一致することを確認し,一致すればHDLファイル104内の拡張変数の箇所にレイテンシ計算回路のHDL記述128を挿入し,レイテンシ計算回路付き回路のHDLファイル105を生成する。
図22のレイテンシ計算回路の生成処理127を実行したとき,レイテンシ計算式に変数が含まれない場合がある。その場合は,その関数のレイテンシは,入力パラメータにより動的に変化することのない静的レイテンシである。その場合は,レイテンシ計算回路は,変数が含まれず,固定値の演算式または固定値になる。たとえば,上記の例でpx=4,py=4の固定値の場合は,レイテンシ計算式は「1+5×4×4+3」となり,レイテンシ=84で固定となる。
図27,図28,図29は,図8のHDLファイル104の例を示す図である。図27において,リスト1-aは,図10のビヘイビア記述ファイルの行3-8の関数calc_aveを高位合成した回路のHDL記述例である。リスト1-aでは,関数calc_aveの動作を高位合成した回路の具体的なHDL記述は簡単のために省略されている。リスト1-a内に示されるとおり,このHDL記述は,入力sum,px,pyと出力aveを有する回路モジュールcalc_aveを記述する。
タイミング記述がない高位言語により集積回路の機能を記述したビヘイビア記述ファイルを,タイミング記述を含めて前記集積回路を記述するハードウエア記述ファイルに変換する高位合成装置であって,
プロセッサと,
前記プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成部と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出部と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成部と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出部(125)と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,前記レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成部と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入部とを有する高位合成装置。
付記1において,
前記レイテンシ生成回路生成部が生成する第2のハードウエア記述ファイルは,前記レイテンシ拡張変数に対応するレイテンシ生成回路として,前記抽出した関数内の静的なレイテンシを前記ループ情報のループ回数に基づいて加算するレイテンシ生成回路を記述する高位合成装置。
付記2において,
前記ループ回数は,前記レイテンシ拡張変数を内部に有する全てのループのループ回数を有する高位合成装置。
付記3において,
前記ループ回数のいずれかが変数に基づくループ回数であり,
前記レイテンシ生成回路は,前記変数に基づいて関数の動的レイテンシを算出する回路である高位合成装置。
付記1〜3のいずれかにおいて,
前記ビヘイビア記述ファイルは,前記機能部分内のレイテンシ拡張変数の値を前記制御部分に供給する記述を有する高位合成装置。
タイミング記述がない高位言語により集積回路の機能を記述したビヘイビア記述ファイルを,タイミング記述を含めて前記集積回路を記述するハードウエア記述ファイルに変換する高位合成方法であって,
プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成工程と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出工程と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成工程と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出工程と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,前記レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成工程と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入工程(129)とを有する高位合成方法。
タイミング記述がない高位言語により集積回路の機能を記述したビヘイビア記述ファイルを,タイミング記述を含めて前記集積回路を記述するハードウエア記述ファイルに変換する高位合成処理をコンピュータに実行させる高位合成プログラムであって,
前記高位合成処理は,
プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成工程と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出工程と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成工程と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出工程と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,前記レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成工程と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入工程とを有する高位合成プログラム。
タイミング記述がない高位言語によるビヘイビア記述ファイルであって,集積回路の機能回路に対応する機能部分の記述と,前記機能部分のレイテンシに対応する制御回路に対応する制御部分の記述と,前記機能部分内のレイテンシ拡張変数の記述とを有するビヘイビア記述ファイルを生成する工程と,
コンピュータが,前記ビヘイビア記述ファイルを高位合成して第1のハードウエア記述ファイルを生成する工程と,
コンピュータが,前記ビヘイビア記述ファイルの高位合成工程で抽出されるデータであって,前記レイテンシ拡張変数を有する関数のループ回数と前記関数内の静的レイテンシのデータとから,レイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成する工程と,
コンピュータが,前記第1のハードウエア記述ファイル内のレイテンシ拡張変数の記述を,前記第2のハードウエア記述ファイル内の前記レイテンシ生成回路のハードウエア記述に置換して,レイテンシ生成回路と前記機能回路と前記制御回路とを記述する第3のハードウエア記述ファイルを生成する工程とを有する集積回路の設計方法。
付記8において,
前記第2のハードウエア記述ファイルは,前記レイテンシ生成回路として,前記抽出した関数内の静的なレイテンシを前記ループ回数に基づいて加算するレイテンシ生成回路を記述する集積回路の設計方法。
付記9において,
前記ループ回数は,前記レイテンシ拡張変数を内部に有する全てのループのループ回数を有する集積回路の設計方法。
付記10において,
前記ループ回数のいずれかが変数に基づくループ回数であり,
前記レイテンシ生成回路は,前記変数に基づいて前記関数の動的レイテンシを算出する回路である集積回路の設計方法。
付記8〜11のいずれかにおいて,
前記ビヘイビア記述ファイルは,前記機能部分内のレイテンシ拡張変数を前記制御部分に供給する記述を有する集積回路の設計方法。
101:ビヘイビア記述ファイル
104:第1のハードウエア記述ファイル
105:第3のハードウエア記述ファイル
110:高位合成プログラム
120:動的レイテンシ計算回路挿入プログラム
121:拡張変数抽出処理
123:ループ情報抽出処理
125:静的レイテンシ抽出処理
127:レイテンシ計算回路生成処理
129:レイテンシ計算回路挿入処理
Claims (8)
- タイミング記述がない高位言語により集積回路の機能を記述したビヘイビア記述ファイルを,タイミング記述を含めて前記集積回路を記述するハードウエア記述ファイルに変換する高位合成装置であって,
プロセッサと,
前記プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成部と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出部と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成部と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出部と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成部と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入部とを有する高位合成装置。 - 請求項1において,
前記レイテンシ生成回路生成部が生成する第2のハードウエア記述ファイルは,前記レイテンシ拡張変数に対応するレイテンシ生成回路として,前記抽出した関数内の静的なレイテンシを前記ループ情報のループ回数に基づいて加算するレイテンシ生成回路を記述する高位合成装置。 - 請求項2において,
前記ループ情報生成部は,前記抽出した関数内の全てのループそれぞれのループ回数を,前記ループ情報に含まれるループ回数として生成する高位合成装置。 - 請求項3において,
前記ループ回数のいずれかが変数に基づくループ回数であり,
前記レイテンシ生成回路は,前記変数に基づいて関数の動的レイテンシを算出する回路である高位合成装置。 - 請求項1〜3のいずれかにおいて,
前記ビヘイビア記述ファイルは,前記機能部分内のレイテンシ拡張変数の値を前記制御部分に供給する記述を有する高位合成装置。 - タイミング記述がない高位言語により集積回路の機能を記述したビヘイビア記述ファイルを,タイミング記述を含めて前記集積回路を記述するハードウエア記述ファイルに変換する高位合成方法であって,
プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成工程と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出工程と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成工程と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出工程と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成工程と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入工程とを有する高位合成方法。 - タイミング記述がない高位言語により集積回路の機能を記述したビヘイビア記述ファイルを,タイミング記述を含めて前記集積回路を記述するハードウエア記述ファイルに変換する高位合成処理をコンピュータに実行させる高位合成プログラムであって,
前記高位合成処理は,
プロセッサが,前記機能を記述した機能部分とタイミングを制御する制御部分とを有するビヘイビア記述ファイルを,第1のハードウエア記述ファイルに変換する高位合成工程と,
前記プロセッサが,前記ビヘイビア記述ファイルから,前記機能部分内のレイテンシ拡張変数を含む関数を抽出する変数抽出工程と,
前記プロセッサが,前記抽出した関数に含まれるループ記述を抽出し,前記関数内のループのループ回数を含むループ情報を生成するループ情報生成工程と,
前記プロセッサが,前記抽出した関数の要素毎に静的なレイテンシを生成する静的レイテンシ抽出工程と,
前記プロセッサが,前記ループ回数と静的レイテンシとに基づいて,レイテンシ情報を生成するレイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成するレイテンシ生成回路生成工程と,
前記プロセッサが,前記第1のハードウエア記述ファイルに前記第2のハードウエア記述ファイルを挿入して第3のハードウエア記述ファイルを生成する挿入工程とを有する高位合成プログラム。 - タイミング記述がない高位言語によるビヘイビア記述ファイルであって,集積回路の機能回路に対応する機能部分の記述と,前記機能部分のレイテンシに対応する制御回路に対応する制御部分の記述と,前記機能部分内のレイテンシ拡張変数の記述とを有するビヘイビア記述ファイルを生成する工程と,
コンピュータが,前記ビヘイビア記述ファイルを高位合成して第1のハードウエア記述ファイルを生成する工程と,
コンピュータが,前記ビヘイビア記述ファイルの高位合成工程で抽出されるデータであって,前記レイテンシ拡張変数を有する関数のループ回数と前記関数内の静的レイテンシのデータとから,レイテンシ生成回路を記述する第2のハードウエア記述ファイルを生成する工程と,
コンピュータが,前記第1のハードウエア記述ファイル内のレイテンシ拡張変数の記述を,前記第2のハードウエア記述ファイル内の前記レイテンシ生成回路のハードウエア記述に置換して,レイテンシ生成回路と前記機能回路と前記制御回路とを記述する第3のハードウエア記述ファイルを生成する工程とを有する集積回路の設計方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012013177A JP5910108B2 (ja) | 2012-01-25 | 2012-01-25 | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
US13/742,638 US8601413B2 (en) | 2012-01-25 | 2013-01-16 | High-level synthesis device, high-level synthesis method, high-level synthesis program, and integrated circuit design method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012013177A JP5910108B2 (ja) | 2012-01-25 | 2012-01-25 | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013152620A JP2013152620A (ja) | 2013-08-08 |
JP5910108B2 true JP5910108B2 (ja) | 2016-04-27 |
Family
ID=48798308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012013177A Expired - Fee Related JP5910108B2 (ja) | 2012-01-25 | 2012-01-25 | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8601413B2 (ja) |
JP (1) | JP5910108B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6254387B2 (ja) * | 2013-08-30 | 2017-12-27 | 株式会社日立情報通信エンジニアリング | 高位合成で作成する新規設計データと既存設計データの接続方法 |
JP6255880B2 (ja) * | 2013-10-10 | 2018-01-10 | 株式会社ソシオネクスト | 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム |
GB2525596B (en) * | 2014-04-28 | 2021-05-26 | Arm Ip Ltd | Access control and code scheduling |
US9449131B2 (en) * | 2014-06-02 | 2016-09-20 | Xilinx, Inc. | Extracting system architecture in high level synthesis |
US9075945B1 (en) | 2014-06-27 | 2015-07-07 | Google Inc. | Method for implementing efficient entropy decoder by using high level synthesis |
EP3304364A4 (en) | 2015-06-05 | 2018-07-11 | Chaoyang Semiconductor Jiangyin Technology Co., Ltd. | Integrated system of pdn implementation and digital co-synthesis |
JP6407181B2 (ja) * | 2016-03-04 | 2018-10-17 | 三菱電機株式会社 | 設計支援装置、設計支援方法及び設計支援プログラム |
US9953121B2 (en) * | 2016-05-03 | 2018-04-24 | International Business Machines Corporation | Accommodating engineering change orders in integrated circuit design |
EP3624392B1 (en) * | 2018-09-17 | 2023-05-10 | Secure-IC SAS | Methods and devices for secure secret key generation |
KR20200139525A (ko) | 2019-06-04 | 2020-12-14 | 삼성전자주식회사 | Fpga를 포함하는 전자 시스템 및 이의 동작 방법 |
US11829737B2 (en) | 2020-01-16 | 2023-11-28 | Microsoft Technology Licensing, Llc | Using compiler optimization to enable automatic generation of combinational circuits from high-level programs |
EP4250169A1 (en) * | 2022-03-25 | 2023-09-27 | Tata Consultancy Services Limited | Method and system for non-intrusive profiling of high-level synthesis (hls) based applications |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06325124A (ja) | 1993-05-13 | 1994-11-25 | Matsushita Electric Ind Co Ltd | 論理回路生成装置 |
JP3763700B2 (ja) | 1998-06-04 | 2006-04-05 | シャープ株式会社 | 高位合成装置 |
US7120879B2 (en) * | 2001-04-20 | 2006-10-10 | Peter Pius Gutberlet | Hierarchical presentation techniques for a design tool |
JP4158458B2 (ja) * | 2002-08-28 | 2008-10-01 | ソニー株式会社 | 情報処理装置、その情報処理方法 |
JP3811133B2 (ja) | 2003-03-03 | 2006-08-16 | 三菱電機株式会社 | 半導体集積回路設計方法および設計支援装置 |
JP2005258917A (ja) * | 2004-03-12 | 2005-09-22 | Ip Flex Kk | 集積回路の設計支援システムおよび設計支援プログラム |
JP2007287044A (ja) * | 2006-04-19 | 2007-11-01 | Toshiba Corp | 設計支援装置 |
JP2010165334A (ja) | 2008-12-16 | 2010-07-29 | Ricoh Co Ltd | 高位合成装置、方法及びプログラム |
JP5644344B2 (ja) * | 2010-10-05 | 2014-12-24 | 富士通セミコンダクター株式会社 | 設計データ生成装置、設計データ生成方法及びプログラム |
US8806410B2 (en) * | 2011-10-28 | 2014-08-12 | The Board Of Trustees Of The University Of Illinois | Power balanced pipelines |
-
2012
- 2012-01-25 JP JP2012013177A patent/JP5910108B2/ja not_active Expired - Fee Related
-
2013
- 2013-01-16 US US13/742,638 patent/US8601413B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013152620A (ja) | 2013-08-08 |
US20130191799A1 (en) | 2013-07-25 |
US8601413B2 (en) | 2013-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5910108B2 (ja) | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 | |
Meeus et al. | An overview of today’s high-level synthesis tools | |
US9501269B2 (en) | Automatic source code generation for accelerated function calls | |
US9652570B1 (en) | Automatic implementation of a customized system-on-chip | |
Mattarei et al. | Cosa: Integrated verification for agile hardware design | |
Choi et al. | HLS-based optimization and design space exploration for applications with variable loop bounds | |
US20130091482A1 (en) | Method and apparatus for design space exploration acceleration | |
JP2006285333A (ja) | 動作合成装置及び方法 | |
Brandt et al. | Integrating system descriptions by clocked guarded actions | |
US20060015858A1 (en) | System development method and data processing system | |
Vanderperren et al. | Extending UML for electronic systems design: A code generation perspective | |
Kamppi et al. | Kactus2: Environment for embedded product development using ip-xact and mcapi | |
EP2676210B1 (en) | Mixed-language simulation | |
Tatsuoka et al. | Physically aware high level synthesis design flow | |
US20210096830A1 (en) | Incremental code generation method | |
JPWO2004036463A1 (ja) | コンパイラ及び論理回路の設計方法 | |
JP5830955B2 (ja) | 検証装置、検証方法及び検証プログラム | |
US20080109777A1 (en) | Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium | |
US9098661B1 (en) | Extensible platform for back-annotation of target-specific characterization onto a model of a hardware system | |
US9223910B1 (en) | Performance and memory efficient modeling of HDL ports for simulation | |
WO2022198447A1 (zh) | 一种数字电路的综合方法及综合装置 | |
JP2018041301A (ja) | Rtl最適化システム及びrtl最適化プログラム | |
JP5577619B2 (ja) | 論理回路設計装置 | |
CN101923466B (zh) | 装饰器模式的指令的存取方法 | |
JP2006190085A (ja) | デジタル回路のモデリング方法及び設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140929 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150610 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160108 |
|
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: 20160301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160314 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5910108 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |