UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 9244

6.1i CORE Generator - How do I increase/decrease heap space for COREGen after "Fatal," "Out of Memory," or "Initialization of the Dynamic Link Library...failed" errors are reported?

Description

Keywords: 2.1i, 3.1i, 4.1i, 5.1i

Urgency: Standard

General Description:
1. How do I increase the amount of heap space for CORE Generator after "Out of Memory" or "FATAL" errors are reported?

See Solution 1.

2. How do I decrease the amount of heap space for CORE Generator after the following error is reported?

"java.exe - DLL Initialization Failed
Initialization of the Dynamic Link Library C:\WINNT\System32\ddraw.dll failed. The process is terminating abnormally."

See Solution 2.

Solution

1

A "FATAL" error message can be caused by CORE Generator running out of memory while generating large cores (such as a DA FIR with 8 channels and 32-bit coefficients).

If the CORE Generator application startup script is modified to have access to more than the default 1024 MB of system memory (which equals the physical plus the virtual memory), the core generation has a better chance of succeeding.

The actual amount of memory available to the CORE Generator application might need to be to anywhere from 512 to 1024 MB for very large DA FIR Cores. Large Virtex-II Cores can take up to 4096 MB.

Here are some possible values that you can use:
-Xmx512m, -Xmx768m, -Xmx2048m, or -Xmx4096m

NOTE: The total of the physical memory plus the virtual memory must be greater than or equal to the command line memory setting for CORE Generator. Setting the "-mxm" option to a larger value also ties up this amount of memory for CORE Generator use during your CORE Generator session. Other applications will not be able to utilize this memory until after the CORE Generator application is terminated.

The following examples illustrate the process for changing the available memory setting in CORE Generator to 1024 MB:

PCs:
Modify "%XILINX%\bin\nt\coregen.bat", changing the "-Xmx384m" option in the last line of this batch file to "-Xmx1024m":

Line 89:
"%java_exec%" -Xmx1024m -Xms10m -DXILINX="%XILINX%" -DMYXILINX="%MYXILINX%" -cp "%CLASSPATH%" com.xilinx.encore.coregen.main.Coregen -c "%COREGEN%" %1 %2 %3 %4 %5 %6 %7 %8 %9

Line 89: Modified
"%java_exec%" -Xmx2048m -Xms10m -DXILINX="%XILINX%" -DMYXILINX="%MYXILINX%" -cp "%CLASSPATH%" com.xilinx.encore.coregen.main.Coregen -c "%COREGEN%" %1 %2 %3 %4 %5 %6 %7 %8 %9

Workstations:
Modify $XILINX\bin\<platform>\coregen, changing the -Xmx1024m option in the last line of this batch file to -Xmx2048m:

$JAVA/bin/jre -mx2048m -ss4M -DLDLIBPATH=$LD_LIBRARY_PATH -classpath $COREGEN/lib:$COREGEN/resources:$JAVA/lib/rt.jar:$JAVA/lib/i18n.jar:$SWING/swingall.jar com.xilinx.encore.coregen.main.Coregen -c $COREGEN $*

2

The following error indicates that Java was not able to allocate enough memory to generate the specified heap size:

"java.exe - DLL Initialization Failed
"Initialization of the Dynamic Link Library C:\WINNT\System32\ddraw.dll failed. The process is terminating abnormally."

The maximum heap size appears to be machine-dependent. If you are generating large cores, Xilinx recommends that you use Solution 1 to set the default heap size. If this is still too large, continue decreasing the -mx1024m value until you are able to launch CORE Generator. (This is usually possible at about 512m.)

3

For CORE Generator version 7.1i or later, see (Xilinx Answer 20708).
AR# 9244
Date Created 05/09/2000
Last Updated 03/19/2006
Status Archive
Type General Article