Garantizar la exactitud de los diseños electrónicos es fundamental, ya que las fallas de hardware son permanentes en la posproducción y pueden comprometer la confiabilidad del software o la seguridad de los sistemas ciberfísicos. La verificación es fundamental para la ingeniería de circuitos digitales, y los proyectos FPGA e IC/ASIC dedican el 40% y el 60% de su tiempo, respectivamente, a este proceso. Si bien los enfoques de prueba, como las pruebas aleatorias dirigidas o restringidas, son fáciles de implementar, son inherentemente no exhaustivos y no pueden garantizar la ausencia de errores críticos. La verificación formal, en particular la verificación de modelos, aborda estas limitaciones al confirmar matemáticamente si un diseño satisface sus especificaciones en todas las ejecuciones posibles. Sin embargo, métodos como BDD y solucionadores SAT siguen siendo computacionalmente intensivos y tienen dificultades para adaptarse a circuitos complejos. Los ingenieros a menudo dependen de la verificación de modelos acotados para reducir las demandas computacionales, lo que sacrifica la corrección global en horizontes temporales prolongados.
La verificación formal ha evolucionado a lo largo de décadas, y la lógica temporal desempeña un papel clave en la descripción de los comportamientos del sistema. Basadas en la lógica temporal lineal (LTL), las afirmaciones SystemVerilog se utilizan ampliamente para definir propiedades de seguridad y vida. Las propiedades de seguridad se verifican de manera eficiente mediante BDD, mientras que los métodos basados en SAT se escalan mejor para la verificación de modelos acotados, pero permanecen incompletos sin alcanzar umbrales imprácticamente altos. Técnicas avanzadas como IC3 y Craig Interpolation mejoran la verificación de seguridad ilimitada, mientras que los cálculos de punto fijo de Emerson-Lei y k-liveness extienden la verificación a las propiedades de vida. Verificar sistemas con aritmética compleja sigue siendo un desafío y a menudo requiere abstracciones de estado explícito, invariantes inductivas o funciones de clasificación. Desarrolladas originalmente para el análisis de terminación de software, las funciones de clasificación se han generalizado para la verificación de la vida del hardware, incorporando métodos lexicográficos, no lineales y definidos por partes para abordar las complejidades de los sistemas modernos.
Investigadores de la Universidad de Birmingham, Amazon Web Services y la Universidad Queen Mary de Londres han desarrollado un enfoque basado en el aprendizaje automático para la verificación de modelos de hardware que integra redes neuronales y razonamiento simbólico. Su método utiliza redes neuronales para representar certificados de prueba para especificaciones LTL, entrenados a partir de ejecuciones de sistemas generadas aleatoriamente. El enfoque garantiza la corrección formal en horizontes temporales ilimitados mediante el empleo de resolución de satisfacibilidad para validar estos certificados. Los experimentos demuestran su eficacia, superando a los verificadores de modelos académicos y comerciales en velocidad y finalización de tareas en problemas de verificación de hardware estándar, lo que contribuye a mejorar la seguridad y confiabilidad en los diseños de sistemas.
La verificación del modelo LTL verifica si todas las secuencias posibles de acciones en un sistema (M) cumplen con una fórmula LTL determinada (Phi), que describe las propiedades temporales deseadas. El sistema (M) incluye variables de entrada y de estado, y su comportamiento está determinado por reglas de transición. Para comprobarlo, (Phi) se convierte en un tipo de autómata llamado autómata Büchi (A_Phi). La verificación asegura que el sistema combinado (M) y el autómata (A_neg Phi) (que representa la negación de la fórmula) no tengan secuencias infinitas válidas. Las funciones de clasificación neuronal ayudan a demostrar la terminación y se validan mediante solucionadores SMT.
La evaluación experimental probó 194 tareas de verificación derivadas de 10 diseños de hardware parametrizados con complejidad variable. Se desarrolló un prototipo de herramienta de verificación de modelos neuronales, utilizando Spot para generar autómatas, Verilator para la generación de datos, PyTorch para entrenamiento y Bitwuzla para resolución SMT. La herramienta se comparó con los líderes de la industria ABC, nuXmv y las herramientas anónimas X e Y. Completó el 93% de las tareas, superando a los competidores en escalabilidad y tiempo de ejecución, aunque persisten desafíos como mínimos locales y tiempos extendidos de verificación SMT. Aunque generalmente es más rápido, tenía problemas con tareas triviales como UARTt debido a los gastos generales. Las limitaciones del método incluyen la dependencia de entradas a nivel de palabras y riesgos de sesgo en el conjunto de datos.
En conclusión, el estudio presenta un enfoque para la lógica temporal de verificación de modelos utilizando redes neuronales como certificados de prueba para la verificación de hardware. Las redes neuronales están entrenadas en ejecuciones de sistemas sintéticos, aprovechando su capacidad para representar funciones de clasificación para una terminación justa. El método combina aprendizaje automático y razonamiento simbólico mediante la validación de certificados neuronales con solucionadores de satisfacibilidad, garantizando garantías formales. Aplicado a los diseños de SystemVerilog, supera a las herramientas de última generación en escalabilidad. A pesar de la demanda computacional de la resolución SMT, el enfoque es efectivo con redes simples de retroalimentación. Esto marca el primer uso exitoso de certificados neuronales para la lógica temporal, lo que sienta las bases para futuros avances en la verificación de modelos.
Verificar el Papel. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo y únete a nuestro Canal de telegramas y LinkedIn Grarriba. No olvides unirte a nuestro SubReddit de más de 60.000 ml.
A Sana Hassan, pasante de consultoría en Marktechpost y estudiante de doble titulación en IIT Madras, le apasiona aplicar la tecnología y la inteligencia artificial para abordar los desafíos del mundo real. Con un gran interés en resolver problemas prácticos, aporta una nueva perspectiva a la intersección de la IA y las soluciones de la vida real.