Faver: Boosting LLM-based RTL Generation with Function Abstracted Verifiable Middleware
Mu, Shi, Wang et al.
LLM-based RTL generation is an interesting research direction, as it holds the potential to liberate the least automated stage in the current chip design. However, due to the substantial semantic gap between high-level specifications and RTL, coupled with limited training data, existing models struggle with generation accuracy. Drawing on human experience, design with verification helps improving accuracy. However, as the RTL testbench data are even more scarce, it is not friendly for LLMs. Although LLMs excel at higher-level languages like Python/C, they have a huge semantic gap from RTL. When implementing the same functionality, Python/C code and hardware code differ significantly in the spatiotemporal granularity, requiring the LLM not only to consider high-level functional semantics but also to ensure the low-level details align with the circuit code. It is not an easy task. In this paper, we propose a function abstracted verifiable middleware (Faver) that streamlines RTL verification in LLM-based workflows. By mixing LLM-friendly code structures with a rule-based template, Faver decouples the details of circuit verification, allowing the LLM to focus on the functionality itself. In our experiments on the SFT model and open-source models, Faver improved the model's generation accuracy by up to 14%.
academic
Faver: Potenziamento della Generazione RTL basata su LLM con Middleware Verificabile ad Astrazione Funzionale
Questo articolo propone Faver (Function Abstracted Verifiable Middleware) per affrontare il problema dell'accuratezza nella generazione di codice RTL basata su modelli di linguaggio di grandi dimensioni (LLM). Il metodo combina strutture di codice favorevoli agli LLM con template basati su regole, disaccoppiando i dettagli della verifica dei circuiti e consentendo agli LLM di concentrarsi sulla funzionalità stessa. Negli esperimenti con modelli SFT e modelli open-source, Faver aumenta l'accuratezza della generazione del modello fino al 14%.
La progettazione RTL è la fase meno automatizzata e più dispendiosa in termini di manodopera nella progettazione dei chip. Sebbene gli LLM mostrino potenziale nella generazione RTL, a causa dell'enorme divario semantico tra specifiche di alto livello e RTL, insieme ai dati di addestramento limitati, i modelli esistenti presentano scarse prestazioni in termini di accuratezza della generazione.
Giudizio diretto da LLM: Mancanza di strumenti di ragionamento robusti per verificare la funzionalità in base alle specifiche
Generazione di testbench RTL: I dati di testbench sono più scarsi dei dati di progettazione e la difficoltà di generazione è paragonabile alla progettazione RTL
Verifica Python semplice: Le differenze tra hardware e software nella granularità spazio-temporale rendono difficile la co-verifica
Trarre ispirazione dal metodo "design and verification" dell'esperienza umana, ma affrontare le difficoltà intrinseche degli LLM nella verifica hardware, in particolare le sfide relative alle variabili dipendenti dal timing e alla generazione di stimoli di test.
Propone il framework Faver: Consente agli LLM di scrivere codice semantico di alto livello per verificare i circuiti e beneficiare del framework design and verification
Progetta template di astrazione funzionale-classe: Mappa la semantica di clock e registri nella progettazione hardware a classi Python/C guidate da eventi, riducendo il divario spazio-temporale tra verifica hardware e software
Verifica sperimentale: Dimostra su più set di test e LLM che Faver aumenta l'accuratezza della generazione RTL basata su LLM fino al 14%
Analisi teorica: Fornisce modelli matematici per il tasso di successo del sistema e il tasso di veridicità del feedback
Input: Descrizione della specifica in linguaggio naturale dei requisiti funzionali hardware
Output: Codice RTL (Verilog) funzionalmente corretto e verificato
Vincoli: L'RTL generato deve essere corretto sia sintatticamente che funzionalmente
Utilizza co-simulazione Python-Verilog per un matching preciso
Confronto a livello di carattere della forma d'onda, classificazione dei tipi di errore (errori funzionali, mancata corrispondenza temporale, problemi di condizioni al contorno)
Soglia iterativa impostata a 5 iterazioni per evitare cicli infiniti
Faver- (senza generazione di stimoli di test): miglioramento medio del 2,75%
Faver completo: miglioramento fino al 12%
Dimostra che sia la generazione del modello di riferimento che la generazione gerarchica di stimoli di test contribuiscono in modo importante al miglioramento delle prestazioni
Innovazione tecnica: Primo a risolvere sistematicamente il problema del timing degli LLM nella verifica hardware, realizzando un mapping semantico efficace attraverso template di classe e modelli guidati da eventi
Completezza sperimentale: Valutazione completa su più modelli e dataset, inclusi esperimenti di ablazione e analisi teorica
Valore pratico: Fornisce un'implementazione open-source completa con buona riproducibilità
Supporto teorico: Fornisce modelli matematici per il tasso di successo del sistema, rafforzando la base teorica del metodo
L'articolo cita importanti lavori nel campo, inclusi:
ChipGPT, ChipNeMo e altri LLM specializzati per la progettazione hardware
VerilogCoder, MAGE e altri metodi di design and verification
RTLLM, VerilogEval e altri benchmark di valutazione standard
Toffee, Verilator e altri strumenti di co-simulazione
Valutazione Complessiva: Questo è un articolo di alta qualità con importanti contributi nel campo della generazione RTL basata su LLM. Attraverso il design innovativo del middleware di astrazione funzionale, risolve efficacemente il problema del divario semantico tra verifica software e hardware, i risultati sperimentali sono convincenti e possiede buon valore pratico e impatto accademico.