Vivado 2014.x and 2015.x seems to hang/have a long runtime during the Elaboration stage.
A number of existing designs that used to work under ISE no longer work under Vivado.
The problem seems to be related to RAM initialization.
Can Vivado support memory initialization like ISE used to?
The RAM is defined and calls a function which uses a case statement to determine the initialization vector to initialize the RAM with:
This style of initialization is not supported in Vivado.
It is recommended to initialize from an external data file to initialize the RAM.