10907 - Electronics of Digital Systems

Course Unit Page

Academic Year 2018/2019

Learning outcomes

The course will provide know-how about the design of digital systems. Upon attendance of the course, the student will learn to perform, from the designer's perspective, analyses and critical assessments of the main architectures for computing, communications, data storage. The course will also focus on learning computer aided digital design techniques and hardware description languages (HDL), with a special attention to programmable logic devices, logic synthesis and simulation. At the end of the course, the student will be able to develop digital systems based on programmable logic and microcontrollers.

Course contents

INTRODUCTION. Introduction to digital circuits and systems.

ARCHITECTURES. Architecture of Field-Programmable Gate Arrays. Granularity, area and performance. Logic blocks, switches, interconnections. Architecture of Altera devices. Microprocessors, classification, architectures and examples. Parallel architectures: superscalar and VLIW. Microcontrollers. The Microchip PIC18F microcontroller, architecture, main peripherals, interrupts. Microcontroller programming, with examples in C language. DSP: main features and comparison with general-purpose microprocessors. Laboratory sessions: design and programming of basic microcontroller systems.

COMMUNICATION PROTOCOLS. Hand-shake protocols and parallel ports. Serial communication with UART ports. SPI protocol. I2C protocol. 1-wire protocol. USB protocol.

VHDL: history and purposes. VHDL as a design tool. Design flow for FPGAs. Entity and architectures. Concurrent statements. Structural descriptions and components. VHDL operators. Arithmetics in VHDL. Processes and sequential constructs. Sequential logic and registers. Description style for synthesizable VHDL. RTL descriptions. Finite State Machines. Design examples. Laboratory sessions: design of digital systems with hardware development boards.


Readings/Bibliography

Course materials available online on institutional repositories.

For further insights:

R. Jasinski, "Effective Coding with VHDL. Principles and practice", MIT Press, 2016

D. Perry, "VHDL. Programming by examples", McGraw-Hill Professional; 4th edition, 2002

F. Zappa, "Microcontrollers. Hardware and Firmware for 8-bit and 32-bit devices", 1st edition, 2017, Esculapio

J. Rose, A. El-Gamal, A. Sangiovanni-Vincentelli, "Architecture of Field-Programmable Gate Arrays", Proc. IEEE, vol. 81, n. 7, July 1993, pp.1013-1029

Teaching methods

Besides normal class activity, a relevant part of the course will be spent in the laboratory of Electronics in order to learn hardware description languages and digital design tools. Many laboratory sessions will focus on practicing FPGA design and microcontroller programming, with the aid of hardware development boards available in the laboratories.

Assessment methods

The assessment is composed of two independent parts: 
- an oral examination, about the contents presented during the course, consisting in the discussion of questions in order to verify the knowledge and comprehension of course contents. The exam aims at assessing the actual comprehension level of course contents, the ability of elaborating course contents and the use of the specific technical language of the course.
- a practical examination, which will be held in the laboratories, consisting in the design of a simple digital system with the VHDL language and the synthesis/simulation tools presented in this course. The specifications to be addressed will be presented in the text of the problem. The exam aims at assessing the correctness of the proposed digital architecture, the correctness of the VHDL implementation, the ability of validating the design by means of dedicated digital simulations.

The final score will be computed as the average between the scores obtained in the two parts, which must be both sufficient.

Teaching tools

Presentations and class notes available online. Laboratory sessions on computer aided digital design and practice on FPGA and  microcontroller systems. Development boards for FPGA and microcontrollers.

Links to further information

http://www-micro.deis.unibo.it/cgi-bin/dida?~romani/www/Dida03

Office hours

See the website of Aldo Romani