Level 2 · Construction & Debugging

Intermediate Low Power Interview Questions

Construct and validate UPF strategies, cell mapping, hierarchy, power states, always-on paths, and implementation reports.

0 of 20 marked complete

What to practise at this level

Construct and validate UPF strategies, cell mapping, hierarchy, power states, always-on paths, and implementation reports.

  1. 01 How do you create a power domain in UPF, and what does the create_power_domain command actually do?Intermediate · A power domain groups design elements that share the same power-supply behavior. create_power_domain declares that group and its scope in the hierarchy. A power domain is strictly a synthesis construct, not a netlist object -- it's bookkeeping the tool uses, not a physical block by itself. Every domain must eventually be given exactly one primary power net and one primary ground net.
  2. 02 How do you create supply ports and supply nets for a power domain?Intermediate · create_supply_port declares a port-level connection point associated with a domain; create_supply_net creates the actual net object that a supply voltage travels on. connect_supply_net then ties a net to one or more ports/pins. Nets can be reused across nested domains with -reuse so that the same physical rail doesn't need to be redeclared from scratch at every hierarchy level.
  3. 03 What is a supply set in UPF, and how is it different from a plain supply net?Intermediate · A supply net is a single conductor. A supply set (create_supply_set) is a higher-level, abstract object that bundles a power function and a ground function (accessed as SS.power / SS.ground) under one handle, and is domain-independent by default. It lets strategies and constraints refer to 'a supply' as a unit instead of juggling separate power-net and ground-net names everywhere.
  4. 04 How do you connect a supply net to a domain's primary power/ground using set_domain_supply_net?Intermediate · set_domain_supply_net takes an already-created supply net and designates it as a domain's primary power or primary ground. Once set, every cell inside that domain is implicitly considered connected to that net without touching each instance's PG pins by hand.
  5. 05 How do you write an isolation strategy with set_isolation, and what do its key options control?Intermediate · set_isolation defines which ports of a domain get isolation cells, what supply powers those isolation cells, and what fixed (or latched) logic value they clamp to once the domain is shut down -so downstream always-on logic never sees a floating or garbage value from a powered-off block.
  6. 06 What isolation placement locations are available (self, parent, fanout, automatic), and how do you choose between them?Intermediate · The -location option decides where an isolation cell physically/ logically sits relative to the domain boundary: inside the domain being isolated (self), in the surrounding parent domain (parent), replicated at every sink fanout point (fanout), or left for the tool to decide (automatic).
  7. 07 What are the different isolation clamp values (0, 1, latch), and when would you use each?Intermediate · clamp_value tells the isolation cell which logic value to force on its output once isolation is active: 0 forces a logic low (built as an AND-type gate), 1 forces a logic high (built as an OR-type gate), and latch holds whatever value was present just before isolation turned on.
  8. 08 How do you write a level-shifter strategy with set_level_shifter, and what do its key options control?Intermediate · set_level_shifter defines a strategy for inserting level-shifting cells wherever a signal crosses a voltage boundary, specifying which ports it applies to, the direction of voltage change it should handle, and where the shifter cell should physically sit.
  9. 09 How do you decide between placing a level shifter in "self" vs "parent" location?Intermediate · -location self places the level shifter physically/logically inside the domain whose boundary is being crossed; -location parent places it just outside, in the surrounding domain. The choice generally tracks whether the crossing signal is an input or output of the shutdown domain and which side should host the shifting logic.
  10. 10 How do you write a retention strategy with set_retention, and what supplies does it need?Intermediate · set_retention declares which state elements (typically flip-flops) in a domain need retention hardware, and which dedicated always-on retention power/ground net backs the save-latch so their contents survive while the domain's primary supply is off.
  11. 11 How do you specify save and restore signals with set_retention_control?Intermediate · set_retention_control ties the abstract save/restore behavior declared by set_retention to actual logic nets and their active sense, telling the tool exactly which net and polarity triggers a save operation and which triggers a restore.
  12. 12 How do you create a power switch with create_power_switch, and what are its input/output/ control ports?Intermediate · create_power_switch declares a virtual (abstract) power-switch instance within a domain's scope. It gates an always-on input supply through to a switched output supply under the direction of one or more control signals, optionally with an acknowledge handshake confirming the switch has settled.
  13. 13 How do you map an abstract UPF power switch to a real library cell with map_power_switch?Intermediate · map_power_switch takes the abstract switch created by create_power_switch and binds it to one or more real library cells, so the tool can actually instantiate physical switch transistors during implementation instead of leaving a placeholder construct.
  14. 14 How does a "virtual rail" get created in practice -walk through the switched supply net in the Mychip example.Intermediate · A virtual (switched) rail isn't produced by one dedicated command -it emerges from the combination of declaring a separate supply net inside the shutdown domain and making a power switch's output_supply_port bind to that net. The switch is what turns an ordinary-looking net into a rail that is only live when the switch is on.
  15. 15 How do you build a power state table using create_pst and add_pst_state?Intermediate · A power state table enumerates every legal combination of voltage/ off states across a set of supplies, giving each combination a named mode that other tools and checks can validate the design's actual power behavior against.
  16. 16 What are always-on control paths and always-on buffers used for in a real design?Intermediate · Always-on control paths are the signals -- sleep, acknowledge, save, restore, isolation-enable -- generated by the power controller that must keep working correctly even while the domains they control are shut down. Always-on buffers are the special cells used to carry these signals safely through a powered-down region without losing power themselves.
  17. 17 What is a feedthrough path, and what happens if it isn't handled correctly?Intermediate · A feedthrough path is a signal path that passes straight through a cell or macro from one side to the other without being logically transformed. It's flagged specifically in the context of pins that lack related power/ground pin information.
  18. 18 How is UPF hierarchy built for nested/composite power domains?Intermediate · Nested power domains arise naturally from scoping create_power_domain calls to sub-instances that already sit inside a bigger domain's elements -- there's no separate 'declare this as a child' command. UPF also provides create_composite_domain to formally combine several subdomains sharing one supply into a single higher-level domain object.
  19. 19 What library cell attributes does a low-power cell need to have (e.g. is_isolation_cell, is_level_shifter, switch_cell_type)?Intermediate · For the tool to recognize and correctly use a low-power cell -isolation, level shifter, retention, clock gate, or always-on -- the Liberty library must mark it with specific cell- and pin-level attributes. Without these, the cell is treated as an ordinary logic cell and cannot be automatically selected for power-management insertion.
  20. 20 What commands would you use to generate a basic low-power implementation report (e.g. report_power_domains, report_mv_cells, report_pst)?Intermediate · A handful of report_* and query_* commands let you inspect what the tool actually built after UPF is loaded and power-management cells are inserted -- domain contents, mapped multi-voltage cells, and the power state table -- so you can confirm the implementation matches the intended low-power architecture.