Why Learn About Library Cells for Low Power? Power management requires specialized library cells beyond standard digital gates: isolation cells that safely clamp signals, retention flip-flops that preserve state without power, level shifters that convert between voltage domains, and multi-Vt cell variants for leakage optimization. In this tutorial, you'll understand the structure, behavior, and selection criteria for these critical low-power library elements.

13 min read | Intermediate Level

What You'll Learn

  • Understand isolation cell types and selection criteria
  • Learn retention flip-flop architecture and timing requirements
  • Master level shifter variants for different voltage transitions
  • Apply multi-Vt cells for leakage power optimization

The Library Cell Foundation

Your UPF specifies isolation, retention, and level shifters. Synthesis transforms this intent into gates. But which gates? Standard AND gates can't function without power. Standard flip-flops lose state when power is removed. Standard buffers can't safely translate between voltage levels.

Low-power design requires specialized library cells engineered specifically for power management scenarios.

Using incorrect library cells—or cells not designed for power management—causes functional failures in silicon. Isolation cells without always-on supply capability allow X-propagation. Retention cells without proper power domains lose state. Level shifters without correct voltage tolerance cause signal corruption.

Isolation Cells

Isolation Cell Purpose

When a domain powers down, its outputs become X (unknown). Isolation cells prevent this X-propagation by clamping signals to known values (0 or 1) using an always-on supply.

Isolation Cell Types

Cell TypeClamp ValueLogic FunctionUse Case
ISO_AND0Z = A & ENActive-low signals
ISO_OR1Z = A | ~ENActive-high signals
ISO_LO0Z = EN ? A : 0Clamp to logic 0
ISO_HI1Z = EN ? A : 1Clamp to logic 1

Isolation Cell Structure


// ISO_AND cell schematic
module ISO_AND (
  input  A,      // Data input (from powered-down domain)
  input  EN,     // Isolation enable (always-on supply)
  output Z       // Isolated output (to always-on domain)
);
  // Powered by always-on supply (VDD_AON)
  // When EN=0: Z=0 (isolated/clamped)
  // When EN=1: Z=A (pass-through)

  assign Z = A & EN;
endmodule

// ISO_OR cell schematic
module ISO_OR (
  input  A,
  input  EN,
  output Z
);
  // When EN=0: Z=1 (isolated/clamped)
  // When EN=1: Z=A (pass-through)

  assign Z = A | ~EN;
endmodule

Selection Criteria

  • Clamp value: Match signal semantics (0 for active-low, 1 for active-high)
  • Drive strength: Match fanout load (X1, X2, X4, X8)
  • Area: Minimize for non-critical paths
  • Supply pins: Ensure cell supports always-on supply connection

Quick Check

Q: Why can't a standard AND gate be used for isolation?

Show Answer

A standard AND gate is powered by the domain's primary supply. When the domain powers down, the AND gate itself loses power and its output becomes X—the exact problem isolation is meant to prevent. Isolation cells must be powered by an always-on supply independent of the domain being isolated, ensuring they remain functional and drive the clamp value even when the source domain is off.

Retention Flip-Flops

Retention Cell Architecture

Retention flip-flops extend standard flip-flops with shadow latches powered by always-on retention supply:

Standard Flip-Flop:
  [D] --> [Master Latch] --> [Slave Latch] --> [Q]
          Powered by VDD (switchable)

Retention Flip-Flop:
  [D] --> [Master Latch] --> [Slave Latch] --> [Q]
          Powered by VDD (switchable)
                 |
                 v
          [Shadow Latch] --> (retention storage)
          Powered by VDD_RET (always-on)

SAVE operation: Copy Slave Latch --> Shadow Latch
RESTORE operation: Copy Shadow Latch --> Slave Latch

Retention Cell Interface


// Retention flip-flop (DFFR)
module DFFR_X1 (
  input  D,           // Data input
  input  CK,          // Clock
  input  RN,          // Active-low reset
  input  SAVE,        // Save trigger (capture to shadow latch)
  input  RESTORE,     // Restore trigger (restore from shadow)
  output Q,           // Data output

  // Power pins
  input  VDD,         // Primary supply (switchable)
  input  VDD_RET,     // Retention supply (always-on, typically 0.6V)
  input  VSS          // Ground
);

  // Internal: master/slave latches (VDD powered)
  // Internal: shadow latch (VDD_RET powered)

  // Normal operation: Q follows D on CK rising edge
  // SAVE=1: Shadow latch captures current Q value
  // VDD powers down: Shadow latch retains value
  // VDD powers up: Q is X until...
  // RESTORE=1: Q restored from shadow latch
endmodule

Timing Requirements

SAVE timing:
  SAVE pulse width: = 3-5 clock cycles (ensure all FFs capture)
  SAVE to power-down: = 10 clock cycles (allow propagation)

RESTORE timing:
  Power-up to RESTORE: = 20 clock cycles (allow supply stabilization)
  RESTORE pulse width: = 3-5 clock cycles (ensure all FFs restore)

