1 个不稳定版本
0.1.0-rc0 | 2024年4月27日 |
---|
#322 在 开发工具
40KB
947 行
Virdant
Virdant 是一种硬件描述语言。它是 FIRRTL 硬件描述语言的再想象。它旨在成为硬件生成器(如 Chisel)的可读性中间目标。
设计理念
大多数编程语言在稳定形式确定之前都会经过一到两次的主要迭代。这是 SiFive 对 FIRRTL 作为硬件描述语言所学到的一切教训的尝试,将它们整合到一个健壮的设计中,以适应公司当前和未来的需求。
Virdant 利用 FIRRTL 的优点。它是一种干净、优雅的硬件描述语言,既适合作为 Chisel 的编译器目标,也适合作为验证的辅助。
Virdant 对几个难以通过增量过程解决 FIRRTL 的设计点进行了重新构思。在这个过程中,我们还阐明了在这个重要空间中占据的解决方案的技术角色和商业价值。
名称
遵循伟大的伯克利传统,Virdant 可能代表:设计和网表转换的详尽中间表示。
价值观
语义
Virdant 应该有清晰简洁的操作语义。这种语义应该得到正式文档的记录。我们应反对对任何构造的含义进行过于随意的描述,或者将任何功能如何与其他功能交互的解释留给个人。
独立于 Verilog
在我们的当前方法中,我们的设计经常反映了 Verilog 的怪癖和特性,因为它是最重要的后端目标。然而,Virdant 将独立于 Verilog 进行设计。这确保了我们的决策是经过深思熟虑的,并保护我们免受粗心设计的影响。Virdant 将附带一个参考实现,这有助于我们在做出承诺之前原型化功能。Verilog 将继续作为主要输出目标。
版本控制
Virdant 将有一个适当的版本控制故事。这包括不仅在每个发布的二进制文件上有突出的版本号,还包括稳定性保证政策和弃用程序。新版本还应附带易于用户理解的发布说明。文档应准确完整。实验性功能应及时发布(或丢弃)。
可读性
Virdant将保留FIRRTL的可读性。它将适合作为我们Chisel生成器的后端目标。我们将更加重视将Virdant作为开发者理解设计的工具。它将既适合作为数字设计人员的调试辅助,更重要的是,它应该成为理解并验证我们设计的核心工具。
可链接性
Virdant从头开始设计,适用于独立编译的设计。它包括一个包系统,并且鼓励对每个模块进行文档记录,以便可以快速集成到设计中。
工具
Virdant的简单设计使其易于分析。它不仅旨在作为Chisel和MLIR之间进行手头交接的语法,而且还允许开发者回答有关设计的问题,这些问题对于数字设计、验证、软件、物理设计、客户体验以及其他需要理解和处理他们手中设计的团队都有用。
依赖关系
~8–17MB
~232K SLoC