What does a TOP-level power-intent structure look like, using the Mychip example as a reference?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Technical Explanation
A top-level power-intent file follows a consistent shape: declare the domains, then declare the supply nets reused across them, wire each domain's primary power/ground, and finally assemble a powerstate table on top. At the top, VDD1p0, VDDdsp, VDD0p9 and GND are created with -domain PD_MYCHIP -reuse so the same physical nets can be referenced again inside each subdomain without re-creating them.
Architecture-level Reasoning
Reuse at the top keeps the supply topology consistent — a subdomain that needs the always-on 1.0V rail references the same net object the top declared rather than inventing a duplicate, which is what lets isolation and retention strategies later point back at the always-on rail for correctness.
Step-by-step Walkthrough
1) create_power_domain PD_MYCHIP -include_scope; PD_CPU -elements {U_CPU}; PD_DSP -elements {U_DSP}; PD_COP -elements {U_COP}. 2) Supply nets VDD1p0, VDDdsp, VDD0p9, GND are created with -domain PD_MYCHIP -reuse, then re-created inside each subdomain so each domain can reference the shared physical net. 3) PD_COP additionally gets its own switched net: create_supply_net VDD1p0_SW -domain PD_COP — this is the virtual/switched output rail, distinct from the always-on VDD1p0 input. 4) set_domain_supply_net is called for all four domains, with PD_COP's primary power net set to the switched VDD1p0_SW. 5) A PST is finally built: create_pst MYCHIP_pst supplies {VDD1p0 VDD0p9 VDDdsp PD_COP_SW/VDD}, with add_pst_state defining modes PM1-PM4.
Command
create_power_domain PD_MYCHIP -include_scope
create_supply_net VDD1p0 -domain PD_MYCHIP -reuse
set_domain_supply_net PD_MYCHIP -primary_power_net VDD1p0 primary_ground_net GNDSwitch-by-switch
-include_scope: top domain also owns top-level glue logic. -reuse
(on create_supply_net): reuses the same net object in a lower/
different domain rather than creating a duplicate net, auto-creating
the port and connection as needed. -primary_power_net/-
primary_ground_net (set_domain_supply_net): designates which supply
net every cell in that domain is implicitly connected to.Expected Result
A coherent top-level structure where every subdomain's primary supply either points at a shared always-on net (reused from the top) or at its own domain-local switched net (VDD1p0_SW for PD_COP), and the whole state space is captured in one PST.
Possible Implementation Error
Forgetting -reuse when re-declaring a supply net inside a subdomain, which creates an unintended second, unconnected net of the same name instead of tying back to the top-level rail.
Likely Tool / Clp Warning
This topic is not covered in enough depth here to give a fully reliable answer regarding a specific tool error code for a missing -reuse; the practical symptom would be a disconnected/duplicate supply net.
Root Cause
create_supply_net without -reuse always creates a brand-new net object, even if a same-named net already exists at a higher scope.
Debugging Sequence
1) List all create_supply_net calls across the hierarchy and check for -reuse where the net should be shared. 2) Use the reporting commands to confirm a subdomain's declared net actually resolves to the top-level physical rail. 3) Recheck set_domain_supply_net's primary_power_net/primary_ground_net arguments against the intended (reused vs local) net. A duplicated, unconnected supply net breaks the intended power topology and must be caught before commit_upf/synthesis.
Continue learning free
Get a practical low-power chapter
Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.
Continue practising