3个版本
0.4.2 | 2020年6月9日 |
---|---|
0.4.1 | 2020年6月8日 |
0.4.0 | 2020年6月5日 |
在编程语言中排名718
1MB
17K SLoC
OpenVAF
一个针对VerilogA的编译器前端,主要使用Rust编写,旨在提供一个高质量且完全符合标准的VerilogA编译器前端。此外,它旨在将现代编译器构建算法/数据结构引入一个缺少此类工具的领域,从而允许创建静态分析工具和用于该领域的(JIT)编译器。虽然OpenVAF旨在成为一个独立的库,但它最初是为VerilogAE的使用而创建的。因此,可以在那里找到OpenVAF的实际功能演示。
此外,请注意,该项目尚未达到1.0版本,仍在积极开发中,因此公共API可能会在未来发生变化。OpenVAF的一些亮点包括
- 高质量的错误消息(仍在进行中)
- 数据流分析框架(目前实现了可达定义算法)
- 构建控制依赖图算法(与可达定义一起,这允许构建程序依赖图)
- 使用程序依赖图的最先进的反向切片算法
- 简单的常量折叠
- 自动生成Rust代码的后端
- 高性能(即使是像HICUM这样的复杂模型,生成多个程序切片也需要约150ms)
- 自动求导(目前要求已知变量和通过它求导的未知数。将来将添加前向自动微分算法)
依赖项
~5.5MB
~65K SLoC