Automating hardware design could obviate a significant amount of human error from the engineering process and lead to fewer errors. Verilog is a popular hardware description language to model and design digital systems, thus generating Verilog code is a critical first step. Emerging large language models (LLMs) are able to write high-quality code in other programming languages. In this paper, we characterize the ability of LLMs to generate useful Verilog. For this, we fine-tune pre-trained LLMs on Verilog datasets collected from GitHub and Verilog textbooks. We construct an evaluation framework comprising test-benches for functional analysis and a flow to test the syntax of Verilog code generated in response to problems of varying difficulty. Our findings show that across our problem scenarios, the fine-tuning results in LLMs more capable of producing syntactically correct code (25.9% overall). Further, when analyzing functional correctness, a fine-tuned open-source CodeGen LLM can outperform the state-of-the-art commercial Codex LLM (6.5% overall). Training/evaluation scripts and LLM checkpoints are available: https://github.com/shailja-thakur/VGen.
翻译:自动化硬件设计可以避免工程过程中大量的人为错误,并导致更少的错误。 Verilog 是一种常用的硬件描述语言,用于建模和设计数字系统,因此生成 Verilog 代码是一个关键的第一步。 新兴的大型语言模型(LLLMs)能够用其他编程语言写出高质量的代码。 在本文中, 我们描述LLMs 生成有用的 Verilog 的能力。 在这方面, 我们微调了从 GitHub 和 Verilog 教科书收集的 Verilog 数据集的预先训练的LMs 。 我们建立了一个评估框架, 包括功能分析测试- 字箱, 以及用于测试针对不同困难问题生成的Verilog 代码的通配词流。 我们的发现显示, 在我们的问题情景中, LLMs 的微调结果更能够生成同步正确的代码 (总体为25.9%) 。 此外, 在分析功能正确性时, 微调的开放源代码Gen LLMM 能够超越州- 艺术商业代码LM (6. 总体而言) 。培训/评估脚本和 LLLM Kurgskharzur: 。