4.1 Power domains

advertisement
4. Power domains, supply sets, name spaces, and
precedence
This clause provides an overview of power domains, supply sets and names in UPF.
4.1 Power domains
From a top-down view of power design specification, the fundamental object is the power
domain. A power domain is a collection of design elements that share a primary supply
set (see 4.2). The association of a primary supply set to all elements in a domain
provides the fundamental semantics and automation opportunities in UPF as the primary
supply set is implicitly connected to all elements within the domain.
The design consists of a hierarchical tree of design elements (logic hierarchy). The logic
hierarchy level where a power domain is created is called the scope of the power domain.
The set of design elements that belong to a power domain are said to be the extent of that
power domain. This distinction is important—while a design element can be the scope of
multiple power domains, it can be in the extent of one and only one power domain.
Every design element must be included in a power domain.
As each power domain exists within a scope of the logic hierarchy, there is an implicit
hierarchy of power domains that matches the location in the hierarchy of the power
domain’s scope. A design element is a member of the power domain that includes its
parent instance unless the design element has been explicitly included as an element of
another power domain whose scope is the element or an ancestor of the element.
In addition to creating a hierarchical structure of power domains, UPF commands create
and connect new objects that did not exist in the HDL description – e.g., switches, supply
nets, supply ports, isolation elements and level shifting elements. UPF provides the
ability missing in HDLs to specify the low power design intent and implementation. By
tightly associating the power domain and other UPF created objects and connections with
the HDL design, designers can design, verify, and implement complex chips complete
with all power-related connections and functionality.
— For verification, every object in the power domain and its power distribution and
control network exists within the logic design. This allows the designer to see
these objects during simulation, in the waveform viewer and the hierarchy
browser.
— For implementation, UPF provides a convenient way to manipulate and report
information on groups of cells that share a common power and ground supply.
— And, UPF ensures that implementation semantics having matching simulation
semantics.
A power domain can be either contiguous or non-contiguous. The power domain is
contiguous if going from any object in the extent of the power domain to any other object
in the extent does not require leaving that power domain. A power domain is non-
contiguous if the extent of the domain needs to be left when connecting supply sets to
design elements in the domain's extent.
Power supply network objects (supply nets, supply ports, supply sets and switches) are
created within the logic hierarchy independent of the power domain definitions. This
allows sharing of common components of the supply distribution network across multiple
power domains or the specification of power design constraints independent of the power
domain the object is within. Logic nets and ports created in UPF are also created within
the logic hierarchy independent of the power domain definitions. This allows the power
control network to be created and distributed across power domains. All other UPF
objects are created within the context of a power domain.
4.2 Supply nets and ports
Supply nets transport an electrical current. Supply ports provide the ability to connect a
supply net to a design element (including switches). Supply nets and ports may be
created in UPF or in the HDL design. If created in the HDL, the net or port must be of
the supply net type defined in the UPF SystemVerilog or VHDL package (see annex B).
When created in UPF, the supply net is created within the scope of a design element of
the logic hierarchy. When created in UPF, a supply port is created on the interface of an
element in the logic hierarchy. The name of the supply net or port cannot conflict with
the name of an existing net or port (logic or supply) defined for that element.
Supply ports provide the ability for a design element to use a supply net that exists
external to it. Supply ports consists of two halves. The first half is the hiconn side which
is visible to the parent of the design element whose interface contains the port. The
second half is the loconn side which is visible internal to the design element whose
interface contains the port. (Note: Although a port on a design element that is a child
relative to another design element can be considered to be part of the interface of the
parent design element, the port is explicitly defined only on the child instance. Hence,
the definitions of hiconn and loconn are relative to the design element on which the port
is explicitly defined.) When a supply net that is declared in the scope of an ancestor to
the element containing a supply port in its interface is connected to the supply port, the
connection is made to the hiconn side of the supply port. A supply net with the same
name as the supply port is implicitly created and implicitly connected to the supply port
from the scope of the design element if the supply port name is referenced by a UPF
command in the context requiring a supply net name. A supply net may be explicitly
created and explicitly connected to a supply port from within the scope of the design
element containing the port on its interface. The supply net may have the same name as
the supply port or a different name. A supply net created in the scope of a design element
and connected to a supply port in the interface of the same design element is connected to
the loconn side of the port.
The electric current transported by a supply net is originated by a root supply driver (e.g.,
a supply port or pad on the interface to the design or an on-system voltage regulator or
bias generator modeled in HDL) and may be conditionally propagated by a switch
(modeled in HDL or created in UPF, see create_power_switch command. A supply net
connected to multiple supply sources must be resolved (see section 7.20)
4.3 Supply sets
Because a single supply net has no meaning relative to the power being supplied to any
design element, UPF provides the ability to create supply sets. UPF predefines the
following supply set handles for a domain: primary, default_retention, and
default_isolation.
A supply set relates multiple supply nets as a complete power source for one or more
design elements.
Each supply net in a supply set provides a function. UPF predefines the following supply
net functions: power, ground, pwell, nwell, deeppwell, and deepnwell. A completely
specified predefined supply set shall have at least power and ground supply nets defined.
A predefined supply set may also have any or all of the other functional supply nets
defined. Additional supply net functions may also be defined for any supply set.
Once created, a supply set can be associated with a domain, retention strategy, isolation
strategy for a specific purpose. The supply nets of a set are implicitly “routed” to all
elements that require them. Implicit “routing” includes the implicit creation of supply
ports and nets required to propagate the supply net to each element where it is required.
UPF defines implicit and automatic connection semantics for the supply nets of a supply
set based on the purpose of the supply set in a given domain or strategy context and the
function that a supply net performs in the context of the supply set. (NOTE: A supply
net may be included in more than one supply set. The function the supply net performs in
one supply set is unrelated to the function it may play in any other supply set that it may
be included within.)
4.5.1 Implicit connection of supply nets of a supply set
The supply nets of a supply set are implicitly connected as the power source for an
element when that element has no supply ports. Implicit connections define additional
simulation semantic behavior (see section 5). Implicit connections are made under the
following conditions:
4.5.1.1 Primary supply set
The supply nets of a domain’s primary supply set are implicitly connected to any design
element from the logic hierarchy that are within the extent of the domain if the element
has no supply ports defined on its interface.
NOTE--The presence of any supply ports implies that the design element is a poweraware element – that is, the design element is fully responsible for its internal powerrelated requirements and behavior. Therefore, the semantics that would otherwise be
applied to the implicit connection of a supply set could create conflicts or contradictory
behavior of the design element.
4.5.1.2 Retention supply set
The supply nets of a retention strategy’s supply set are implicitly connected to the
retention (i.e., balloon latch or shadow register) functionality that is implied for any
register in the design to which the strategy applies.
NOTE—Retention supply sets are never implicitly connected to explicit instances of
retention registers as the retention logic is not implied. Explicit instances of retention
registers must be power-aware with supply ports.
4.5.1.3 Isolation supply set
The supply nets of an isolation strategy’s supply set are implicitly connected to the
isolation functionality implied by the application of the strategy.
NOTE—Isolation supply sets are never implicitly connected to explicit instances of
isolation logic as the logic is not implied. Explicit instances of isolation logic must either
be included in a domain where the primary supply is appropriate to use as the only power
supply for the element or must be power-aware elements with supply ports.
4.5.1.4 Level shifter supply sets
The supply nets of a level shifting strategy’s supply set are implicitly connected to the
input and output ports respectively of the level shifters implied by the application of the
strategy.
NOTE—Level shifter supply sets are never implicitly connected to explicit instances of
level shifters as the element is not implied. Explicit instances of levels shifters must be
power-aware with supply ports.
4.5.2 Automatic connection of supply nets of a supply set
The supply nets of a supply set are automatically connected to the supply ports of
elements within a power domain (elements from the logic hierarchy or created in UPF)
under the following conditions:
1. The element has a supply port and the supply port as a pg_type attribute (either an
HDL attribute name pg_type with a string value or an implementation library
model with a pg_type attribute – either predefined or user-defined string value).
2. AND
a. If the value of the pg_type attribute matches the following:
supply_set_handle_function_name
example: mem_core_power
Where: supply_set_handle is the name of the handle given to the supply
set when it was associated with the domain. function_name is the function
the supply net provides for the supply set.
Then the supply net providing the specified function for the specified
supply set is automatically connected to the port.
b. OR
c. If the value of the pg_type attribute of the port matches a value specified
via the –connect option of the associate_supply_set command (see 7.9),
then the supply net providing the function specified in the –connect option
is automatically connected to the port.
3. The following contextual rule also applies: Automatic connection of supply nets
of an isolation supply set may be made to supply ports of the isolation elements as
though the isolation supply set were the primary supply set for those elements.
The UPF specification is erroneous when it results in an incomplete set of automatic
connections for a design element.
The following precedence rules apply for automatic connections of a supply net to a
supply port.
a) connect_supply_net
b) associate_supply_net with -elements and -connect
c) associate_supply_net -connect
d) domain or strategy supply set handle and function matching pg_type.
4.5.3 Predefined supply set functions
The following predefined functions are available for use in any supply set definition. In
some cases, an explicit supply port may not exist for the function. The implicit or
automatic connections are made as specified in the absence of a corresponding supply
port.
a) power is the supply net which provides the power function for the supply set.
b) ground is the supply net which provides the ground function for the supply set.
c) pwell (when defined) is the supply net which provides the pwell function for the
supply set. If the library cell does not have a port with the appropriate pg_type,
pwell is connected to the body terminal of the N-channel field effect transistors
(FET) in implementation
d) d) nwell (when defined) is the supply net which provides the nwell function for
the supply set. If the library cell does not have a port with the appropriate pg_type,
nwell is connected to the body terminal of the P-channel FET in implementation.
e) e) deeppwell (when defined) is the supply net which provides the deeppwell
function for the supply set. If the library cell does not have a port with the
appropriate pg_type, deeppwell is connected to the isolation well for N-wells in
implementation.
f) f) deepnwell (when defined) is the supply net which provides the deepnwell
function for the supply set. if the library cell does not have a port with the
appropriate pg_type, deeppwell is logically connected to the isolation well for Pwells in implementation.
If a supply set is used within a domain, then a supply net shall be defined for each
function required by that supply set for implementation. However, a simulator may
support pre-implementation verification with only the specification that a supply set
exists for the domain. A supply set that does not have supply nets defined for each of its
required functions is incompletely specified. A reference to a supply net by its symbolic
name is an indirect reference.
4.6 Case studies
A few examples help to illustrate the above points.
4.6.1 Case 1
In the first case (see Figure 4), the only element in the power domain is A, which could
be a hard macro or a soft IP (e.g., an instance of a SystemVerilog module). The power
domain is composed of contiguous logic design elements. For soft IP, A may have child
elements, as shown in Figure 5.
As Figure 5 shows, the scope of the power domain is the same as the extent, and the
power domain is contiguous. The supply net that and supply port are created using the
create_supply_net and create_supply_port command (see 7.20 and 7.21) shall be
explicitly created in scope A. (Supply ports and nets may be implicitly created under
certain conditions covered below.)
The name of the supply net created in the scope of the power domain shall be as specified
by the create_supply_net command, but the name cannot conflict with the name of an
existing port or net (supply or logic) in the scope. As Supply net is connected to Supply
port, it is not required for supply net to be explicitly created. A reference to Supply port
is equivalent to a reference to a Supply net with the same name as Supply port when the
context requires a supply net name.
Need a second supply net created and a supply set defined and associated as primary for
the domain. Then discuss the implicit connections and routing of the supply net to all
elements in the extent of the domain.
4.6.2 Case 2
In the second case (see Figure 6), the topology of the logic design is more complex; there
are two sibling instances. The power domain is created in the scope U17 and only has
design elements U1 and U2 as its extent. Because the scope of the power domain is not in
the extent of the power domain, this power domain is non-contiguous.
In this case, the supply net that is created using the create_supply_net command is
explicitly created in U17 and implicitly created in U1 and U2, as required by the
inclusion of the supply net in a supply set that is associated with the domain A. Supply
ports are implicitly created on U1 and U2 to connect both of these design elements to the
supply net created in U17 (assuming the supply net is required in U1 and U2). The supply
net in U17 is implicitly connected to the ports on U1 and U2. The create_supply_port
command can be used to create a supply port on U17.
Need a second supply net created and a supply set defined and associated as primary for
the domain. Then discuss the implicit connections and routing of the supply net to all
elements in the extent of the domain.
4.6.3 Case 3
In the third case (see Figure 7), the topology of the logic design is even more complex.
The scope of the power domain is U17 and the extent of the power domain consists of
U1/UA and U2. In this case, there are two instances in the same power domain which are
neither contiguous nor adjacent in the logic design, resulting in a non-contiguous power
domain.
When the create_supply_net command is executed to create a supply net in the power
domain, the supply net is explicitly created in U17 using the name specified in the
create_supply_net command. Supply ports and supply nets are implicitly created in U1,
U1/UA, and U2 (assuming the supply net needs to be distributed to design elements in
each element of the domain). The supply net in U17 is implicitly connected only to the
ports on U1 and U2. The supply net in U1 is implicitly connected only to the port on U1
and U1/UA. If the create_supply_port command is used, a supply port is created on U17.
Need a second supply net created and a supply set defined and associated as primary for
the domain. Then discuss the implicit connections and routing of the supply net to all
elements in the extent of the domain.
4.7 Naming rules
The following rules shall apply to names (identifiers).
a) The first character of a name shall be alphabetic.
b) All other characters of a name shall be alphanumeric or the underscore character
(_).
c) Names in UPF are case-sensitive.
4.8 Name space semantics
Names shall adhere to the following name space semantics.
a) Objects created by a UPF command exist in the logic design; therefore, the names
of those objects shall not conflict with a name of a logic design object within the
same name space.
b) The name of a power domain shall not be the same as instances and ports in the
same scope.
c) Some UPF objects are implicitly created. Implicitly created objects result from
implied or inferred semantics and are not the direct result of creating a named
UPF object. For example, supply nets are routed throughout the extent of a power
domain as needed to implement the implicit and automatic connection semantics.
This routing results in the creation of implicit supply ports and supply nets. UPF
automatically names implicitly created objects to avoid creating a name conflict.
The name_format command (see 7.30) can be used to provide a template for
some implicitly created objects (such as isolation).
1) If there is a reference to a supply net that does not exist and a supply port
with the same name exists in the current scope, a supply net of that
(supply port) name is implicitly created and connected to that supply port.
It shall be an error if an existing net is attached to that port.
2) If there is a reference to a logic net that does not exist and a logic port with
the same name exists in the current scope, a logic net of that (logic port)
name is implicitly created and connected to that logic port. It shall be an
error if an existing net is attached to that port.
d) Many command arguments use names to design elements (instance scope names,
ports, registers, nets, etc.). Unless otherwise specified or unambiguous from the
context, a name reference can be a simple name or the hierarchical name of an
object. The names are relative to the current UPF scope. If the name is a
hierarchical name, it shall be in the descendant tree of the current scope.
e) Unless otherwise specified or unambiguous from the context, the terms scope and
UPF scope are synonymous.
f) UPF objects may have attributes. Attributes comprise a name and a set of zero or
more values. Attrbute names are in a local name space of the UPF object, e.g., a
power domain may have strategies and supply set handles. Strategies themselves
may also have supply set handles.
g) The following reserved attribute names cannot be redefined.
1) primary
2) default_retention
3) default_isolation
h) The . character is the separator for the hierarchy of attributes of UPF objects, e.g.,
top/a/PDa.MY_SUPPLY_SET refers to the supply set MY_SUPPLY_SET in
power domain PDa in the logical scope top/a.
4.9 Name qualification and precedence
Should this section be removed from here and occur only in the query commands
section?
To prevent ambiguity, name qualification can be used to explicitly specify the intended
object. Name qualification of an object is specified as {qualifier@object}; the list of
supported qualifiers are specified in Table 1.
It shall be an error whenever there is ambiguity of choice in identifying a named object
and the name qualifier (shown in Table 1) is not used, such as a domain versus a net
versus a UPF strategy.
4.10 Precedence
To support concise, easily written low power specifications, UPF supports default and
generic application of low power design intent. Consequently, multiple low power design
intent specifications may conflict with each other. This subclause defines the rules for
resolving conflicts in many situations.
a) Logic definition has the highest precedence. UPF does not modify the functional
behavior specified in the HDL source. A UPF specification extends the logic
definition to incorporate power-aware behavior. The HDL logic specification
defines a set of legal implementations. Therefore, the logic definition has the
highest precedence.
b) UPF power-aware specification within HDL source has the next highest
precedence. To the extent power-aware information can be specified in HDL
source, that HDL-resident power-aware specification has precedence over any
power-aware information specified outside that source.
c) Inherited power-aware attributes have the lowest precedence.
A power-aware intent specification can apply to an object when it is specified
directly on the object or an ancestor of the object. (The command definitions
specify when a command creates an inheritable attribute.) When more than one
power-aware intent specification exists for a given object:
a. If a power-aware intent specification was applied directly to the object,
then that specification applies. It is applied directly to the object when the
object is referenced in the command explicitly, including through regular
expressions that expand to what would otherwise have been an explicit
reference to the object.
b. If the power-aware intent specification was applied to an ancestor of the
object, then the specification applied at the closest ancestor applies.7 This
includes references to ancestors from the expansion of regular expressions.
d) Precedence ambiguity
It shall be an error if the precedence rules fail to uniquely identify a single poweraware attribute that applies to an object.
4.9 Lexical elements
Special lexical elements (see Table 2) can be used to delimit tokens in the syntax.
NOTE to Joe: “hierarchy character” in table, row 1 should be more accurately stated as “logic hierarchy
character” as the ‘.’ character is used to distinguish attribute hierarchy (name space).
Download