Design work can be approached in a number of different ways. But when it comes to standards-based designs for systems centering on wireless connectivity or multimedia, it makes more sense than ever to consider starting at least some parts of the process from the algorithmic level.
With most communications protocols embodied largely in algorithmic functions, this is the ideal place from which to begin defining system implementation and partitioning. Indeed, EDA vendors who traffic in high-level synthesis and verification tools agree.
“The extreme high-level design that we see involves algorithmic tools from vendors like the MathWorks,” says Brett Cline, director of marketing at Forte Design Systems. “If you think about the key algorithm for your next HDTV design, the algorithm can process the data, but you have to decide on the format for implementation. These decisions can pertain to hardware or software or both.”
According to Cline, that’s a major reason for embarking on algorithmic-level work. Designers have found that doing this kind of partitioning and exploration of implementation options helps them demonstrate that their algorithms will process data properly.
According to Ken Karnofsky, marketing director for signal processing and communications at the MathWorks, algorithmic-level design is seeing an upsurge in interest in areas beyond communications and multimedia. For one, DSP designers are algorithmfocused and use high-level tools to implement their computationally intensive algorithms in hardware or software so they perform quickly and efficiently.
But algorithmic design also sees considerable use in the design of feedback-control systems, according to Karnofsky. “In feedback control, where it’s more electromechanical, as well as in automotive applications, algorithmic-level tools are used to model the environment in which the algorithm is used,” he says.
For the control system world, the MathWorks’ tools are extensively used in the design and implementation of control algorithms employed in microprocessors. They’re also used to model the dynamics of the system in which that processor is embedded.
“In an engine control system, our Simulink environment can be used to model how the sensors and systems react to that algorithm. It starts with more simulations and linking to requirements that they may have. This is especially the case in safety-critical applications, whether transportation or medical,” says Karnofsky.
The notion of using algorithmic tools to model the surrounding parts of the system is interesting, because it marries disciplines that are otherwise typically disparate (Fig. 1). “Whether it’s a system-on-a-chip (SoC) design or a board-level system, there is almost always a mixture of analog and digital, software and hardware,” says Karnofsky.
Those broad segments of any given design are typically tackled in silos, with different tool chains and disciplines. “There are issues with design flaws or missed opportunities because those tools aren’t brought together,” says Karnofsky. “Thus, there is lots of interest in taking those algorithms done in Matlab or Simulink to model the surrounding parts of the system.”
Consider the design of communications basestations in which power amplifiers are a large part of the cost. To hold down those costs, designers might be tempted to try lower-cost amplifiers. The tradeoff is that the characteristics of a lower-cost amplifier might not be as linear as those of a more costly one.
As a result, the workaround is to compensate with DSP filtering techniques. Creating the algorithm for that filtering requires a highly accurate model of the amplifier’s RF characteristics. So here’s a case where algorithmic-level modeling can be combined with RF/analog tools to iron out a sticky design issue.
“In the transportation world, real-world testing is very expensive. Plus, you actually have to build at least one of the systems under test,” Karnofsky points out. It can thus be very difficult to pin down design flaws related to the design specifications without very early simulation work such as that afforded by algorithmic flows.
The same is true with communication designs, where the modeling of interaction between analog and digital components at the register transfer level (RTL) can make finding timing issues very complex. Earlier simulation can help weed out the root causes of those timing issues.
Yet another use case for algorithmic design that crosses disciplinary boundaries is in audio systems, such as algorithms for surroundsound systems. Designers may need to conduct listening tests for proof of concept of their algorithm. Furthermore, they may want to do a series of such tests in a single day. Doing so at the algorithmic level will prove a lot more feasible than if the functionality were expressed at a lower level, such as in C code.
Continued on page 2