Zexun Luo

数字芯片全流程开源工具集和学习资源

Shaka / 2023-07-25


一、解析器

Verible 是一组基于通用 SystemVerilog 解析引擎的工具,提供命令行界面,可以轻松地与其他日常使用工具或 CI 系统集成以进行自动测试和部署。

Surelog是一个支持SystemVerilog 2017的Pre-processor、Parser、UHDM Compiler,可用于语法检查、仿真、综合、形式验证工具的前端。

UHDM 代表通用硬件数据模型,它既是一种用于存储硬件设计的文件格式,也是一个能够操作该格式的库。客户端应用程序可以使用 VPI 访问数据,VPI 是 SystemVerilog 的标准编程接口。

Yosys 是 Verilog RTL 综合的框架。

二、高阶综合(HLS)

Amaranth HDL 是一个用于同步逻辑的寄存器传输级建模的 Python 库。普通的Python代码用于构建数字电路的网表,可以通过Yosys进行模拟、直接合成,或转换为人类可读的Verilog代码以与行业标准工具链一起使用。

XLS 实现了高级综合 (HLS) 工具链,该工具链可根据灵活的高级功能描述生成可综合的设计(Verilog 和 SystemVerilog)

三、综合

Yosys 是 Verilog RTL 综合的框架。

Clash 是一种函数式硬件描述语言,它的编译器可以将其转换为低级可综合的VHDL、Verilog或SystemVerilog。

Kansas Lava 根据 FSM、行为规范(VHDL、Verilog)生成电路,并验证。NuSMV(堪萨斯大学)

Chisel 是一种开源硬件描述语言 (HDL),用于在寄存器传输级别描述数字电子和电路,从而促进 ASIC 和 FPGA 数字逻辑设计的高级电路生成和设计重用。 Chisel 将硬件构造原语添加到 Scala 编程语言中,为设计人员提供了现代编程语言的强大功能,可以编写复杂的、可参数化的电路生成器,从而生成可综合的 Verilog。

四、仿真

Verilator是一款开源的支持Verilog和System Verilog仿真工具,它支持代码质量检查等功能,能够将给定的电路设计(由Verilog或System Verilog编写)编译成(或者说翻译成)C++或者System C的库等中间文件,最后再编写testbench(在Verilator中叫做wrapper file),去调用前面生成的中间文件,然后统一由C编译器编译执行,来完成仿真。

Ngspice 是用于电气和电子电路的开源 SPICE 模拟器。

Xyce 是一款开源、兼容SPICE的高性能模拟电路模拟器,能够通过支持大规模并行计算平台来解决极其庞大的电路问题。

NVC 是一个 VHDL 编译器和模拟器。

五、形式验证

ABC 是一个时序综合与验证的系统。

卡内基梅隆大学的 Model Checking 小组,软件包有 BMC/CBMC/EBMC 等等。

Punroll 是一个有界可达性检查器,从 1-bounded Petri nets 生成约束布尔电路。它支持过程、步骤和交错语义。 (赫尔辛基理工大学)

六、布局布线

Magic 被广泛认为是最容易用于电路布局的工具(老派)。

现代风格的布局绘图工具。

Xschem 是一个原理图捕获、仿真程序(老派)。

Mosaic 是一种用于设计和模拟模拟集成电路设计的工具。它专注于现代、易于使用的界面、即时设计反馈、设计重用、验证和自动化。

七、ASIC 全流程

OpenLane 是一个自动化 RTL 到 GDSII 流程,基于多个组件,包括 OpenROAD、Yosys、Magic、Netgen 和用于设计探索和优化的自定义方法脚本。

SiliconCompiler 是一个开源框架,可自动将源代码转换为芯片。

Alliance 是用于 vlsi 设计的完整工具链。它提供了 vhdl 编译器和模拟器、逻辑合成器、自动布局和布线以及便携式 cmos 库。Coriolis 作为 Alliance 布局布线阶段的替代品。

OSS CAD Suite 适用于数字逻辑设计中使用的许多开源软件,用于 RTL 综合、形式硬件验证、布局布线、FPGA 编程以及支持 HDL(如 Verilog、Migen 和 Amaranth)的测试的工具。

使用 Yosys、VTR 和 VPR 等开源工具的端到端 FPGA 流程。

八、学习资源