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 software per la simulazioni di circuiti progettati attraverso Hardware Description Language.
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
Lezioni frontali in cui saranno presentati i concetti fondamentali della progettazione logica digitale.
Esercitazioni in aula con presentazione e discussione di esempi di circuiti digitali descritti in VHDL/Verilog.
Laboratorio per lo sviluppo di componenti e l’utilizzo di FPGA in semplici applicazioni.
La frequenza è fortemente raccomandata ed è essenziale per le attività di laboratorio.
Il corso verrà erogato in Italiano.
Nel periodo di emergenza Covid-19 le lezioni si svolgeranno completamente da remoto sincrono (webconference) con alcuni eventi in presenza fisica.
La videoregistrazione della lezione sarà poi immediatamente online sulla piattaforma elearning.
Materiale didattico
- Appunti e Slide fornite dal docente
- “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 finale consta di un prova orale divisa in due parti.
Il punteggio assegnato a ogni parte è di 15/30 ciascuna.
Nella prima parte lo studente presenterà la documentazione e il funzionamento di un sistema hardware interamente sviluppato dallo stesso studente e relativo a un testo di progetto assegnato in classe a gruppi formati al massimo da due studenti.
Nella seconda parte dell’’esame si verificherà la preparazione dello studente attraverso due domande relative agli argomenti trattati a lezione, e in particolare una prima domanda riguardante i circuiti combinatori e una seconda domanda sui circuiti sequenziali.
Orario di ricevimento
Lunedi 10-12
Sustainable Development Goals
Aims
The course target is giving the knowledge necessary to solve the control and the design of interfaces between external world and internal eleboration unit, analyzing and comparing different hardware and software solutions based on the use of microcontrollers. At the end of the course the students will be able to develop an embedded application using a microcontroller and designing digital logic circuits, debugging them by means of simulations using a specific HDL software
The aim of the course is to provide the skills needed for digital circuits design on programmable hardware. At the end of the course, students will be able to independently develop an embedded application using an FPGA and designing digital logic circuits, performing simulation-level debugging, and using specific software for circuit simulations designed through Hardware Description Languages.
Contents
1 Boole Algebra
2 Combinatory Digital Circuits
3 Sequential Digital Circuits
4 Finite-State-Machine Circuit Design
5 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
Lectures for basic concepts. Classroom exercises with the presentation and discussion of digital circuits in VHDL/Verilog. Laboratory activity for the development of digital circuits and for the use of FPGAs in simple applications
The course will be held in Italian.
In the Covid-19 emergency period, the lessons will take place completely remotely synchronously (webconference) with some physical presence events.
The video recording of the lesson will then be immediately online on the elearning platform.
Textbook and teaching resource
- Notes and slides
- “Circuit Design with VHDL” Volnei A. Pedroni MIT Press
Semester
Second Semester
Assessment method
The final exam is oral and it is divided into two parts.
The score assigned to each part is 15/30 each.
In the first part the student will present documentation and functionalities of a specific hardware system developed entirely by the same student and related to a project topic assigned in class to groups consisting of at most two students.
In the second part, the examination of the student will take place through two questions related to the topics covered during the course, and in particular the first one concerning the combinatory circuits and a second on the sequential circuits.
Office hours
Monday 10-12