¿Se pueden reproducir todos los estímulos en el campo durante la simulación?

2

Siempre pensé que la simulación de arquitecturas de hardware (FPGA / ASIC) no puede cubrir todos los estímulos y casos de esquina posibles en condiciones reales, y que se necesita una verificación acelerada por hardware para cubrir casos de uso reales. p>

Sin embargo, un amigo me dijo que esta afirmación es incorrecta. Cada transacción se puede grabar y reproducir durante la simulación. El único problema es que a menudo llevaría días o meses completar la simulación (como probar 10s de un flujo de H264 enviado a una IP de decodificación).

Esto tiene sentido para mí, pero como los dos estamos trabajando en una unidad de investigación de laboratorio y no en un equipo de verificación de la industria, me pregunté: ¿es mi amigo correcto ?

En una nota al margen, es bastante increíble que este sitio de stackexchange no tenga la etiqueta verification ...

    
pregunta Aurélien Ribon

2 respuestas

3

Mi experiencia proviene del mundo del diseño de FPGA.

Según mi experiencia, puede probar funcionalmente todo en un diseño, pero como dice su amigo, la duración de la simulación se convierte en el factor limitante real. Cuando digo prueba funcional, me refiero a una prueba que asume la sincronización correcta del diseño y no está probando casos de variaciones en la sincronización (es decir, suponga que el lugar y la ruta de su diseño dirigidos a su dispositivo son correctos). Puede llevar horas / días simular unos segundos de un diseño de FPGA. Lo que en un mundo donde pueden suceder muchas cosas en paralelo a 80-400MHz, es una gran cantidad de operaciones para simular.

Sin embargo, cuanto más crítico sea que el diseño sea correcto la primera vez, más tiempo estará dispuesto a dedicar la prueba a todos los casos, especialmente a las esquinas. Como mencionó, las personas normalmente se enfocarán en los casos de esquina luego de que estén bastante seguros de que los "casos normales" están funcionando correctamente.

La co-simulación de hardware puede hacer un par de cosas. En primer lugar, puede darle a la comunidad que su diseño que funcionó en "simulación pura" también funciona en hardware. En segundo lugar, puede acelerar enormemente su verificación, asumiendo que tiene un modelo rápido para determinar qué salida exacta está esperando para una entrada determinada.

    
respondido por el Josh
0

Entre muchas otras técnicas, los grandes equipos de diseño para hardware crítico utilizan técnicas de verificación basadas en cobertura para verificar que

  1. cada bit de código que se ha escrito se prueba en algún caso de prueba u otro
  2. cada bit de especificación que requiere algún comportamiento tiene ese comportamiento probado

Esto se realiza mediante una combinación de estímulos cuidadosamente diseñados, estímulos aleatorios restringidos y herramientas de estímulos impulsados por la cobertura (que analizan los resultados de las pruebas de cobertura para ver qué se ha pasado por alto y tratar de producir estímulos para "apuntar hacia ellos")

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas