Syllabus for Roster(s):

  • 14F CS 2330-100 (ENGR)
  • 14F CS 2330-101 (ENGR)
  • 14F CS 2330-102 (ENGR)
  • 14F CS 2330-103 (ENGR)
  • 14F CS 2330-104 (ENGR)
  • 14F CS 2330-105 (ENGR)
  • 14F CS 2330-106 (ENGR)
  • 14F CS 2330-107 (ENGR)
  • 14F CS 2330-108 (ENGR)
  • 14F CS 2330-200 (ENGR)
  • 14F CS 2330-201 (ENGR)
In the UVaCollab course site:   Fall 14 DLD (CS2330)

Course Description

ECE/CS 2330 Digital Logic Design

Fall 2014

Class Meetings: MWF 9:00 – 9:50 am

Problem Sessions & Tests: Thursday 5:30pm-7:00pm

Class: Rice 130   Lab: Rice 240

What kind of a world could we create if we restricted all  questions to those with a yes/no answer?  If every color was pure black or white, no shades of grey?  If every aspect of our lives could be enumerated on a checksheet, each box checked or blank? If every decision was a clear-cut choice between two opposite alternatives?   You might expect a boring world indeed, but in this course you’ll see how interesting such a digital world can be, since it includes such devices as computers, smartphones, pet tracking systems, fitbits and much more.

Digital Logic Design is the process of designing complex digital systems using simple two-way switches, providing a physical device to answer yes or no.   In this course we begin with binary (yes/no) phenomena and build successively more complex components and systems, ending with a simple processor.  You will discover how simple gates are built from switches, how components are built from gates, how systems are built from components.  At first we will assume that there is no concept of time and that everything we need to know is immediately available.   This will allow us to design an interesting collection of useful devices.   Then we will add the concept of time, from which the concept of memory will emerge, which will greatly expand the devices that we can design and use to create more complex systems.   Our goal is to assemble a simple processor from the constituent components and to understand how software computations are performed on hardware.

Approach

This course will enable students to learn about digital systems by discovering how they work.   Most topics are introduced through a guided exploration of a collection of digital components of increasing complexity.   As the example components are examined and understood (what are the inputs, what are the outputs, what does it do), the purpose and importance of each component is defined.   Alternative approaches are analyzed and considered and each component will be expanded, generalized and used in a larger system.  By the end of the semester we will have a simple working processor to investigate.

Goals

In his course you will:

  • experience how electrical and computer scientists and engineers build digital systems
  • improve your problem-solving skills , including design and debugging skills
  • design in multiple levels of abstraction, that is, be able to move from detailed component-level design to system design (where components are treated as building blocks) and vice-versa
  • appreciate the need for precision in technical communications, particularly with respect to interface design

Learning Outcomes

Upon successful completion of this course, you will be able to translate a real-world problem into precise specifications for a digital system, design a system to meet those specifications and demonstrate that your solution solves the problem.  Further, you will be able to take a digital system that has already been designed and implemented and deconstruct and analyze it to determine what it does, how it works, and how you can use it in your system.

Activities and Assignments

A great way to learn about digital systems is to play with example systems and see how they work; that’s what you’ll do in many classes.  I’ll give you a circuit that I’ve built that does something important or useful.   Working with a small group of classmates you will embark on a guided exploration of the given circuit, discovering its function and behavior.  There may be a short orientation lecture before you begin exploration or a summary discussion after your discovery.  After class, you may be asked to extend the behavior of the given circuit or to use it as part of another system.   Each of the circuits that you will explore is a building block of a larger component that in turn is a building block of a simple processor. 

You will also learn the process by which such circuits and components are designed and evaluated and you will design your own circuits to achieve specific functional requirements.  In some cases your designs will be rendered with pencil on paper, in other cases your will build the circuits in software.  Several assignments will be implemented in physical hardware in the lab.

A weekly pencil on paper quiz will be used to assess your learning and demonstrate mastery of the the design techniques, hand help you prepare for the three tests (also paper and pencil).  Lab assignments are design projects that you implement in physical hardware or (for more complex designs) in software and demonstrate to the instructor. The final exam is comprehensive.                                                              

Prerequisites

The course has no prerequisites.

Textbook

Frank Vahid, Digital Design (2nd Edition), Wiley, 2010.  Also available as E-book.

The first edition is OK but the problems are slightly different and the figures may have different numbers.   I do not have a point-by-point comparison so you'll have to be careful about checking.

Grading

10% exploration extensions; 10% Weekly and pop quizzes; 25% Lab assignments; 30% Midterm tests (3); 25% Final exam

Grade Scale:  A 94.0; A- 92.0; B+ 88.0; B 85.0; B- 83.0; C+ 79.0; C 76.0; C- 74.0;  D+ 70.0; D 65.0; D- 62.0

Topics

Welcome to the digital world

  • switches, logic functions and circuits
  • digital representation of data
  • logic, Boolean algebra and equivalence

 

You have everything that you need to know at the present moment

  • inputs, outputs, functions and their representation
  • the relationships between logic equations and circuits
  • explorations of useful circuits (decoders, encoders, multiplexers, adders, comparators, shifters, ALU)
  • combinational design process

Adding the concept of time

  • remembering a single bit of information
  • sequential systems, finite state machines
  • exploration of useful circuits (flip-flops, registers, counters)
  • controllers
  • sequential design process

Digital systems

  • controlling an assembly of digital components
  • assembling the digital components to be controlled
  • establishing the connections between them
  • making the system programmable