FPGARelated.com
Forums

How to select an FPGA size (beginner)

Started by Paul Marciano May 18, 2004
Even the smallest FPGAs have four or more clock nets, and that is going back to
the
4000's.  Clock enables can do a lot for you, in most cases there is not really
a need for
a proliferation of clocks.  Multiple clock domains give rise to potential
timing
constraints issues, as well as problems crossing clock domain boundaries.  Not
that
any of that is insurmountable, just that it requires extra diligence to make
sure you
do it right, and that the tools don't mess up your good work.

When I said virtex parts, I was referring to the virtex architecture, which
includes all the
current families.  SpartanII is the virtex1 architecture, spartan2e is virtexE,
spartan3 is
a mutation of virtexII.  The point is all of these families have ample
routing.  Now,
whether the tools make efficient use of that routing is another question
altogether (they
don't, the tools now do a 'lazy' routing that only improves the routing until
it is good
enough.  Problem is in a dense design, the circuitous routing artificially
congests the
routing resources which can make it appear that you do not have the routing to
make timing.
Poor placement can also aggravate the routing.  The placer is *still* very bad
at placing
logic when a signal goes through multiple LUTs between flip-flops, often
placing the LUTs
without flip-flops far from the destinations, and well out of the way between
the source and
destination.  The result is again unnecessary congestion of the routing
resources, and pathetic
timing results.  Floorplanning will relieve enough of the problems caused by
the placer that
it is very hard to run out of routing.

BTW, the routing is generally more stressed with larger devices rather than the
smaller ones.
Required routing goes up roughly with the square of the number of LUTs, yet the
routing
network is virtually unchanged across the family. Additionally, placement is
more critical with
larger devices because haphazard placement will incur large routing delay
penalties, and that
makes the job of the router tht much harder (possibly leading to a no-route
situation due to timing)
With small FPGAs, it is the memories followed by logic that gets used up
first.  I would argue
that the routing in the cheap FPGAs is even more abundant.

CPLDs are a different animal altogether.  There, the routing between macrocells
is generally
sparse, and without careful planning it can be easy to use up the routing
there.

I stand by my earlier comments.


Chuck McManis wrote:

> "Ray Andraka" <ray@andraka.com> wrote in message > news:40AB48D9.C3F88E92@andraka.com... > > If you are doing a synchronous design you normally shouldn't run out of > clock > > resources. What are you doing that uses so many clocks? I suspect your > > clocking is also causing your routing woes. The virtex parts have > abundant > > routing resources; it is not that easy to use them up. > > Some assumptions in there Ray : > > "...If you are doing a synchronous design ..." but these days people are > doing SOC designs that might have a video clock, a CPU clock, a clock > driving an ethernet PHY, and a perhaps some refresh logic for their DRAM > controller. I'm not disagreeing with you, my point was that "gates" are > generally not the thing you run out of first. > > Next up "...The virtex parts..." however the original poster wanted to stay > away from the "expensive" chips. so starting from CPLDs and moving up, > you're somewhat constrained there. Lots of clock resources in a Virtex II > Pro, but then again in single quantities the chip is $300. :-) > > --Chuck
-- --Ray Andraka, P.E. President, the Andraka Consulting Group, Inc. 401/884-7930 Fax 401/884-7950 email ray@andraka.com http://www.andraka.com "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin, 1759
Just to reinforce what Ray says in his response, if you have designs that
have a lot of input clocks, I have found that some effort up front to retime
these clocks to one higher frequency masterclock (which is clock enabled for
each source clock domain) can often save you from a world of pain later on.
Especially if you're transferring data between domains. The DCMs are great
for making this masterclock.
Cheers, Syms.

"Chuck McManis" <devnull@mcmanis.com> wrote in message
news:IWUqc.51416$fS2.33280@newssvr29.news.prodigy.com...
> > "...If you are doing a synchronous design ..." but these days people are > doing SOC designs that might have a video clock, a CPU clock, a clock > driving an ethernet PHY, and a perhaps some refresh logic for their DRAM > controller. I'm not disagreeing with you, my point was that "gates" are > generally not the thing you run out of first. >
A wild guest, it would well fit in spartan2 100 :)