- Area di Scienze
- Corso di Laurea Magistrale
- Informatica [F1802Q - F1801Q]
- Insegnamenti
- A.A. 2026-2027
- 1° anno
- Informatica Industriale
- Introduzione
Syllabus del corso
Obiettivi
L'insegnamento ha l'obiettivo di fornire le conoscenze e le competenze fondamentali per l'analisi, la progettazione e la verifica di sistemi logici digitali mediante linguaggi di descrizione hardware (HDL) e dispositivi logici programmabili (FPGA). Particolare attenzione è dedicata all'utilizzo di strumenti professionali di Computer-Aided Design (CAD) per la simulazione, la sintesi e la verifica di circuiti digitali, con un'introduzione ai flussi di progettazione di circuiti integrati digitali (ASIC).
Al termine dell'insegnamento lo studente sarà in grado di progettare semplici sistemi digitali, descriverli in VHDL, verificarne il funzionamento mediante simulazione, implementarli su FPGA e utilizzare strumenti CAD orientati alla progettazione di circuiti integrati su silicio.
Risultati di apprendimento attesi
-
Conoscenza e capacità di comprensione
Gli studenti acquisiranno le conoscenze fondamentali della progettazione di sistemi logici digitali, dei dispositivi logici programmabili (FPGA), dei linguaggi di descrizione hardware (VHDL) e dei principi di funzionamento degli strumenti di Computer-Aided Design (CAD) per la progettazione, simulazione e verifica di circuiti digitali e circuiti integrati. -
Capacità di applicare conoscenza e comprensione
Gli studenti saranno in grado di analizzare, progettare e simulare circuiti logici combinatori e sequenziali, descriverli mediante VHDL, implementarli su FPGA e utilizzare strumenti CAD per la progettazione e la verifica di sistemi digitali e circuiti integrati di base. -
Autonomia di giudizio
Gli studenti svilupperanno la capacità di valutare differenti soluzioni progettuali per semplici sistemi digitali, interpretare criticamente i risultati delle simulazioni e del debugging e selezionare le soluzioni più appropriate in funzione delle specifiche progettuali. -
Abilità comunicative
Gli studenti saranno in grado di descrivere il funzionamento dei sistemi digitali, motivare le scelte progettuali e presentare i risultati delle attività di progettazione e simulazione utilizzando una terminologia scientifica e tecnica appropriata. -
Capacità di apprendimento
Gli studenti acquisiranno le competenze metodologiche necessarie per approfondire autonomamente la progettazione di sistemi digitali, l'utilizzo di strumenti CAD e dei linguaggi di descrizione hardware, nonché per affrontare corsi più avanzati dedicati alla progettazione di sistemi digitali, FPGA e circuiti integrati.
Contenuti sintetici
- Sistemi di numerazione e codici binari.
- Algebra di Boole e sintesi di circuiti logici.
- Circuiti logici combinatori.
- Circuiti logici sequenziali.
- Macchine a stati finiti (FSM).
- Linguaggio di descrizione hardware VHDL.
- Progettazione, simulazione e verifica di sistemi digitali in VHDL.
- Dispositivi logici programmabili (FPGA) e interfacce digitali (SPI e I²C).
- Acquisizione ed elaborazione digitale dei segnali su FPGA in presenza di rumore.
- Introduzione alla progettazione di circuiti integrati digitali (ASIC) mediante strumenti CAD.
Programma esteso
- Sistemi di numerazione e codici binari
- Introduzione ai sistemi di numerazione
- Rappresentazione binaria dei numeri
- Codici ottale ed esadecimale
- Codice Gray
- Hamming distance
- Aritmetica binaria
- Algebra di Boole
- Operatori logici fondamentali
- Teoremi di De Morgan
- Teorema del consenso
- Sintesi tramite Sum-of-Products (SOP)
- Sintesi tramite Product-of-Sums (POS)
- Minimizzazione mediante mappe di Karnaugh
- Hazard statici e dinamici
- Circuiti logici combinatori
- Porte logiche
- Encoder, Decoder, Multiplexer, Demultiplexer
- Comparatori
- Generatori e verificatori di parità
- Half-Adder, Full-Adder
-
Circuiti logici sequenziali
Latch SR, D
Flip-Flop D, JK, T
Registri Contatori -
Macchine a stati finiti (Finite State Machines)
- Modello di Mealy
- Modello di Moore
- Tecniche di progettazione
- Esempi progettuali
- Linguaggi di descrizione hardware
- Dispositivi logici programmabili
- FPGA e ASIC
- Introduzione al VHDL
- Entity
- Architecture
- Tipi di dato
- Segnali e variabili
- Assegnamenti concorrenti
- Process
- Progettazione digitale in VHDL
- Modellazione combinatoria, Modellazione sequenziale, Modellazione strutturale
- Componenti riutilizzabili
- Bus e vettori, Operatori logici, Circuiti Combinatori
- Registri e Contatori
- Progettazione di macchine a stati finiti
- Interfacce digitali
- SPI
- I²C
- Elaborazione digitale dei segnali su FPGA
- Acquisizione di segnali digitali
- Rumore nel dominio digitale
- Tecniche di filtraggio digitale
- Condizionamento del segnale
- Implementazione su FPGA Xilinx Spartan-7
- Introduzione alla progettazione di Circuiti Integrati Digitali su silicio
Flusso CAD per la progettazione ASIC
Simulazione funzionale
Sintesi logica
Timing analysis
Introduzione al layout digitale
Prerequisiti
Programmazione C, programmazione a livello macchina (gestione I/O e interruzioni).
Modalità didattica
L'insegnamento prevede:
27 ore di lezioni frontali, dedicate agli aspetti teorici della progettazione dei sistemi digitali.
6 ore di esercitazioni, dedicate allo svolgimento di esempi progettuali e simulazioni mediante linguaggio VHDL e strumenti CAD.
15 ore di attività progettuale di gruppo, svolte con modalità interattiva, finalizzate a:
sviluppo e simulazione di componenti digitali mediante VHDL;
implementazione di semplici applicazioni su FPGA;
introduzione al flusso di progettazione di circuiti integrati digitali mediante strumenti CAD.
La frequenza è fortemente raccomandata, in particolare per le attività progettuali.
L'insegnamento sarà erogato in lingua italiana; su richiesta di uno o più studenti potrà essere erogato in lingua inglese.
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 consiste in una prova scritta e una prova orale.
Prova scritta
La prova scritta comprende tre esercizi di progettazione logica.
- Il primo esercizio riguarda l'analisi e la sintesi di reti logiche combinatorie.
- Il secondo esercizio riguarda l'analisi e la progettazione di reti logiche sequenziali.
- Il terzo esercizio riguarda la progettazione di semplici sistemi digitali comprendenti logica combinatoria, logica sequenziale e macchine a stati finiti.
La valutazione tiene conto della correttezza tecnica delle soluzioni, della capacità di sintesi progettuale e della chiarezza espositiva.
Prova orale
La prova orale comprende:
- discussione critica della prova scritta;
- presentazione e discussione del progetto di gruppo sviluppato durante il corso.
La valutazione considera:
- padronanza degli argomenti teorici;
- capacità di motivare le scelte progettuali;
- utilizzo corretto della terminologia tecnica;
- capacità di interpretare criticamente i risultati ottenuti mediante simulazione e implementazione.
Orario di ricevimento
Lunedi 10-12
Sustainable Development Goals
Aims
The course aims to provide students with the fundamental knowledge and skills required for the analysis, design, and verification of digital logic systems using Hardware Description Languages (HDLs) and Field-Programmable Gate Arrays (FPGAs). Particular emphasis is placed on the use of professional Computer-Aided Design (CAD) tools for the simulation, synthesis, and verification of digital circuits, together with an introduction to the design flow of digital integrated circuits (ASICs).
Upon successful completion of the course, students will be able to design simple digital systems, describe them using VHDL, verify their functionality through simulation, implement them on FPGA devices, and use CAD tools for the design of silicon-based digital integrated circuits.
Expected learning outcomes
-
Knowledge and understanding
Students will acquire the fundamental knowledge of digital logic system design, programmable logic devices (FPGAs), Hardware Description Languages (VHDL), and the operating principles of Computer-Aided Design (CAD) tools for the design, simulation, and verification of digital circuits and integrated circuits. -
Applying knowledge and understanding
Students will be able to analyze, design, and simulate combinational and sequential digital circuits, describe them using VHDL, implement them on FPGA devices, and use CAD tools for the design and verification of basic digital systems and integrated circuits. -
Making judgements
Students will develop the ability to evaluate alternative design solutions for simple digital systems, critically interpret simulation and debugging results, and select appropriate design solutions according to given specifications. -
Communication skills
Students will be able to describe the operation of digital systems, justify their design choices, and effectively present the results of design and simulation activities using appropriate scientific and technical terminology. -
Learning skills
Students will acquire the methodological skills required for independent learning in digital system design, the use of CAD tools and Hardware Description Languages, and for undertaking more advanced studies in digital system design, FPGA-based systems, and digital integrated circuit (ASIC) design.
Contents
- Number systems and binary codes.
- Boolean algebra and logic circuit synthesis.
- Combinational logic circuits.
- Sequential logic circuits.
- Finite State Machines (FSMs).
- VHDL Hardware Description Language.
- Design, simulation, and verification of digital systems using VHDL.
- Programmable logic devices (FPGAs) and digital interfaces (SPI and I²C).
- Digital signal acquisition and processing on FPGAs in the presence of noise.
- Introduction to digital integrated circuit (ASIC) design using Computer-Aided Design (CAD) tools.
Detailed program
- Number Systems and Binary Codes
- Introduction to number systems
- Binary representation of numbers
- Octal and hexadecimal number systems
- Gray code
- Hamming distance
- Binary arithmetic
- Boolean Algebra
- Basic logic operators
- De Morgan's theorems
- Consensus theorem
- Sum-of-Products (SOP) synthesis
- Product-of-Sums (POS) synthesis
- Logic minimization using Karnaugh maps
- Static and dynamic hazards
- Combinational Logic Circuits
- Logic gates
- Encoders, decoders, multiplexers, and demultiplexers
- Comparators
- Parity generators and parity checkers
- Half-adders and full-adders
- Sequential Logic Circuits
- SR and D latches
- D, JK, and T flip-flops
- Registers
- Counters
- Finite State Machines (FSMs)
- Mealy model
- Moore model
- Design methodologies
- Design examples
- Hardware Description Languages
- Programmable logic devices
- FPGAs and ASICs
- Introduction to VHDL
- Entity
- Architecture
- Data types
- Signals and variables
- Concurrent statements
- Processes
- Digital Design Using VHDL
- Combinational, sequential, and structural modeling
- Reusable components
- Buses and vectors
- Logic operators
- Combinational circuit design
- Registers and counters
- Finite State Machine design
- Digital Interfaces
- SPI
- I²C
- Digital Signal Processing on FPGAs
- Digital signal acquisition
- Noise in the digital domain
- Digital filtering techniques
- Signal conditioning
- Implementation on Xilinx® Spartan-7 FPGAs
- Introduction to Digital Integrated Circuit Design
- ASIC design flow using CAD tools
- Functional simulation
- Logic synthesis
- Timing analysis
- Introduction to digital layout design
Prerequisites
C Programming, machine-level programming (I / O management and interrups).
Teaching form
The course consists of:
- 27 hours of lectures, covering the theoretical foundations of digital system design.
- 6 hours of practical exercises, devoted to design examples and circuit simulation using VHDL and Computer-Aided Design (CAD) tools.
- 15 hours of group project activities, conducted in an interactive format with the instructor, aimed at:
- developing and simulating digital components using VHDL;
- implementing simple applications on FPGA devices;
- introducing the CAD-based design flow for digital integrated circuits.
Attendance is strongly recommended, particularly for the project activities.
The course is normally taught in Italian. Upon request by one or more students, it may also be delivered in English.
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 assessment consists of a written examination and an oral examination.
Written examination
- The written examination consists of three digital logic design problems.
- The first problem focuses on the analysis and synthesis of combinational logic circuits.
- The second problem concerns the analysis and design of sequential logic circuits.
- The third problem involves the design of simple digital systems combining combinational logic, sequential logic, and finite state machines (FSMs).
The written examination is assessed based on:
- the technical correctness of the proposed solutions;
- the ability to synthesize effective design solutions;
- the clarity and organization of the presented work.
Oral examination:
The oral examination consists of:
- a critical discussion of the written examination;
- the presentation and discussion of the group project developed during the course.
The oral examination assesses:
- the student's understanding of the theoretical concepts;
- the ability to justify design choices;
- the correct use of scientific and technical terminology;
- the ability to critically interpret the results obtained through simulation and FPGA implementation.
Office hours
Monday 10-12