Sei sulla pagina 1di 22

24/04/2017

Progettazione dei circuiti logici


Parte 1 – concetti generali

Leggi (o Teoremi) di De Morgan

2
24/04/2017

L’algebra di Boole

Mappe di Karnaugh
Una più eloquente ed utile rappresentazione di una funzione booleana e data dalla mappa di Karnaugh.
Tutte le possibili combinazioni che un gruppo di variabili può assumere sono rappresentate
in forma di matrice nella mappa.
La mappa di Karnaugh può essere usata per definire una funzione.

4
24/04/2017

I Circuiti Logici

N.B. - Il cerchietto (bubble in inglese), che è


presente sull’uscita di NOT, NAND, NOR,
sta a indicare che l’uscita è in logica
invertita, cioè l’uscita è '0' invece di '1',
come è ben evidente nel caso del NOT. 5

Logica Combinatoria

5
24/04/2017

Completati i primi tre stadi con la corretta e completa scrittura delle tabelle della
verità delle funzioni, i rimanenti stadi sono automatici:
basta applicare correttamente le tecniche dell’algebra di Boole.
Un circuito logico combinatorio può però essere molto complesso. Un sistema
complesso è il risultato di una collezione di tanti sottosistemi meno complessi,
ciascuno dei quali può essere descritto in modo più semplice.
Negli anni sono state sviluppate parecchie strutture basilari, dette moduli funzionali:
decoder, multiplexer, demultiplexer, sommatori, comparatori, ALU (unità logica
aritmetica) e simili.

8
24/04/2017

Moduli logici funzionali


Il decoder binario
Un decoder binario ha tante uscite quante sono le
combinazione delle variabili d'ingresso. È fatto in
modo che sia attiva la sola uscita che corrisponde alla
combinazione presente in ingresso. In Fig. è rappresentato,
in forma di blocco funzionale, un decoder a 2 ingressi,
quindi a 22 = 4 uscite.
È intuitivo procedere all'estensione ai
decoder 3 →8, 4 → 16, ecc.

Il multiplexer binario
Esso permette di selezionare un ingresso fra tanti e
di inviare in uscita il suo stato. Il multiplexer si
avvale di un decoder per effettuare la selezione degli
ingressi. In Fig è rappresentato, in forma di blocco
funzionale, un multiplexer a 4 ingressi (4 → 1).

Il demultiplexer
Il demultiplexer svolge la funzione opposta rispetto al
multiplexer: invia il segnale in ingresso su una delle possibili
uscite selezionate da un decoder.
In Fig. è dato il blocco logico funzionale del multiplexer
(1 → 4) e sono scritte le espressioni logiche delle uscite.

10
24/04/2017

EX_1: Realizzare un decodificatore che pilota un display a 7 segmenti

Si hanno 4 ingressi A0; A1; A2; A3 e 7 uscite a; b; c; d; e; f; g


con riferimento allo schemino del display.
Lo stato '1' sull’uscita accende il segmento corrispondente.

11

Sintesi e minimizzazione delle singole funzioni:

A questo punto è possibile procedere a disegnare lo schema logico del decodificatore.


12
24/04/2017

EX_2: Realizzare un sommatore assoluto per numeri binari di n bit.

Si intuisce che il sommatore può essere suddiviso in n celle identiche, che operano in parallelo sui
numeri ma con propagazione seriale del riporto. Pertanto basta studiare in dettaglio la cella prototipo,
con la quale per replicazione sarà costruito il sommatore.

Sintesi e minimizzazione delle singole funzioni:

Avendo ricavato le due funzioni Si e Ci il blocco adder è definito.


Quindi si può procedere a disegnare lo schema logico completo.
13

Logica Sequenziale
La logica combinatoria è risposta istantanea, nel senso che lo stato delle variabili di uscita dipende in
ogni istante dallo stato delle variabili di ingresso nello stesso istante (si considera nullo il tempo di
propagazione dei segnali elettrici nella rete circuitale che realizza le funzioni): nelle tabelle della verità
non compare il tempo.
Per alcune operazioni (ad es. un conteggio) occorre realizzare un sistema in cui è presente una
memoria, che memorizza gli stati interni e che evolve nel tempo sotto il controllo della rete logica
combinatoria, che esegue le operazioni di decisione ed aritmetiche. Questo sistema costituisce una
logica sequenziale.

