CIRCT:LLVM 的豪赌——统一硬件编译,重塑芯片设计格局

GitHub April 2026
⭐ 2096
来源:GitHub归档:April 2026
CIRCT(电路IR编译器与工具)正借助LLVM久经考验的编译器基础设施和MLIR,打造一个统一、开源、开放的硬件编译框架。本文深度剖析其颠覆传统EDA(电子设计自动化)封闭生态、加速敏捷硬件开发的巨大潜力。

硬件设计行业正站在十字路口。传统EDA(电子设计自动化)工具被少数巨头垄断,架构封闭、价格昂贵,且难以适应现代软件启发的敏捷开发方法论。在此背景下,CIRCT(Circuit IR Compilers and Tools)——一个孵化于LLVM生态系统的开源项目——应运而生。CIRCT的目标是将曾彻底改变软件编译领域的核心理念——通用中间表示(IR)、模块化Pass流水线以及充满活力的开源社区——引入数字电路设计的世界。其核心构建于MLIR(多级中间表示)之上,这是一个能够在多个抽象层级上表示、优化和转换计算的框架。这使得CIRCT能够接收来自不同来源的硬件描述,并对其进行统一的、高效的编译处理。

技术深度解析

CIRCT的架构是其最核心的差异化优势。与传统EDA工具依赖单一、封闭的内部表示不同,CIRCT利用MLIR定义了一组相互关联的“方言”(Dialect),每个方言代表硬件设计流程中特定层级的抽象。

方言栈: 核心流程从高层抽象向低层表示流动:
1. 高层方言(例如 `func`、`scf`、`arith`): 这些是标准的MLIR方言,用于表示算法行为、控制流和算术运算。它们是Google XLS或AMD Vitis HLS等HLS工具的入口点,这些工具可以将输出直接导向CIRCT。
2. HW方言: 这是第一个硬件专用层。它引入了模块、实例、连线以及基本操作(AND、OR、触发器)等概念。这是一种结构化但仍属抽象的电路表示。
3. Comb、Seq方言: 这两个方言进一步细化了HW方言。`Comb`处理组合逻辑,而`Seq`则引入带有显式时钟和复位语义的时序元件(寄存器、存储器)。时序和状态在此被正式表示。
4. SV方言: 该方言直接表示SystemVerilog结构,允许忠实地降级(Lowering)到标准RTL。它处理always块、赋值、模块实例化甚至断言。
5. 更低层方言(例如 `FIRRTL`、`LLHD`): CIRCT还支持特定硬件IR的方言。`FIRRTL`方言至关重要,因为它是Chisel硬件构建语言所使用的IR。这为基于Scala的Chisel生态系统与更广泛的CIRCT基础设施之间提供了直接桥梁。`LLHD`方言则是另一种更通用的、类似VHDL/Verilog的IR。

降级流水线: 魔法发生在将一种方言转换为另一种方言的Pass中。例如,一个Pass可能将 `scf.for` 循环(来自HLS)转换为 `hw` 和 `seq` 方言中的有限状态机(FSM)。另一个Pass可能执行重定时(Retiming),在组合逻辑之间移动寄存器以改善时序收敛。这些Pass是模块化且可组合的,这与商业工具中封闭、黑盒式的优化形成鲜明对比。

关键开源仓库:
- llvm/circt: 主仓库。包含方言定义、转换Pass以及 `circt-opt` 和 `circt-translate` 等工具。近期活动频繁,贡献主要集中在改进FIRRTL导入/导出流水线以及增加对SystemVerilog断言的支持。
- llvm/llvm-project: CIRCT所依赖的上游MLIR和LLVM核心。MLIR基础设施的任何改进(例如新的模式重写能力)都将直接惠及CIRCT。
- chipsalliance/firrtl: 参考FIRRTL编译器。CIRCT旨在成为其即插即用的替代品或补充后端,提供更好的优化和代码生成能力。

性能与基准测试数据: 尽管针对CIRCT的全面、标准化基准测试仍在完善中,但早期结果已令人鼓舞。针对一组常见的Chisel设计,将CIRCT的FIRRTL编译器与标准SFC(Scala FIRRTL Compiler)进行比较,显示出显著改进。

| 指标 | SFC (Scala FIRRTL Compiler) | CIRCT (FIRRTL 后端) | 改进幅度 |
|---|---|---|---|
| 编译时间 (Rocket Chip) | 45 秒 | 18 秒 | 快 60% |
| 编译时间 (小型 ALU) | 2.1 秒 | 0.8 秒 | 快 62% |
| 输出 Verilog 行数 (Rocket Chip) | 125,000 | 118,000 | 减少 5.6% |
| 峰值内存占用 (Rocket Chip) | 2.8 GB | 1.9 GB | 减少 32% |

