December Newsletter: Creating Top-Notch Tools for Signal Processing

Signal processing is becoming important in an increasingly broad range of embedded systems. As signal processing workloads become more widespread, these workloads are increasingly assigned to embedded processors that were not designed with signal processing in mind. Because these processors were not designed for signal processing tasks, the processors’ software development tools often lack critical features needed for signal processing software development.

The tool features needed for signal processing software development overlap with the features needed for general embedded software development, but there are some critical differences. One such difference is the need to support data visualization features, such as eye diagrams, constellation diagrams, and scope plots. Data visualization is extremely useful for debugging signal processing software, but is rarely used in developing other types of embedded software. Similarly, signal processing software often uses fractional (rather than integer) data types, so debug tools should be able to display data in this format.

Signal processing software also differs from many other kinds of embedded software in that signal processing software typically requires aggressive optimization to meet speed and memory-use constraints. Processor tool chains are critical to these optimization efforts. For example, it is important to have good support for software profiling. Profiling allows programmers to identify the processing-intensive sections of their code, often called “hot spots.” The tools should also allow programmers to understand the cycle-by-cycle timing of these hot spots. Without good profiling tools, the programmer is often left guessing about the performance of the code and how to optimize it. This can be a serious problem, particularly if the processor has dynamic features—such as superscalar execution, caches, or branch prediction—that make it difficult to determine cycle counts by hand.

A number of major processor vendors have engaged BDTI to help them improve their tools for signal processing software development. In some cases, BDTI has made recommendations on new tools and their key features. In other cases, BDTI has performed in-depth evaluations of existing tools, providing detailed suggestions for improvement. BDTI’s strong background in both signal processing software development and signal processing tool evaluation puts it in a unique position to help companies create top-notch tools for signal processing software development.

To learn more about how BDTI can help your company deploy tools that give you a competitive advantage, contact Jeremy Giddings at +1 510 665 1600 or at giddings@BDTI.com.