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

6.3 EDK - XST- Mapping error for MicroBlaze v3.00a with DOPB exception enabled when targeting Spartan-3 using XST


Keywords: XST, MAP, ERROR, Pack:679, Pack, MicroBlaze, MB

Urgency: Standard

General Description:
The ISE 6.3 mapper errors out for MicroBlaze v3.00a with DOPB exception enabled when targeting a Spartan-3 part. The error message is similar to the following:

"ERROR:Pack:679 - Unable to obey design constraints (MACRONAME=microblaze_0,
RLOC=X25Y7) which require the combination of the following symbols into a
single SLICE component:
MUXCY symbol "microblaze_0/microblaze_0/Decode_I/of_PipeRun_MuxCY_1" (Output
Signal = microblaze_0/microblaze_0/Decode_I/of_PipeRun_s_I)
LUT symbol "microblaze_0/microblaze_0/Decode_I/of_PipeRun_Select_LUT4"
(Output Signal = microblaze_0/microblaze_0/Decode_I/of_PipeRun_Select)
The carry mux DI signal
"microblaze_0/microblaze_0/Decode_I/of_PipeRun_without_dready" is unable to
be assigned to a function generator input pin and the BX pin is unavailable.
Please correct the design constraints accordingly.
Mapping completed.
See MAP report file "system_map.mrp" for details.
Problem encountered during the packing phase."


To solve the problem, provide the following synthesis constraint to the synthesis tool XST via an XCF file:

BEGIN MODEL dopb_interface
NET dready_din KEEP = TRUE;

The best way to integrate this patch with the EDK build flow is to create a custom "system.make" file. Please complete the following steps to work around the problem:

1. Copy the "system.make" file in your XPS project directory to "my_system.make". NOTE: Do not edit the "system.make" file without changing its name. It will be overwritten by the tools.

2. Open "my_system.make" in a text editor and search for the string:
'platgen $(PLATGEN_OPTIONS) -st xst $(MHSFILE)'.

3. Immediately under that line add the following commands (assuming the MicroBlaze instance is called 'microblaze_0'). Each line must be indented with a tab:

echo "BEGIN MODEL dopb_interface" > fix_xst.xcf
echo "NET dready_din KEEP = TRUE;" >> fix_xst.xcf
echo "END;" >> fix_xst.xcf
echo "-uc ../fix_xst.xcf" >> synthesis/microblaze_0_wrapper_xst.scr
bash -c "cd synthesis; xst -ifn microblaze_0_wrapper_xst.scr; cd .."
bash -c "cp -f implementation/microblaze_0_wrapper/microblaze_0_wrapper.ngc implementation"

4. If your project contains more than one MicroBlaze with DOPB exceptions enabled, you need to copy the last three lines for each instance name of the processor.

5. In XPS, open up the project options dialogue ('Options'->'Project Options').

6. In the Custom Makefile (Advanced Option) box, enter the path to your "my_system.make".

7. Clean out the hardware build ('Tools'->'Clean'->'Hardware').

8. Rerun the hardware implementation flow.
AR# 20059
Date Created 09/28/2004
Last Updated 04/11/2007
Status Archive
Type General Article