Fallos en el ISE 14.7

Responder
Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Fallos en el ISE 14.7

Mensaje por jepalza » 25 Sep 2016, 15:39

Me está ocurriendo una cosa curiosa en el ISE 14.7. En algunos de los arcades que compilo/sintetizo que emplean memoria BRAM del tipo "RAMB16_S18_S18" me sale una advertencia de este tipo:

This design is using one or more 9K Block RAMs
(RAMB8BWER). 9K Block RAM initialization data, both user defined and
default, may be incorrect and should not be used. For more information,
please reference Xilinx Answer Record 39999

Que deja sintetizar y probar el core sin problemas.

Pero es curioso, que una de cada "x" veces, sintetiza mal, y lo que una compilación anterior funcionaba, ahora no lo hace, pero lo vuelves a sintetizar sin tocar nada y funciona bien. Como si fuera aleatoria.
Ni que decir tiene que he mirado ese error "39999" y la explicación que dan no me resuelve nada. Viene a decir que si tienes IS anterior al 13.2 tienes que activar una opción en los BIT para que inicialice correctamente las BRAM usadas, pero a partir de la 13.2 no es necesario, se autoinicializan y no debería dar error ni advertencia, cosa que no es cierta.

¿os ha pasado a alguno? ¿tiene solución? Es que podría ser el problema de algunos cores que no consigo ajustar.

(he probado a cambiar la "RAMB16_S18_S18" por una S9, pero es un cristo, por que hay que cambiar mogollón de cosas, debido a la diferencia de ancho de datos)

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Fallos en el ISE 14.7

Mensaje por Quest » 25 Sep 2016, 16:03

Es normal, pasa mucho. Lo del tipo de BRAM, no le hagas caso, aunque siga saliendo el warning, las 14.x en adelante, inicializan correctamente ese tipo de BRAM, y crean el nuevo formato de .bit preparado para ello (notarás que suelen ocupar un pelín más, cerca de 1K).

Lo malo es que a veces el bitgen se "cala" y no genera el .bit correctamente, dando un error e indicando que el número de bits no es correcto. Re-lanzando el proceso de generación del bit (no hace falta volver a sintetizar), ya lo crea bien.

Es un fallo que tiene el bitgen, no podemos hacer nada, sólo volver a darle y que lo genere bien.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Fallos en el ISE 14.7

Mensaje por jepalza » 25 Sep 2016, 19:10

"Clavao", justo lo que me ocurre. (eso del número de bits incorrecto). Pues nada, cuestión de paciencia. Gracias.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Fallos en el ISE 14.7

Mensaje por mcleod_ideafix » 26 Sep 2016, 14:11

Si miras el proyecto ISE para el core de Spectrum, verás que en las opciones de sintesis pongo una (en el apartado "Otros settings") para evitar que infiera memorias "problemáticas". De esa forma el warning (que no error, era error en versiones anteriores del ISE) ya no aparece.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Fallos en el ISE 14.7

Mensaje por jepalza » 26 Sep 2016, 17:38

Lo acabo de comprobar. Me apunto la configuración. Thanks.

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Fallos en el ISE 14.7

Mensaje por Quest » 26 Sep 2016, 17:47

Solo un apunte: Eso solo sirve si en tu diseño tienes suficiente con las 32 BRAMs RAMB16BWERs disponibles. Si necesitas más (en muchos ports es necesario), no hay que poner dicha opción porque si no, no se utilizarán las 64 RAMB8BWERs disponibles en la Spartan.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
jepalza
Mensajes: 613
Registrado: 02 Oct 2015, 18:52

Re: Fallos en el ISE 14.7

Mensaje por jepalza » 26 Sep 2016, 18:00

Bien, anotado.

Para otros que vengan a leer sobre el problema, este es el apartado que habla del parámetro que dice Mcleod_Ideafix:

XST Switch (Yes by default):
The XST switch: -infer_ramb8 setting (where setting can be Yes or No) is added in ISE Design Suite 13.2.
When used (set to No), it blocks the inference of 9K block RAM in XST.
By default, this is set to Yes, which is unchanged behavior from all previous software versions.
If set to No, XST does not infer the RAMB8 primitive, but any instantiated RAMB8s remain.
This switch can be added at the command line.
If you are running through the GUI, in the Advanced Process Properties, there is a box to enter "Other XST Command Line Options".

Responder