Prof. Jeff Goeders, 450I EB, email:, Office hours: by appointment

Course Content

In this course, we will study the entire FPGA/VLSI CAD flow, including high-level synthesis, technology-dependent and independent optimization, partitioning, floorplanning and placement, and routing. For each stage, we will identify the problem to be solved, and discuss optimization algorithms to solve the problem. Some of these optimization algorithms include simulated annealing, dynamic programming, branch-and-bound, and various graph algorithms (eg. Shortest-path algorithms). There will be an emphasis on CAD algorithms targeting FPGA, but will also discuss CAD for custom chip design. Note that this course is not about the use of CAD tools; rather, it is about the optimization algorithms that are used in these tools. We will also cover current research in the area, and several lectures on student selected topics.


Good understanding of digital logic. Solid programming skills, especially C/C++. If you are unsure if you have the necessary experience, contact the instructor.


There is no textbook; reading will be taken primarily from research papers.

Sharing Source Code

Sharing your source code is prohibited and is a violation of the Honor Code. This includes posting your lab code and solutions on a public website such as a public Github repository. You will be provided with a private Github repository to store your code.

Grade Breakdown

Component % of Grade
Lab Programming Assignments (3) 40
Lab Exercises (2) 10
Paper Reviews 15
Leading Class Paper Discussion 10
Final Project 25

Programming Assignments

There will be three assignments. In each assignment, you will implement one of the CAD algorithms discussed in class, and evaluate its performance. These assignments make up the largest part of your grade, and as such, are quite large. Allow yourself plenty of time to complete them. Assignments and due dates will be posted on the course website.

Lab Exercises

There will be two guided exercises that will give you experience using open-source CAD tools. These will be much smaller than the programming assignments.

Paper Reviews & Class Paper Discussion

You will be asked to complete several paper reviews over the course of the semester. In addition, each student will lead a class discussion on one of the papers. See Paper Reviews and Paper Discussion for more details.

Final Project

Students will completed a project related to the topics covered in the course and present the results from this project in a class presentation. Projects should be completed in groups of 3 (or 2 if necessary). See Final Project for more details.

There will be no final exam for the course.

Late Policy

For assignments/exercises submitted late, the penalty will be 10% for each week late (rounding up), to a maximum of 30% deduction. (Example: submitting 1 day late will result in a 10% penalty and 13 days late will result in a 20% penalty). No assignments will be accepted after the last day of class. This policy applies to assignments only. The final project deliverables must be completed on time, or no credit will be given.

Honor Code

In keeping with the principles of the BYU Honor Code, students are expected to be honest in all of their academic work. Academic honesty means, most fundamentally, that any work you present as your own must in fact be your own work and not that of another. Violations of this principle may result in a failing grade in the course and additional disciplinary action by the university. Students are also expected to adhere to the Dress and Grooming Standards. Adherence demonstrates respect for yourself and others and ensures an effective learning and working environment. It is the university’s expectation, and every instructor’s expectation in class, that each student will abide by all Honor Code standards. Please call the Honor Code Office at 422-2847 if you have questions about those standards.

Preventing & Responding to Sexual Misconduct

Brigham Young University prohibits all forms of sexual harassment—including sexual assault, dating violence, domestic violence, and stalking on the basis of sex—by its personnel and students and in all its education programs or activities. University policy requires all faculty members to promptly report incidents of sexual harassment that come to their attention in any way and encourages reports by students who experience or become aware of sexual harassment. Incidents should be reported to the Title IX Coordinator at or (801) 422-8692 or 1085 WSC. Reports may also be submitted online at or 1-888-238-1062 (24-hours a day). BYU offers a number of resources and services for those affected by sexual harassment, including the university’s confidential Sexual Assault Survivor Advocate. Additional information about sexual harassment, the university’s Sexual Harassment Policy, reporting requirements, and resources can be found in the University Catalog, by visiting, or by contacting the university’s Title IX Coordinator.

Student Disability

Brigham Young University is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. A disability is a physical or mental impairment that substantially limits one or more major life activities. Whether an impairment is substantially limiting depends on its nature and severity, its duration or expected duration, and its permanent or expected permanent or long-term impact. Examples include vision or hearing impairments, physical disabilities, chronic illnesses, emotional disorders (e.g., depression, anxiety), learning disorders, and attention disorders (e.g., ADHD). If you have a disability which impairs your ability to complete this course successfully, please contact the University Accessibility Center (UAC), 2170 WSC or 801-422-2767 to request a reasonable accommodation. The UAC can also assess students for learning, attention, and emotional concerns. If you feel you have been unlawfully discriminated against on the basis of disability, please contact the Equal Employment Office at 801-422-5895, D-285 ASB for help.