Programming fixed- and floating-point DSPs in assembly language has never been easy. Complications arise with very-long-instruction-word (VLIW) and superscalar multi-MAC architectures. Other variances with lots of parallelism on-chip add to the complexity.
Applications are concurrently becoming more sophisticated, requiring an enormous amount of code. For instance, third-generation mobile phones use more than half a million lines of code. Additional features like Internet connection, e-mail, and web surfing could raise the count to nearly 1 million lines. Generating all that in assembly language could take several months. A much larger team would be needed for such a task. Unfortunately, assembly skills are scarce.
One way to dramatically reduce the job is by programming in a high-level C language. Familiarity with C is more prevalent than knowledge of assembly language. With the help of an efficient C compiler, executable code can be produced in hours. It is at this point that the performance of the C compiler becomes critical.
Programming challenges and market forces are pushing designers toward high-level programming languages like C and C++. No longer are DSP users satisfied with mere MIPS/BIPS or MOPS/BOPS—they're asking for full development support as well. Evidently, suppliers are responding to this request.
These vendors are touting full compiler support for their new DSP architectures. In conjunction, they also are boasting higher levels of efficiency. The efficiency and user-friendliness of the C compiler are becoming key marketing points for DSP suppliers.
Leading producers such as Texas Instruments, Analog Devices, Lucent Technologies, Motorola, Infineon, and Philips have all developed optimizing C compilers. Some have achieved this feat internally. Others were brought up to speed by software houses with compilation skills. Interestingly, all are claiming very high efficiency rates for the tools. Numbers range between 70% and 80%. Mixing just a few time-critical loops in assembly code with lots of C has proven favorable. By using this technique, a compilation efficiency of 90% or higher can be achieved. The execution speed also has improved dramatically over the years.
Now, Analog Devices takes it to the next level—object-oriented programming. The supplier has designed an innovative C++ compiler that works within the VisualDSP integrated development environment. Its use minimizes the programming process. Product development time is decreased as well.
Analog Devices has given programmers easier access to specialized features in new-generation DSP architectures. This allows product developers to focus on the end applications. They no longer need to spend months trying to optimize the code. Consequently, they can introduce their novel gadgets in a timely manner.
Object-oriented programming is just one of the benefits of C++. The compiler also brings code portability and reusability to the development platform. Features such as these have helped to make C++ a popular programming language in many non-DSP applications.
DSP developers are going through a similar learning curve. They are eager to see more proponents of this object-oriented programming language. Once this is achieved, some standards can be quickly established. Texas Instruments will soon announce this capability. The problem is that we need more players. Hopefully, as more DSP producers join the C++ fray, DSP programmers will jump on the bandwagon as well.