Can the Impulse C compiler take advantage of Xilinx DSP48 blocks?
Yes. The DSP48 blocks in the Xilinx Virtex-4 allow for the creation of a multitude of functions including multipliers, adders, counters, barrel shifters, comparators, accumulators, multiply-accumulates, complex multipliers and others. Current-generation synthesis tools can map multipliers, adders, multiply-adds and multiply-accumulates generated by Impulse C into the DSP48 slices. By observing certain rules when writing C code (in particular, paying attention to bit widths) it is possible to create inferred instances of DSP48 blocks. For even more control, Impulse C also allows external hardware functions written in HDL to be included in the C application. This allows lower-level control over generated hardware, including the explicit use of DSP48 blocks.