Salta ai contenuti. | Salta alla navigazione

Strumenti personali

COMPUTER-AIDED DESIGN OF DIGITAL CIRCUITS

Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
2022/2023
Teacher
MICHELE FAVALLI
Credits
6
Didactic period
Secondo Semestre
SSD
ING-INF/05

Training objectives

Knowledge

The course provides the essentials of the algorithms used in digital systems design automation and test. It is intended to: i) enable the use of design automation tools to optimize digital circuits architectures; ii) provide the capability to devise and implement algorithms solving problems in the fields of digital design and test. As a side effect, the course provides introductory material to digital architectures and technologies.



Capability

Use of logic synthesis and optimization tools with the capability to analyze the achieved results from the point of view of performance and costs.
Capability to conceive and implement algorithms for specific problems in the field of logic synthesis and digital circuits testing.

Prerequisites

The course requires well founded basics of switching theory and logic design as discussed in the "Analysis and synthesis of digital circuits course", basic notions of digital electronic and computer architecture and the ability to use at least one programming language.

Course programme

Problems and algorithms used in logic synthesis and optimization:

Introduction
a) two-level logic synthesis algorithms (PLA and nanofabrics)
b) multilevel logic synthesis :
b.1) technology independent techniques
b.2) circuit models (graphs, BDD)
main transformations
b.3) algebraic techniques
b.4) Boolean techniques
b.5) use of don't cares (CDC and ODC)
c) Technology mapping algorithms
d) Algorithms for the optimization of state machines
d.1) state minimization
d.2) encoding problems

Problems and algorithms in digital systems testing:

a) Fault modeling and simulation
a) CMOS fault models
a.1) fault simulation algorithms
a.2) transient faults
b) Test generation
b.1) structural methods
b.2) methods based on Boolean satisfiability
c) Design for Testability
c.1) scan-design and scan-path insertion
c.2) built-in self-test
d) Design of reliable digital circuits:
d.1) self-checking circuits
d.2) fault tolerant circuits

Didactic methods

The course consists of theoretical and laboratory lessons. The concepts introduced during theoretical lesons are applied to specific problems during the laboratory by using open source tools. The lessons are organized in two parts: the first part is devoted to logic synthesis, while the second one deals with digital ICs testing.

Learning assessment procedures

The exam consists of: 1) a oral exam that should verify the understanding of topics presented during the theoretical and practical (i.e. laboratory) lessons (14 pt); 2) a software project in design and test of digital systems (18 pt). the student should analyze a problem in such fields and explore a possible solution (outlined by the teacher) by implementing it in a design automation and test tool. The software project should be documented by: a) a report containing the description of the problem and of the methods used to approach it, a brief description of the code and its use, the results achieved on a set of benchmarks; b) the code itself.

The proof outcome is valid if the student achieves 6/11 pints in the first proof and 12/22 in the second one. In such a case the final evaluation is given by the sum of the points achieved in the two proofs.

Passing the final exam is the proof that knowledge and abilities outlined in the training objectives of the course have been achieved.

Reference texts

Handouts provided by the teacher and available on the course website.