Demand for all things digital continues to drive the need for digital signal processing (DSP) devices, especially in the hot consumer electronics market. You may, in fact, be using DSP now as you are reading this on your Palm Treo 610 or wirelessly emailing your colleague in Europe. The proliferation of DSP devices is not being fueled by consumer electronics alone. DSP chips are also found in automotive control systems, wireless and broadband communications and homeland security products.
Products with more features, functionality and power efficiency -- and the need to get them to market faster -- makes the algorithmic design and implementation phases of DSP device development complex and error prone. And, evolving industry standards only make for greater complications. Imagine trying to implement a standard hundreds of pages long such as DOCSIS 2.0, the cable modem internet access specification, while accommodating a dozen or more specification changes per week into your design. This situation occurs routinely as new standards move toward completion and equipment manufacturers rush development in order to be the first to market.
Amazingly enough, today DSP designers must meet these challenges with no fully automated means to move from concept to implementation. Designers frequently develop and analyze algorithms using floating-point models in MATLABŪ from The Mathworks and manually convert them to fixed-point versions in an implementation language such as C or Verilog. This numeric conversion process and manual design re-coding are time consuming, error prone and seriously inhibit designer productivity.
The MATLAB environment is the de facto standard for DSP algorithm development and exploration. It has assumed this position because it is an effective starting point due to its ability to succinctly describe DSP problems. For example, one line of MATLAB code frequently results in 30 to 40 lines of C code. MATLAB also provides many powerful analysis and visualization features that assist in the development process.
While the vast majority of DSP implementations employ fixed-point arithmetic for performance, power and cost reasons, algorithms typically start out as floating-point versions. The manual conversion of these floating-point algorithms to fixed-point versions, if done without care, results in loss of functionality, performance or failure to meet specifications. This numeric conversion is a time-consuming, error-prone process that consumes up to 40% of the DSP development cycle.
The typical development flow in use today features a manual conversion of the MATLAB program to a floating-point C version, testing to insure integrity of the conversion and then another manual conversion to a fixed point C or Verilog version followed by further testing. All of this manual conversion effort and multiple test cycles can be replaced by using a design flow in which floating-point to fixed-point conversion takes place in MATLAB and generation of fixed point C or Verilog is done automatically.
Tackling these problems requires a new class of development software - DSP Design Automation. DSP Design Automation represents a solution in which DSP design flows are fully automated for all classes of DSP devices, immediately and significantly increasing productivity. It starts with an effective design description vehicle, such as MATLAB, and provides a natural way of specifying algorithms. It enables numerically complex floating-point to fixed-point transformations, and produces a fixed-point model that can be verified alongside the original floating-point version with fast simulation
High-level specifications are automatically and accurately converted to device-specific, implementation-ready representations in C or register transfer level (RTL) code. For designs targeted to fixed-point processors, the implementations must also take into account commonly found characteristics of fixed-point processors --such as particular accumulator characteristics, rounding modes and word size -- and offer efficient code generation.
This conversion from application domain-level input to architecture-specific output is similar to the synthesis step in the hardware domain. In an ideal world, the process will shield the developer from the more complicated details of the architecture in order to maintain a high level of productivity yet maximize use of hardware resources. Fixed-point algorithms are frequently implemented in fixed-point digital signal processors from a wide variety of vendors, including Texas Instrument and Analog Devices or increasingly in FPGAs. Product development being what it is, however, designers are usually under tight constraints requiring efficient use of chip resources, memory and high-operating performance. All this demands efficient code generation compatible with the advanced tool chains from chip vendors.
Market analyst firm Forward Concepts forecasts that the market for DSP devices is growing at an annual rate of 25 percent. With this exceptional growth and untapped potential, DSP Design Automation can play a leading role insuring that the spread of DSP applications is not hindered by an unproductive development environment. DSP designers for your next-generation Treo are counting on it!
By Andy Haines, Vice President of Business Operations, Catalytic Inc.
Go to the Catalytic, Inc. website to learn more.