cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
4,316 Views
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
Highlighted
Observer
Observer
4,292 Views
Registered: ‎08-04-2016

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

Thanks
0 Kudos