Computer-Aided Logic Design
ECE 474A -- Computer-Aided Logic Design (3 units)
Description: Tabular minimization of single and multiple output Boolean functions, NMOS and CMOS realizations, synthesis of sequential circuits, RTL description, laboratory exercises
Grading: Regular grades are awarded for this course: A B C D E
Identical to CSC 474A
May be convened with ECE 574A
No required textbook. The instructor provides class notes and slides sourced from a variety of books.
Course Learning Outcomes:
By the end of this course, the student will be able to:
- Understand the difference between heuristic and exact optimization methods, and be able to classify a variety of algorithms into these categories.
- Use the Quine-McCluskey tabular minimization technique for identifying all the prime implicants, and solve the covering problem using Petrick's method to find an optimal two-level implementation for both completely specified and incompletely specified logic functions.
- Use Quine-McCluskey with iterative and recursive consensus methods for identifying all the prime implicants (complete sum) and solve the covering problem using row/column dominance to find a minimal gate, two-level implementationfor both completely specified and incompletely specified logic functions.
- Understand how generalized optimization algorithms can be adapted to the logic minimization problem.
- Use Branch-and-Bound along with MIS to solve the covering problem.
- Understand Espresso's representation of Boolean functions and basic operations on compact cubical format.
- Use Espresso's Unate Complement, Complement, and Expand subprocedures.
- Understand a variety of scheduling algorithms, including ASAP, ALAP, Hu, LIST_L, LIST_R, and Force Directed.
- Understand a variety of methods used for resource sharing and binding.
- Understand the role of verification in CAD along with the different testing methods.
- Design logic minimization tools in C/C++ and output the resulting circuit implementation in Verilog or equivalent textual representation.
- Design and implementation of sequential circuits
- Register-Transfer Level (RTL) design
- Optimization and tradeoffs of combinational and sequential circuits
- Exact and Heuristic minimization of two-level circuits
Three, 50-minute lectures per week
Relationship to Student Outcomes:
ECE 474A contributes directly to the following specific Electrical and Computer Engineering Student Outcomes of the ECE department:
- an ability to apply knowledge of mathematics, science and engineering (High)
- an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability (Medium)
- an ability to identify, formulate and solve engineering problems (Low)
- an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice (High)