Il testo, giunto alla sua seconda edizione, è concepito per studenti di un primo corso di reti logiche nelle Facoltà di Ingegneria e di Scienze. Il testo fornisce una solida conoscenza delle basi teoriche delle reti logiche. Parte dall’algebra booleana e dell'aritmetica binaria e, passando per le reti sequenziali e le macchine a stati finiti, accompagna i lettori nella progettazione e simulazione di sistemi formati da controllore e datapath. Questa nuova versione è arricchita da un capitolo che introduce ai componenti FPGA, ai linguaggi HDL e alla realizzazione di prototipi su scheda FPGA. L’apprendimento delle parti teoriche è facilitato dalla presentazione di numerosi esempi ed esercizi, tutti risolti per esteso. Un sito web ospita il software Deeds (Digital Electronics Education and Design Suite), creato e mantenuto dagli autori, e contenente tutto il materiale necessario per la simulazione con Deeds dei numerosi esempi ed esercizi affrontati nel testo. Strutturato in modo da adattarsi a diverse esigenze didattiche, questo testo non richiede conoscenze preliminari in campo elettronico o informatico. Inoltre, grazie al supporto fornito da Deeds, rappresenta un libro ideale per l’auto-apprendimento. Sebbene il suo impiego ottimale sia in simbiosi con Deeds, esso può essere usato con profitto anche indipendentemente dal simulatore. Il libro racchiude la pluri-decennale esperienza degli autori nell’insegnamento e nello sviluppo di materiale didattico.
Author(s): Giuliano Donzellini, Luca Oneto, Domenico Ponta, Davide Anguita
Edition: 2
Publisher: Springer
Year: 2023
Language: Italian
Pages: 602
City: Milan
Prefazione
Materiale di supporto
Indice
1 Algebra booleana e reti combinatorie
1.1 Grandezze analogiche e logiche
1.2 Variabili booleane
1.3 Funzioni booleane
1.4 Tabelle di verità
1.5 Definizione dell’algebra booleana.
1.6 Proprietà fondamentali dell’algebra booleana.
1.7 Altre operazioni
1.8 Insiemi di operazioni funzionalmente completi
1.9 Teorema di espansione di Shannon
1.10 Livello di un’espressione booleana
1.11 Letterali
1.12 Prodotti fondamentali
1.13 Somme fondamentali
1.14 Reti combinatorie
1.14.1 Esempio: analisi di rete logica
1.14.2 Esempio: analisi di rete logica a due livelli
1.14.3 Esempio: schema circuitale di una rete logica (1)
1.14.4 Esempio: schema circuitale di una rete logica (2)
1.14.5 Esempio: definizione del comportamento di una rete logica
1.14.6 Esempio: schema circuitale da tabella di verità
1.14.7 Esempio: controllo di un impianto di riscaldamento
1.14.8 Esempio: selettore (multiplexer) a due canali
1.15 Esercizi
1.16 Soluzioni
2 Progetto di reti combinatorie
2.1 Mappe di Karnaugh
2.2 Sintesi AND-OR con uso delle mappe
2.2.1 Implicanti
2.2.2 Implicanti primi
2.2.3 Implicanti e implicanti primi nelle mappe
2.2.4 Minimizzazione con l’uso delle mappe
2.2.5 Mappe “a scacchiera”
2.2.6 Esempi di sintesi AND-OR
2.3 Sintesi OR-AND
2.3.1 Sintesi della funzione negata
2.4 Sintesi NAND-NAND
2.5 Sintesi NOR-NOR
2.6 Reti combinatorie standard
2.6.1 Decodificatore (Decoder)
2.6.2 Selettore (multiplexer)
2.6.3 Deselettore (demultiplexer)
2.6.4 Decodificatore per display a sette segmenti
2.6.5 Decodificatore BCD - 7 segmenti (con l’impiego delle indifferenze)
2.6.6 Uso di selettori per la sintesi di reti combinatorie
2.7 Mappe con variabili riportate
2.7.1 Sintesi di una mappa con variabili riportate
2.7.2 Le variabili riportate e i teoremi di espansione
2.8 Comportamento nel tempo delle reti combinatorie
2.8.1 Definizioni e modelli temporali
2.8.2 Alee
2.8.3 Eliminazione delle alee statiche
2.8.4 Note sulla eliminazione delle alee
2.9 Esercizi
2.9.1 Mappe
2.9.2 Alee
2.10 Soluzioni
2.10.1 Mappe
2.10.2 Alee
3 Aritmetica binaria
3.1 Informazione binaria
3.2 Numerazione binaria (BIN)
3.2.1 Conversione da numerazione binaria a decimale
3.2.2 Conversione da numerazione decimale a binaria
3.2.3 Massimo numero rappresentabile
3.3 Numerazione ottale (OCT)
3.4 Numerazione esadecimale (HEX)
3.5 Altri codici binari
3.5.1 Decimale codificato in binario (BCD)
3.5.2 Codici GRAY
3.6 Aritmetica binaria
3.6.1 Addizione
3.6.2 Sottrazione
3.6.3 Prodotto
3.7 Aritmetica BCD 8421
3.8 Numeri razionali in binario.
3.9 Numeri relativi in binario
3.9.1 Rappresentazione in codice “modulo e segno”
3.9.2 Complementazione
3.9.3 Rappresentazione in codice “complemento a uno”
3.9.4 Rappresentazione in codice “complemento a due”
3.9.5 Estensione del segno
3.10 Rappresentazione di numeri reali
3.11 Reti aritmetiche
3.11.1 Semi-sommatore (half adder)
3.11.2 Sommatore (full adder)
3.11.3 Sommatore con riporto in cascata
3.12 Reti aritmetiche programmabili
3.12.1 Sommatore/sottrattore programmabile
3.12.2 Unità aritmetico-logica (ALU)
3.13 Codici a rivelazione di errore: generatore erivelatore di parità
3.14 Codici alfanumerici
3.15 Esercizi
3.15.1 Numerazione Binaria
3.15.2 Numeri binari con segno
3.15.3 Numerazione Ottale e Esadecimale
3.16 Soluzioni
3.16.1 Numerazione Binaria
3.16.2 Numeri binari con segno
3.16.3 Numerazione Ottale e Esadecimale
4 Complementi sul progetto di reti combinatorie
4.1 Minimizzazione di espressioni booleane con il metodo di Quine-McCluskey
4.1.1 Fase di espansione
4.1.2 Fase di copertura
4.1.3 Funzioni non completamente specificate
4.1.4 Ottimizzazione della fase di copertura
4.1.5 Ottimizzazione contemporanea di più funzioni
4.2 Esercizi
4.2.1 Quine-McCluskey: sintesi di singola funzione
4.2.2 Quine-McCluskey: sintesi congiunta di più funzioni
4.3 Soluzioni
4.3.1 Quine-McCluskey: sintesi di singola funzione
4.3.2 Quine-McCluskey: sintesi congiunta di più funzioni
5 Introduzione alle reti sequenziali
5.1 Dalle reti combinatorie alle reti sequenziali
5.1.1 Esempio introduttivo
5.1.2 Memorizzare un bit di informazione: il flip-flop
5.1.3 Tipi logici e tipi di comando dei flip-flop
5.2 Flip-flop a comando diretto
5.2.1 Flip-flop SR (a comando diretto)
5.2.2 Flip-flop D (a comando diretto)
5.2.3 Flip-flop JK (a comando diretto)
5.3 Inizializzazione di una rete sequenziale
5.3.1 Ingressi di inizializzazione dei flip-flop
5.3.2 Generazione del segnale di inizializzazione
5.4 Flip-flop a comando abilitato a livello
5.4.1 Flip-flop SR-Latch
5.4.2 Flip-flop D con abilitazione a livello (D-Latch)
5.4.3 Flip-flop JK con abilitazione a livello (JK-Latch)
5.5 Sincronizzazione delle reti sequenziali
5.5.1 Il segnale di sincronizzazione
5.5.2 Comando impulsivo dei flip-flop abilitati a livello
5.5.3 Il “Clock” e il “comando abilitato sul fronte”
5.5.4 La struttura “master-slave”
5.6 Flip-flop a comando abilitato sul fronte
5.6.1 Flip-flop D-PET
5.6.2 Flip-flop E-PET
5.6.3 Flip-flop JK-PET
5.6.4 Flip-flop T-PET
5.6.5 Inizializzazione sincrona dei flip-flop
5.7 Tempi caratteristici dei flip-flop
5.7.1 Relazione tra i tempi di propagazione e di mantenimento
5.7.2 Massima frequenza del clock di una rete con flip-flop
5.8 Flip-flop: simboli grafici e tabelle
5.8.1 Tipi logici
5.8.2 Tipi di comando
5.8.3 Tabelle di eccitazione
5.9 Esercizi
5.10 Soluzioni
6 Reti sincrone di flip-flop
6.1 Segnali sincroni e asincroni
6.1.1 Sincronizzatore
6.1.2 Sincronizzatore a più stadi
6.2 Registri
6.2.1 Registro parallelo
6.2.2 Registro a scorrimento
6.2.3 Registro a scorrimento con caricamento parallelo
6.2.4 Registro a scorrimento universale
6.3 Contatori
6.3.1 Contatore binario
6.3.2 Contatore con abilitazione
6.3.3 Contatore bidirezionale
6.3.4 Contatori “universali”
6.3.5 Contatori asincroni
6.4 Analisi di reti
6.4.1 Esempio n. 1
6.4.2 Esempio n. 2
6.4.3 Esempio n. 3
6.4.4 Esempio n. 4
6.4.5 Esempio n. 5
6.5 Esercizi
6.6 Soluzioni
7 Reti sequenziali come Macchine a Stati Finiti
7.1 Modello generale di Macchina a Stati Finiti
7.1.1 Macchine Sincrone e Asincrone
7.1.2 Macchine di Moore e di Mealy
7.1.3 Esempio di Macchina a Stati Finiti Sincrona
7.1.4 Equazioni generali dello stato successivo e delle uscite
7.2 Diagrammi ASM
7.2.1 Descrizione degli stati
7.2.2 Ingressi
7.2.3 Uscite condizionate
7.3 Esempi di costruzione di diagrammi ASM
7.3.1 Esempi introduttivi
7.3.2 Generatore di impulsi a rapporto pieno/vuoto regolabile
7.3.3 Riconoscitore di sequenza
7.3.4 Trasmettitore Seriale Sincrono (2 bit)
7.3.5 Ricevitore di comando in formato seriale sincrono
7.3.6 Ricevitore Seriale Sincrono (2 bit)
7.3.7 Gestione di pulsanti
7.3.8 Registro a Scorrimento (3 bit)
7.3.9 Rete sequenziale con uscita condizionata
7.3.10 Registro a scorrimento con albero di EXOR
7.4 Sintesi della MSF sincrona
7.4.1 Assegnazione degli stati
7.4.2 Descrizione della MSF mediante tabella degli stati
7.4.3 Sintesi dalla tabella degli stati
7.4.4 Esempi di sintesi di MSF sincrone
7.5 Comportamento nel tempo della MSF sincrona
7.5.1 MSF senza ingressi
7.5.2 MSF con ingressi sincroni e asincroni
7.5.3 Ingressi sincroni
7.5.4 Ingressi asincroni
7.5.5 Le uscite della MSF (modello di Moore)
7.5.6 Le uscite della MSF (modello di Mealy)
7.6 Esercizi
7.6.1 Analisi di reti sequenziali in termini di MSF
7.6.2 Progetto di MSF a partire da specifiche testuali
7.7 Soluzioni
7.7.1 Analisi di reti sequenziali in termini di MSF
7.7.2 Progetto di MSF a partire da specifiche testuali
8 La Macchina a Stati Finiti come controllore di sistema
8.1 I sistemi digitali
8.2 Sistemi a controllo aperto
8.2.1 Ricevitore seriale (2 bit)
8.3 Sistemi a controllo retroazionato
8.3.1 Ricevitore e trasmettitore seriale (2 bit)
8.3.2 Generatore di impulso
8.3.3 Ricevitore seriale (8 bit)
8.3.4 Regolatore di luminosità per lampada
8.3.5 Serratura a combinazione
8.3.6 Distributore automatico di bevande
8.3.7 Progetto di generatore di onda quadra programmabile
8.4 Esercizi
8.4.1 Progetto di controllore, con datapath assegnato
8.4.2 Progetto di sistema completo (controllore e datapath)
8.5 Suggerimenti
8.5.1 Progetto di sistema completo (controllore e datapath)
8.6 Soluzioni
8.6.1 Progetto di controllore, con datapath assegnato
8.6.2 Progetto di sistema completo (controllore e datapath)
9 Introduzione ai componenti FPGA e alla progettazione mediante HDL
9.1 FPGA (Field Programmable Gate Arrays)
9.1.1 Realizzazione di prototipi con FPGA
9.1.2 Esempi di schede FPGA
9.1.3 Architettura dei componenti FPGA
9.1.4 I blocchi logici
9.1.5 La programmazione tramite JTAG
9.1.6 Dispositivi per programmare le FPGA
9.1.7 Strumenti software di sviluppo per FPGA
9.1.8 Deeds e il supporto per i componenti FPGA
9.2 Introduzione al VHDL
9.2.1 Il codice VHDL generato da Deeds
9.2.2 Il contatore
9.2.3 Macchine a stati finiti
9.2.4 Entità di livello superiore
9.2.5 Altri esempi di codice VHDL
9.3 Esercizi di prototipazione su FPGA
9.3.1 Contatore binario avanti-indietro non ciclico, a tre bit
9.3.2 Generatore digitale di toni
9.3.3 Contatore di eventi
9.3.4 Frequenzimetro
9.3.5 Sistema di comunicazione seriale sincrona (8 bit)
9.3.6 Cronometro digitale
9.4 Soluzioni
9.4.1 Contatore binario avanti-indietro non ciclico, a tre bit
9.4.2 Generatore digitale di toni
9.4.3 Contatore di eventi
9.4.4 Frequenzimetro
9.4.5 Sistema di comunicazione seriale sincrona (8 bit)
9.4.6 Cronometro digitale
A Le potenze di 2
B Pallogrammi
C Codice VHDL
C.1 Esempio del generatore di impulso
C.1.1 Schema
C.1.2 Entit`a di livello superiore (Top Entity)
C.1.3 Componenti
C.1.4 Macchina a stati finiti
C.2 Altri esempi di codice VHDL
C.2.1 Decodificatore
C.2.2 Selettore
C.2.3 Deselettore
C.2.4 Sommatore
C.2.5 Complementatore
C.2.6 Comparatore di grandezza
C.2.7 Flip-flop D-PET
C.2.8 Flip-flop E-PET
C.2.9 Flip-flop JK-PET
C.2.10 Registro parallelo
C.2.11 Registro a scorrimento (SIPO)
C.2.12 Registro Universale