摘要
arXiv:2504.08862v1 宣布类型: cross
摘要: 作为一种现代硬件设计中的重要组成部分,手动编写寄存器传输级(RTL)代码,如Verilog,通常是劳动密集型的工作。随着大型语言模型(LLMs)的极大成功,研究人员已经开始探索利用LLMs生成RTL代码。然而,目前的研究主要集中在生成简单的单一模块,这不能满足现实世界的需求。事实上,由于管理和处理大型的RTL代码上下文以及复杂的跨文件依赖关系的挑战,现有的解决方案无法在实际的硬件开发中处理大型的Verilog存储库。作为独占地将LLMs适应大规模RTL开发的第一个尝试,我们提出了RTLRepoCoder,这是一个开创性的解决方案,它结合了特定的微调和检索增强生成(RAG)技术,以实现仓库级别的Verilog代码补全。来自真实世界的开源Verilog存储库,以及扩大的上下文大小,用于特定领域的微调。优化的RAG系统通过检索相关代码片段来提高输入上下文的信息密度。针对RAG进行了定制优化,包括嵌入模型、跨文件上下文分割策略和片段大小。我们的解决方案在公共基准上达到了最先进的性能,特别是在编辑相似性和精确匹配率方面显著超过了GPT-4和先进领域的LLMs。全面的实验表明我们方法的显著效果,并为未来的工作提供了见解。