トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2012-3-31

高位合成言語と言語処理系

もうちょっと真面目に分類.市販ツールは,内容を調べるのが難しい...
あと,言語と言語処理系がごっちゃになっているな.
→言語と言語処理系を少し整理してみた@2012.4.2

高位合成言語

C系
名前 ベースの言語 特徴などメモ
BACH-C C C言語にデータビット幅指定,明示的な並列化構文を追加
Handel-C C C言語にデータビット幅指定,明示的な並列化構文を追加
DeepC Compiler C,Fortran small memoryとvirtual wires(multiple short phase wire)を活用したハードウェア生成
PICASSO C(C-like言語) CSPベースの設計を可能にする.processベースの並行処理の記述とconnectionによるプロセス間通信をサポート,
MARGE C(parallel C) データ並列ビットC
Streams-C C マルチFPGAボードを対象.CSPベースの設計を可能にするアノテーションの定義(process/stream/signal),ストリームベースのアプリを対象
COBRA-ABS C DSPアルゴリズムの記述を対象.time/variable/processor/ブロックからなる4次元空間で要素を表現してSA法で最適化
SA-C C(単一代入,副作用なしの拡張) CAMERONを対象.データ依存と制御フローからなるDDCFからハードウェアマッピング.
ROCCO C,FORTRAN ウィンドウベースの処理におけるメモリアクセスの最適化.プロファイリングツール.
SRC-6 C,FORTRAN SRC-6を対象.
Impulse-C C 関数をハードウェアモジュールに.モジュール間のデータ授受はストリームで抽象化している.
SpecC
SystemC
OpenCL C AlteraでFPGA向けの実装と評価

C++系
名前 ベースの言語 特徴などメモ
OCAPI C++ C++でRTL設計を可能にするためのオブジェクトの定義.状態遷移を"<<"で記述するのはSW屋さん的でおもしろい
OCAPI-xl C++
HP-Machine C++ 並行ステートマシンの"Machine"とさらに細かい"process"で処理を抽象化.この論文は最適化技法のサーベイとしても価値が高い.

MATLAB系
名前 ベースの言語 特徴などメモ
DEFACTO C,MATLAB 汎用プロセッサ+CCUの専用マシンを対象.ループネストを階層タスクグラフで表現しCCUにマッピングする.
MATCH MATLAB 信号処理,画像処理に特化

Java系
名前 ベースの言語 特徴などメモ
JHDL Java JavaでRTL記述ができるようにクラスや構文を追加
Sea Cucumber Java Bytecode JavaのThreadを粗粒度並列性にマッピング
Galadriel/Nenya Java Bytecode 制御依存とデータ依存を分離し制御のマージポイントに着目して基本ブロックをリオーダリングスケジューリング.
Lime Java Javaを拡張した言語.動的ランタイムシステムでタスクの透過的なマイグレーションを実現.
JavaRock Java JavaのThreadを粗粒度並列性に.アノテーションでHW的な記述も.
Kiwi C# イベント,モニタ,スレッドをHWで並列化.Kiwi.Hardware()でソフトウェアとしても実行できるようにする.
MaxCompiler Java Javaで記述したデータフローをハードウェアにマッピング.ハードウェア要素はHWVarなどで定義する.

Haskell系
名前 ベースの言語 特徴などメモ
BlueSpec System Verilog BlueSpec System Verilog
Lava Haskell

SFL系
名前 ベースの言語 特徴などメモ
SFL/PARTHENON 単相クロック同期モデル,HLSというよりはRTL設計言語の一種
NSL SFL

その他
名前 ベースの言語 特徴などメモ
CAPH ML系
PHDL Python
MyHDL Phyton
RHDL Ruby

高位合成言語処理系

名前 入力言語 特徴などメモ
SAM Verilog RosaBoard(FPGA + 486 PC)を対象.Verilogを複数のFPGA用のVerilogに分割する
PRISM-I/II C データフローの活用
GARP C Compiler ANSI C GARP(MIPS+GARP ARRAY)を対象.頻度の高いハイパブロックをGARP ARRAYに割り当てる.
C2H ANSI C Altera NIOS II用のアクセラレータ生成
Catapult C Synthesis ANSI C++,SystemC
Cynthesizer SystemC
SystemC Compiler SystemC
AutoESL ANSI C,C++,SystemC
CyberWorkBench ANSI C,C++,SystemC
LegUp C MIPSとアクセラレータ

検証用言語

名前 特徴などメモ
System Verilog
E言語
PSL Property Sepcification Language