• Instructor: Prof. Luca Carloni (office hours: by appointment after each lecture, Tu-Th 1:30-2:30pm).
  • TAs: Gabriele Tombesi, Ajay Vanamali, and Sai Vittal Battula.
  • Credits: 3 units.
  • Lecture: Tu-Th 11:40am-12:55pm.
  • Room: 633 Mudd.
  • Method of Instruction: In-Person.
  • Prerequisites: COMS 3157 (Advanced Programming) and CSEE 3827 (Fundamentals of Computer Systems).
  • Goals: In this course we will study the hardware and software aspects of (1) integrating heterogeneous components into a complete system; (2) evaluating designs in a multi-objective optimization space; and (3) designing new components that are reusable across different systems, product generations, and implementation platforms.
  • Brief Description: Design and programming of System-on-Chip (SoC) platforms. Topics include: overview of technology and economic trends, methodologies and supporting CAD tools for system-level design and verification, software simulation and virtual platforms, FPGA prototyping, models of computation, the SystemC language, transaction-level modeling, hardware-software partitioning, high-level synthesis, memory organization, device drivers, on-chip communication architectures, power management and optimization, integration of programmable cores and specialized accelerators. Case studies of modern SoC platforms for various classes of applications.
  • A Paper about this Course: Teaching Heterogeneous Computing with System-Level Design Methods
  • NOTE: This course is typically offered in the Fall semester only. It is open to undergraduate, MS and PhD students who meet the Prerequisites as listed above. It is one of the courses that can be selected to satisfy the senior-year requirement in Computer Engineering. It can also be taken to satisfy elective requirements for the MS programs in Computer Engineering, Computer Science, and Electrical Engineering, as well as for the PhD programs in Computer Science and Electrical Engineering.