Esta pregunta ha estado pegada en la parte posterior de mi cabeza por un tiempo y acabo de encontrarme con la respuesta en la guía de configuración de Virtex 6 y luego hice una referencia cruzada a la guía de configuración de Spartan 6. Consulte la sección de reconfiguración de IPROG en UG380 en la página 128. Esta página incluye la secuencia de palabras para escribir en la interfaz ICAP_SPARTAN6 para emular una afirmación PROGRAM_B desde la lógica del usuario. Está diseñado para reiniciar la configuración con una dirección base diferente si tiene varias imágenes FPGA almacenadas en el mismo chip flash. Reproduciré la secuencia aquí para la posteridad:
- enviar palabra de sincronización
El programa - GENERAL1,2 y GENERAL3,4 se registra con la nueva dirección de flujo de bits + código de operación de lectura flash y la dirección de flujo de bits "dorada" + código de operación de flash.
- enviar comando IPROG
Es posible omitir el paso 2 y simplemente enviar la palabra de sincronización y el comando IPROG para usar los valores predeterminados para las direcciones de inicio.
secuencia de bytes:
FFFF dummy word
AA99 sync word
5566 sync word
3261 write GENERAL1
XXXX start address [15:0]
3281 write GENERAL2
XXXX opcode and address [23:16]
32A1 write GENERAL3
XXXX start address [15:0]
32C1 write GENERAL4
XXXX opcode and address [23:16]
30A1 write CMD
000E IPROG
2000 NOP
Es posible que pueda salirse con la suya:
FFFF dummy word
AA99 sync word
5566 sync word
30A1 write CM
000E IPROG
2000 NOP