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

Este artigo apresenta uma metodologia escalável para verificação formal de aritmética de ponto flutuante em nível RTL, que utiliza uma estratégia de dividir e conquistar com refinamento guiado por contraexemplos e geração automatizada de propriedades por IA para superar as limitações dos modelos de alto nível e alcançar maior eficiência de cobertura.

Hansa Mohanty, Vaisakh Naduvodi Viswambharan, Deepak Narayan Gadde

Publicado 2026-03-05
📖 4 min de leitura☕ Leitura rápida

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

Imagine que você está construindo uma ponte extremamente complexa e precisa. Se um único parafuso estiver torto ou se o cálculo de peso estiver errado, a ponte pode desmoronar. No mundo dos computadores, essa "ponte" é o circuito que faz contas com números decimais (como 3.14 ou 0.0001), chamado de Unidade de Ponto Flutuante (FPU).

Este artigo apresenta uma nova maneira de garantir que essa "ponte" esteja perfeita antes de ser usada, usando uma combinação de lógica matemática rigorosa e inteligência artificial.

Aqui está a explicação passo a passo, usando analogias do dia a dia:

1. O Problema: Traduzir para o Idioma Errado

Antes, para verificar se um chip de computador estava funcionando bem, os engenheiros faziam algo como:

  • Pegavam o projeto final (escrito em uma linguagem de hardware complexa chamada RTL).
  • Tentavam traduzir esse projeto para uma linguagem de software (C++), como se tentassem traduzir um poema de português para inglês e depois para japonês.
  • Comparavam o resultado.

O problema: Nessa tradução, coisas importantes se perdem (como se você traduzisse "amor" e o resultado fosse apenas "sentimento forte"). Além disso, a tradução demorava muito e podia conter erros de interpretação.

2. A Solução: O "Espelho Perfeito" (Verificação RTL-a-RTL)

Os autores propõem uma abordagem mais direta: não traduzir nada.

  • Imagine que você tem duas cópias idênticas de um desenho de arquitetura.
  • Uma cópia é o Projeto Dourado (a referência perfeita, feita manualmente para garantir que está certo).
  • A outra é o Projeto Real (o que os engenheiros estão construindo de verdade).
  • Em vez de traduzir, eles colocam os dois projetos lado a lado, bloco por bloco, e usam um "robô matemático" (ferramenta de verificação formal) para garantir que, para cada entrada, a saída seja exatamente a mesma nas duas cópias.

3. A Estratégia: Quebrar o Elefante em Fatias

Verificar todo o chip de uma vez é como tentar comer um elefante inteiro de uma só vez: impossível e confuso.

  • Divisão em Estágios: Eles dividiram a conta matemática em etapas menores (como alinhar os números, somar e arredondar).
  • Teoremas e "Provas de Conceito": Eles criaram regras pequenas (lemas) para cada etapa. Se a etapa 1 estiver certa e a etapa 2 estiver certa, então o resultado final está certo.
  • O "Detetive de Erros": Se algo não bate, a ferramenta gera um CEX (um contra-exemplo). É como se um detetive dissesse: "Ei, quando você colocou o número 5 e 3, o resultado deu 9 em vez de 8. Olhe aqui exatamente onde o erro aconteceu." Os engenheiros consertam o erro e testam de novo.

4. O Toque Moderno: A Inteligência Artificial como Estagiário Criativo

Aqui entra a parte mais inovadora: usar Inteligência Artificial (IA) para ajudar a escrever as regras de verificação.

  • O Estagiário (IA): Eles pediram para IAs (como GPT-5 e Llama) lerem o projeto e escreverem as regras de verificação (os "asserts").
  • O Chefe (Humano): A IA é inteligente, mas às vezes alucina ou escreve regras redundantes (repetitivas). Por isso, um humano (o "Human-in-the-Loop") revisa o trabalho da IA.
  • O Resultado: A IA gera um rascunho rápido, e o humano refina. Juntos, eles criam um conjunto de regras muito eficiente.

5. O Teste de Estresse: "Injeção de Falhas"

Para ter certeza de que o sistema de verificação funciona, eles fizeram algo maluco: quebraram o projeto de propósito.

  • Eles introduziram erros intencionais no código (como mudar um sinal de mais para menos ou errar um arredondamento).
  • O sistema de verificação conseguiu detectar todos esses erros, provando que a "ponte" de segurança é forte o suficiente para pegar qualquer falha.

6. Os Resultados: O Que Descobriram?

  • Sem IA: Fazer tudo manualmente é preciso, mas demorado.
  • IA sozinha: A IA gera muitas regras, mas muitas são repetidas ou não cobrem tudo.
  • IA + Humano (O Pulo do Gato): Quando a IA gera as regras e o humano as ajusta, o sistema fica rápido, preciso e cobre quase 100% do que precisa.
  • Comparação: Verificar o projeto contra o "Projeto Dourado" (RTL-a-RTL) foi muito mais eficiente do que tentar verificar o projeto sozinho sem uma referência perfeita.

Resumo Final

Este paper diz: "Pare de traduzir projetos de hardware para software e perder tempo. Use uma ferramenta matemática para comparar o projeto real com um modelo perfeito, peça para a IA ajudar a escrever as regras de teste, mas deixe um humano supervisionar. Assim, você encontra erros complexos mais rápido e com mais confiança."

É como ter um engenheiro sênior (o modelo dourado), um estagiário super-rápido (a IA) e um inspetor de qualidade (o humano) trabalhando juntos para garantir que a ponte nunca caia.