Course Information

18-340: Digital Arithmetic

Units:

12

Description:

In this course, students explore the techniques for designing high-performance digital circuits for computation along with methods for evaluating their characteristics. We begin by reviewing number systems and digital arithmetic along with basic arithmetic circuits such as ripple-carry adders. From there, we move to more complex adders (carry-look-ahead, carry-skip, carry-bypass, etc.), multipliers, dividers, and floating-point units. For each circuit introduced, we will develop techniques and present theory for evaluating their functionality and speed. Other methods will be described for analyzing a circuit’s power consumption, testability, silicon area requirements, correctness, and cost. In addition, we will utilize various CAD tools to evaluate the circuits described. Finally, advanced timing and clocking concepts will be investigated. For example, the notion of clock skew will be introduced and its impact on clock period for sequential circuits will be analyzed. We will also learn how to analyze and design asynchronous circuits, a class of sequential circuits that do not utilize a clock signal.

Course projects have been completely re-designed. Now projects focus on key arithmetic aspects of various machine learning algorithms including: K-nearest neighbors, neural networks, decision trees, and support vector machines.

Prerequisites: Course in logic design (18-240 or equivalent).This course is crosslisted with 18-640.

Last Modified: 2018-02-07 2:50PM

Semesters offered:

  • Fall 2018
  • Fall 2017
  • Spring 2017
  • Spring 2016
  • Spring 2015
  • Spring 2014
  • Spring 2013
  • Spring 2012
  • Spring 2011
  • Spring 2010
  • Spring 2009
  • Spring 2008
  • Spring 2007
  • Spring 2006
  • Spring 2005