Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Mike Field

Hamster Mulls the Design of Large Multipliers

Mike Field
hash.era
hash.era
12/31/2012 3:23:33 AM
User Rank
Clever Clogs
Re: Here you go
Jezmo I tried this code but not working for me. I dont know whether I made some silly mistakes within my code but I did look at the code several times to figure it out but couldnt.

50%
50%
Ken_Chapman
Ken_Chapman
12/17/2012 4:57:43 AM
User Rank
Expert
Re: Here you go

It is well worth noting that the registers in the DSP48E1 blocks support synchronous reset only. So for those people that insist on have a global asynchronous reset to all flip-flops and registers in their design then they will really suffer a huge drop in performance. As previously indicated by JezmoSSL, multiple synthesis tools have become smart about redistributing pipeline stages but it can only do so if you provide the stages to be redistributed through the DSP48E1 and don't give them an asynchronous reset.

50%
50%
William Murray
William Murray
12/16/2012 10:04:11 AM
User Rank
Blogger
Re: Here you go
Thank you for posting that link -- looks quite handy --

50%
50%
JezmoSSL
JezmoSSL
12/16/2012 9:50:37 AM
User Rank
Blogger
Re: Here you go
This article talks about leonardo but it works for ISE as well, altera tools require that you put the registers before the multiplier input.It also works for all kinds of arithmetic functions.

 

http://www.xilinx.com/support/answers/8657.htm

50%
50%
William Murray
William Murray
12/16/2012 9:33:08 AM
User Rank
Blogger
Re: Here you go
That's a pretty slick inference trick --  Is there a coding guide anywhere that gives more of these?

50%
50%
JezmoSSL
JezmoSSL
12/13/2012 1:19:51 AM
User Rank
Blogger
Re: Here you go
You might be surprised by my findings but if you try Gauss's method it doesnt gain much because a multiplication isnt much slower than an addition, at least its not in DSP slices.the thing is I looked at using the coregen complex multiplier macro as well, with the aditional iteration tester and to be honest the results I got from carefully hand coding a pipelined complex mult and using the coregen where the same.

You do know that if you do something like

 

process(clk)

begin

if rising_edge(clk) then

Z<=x*y;

pl1<=Z;

product<=Pl1;

end if

end process;

 

it will infer a pipelined multiplier, and it will distribute the multiplier between the pipeline stages?

I suspect that in this case that coregen produces something pretty optimal.It probably gives the same results as your tile fitting scheme.

 

50%
50%
hamster
hamster
12/12/2012 5:17:03 PM
User Rank
Blogger
Re: Here you go
Are you hinting at Gauss's complex multiplication algorithm on that page?

50%
50%
JezmoSSL
JezmoSSL
12/12/2012 5:09:12 PM
User Rank
Blogger
Here you go
http://en.wikipedia.org/wiki/Multiplication_algorithm#Fast_multiplication_algorithms_for_large_inputs

50%
50%
More Blogs from Mike Field
Over the past few days I have managed to create quite a few designs using the Xilinx Memory Interface Generator (MIG) and they all seem to work.
If I were an evil genius working on a plan for world domination (with regard to enterprise-level data storage solutions) I would be seriously considering building my design around a Zynq All Programmable SoC.
I would like to present to fellow readers of All Programmable Planet a new technique that I have invented to serialize data within the FPGA's main fabric at 1.5Gb/s.
It's time to look at the receiver portion of the link. After a few false starts, Mike Field has found what looks to be a workable design.
As with most things, my feeling is that there is no better way to understand high-speed serial links than to implement one from the ground up, so that is what I've set out to do.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS