Draft preview. Lessons are being written and reviewed.

Digital Design / Module 11: Designing for silicon

62. Low-power RTL

Reduce switching where it counts.

Lecture coming soon

See it move

The idea

Power limits most modern chips, from phones to data centres. To lower it, you need to know where it goes.

Two kinds of power

Dynamic power is used when signals switch: P = α · C · V² · f

  • α is the activity, or how often nodes switch.
  • C is the capacitance switched.
  • V is the supply voltage, and it's squared.
  • f is the clock frequency.

Static power is leakage, which flows even when nothing switches. It depends on temperature and on transistor type.

RTL techniques

  • : this is the most common technique, since clocks often take a large share of dynamic power. Stop the clock when a register doesn't need to update.
  • Operand isolation: hold a multiplier's inputs steady when its result isn't needed, so that it doesn't switch for no reason.
  • Avoid needless activity: don't update registers with values that are never used. Encodings like Gray, or , can reduce toggling on specific buses.
  • Use memory carefully: access only when needed, keep chip-select low, and use smaller or banked memories.

System techniques

  • Voltage islands: run each block at the lowest voltage it can.
  • Dynamic voltage and frequency scaling: lower both when demand is low. As P depends on V squared, this saves a lot.
  • Power gating: cut the supply from idle blocks to stop leakage, using retention flops and isolation cells at the boundaries.

Worked example

With α = 0.15, C = 10 pF, V = 0.8 V and f = 1 GHz, P = 0.15 x 10 pF x 0.64 x 1 GHz = 0.96 mW. Drop the voltage by 10%, and P falls by about 19%. Halve the activity, and P falls by 50%.

Common mistake

Forgetting that voltage and frequency are linked. You can't lower the voltage freely, since gates get slower, and timing must still close. Check any power saving against the timing budget. Also, savings claimed before layout are only estimates, so measure them with real activity data.

Key ideas

  • Dynamic power: activity, capacitance, voltage squared, frequency.
  • Gate clocks of idle blocks.
  • Operand isolation stops needless toggling; voltage islands and power gating come next.

Your exercise

Add clock gating and estimate toggle reduction.

Find the bug

This code has one deliberate bug. Read the symptom, then click the line you think is wrong.

What goes wrong: An enable that pulses while the clock is high creates a short extra clock pulse, which flops treat as a real edge.

Interview questions

coreMost effective power knob?

basicA block has activity 0.2, switched capacitance 5 pF, supply 0.9 V and a 500 MHz clock. What is its dynamic power?

basicWhat is the difference between dynamic and static power, and which one does clock gating reduce?

coreDynamic voltage and frequency scaling lowers both the supply and the clock frequency by 20 percent. How much dynamic power is saved?

coreWhy is this clock gate a problem when en comes from a flop on the rising edge of clk?

always @(posedge clk) en <= en_next;
assign gclk = clk & en;

coreA 64-bit register loads one cycle in four. Each flop's clock pin has 1.5 fF, the supply is 0.9 V and the clock is 500 MHz. Estimate the clock-pin power with a plain enable and with clock gating.

coreWhat is operand isolation, and when is it not worth it?

advancedHalving the clock frequency halves dynamic power. Does it also halve the energy needed to finish a fixed task?

advancedPower gating cuts the supply to an idle block. Why does it need isolation cells and retention flops?

Practise these 9 questions with animations