La logica sequenziale può essere realizzata fisicamente in due modi diversi. come:
- logica sequenziale asincrona
(Usata molto limitatamente, per realizzare particolari circuiti semplici, che possono
trarre vantaggio dalla alta velocità operativa, ma è completamente abbandonata
nelle grandi realizzazioni)
- logica sequenziale sincrona

14
24/04/2017

Logica sequenziale sincrona

15

La Memoria
La Memoria deve immagazzinare un codice binario, che rappresenta lo stato interno della logica
sequenziale. Un codice è costituito da un certo numero n di bit.
L’insieme degli elementi di memoria, che memorizzano un codice binario di n bit, costituisce un
registro di n bit. Occorre quindi un elemento di memoria che possa immagazzinare un bit.
L’elemento di memoria binaria costitutivo del registro, è il Flip/flop.
La memorizzazione del bit avviene in corrispondenza della transizione attiva del clock:
ogni Flip/flop opera sotto comando del clock.
Quindi ad ogni Flip/flop deve giungersi il clock oltre ai segnali logici di ingresso.
I tipi principali di Flip/flop sono quattro : RS, D, T, JK.

16
24/04/2017

17

Il Flip/flop JK può essere diventare un Flip/flop di altro tipo.


Per questa sua versatilità il Flip/flop JK è disponibile in forma di circuito integrato.

18
24/04/2017

Flip/flop JK master-slave

Le uscite del Flip/flop entrano nelle funzioni logiche combinatorie che


comandano gli ingressi J e K del Flip/flop stesso.
Questo fatto può produrre degli inconvenienti durante le commutazioni del
Flip/flop.

Per risolvere il problema si introduce la struttura master-slave.


Il Flip/flop master-slave è in realtà costituito da 2 Flip/flop,
il Flip/flop Master e il Flip/flop Slave.
Gli ingressi operano sul Master; le uscite Q e Q escono dallo
Slave. Il clock CP opera su entrambi.

19

Funzionamento del Flip/flop JK master-slave

20
24/04/2017

21

Il diagramma degli stati

Il diagramma degli stati riassume e specifica esattamente il funzionamento di una rete sequenziale.
Ma il diagramma degli stati è anche l’elemento cardinale da cui parte lo sviluppo delle reti sequenziali.
Il diagramma degli stati è una struttura grafica molto semplice. È costituito da 3 elementi:
- lo stato, in forma di cerchietto o di quadratino;
- la transizione fra stati, in forma di freccia verso uno stato successivo;
- le condizioni delle variabili d'ingresso, sotto cui avvengono le transizioni,
scritte accanto alle relative frecce.

Le regole per tracciare un diagramma degli stati sono poche e semplici.


Da ogni stato possono partire da una a più transizioni (frecce) verso altri stati, e ciascuna è
individuata dalle condizioni sotto cui avviene. Ad uno stato possono giungere più transizioni da vari
stati. Una freccia che inizia e termina sullo stesso stato indica una condizione di attesa (ad ogni colpo
di clock lo stato transisce a sè stesso). Tutti i diagrammi degli stati di reti logiche sequenziali sono
diagrammi ciclici, cioè si richiudono su se stessi in quanto realizzano macchine:
le macchine sono sempre cicliche.
22
24/04/2017

Sintesi di reti sequenziali sincrone

Individuato il problema che si vuol risolvere, dapprima lo si analizza in dettaglio e se ne dà una definizione
chiara ed esaustiva. Indi si effettua la segue sequenza di azioni:
1: Diagramma degli stati primitivi. Si costruisce il diagramma degli stati, completo delle transizioni fra gli
stati con le condizioni sotto cui esse avvengono.
2: Tabella degli stati primitivi. Si traduce il diagramma degli stati in una tabella in cui compare una riga per
ogni stato del diagramma. Per ogni stato si individuano lo o gli stati prossimi in funzione delle condizioni e
lo stato delle uscite.
3: Tabella degli stati finali. Analizzando la tabella degli stati primitivi può accadere di rilevare che esistono
degli stati duplicati. Si scrive allora la tabella degli stati finali dalla quale gli stati duplicati vengono
eliminati.
4: Diagramma degli stati finali (o essenziali). Si traccia il diagramma degli stati limitatamente agli stati
essenziali e questo è il diagramma da cui si parte per effettuare la sintesi.
5: Determinazione del numero delle variabili di stato. Noto il numero N degli stati essenziali, si sceglie lo n
minimo che rende valida la disequazione 2n ¸ N. Questo n è il numero minimo di variabili di stato
necessarie; esso determina il numero dei Flip/flop che costituiscono il registro di memoria della rete.
6: Assegnamento degli stati. Si scelgono N codici di n bit per identificare univocamente gli stati.

23

7: Scelta del tipo di Flip/flop. Si può optare per i Flip/flop JK.


8: Tabella delle transizioni. Si scrive la tabella che riporta tutti i codici degli stati di partenza.
Per ciascuno stato si scrivono i codici degli stati di arrivo in funzione delle condizioni esterne. Si
completa la tabella compilando le colonne con lo stato delle funzioni di comando dei Flip/flop del
registro di memoria e con lo stato delle funzioni d'uscita.
9: Sintesi delle funzioni logiche. La tabella delle transizioni nella sua forma completa diviene la tabella
della verità delle funzioni della logica combinatoria presente nella rete sequenziale. Si procede quindi
alla sintesi e semplificazione delle funzioni di comando dei Flip/flop e delle funzioni d'uscita.
10: Disegno della schema logico della rete sequenziale. Note le funzioni presenti nella logica
combinatoria si può procedere a disegnare lo schema logico completo della rete sequenziale. Quindi
può iniziare la fase di realizzazione della rete stessa.

24
24/04/2017

EX_3: Realizzare una rete sequenziale sincrona che produca in uscita un impulso
logico della durata di un periodo di clock ogni otto impulsi del clock.

Non vi sono variabili logiche esterne in ingresso alla rete. È presente un solo
segnale d'uscita, Z, che durerà un periodo di clock e che si ripeterà ogni otto
periodi di clock. Si disegna il diagramma degli stati primitivi, che descrive la rete.

Sono necessari otto stati. Dall’ultimo stato S7 si deriva il segnale Z, cioè l’impulso logico richiesto.
Il diagramma è costituito dai soli stati necessari (8 cerchietti) e dalle transizioni fra gli stati, senza
condizioni. Il diagramma è ciclico, in forma di anello di stati. Il diagramma degli stati disegnato è già il
diagramma degli stati finali, essendo nella sua forma più semplice.
Avendo N = 8 stati si ha n = 3 poiché 3 soddisfa la diseguaglianza 2n ≥ 8 e tutti gli otto stati sono utilizzati.
Essendo n = 3 sono necessarie tre variabili di stato. Il registro di memoria è composto da tre Flip/flop.
25

Si procede all’assegnamento degli stati.


Si sceglie di attribuire i codici secondo la
sequenza binaria fondamentale. Si attribuisce
alle tre variabili di stato gli indicativi A, B, C,
rispettivamente con peso 22, 21, 20.

26
24/04/2017

Non vi sono ridondanze poiché tutti gli stati


possibili sono utilizzati.
Si sceglie di usare i Flip/flop T.
Si passa a scrivere la tabella delle transizioni.

Si è scritto la tabella in modo che gli stati appaiano ordinati in sequenza verticale, cosicché lo stato prossimo
è lo stato nella riga sottostante della colonna degli stati. Giunti allo stato S7 si riparte dallo stato S0, cioè lo
stato S0 è consecutivo allo stato S7 (ciclicità della macchina).
Completate le colonne delle variabili di stato A; B; C si devono scrivere le funzioni di comando dei Flip/flop
T e la funzione d'uscita Z.
Si ricordi che con Tn = 1 il Flip/flop cambia stato; con Tn = 0 il Flip/flop resta nello stato in cui è.
Dalla tabella si legge quali valori debbano assumere le funzioni TA; TB; TC.
La funzione Z assume il valore '1' nell’ultimo stato solamente, quindi una volta ogni otto stati, cioè ad ogni
ottavo stato.