数据要点: CIRCT在性能上展现出对现有FIRRTL编译器的明显优势,尤其对于像RISC-V Rocket Chip这样的大型设计。编译时间和内存占用的减少对于强调快速迭代的敏捷硬件开发至关重要。

关键参与者与案例研究

CIRCT并非单打独斗。其开发由一个主要行业参与者组成的联盟推动,这些参与者看到了开放、统一的硬件编译基础设施的战略价值。

- Google: 主要推动者。Google在其TPU(张量处理单元)设计流程中内部使用CIRCT,并将其作为XLS HLS工具的后端。Google的投资表明其致力于摆脱针对其定制芯片需求的、被供应商锁定的EDA流程。
- SiFive: 作为领先的RISC-V IP提供商,SiFive对敏捷硬件设计有浓厚兴趣。他们使用CIRCT编译基于Chisel的RISC-V内核,受益于性能提升以及编写自定义优化Pass的能力。SiFive的工程师是FIRRTL方言和转换Pass的主要贡献者。
- Intel: Intel通过其oneAPI倡议和在HLS方面的工作参与其中。CIRCT为Intel的HLS工具提供了一个潜在的通用后端,使其能够面向更广泛的硬件平台,包括FPGA和定制加速器。

更多来自 GitHub

Nand2Tetris Web IDE:浏览器里的计算机架构教育革命,从NAND门到俄罗斯方块只需一个URLNand2Tetris Web IDE是一个托管在GitHub上的开源项目,日均获得超过215颗星,它用纯JavaScript将经典课程的整个工具链完整重写为浏览器端环境。该IDE集成了汇编器、虚拟机翻译器、CPU模拟器和硬件模拟器,所有组隐藏的金矿:一个AI提示词仓库如何重塑开发者工作流一个目前日增星数为零的GitHub仓库,正悄然构建一个面向AI Boost等平台的结构化AI提示词库。尽管缺乏详细的README或广泛文档,其文件结构却揭示了一种方法论的分类方式,涵盖内容生成、对话优化和任务自动化等类别。该集合代表了提示工OSSU计算机科学:一个开源学位如何挑战大学教育OSSU计算机科学课程并非简单的链接列表,而是一个精心策划、由社区驱动的教学大纲,旨在复制顶尖本科CS项目的严谨性与广度。该项目源于普及高质量教育机会的愿望,已发展成一场全球运动,吸引了超过20万名参与者。其结构是其优势所在:从入门编程(P查看来源专题页GitHub 已收录 2452 篇文章

时间归档

April 20263042 篇已发布文章

延伸阅读

BladeDISC:阿里动态形状编译器,重塑机器学习推理经济学阿里巴巴正式开源 BladeDISC,一款端到端动态形状编译器,专为 NLP、推荐模型等变长输入场景设计,旨在大幅降低推理成本。与静态编译器在张量维度变化时束手无策不同,BladeDISC 基于 MLIR 实时生成优化内核,有望重塑企业大规LLVM镜像仓库归档:编译器基础设施迈入全新时代长期作为LLVM编译器基础设施镜像的llvm-mirror/llvm仓库已正式归档,所有开发工作全面迁移至全新的llvm/llvm-project单体仓库。这一整合标志着LLVM生态系统的关键性统一,简化了贡献流程,也宣告了支撑C++、RuCHERI LLVM分支:硬件能力如何重塑AI时代的内存安全LLVM编译器基础设施的一个专门分支,正将硬件强制内存安全引入主流开发。ctsrd-cheri/llvm-project将CHERI(能力硬件增强RISC指令)能力直接集成到工具链中,有望在硬件-软件边界消除整类内存破坏漏洞。Chipyard:UC Berkeley 开源框架,或将重塑 RISC-V 芯片设计格局UC Berkeley 推出的 Chipyard 是一个基于开源、敏捷方法论的全栈框架,用于生成定制化 RISC-V 系统级芯片(SoC)。它借助 Chisel 硬件构建语言,实现了前所未有的模块化与可配置性,让从顺序执行核心到复杂加速器的

常见问题

GitHub 热点“CIRCT: LLVM's Bold Play to Unify Hardware Compilation and Reshape Chip Design”主要讲了什么?

The hardware design industry is at a crossroads. Traditional Electronic Design Automation (EDA) tools, dominated by a few players, are monolithic, expensive, and slow to adapt to m…

这个 GitHub 项目在“CIRCT vs FIRRTL compiler performance comparison”上为什么会引发关注?

CIRCT's architecture is its primary differentiator. Unlike traditional EDA tools that operate on a single, proprietary internal representation, CIRCT leverages MLIR to define a family of interconnected 'dialects,' each r…

从“CIRCT MLIR hardware design tutorial”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 2096,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。