Breaking News
<<   <   Page 2 / 3   >   >>
User Rank
Author
How FPGA do math
12/8/2013 7:22:29 AM
Hi Tom

good blog, I wrote an article on this for Xcell a few years ago hope you do not mind me linking to it here

http://www.eetimes.com/document.asp?doc_id=1279807

User Rank
Author
Re: Fractional arithmetic
12/7/2013 7:50:19 PM
NO RATINGS
I broke out Excel and did some quick fractions.

For a 12-bit number: 1/10 = 409.6/4096 and 410 = 19AH
16 bits: 1/10 = [6,553.6] / [65,536]  and 6,554 = 199AH
24 bits: 1/10 = [1,677,721.6] / [16,777,216] and 1,677,722 = 19 999AH

Yes, I have a habit of putting commas in decimal numbers and spaces in hex numbers. I find it makes them easier to distinguish.

User Rank
Author
12/7/2013 5:49:11 PM
NO RATINGS
Brian,

Interesting stuff.  To be honest, though, I'm a complete n00b, and am teaching myself Verilog at this point.

User Rank
Author
Re: Fortran is lying to you
12/7/2013 5:48:22 PM
NO RATINGS
@AZskibum:

Fractional fixed point (often referred to as "Q" format) is efficient -- you choose exactly the precision you need, no less and no more -- and the bookkeeping exercise of keeping track of the radix point is not a big deal.

This is actually what I used in my final implementation - We'll get to that in a few weeks, I suppose....  (Max willing)

User Rank
Author
Re: Fractional arithmetic
12/7/2013 5:45:42 PM
NO RATINGS

I figured as much, but just hadn't actually sat down and worked it out.  Without knowing for a fact, I didn't want to spout complete nonsense.

...

I spout enough nonsense as it is...

User Rank
Author
Re: Goldschmidt?
12/7/2013 5:43:27 PM
NO RATINGS
These are clever tricks, but why are you stuck on dealing with base 10, when ultimately you're implementing all the operations with shifts, adds & subtracts in base 2?

I didn't intend to imply that I was stuck with base 10.  Base 10 is just natural for us humans, and there are plenty of applications that use it a lot, especially when the end result is decimal math.  In this specific application, I am sending the computation engine decimal numbers, and expecting them in return.  It was worth my while to run down the rabbit hole to see if there was an immediately easy way to get it done this way.

User Rank
Author
Re: Fortran is lying to you
12/7/2013 4:25:49 PM
NO RATINGS
Not only do floating point numbers not obey associativity, they also lack precision. Sure, if 24 bits of precision doesn't meet your needs, you can go to double precision, but both formats are wasteful when your doing arithmetic in hardware.

Fractional fixed point (often referred to as "Q" format) is efficient -- you choose exactly the precision you need, no less and no more -- and the bookkeeping exercise of keeping track of the radix point is not a big deal.

User Rank
Author
Fortran is lying to you
12/7/2013 2:49:25 PM
NO RATINGS
Floating-point numbers are not real numbers.  Real numbers obey the associative law of addition.  Floating-point numbers do not.  Try adding 1 to an accumulator 10^9 times with six-digit floating point.  Once the accumulator has reached 10^6, adding more ones doesn't change the accumulator, so the sum of 10^9 ones is 10^6 instead of 10^9.  If you add the 1's in groups of 10, and then add those sums in groups of 10, and so on, you'll get the correct value.  However, since the result depends on the order of addition, the floating-point numbers violate the associative law.  Don't expect floating-point to behave like real numbers without considering these effects.

Non-negative integers, OTOH, do behave mathemically like modulo 2^n numbers so you do get the correct result modulo 2^n.

I agree with the above poster regarding using a decimal radix.  Why not use base 2 like IEEE floating point or base 16 like IBM/360?

User Rank
Author
Fractional arithmetic
12/7/2013 1:13:51 PM
The way I look at this is as a modified form of Q15 arithmetic.  For starters, I can represent a fractional number as a 16 bit fixed point signed integer by the following relationship:

-32768 <--> -.5
32768 <-->  .5

Thus .5 is 0x 7FFF (almost).  To get .1, I divide by 5 and .1 is 0x199A.  This is where the 0x199A factor comes from.   When I multiply 2 Q15 numbers, I get a 32 bit result a 32-bit Q31 result.  This means .25*.1 is as follows:

.25 => 0x4000
.1   => 0x199A

0x4000 * 0x199A => 0x06668000
0x666800 >> 16 is 0x0666 => which corresponds to .025

Hope this helps

User Rank
Author
Re: Goldschmidt?
12/7/2013 11:52:18 AM
NO RATINGS
These are clever tricks, but why are you stuck on dealing with base 10, when ultimately you're implementing all the operations with shifts, adds & subtracts in base 2?

<<   <   Page 2 / 3   >   >>

In conjunction with unveiling of EE Times’ Silicon 60 list, journalist & Silicon 60 researcher Peter Clarke hosts a conversation on startups in the electronics industry. One of Silicon Valley's great contributions to the world has been the demonstration of how the application of entrepreneurship and venture capital to electronics and semiconductor hardware can create wealth with developments in semiconductors, displays, design automation, MEMS and across the breadth of hardware developments. But in recent years concerns have been raised that traditional venture capital has turned its back on hardware-related startups in favor of software and Internet applications and services. Panelists from incubators join Peter Clarke in debate.
October 26, 1pm EDT Monday

7/30/2015
8:37:11 PM
Flash Poll

#### Datasheets.com Parts Search

##### 185 million searchable parts (please enter a part number or hit search to begin)
Special Video Section
Chwan-Jye Foo (C.J Foo), product marketing manager for ...
4:43
The LT®3752/LT3752-1 are current mode PWM controllers ...
5:11
LED lighting is an important feature in today’s and future ...
5:27
Active balancing of series connected battery stacks exists ...
9:29
After a four-year absence, Infineon returns to Mobile World ...
6:23
A laptop’s 65-watt adapter can be made 6 times smaller and ...
2:01
An industry network should have device and data security at ...
0:50
The LTC2975 is a four-channel PMBus Power System Manager ...
5:06
In this video, a new high speed CMOS output comparator ...
6:11
The LT8640 is a 42V, 5A synchronous step-down regulator ...
5:52
The LTC2000 high-speed DAC has low noise and excellent ...
5:14
How do you protect the load and ensure output continues to ...
6:54
General-purpose DACs have applications in instrumentation, ...
7:34
Linear Technology demonstrates its latest measurement ...
10:29
Demos from Maxim Integrated at Electronica 2014 show ...
4:17
Bosch CEO Stefan Finkbeiner shows off latest combo and ...
5:59
STMicroelectronics demoed this simple gesture control ...
2:15
Keysight shows you what signals lurk in real-time at 510MHz ...
4:17
TE Connectivity's clear-plastic, full-size model car shows ...
3:42
Why culture makes Linear Tech a winner.
6:08