This course is primarily an in-depth introduction to integrated 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 common place. 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 multicore 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, network-on-chip communication, performance analysis, scheduling, low-power and reliable design, power management, clocking and memory issues. From a practical standpoint, the course explores the potential of software tools and FPGA prototyping to design complex applications (e.g. multimedia, social applications, etc.) for embedded multiprocessor platforms. It also explores the use of hardware description languages (HDLs) such as Verilog and SystemVerilog for modeling and simulation.
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