¿Se compila en un simulador? A menudo recibe un mensaje de error más útil y siempre debe simular antes de sintetizar. EDITAR: Sus comentarios indican que tiene y está bien.
XST no siempre es una buena representación de la corrección del código, es VHDL a veces es un poco fuera de especificaciones en la interpretación.
Habría pensado que querías algo como esto (con un montón de espacio en blanco adicional para mayor claridad de respuesta, normalmente no lo escribiría así en el código fuente). Nunca se sabe, Synplify podría estar más contento con esta versión:
rgb(7 downto 0) <=
color_lut(
result_reg(
to_integer(
unsigned(
x(2 downto 0)
) --close "unsigned"
) -- extra bracket here - you now have a signed integer you can subtract '1' from
-1
) -- close result_reg index
); -- close colour_lut index
De lo contrario, proporcione más detalles sobre los tipos de datos involucrados.