FPGA Jtag enganche a la lógica del usuario

2

Después de algunas lecturas iniciales en jtag, parece ser un medio ingenioso para probar un diseño lógico FPGA de una manera consistente y sostenible.

Usemos altera max 10 como ejemplo. He leído esta MAX 10 JTAG Boundary-Scan Testing Guía del usuario . Mi lectura es, para poder acceder a la lógica del usuario, el probador jtag (lo más probable es que una computadora host) envíe las instrucciones USER0 o USER1.

Las preguntas son:

  • ¿Cómo implementas algo de lógica en el diseño de la lógica del usuario para capturar los comandos y los parámetros y devolver algunos resultados? ¿Ejemplos?

  • En el host, ¿cómo envía esos comandos, preferiblemente con una herramienta de código abierto o de bajo costo? Con algo de experiencia, sé que Olimex produce algunos buenos adaptadores jtag, y también el balaster USB es una herramienta popular. Openocd puede ser un candidato de software popular.

Será genial si alguien puede arrojar luces sobre cualquier parte de las preguntas.

    
pregunta minghua

2 respuestas

1

Las pruebas de exploración de límites (y exploración interna), ya sea utilizando JTAG o no, están destinadas a pruebas de producción. Esto es completamente diferente a usar JTAG o SWD para la depuración del software. A veces se usarán los mismos pines, pero esto no es un hecho.

Parece que las instrucciones Altera USER0, USER1 se utilizan para acceder a las cadenas de exploración internas (conectadas por el usuario). Esto le permite conectar (con un mux de modo de prueba en cada flop) todos sus flops de diseño juntos en (aquí dos) largas cadenas de escaneo. Tiene la capacidad de leer y cargar previamente toda la lógica en su diseño.

Las cadenas de escaneo internas como esta se pueden usar para verificar fallas de fabricación en el silicio real. Si utiliza la exploración para los pines externos, le ofrece una forma de probar la soldadura abierta / corta en la PCB.

Scan can puede utilizarse para depurar un diseño, pero es el último recurso. Si experimenta un bloqueo que ningún otro método de depuración puede arrojar alguna luz sobre la causa, es posible usar la exploración para extraer el estado del diseño justo después de su falla (antes es posible, pero eso necesitaría un disparador o una falla determinista). Este estado se puede usar para guiar su investigación sobre cuál es el estado de diseño que causa el fallo y ayuda a reproducir en la simulación.

Las herramientas como SignalTap ahora brindan un enfoque más accesible al usuario para la depuración de FPGA en tiempo real, son mucho más parecidas a tener un analizador lógico conectado a una selección predefinida de nodos internos. Recuerde que el escaneo es de 1 ciclo en -un enfoque de tiempo.

    
respondido por el Sean Houlihane
0

Después de algunas búsquedas y experimentación, se encontraron algunas muestras en línea:

  • Consulte el blog hablando con el de0 nano usando la interfaz virtual jtag . El autor muestra en detalle cómo puede diseñar la lógica en el FPGA como parte de la lógica del usuario.

  • Otro autor del blog urjtag y python a lightweight hal , también mencionado en el blog anterior, creó algunos scripts de python guardados en el servidor de Google Doc. Python se basa en el svn project urjtag . Sigue las instrucciones en el blog, compra y crea urjtag en una máquina Linux, luego descarga y ejecuta el código de Python compartido por el autor del blog. Podrás acceder a la lógica FPGA a través de la herramienta USB Blaster jtag. El autor guardó su código FPGA en github también. ¡Así que todo está abierto!

respondido por el minghua

Lea otras preguntas en las etiquetas