Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17255 Discussions

Resource Utilzation Report

Altera_Forum
Honored Contributor II
2,294 Views

I am confused ALM usage shown in the resource usage report. My understanding is that all other columns such as ALUT, LUT_REG, MEM_LUT, etc. are all part of the ALM. So in my resource estimates and counts, if I use the ALM count then I should be covered. But the nos. do not add up. Take for example this simple line from my design... 

 

http://dl.dropbox.com/u/5702055/alm_cnt_does_not_addup.gif 

 

I cannot understand why the (ALUT + Dedicated Logic Registers)/2 is not same as the ALM count. What is it that I am missing? 

 

TIA for insights...
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
1,127 Views

 

--- Quote Start ---  

I am confused ALM usage shown in the resource usage report. My understanding is that all other columns such as ALUT, LUT_REG, MEM_LUT, etc. are all part of the ALM. So in my resource estimates and counts, if I use the ALM count then I should be covered. But the nos. do not add up. Take for example this simple line from my design... 

 

http://dl.dropbox.com/u/5702055/alm_cnt_does_not_addup.gif 

 

I cannot understand why the (ALUT + Dedicated Logic Registers)/2 is not same as the ALM count. What is it that I am missing? 

 

TIA for insights... 

--- Quote End ---  

 

 

Hi, 

 

your calculation would mean that the registers and logic is placed in separate ALUT's, but that is not true. You can see this in more detail by displaying 3 more columns in the project navigator. 

 

Go to the project navigator and click into the entity column and choose "Custominze Columns". Add three entries: 

 

1. "Combinatorial with no register ALUT" ( only the LUT ist used) 

2. "Register-only ALUT" (only the register ist used) 

3. "Combinatorial with register ALUT" ( Lut and register is used" 

 

The sum is the number of used ALUT's and divided by 2 is the number of ALM. 

 

Kind regards 

 

GPK
0 Kudos
Altera_Forum
Honored Contributor II
1,127 Views

ALMs are not a good indicator of usage. Similar to LABs(which are worse), they can be counted as being used if only a single resource is used(say a FF), or if all the combinatorial logic and both flops are used. Because of this, ALMs and LABs will be artificially high. (LAB usage will approach 100% when your design isn't very full). Be sure to look at the fitter report -> Resource Section -> Logic Utilization. This % is the same thing that appears when a compile is done. It takes into account all sorts of things that make it much more accurate, albeit confusing. 

Note that there is a lot of flexibility in the ALM architecture. LUTs can share inputs. Registers and combinational cells that are unrelated can be packed together. If you look at things as if they're independent resources, you won't take this into account.
0 Kudos
Altera_Forum
Honored Contributor II
1,127 Views

Thanks guys. It makes sense now. 

 

So does this mean that the only way to do a quick and dirty estimate of how much logic resource an entity uses is to add up the 3 ALUT columns noted above? Ofcourse, assuming that we are looking at an optimized netlist.  

 

-sanjay
0 Kudos
Altera_Forum
Honored Contributor II
1,127 Views

 

--- Quote Start ---  

Thanks guys. It makes sense now. 

 

So does this mean that the only way to do a quick and dirty estimate of how much logic resource an entity uses is to add up the 3 ALUT columns noted above? Ofcourse, assuming that we are looking at an optimized netlist.  

 

-sanjay 

--- Quote End ---  

 

 

 

Hi, 

 

yes , I would add the three columns. 

 

Kind regards 

 

GPK
0 Kudos
Altera_Forum
Honored Contributor II
1,127 Views

Maybe. This breaks out Register-Only ALUTs and Combinational-Only ALUTs. In many cases the fitter could merge these into a single ALUT, thereby making your design more dense. If you go into the fitter report and Logic Utilization, there is a line-item called Estimated Pairs Recoverable by Packing Register-Only ALUTs with Combinational(I'm paraphrasing). It's a negative number, and basically the fitter's way of saying, "I think I could pack this much together and improve density if I had to". I've seen cases where this is a very large number. 

It's not done on a hierarchical level because, naturally, there is no reason these node from different hierarchies can't be packed together. Also note that as it packs more together, performance can start to decrease, so there is a trade-off. As you start to add more logic, you will see more and more packed together. (There was a time when the fitter report didn't do this, and people found they could fill their devices up to 100%, and then keep adding logic and it would fit. They were happy, but all the people that bought larger parts than they needed probably were not, or designs lost because of this) 

Bottom line is that area is not a black-and-white value. This is good in that the fitter has flexibility, it just makes it hard to estimate early on. I would probably take that negative number, and just make it a percentage that is the average reduction, and apply it to the sum value you had above. (There are actually more things to consider than that, as the fitter report's Logic Utilization shows, just not on a hierarchical basis.)
0 Kudos
Altera_Forum
Honored Contributor II
1,127 Views

Another estimation approach you could use is to take the number of ALUTs in your entity as a fraction of the total, and multiply that fraction by the % full number Quartus gives you. You can do the same thing with registers to get another sample as well. This is assuming that your entity is similar to the rest of your design (in use of control signals, LUT/register distribution, etc), but it will give you another reference in addition to what was given above.

0 Kudos
Altera_Forum
Honored Contributor II
1,127 Views

maybe you need to check your system again

0 Kudos
Reply