FormalRTL: Verified RTL Synthesis at Scale

本文提出了 FormalRTL,一种通过集成软件参考模型作为形式化规范来指导生成与验证、从而解决工业级数据路径设计挑战的可扩展多智能体框架。

Kezhi Li, Min Li, Xiangyu Wen, Shibo Zhao, Jieying Wu, Junhua Huang, Qiang Xu

发布于 Wed, 11 Ma
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 FormalRTL 的新系统,它的核心目标是解决一个让芯片工程师头疼的大问题:如何用人工智能(AI)自动写出既复杂又绝对正确的硬件代码?

为了让你轻松理解,我们可以把设计芯片比作建造一座摩天大楼

1. 背景:为什么现在的 AI 造不出“摩天大楼”?

过去,AI(大语言模型)在写简单的代码(比如盖个狗窝或小亭子)上表现不错。但在芯片设计领域,尤其是那些处理海量数据的“数据通路”(Datapath)设计,AI 经常“翻车”。

  • 问题一:图纸太模糊。 如果只给 AI 一句自然语言指令(比如“造个能算浮点数的单元”),就像只给建筑师一句“我要个漂亮的房子”。AI 可能会盖出个外观不错但内部结构混乱的房子,甚至地基都打歪了。
  • 问题二:测试不够严谨。 传统的测试方法就像“试错法”:盖好一部分,试着用用,看坏没坏。但对于复杂的芯片,这种测试很难覆盖所有极端情况(比如暴雨天、地震时房子会不会塌)。一旦芯片流片(正式生产)后发现有个小 bug,损失就是几百万美元。

2. 核心创新:FormalRTL 的“三驾马车”

FormalRTL 并没有让 AI 直接“拍脑袋”写代码,而是引入了一套**“有参照、有监督、有纠错”的自动化流程。我们可以把它想象成一个超级建筑监理团队**,由三个智能角色组成:

🏗️ 角色一:规划师 (Planning Agent) —— “拿着图纸拆任务”

  • 传统做法: 让 AI 直接盖整栋楼,容易晕头转向。
  • FormalRTL 做法: 系统里有一份**“软件参考模型”(通常是用 C/C++ 写的,逻辑非常清晰,相当于大楼的完美设计蓝图**)。
    • 规划师先拿着这份蓝图,用静态分析工具把大楼拆解成一个个小房间(子模块)。
    • 它确保每个小房间的任务都清晰明确,并且按照依赖关系(先打地基,再砌墙,最后封顶)安排施工顺序。
    • 比喻: 就像把盖摩天大楼的任务,拆解成“先盖 A 区地基”、“再盖 B 区墙体”,每个小任务都有明确的图纸,不让 AI 一次性面对几千行代码的混乱。

🧱 角色二:施工队 (Initializing Agent) —— “边盖边对照”

  • 任务: 根据规划师分派的小任务,生成硬件代码(RTL)。
  • 关键创新: 施工队不仅仅是写代码,它还会同时生成一个“测试环境”
    • 这个环境会拿着 AI 盖好的“硬件房间”和之前的“软件蓝图”(C 代码)进行实时比对。
    • 比喻: 就像每砌好一面墙,立刻拿尺子量一下,看看是不是和蓝图完全一致。如果不一致,马上知道哪里错了,而不是等楼盖完了再发现。

🔍 角色三:纠错员 (Debugging Agent) —— “拿着错题本改错”

  • 任务: 当比对发现错误时,谁来修?
  • 传统做法: 告诉 AI“这里错了”,AI 可能猜半天。
  • FormalRTL 做法: 使用**形式化等价检查(Formal EC)**工具。
    • 这个工具不仅能说“错了”,还能给出**“反例”(Counterexample)**。它会具体指出:“在第 134 个状态,输入是 A,你的输出是 B,但蓝图要求是 C。”
    • 纠错员把这些具体的“错题”整理好,喂给 AI,让它精准修改。
    • 比喻: 就像老师批改作业,不是只打个红叉,而是圈出具体哪一步算错了,并告诉你正确答案应该是多少。AI 看着这个“错题本”,就能迅速修正,而不是盲目重试。

3. 为什么这个系统很厉害?

论文通过一系列工业级的测试(比如处理复杂的浮点运算、AI 芯片常用的数据类型)证明了:

  1. 规模大: 以前 AI 只能写几百行代码,现在能搞定上千行甚至更复杂的工业级模块。
  2. 准确率高: 通过“蓝图比对”和“错题本纠错”,最终生成的代码几乎 100% 能通过验证
  3. 效率高: 它把原本需要人类工程师几个月的工作,变成了自动化的流水线。

4. 总结与比喻

如果把芯片设计比作做一道极其复杂的满汉全席

  • 以前的 AI: 厨师(AI)看着菜单(自然语言描述),凭感觉炒菜。偶尔能做出好吃的,但经常盐放多了,或者把糖当成盐,而且很难保证每一道菜都完美。
  • FormalRTL:
    • 规划师先把菜单拆解成“切菜”、“炒菜”、“摆盘”等具体步骤,并对照标准食谱(C 代码参考模型)
    • 施工队每做一步,就对照食谱检查味道。
    • 纠错员如果尝出咸了,会直接告诉厨师:“第 3 步盐放多了 2 克,请减掉”,而不是只说“不好吃”。

最终结果: FormalRTL 让 AI 从“凭感觉的野厨师”变成了“拿着标准食谱和精密仪器的专业大厨”,能够大规模、高可靠地制造出复杂的芯片逻辑。

这篇论文最大的贡献就是开源了这套系统一套工业级的测试题库,让未来的研究者也能在这个基础上,继续把 AI 造芯片的能力推向新的高度。