Fall 2009 (4541.763)
Complex Digital Systems for Software People
Instructors: Prof. Jihong Kim, Prof. Arvind
Prerequisites: Undergraduate courses in Computer Architecture and Object-Oriented Programming
Lectures/Tutorials: TR 10:30-11:45, Room 209-1@302-Dong
This is a lab-oriented course teaching new methodologies for designing multi-million-gate hardware designs using high-level synthesis tools. The emphasis will be aimed at quickly producing modular and robust designs; reusable modules; correctness by construction; architectural exploration and meeting performance constraints.
We will consider applications which are commonly found in modern Systems-on-Chip (SoCs). Examples of such designs range the gamut from general-purpose processors to specialized computation blocks such as radios (e.g. 802.11a/b/g) and video codecs (e.g. H.264) and network routing tools (e.g. IP lookup, packet sniffers).
This course is an experiment to show that it is possible to design complex digital systems with a minimum understanding of circuit design provided that the tools and the surrounding infrastructure are properly set up. To illustrate this point, the goal of each lab will to produce a working FPGA design.
This course will consist of approximately 20 lectures with an additional 10 tutorials/lab sessions interspersed. In addition, students will be expected to devote 6-9 hours/week outside of the classroom to complete their homeworks and lab assignments. Much of the lab work will require direct use of an FPGA and will require physical lab access.
Tutorials and Lab Sessions will be conducted by the Teaching Assistants who will also be available to provide assistance to the class outside the classroom.