ECE Header Logo

EEC283 – Advanced Design Verification Of Digital Systems

4 units – Winter Quarter

Lecture: 3 hours

Prerequisite: EEC 170 and EEC 180A

Grading: Letter; based on midterm exam (25%), homework (25%), and project (50%).

Catalog Description:

Design verification techniques for digital systems; simulation-based design verification techniques; formal verification techniques, including equivalence checking, model checking, and theorem proving; timing analysis and verification; application of design verification techniques to microprocessors.

Expanded Course Description:

This course is intended to introduce graduate students in electrical and computer engineering to the recent theory and practice in design verification of digital systems, including use of modern CAD tools. The course contents are also designed to serve as a foundation for students to pursue graduate research in design verification.

  1. Introduction
    1. System Development
    2. Faults and Errors
    3. Lifetime Verification
    4. Design Verification Methodology
  2. Simulation-Based Design Verification
    1. Logic, Fault, and Error Simulation
    2. Hardware Emulation
    3. Design Error Modeling
    4. Automatic Test Generation
  3. Formal Verification
    1. Theorem Proving
    2. Equivalence Checking
    3. Model Checking
  4. Timing Analysis and Verification
  5. Case Studies of Microprocessor Verification

The project in EEC 283 is a significant part of the course that is conducted outside the classroom. Possible projects include the following:

  1. Writing a survey of research work on a topic related to the course. This involves a library search to collect recent publications, reading and criticizing them, and finally writing a summary about them.
  2. Evaluating a design verification tool by first studying it and then developing test cases that show the strengths and weaknesses of the tool. Writing a report documenting the tool evaluation is the final outcome of this project.
  3. Developing a CAD tool that implements a known verification algorithm. This involves a study of the verification algorithm first and then implementing it using a programming language. This is followed by testing the code and then writing a report about the tool and a user-manual.


  1. Selected papers from recent conferences and journals

Instructor: Al-Asaad

Course Overlap:

This is a specialized practical course that uses some concepts of EEC 282 and EEC 286.

September 1999