Level Shifters

Level Shifter Types

Different voltage transitions require different level shifter architectures:

TypeTransitionArchitectureDelay
LS_HLHigh ? Low (1.0V ? 0.8V)Pass-through bufferFast (~50ps)
LS_LHLow ? High (0.8V ? 1.0V)Cross-coupled invertersSlow (~200ps)
LS_DUALBidirectionalCombined HL + LHVaries

High-to-Low Level Shifter (LS_HL)


// LS_HL: 1.0V input to 0.8V output
module LS_HL_X1 (
  input  A,      // Input (high voltage domain, e.g., 1.0V)
  output Z,      // Output (low voltage domain, e.g., 0.8V)

  input  VDDH,   // High voltage supply (1.0V)
  input  VDDL,   // Low voltage supply (0.8V)
  input  VSS
);

  // Simple buffer architecture works because:
  // - 1.0V logic-high easily recognized as high by 0.8V domain
  // - 0V logic-low is 0V in both domains

  // BUT: Input protection needed to prevent PMOS gate oxide stress
endmodule

Low-to-High Level Shifter (LS_LH)


// LS_LH: 0.8V input to 1.0V output
module LS_LH_X1 (
  input  A,      // Input (low voltage domain, e.g., 0.8V)
  output Z,      // Output (high voltage domain, e.g., 1.0V)

  input  VDDL,   // Low voltage supply (0.8V)
  input  VDDH,   // High voltage supply (1.0V)
  input  VSS
);

  // More complex: cross-coupled PMOS pull-up
  // Required because 0.8V input insufficient to fully switch
  // NMOS transistors in 1.0V domain

  // Slower than LS_HL due to cross-coupled feedback settling
endmodule

Multi-Vt Cell Variants

Threshold Voltage Trade-offs

Modern libraries provide three Vt variants for each cell:

Vt TypeSpeedLeakageAreaUse Case
LVTFastestHighestSmallestCritical timing paths
RVTMediumMediumMediumModerate paths
HVTSlowestLowestLargestNon-critical paths

Leakage Power Comparison

Example: NAND2 gate in 7nm process

NAND2_LVT:
  Delay: 15ps
  Leakage: 12nA
  Area: 0.45 um²

NAND2_RVT:
  Delay: 20ps (+33%)
  Leakage: 3nA (-75%)
  Area: 0.48 um² (+7%)

NAND2_HVT:
  Delay: 28ps (+87%)
  Leakage: 0.8nA (-93%)
  Area: 0.52 um² (+16%)

Optimal mix: 10% LVT, 30% RVT, 60% HVT
  Timing: Meets all constraints
  Leakage: 45% reduction vs. all-LVT
  Area: +2.3%

Multi-Vt optimization is the single most effective leakage reduction technique, typically achieving 40-50% savings with minimal area/timing impact. Always specify multi-Vt constraints in synthesis.

Common Beginner Mistakes

Mistake #1: Using isolation cells without always-on supply

Symptom: X-propagation occurs despite isolation specified in UPF.

Cause: Selected library cells don't support separate always-on supply pin.

Fix: Verify library cells have VDD_AON pin distinct from domain VDD.

Mistake #2: Insufficient retention cell hold time

Symptom: Intermittent retention failures (some FFs lose state).

Cause: SAVE pulse too short—slow FFs don't complete capture.

Fix: Hold SAVE for =5 clock cycles, wait =10 cycles before power-down.

Mistake #3: Wrong level shifter direction


// WRONG: Using LS_HL for low-to-high transition
// 0.8V domain drives 1.0V domain with LS_HL cell
LS_HL ls_wrong (.A(signal_08v), .Z(signal_10v));
// Result: Insufficient voltage swing, signal corruption

// CORRECT: Use LS_LH for low-to-high
LS_LH ls_correct (.A(signal_08v), .Z(signal_10v));

Mistake #4: Over-using LVT cells

Impact: 3-5× higher leakage power for minimal timing benefit.

Fix: Use LVT only on critical paths (10-15% of design). Use HVT on all non-critical paths (60-70%).

Summary

In this tutorial, you learned:

  • Isolation cells (ISO_AND, ISO_OR, ISO_LO, ISO_HI) clamp signals using always-on supply, preventing X-propagation from powered-down domains
  • Retention flip-flops use shadow latches with always-on retention supply to preserve state during power-down
  • Level shifters translate between voltage domains: LS_HL (high-to-low, fast), LS_LH (low-to-high, slow)
  • Multi-Vt cells (LVT/RVT/HVT) provide leakage-speed trade-offs: use LVT sparingly on critical paths, HVT extensively on non-critical paths
  • Cell selection criteria: clamp value, drive strength, area, supply pin compatibility
  • Retention timing: SAVE for 5+ cycles, wait 10+ cycles before power-down, restore after 20+ cycles of power-up
  • Multi-Vt optimization achieves 40-50% leakage reduction with ~2% area overhead
Did you find what you were looking for?

Quiz

No quiz questions available for this article.