retilogiche - marco alessandrini · capitolo 1 reti logiche lalogicaèl’ultimorifugiodellagente...

117
Reti Logiche Il primo passo nell’eleĴronica digitale Marco Alessandrini C.d.L. in Ingegneria EleĴronica e delle Telecomunicazioni Seconda Facoltà di Ingegneria – Sede di Cesena Università degli Studi di Bologna

Upload: lambao

Post on 17-Feb-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti LogicheIl primo passo nell’ele ronica digitale

Marco Alessandrini

C.d.L. in Ingegneria Ele ronica e delle TelecomunicazioniSeconda Facoltà di Ingegneria – Sede di Cesena

Università degli Studi di Bologna

Page 2: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

CC⃝ BY:⃝ $\⃝ =⃝Quest’opera è stata rilasciata so o la licenzaCreativeCommonsA ribuzione-Non commerciale-Non opere derivate 2.5 Italia. Per leggere una copia della licenza visita il sito web

h p://creativecommons.org/licenses/by-nc-nd/2.5/it/

o spedisci una le era a Creative Commons, 171 Second Street, Suite 300, San Francisco, Cali-fornia, 94105, USA.

È consentito riprodurre e distribuire liberamente il presente testo, senza apporvi modifiche emantenendo sempre riconoscibile il nome degli autori, purché non a scopo di lucro, senza scopicommerciali (dire amente o indire amente) e per esclusivo uso personale.È possibile pubblicare il file o sue parti su siti internet, purché sia citato in maniera evidentel’autore.Per qualunque informazione, problematica, suggerimento o reclamo utilizzare l’indirizzo di postaele ronica [email protected].

Quest’opera è impaginata con X ELTEX e compilata con MiKTEX. Nessuna responsabilità è assuntain caso di dipendenza da parte del le ore.

Prima versione (incompleta): 2008Prima edizione: Febbraio 2015

Page 3: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Che cos’è il genio? È fantasia, intuizione,colpo d’occhio e rapidità di esecuzione.

– “Amici Miei”(1975) –

Page 4: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte
Page 5: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Indice

Acronimi 7

Premessa 11

1 Reti logiche 131.1 Qualche informazione preliminare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.1.1 Prerequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.1.2 Percorso di apprendimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2 Informazione e segnali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Esercizio 1.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.1 Codifiche binarie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.2 Trasmissione dei segnali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.3 Operazioni logiche. Algebra di Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3.1 Tabella di verità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3.2 Analisi e sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.3.3 Proprietà degli operatori e teoremi di equivalenza . . . . . . . . . . . . . . . 22

Esercizio 1.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.3.4 Forme canoniche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.3.5 Espressioni generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Esercizio 1.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.4 Modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1.4.1 Tempo di propagazione e transitori . . . . . . . . . . . . . . . . . . . . . . . 271.4.2 Macchina combinatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.4.3 Macchine sequenziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1.5 Strumenti di analisi e sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Esercizio 1.d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Esercizio 1.e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Esercizio 1.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2 Reti combinatorie 392.1 Reti di costo minimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.1.1 Espressioni minime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.2 Mappa di Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.2.1 Regole per le mappe di Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . 412.2.2 k-mappe per più di 4 variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.2.3 Raggruppamenti Re angolari . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Page 6: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 2.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Esercizio 2.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.2.4 Eliminazione di alee statiche . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.2.5 Dimostrazione di secondo e terzo teorema dell’assorbimento con k-mappe . 462.2.6 Operazioni algebriche con k-mappe . . . . . . . . . . . . . . . . . . . . . . . 46

Esercizio 2.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Esercizio 2.d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.3 Porte logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.3.1 Analisi e sintesi con porte logiche . . . . . . . . . . . . . . . . . . . . . . . . 482.3.2 Sintesi con soli NAND o NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Esercizio 2.e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Esercizio 2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Esercizio 2.g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.4 Circuiti logici notevoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.4.1 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.4.2 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.4.3 MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Esercizio 2.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Esercizio 2.i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Esercizio 2.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

2.4.4 Half Adder (HA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.4.5 Sommatore Full Adder (FA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.4.6 Implicazione logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Esercizio 2.k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.5 Circuiti programmabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

2.5.1 ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Esercizio 2.l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Esercizio 2.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

2.5.2 PLA e PAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Esercizio 2.n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

2.5.3 PLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Esercizio 2.o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3 Reti asincrone 733.1 Memorie binarie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.1.1 Latch SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.1.2 Latch CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.2 Eliminazione delle corse critiche e codifica degli stati . . . . . . . . . . . . . . . . . 773.2.1 Creazione di una codifica anti-corsa critica . . . . . . . . . . . . . . . . . . . 77

3.3 Procedimento di analisi delle reti asincrone . . . . . . . . . . . . . . . . . . . . . . . 793.4 Procedimento di sintesi delle reti asincrone . . . . . . . . . . . . . . . . . . . . . . . 80

Esercizio 3.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Esercizio 3.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Esercizio 3.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4 Reti sincrone 894.1 Flip-flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.2 Procedimento di analisi delle reti sincrone . . . . . . . . . . . . . . . . . . . . . . . . 91

Esercizio 4.a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.3 Procedimento di sintesi delle reti sincrone . . . . . . . . . . . . . . . . . . . . . . . . 96

4.3.1 Sintesi con flip-flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Esercizio 4.b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Esercizio 4.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Esercizio 4.d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6 Indice

Page 7: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 4.e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.4 Contatore binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Esercizio 4.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Esercizio 4.g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Esercizio 4.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Esercizio 4.i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.5 Registro accumulatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.6 Registro a scorrimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

4.6.1 Universal Shift Register (USR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Elenco delle figure 112

Elenco delle tabelle 114

Riferimenti bibliografici 115

Indice analitico 116

Indice 7

Page 8: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

8 Indice

Page 9: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Acronimi

ARQ Automatic Repeat reQuest

ASCII American StandardCode for InformationInterchange

BCD Binary-Coded Decimal

CD Controller-Data

CE Chip Enable

CO Carry Out

FA Full Adder

FEC Forward Error Correction

FF Flip-flop

HA Half Adder

MRD Machine Readable Data

MUX Multiplexer

OE Output Enable

PAL Programmable Array Logic

PLA Programmable Logic Array

PLD Programmable Logic Device

PS Prodo o di Somme

PSP Prodo o di Somme di Prodo i

PSPS Prodo o di Somme di Prodo i di Somme

RAM Random Access Memory

ROM Read Only Memory

RR Raggruppamento Re angolare

SI Serial Input

SO Serial Output

SP Somma di Prodo i

SPS Somma di Prodo i di Somme

SPSP Somma di Prodo i di Somme di Prodo i

SR Set-Reset

USR Universal Shift Register

WE Write Enable

Page 10: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

10 Indice

Page 11: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Premessa

Se non sai risolvere un problema,allora ce n’è uno più sempliceche puoi risolvere: trovalo.

G P

Lo studio delle reti logiche è il primo affrontato dai giovani ingegneri dell’informazione. Pergli argomenti che tra a, è propedeutico a una serie di altri insegnamenti successivi: Calcolatoriele ronici, Ele ronica dei sistemi digitali e i vari corsi di Ele ronica.

Mancare la comprensione delle linee principali sulle reti logiche significa precludersi la viaprincipale al successo in questi esami. Il problema è la mancanza di materiale soddisfacente chesia reperibile e comprensibile. Qui vorrei tentare di fornire il mio approccio alla materia, che si èrivelato tu o sommato soddisfacente.

Il materiale qui riportato è tra o da appunti universitari, con l’integrazione di riferimenti dilivello tecnico inferiore per facilitare la comprensione. Gli esercizi svolti hanno una importanzadecisiva per capire come scegliere tra opportunità che si presentano durante la creazione di unproge o.

In vari casi, argomenti sviluppati con difficoltà in sede universitaria sono spiegati dai docentidi scuola superiore ome endo alcuni de agli, per perme ere agli studenti di capire di cosa sistia parlando. Nonostante il parere contrario di alcuni docenti, non è de o che la semplificazionesia un male assoluto: si paga il prezzo di sopprimere alcuni de agli, per o enere in cambio lapadronanza degli argomenti. Questo è l’obie ivo di questo manuale o.

Page 12: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte
Page 13: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

CAPITOLO 1

Reti logiche

La logica è l’ultimo rifugio della gentepriva di immaginazione.

O W

SommarioIn questo capitolo introduttivo sono esposte tutte le basi per iniziare lo studio dei circuiti logici.Ci si sofferma su alcune proprietà dell’algebra binaria, con esempi rilevanti. Sono accennatealcune particolarità delle reti logiche, poi approfondite nei capitoli successivi.

1.1 Qualche informazione preliminareDefinizione 1.1 . Una rete logica è unamacchina a stati finiti, nella quale i simboli di ingresso, uscitae stato sono espressi in notazione binaria.

Questa definizione sarà ripresa per spiegare i conce i che contiene e richiamare alcuni requisitinecessari al corso. Nel fra empo, si può individuare una serie di contenuti che dovranno esser notial termine del corso. Un minimo sindacale comprende:

• classificazione di segnali;

• codice binario e codifiche binarie;

• macchine a stati finiti;

• metodi di studio e rappresentazione delle macchine;

• reti combinatorie;

• reti sequenziali asincrone;

• reti sequenziali sincrone.

La stru ura dei capitoli cerca di seguire l’ordine con rigore, evitando i salti e le lacune che carat-terizzano troppi manuali di Reti Logiche (come quello di Laschi [8]).

Page 14: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

1.1.1 Prerequisiti

A titolo di prerequisiti è richiesto di saper manipolare espressioni binarie ed operare con l’al-gebra binaria. Se ciò non fosse possibile occorre a rezzarsi, aiutandosi con i paragrafi successivi.

È richiesta la conoscenza e la padronanza degli elementari strumenti matematici, in particolarela tra azione di espressioni polinomiali e la conservazione dell’equivalenza.

Tu e le altre nozioni basilari sono fornite all’inizio del corso, cioè nel seguito di questo capitolo.

1.1.2 Percorso di apprendimento

Le reti logiche sono difficili perché sono espandibili: quando si aggiungono elementi esse sicomplicano, cambiano fisionomia e si trasformano in reti del tu o differenti.

Il punto di partenza è lo studio delle porte logiche, che realizzano le più comuni operazioni al-gebriche binarie. Si può risolvere un’espressione complessa combinando porte logiche in manieraopportuna, in maniera analoga agli strumenti matematici di uso comune.

Quando si aggregano molte porte logiche, secondo particolari conformazioni standard, si ot-tengono delle reti combinatorie. Queste hanno la proprietà di saper elaborare i dati, ma solo quellipresenti all’ingresso in quell’istante di tempo. Non sono dotate di memoria. Inoltre, soffrono dialcuni mali ereditati dalle porte logiche, come i ritardi di propagazione e le alee.

Per introdurre un conce o di memoria, si aggiungono alcune porte logiche in retroazione allarete combinatoria. Si o iene una rete sequenziale. La rete sequenziale può essere asincrona, se i se-gnali in ingresso agiscono appena sono inviati, oppure sincrona, se l’accesso dei segnali è scanditoe regolato da un segnale di controllo esterno (clock).

Per i vari tipi di rete sono previsti strumenti di analisi (per studiare le reti) e sintesi (per crearle,a partire da cara eristiche tecniche predeterminate). Ogni rete presenta vantaggi rispe o a quel-la precedente, di cui costituisce uno sviluppo, ma pure svantaggi che devono essere risolti, conle tecniche conosciute o sfru ando le cara eristiche di altre reti o degli stessi componenti. L’i-dea principale è che, partendo dal piccolo mondo dei gate, si possa ampliare il loro utilizzo perrealizzare grandi macchine capaci di risolvere problemi complessi.

1.2 Informazione e segnali

L’ele ronica si occupa della manipolazione dei segnali. Un segnale è la variazione di una gran-dezza fisica. I segnali dell’ele ronica sono ele rici, so o forma di tensione o corrente.

Se siamo interessati a tu i gli infiniti valori assunti dal segnale nel tempo, allora lo conside-riamo analogico; se, invece, ci interessano solo alcuni livelli discreti del segnale o alcune sue fascedi valori, allora lo interpretiamo come digitale o logico. Un segnale non è analogico o digitale pernatura: è l’utente che sceglie, a seconda delle esigenze, di considerarne tu i i valori o solo alcuni.Si tra a solo di una interpretazione, di una modalità di le ura.

Di solito, un segnale digitale amme e due livelli di valori: uno alto (valore logico 1) e uno basso(0). Questo tipo di segnale è de o binario e i suoi valori sono de i bit. Il bit è la quantità minima diinformazione, perché può valere solo 0 oppure 1.

L’informazione è trasportata dal segnale, che funge da ve ore fisico.

Definizione 1.2 (Informazione). L’informazione è una diminuzione dell’incertezza.

L’informazione più piccola è la scelta tra due alternative che si ha nel bit: il grado di incertezzaè del 50% ( 1

2 ) ed è pari all’informazione ricevuta (1 − 12 = 1

2 ).

14 1 - Reti logiche

Page 15: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 1.a

Determinare l’informazione fornita dal lancio di un dado a sei facce.

Su un dado a sei facce si ha un’incertezza di 16 per ogni lancio, quindi:

1︸︷︷︸100%

− 16︸︷︷︸

incertezza

=56︸︷︷︸

informazione

Il lancio di un dado fornisce maggiori informazioni rispe o a quelle fornite da un bit ( 56 > 1

2 ).Teorema 1 .Maggiore è la quantità di possibilità, minore è l’incertezza, maggiore è l’informazione.

Corollario 2 . Quando un evento ha tantissime diverse possibilità, ognuna di esse è così poco probabile cheil venirne a conoscenza è fonte di grande informazione.

Sulla base di questo fa o è possibile classificare i segnali digitali e analogici:

• il segnale analogico può trasportare grandi quantità di informazioni, le quali però sonodisturbate dal rumore;

• il segnale digitale può trasportare solo poche (di solito due) alternative di informazione, lequali però sono sicure e prote e dal rumore.

Il proge ista deve valutare l’opportunità di trasportare molti dati in contrapposizione all’uso diun ve ore di informazioni robusto contro il rumore.

Definizione 1.3 (Rumore). Il rumore è un fenomeno ele romagnetico, dovuto alle cara eristichefisiche dei mezzi (cavi, macchine, strumenti) utilizzati, che si sovrappone al segnale ideale.

Se si considera il segnale come analogico invece di leggere il valore vero si finisce per vedereun valore alterato dalla somma col rumore (che è aleatorio e dunque ha valore sconosciuto). Alcontrario, sommando rumore al segnale digitale è più difficile che esso cambi il suo livello, perchécorrisponde a una fascia ampia di possibili valori e il rumore deve essere molto forte per causareun passaggio di stato.

Il corso di Reti Logiche si occupa solo di segnali digitali e delle tecniche per aumentare laquantità di dati trasportabili, analizzabili e processabili dalle macchine.

1.2.1 Codifiche binariePer trasme ere un segnale digitale si ado a un codice, affinché il destinatario del messaggio

possa comprendere quel che gli sta comunicando il mi ente. Questo codice non è unico: ne esi-stono molti tipi diversi a seconda degli impieghi e delle circostanze di cui tener conto (fisiche,stru urali, informative, …).

Fissati quanti n bit si vogliono utilizzare, allora si avranno tanti codici per rappresentare unastessa informazione. La quantità di questi codici è:

C =2n!

(2n − M)!

M è il numero di informazioni da rappresentare.

1.2 - Informazione e segnali 15

Page 16: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Ridondanza. Un codice è ridondante se il numero di bit trasmessi è superiore al numero di bitstre amente necessari alla comunicazione del messaggio. Al contrario, un codice non ridondante(o irridondante) trasme e un numero di bit pari a quello minimo necessario alla comprensione.

Si può scegliere un codice ridondante per utilizzare i bit in eccesso come controllo d’errore:esistono varie tecniche1 per rilevare o correggere gli errori in trasmissione, qualora il canale ditrasmissione sia disturbato, so oposto a perdite o a rischio d’errore. Si paga pegno sulla quantitàdi dati da trasme ere (dunque sull’economicità) per rendere più affidabile la comunicazione.

Notazioni esadecimale e o ale. Esprimere un numero secondo le potenze di 8 o 16 sembra unacosa molto lontana dai dati binari. In realtà, 8 e 16 sono potenze di 2. Lavorando di matematicasi scopre che è possibile convertire un numero binario in esadecimale o in o ale, raccogliendonole cifre in gruppi e convertendo questi ultimi. In tabella 1.1 è riportata la corrispondenza tra lequa ro notazioni nelle basi 2, 8, 10 e 16.Per convertire in esadecimale, raccolgo le cifre a gruppi di 4 (partendo dalle meno significative) econverto ogni gruppo nel corrispondente esadecimale. Ad esempio:

(10|1101|0011|1010|1011)bin = (2|D|3|A|B)hex

(110|1100|0111|0101)bin = (6|D|C|7|5)hex

È agevole convertire numeri molto lunghi senza nessun ausilio ele ronico, perché è sufficienteconvertire in binario e poi raggruppare in esadecimale. Convertire in base o ale è lo stesso identicodiscorso, salvo che i raggruppamenti sono da fare a gruppi di 3. Per esempio, riproponendo i casiprecedenti:

(101|101|001|110|101|011)bin = (5|5|1|6|5|3)oct

(110|110|001|110|101)bin = (6|6|1|6|5)oct

Dec Hex Oct B3 B2 B1 B0

0 0 0 0 0 0 01 1 1 0 0 0 12 2 2 0 0 1 03 3 3 0 0 1 14 4 4 0 1 0 05 5 5 0 1 0 16 6 6 0 1 1 07 7 7 0 1 1 18 8 10 1 0 0 09 9 11 1 0 0 110 A 12 1 0 1 011 B 13 1 0 1 112 C 14 1 1 0 013 D 15 1 1 0 114 E 16 1 1 1 015 F 17 1 1 1 1

Tabella 1.1: Corrispondenza tra notazioni decimale, esadecimale, o ale e binaria

Codice BCD. Il codice Binary-Coded Decimal (BCD) è un metodo di espressione dei numeri deci-mali in formato binario. Al contrario del codice binario puro, col quale il numero decimale viene

1Queste tecniche, tra le quali si possono ricordare il controllo di parità, il Forward Error Correction (FEC), l’AutomaticRepeat reQuest (ARQ), … sono studiate nei corsi di Telecomunicazioni.

16 1 - Reti logiche

Page 17: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

semplicemente convertito (per cui ad esempio 13dec = 1101bin), il BCD suddivide il numero daconvertire nelle singole cifre decimali, convertendo queste ultime col corrispondente binario a 4bit. Questo significa che, ad esempio, se devo convertire un numero decimale a 5 cifre in BCD, ilrisultato è a 5 · 4 = 20 bit. A fronte dello spreco di circa 1/6 dei bit, c’è il guadagno di una facileconversione a mano anche di numeri decimali imponenti. In tabella 1.2 è illustrata la corrispon-denza tra codice BCD e numeri decimali. Se, ad esempio, volessi convertire il numero 478 302 inBCD:

4|7|8|3|0|2 = 0100︸︷︷︸4

| 0111︸︷︷︸7

| 1000︸︷︷︸8

| 0011︸︷︷︸3

| 0000︸︷︷︸0

| 0010︸︷︷︸2

Dec B3 B2 B1 B0

0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 110 X X X X11 X X X X12 X X X X13 X X X X14 X X X X15 X X X X

Tabella 1.2: Codice BCD

Codice per display a se e segmenti. Per visualizzare cifre esadecimali si utilizzano spesso i di-splay a se e segmenti. Sono gli stessi che si trovano in alcuni vecchi registratori, televisori, calcola-trici e in tu i i dispositivi più moderni che usano cifre a cristalli liquidi. La stru ura dei segmentiè in figura 1.1. Per o enere le cifre si devono accendere i segmenti in accordo con la tabella diverità 1.3.

Figura 1.1: Display a se e segmenti

Codice Gray. Il codice Gray è un codice esistente in tu e le lunghezze (in tabella 1.4 ne sonoriportate le versioni a 2, 3 e 4 bit), la cui cara eristica fondamentale e apprezzatissima è che simodifica un solo bit tra una configurazione e la successiva. Questo è molto importante per evita-re errori, specie in casi (meccanici) in cui il cambiamento contemporaneo di oltre un bit sarebbedifficile o impossibile, e mal interpretato dalla macchina; col codice Gray se cambia un bit è tu o

1.2 - Informazione e segnali 17

Page 18: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Hex a b c d e f g

0 1 1 1 1 1 1 01 0 1 1 0 0 0 02 1 1 0 1 1 0 13 1 1 1 1 0 0 14 0 1 1 0 0 1 15 1 0 1 1 0 1 16 1 0 1 1 1 1 17 1 1 1 0 0 0 08 1 1 1 1 1 1 19 1 1 1 1 0 1 1

A 1 1 1 0 1 1 1B 1 0 1 1 1 1 1C 1 0 0 1 1 1 0D 0 1 1 1 1 0 1E 1 0 0 1 1 1 1F 1 0 0 0 1 1 1

Tabella 1.3: Codice a se e segmenti

a posto, se ne cambia più d’uno per volta c’è stato un errore. Il codice è circolare, cioè la proprietàdella modifica di un solo bit esiste anche tra l’ultima configurazione in tabella e la prima.

Codice ASCII. L’American Standard Code for Information Interchange (ASCII) è una codifica me-diante 7 bit che utilizziamo tu e le volte che scriviamo un testo al computer: tramite esso sonodefiniti 27 = 128 comandi, alcuni obsoleti di gestione del computer (si usavano ai tempi del DOS),altri che codificano i cara eri alfanumerici e alcuni simboli. Per questo è utilizzato nelle tastiereed è memorizzato nei supporti magnetici.

26 25 24︸ ︷︷ ︸peso forte

23 22 21 20︸ ︷︷ ︸peso debole

1.2.2 Trasmissione dei segnali

La trasmissione dei segnali può essere classificata in base al numero di comunicazioni contem-poranee.

Definizione 1.4 (Trasmissione in parallelo). Tu i i segnali sono trasmessi in contemporanea, cia-scuno ha un proprio canale dedicato.

Definizione 1.5 (Trasmissione in serie). Tu i i segnali condividono lo stesso canale trasmissivo,quindi la trasmissione è basata sull’alternanza dei segnali nell’uso del mezzo.

Definizione 1.6 (Trasmissione in serie-parallelo). I mezzi sono più di uno ma in numero minorerispe o ai segnali, quindi c’è condivisione dei mezzi ma velocità di trasmissione superiore al casoin serie.

In figura 1.2 è illustrato il caso di una trasmissione a o o segnali e i tempi necessari se essa èoperata in serie o in parallelo.

18 1 - Reti logiche

Page 19: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Gray a 2 bit

Dec B1 B0

0 0 01 0 12 1 13 1 0

(b) Gray a 3 bit

Dec B2 B1 B0

0 0 0 01 0 0 12 0 1 13 0 1 04 1 1 05 1 1 16 1 0 17 1 0 0

(c) Gray a 4 bit

Dec B3 B2 B1 B0

0 0 0 0 01 0 0 0 12 0 0 1 13 0 0 1 04 0 1 1 05 0 1 1 16 0 1 0 17 0 1 0 08 1 1 0 09 1 1 0 110 1 1 1 111 1 1 1 012 1 0 1 013 1 0 1 114 1 0 0 115 1 0 0 0

Tabella 1.4: Codice Gray

Figura 1.2: Tipi di trasmissione in serie e parallelo

1.2 - Informazione e segnali 19

Page 20: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

1.3 Operazioni logiche. Algebra di BooleL’algebra di Boole è l’insieme delle regole che perme ono di analizzare proposizioni, rappre-

sentandole mediante simboli (funzioni logiche). Queste proposizioni sono formulate in modo daessere vere o false, secondo i principi della logica binaria.

Teorema 3 . Tu e le variabili, dipendenti o indipendenti, di un sistema logico binario hanno due soli valoripossibili: 0 (falso) e 1 (vero).

Gli operatori logici booleani sono elencati nella tabella 1.5. Accanto al simbolo schematico sonoriportate le notazioni matematiche, da utilizzare nelle espressioni.

Gate Simbolo Notazioni Denominazione

NOT x′ x ⌉x Negazione / Complemento

AND x · y xy x ∧ y x&y Prodo o logico

OR x + y x ∨ y Somma logica

NAND x ↑ y Prodo o logico negato

NOR x ↓ y Somma logica negata

EX-OR x ⊕ y Somma modulo 2

EX-NOR x ≡ y Equivalenza

Tabella 1.5: Operazioni logiche

1.3.1 Tabella di veritàIn logica, per esprimere i legami funzionali tra le variabili si usano le tabelle di verità. Esse

riportano tu i i possibili valori assunti dalle variabili indipendenti e, in corrispondenza di ciascunacombinazione, il valore assunto dalle variabili dipendenti.

Tabelle di verità degli operatori booleani. Le tabelle di verità degli operatori sono riportatenella tabella 1.6. Si nota facilmente come NAND, NOR ed EX-NOR siano la composizione del NOT congli altri tre operatori. Questo de aglio sarà poi definito in seguito.

Espressioni canoniche dell’EX-OR. L’EX-OR ha le seguenti espressioni canoniche:

a ⊕ b = ab + ab

= (a + b)(a + b

)Lo schema logico che realizza l’EX-OR è in figura 1.3.

Espressioni canoniche dell’EX-NOR. Le espressioni canoniche dell’EX-NOR si ricavano negandoquelle dell’EX-OR:

a ≡ b = ab + ab

Lo schema logico che realizza l’EX-NORè in figura 1.3.

20 1 - Reti logiche

Page 21: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) EX-OR (b) EX-NOR

Figura 1.3: Realizzazione a gate di EX-OR e EX-NOR

(a) NOT

x x

0 11 0

(b) AND

x y x · y

0 0 00 1 01 0 01 1 1

(c) OR

x y x + y

0 0 00 1 11 0 11 1 1

(d) NAND

x y x ↑ y

0 0 10 1 11 0 11 1 0

(e) NOR

x y x ↓ y

0 0 10 1 01 0 01 1 0

(f) EX-OR

x y x ⊕ y

0 0 00 1 11 0 11 1 0

(g) EX-NOR

x y x ≡ y

0 0 10 1 01 0 01 1 1

Tabella 1.6: Tabelle di verità degli operatori binari

Condizione di indifferenza. Un circuito presenta in uscita una condizione di indifferenza se:

• si richiede agli ingressi una prestazione fisicamente impossibile (per esempio: premere iltasto 12 in una tastiera a 10 tasti);

• si presenta agli ingressi una condizione logicamente impossibile (per esempio: serbatoiocontemporaneamente pieno e vuoto).

Le condizioni di indifferenza si denotano con una X, oppure con un tra ino (–) o una barre a (/)e servono per minimizzare il circuito. Per questo motivo, è importante includerle sia nelle tabelledi verità, sia nelle mappe di Karnaugh (sezione 2.2).

1.3.2 Analisi e sintesiVisto il significato della tabella di verità, è necessario capire come operare con le porte logiche.

Prima di tu o bisogna:

• scegliere le funzioni da descrivere (operazione);

• individuare le porte logiche;

• stabilire le regole di composizione delle operazioni;

• definire la relazione tra formula e schema.

I de agli su questo procedimento sono nei paragrafi successivi.

Definizione 1.7 (Sintesi). Il processo di sintesi parte dalla tabella di verità per dedurre una formulae, da questa, uno schema logico.

1.3 - Operazioni logiche. Algebra di Boole 21

Page 22: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Definizione 1.8 (Analisi). Il processo di analisi parte dallo schema logico per dedurre una formulae, da questa, una tabella di verità.

1.3.3 Proprietà degli operatori e teoremi di equivalenzaConsiderando i bit x, y, . . . , si possono definire una serie di proprietà e alcuni teoremi. Alcuni

sono già noti, altri di dire a derivazione logica e matematica, altri ancora si dimostrano per viaalgebrica.

Teorema 4 (di unicità). Una espressione logica descrive una sola funzione booleana completa.

Definizione 1.9 . Ogni espressione descrive uno schema logico, con gate in serie e/o parallelo.

Teorema 5 (di dualità). Data un’espressione algebrica che risulti verificata, scambiando AND con OR (e vi-ceversa) e 0 con 1 (e viceversa) si o iene una seconda diversa espressione algebrica, che risulta pure verificataed equivalente alla prima. Le due espressioni sono duali.

Nota 1.3.1 – Nel seguito di questo manuale sono enunciati teoremi o definizioni in forma doppia e distinta, ma similare.Si tratta di casi di dualità, esplicitati per comodità di comprensione, anche se non sarebbe necessaria la ripetizione. Comeregola generale è riportata solo la forma principale (facente capo a somme di prodotti), considerando la duale sottintesasalvo diversa indicazione.

Definizione 1.10 . Per completezza, date le porte logiche AND, OR, EX-OR, sono definiti gli operatoriinversi che derivano dalla serie delle stesse con una porta NOT:

NOR = OR

NAND = AND

EX-NOR = EX-OR

Teorema 6 . Tu i gli operatori booleani sono commutativi.

Teorema 7 . I soli operatori AND, OR ed EX-OR sono associativi.

Definizione 1.11 (Proprietà distributiva). AND e OR godonodella proprietà distribuitiva, uno rispe oall’altro e viceversa:

(x · y) + (x · z) = x · (y + z) e (x + y) · (x + z) = x + (y · z)

Definizione 1.12 (Elementi neutri). L’elemento neutro per l’AND è 1 (x · 1 = x), per l’OR è 0 (x + 0 =x).

Definizione 1.13 (Elementi preponderanti). L’elemento assorbente per l’AND è 0 (x · 0 = 0), per l’OR è1 (x + 1 = 1).

Definizione 1.14 (Involuzione). Due negazioni affermano: ¯x = x.

22 1 - Reti logiche

Page 23: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Definizione 1.15 (Idempotenza). Poiché si tra a di operazioni a un solo bit, anche il risultato saràa un solo bit. Se si fa l’AND o l’OR di un bit rispe o a se stesso, il risultato è il bit stesso (cfr. tabelledi verità 1.5(b) e 1.5(c)):

x + x = x e x · x = x

Definizione 1.16 (Limitazione). Per le cara eristiche binarie2:

x · x = 0 e x + x = 1

Definizione 1.17 (Combinazione). Dalla definizione di limitazione:

xy + xy = x

Dimostrazione. Raccogliendo e applicando la definizione:

xy + xy = x · (y + y) == x · 1 =

= x

Teorema 8 (Primo t. dell’assorbimento). Vale la relazione: x + xy = x.

Dimostrazione. Utilizzando le proprietà delle operazioni:

a + ab = a · (1 + b)= a · 1= a

Èanchepossibile dimostrare visivamente l’uguaglianza usandoundiagrammadiVenn(figura 1.4).

Figura 1.4: Diagramma di Venn del teorema dell’assorbimento (I)

Teorema 9 (Secondo t. dell’assorbimento). Vale la relazione: x + xy = x + y.

Dimostrazione. Per dimostrare agilmente il teorema è necessario utilizzare le mappe diKarnaugh (sezione 2.2). La dimostrazione è riportata a pagina 46.

Teorema 10 (Terzo t. dell’assorbimento). Vale la relazione:

xy + xz + yz = xy + xz2Tra andosi della stessa variabile in forma vera e falsa, si tra a sempre di moltiplicare (o sommare) un 1 per uno 0,

visto che x vale 1 oppure 0. Allora 1 · 0 = 0 e 1 + 0 = 1.

1.3 - Operazioni logiche. Algebra di Boole 23

Page 24: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Dimostrazione. Anche per dimostrare questo teorema è necessario utilizzare le mappedi Karnaugh (sezione 2.2). La dimostrazione è riportata a pagina 46.

Teorema 11 (Primo t. di De Morgan). Il negato di un prodo o logico equivale alla somma dei negati deisingoli fa ori:

x · y · z · . . . = x + y + z + . . .

Teorema 12 (Secondo t. di De Morgan). Il negato di una somma logica equivale al prodo o dei negatidei singoli addendi:

x + y + z + . . . = x · y · z · . . .

Corollario 13 (Espressione unica dei teoremi di De Morgan). Dopo aver legato i termini della fun-zione con un’unica operazione logica (o soli AND, o soli OR), si nega tu a la funzione; quindi si cambial’operazione logica che lega i termini (AND con OR, o viceversa) e si spezza la negazione complessiva in tantesingole negazioni sui singoli termini.

Teorema 14 (del consenso). Si può semplificare una somma logica di tre termini riconoscendo che uno diessi è ridondante:

xy + xz + yz = xy + xz

Corollario 15 (Forma duale del teorema del consenso). Si può semplificare un prodo o logico di tresomme logiche riconoscendo che una di esse è ridondante:

(x + y) · (x + z) · (y + z) = (x + y) · (x + z)

Esercizio 1.b

Valutare le espressioni (x ↓ y) ↑ z e (x + y) + z per ogni configurazione dei bit x, y, z. Confrontare, altermine, le due tabelle di verità.

Valutare per ogni configurazione significa costruire una tabella con 2n righe, in cui n è il numero di variabili(nel nostro caso 3). Tutte le righe, nel complesso, devono coprire i valori numerici compresi tra 0 e 2n − 1:nel nostro caso i valori vanno tra 0 e 7 (in binario). Ci sono vari metodi per costruirla senza dimenticarevalori per strada, l’importante comunque è che siano tutti presenti.Per ogni riga (combinazione di ingresso) si calcola il valore della funzione assegnata, realizzata con operatoribinari. In questo caso, la soluzione è riportata in tabella 1.7. Si può notare, oltre che l’uguaglianza tra le duefunzioni, che si tratta della funzione OR tra le tre variabili (la seconda funzione è un OR palese). La primafunzione è un OR al quale è stato applicato il teorema di De Morgan:

(x + y) + z = (x + y) + z

= x + y · z

= (x ↓ y) · z= (x ↓ y) ↑ z

24 1 - Reti logiche

Page 25: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

x y z (x ↓ y) ↑ z (x + y) + z

0 0 0 1 ↑ 1 = 0 0+0=00 0 1 1 ↑ 0 = 1 0+1=10 1 0 0 ↑ 1 = 1 1+0=10 1 1 0 ↑ 0 = 1 1+1=11 0 0 0 ↑ 1 = 1 1+0=11 0 1 0 ↑ 0 = 1 1+1=11 1 0 0 ↑ 1 = 1 1+0=11 1 1 0 ↑ 0 = 1 1+1=1

Tabella 1.7: [Esercizio 1.b] Tabelle di verità (soluzione)

1.3.4 Forme canoniche

Definizione 1.18 (Somma di Prodo i (SP)). In ogni mintermine appare ogni variabile. Le variabiliappaiono in forma vera se valgono 1, in forma negata se valgono 0.

Definizione 1.19 (Prodo o di Somme (PS)). In ogni maxtermine appare ogni variabile. Le variabiliappaiono in forma vera se valgono 0, in forma negata se valgono 1.

Le notazioni simboliche relative alle forme canoniche sono in tabella 1.8.

i identificativo della configurazione binaria, su tabella di veritàm(i) mintermine che vale 1 per la configurazione iM(i) maxtermine che vale 0 per la configurazione i

∑n m(i) somma di mintermini, in n variabili∏n M(i) somma di maxtermini, in n variabili

Tabella 1.8: Notazioni simboliche delle configurazioni binarie

1.3.5 Espressioni generali

Teorema 16 (di espansione di Shannon). Data un’espressione in n variabili E(x1, . . . , xn), si puòestrarre una qualunque variabile di E:

E(x1, . . . , xn) = xn · E(x1, . . . , 0) + xn · E(x1, . . . , 1) (primo t. di espansione)E(x1, . . . , xn) = [xn + E(x1, . . . , 0)] + [xn + E(x1, . . . , 1)] (secondo t. di espansione)

Nota 1.3.2 – Il primo teorema di espansione indica che ogni funzione in m variabili si può realizzare con un MUX, conn − 1 bit di indirizzo.

Definizione 1.20 (Espressione generale SP). Applicando n volte il primo teorema di espansione diShannon si o iene una somma logica di tu i i mintermini. Ogni mintermine è moltiplicato col valoredella funzione per la quale esso vale 1:

F(x1, . . . , xn) =2n−1

∑i=0

m(i) · F(i)

1.3 - Operazioni logiche. Algebra di Boole 25

Page 26: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Definizione 1.21 (Espressione generale PS). Applicando n volte il secondo teorema di espansionedi Shannon si o iene un prodo o logico di tu i i maxtermini. Ogni maxtermine è sommato al valoredella funzione per la quale esso vale 0:

F(x1, . . . , xn) =2n−1

∏i=0

(M(i) + F(i))

Nota 1.3.3 – L’espressione generale Somma di Prodotti (SP) si realizza con un MUX, avente n bit d’indirizzo (variabiliindipendenti) e 2n vie d’ingresso (valore della funzione per la configurazione binaria che la seleziona).

Esercizio 1.c

Quanti e quali mintermini ha la funzione F(A, B, C, D) = D(C + B)? Perché è utile calcolarla quando isegnali D, C, B, A trasportano configurazioni del codice BCD (nel quale A è il bit di minor peso)?

Si compila la tabella 1.9 calcolando la funzione F per ogni combinazione delle quattro variabili. Si nota cheF = 1 in corrispondenza delle combinazioni proibite per la codifica BCD. Si tratta, perciò, di una funzione diverifica della correttezza del codice BCD, senza possibilità di correzione dell’errore.

D C B A F = D(C + B) BCD

0 0 0 0 0 00 0 0 1 0 10 0 1 0 0 20 0 1 1 0 30 1 0 0 0 40 1 0 1 0 50 1 1 0 0 60 1 1 1 0 71 0 0 0 0 81 0 0 1 0 91 0 1 0 1 X1 0 1 1 1 X1 1 0 0 1 X1 1 0 1 1 X1 1 1 0 1 X1 1 1 1 1 X

Tabella 1.9: [Esercizio 1.c] Tabella di verità (soluzione)

1.4 Modelli

Tu e le reti logiche sono riconducibili a modelli, più o meno complessi, dei quali ricalcano lecara eristiche fondamentali.

26 1 - Reti logiche

Page 27: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

1.4.1 Tempo di propagazione e transitori

Il ritardo di propagazione dei gate causa problemi nel funzionamento e limita la massimavelocità di elaborazione.

Definizione 1.22 (Transitorio). Fase di funzionamento della macchina durante la quale gli ingressimodificano il proprio valore e la rete ricalcola il valore delle uscite.

Definizione 1.23 (Regime). Fase di funzionamento dellamacchina durante la quale gli ingressi sonocostanti e l’uscita si è stabilizzata sul valore previsto per quella configurazione degli ingressi.

La risposta di un dispositivo alla modifica degli ingressi non avviene in modo istantaneo. Disolito, i ritardi sono diversi quando il segnale cambia stato con un fronte di salita (tempo τLH) equando lo fa su un fronte di discesa (tempo τHL).

La durata del transitorio non è costante, perché dipende dal percorso del segnale lungo i ga-te. Una rete logica complessa ha percorsi interni di lunghezza diversa, dagli ingressi alle uscite.Questa mancanza di uniformità complica il metodo per determinare il ritardo di propagazioneall’interno della rete (figura 1.5(a)). Per calcolare il ritardo di una rete logica in modo facile, senzacomplicazioni e stando dalla parte del sicuro, di solito si usa il metodo del caso peggiore: si trovail percorso di lunghezza maggiore (figura 1.5(b)), si sommano i ritardi τ dei singoli gate su questopercorso e si definisce tale ritardo come quello dell’intera rete (figura 1.5(c)).

(a) Lunghezza dei percorsi di ritardo a raverso cascate diporte logiche

(b) Scelta del caso peggiore (c) Ritardo totale della cascata di porte logiche

Figura 1.5: Definizione del ritardo totale di una rete logica

Si può modellare una porta logica reale come cascata di un gate ideale (con uscita Z) e di unblocco di ritardo di propagazione tp, con uscita complessiva z(t) (figura 1.6):

Z = F(x1, . . . , xn)

z(t) = Z(t − tp)

Ci sono due modelli di ritardo.

1.4 - Modelli 27

Page 28: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

gateritardo di

propagazioneZ z

tp

x1

x2

…x

n

Figura 1.6: Schema a blocchi di una porta logica reale

Definizione 1.24 (Ritardo puro). Traslazione rigida nel tempo del segnale di uscita, di una quantitàtp, per cui z(t + tp) = Z(t) (figura 1.7(a)).

Definizione 1.25 (Ritardo inerziale). Impulsi di durata inferiore a tp (glitch) si manifestano sull’u-scita Z del gate ideale, senza causare effe i sull’uscita z(t) del dispositivo reale (figura 1.7(b)).

(a) Ritardo puro (b) Ritardo inerziale

Figura 1.7: Ritardo puro e ritardo inerziale

Per evitare comportamenti indesiderati, il segnale in ingresso al gate devemantenere il propriovalore per un tempo superiore a tp.

Durante il transitorio, l’uscita può comportarsi in tre modi differenti: può essere sogge a aritardo puro o soffrire di alea statica o dinamica.

Definizione 1.26 (Ritardo puro). Situazione in cui l’uscita cambia valore al termine del transitorio,mentre durante il transitorio mantiene il vecchio valore (figura 1.8(a)).

Definizione 1.27 (Alea). Situazione in cui l’ingresso può a ivare percorsi con differenti tempi dipropagazione in modo imprevedibile, quando si presentano variazioni di più segnali d’ingressonello stesso istante di tempo.

Definizione 1.28 (Alea statica). Situazione in cui l’uscita assume per qualche istante un altro valore,mentre invece dovrebbe rimanere costante (figura 1.8(b)).

Definizione 1.29 (Alea dinamica). Situazione in cui l’uscita varia più volte prima di assestarsi sulvalore finale (figura 1.8(c)).

Un esempio di comportamento dell’alea statica è visibile sulla porta logica OR (figura 1.9): quan-do gli ingressi cambiano valore nello stesso istante, sulla porta reale si a iva per primo l’ingresso

28 1 - Reti logiche

Page 29: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Ritardo puro (b) Alea statica (c) Alea dinamica

Figura 1.8: Ritardo puro, alea statica e alea dinamica

con meno ritardo di propagazione, causando un glitch sull’uscita prima che la vera uscita stabilesia disponibile.

Il compito del proge ista è decidere quando è acce abile una situazione del genere. Si possonoproge are macchine che evitino di avere modifiche istantanee di più ingressi oppure macchinea stati che rendano stabili particolari situazioni critiche. Alcuni casi, invece, sono da evitare inassoluto: per esempio, non deve esserci mai glitch su una rete combinatoria che aggiorna lo statodi una rete asincrona, altrimenti si finisce per rendere stabile uno stato interno errato.

(a) Transizione 10–11–01 (b) Transizione 10–00–01

Figura 1.9: Conseguenze dell’alea statica su una porta OR

1.4.2 Macchina combinatoriaDefinizione 1.30 (Macchina combinatoria). Una macchina combinatoria propone in uscita un ri-sultato che è funzione istantanea dei valori presenti sugli ingressi.

La macchina combinatoria reale soffre del ritardo di propagazione dall’ingresso verso l’uscita:bisogna a endere un certo tempo tra il comando e la risposta. Gli ingressi della macchina combi-natoria devono essere mantenuti costanti per un tempo superiore a entrambi i ritardi dovuti allanatura reale della stessa:

• τp: ritardo di presentazione del risultato in uscita;

• τu: ritardo di acquisizione dell’uscita da parte degli stadi successivi.

1.4 - Modelli 29

Page 30: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Se due simboli successivi sono emessi agli istanti tn e tn+1, vale allora la relazione:

tn+1 − tn ≥ τp + τu

La situazione appena descri a è in figura 1.10(a). Per continuare a utilizzare la macchina com-binatoria nella versione ideale, si può associarla a uno stadio di ritardo τp posto alla sua uscita(figura 1.10(b)).

Definizione 1.31 (Throughput). Ritmo massimo di funzionamento dovuto agli effe i della propa-gazione dei segnali all’interno della macchina combinatoria reale.

(a) Ritardi sull’uscita (b) Schema ideale con ritardo in cascata

Figura 1.10: Macchina combinatoria reale

L’ingresso deve essere mantenuto per un tempo maggiore di τp + τn. Oltre al tempo di propa-gazione, nella formula compare τn, che è il ritardo di acquisizione.

1.4.3 Macchine sequenzialiDefinizione 1.32 (Macchina sequenziale). Una macchina sequenziale ha l’uscita che dipende siadagli ingressi presenti, sia dalla sequenza di quelli passati. La funzione di memoria dello statopuò essere assunta da un ritardo, posizionato in un ramo di retroazione tra uscite e ingressi dellemacchine combinatorie che calcolano la funzione d’uscita.

Le macchine sequenziali si distinguono in due categorie:

macchina asincrona: a un simbolo in ingresso corrisponde un simbolo in uscita;

macchina sincrona: a un simbolo in ingresso corrisponde una sequenza cronologica di simboli inuscita.

La macchina sequenziale asincrona (figura 1.11(a)) è abilitata a leggere i segnali in ingresso inogni istante, non appena essi simanifestano.Alla velocità di esecuzione si contrappone il problemadella corsa critica: se due segnali in ingresso cambiano nello stesso istante, per motivi fisici unosarà recepito prima dell’altro, seppur per differenze temporali microscopiche. Questa differenza èsufficiente a stabilire l’incertezza sul risultato finale, perché se sarà le o prima un ingresso si avràun risultato,mentre se sarà le o prima l’altro ingresso il risultato cambia (per la natura sequenzialedella macchina). Questo inconveniente può essere risolto con la modifica di solo un segnale pervolta in ingresso (via poco praticata) o, più spesso, ado ando una macchina sincrona.

Il processo interno della macchina asincrona avviene con ritardo, a raverso passaggi di statosecondo lo schema cronologico in figura 1.12. La legenda delle variabili utilizzate è riportata intabella 1.10.

Per correggere il problema della macchina asincrona si inserisce il clock a scandire gli ingressi:la le ura è effe uata solo in corrispondenza di un fronte del clock. In questo modo, durante i pe-riodi di non le ura arrivano tu i i segnali, anche in ordine casuale e non allo stesso istante; quando

30 1 - Reti logiche

Page 31: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Macchina asincrona (b) Macchina sincrona

Figura 1.11: Macchine sequenziali

Figura 1.12: Tempistica della macchina asincrona

t istante di cambiamento dell’ingresso (i1 → i2)α stato stabile presenteβ stato futuro (dovuto a i2)u1 simbolo di uscita (prima di t)u2 simbolo di uscita futuro

F, G macchine combinatorie

Tabella 1.10: Grandezze cara eristiche della macchina asincrona

1.4 - Modelli 31

Page 32: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

il clock lo consente, gli ingressi sono le i tu i contemporaneamente e si ha l’interpretazione cor-re a. Il clock funzione come una sbarra che, quando abbassata, blocca tu i i segnali; quando sialza, gli ingressi partono tu i assieme, e allo stesso modo li interpreta la macchina. Eventuali statiintermedi (provocati dall’arrivo prima di un segnale piu osto che di un altro) non sono rilevati.Questa modifica è alla base della macchina sincrona (figura 1.11(b)).

I simboli di ingresso sono modificati solo in corrispondenza degli istanti di sincronismo tn. Ivari tn distano tra loro un tempo T0, prefissato. Durante gli intervalli T0 si ha una situazione in cuiingresso, stato e uscita sono costanti. Per distinguere gli intervalli si usa una notazione in apice:per esempio, lo stato in due istanti successivi si identifica come sn (stato corrente) e sn+1 (statofuturo). Le relazioni tra ingressi e uscite sono riportate in tabella 1.11.

F, G macchine combinatorietn istante di sincronismoi ingresso della macchina sequenziale

s∗ uscita di Gsn ingresso a uale di F, G (nell’istante n)

sn+1 = s∗n = G(sn, in) ingresso futuro di F, G (nell’istante n + 1)un = F(sn, in) simbolo di uscita della macchina F

Tabella 1.11: Grandezze cara eristiche della macchina sincrona

Il ritardo nella macchina sequenziale. Lo strumento per memorizzare i dati all’interno del-la macchina sequenziale è il flip-flop, oppure il registro composto da una sequenza di flip-flop.Questi strumenti perme ono di mantenere il dato fino alla transizione di stato successiva, quindiimplicitamente introducono il ritardo desiderato per il funzionamento della macchina.

1.5 Strumenti di analisi e sintesi

Due strumenti sonomolto utilizzati, in coppia, nello studio delle macchine ad automi: la tabelladi flusso e il diagramma degli stati. Entrambi saranno approfonditi con l’uso, nei capitoli seguenti.

Tabella di flusso. Si tra a di una tabella vera e propria, con righe e colonne. Sulle colonne sonoriportati i simboli dell’alfabeto di ingresso (cioè tu e le possibili combinazioni dei valori), mentresulle righe sono indicati gli stati della macchina.Ogni casella indica cosa succede allo stato corrispondente (cioè lo stato presente) quando vienea ivato l’ingresso indicato nell’intestazione di colonna. La casella rimanda allo stato futuro che siraggiunge con quegli ingressi assieme all’uscita proposta allo stesso momento (modello di Mealy).Se, invece, a ogni stato corrisponde un’uscita specifica, non è necessario riportarla in ogni casellaperché è sufficiente scrivere solo lo stato futuro (modello di Moore).

Diagramma degli stati. Si tra a di un grafo in cui ogni nodo rappresenta uno stato, mentre sulramo è riportata la transizione da uno stato al successivo.In ogni nodo devono entrare tanti rami quanti ne escono. Il numero di rami in uscita da un nodoè pari al numero di combinazioni di valori possibili per le variabili di ingresso.Ogni ramo descrive una transizione tra due stati. Se il ramo si richiude sullo stato da cui origina,rappresenta una stabilità di quello stato.Il grafo di un automa soddisfacente non deve avere uno stato di partenza e uno di fine, ma deveessere stre amente connesso per poter funzionare all’infinito nel tempo. Con qualsiasi combina-zione degli ingressi ci deve essere una transizione da uno stato a un altro stato.

32 1 - Reti logiche

Page 33: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Definizione 1.33 (Automa minimo). Tra le infinite possibili descrizioni di un automa tramite mac-china a stati, l’automa minimo è quello che ha il minor numero di stati.

Il grafo deriva dire amente dalla tabella di flusso, proponendosi come alternativa visuale mi-gliore per evidenziare i passaggi di stato. La tabella di flusso, al contrario, dispone le informazioniin modo razionale ed è più utile per effe uare certi tipi di calcoli di sintesi. Per questo, a secondache la tabella di flusso segua il modello di Mealy o di Moore, ci sono due tipi di grafo.

(a) Diagramma di Mealy (b) Diagramma di Moore

Figura 1.13: Tipi di diagrammi degli stati

Grafo degli stati di Mealy Nel modello secondo Mealy ogni stato non coincide necessariamen-te con un’uscita. La transizione da uno stato all’altro, dunque, si cara erizza con gli ingressi chela provocano e le uscite conseguenti: questi due dati vanno riportati sul ramo della transizione,separati da una virgola o da una barra (figura 1.13(a)).Se l’uscita cambia valore nel passaggio da uno stato stabile all’altro e questa situazione non è vieta-ta dalle specifiche del proge o, bisogna inserire una condizione d’indifferenza sull’uscita in quellatransizione. Al contrario, se l’uscita non varia valori tra due stati stabili, è errato inserire delle con-dizioni d’indifferenza.Il modello di Mealy è molto frequente perché svincola gli stati dall’avere un’uscita fissa corrispon-dente. Sarà dunque molto ricorrente negli esercizi che saranno proposti.

Grafo degli stati di Moore Seguendo il modello di Moore, le uscite sono funzioni delle com-binazioni delle variabili interne nello stato corrente. In altre parole, a ogni stato corrisponde unasola uscita fissa. Ciò significa che le transizioni sono individuate dai soli simboli di ingresso chela provocano, mentre all’interno del nodo oltre a indicare il nome dello stato va segnato il valoredelle uscite, separate con una virgola o una barra, oppure tra parentesi (figura 1.13(b)).

Definizione 1.34 (Grafo primitivo). Un grafo è primitivo se ogni modifica di ingresso produce unamodifica di stato. Ogni nodo è stabile per una sola condizione d’ingresso.

Si può far sì che, al variare di un ingresso, lo stato resti costante e cambi la sola uscita. Questometodo riduce il numero di stati e, talvolta, il numero di retroazioni. Si o iene così un grafo nonprimitivo.

Definizione 1.35 (Grafo non primitivo). Un grafo è non primitivo se ha meno stati di quello primi-tivo e si rimane nello stesso stato per più ingressi.

Un procedimento è a uabile a stati equivalenti, sulla tabella di flusso.

Lemma 17 . Due o più righe della tabella di flusso possono essere compresse in una unica se, per ogniingresso, esse hanno identici simboli di stato futuro e di uscita (a meno di condizioni di indifferenza).

1.5 - Strumenti di analisi e sintesi 33

Page 34: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 1.d

Un editor riceve in ingresso, uno dopo l’altro, i caratteri di una stringa. Di norma li deve riprodurre imme-diatamente sull’uscita; l’unica eccezione è l’occorrenza, in ingresso, della sequenza RETE, che deve esseresostituita in uscita dalla sequenza RETI. Ai fini dell’elaborazione richiesta si adotti, in ingresso ed in uscita,l’alfabeto {E,R,T,*}, in cui * rappresenta ogni carattere diverso da E, R oppure T.Impiegando il modello di Mealy, completare il grafo (figura 1.14(a)) e tracciare la corrispondente tabelladi flusso.Individuare un automa di Mealy equivalente al precedente, ma dotato di soli quattro stati interni(figura 1.14(b)).

(a) Grafo di Mealy (b) Grafo rido o

Figura 1.14: [Esercizio 1.d] Diagrammi degli stati da completare

Si tratta, individuata la parola RETE, di sostituirne in uscita l’ultima E con una I. Come primo passo varilevato, sull’ingresso, ogni singola lettera, nell’ordine; quando è individuata, la si propone in uscita. Quando,dopo aver trovato R, E, T nell’ordine, arriva una E, in uscita si propone I.Chiamiamo lo stato più a sinistra S0, e gli altri da S1 a S4 nell’ordine. La stabilità riportata indica che, perogni carattere diverso da R, il riconoscitore non svolge attività perché non interessato. Quando arriva R, sipassa a S1 emettendo in uscita R.Da S1 si passa a S2 quando arriva una E. Se arriva ancora una R rimaniamo qua (perché, per ogni nuovaR, la precedente è inutile, ma la nuova potrebbe essere l’inizio di una nuova parola RETE). Se arriva unaqualsiasi altra lettera, torniamo a S0 perché la parola RETE non è formabile.Da S2 si passa a S3 (emettendo T) quando arriva T in ingresso. Se arriva una R, si torna a S1 (è il casoprecedente; vale anche per S3), mentre con altre lettere si torna a S0 (idem). Il passaggio da S3 a S4 èanalogo, con la differenza che se S3 rileva in ingresso E va in S4 emettendo non E, bensì I.Una volta in S4 vi resteremo con qualunque simbolo, fuorché R che ci riporterà ad S1 per iniziare una nuova(eventuale) lettura della parola RETE. La soluzione è il grafo in figura 1.15(a).Poiché lo stato S4 e lo stato S0 si equivalgono completamente (per qualsiasi configurazione d’ingresso siottiene la stessa sequenza degli stati), si può eliminare lo stato S4. La transizione avviene da S3 a S0 siaquando trova la E finale (in uscita ci sarà I), sia quando trova un altro carattere (che emetterà in uscita,ricominciando daccapo il tentativo di rintracciamento di RETE). La soluzione è il grafo in figura 1.15(b).La tabella di flusso si ricava dalle transizioni, con relative uscite, del grafo ridotto (figura 1.15(c)).

Esercizio 1.e

Bisogna automatizzare l’apertura e la chiusura di una porta sulla base delle seguenti specifiche:• la porta deve essere di norma tenuta chiusa;• il valore 1 di un sensore P, che rileva la presenza di una persona sulla soglia, determina o un

movimento di apertura o il mantenimento di porta completamente aperta.

34 1 - Reti logiche

Page 35: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Diagramma degli stati (b) Diagramma degli stati rido o

(c) Tabella di flusso

Figura 1.15: [Esercizio 1.d] (soluzione)

Un attuatore idraulico consente di muovere la porta (figura 1.16): il comando a = 1 la apre ed il comandoc = 1 la chiude. I due comandi devono essere attivi solo durante il movimento della porta ed uno soloalla volta. Il sensore A individua se la porta è aperta del tutto (A = 1) oppure no (A = 0). Il sensore Cindividua se la porta è chiusa del tutto (C = 1) oppure no (C = 0).Decidete di realizzare il controllo della porta con una macchina combinatoria.Tabulare la relazione ingresso/uscita. Quali configurazioni d’ingresso sono impossibili?Nel precedente progetto riscontrate un comportamento indesiderato ogniqualvolta la porta comincia adaprirsi e la persona avanza subito per entrare. Cosa succede? Quale frase deve essere aggiunta alla specificaper eliminare il comportamento indesiderato?Come è fatto il grafo degli stati?Come è fatta la tabella di flusso?

Figura 1.16: [Esercizio 1.e] Porta automatica

La tabella di verità della macchina combinatoria che opera il movimento della porta automatica è in tabel-la 1.12. Le configurazioni con A = C = 1 sono impossibili, perché segnalano la porta aperta e chiusa allostesso momento.Una situazione indesiderata avviene per A = C = P = 0: la porta è né del tutto aperta né del tutto chiusa,con assenza di persona alla soglia, per cui viene comandata la chiusura. I valori di A e C non lascianocapire se la porta si sta aprendo o chiudendo, per cui si può solo supporre quale sarà il comportamento. Perconsiderare lo stato passato della porta bisogna progettare una macchina sequenziale asincrona a due stati.La nuova specifica deve essere del tipo ”Se la porta è in fase di apertura, essa deve continuare ad aprirsi del

1.5 - Strumenti di analisi e sintesi 35

Page 36: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

tutto, indipendentemente dal valore rilevato dal sensore P”.Il grafo degli stati e la relativa tabella di flusso sono in figura 1.17. Nel grafo si distinguono due stati: unostato A di apertura della porta e uno stato B di chiusura.

• Di norma, l’automa è stabile in A (porta chiusa).• Quando una persona è alla soglia (P = 1), l’automa comanda a = 1 per aprire la porta ma resta nello

stato A (A = C = 0). Passa allo stato B solo quando la porta è completamente aperta (A = 1): seci sono presenze non comanda nulla, mentre se non rileva presenze comanda la chiusura (c = 1).

• L’automa resta in stato B finché la porta deve restare aperta (perché è presente una persona allasoglia, cioè P = 1) e quando la porta è aperta ma non ci sono persone da far passare (è ancora A = 1ma P = 0, quindi diventa c = 1).

• L’automa resta ancora in B quando la porta è a mezza via in fase di chiusura (A = C = P = 0 ec = 1).

• L’automa passa allo stato A quando una nuova persona si presenta alla soglia durante la chiusura,cioè mentre A = C = 0 (interrompe la chiusura e comanda l’apertura con a = 1).

• L’automa passa allo stato A quando la chiusura è completa (C = 1) e non deve essere aperta perassenza di persone, perché A è lo stato stabile per la porta chiusa.

È controversa la situazione dello stato B con gli ingressi A = 0, C = 1 e P = 1. Questa combinazione degliingressi è propria della porta chiusa con persona che si presenta alla soglia. Poiché la transizione B → Aavviene quando C = 1, è improbabile che proprio in quell’istante avvenga anche P = 1. Anche nel casoaccadesse, tuttavia, lo stato di destinazione sarebbe sempre A, dove esiste una configurazione stabile 011, 10che comanda l’inizio dell’apertura della porta (e in questo rispetta la specifica). Ha senso ignorare questatransizione, lasciando che sia il primo segnale che arriva (tra C = 1 e P = 1) a decidere in che modoimpostare l’uscita a durante la transizione verso A.

A C P a c Situazione

0 0 0 0 1 (Situazione indesiderata)0 0 1 1 0 Porta a metà, da aprire per presenza0 1 0 0 0 Porta chiusa, da mantenere chiusa per non presenza0 1 1 1 0 Porta chiusa, da aprire per presenza1 0 0 0 1 Porta aperta, da chiudere per non presenza1 0 1 0 0 Porta aperta, da mantenere aperta per presenza1 1 0 X X Porta sia aperta sia chiusa (impossibile)1 1 1 X X Porta sia aperta sia chiusa (impossibile)

Tabella 1.12: [Esercizio 1.e] Tabella di verità (soluzione)

Figura 1.17: [Esercizio 1.e] Grafo degli stati e tabella di flusso (soluzione)

36 1 - Reti logiche

Page 37: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 1.f

Una carreggiata di una strada a due direzioni di marcia è interrotta per lavori in corso ed è necessarioutilizzare l’altra a senso alternato. A tal fine vengono installati (figura 1.18(a)):

• due semafori, ciascuno con due lampade V, R e un segnale di comando S (S = 1 comanda il verde,S = 0 comanda il rosso);

• due rilevatori di presenza automobile, che forniscono due segnali sincroni X1 e X2 (il valore 1 indicache nel precedente intervallo T0 è stata rilevata almeno un’automobile);

• una macchina sincrona M azionata dallo stesso clock dei rilevatori ed incaricata di generare i valoridi S1, S2 esaminando i valori assunti da X1, X2 in ogni intervallo elementare.

Comportamento di M:• in assenza di auto, entrambi i semafori devono avere il rosso acceso;• se nell’intervallo successivo c’è un solo sensore a 1, il verde deve apparire solo sul semaforo davanti

a cui è ferma l’auto;• se le auto in attesa sono due, il verde deve essere dato alla direzione di marcia che da più tempo

non lo ha avuto;• una situazione di verde deve essere mantenuta negli intervalli successivi solo se c’è un’altra auto

che vuole procedere nello stesso senso e a patto che non ce ne sia una che vuole procedere insenso opposto; in quest’ultimo caso deve essere dato il rosso su entrambe le direzioni per un temposufficiente a garantire che anche l’ultima auto entrata nel tratto a senso unico possa uscirne senzaincrociare traffico nella direzione opposta.

Il tratto a senso unico è lungo 500 metri e la prescritta velocità di percorrenza è di 30 km/h. Quanti minutideve durare il rosso su entrambe le direzioni, per garantire lo smaltimento del traffico in corso sul tratto asenso alternato?Assumendo tale durata come periodo del clock, tracciare il grafo degli stati e la tabella di flusso.

(a) Situazione iniziale del sistema (b) Grafo degli stati (soluzione)

Figura 1.18: [Esercizio 1.f] Semaforo per senso unico alternato

1.5 - Strumenti di analisi e sintesi 37

Page 38: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Il tempo che serve a percorrere il tratto alla velocità imposta è pari a un minuto:

T0 =0, 5 km

30 km/h=

160

h = 1 min

Il grafo degli stati è in figura 1.18(b). In esso sono evidenziate le transizioni che portano verso ai due stati cheautorizzano il transito (B per il transito da sinistra, D per il transito da destra). Il grafo è simmetrico, perchéil comportamento deve essere equivalente per il transito da entrambe le direzioni. Gli stati A e C servonoper tenere memoria dell’ultima auto passata e della direzione di provenienza, per autorizzare il transito dallaparte opposta come da specifica.La tabella di flusso 1.13 si ottiene inserendo i dati nel grafo in corrispondenza delle variabili di statodell’automa.

Sn+1, un+1 (X1X2)n = 00 (X1X2)

n = 01 (X1X2)n = 10 (X1X2)

n = 11

A A,00 D,01 B,10 D,01B A,00 A,00 B,10 A,00C C,00 D,01 B,10 B,10D C,00 D,01 C,00 C,00

Tabella 1.13: [Esercizio 1.f] Tabella di flusso (soluzione)

38 1 - Reti logiche

Page 39: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

CAPITOLO 2

Reti combinatorie

Insisti che esiste qualcosache una macchina non può fare.Quando mi dirai precisamente che cosa,allora potrò sempre realizzareuna macchina che faccia solo questo.

J N

SommarioIn questo capitolo si approfondiscono i metodi per lavorare sui circuiti logici, da applicare suicircuiti combinatori più semplici. Per far questo, si specificano le caratteristiche delle portelogiche che realizzano i comportamenti degli operatori binari. Nella seconda parte si studiano icircuiti combinatori a comportamento variabile, perché programmabili dal costruttore o dall’u-tenza, notando che si tratta di circuiti basati su porte logiche, pur se in numero molto maggioree con possibilità di impiego più estese.

2.1 Reti di costo minimo

Per o enere uno stesso risultato si possono utilizzare reti diverse. Tra queste, una sola è quellapiù efficente e più vantaggiosa dal punto di vista proge uale ed economico.

Il proge ista deve ricercare:

1. massima velocità di elaborazione, dunque minimo transitorio;

2. minimo numero di gate, possibilmente semplici (tipo AND o OR);

3. minimo numero di collegamenti, cioè di ingressi per ogni gate (fan-in), perché le porte logi-che con fan-in alto sono molto costose e difficili da reperire.

Esistono alcuni indicatori (in tabella 2.1) per valutare un circuito logico, secondo i parametri ap-pena descri i.

Page 40: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Ngate numero di gateNconn numero di connessioniNcasc numero di gate in cascata (sul percorso più lungo)

Tabella 2.1: Indicatori per rete combinatoria

2.1.1 Espressioni minime

Definizione 2.1 (Espressione normale). Espressione SP o PS.

Definizione 2.2 (Espressione minima). Espressione normale della rete di costo minimo.

Definizione 2.3 (Implicante). L’implicante di una funzione completa in n variabili è il prodo o din (o meno) di quelle variabili. Vale 1 per le configurazioni in cui la funzione vale 1 (figura 2.1).

Definizione 2.4 (Implicante primo). Prodo o non più riducibile, che deve conservare tu i i le eraliper implicare la funzione.

L’implicante primo si ricava dalla prima forma canonica, applicando la proprietà di combina-zione finché possibile.

Definizione 2.5 (Implicato). L’implicato di una funzione completa in n variabili è la somma di n (omeno) di quelle variabili. Vale 0 per le configurazioni in cui la funzione vale 0 (figura 2.1)

L’implicato primo si ricava dalla seconda forma canonica, applicando la proprietà di combi-nazione finché possibile.

Definizione 2.6 (Implicato primo). Somma non più riducibile che deve contenere tu i i le erali peressere implicata dalla funzione.

Definizione 2.7 (Espressione irridondante). Espressione SP o Prodo o di Somme (PS) che devemantenere tu i i termini per non perdere l’equivalenza.

L’espressione è resa irridondante applicando il teorema del consenso.

Figura 2.1: Implicanti e implicati

Teorema 18 . L’espressione minima SP è una somma irridondante di implicanti primi.

Teorema 19 . L’espressione minima PS è un prodo o irridondante di implicati primi.

40 2 - Reti combinatorie

Page 41: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.2 Mappa di Karnaugh

Per trovare una espressione,minima o ridondante, relativa a unamacchina della quale abbiamola tabella di verità, è comodo utilizzare il metodo delle mappe di Karnaugh (o k-mappe).

La k-mappa è una rappresentazione su due dimensioni della tabella di verità. Ciò si o ienesuddividendo le variabili tra i due assi, per un totale di non oltre 4 variabili (2 per 2). La particola-rità sta nelle configurazioni delle variabili indipendenti, quando presenti a coppie: celle adiacentidevono avere coordinate che differiscono per un solo bit. Più intuitivamente, celle adiacenti hannoun lato in comune (quindi non un angolo, in diagonale). Il codice Gray codifica due variabili A eB con le seguenti coordinate ordinate:

00 01 11 10

L’ultima configurazione (10) differisce di un bit dalla prima (00), quindi c’è circolarità di adiacenza.Questo consente di tra are caselle opposte su una riga (o colonna) come adiacenti. Alcuni tipi dimappa possibili sono riportati in figura 2.2.

(a) k-mappa a 2variabili

(b) k-mappa a 3 variabili (c) k-mappa a 4 variabili

Figura 2.2: Esempi di k-mappe

Le celle devono essere riempite con i valori della tabella di verità del problema, quindi con0 oppure 1, seguendo gli indirizzi delle celle in accordo con le variabili. Una cella che contieneun 1 indica un mintermine, mentre se contiene uno 0 indica un maxtermine. Gli implicanti sio engono raggruppando le caselle con valore 1 in re angoli di area potenza di 2. Lo stesso valeper gli implicati, o enuti in modo duale raggruppando celle con valori 0.

2.2.1 Regole per le mappe di Karnaugh

Ogni mappa ha 2n caselle, ciascuna contraddistinta da una combinazione dei valori assuntidalle n variabili usate per l’indirizzamento. Per minimizzare una funzione si devono seguire leregole elencate di seguito.

Nota 2.2.1 – Se si cerca l’espressione Somma di Prodotti (SP) si raggruppano gli 1; se si cerca la Prodotto di Somme (PS)si raggruppano gli 0. Nella procedura si fa riferimento alla copertura degli 1, considerando che quella degli 0 si svolge inmaniera uguale.

1. Inserire gli 1, gli 0 e le condizioni di indifferenza nelle caselle, seguendo le indicazioni diindirizzo della tabella di verità.

2. Raggruppare gli 1 che risultano adiacenti in gruppi di uno, due, qua ro, o o o sedici (quindi2n) elementi.

3. I raggruppamenti devono avere forma quadrata o re agolare con dimensione una potenzadel 2 (quindi non da sei elementi, o dodici).

2.2 - Mappa di Karnaugh 41

Page 42: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

4. Ogni 1 deve essere partecipe di almeno un raggruppamento; quindi un 1 può essere com-preso in più raggruppamenti diversi.

5. Non sono ammessi raggruppamenti di sole X. Non è obbligatorio raggruppare tu e le X, masolo quelle utili per rispe are il punto successivo della procedura.

6. I raggruppamenti devono essere di estensionemassima e in numerominimo. Per raggiunge-re questo scopo si possono raccogliere anche le X, purché in raccoglimenti che comprendanoalmeno un 1.

7. Per identificare l’indirizzo di ogni raggruppamento, si scrivono le variabili che non cambianovalore entro quel raggruppamento, ignorando quelle che cambiano. Le variabili di indirizzoche restano costanti vanno scri e in forma vera se hanno valore 1 (0 per PS) e in forma negatase hanno valore 0 (1 per PS).

8. Avendo raggruppato degli 1 si scrive la forma SP (viceversa la PS).

2.2.2 k-mappe per più di 4 variabili

Non si possono utilizzare mappe con oltre 4 variabili, perché diventerebbero tridimensionali eoltre. Si può esternalizzare una variabile e assegnare una mappa a ogni valore di quella variabile.

Le adiacenze di una k-mappa multipla vanno ricercate non solo all’interno della singola map-pa, ma pure tra una mappa e l’altra.

Definizione 2.8 (So omappe adiacenti). Due so omappe sono adiacenti se le configurazioni dellevariabili esterne sono adiacenti, dunque differiscono solo per un bit.

Teorema 20 . Sono adiacenti le celle che occupano la stessa posizione in so omappe adiacenti.

k-mappa con 5 variabili. Con 5 variabili, se ne impostano 4 sulla mappa e poi la si sdoppia,scrivendola due volte: a una mappa si assegna la quinta variabile con valore 0, all’altra con valore1 (figura 2.3). Quando si traccia un raggruppamento o si scrive un mintermine (o maxtermine)bisogna tenere conto anche del valore della variabile esterna.In k-mappe a 5 variabili, poiché le so omappe sono solo due esse sono sempre adiacenti; le celleadiacenti si trovano come in figura 2.4(a).

Figura 2.3: k-mappa a 5 variabili

42 2 - Reti combinatorie

Page 43: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

k-mappa con 6 variabili. Per le k-mappe con 6 variabili le variabili esterne sono 2. Lemappe nonsono tu e adiacenti tra loro, ma sono tre per tre coi criteri usuali. In figura 2.4(a) sono riportatidue esempi di celle adiacenti sulle qua ro so omappe che costituiscono un’unica mappa globalea sei variabili.

(a) k-mappa a 5 variabili (b) k-mappa a 6 variabili

Figura 2.4: Celle adiacenti in k-mappe a 5 e 6 variabili

2.2.3 Raggruppamenti Re angolariDefinizione 2.9 (Raggruppamento Re angolare). Un Raggruppamento Re angolare (RR) di ordinep è un insieme di 2p celle.

Alcune proprietà degli RR sono:

• un RR di celle con valore 1 è un implicante (RR(1));

• un RR(1) che non è incluso in un RR(1) di ordine superiore è un implicante primo;

• un RR di celle con valore 0 è un implicato (RR(0));

• un RR(0) che non è incluso in un RR(0) di ordine superiore è un implicato primo.

Implicanti e implicati possono contenere anche condizioni di indifferenza.Se le celle di un RR sono tu e incluse in altri RR, allora questo RR è ridondante e di solito è

inutile.

Definizione 2.10 (Copertura degli uno). La copertura degli uno (1) di una k-mappa è l’insieme deiRR(1) che racchiudono tu e le celle di valore 1.

Nota 2.2.2 – La copertura degli uno definisce l’espressione normale SP associata alla k-mappa.

Definizione 2.11 (Copertura degli zero). La copertura degli zero (0) di una k-mappa è l’insieme deiRR(0) che racchiudono tu e le celle di valore 0.

Nota 2.2.3 – La copertura degli zero definisce l’espressione normale PS associata alla k-mappa.

2.2 - Mappa di Karnaugh 43

Page 44: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Le coperture sono minime se gli insiemi contengono il minimo numero di RR ed essi sono didimensione massima.

Esercizio 2.a

Data la tabella di verità (tabella 2.2), determinarne la mappa di Karnaugh e le espressioni minime SP e PS.

A B C S

0 0 0 10 0 1 X0 1 0 00 1 1 X1 0 0 11 0 1 11 1 0 01 1 1 0

Tabella 2.2: [Esercizio 2.a] Tabella di verità

La mappa di Karnaugh si ottiene riempiendo una mappa da 8 caselle, come quella in figura 2.5(a). Aseconda dei casi bisogna ricercare i RR(1) per l’espressione SP (figura 2.5(b)) o la RR(0) per la PS (figura2.5(c)). Siccome sono presenti condizioni di indifferenza, le si può utilizzare per avere rettangoli di grandezzamaggiore, evitando tanti piccoli rettangoli minori che complicano le espressioni e non consentono di ottenerequelle minime. In ogni caso, anche utilizzando rettangoli più piccoli, è possibile operare algebricamente(utilizzando le proprietà dell’algebra di Boole) per ridurre le espressioni in forma minima. Dalla figura 2.5(b)si ricava un quadrato in cui le coordinate rimangono costanti (a 0) per la variabile B, e variano per le altredue. Poiché variabili che cambiano in un raggruppamento rettangolare si escludono dall’espressione, alloraS = B.Dalla figura 2.5(c) si deduce lo stesso, con la differenza che (avendo raccolto degli zeri) si ragiona in logicanegata. Poiché rimane costante sempre B, ma con valore 1, allora S = B ancora una volta. Questo confermaa maggior ragione che espressioni minime SP e PS di una stessa macchina sono uguali: in caso di espressionimeno banali di quella appena vista, è sufficiente applicare il teorema di De Morgan o le altre proprietà pertestare l’uguaglianza. Per dimostrare che anche raggruppamenti minori possono portare alla giusta soluzione,vediamo sulla figura 2.5(b) che le quattro caselle del RR corrispondono alla somma dei prodotti:

S = ABC + ABC + ABC + ABC= AB + AB= B

Se invece proviamo col prodotto delle somme (ricordando che siamo in logica negata):

S = (A + B + C)(A + B + C)(A + B + C)(A + B + C)= (A + B)(A + B)= AA + AB + BA + B= 0 + B(A + A + 1)

= B

44 2 - Reti combinatorie

Page 45: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Mappa di Karnaugh (b) Ricerca dell’espres-sione SP

(c) Ricerca dell’espres-sione PS

Figura 2.5: [Esercizio 2.a] Ricerca delle espressioni minime tramite k-mappa (soluzione)

Esercizio 2.b

Tracciare sulla mappa la funzione F = ∑4 m(1, 3, 5, 7, 8, 9, 12, 13). (Nota bene: per individuare i mintermini,si deve considerare X1 come bit di maggior peso.)

1. Individuare graficamente tutti gli implicati primi.2. Scrivere le espressioni corrispondenti.3. Evidenziare quali dei RR tracciati non sono essenziali per la copertura.4. Scrivere l’espressione minima SP.5. Individuare l’espressione minima PS.

La funzione F rappresenta i valori 1 che devono essere posti in corrispondenza dei valori decimali delmintermine m, da rappresentare con quattro bit nel formato X1X2X3X4 (cfr. tabella 1.8).

1. Gli implicati primi indicati nella mappa di figura 2.6(c). Essi sono i RR che coprono gli zeri dellafunzione.

2. Le espressioni corrispondenti ai tre implicati primi sono: X1 + X4, X1 + X3, X3 + X4.3. I RR non essenziali per la copertura sono evidenziati con sfondo azzurro in figure 2.6(b) (implicante

X3X4) e 2.6(c) (implicato X3 + X4). I termini relativi a questi RR sono utili per una progettazioneanti-alea.

4. L’espressione minima SP si ricava dalla mappa in figura 2.6(b): F = X1X4 + X1X3.5. L’espressione minima PS si ricava dalla mappa in figura 2.6(c): F = (X1 + X4) · (X1 + X3).

(a) k-mappa (b) Implicanti primi perespressione SP

(c) Implicati primi perespressione PS

Figura 2.6: [Esercizio 2.b] Mappa di Karnaugh e RR (soluzione)

2.2 - Mappa di Karnaugh 45

Page 46: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.2.4 Eliminazione di alee statiche

Èpossibile determinare unmetodo per eliminare l’alea statica, se sono verificate due condizionifondamentali:

• gli ingressi della rete combinatoria devono cambiare uno solo per volta (condizione neces-saria ma non sufficiente);

• il problema di disallineamento tra i segnali d’ingresso e i loro complementi deve essere ri-solto, perché il ritardo di propagazione della funzione di negazione provoca di sicuro aleastatica.

Il disallineamento si risolve tramite la sintesi opportuna con le k-mappe.

Teorema 21 . Una rete combinatoria deve modificare il valore dei suoi ingressi solo uno alla volta. Tale retenon ha alea statica se la copertura degli uno è tale che ogni coppia di 1 in celle adiacenti sia racchiusa in unRR.

Nota 2.2.4 – Vale anche se si fa la copertura degli zeri per l’espressione PS.

Questo significa che bisogna ancora usare RR di dimensioni massime, ma non si devono elimi-nare quelli inessenziali (ridondanti) come si fa per raggiungere l’espressione minima.

Un esempio di come si elimina l’alea (sul Multiplexer (MUX)) è riportato nell’esercizio 2.h.

2.2.5 Dimostrazionedi secondo e terzo teoremadell’assorbimento conk-mappe

In figura 2.7 sono riportate le mappe di Karnaugh relative ai teoremi dell’assorbimento, pre-sentati a pagina 23.

Secondo teorema dell’assorbimento. Lamappa in figura 2.7(a) riporta tu i i mintermini. In ros-so è evidenziato il mintermine incriminato xy: esso è equivalente a y perché, dopo aver riportatole coperture e quindi avendo indicato gli 1, si può notare che il raggruppamento che genera xynon è di dimensione massima. I RR di dimensione massima, per coprire i tre 1, sono x e y.

Terzo teorema dell’assorbimento. La mappa in figura 2.7(b) riporta tu i i mintermini, stavoltaevidenziando in rosso il mintermine in eccesso yz: esso è ridondante perché, dopo aver riportatole coperture e quindi avendo indicato gli 1, si può notare che il raggruppamento lo che generanon rispe a la regola che i RR siano in numero minimo. I suoi 1, infa i, sono già coperti dagli altrimintermini (con dimensione massima).

Nota 2.2.5 – Il terzo teorema dell’assorbimento dimostra l’equivalenza tra la forma minima di un’espressione e la formaanti-alea della stessa espressione.

2.2.6 Operazioni algebriche con k-mappe

Si può usare una k-mappa per ridurre un’espressione che potrebbe essere complicata da ma-nipolare per via algebrica. Il metodo consiste nel calcolare la tabella di verità dell’espressione,riempire la k-mappa ed effe uare la copertura di zeri o uni per ridurre il numero dei suoi termini.

46 2 - Reti combinatorie

Page 47: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) II teorema (b) III teorema

Figura 2.7: Dimostrazione dei teoremi dell’assorbimento, con k-mappe

Esercizio 2.c

Ridurre l’espressione bc + abc + abc.

Si potrebbe anche manipolare per via algebrica:

bc + abc + abc = bc + ab · (c + c)= bc + ab

Altrimenti, per via grafica, si riempie la k-mappa con i valori che assume l’espressione, quindi si fa la coperturadegli uni (figura 2.8). Gli implicanti che si ottengono sono ab e bc, quindi la soluzione è la medesima.

Figura 2.8: [Esercizio 2.c] Riduzione di un’espressione tramite k-mappa (soluzione)

Esercizio 2.d

Ridurre l’espressione X = ab(cd + c) + a(bc + bcd) + a(bc + bc).

Questa espressione è molto complicata da semplificare per via algebrica. È più facile inserire nella k-mappa ivalori che assume l’espressione per tutte le combinazioni dei quattro ingressi e poi procedere con la coperturadegli uni (figura 2.9(a)) o degli zero (figura 2.9(b)). Le espressioni semplificate sono:

XSP = abd + bc + bcXPS = (b + c + d) · (a + b + c) · (b + c)

2.2 - Mappa di Karnaugh 47

Page 48: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Copertura degli uno (b) Copertura degli zero

Figura 2.9: [Esercizio 2.d] Riduzione di un’espressione tramite k-mappa (soluzione)

2.3 Porte logicheLe porte logiche sono quelle delle funzioni elementari, indicate in tabella 1.5.

Definizione 2.12 (Fan-out). Il fan-out è il numero massimo di ingressi ai quali si può collegarel’uscita della porta logica.

Definizione 2.13 (Fan-in). Il fan-in è il numero di ingressi della porta logica. Corrisponde al numeromassimo di dati elaborabili dalla porta logica nello stesso istante.

2.3.1 Analisi e sintesi con porte logicheIl proge o di sintesi di un circuito combinatorio prevede la seguente procedura:

1. leggere la descrizione a parole e identificare ingressi e uscite del sistema;

2. assegnare le variabili;

3. assegnare i valori logici alle variabili;

4. compilare la tabella di verità;

5. estrarre la forma canonica scelta e la relativa minimizzazione algebrica, oppure tracciare lek-mappe;

6. disegnare il circuito minimo, utilizzando tu i i tipi di porte e considerando il fan-in e ilfan-out delle porte logiche;

7. disegnare il circuito minimo, utilizzando il tipo di porta logica universale migliore (NAND perla forma SP, NOR per la PS);

8. redarre l’elenco dei componenti necessari e identificare il circuito più conveniente.

L’analisi di un circuito combinatorio prevede gli stessi passi, svolti in ordine inverso.

2.3.2 Sintesi con soli NAND o NOR

Partendo da espressioni SP (o PS) è possibile o enere un circuito combinatorio equivalente, for-mato da sole porte NAND (rispe ivamente NOR). La conversione può essere effe uata per via pura-mente algebrica, oppure sfru ando un algoritmo quando la complessità dei calcoli o del circuitoiniziale impedisce una risoluzione agile.

Metodo algebrico. Si nega due volte l’intera espressione algebricaminima, quindi si applica unavolta il teorema di De Morgan e si o iene il circuito a soli NAND o NOR.

48 2 - Reti combinatorie

Page 49: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Metodo circuitale. Si disegna il circuito con porte AND, OR e NOT, quindi si sostituisce ogni portacol circuito equivalente realizzato a NAND (per la forma SP) o NOR (per la forma PS). Il circuito in-cluderà moltissime porte, ma applicando le proprietà dell’algebra di Boole è possibile ridurre ilcircuito, semplificando inutili porte NOT poste una di seguito all’altra.Esiste una via più breve, da usare con cautela: se si sostituisce ogni porta del circuito SP con unaporta NAND (idem per la PS, sostituendo con NOR), il risultato è ancora quello voluto.

Metodo algoritmico (NAND). Per o enere un circuito a soli NAND, partendo da un’espressione SP(oppure SPS, SPSP, …):

1. Dall’espressione iniziale si ricava un’espressione in cui si esplicitano le parentesi e gli ope-ratori AND.

2. Si sostituisce ogni AND con un NAND.

3. Si sostituisce ogni OR con un NAND, complementando variabili e costanti elaborate dall’ope-ratore sostituito.

4. Si traccia lo schema così o enuto.

Metodo algoritmico (NOR). Per o enere un circuito a soli NOR, partendo da un’espressione PS(oppure PSP, PSPS, …):

1. Dall’espressione iniziale si ricava un’espressione in cui si esplicitano le parentesi e gli ope-ratori AND.

2. Si sostituisce ogni OR con un NOR.

3. Si sostituisce ogni AND con un NOR, complementando variabili e costanti elaborate dall’ope-ratore sostituito.

4. Si traccia lo schema così o enuto.

Esercizio 2.e

Sintetizzare un EX-OR utilizzando sole porte NAND.

L’espressione SP che identifica l’EX-OR è ab + ab, quindi si trasforma:

U = ab + ab

= a ↑ b + a ↑ b

= (a ↑ b) · (a ↑ b)= (a ↑ b) ↑ (a ↑ b)

L’espressione SP può essere difficile da trattare, quindi si può sommare una quantità nulla per renderemeno fastidiosa la presenza delle variabili complementate. Questa quantità, sfruttando una proprietà degli

2.3 - Porte logiche 49

Page 50: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

operatori, deve essere del tipo x · x; si somma una quantità per ogni variabile che serva. Quindi si trasformaa NAND questa espressione Somma di Prodotti di Somme (SPS):

U = ab + ab = ab + ab + aa + bb= (a · (a + b)) + (b · (a + b))

= (a ↑ (a + b)) + (b ↑ (a + b))

= (a ↑ (a + b)) · (b ↑ (a + b))

= (a ↑ (a · b)) ↑ (b ↑ (a · b))= (a ↑ (a ↑ b)) ↑ (b ↑ (a ↑ b))

Lo schema finale SPS è in figura 2.10.

Figura 2.10: [Esercizio 2.e] EX-OR sintetizzato a soli NAND (soluzione)

Esercizio 2.f

Con i componenti indicati in figura 2.11 si devono realizzare un AND a tre ingressi e un OR a tre ingressi. Isegnali provenienti dall’esterno sono disponibili in forma vera e complementata.

Figura 2.11: [Esercizio 2.f] Porte logiche a disposizione per comporre AND e OR a tre ingressi

Un buon metodo per sintetizzare circuiti basati su porte NAND e NOR è negare due volte l’espressione dipartenza e poi manipolarla con le regole dell’algebra di Boole.Per l’AND a tre ingressi:

A · B · C = A · B · C

= A + B + C

= A · B︸ ︷︷ ︸NAND

+C

︸ ︷︷ ︸NOR

50 2 - Reti combinatorie

Page 51: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Per l’OR a tre ingressi:

A + B + C = A + B + C

= A · B · C

= A + B︸ ︷︷ ︸NOR

·C

︸ ︷︷ ︸NAND

I due circuiti sono in figura 2.12.

Figura 2.12: [Esercizio 2.f] Sintesi di AND e OR a tre ingressi con NAND e NOR (soluzione)

Esercizio 2.g

Quale tipo di gate consente di ottenere z1 = x2 e z2 = x1?

Figura 2.13: [Esercizio 2.g] Porta logica da stabilire

Definisco come y l’uscita del primo blocco intermedio. In tabella 2.3 riporto le relazioni tra x1, x2 e z1per mezzo dei valori che assume y (y1, y2, y3, y4). Noto che solo due bit sono a 1 in z1, quindi la portalogica deve essere un EX-OR oppure un EX-NOR. Entrambe vanno bene allo scopo (tabelle 2.4), quindi la retecombinatoria può essere realizzata o con tre EX-OR o con tre EX-NOR. La soluzione risolve anche l’uscita x2,perché il problema è duale.

x1 x2 y x1 z1(= x2)

0 0 y1 0 00 1 y2 0 11 0 y3 1 01 1 y4 1 1

Tabella 2.3: [Esercizio 2.g] Tabella di verità della porta logica da stabilire (soluzione)

2.3 - Porte logiche 51

Page 52: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Soluzione con EX-OR

x1 x2 y = x1 ⊕ x2 x1 z1 = y ⊕ x1

0 0 0 0 00 1 1 0 11 0 1 1 01 1 0 1 1

(b) Soluzione con EX-NOR

x1 x2 y = x1 ≡ x2 x1 z1 = y ≡ x1

0 0 1 0 00 1 0 0 11 0 0 1 01 1 1 1 1

Tabella 2.4: [Esercizio 2.g] Tabelle di verità della porta logica stabilita (soluzione)

2.4 Circuiti logici notevoli

2.4.1 Decoder

Definizione 2.14 (Decodificatore). Un decodificatore è un generatore di mintermini.

Un decodificatore (in inglese decoder) con n variabili genera 2n mintermini, i quali rappresen-tano tu e le possibili combinazioni delle variabili e dei loro complementi. Uno schema funzionaleè in figura 2.14(a); la stru ura interna è in figura 2.14(b); la tabella di verità relativa al decoder a 2variabili (estendibile a n variabili) è in tabella 2.5.

Il principio di utilizzo di un decoder sta, una volta determinato il tipo a seconda del numerodi variabili, nel sommare i mintermini che servono per risolvere il problema con una porta OR.Quindi, delle 2n uscite, se ne prenderà un numero compreso tra 1 e il totale, per sommarle edo enere la forma SP.

(a) Schema funzionale (b) Stru ura interna

Figura 2.14: Schemi di decoder a due variabili

A B m0 m1 m2 m3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

Tabella 2.5: Tabella di verità del decoder (a 2 variabili)

52 2 - Reti combinatorie

Page 53: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.4.2 EncoderL’encoder compie l’operazione inversa rispe o al decoder, cioè effe ua una codifica ”1 su n”

(figura 2.15): in ingresso sono acce ate solo combinazioni che hanno un solo bit pari a 1, in uscitaè fornito il corrispondente valore in binario (quindi con meno bit). La tabella di verità 2.6 mostraquesto comportamento.

Dall’analisi delle k-mappe che si possono compilare a partire dalla tabella di verità si trovanole espressioni canoniche dell’encoder:

z1 = x2x1 x0 + x2 x1 x0

z0 = x2 x1x0 + x2 x1 x0

Figura 2.15: Schema funzionale dell’encoder

x2 x1 x0 z1 z0

0 0 0 0 00 0 1 0 10 1 0 1 00 1 1 – – (impossibile)1 0 0 1 11 0 1 – – (impossibile)1 1 0 – – (impossibile)1 1 1 – – (impossibile)

Tabella 2.6: Tabella di verità dell’encoder (a 3 variabili)

2.4.3 MUX

Definizione 2.15 (Multiplexer). Un multiplexer è un dispositivo programmabile, la cui funzionelogica d’uscita è una somma dei mintermini selezionati dagli ingressi.

Un Multiplexer (MUX) ha n ingressi di selezione (A, B, C, . . . ), 2n ingressi per i dati (i0, i1, …)e una sola uscita. Gli ingressi per i dati sono anche chiamati variabili di programmazione perché illoro valore è assegnato dall’utente ed è richiamato impostando l’indirizzo corrispondente sugliingressi di selezione (indirizzi). C’è una corrispondenza univoca tra gli indirizzi di selezione e idati: impostato un indirizzo, in uscita c’è il dato corrispondente. Gli schemi funzionali di alcuniMUX con diverso numero di bit d’indirizzo sono in figura 2.16.

Se chiamiamo m0, m1, . . . le combinazioni possibili per gli ingressi di selezione, allora la gene-rica funzione d’uscita del MUX è:

y = m0i0 + m1i1 + m2i2 + . . .

cioè ogni indirizzo corrisponde a una precisa combinazione dei dati in ingresso (tabelle di veri-tà 2.7). Siccome i dati sono 2n, anche gli addendi della funzione saranno in potenza di 2. A secon-da del valore assegnato ai dati (ij) si possono mantenere o eliminare mintermini dall’espressione,conservando quelli risolutivi del problema.

2.4 - Circuiti logici notevoli 53

Page 54: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Un bit d’indi-rizzo

(b) Due bit d’indirizzo (c) Tre bit d’indi-rizzo

Figura 2.16: MUX

Ad esempio, in un MUX a 2 variabili (quindi a 4 ingressi) si ha:

m0 = A · B m1 = AB m2 = AB m3 = AB

(a) MUX a un bit d’indirizzo

A I0 I1 y

0 0 0 0 (I0)0 0 1 0 (I0)0 1 0 1 (I0)0 1 1 1 (I0)1 0 0 0 (I1)1 0 1 1 (I1)1 1 0 0 (I1)1 1 1 1 (I1)

(b) MUX a tre bit d’indi-rizzo

A B C y

0 0 0 I00 0 1 I10 1 0 I20 1 1 I31 0 0 I41 0 1 I51 1 0 I61 1 1 I7

Tabella 2.7: Tabella di verità del MUX

Esempio di sintesi con MUX. Considero un MUX a due bit d’indirizzo. Se assegnassi i0 = i3 = 0e i1 = i2 = 1, allora avrei o enuto la funzione:

y = m1 + m2 = AB + AB

che è l’espressione dell’EX-OR.Utilizzando altri valori sugli ingressi dati è possibile cambiare i mintermini della funzione, ot-tenendone una nuova e diversa. In tal modo è possibile realizzare funzioni elementari, come inquesto caso, o funzioni più complesse e non esistenti già disponibili.

Alea statica nelMUX. IlMUX soffre di alea statica, se realizzato a partire dall’espressioneminima.Le variazioni sui segnali del circuito sono visibili in figure 1.8(a) e 1.8(b). Negli esercizi 2.h e 2.i siproge a il MUX per evitare che esso soffra di alea statica.

Esercizio 2.h

Il circuito minimo del MUX, in figura 2.17(b), si ottiene dalla k-mappa 2.17(a).Disegnare il nuovo circuito immune da alea statica.

54 2 - Reti combinatorie

Page 55: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) k-mappa (b) Circuito minimo (c) Circuito anti-alea (soluzione)

