RTLFixer: Automatically Fixing RTL Syntax Errors with Large Language Models(大语言模型自动修复RTL语法错误)
-
总结:
-
之前的研究:提供生成准确性;此研究:纠正语法问题
-
创建了 VerilogEval-syntax数据库:包含 212 个错误的执行
-
自动修复 Verilog 代码的语法错误,大型语言模型生成的 Verilog 代码显然需要强大的调试和完善功能。
-
引入了一种新颖的调试框架,该框架采用检索增强生成 (RAG) 和 ReAct 提示,使 LLM 能够充当自治代理,通过反馈交互式调试代码
-
-
调试框架组成:
-
用于代码生成的 LLM
-
用于访问人类专家指导的 RAG
-
用于改进任务分解、工具使用和规划的 ReAct
-
运行过程:
- 首先制定一个输入提示(设计说明+问题代码块+编译反馈),将基准数据集问题集成到模板中
- 然后代理利用 RAG 和 ReAct,修改错误的 Verilog 代码。(思考+行为+观察)
- 进行编译,如果语法错误仍然存在,则会提供来自编译器的错误日志以及从数据库中检索到的人工指导作为反馈。(错误归类检索+人工专家标注)
- 此交互式调试循环可以重复多次,直到所有错误都得到解决。
-
以VerilogEval为基准的VerilogEval-syntax数据集
- 使用one-short和react方法从VerilogEval中选取问题代码样本
- 对问题样本进行聚类分组,保持代表性和多样性