DSPs began as a type of special-purpose coprocessor, and writing code for them was only slightly different from developing software for microprocessors. Signal processing required more in-depth treatment of numerical processing and less knowledge of system-level operations than microprocessor development, but the difference was largely a question of emphasis.
As circuit density has gone up, though, the two types of processors have increasingly diverged, right along with the applications they are able to tackle. Today, a state-of-the-art DSP application such as an all-digital cellular phone basestation or a portable wireless consumer product are completely defined by the digital signal processor, which may include the type of system-level I/O, user interface components and perhaps an execution unit for Java normally associated with advanced microprocessor-based systems.
As result, no one markets DSPs these days without a comprehens ive set of development tools that will include both high-level visual development systems, low-level fine-tuning of code, hardware emulation and system-modeling capability. Integrated project-management systems are also required, since it is becoming rare to have only one or two engineers developing a DSP system.
As with any rapidly evolving area of electronics engineering, opinions of what constitutes a complete set of development tools is a debatable topic. In this week's In Focus section, experts at three of the major DSP vendors-Motorola, Texas Instruments and Analog Devices Inc.-offer their prescriptions for what is needed to get a DSP-based application from initial design to manufactured product within a competitive time frame.
In his contribution, Motorola's Victor Berrios points out that C compiler technology has been advancing along with the rapid pace of DSP hardware evolution. As a result, basic programming skills will still suffice for much of the design implementation. "C compi lers for DSP processors have become much better at delivering functionally correct and compact code," Berrios explains. "Furthermore, with the availability of hybrid DSP/MCU architectures in the marketplace, efficient compiler technology is reaching new levels and should continue to improve."
In his article, Giuseppe Olivadoti at Analog Devices maintains that a tightly integrated and well-designed development system is essential to writing correct, robust code within the tight time budgets of today's competitive market. "All of the components of the development system must be tightly integrated, offering programmers a rapid, seamless transition from development in a simulation environment through target hardware debugging," Olivadoti argues.
And designers need to keep in mind the basic rules that result in fast, efficient code, said Rob Oshana at Texas Instruments, in a contributed article that was also presented at the recent Communications Design Conference. Usually, the greatest speedup in a DSP system occurs on relatively small sections of the code. Overall code optimization techniques may not be able to target those critical segments effectively. Thus, in the end, there is no automatic substitute for general processor execution expertise. Oshana offers his view on time-tested techniques-memory access options, low-level code tweaking, pipelining and branch logic management.