CS294-88 Declarative Hardware Design Course Info

Instructors

Prof. Jonathan Bachrach

Prof. Krste Asanović

Overview

This class will consist of lectures and projects in three related areas of high-level architecture design. First, we will refine and extend earlier work in hardware pattern languages to provide a structure around which to base future high-level hardware design tools. Second, we will develop implementations of patterns as flexible parameterized design generators using the Chisel hardware construction language. Third, we will examine automatic design-space optimization methods and simulation techniques that effectively explore large design spaces while maximizing objective functions such as Tasks/Joule and Performance/Area.

Prerequisties

We expect most students to have taken CS250 and/or have experience with Chisel before taking the class, but students with either significant programming language experience or significant hardware design experience should be able to contribute to the class.

Class Assignments and Grading

Assigned Paper Readings and Class Discussion (25%)

Readings will be assigned and discussed at the beginning of the class period followed by lecture on background material for the next readings. Students must email a one paragraph summary of each paper before class, including strong points and weak points observed in the paper, and a question for class discussion.

Projects (75%)

Projects will be done in groups of two, and can be in any of the three main areas, or a combination. During the second half of the semester, we will meet privately each week with each group during the class time to discuss their project. Every few weeks the group will make a public presentation to the class, and it is expected all students provide feedback on each project.