Figura 2.17: [Esercizio 2.h] Implementazione anti-alea del MUX

L’espressione minima del MUX si ottiene dai RR rossi in figura 2.17(a). Il RR blu è ridondante, quindi il suomintermine ha effetto anti-alea.Il circuito minimo, in figura 2.17(b), ha espressione:

U = AI0 + AI1

Aggiungendo il termine ridondante anti-alea si ottiene lo schema di figura 2.17(c):

U = AI0 + AI1 + I1 I0

Esercizio 2.i

Si deve realizzare a NOR un selettore a due vie privo di alea statica.1. Individuare l’espressione PS.2. Individuare l’espressione Prodotto di Somme di Prodotti (PSP) equivalente.3. Trasformare a NOR entrambe le espressioni.4. Tracciare i due schemi logici.

Un selettore a due vie è un MUX a due ingressi, quindi a un bit d’indirizzo. Dalla sua tabella di verità 2.6(a) siricava la mappa di Karnaugh 2.18(a) e l’espressione PS anti-alea (quindi senza eliminare i termini ridondanti)con la copertura degli zeri:

U = (I0 + A) · (I1 + A) · (I0 + I1)

L’espressione PSP si ottiene sviluppando una parte dell’espressione PS per ridurla e ottenerla in forma SP:

