Computer Science Department , Indiana University

B441/B54 (§27687/§27688):
Digital Hardware Design
Fall 2006

Contents: News and

What's New Look here regularly for postings.
•  Scores and grades are posted [PDF]
•  NOTICE:I have been told that a change in the payment scheduling for enrolling students has caused many students to defer registration until the beginning of next semester. This implies that my predictions about closing P442/542 may have been premature. If you are interested in pursuing further study of digital systems, please contact me. There are three possible continuations of B441:
  1. Enrollment justtifies keeping B442/542 on the schedule this Spring.
  2. The P545 (Embedded & Real Time Systems) course can provide alternative project for students wanting to pursue hardware expertise.
  3. I can supervise individualized projects (Y391, Y499, Y790) in hardware. In this case, I routinely recommend "P" credit for these projects, however students looking at this option are required to consult with me before registering.
•  Lecture notes on microcode [PDF]
•  Solutions to Test 2 problems 1-3 [PDF]
•  Lecture notes on FPGAs [PDF]
•  Xilinx XC4000 data book [PDF]
•  Midterm Evaluations are posted [HTM]
•  Answers for Test One [PDF]
•  First design example using Algorithmic State Machines (ASMs) [PDF]
•  Chapter 5 updated with more (but not all) figures. [PDF]
•  There will be an in-class test on Wednesday, October 11. The test cover material in Chapters 1-4, focusing on practical skills needed in the laboratory, including
•   mixed-logic interpretation and gate-level implementation
•   truth tables, normal (minimal SOP) forms
•   SOP minimization (K-maps)
•   basic combinational building blocks (selectors, encoders, etc.)
•   tri-state and wired-and/or logic
•  Presentation materials on hazards [PDF], D flip-flop model [PDF]
[PDF] Presentation materials, Speeding up Addition.
[HTM] prior postings

Course information
Home Page:
Lectures: 9:30•10:45, MW, Geology (GY) 126
Instructor: Steve Johnson (
Laboratory: Schedule and other info
Lab Meetings: TBA, LH008
Lab partners should attend the same session;
Lab Instructor: Caleb Hess (
  • Lecture notes, readings, and technical references are posted electronically. Revisions and additions are indicated by green highlighting. Monitor this listing regularly.
    NOTE: This index contains links to draft material, including revisions to an existing textbook. B441/B541 students may print copies of this material for personal use during the sememster. These copies should be discarded once the course is over. You may not distribute this material to others or create links to this index on your own web pages. Prior students of B441/B541 may obtain -to-date versions by contacting Steven D. Johnson.

    Posted Link Title
    Ch. 1 9/8 [PDF] Design Overview
    Ch. 1 8/27 [PDF] Digital Logic
    Ch. 2 8/27 [PDF] Realizing Logic in Hardware
    Ch. 3 8/27 [PDF] Manipulating Logic Specifications
    Ch. 4 9/18 [PDF] Combinational Building Blocks
    NOTE: Missing figures to be added
    Ch. 4 10/4 [PDF] Supplemental notes on speeding up addition
    Ch. 5 10/5 [PDF] Building Blocks with Memory
    NOTE: Updated 10/5
    NOTE: Missing figures to be added
    Ch. 5 10/4 [PDF] Hazard example
    Ch. 5 10/4 [PDF] D flip-flop model
    Ch. 7 8/28 [PDF] Designing a Minicompter

  • Franklin Prosser and David Winkel, The Art of Digital Design, out of print.
    Not required. The course closely follows the outline of this textbook, especially Part II, which presents the Laboratory Project. A limited number of copies are available from the instructor. Used copies can be purchased on line [HTML]
  • B441/451 Laboratory Experiments [PDF]
    Under revision. This version is slightly out of date, but a similar sequence of laboratory assignments will be used.

§ Catalog Description

B441 Digital Design (4 cr.) P: C335 or H335. Organization and logic design of digital systems. Course presents a structured design philosophy, emphasizing hardwired and microprogrammed control. Boolean algebra, hardware building blocks, circuit synthesis, microprogramming. In the laboratory students build, study, and debug a working computer from basic hardware components. Credit not given for both B441 and B541. Graduate credit possible for PhD Minor only. Lecture and laboratory. Lab fee.
B541 Hardware System Design I (3 cr.) P: C335 and C343 or honors version. Structured approach to hardware design emphasizing hardwired and microprogrammed control. Boolean algebra, hardware building blocks, architecture and control, implementation issues. In the laboratory, students build a working computer using hardware prototyping technologies. Basic training in the use of design and simulation software. Lecture and laboratory.

§ Course Overview B441/B541 is an introductory course on digital design aimed at computer science students with no prior background in electronics or engineering. Course participants gain sufficient exposure to the predominant design concerns at the digital level to work effectively at hardware/software boundary in large applications. There is increasing demand for this kind of expertise in practice. Goals include:

Laboratory. The course laboratory is a graduated series of assignments covering the design and implementation of a simple but "real" computer:

The Digital Systems course, P442/P542 is a sequel to this course. Its focus is the design of systems in which designs of the kind studied in this course are components. Thus, it addresses the "next level" of system abstraction and provides further experience with the underlying technology. In addition, it incorporates the use of programmable components, such as microcontrollers, commonly used in embedded software applications.

The two course have the explicit goal of enabling students who wish to incorporate hardware in their programs (MS projects, doctoral research, internships, etc.). On successful completion, participants have acquired experience and expertise to design, implement and use protoype digital systems.

§ Course Topics and Lectures

Lect. Topics
  1.5 Boolean algebra, Karnaugh maps
  2 Elementary devices, mixed logic
  2 Device technologies (distrubted throughout the semester)
VLSI, logic gates, memories (SRAM, DRAM), programmable devices (PLDs, ROMs), configurable devices (FPGAs)
  1 Wired-or, wired-and, open-collector circuits
  1.5 Combinational building blocks: multiplexer, decoder, adder, etc.
  1.5 Speed-up of addition; buses
  1 Sequential circuits, hazards, latches, flip-flop
  1 Clocked storage elements: JK flip-flop, counters, shifters, etc.
  1 Building counters
  2 Algorithmic State Machines and state generators
  1 Clocked sequential design. clock skew, races, and other headaches
  2.5 Design examples: single pulser, traffic controller, etc.
  3 Design examples: serial bit clock, serial-parallel conversion
  3 Design example: PDP-8 terminal interface
  6 PDP8 design and implementation (distributed throughout the semester)

§ Laboratory

This is a laboratory course. It is vital that participants perform the laboratory assignments in a timely fashion. A schedule is given on the laboratory information page. Note that in some weeks it is recommended that you complete more than one of the laboratory experiment or assignment

§ Laboratory

Please review: