Forum Discussion
Altera_Forum
Honored Contributor
11 years agoI wouldn't really call it double-counting, as you're not supposed to add them or anything. They have different meanings and uses, so all presented:
Logic Elements 25K - This is a metric meant to standardize across different architectures and even different FPGAs. There is no clear definition of what 1 Logic Element is, and as architectures have changed and added more capabiities, they count block XYZ as 1.15 or 1.25 or whatever Logic Elements. So for example, Cyclone V has ALMs which are significantly different than Cyclone IVs Logic Cells, and this is an effort to try and compare them. It's meant to make things easier, but at times can make things more difficult. ALM 9,434 - The Adaptive LUT structure. Because it's adaptive, it can be configured different ways and isn't always black-and-white either. The Fitter report for a design does ALMs and if you look in the details, does some extra accounting to achieve its number. It tells you how, and I do believe this is a more accurate representation than just counting a resource. Register 37,736 - Actually, this one probably is double-counted. An ALM can be one large LUT(like a 5,6 or7 input LUT) or two separate LUTs, like 2 4-inputs LUTs, a 5 input and a 3-input, plus a number of other combinations. There are 4 registers inside the ALM, but it is very unlikely you'll use more than 2. Most registers are tied to a LUT, and since you get a maximum of 2 per ALM, on average it is unlikely you'll get more than 2 LUTs per ALM. M10K 1,760kb - I prefer to think in number of M10Ks, of which there are 176. (Depending on RAM sizes, these don't always get fully utilized) MLAB 196Kb - These are made from logic, where a LAB is converted to an MLAB. I seldom see a lot of these being used, and usually are less than a few percent of the LABs used for logic. If you really tried to use a large number of these, you'd lose too much logic for most designs.