Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
William Murray

Floorplanning FPGA Designs: You Know It Makes Sense!

William Murray
hash.era
hash.era
12/31/2012 3:15:41 AM
User Rank
Clever Clogs
Re: A good flash poll might be --
This shows upto which extent FPGA can take you through to. Its a mavel that you find in a set of electronic gadjets.

50%
50%
William Murray
William Murray
12/27/2012 7:54:11 AM
User Rank
Blogger
A good flash poll might be --
A good flash poll might be how many people have solved an issue thru floorplanning vs design size.

 

 

50%
50%
William Murray
William Murray
12/21/2012 7:49:03 AM
User Rank
Blogger
Re: Rent's rule, and non-global resources
You are Definately Right -- there probably is a Rents Rule Equivalent for FPGA's, but It also is Design Dependant -- A rats nest of combintorial logic is different than a pipelined data-flow block, is different than a packet switch, is different than a DSP chain -- etc -- There are tools that are in R&D in the Universities that will Work out the Best Floorplan and pass that off to the Floorplanner -- Based on the design type. 

 

http://scholar.lib.vt.edu/theses/available/etd-09092010-094913/unrestricted/RajaGopalan_T_2010.pdf

 

50%
50%
jacklsw86
jacklsw86
12/20/2012 8:33:20 PM
User Rank
Blogger
Re: floorplanning: tool of last resort
The only time i used floorplanning was when my design has common signals routed to a large area.

Well, there's a give and take in floorplanning too: tight (or too much) floorplanning reduces the flexibility of the mapper/PAR. :)

50%
50%
hamster
hamster
12/20/2012 4:07:30 PM
User Rank
Blogger
Rent's rule, and non-global resources
Rent's Rule can be used to estimate the average wirelength and the wirelength distribution in VLSI chips, and I assume the same thing holds for FPGAs.

In following with Rent's rule, small designs will be constrained by logic speeds, but as a design grows it will become constrained by routing.

That is why until I started working on larger designs on larger chips I was convinced that floorplanning was something you do to get you the last 10% of performance, now I have a few larger devices it seems controlling placement is essential to getting the last 50%!

However, even if you don't do it explicitly, you end up controlling placement if you use non-global FPGA resources.

- If you use a CLB's carry chain you tie the CLBs into the same column.

- If you use the DSP 'cascade' features, you are constraining the physical placement of the DSP blocks to be directly above each other.

- In some devices DSP blocks and RAM blocks have dedicated routing to some ports or other dependancies that can restrict  placement. 

Being aware of this features and the implict constriants the create can make a big difference, and can even be a factor in allowing a design to fit.

It also explains with Xilinx take a lot of time explaining how these features work. A DSP implmented as an adder tree will use generic routing resources have much lower performance than a design which leverages the cascade ports, and the DSP blocks might be either ends of the FPGA die!

Talking of placement, I wonder how good XST would be at playing Tetris? :-)

50%
50%
William Murray
William Murray
12/20/2012 2:52:39 PM
User Rank
Blogger
Re: floorplanning: tool of last resort
I think the newer tools are able to handle much larger designs without floorplanning them.   I've also gotten older and wiser and get as much of the design working on a Starter Kit, or Prototyping System before locking down the pins on a board layout.   It also helps to not squeeze the last ounce of logic out of a part and keep it at 80% or so.

50%
50%
devel@latke.net
devel@latke.net
12/20/2012 12:10:33 PM
User Rank
Guru
floorplanning: tool of last resort
My general approach is to let the tools worry about internal placement, until they fail. A suboptimal placement is fine if you meet your timing constraints.

Now it turns out that, at least with S3, the tools are too stupid to realize that specific BUFGs go with specific GCLK pins, and I've seen the placer choose a BUFG on the other side of the chip from the GCLK input. So in this case you have to lock down the BUFG and the DCM.

With S6 I had to lock down specific BUFIOs and delay elements, again because the tools were stupid. 

If I have to dig into the floorplanner for logic-timing reasons, I likely have bigger issues.

50%
50%
Adam Taylor
Adam Taylor
12/20/2012 12:01:46 PM
User Rank
Blogger
Very Interesting
William a very interesting subject, many people think that writing the RTL is all that really is needed and then the tools chains handle the rest. However if you want to really acheive the best performance for these devices and use the more advanced features you are going to have to get involved within the floor planning and timing closure. 

I am a big fan of PlanAhead, it is useful when IO planning a device or creating a complicated design which requires multi interation place and route. 

50%
50%
thrakkor
thrakkor
12/20/2012 11:58:01 AM
User Rank
Blogger
well
I think floorplanning is a special case.  As designers, we must rely on the normal implementation tools (synthesis, MAP, PAR) to do their jobs, as well as designing in a way to allow them to do so.

for Xilinx designs, I think experimenting with different "strategies" and making design edits are a better way to close the timing closure loop.  try different max fanouts in synthesis and rerun different backend strategies, say with SmartXplorer.

try area constraints, before floorplanning.  this has a floorplanning like effect, but is flexible as the design and netlist changes, whereas floorplanning could get screwed up if the netlist changes and you don't take steps to guard against it.

by all means, learn how to floorplan, but I think starting out with floorplanning is a waste of time.  I really think floorplanning is a last resort.

 

and PlanAhead I think is pretty convoluted.  I much preferred FPGA Editor, PACE and floorplanner as independent tools.

YMMV.

50%
50%
More Blogs from William Murray
When extreme thermal cycling causes circuit boards and chip packages and the silicon die in the packages to expand and contract at different rates, problems may ensue.
In order to simulate a design we need models that represent the functionality and timing characteristics of our design elements, but the timing aspects of these models may be based on uncertain data.
A large amount of skill is required to write custom test code for custom hardware. Even more skill is required to test a CPU, RAM, or ROM.
Designing high-temperature electronics can present many challenges for "down-hole" petroleum equipment, ovens and micro-waves, automotive, medical, aerospace, and other applications.
If a design does not meet a size, speed, reliability, flexibility, or power constraint, a little code refactoring may be all that's required.
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