Course Syllabus
Obiettivi
L’insegnamento ha l’obiettivo di fornire le competenze necessarie a risolvere le problematiche di progettazione di circuiti digitali su hardware programmabile. Al termine del corso gli studenti saranno in grado di sviluppare in autonomia un’applicazione embedded utilizzando un dispositivo logico programmabile (FPGA) e progettando circuiti logico digitali, effettuandone il debugging a livello di simulazione e utilizzando specifici strumenti di Computer Aided Design (CAD) per la simulazioni di circuiti digitali progettati attraverso Hardware Description Languages.
Contenuti sintetici
1 L'algebra di Boole
2 Circuiti digitali combinatori
3 Circuiti digitali sequenziali
4 Progettazione di Circuiti Digitali tramite Macchine a Stati Finiti
5 Introduzione al VHDL (Very High Speed Integrated Circuits Descritpion Language)
6 Circuiti combinatori e Sequenziali in VHDL
7 Progettazione di Circuiti digitali in VHDL
8 Programmazione di FPGA
Programma esteso
Codici Binari
o Introduzione e Notazione Posizionale
o Codici (Octal, Hexadecimal e Hamming Distance)
o Aritmetica Binaria
Operatori e Componenti Logici
o Operatori Logici Elementari, Teoremi di De Morgan e del Consenso
o Sintesi Combinatoria attraverso Sum-of-Products e Product-of-Sums
o Mappe di Karnaugh , Alee Statiche e Dinamiche
Logica Combinatoria
o Encoder, Decoder, Multiplexer, Demultiplexer, Comparatori, Parity Checker e Generatori di Parità
o Sommatori (Half-Adder e Full-Adder)
Logica Sequentiale
o Elementi di Memoria a 1 bit asincroni: Latches: D-Latch, SR-Latch
o Elementi di Memoria a 1 bit sincroni:Flip-Flop: D-Flip-Flop, JK-FLIP-FLOP, T-Flip-Flop
o Registri e Contatori
o Esercizio con il tool LTSPICE
Finite-State-Machines (FSM)
o Macchine di Mealy e Moore
o Esercizi
Il VHDL come Linguaggio di Descrizione Hardware
o Dispositivi Logici Programmabili e Dedicated CMOS Design (ASIC)
o VHDL. Un semplice esempio di progetto
o Dichiarazione di Entity e Architecture. Assegnazioni e Istruzioni concorrenti
o Il process in VHDL
Logica Combinatoria in VHDL
o Bus Slice e Swap, Operazioni logiche elementari, Stadi Logici Funzionali
o Decoder, Encoder, Multiplexer, Demultiplexer
o Stadi Logici Funzionali avanzati
o Sommatori (Half-Adder, Full-Adder)
Metodi di Progetto in VHDL
o Descrizioni VHDL e approcci possibili
o Data Flow (key word ‘<=’), Sequential (key word ‘process’), Structural (key word ‘component’)
o Segnali e Variabili
o Esercizio 1 – Full-adder
o Esercizio 2 – Binary-BCD Converter
Elementi di Memoria
o Latch D, SR
o Flip-Flop D, JK, T
o Master-slave
o Registri (PIPO, SIPO, SISO)
o Esercizio 3 – Latch e Flip-flop
o Esercizio 4 – Registri in VHDL
o Esercizio 5 – Contatori in VHDL
Esempio di Progetto di Macchine a Stati Finiti in VHDL
Serial Interfaces (I2C and SPI)
Esercizio in laboratorio con Opal-Kelly XEM6010 (Xilinx® Spartan 6 FPGA)
Prerequisiti
Programmazione C, programmazione a livello macchina (gestione I/O e interruzioni).
Modalità didattica
Le attività previste sono:
- 27 ore di LEZIONI FRONTALI in modalità erogativa, in cui saranno presentati i concetti fondamentali della progettazione logica digitale.
- 12 ore di ESERCITAZIONI in modalità erogativa, in aula con presentazione e discussione di esempi di circuiti digitali descritti in VHDL/Verilog.
- 9 ore di LAVORO di GRUPPO in modalità interattiva, per sviluppo e simulazione di componenti e utilizzo di FPGA in semplici applicazioni.
La frequenza è fortemente raccomandata ed è essenziale per tutte le attività.
Il corso verrà erogato in Italiano.
Materiale didattico
- Appunti e Slide fornite dal docente
- "Introduzione al Progetto di Sistemi Digitali." Donzellini, Giuliano, Luca Oneto, Domenico Ponta, and Davide Anguita. (2017): 1-474.
- “Circuit Design with VHDL” Volnei A. Pedroni MIT Press
Periodo di erogazione dell'insegnamento
Secondo Semestre
Modalità di verifica del profitto e valutazione
L'esame consta di una PROVA SCRITTA e di una PROVA ORALE.
La PROVA SCRITTA è composta da TRE QUESITI:
Il quesito 1 richiede di studiare e/o sintetizzare semplici reti combinatorie.
Il quesito 2 verte sulla sintesi di semplici reti sequenziali.
Il quesito 3 si basa sulla sintesi di sistemi digitali misti (con componenti combinatori e componenti sequenziali).
Le competenze e conoscenze richieste per il superamento della prova scritta sono:
QUESITO 1
- algebra di Boole, operatori logici e componenti logici di base;
- sintesi di circuiti tramite mappa di karnaugh e/o Somme di Prodotti (Prodotti di Somme);
QUESITO 2 - schemi di base di elementi di memoria e logica sequenziale;
QUESITO 3 - Macchine a Stati Finiti e Circuiti Digitali Sequenziali
I CRITERI di valutazione della prova scritta sono:
- correttezza formale e analitica dei circuiti logici soluzione dei quesiti proposti;
- il livello di sintesi e chiarezza di esposizione dei circuiti logici.
La PROVA ORALE sarà caratterizzata da due fasi:
- Colloquio di discussione della prova scritta;
- Colloquio sulla Relazione relativa al LAVORO di GRUPPO per lo sviluppo di componenti e l’utilizzo di FPGA in semplici applicazioni.
Competenze e Criteri di valutazione della prova orale si basano sulla capacità di discutere criticamente la prova scritta (per esempio commentando correttamente le scelte circuitali in risposta ai quesiti e proponendo ulteriori interpretazioni di tali soluzioni).
Orario di ricevimento
Lunedi 10-12
Sustainable Development Goals
Aims
The course aims to provide the skills necessary to solve the problems of digital circuits design on programmable hardware. At the end of the course, students will be able to independently develop an embedded application using a programmable logic device (FPGA) and designing digital logic circuits, debugging them at the simulation level and using specific tools of Computer Aided Design (CAD) for the simulation of digital circuits designed through Hardware Description Languages.
Contents
1 Boole Algebra
2 Combinatory Digital Circuits
3 Sequential Digital Circuits
4 Finite-State-Machine Digital Circuit Design
5 Introduction to VHDL (Very High Speed Integrated Circuits Descritpion Language) Introduction
6 Combinatory and Sequential Circuits in VHDL
7 Design of Digital Circuits in VHDL
8 FPGA Design
Detailed program
Binary Code
o Introduction and Positional Notation
o Octal and Hexadecimal Code, Hamming Distance
o Binary Arithmetic (sum, difference, product and division)
Logic Operators and Logical Components
o Basic Logical Operators, De Morgan and Consensus theorems
o Combinatory Synthesis by Sum-of-Products or Product-of-Sums
o Karnaugh Maps, Static and Dynamic Hazards
Combinatory Logic
o Encoder and Decoder, Multiplexer and Demultiplexer, Comparator, Parity Checker and Generator
o Half-Adder and Full-Adder
Sequential Logic
o Latches: D-Latch, SR-Latch
o Flip-Flop: D-Flip-Flop, JK-FLIP-FLOP, T-Flip-Flop
o Registers and Counters
o Exercises
o LTSPICE Exercise
Finite-State-Machines (FSM)
o Mealy and Moore FSM
o Exercises
The VHDL as Hardware Description Languages: an Overview
o Programmable Logic Devices, Dedicated CMOS Design (ASIC)
o VHDL. A simple design example
o Entity Declaration. Architecture Declaration, Assignments, Concurrent Statements
o The Process
Combinatory Logic in VHDL
o Bus Slice and Swap, Basic Logical Operations, Functional Logical Stages
o Decoder, Encoder, Multiplexer, Demultiplexer
o Advanced Functional Logical Stages
o Half-Adder, Full-Adder
VHDL Design Methods
o VHDL Descriptions, Three possible approaches
o Data Flow (key word ‘<=’), Sequential (key word ‘process’), Structural (key word ‘component’)
o Signals and Variables
o Exercise 1 – Full-adder
o Exercise 2 – Binary-BCD Converter
Memory Components
o Latch D, SR
o Flip-Flop D, JK, T
o Master-slave
o Registers (PIPO, SIPO, SISO)
o Exercise 3 – Latch e Flip-flop
o Exercise 4 – Registers in VHDL
o Exercise 5 – Counters Design in VHDL
A Design Example of a FSM in VHDL
Serial Interfaces (I2C and SPI)
Lab Exercise with Opal-Kelly XEM6010 (Xilinx® Spartan 6 FPGA)
Prerequisites
C Programming, machine-level programming (I / O management and interrups).
Teaching form
The planned activities are:
- 27 hours of LECTURES in delivery mode, in which the fundamental concepts of digital logic design will be presented.
- 12 hours of EXERCISES in delivery mode, in the classroom with presentation and discussion of examples of digital circuits described in VHDL/Verilog.
- 9 hours of GROUP WORK in interactive mode, for development and simulation of components and use of FPGAs in simple applications.
Attendance is strongly recommended and is essential for all activities.
The course will be delivered in Italian.
Textbook and teaching resource
- Notes and slides
- "Introduction to digital systems design". Donzellini, Giuliano, Luca Oneto, Domenico Ponta, and Davide Anguita. Cham: Springer, 2019.
- “Circuit Design with VHDL” Volnei A. Pedroni MIT Press
Semester
Second Semester
Assessment method
The exam consists of a WRITTEN TEST and an ORAL TEST.
The WRITTEN TEST consists of THREE QUESTIONS:
Question 1 requires studying and/or synthesizing simple combinatorial networks.
Question 2 focuses on the synthesis of simple sequential networks.
Question 3 is based on the synthesis of mixed digital systems (with combinatorial components and sequential components).
The skills and knowledge required to pass the written test are:
QUESTION 1
- Boolean algebra, logical operators and basic logical components;
- synthesis of circuits via Karnaugh map and/or Sums of Products (Products of Sums);
QUESTION 2 - basic schematics of memory elements and sequential logic;
QUESTION 3 - Finite State Machines and Sequential Digital Circuits
The evaluation CRITERIA for the written test are:
- formal and analytical correctness of the logical circuits solution of the proposed questions;
- the level of synthesis and clarity of exposition of the logic circuits.
The ORAL EXAM will be characterized by two phases:
- Interview to discuss the written test;
- Interview on the Report on GROUP WORK for the development of components and the use of FPGAs in simple applications.
Skills and evaluation criteria of the oral test are based on the ability to critically discuss the written test (for example correctly commenting on the circuit choices in response to the questions and proposing further interpretations of these solutions).
Office hours
Monday 10-12