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

AboutRoadmapCareersInternshipsFAQContactPrivacyTerms
Skip to lesson

Course contents

  • How to Use This Course
  • The NanoSoC Tour
  • Reading Path
  • SoC Glossary10
  • SoC Metrics Reference
  • SoC Cheatsheet
  • What SoC Integration Is12
  • Architecture and Budgets21
  • Memory Maps and Address Decode26
  • Interconnect and Bus Fabrics26
  • Clock and Reset Architecture24
  • Power Architecture21
    • Power Domains and States
    • Isolation and Retention Integration
    • PMU and Power Sequencer
    • Cold-Start Power-Up Sequence
    • Supply Sequencing and PMIC
    • Thermal and Power Envelope
      • From Milliwatts to Degrees
      • Throttling Policy and Sensors
      • Power-Gating Saving and Break-Even
    • DVFS Integration
  • Interrupts, DMA and Peripherals15
  • Memories, Boot and Security21
  • IP Integration and Handoff21
  • Top-Level Verification and Bring-up21
  • Package, Pads and I/O18
  • Chip Signoff and Tapeout18
  • SoC Interview Prep16
  • Capstone: Integrate NanoSoC14
Loading lesson

←Thermal and Power Envelope
  1. Topics
  2. SoC Design
  3. Power Architecture
  4. Thermal and Power Envelope
  5. From Milliwatts to Degrees
On this page

    Part 6 of 14, lesson 16 of 21Part 6 of 14/Power Architecture/Lesson 16 of 21All levels

    From Milliwatts to Degrees

    The thermal path from the power table to junction temperature, with an illustrative package model.

    Why it matters

    A product team plans a sealed enclosure at 55 °C ambient, runs NanoSoC in sustained RUN at 82.74 mW, and discovers in testing that the margin they assumed was air. Every thermal surprise is this arithmetic done late: power times thermal resistance plus ambient, checked against the maximum junction temperature. This lesson does it early with the NanoSoC numbers.

    The core idea

    Junction temperature is ambient plus power times the junction-to-ambient thermal resistance, and NanoSoC's power is small enough that almost any package passes. With an illustrative 30 °C/W package and 40 °C ambient, RUN lands at 42.5 °C, IDLE at 40.5 °C and SLEEP barely above ambient: rises of 2.5, 0.5 and 0.04 °C respectively. The lesson is not that NanoSoC runs cool, it is the method: the power column comes from the NanoSoC power table, the resistance and ambient are illustrative inputs the product owns, and the comparison against the limit decides whether throttling or gating is even needed. Change the ambient to a sealed 55 °C box and the answers move by 15 °C while the method stays identical.

    example.py
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # Junction temperature from the NanoSoC power totals.
    # Powers NanoSoC teaching values; THETA_JA and AMBIENT illustrative.
    P = {"RUN": 82.74e-3, "IDLE": 16.89e-3, "SLEEP": 1.40e-3}  # watts
    THETA_JA, AMBIENT, T_J_MAX = 30.0, 40.0, 105.0  # C/W, C, C (illustrative)
    tj = {s: AMBIENT + p * THETA_JA for s, p in P.items()}
    assert abs(tj["RUN"] - 42.482) < 0.01, tj
    assert abs(tj["IDLE"] - 40.507) < 0.01
    assert abs(tj["SLEEP"] - 40.042) < 0.01
    margin = T_J_MAX - tj["RUN"]
    assert margin > 60.0, margin  # NanoSoC is thermally trivial in this package
    # Sealed-box check: ambient 55 C still leaves over 47 C of margin.
    assert T_J_MAX - (55.0 + P["RUN"] * THETA_JA) > 47.0
    print("PASS: Tj RUN 42.5 C, IDLE 40.5 C, SLEEP 40.0 C; margin >60 C at 40 C ambient")

    What the review looks for

    • The temperature computation names its three inputs with sources: NanoSoC power, product ambient, package resistance.

    • The worst sustained workload, not the average, feeds the RUN column; duty-cycled workloads carry their duty assumption.

    • The margin against the maximum junction temperature is stated per state, with the sealed-box ambient as a second case.

    Verify and debug

    Correlate the model with a sensor reading under a sustained DMA workload: the measured rise over ambient divided by 82.74 mW is the effective resistance, and if it exceeds the assumed 30 °C/W the package model or the airflow assumption is wrong. If the chip throttles in the lab but the arithmetic says it should not, the workload is not the budgeted one: profile the actual switching before touching the thermal inputs.

    Sizing for the wrong worst case: temperature follows the sustained average power over the thermal time constant, while supply droop follows the fastest current step, over nanoseconds. One activity model can feed both, but it must yield two worst cases: the sustained maximum (here a DMA stream with the CPU active) for thermal, and the fastest worst-case step for droop. Name both in the signoff plan, or one of them goes unchecked.

    If asked whether NanoSoC needs a heatsink, answer with the rise: 2.5 °C in RUN under the illustrative model, so no, and then say what would change the answer, a hotter ambient, a worse package, or a bigger chip at the same method.

    Check yourself The enclosure ambient rises from 40 to 55 °C. What changes in the policy?

    Nothing structural: every junction temperature rises by exactly 15 °C and the margins shrink, but NanoSoC still clears the limit by over 47 °C. The policy trips stay where they are; only the recorded margin changes.

    Related topics

    • Next: Throttling Policy and Sensors

    • Architecture: Power and Energy

    • PD: Power Signoff Dashboard

    Previous

    130 / 289

    Next: Throttling Policy and Sensors

    Up next

    Up nextThrottling Policy and Sensors

    Sign in to save progress

    Practice this lessonPrevious lessonReport an error

    See also

    • Power-Gating Saving and Break-Even