U = (I1 + A) · (I0 + A) · (I0 + I1)

= (I1 + A) · (AI0 + AI1 + I0 + I0 I1)

= (I1 + A) ·(

A(I0 + I1) + I0(1 + I1))

= (I1 + A) ·(

A(I0 + I1) + I0

)= (I1 + A) · (AI0 + AI1 + I0)

= (I1 + A) ·(

I0(A + 1) + AI1

)= (I1 + A) · (I0 + A · I1)

2.4 - Circuiti logici notevoli 55

Page 56: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Trasformo a NOR l’espressione PS (schema in figura 2.18(b)):

U = (I1 + A) · (I0 + A) · (I0 + I1)

= (I1 ↓ A) · (I0 ↓ A) · (I0 ↓ I1)

= (I1 ↓ A) + (I0 ↓ A) + (I0 ↓ I1)

= (I1 ↓ A) ↓ (I0 ↓ A) ↓ (I0 ↓ I1)

Trasformo a NOR l’espressione PSP (schema in figura 2.18(c)):

U = (I1 + A) · (I0 + A · I1)

= (I1 ↓ A) · (I0 ↓ A · I1)

= (I1 ↓ A) +(

I0 ↓ A + I1

)= (I1 ↓ A) ↓ (I0 ↓

(A ↓ I1)

)

(a) Mappa di Karnaugh e co-pertura degli zeri

(b) Schema logico PS (c) Schema logico PSP

Figura 2.18: [Esercizio 2.i] Realizzazione di MUX a NOR (soluzione)

Esercizio 2.j

Qual è il comportamento della rete combinatoria indicata in figura 2.19?

Figura 2.19: [Esercizio 2.j] Rete combinatoria con decoder e MUX

La tabella di verità 2.8 permette di risolvere il problema. L’uscita Z del MUX propone il valore dell’uscitadel decoder corrispondente a y2y1y0. Il decoder, però, è pilotato da x2x1x0: quindi, Z = 1 solo quando gliindirizzi di decoder e MUX sono uguali (X = Y).

56 2 - Reti combinatorie

Page 57: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

x2 x1 x0 Uscita decoder a iva y2 y1 y0 Ingresso a ivo MUX Z

0 0 0 O0 0 0 0 I0 O00 0 1 O1 0 0 1 I1 O10 1 0 O2 0 1 0 I2 O20 1 1 O3 0 1 1 I3 O31 0 0 O4 1 0 0 I4 O41 0 1 O5 1 0 1 I5 O51 1 0 O6 1 1 0 I6 O61 1 1 O7 1 1 1 I7 O7

Tabella 2.8: [Esercizio 2.j] Tabella di verità (soluzione)

2.4.4 Half Adder (HA)

Un Half Adder (HA) è un circuito che effe ua la somma con riporto di due bit, proponendo inuscita il risultato su due uscite separate (figura 2.20).

La tabella di verità è in tabella 2.9. Da essa si nota che l’espressione della somma è la funzioneEX-OR dei due ingressi, mentre il riporto si o iene dalla funzione AND:

S = A ⊕ BR = A · B

L’HA è un sommatore ”ametà” perché nonha la capacità di sommare altro che due bit, per cui il suoimpiego è molto limitato. Una stru ura più complessa che utilizza più HA compone il sommatoreFull Adder (FA).

A B R (riporto) S (somma)

0 0 0 00 1 0 11 0 0 11 1 1 0

Tabella 2.9: Tabella di verità del sommatore Half Adder (HA)

Figura 2.20: Stru ura interna dell’Half Adder (HA)

2.4.5 Sommatore Full Adder (FA)

Si può estendere l’HA in modo da sommare anche un precedente riporto r ai due addendi a eb. La relativa tabella di verità è la 2.10.

2.4 - Circuiti logici notevoli 57

Page 58: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

r a b R (riporto) S (somma)

m0 0 0 0 0 0m1 0 0 1 0 1m2 0 1 0 0 1m3 0 1 1 1 0m4 1 0 0 0 1m5 1 0 1 1 0m6 1 1 0 1 0m7 1 1 1 1 1

Tabella 2.10: Tabella di verità del sommatore FA

Risolvendo in modo separato per S e R si trovano le loro espressioni canoniche. Sviluppandole espressioni SP si o engono relazioni con l’HA:

S = m1 + m2 + m4 + m7

= rab + rab + rab + rab

= r(ab + ab) + r(ab + ab)

= r(a ⊕ b) + r(a ⊕ b)= r ⊕ (a ⊕ b)

R = m3 + m5 + m6 + m7

= rab + rab + rab + rab

= ab(r + r) + r(ab + ab)= ab + r(a ⊕ b)

Lo schema logico che rappresenta il FA è in figura 2.21(b). È evidente che si può realizzare un FAutilizzando due HA connessi in cascata, con l’aggiunta di una porta OR.

(a) Schema fun-zionale

(b) Stru ura interna

Figura 2.21: Full Adder (FA)

Dalle formule si può ricavare uno schema con le porte logiche (secondo i metodi tradizionali,anche se comporta l’utilizzo di molti gate), ma in questo caso le vie più brevi sono l’utilizzo di undecoder (figura 2.22(a)) oppure di due MUX (figura 2.22(b)).

2.4.6 Implicazione logica

La funzione di implicazione logica può essere descri a in uno dei modi seguenti:

• la funzione non vale 1 solo se A = 1 e B = 0;

• la funzione vale 1 se A = 1 oppure B = 1.

58 2 - Reti combinatorie

Page 59: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Sommatore realizzato con decoder

(b) Sommatore realizzato con MUX

Figura 2.22: Sommatore

L’implicazione non è commutativa (tabella 2.11). Infa i la sua espressione algebrica è la seguente:

A ⇒ B = A + B

A B A ⇒ B

0 0 10 1 11 0 01 1 1

Tabella 2.11: Tabella di verità dell’implicazione logica

Esercizio 2.k

Realizzare la funzione a ⇒ b sia con un MUX con due bit d’indirizzo, sia con un MUX con un bit d’indirizzo.

L’implicazione logica si realizza tra due variabili operando la somma a + b.La soluzione con un MUX a due bit d’indirizzo è facile, perché è sufficiente usare come indirizzi a e b eporre ai suoi ingressi i valori previsti dalla tabella di verità dell’implicazione (tabella 2.11). Lo schema dicollegamento dei valori è in figura 2.23(a).

2.4 - Circuiti logici notevoli 59

Page 60: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

La soluzione con un MUX a un bit d’indirizzo deve essere fatta con l’analisi della tabella di verità 2.11(b).Si può osservare che, usando la variabile a dell’implicazione come indirizzo del MUX (A = a), allora nasconodelle relazioni tra l’altra variabile b e gli ingressi del MUX:

• quando a = 0, Z deve essere pari a 1 sempre; allora si pone I0 = 1;• quando a = 1, Z deve essere pari a b sempre; allora si pone I1 = b.

Lo schema di collegamento è in figura 2.23(b).

(a) MUX a unbit d’indiriz-zo

A Z

0 I01 I1

(b) Asso-ciazione traimplicazione euscita del MUX

a b Z

0 0 10 1 11 0 01 1 1

Tabella 2.12: [Esercizio 2.k] Tabelle di verità e collegamento logico tra A e a (soluzione)

(a) MUX a due bit d’indirizzo (b) MUX a un bitd’indirizzo

Figura 2.23: [Esercizio 2.k] Circuiti per implicazione logica (soluzione)

60 2 - Reti combinatorie

Page 61: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.5 Circuiti programmabili

I circuiti programmabili possono realizzare più comportamenti combinatori differenti. L’uten-te sceglie quello preferito impostando y bit di programmazione (p1, . . . , py); le funzioni da sceglieresono 2y, ognuna di n variabili. Lo schema generico è in figura 2.24.

Figura 2.24: Circuito combinatorio programmabile

2.5.1 ROM

Una memoria di tipo Read Only Memory (ROM) realizza qualunque funzione di n variabili suciascuna delle sue uscite. Ogni uscita è generata da una rete, la quale ha espressione generale ditipo SP. La stru ura di una ROM è in figura 2.25(a).

