Automatic generation of Verilog designs for testing EDA tools

Carregando...
Imagem de Miniatura

Título da Revista

ISSN da Revista

Título de Volume

Editor

Universidade Federal de Minas Gerais

Descrição

Tipo

Dissertação de mestrado

Título alternativo

Membros da banca

Luiz Humberto Rezende Barbosa
Mateus Beck Rutzig
John Wickerson

Resumo

Testing Electronic Design Automation (EDA) tools rely on benchmarks—designs written in Hardware Description Languages (HDLs) such as Verilog, SystemVerilog, or VHDL. Although collections of benchmarks for these languages exist, they are typically limited in size and variety. This scarcity has recently drawn more attention due to the increasing need for training large language models in this domain. To deal with such limitation, this paper presents a methodology and a corresponding tool for generating realistic Verilog designs. The tool, called ChiGen, was originally developed to test the Jasper® Formal Verification Platform, a product by Cadence Design Systems. Released as open-source software, ChiGen has been able to identify zero-day bugs in a range of tools, including Verible, Verilator, and Yosys. This paper outlines the principles behind ChiGen’s design, focusing on three aspects: (i) generation guided by probabilistic grammars, (ii) type inference using the Hindley-Milner algorithm, and (iii) code injection enabled by dataflow analysis. Once deployed on standard hardware, ChiGen outperforms existing Verilog Fuzzers such as Verismith, TransFuzz, and VlogHammer regarding structural diversity, code coverage, and bug-finding ability.

Abstract

A valida¸c˜ao de ferramentas de Automa¸c˜ao de Projeto Eletrˆonico (EDA) depende do uso de benchmarks–projetos escritos em Linguagens de Descrição de Hardware (HDLs), como Verilog, SystemVerilog ou VHDL. Embora existam coleções de benchmarks para essas linguagens, elas são geralmente limitadas em tamanho e variedade. Essa escassez tem sido cada vez mais evidente, devido `a crescente demanda por conjuntos de dados para o treinamento de grandes modelos de linguagem voltados para esse domínio. Para lidar com essa limitação, este trabalho apresenta uma metodologia e uma correspondente ferramenta, para a geração de projetos realistas em Verilog. A ferramenta, chamada ChiGen, foi originalmente desenvolvida para testar a plataforma de Verificação Formal Jasper®, um produto da Cadence Design Systems. Atualmente disponibilizada como software de código aberto, ChiGen demonstrou capacidade para identificar bugs inéditos (zero-day) em diversas ferramentas, incluindo Verible, Verilator e Yosys. Este artigo descreve os princípios que orientam o design do ChiGen, com foco em três aspectos principais: (i) geração orientada por gramáticas probabilísticas, (ii) inferência de tipos baseada no algoritmo de Hindley-Milner, e (iii) injeção de código viabilizada por análise de fluxo de dados. Quando executado em hardware convencional, o ChiGen supera ferramentas de fuzzing existentes para Verilog, como Verismith, TransFuzz e VlogHammer, em aspectos como diversidade estrutural, cobertura de código e capacidade de detecção de bugs.

Assunto

Computação - Teses, Verilog (Linguagem descritiva de hardware) - Teses

Palavras-chave

Verilog, Synthesis, Testing, Fuzzing

Citação

Endereço externo

Avaliação

Revisão

Suplementado Por

Referenciado Por

Licença Creative Commons

Exceto quando indicado de outra forma, a licença deste item é descrita como Acesso Aberto