Level Shifter Cells (LSC) are essential standard cells in Multi-Voltage designs. They convert signals from one voltage level to another, enabling smooth communication across different voltage domains. Synthesis tools insert level shifters automatically, similar to isolation cells.
Types of Level Shifter Cells
Low to High Level Shifters
Low to High Level Shifters allow signals to move from a lower voltage domain to a higher one. They amplify the source signal to ensure proper interpretation in the destination domain. For example, if a 0.7V signal crosses from a 0.7V domain to a 1.0V domain, it represents logic 1 in the lower domain. Without a Low to High Level Shifter, this signal becomes unknown (or ‘X’) in the higher voltage domain.
High to Low Level Shifters
High to Low Level Shifters facilitate signals transitioning from a higher voltage domain to a lower one. These shifters attenuate the source signal. While using a High to Low Level Shifter is optional—since the lower voltage domain can interpret the signal—employing one helps prevent stress on the transistors in the lower voltage domain caused by the higher voltage of the source signal.
Bi-directional Level Shifters
Bi-directional Level Shifters accommodate situations where dynamic voltage scaling or dynamic voltage and frequency scaling occurs. In these cases, the voltage relationship between the source and destination can change during operation. Bi-directional shifters handle both low-to-high and high-to-low voltage signals, ensuring reliable communication.
Importance of Level Shifter Cells
In Low Power Designs, multiple power domains operate at different voltage levels within a single partition. Since providing several power supplies in the same design is impractical, engineers use level shifters to deliver the required voltages where necessary. These circuits effectively “shift” the voltage levels to meet design requirements.
Characteristics of Level Shifter Cells
- Placement: Level shifter cells appear in the Netlist and are typically located near the port.
- Types: They can be buffer type or latch type, defined in the Unified Power Format (UPF) based on the voltage domain requirements.
- Size: Low to High Level Shifters are generally more complex and larger than High to Low Level Shifters, reflecting the principle that it’s easier to destroy than to create.
Example of Voltage Domains
Consider a design with three voltage domains:
Voltage Domain | Operating Voltage |
Domain 1 | 1.0 V |
Domain 2 | 0.7 V |
Domain 3 | 0.9 V |
Setting Level Shifter Strategy
To implement a level shifter strategy for signals crossing between voltage domains, you can use the set_level_shifter command. Here’s the syntax:
Syntax
set_level_shifter level_shifter_name
– domain domain_name
– elements list
– applies_to < inputs | outputs | both >
– threshold value
– rule < low_to_high | high_to_low | both >
– location < self | parent | sibling | fanout | automatic >
Arguments Explained of Level Shifter
Argument | Description |
level_shifter_name | User-defined name for the level shifter strategy. |
domain domain_name | Specifies the domain where the strategy applies. |
elements list | Identifies ports or nets affected by the strategy. |
applies_to | Defines whether the strategy applies to input ports, output ports, or both (default is both). |
threshold value | Sets the voltage (V) threshold for determining level shifter necessity (default is 0). |
rule | Specifies required level shifter types (default is both). |
location | Determines where the level shifter is placed in the logic hierarchy (default is automatic). |
By understanding and applying level shifters effectively, engineers can optimize communication between varying voltage domains in complex VLSI designs.