Formal that "Floats" High: Formal Verification of Floating Point Arithmetic

Questo articolo presenta una metodologia scalabile per la verifica formale dell'aritmetica in virgola mobile a livello RTL, che combina un approccio modulare di tipo "divide et impera", l'iniezione di fault e la generazione assistita da intelligenza artificiale per superare le limitazioni dei modelli ad alto livello e migliorare l'efficienza della copertura.

Hansa Mohanty, Vaisakh Naduvodi Viswambharan, Deepak Narayan Gadde

Pubblicato 2026-03-05
📖 5 min di lettura🧠 Approfondimento

Each language version is independently generated for its own context, not a direct translation.

Immagina di dover costruire un orologio di precisione microscopico, fatto di miliardi di ingranaggi di silicio. Se anche un solo ingranaggio gira di un milionesimo di secondo in più o in meno, l'intero orologio potrebbe smettere di funzionare o, peggio, dare un'ora sbagliata in un momento critico.

Questo è il mondo dei processori moderni e, in particolare, di come calcolano i numeri con la virgola (i numeri "floating-point"), usati per tutto, dai videogiochi alle missioni spaziali.

Ecco di cosa parla questo articolo, spiegato come se stessimo chiacchierando al bar:

1. Il Problema: "Tradurre" è pericoloso

Fino a poco tempo fa, per controllare se questi circuiti funzionavano bene, gli ingegneri facevano una cosa un po' rischiosa: prendevano il progetto del chip (scritto in un linguaggio chiamato RTL, che è come il piano di costruzione dettagliato) e lo "traducevano" in un linguaggio di programmazione più semplice (come il C), per poi confrontarlo con un modello teorico.

È come se avessi un'architettura di un grattacielo in disegni tecnici complessi, e per controllarla la dessi a un traduttore che la riscrive in una poesia. Poi confronti la poesia con il progetto originale.

  • Il rischio: Il traduttore potrebbe aver sbagliato una parola, o la poesia potrebbe non catturare la forza di un ingranaggio che si rompe. C'è un "vuoto" tra la poesia e il mattone reale.

2. La Soluzione Proposta: Il "Gemello Digitale" Perfetto

Gli autori di questo articolo (che lavorano per Infineon, un gigante dei chip) dicono: "Basta traduzioni!".
Hanno creato un metodo per confrontare direttamente il progetto reale (RTL) con un modello di riferimento perfetto (anch'esso in RTL, ma scritto in modo semplice e matematicamente corretto, come un "gemello digitale" ideale).

È come se avessi due orologi identici:

  1. L'Orologio Reale (quello che stai costruendo).
  2. L'Orologio Maestro (quello che sai per certo che funziona alla perfezione).

Invece di tradurre l'orologio reale in parole, lo metti a confronto diretto con il Maestro, ingranaggio per ingranaggio, istante per istante. Se anche un solo dente di un ingranaggio è diverso, il sistema lo vede subito.

3. La Strategia: "Dividi e Comanda"

Controllare un intero chip complesso tutto in una volta è come cercare di trovare un ago in un pagliaio mentre il pagliaio brucia. È troppo difficile.
Il loro metodo usa una strategia di "Dividi e Comanda":

  • Scompongono l'operazione matematica (es. sommare due numeri con la virgola) in piccoli passi semplici: prima allineano i numeri, poi li sommano, poi arrotondano il risultato.
  • Controllano ogni piccolo passo separatamente. Se il primo passo è sbagliato, lo sistemano prima di passare al secondo. È come controllare una ricetta: prima assaggi se hai messo il sale, poi se la pasta è cotta, non tutto insieme alla fine.

4. L'Intelligenza Artificiale: Il "Tirocinante Geniale ma Distratto"

Qui entra in gioco la parte più moderna e creativa del paper. Hanno usato l'Intelligenza Artificiale (specificamente dei modelli linguistici come GPT) per scrivere le regole di controllo (le "asserzioni").

Immagina di avere un tirocinante geniale (l'AI) che conosce la teoria perfetta ma non ha mai visto un vero orologio in mano.

  • Senza supervisione: Il tirocinante scrive 15 regole per controllare l'orologio. Molte sono ridondanti (ripetono la stessa cosa), altre sono confuse. È come se ti desse 100 mappe, ma 90 portano in posti sbagliati.
  • Con supervisione (HITL - Human in the Loop): Un ingegnere esperto (l'umano) guarda il lavoro del tirocinante e dice: "Ehi, questa regola è inutile, e quest'altra è sbagliata perché non hai considerato che l'orologio può fermarsi".
  • Risultato: Dopo un po' di correzioni, il tirocinante AI produce solo 3 regole perfette che coprono tutto il lavoro.

5. I Risultati: Cosa hanno scoperto?

  • Confronto diretto: Controllare il chip direttamente contro il "gemello digitale" è molto più veloce e preciso che usare traduzioni.
  • L'AI funziona, ma... L'AI da sola fa confusione se non ha un "modello di riferimento" (il gemello perfetto) davanti agli occhi. Se deve controllare il chip da sola, senza sapere come dovrebbe funzionare, si perde.
  • Il mix vincente: Quando l'AI lavora con un modello di riferimento e viene guidata da un umano, diventa potentissima. Trova errori che gli umani potrebbero saltare e lo fa velocemente.

In Sintesi

Questo articolo ci dice che per costruire i chip del futuro (che devono essere perfetti al 100%), non dobbiamo più affidarci a traduzioni approssimative. Dobbiamo confrontare direttamente il progetto con la perfezione matematica. E, cosa ancora più bella, possiamo usare l'Intelligenza Artificiale come un assistente super-veloce, purché un esperto umano gli tenga la mano e gli dica: "Sì, questa è la strada giusta".

È come avere un navigatore satellitare (l'AI) che ti dice la strada, ma hai bisogno di un pilota esperto (l'ingegnere umano) per assicurarsi che il GPS non ti stia portando nel deserto. Insieme, arrivano a destinazione in modo sicuro e veloce.