Message from the Chief Executive Officer
Welcome to the Spring 2009 edition of the Calypto Newsletter where you will find the latest news and information about Calypto and our market leading products. This issue includes several interesting articles covering the capabilities of PowerPro™ CG and SLEC®
products.
PowerPro CG use continues to expand through new customers and through the broader deployment of PowerPro CG at existing customers where the tool has been fully integrated into the RTL/Synthesis design process. With automated flows for verification and ECOs, customers have proven that PowerPro CG fits seamlessly into their RTL implementation methodology. The power savings provided by PowerPro CG has been confirmed on hundreds of designs through place and route.
SLEC continues to show its value in both the ESL and RTL flows. SLEC System is being used by customers as part of their standard verification regression methodology as they develop and refine their RTL design using their C model as the golden reference. Meanwhile, SLEC System-HLS has uncovered bugs in customer designs associated with fixed point saturation and integer overflow.
Read more >>
What's New in SLEC® 3.3
SLEC®
version 3.3 was released on March 16th 2009. The latest version of SLEC contains the following features and enhancements:
- Capacity and Runtime improvements including new full-proof engine, significant performance improvements in HLS flows and improvements in build_design
- Additional support for HLS design flows including:
- Forte Cynthesizer flow supports designs with cynw_p2p and external memory interfaces
- Mentor Catapult flow supports designs with ac_channel types
- Additional support for PowerPro flow including support for automatic generation of PowerPro recipes
- New commands and features including create_symbolic_reset_group and create_aggregate
These new capabilities further reinforce SLEC’s position as the cornerstone of today's advanced high-level synthesis (HLS) design flows. Users should move to SLEC 3.3 as soon as possible.
Power Optimization of a Configurable Video Platform using PowerPro™ CG
With the proliferation of mobile multimedia devices, providing the most advanced features to the user is always a challenge when it has to be balanced against battery life. One way to reduce power and extend battery life is to reduce the amount of switching activity in the device. Understanding how the silicon works in normal use can help direct subsystem design changes to eliminate unnecessary switching activity without sacrificing leading edge functionality and performance. Once identified, the challenge is to quickly and efficiently implement the changes in the RTL and be able to verify that the functionality has not been affected by the changes.
Clock gating is one common Register Transfer Level (RTL) power optimization technique that reduces design switching activity. It relies on the ability of synthesis tools to identify certain RTL structures and convert those structures into simple combinational clock gating logic. Until recently, inserting these structures into RTL was a tedious, error-prone, manual process. Verification of the structures required the creation of new test benches to ensure that the changes to the design did not affect functionality. With the advent of RTL power optimization and verification tools, the process has become automated, providing an ideal solution for reducing power in highly configurable SoC subsystems used in today’s mobile multimedia devices.
PowerPro™ CG is an automated power optimization tool that inserts advanced sequential clock gating structures into an RTL design. PowerPro CG is based on Calypto’s patented Sequential Analysis Technology, and is proven to reduce power by up to 60% on customer designs. PowerPro CG evaluates circuit behavior across multiple clock cycles to identify sequential clock gating enable conditions and generates new RTL which is identical to the original RTL with new clock gating enable logic inserted. All user defined pragmas, indentations, comments, etc. are maintained. Designers feel comfortable with the generated RTL because they can still recognize their original coding style and are provided direct insight into the logic inserted by PowerPro CG.
SLEC® CG is a sequential equivalence checker that provides efficient, comprehensive verification of the PowerPro CG generated RTL. SLEC CG formally compares the functionality of the original RTL design with the PowerPro CG optimized RTL design for all possible input sequences to ensure functionality has not been compromised.
Calypto in the News
03/25/09 EDA Confidential - Reaching the EDA Customer
03/07/09 EDA Cafe - Is EDA History? Is it Doomed?
01/23/09 SOCcentral - ARC, Calypto Team to Reduce Power in ARC's Video Subsystem Solution
01/15/09 DACeZine -Leveraging System Models for RTL Functional Verification using Sequential Logic Equivalence Checking
01/12/09 EDA Cafe - Sequential Analysis
Product Information
PowerPro™ CG
Based on Calypto’s patented Sequential Analysis Technology, PowerPro CG reduces power by up to 60% in RTL designs. PowerPro CG evaluates circuit behavior across multiple clock cycles to identify sequential clock gating enable conditions. New enable logic is inserted into the original RTL code while maintaining all user defined pragmas and comments.
Read more >>
SLEC®
System
Enabling ESL™
SLEC System finds design errors that other tools miss by formally comparing the functionality of an Electronic System Level (ESL) model written in C/C++/SystemC with its corresponding RTL design or system-level model for all possible input sequences. Unlike combinational equivalence checkers, SLEC System does not require one to one mapping of registers. The quality of verification SLEC System performs in minutes is equal to months of running simulation.
Read more >>
SLEC®
System-HLS
SLEC System-HLS finds design errors that other tools miss by formally comparing the functionality of a system level model written for HLS with its corresponding synthesized RTL design across all possible input sequences. SLEC System-HLS increases design productivity through automated setup and elimination of block-level RTL simulation.
Read more >>
SLEC®
RTL
SLEC RTL finds design errors that other tools miss by formally comparing the functionality of the original RTL design and the corresponding optimized RTL design for all possible input sequences. Unlike combinational equivalence checkers, SLEC RTL does not require one to one mapping of registers. SLEC RTL is ideal for verifying RTL changes for retiming and clock gating, allowing designers to confidently make complex changes to their RTL to meet today’s aggressive power and performance design goals.
Read more >>
SLEC®
CG
SLEC CG provides efficient, comprehensive verification of PowerPro CG optimized RTL. SLEC CG formally compares the functionality of the original RTL design with the PowerPro CG optimized RTL design for all possible input sequences. Unlike combinational equivalence checkers, SLEC CG does not require one to one mapping of registers.
Read more >>
SLEC
®
Tips & Tricks (continued)
The CALYPTO_SYSC define is auto-defined when SLEC reads any C design and ensures the additional code is only recognized by SLEC.
#ifdef CALYPTO_SYSC
#include "calypto_debug.h"
#endif
in_val = in_port1.read();
sum_val = in_port2.read();
for (int i = 0 ; i < 10; i++)
{
foo(in_val, sum_val, out_val, out_scale);
#ifdef CALYPTO_SYSC
calypto_cout("sum_val", sum_val);
#endif
if (i>5) {
sum_val = sum_val + out_val;
} else {
sum_val = sum_val * out_scale;
}
}
out_port1.write(sum_val);
The VCD traces files generated by SLEC in the presence of a difference will contain signals __Calypto_cout__sum_val_0 to __Calypto_cout__sum_val_9 which respectively show the value of sum_val in loop iterations 0 to 9. The corresponding waveform in the RTL will be the output of the function which is the RTL sub-block foo.
The calypto_cout function can be extended to capture other signals of interest (out_val, out_scale etc.) and at any level of hierarchy (e.g. inside function foo). Each signal is given a unique identifier number based on when the signal was first assigned a value. When multiple calypto_cout functions are used in conditional branches, this intuitively shows how the code is being executed.
Even for cases with highly optimized RTL such as those produced by High Level Synthesis (HLS) tools, certain points in the C code always lend themselves to corresponding points in the RTL. For Example: C function outputs and RTL sub-block outputs, the output of adders and multipliers, other macro level IP components.
A recommended methodology would be:
1) Include "calypto_debug.h" in the C design.
2) Add one or more calypto_cout functions to the C code.
3) Add "set_global prune_unmapped_logic 0" to the SLEC Tcl file
4) Run SLEC to get a falsification.
5) Type “view_waveform” in SLEC and both the C and RTL waveforms will be displayed in SpringSoft’s Verdi/Debussy or open the VCDs using your standard VCD viewer.
6) If more detail is required, add more calypto_cout functions to the C code
7) Repeat from step 4 until the falsification is resolved
Message from the Chief Executive Officer (continued)
SLEC RTL is being used by customers to efficiently produce the lowest power, highest performance RTL by enabling the implementation of sequential design modifications such as re-pipelining and clock gating. SLEC RTL provides comprehensive functional verification of these design modifications to ensure the optimized RTL is functionally equivalent to the original RTL.
I hope you find this latest issue of the Calypto Newsletter to be helpful in understanding Calypto's products and capabilities.
The newsletter contains the most recent articles and news from Calypto and our partners.
Please contact us at:
with any questions or comments.
Best Regards,
Tom Sandoval
Chief Executive Officer
Calypto Design Systems |