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.
| Type | Direction | Use |
|---|---|---|
| Low-to-High LS | Low VDD → High VDD | CPU → I/O signals |
| High-to-Low LS | High VDD → Low VDD | I/O → CPU signals |
| Bidirectional LS | Both directions | I2C, SPI interfaces |
| Enable LS | Low→High with enable | Combined 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