Module 62 min

Level Shifters & Isolation Cells

Level Shifter

Level Shifter

Required whenever a signal crosses from one voltage domain to another. Without a level shifter, a 0.6V logic "1" from the CPU domain is not a valid "1" for a 1.8V I/O cell.

TypeDirectionUse
Low-to-High LSLow VDD → High VDDCPU → I/O signals
High-to-Low LSHigh VDD → Low VDDI/O → CPU signals
Bidirectional LSBoth directionsI2C, SPI interfaces
Enable LSLow→High with enableCombined LS + Isolation

Isolation Cell

When a power domain turns OFF, its outputs become undefined (floating). Isolation cells clamp these outputs to a safe value (0 or 1) to protect the always-on logic receiving them.

Pro Tip

Isolation Cell Placement Rule — Isolation cells must be placed in the always-on domain (the receiving side), not in the switchable domain - because when the switchable domain powers down, the isolation cell must still be powered to drive the clamped value.

UPF - Level Shifter & Isolation in UPF
# Specify level shifter at domain boundary
set_level_shifter LS_CPU_IO   -domain          PD_CPU   -applies_to     outputs   -threshold      0.5   -rule           high_to_low

# Specify isolation cell for power-gated domain outputs
set_isolation ISO_CPU   -domain          PD_CPU   -applies_to     outputs   -clamp_value    0   -isolation_power_net VDD_AON   # powered from AON!

# Control when isolation is active
set_isolation_control ISO_CPU   -domain    PD_CPU   -isolation_signal cpu_isolate_n   -location  parent