Digital signal processing is a highly expansive field which is a part of most modern electronic systems. Examples of such systems are mobile communication, MP3/CD/DVD-players and medical systems exemplified by pacemakers and hearing aids and examples of algorithms are different types of filtering, coding and image recognition. Often a real time requirement exists, which limits the possibilities to perform the signal processing in a standard computer. Standard processors are one alternative which are developed to cover a wide range of applications and can therefore be used in many systems and gives high flexibility. However, many applications have requirements on for instance throughput and power consumption that demands application specific architectures.
This course will give insight into how an algorithm specification can be implemented from a given set of criteria. The main part of the course will be focused on the design of application specific architectures that can be implemented on either reconfigurable hardware, e.g. FPGAs, or as a custom circuit, i.e. ASIC. Standard signal processors and their relation to other solutions will also be discussed. The content is:
•Characterization and representation of signal processing algorithms: signal-flow, data-flow and dependence graphs and the concept of iteration bound.
•Architectural transformations – The concepts of retiming, pipelining and parallel processing for high throughput and/or low power consumption. Different types of architectures such as time-multiplexed and hardware mapped and how transformations can be made between them using the concepts of unfolding and folding.
•Algorithm transformations – How complexity in algorithms can be reduced and thereby reaching a more efficient implementation through the concept of strength reduction.
•Different numbering systems, how they are used and how they affect implementation and performance.