EE 365

Advanced Digital Circuit Design

Fall 2003

I. Course Description

An advanced course in digital circuit design, this course begins with a review of switching algebra and combinational design, programmable logic devices, and combinational circuits including encoders/decoders and multiplexers/demultiplexers. Sequential circuits using latches, flip-flops, ROM and RAM and also reviewed. Topics in sequential circuit design are treated, including finite state machines, Mealy and Moore models, state diagrams and state tables, optimization, asynchronous sequential circuits, and races and hazards. In addition, implementation of sequential circuits with programmable logic devices is discussed, as are topics in logic circuit testing and testable design.

 

II. Prerequisites

EE 264

 

III. Textbook

Digital Design Principles and Practices, 3rd ed. by Wakerly. Prentice Hall, 2000.  (required)

 

IV. References

Digital circuit data book (available online):

            www.ti.com (search by part name e.g. 74LS04 or use the functional index)

            www.latticesemi.com source for data on GALs

            www.xilinx.com/partinfo/databook.htm  source for data on xilinx  CPLDs, FPGAs

Textbook web site www.ddpp.com  (includes an appendix on basic electric circuits that is useful if you don’t remember, or didn’t take ES 250)

 

V. Course Topic Outline                  (Textbook references are given in brackets)

1.      Introduction.  Overview of microelectronic devices and digital signals. [Chaps. 1 and 3]

2.      Review of basic Boolean Algebra and combinational logic design.  [Chap. 4.1-4.3]

3.      Practical logic design: data books, CAD tools, documentation [Chap. 4.7, 5.1, 11.1]

4.      Timing in combinational circuits [Chap. 4.5, Chap. 5.2]

5.      Programmable logic: PLDs, FPGAs, etc. [Chap. 5.3 and 8.3]

6.      MSI and VHDL implementations of building block components:
      decoders, muxes, tri-state logic, adders, etc. [Chap. 5.4-5.11]

7.      Design examples using combinational components [Chap. 6.1 and 6.3]

8.      Review of sequential logic components: S-R latch, D latch, D flip-flop. [Chap. 7.1-7.2]

9.      Clocked synchronous state machines [Chap. 7.3- 7.5]

10.    Synchronous design using state machines [Chap. 8]

11.    Practical timing considerations and designs using VHDL  [Chap. 9.1-9.2]

12.    Memory components (ROM, SRAM, DRAM) [Chap. 10]

13.    Testability [Chap. 11.2]

VI. Course Objectives

1.  Students should learn the electrical characteristics of CMOS and TTL logic gates and should understand how these devices function in a typical application circuit, including interfacing with other circuit elements.

2.      Students should learn how to design practical digital systems using standard medium scale and large scale integrated circuits, including programmable logic circuits.

3.      Students should learn how to use modern CAD tools including schematic capture editors, simulations, and logic synthesis compilers based on VHDL.

4.      Students should gain experience with a variety of standard digital memory circuits and subsystems, and should understand their internal design and their application in more complex systems.

 

VII.  Learning Outcomes

1.      For CMOS and TTL logic families, students will be able to explain the meaning of electrical characteristics such as noise margin, input and output voltages and currents, and timing characteristics.  Students will be able to design interfaces between devices from these logic families and other electronic devices. [Objective 1]

2.      Students will be able to design practical digital systems using standard MSI parts and programmable logic. [Objective 2]

3.      Students will be able to use CAD tools to produce a schematic of a digital design and to simulate the design. [Objective 3]

4.      Students will be able to express a digital design in VHDL and use a VHDL compiler to synthesize the design in programmable logic. [Objective 3]

5.      Students will be able to use standard digital memory devices as components in complex subsystems. [Objective 4]

 

VIII.  Assessment Methods

1.      Homework (some design problems) will be given that require students to demonstrate the ability to do specific designs. [Measures outcomes 1-5]

2.      Two exams and a final exam will be given that test knowledge necessary for analysis and design of digital circuits. [Measures outcomes 1, 2, 4, 5]

 

IX.  Course Policies and Grading

