Learning outcomes of the course unit
Course learning objectives are to provide students with knowledge and understanding of fundamental techniques for digital system analysis and design at basic and intermediate levels. Both traditional methodologies suitable for paper and pencil and algorithmic techniques adopted in industrial Design Automation flows are presented. Emphasis is placed on the development of problem solving capabilities, including the ability to address design problems at high level by partitioning them into subproblems and exploiting the most appropriate components and techniques for individual subproblems.
At the end of the course, students will be able to directly apply the learned techniques in the following contexts:
- Analysis and design of small to medium combinational circuits using logic gates as well as LSI and MSI components;
- Analysis and design of small to medium synchronous sequential circuits using logic gates and flip-flops as well as functional modules such as registers, counters, memories;
- Interfacing digital systems with external signals using latches and flip-flops;
- Behavioral and structural approaches in the design of digital systems, taking into account cost and performance issues;
- Ability to use a problem solving approach to partition complex problems into manageable subproblems that can be individually tackled and solved.
Knowledge of fundamental gates, Boolean algebra and some basics of
combinational synthesis is assumed. Elementary techniques for combinational synthesis (K-maps, expression simplification) will be quickly recalled before delving into more advanced course topics.
Course contents summary
_Digital Design: Course short description_
- Models of digital circuits
- Recall of elementary techniques for analysis and synthesis of combinational circuits
- Integrated combinational circuits: SSI, MSI, LSI, programmable circuits (ROM, PLA, PAL, GAL, CPLD)
- Analysis and synthesis techniques for synchronous sequential circuits
- Bistable memory circuits
- Integrated sequential circuits: registers, counters, sequential programmable components, memory banks
- Arithmetic circuits: adders, subtracters, ALUs
- Analysis and synthesis techniques for complex digital systems. CPU architecture.
- Design and physical realization of a digital sensor acquisition system with IoT data transmission capability (Internet of Things).
__Digital Design: Detailed Course Syllabus__
Introduction to digital systems
1 - The role of digital systems. Digital representation of information.
2 - Von Neumann's architecture.
3 - Evolution of electronic technologies.
4 - Objectives and limitations of digital systems.
Combinational logic design
1 - Review: Canonical and general logic expressions (SoP and PoS). Analysis and synthesis of fully specified logic functions based on Karnaugh maps.
2 - Other two-level logic analysis and synthesis techniques: Incompletely specified logic functions. Multiple output circuits. Analysis and synthesis of NAND and NOR circuits.
3 - Multilevel logic and integrated circuit-based design: Expression factorization and decomposition. Combinational logic design based on standard integrated circuits. SSI logic family. MSI and LSI parts (Multiplexers, Decoders, Demultiplexers, Encoders, ROMs, AOI components).
4 - Interconnection technologies: Three-state gates, buffers, tranceivers, busses. Three-state based MUX and DEMUX implementation.
5 - Combinational programmable logic (ROM, PLA, PAL, GAL).
6 - Transient phenomena in combinational circuits: static and dynamic hazards.
7 - CAD tools for combinational network design: Quine-McCluskey algorithm. Espresso. Logic simulation.
Synchronous sequential logic design
1 - Mealy and Moore machines. Elementary logic circuits with delays and feedback. Fundamental mode operation. Clocked operation.
2 - Basic memory elements: SR and D Latches; D, JK, and T Flip-Flops. Timing problems. Timing in synchronous circuits.
3 - Finite state automata: Automata description techniques (state diagram, flow table, description language). State minimization.
4. Analysis and synthesis of synchronous sequential circuits: State encoding. Optimal and one-hot encodings. State memory implementation with Flip-Flops and Latches.
5 - The synchronous/asynchronous interface: Flip-Flops with Preset and Clear commands. Management of asynchronous and pulsed inputs in synchronous circuits.
6 - Counters and Registers: Design of binary counters, ring counters, Johnson counters, counters with arbitrary state encoding. Parallel registers and shift registers. Control inputs in counters and registers.
7 - Sequential programmable logic (CPLD, FPGA).
Analysis and synthesis of complex digital systems
1 - Sequential circuit design using standard integrated circuits (registers, counters, shift-registers, sequencers, MUXes, etc.).
2 - Memory banks design.
3 - Complex circuit design by decomposition into datapath and control unit. Control unit design.
4 - Data path components and dedicated combinational components: Arithmetic circuits (adders, comparators, ALU). Transcoders. Parity and Hamming circuitry. XOR-based circuits.
5 - Design techniques for pipelined circuits.
6 - CPU architecture as a digital design example.
Asynchronous sequential logic design
(Advanced topic, optional)
1 - State diagrams and state tables for asynchronous state machines.
2 - State minimization.
3 - State encoding. Prevention of criticale races. Prevention of functional hazards.
4 - State marking via direct feedback or latches.
5 - Asynchronous control units design.
The following textbooks provide a comprehensive treatment of the subject and adopt the same approach proposed in class:
- F. Vahid, Digital Design, John Wiley & Sons, 2007.
- J.F. Wakerly, Digital Design: Principles and Practice, 4th Edition, Prentice-Hall, 2005.
Lecture notes and exercises with solutions are made available on the course web site to registered students. Published lecture notes must be supplemented by individual student's notes taken during class in order for them to be sufficiently equipped to pass the written exam. Students who do not regularly attend classes are advised to base their learning upon one of the textbooks listed above.
Additional textbooks (to probe further specific subjects or to look for exercises):
- R.H. Katz, Contemporary Logic Design, 1st Edition, Addison Wesley, 1994.
- R. Laschi, Reti Logiche, Esculapio, Bologna, 1994.
The course covers a very classical computer engineering discipline. Hence, a number of textbooks dealing with the subject are available in the Engineering School Library, in Italian as well as in English.
The course will be delivered assuming physical presence of students, in adequately sized classroom and laboratory. Only in case of official COVID-19 emergency forbidding physical attendance, some or all lectures will be delivered remotely via the Teams platform.
The course consists of about 80 hours of supervised learning activity (lectures and exercises in classroom, laboratory activity).
A main part of the course consists of lectures and exercises in classroom using chalkboard, overhead projector, and/or computer slides as needed. A large fraction of lecture time is reserved to design activities, typically carried out on the main chalkboard to support interactive teaching, i.e. to include design input from the students attending the class. End of lecture home assignments are frequently delivered and discussed at the beginning of the next lecture, as part of teaching methodology.
Starting from the 2021/22 edition, the class will include a meaningful and mandatory practical design experience in laboratory (for an estimated 16 hours of assisted lab activity). Students will work in pair or small group to design and implement a digital system for sensor data acquisition (e.g. accelerometer, temperature, soil humidity sensor, etc.), transmission of sensor data over an IoT network, and publishing of sensor values in an Internet portal. Each student group will receive one or more sensors and all needed electronic components to realize their digital system. Projects will be developed during guided laboratory lectures as well as by the students working on their own, using CAD tools for digital design based on programmable components (schematic entry, VHDL, simulation, mapping on specific devices) and application development on a microcontroller.
Assessment methods and criteria
Exam consists of a written test and the evaluation of the design project developed in the lab sessions.
Recommended mode for the written test for students regularly attending lectures: Two written midterms at half and end of lecturing period.
Otherwise: Comprehensive written test during an official exam sessions.
Written tests (as well as midterms) always include exercises with design and analysis of several types of digital circuits, covering all the course topics. Written tests may also include one or few quizzes about more theory-oriented topics. More frequently, theory must be known and used to solve the proposed design problems.
The evaluation of the lab project is based on an assessment of the sensor acquisition digital system with data transmission over IoT network developed by the student during the lab sessions, considering functionality as well as student committment. The design must be described in a written technical report.
Overall evaluation will be based on written test (2/3) and project work (1/3).
Course web site available at: http://elly2021.dia.unipr.it for registered students.
Students must register to the course web site to receive all communications from the instructor.
Teaching material is published on the web site as course progresses.