Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • Reading Paths
  • Quick Start: Your First Green Build
  • Part 1: How Chips Get Made6
    • Idea to Silicon
    • What RTL Is
    • ASIC, FPGA, SoC and IP
    • Front-End and Back-End: Who Does What
    • PPA Primer
    • What Happens After RTL
  • Part 2: Your Workstation5
  • Part 3: Specify and Architect3
  • Part 4: The Design Loop6
  • Part 5: The Verification Ladder6
  • Part 6: Automation and Reproducibility5
  • Part 7: Hand-Off to the Back-End3
  • Part 8: When Things Go Wrong3
  • Part 9: Project and Next Steps3
  • Reference4
Loading lesson

‹Part 1: How Chips Get Made
  1. Topics
  2. Start Here: RTL and Verification
  3. Part 1: How Chips Get Made
  4. PPA Primer

Part 1 · How Chips Get Made · Foundation (F)

PPA Primer

What power, performance and area mean, how two checksum units trade them, and how to write a requirement you can measure.

On this page

    Note

    Level: Foundation (F) · Answers: What do power, performance and area mean, and why can't you have all three?

    Before this: Front-End and Back-End: Who Does What

    Picture an illustrative case: two engineers checksum the same 64 bytes of data. One builds a unit that absorbs a whole word every cycle. The other builds a smaller unit that needs four cycles per word. Both are correct, and both pass their testbenches. One finishes sooner, the other likely fits in less logic and may draw less power while it works. Neither engineer made a mistake: they picked different corners of the same triangle.

    What do power, performance and area mean, and why can't you have all three?

    PPA names the three bills every design pays

    PPA stands for performance, power and area, and you will hear the three letters in every chip conversation from here on. Performance asks how fast answers come out. Power asks how much energy each answer costs, which decides battery life and heat. Area asks how much silicon the design occupies, which decides cost. Every design decision moves at least one of the three, usually against another.

    The letters share one home but separate owners. Architecture sets the budget for each one, RTL design spends area and enables power saving, synthesis and physical design close timing and shrink the layout, and sign-off measures all three against the budget. When someone says a block is over budget, they mean one of these letters, and your first question is always which one.

    Performance is three different questions

    Performance splits into three quantities, and mixing them up causes real arguments. Clock frequency counts clock edges per second: how often the design may advance. Latency counts the time from one input to its answer: how long one result takes. Throughput counts answers per cycle or per second: how many results the design delivers. A streaming port usually cares about throughput, a control loop cares about latency, and a fixed bus cares about frequency.

    The three do not move together. A higher clock frequency does not always cut latency, because reaching that frequency can take extra pipeline stages, and each stage adds its own cycle. Latency is cycles multiplied by the clock period: when both change at once, only arithmetic tells you which won. Name which of the three your requirement asks for before you optimise any of them.

    Power comes from switching and from standing still

    Power has two sources, and both matter. Dynamic power is burned when signals toggle: every rising and falling edge charges and discharges capacitance, so more edges and more toggling mean more heat. A clock net toggles every cycle whether or not data changes, which is why clock power gets its own line in every budget. Leakage, also called static power, flows whenever the chip is powered, moving or not, and it grows with transistor count.

    This split explains why a smaller unit can win on power even when it runs longer. Fewer transistors leak less while the job runs, and less toggling logic burns less dynamic power per cycle. It also explains why idle modes exist: when there is nothing to do, stopping the clock removes the dynamic half and power gating can remove the leakage half too.

    Area counts more than cells

    Area counts every structure the design needs: combinational cells, which are the gates that compute; registers, which are the flops that hold state between edges; and memories for larger storage. Synthesis reports cell area, the sum of the gates it inferred. That number is not die area: routing, spacing, memories and pads add more on top, so quote cell area as cell area and never as the size of the silicon.

    Area also buys the other two letters. A wider datapath finishes sooner and a deeper pipeline reaches a higher frequency, and both cost cells and registers. When the triangle pushes you toward a smaller corner, say which structure you are removing and which letter pays for it.

    Three corners, three pulls

    The picture below draws the trade-off as a triangle with one letter at each corner. Read each edge as one pull: raising the clock rate toward performance draws more switching power, widening the datapath toward performance costs more silicon area, and shrinking area means less parallelism and therefore less speed. The center carries the warning: requirements pick the corner, so treat the triangle as a pattern for trade-offs, not a law of nature.

    The PPA triangle. Each edge names one pull between two corners, and the center says requirements pick the corner: read it as a trade-off pattern, not a law.

    Two ways to add the same numbers

    The listing below models the two checksum units from the opening scene in plain Python. Both add the same 64 words. The parallel unit absorbs one word per cycle and the iterative unit needs four cycles per word, with datapath widths of 1 and 0.25 abstract units to show that the faster unit uses more datapath.

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    """Cycles and throughput sketch for checksumming 64 words of 8 bits.
    
    Two ways to add up the same 64 bytes:
      parallel:   a full-width unit that absorbs one word per cycle (1 adder lane)
      iterative:  a quarter-width unit that needs 4 cycles per word
    The table reports only cycles to finish, throughput in words per cycle, and a
    relative "datapath width" column in abstract units. Those width units are
    illustrative: they show that the faster unit uses more datapath, not how much
    silicon it costs. There are no absolute numbers here: no area, no power, and
    no clock frequency.
    """
    
    WORDS = 64
    CYCLES_PER_WORD = {"parallel": 1, "iterative": 4}
    # Relative datapath widths in abstract units (illustrative, not area).
    WIDTH_UNITS = {"parallel": 1.0, "iterative": 0.25}
    
    cycles = {name: WORDS * cpw for name, cpw in CYCLES_PER_WORD.items()}
    throughput = {name: 1.0 / cpw for name, cpw in CYCLES_PER_WORD.items()}
    
    print(f"{'unit':9s} {'cycles':>6s} {'words/cycle':>11s}  width units (illustrative, not area)")
    for name in ("parallel", "iterative"):
        print(f"{name:9s} {cycles[name]:6d} {throughput[name]:11g}  {WIDTH_UNITS[name]:g}")
    assert cycles["iterative"] == 4 * cycles["parallel"]
    assert throughput["parallel"] == 4 * throughput["iterative"]
    print(f"PASS: the 1-word-per-cycle unit checksums {WORDS} words in {cycles['parallel']} cycles, 4x faster than the 4-cycles-per-word unit at {cycles['iterative']} cycles")

    This listing computes the finish time and throughput of both units from the same 64-word job.

    Predict first Before you look at the output: which unit finishes the 64 words first, and how many times faster?

    The 1-word-per-cycle unit finishes first, in 64 cycles against 256, which is four times faster. The ratio equals the cycles-per-word ratio of 4 to 1, because both units do the same job and only the rate differs.

    Diagram
    # captured terminal output
    $ python3 -I ppa_cycle_model.py
    unit      cycles words/cycle  width units (illustrative, not area)
    parallel      64           1  1
    iterative    256        0.25  0.25
    PASS: the 1-word-per-cycle unit checksums 64 words in 64 cycles, 4x faster than the 4-cycles-per-word unit at 256 cycles

    This output came from Python 3.14.3 on macOS. The width column counts abstract datapath units and is illustrative, not area: it shows that the faster unit uses more datapath without claiming how much silicon that costs.

    Read the two rows against the triangle. The parallel unit takes 64 cycles (illustrative) at 1 word per cycle, and the iterative unit takes 256 cycles (illustrative) at 0.25 words per cycle. Four times the cycles for one quarter the datapath width: performance bought with area, exactly the pull on the right edge of the picture. Neither row quotes power, area in silicon, or clock frequency, because the model only counts cycles. Those letters need budgets and tools, which later parts of the course introduce.

    The same job, compared without invented numbers

    The table below compares the two units qualitatively, using only the ordering the model run supports. Likely power compares the two while both run at the same clock rate, as an illustrative comparison rather than a measurement.

    Design

    Latency

    Throughput

    Datapath size

    Likely power

    Parallel, 1 word per cycle

    shorter

    higher

    wider

    likely higher while running

    Iterative, 4 cycles per word

    longer

    lower

    narrower

    likely lower while running

    Pipelining trades latency for frequency

    Pipelining splits deep logic across stages so each stage fits in a shorter clock period, which raises the clock frequency the design can reach. The price is latency: an answer now crosses more stages and each stage adds its cycle. Pipelining also adds the registers between stages and stretches the clock net to reach them, so clock power rises. Same triangle, same pulls: frequency and throughput improve while latency, area and power pay.

    Whether that trade wins depends on the requirement. A streaming port that must deliver one result per cycle loves pipelining. A control loop that must react within a fixed time may hate it. Ask which letter the requirement names before you add a single stage.

    A requirement you can measure beats a fast design

    Contrast two requests. The first says make it fast, which names no letter and no number, so no test can confirm it and no trade can satisfy it. The second says accept one 8-bit sample every clock cycle at the clock rate the system provides (illustrative requirement). That sentence names throughput, implies a number, and tells you exactly which unit from the table qualifies: the parallel one, at the cost of more datapath and likely more power.

    Senior note: when a PPA argument starts, ask whether the real requirement is latency, throughput or frequency. A control loop cares about latency, a streaming port cares about throughput, and a fixed bus cares about frequency. Most PPA arguments end the moment someone writes the requirement down, because the triangle stops being a debate and starts being arithmetic.

    Where do beginners misread PPA?

    • Treating the triangle as a law. The triangle warns of pulls, it proves nothing. A cleaner architecture sometimes improves two corners at once, for example when it removes wasted toggling. Use the picture to ask where the cost lands, never to declare that all three cannot improve.

    • Quoting cell area as silicon area. Synthesis reports the sum of its gates, and routing, spacing, memories and pads add more before the die is cut. Report the number the tool gave you with its name attached, and keep die area for the layout team.

    • Comparing power without a workload. Power follows activity: a unit that sleeps draws leakage only, and the same unit at full toggle draws far more. Pair every power claim with what the design was doing, or the comparison means nothing.

    Rule: write the requirement in numbers before you trade power, performance and area.

    Check yourself A port must accept one 8-bit sample every clock cycle at the clock rate the system provides (illustrative requirement). Which unit do you pick, and what is your reasoning?

    Pick the parallel unit. The requirement asks for a throughput of 1 word per cycle, and only the parallel row delivers it; the iterative row delivers 0.25 and misses by a factor of four. State the cost in the same breath: a wider datapath and likely higher power while running. A requirement met is a trade accepted, so name both sides.

    Check yourself You pipeline a unit and the clock frequency rises, but an answer now takes more cycles. When is that a win?

    When the requirement is throughput or frequency with room in the latency budget. More stages mean more answers per second even though each answer takes longer, which suits a streaming port. It loses when the requirement is a fixed reaction time, because extra cycles spend exactly the budget the control loop needed.

    Check yourself The request on your desk says make it fast. Write the two questions you ask first.

    First, fast at what: latency, throughput, or frequency, since each one points at a different corner of the triangle. Second, how much exactly: how many samples per cycle, how many cycles allowed, at what clock rate. Until both answers exist the request is not a requirement, and no architecture choice can be defended.

    Interview

    Asked: "Does a higher clock frequency always mean lower latency?"

    Weak answer: Yes. Everything runs faster at a higher frequency, so answers come out sooner.

    Strong answer: No. Latency is cycles multiplied by the clock period, and pipelining raises the frequency by adding stages, so the cycle count grows while the period shrinks. Only the product tells you whether latency improved. A higher frequency reliably helps throughput, but latency needs its own budget and its own measurement.

    Follow-ups: (1) When would you add pipeline stages anyway? (2) How would you write a latency requirement a testbench can check?

    Key takeaways

    • Performance splits into frequency, latency and throughput: name which one the requirement asks for.

    • Power comes from switching and from leakage, and cell area is not die area.

    • Every architecture trades the three corners, so write the requirement in numbers before you pick a side.

    Keep going

    Next: Lesson 1.6, What Happens After RTL. You can trade the three corners on paper. The next lesson follows your RTL into the stages that measure each corner for real.

    Related topics

    • Synthesis course

    Previous

    8 / 47

    Next: What Happens After RTL

    Up next

    Up nextWhat Happens After RTL

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Idea to Silicon
    • What RTL Is
    • ASIC, FPGA, SoC and IP