27

Si procede alla sintesi e minimizzazione delle funzioni.


1: La colonna TC assume sempre il valore '1'. Pertanto TC = 1.
2: La colonna TB è uguale alla colonna C. Pertanto (ed è minima).
3: La colonna TA presenta due '1'. L'espressione della funzione TA è:
TA = ABC + ABC = (A + A)BC = BC
4: La colonna Z presenta un solo '1'. Pertanto Z = ABC.

Si hanno le quattro espressioni logiche richieste e si può disegnare lo schema logico della rete

28
24/04/2017

29

I Contatori

I contatori sincroni sono alla base del funzionamento di molti apparati elettronici. I contatori
possono contare secondo la sequenza binaria completa (contatori binari) oppure secondo una
sequenza binaria parziale (contatori codificati in binario).

30
24/04/2017

Sintesi di un contatore binario (2n) sincrono


Il processo di sintesi di un contatore binario sincrono segue gli stessi stadi della sintesi di una rete
sequenziale sincrona, ma con qualche semplificazione.
Si faccia riferimento ad un contatore binario che conta 16 (=24) stati, da S0 a S15.

Diagramma degli stati. È in forma di un semplice anello di stati: da ogni stato si passa
esclusivamente allo stato successivo (è già il diagramma degli stati finali).

31

Nel caso del contatore binario puro tutti gli stati sono parte del ciclo: non vi sono stati ridondanti. Infatti
il numero N degli stati è una potenza di 2: vale N = 2n con n uguale al numero delle variabili di stato e
quindi al numero dei Flip/flop.
Nell’attribuire il nome alle n variabili di stato si usa l'indicazione Q0, Q1, … QN-1 così da mettere in
relazione la posizione della variabile nel codice col peso binario corrispondente: a Q0 il peso 20, a Q1 il
peso 21, ..., a Qi il peso 2i, ecc.
Così nell'assegnamento degli stati si fa coincidere il codice dello stato con il codice della sequenza
numerica binaria rappresentata.
I Flip/flop di tipo T sono i più adatti per realizzare i contatori binari.

32
24/04/2017

Nella Tabella delle transizioni si può


adottare un accorgimento che ne semplifica
la scrittura.
Si scrivono i codici degli stati incolonnati
secondo la sequenza numerica binaria.
Così lo stato successivo è lo stato scritto
nella riga sottostante e non è necessario
riscriverlo a lato. Poi si completano le
colonne con le funzioni di comando Ti dei
Flip/flop, ricordando la tabella di comando
del Flip/flop T.
Ovviamente nel presente caso lo stato
successivo a S15 è lo stato S0.

33

Si possono scrivere le funzioni di comando dei Flip/flop:

Dall’esame delle espressioni sopra si può dedurre l’espressione generalizzata per Ti


che permette di scrivere direttamente le funzioni di comando dei Flip/flop Ti per
qualsiasi lunghezza n del contatore binario puro (i = 0, 1, ...., n-1; Q -1 = 1).

34
24/04/2017

Sintesi di un contatore decimale codificato in binario

Si traccia il diagramma degli stati finali che include 10 stati, da S0 a S9.

Dalla relazione N ≤ 2n con N = 10 si ottiene n = 4.


Occorrono 4 variabili di stato, indicate con Q3; Q2; Q1; Q0, così da mettere in relazione la posizione
delle variabili nel codice col peso binario corrispondente.
Vengono usati 10 stati, dei 16 disponibili: quindi vi sono 6 ridondanze.
I codici che identificano i 10 stati sono l’equivalente binario del numero decimale corrispondente:
si parla di decimale codificato in binario (BCD da binary coded decimal).

35

Si usano Flip/flop T. Si passa a scrivere la tabella delle transizioni.

36
24/04/2017

Si procede a ricavare le espressioni delle funzioni di comando. La funzione T0 è evidente:


T0 = 1.

Per le altre funzioni si fa uso della semplificazione con le mappe di Karnaugh.

37

Sono elencate qui di seguito le 4 funzioni di comando per realizzare una decade di conteggio:

Si può aggiungere il riporto (TC, acronimo di terminal count) verso la decade superiore:

