Sfruttare i modelli linguistici per la verifica dell'hardware
Usare grandi modelli linguistici per semplificare i processi di verifica del design hardware.
― 5 leggere min
Indice
- La Sfida della Scrittura delle Proprietà di Verifica
- Il Ruolo dei Modelli Linguistici
- Quadro di Verifica delle Proprietà Formali
- Approccio all'Utilizzo di LLM per la Verifica
- Sperimentazione con GPT-4
- Risultati degli Esperimenti
- Passi per un Miglioramento Iterativo
- Conclusione
- Fonte originale
- Link di riferimento
Nel mondo dell'elettronica, è fondamentale assicurarsi che i progetti funzionino correttamente. Questo processo, chiamato verifica, ha l'obiettivo di trovare errori nel design prima che venga realizzato. Un metodo utilizzato per la verifica prevede la scrittura di proprietà formali che descrivono come dovrebbe comportarsi il design. Tuttavia, scrivere queste proprietà può essere noioso e soggetto a errori, anche per ingegneri esperti.
La Sfida della Scrittura delle Proprietà di Verifica
La verifica delle proprietà formali, o FPV, esiste da molti anni. Può identificare efficacemente bug complessi nel design. Gli ingegneri spesso scrivono proprietà usando un linguaggio specifico conosciuto come SystemVerilog Assertions (SVA). Ma creare queste Affermazioni richiede molto tempo e impegno. Anche gli utenti esperti possono avere difficoltà a scriverle correttamente.
Con l’aumentare della complessità dei nuovi Design hardware, FPV è diventata sempre più importante. Eppure, molti ingegneri sono riluttanti a usarla a causa della ripida curva di apprendimento e del tempo necessario per scrivere affermazioni accurate. I tentativi precedenti di alleviare questo onere si sono concentrati sulla generazione di SVA da descrizioni di design di livello superiore. Tuttavia, questo approccio non elimina completamente la necessità di lavoro manuale.
Il Ruolo dei Modelli Linguistici
I recenti progressi nei modelli linguistici di grandi dimensioni (LLM) presentano un'interessante opportunità. Questi modelli hanno dimostrato il potenziale per generare testi simili a quelli umani basati su input. I ricercatori stanno esplorando la possibilità di utilizzare gli LLM per creare automaticamente affermazioni da design hardware, il che potrebbe far risparmiare molto tempo agli ingegneri.
In questo approccio, gli LLM analizzeranno il codice del design e produrranno SVA senza richiedere specifiche dettagliate o conoscenze pregresse del design. Questo è particolarmente utile nei casi in cui le specifiche non sono disponibili o non sono chiaramente definite.
Quadro di Verifica delle Proprietà Formali
Abbiamo sviluppato un framework che utilizza FPV per valutare le affermazioni generate da un LLM. L'obiettivo è valutare se queste affermazioni sono corrette per un design specifico.
Quando lo strumento FPV trova errori, gli ingegneri possono rivedere i risultati e modificare i suggerimenti che usano per l'LLM. Questo processo aiuta a perfezionare le regole che guidano l'LLM nella generazione di affermazioni migliori nel tempo.
Approccio all'Utilizzo di LLM per la Verifica
Per iniziare, creiamo un testbench FPV per un design hardware. Il nostro obiettivo è utilizzare l'LLM per generare affermazioni che analizzano la correttezza del design senza bisogno di fornire dettagli estesi sulle funzionalità.
Inizialmente, abbiamo usato GPT-4, un LLM avanzato. I primi esperimenti hanno mostrato che, mentre poteva generare affermazioni da codice hardware, molte contenevano errori di sintassi e significato. Affinando gradualmente i suggerimenti con regole specifiche, abbiamo insegnato a GPT-4 a produrre SVA più accurate.
Abbiamo integrato questi miglioramenti in un framework open-source esistente chiamato AutoSVA, consentendo di generare sia proprietà di sicurezza sia di vivacità.
Sperimentazione con GPT-4
Il passo successivo ha coinvolto il collaudo del nostro approccio usando GPT-4. Abbiamo valutato il suo output per determinare quanto efficacemente generava affermazioni corrette. Ogni round di test prevedeva la generazione di un nuovo insieme di proprietà basate sul design hardware, seguito da una valutazione.
Abbiamo osservato che GPT-4 aveva la capacità di produrre affermazioni valide anche da design errati. Questo dimostra che può identificare e tenere conto degli errori nel design, invece di replicare semplicemente ciò che vede.
Per valutare l'efficacia del nostro metodo, abbiamo confrontato le affermazioni generate da AutoSVA e il nostro flusso migliorato. Abbiamo scoperto che il nuovo approccio ha migliorato significativamente la copertura del comportamento del design, consentendo una verifica più completa.
Risultati degli Esperimenti
Gli esperimenti hanno portato a diversi risultati chiave:
Creatività di GPT-4: La capacità del modello di generare affermazioni corrette da codice di design difettoso evidenzia i suoi punti di forza. Non si basa solo sull'input fornito, ma può generare intuizioni che non sono immediatamente ovvie.
Robustezza ai Nomi: Il modello non è eccessivamente sensibile ai nomi utilizzati nel design, indicando che può concentrarsi sulla logica sottostante piuttosto che solo sulla sintassi.
Copertura Migliorata: Le affermazioni generate con il nuovo framework hanno offerto una migliore comprensione del comportamento del design rispetto al metodo originale.
Durante i test, abbiamo anche scoperto un bug in un design open-source ampiamente utilizzato che era passato inosservato. Questo sottolinea ulteriormente il potenziale dell'uso degli LLM per la verifica in applicazioni pratiche.
Passi per un Miglioramento Iterativo
Per migliorare continuamente l'output del modello, abbiamo adottato un approccio iterativo. Ogni volta che abbiamo eseguito i test, abbiamo analizzato attentamente i risultati. Abbiamo categorizzato i problemi in diversi gruppi, concentrandoci principalmente su errori di sintassi, tempistiche errate ed errori semantici.
Problemi di Sintassi: I problemi comuni riguardavano riferimenti non dichiarati correttamente o l'uso di parole chiave sbagliate. Abbiamo affinato le nostre regole per aiutare il modello a comprendere meglio questi aspetti.
Errori di Tempistica: La tempistica può essere complicata nel design hardware. Abbiamo lavorato per insegnare al modello il modo corretto di ragionare sulla tempistica nelle affermazioni, poiché spesso confondeva diverse condizioni di tempistica.
Correzioni Semantiche: Oltre a tempistiche e sintassi, abbiamo approfondito il significato dietro le affermazioni. Ci siamo concentrati sul garantire che le affermazioni riflettessero accuratamente il comportamento desiderato del design.
Conclusione
L'integrazione di modelli linguistici di grandi dimensioni nel processo di verifica hardware porta speranza per semplificare un compito tradizionalmente complesso. Utilizzando questi modelli avanzati, gli ingegneri possono potenzialmente risparmiare tempo e ridurre la probabilità di errori nel processo di verifica.
I nostri esperimenti hanno dimostrato che gli LLM come GPT-4 possono essere ottimizzati per generare affermazioni corrette da design hardware, portando a una migliore copertura e identificazione di bug. Questo cambiamento potrebbe rendere la verifica più accessibile agli ingegneri e migliorare la qualità complessiva dei design hardware.
Con l'evoluzione della tecnologia, il ruolo degli LLM in campi come l'elettronica probabilmente si espanderà, consentendo ulteriori progressi nella verifica del design e nei processi correlati.
Titolo: Using LLMs to Facilitate Formal Verification of RTL
Estratto: Formal property verification (FPV) has existed for decades and has been shown to be effective at finding intricate RTL bugs. However, formal properties, such as those written as SystemVerilog Assertions (SVA), are time-consuming and error-prone to write, even for experienced users. Prior work has attempted to lighten this burden by raising the abstraction level so that SVA is generated from high-level specifications. However, this does not eliminate the manual effort of reasoning and writing about the detailed hardware behavior. Motivated by the increased need for FPV in the era of heterogeneous hardware and the advances in large language models (LLMs), we set out to explore whether LLMs can capture RTL behavior and generate correct SVA properties. First, we design an FPV-based evaluation framework that measures the correctness and completeness of SVA. Then, we evaluate GPT4 iteratively to craft the set of syntax and semantic rules needed to prompt it toward creating better SVA. We extend the open-source AutoSVA framework by integrating our improved GPT4-based flow to generate safety properties, in addition to facilitating their existing flow for liveness properties. Lastly, our use cases evaluate (1) the FPV coverage of GPT4-generated SVA on complex open-source RTL and (2) using generated SVA to prompt GPT4 to create RTL from scratch. Through these experiments, we find that GPT4 can generate correct SVA even for flawed RTL, without mirroring design errors. Particularly, it generated SVA that exposed a bug in the RISC-V CVA6 core that eluded the prior work's evaluation.
Autori: Marcelo Orenes-Vera, Margaret Martonosi, David Wentzlaff
Ultimo aggiornamento: 2023-09-28 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2309.09437
Fonte PDF: https://arxiv.org/pdf/2309.09437
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.