As a topic that is subject to intense discussions, PPA (Power, Performance & Area) is certainly something that everyone in the semiconductor industry is focusing on. Who wouldn’t want a smaller and cheaper circuit that would consume less power and be much more capable than the previous generation? But you should stop asking for PPA. Or at least, stop asking just for PPA. Or at least, stop asking just for PPA for digital IP. And here is why.
PPA stands for Power Performance and Area. However, defining PPA for a digital IP is not easy.
How PPA have been used
Chip designers have used the PPA acronym to describe the three main variables used in deciding how to optimize semiconductor designs and often treat these as a single set of numbers. This has been very useful as this captures the constraints that are placed on SoC architects. As the process technology evolved, different variants even emerged, suggesting adding a cost factor (PPAC) or even a time-to-market component (PPAcT).
Going back to the original acronym. SoC architects and product managers need to understand the area and power budget of a circuit for its desired performance, because it defines the commercial success of that chip. This certainly makes sense for the final SoC but cascading these requirements to the IP selection… that’s where things get misleading.
The limits of PPA for digital IP
For analog IP or memory blocks, you can directly extract the PPA data from EDA tools and get a single set of PPA figures for a given technology. That’s easy.
Now, digital IP is different. Because it is synthesizable, possibilities are endless. Hundreds (if not thousands) of parameters can be adjusted to optimize the numbers. It is also possible to make area-consuming or power-consuming features optional to optimize the numbers, while computing performance with the fully featured IP. In theory, and in practice, everything is possible. However, does the promoted PPA correspond to the configured IP that you would need? Probably not.
Why you can’t solely rely on PPA numbers
There are actually several myths around PPA, or in other words, good reasons why you should not blindly and solely rely on PPA number to choose a digital IP.
There are two main types of power: static (consumed when the block is switched on, but idle) and dynamic (linked to the activity) – see Table 1 below. The number given by an IP vendor depends on their own choice, while every single user of that IP will have different conditions… leading to different results.
|Static power||Dynamic power|
|Depends on the IP area (more gates means more power consumption and more silicon space used)|
Heavily impacted by the type of library, voltage and process used (the faster the transistors, the leakier they will be, and therefore the higher the static power consumption)
Possible to mix the type of transistors (high and low threshold voltage) in a circuit to tune static power
|Transistors consume power when switching between on and off states|
Consumption heavily depends on the workload: if there is no change in data, then the affected logic will not consume energy
How do you choose the activity that will take place in the IP during the measurement? How standard is this activity?
Different types of transistors give different results (quite possibly the transistors that give good dynamic power figures don’t get the best static power).
Performance is ultimately what you care about in your application. It could be operating frequency, throughput (how much data can flow through the IP in a given time), latency (how fast you get a result), or something else. Many criteria can matter. What is important to you really depends on what your application needs. Any improvement of an irrelevant parameter will have a cost.
The problem with benchmarks
To have meaningful comparisons between IP, especially the most complex ones like processors, synthetic benchmarks have been developed. These benchmarks do not represent your application, they are supposed to represent a “standard” application. But what if your needs are unique?
Multiple industry-standard benchmarks have been developed to focus on one aspect or another (such as integer or floating-point performance). In theory, you should be able to find the exact benchmarks that matter to you, and compare results. In practice, this is hard. How often are those benchmark numbers available from IP vendors?
When studying multiple synthesis runs (a “shmoo plot”) done on the exact same IP, with different frequency targets, the gate count can vary from 1 to 10 times between the best and worst cases. As you push towards the limits of the technology, area starts to increase significantly. And target frequency is not the only factor: input and output timing constraints will also have an impact.
Standard cell libraries also impact the area because, for a given process, too many options can give significantly different results. IP vendors will choose a configuration that will not impact area too badly. But is this promoted configured version useful in performance for your application? Probably not. Finally, it is unlikely that two different IP suppliers would use the same conditions, therefore it is impossible to compare numbers.
Stop asking for just PPA for digital IP
PPA numbers will inevitably be used to compare digital IP. However, as we’ve seen, meaningful comparisons are impossible and numbers usually not directly applicable to your product and use case. PPA are indicators that can be used as a starting point but definitely need context to be representative of your actual needs, and not be misleading.
In the next blog post, let’s look at what to ask when choosing a processor IP. You can (and should) go beyond PPA and ask for more.