2025-11-16T06:52:11.231184

VerilogReader: LLM-Aided Hardware Test Generation

Ma, Yang, Liu et al.
Test generation has been a critical and labor-intensive process in hardware design verification. Recently, the emergence of Large Language Model (LLM) with their advanced understanding and inference capabilities, has introduced a novel approach. In this work, we investigate the integration of LLM into the Coverage Directed Test Generation (CDG) process, where the LLM functions as a Verilog Reader. It accurately grasps the code logic, thereby generating stimuli that can reach unexplored code branches. We compare our framework with random testing, using our self-designed Verilog benchmark suite. Experiments demonstrate that our framework outperforms random testing on designs within the LLM's comprehension scope. Our work also proposes prompt engineering optimizations to augment LLM's understanding scope and accuracy.
academic

VerilogReader: Generazione di Test Hardware Assistita da LLM

Informazioni Fondamentali

Riassunto

La generazione di test è sempre stata un processo critico e laborioso nella verifica del design hardware. Negli ultimi anni, i modelli di linguaggio di grandi dimensioni (LLM) hanno introdotto nuovi approcci in questo campo grazie alle loro avanzate capacità di comprensione e ragionamento. Questo studio esplora l'integrazione di LLM nel processo di generazione di test orientato alla copertura (CDG), dove l'LLM funge da lettore di codice Verilog, comprendendo accuratamente la logica del codice e generando stimoli in grado di raggiungere rami di codice inesplorati. Gli autori confrontano il framework con test casuali utilizzando una suite di benchmark Verilog auto-progettata, dimostrando che il framework supera i test casuali su design entro l'ambito di comprensione dell'LLM, e propongono ottimizzazioni di prompt engineering per migliorare l'ambito di comprensione e l'accuratezza dell'LLM.

Contesto di Ricerca e Motivazione

Contesto del Problema

  1. Importanza della Verifica Hardware: Con l'aumento della complessità hardware, la verifica hardware è diventata sempre più critica nel processo di sviluppo. Gli errori hardware non rilevati possono causare conseguenze significative e perdite economiche sostanziali.
  2. Metodi di Verifica Esistenti: Gli ingegneri adottano principalmente due approcci di verifica:
    • Verifica formale: utilizzo di tecniche matematiche per provare la correttezza del sistema
    • Verifica dinamica: generazione di diversi casi di test per simulare il design sotto test (DUT)
  3. Sfide nella Generazione di Test: Il raggiungimento degli obiettivi di copertura richiede input di test di alta qualità, imponendo un onere significativo agli ingegneri di verifica.

Motivazione della Ricerca

  1. Necessità di Automazione: Per ridurre l'intervento manuale, la generazione di test orientata alla copertura (CDG) è diventata una tecnologia chiave per l'automazione della generazione di test hardware.
  2. Opportunità degli LLM: Le forti capacità degli LLM nella comprensione e nel ragionamento offrono nuove opportunità nel campo della generazione di test hardware.
  3. Posizionamento Differenziato: A differenza della ricerca precedente focalizzata su punti di copertura funzionale, questo articolo si concentra sulla copertura del codice, un obiettivo di test più fondamentale, posizionando l'LLM come "VerilogReader".

Contributi Principali

  1. Framework Open Source: Primo rilascio open source di un framework che integra LLM nel processo CDG, utilizzando LLM come VerilogReader per comprendere il codice Verilog e la copertura, con l'obiettivo di generare test che raggiungono la chiusura della copertura del codice.
  2. Modulo di Ottimizzazione dei Prompt: Propone i moduli Coverage Explainer e DUT Explainer per arricchire i prompt, migliorando la comprensione dell'LLM del design e dell'intento dei test, aumentando la scalabilità del framework.
  3. Suite di Benchmark: Crea una suite di benchmark contenente 24 design Verilog di livello semplice, medio e complesso, dimostrando che il framework supera i test casuali su DUT di livello semplice e medio.
  4. Esplorazione dei Confini delle Capacità: Definisce chiaramente i confini massimi delle capacità attuali dell'LLM nella lettura di Verilog.

Dettagli del Metodo

Definizione del Compito

Il compito di questo articolo è utilizzare l'LLM per comprendere la logica del codice Verilog e lo stato di copertura attuale, generando stimoli di input multi-ciclo in grado di attivare rami di codice non coperti, al fine di migliorare la copertura del codice.

Architettura del Modello

Framework di Base

L'intero framework adotta un processo CDG iterativo, contenente i seguenti componenti principali:

  1. Core LLM: Genera input multi-ciclo in formato JSON in ogni iterazione
  2. Decodificatore di Input: Decodifica gli input in formato JSON in stimoli hardware
  3. Monitor di Copertura: Fornisce informazioni sulla copertura del codice attuale
  4. Moduli di Spiegazione: Include Coverage Explainer e DUT Explainer

Generatore di Prompt

