This month CEVA announced significant improvements to its software tool suite. Collectively, the new tools and features are dubbed the CEVA Application Optimizer, and are part of the CEVA-Toolbox software development suite. CEVA describes these capabilities as providing an “end-to-end, fully C-based development flow.” This is an important topic for users of DSP processors, who are less and less willing to write heavily target-specific C code or assembly code which requires them to become architecture experts. To maintain their competitiveness, DSP processor vendors must focus on continuing to provide high performance relative to general-purpose CPUs while improving ease of use. One way to do this is to provide tool chains that deliver the inherent performance advantages of their processors without a lot of code tweaking. With this new tools release, the majority of CEVA customers will most likely not reach the holy grail of achieving their performance goals while writing complete applications in generic C code. However, CEVA is making real progress.
Broadly, the CEVA Application Optimizer includes three sets of functions: front-end tools targeting application level development, middle tools improving code optimization, and back-end test automation. At the front-end, the CEVA release includes the capability to connect the CEVA tool chain and debugger to MATLAB or Microsoft Visual Studio C/C++ to assist in code porting. Developers can perform mixed-mode simulations wherein one or more blocks of the application are executed in the CEVA simulator or development board, with the rest of the application executed in MATLAB or Visual Studio. In addition, developers can control the CEVA debugger from within MATLAB or Visual Studio, for example, accessing data in the CEVA debugger for display in MATLAB.
Another front-end improvement is that the application profiler more accurately models the DSP subsystem and memory hierarchy compared to the previous version. CEVA has also invested in its DSP libraries, largely by adding a communications library which targets 3.5G and 4G wireless terminal and infrastructure applications. This should speed the work of customers using the CEVA-XC architecture, announced in February, in cellular designs.
CEVA’s improvements in optimization are some of the most noteworthy in this tool upgrade. CEVA’s project build optimizer with scoring-based compilation has the ability to automatically explore compiler options on a function-by-function basis to achieve improved performance and code size in a single compilation. CEVA has also added a post-link optimizer which leverages visibility into cross-functional calls after compilation and linking. (Some other processor IP vendors have similar capabilities, although they refer to them by different names. For example, ARM touts “profiler-driven compilation” and “intelligent code linking”.)
According to CEVA, these optimization features improve out-of-the-box performance, minimize guesswork in compiler optimization, and enable less customized code to achieve better performance, allowing the user to stick with maintainable and general C code more often. CEVA shows results from voice codecs in which unoptimized C code achieves 53-69% of the performance of assembly-optimized code.
If it lives up to CEVA’s expectations, the new tool chain will significantly improve software development productivity for CEVA customers, from porting their algorithmic code onto the DSP to generating optimized code that meets code size and performance goals. Because the need to tweak C code and write assembly code should be reduced, code maintainability at similar levels of performance should increase while development time decreases as more functions remain in C. Customers shopping for a DSP may want to dig deeper through an evaluation of the tools with their own application code and design methodology.
The CEVA Application Optimizer will be released this month. Most components will be available as a free upgrade to existing CEVA licensees under a support agreement. The communications library and MATLAB connectivity may require additional licensing fees.