hi,
sieht eigentlich und grundsätzlich gut aus: Bit-Breiten passen.
Was sagt den der Synthese-Report, darin gibt es oft "ADVICEs", wie z.b.
(Zwischen-)Register für den Pre-Adder nutzen.
Mal das Template zum DSP angeschaut (aus dem User Guide):
ISE → Edit → Language Templates → VHDL || Verilog → Device
Primitive Instantiation → FPGA → Spartan-6 → Arithmetic
Functions → Multi-Functional, Cascadable, 48-bit Output,
Arithmetic Block (DSP48A1)
oder mal im XST-Guide unter Coding-Guideline für DSP schauen.