Simulating fixed point multiplica​tion using float ing poi

V

Vivek Menon

Guest
I am prototyping an algorithm using floating point and fixed point precision. I used the floating point core v 5.0 to generate a multiplier for single precision multiplication and fixed point multiplication (custom width 16 bits with 11 bits fraction). I am able to successfully simulate and synthesize the floating point multiplier, but the fixed point core just fails. I am using ISIM to simulate the fixed point core.

I verified my input and output values in Matlab using quantizer function to select the Q point (11 bits fraction).

e.g. I apply x01C9 (0.2232) and x06ED (0.8660) to my fixed point multiplier, and I see my output as x0000, whereas I am supposed to see x018B (0.1933).. I don't see the overflow or underflow signal going high.


Any suggestions??

Thanks in advance
 
Vivek Menon wrote:
I am prototyping an algorithm using floating point and fixed point precision. I used the floating point core v 5.0 to generate a multiplier for single precision multiplication and fixed point multiplication (custom width 16 bits with 11 bits fraction). I am able to successfully simulate and synthesize the floating point multiplier, but the fixed point core just fails. I am using ISIM to simulate the fixed point core.

I verified my input and output values in Matlab using quantizer function to select the Q point (11 bits fraction).

e.g. I apply x01C9 (0.2232) and x06ED (0.8660) to my fixed point multiplier, and I see my output as x0000, whereas I am supposed to see x018B (0.1933). I don't see the overflow or underflow signal going high.


Any suggestions??

Thanks in advance
It sounds like you may be looking at the wrong output bits of your
multiplier. If you add something to the left of the radix point do
you get a non-zero output?

-- Gabor
 
Vivek Menon <vivek.menon79@gmail.com> wrote:
I am prototyping an algorithm using floating point and fixed
point precision. I used the floating point core v 5.0 to
generate a multiplier for single precision multiplication and
fixed point multiplication (custom width 16 bits with 11 bits
fraction). I am able to successfully simulate and synthesize
the floating point multiplier, but the fixed point core just
fails. I am using ISIM to simulate the fixed point core.

I verified my input and output values in Matlab using quantizer
function to select the Q point (11 bits fraction).
A multiplier with 16 bit inputs should generate a 32 bit product.

For addition, you likely would be adding two numbers with
the same number of fractions bits, but for multiply they are
often different. You have to select the appropriate fraction
bits based on the fraction bits of the inputs.

e.g. I apply x01C9 (0.2232) and x06ED (0.8660) to my fixed point
multiplier, and I see my output as x0000, whereas I am
supposed to see x018B (0.1933). I don't see the overflow or
underflow signal going high.
-- glen
 

Welcome to EDABoard.com

Sponsor

Back
Top