( ESNUG 521 Item 6 ) -------------------------------------------- [03/28/13]

From: [ Denis Dutoit of CEA-Leti ]
Subject: Spyglass Power for both architectural and RTL power reduction

Hi, John,

We've used Atrenta Spyglass Power for about 2 years.  Our typical projects
tend to run 10-12 months.  I would estimate we've had a 2 months savings
with it.  That's roughly a 17% project time savings for us.

At my company we have 2 primary types of Spyglass users:

                   1) Architects,
               and 2) Senior Power Designers.

Our architects use Spyglass at the architectural level as follows:

 1. Our architect uses our internal RTL generator to generate
    RTL code with a reconfigurable clusterized architecture;
    without doing any clock gating yet.

 2. The architect then runs Spyglass Power to find power bugs.

 

               Power figures for hierarchical modules

    There is a feature of Spyglass Power which gives you a graph of
    every activity in the design, allowing us to see the activity is
    for a particular block, even without actually doing any power
    computations.  

 3. In one case, the architect found a power bug which affected 96% of
    our programmable core.
 
 

                  Power graph for architecture

    This was a situation where the Spyglass Power activity report showed
    that a cluster of the design that should have been in an idle state
    was active and drawing power when it shouldn't have been.

 4. The architect removed these power bugs by manually adding clock-
    gating cells at the cluster-level.  

 5. He then did final analysis for clock-gating.  We can extract a lot
    of different reports with Spyglass, such as what is clocked and
    what is not clocked; this helps to guide us in developing
    micro-architecture.

 6. We then used Spyglass' power optimization which gave us a power
    savings from 9% to 45% at the architectural level when running a
    set of benchmarks.  

       ----    ----    ----    ----    ----    ----   ----

MICRO-ARCHITECTURE POWER ESTIMATES:

We came up with a clever way to use Spyglass to create a power model to
analyze power consumption and optimize our programmable core design at the
architectural level.

  a. We had a complete instruction set for our small RISC CPU.  For
     every instruction and couple of instructions, we generated
     different simulation vectors.

  b. We input simulation vectors to Spyglass, to get power estimates.  

  c. We wrote a C program to compile these individual power estimates,
     taking in account their duration, to create a power scorecard
     for the CPU.

From here we could estimate/analyze our microarchitecture power budget.

The register file was our greediest module.  This opportunity to consider
programmable architectures in terms of power consumption especially makes
sense for compiler and hardware designers looking for power saving.

       ----    ----    ----    ----    ----    ----   ----

RTL POWER REDUCTION CASE STUDIES:

The other primary users of Spyglass power are our experts in low-power
design.  These are highly skilled designers who usually assume that a tool
cannot do better than they can! 

We have recently used Spyglass on two different chips; below I have 4 sample
case studies of our power reduction results.

   Design          Size     Power before     Power after     Power
    Type       (registers)    Spyglass        Spyglass     Reduction

 1 Ultra-low     11,821        12.1 mW         11.8 mW         2%
   power
   DSP core

 2 Bit level      5,504        67.4 mW         58.7 mW        13%
   translation 
   inside       
   3GPP-LTE

 3 BCJR turbo     3,286       108.0 mW         88.3 mW        18% 
   decoder   (+ 10 memories)
   inside
   3GPP-LTE

For each of the above case studies, the power reduction was done using
either Spyglass' manual/guided optimization or automated optimization modes
as follows: 
                         1. automated
                         2. guided
                         3. automated

  Design 1: The initial power reduction done by one of our best local
            designers.  Even so Spyglass got us another 2% reduction.
            Spyglass Power looked at every single register and memory
            inside the block -- there can be 10,000's of them -- to see
            if it could gate them.  It then optimized the remaining
            registers/flip-flops, which were impossible for us to find
            by hand.  

  Design 2: Most of the 13% power reduction came from Spyglass
            automatically gating registers/flip-flops.

  Design 3: Most of the 18% power reduction came from Spyglass' memory 
            gating.  The memory power reduction comes from rules such as:
            chip select gating, redundant read, and redundant write.  

Spyglass' automated optimization often finds more opportunities for power
reduction optimization beyond our manual/guided manual optimization.
Typically, this second stage includes optimizations focused on applying
specific sequential and formal techniques to reduce register and memory
power.  

       ----    ----    ----    ----    ----    ----   ----

POWER ESTIMATION:

We've run a lot of correlations to assess for Spyglass' power estimation
accuracy.  It is within 2% to 10% of our golden power sign-off, which is
Synopsys Primetime Power.  Suffice to say, that is absolutely precise enough
to make design decisions for power reduction.

If we do not have simulation vectors, then Spyglass can work with default
activity parameters to provide rough estimation.  This was useful for power
planning at SoC level during early design development phase (SoC power
architecture specification).  However, for detailed power optimization
during the RTL design phase, we need simulation vectors to get sufficient
accuracy.

       ----    ----    ----    ----    ----    ----   ----

USING SPYGLASS POWER IN OUR DESIGN FLOW:

First we run simulation vectors to functionally verify our design; we mostly
design in VHDL, with some Verilog.  

Next, we run Spyglass Power, using the simulation vectors.  Spyglass has no
problems with mixed language support.  We can instantiated a VHDL module
within Verilog, and we can instantiated a Verilog module within Verilog.  

                   Vector     Vector       Spyglass Power
         Example   Format     File Size      Load time
         -------   ------     ---------      ---------
            1       vcd       1.5 GB          4 min
            2       vcd      20.0 MB          5 sec

Spyglass Power input:

    - RTL code.  Spyglass supports: Verilog, VHDL, System Verilog
    - Library files
    - Simulation vectors.  Spyglass supports:  .fsdb, .vcd and .saif.

Spyglass Power output:

    - Written reports on activity and power consumption, such as
      enable scorecards, clock-gating efficiency report, power
      profiling report (blocks, clock domains, registers).

    - If we use the automated optimization, it gives us modified RTL

When we do power transformations, there is a chance that you change design
behavior.  Spyglass' sequential analysis and equivalence checking lets us
test this.  Spyglass will automatically compare the modified RTL to the
original RTL, along with pass/fail reports, using a formal engine built
right into the tool.  We use it, it works.

       ----    ----    ----    ----    ----    ----   ----

CONCLUSION:

Spyglass' design flow integration allows our designers to focus on the
results of the tool: power estimation and optimization.

We are a silicon conductor research institute.  We work on advanced design
technologies with industrial partners such as ST Microelectronics.  Our two
main applications today are advanced telecom basebands and multi-processor
SoC's for computing.

We have used Spyglass on recent designs with up to 1 Ghz clock speeds, and
are implemented in ST Micro 28 nm process, with Silicon on Insulator (SOI).
It's part of our mainstream design flow, and all the evidence is that
Spyglass Power will meet the needs of our new designs, which will be up to
2.5 Ghz and use a 14 nm process.

We are looking at new design optimization techniques using the substrate,
based on substrate polarization that changes, for example, the transistor
power consumption and speed.  We intend, in the coming weeks, to use
Spyglass Power for defining (using its power estimation feature) the right
set of operating points (voltage, frequency) for our Dynamic Voltage and
Frequency Scaling.

We are happy with Spyglass.  So far, we haven't seen any serious problems.
The tool is stable and we get same-day support.  We have Atrenta R&D close
by, we know the Atrenta R&D folks, and cooperate well.

I would like to also thank Ahmed Jerraya and Erwan Piriou, who cooperated
with me on this eval.  

    - Denis Dutoit
      CEA-Leti Institute                         Grenoble, France
Join    Index    Next->Item






   
 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)