#编译器 #即时编译器 #前端 #建模 #紧凑型 #针对 #

open-vaf

VerilogA的编译器前端,主要针对紧凑型建模。

3个版本

0.4.2 2020年6月9日
0.4.1 2020年6月8日
0.4.0 2020年6月5日

编程语言中排名718


用于verilog-arc

GPL-3.0许可证

1MB
17K SLoC

OpenVAF

一个针对VerilogA的编译器前端,主要使用Rust编写,旨在提供一个高质量且完全符合标准的VerilogA编译器前端。此外,它旨在将现代编译器构建算法/数据结构引入一个缺少此类工具的领域,从而允许创建静态分析工具和用于该领域的(JIT)编译器。虽然OpenVAF旨在成为一个独立的库,但它最初是为VerilogAE的使用而创建的。因此,可以在那里找到OpenVAF的实际功能演示。

此外,请注意,该项目尚未达到1.0版本,仍在积极开发中,因此公共API可能会在未来发生变化。OpenVAF的一些亮点包括

  • 高质量的错误消息(仍在进行中)
  • 数据流分析框架(目前实现了可达定义算法)
  • 构建控制依赖图算法(与可达定义一起,这允许构建程序依赖图)
  • 使用程序依赖图的最先进的反向切片算法
  • 简单的常量折叠
  • 自动生成Rust代码的后端
  • 高性能(即使是像HICUM这样的复杂模型,生成多个程序切片也需要约150ms)
  • 自动求导(目前要求已知变量和通过它求导的未知数。将来将添加前向自动微分算法)

依赖项

~5.5MB
~65K SLoC