(a) Stru ura interna (b) Stru ura dei conta i

Figura 2.25: ROM

I bit di programmazione agiscono separatamente sugli AND; i valori dei 2n bit devono esserefissati per corrispondere ai 2n valori della funzione desiderata. Quindi una ROM è unMUX conmoltiingressi, o meglio un insieme diMUX in parallelo. La differenza sta nel fa o che, nella ROM, i valoridella funzione non sono segnali esterni, ma bit del circuito. Questo fa o porta ad associare i segnalidi programmazione (valori 1 o 0 della funzione) con dei conta i (aperti o chiusi). In figura 2.25(b)sono evidenziati i diversi tipi di conta o, come rappresentati secondo convenzione.

Le ROM pongono due problemi di proge azione, facilmente risolvibili.

Numero insufficiente di bit d’uscita. Si posizionano tante ROM in parallelo quante ne servonoper avere il giusto numero di uscite (figura 2.26(a)).

Numero insufficiente di bit d’indirizzo. Si opera una selezione a due dimensioni:

• voglio n bit d’indirizzo, ne ho m ma e m < n;

2.5 - Circuiti programmabili 61

Page 62: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

• allora pongo in parallelo 2n−m ROM, poi seleziono le uscite omonime (su ROM diverse) conMUX con n − m bit d’indirizzo (figura 2.26(b)).

(a) Estensione delle uscite (b) Estensione degli ingressi

Figura 2.26: Problemi di proge azione delle ROM

Buffer. Lo stadio di uscita di una ROM è composto da buffer, cioè amplificatori a 3 stati di uscita(figura 2.27). Questi buffer rendono semplice e distribuita la realizzazione del MUX, a pa o diessere a ivi solo uno per volta. Infa i, l’uscita può valere 0 o 1 come tu e le altre porte logiche,oppure può essere posta in stato di alta impedenza tramite il comando Output Enable (OE). Questostato perme e di unire tu e le uscite di un parallelo di buffer a bus comune e di abilitare solo ilbuffer a raverso il quale si vuole leggere il valore che ha a monte.

Figura 2.27: Buffer

Esercizio 2.l

Per un processore con 8 bit di dato (D0 . . . D7) e 16 bit d’indirizzo (A0 . . . A15) si vuole rendere non volatilii 32 KiB della memoria principale che sono disposti tra l’indirizzo 8000H e l’indirizzo FFFFH . Supponiamodi avere a disposizione ROM da 8192 × 8 bit.

Lo schema risolutivo è in figura 2.28. Per soddisfare le specifiche occorrono quattro ROM, una connessionea bus comune delle loro uscite e un decoder per abilitarle. Quindi, questo progetto permette di usare i 16bit di indirizzamento per leggere quattro ROM da 13 bit ciascuna (8 KiB a testa).Al comando di lettura (MRD = 0), tutte e quattro le ROM si predispongono per estrarre il byte indirizzatodai bit A0 . . . A12. La scelta della ROM è demandata al decoder. Solo se l’ingresso di maggior peso (A15) havalore 1, allora una sola delle sue uscite attive basse O4, O5, O6, O7 ha valore zero. Quindi, l’unico dispositivoche riceve CE = 0 trasferisce il suo contenuto sul bus di lettura.Il processore ha il compito di porre MRD = 0 ogni volta che modifica l’indirizzo di lettura: questa proceduraserve a evitare che due letture successive causino conflitti elettrici sui conduttori condivisi del bus dei dati.

62 2 - Reti combinatorie

Page 63: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Figura 2.28: [Esercizio 2.l] Abilitazione di un banco di ROM (soluzione)

Esercizio 2.m

Progettare le abilitazioni del banco di ROM da 32 kB (B=byte) nel caso in cui si disponga di una ROM da16 kB, una ROM da 8 kB e due ROM da 4 kB (figura 2.29).

Figura 2.29: [Esercizio 2.m] Banco di ROM da abilitare

Si costruisce il piano di indirizzamento (tabella 2.13). ROM di dimensioni diverse usano più o meno bit diindirizzamento, quindi posso usare la seguente strategia:

1. decido di distinguere le ROM più piccole tramite un bit (A12) che non è utilizzato per esse, ma èinvece usato per le ROM più grandi;

2.5 - Circuiti programmabili 63

Page 64: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2. costruisco la sequenza 0–1–2–4 in codice binario con i bit A14 e A13, per ordinare le memorie dallapiù piccola alla più grande;

3. imposto A15 = 1 per utilizzare solo quattro uscite del decoder e lasciare libere le altre quattro.La situazione successiva è in tabella 2.14. Ci concentriamo sulle quattro uscite superstiti del decoder. Siosserva che:

• sull’uscita O4 si può usare A12 per discriminare tra le due ROM; quindi, si progetta un selettore(tabella 2.14(a));

• l’uscita O5 corrisponde agli indirizzi della ROM 2, quindi si può effettuare un collegamento diretto(il decoder ha le uscite attive basse, quindi non è necessaria logica aggiuntiva per rendere negato ilsegnale di comando dei CE);

• per le uscite O6 e O7 deve essere comandato CE = 0 quando O6 = 0 oppure O7 = 0: un AND è lafunzione che costruisce questa situazione (tabella 2.14(b)).

Lo schema finale dei collegamenti per l’abilitazione del banco di ROM è in figura 2.30.

ROM A15 A14 A13 A12 A11 . . . A0

ROM 4 (4 KiB) 1 0 0 0 …ROM 3 (4 KiB) 1 0 0 1 …ROM 2 (8 KiB) 1 0 1 … …ROM 1 (16 KiB) 1 1 … … …

Tabella 2.13: [Esercizio 2.m] Costruzione del piano di indirizzamento (soluzione)

Oi decoder A15 = C A14 = B A13 = A A12 ROM Collegamento a CE

O0 ÷ O3 0 X X X – N.C.

O4 1 0 0 0 ROM 4 (4 KiB) Sele ore (indirizzo A12)O4 1 0 0 1 ROM 3 (4 KiB) Sele ore (indirizzo A12)

O5 1 0 1 0 ROM 2 (8 KiB) Dire oO4 1 0 1 1 ROM 2 (8 KiB) Dire o

O4 1 1 0 0 ROM 1 (16 KiB) ANDO4 1 1 0 1 ROM 1 (16 KiB) AND

O4 1 1 1 0 ROM 1 (16 KiB) ANDO4 1 1 1 1 ROM 1 (16 KiB) AND

Tabella 2.14: [Esercizio 2.m] Piano di indirizzamento e collegamenti (soluzione)

(a) Sele ore per ROM 3 e ROM 4

O4 A12 U0 U1

0 0 0 1 ROM 40 1 1 0 ROM 31 0 1 1 ROM non selezionate1 1 1 1 ROM non selezionate

(b) AND per ROM 1

O7 O6 CE

0 0 0 (impossibile)0 1 01 0 01 1 1

Tabella 2.15: [Esercizio 2.m] Tabelle di verità delle logiche di comando dei CE (soluzione)

64 2 - Reti combinatorie

Page 65: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Figura 2.30: [Esercizio 2.m] Abilitazione di un banco di ROM (soluzione)

Soluzione alternativa. C’è un metodo più semplice, basato sulla tabella di verità 2.16:• si collegano i bit di indirizzo da A11 a A0 a tutte le ROM;• si collega il bit di indirizzo A12 solo alle ROM maggiori da 16 KiB e 8 KiB;• si collega il bit di indirizzo A13 solo alla ROM maggiori da 16 KiB;• si assegnano le uscite del decoder all’abilitazione delle ROM, seguendo un certo criterio:

– quando A14 = A13 = 0, il bit A12 discrimina le due ROM da 4 KiB (collegamenti diretti ai dueCE);

– quando A14 = 0, il bit A13 = 1 identifica la ROM da 8 KiB (il CE è pilotato dall’uscita di unAND tra le uscite O2 e O3);

– il bit A14 = 1 identifica la ROM da 16 KiB (il CE è pilotato dall’uscita di un AND tra le usciteO4, O5, O6 e O7).

Lo schema di collegamento è in figura 2.31. L’uso degli AND è legittimo perché il comando di CE è attivobasso e le uscite sono attive basse, mentre l’AND tra più segnali ha l’uscita a 1 solo se tutti i suoi ingressi sonoa 1. Quando nessuna delle uscite che pilotano l’AND è selezionata, allora esse sono tutte a 1 e mantengonola ROM disattivata; altrimenti, è sufficiente un’uscita del decoder a 1 per porre l’AND a 0 e attivare la ROM.

A14 A13 A12 O Collegamento verso le ROM

0 0 0 O0 = 0 ROM 4 (dire o al CE)0 0 1 O1 = 0 ROM 3 (dire o al CE)0 1 0 O2 = 0 ROM 2 (AND)0 1 1 O3 = 0 ROM 2 (AND)1 0 0 O4 = 0 ROM 1 (AND)1 0 1 O5 = 0 ROM 1 (AND)1 1 0 O6 = 0 ROM 1 (AND)1 1 1 O7 = 0 ROM 1 (AND)

Tabella 2.16: [Esercizio 2.m] Tabella di verità (soluzione)

2.5 - Circuiti programmabili 65

Page 66: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Figura 2.31: [Esercizio 2.m] Abilitazione di un banco di ROM (soluzione alternativa)

66 2 - Reti combinatorie

Page 67: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.5.2 PLA e PALGeneralizzando quanto visto per le ROM, si deduce che una memoria programmabile è com-

posta di una matrice di AND e una matrice di OR. Nelle ROM, l’utente programma la matrice OR,mentre la matrice AND è lasciata al costru ore. Se sorgono esigenze differenti di programmazione,esistono tipi alternativi di memoria basati sulla stessa archite ura.

Definizione 2.16 (Programmable Logic Array (PLA)). Una PLA è una memoria sulla quale l’utenteprogramma entrambe le matrici.

Definizione 2.17 (Programmable Array Logic (PAL)). Una PAL è una memoria sulla quale l’utenteprogramma la sola matrice AND.

In entrambi i casi, il vantaggio risiede nel numero di AND posti tra le due matrici, che è di moltoinferiore a 2n (con n ingressi). Tale vantaggio economico si paga non potendo realizzare propriotu e le funzioni in n variabili.

Figura 2.32: Confronto tra PLA e PAL

Esercizio 2.n

Programmare una PLA e una PAL in modo realizzino in maniera indipendente entrambe le funzioni z(a, b, c, d)e w(a, b, c, d), di cui sono disponibili le mappe di Karnaugh (figura 2.33).Entrambe le logiche programmabili hanno quattro linee di ingresso, cinque AND e due OR per le uscite. LaPAL è programmata dal costruttore con due AND sommati sulla prima uscita e i rimanenti tre AND sommatisulla seconda uscita.

Le funzioni z e w hanno tre implicanti primi a testa:

z = ac + ac + cdw = abc + abcd + acd

Il problema è che gli AND disponibili sono solo cinque. Bisogna modificare le espressioni delle due funzioniperché usino implicanti non primi, ma in comune. La copertura di z può essere fatta con due implicanti primi(ac e ac) e con un implicante non primo (acd). Questa scelta è vantaggiosa perché acd è implicante anche

2.5 - Circuiti programmabili 67

Page 68: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Figura 2.33: [Esercizio 2.n] Mappe di Karnaugh per programmare PLA e PAL

di w, per cui si può sfruttare l’uscita dell’AND relativo per entrambe le funzioni. Lo schema di collegamentodella PLA è in figura 2.34(a).La programmazione della PAL è complicato dalla struttura rigida assegnata dal costruttore, che impone diavere una delle due funzioni realizzata dalla somma di due soli implicanti. Si può notare che il complementodi z è descritto dalla somma di soli due implicanti:

z = ac + acd

In questo modo, z può essere programmata nelle prime due colonne della matrice. Le altre tre colonne sonosufficienti per la programmazione di w. Lo schema di collegamento della PAL è in figura 2.34(b).

(a) Implementazione della PLA (b) Implementazione della PAL

Figura 2.34: [Esercizio 2.n] Realizzazione di funzioni su logiche programmabili (soluzione)

68 2 - Reti combinatorie

Page 69: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.5.3 PLD

In tempi più moderni, per migliorare le prestazioni e aumentare le possibilità di impiego dellememorie programmabili, si sono inserite dei circuiti di retroazione all’interno di stru ure piùsemplici (come le PLA o le PAL). Queste retroazioni possono essere basate su MUX oppure su flip-flop.

Le memorie così o enute prendono il nome di Programmable Logic Device (PLD) e hanno unastru ura generale come riportata in figura 2.35.

Figura 2.35: Stru ura di una PLD

Esercizio 2.o

Programmare la PLD di figura 2.36(b) con le funzioni di stato futuro e d’uscita del semaforo (figura 2.36(a),corrispondente alla tabella 4.10).

(a) Tabelle di verità del semaforo (b) Stru ura interna della PLD

Figura 2.36: [Esercizio 2.o] Realizzazione di un semaforo con PLD

Per programmare la PLD bisogna compilare le mappe di Karnaugh per ciascuna delle uscite zi e per ciascunostato futuro yn+1

i , sulla base della tabella di verità fornita (figura 2.37). Dalle mappe si ottengono le seguenti

2.5 - Circuiti programmabili 69

Page 70: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

espressioni:

z1 = y2y1 + y2y1y0

z2 = y2y1y0

z3 = y2

yn+12 = y2y1 + y1y0

yn+11 = y1y0 + y2y1y0

yn+10 = y1y0 + y2y0

Si nota che ci sono nove implicanti primi a fronte di soli sette AND disponibili. Bisogna riscrivere alcuneespressioni per poter riutilizzare gli implicanti in più casi. In particolare, si può usare un implicante nonprimo per yn+1

0 e si può fare la copertura degli zeri per z1 e ottenerne gli implicanti primi, notando che essisono in comune con altre espressioni (tabella 2.17) Dopo questa operazione restano sette implicanti e si puòconnettere il tracciato interno della PLD come in figura 2.38.

Figura 2.37: [Esercizio 2.o] Mappe di Karnaugh (soluzione)

Espressione Implicanti primi Sostituzioni In comune

z1 y2y1 y2 (2°) **z1 y2y1y0 y1y0 (3°) ***z2 y2y1y0 (4°)z3 y2 (2°) **yn+1

2 y2y1 (5°)yn+1

2 y1y0 (3°) ***yn+1

1 y1y0 (6°)yn+1

1 y2y1y0 (1°) *yn+1

0 y1y0 (7°)yn+1

0 y2y0 y2y1y0 (1°) *

Tabella 2.17: [Esercizio 2.o] Implicanti primi e riduzione del numero (soluzione)

70 2 - Reti combinatorie

Page 71: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Figura 2.38: [Esercizio 2.o] Realizzazione degli implicanti all’interno della PLD (soluzione)

2.5 - Circuiti programmabili 71

Page 72: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

72 2 - Reti combinatorie

Page 73: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

CAPITOLO 3

Reti asincrone

Propongo di considerare questadomanda: “Le macchine sono in grado dipensare?”

A T

SommarioL’obiettivo di questo capitolo è conoscere i latch, cioè le memorie binarie che conservano lostato di una rete. L’analisi dei problemi di cui soffrono queste strutture circuitali è il prologoall’introduzione delle reti sequenziali sincrone. Il tema centrale del capitolo è la progettazionedi automi complessi, considerando vari aspetti tra cui quello determinante della codifica deglistati per eliminare i problemi di corsa critica.

Si usa la rete asincrona per discriminare e ricordare l’ordine di modifica dei segnali binari iningresso. La macchina insegue il variare dell’ingresso, modificando la stabilità dello stato interno.Lo schema di principio di una rete asincrona è in figura 3.1.

Figura 3.1: Rete asincrona

Un cambiamento sull’ingresso può avere qua ro differenti conseguenze:

• lasciare inalterati stato e uscita;

• modificare l’uscita;

• generare una transizione di stato;

• modificare sia l’uscita sia lo stato.

Page 74: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Servono due condizioni per il buon funzionamento della macchina asincrona:

Definizione 3.1 (Funzionamento inmodo fondamentale). Si puòmodificare l’ingresso solo quandoil circuito è stabile.

Definizione 3.2 (Adiacenza delle configurazioni d’ingresso). Simboli d’ingresso consecutivi diffe-riscono (per codifica) di un solo bit.

3.1 Memorie binarieDefinizione 3.3 (Memoria binaria). Una memoria binaria è una rete asincrona capace di ricordareil valore di un bit.

Lo schema di una memoria binaria è in figura 3.2.

Figura 3.2: Generica memoria binaria

Gli ingressi di una memoria di questo tipo sono studiati affinché si possa memorizzare un 1,memorizzare uno 0, oppure mantenere in memoria il dato. Queste a ività sono possibili tramite icomandi dell’alfabeto specifico della macchina. L’uscita è in grado di eme ere il dato memorizza-to, sia in forma vera, sia in forma complementata. Una memoria binaria di questo tipo è chiamatalatch.

Nota 3.1.1 – Spesso le uscite sono multiple. Si tratta di una questione di convenienza che deriva dalla struttura interna. Inessa è previsto l’impiego della forma complementata. Il costruttore ritiene opportuno e conveniente metterla a disposizionedell’utente, visto che essa è già presente. In questo modo gli risparmia l’uso di un NOT esterno, in caso di bisogno.

3.1.1 Latch SR

In figura 3.3(b) è rappresentato il latch Set-Reset (SR). Il circuito origina dalla retroazione diuna cascata di due NOR (figura 3.3(a)), considerando anche il ritardo complessivo 2τp, nel qualevigono le espressioni:

Vu = V3 ↓ (V1 ↓ V2)

V1(t + 2τp) = Vu(t)

Si definiscono due bit che rappresentano lo stato della macchina:

• q è il bit dello stato presente;

• Q è il bit dello stato futuro.

Si associano le variabili Vi a nuove grandezze:

• Vu = Q (stato futuro, prima della memoria: quello calcolato dalla rete combinatoria)

• V1 = q (stato presente, mantenuto dalla retroazione)

• V2 = S (funzione di Set)

• V3 = R (funzione di Reset)

74 3 - Reti asincrone

Page 75: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Allora si può riscrivere la funzione di stato della macchina:

Vu = V3 ↓ (V1 ↓ V2)

Q = R ↓ (q ↓ S)

= R + (q + S)= R · (q + S)

Quella o enuta è l’espressione PS del latch SR.

(a) Retroazione di NOR in cascata (b) Schema funzionale

Figura 3.3: Latch SR

(a) Iniziale

Prima DopoSet (S) Reset (R) Qn Qn+1 Descrizione

0 0 0 0 Mantiene lo stato0 0 1 1

0 1 0 0 Se a a 00 1 1 0

1 0 0 1 Se a a 11 0 1 1

1 1 0 X (indesiderato)1 1 1 X

(b) Sintetica

S R Qn+10 0 Qn0 1 01 0 11 1 X (vietata)

Tabella 3.1: Tabella di verità del latch SR

Dalla tabella di verità 3.0(b) si può notare che sono sufficienti due stati per avere un similecomportamento: Q = 0 e Q = 1.

• quando S = R = 0, si resta nello stato corrente;

• quando S = 1, si va nello stato Q = 1 e ci si resta finché non arriva un comando R = 1;

• quando R = 1, si va nello stato Q = 0 e ci si resta finché non arriva un comando S = 1.

Dalla mappa di Karnaugh (figura 3.4(b)) che deriva dalla tabella di verità si ricava il circuito infigura 3.4(c) e l’espressione SP:

Qn+1 = S + RQn

Si può passare ai circuiti a soli NAND (che però ha ingressi a ivi bassi) oppure a soli NOR, consemplici manipolazioni algebriche.

Per evitare situazioni indesiderate durante il transitorio, bisogna assicurarsi che i comandidurino un tempo τw ≥ 2τp.

3.1 - Memorie binarie 75

Page 76: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Grafo degli stati (b) Mappa di Karnaugh (c) Stru ura interna

(d) Stru ura interna a soliNOR (ingressi a ivi alti)

(e) Stru ura interna a soliNAND (ingressi a ivi bassi)

Figura 3.4: Sintesi del latch SR

3.1.2 Latch CD

In figura 3.5(a) è rappresentato il latch Controller-Data (CD). Col comando C (Controller) è pos-sibile mantenere il dato in memoria (C = 0) oppure scrivere ciò che è presente su D (C = 1). Ilvalore del comando D (Data) è quello da scrivere in memoria, quando ordinato da C.

Si può o enere un latch CD a partire da un SR, utilizzando la trascodifica in tabella 3.2 e loschema in figura 3.5(b).

C D S R0 X 0 01 0 0 11 1 1 0

Tabella 3.2: Tabella di trascodifica dal latch CD al latch SR

Per eliminare a priori l’alea statica, pericolosa nelle reti asincrone, si utilizza una espressio-ne ridondante. La stessa espressione può essere implementata in un circuito a soli NAND o a soliNOR (figure 3.5(c) e 3.5(d)).

Q = CD + Cq (espressione SP)= (C + q)(C + D) (espressione PS)= CD + Cq + Dq (espressione SP anti-alea)= (C + q)(C + D)(D + q) (espressione PS anti-alea)

= (C ↑ D) ↑((C ↑ D) ↑ q

)(espressione SP anti-alea a NAND)

= (C ↓ D) ↓((C ↓ D) ↓ q

)(espressione PS anti-alea a NOR)

Il transitorio èmaggiore del latch SRper lamaggiore lunghezza di percorsi interni. Il bit inmemoriasarà disponibile una volta che è trascorso il tempo di hold (figura 3.5(e)). Se D cambia valorementre C = 1 e il tempo di campionamento è maggiore del tempo minimo di campionamento,questo valore è riprodo o in uscita (uscite trasparenti). Per questo motivo, il latch CD non deve

76 3 - Reti asincrone

Page 77: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Schema funzionale (b) Stru ura interna basata su latch SR

(c) Stru ura interna a soliNAND

(d) Stru ura interna a soli NOR

> set-up

set-up hold

(e) Tempi di setup e hold

Figura 3.5: Latch CD

mai essere usato da solo sulla retroazione di una rete sincrona, perché rischia di memorizzare unvalore errato se si verifica il malfunzionamento descri o. Al contrario, è o imo per la costruzionedi buffer e RAM.

3.2 Eliminazione delle corse critiche e codifica degli stati

Definizione 3.4 (Corsa critica). Se una codifica pretende che sia raggiunta la stabilità quando piùsegnali cambiano allo stesso istante, allora si ha corsa critica.

La codifica degli stati non è arbitraria quando un’automa ha più di due stati, perché contribui-sce a eliminare le corse critiche.

Esiste una soluzione al problema.

Teorema 22 (di eliminazione delle corse critiche). In tu e le colonne in cui sono previste più condi-zioni di stabilità, le codifiche degli stati coinvolti in transizione devono differire per un solo bit.

Questo significa che i simboli di stato presente e di stato futuro devono avere un solo bit checambia durante la transizione.

3.2.1 Creazione di una codifica anti-corsa critica

La tabella di flusso è uno strumento potente per creare una codifica che eviti le situazioni dicorsa critica. Infa i, si hanno corse non critiche in tu e le colonne che hanno una sola situazionedi stabilità. Bisogna ricordare che nella tabella di flusso le righe di stabilità sono quelle che hannola cella interna uguale all’intestazione di riga, cioè lo stato di arrivo dovuto agli ingressi è identicoallo stato di partenza (in rosso in figura 3.6(a)).

Definizione 3.5 (Transizione multipla). Una transizione multipla è una sequenza di più stati insta-bili, al termine della quale l’automa si posiziona in uno stato stabile.

3.2 - Eliminazione delle corse critiche e codifica degli stati 77

Page 78: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Vediamo ora il procedimento da seguire per o enere una codifica priva di corse critiche.

1. Analisi delle adiacenze. Si considerano, nella tabella di flusso, solo le colonne con più con-dizione di stabilità. Si traccia un grafo delle adiacenze, conne endo gli stati agli stati futuricon rami non orientati.

2. Mappatura con codice. Si costruisce una mappa col numero minimo di variabili di statonecessarie. Si sovrappone il grafo alla mappa. Se ogni ramo collega due celle adiacenti, lacodifica non ha corse critiche. Nel caso ci siano alcuni stati non codificabili in modo adia-cente, si cerca un terzo stato adiacente a entrambi e che effe ui il collegamento: se si trova,si corregge la tabella in modo opportuno. Spesso si riesce a trovare un posizionamento sen-za corsa critica solo muovendo in maniera ”elastica” il grafo degli stati, perché si ada i nelmodo migliore alla mappa.

3. Modifica della tabella di flusso. Se non si riesce a o enere le adiacenze con gli stati dispo-nibili, si possono aggiungere transizioni multiple alla tabella di flusso. Il passo successivo èverificare di nuovo sulla mappa se tu i gli stati sono adiacenti tra loro.

4. Scelta di un codice ridondante. Se non si riesce a o enere una codifica soddisfacente colnumero minimo di variabili di stati, bisogna aumentare il numero di variabili (codice ridon-dante) e ripetere i passaggi precedenti con l’aiuto di transizioni multiple.

Se una tabella di flusso ha condizioni di indifferenza, si può sostituire una o più di queste con-dizioni con uno stato opportuno a piacimento per o enere la transizione multipla. Questa pos-sibilità è ampliata quando si usa un codice ridondante, perché esso offre tante celle con condi-zioni di indifferenza che possono essere sfru ate per impostare transizioni che rendano facile lasovrapposizione del grafo alla mappa di codifica.

Primo esempio: scambio di codifica tra stati esistenti.

1. La situazione degli stati è nella tabella di flusso di figura 3.6(a): in rosso sono evidenziate lestabilità.La colonna I1 ha una sola stabilità (00 → 00): questo evita la corsa critica quando lo stato è11 e si deve andare in 00, perché tu i gli stati vanno in 00 e quindi non è importante l’ordinecon cui cambiano i bit in ingresso, perché si raggiunge sempre la stabilità.La colonna I3 ha tre stati stabili. Questo rende critico il transito dallo stato 01 allo stato 10(cambiano entrambi i bit di stato allo stesso momento): lo stato finale stabile dipende daquale bit di stato cambia per primo. Se la sequenza fosse 01 → 00 → 10, lo stato finalesarebbe 00; se fosse invece 01 → 11 → 10, lo stato finale sarebbe 11. In entrambi i casi lostato finale non è quello previsto dalla tabella di flusso. Questa situazione è molto grave.Per risolvere la situazione bisogna cambiare la codifica degli stati, così da evitare che si debbaavere la transizione di stato con cambio simultaneo di più di un bit. Per farlo, si dispongonogli stati in collegamento in un grafo come quello di figura 3.6(b).

