In this article , we delve into several key topics related to UPF and its interaction with standard cells. We begin by discussing the relationship between UPF and corresponding standard cells, outlining how they work together in power management. Next, we compare UPF with standard cells, providing insights into their respective roles and functionalities. The video then details the specific UPF commands associated with various types of cells, including header/footer switch cells, isolation cells, retention cells, and level shifter cells, explaining how each command facilitates effective power management. Additionally, we cover the placement of these standard cells within power domains, illustrating the strategic considerations for optimizing power distribution. Through this comprehensive discussion, readers gain a thorough understanding of how UPF and standard cells integrate to enhance power efficiency in chip design.
UPF & Standard Cells:
We will talk about four types of standard cells : Switch Cell, Isolation Cell, Retention Cell and Level Shifter Cell and their UPF commands..These are special types of standard cells.
UPF vs Standard Cells Mapping:
create_power_switch : Header/Footer Switch Cells
set_isolation : Isolation Cells
set_retention : Retention Cells/Retention Flops
set_level_shifter : Level Shifter Cells
Power Switch Cells:
To turn OFF power supply to a power domain for a particular time of operation, we need a power switch to cut the power supply(VDD/VSS) to the domain. The create_power_switch command defines an instance of a power switch in the power domain. The switch is created within the scope of the power domain. The switch is either turned on or off as per the requirement.
Isolation Cells:
When Power Gating method is applied to a design, in a particular mode of operation, we might end up with few ON domains and few OFF domains. If the outputs of the Shutdown domain are connected to the Active Part of the design, then it might lead to Invalid Signal Transmission and crowbar current as a result. To avoid this, an Isolation Cell is placed on the output nets of Switched OFF domains interacting with an Active Portion of the Design.
Isolation UPF Command:
- The set_isolation command specifies the design elements in the domain to isolate using the specified strategy.
- isolation_supply_nets can specify a single power net, a single ground net, or both.
- If only an isolation power net is specified, then automatically the primary ground serves as the isolation ground.
- If only an isolation ground net is specified, then the primary power net serves as the isolation power.
-At least one of -isolation_power_net or -isolation_ground_net shall be specified, unless -no_isolation is specified.
Retention Cells/Flops:
A retention cell is used to retain the data required in shut down power domain. A retention cell consists of a flipflop and a save latch and has two control signals, SAVE and RESTORE. SAVE signal indicates when the data should be saved in the latch, which is just before Switching OFF the power. RESTORE signal tells when the data stored in latch should be restored which is when the domain gets back to active state.
Retention UPF Commands:
- The set_retention command specifies which registers in the power domain need to be retention registers.
- Only the registers implied in the elements list shall be provided retention capabilities.
- At least one of -retention_power_net or - retention_ground_net shall be specified.
- If only -retention_power_net is specified, the primary ground net shall be used as the
retention ground supply.
If only -retention_ground_net is specified, the primary power net shall be used as the retention power supply.
If both are specified, then these options specify the supply nets to use as the retention power and ground nets.
Level Shifter Cells:
When two blocks powered with different voltage levels interact with each other, invalid signal transmissions and crowbar current generation may take place. To avoid this, level shifter cells are placed between the blocks with distinct voltage values. Level shifter cell can convert a high voltage level to low voltage level between the domains. Level shifters are the placed on signals that have sources and sinks operating at different voltages.
Level Shifter UPF Command:
- The set_level_shifter command can be used to set a strategy for level shifting during implementation.
- Level shifter rule can be low_to_high/high_to_low or both .
- If low_to_high is specified, signals going from a lower voltage to a higher voltage get a level shifter when the voltage difference exceeds that specified by threshold .
-If high_to_low is specified, signals going from a higher voltage to a lower voltage get a level shifter when the voltage difference exceeds that specified by threshold .
If both is specified, it is equivalent to having specified both rules in the strategy.
Types of Level Shifter Cells :
Level Shifter POSITION defines where the level shifter cells are placed in the logic hierarchy. All necessary supplies need to be available in the specified location.
Self : the level shifter cell is placed inside the model/cell being shifted.
Parent : the level shifter cell is placed in the parent of the cell /model being shifted.
Sibling : a new sibling is created into which the level shifter cells are placed.
Fanout : level shifter occur at all fanout locations (sinks) of the port being shifted.
Automatic : the implementation tool is free to choose the appropriate locations.
Standard Cell Placement:
Courtesy : Image by www.pngegg.com