UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 60306

Vivado - The BRAM utilization of the parent module is smaller than the sum of its sub-modules' in the Utilization GUI report

Description

In the Utilization GUI report generated by clicking on "Report Utilization" under "Synthesized Design" or "Implemented Design", I see the BRAM utilization of the parent module is smaller than the sum of its sub-modules.
 
How can this be the case?

Solution

Below is an example of this problem.

BRAMutil.png 

This is related to how the RAMB18 and RAMB36 is counted.

The BRAM utilization is given by the number of RAMB36s.

When Vivado counts the BRAM, it treats 2 RAMB18 as 1 RAMB36.

If the RAMB18 number is an odd value, it counts the last 1 RAMB18 as 1 RAMB36.
For example:
 
2 RAMB18 + 1 RAMB36 = 2 RAMB36
1 RAMB18 + 1 RAMB36 = 2 RAMB36
3 RAMB18 + 1 RAMB36 = 3 RAMB36

In the above example, BRAMs in the sub-modules are like this:

ram18_36_inst: 1 RAMB18 + 1 RAMB36 = 2 RAMB36
ram36_instx2:    2 RAMB36                        = 2 RAMB36
ram18_instx1:    1 RAMB18                        = 1 RAMB36
ram18_instx2:    2 RAMB18                        = 1 RAMB36
ram36_instx1:    1 RAMB36                        = 1 RAMB36
 

So in the top:     4 RAMB18 + 4 RAMB36 = 6 RAMB36

The BRAM utilization in a parent module does not always match the sum of its sub-modules. 

This is an expected behavior.
AR# 60306
Date Created 04/15/2014
Last Updated 06/20/2014
Status Active
Type General Article
Tools
  • Vivado Design Suite