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

CausalNex 仓库沦陷:开源 AI 供应链安全的当头棒喝QuantumBlack Labs 的 CausalNex 仓库,曾是一款备受瞩目的开源因果推断与贝叶斯网络建模库,如今因 HackerOne 用户 shamim_12 报告的安全漏洞而被标记为危险。该漏洞的具体性质——是恶意代码注入、后门Pyro 2.0:Uber 概率编程框架重新定义贝叶斯 AIPyro 是由 Uber AI Labs 开发、基于 PyTorch 构建的开源概率编程语言(PPL),已成为研究人员和工程师将不确定性量化融入深度学习的关键工具。与传统神经网络输出点估计不同,Pyro 允许模型表达其预测的置信度(或缺乏置Floci:开源AWS模拟器,挑战云端依赖,重塑本地开发体验Floci(floci-io/floci)已崭露头角,成为开发者在本地开发与测试中摆脱昂贵、始终在线的AWS环境的理想替代方案。作为完全开源的项目,它提供与Amazon最常用服务——对象存储S3、无服务器函数Lambda和NoSQL数据库D查看来源专题页GitHub 已收录 1005 篇文章

时间归档

April 20262294 篇已发布文章

延伸阅读

RePlAce克隆版:用静电力学优化教芯片布局,开源EDA入门新捷径一个名为 eplacepractice 的新 GitHub 仓库,提供了知名全局布局器 RePlAce 的精简教育版克隆。它聚焦于 Nesterov 方法求解静电力方程,为理解现代芯片物理设计背后的数值算法,提供了一个难得的动手入门点。CausalNex 仓库沦陷:开源 AI 供应链安全的当头棒喝HackerOne 研究员 shamim_12 报告了 QuantumBlack Labs 旗下 CausalNex 仓库的一个严重安全漏洞,导致该项目不再适合克隆或使用。这一事件为脆弱的开源 AI 供应链敲响了警钟,也暴露了企业级 AI Pyro 2.0:Uber 概率编程框架重新定义贝叶斯 AIUber AI Lab 的 Pyro 框架深度融合深度神经网络与贝叶斯推理,让开发者能够量化 AI 模型中的不确定性。凭借近 9000 个 GitHub 星标,它正在重塑面向生产环境的概率编程。Floci:开源AWS模拟器,挑战云端依赖,重塑本地开发体验Floci,一款全新的开源AWS本地模拟器,为开发者提供了免费、轻量级的方案,可在完全离线状态下模拟S3、Lambda和DynamoDB等核心AWS服务。凭借超过4100个GitHub星标和迅猛的日增长,它正挑战着云依赖开发的既有格局。

常见问题

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,这说明它在开源社区具有较强讨论度和扩散能力。