hy
i am working in a image processing based project using FPGA. i want to call my features into addition block which are decimals in the range of 0.1 to 0.9. Can anyone tell me some techniques to convert these numbers into fixed point binary?
can anyone explain about the roundoff to the nearest power of 2 concept? can i use this for converting my decimals into rounded integer and then into binary
Nearest power of two is finding the 2^N that is nearest to your number.
e.g.
Code:
2 => 2^1 (2)
5 => 2^2 (4), or 2^3 (8, for round up)
13 => 2^4 (16)
As you can see this won't help at all for converting between decimals and binary.
BTW in hardware all decimal numbers are stored as binary values, there are no 10 state FFs. So if you look at the following code:
Code:
wire [3:0] a;
assign a = 10;
// 10 in binary is 1010
// a[0] = 1'b0
// a[1] = 1'b1
// a[2] = 1'b0
// a[3] = 1'b1
For your original question the easiest thing to do is scale all your numbers by *10. Using any kind of 2^N scaling will never give you an exact 0.9 value. What you need to do is determine your required integer and fractional bit widths to obtain the accuracy you desire.