Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Cascaded floating-point operations...reduction possible?

Status
Not open for further replies.

movingstar

Newbie level 2
Joined
Aug 19, 2013
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
22
Floating point equation in 1 cycle

y1= 1.5f*y0 - x*y0*y0*y0

...Note that all quantities are in single precision floating point. Is it possible to carry this out in 1 cycle? I can't even write this equation in behavioral form for synthesizer to optimize because it has to be broken down and fed into FP-multipliers. I have got both the y0 and x available in 1 clock cycle ready to be plugged into this equation ...Now I'm stuck on reducing this equation in least cycles...right now I have got cascaded series fp-multipliers feeding into final fp-subtractor...Each multiplication consumes one clock cycle.

What in your opinion should be the best way to map this equation in hardware? Is there an alternative form of this equation that would be more suitable for implementation?

Regards.
 
Last edited:

In floating point - no way, unless that 1 cycle is with a clock of about 10Mhz.
Fixed point - maybe, with a top end chip (like a statix5) using the cascade of a DSP block into the next DSP. Still - 1 cycle - thats rather harsh.

With floating point, if you want a decent clock speed, you're going to several cycles for each multiply. Why does it have to be a single cycle? why does it have to be floating point?
 

The only reduction I see is,

y1= 1.5f*y0 - x*y0*y0*y0 = y0* (1.5f - x*y0*y0)

Just reduces one extra multiplication. Still its too much for a single clock cycle.
 

In floating point - no way, unless that 1 cycle is with a clock of about 10Mhz.
Fixed point - maybe, with a top end chip (like a statix5) using the cascade of a DSP block into the next DSP. Still - 1 cycle - thats rather harsh.

With floating point, if you want a decent clock speed, you're going to several cycles for each multiply. Why does it have to be a single cycle? why does it have to be floating point?

Well, floating-point just because of the larger range - no other reason really.

- - - Updated - - -

The only reduction I see is,

y1= 1.5f*y0 - x*y0*y0*y0 = y0* (1.5f - x*y0*y0)

Just reduces one extra multiplication. Still its too much for a single clock cycle.

Yes, but equation in this form also maps to 4 levels of fp-multiplier/subtractors....

Also, is there no 'trick' for carrying out scalar multiplications like one in the equation...1.5f*y0? I mean, isn't a complete fp-multiplier for such operation an overkill?
 

Whatever you manage to do, floating point is not a single cycle thing...
 

How about try to pipeline the equation & make your clock faster? This shall still improve the overall execution time of the operation.

stage 1: (1a=x*y0) (1b=y0*y0)
stage 2: (2a=1.5f*y0) (2b=1a*1b)
stage 3: (y1=2a-2b)

In this case, you only need 3 levels of fp operations instead of 4
 

Well, floating-point just because of the larger range - no other reason really.

Do you really need the larger range? what range to you actually need, and have you even investigated fixed point?
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top