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!

Showing results for 
Search instead for 
Did you mean: 
Observer ayhamzedan
Registered: ‎08-04-2016

A complex data multiplicator that is using FFs and LUTs. How can I force a DSP?

Hi, I am implementing a complex data multiplier that does 3 multiplications instead of 4. The data_cmp is a complex <ap_fixed(12,12)>. 

The problem I am running into is that it HLS is implementing it using FF and LUTs only, and not DSP48s. How can I force it to use DSPs in my design? 

Note that I use a Pipeline directory with an interval of 4, and a clock design of 5ns. The number of complex multiplications done is 97 multiplications per function call.

I appreciate your help and time.


This is the function I implemented.


data_cmp multiplicator_function (data_cmp input_a, data_cmp input_b) {

data_double  product1, product2, product3;

product1 = input_a.real() * input_b.real();

product2 = input_a.imag() * input_b.imag();

product3 = (input_a.real() + input_a.imag()) * (input_b.real() + input_b.imag()) ;


return data_cmp(product1 - product2 , product3 - product2 - product1 );

0 Kudos
1 Reply
Observer ayhamzedan
Registered: ‎08-04-2016

Re: A complex data multiplicator that is using FFs and LUTs. How can I force a DSP?

If someone could also explain to me why this works faster than an implementation that uses DSPs, it would be great as well.

0 Kudos