The following sections explain how the pessimistic assumptions used in the URAA calculation in the previous section can be better estimated to reduce the final URAA value. For reference, the following chart shows the relationship between URAA and clock uncertainty.
Finding a lower URAA using analysis of blocks of RAMs that are simultaneously enabled/disabled
If you can define the largest block of RAM that can be simultaneously enabled or disabled, then a lower URAA can be calculated. This calculation is done using the formula in the previous section. The sum of the RAM frequencies should be calculated using the largest block of RAM that will be simultaneously enabled or disabled. Simultaneously is defined as being enabled within 45 ns of each other. If a RAM instance can be determined to not switch within the window, it can be excluded. The information can be found from simulation but not static timing analysis.
For example, if a design uses 500 BRAM36 sites with an average frequency of 200 MHz and 300 URAM sites with an average frequency of 400 MHz, the RAA is calculated as follows:
where,
Based on a knowledge of the design, only 250 BRAM36 sites and 100 URAM sites can be simultaneously enabled. In this case the calculation for RAA is reduced to:
where,
In the previous example, if the group of 250 BRAM36 sites and the group of 100 URAM sites cannot be enabled together then the calculation must be done individually and the largest URAA value must be used.
where,
where,
For an example of reduction in the default clock uncertainty, refer to the section Specifying the RAM Activity for Jitter in Versal Adaptive SoC Hardware, IP, and Platform Development Methodology Guide (UG1387). The example provided in this section shows the difference in clock uncertainty (less pessimistic) of setting the USER_RAM_AVERAGE_ACTIVITY to 160 versus the pessimistic default of 480.
Finding a lower URAA by limiting the rate at which RAMs can be enabled and disabled
If you can justify that the maximum rate for enabling and disabling the RAM is 22 MHz or less, then the URAA value can be reduced by a factor of 1.5.
A 22 MHz rate is equivalent to having 45 ns between enabling and disabling an individual RAM. For example, if a URAA is calculated at 300 MHz and the 22 MHz rule can be applied, then the URAA can be entered as 200 MHz (300 MHz/1.5). This factor would be applied after any calculations described earlier in this section.