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