Vivado Artix-7 Ignorando mi código

0

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 :)

    
pregunta K.Galea

1 respuesta

1

Lo que sucede es perfectamente normal.

Cuando escribes en HDL estás ... Describiendo hardware, ya sea su comportamiento o su implementación.

Si no establece el indicador como salida, ¿podría decir la diferencia entre dos fpgas, uno con todos los registros de desplazamiento y el otro sin ellos? No .

Y tienes tanta suerte de tener un sintetizador lo suficientemente inteligente como para optimizar tu código inútil (ya que no produce ningún efecto visible desde el exterior).

Creo que puedes obligar a que se incluya el código, pero eso sería inútil ya que no tendrías ninguna manera de probarlo. O comienzas a simular, que es una cosa muy buena \ $ ^ \ text {TM} \ $, o mantienes la marca como salida y vives con ella.

    
respondido por el Vladimir Cravero

Lea otras preguntas en las etiquetas