Transcript www.eda.org

Isolation Information Theoretic:
UPF 2.0 and the Isolation Attributes
Rev. 0.1
Jason Binney
5/15/2008
“AKA: Back to the Future”
Predictable Success
Isolation in UPF 1.0
• set_isolation isolation_name \
 -domain domain_name \
 <-isolation_power_net net_name | -isolation_ground_net
net_name | -isolation_power_net net_name
-isolation_ground_net net_name | -no_isolation> \
 [-elements list] \
 [-clamp_value <0 | 1 | latch | Z>]
 [-applies_to <inputs | outputs | both>]
• set_isolation_control isolation_name \
 -domain domain_name \
 -isolation_signal signal_name \
 [-isolation_sense <high|low>]
 [-location <self | parent | sibling | fanout | automatic>
© 2006 Synopsys, Inc. (2)
Predictable Success
The Troubles with Isolation in UPF 1.0
• UPF 1.0: “runaway”, ummm what happened to the SNPS donation ?
• Ah the Noble Primitives….. such a blissful state of global ignorance.
• Splitting Up is Hard to Do: Damn I cut my finger off, do you think they
•
•
•
•
•
•
•
•
will notice that in the Casserole ? (The curse of schedule vs content
driven work.) Honey was that “sweet meat” ?
IP encapsulation and the hand-off model ?
What does the Isolation Information Mean ?
 Directive OR Constraint ?
Pointing Fingers: that’s your problem… IP developer vs IP integrator
Use it or Ignore it, when can I do this ? Am I allowed to?
Relativity is not just for Einstein: The quest for meaningful intent.
Late vs Early Binding: When to Domain ? (AKA this domain could be
all yours… but I have a few things I want you to do first, my son.)
Sideness and the limits of your frame of reference.
Coupling is the nature of the world, are you being enabled ?
© 2006 Synopsys, Inc. (3)
Predictable Success
Isolation in UPF 1.0
Bad Split, should be
in 2nd cmd
Bad Split, should
be in the 2nd cmd
and optional
• set_isolation isolation_name \
 -domain domain_name \
 <-isolation_power_net net_name | -isolation_ground_net
net_name | -isolation_power_net net_name
-isolation_ground_net net_name | -no_isolation> \
 [-elements list] \
 [-clamp_value <0 | 1 | latch | Z>]
“inputs”/”outputs”
 [-applies_to <inputs | outputs | both>]
• set_isolation_control isolation_name \
 -domain domain_name \
 -isolation_signal signal_name \
 [-isolation_sense <high|low>]
are ill defined.
Signal to Domain
is confused
 [-location <self | parent | sibling | fanout | automatic>]
location is ill defined.
© 2006 Synopsys, Inc. (4)
Predictable Success
Objections to UPF 1.0 *isolation*
• UPF 1.0: set_isolation/set_isolation_control is
•
•
•
meaningless as it loses intent rendering formal
checking hard to do.
UPF 1.0: set_isolation/set_isolation_control breaks the
IP developer to IP integrator handoff model.
UPF 1.0: set_isolation/set_isolation_control is a primitive
directive that the user must manually infer from other
information that is available otherwise in UPF except for a
few key things.
UPF 1.0: set_isolation/set_isolation_control is tied to a
domain and early power network definitions and this
makes it an IP integrator specification.
© 2006 Synopsys, Inc. (5)
Predictable Success
Objectives for UPF 2.0 *isolation*
1. UPF 2.0: Bring back a meaningful user intent.
2. UPF 2.0: Correct to allow for a reasonable handoff
model from IP developer to IP integrator.
3.
UPF 2.0: Make the tools unambiguously infer
isolation cells from constraints that reflect the
isolation intent and not a simple directive.
4.
5.
UPF 2.0: Make a useful checking semantic.
UPF 2.0: Release the strong initial association with
a domain until this is ultimately resolved later by the IP
integrator. However still allow the IP developer to
clearly define his information.
© 2006 Synopsys, Inc. (6)
Predictable Success
Depends what your meaning of “is” is.
• OK Mr Clinton let’s go through some semantic
gymnastics then……..
© 2006 Synopsys, Inc. (7)
Predictable Success
Gedanken Experiment Info
• Yellow AND gate is an “isolator”
• All blocks are labeled with a “PD” prefix
PDTOP
PD1
PD2
PwrCtl
© 2006 Synopsys, Inc. (8)
Predictable Success
Gedanken Experiment I
• Who owns the clamp value ?
• What does this isolator do ?
• Where can this exist ?
• When does this exist ? (and when can I ignore it ?)
PDTOP
PD1
PD2
PwrCtl
© 2006 Synopsys, Inc. (9)
Predictable Success
Gedanken Experiment IIa
• Is this redundant ?
PDTOP
PD2
(has a switch)
PD1
PwrCtl
© 2006 Synopsys, Inc. (10)
Predictable Success
Gedanken Experiment IIb
• Is this redundant ?
• Is this correct ?
• Is this isolating PD1 ? Or PD2 ?
PDTOP
PD1
(has a switch)
PD2
(has a switch)
PwrCtl
© 2006 Synopsys, Inc. (11)
Predictable Success
Gedanken Experiment IIc
• Is this redundant ?
• Is this correct ?
• Is this over specified ?
PDTOP
PD1
(has a switch)
c1
c0
PD2
(has a switch)
PwrCtl
© 2006 Synopsys, Inc. (12)
Predictable Success
Gedanken Experiment IId
• Is this redundant ?
• Is this correct ?
• Is this over specified ?
PDTOP
PD1
(has a switch)
c1
c0
PD2
(has a switch)
PwrCtl
© 2006 Synopsys, Inc. (13)
Predictable Success
Gedanken Experiment IIIa
• How many isolators are needed ?
PDTOP
c0 PD2
PD1
c1
c1
PD3
PwrCtl
© 2006 Synopsys, Inc. (14)
Predictable Success
Gedanken Experiment IIIb
• How many isolators are needed ?
PDTOP
c0 PD2
PD1 c1
(has off)
c1
PD3
PwrCtl
© 2006 Synopsys, Inc. (15)
Predictable Success
Gedanken Experiment IIIc
• How many isolators are needed ?
PDTOP
PD2
c0 (has off)
PD1 c1
(has off)
c1
PD3
PwrCtl
© 2006 Synopsys, Inc. (16)
Predictable Success
Gedanken Experiment IIId
• How many isolators are needed ?
PDTOP
PD2
c0 (has off)
PD1 c1
(has off)
c1
PD3
PwrCtl
© 2006 Synopsys, Inc. (17)
Predictable Success
Gedanken Experiment IIIe
• How many isolators are needed ?
PDTOP
PD2
c0 (has off)
PD1 c1
(has off)
c1 PD3
(has off)
PwrCtl
© 2006 Synopsys, Inc. (18)
Predictable Success
What’s the right answer ?
• You can’t answer any of these at all. (In a UPF 1.0
context)
• So there is no right answer.
• (Paradise Lost)
• The UPF 1.0 specification for isolation reads like a
“Religious Edict”.
• And in the tradition of Martin Luther, I’d suggest we
subvert the dominate and arbitrary power of such Papal
Mumblings.
© 2006 Synopsys, Inc. (19)
Predictable Success
OK wise guy, what can I reason
about UPF 1.0 *iso* cmds ?
•
With UPF 1.0 I can reason:

I can relate “relative always on-ness” or that
1. the power net hooked to the isolation gate that is related to the
output is more “on” than the cell the output drives.
2. the power net hooked to the isolation gate that is related to the
input is more “on” than the cell that the input “data pin” is driven
by.
3. Or both of 1 or 2.
•
The isolation gate drives a specific clamp value.
•
The isolation gate has an enable pin that is hooked to signal “S”.
•
The isolation gate exists in a logical hierarchy.
© 2006 Synopsys, Inc. (20)
Predictable Success
Isolation in UPF 1.0
Bad Split, should be
in 2nd cmd
Bad Split, should
be in the 2nd cmd
and optional
• set_isolation isolation_name \
 -domain domain_name \
 <-isolation_power_net net_name | -isolation_ground_net
net_name | -isolation_power_net net_name
-isolation_ground_net net_name | -no_isolation> \
 [-elements list] \
 [-clamp_value <0 | 1 | latch | Z>]
“inputs”/”outputs”
 [-applies_to <inputs | outputs | both>]
• set_isolation_control isolation_name \
 -domain domain_name \
 -isolation_signal signal_name \
 [-isolation_sense <high|low>]
are ill defined.
Signal to Domain
is confused
 [-location <self | parent | sibling | fanout | automatic>]
location is ill defined.
© 2006 Synopsys, Inc. (21)
Predictable Success
Proposed Isolation in UPF 2.0 (I of II)
• set_port_attributes \
 [-ports { port_list } ] [-exclude_ports { port_list } ] \
 [ {-domains { domain_list } [-applies_to <inputs | outputs | both> } ] \
 [ {-exclude_domains { domain_list } [-applies_to <inputs | outputs | both> }









]\
[ {-elements { element_list } [-applies_to <inputs | outputs | both> } ] \
[ {-exclude_elements { element_list } [-applies_to <inputs | outputs | both>
}]\
[–model hard_macro] \
[–enable_clamp <0 | 1 | x | z | none | latch | value>] \
[–enable_{{enable_expression} [-source domain_name] [-sink
domain_name] } ]* \
[–guard_clamp <0 | 1 | x | z | none | latch | value>] \
[–guard_{{guard_expression} ]* \
[–hi_conn_supply supply_set_ref ] \
[-iso_location <hi_conn | low_conn | auto>]
© 2006 Synopsys, Inc. (24)
Predictable Success
Proposed Isolation in UPF 2.0 (I of II)
• set_port_attributes \
This is a new command. Its based on the
current scope and not a domain. This means
it acts as a constraint which may never be
used as these elements may not be on
or direct connected to a power domain
boundary.
© 2006 Synopsys, Inc. (25)
Predictable Success
Proposed Isolation in UPF 2.0 (II of II)
• set_isolation isolation_list_name \
 [-domain domain_name
 [λ -elements elements_list ] \
 [-clamp_value <0 | 1 | | value | latch | no_isolation | dont_care >]








(default: 0)
[-source domain_name ] [-sink domain_name ] \
[-applies_to <inputs | outputs | both>] \
[<-isolation_supply_set supply_set_name > ] \
[λ –enable_signal {net_name} ] \
[λ –enable_event {{boolean_function} <high|low>} ] \
[-location <self | parent | sibling | fanout | automatic>] \
[λ -force] \
[-update]
© 2006 Synopsys, Inc. (26)
Predictable Success
Challenges
• How to maintain backwards compatibility ? (Even though
the use model is changing.)
• Move toward a constraint driven approach.
• How to fix the order of operations problems inherent with
the current UPF 1.0 approach.
• Enable a more succinct definition for isolation without a
large user investment in tracing the netlist.
• Distinguish the “input” to a domain isolation case from
the “output” from a domain case.
© 2006 Synopsys, Inc. (27)
Predictable Success
Proposed UPF 2.0 Isolation Benefits
• Backwards compatibility: All set_isolation options maintained, -update
argument added for “layering”, all new options/arguments added as
orthogonal to current options/args.
• Constraint driven approach: set_isolation_elements added to allow for a
way to give IP developers a way to specify if needed this is the clamp value
required but does not mean she needs to know the domain/power network
definition.
• Order of operations problem: deprecate: “set_isolation_control” and add
some of this in the 2nd and updated “set_isolation” command which is after
the new 1st “set_isolation_elements” command.
• Succinct definition for isolation: pairwise domain specification with a
more correct notion of “input” and “output” relative to a domain’s ports.
• Distinguish the “input” to a domain isolation case from the “output” from a
domain case with separate enabling conditions for each case.
© 2006 Synopsys, Inc. (28)
Predictable Success
Example UPF 2.0: Info
• Yellow AND gate is an “isolator” (not an “and” gate)
• All power domains are labeled with a “PD” prefix
• All blocks are labeled with a “LH” prefix
PDTOP
PD1
LH2
PwrCtl
© 2006 Synopsys, Inc. (29)
Predictable Success
Example UPF 2.0: Set Iso Constraints
current_scope LHTOP
set_port_attributes –ports LH4/LH2/inA –guard_clamp 0
set_port_attributes –ports LH3/inB –guard_clamp 1
set_port_attributes -ports LH1/outA –enable_clamp 1
LHTOP
inA
c0
LH4
LH2
inB
c1 LH3
LH1 outA
c1
PwrCtl
© 2006 Synopsys, Inc. (31)
Predictable Success
Example UPF 2.0: Define Domains
create_power_domain PD1 –elem LH1
create_power_domain PD2 –elem LH4
create_power_domain PD3 –elem LH3
create_power_domain PDTOP
LHTOP
PD2
inA
c0
LH4
LH2
inB
c1 LH3
LH1 outA
c1
PD2
PD3
PwrCtl
© 2006 Synopsys, Inc. (32)
Predictable Success
Example UPF 2.0: Define Switched Supplies
create_power_switch SW1 … associate_supply_set to PD1
create_power_switch SW2 … associate_supply_set to PD2
create_power_switch SW3 … associate_supply_set to PD3
reflect PST to define “off” states for the blocks, all are unrelated
LHTOP
PD2(off) LH4
LH2
inA
c0
inB
c1 LH3
LH1 outA
PD1(off) c1
PD3(off)
PwrCtl
© 2006 Synopsys, Inc. (33)
Predictable Success
Example UPF 2.0: Add Enabling Signals (I of II)
set_port_attributes –enable e1 –source PD1 –sink PD2
set_port_attributes –dom PD2 –guard e2
set_port_attributes –enable e3 –source PD1 –sink PD3
set_port_attributes –dom PD3 –guard_sig e3
LHTOP
PD2(off) LH4
LH2
inA
c0
inB
c1 LH3
LH1 outA
PD1(off) c1
PD3(off)
PwrCtl
© 2006 Synopsys, Inc. (34)
Predictable Success
Example UPF 2.0: Add Enabling Signals (II of II)
set_port_attributes –enable e1 –source PD1 –sink PD2
set_port_attributes –dom PD2 –guard e2
set_port_attributes –enable e3 –source PD1 –sink PD3
set_port_attributes –dom PD3 –guard e3
1
LHTOP
e2
tied
LH1 outA
PD1(off) c1
PD2(off) LH4
LH2
inA
c0
inB
c1 LH3
e1
e3
PD3(off)
PwrCtl
© 2006 Synopsys, Inc. (35)
Predictable Success
Retention Information Theoretic:
UPF 2.0 and the Retention Upgrades
Rev. 0.1
Jason Binney
5/15/2008
“AKA: Splitting up is hard to do”
Predictable Success
Proposed Retention in UPF 2.0 (I of II)
• set_retention_elements retention_list_name \
 -elements elements_list \
 [-exclude_elements elements_list]
This is a new command. Its based on the
current scope and not a domain. It may
include a domain but this is not required. This
means it acts as a constraint which may never
be used as these elements may not inside a
domain that has an offstate.
© 2006 Synopsys, Inc. (38)
Predictable Success
Proposed Retention in UPF 2.0 (II of II)
• set_retention retention_list_name \
 -domain domain_name \
 [β <- -retention_power_net net_name | -retention_ground_net net_name | -
retention_power_net net_name -retention_ground_net net_name > ] \
 [λ -elements elements_list ] \
 [λ –exclude_elements elements_list ] \
 [λ -retention_supply_set supply_set_name] \
 [λ –save {{logic_net <high|low|posedge|negedge>}} –restore {{logic_net
<high|low|posedge|negedge>}} ] \
 [λ –save_condition {{boolean_function}} ] \
 [λ –restore_condition {{boolean_function}} ] \
 [λ –retention_condition {{boolean_function}} ] \
 [<-output_related_supply_set <primary | retention>] \
 [-update]
© 2006 Synopsys, Inc. (39)
Predictable Success
Semantics
• The condition gates the event.
So if the restore signal is
“restore” and the condition is “!clock” then the register
restores when and only when the restore signal is active
and the clock signal is low. It is simply a definition of the
behavior of the register. This definition is useful (and, we
can hope, adequate) for representing real retention
register behavior, including user-specified prioritization
between save and restore signals and other pre-existing
control signals.
(Lisa/Jim email exchange)
© 2006 Synopsys, Inc. (40)
Predictable Success
Proposed UPF 2.0 Retention Benefits
• Backwards compatibility: All set_retention options maintained, -update
•
•
•
argument added for “layering”, all new options/arguments added as
orthogonal to current options/args.
Constraint driven approach: set_retention_elements added to allow for a
way to give IP developers a way to specify if needed this is the object to be
retained if later an IP integrator choses to define a domain associated with
the elements which will be shutdown.
Order of operations problem: deprecate: “set_retention_control” and add
some of this in the 2nd and updated “set_retention” command which is after
the new 1st “set_retention_elements” command.
More General definition for Retention: Retention Supply set specification
along with added optionality of the control (save/restore) signals for “Zero”
pin retention cases. Added “_condition” for more complete retention
behaviour based on non save/restore conditionality and control signal
prioritization. Enables true formal verification.
© 2006 Synopsys, Inc. (41)
Predictable Success
Predictable Success
© 2006 Synopsys, Inc. (42)
Predictable Success