

If further performance is requires, engineers elude to ASIC or FPGA. As for ASPs with improved instruction set, further performance can be gained by using the previous NLP in conjunction with dependency graph (DG) to allocate resources. In the case of using GPP, this is all what it needs for implementation. This pseucode is promptly mapped to a high level implementation language such as assembly or the more popular C/C++.

On the other hand, all the above have a common initial design step that is expressing the algorithm sequential pseudocode in what is known nested loop program (NLP), which is basically a for loop. Widely used platforms, in acsending ordering according to complexity in my opinion, are:ġ) General purpose processor (GPP)/ Microcontrollers.Ģ) Application specific processor (ASP), such as the common DSPs.Ĥ) Application specific integrated circuit (ASIC).Įvery platform has a different set of design methodology. The difficulty lies in which platform is chosen for implementation. When the algorithm is clear, the first step is to test and simulate the algorithm in a high level language like MATLAB.Īfter we reach confidence in our algorithm we move to the harder phase, which is the implementation. use the symmetry in FIR filter to reduce complexity. Then we can go a little bit deeper into the, high level, implementation details, e.g. The first step is to make a choice on which algorithm to use, e.g.

As DSP engineers, ultimately we are required to design and implement specific DSP algorithms.