2. Il grafo ha un numero di stati che è potenza di due e ha connessioni semplici, quindi sisovrappone in modo facile a unamappa 2× 2 (figura 3.6(c)). Questa operazione è sufficientead avere una nuova codifica degli stati che li rende tu i adiacenti (lo stato 2 passa da 10 a11; lo stato 3 passa da 11 a 10).

3. La nuova tabella di flusso aggiornata conferma che gli stati sono adiacenti: la colonna I3 hauna sola condizione di stabilità, quindi la corsa critica è rimossa; la colonna I2 ha ancora duecondizioni di stabilità, ma cambia un solo bit da uno stato al successivo in ogni caso per cuisono state rimosse tu e le corse critiche (figura 3.6(d)).

78 3 - Reti asincrone

Page 79: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Tabella di flusso iniziale (b) Grafo delleadiacenze

(c) Mappa per determi-nare la nuova codifica

(d) Tabella di flusso corre a

Figura 3.6: Nuova codifica degli stati per eliminare la corsa critica

Secondo esempio: inserimento di transizione multipla.

1. La situazione degli stati è nella tabella di flusso di figura 3.7(a): in rosso sono evidenziate lestabilità. Il grafo che ne deriva è in figura 3.6(b).

2. È inutile sovrapporre il grafo a unamappa, perché non si o errannomai le adiacenze richie-ste (per esempio, lo stato B deve essere adiacente a tre stati nel grafo, mentre la mappa 2× 2ha solo coppie di celle adiacenti).

3. Si può modificare una transizione per avere transizioni multiple. La transizione B → C èrichiesta solo nella colonna I3, dove c’è già una transizione verso C (A → C): se si trasformaB → C in B → A → C, allora lo stato B non deve più essere adiacente a tre stati, ma solo adue. La nuova tabella di flusso in figura 3.7(c) conferma che gli stati sono ancora adiacentie non servono bit aggiuntivi. Il nuovo grafo 3.7(d) si sovrappone senza fatica a una mappa2 × 2 con la quale o enere una codifica che eviti le corse critiche (una delle possibilità èA = 00, B = 01, C = 11, D = 10).

(a) Tabella di flusso ini-ziale

(b) Grafo delleadiacenze

(c) Tabella di flusso con transi-zione multipla

(d) Grafo del-le adiacenzecon transizionemultipla

Figura 3.7: Codifica degli stati con transizione multipla

3.3 Procedimento di analisi delle reti asincrone1. Individuare le variabili di stato. Si tagliano le retroazioni: i segnali a monte del taglio sono

di stato futuro (le uscite del blocco combinatorio, da indicare con le era maiuscola), quelli avalle sono di stato presente (le era minuscola).

2. Analizzare la rete combinatoria di uscita e la rete combinatoria di aggiornamento dellostato interno. Si scrivono le espressioni delle variabili di uscita e di quelle di stato futuro(eventualmente in forma normale).

3.3 - Procedimento di analisi delle reti asincrone 79

Page 80: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

3. Individuare la tabella delle transizioni. Si crea una tabella di Karnaugh, con le configura-zioni d’ingresso e di stato; si tracciano i RR dei termini trovati in precedenza; si verifica se lacopertura previene l’alea statica.

4. Studiare le condizioni di stabilità. Si indicano (con un cerchie o) le caselle che indicano unastabilità della rete: in esse, lo stato futuro è uguale allo stato presente della riga. Si verificache ogni colonna abbia la possibilità di raggiungere la stabilità e che la codifica non abbiacorse critiche.

5. Individuare la tabella di flusso e il grafo degli stati. A ogni configurazione di stato (intabella delle transizioni) si associa una le era. O enuta la tabella di flusso, si eliminano letransizioni multiple1 e gli stati (righe) che non hanno condizioni di stabilità. Una riga puòessere eliminata se ha incroci identici ad un’altra (sono stati ridondanti).

6. Stati.Gli stati di un circuito con k retroazioni sono sempre 2k. L’automa può, però, averne unnumero inferiore. Per eliminare uno stato è sufficiente renderlo instabile per ogni ingresso,così che sia inessenziale.

3.4 Procedimento di sintesi delle reti asincroneIl procedimento di sintesi ricalca quello di analisi, effe uato al contrario; bisogna però tenere

conto di alcuni accorgimenti.

1. Individuare il grafo degli stati. Per tracciare il grafo bisogna imporre la stabilità di ognistato, rispe o alla configurazione d’ingresso con cui lo si raggiunge. Quindi bisogna evitaretransizioni multiple. Bisogna ricordare che il transitorio è breve, quindi la configurazione diuscita (sui rami) deve essere una condizione di indifferenza se il segnale di uscita varia dauno stato al successivo. Le mappe successive decideranno quale valore è più conveniente,durante il transitorio.

2. Definire la tabella di flusso.

3. Codificare gli stati, definire la tabella delle transizioni. Per eliminare le corse critiche, lacodifica stati va o enuta dal grafo delle adiacenze, sovrapposto ad una mappa col minimonumero di variabili di stato. Se non c’è adiacenza tra ogni possibile coppia (stato presente,stato futuro) si utilizza un metodo a scelta:

• si introducono transizioni multiple;• si aumenta il numero di bit di codifica.

4. Sintesi della parte combinatoria. Per eliminare l’alea statica, la copertura di 1 (o 0) deveprevedere che ogni coppia di 1 (0) adiacenti sia racchiusa in un RR di dimensioni massime.

5. Disegnare lo schema logico. Termini uguali devono essere generati dallo stesso gate. Se sidevono elaborare variabili di stato e loro complementi, invece di usare NOT e aggiungereretroazioni si possono usare latch SR sui rami in retroazione.

1Negli incroci instabili si annota lo stadio finale, stabile, che sarà raggiunto.

80 3 - Reti asincrone

Page 81: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 3.a

Una rete sequenziale asincrona è caratterizzata da due segnali di ingresso X1 e X2, che non cambianomai contemporaneamente, e da un segnale di uscita Z. Quando X1 è disattivo (X1=0), Z deve assumerevalore 0. Quando X1 è attivo, Z deve assumere l’ultimo valore presentato da X2 nel precedente intervallodi attivazione di X1.Si completi il grafo primitivo degli stati, secondo il modello di Moore (figura 3.8(b)).Si determini una codifica degli stati che garantisca l’adiacenza delle configurazioni associate ad ogni coppia(stato presente, stato futuro). Si tracci la tabella delle transizioni secondo il modello di Mealy.Si identifichi l’espressione minima SP per la variabile di stato Y1, evitando a priori il pericolo di alee statiche.

(a) Forme d’onda (b) Diagramma di Moore degli stati

Figura 3.8: [Esercizio 3.a] Esempio di funzionamento

Il modello di Moore per il grafo degli stati prevede che ad ogni stato sia associato un simbolo di uscita. Per ilcaso attuale, poiché è fornito l’inizio del grafo, possiamo attuare alcune strategie per cominciare a risolverlo:ad esempio, dove sono presenti delle stabilità, poiché sappiamo che ogni stato deve essere stabile, allora cisarà una freccia in ingresso con gli stessi dati (ingressi della macchina) indicati sulla stabilità (quale sia lostato dal quale si proviene è da trovare, analizzando il funzionamento). In generale possono essere utilizzatediversi metodi, e ognuno deve trovare quello preferito o più efficace. Anche un semplice studio, caso percaso, del circuito porta a buoni risultati, pur risultando lungo come tempi di risoluzione. Il risultato deveessere quello in figura 3.9(a).Per trovare la codifica, dopo aver costruito una mappa con 23 = 8 variabili (8 caselle), le si sovrappone ildiagramma degli stati tracciando le frecce come indicate in esso. La disposizione del diagramma precedente,pur se poco leggibile, è studiata apposta per una facile sovrapposizione. Il risultato della codifica è in figura3.9(c). La tabella delle transizioni, invece, deve avere 8 righe e 22 = 4 colonne (2 ingressi X1 e X2); le suecaselle vanno riempite, con pazienza certosina, leggendo il grafo di Moore e trascrivendo i dati di partenzae arrivo da stato a stato, al variare di X1 e X2. Durante questo meccanismo bisogna ricordare di annotare,nelle caselle, l’uscita dello stato in cui ci si trova, perché la tabella va secondo la convenzione di Mealy. Lasoluzione è in figura 3.9(b).Per trovare l’espressione SP di Y1 bisogna trasportare i valori di Y1 (in tabella transizioni) su una opportunamappa di Karnaugh. La mappa dovrà avere come variabili i due ingressi e le tre variabili y1, y2, y3. Poiché sitratta di cinque variabili, si utilizzeranno due mappe da quattro variabili, tenendo esterna una variabile daconsiderare con valore 0 per una mappa e 1 per l’altra. Trascrivendo i valori (si tratta di vedere, casella percasella, quanto vale Y1 in tabella transizioni: c’è anche una certa similitudine di posizionamento) si ottienela mappa di figura 3.9(d), dalla quale si estrapola l’espressione:

Y1 = y2X1X2 + y1y2 + y1X2 + y1X1

3.4 - Procedimento di sintesi delle reti asincrone 81

Page 82: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Diagramma di Moore degli stati (b) Tabella delle transizioni

(c) Mappa di codifica (d) Mappa di Karnaugh anti-alea

Figura 3.9: [Esercizio 3.a] Codifica degli stati e transizioni (soluzioni)

82 3 - Reti asincrone

Page 83: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 3.b

Una rete sequenziale asincrona ha due ingressi x, y ed una uscita z. Gli ingressi non cambiano mai di valorecontemporaneamente e non presentano mai entrambi il valore 1. L’uscita può cambiare di valore solo incorrispondenza dei fronti di salita di x. Il valore che z deve assumere e mantenere costante fino al frontesuccessivo è 0 se l’uscita y non ha modificato il suo valore durante il precedente intervallo x = 0, altrimentiè 1 nel caso opposto.

1. Individuare la forma d’onda del segnale d’uscita z in corrispondenza delle forme d’onda dei segnalidi ingresso x, y indicate in figura 3.10(a).

2. Completare il grafo primitivo degli stati (ogni stato deve essere stabile per una sola configurazioned’ingresso).

3. Tracciare la tabella di flusso.4. Individuare una codifica appropriata degli stati interni.5. Individuare le espressioni SP delle variabili di stato futuro, eliminando a priori alee statiche nella

realizzazione.

(a) Forme d’onda dei segnali in ingresso (b) Grafo primitivo da completare

Figura 3.10: [Esercizio 3.b] Rete sequenziale asincrona

1. La forma d’onda del segnale d’uscita z è in figura 3.11(a). Sotto a z sono indicati gli stati corrispondentidell’automa da realizzare. Si può costruire una simile sequenza di stati seguendo le forme d’onda ecostruendo il grafo per casistica.

2. Il grafo primitivo è in figura 3.11(b). Su di esso sono evidenziati in rosso i fronti di salita di x(x = 0 → 1). Nel grafo si distingono alcuni stati importanti: A e F sono gli stati in cui ci si dirigequando x = 1; B, C, D rilevano la variazione di y quando z = 0; F, G, H rilevano la variazione di yquando z = 1. Inoltre, F verifica che y = 0 sia costante tra due fronti di salita di x.

3. La tabella di flusso è in figura 3.11(b). In rosso sono cerchiate le stabilità. Si nota che le tre colonnehanno tutte stabilità multiple, quindi bisogna codificare gli stati seguendo la procedura contro le corsecritiche, che qui potrebbero essere presenti.

4. Per trovare la codifica degli stati, si traccia il grafo delle adiacenze sulla base della tabella di flusso.Il grafo 3.11(c) non aiuta a trovare una codifica corretta: gli stati A e F non sono adiacenti. Se siriposizionano gli stati, mantenendo i collegamenti, si possono trovare altre codifiche. Una codificapossibile è in figura 3.11(d): come si vede, la nuova posizione è ben sovrapponibile a una mappa2 × 4. Un’altra codifica possibile è in figura 3.11(e). Quest’ultima codifica è scelta per compilare latabella delle transizioni.

5. Le espressioni SP degli stati futuri si ricavano dalle k-mappe di A = an+1, B = bn+1 e C = cn+1

(figura 3.11(g)), che si ottengono riempiendo le mappe con i valori della tabella delle transizioni(figura 3.11(f)). Per avere le espressioni anti-alea, si effettua la copertura totale degli 1 senza eliminare

3.4 - Procedimento di sintesi delle reti asincrone 83

Page 84: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

i termini ridondanti:

an+1 = ax + bx + ab

bn+1 = ab + ay + bx + acy + bcy

cn+1 = abx + y + acx + bcx

84 3 - Reti asincrone

Page 85: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Forme d’onda dei segnali in ingresso e uscita

(b) Grafo degli stati e tabella di flusso (c) Grafo delle adiacenze non corret-to

(d) Grafo delle adiacenze cor-re o

(e) Codifica alternativa deglistati

(f) Tabella delle transizioni

(g) Espressioni SP delle variabili di stato future

Figura 3.11: [Esercizio 3.b] Grafo, tabella e codifica degli stati (soluzioni)

3.4 - Procedimento di sintesi delle reti asincrone 85

Page 86: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 3.c

Bisogna realizzare un simulatore di guida dotato di due ingressi f , c e di una uscita z:• f è il pedale della frizione (1 premuto, 0 rilasciato);• c è la leva del cambio (1 marcia inserita, 0 folle);• z è il comando di un segnalatore acustico (1 rumore di grattata, 0 nessun suono).

Si può modificare un solo ingresso alla volta. Il rumore della grattata deve essere generato:1. quando si inserisce una marcia con la frizione non premuta, fino a quando non venga dapprima

disinserita la marcia con frizione premuta e poi rilasciata la frizione;2. quando si disinserisce una marcia con la frizione non premuta, fino a quando non venga dapprima

inserita la marcia con frizione premuta e poi rilasciata la frizione.Indicare la forma d’onda del segnale d’uscita z in corrispondenza delle forme d’onda dei segnali di ingressof , c mostrate in figura 3.12(a).Completare il grafo degli stati in figura 3.12(b), mantenendo la proprietà che il primo stato di allarme siastabile per una sola configurazione.Riempire la tabella di flusso, individuare una corretta codifica degli stati e riempire la tabella delle transizioni.Riempire le mappe della variabile di stato futuro Y1 = G(y1, y2, y3, f , c) e della variabile d’uscita z =

F(y1, y2, y3, f , c) sul modello di figura 3.12(f) e individuare le migliori espressioni SP che le descrivono.

Il grafo dell’automa è completato in figura 3.12(c). È importante notare che non si può compilare unatabella di verità delle variabili, perché l’uscita dipende dagli stati precedenti, quindi il grafo è l’unico modoper interpretare il funzionamento della macchina in modo accettabile. Nel grafo si distinguono i seguenticicli di funzionamento:

• stati A → E → A: funzionamento normale (frizione premuta, inserimento/disinserimento marcia,frizione rilasciata);

• stati A → B ↔ C ↔ D → A: grattata per inserimento della marcia senza frizione;• stati E → F ↔ G ↔ H → E: grattata per disinserimento della marcia senza frizione.

Dopo il grafo si può compilare la tabella di flusso e la tabella delle transizioni in figura 3.12(d). Alcuni statinon accettano configurazioni d’ingresso, per il fatto che le variabili non possono essere modificate entrambenello stesso istante.La codifica degli stati è facilitata dal fatto che gli stati sono adiacenti in maniera circolare. Tutte le colonnehanno stabilità multiple, quindi tutte contribuiscono al grafo delle adiacenze (figura 3.12(e)).Le mappe di Y1 e z sono in figure 3.12(g) e 3.12(h). Si ricavano le seguenti espressioni:

Y1 = y1 f + y1c + y1y3 + y1y2 + y2y3 f cz = y2 + y3

86 3 - Reti asincrone

Page 87: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Forme d’onda dei segnali (soluzione) (b) Grafo degli stati da completare

(c) Grafo degli stati (soluzione) (d) Tabella di flusso, codifica degli stati e tabella delletransizioni (soluzione)

(e) Grafo delle adiacenze per codifi-ca degli stati (soluzione)

(f) Mappe di Karnaugh da completare

(g) Mappa di Karnaugh dello stato futuro Y1 (soluzio-ne)

(h) Mappa di Karnaugh dell’uscita z (soluzione)

Figura 3.12: [Esercizio 3.c] Testi e soluzioni

3.4 - Procedimento di sintesi delle reti asincrone 87

Page 88: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

88 3 - Reti asincrone

Page 89: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

CAPITOLO 4

Reti sincrone

Riesce in tu o chi si dà da farementre aspe a.

T A E

SommarioIl capitolo propone i flip-flop come evoluzione dei latch, controllati dal clock per eliminare ilproblema della corsa critica. La progettazione delle retroazioni basate sui vari tipi di flip-flop èil punto centrale per sviluppare automi robusti. Al termine del capitolo si affrontano i contatorie i registri, cioè i dispositivi sincroni che permettono operazioni evolute grazie alla gestionetramite comandi impostabili dall’utente.

Una rete sincrona è basata su una rete combinatoria, le cui retroazioni hanno un ritardo co-stante T0. Questo significa che, modificando un parametro per cambiare stato, il nuovo stato èdisponibile dopo un tempo T0.

Tu o ciò comporta che si deve considerare il tempo nelle dinamiche della rete, perché essadiventa legata alla durata dei simboli di ingresso e di uscita. I simboli di ingresso si modificanosolo agli istanti di sincronismo; lo stesso avviene, di conseguenza, per i simboli di uscita e per lostato.

Definizione 4.1 (Clock). Il clock è un segnale periodico, di solito a onda quadra, che assume valori0 e 1 in modo alternato.

L’uso del clock per scandire i tempi nei circuiti sincroni è la grande differenza con le mac-chine asincrone. Si fa riferimento ai parametri temporali riportati in tabella 4.1 per determina-re le cara eristiche del clock. Il funzionamento della macchina sincrona è scandito dai seguentipassaggi:

• prima di t − τSU − τRC − τR deve arrivare il comando di scri ura dei flip-flop;

• a t − τSU − τRC gli ingressi della rete combinatoria devono essere a regime;

• a t − τSU il blocco combinatorio che calcola lo stato futuro deve avere finito i calcoli.

Page 90: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Sulla base di questi tempi sequenziali, si o iene la frequenza massima del clock (figura 4.1):

T0 > τR + τRC + τSU

Figura 4.1: Valutazione del periodo di clock rispe o ai ritardi della rete sequenziale

t istante di tempo del fronte del clockτSU tempo minimo di set-up dei flip-flopτH tempo minimo di hold dei flip-flopτRC tempo massimo di risposta della rete combinatoriaτR tempo massimo di risposta dei flip-flop

Tabella 4.1: Parametri del clock della macchina sincrona

Una volta calcolato T0 si notano dei consistenti vantaggi di proge o. L’alea si manifesta solo ainizio intervallo, quindi i suoi effe i terminano prima dell’istante di campionamento. Per questomotivo:

• si possono ricercare e utilizzare solo espressioni minime;

• non serve adiacenza degli stati, perché il clock elimina il problema delle corse critiche: quindila codifica può essere arbitraria.

4.1 Flip-flopDefinizione 4.2 . Un flip-flop è una rete sequenziale la cui uscita a uale Qn dipende sia dal valoreistantaneo degli ingressi, sia dall’uscita precedente Qn−1.

Sono tre i tipi di flip-flop che possono essere utilizzati nelle applicazioni logiche. I comandipilotabili sono i seguenti:

• hold: conservazione dello stato e dell’uscita precedenti;

• set: impostazione dell’uscita a 1;

• reset: impostazione dell’uscita a 0;

• toggle: impostazione dell’uscita al valore complementare.

Flip-flop D (edge-triggered). Il flip-flop D è un latch CD nel quale l’ingresso C è comandato dalclock, in corrispondenza dei cui fronti di salita si campiona D e si modifica lo stato interno. La suatabella di verità 4.1(a) deriva dire amente dal comportamento del latch CD.Il grafo minimo degli stati è in figura 4.2(d). Non servirebbe, ma conviene aggiungere due stati(E e F) per compiere due transizioni multiple quando i campionamenti causano una variazionedell’uscita (figura 4.2(e)).

90 4 - Reti sincrone

Page 91: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Flip-flop JK. Ha equazione cara eristica Qn+1 = (JQ + KQ)n. La sua tabella di verità è in tabel-

la 4.1(b).

Flip-flop T. Ha equazione cara eristica Qn+1 = (T ⊕ Q)n. La sua tabella di verità è in tabel-la 4.1(c).

(a) Flip-flop D

C D Qn+1

0 0 Qn (hold)0 1 Qn (hold)1 0 0 (reset)1 1 1 (set)

(b) Flip-flop JK

J K Qn+1

0 0 Qn (hold)0 1 0 (reset)1 0 1 (set)1 1 Qn (toggle)

(c) Flip-flop T

T Qn+1

0 Qn (hold)1 Qn (toggle)

Tabella 4.2: Tabelle di verità dei flip-flop

Si può realizzare il flip-flop D utilizzando un flip-flop JK e collegando un NOT tra i due ingressi,in modo che siano sempre di valore diverso (figura 4.2(g))

Si può sintetizzare il flip-flop D a NAND. La stru ura è composta da 6 NAND: 4 per campionare,2 per memorizzare. Dalla figura 4.2(j) si nota che la stru ura è composta da tre latch SR.

I tempi cara eristici del funzionamento dei flip-flop durante il transitorio sono in figura 4.2(k).Questi tempi sono definiti per tu e le tipologie di flip-flop.

Definizione 4.3 (Tempo di setup). Tempo precedente al fronte del clock, durante il quale il segnaleD deve restare costante.

Definizione 4.4 (Tempo di hold). Tempo successivo al fronte del clock, durante il quale il segnaleD deve restare costante.

Definizione 4.5 (Tempo di risposta). Tempo successivo al fronte del clock, necessario alla macchinaper calcolare e a ribuire i valori ai segnali d’uscita.

4.2 Procedimento di analisi delle reti sincroneIl procedimento di analisi ricalca, piu osto da vicino, quello affrontato per le reti asincrone

(sezione 3.3), con le leggere differenze de ate dovute alle diverse archite ure.

1. Individuare le espressioni dei segnali in ingresso ai flip-flop.

2. Individuare le espressioni di stato futuro e di uscita.

3. Individuare la tabella delle transizioni.

4. Dedurre la tabella di flusso.

5. Dedurre il grafo degli stati.

4.2 - Procedimento di analisi delle reti sincrone 91

Page 92: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Flip-flop D (b) Flip-flop JK (c) Flip-flop T

(d) Grafo degli stati del flip-flop D

(e) Grafo degli stati del flip-flop D contransizioni multiple

(f) Grafo degli stati del flip-flop T

(g) Flip-flop D basato su flip-flop JK (h) Flip-flop T basato su flip-flop D

(i) Flip-flop T basato su flip-flop JK

(j) Realizzazione del flip-flop D conlatch SR a NAND

(k) Tempi del transitorio

Figura 4.2: Flip-flop D

92 4 - Reti sincrone

Page 93: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 4.a

Individuare le espressioni che descrivono il comportamento della rete sequenziale sincrona di figura 4.3(a).Dalle espressioni ricavate, dedurre la tabella delle transizioni.Dedurre dalla precedente tabella il grafo degli stati.Individuare quali stati sono tra loro indistinguibili e quanti stati ha l’automa minimo.Tracciare la forma d’onda del segnale d’uscita in corrispondenza della sequenza d’ingresso indicata infigura 4.3(b) e completare la descrizione a parole della relazione ingresso/uscita: ”L’uscita z assume ilvalore 1 quando l’ingresso x …e lo mantiene fino a quando …”.

(a) Circuito da analizzare

(b) Forma d’onda del segnale d’ingresso x

Figura 4.3: [Esercizio 4.a] Rete sequenziale sincrona

L’espressione SP che descrive la rete in figura 4.4 è la seguente, calcolata all’istante n (non importa lasequenzialità):

z = (x · Q1 · Q2) ·(

Q3 · (Q2 · Q1 · x · x))

= x · Q1 · Q2 + Q3 · (Q2 · Q1 · x)

= x · Q1 · Q2 + Q3 · (Q2 · Q1 · x)

= x · Q1 · Q2 + Q3 ·(

¯Q2 +¯Q1 + ¯x

)= x · Q1 · Q2 + Q3 · (Q2 + Q1 + x)

zn = (xQ1Q2 + xQ3 + Q1Q3 + Q2Q3)n

La tabella delle transizioni deve contenere il valore degli stati futuri dei flip-flop (Qn+1i ) in relazione agli stati

presenti (Qni ) e all’uscita generale presente (zn). Visto che la rete è sequenziale, si determina la relazione

tra le uscite future dei flip-flop e gli altri segnali nello stato presente:

Qn+11 = xn

Qn+12 = Qn

1

Qn+13 = zn

Queste relazioni permettono di compilare la tabella delle transizioni 4.3, perché le colonne degli stati futurisono identici ad altre colonne di stati presenti. zn deve essere calcolato sulla base dei Qn

i e di xn, per tutte

4.2 - Procedimento di analisi delle reti sincrone 93

Page 94: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

le combinazioni.Per ottenere il grafo degli stati si può usare questo metodo:

