CS/ECE561 – Hardware/Software Design of Embedded Systems (Fall 2017)
Instructor: Dr. Sudeep Pasricha (firstname.lastname@example.org), ENGR B119
Lectures: Tu/Thu 12:30pm – 1:45pm, BHSCI 107
Office Hours: TBA
Course Description: Embedded systems run the computing devices hidden inside a vast array of everyday products and appliances such as smartphones, tablets, GPS units, cameras, and laptops. Cars are full of them, as are airplanes, satellites, and advanced military and medical equipments. As applications grow increasingly complex, so do the complexities of the embedded computing devices. The goal of this course is to develop a comprehensive understanding of the underlying technologies and design techniques used to build such embedded systems. The course provides an overview of the various building blocks of embedded systems, including processors, memories, peripherals, communication architectures, OS, middleware and embedded software. Additionally, several topics relevant to the design of contemporary and emerging embedded systems are covered, including security, reliability, writing embedded software, system level modeling and specification, design space exploration, hardware-software partitioning, high level synthesis (hardware/software interface), and real time scheduling. Real world examples will be used to demonstrate and explain concepts. See course schedule for more details.
Prerequisites: ECE452 or equivalent computer organization course; basic programming experience in C/C++ and using Linux; basic knowledge of data structures and algorithms
Grading: See course policies
Textbook: None. The course will cover materials from various books and conference/journal articles. Slides will be posted on RamCT. A sample list of reference books is given below:
- P. Marwedel, “Embedded System Design”, Kluwer 2011.
- S. Pasricha, N. Dutt. “On-Chip Communication Architectures”, Morgan Kauffman 2008.
- M. Wolf, “Computers as Components: Principles of Embedded Computing System Design”, MK Pub, 2012.