AR# 40378: Design Assistant for XST Resolving XST Out of Memory Errors
Design Assistant for XST Resolving XST Out of Memory Errors
Refer to this Answer Record for help resolving XST out of memory errors.
Note: This Answer Record is a part of the Xilinx Solution Center for XST (Xilinx Answer 38927). The Xilinx Solution Center for XST is available to address all questions related to XST. Whether you are starting a new design or troubleshooting a problem, use the Solution Center for XST to guide you to the right information.
XST will report when it has run out of memory with the following error:
This error is not specific to XST and will report how much memory is being utilized. The first thing to check is if you are meeting our memory recommendations listed here: memory recommendations
The other possible problem is XST could have a memory leak caused by some of the constructs in the code. The list below provides a list of possible reasons why XST may run out of memory:
Large nested if-else statements
XST HDL Options (Refer to image below for the HDL Options)
Memory leaks may be difficult to pinpoint because it generally takes a lot of time for XST to issue the error. One way to speed up the process is to eliminate unrelated modules. Try either blackboxing modules or compiling lower level modules as top levels. This will reduce the amount of time for the error to show up. Once you have narrowed it down to either one or a few modules, then it is time to take ports out of the design. This of course, is strictly for debugging purposes.
One recommendation is to remove top level ports. Removing top level output ports will inherently have XST trim out portions of the design. After removing ports from the module, try commenting out sections of code in the design. Once you comment out enough code and narrow this down to several lines of code,try recoding parts of the remaining parts with constants rather than signals. This will help narrow down the problem further so that this can be narrowed down to a certain line of code.
Once this is narrowed down to a line of code,try changing the code while maintaining functionality. Sometimes breaking or combining signals can make enough difference to have the design avoid the memory failure.
Xilinx is committed to resolving out of memory errors, so it is appreciated to open a Webcase so that development will fix this in a future release. Before filing a Webcase, make sure to have a test case available to send to Xilinx Technical Support.