8

我一直在研究 Chisel 以及各种 Lavas(Kansas、Chalmers 和 Xilinx 风味)和 CLaSH 的来源。我试图了解 Chisel 与其他产品的主要卖点是什么。我确定的主要方法是快速模拟。

我想知道研究得更深入的人是否可以指出其他优点、缺点和权衡。

(抱歉,如果这是一个太多的讨论问题。我尝试向凿子用户发帖,但显然你需要被接受为会员才能做到这一点。)

4

2 回答 2

8

首先,免责声明我是 Chisel 的重度用户,但对您提到的基于 Haskell 的 DSEL 只略知一二。

我认为 Chisel 针对多个后端(C++、Verilog 等)的能力是一个显着优势。生成的 C++ 允许以许多倍于 Verilog/VHDL 仿真器的速度进行周期精确仿真,因为它避免了这些语言固有的事件驱动模型。

这不是固有限制,但 Lava 和 CLaSH 似乎主要针对 FPGA 实现,而 Chisel 已用于 FPGA 和 ASIC 上的工作。凿子也可能得到更好的支持;代码、说明和示例都可以在 GitHub 上找到,并且该语言仍在积极开发中。

Haskell 和 Scala(父语言)之间也存在差异;如果您对其中一个更舒服,它可能会使入门更容易一些。(我将把“语言战争”留给专家。)

于 2015-01-15T22:14:20.593 回答
2

Clash 教程页面上有一个部分描述了 Clash 和 Lava 风味之间的一些权衡(我将其作为参考)。基本上,Clash 使用静态分析方法,而 Lava 风格使用 DSEL(领域特定嵌入式语言)方法。这些差异可能与 Chisel 和 Clash 之间的差异非常相似,因为 Chisel 也遵循 DSEL 方法。因此,使用 Clash,您可以编写 Haskell 代码,然后使用 Clash 编译器将其编译成 VHDL、Verilog、SystemVerilog。我对 Chisel 或 DSEL 不够熟悉,但我知道它不仅仅是 HDL 的编译步骤。

FWIW,我在项目中使用了 Chisel,我发现生态系统、文档和社区都很棒,但我不喜欢 Scala 风格。对 FP 的进一步研究使我想到了 Haskell 和 Clash。我喜欢硬件设计的纯粹功能风格,Haskell 的紧密耦合让我“有我的蛋糕,也吃它”;同时学习硬件和Haskell。与前面的答案一样,Clash 与 Chisel 更多的是语言决策,而 Clash 与 Lavas 更多的是 DSEL 与静态分析(编译)决策。有关后一个决定的进一步阅读,请参阅参考资料。

参考:http ://hackage.haskell.org/package/clash-prelude-1.2.5/docs/Clash-Tutorial.html#g:20

于 2018-09-11T01:15:12.503 回答