My design fails during routing with the following message.
When I examine the signals mentioned in FPGA Editor, I can see that the signals are all driven by block RAM or Mult components.
What is an OMUX, and why are the signals unroutable?
This message is a general purpose message reporting unroutable connections due to local congestion, where there are not enough routing resources available to complete all of the connections.
This Answer Record applies to the specific case where BRAM and Mults over utilize the available output (OMUX) switchbox paths.
This Answer is a good match for your case only if the message refers to OMUX congestion and the signal names listed correspond to BRAM and MULT outputs.
The problem is that a BRAM and MULT component pair were placed together in the same CLB tile such that there were more output signals used than available output switchbox paths.
This is more likely to occur when the design contains wide dual port RAM output busses.
The placement algorithm for BRAM and MULT components is currently unable to check for this condition by counting the output paths used by the BRAM/MULT pair.
A possible method by which to work around this issue is to set an environment variable that prevents all BRAM and MULT components from being placed together in the same CLB.
Linux and Solaris
setenv XIL_PAR_KEEP_BRAM_MULT_APART 1
For general information about setting ISE environment variables, see (Xilinx Answer 11630).
The placement restrictions introduced by the environment variable might be too strict for the placer to find a successful placement solution.
In that case, the variable should be unset and the BRAM/MULT placement should be manually constrained with the use of LOC, PROHIBIT and/or area group range constraints:
Keep in mind the possibility that the design might have no legal placement if there are too many wide BRAM and MULT components.
A CR is under investigation to handle this situation automatically.