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