开源eda工具整理
进行数字IC学习和工作的时候,想在自己的电脑上进行一些工作的时候,常常会苦于没有商业工具。(学习版的除外)。
并且像新思的vcs、dc等所支持的操作系统版本一般比较老旧,其中的python库,C的依赖库已经过时,新的软件往往无法简单的在上面运行,折腾起来会很麻烦。因此在学习和编写RTL代码的阶段,可以选择使用一些开源的EDA工具。
本文记录一下常用的开源EDA工具,仅供参考,如有错误和遗漏欢迎指出。
下面只是会提及这些工具,不会给出这些工具的使用和安装教程(大部分其实都在github上),系统也是以linux为准,有些工具并没有window版本(指的是打包好的内容)。
软件或工具
|
阶段 / 分类 |
工具名称 |
主要用途与特点 |
常见搭配/备注 |
|---|---|---|---|
|
0. 代码分析与格式化 (Linting & Formatting) |
Verible |
专注于 SystemVerilog 的代码格式化(Formatter)与静态语法检查(Linter),提升代码规范性。 |
适合集成到集成开发环境(IDE)或 CI/CD 自动化流水线中。 |
|
Surelog |
强大的 SystemVerilog 解析器(Parser),支持完整的 SV 标准,常作为其他前端工具的解析插件。 |
经常作为 Yosys 等工具的 SV 前端插件使用。 |
|
|
Slang |
强大的 SystemVerilog 解析器,支持完整的 SV 标准,常作为其他前端工具的解析插件。 |
作为前端工具使用,常集成在插件中 |
|
|
1. 仿真与验证 (Simulation & Verification) |
Verilator |
将 Verilog/SV 代码编译转换为高性能的 C++/SystemC 模型进行周期精确(Cycle-accurate)仿真。 |
速度极快,是目前开源 CPU(如 RISC-V)验证的首选。 |
|
Icarus Verilog (iverilog) |
传统的基于 IEEE-1364 标准的事件驱动型 Verilog 仿真器。 |
适合中小型模块验证,标准兼容性好。 |
|
|
Cocotb |
基于 Python 的芯片验证平台(类似于开源的 UVM/SystemVerilog 验证环境)。 |
需要配合 Iverilog 或 Verilator 作为底层仿真引擎。 |
|
|
2. 波形查看 (Waveform Viewer) |
GTKWave |
经典的电子波形查看器,支持读取 VCD等多种标准波形格式。 |
几乎是所有开源仿真器(iverilog、Verilator)的标配可视化工具。 |
|
Surfer |
基于 Rust 开发的新一代高性能、现代界面的开源波形查看器。 |
界面更现代化,对大波形文件加载和缩放进行了优化。 |
|
|
3. 逻辑综合 (Synthesis) |
Yosys |
开源逻辑综合的绝对核心,负责将 RTL(Verilog)代码转换为逻辑门级网表(Netlist)。 |
支持标准单元映射(Technology Mapping)以及各种形式的逻辑优化。 |
|
4. 物理设计(布局布线) (Physical Design / P&R) |
OpenROAD |
自动化物理设计核心,集成了地板规划(Floorplanning)、布局(Placement)、时钟树综合(CTS)和布线(Routing)。 |
旨在实现无人值守、24小时内完成 RTL-to-GDSII 的设计。 |
|
OpenFASOC |
专注于自动化模拟与数字混合信号(AMS)集成电路设计的工具框架。 |
适合需要快速生成辅助模拟IP(如低功耗管理、LDO、PLL)的数字团队。 |
|
|
5. 静态时序分析 (Static Timing Analysis) |
OpenSTA |
高性能、工业级的静态时序分析引擎,用于检查芯片的时序违例(Setup/Hold Time)。 |
已经无缝嵌入在 OpenROAD 内部,也可独立对网表和寄生参数进行签合(Sign-off)。 |
|
6. 物理验证与参数提取 (Sign-off Verification) |
Magic |
超大规模集成电路(VLSI)版图编辑器,具备成熟的实时 DRC(设计规则检查)和 LVS(版图对原理图)。 |
经典工具,提取寄生参数(RC Extraction)的能力非常可靠。 |
|
KLayout |
现代、高性能的 GDSII/OASIS 版图查看与编辑工具。 |
配合 Python 脚本,被用作独立的 DRC/LVS 规则检查器。 |
|
|
7. 数据格式转换与管理 (Data Management) |
Netgen |
用于网表比较(Netlist Comparison)和 LVS 的底层比较工具。 |
负责对比 Yosys 生成的门级网表和从版图提取出的网表是否一致。 |
|
Ohm / Schema 等 |
各种用于 LEF/DEF、Liberty(.lib)、SDC 等工业标准设计数据格式解析与转换的小工具。 |
通常被封装在 OpenLane 等集成工作流的底层。 |
套件
实际使用中开源的工具往往不是由同一个组织进行维护,下载安装非常麻烦,但是网上也有已经整理好的开源套件提供。
|
套件名称 |
核心定位与用途 |
交付/安装形式 |
内部集成的核心工具链 |
|
OSS CAD Suite |
数字前端设计、形式验证、FPGA 开发全能工具箱。 |
跨平台免安装压缩包 ( linux / macOS) |
Yosys, Verilator, iverilog, sby (形式验证), nextpnr, openFPGALoader, GTKWave, Surfer, Python (内置 Amaranth / LiteX) |
|
OpenLane( LibreLane) |
专注于 ASIC 芯片落地的自动化 RTL-to-GDSII 全流程流水线。 |
Docker 容器镜像、源码等 |
Yosys, ABC, OpenROAD (内置时序分析 OpenSTA), Magic, KLayout, Netgen 以及开源晶圆工艺库 (如 SkyWater 130nm) |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)