Adotta un meccanismo di domande e risposte in due turni:

  • Primo Turno: Informa l'LLM dell'obiettivo di test, fornisce informazioni DUT e dati di copertura, l'LLM risponde in linguaggio naturale
  • Secondo Turno: Guida l'LLM a convertire la risposta in formato JSON standardizzato

Coverage Explainer

Converte report di copertura complessi in formato comprensibile dall'LLM:

  1. Formato Originale: Report di copertura Verilator, contenente identificatori univoci e conteggi di hit
  2. Formato Annotato: Report annotato creato utilizzando lo strumento verilator_coverage
  3. Formato Leggibile dall'LLM: Formato appositamente progettato, aggiungendo il flag 'TO BE COVERED' alle righe non coperte

DUT Explainer

Fornisce due funzionalità per migliorare la comprensione dell'LLM del DUT:

  1. Descrizione del Design: Fornisce spiegazioni in linguaggio naturale della funzionalità DUT e della logica interna
  2. Guida ai Test: Fornisce informazioni supplementari e regole di logica di test di base per la creazione di test specifici per DUT

Punti di Innovazione Tecnica

  1. Focalizzazione sulla Copertura del Codice: Prima applicazione di LLM alla copertura del codice hardware piuttosto che ai punti di copertura funzionale
  2. Elaborazione in Fasi: Scompone il compito di generazione di test in due fasi: comprensione DUT e ragionamento sulla logica di input
  3. Etichettatura in Linguaggio Naturale: Utilizza etichettatura in linguaggio naturale per righe non coperte, semplificando il processo di ragionamento dell'LLM
  4. Interazione Bidirezionale: Promuove il pensiero progressivo dell'LLM attraverso domande e risposte in due turni

Configurazione Sperimentale

Dataset

Suite di benchmark auto-costruita contenente 24 design Verilog, divisa in tre livelli di difficoltà:

  1. Livello Semplice (s01-s10): 10 circuiti logici combinatori di base (multiplexer, ALU, ecc.)
  2. Livello Medio (m01-m08): 8 circuiti logici sequenziali (FSM, contatori, arbitri, ecc.)
  3. Livello Complesso (c01-c06): 6 circuiti FSM su larga scala (16-128 stati)

Metriche di Valutazione

  • Metrica Principale: Lunghezza totale degli stimoli di input necessari per raggiungere la copertura completa (misurata in cicli di clock)
  • Copertura: Percentuale di copertura delle righe
  • Efficienza Temporale: Numero di iterazioni necessarie per raggiungere la copertura target

Metodi di Confronto

  • Test Casuale: Metodo di confronto di base
  • Diversi Formati di Report di Copertura: Formato originale, formato annotato, formato leggibile dall'LLM

Dettagli di Implementazione

  • Modello di Linguaggio: OpenAI GPT-4 e GPT-4-Turbo-0125
  • Simulatore: Verilator
  • Analisi del Codice: Pyverilog
  • Ripetizione Esperimenti: Ogni esperimento ripetuto 5 volte per gestire la casualità dell'LLM

Risultati Sperimentali

Risultati Principali

Confronto dei Metodi di Spiegazione della Copertura

I risultati degli esperimenti su DUT di livello medio utilizzando GPT-4 mostrano:

  • Il report di copertura leggibile dall'LLM supera significativamente i formati originale e annotato
  • Il report di copertura originale illeggibile rappresenta la sfida maggiore per l'LLM
  • Il flag 'TO BE COVERED' con etichettatura in linguaggio naturale migliora efficacemente l'effetto di comprensione

Confronto con Test Casuale

I risultati degli esperimenti su DUT di livello semplice e medio mostrano:

  • Il framework LLM utilizza significativamente meno input per raggiungere la copertura del 100%
  • I test casuali spesso non raggiungono la copertura completa entro un minuto su design sequenziali con rami difficili da raggiungere
  • GPT-4 e GPT-4-Turbo mostrano prestazioni simili nei compiti di generazione di test hardware

Effetto dell'Ottimizzazione della Spiegazione DUT

  • Descrizione del Design: La descrizione del design generata dall'LLM migliora la comprensione del design durante la generazione di test
  • Guida ai Test: Effetto incoerente, in alcuni design (m05, m06) riduce effettivamente la diversità di input

Analisi della Scalabilità dell'LLM

I risultati degli esperimenti su FSM di livello complesso mostrano:

  • FSM a 16 stati: si avvicina alla copertura di linea del 100% dopo 20 iterazioni
  • FSM a 64 stati e oltre: la copertura non supera il 50%
  • Con l'aumento della dimensione del DUT, la qualità della generazione di test diminuisce drasticamente

Scoperte Sperimentali

  1. L'LLM mostra prestazioni eccellenti su design di complessità semplice e media
  2. L'LLM attuale ha limitazioni evidenti nel trattamento di design Verilog su larga scala
  3. L'ingegneria dei prompt appropriata può migliorare significativamente le prestazioni dell'LLM
  4. Il formato del report di copertura è critico per la comprensione dell'LLM

