10-11-2012 04:09 PM
I am implementing a Microblaze embedded design on a Vertex-5 device with ISE 14.1. I created a blackbox with Synplify and used it as part of a Microblaze custom peripheral. When I try to implement the design, I get the following error:
ERROR:Pack:2310 - Too many comps of type "DSP48E" found to fit this device.
ERROR:Map:237 - The design is too large to fit the device. Please check the
Design Summary section to see which resource requirement for your design
exceeds the resources available in the device. Note that the number of slices
reported may not be reflected accurately as their packing might not have been
The summary report shows following:
Number of DSP48Es: 67 out of 64 104% (OVERMAPPED)
The Synplify generated netlist used 64 DSP48E resources. I guess the other three are generated by ISE? Is there a way for me to stop the ISE from generating DSP48E, instead to use LUTs, so I can work around this problem?
Thanks very much.
10-11-2012 09:59 PM
The synthesis tool decides whether a DSP48E block will be used or if the required logic is built out of LUTs. The place-and-route takes what the synthesis tool gives it and attempts to fit it.
My suspicion is that some other entity also infers (or instantiates) the DSP block. Perhaps it's in the MicroBlaze itself? It's been awhile since I did a MicroBlaze design but I think that it will use a DSP block for the obvious things like when you tell it to include a multiplier.
10-12-2012 02:59 AM
You can force the tool to implement the logic on to LUT's and not to use any DSP blocks by using the following switches
The DSP Utilization Ratio (DSP_UTILIZATION_RATIO) constraint restricts the number of DSP blocks that XST uses to implement inferred functions. You can set this in synthesis properties.
10-12-2012 03:01 AM