← 最新论文
🤖 AI

SpecAlign: A Semantic Alignment Framework for SystemVerilog Assertion Generation

本文提出了 SpecAlign,这是一个通过基于迭代蕴含的评估、思维链推理和自一致性投票来增强大语言模型生成的 SystemVerilog 断言与自然语言规范之间语义对齐的框架,从而在不依赖黄金 RTL 的情况下提高了断言的准确性。

原作者: Jaime Rafael Imperial, Hao Zheng

发布于 2026-05-26
📖 1 分钟阅读☕ 轻松阅读

原作者: Jaime Rafael Imperial, Hao Zheng

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你是一位总建筑师(即设计规范),已经为新建的一栋复杂房屋绘制了详细的蓝图。你想聘请一位速度极快、极具创造力但偶尔有些天马行空的施工工头(即大型语言模型,或 LLM),让他为这栋房屋编写一份安全规则清单。这些规则需要用一种严格的、技术性的代码语言**SystemVerilog 断言(SVA)**来书写。

问题在于?这位工头非常擅长写出看起来像安全规则且能通过语法检查的句子,但他有时写出的规则实际上毫无意义,或者与你的原始蓝图相矛盾。

例如,你的蓝图规定:“当警报开启时,前门必须上锁。”工头可能会写出一条规则:“当前门开启时,前门必须上锁。”这句话听起来像是一条规则,计算机甚至可能会说:“是的,这是一个有效的句子。”但在现实世界中,这毫无意义。

问题所在:“有效”但错误

传统上,为了检查这些规则是否良好,工程师们会构建房屋的物理模型(称为黄金 RTL),并将规则与该模型进行运行测试。如果规则没有破坏模型,他们便假设该规则是良好的。

但本文认为,这就像仅仅通过观察规则是否适用于某个特定模型来检查其有效性。如果模型是完美的,那当然很好。但如果你还没有模型呢?或者,如果该规则在技术上对那个特定模型是“真”的,却完全偏离了你原本的要求呢?工头可能会幻觉出一些听起来很聪明但实际上毫无用处的规则。

解决方案:SpecAlign

作者们引入了SpecAlign,这是一种全新的“质量控制”框架。SpecAlign 不再通过构建物理模型来测试规则,而是充当一位超级聪明的翻译员和事实核查员,直接将工头编写的规则与你的原始蓝图(自然语言规范)进行比对。

以下是 SpecAlign 的工作原理,使用一个简单的类比:

1. 翻译步骤(规范化)

工头用严格的代码(SVA)编写规则。SpecAlign 首先将这些规则翻译回纯英文。

  • 类比: 想象工头用“建筑代码”书写。SpecAlign 将其翻译回“英语”,以便能直接与你的英文蓝图进行比对。

2. 两步事实核查(对齐循环)

SpecAlign 运行两轮检查:

  • 第一轮(属性检查): 它检查工头从你的蓝图中提取的想法。这些想法是否与你写的内容相符?
  • 第二轮(规则检查): 它检查实际翻译后的规则。它们是否与这些想法以及你的蓝图相符?

3. “三盒”裁决

SpecAlign 不再仅仅给出“通过”或“失败”的结论,而是将每条规则归入三个盒子之一:

  • 🟢 蕴含(绿色): 规则与你的蓝图完美匹配。“是的,这正是你所要求的。”
  • 🔴 矛盾(红色): 规则直接与你的蓝图冲突。“不,你说警报开启时门应上锁,但这条规则却说应解锁。”
  • ⚪ 未知(灰色): 规则提到了你的蓝图中从未涉及的内容。“你提到了‘智能锁’,但你的蓝图只说了‘门’。我不知道这个额外功能是否可以接受。”

4. “自我修正”循环

如果一条规则落入**红色(矛盾)**盒子,SpecAlign 不会直接将其丢弃。它会像一位严格的编辑那样行动:

  1. 它明确告知工头规则具体错在哪里。
  2. 它要求工头根据蓝图重写该规则。
  3. 它再次检查新规则。
  4. 它重复此过程,直到规则变为绿色,或者至少明确为灰色。

为了确保这位“编辑”不会犯错,SpecAlign 会让 AI 通过三种不同的方式思考该问题(就像咨询三位不同的专家),然后对最终答案进行投票。这被称为自洽性(Self-Consistency)

结果:清理混乱

作者在两个现实世界的设计上测试了该方法(例如芯片的通信协议,类似于 USB 或网卡如何与计算机通信)。

  • 在 SpecAlign 之前: 一种竞争方法生成了数百条规则。其中大多数要么是红色(与蓝图矛盾),要么是灰色(编造细节)。只有极小部分是绿色(真正符合蓝图)。
  • 在 SpecAlign 之后:
    • 红色(矛盾)规则的数量急剧下降。对于其中一个设计,坏规则从 148 条减少到了仅 6 条。
    • 绿色(对齐)规则的数量显著增加。
    • 灰色(未知)规则的数量增加了。为什么? 因为 SpecAlign 不再假装那些编造细节的规则是“好的”。它正确地识别出它们为“我们没有足够信息来判断这是否良好”。

核心结论

本文的结论是:仅仅因为一条规则在语法上是正确的,或者通过了计算机测试,并不意味着它的意思就是你以为的那个意思。

SpecAlign 提供了一种方法,可以在无需先构建物理模型的情况下,检查 AI 是否真正听从了你的指令。它将一堆“技术上有效但无用”的规则,转化为一套更小、更干净、你真正可以信赖的规则集,同时清晰地标记出那些因过于模糊而无法确定的规则。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →