Soy poco nuevo en Vitis y vivado. He usado herramientas ISE principalmente para Spartan 6 y es una curva de aprendizaje empinada para nuevas herramientas.
Usé iMPACT antes con ISE para programar flash usando JTAG. Ahora, con Vivado y vitis, las cosas se vuelven más confusas para mí.
¿Cuál es la diferencia real si programo flash usando vivado y vitis? Realmente no lo entiendo. Sé que vitis tiene un flujo de bits BSP y Vivado es solo un flujo de bits de hardware. Cuando uso la opción "programar flash" de vitis, puedo programar el flash con éxito pero, después del ciclo de encendido, FPGA no carga la configuración desde el flash y permanece inactivo. Estoy usando CMOD S7 XCS725 y la versión 2020.2.
Así que finalmente lo descubrí. Lo postulo aquí para cualquiera que esté luchando con esto. Vitis no es una gran herramienta para hacer programación flash.
Deberá apagar y encender la placa (simplemente desconecté y luego volví a conectar el S7 a través de USB), pero el programa de memoria flash Microblaze debería estar cargado y funcionando.
Siempre que quieras programar el flash para un FPGA "normal" (sin ARM SoC u otro soft-cpus) el procedimiento es sencillo y es indiferente si lo haces usando vitis o vivado directamente. Pero para ser precisos, tenga en cuenta que el BSP (Board Support Package) que menciona no es un flujo de bits de configuración.
Para programar el flash usando vivado puedes seguir el procedimiento definido en ug908 en el capítulo 6. En resumen tendrás que:
También sugeriría tomar nota de los comandos que se ejecutan en la ventana "Consola Tcl"; puede escribirlos en un script TCL para escribir todo el procedimiento (y tal vez poner todo en un script Make).
manny
JW