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# 19355

6.2i CORE Generator, Floorplanner - "The design contains macros with RPM grid coordinates" when using Coregen cores on a Virtex-II Pro

Description

Keyword: Coregen, 6.2, Floorplanner, constraint, UCF, RLOC, RPM, Grid

When I try to open my design using Floorplanner, I get the following message:
"The design contains macros with RPM grid coordinates which are not supported by Floorplanner"

However, all macros in my design are using the default slice grid coordinate system. Why is this happening?

Solution

Coregen outputs RLOCs using the RPM grid coordinate system (as oppose to the traditional SLICE grid RLOCs) whenever the cores are created for a Virtex-II Pro to more easily accomodate the placement of the PPC405 processor. By using the RPM grid system, the implementation tools can include the processor as part of the macro and it can be easily placed in the design.

However, the problem stems from the following:
1) If one portion of the design is using the RPM grid, it will then be applied to the entire design.

2) The implementation tools can only handle one grid system. If a single core is using the RPM grid, the entire design will be processed using the RPM grid. The implementation tools will then interpret all RLOC or LOC locations to within the RPM grid matrix.

3) Floorplanner does not support the RPM grid.


If Floorplanner must be used and the device is a Virtex-II Pro, the following workarounds can be used:

1) Do not generate the Coregen cores with the "Create RPMs" enabled. This will eliminate the RPM completely from the core. This may not be a feasible solution if timing and/or placement requirements are stringent.

2) Edit the Coregen batch/script file in the rtf/bin area and add the following text before the "-cp" flag on the line that launches Coregen:

-DRPMGRIDCONVERSION=false

e.g. on Solaris the script file would include the line:

"$JAVA_HOME/bin/java" -Xmx1048m -Xms10m -DRunner="${Runner}"
-DXILINX="${XILINX}" -DMYXILINX="${MYXILINX}"
-DLDLIBPATH="$LD_LIBRARY_PATH" -DRPMGRIDCONVERSION=false -cp
"$CLASSPATH" com.xilinx.encore.coregen.main.Coregen -c "$COREGEN" $*

This flag will force all generated EDIF with RPMs to use traditional RLOCs (irrespective of family).

3) Use the two perl scripts below to convert a netlist from using the RPM_GRID to using traditional RLOCs (i.e. SLICE grid) and back again:

grid2rpm.pl takes an EDIF file with RPM_GRID coordinates and converts it to traditional RLOCs.

rpm2grid.pl takes an EDIF file with traditional RLOCs and converts it to the RPM_GRID coordinate system.

They can be run as follows:

perl grid2rpm.pl infile.edn > outfile.edn
perl rpm2grid.pl infile.edn > outfile.edn

NOTE: These solutions will not work if any of the cores have hardware multipliers because the RPM_GRID system must be used with multipliers.

\\menelaus\fatenh\solutions\19355\grid2rpm.pl
\\menelaus\fatenh\solutions\19355\rpm2grid.pl
AR# 19355
Date Created 04/22/2004
Last Updated 01/24/2006
Status Archive
Type General Article