Support of Hierarchical 1801 for Import Flow
The import 1801 flow in Power Manager also supports a hierarchical 1801 input file. A hierarchical 1801 has the load_upf and set_scope commands which set the scope to each of the specified list of instances and executes the set of 1801 commands in the child 1801 file, specified as the argument of the load_upf command. Upon return, the current scope is restored to what it was prior to invocation. Supply nets and ports will be created for load_upf/set_scope block, based on the create_supply_net and create_supply_port commands mentioned in the parent 1801 file, along with that, it will also obey the settings for createExtractionLogFile and ResolveTopNets.
For all the instances in the design, domain assignment is based on create_power_domain and if no element has the power domain specified, it will belong to default power domain. In case there is no default power domain in the scope, then its upper scope default power domain will be looked at to assign the power domain.
Honoring Command Sequence and Precedence
The traversal of the input 1801 file in the import flow follows a set of the below-mentioned rules related to the command sequence and their precedence.
-
Any explicit assignment of the elements (instances) in the
create_power_domaincommand takes precedence over the extent that includes elements (instances) as a part of that power domain.
If there is an existing explicit domain assignment withcreate_power_domainin the elements section, irrespective of the ordering ofcreate_power_domain,set_scope, orload_upfcommands, the precedence of scope is defined by the nearest ancestor that has an explicit domain assignment usingcreate_power_domain.
This can be shown in the following case considering the sequence of commands in the input 1801file:set_scope "/"
create_power_domain PD2 -elements {I0/I2} ….
create_power_domain PD1 -element { . } ....
set_scope "I0"
create_power_domain PD3 -elements {.} ….
Result: I0/I2 gets assigned to the power domain PD2 and not PD3 -
Explicit assignment of multiple domains to the same instance is an error and 1801 stops the import process. This can be shown in the following case:
set_scope "/"
create_power_domain PD1 -elements {I0} ….
set_scope "I0"
create_power_domain PD2 -element { . } ….
Result: Error case -
connect_supply_netalways takes precedence overcreate_power_domain. If there are more than oneconnect_supply_netcommands for the same supply net, the last command in the order is honored. In case of multipleconnect_supply_netcommands, the last command is applicable.set_scope "/"
create_power_domain PD1 -elements {I0} ….
set_scope "I0"
create_power_domain PD2 -element { . }….
Result: I0/vdd is connected to VDD2
Related Topics
Handling of Low Power Special Cells
Removing Imported Power Intent
Return to top