This course is primarily an in-depth introduction to integrated embedded systems design and optimization. This is an important topic today when complex systems-on-chip composed of tens or hundreds of IP cores are becoming available. At the same time, the applications that need to run on such multiprocessor platforms have become increasingly complex and have tight power and performance constraints. Consequently, systematic design methodologies are in great need for the design of future electronic systems.
This course covers all major aspects related to the specification, modeling, analysis and optimization of embedded systems. Particular attention is given to low-power and communication-centric design of integrated embedded applications as these are the two dominant design paradigms nowadays. Topics to be covered include: specification of embedded applications, models of concurrency, performance analysis, scheduling, low-power and reliable design, power management, clocking and memory issues, networks on-chip. From a practical standpoint, the course explores the potential of FPGA prototyping to designing complex applications (e.g. multimedia, games, etc.) for embedded multiprocessor platforms. It also explores the use of hardware description languages (HDLs) such as SystemC and SystemVerilog for modeling.
The course requirements consist of a few homework assignments, a semester-long project, in-class presentations based on relevant papers, and students work on the project. Some assignments involve Matlab, FPGA prototyping, and system level HDLs.
By structure and contents, this class targets primarily the computer engineering students but it provides also a valuable basis for interdisciplinary research to students in computer science and related disciplines.
Prerequisites: Senior or graduate standing