Course Description

Rarely does a single technology take over the world in quite the way that integrated circuits (ICs) have done. From their invention around 60 years ago, ICs are now found in almost everything we do (computers, smart phones, wearables, robots ...). While in the past, the focus was on designing high performance general purpose processors, the industry is now moving towards more and more specialized ICs such as graphics processing units (GPUs), deep learning accelerators and image and video processing accelerators. This move towards specialization is driven by the high performance and energy efficiency demands of sensor-rich smart phones, autonomous robots, and large data centers running applications such as image and video processing and analysis, graphics, speech processing, AI and machine learning. This course will teach you how to design such specialized ICs.

The course starts with a quick introduction to MOS transistors and IC fabrication and then creates abstractions to allow you to create and reason about complex digital systems. It uses a switch resistor model of a transistor, uses it to model gates, and then shows how gates and physical layout can be synthesized from Verilog or SystemVerilog descriptions. Most of the class will be spent on providing techniques to create designs that can be validated, are low power, provide good performance, and can be completed in finite time.

Course Topics

More details about the course, lecture topics and the project can be found in the syllabus on canvas.

  • Introduction
  • Transistors and gates
  • Gate delay and power
  • Delay optimization and logical effort
  • Sequential circuits
  • Hardware description languages and synthesis
  • Hardware generators/meta-programming
  • Layout and fabrication
  • Scaling
  • Testing and design for testability
  • Design verification 1 - dynamic verification
  • Design verification 2 - static verification and emulation
  • Formal methods for hardware verification
  • QED and symbolic QED
  • Accelerators