我一直在研究 Chisel 的源代码以及各种 Lava(Kansas、Chalmers 和 Xilinx 版本)和 CLaSH。我试图理解 Chisel 相对于其他技术的主要优势,发现其最主要的卖点是快速模拟。
我想知道那些深入研究过的人能否指出其他的优点、缺点和权衡。
(如果这太多是讨论性问题了,我很抱歉。我试着发布到 chisel-users,但显然需要成为会员才能这样做。)
FWIW,我曾经考虑过在项目中使用Chisel,我发现生态系统、文档和社区都非常好,但我不喜欢Scala风格。进一步的FP研究使我了解到了Haskell和Clash。我喜欢纯函数式的硬件设计风格,Haskell的紧密耦合使我能够“两全其美”地学习硬件和Haskell。像前面的答案一样,Clash vs Chisel更多是语言决策,而Clash vs Lavas则更多是DSEL vs静态分析(编译)决策。有关后者决策的更多阅读,请参见参考资料。
参考资料:http://hackage.haskell.org/package/clash-prelude-1.2.5/docs/Clash-Tutorial.html#g:20