Now that there are two competing
industry formats to capture
power intent for low-power
designs—the Common Power Format
(CPF) and the Unified Power
Format (UPF)—design teams
need to understand the similarities
and differences between the
two. A few design companies may
be able to ignore one format or the
other, but most design companies
will use both formats.
The first reference to the CPF
file format came in early 2006,
when Cadence announced its Power
Forward Initiative. In late 2006,
Cadence and the Silicon Integration
Initiative (Si2) created the Low
Power Coalition (LPC) under Si2’s
auspices to develop the CPF format.
In January 2007, LPC released
the first public document containing
the CPF format definition. That
document is available at www.si2.org. Cadence’s tool suite supports
CPF, and several EDA vendors also
support the format as defined in the LPC document.
At DAC 2006, a number of other companies, led by Texas
Instruments and Nokia, met to create a second format with broader
EDA company support. The project was dubbed the Unified
Power Format, and Accellera formed a committee to hammer
out the details.
In January
2007, Accellera
released its UPF
1.0 specification.
This document
is available at
www.accellera.org. In January
2008, Magma,
Mentor, and
Synopsys jointly
announced support
for UPF in
their tools. And once again, a number of other EDA vendors also
supports the format.
During 2007, IEEE established a working group to create
an industry-standard power-intent format. This standard will
be called IEEE-P1801. The working group accepted donations
of existing formats as a starting point. Accellera donated
UPF, but Cadence did not donate CPF.
A draft of the format is expected to be available at DAC
2008. There’s hope it will be ratified by late 2008. In many
ways, P1801 is an improvement of UPF. One way to think
about P1801 is as “UPF version 1.1.” (For more on the history
of these formats, see “Power-Intent Standards Vie For Designers’
Loyalties” at www.electronicdesign.com, ED Online 18123.)
FORMAT SIMILARITIES
The CPF and UPF formats have 90% of the same concepts
using completely different syntaxes. But all of the main aspects
of power intent for low-power design can be captured in either
format. Both formats are based around Tcl, the tool control language embedded in most EDA tools.
Thus, we can regard either format as a set
of Tcl procedure definitions rather than a
new, unique language. In particular, both
formats provide a way to describe:
• Voltage domains, or blocks operating at
different voltages that require level shifters
on all domain crossings
• Power domains, or blocks with a separate
power supply that can be turned off
• Multiple supply nets with differing
names and connections; in this type of
design, there’s no longer any single global
power connection
• Isolation logic, placed at the outputs of
power domains where there’s a crossing
to logic, which may remain powered on
• Retention registers, which are flip-flops
within a power domain that have an
“always-on” supply connection to retain
state when the
domain is shut off
• Always-on cells
and paths for logic
in a power domain
(besides retention
registers), which
must remain powered
on when the
block that contains
them is powered
off
• Power switches,
which are large
on-chip switching
transistors to shut
off the power to a
power domain.
Except for a few very minor points, any
design that uses these features can be completely
represented in either CPF or UPF.
However, the syntax of a CPF representation
will be completely different from that of
a UPF representation. Each file would have
a number of commands, and options to each
command, to capture the power intent.
In a few cases, there’s a one-to-one correspondence
between a CPF command
option and a UPF command option. But,
in
general, the bits of information about
the power intent “hang differently” from
the CPF commands and the UPF commands.
One piece of the designer’s intent
may be represented in two commands with
three options in CPF, but it also may be
represented in three commands with two
options in UPF.
FORMAT DIFFERENCES
The primary difference between the formats
is that UPF doesn’t contain any commands
to define library elements such as a
level shifter or retention register. In both
formats, you can require a particular library
cell to be used in a certain situation. For
example, you can require a specific level
shifter to be used on all crossings between
two specific domains. UPF doesn’t give
you any syntax to define the level-shifter
cell, its supply pin names, and its data pin
names, though. CPF does provide syntax
to
define these library attributes.
In UPF, it’s assumed that some other
library format exists, such as Liberty
(“
Synopsys dot lib”), to capture this information.
The Liberty 2006.6 standard contains
some features for this, but the more
recent 2007.3 version contains enough information to model level shifters and always-on cells and pins. It’s not yet clear
how many library providers have created
libraries based on this standard, but the
required fields are there.
Continue on Page 2