No soy un gran experto en verificación de hardware, quiero decir que sé cuál es el propósito de la verificación (básicamente verificar si el sistema es lo que se espera que haga) y he usado algunas herramientas para la verificación, generalmente diseño un equivalente en Software que usa lenguaje C/C++ y luego comparo de alguna manera el equivalente de VHDL/Verilog con esto.
Sin embargo, parece que la mayoría de estas herramientas no son gratuitas, me preguntaba si es posible usar alguna técnica de verificación muy simple desde cero. La mayoría de estas herramientas, hasta donde yo sé, usan lógica de primer orden después de analizar tanto el software como el código HDL. ¿Existe algún enfoque muy simple (aparte de la simulación exhaustiva) que podría implementar fácilmente por sí mismo para verificar la equivalencia?
Tal vez haya algún algoritmo muy simple que se pueda usar fácilmente, y no lo conozco.
Gracias
La verificación es un campo enorme. Al igual que en el software, hay muchos niveles de verificación, por ejemplo, cobertura de código, cobertura de ruta, etc. Todo depende de la aplicación. LED parpadeante: compruebe la frecuencia en simulación; el sistema de control que mantiene su turboventilador por debajo de su punto de fusión: es mejor que lo pruebe.
Podemos dividir la verificación en dos categorías principales: funcional y formal. Su cadena de herramientas generalmente viene con capacidades de verificación funcional, es decir, coloca algo en la entrada y verifica la salida. Digamos que está diseñando un sumador. Lo que puede hacer es crear un banco de pruebas, poner cada combinación posible en la entrada y comparar la salida. Esto es lo que necesitaba hacer recientemente para un sumador Kogge-Stone que estaba diseñando para un FPGA.
Si gasta algo de dinero, puede comprar herramientas que pueden hacer cobertura de código, cobertura de ruta, etc. De hecho, también puede hacerlo con algunas herramientas de código abierto. Si gasta mucho dinero, puede obtener una herramienta de verificación formal, que prueba que su diseño es equivalente a la especificación. Esto puede ser realmente importante en algunos campos.
Sugeriría comenzar a buscar en bancos de prueba, si no ha realizado una verificación antes. Esto le dará una buena introducción a la verificación funcional.
Si entiendo la pregunta correctamente, necesita convertir su modelo de software C/C++ en un banco de pruebas de verificación, usando System Verilog, C# o algo así. Podría ser incluso sencillo. Luego, debe conectar este modelo de banco de pruebas al hardware HDL en su entorno de diseño HDL. Para automatizarlo un poco y evitar la comparación visual de la forma de onda, su banco de pruebas puede/debe incluir una variedad de controles lógicos de sus vectores de E/S en puntos críticos de tiempo. Por lo general, este proceso requiere el 90 % del tiempo de diseño y ninguna herramienta puede hacer este trabajo por usted, ya sea simple o compleja.
Ale..chenski
usuario8469759