Per costruire un contatore a più decadi basterà fare in ogni decade lo AND delle funzioni di
comando con il riporto dalla decade precedente.

38
24/04/2017

Contatore binario universale


Nell’utilizzo di un contatore può essere necessario intervenire su di esso in vari modi:
può essere necessario azzerarlo, oppure predisporlo a contare da un ben determinato valore,
oppure fermarne temporaneamente il conteggio.
È opportuno studiare un blocco funzionale particolare, che realizzi le funzionalità suddette
mostrato in Fig. e denominato UBC (Universal Binary Counter).

Il blocco funzionale UBC presenta:


l’ingresso del clock CP
3 ingressi di controllo (SR; PR; CE)
n ingressi di dati (P0; P1; P2; …Pn-1)
n uscite dai Flip/flop (Q0; Q1; Q2; …; Qn-1)
l’uscita TC.

39

Le n uscite dato Q0; Q1; Q2; …; Qn¡1 sono le n uscite dagli n Flip/flop del contatore binario.
L’ingresso SR (Synchronous Reset) effettua l’azzeramento sincrono del contatore.
L’ingresso PR (Preset) è il comando sincrono per caricare in parallelo nei Flip/flop la
configurazione di '1' e '0' applicata agli ingressi-dato P0; P1; P2; …; Pn¡1.
L’ingresso CE (Count Enable) nello stato '1' abilita il contatore al conteggio, nello
stato '0' lo mantiene fermo nel valore raggiunto.
L’uscita TC (Terminal Count) è un segnale di controllo, che indica che il contatore ha
raggiunto la sua massima capacità (fondo scala), cioè il massimo valore pari a 2n - 1.

La tabella caratteristica del


blocco funzionale UBC

40
24/04/2017

Struttura dei registri a scorrimento

Un registro a scorrimento (shift register ) è costituito da una catena di Flip/flop D, in cui l’uscita di
un Flip/flop è collegata all'ingresso D del Flip/flop successivo.
Limitatamente a quattro stadi:

Un dato sotto forma di una stringa seriale di bit è inviato all'ingresso IN.
Dopo un impulso di clock il primo bit è in Q0; dopo un secondo impulso di clock il bit che era in Q0
si trova in Q1, mentre in Q0 è entrato il successivo bit del dato in ingresso. E così di seguito per i
successivi impulsi di clock.
41

Un registro a scorrimento riceve un dato seriale in ingresso (ad es. un byte) e dopo un opportuno
numero di impulsi di clock (8 nel caso di un byte) presenta il dato in parallelo sulle uscite.
Un tale registro è noto come SIPO (Serial-In, Parallel-Out):
esso effettua la conversione in parallelo di un dato seriale.

Esempio di conversione seriale-parallelo con un registro


a 4 Flip/flop. Sulla riga IN è visualizzata la stringa
seriale di 4 bit (1011) in ingresso. Dopo 4 impulsi di
clock si vede l’uscita parallela che presenta la
combinazione (1011) allineata in verticale da Q3 a Q0.
Le forme d’onda sulle uscite danno l’evoluzione dello
stato dei Flip/flop del registro nel tempo

42
24/04/2017

Il registro universale a scorrimento

È opportuno studiare un blocco funzionale particolare, il registro universale a scorrimento


multifunzionale USR (Universal Shift Register ) a n stadi.

L’ingresso del clock CP


1 ingresso seriale IN al primo Flip/flop del registro
3 ingressi di controllo (SR; PL; SH)
n ingressi di dati (P0; P1; P2; …; Pn-1)
n uscite dai Flip/flop (Q0; Q1; Q2; …;Qn-1)

43

L’ingresso SR (Synchronous Reset) effettua l’azzeramento sincrono del registro.


L’ingresso PL (Parallel Load) è il comando sincrono per caricare in parallelo nei
Flip/flop la configurazione di '1' e '0' applicate agli ingressi dato P0; P1; P2; …; Pn-1.
L’ingresso SH (Shift Hold) nello stato '1' abilita lo scorrimento del registro, nello
stato '0' lo mantiene fermo nello stato raggiunto.

La tabella caratteristica del


blocco funzionale USR

44

Potrebbero piacerti anche