- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!高位合成言語と言語処理系
もうちょっと真面目に分類.市販ツールは,内容を調べるのが難しい...
あと,言語と言語処理系がごっちゃになっているな.
→言語と言語処理系を少し整理してみた@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