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