This document discusses techniques for reducing power consumption in integrated circuits and systems. It begins by providing background on technology trends that increase power needs such as rising transistor counts. It then discusses sources of power dissipation in CMOS circuits and how power is affected by voltage, frequency, capacitance, and switching activity. The document outlines a design flow for analyzing power at different levels of abstraction. It presents techniques for reducing dynamic, short-circuit, and leakage power through voltage scaling, transistor sizing, clock gating, and other methods. Architecture-level, circuit-level, and logic-level power optimization techniques are also summarized.