Garantir a precisão dos projetos eletrônicos é importante, pois erros de hardware são gerados permanentemente após a produção e podem comprometer a confiabilidade do software ou a segurança dos sistemas ciberfísicos. A verificação é fundamental para a engenharia de circuitos digitais, com projetos FPGA e IC/ASIC dedicando 40% e 60% do seu tempo, respectivamente, a este processo. Embora os métodos experimentais, como ensaios randomizados ou controlados, sejam fáceis de usar, eles são inerentemente imperfeitos e não podem garantir a ausência de erros críticos. A verificação formal, especialmente o teste de modelo, aborda essas limitações verificando estatisticamente se o projeto satisfaz suas especificações para todos os usos possíveis. No entanto, métodos como solucionadores BDD e SAT permanecem computacionalmente intensivos e lutam para dimensionar circuitos complexos. Os engenheiros muitas vezes dependem de testes de modelos restritos para reduzir as demandas computacionais, sacrificando a precisão global em horizontes de longo prazo.
A verificação formal evoluiu ao longo das décadas, com os conceitos temporais desempenhando um papel importante na descrição do comportamento do sistema. Baseadas na Lógica Temporal Linear (LTL), as Asserções SystemVerilog são amplamente utilizadas para definir estruturas de segurança e sobrevivência. As propriedades de segurança são verificadas com sucesso usando BDDs, enquanto os métodos baseados em SAT melhoram nos testes de modelos limitados, mas permanecem incompletos sem atingir limites superiores impraticáveis. Técnicas avançadas como IC3 e Craig Interpolation melhoram testes de segurança ilimitados, enquanto as pontuações constantes de Emerson-Lei e k-liveness estendem a validação para ativos ativos. Validar sistemas com aritmética complexa é sempre desafiador, muitas vezes exigindo abstrações de estados abstratos, variáveis dinâmicas ou funções de nível. Originalmente projetadas para análise de terminação de software, as atividades de benchmarking têm sido comumente realizadas para verificar o desempenho do hardware, incluindo métodos indiretos, pouco definidos e lexicográficos para abordar as complexidades dos sistemas modernos.
Pesquisadores da Universidade de Birmingham, Amazon Web Services e Queen Mary University of London desenvolveram um método de aprendizado de máquina para testar um modelo de hardware que combina redes neurais e raciocínio simbólico. Seu método usa redes neurais para representar certificados de prova de especificação LTL, treinados a partir de execuções de sistema geradas aleatoriamente. Este método garante a precisão jurídica por um período indefinido, utilizando uma solução de satisfação para verificar esses certificados. Os testes demonstram sua eficácia, superando os testadores de modelos acadêmicos e comerciais em velocidade e conclusão do trabalho em todos os problemas comuns de verificação de hardware, contribuindo para maior segurança e confiabilidade nos projetos de sistemas.
O teste do modelo LTL verifica se todas as sequências possíveis de ações no sistema (M) cumprem uma determinada fórmula LTL (Phi), que descreve as propriedades temporais desejadas. Um sistema (M) consiste em entradas e variáveis de estado, e seu comportamento é determinado por regras de transição. Para testar isso, (Phi) é convertido em um tipo de autômato chamado autômato Büchi (A_Phi). A verificação confirma que o sistema integrado (M) e o autômato (A_neg Phi) (representando a negação da fórmula) não possuem sequência infinita válida. As funções de nível neural ajudam a garantir a terminação e são verificadas usando solucionadores SMT.
Um teste piloto testou 194 funções de verificação baseadas em designs de hardware de 10 parâmetros de dificuldade variada. Foi desenvolvida uma ferramenta de teste de modelo neural, utilizando Spot para geração de autômatos, Verilator para geração de dados, PyTorch para treinamento e Bitwuzla para resolução de SMT. Esta ferramenta é comparada com os líderes do setor ABC, nuXmv e ferramentas desconhecidas X e Y. Concluiu 93% das tarefas, superando os concorrentes em termos de medição e tempo de execução, embora permaneçam desafios como mínimos locais e tempos de teste SMT estendidos. Embora geralmente rápido, ele enfrentava dificuldades com pequenas tarefas como UARTt devido ao overclock. As limitações do método incluem a dependência de entradas em nível de palavra e riscos de viés do conjunto de dados.
Concluindo, o estudo apresenta um método para testar um modelo cognitivo temporal utilizando redes neurais como evidência para verificação de hardware. As redes neurais são treinadas para inteligência artificial, utilizando sua capacidade de representar funções do nível de corte apropriado. O método combina aprendizado de máquina e raciocínio simbólico, validando certificados neurais e solucionadores de satisfação, verificando garantias formais. Usado em projetos SystemVerilog, ele supera as ferramentas de benchmarking de última geração. Sem a necessidade de um computador para resolver o SMT, este método funciona com redes de retransmissão simples. Isto marca o primeiro uso bem-sucedido de certificados neurais para lógica temporal, estabelecendo a base para novos avanços em testes de modelos.
Confira eu Papel. Todo o crédito deste estudo vai para os pesquisadores deste projeto. Além disso, não se esqueça de nos seguir Twitter e junte-se ao nosso Estação telefônica de novo LinkedIn Gracima. Não se esqueça de participar do nosso SubReddit de 60k + ML.
🚨 Tendências: LG AI Research Release EXAONE 3.5: Modelos de três níveis de IA bilíngue de código aberto oferecem seguimento de comando incomparável e insights profundos de conteúdo Liderança global em excelência em IA generativa….
Sana Hassan, estagiária de consultoria na Marktechpost e estudante de pós-graduação dupla no IIT Madras, é apaixonada pelo uso de tecnologia e IA para enfrentar desafios do mundo real. Com um profundo interesse em resolver problemas do mundo real, ele traz uma nova perspectiva para a intersecção entre IA e soluções da vida real.
🧵🧵 [Download] Avaliação do relatório do modelo de risco linguístico principal (ampliado)