• si associa uno stato a ogni combinazione delle uscite dei flip-flop (in questo caso, otto stati);• da ogni stato devono uscire due transizioni, perché sono due le possibilità di ingresso (xn = 0 e

(xn = 1);• per ogni stato si controlla la riga corrispondente sulle tabelle delle transizioni 4.3, per capire qual è lo

stato successivo e l’uscita zn corrispondente;• si può riscrivere la tabella delle transizioni assegnando un nome agli stati, si ottiene così la tabella di

flusso 4.4; la tabella di flusso sintetica è la 4.4(a);• si disegnano gli stati e i collegamenti (figura 4.5(a)).

L’automa minimo è quello che non ha righe uguali nella tabella di flusso. In tabella 4.4(a) sono stati indicatigli stati indistinguibili, cioè le righe uguali (a coppie) che possono essere accorpate in uno stato unico. Alprimo passaggio si definisce A=C e F=H, quindi si sostituiscono tutti gli stati C con A e tutti gli stati Hcon F (tabella 4.4(b)). Al secondo passaggio si trova che B=G e dopo un’ultima sostituzione si ottiene latabella 4.6 con soli cinque stati, invece degli otto di partenza.La forma d’onda del segnale di uscita è in figura 4.5(b).La frase descrittiva può essere completata nel seguente modo: ”L’uscita z assume il valore 1 quando l’ingressox assume per la terza volta consecutiva il valore 1 e lo mantiene fino a quando non si verificano tre 0consecutivi”.

Figura 4.4: [Esercizio 4.a] Rete sequenziale sincrona con annotazione dei segnali

xn = 0 xn = 1Qn

1 Qn2 Qn

3 Qn+11 Qn+1

2 Qn+13 zn Qn+1

1 Qn+12 Qn+1

3 zn

= xn = Qn1 = zn = xn = Qn

1 = zn

0 0 0 0 0 0 0 1 0 0 00 0 1 0 0 0 0 1 0 1 10 1 0 0 0 0 0 1 0 0 00 1 1 0 0 1 1 1 0 1 11 0 0 0 1 0 0 1 1 0 01 0 1 0 1 1 1 1 1 1 11 1 0 0 1 0 0 1 1 1 11 1 1 0 1 1 1 1 1 1 1

Tabella 4.3: [Esercizio 4.a] Tabella delle transizioni (soluzione)

94 4 - Reti sincrone

Page 95: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

xn = 0 xn = 1Stato Qn

1 Qn2 Qn

3 Stato Qn+11 Qn+1

2 Qn+13 zn Stato Qn+1

1 Qn+12 Qn+1

3 zn

succ. = xn = Qn1 = zn succ. = xn = Qn

1 = zn

A 0 0 0 A 0 0 0 0 E 1 0 0 0B 0 0 1 A 0 0 0 0 F 1 0 1 1C 0 1 0 A 0 0 0 0 E 1 0 0 0D 0 1 1 B 0 0 1 1 F 1 0 1 1E 1 0 0 C 0 1 0 0 G 1 1 0 0F 1 0 1 D 0 1 1 1 H 1 1 1 1G 1 1 0 C 0 1 0 0 H 1 1 1 1H 1 1 1 D 0 1 1 1 H 1 1 1 1

Tabella 4.4: [Esercizio 4.a] Tabella di flusso (soluzione)

(a) Prima scrematura di stati indistinguibili

Stato Codifica x = 0 x = 1 Statiindisting.

A 000 A,0 E,0 *B 001 A,0 F,1C 010 A,0 E,0 *D 011 B,1 F,1E 100 C,0 G,0F 101 D,1 H,1 **G 110 C,0 H,1H 111 D,1 H,1 **

(b) Seconda scrematura di stati indistinguibili

Stato Codifica x = 0 x = 1 Statiindisting.

A 000 A,0 E,0B 001 A,0 F,1 ***D 011 B,1 F,1E 100 A,0 G,0F 101 D,1 F,1G 110 A,0 F,1 ***

Tabella 4.5: [Esercizio 4.a] Tabella di flusso sintetica (soluzione)

(a) Grafo degli stati (b) Forma d’onda

Figura 4.5: [Esercizio 4.a] Grafo degli stati e forma d’onda (soluzione)

Stato Codifica x = 0 x = 1

A 000 A,0 E,0B 001 A,0 F,1D 011 B,1 F,1E 100 A,0 B,0F 101 D,1 F,1

Tabella 4.6: [Esercizio 4.a] Tabella di flusso dell’automa minimo, finale (soluzione)

4.2 - Procedimento di analisi delle reti sincrone 95

Page 96: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

4.3 Procedimento di sintesi delle reti sincroneAnche il procedimento di sintesi deriva da quello asincrono (sezione 3.4), portando con sé le

eccezioni dovute alle esigenze del proge ista.

1. Individuare il grafo degli stati. A differenza delle reti asincrone, non è indispensabile cheogni stato sia stabile per l’ingresso che lo ha determinato.

2. Definire la tabella di flusso.

3. Codificare gli stati e definire la tabella delle transizioni.A causa della generalità degli statiutilizzabili, anche instabili, il codice può essere qualsiasi e non ridondante. Infa i, la sceltadel clock con T0 > ∑ τ elimina a priori le corse critiche.

4. Scegliere i flip-flop. Dopo aver scelto il tipo di flip-flop, si calcolano gli altri dati come daistruzioni.

5. Sintesi della parte combinatoria. La variabile di stato presente Qn corrisponde all’uscita Q.Gli ingressi, invece, dipendono dal caso specifico.

6. Disegnare lo schema logico.

4.3.1 Sintesi con flip-flopSi possono usare i flip-flop per retroazionare una rete combinatoria. La scelta di uno dei tre

tipi di flip-flop condiziona il proge o.Supponiamo di codificare con le variabili y1 e y2 lo stato dell’automa e vediamo come si devono

impostare i diversi tipi di flip-flop. In tu i i casi si deve riempire la tabella delle transizioni con levariabili di stato e poi fare la coperturaminima delle k-mappe, visto che le alee non sono pericolosenelle reti sincrone.

Sintesi con flip-flop D. All’ingresso D deve essere collegato alla realizzazione della variabile distato futuro (quindi yn+1

1 , yn+12 ). La copertura minima delle k-mappe per tu e le yn+1

i dà subito leespressioni di sintesi da implementare con una rete combinatoria.

Sintesi con flip-flop JK. Gli ingressi J e K non corrispondono a segnali di ingresso precisi, maalle transizioni che deve effe uare lo stato presente Qn verso lo stato futuro Qn+1. Le transizioniin tabella 4.7 corrispondono alla tabella di verità del flip-flop JK. La procedura complessiva è laseguente:

1. si fanno le mappe per yn+11 e yn+1

2 ;

2. si segnano sulle mappe i valori che cambiano tra uno stato e il successivo;

3. si compila una mappa Ji per ogni stato Jn+1i (nel nostro caso due mappe Jn

1 e Jn2 ), nella quale

si applicano le regole della tabella:

• le celle ”marcate” con valore 0 diventano –;• le celle ”marcate” con valore 1 restano 1;• le celle non marcate con valore 0 restano 0;• le celle non marcate con valore 1 diventano –.

4. si compila una mappa Ki per ogni stato Kn+1i (nel nostro caso due mappe Kn

1 e Kn2 ), nella

quale si applicano le regole della tabella:

• le celle ”marcate” con valore 0 diventano 1;

96 4 - Reti sincrone

Page 97: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

• le celle ”marcate” con valore 1 diventano –;• le celle non marcate con valore 0 diventano –;• le celle non marcate con valore 1 diventano 0.

5. si fa la copertura minima delle k-mappe Jni e Kn

i .

Sintesi con flip-flop T. L’ingresso T non corrisponde a un segnale di ingresso preciso, ma al-le transizioni che deve effe uare lo stato presente Qn verso lo stato futuro Qn+1. Le transizioniin tabella 4.7 corrispondono alla tabella di verità del flip-flop T. La procedura complessiva è laseguente, analoga a quella del flip-flop JKma semplificata:

1. si fanno le mappe per yn+11 e yn+1

2 ;

2. si segnano sulle mappe i valori che cambiano tra uno stato e il successivo;

3. si compila unamappa Ti per ogni stato Tn+1i (nel nostro caso duemappe Tn

1 e Tn2 ), nella quale

si applicano le regole della tabella:

• le celle ”marcate” diventano 1;• le celle non marcate diventano 0.

4. si fa la copertura minima delle k-mappe Tni .

Qn Qn+1 Jn Kn Tn

0 0 0 – 00 1 1 – 11 0 – 1 11 1 – 0 0

Tabella 4.7: Sintesi con flip-flop JK e T

Nel seguito, gli esercizi 4.b e 4.d affrontano il proge o della retroazione con tu e le tipologiedi flip-flop.

Esercizio 4.b

Una rete sequenziale sincrona ha il compito di riprodurre sulla sua uscita z il valore presente sul suo ingressox, con due intervalli di clock di ritardo, solo se il valore di x perdura per più di due intervalli. Se il valoredi x è presente solo per uno o per due intervalli, l’uscita z deve ignorarlo e mantenere il valore che averaprima della variazione di x.Determinare la forma d’onda di z sulla base di quella fornita di x.Completare il grafo degli stati.Tracciare la tabella di flusso, codificare gli stati e riempire la tabella delle transizioni.Sintetizzare la variabile di stato y1 con flip-flop D, poi con flip-flop JK e infine con flip-flop T.

La forma d’onda di z rispetto a x è in figura 4.6(a). Già dalla forma d’onda si possono identificare gli statiche deve attraversare la macchina per identificare la sequenza e cambiare stato all’uscita; l’indicazione deglistati è riportata in blu sotto le forme d’onda.Il grafo degli stati è in figura 4.6(b). La relativa tabella di flusso è in figura 4.7(a). Da questa tabella dipassa alla tabella delle transizioni sostituendo al nome degli stati il codice attribuito: poiché la macchina è

4.3 - Procedimento di sintesi delle reti sincrone 97

Page 98: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

sincrona, la codifica può essere del tutto arbitraria. Per semplicità si è scelta una codifica progressiva a trebit, nella quale non sono usate le due configurazioni 110 e 111 perché gli stati da codificare sono solo sei.La sintesi con flip-flop D della variabile di stato y1 si ottiene riempiendo la k-mappa 4.6(c) con i valori cheassume y1 nella tabella delle transizioni, quindi coprendo la k-mappa:

yn+11 = y1y3 x + y2y3 x

La sintesi con flip-flop JKdella variabile di stato y1 si ottiene prendendo la k-mappa 4.6(c) e marcando ivalori che cambiano nelle transizioni di stato (annotati in giallo). Sulla base di questi valori e delle regole disintesi, si ottengono le mappe di J1 e K1 in figura 4.6(d) e le relative espressioni:

J1 = y2y3 xK1 = x + y3

La sintesi con flip-flop D della variabile di stato y1 si ottiene prendendo la k-mappa 4.6(c) e marcando ivalori che cambiano nelle transizioni di stato (annotati in giallo). Sulla base di questi valori e delle regole disintesi, si ottiene la mappa di T1 in figura 4.6(e) e la relativa espressione:

T1 = y2y3 x + y1x + y1y3

(a) Forma d’onda (b) Grafo degli stati

(c) Sintesi con flip-flop D (d) Sintesi con flip-flop JK (e) Sintesi con flip-flop T

Figura 4.6: [Esercizio 4.b] Rete sequenziale sincrona (soluzione)

Esercizio 4.c

98 4 - Reti sincrone

Page 99: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Tabella di flusso

Stato x = 0 x = 1

A A,0 B,0B A,0 C,0C A,0 D,1D E,1 D,1E F,1 D,1F A,0 D,1

(b) Tabella delle transizioni

Stato y1 y2 y3 x = 0 x = 1

A 0 0 0 000,0 001,0B 0 0 1 000,0 010,0C 0 1 0 000,0 011,1D 0 1 1 100,1 011,1E 1 0 0 101,1 011,1F 1 0 1 000,0 011,1– 1 1 0 – –– 1 1 1 – –

Tabella 4.8: [Esercizio 4.b] Tabella di flusso e tabella delle transizioni (soluzione)

Progettare un semaforo stradale per una sola direttrice di marcia (quindi non per un incrocio: ad esempio,un semaforo a chiamata pedonale).

Il grafo di un semaforo deve essere necessariamente di Moore, perché ogni stato deve indicare quali sonoi valori da comandare sulle uscite, per accendere o spegnere le lampade. Il grafo richiede una successionedi sette stati, in ciascuno dei quali la macchina permane per un tempo pari al periodo T0 (figura 4.7). Ilperiodo deve essere determinato in base ai tempi di accensione delle varie lampade.Nella prima colonna della tabella di flusso 4.9 sono elencati i possibili stati presenti. I corrispondenti valoridella funzione di stato futuro sono indicati nella seconda colonna. La funzione di stato presente ha bisognodi tre colonne per indicare quale deve essere la situazione delle tre lampade in corrispondenza di ogni statopresente.Una volta individuata la tabella di flusso, il procedimento di sintesi richiede che lo stato interno e l’uscita sianorappresentati con stringhe binarie. Si ottiene così la tabella delle transizioni 4.10, a partire dalla codifica distato. Si è deciso di codificare lo stato con un codice non ridondante (sette delle otto possibili configurazionidi 3 bit e in particolare i primi sette interi del sistema di numerazione in base 2); l’uscita è già di fattocodificata con il codice ridondante ”1 su 3”.La funzione di stato futuro richiede che il numero binario corrispondente allo stato presente sia incrementatodi una unità a ogni comando del clock: il comportamento complessivo è quello di un contatore che contamodulo 7. La funzione di uscita trascodifica questi sette numeri binari in configurazioni del codice ”1 su 3”.

Figura 4.7: [Esercizio 4.c] Grafo degli stati di un semaforo per una strada (soluzione)

Esercizio 4.d

Implementare il progetto del semaforo per una direttrice di marcia (esercizio 4.c) con logica combinatoriadi base e flip-flop D, JK e T.

4.3 - Procedimento di sintesi delle reti sincrone 99

Page 100: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Stato LampadePresente Futuro Verde Gialla Rossa

V1 V2 ACCESA spenta spentaV2 V3 ACCESA spenta spentaV3 G ACCESA spenta spentaG R1 spenta ACCESA spentaR1 R2 spenta spenta ACCESAR2 R3 spenta spenta ACCESAR3 V1 spenta spenta ACCESA

Tabella 4.9: [Esercizio 4.c] Tabella di verità del semaforo per una strada (soluzione)

Stato yn1 yn

1 yn1 yn+1

1 yn+11 yn+1

1 Uscita zn1 zn

1 zn1

Verde 1 0 0 0 0 0 1 Verde 1 0 0Verde 2 0 0 1 0 1 0 Verde 1 0 0Verde 3 0 1 0 0 1 1 Verde 1 0 0Giallo 0 1 1 1 0 0 Giallo 0 1 0Rosso 1 1 0 0 1 0 1 Rosso 0 0 1Rosso 2 1 0 1 1 1 0 Rosso 0 0 1Rosso 3 1 1 0 0 0 0 Rosso 0 0 1– 1 1 1 1 1 1 – 0 0 0

Tabella 4.10: [Esercizio 4.c] Tabella delle transizioni del semaforo per una strada (soluzione)

S = y1y2y3 è la funzione di stato, u = z1z2z3 è la funzione d’uscita (tabella 4.10). Per sintetizzare ilsemaforo con flip-flop D bisogna fare la copertura delle k-mappe delle variabili di stato yn+1

i , mentre lacopertura delle k-mappe delle variabili d’uscita zn

i permette di costruire la rete combinatoria che calcola leuscite (figura 4.8(a)):

yn+11 = (y1y2 + y2y3)

n

yn+12 = (y2y3 + y1y2y3)

n

yn+13 = (y2y3 + y1y3)

n

zn1 = (y1y2 + y1y3)

n

zn2 = (y2y3)

n

zn3 = (y1)

n

Per sintetizzare l’automa con flip-flop JK, si prendono le mappe di yn+1i e si evidenziano le celle che cambiano

valore a causa delle transizioni di stato; poi si compilano le mappe per Jni e Kn

i . Allo stesso modo si procedeper sintetizzare il semaforo con flip-flop T (figura 4.8(b)). Si ottengono così le espressioni per i flip-flop:

J1 = y2y3

K1 = y2

J2 = y3

K2 = y1 + y3

J3 = 1

K3 = 1

T1 = y1y2 + y2y3

T2 = y1y2 + y3

T3 = y1 + y2

100 4 - Reti sincrone

Page 101: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) k-mappe delle variabili di stato e d’uscita, perflip-flop D

(b) k-mappe per flip-flop JK e T

Figura 4.8: [Esercizio 4.d] Sintesi con flip-flop del semaforo (soluzione)

Esercizio 4.e

Estendere il progetto del semaforo (esercizio 4.c) a un incrocio per due strade, con le seguenti specifiche:• il rosso e il verde devono durare 60 secondi;• il giallo deve accendersi per 20 secondi.

Se si sceglie un tempo di clock pari a 20 secondi (massimo comun divisore delle due temporizzazioni), si puòpensare di dividere i tempi di rosso e verde in tre stati ciascuno, tutti di durata 20 secondi (V1, V2, V3 per ilverde; R1, R2, R3 per il rosso). Un settimo stato G serve a pilotare il giallo; visto che il funzionamento deveessere simmetrico come tempi, serve un ottavo stato (R4) per accendere il giallo anche sull’altro semaforo.Questi stati non devono comandare il singolo semaforo, ma la coppia, per cui il nome dello stato è rappre-sentativo solo di un semaforo: l’altro ha le luci che si accendono in modo complementare per evitare chedue verdi siano accesi nello stesso momento.Le lampade dei semafori sono S1R, S1G, S1V e S2R, S2G, S2V . La sequenza di accensione delle lampade deveseguire la sequenza degli stati, come in tabella 4.11.

Figura 4.9: [Esercizio 4.e] Grafo degli stati di un semaforo per due strade (soluzione)

4.3 - Procedimento di sintesi delle reti sincrone 101

Page 102: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Stato LampadePresente Futuro S1V S1G S1R S2V S2G S2R

V1 V2 1 0 0 0 0 1V2 V3 1 0 0 0 0 1V3 G 1 0 0 0 0 1G R1 0 1 0 0 0 1R1 R2 0 0 1 1 0 0R2 R3 0 0 1 1 0 0R3 R4 0 0 1 1 0 0R4 V1 0 0 1 0 1 0

Tabella 4.11: [Esercizio 4.e] Tabella di verità del semaforo per due strade (soluzione)

102 4 - Reti sincrone

Page 103: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

4.4 Contatore binarioDefinizione 4.6 (Contatore). Un contatore è una rete che ha per grafo un ciclo di tu i (o quasi1) glistati interni.

Un contatore è cara erizzato da:

1. numero di stati del ciclo (base di conteggio);

2. codifica degli stati.

In un contatore binario la codifica è binaria, mentre la base di conteggio è una potenza di 2.

Figura 4.10: Contatore (a 4 bit)

Proprietà dei contatori.

• Le uscite dei flip-flop sono onde quadre.

• L’uscita relativa al bit 2i ha periodo doppio dell’uscita relativa al bit 2i−1.

• L’uscita relativa al bit 20 divide per due la frequenza del clock. L’uscita relativa al bit 2i

divide per 2i+1 la frequenza del clock. Quindi un contatore può essere usato come divisoredi frequenza.

Comandi asincroni del contatore. I comandi asincroni agiscono sul contatore per modificarneil comportamento.

EN (enable) abilita la modifica dello stato interno.

RES (reset) impone una configurazione iniziale nulla.

LOAD impone una configurazione iniziale qualsiasi.

U/D’ (up/down) percorre il ciclo di conteggio incrementando o decrementando.

Le uscite di tu i i flip-flop interni sono raccolte in un unico AND (denominato Carry Out (CO)):questa porta verifica quando è presente una configurazione con tu i 1, cioè si è giunti a fine con-teggio. Conne endo il CO di un contatore all’EN di un altro contatore, si o iene un unico contatoreche ha per base il prodo o delle basi dei due contatori. Per avere un contatore con base più piccola,partendo da uno esistente, si sfru ano i comandi di EN e RES (esercizi 4.g e 4.h).

Si può usare il contatore come elemento di retroazione per memorizzare lo stato interno diuna rete sequenziale. Infa i, un contatore con LOAD=1 è un accumulatore che può retroazionareuna rete di calcolo dello stato futuro.

1Nei contatori possono essere previsti stati, richiamati da comandi appositi, nei quali non si sta effe uando il conteggioma altre operazioni: ad esempio, stati di test di funzionamento delle uscite, stati di non abilitazione del dispositivo, eccetera.

4.4 - Contatore binario 103

Page 104: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Esercizio 4.f

Utilizzare un contatore per retroazionare una macchina con cinque stati codificati in maniera progressiva,nella quale lo stato stabile è 0; quando l’ingresso ha valore 1 devono essere scanditi i cinque stati comeritardo (corrispondono a cinque cicli di clock).

Un contatore a tre bit incrementa e scorre tutti i suoi stati, che corrispondono ai numeri in codifica binariada 0 a 7: quindi ci sono abbastanza stati per realizzare la macchina sequenziale.Il contatore avvia il conteggio e scorre gli stati solo quando EN=1. La rete combinatoria deve impostareEN=0 quando c’è stabilità nello stato corrente. Quando la macchina deve scorrere allo stato successivoperché l’ingresso è 1, la rete combinatoria deve comandare EN=1 fino a che l’uscita del contatore vale 5:quindi, è sufficiente la funzione OR di tutte le uscite del contatore perché ciò avvenga. Con l’OR, EN=0quando l’ingresso è 0 e il contatore è nello stato 0, il che è corretto.La rete combinatoria deve comandare RES=1 quando l’uscita del contatore è 5, oppure quando tutte le uscitedel contatore sono a 1 (7).L’uscita della macchina sequenziale deve essere ottenuta da una rete combinatoria opportuna che elabori leuscite del contatore.

Esercizio 4.g

Realizzare un contatore con base di conteggio 10, a partire da un contatore binario a 4 bit.

Un contatore binario a 4 bit è a base 16, se si usano tutte le uscite senza programmare gli ingressi. Per avereuna base più piccola, ad esempio base 10, bisogna sintetizzare una rete combinatoria connessa alle uscite delcontatore, che riconosca il valore 10 al proprio ingresso. Questa rete deve comandare 1 (verso il RES) solocon il proprio ingresso a 10. La tabella di verità 4.12 mostra che questa rete deve essere un AND a quattroingressi:

RES = Qd · Qc · Qb · Qa

La rete che realizza il contatore a base 10 è in figura 4.11.

Figura 4.11: [Esercizio 4.g] Contatore a base 10 (soluzione)

104 4 - Reti sincrone

Page 105: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Qd Qc Qb Qa Decimale Uscita R.C. = Ingresso RES

0 0 0 0 0 00 0 0 1 1 00 0 1 0 2 00 0 1 1 3 00 1 0 0 4 00 1 0 1 5 00 1 1 0 6 00 1 1 1 7 01 0 0 0 8 01 0 0 1 9 01 0 1 0 10 11 0 1 1 11 01 1 0 0 12 01 1 0 1 13 01 1 1 0 14 01 1 1 1 15 0

Tabella 4.12: [Esercizio 4.g] Tabella di verità per la rete combinatoria di reset (soluzione)

Qh Qg Q f Qe Qd Qc Qb Qa Decimale Uscita R.C. = Ingresso RES

......

......

......

......

... 00 0 1 1 1 1 0 0 60 1...

......

......

......

...... 0

Tabella 4.13: [Esercizio 4.h] Tabella di verità per la rete combinatoria di reset (soluzione)

Esercizio 4.h

Realizzare un contatore con base di conteggio 60, a partire da due contatori binari a 4 bit.

Un contatore binario a 4 bit è a base 16, se si usano tutte le uscite senza programmare gli ingressi. Per avereuna base più grande, ad esempio base 60, bisogna:

• affiancare due o più contatori, in modo che sia raggiungibile la base desiderata. In questo caso, duecontatori offrirebbero 8 bit, cioè base 64, per cui questa è la scelta giusta;

• sintetizzare una rete combinatoria connessa alle uscite dei contatori, che riconosca il valore 60 alproprio ingresso. Questa rete deve comandare 1 (verso tutti i RES) solo con il proprio ingresso a 60.La tabella di verità 4.13 mostra che questa rete deve essere un AND a quattro ingressi:

RES = Qh · Qg · Q f · Qe · Qd · Qc · Qb · Qa

La rete che realizza il contatore a base 60 è in figura 4.12.

Esercizio 4.i

Implementare il semaforo per una strada a doppio senso alternato (tabella di flusso 1.13) con una retecombinatoria a NAND retroazionata da un contatore binario a 4 bit con comandi di EN e U/D’.

4.4 - Contatore binario 105

Page 106: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

Figura 4.12: [Esercizio 4.h] Contatore a base 60 (soluzione)

Lo schema a blocchi della macchina sequenziale che permette il funzionamento del semaforo è in figu-ra 4.13(a). Le grandezze indicate in figura sono quelle utilizzate nell’esercizio 1.f. Si usa la codifica deglistati già disponibile, associandola alle combinazioni di uscita del contatore (tabella 4.13(a)): allora, per pas-sare da uno stato al successivo, è sufficiente incrementare o decrementare il valore del contatore, perché glistati sono adiacenti. I bit di uscita del contatore variano in base ai comandi EN e U/D’, col comportamentodescritto in tabella 4.13(b). Questa analisi permette di riempire la tabella 4.13(c) coi comportamenti darichiedere al contatore per ottenere le transizioni degli stati, sulla base della tabella di flusso. Dalla tabelladei comportamenti si ricavano le k-mappe dei due comandi EN e U/D’(figura 4.13(b)), da cui si ricavano leespressioni minime e quelle a NAND:

EN = O1x2 + O0x2 + O1x1 + O1O0 x1 + O1O0x1 + O1O0 x2

= O1(O0 x1 + O0x1) + x2(O1 + O0) + O1(x1 + O0 x2)

= O1 ↑ (O0 ↑ x1 + O0 ↑ x1) + x2 ↑ ( ¯O1 · O0) + O1 ↑ (x1 + O0 ↑ x2)

=

[O1 ↑

((O0 ↑ x1) · (O0 ↑ x1)

)]· [x2 ↑ (O1 ↑ O0)] ·

[O1 ↑

(x1 · (O0 ↑ x2)

)]=

