RuC: HDL-Agnostic Rule Completion Benchmark Generation
作者: Arnau Ayguadé Domingo, Miquel Alberti-Binimelis, Cristian Gutierrez-Gomez, Emanuele Parisi, Razine Moundir Ghorab, Miquel Moreto, Gokcen Kestor, Dario Garcia-Gasulla
分类: cs.AR, cs.AI
发布日期: 2026-04-30
备注: 7 pages, 6 figures
💡 一句话要点
RuC:一种与硬件描述语言无关的、基于规则的可控代码补全基准生成框架
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码补全 大型语言模型 硬件描述语言 RTL开发 基准测试
📋 核心要点
- 现有代码补全基准缺乏对样本粒度和语法范围的有效控制,限制了对LLM代码理解能力的深入评估。
- RuC框架通过语法驱动和规则选择的方式,生成可控粒度的RTL代码补全任务,实现更精细的评估。
- 实验表明,代码补全性能受模型类型、语法结构和提示策略影响,中间填充提示效果最佳。
📝 摘要(中文)
大型语言模型(LLM)在代码相关任务中的性能迅速提升,使其在寄存器传输级(RTL)开发中的集成越来越有吸引力。为了模仿内联代码助手,许多基准评估LLM在代码补全方面的能力,包括生成完整的硬件模块或补全模块中的单行代码。然而,这两种方法都缺乏控制代码补全样本大小和补全语法范围的能力。为了克服这些限制,我们提出了一种与语言无关的规则补全(RuC)框架,它是一种语法驱动、规则可选择的基准生成器,可以从一组输入硬件描述源自动生成RTL代码补全任务。RuC使用目标硬件描述语言(HDL)语法来屏蔽语法定义的代码区域,并提示模型使用周围未屏蔽的代码作为上下文来重新生成它们,从而实现对特定领域模型的代码理解能力进行可控和可扩展的评估,范围从赋值到整个逻辑块的重建。我们使用RuC从Tiny Tapeout shuttle TT07和CVE2 RISC-V核心生成了两个SystemVerilog规则补全基准,以证明RuC对广泛设计的适用性,并对现代开源LLM在不同设置下的代码补全能力进行了比较研究。结果表明,补全性能在很大程度上取决于模型类型、屏蔽区域的语法结构和提示策略。具体来说,使用中间填充(FIM)提示获得最高分数。这些发现突出了语法驱动、任意粒度基准对于有意义地评估LLM在RTL开发工作流程中的能力的重要性。
🔬 方法详解
问题定义:现有RTL代码补全基准要么生成整个硬件模块,要么补全单行代码,无法灵活控制代码补全的粒度和语法范围。这使得对LLM在RTL开发中代码理解能力的评估不够精细,难以发现模型在特定语法结构上的弱点。
核心思路:RuC的核心思路是利用硬件描述语言的语法规则,有选择地屏蔽代码中的特定区域,然后要求LLM根据周围的上下文来补全这些被屏蔽的区域。通过控制屏蔽区域的语法结构和大小,可以生成各种粒度和难度的代码补全任务,从而更全面地评估LLM的代码理解能力。
技术框架:RuC框架主要包含以下几个模块:1) HDL语法解析器:用于解析目标硬件描述语言的语法规则。2) 代码区域选择器:根据语法规则选择需要屏蔽的代码区域。3) 代码屏蔽器:将选定的代码区域屏蔽,生成代码补全任务。4) 提示生成器:根据屏蔽区域周围的上下文生成提示信息,用于引导LLM进行代码补全。5) 评估器:评估LLM生成的代码是否正确。
关键创新:RuC最重要的创新在于其语法驱动和规则可选择的特性。它允许用户根据目标硬件描述语言的语法规则,灵活地选择需要屏蔽的代码区域,从而生成各种粒度和难度的代码补全任务。这使得对LLM在RTL开发中代码理解能力的评估更加精细和全面。
关键设计:RuC的关键设计包括:1) 使用ANTLR等工具进行HDL语法解析。2) 设计灵活的代码区域选择策略,允许用户根据语法规则选择不同类型的代码区域进行屏蔽,例如赋值语句、逻辑块等。3) 采用不同的提示策略,例如中间填充(FIM)等,以提高代码补全的准确率。
🖼️ 关键图片
📊 实验亮点
实验结果表明,LLM的代码补全性能受到模型类型、屏蔽区域的语法结构和提示策略的显著影响。具体来说,使用中间填充(FIM)提示策略可以获得最高的代码补全准确率。此外,实验还发现,不同LLM在处理不同类型的代码区域时表现出不同的优势和劣势,这表明需要针对不同的RTL开发任务选择合适的LLM模型。
🎯 应用场景
RuC可用于评估和改进LLM在RTL代码生成、代码补全和代码修复等方面的能力,加速硬件设计流程。通过RuC生成的基准,可以帮助开发者选择更适合RTL开发的LLM模型,并优化LLM的提示策略,提高代码生成的质量和效率。此外,RuC还可以用于自动化硬件设计教育,帮助学生更好地理解和掌握RTL编程。
📄 摘要(原文)
Large Language Models (LLMs) have rapidly improved in performance across code-related tasks, making their integration into Register Transfer Level (RTL) development increasingly attractive. Mimicking the behavior of inline code assistants, many benchmarks evaluate LLMs' capabilities in code completion, either assessing the generation of entire hardware modules or the completion of a single line within a module. However both of these approaches lack the ability to control the granularity of the code-completion sample size and the syntactic range of completions. To overcome these limitations, we present a framework for language-agnostic rule completion (RuC), a grammar-driven, rule-selectable benchmark generator that automatically produces RTL code-completion tasks from a set of input hardware description sources. RuC uses the target Hardware Description Language (HDL) grammar to mask syntactically defined code regions and prompts a model to regenerate them using the surrounding unmasked code as context, enabling a controlled and scalable evaluation of the domain-specific model's code-understanding capabilities, ranging from assignments to the reconstruction of entire logic blocks. We use RuC to generate two SystemVerilog rule-completion benchmarks from the Tiny Tapeout shuttle TT07 and the CVE2 RISC-V core to demonstrate RuC's applicability to a broad range of designs, and conduct a comparative study of the code completion capabilities of modern open-source LLMs across diverse settings. Results indicate that completion performance strongly depends on the model type, the grammatical structure of the masked region, and the prompting strategy. Specifically, the highest scores are obtained with Fill-in-the-Middle (FIM) prompting. These findings highlight the value of grammar-driven, arbitrarily granular benchmarks for meaningful evaluation of LLM capabilities in RTL development workflows.