Soy nuevo en este sitio, así que discúlpeme si mi pregunta no es normal o un poco tonta. Sin embargo, estoy teniendo una situación extraña en la que Vivado 2015.4 parece estar optimizando mi código y eliminando partes del mismo que considera que no es útil.
Intentando mantener las cosas simples, estoy leyendo un puerto SPI en un Artix-7 FPGA y rellenando 4 FIFOs uno tras otro, es decir, cuando se llena uno, leo una ubicación de memoria del primer FIFO y lo escribo en el segundo FIFO , y así. Creé un indicador 'data_available' que se eleva cuando los datos están en FIFO.
Lo extraño es que, mientras se prueba el FPGA, se descarga el flujo de bits para verificar que todas las habilitaciones de escritura y los indicadores completos funcionan correctamente; cuando se emite el indicador data_available, entonces el sistema funciona bien, cuando no se genera el indicador data_available, entonces no aparece nada, como si se eliminara todo el código debido a que el indicador no se estableció como salida.
¿Alguien puede identificar por qué sucede esto y cómo resolverlo? Si esta información no estuviera disponible, por favor, disculpe, ya que como dije no conozco la norma de este sitio. El código es un poco largo para publicar.
Gracias :)