¿Cómo verificar si todas las señales utilizadas se han reiniciado en un proceso VHDL?

A veces me equivoco al cambiar el código VHDL para agregar una nueva funcionalidad, las nuevas señales agregadas al proceso VHDL no se restablecen cuando se afirma el estado de restablecimiento. Este error puede ser bastante inofensivo a veces, pero en otras ocasiones puede provocar fallas en el diseño de la simulación o incluso en el hardware.

¿Qué herramienta utilizo para garantizar que a todas las señales y variables utilizadas dentro de un proceso se les asigne un valor inicial en el proceso, tal vez cuando se afirma el restablecimiento o tal vez cada ciclo de reloj?

Respuestas (3)

Existen herramientas de verificación formal estándar de la industria, como QuestaSim Autocheck , que se pueden usar para una variedad de controles estáticos y dinámicos en varios aspectos del diseño RTL en las primeras etapas de desarrollo, sin la necesidad de un banco de pruebas de simulación.

Restablecer valores de registros es una de las muchas comprobaciones admitidas por la herramienta.

¿Ha utilizado esta herramienta en absoluto?
Sí. Fue la herramienta que utilizamos para verificar formalmente los diseños antes de proceder a la verificación en banco de pruebas. Allí, al facilitar la velocidad de verificación. Entonces, ¿la razón para votar negativamente?
Fue por error, lo voté, hice clic en el botón equivocado al parecer :|
Ja ?! Está bien ... Puedes revertirlo entonces
Lo intenté, dice "Usted votó por última vez en esta respuesta hace 23 horas. Su voto ahora está bloqueado a menos que se edite esta respuesta".
Vaya, no conocía esa característica. Está bien, sin problemas.
Si edita su respuesta por el simple hecho de agregar un carácter redundante en algún lugar, creo que debería ser suficiente
Entiendo ;) .....
Encontré la solución en ALINT-PRO. El linting de código puede encontrar este y muchos otros problemas en la forma en que se escribe el código.

¿Qué herramienta utilizo para garantizar que a todas las señales y variables utilizadas dentro de un proceso se les asigne un valor inicial en el proceso, tal vez cuando se afirma el restablecimiento o tal vez cada ciclo de reloj?

Igual que cualquier otra prueba: escribe un banco de pruebas que verifica el valor definido.

No, lo que quise decir es si hay una herramienta que pueda realizar comprobaciones estáticas en el código mismo leyéndolo.
¿Cómo es esa herramienta para saber qué buscar? Tienes que contarlo. Ese es un caso de prueba. Escribes un caso de prueba.
He usado herramientas de pelusa con Python, funcionan bastante bien. También hay herramientas de linting para otros lenguajes de programación superiores. No sé qué herramienta decente existe para VHDL. Una herramienta de pelusa puede detectar tales errores. Una herramienta de linting tiene un perfil que describe lo que se considera VHDL válido e inválido (pero sintácticamente correcto). Debería haber perfiles predeterminados en dicha herramienta que se puedan usar en la mayoría de los casos.
@ quantum231 Estoy totalmente de acuerdo, esto es algo que debería poder descifrar en todos los idiomas sensatos, pero no estoy convencido de que VHDL sea tan sensato :(

No tengo ninguna herramienta para sugerir, pero es posible verificarla mediante simulación.

Hago una inspección visual de las formas de onda de simulación en las pruebas unitarias. Antes de afirmar el reinicio, todos están indefinidos (fáciles de ver, en rojo). Después de afirmar el reinicio, se inicializan (véalos en verde). Cuando uno no se reinicia por error, se encuentra rápidamente desplazando todas las señales.

Eso funciona bien para mis diseños en los que la regla de codificación es restablecer todas las señales (aunque no siempre se recomienda).