Tengo una placa espartana 6 que diseñé y tengo algunos problemas de configuración. Estoy usando SPI flash para programar el fpga (por ejemplo, yo uso jtag para escribir el flash y el flash escribe el fpga). El esquema que utilicé para la configuración se puede encontrar en la página 42 de UG380 de xilinx. enlace
La mayoría de las veces puedo programar el dispositivo sin problemas usando la interfaz jtag (programando directamente el fpga) o el flash spi (programando indirectamente el fpga): todo sale como se espera. Sin embargo, hay instancias en las que parece que el fpga no se configura correctamente a pesar del hecho de que el pin realizado es alto (tengo un indicador LED en el pin y he monitoreado con un alcance). Esto se manifiesta de diferentes maneras. Entre otras cosas esta placa maneja un dac VGA. Escribí un banco de pruebas para dirigir barras de color a un monitor. El 75% de las veces, si reinicio la placa (presionando un botón que hace que program_b low), las barras de color se encienden como se esperaba. El 25% del tiempo no saco nada del vga dac. Parece que algunos de los pines que impulsan el dac no se activan (el 75% de las veces, todo funciona correctamente si lo hacen). Además del dac, tengo un led de prueba que conduzco con el msb de un contador, que simplemente divide el reloj del sistema de 100 MHz para que parpadee ~ dos veces por segundo. Ese pin parece aparecer sin problemas cada vez.
Teniendo en cuenta estas observaciones, me pregunto si es posible que a veces el fpga no esté configurado correctamente, o quizás esté parcialmente configurado (por ejemplo, el pin que conduce el led aparece sin problemas, los pines que conducen el dac no lo hacen) . Las guías del usuario de xilinx indican que el enrutamiento de la configuración es bastante sensible, en particular, el reloj de configuración debe terminarse correctamente. Me pregunto si es posible que exista un problema de diseño, lo que hace que fpga a veces dañe la configuración. No estoy muy familiarizado con la forma en que realmente funciona la configuración (especialmente en lo que respecta a la verificación); siempre ha "funcionado" en mis tableros anteriores, pero me parece extraño que el pin hecho esté alto cada vez sin ningún problema. , pero sigo viendo este comportamiento.