# Kursbeskrivning

**Course credits:** 7.5

**Optional for:** E4, D4, F4

**Course manager:** Dr Johan Wernehag

**Prerequisites:** ETI275/ESS040/ETI240-0701 Digital Signal Processing.

**Recommended Prerequisite:** ETI130 Digital IC-design.

**Course composition:** 28h lectures, 12h seminars, 16 hours laboratory work. Individual study time is estimated to 130 hours.

**Grading:** Passed Homework exercises, which are presented by the students during two Homework Seminars, and passed laborations result in grade 3. For grades 4 and 5 a written exam is required.

**Aim: **Digital signal processing is an area becoming increasingly more important in many products and systems today. When algorithms within this area are to be implemented there is a large number of possible alternatives depending on varying requirements regarding for instance real time properties and power consumption. This course should give the students an understanding regarding how different implementation solutions affects properties like performance and flexibility and not least design time and development cost.

The overall goal of the course is to teach a systematic approach to the design process of digital signal processors. The main part of the course if focused on giving the students an understanding of the design process of application specific architectures given an algorithm specification. This process should be performed with a set of design constraints such as calculation capacity/throughput, power consumption and silicon area.

**Aims: Knowledge**

After completing the course the student should:

have gained an understanding for the relationship between parameters such as calculation capacity, power consumption and silicon area

be familiar with transformations that help the designer to develop different solutions for a given signal processing algorithm.

understand how different number representations affect the solution.

**Aims: Skills**

After completing the course the student should:

be able to suggest a processor architecture from a given set of critera.

be able to analyze a processor architecture and suggest alternative solutions.

**Aims: Attitude **After completing the course the student should:

have gained an overview of the field of implementation aspects of signal processing algorithms.

feel well equipped to design an application specific processor given a specification using the methodologies covered in the course.

**Description: **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:

1. Characterization and representation of signal processing algorithms: signal-flow, data-flow and dependence graphs and the concept of iteration bound.

2. 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.

3. Algorithm transformations – How complexity in algorithms can be reduced and thereby reaching a more efficient implementation through the concept of strength reduction.

4. Different numbering systems, how they are used and how they affect implementation and performance.