Lavori Correlati

Metodi CDG Tradizionali

  • Esplorazione dello spazio di input basata su metodi euristici
  • Utilizzo dello stato di copertura come feedback fondamentale per la generazione di nuovi casi di test
  • Sfruttamento delle informazioni sulla struttura del circuito (grafi di flusso di controllo/dati, mappe di connessione dei moduli) per guidare la generazione di test

Applicazioni di LLM nel Campo Hardware

  • Scrittura RTL: Generazione automatica di codice di descrizione hardware
  • Generazione di Asserzioni: Generazione di asserzioni di verifica
  • Correzione di Errori: Correzione di errori nei design hardware
  • Verifica Funzionale: Lavoro di verifica dei punti di copertura funzionale di Zhang et al.

Posizionamento Differenziato di questo Articolo

A differenza del lavoro precedente focalizzato su descrizioni di piani di test funzionali di alto livello, questo articolo si concentra su obiettivi di copertura del codice più fondamentali, richiedendo all'LLM una comprensione profonda della logica del codice Verilog.

Conclusioni e Discussione

Conclusioni Principali

  1. L'LLM può comprendere efficacemente design Verilog di complessità semplice e media e generare input di test mirati
  2. L'ingegneria dei prompt appropriata (in particolare la spiegazione della copertura) è critica per le prestazioni dell'LLM
  3. L'LLM attuale ha limitazioni evidenti nel trattamento di design hardware su larga scala e complessi

Limitazioni

  1. Limite di Scala: Per design complessi con più di 100 righe di codice, le prestazioni dell'LLM diminuiscono significativamente
  2. Comprensione della Struttura: L'LLM ha difficoltà a comprendere le caratteristiche altamente strutturate di Verilog
  3. Applicazione End-to-End: L'applicazione diretta dell'LLM nei design hardware di livello industriale rimane ancora una sfida

Direzioni Future

  1. Miglioramento del DUT Explainer: Fornire astrazioni di design di livello superiore più complete e intenti di verifica
  2. Fusione Multimodale: Combinare LLM e reti neurali grafiche (GNN), utilizzando LLM per l'interpretazione semantica e GNN per l'elaborazione delle informazioni strutturali
  3. Elaborazione Gerarchica: Guidare l'LLM nel trattamento dei compiti di generazione di test da una prospettiva macroscopica

Valutazione Approfondita

Punti di Forza

  1. Forte Innovatività: Prima applicazione di LLM alla generazione di test di copertura del codice hardware, posizionamento chiaro
  2. Approccio Sistematico: Propone un framework completo, includendo molteplici moduli di ottimizzazione
  3. Esperimenti Sufficienti: Costruisce una suite di benchmark multi-livello, design sperimentale razionale
  4. Contributo Open Source: Fornisce un framework open source, promuovendo lo sviluppo del campo
  5. Esplorazione dei Confini: Definisce chiaramente i confini delle capacità attuali dell'LLM

Insufficienze

  1. Limitazioni di Scala: Efficace solo su design relativamente semplici, ancora lontano dall'applicazione industriale pratica
  2. Limitazioni del Benchmark: Il benchmark auto-costruito potrebbe non essere sufficientemente completo, mancano confronti con benchmark standard industriali
  3. Analisi dei Costi: Manca un confronto dettagliato tra i costi di invocazione dell'LLM e i metodi tradizionali
  4. Analisi Teorica: Manca un'analisi teorica approfondita del perché l'LLM sia efficace in questo compito

Impatto

  1. Valore Accademico: Apre una nuova direzione di applicazione dell'LLM nel campo della verifica hardware
  2. Potenziale Pratico: Ha valore di applicazione pratica nell'educazione e nella verifica di design di piccola e media scala
  3. Natura Ispirativa: Fornisce baseline e idee preziose per la ricerca successiva

Scenari Applicabili

  1. Ambiente Educativo: Adatto per la generazione automatica di test nei corsi di design hardware
  2. Verifica di Prototipi: Applicabile alla verifica rapida nella fase di design iniziale
  3. Design di Piccola e Media Scala: Ha valore pratico per moduli Verilog di meno di 100 righe
  4. Strumento Ausiliario: Può servire come strumento ausiliario per gli ingegneri di verifica, riducendo parte del carico di lavoro

Bibliografia

L'articolo cita 19 riferimenti correlati, coprendo verifica formale, verifica dinamica, metodi CDG, applicazioni di LLM nel campo hardware e altri aspetti, fornendo una base teorica solida per la ricerca.


Valutazione Complessiva: Questo è un lavoro innovativo nel campo dell'intersezione tra LLM e verifica hardware. Sebbene abbia limitazioni nell'applicazione su larga scala, fornisce un'esplorazione preziosa e una base per lo sviluppo del campo. Il metodo dell'articolo è sistematico, gli esperimenti sono sufficienti, il contributo open source è chiaro, con buon valore accademico e significato ispirativo.