HLSTester: Efficient Testing of Behavioral Discrepancies with LLMs for High-Level Synthesis

📄 arXiv: 2504.14641v3 📥 PDF

作者: Kangwei Xu, Bing Li, Grace Li Zhang, Ulf Schlichtmann

分类: cs.SE, eess.SY

发布日期: 2025-04-20 (更新: 2025-07-24)

备注: arXiv admin note: text overlap with arXiv:2407.03889


💡 一句话要点

HLSTester:利用LLM高效测试高层次综合中行为差异

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 高层次综合 行为差异测试 大型语言模型 测试用例生成 FPGA验证

📋 核心要点

  1. 现有高层次综合(HLS)的行为差异测试方法不成熟,且高度依赖人工,效率低下。
  2. HLSTester利用LLM辅助生成HLS兼容的测试用例,并结合后向切片和动态突变等技术,提升测试效率。
  3. 实验表明,HLSTester显著加速了测试流程,并提高了测试用例的仿真通过率,优于传统方法和直接使用LLM。

📝 摘要(中文)

在高层次综合(HLS)中,带有综合指令的C/C++程序用于生成FPGA实现的电路。然而,这些实现中硬件特定和平台相关的特性可能会导致原始C/C++程序与高层次综合后的电路之间出现行为差异。现有的HLS行为差异测试方法尚不成熟,且测试流程需要大量的人工干预。为了解决这一挑战,我们提出了HLSTester,一个由大型语言模型(LLM)辅助的测试框架,可以高效地检测HLS中的行为差异。为了减轻LLM中的幻觉并提高prompt质量,利用原始C/C++程序的测试用例来指导LLM生成HLS兼容的测试用例,有效地消除了某些与HLS工具不兼容的传统C/C++结构。通过C/C++和HLS程序中的后向切片技术来精确定位关键变量,以监控它们的运行时频谱,从而能够深入分析差异症状。为了减少测试时间,引入了一种测试输入生成机制,将动态突变与基于LLM的渐进推理链的见解相结合。此外,通过一种冗余感知过滤技术来跳过生成的测试输入的重复硬件测试。实验结果表明,与传统方法和直接在相同HLS程序上使用LLM相比,所提出的LLM辅助测试框架显著加速了测试流程,同时实现了更高的测试用例仿真通过率。

🔬 方法详解

问题定义:论文旨在解决高层次综合(HLS)中,由于硬件特性和平台依赖性导致的C/C++程序与综合后电路之间的行为差异问题。现有方法依赖人工,效率低,且难以覆盖所有可能的差异情况。

核心思路:利用大型语言模型(LLM)的强大代码生成和理解能力,自动生成HLS兼容的测试用例,并结合程序分析技术,精确定位和分析行为差异。通过迭代优化测试用例生成过程,提高测试效率和覆盖率。

技术框架:HLSTester框架包含以下几个主要模块:1) LLM辅助的HLS兼容测试用例生成器,利用原始C/C++测试用例作为指导,生成符合HLS工具要求的测试用例。2) 基于后向切片的关键变量识别模块,用于确定C/C++和HLS程序中影响输出的关键变量。3) 动态突变和LLM推理相结合的测试输入生成机制,用于生成更有效的测试输入。4) 冗余感知过滤模块,用于避免重复的硬件测试。

关键创新:1) 将LLM引入HLS行为差异测试,实现自动化测试用例生成。2) 结合程序分析技术(后向切片)和动态突变,提高测试效率和覆盖率。3) 提出了一种LLM辅助的渐进推理链,用于指导测试输入生成,提升测试用例的有效性。

关键设计:LLM prompt的设计至关重要,需要包含原始C/C++测试用例、HLS约束条件和目标代码的功能描述。后向切片算法用于确定关键变量,并监控其运行时频谱。动态突变策略用于生成新的测试输入,并结合LLM的推理结果进行筛选和优化。冗余感知过滤技术通过比较测试输入的特征向量来判断其是否冗余。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,HLSTester在加速测试流程和提高测试用例仿真通过率方面优于传统方法和直接使用LLM。具体数据包括:测试时间显著减少,测试用例仿真通过率提升了XX%(具体数值未知,原文未提供)。

🎯 应用场景

HLSTester可应用于FPGA开发流程中,用于验证高层次综合工具生成的电路的正确性,减少人工调试工作量,提高硬件设计的可靠性和效率。该方法还可以推广到其他硬件设计验证领域,例如SoC验证和嵌入式系统测试。

📄 摘要(原文)

In high-level synthesis (HLS), C/C++ programs with synthesis directives are used to generate circuits for FPGA implementations. However, hardware-specific and platform-dependent characteristics in these implementations can introduce behavioral discrepancies between the original C/C++ programs and the circuits after high-level synthesis. Existing methods for testing behavioral discrepancies in HLS are still immature, and the testing workflow requires significant human efforts. To address this challenge, we propose HLSTester, a large language model (LLM) aided testing framework that efficiently detects behavioral discrepancies in HLS. To mitigate hallucinations in LLMs and enhance prompt quality, the testbenches for original C/C++ programs are leveraged to guide LLMs in generating HLS-compatible testbenches, effectively eliminating certain traditional C/C++ constructs that are incompatible with HLS tools. Key variables are pinpointed through a backward slicing technique in both C/C++ and HLS programs to monitor their runtime spectra, enabling an in-depth analysis of the discrepancy symptoms. To reduce test time, a testing input generation mechanism is introduced to integrate dynamic mutation with insights from an LLM-based progressive reasoning chain. In addition, repetitive hardware testing is skipped by a redundancy-aware filtering technique for the generated test inputs. Experimental results demonstrate that the proposed LLM-aided testing framework significantly accelerates the testing workflow while achieving higher testbench simulation pass rates compared with the traditional method and the direct use of LLMs on the same HLS programs.