Diary/2017-10-5
関数型なHLS
Hardware Synthesis from a Recursive Functional Languageと,
参考文献を読むなど.
参考文献部分のメモ
- Hardware Synthesis from a Recursive Functional Language
- Clash[1,2]
- Structual Descriptions of Synchronous Hardware Using Haskell
- including Danvy's defunctionalization[4], inspired by Reynolds[24]
- Defunctionalization at work
- https://dl.acm.org/citation.cfm?id=773202
- higher-order programming languages[24]
- https://dl.acm.org/citation.cfm?id=805852
- SHard compiler[26]
- http://scheme2006.cs.uchicago.edu/05-saint-mleux.pdf
- Schemeから高位合成.再帰もサポート.CPS変換とlambda lifting
- データタイプなどに制限が多い
- FLaSH compiler[22]
- Hardware Synthesis Using SAFL and Application to Processor Design
- https://www.cl.cam.ac.uk/~am21/papers/charme01-invite.ps.gz
- 関数を1インスタンスとして実装,複数からの呼び出しをハンドリング
- 再帰はサポートしてない
- Bluespec[14]
- Synthesis of operation-centric hardware description
- https://dl.acm.org/citation.cfm?id=603017
- Sheeran mufp (μFP)[26],[27]
- Hardware Design and Functional Programming: a Perfect Match
- http://www.jucs.org/jucs_11_7/hardware_design_and_functional/jucs_11_7_1135_1158_sheeran.pdf
- muFP, a language for VLSI design
- https://dl.acm.org/citation.cfm?id=802026
- ハードウェアストラクチャをfunctionalなアプローチで記述
- Lavaへ
- Lava: hardware design in Haskell[3], Introducing Kansas Lava[10]
- Lava - https://dl.acm.org/citation.cfm?id=289440
- Kansas Lava - http://www.ittc.ku.edu/~andygill/papers/draft-kansas-lava-ifl09.pdf
- circuit strctureの記述にフォーカス
- HML, a novel hardware description language and its translation to VHDL[18]
- http://ieeexplore.ieee.org/document/820756/
- Lavaとは違う,cicrcuit structureをfunctionalに記述するアプローチ
- HML, an inovative hardware description language and its translation to VHDLというのもある
- Ghica et al, Geometry of synthesis iv: compiling affine recursion into static hardware[9]
- https://dl.acm.org/citation.cfm?id=2034805
- 再帰アルゴリズムをハードウェアに実装
- Algolライクな言語
- 再帰で使う変数を小さなメモリに格納
- Middendorf et al, Hardware synthesis of recursive functions through partial stream rewriting[21]
- https://dl.acm.org/citation.cfm?id=2228583
- C/C++がターゲット
- Stitt et al, Recursion flattening[30]
- https://dl.acm.org/citation.cfm?id=1366143
- a recursion flattening algorithm
- 再帰の深さが読める場合
- Maruyama et al, Hardware Implementation Techniques for Recursive Calls and Loops
- https://link.springer.com/chapter/10.1007/978-3-540-48302-1_52
- PGAフレンドリな再帰関数のFマルチスレッド実行アーキテクチャ
- 合成手法には言及してない
- この合成手法は取り入れたい,らしい
- この論文を引用している論文
- From functional programs to pipelined dataflow circuits
- A Principled Approach to Secure Multi-core Processor Desing with ReWrite
- 関連して
- Implementing Recursive Algorithms within Hardware using Finite State Machine
- Hardware Implemenation of Recursive Algorithms
- Constraint-Based Hardware Synthesis