DSPRelated.com
Forums

32 bit Fixed-Point Multiplication in Blackfin(BF535)

Started by bsdap November 26, 2005
Hi All,
 
I have implemented the 32 bit fixed point multiplication as described in EE-186 application note by Analog Devices. I have briefly described it here...
 
op1(32)= op1H op1L (op1H and op1L each are 16 bit)
op2(32)= op2H op2L (op2H and op2L each are 16 bit)
  -------------
Ans =     32------->op1L*op2L  -- (1) (right shift 32 bits)
         16--->op1H*op2L   -- (2) (right shift 16 bits)
         16--->op1L*op2H   -- (3) (right shift 16 bits)
     0->op1H*op2H   -- (4) (no shift)

As the answer is to be restricted in 32 bit the first multiplication is ignored. And the addition of (2),(3) & (4) give the final ans.
 
Now the problem is it takes too many cycles to carry out the multiplication (even more than the floating point multiplication).
 
I have checked this in Visual DSP++ 4.0 software (simulated for BF535).
Can anyone please tell me why this would happen?? Also, is there any optimised way to carry out multiplication and other mathematical operations for the DSP processor?? (I do not have much idea of the assembly language of the DSP so I have to restrict my self to program in C only).
 
Any help will be highly appreciated.
 
Thanks a lot,
B.S.D.
 
 


Yahoo! DSL Something to write home about. Just $16.99/mo. or less