Problem sets will be given approximately every week.  In some cases, you will be encouraged to work on these in small groups.  Some solutions are available at the textbook web site; others may be covered in class.  Ability to do these problems is important for satisfactory performance on the exams.  Design problems will be given approximately once every 3 weeks.  You may work alone, or in a group of two only.  Groups may not share results with one another.  Design problems will be collected and graded.  There will be two exams and a comprehensive final exam as listed in the schedule below.

 

            Grading:

                        Homework                 30 %

                        Exam (in class)           15 % October 06 (Open Book)         

Take home Exam       15 % November 12

                        In Class quiz average 15 %

                        Final Exam                 25 %   

X.  Instructor

            Dr. Abul Khondker

            CAMP 134, phone: x-2127

            khondker@clarkson.edu

            Office hours:  T, Th 11-12:30, M 10-12        

 
Software:
·  ModelSim Install the starter version (Free) with VHDL
 

Lecture notes: (adopted and modified from John Wakerly's website)

Introduction to Logic Circuits
CMOS & TTL gates, Electrical characteristics and timing
Boolean algebra/Combinational-circuit analysis
Combinational-circuit synthesis
Documentation Standards Programmable Logic Devices, Decoders
Three-state Outputs, Encoders, Multiplexers, XOR gates
Adders, Multipliers, Read-Only Memories

Sequential Circuits and flipflops, PALs
PLD timing,Registers, Counters, Shift registers
Sequential-circuit analysis
Sequential-circuit design/synthesis
More of Sequential circuits
Memories
CPLDs
FPGAs
Synchronous Design Methodology & Asynchronous Inputs

VHDL links and files

VHDL Synthesis Tutorial
Read the COMBINATIONAL CIRCUIT SYNTHESIS section first.
VHDL link from University of Erlangen-Nürnberg
Read the section on VHDL_tutorial. They have an English language version there. So don't panic if you have not taken "German 406".
Help on VHDL Testbench generation
VHDL Dataflow files 74X138
VHDL Dataflow files 74X139
VHDL Dataflow files 74X148

Homework (will not be collected)

Homework 1: Problems 2.1 (i), (f), 2.2 (d), 2.3 (f), 2.10 (b), (d), 2.12
Solution to homework 1
Homework 2: Problems 3:16, 3:17, 3:20, 3:25, 3:26, 3:56, 3:57
Solution to homework 2
Homework 3: Problems 3:74, 3:75, 3:76, 3:93, 3:94
Solution to homework 3
Homework 4: Problems 4:6, 4.9, 4:13, 4:14, 4:15, 4:19
Solution to homework 4
Homework 5: Problems 5:8, 5:10, 5:19, 5:40
Solution to homework 5
Homework 6: Problems 5:21, 5:22, 5:42, 5:55, 5:57
Solution to homework 6
Homework 7: Problems 5:48, 5:49, 5:50, 5:80, 5:82, 5:85, 5:91
Solution to homework 7
Homework 8: Problems 7:2, 7:3, 7:9, 7:15, 7:16
Solution to homework 8

Quiz 1 (September 24, in class) Solution to Quiz 1

Exam solutions
Solution to Exam 1

Projects

Project 1 Due date: October 6, 2003.
Solution to Project 1 (Thanks to Bryan). Be sure to read the README file.

Project 2 Updated: 10-7-03 Due date:
Due date has been moved from Oct 22 to Oct 27 (monday). (You may work in teams of two, with no collaboration between teams. )
Another example with configuration and text input file. This exmaple based on the 2-to-4 decoder example from this link.

Project 3 Due date: November 10, 2003.
Also download the VHDL file 74x74 Flipflop for project 3. re-download this file (updated October 30, 10:30 am)

Project 4 Due date: December 1, 2003.

Help with VHDL

Bryan Shepardson's Office Hours
Tuesday, 10 a.m. to 11 a.m., ERC Commons
Thursday, 8 a.m. to 10 a.m., CAMP 172

Links to VHDL Tutorials

VHDL Synthesis Tutorial
Read the COMBINATIONAL CIRCUIT SYNTHESIS section first.

VHDL link from University of Erlangen-Nürnberg
Read the section on VHDL_tutorial.
Help on VHDL Testbench generation