[O1 ↑

((O0 ↑ x1) ↑ (O0 ↑ x1)

)]↑ [x2 ↑ (O1 ↑ O0)] ↑

[O1 ↑

(x1 ↑ (O0 ↑ x2)

)]U/D’ = x2 + O1 x1 + O1O0 + O1x1

= x2 + O1(x1 + O0) + O1x1

= x2 + O1 ↑ ( ¯x1 · O0) + O1 ↑ x1

= x2 ·[O1 ↑ (x1 ↑ O0)

]· (O1 ↑ x1)

= x2 ↑[O1 ↑ (x1 ↑ O0)

]↑ (O1 ↑ x1)

Le implementazioni della rete combinatoria a NAND per avere EN e U/D’ sono in figura 4.13.

106 4 - Reti sincrone

Page 107: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

(a) Codifica degli sta-ti tramite le uscite delcontatore

Stato O1 O0

A 0 0B 0 1C 1 0D 1 1

(b) Tabella di verità dei comandi delcontatore

EN U/D’ O1n+1 O0

n+1

0 0 O1n O0

n

0 1 O1n O0

n

1 0 (O1O0)n − 1

1 1 (O1O0)n + 1

(c) Tabella dei comportamenti del conta-tore

x1, x2Qn 00 01 10 11

A EN=0 +1 –1 +1B +1 +1 EN=0 +1C EN=0 –1 +1 +1D +1 EN=0 +1 +1

Tabella 4.14: [Esercizio 4.i] Semaforo per strada a senso unico alternato (soluzione)

(a) Schema a blocchi (b) Schema a blocchi

(c) Implementazione di EN (d) Implementazione di U/D’

Figura 4.13: [Esercizio 4.i] Rete combinatoria a NAND (soluzione)

4.4 - Contatore binario 107

Page 108: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

4.5 Registro accumulatore

Definizione 4.7 (Registro). Un registro è un parallelo di flip-flop (di solito di tipo D).

Definizione 4.8 (Accumulatore). Un registro posto in retroazione a una rete combinatoria è definitoaccumulatore.

Un registro accumulatore (figura 4.14(a)) deve avere le seguenti funzioni, pilotate da appositicomandi esterni:

a) inizializzarsi (di solito a 0);

b) aggiornarsi con nuovi dati, calcolati dalla rete combinatoria;

c) memorizzare i dati (R).

Le funzioni sono possibili tramite i comandi Write Enable (WE) e Reset (RES), con le combinazioniin tabella 4.15. L’uscita della singola cella di memoria è determinata dalla seguente espressione:

Qin+1 =

(RES · (I1 · WE + Qi · WE)

)n

Il comando RES è prioritario rispe o al comando WE. La realizzazione circuitale della cella base conflip-flop D è in figura 4.14(b).

Se si usa un flip-flop JK al posto di un flip-flop D (figura 4.14(c)), le espressioni diventano:

Ji = RES · WE · Ii

Ki = RES + WE · Ii

(a) Schema funzionale (b) Stru ura interna, basata su flip-flop D

(c) Stru ura interna, basata su flip-flop JK

Figura 4.14: Registro accumulatore

WE RES Rn+1

0 0 Rn (memoria)0 1 0 (inizializzazione)1 0 G(R, I) (aggiornamento)1 1 0 (inizializzazione)

Tabella 4.15: Tabella di verità del registro accumulatore

108 4 - Reti sincrone

Page 109: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

4.6 Registro a scorrimentoDefinizione 4.9 (Registro a scorrimento). Un registro a scorrimento è una serie di flip-flop.

In un registro a scorrimento, ogni flip-flop conserva in memoria un bit della serie (prelevabilesulla propria uscita). L’ingresso del registro, che è poi l’ingresso del primo flip-flop, è chiamatoSerial Input (SI), mentre l’uscita del registro, cioè quella dell’ultimo flip-flop, è Serial Output (SO).Lo schema di un registro a scorrimento è in figura 4.15.

Figura 4.15: Registro a scorrimento (a 3 bit)

I valori dell’ingresso x scorrono da sinistra verso destra scanditi dai colpi del clock, secondo lerelazioni che definiscono le tre variabili di stato:

Q0n+1 = xn

Q1n+1 = Q0

n

Q2n+1 = Q1

n

Con i registri a scorrimento è possibile realizzare:

• linee di ritardo;

• riconoscitori di sequenze;

• convertitori seriale/parallelo;

• meccanismi per il conteggio;

• la rotazione di una stringa;

• la moltiplicazione (o divisione) di un numero binario per una potenza di 2.

4.6.1 Universal Shift Register (USR)Per perme ere al registro a scorrimento di far scorrere il dato non sono da sinistra verso de-

stra, ma pure in senso opposto, e per ampliarne la maneggevolezza, ogni flip-flop del registro ascorrimento è preceduto da un MUX a 4 ingressi (figura 4.16). Selezionando l’ingresso opportunoè possibile utilizzare la funzione corrispondente (tabella 4.16).

Figura 4.16: Cella base di un USR

Gli USR sono impiegati in molte applicazioni, tra cui alcuni contatori con codifiche particolari.

4.6 - Registro a scorrimento 109

Page 110: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

A0n A1

n Qin+1

0 0 Qin (hold) (conservazione stato)

0 1 Qi+1n (left) (sinistra)

1 0 Qi−1n (right) (destra)

1 1 Iin (load) (caricamento bit esterno)

Tabella 4.16: Tabella di verità dell’USR

Contatore ad anello. Un ciclo di conteggio in base 4 può essere o enuto facendo scorrere unsolo 1 di continuo, dal primo all’ultimo flip-flop (tabella di verità 4.16(a)). Un contatore ad anellosi realizza conne endo tra loro SO e SI di un USR (figura 4.17(a)). Bisogna essere sicuri che gli statidel ciclo siano davvero configurazioni del codice ”uno su qua ro”, quindi è prudente inizializzareil circuito con una di queste (ad esempio, 1000).

Contatore Johnson (a riempimento/svuotamento). Un ciclo di conteggio in base 8 può essereo enuto introducendo degli 1 nel registro fino a quando non ne è tu o pieno ed introducendopoi degli 0 fino a quando non ne è tu o pieno (tabella di verità 4.16(b)). Tale contatore è de o diJohnson o a riempimento/svuotamento. Per realizzarlo occorre collegare a SI il complemento diSO (figura 4.17(b)). Anche in questo caso bisogna preoccuparsi della corre a inizializzazione delcircuito (ad esempio con 0000).

(a) Contatore ad anello (b) Contatore Johnson

Figura 4.17: Applicazioni degli USR

(a) Codice ”uno su qua ro”

Q3 Q2 Q1 Q0 Decimale

1 0 0 0 80 1 0 0 40 0 1 0 20 0 0 1 1

(b) Codice Johnson

Q3 Q2 Q1 Q0 Decimale

0 0 0 0 01 0 0 0 81 1 0 0 121 1 1 0 141 1 1 1 150 1 1 1 70 0 1 1 30 0 0 1 1

Tabella 4.17: Tabelle di verità di contatori realizzati con USR

110 4 - Reti sincrone

Page 111: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Elenco delle figure

1.1 Display a se e segmenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.2 Tipi di trasmissione in serie e parallelo . . . . . . . . . . . . . . . . . . . . . . . . . . 191.3 Realizzazione a gate di EX-OR e EX-NOR . . . . . . . . . . . . . . . . . . . . . . . . . . 211.4 Diagramma di Venn del teorema dell’assorbimento (I) . . . . . . . . . . . . . . . . . 231.5 Definizione del ritardo totale di una rete logica . . . . . . . . . . . . . . . . . . . . . 271.6 Schema a blocchi di una porta logica reale . . . . . . . . . . . . . . . . . . . . . . . . 281.7 Ritardo puro e ritardo inerziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.8 Ritardo puro, alea statica e alea dinamica . . . . . . . . . . . . . . . . . . . . . . . . 291.9 Conseguenze dell’alea statica su una porta OR . . . . . . . . . . . . . . . . . . . . . . 291.10 Macchina combinatoria reale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.11 Macchine sequenziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.12 Tempistica della macchina asincrona . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.13 Tipi di diagrammi degli stati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331.14 [Esercizio 1.d] Diagrammi degli stati da completare . . . . . . . . . . . . . . . . . . 341.15 [Esercizio 1.d] (soluzione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.16 [Esercizio 1.e] Porta automatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.17 [Esercizio 1.e] Grafo degli stati e tabella di flusso (soluzione) . . . . . . . . . . . . . 361.18 [Esercizio 1.f] Semaforo per senso unico alternato . . . . . . . . . . . . . . . . . . . 37

2.1 Implicanti e implicati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.2 Esempi di k-mappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.3 k-mappa a 5 variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.4 Celle adiacenti in k-mappe a 5 e 6 variabili . . . . . . . . . . . . . . . . . . . . . . . 432.5 [Esercizio 2.a] Ricerca delle espressioni minime tramite k-mappa (soluzione) . . . 452.6 [Esercizio 2.b] Mappa di Karnaugh e RR (soluzione) . . . . . . . . . . . . . . . . . . 452.7 Dimostrazione dei teoremi dell’assorbimento, con k-mappe . . . . . . . . . . . . . . 472.8 [Esercizio 2.c] Riduzione di un’espressione tramite k-mappa (soluzione) . . . . . . 472.9 [Esercizio 2.d] Riduzione di un’espressione tramite k-mappa (soluzione) . . . . . . 482.10 [Esercizio 2.e] EX-OR sintetizzato a soli NAND (soluzione) . . . . . . . . . . . . . . . . 502.11 [Esercizio 2.f] Porte logiche a disposizione per comporre AND e OR a tre ingressi . . 502.12 [Esercizio 2.f] Sintesi di AND e OR a tre ingressi con NAND e NOR (soluzione) . . . . . . 512.13 [Esercizio 2.g] Porta logica da stabilire . . . . . . . . . . . . . . . . . . . . . . . . . . 512.14 Schemi di decoder a due variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.15 Schema funzionale dell’encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.16 MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.17 [Esercizio 2.h] Implementazione anti-alea del MUX . . . . . . . . . . . . . . . . . . . 55

Page 112: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

2.18 [Esercizio 2.i] Realizzazione di MUX a NOR (soluzione) . . . . . . . . . . . . . . . . . 562.19 [Esercizio 2.j] Rete combinatoria con decoder e MUX . . . . . . . . . . . . . . . . . . 562.20 Stru ura interna dell’Half Adder (HA) . . . . . . . . . . . . . . . . . . . . . . . . . . 572.21 Full Adder (FA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.22 Sommatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.23 [Esercizio 2.k] Circuiti per implicazione logica (soluzione) . . . . . . . . . . . . . . 602.24 Circuito combinatorio programmabile . . . . . . . . . . . . . . . . . . . . . . . . . . 612.25 ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612.26 Problemi di proge azione delle ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.27 Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.28 [Esercizio 2.l] Abilitazione di un banco di ROM (soluzione) . . . . . . . . . . . . . . 632.29 [Esercizio 2.m] Banco di ROM da abilitare . . . . . . . . . . . . . . . . . . . . . . . . 632.30 [Esercizio 2.m] Abilitazione di un banco di ROM (soluzione) . . . . . . . . . . . . . . 652.31 [Esercizio 2.m] Abilitazione di un banco di ROM (soluzione alternativa) . . . . . . . 662.32 Confronto tra PLA e PAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672.33 [Esercizio 2.n] Mappe di Karnaugh per programmare PLA e PAL . . . . . . . . . . . 682.34 [Esercizio 2.n] Realizzazione di funzioni su logiche programmabili (soluzione) . . 682.35 Stru ura di una PLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692.36 [Esercizio 2.o] Realizzazione di un semaforo con PLD . . . . . . . . . . . . . . . . . . 692.37 [Esercizio 2.o] Mappe di Karnaugh (soluzione) . . . . . . . . . . . . . . . . . . . . . 702.38 [Esercizio 2.o] Realizzazione degli implicanti all’interno della PLD (soluzione) . . . 71

3.1 Rete asincrona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.2 Generica memoria binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.3 Latch SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.4 Sintesi del latch SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.5 Latch CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.6 Nuova codifica degli stati per eliminare la corsa critica . . . . . . . . . . . . . . . . 793.7 Codifica degli stati con transizione multipla . . . . . . . . . . . . . . . . . . . . . . . 793.8 [Esercizio 3.a] Esempio di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . 813.9 [Esercizio 3.a] Codifica degli stati e transizioni (soluzioni) . . . . . . . . . . . . . . . 823.10 [Esercizio 3.b] Rete sequenziale asincrona . . . . . . . . . . . . . . . . . . . . . . . . 833.11 [Esercizio 3.b] Grafo, tabella e codifica degli stati (soluzioni) . . . . . . . . . . . . . 853.12 [Esercizio 3.c] Testi e soluzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.1 Valutazione del periodo di clock rispe o ai ritardi della rete sequenziale . . . . . . 904.2 Flip-flop D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.3 [Esercizio 4.a] Rete sequenziale sincrona . . . . . . . . . . . . . . . . . . . . . . . . . 934.4 [Esercizio 4.a] Rete sequenziale sincrona con annotazione dei segnali . . . . . . . . 944.5 [Esercizio 4.a] Grafo degli stati e forma d’onda (soluzione) . . . . . . . . . . . . . . 954.6 [Esercizio 4.b] Rete sequenziale sincrona (soluzione) . . . . . . . . . . . . . . . . . . 984.7 [Esercizio 4.c] Grafo degli stati di un semaforo per una strada (soluzione) . . . . . 994.8 [Esercizio 4.d] Sintesi con flip-flop del semaforo (soluzione) . . . . . . . . . . . . . 1014.9 [Esercizio 4.e] Grafo degli stati di un semaforo per due strade (soluzione) . . . . . 1014.10 Contatore (a 4 bit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.11 [Esercizio 4.g] Contatore a base 10 (soluzione) . . . . . . . . . . . . . . . . . . . . . 1044.12 [Esercizio 4.h] Contatore a base 60 (soluzione) . . . . . . . . . . . . . . . . . . . . . 1064.13 [Esercizio 4.i] Rete combinatoria a NAND (soluzione) . . . . . . . . . . . . . . . . . . 1074.14 Registro accumulatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.15 Registro a scorrimento (a 3 bit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.16 Cella base di un USR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.17 Applicazioni degli USR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

112 Elenco delle figure

Page 113: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Elenco delle tabelle

1.1 Corrispondenza tra notazioni decimale, esadecimale, o ale e binaria . . . . . . . . 161.2 Codice BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Codice a se e segmenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.4 Codice Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.5 Operazioni logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.6 Tabelle di verità degli operatori binari . . . . . . . . . . . . . . . . . . . . . . . . . . 211.7 [Esercizio 1.b] Tabelle di verità (soluzione) . . . . . . . . . . . . . . . . . . . . . . . . 251.8 Notazioni simboliche delle configurazioni binarie . . . . . . . . . . . . . . . . . . . 251.9 [Esercizio 1.c] Tabella di verità (soluzione) . . . . . . . . . . . . . . . . . . . . . . . . 261.10 Grandezze cara eristiche della macchina asincrona . . . . . . . . . . . . . . . . . . 311.11 Grandezze cara eristiche della macchina sincrona . . . . . . . . . . . . . . . . . . . 321.12 [Esercizio 1.e] Tabella di verità (soluzione) . . . . . . . . . . . . . . . . . . . . . . . . 361.13 [Esercizio 1.f] Tabella di flusso (soluzione) . . . . . . . . . . . . . . . . . . . . . . . . 38

2.1 Indicatori per rete combinatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.2 [Esercizio 2.a] Tabella di verità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.3 [Esercizio 2.g] Tabella di verità della porta logica da stabilire (soluzione) . . . . . . 512.4 [Esercizio 2.g] Tabelle di verità della porta logica stabilita (soluzione) . . . . . . . . 522.5 Tabella di verità del decoder (a 2 variabili) . . . . . . . . . . . . . . . . . . . . . . . . 522.6 Tabella di verità dell’encoder (a 3 variabili) . . . . . . . . . . . . . . . . . . . . . . . 532.7 Tabella di verità del MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.8 [Esercizio 2.j] Tabella di verità (soluzione) . . . . . . . . . . . . . . . . . . . . . . . . 572.9 Tabella di verità del sommatore Half Adder (HA) . . . . . . . . . . . . . . . . . . . . 572.10 Tabella di verità del sommatore FA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.11 Tabella di verità dell’implicazione logica . . . . . . . . . . . . . . . . . . . . . . . . . 592.12 [Esercizio 2.k] Tabelle di verità e collegamento logico tra A e a (soluzione) . . . . . 602.13 [Esercizio 2.m] Costruzione del piano di indirizzamento (soluzione) . . . . . . . . . 642.14 [Esercizio 2.m] Piano di indirizzamento e collegamenti (soluzione) . . . . . . . . . 642.15 [Esercizio 2.m] Tabelle di verità delle logiche di comando dei CE (soluzione) . . . . 642.16 [Esercizio 2.m] Tabella di verità (soluzione) . . . . . . . . . . . . . . . . . . . . . . . 652.17 [Esercizio 2.o] Implicanti primi e riduzione del numero (soluzione) . . . . . . . . . 70

3.1 Tabella di verità del latch SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.2 Tabella di trascodifica dal latch CD al latch SR . . . . . . . . . . . . . . . . . . . . . . 76

4.1 Parametri del clock della macchina sincrona . . . . . . . . . . . . . . . . . . . . . . . 90

Page 114: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

4.2 Tabelle di verità dei flip-flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914.3 [Esercizio 4.a] Tabella delle transizioni (soluzione) . . . . . . . . . . . . . . . . . . . 944.4 [Esercizio 4.a] Tabella di flusso (soluzione) . . . . . . . . . . . . . . . . . . . . . . . 954.5 [Esercizio 4.a] Tabella di flusso sintetica (soluzione) . . . . . . . . . . . . . . . . . . 954.6 [Esercizio 4.a] Tabella di flusso dell’automa minimo, finale (soluzione) . . . . . . . 954.7 Sintesi con flip-flop JK e T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.8 [Esercizio 4.b] Tabella di flusso e tabella delle transizioni (soluzione) . . . . . . . . 994.9 [Esercizio 4.c] Tabella di verità del semaforo per una strada (soluzione) . . . . . . . 1004.10 [Esercizio 4.c] Tabella delle transizioni del semaforo per una strada (soluzione) . . 1004.11 [Esercizio 4.e] Tabella di verità del semaforo per due strade (soluzione) . . . . . . . 1024.12 [Esercizio 4.g] Tabella di verità per la rete combinatoria di reset (soluzione) . . . . 1054.13 [Esercizio 4.h] Tabella di verità per la rete combinatoria di reset (soluzione) . . . . 1054.14 [Esercizio 4.i] Semaforo per strada a senso unico alternato (soluzione) . . . . . . . . 1074.15 Tabella di verità del registro accumulatore . . . . . . . . . . . . . . . . . . . . . . . . 1084.16 Tabella di verità dell’USR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104.17 Tabelle di verità di contatori realizzati con USR . . . . . . . . . . . . . . . . . . . . . 110

114 Elenco delle tabelle

Page 115: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Bibliografia

[1] AA.VV. «Imparare l’Ele ronica partendo da zero (16a puntata): Le porte logiche». In:NuovaEle ronica 193 (1998).

[2] AA.VV. «Imparare l’Ele ronica partendo da zero (17a puntata): Decodifiche e contatori».In: Nuova Ele ronica 194 (1998).

[3] AA.VV. «Imparare l’Ele ronica partendo da zero (30a puntata): I flip-flop». In: Nuova Elet-tronica 207 (2001).

[4] Giuseppe Biondo e Enrico Sacchi. Manuale di Ele ronica e Telecomunicazioni. 5a ed. Hoepli,2005.

[5] Elisabe a Cuniberti e Luciano De Lucchi. Ele ronica. Vol. 1: Componenti e sistemi digitali.Petrini, 1996.

[6] Elisabe a Cuniberti e Luciano De Lucchi. T.D.P. Vol. 1. Petrini, 1994.[7] Maurizio Del Corso. «I flip-flop: comandare due luci con un solo pulsante». In: Fare Ele ro-

nica (234 dic. 2004), pp. 74–78.[8] Roberto Laschi. Appunti di Reti Logiche. Dispense universitarie per la II Facoltà di Ingegneria.

2005 (cit. a p. 13).[9] Agostino Rolando. «CPLD by Example (1a puntata): Evoluzione dei componenti program-

mabili». In: Fare Ele ronica (244 o . 2004), p. 68.[10] Agostino Rolando. «CPLD by Example (6a puntata): Macchine a stati finiti». In: Fare Ele ro-

nica (249 mar. 2006), p. 68.

Page 116: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Indice analitico

Accumulatore, vedi RegistroAlea, 28, 86, 92

dinamica, 28statica, 28, 45, 46, 54, 74, 78

Algebra di Boole, 19, 48dualità, 22espressioni generali, 25forme canoniche, 25idempotenza, 22notazioni simboliche, 25proprietà degli operatori, 22teorema di Shannon, 25teoremi dell’assorbimento, 23, 46teoremi di De Morgan, 23, 24, 48

Alta impedenza, vedi BufferAmerican Standard Code for Information

Interchange (ASCII), 19Analisi (processo), 21, 31, 48, 77, 87Analogico (segnale), vedi SegnaleAND, 20–22Automa, vedi Rete logica

a. minimo, 32

Base di conteggio, vedi ContatoreBinario (segnale), vedi SegnaleBinary-Coded Decimal (BCD), vedi Codifica

binariaBit, 14Buffer, 61, 75

Carry Out (CO), vedi ContatoreCircuiti programmabili, 60Clock, 85, 86, 92Codice, vedi Codifica binariaCodifica binaria, 15

7 segmenti, 17Binary-Coded Decimal (BCD), 16circolare, 17esadecimale, 16Gray, 17, 41

o ale, 16Codifica degli stati, 72, 75, 78, 86, 92

c. ridondante, 76mappatura, 76

Condizione di indifferenza, 21, 33, 42, 43, 76, 78Contatore, 98

base di conteggio, 98c. ad anello, 105c. binario, 98c. Johnson, 105Carry Out (CO), 98divisore di frequenza, 98

Corsa critica, 30, 75, 78, 86, 92

Decoder, 51Diagramma degli stati, 32, 92

di Mealy, 32di Moore, 32

Digitale (segnale), vedi SegnaleDualità, vedi Algebra di Boole

Encoder, 51Esadecimale (notifica), vedi Codifica binariaEspressione logica, 22, 40, 43, 44

e. minima, 40, 41, 86EX-NOR, 20–22EX-OR, 20–22, 53

Fan-in, vedi Porta logicaFan-out, vedi Porta logicaFlip-flop, 31, 68, 86, 92, 103, 104

D (delay), 86, 92JK, 87, 92T (toggle), 87, 93

Full Adder (FA), 56

Gate, vedi Porta logicaGlitch, 27–29Grafo

g. degli stati, vedi Diagramma degli stati

Page 117: RetiLogiche - Marco Alessandrini · CAPITOLO 1 Reti logiche Lalogicaèl’ultimorifugiodellagente privadiimmaginazione. OW Sommario In questo capitolo introduttivo sono esposte tutte

Reti logiche L-A CC⃝ BY:⃝ $\⃝ =⃝

g. delle adiacenze, 76, 78g. primitivo, 33

Gray, vedi Codifica binaria

Half Adder (HA), 56

Idempotenza, vedi Algebra di BooleImplicante, 40, 43

i. primo, 43Implicato, 40, 43

i. primo, 43Implicazione logica, 57Incertezza, 14Informazione, 14Istante di sincronismo, vedi Clock

k-mappa, vediMappa di KarnaughKarnaugh (mappa), vediMappa di Karnaugh

Latch, 72, 78Controller-Data (CD), 74, 86Set-Reset (SR), 72, 74, 87

Logica binaria, 19

Macchinacombinatoria, 29sequenziale, 29, 98asincrona, 29, 30, 71sincrona, 31, 85

Mappa di Karnaugh, 41, 92adiacenze, 42copertura degli uno, 43copertura degli zero, 43operazioni algebriche, 46Raggruppamento Re angolare (RR), 43, 78

Maxtermine, 25, 41Mealy (modello), vedi Diagramma degli statiMemoria binaria, 72Mintermine, 25, 41, 51, 52Modo fondamentale, 72Moore (modello), vedi Diagramma degli statiMultiplexer (MUX), 25, 46, 52, 54, 60, 68, 104

NAND, 20–22, 48, 87NOR, 20–22, 48NOT, 20–22

OR, 20–22, 28, 29O ale (notazione), vedi Codifica binaria

Porta logica, 20, 27, 47, 78fan-in, 39, 47fan-out, 47

Prodo o di Somme (PS), 25, 40, 41, 44Programmable Array Logic (PAL), 66, 68

Programmable Logic Array (PLA), 66, 68Programmable Logic Device (PLD), 68

Raggruppamento Re angolare (RR), vediMappa di Karnaugh

Random Access Memory (RAM), 75Read Only Memory (ROM), 60Regime, 26Registro, 103

accumulatore, 98, 103r. a scorrimento, 104USR, 104

Rete logica, 13, 29Ridondanza, 15Ritardo di propagazione, 26, 27, 29

r. inerziale, 27r. puro, 27, 28

Rumore, 15

Segnale, 14s. analogico, 14s. digitale, 14s. binario, 14

trasmissione del s., 19Sintesi (processo), 21, 31, 48, 78, 92Somma di Prodo i (SP), 25, 40, 43Stabilità, 32, 71, 75, 78, 92

Tabella delle transizioni, 78, 92Tabella di flusso, 31, 33, 75, 78, 92Tabella di verità, 20, 41Teoremi dell’assorbimento, vedi Algebra di

BooleTeoremi di De Morgan, vedi Algebra di BooleThroughput, 29Transitorio, 26, 27, 39, 78, 87Transizione, 32, 71, 75, 92, 93

t. multipla, 75, 76, 78, 86

Universal Shift Register (USR), vedi RegistroUscite trasparenti, 74

Indice analitico 117