esercizi per il corso di calcolatori elettronici - ita.ovh · esercizi per il corso di calcolatori...
TRANSCRIPT
1
Esercizi per il corso diCalcolatori Elettronici
svolti da Mauro IACOVIELLO
&Fabio LAUDANI
Parte seconda : Macchine a stati finiti
ESERCIZIO 1: Macchina di Mealy
n Sia data la seguente macchina di Mealy, sintetizzare un circuito che la implementi, utilizzando un FF tipo D
0 1
01
0 1
000/0
1/1
1/0
0/0
0/00/0
1/1
1/0
11d
01c
10b
00a
BA
Tabella di codifica
2
n Si costruisce la tabella degli stati nelle cui colonne viene visualizzato l’andamento degli stati futuri e delle uscite in funzione degli stati presenti e degli ingressi
a/0d/0d
d/1c/0c
b/0c/0b
b/1a/0a
10
0 1
01
0 1
00
0/0
1/1
1/0
0/0
0/00/0
1/1
1/0
Si utilizza tale codifica poiché risulta più efficiente secondo la regola euristica.
n Ora si crea una tabella in cui inserire tutti i dati a disposizione: stati presenti, stati futuri, ingressi, uscite:
000111
011011
111101
001001
010110
001010
110100
000000
OUTB’A’IBA
A’, B’ sono gli stati futuri
nel flip-flop di tipo D si ha semplicemente che: DA=A’ , DB=B’
3
n Quindi costruisco le mappe di Karnaugh, con le quali minimizzo gli stai futuri e le uscite, per ricavare le funzioni di eccitazione dei FF:
11
1110
10110100AB I
Mappa relativa a DA
DA = !I + AB
1111
10
10110100AB I
Mappa relativa a DB
DB = I!A + !IAB + IA!B
111
0
10110100AB
I
Mappa relativa a Out
Out = X!B
OUT
ADA
!A
DB
!B
B
I
Il circuito sintetizzato è:
4
ESERCIZIO 2 : CONTATORE
n Sintetizzare un circuito che realizzi il seguente contatore, utilizzando un FF di tipo D:
f(0,3,5,6,7)
DC ={1,2,4}
000000
1 1 11 1 1 1 1 01 1 0
1 0 11 0 10 1 10 1 1
n si costruisce una tabella in cui inserire in ordine i numeri codificati, e gli stati successivi:
000111
111011
011101
xxx001
101110
xxx010
xxx100
110000
C’B’A’CBA
Utilizzo FF di tipo D, per cui:DA=A’ DB=B’ DC=C’
5
n Quindi per ricavare il circuito occorre semplicemente minimizzare le funzioni A’, B’, C’,e ottenere così le funzioni di eccitazione del FF.
n La minimizzazione si effettua con il metodo delle mappe di Karnaugh
11x1
x1x0
10110100AB
C
DA = !AB + !CA + C!B
1x1
x1x10
10110100AB
C
DB = !C +!B
DA DB
1x1
x1x10
10110100AB
C
DC
DC = !C + C!A
n Il circuito sitetizzato è:
DB
!B
B
DC
!C
C
DA
!A
A
6
ESERCIZIO 3: CONTATOREn Sintetizzare un circuito che realizzi il seguente
contatore, utilizzando un FF di tipo JK :
f(0,1,3,5,7,8,11,14)
0000
1110
1011
1000 0111
0101
0011
0001
n I valori DC sono: 2,4,6,9,10,12,13,15
n Quindi si costruisce la tabella in cui vengono inseriti i valori del contatore, quelli ad essi successivi e i DC
XXXX1111
00000111
XXXX1011
XXXX0011
01111101
XXXX0101
XXXX1001
11010001
00011110
XXXX0110
11101010
XXXX0010
10101100
XXXX0100
11001000
10000000
D’C’B’A’DCBA
7
n Poiché si deve utilizzare il FF di tipo JK, è necessario creare la tabella con le funzioni Ja, Ka, Jb, Kb, Jc, Kc,Jd, Kd:
XXXXXXXX
X01X1X1X
XXXXXXXX
XXXXXXXX
1X0XX10X
XXXXXXXX
XXXXXXXX
X1X1X00X
1X1X1XX1
XXXXXXXX
0XX10XX0
XXXXXXXX
0X1XX1X0
XXXXXXXX
0XX1X0X0
X1X0X0X0
KdJdKcJcKbJbKaJa
xxxx10
xx111
xx01
xxx00
10110100ABCD
Ja
Ja = BC
x1xx10
xxx11
xxxx01
xxx00
10110100ABCD
Ka
Ka = B
x1xx10
xx1x11
xx01
xx00
10110100ABCD
xxxx10
1xx111
xxx01
xx00
10110100ABCD
Jb Kb
Jb = C Kb = C
8
xxx10
xxxx11
xxxx01
1xx100
10110100ABCD
Jd
x1xx10
1x111
xx01
xxxx00
10110100ABCD
Kd
x1xx10
xxxx11
xx1101
1xx00
10110100ABCD
Jc
x1xx10
x1111
xxxx01
xxxx00
10110100ABCD
Jc
Jd = !C Kd = A + BC
Jc = D + A Kc = !A + B
Ja
Jb
Kd
Jc
Kc
Jd
Kb
Ka
A
B
C
D
!D
!A
!B
!C
n Il circuito sitetizzato è:
9
ESERCIZIO 4 : Macchina di MEALY
n Sia data la seguente macchina di Mealy, sintetizzare un circuito che la implementi, utilizzando un FF tipo D
0/10/1
0/10/1
0/10/1
1/1/11
1/1/11
1/1/11b
d c
a
n Come primo passo si effettua una codifica degli stati rispettando le regole di adiacenza, per ottenere una sintesi più efficiente:
11d
01c
10b
00a
BA
Tabella di codifica
0/0/11
0/0/11
0/10/1
1/1/11
1/11/1
1/11/1b
d c
a
10
n Si costruisce la tabella degli statinelle cui colonne viene visualizzato l’andamento degli stati futuri e delle uscite in funzione degli stati presenti e degli ingressi: a/1b/1d
---d/1c
a/1---b
c/1a/1a
10
NOTA: I trattini indicano condizioni non definite
n Ora si crea una tabella in cui inserire tutti i dati a disposizione: stati presenti, stati futuri, ingressi, uscite:
100111
110011
xxx101
111001
100110
xxx010
101100
100000
OUTB’A’IBA
A’, B’ sono gli stati futuriI è l’ingressonel flip-flop di tipo D si ha semplicemente che:DA = A’DB = B’
11
n Quindi costruisco le mappe di Karnaugh, con le quali minimizzo gli stai futuri e le uscite, per ricavare le funzioni di eccitazione dei FF:
x11
1x0
10110100AB I
11
11x0
10110100AB I
x1111
11x10
10110100AB
I
DA
OUT
DB
DA = A!B + I!B = !B(A + I) DB = A!I + A!B = A(!I + !B)
OUT = 1
DA A
!A
DB
!B
B
I
n Il circuito sitetizzato è:
12
ESERCIZIO 5 : Macchina di MOORE
n Sia data la seguente macchina di Moore, sintetizzare un circuito che la implementi, utilizzando un FF tipo JK
00
0011
00a/1
c/0 d/0
b/1
11
1100
11
n Gli stati vengono codificai in base alle loro adiacenze, al fine di rendere più efficiente la sintesi del circuito.
11d
10c
01b
00a
BA
n Ricordando che in una macchina di Moore le uscite dipendono solo dagli stati, si crea una tabella in cui inserire gli stati presenti e quelli futuri in funzione degli ingressi:
0acd
0dbc
1cdb
1aba
Out1 0stato
13
n Si costruisce la tabella in cui inserire tutti i dati a disposizione, che servono per la successiva minimizzazione delle funzioni di eccitazione del FF-JK:
01x0x01111
00x1x10011
1x11x10101
1x10x11001
00xx111110
01xx101010
1x0x000100
1x0x101000
OutKbJbKaJaB’A’IBA
n Si minimizza con le mappe di Karnaugh:
xx11
xx110
10110100AB
I
Ja
xx1
11xx0
10110100AB
I
Ka
1xx1
1xx0
10110100AB
I
x1x1
x1x0
10110100AB
I
Ja = !I + B Ka = !I
Jb Kb
Jb = A Kb = !A!I + AI
14
111
110
10110100AB
I OUT Out = B
Ka
Ja A
!A
Kb
Jb B
!B
Out
I!I
Il circuito sintetizzato è:
ESERCIZIO 6 : Macchina di Moore
n Sia data la seguente macchina di Moore, sintetizzare un circuito che la implementi, utilizzando un FF tipo D
00
0000
11a/0
c/0 d/1
b/1
00
1111
15
n Si effettua la codifica degli stati, rispettando la regola delle adiacenze (in questo caso la codifica di a, d, b , varia un solo bit )
10d
11c
01b
00a
BA
n Si crea una tabella in cui inserire gli stati presenti e quelli futuri in funzione degli ingressi:
0bcd
0acc
1adb
1bda
Out1 0stato
ingresso
16
n Si costruisce una tabella in cui inserire gli stati presenti, quelli futuri gli ingressi e le uscite:
Si effettua la minimizzazione con le mappe di Karnaugh, ricordando che:DA = A’DB = B’
001111
011011
100101
110001
101110
111010
001100
010000
OUTB’A’IBA
1111
110
10110100AB I
1
11110
10110100AB I
111
110
10110100AB I
DA DB
OUT
DA = B + !AI DB = !I
OUT = !AB + A!B
17
Il circuito sintetizzato è:
DA
DB
!A
B
A
!B
I
!I
ESERCIZIO 7: Macchina di Mealy
n Sia data la seguente macchina di Mealy, sintetizzare un circuito che la implementi, utilizzando un FF tipo D
1/01/0
0/10/1
1/01/0
1/1/11
0/0/11
0/0/11a
d c
b
1/01/0
0/10/1
18
n Come primo passo si effettua una codifica degli stati rispettando le regole di adiacenza, per ottenere una sintesi più efficiente:
n Si costruisce la tabella degli stati nelle cui colonne viene visualizzato l’andamento degli stati futuri e delle uscite in funzione degli stati presenti e degli ingressi:
11d
10c
01b
00a
BA
c/0a/1d
b/0d/1c
c/1d/1 b
d/0b/1a
10
n Si costruisce un’ulteriore tabella in cui vanno inseriti gli stati presenti, gli ingressi, gli stati futuri e le uscite;
n ciò permette di ricavare direttamente, dalla minimizzazione degli stati futuri, le funzioni di eccitazione dei FF:
010111
100011
110101
111001
001110
111010
011100
101000
OUTB’A’IBA
19
n Si usano le mappe di Karnaugh:
111
1110
10110100AB I
1111
110
10110100AB I
11
11110
10110100AB I
DA DB
OUT
DA = !A + !I!B DB = A!B+IA+I!B+!AB!I = =!B(A+I)+AI+!AB!I
Out = !I + A!B
Il circuito sintetizzato è:
DA
!A
A
DB
!B
B
I!I
OUT
20
ESERCIZIO 8: CONTATORE
n Sintetizzare un circuito che realizzi il seguente contatore,utilizzando un FF di tipo D
f(2,8,9,11,12,15)
0 0 1 0 0 1 00
1 1 1 1 1 1 11
1 0 1 1 0 1 11
1 0 0 1 0 0 00
1 1 0 1 1 0 00
1 0 0 1 0 0 11
SVOLGIMENTO:
n I valori DC sono: 0,1,3,4,5,6,7,13,14,16
n Adesso si costruisce la tabella in cui vengono inseriti i valori del contatore,quelli ad essi successivi e i DC.
01001111
XXXX0111
XXXX1011
11110011
00111101
XXXX0101
11011001
10010001
XXXX1110
XXXX0110
XXXX1010
XXXX0010
XXXX1100
0001 0100
XXXX1000
XX XX0000
D’C’B’A’DCBA
21
XXX110
1XX11
1XXX01
11XX00
10110100AB
CD
XXX10
1XX11
XXX01
1XX00
10110100AB
CD
DA DB
XXX10
1XX11
1XXX01
1XX00
10110100AB
CD
XXX10
XX11
1XXX01
11XX00
10110100ABCD
DC DD
DA =!A + !C + !B DB = B!C + A !B C
DC = B +!B !C D DD=!C
n Il circuito sintetizzato è:
DB
!B
B
DA
!A
A
DC
!C
C
DD
!D
C
22
ESERCIZIO 9: MACCHINA DI MEALY
n Sia data la seguente macchina di MEALY,sintetizzare un circuito che la implementi,utilizzando un FF tipo D
0/10/1
0/00/0
1/01/0
0/0/00
0/10/1
1/01/0a b
1/11/1
c
d0/00/0
SOLUZIONE:
n Come primo passo si effettua una codifica degli stati rispettando le regole di adiacenza 11d
10c
01b
00a
BA
n A partire dal diagramma degli stati si costruisce,senza aggiungere o modificare informazione,la TABELLA DEGLI STATIche ha tante righe quanti sono gli stati e tante colonne quantesono le possibili configurazioni di valori delle variabili di ingresso.
d/1c/0d
b/1a/0c
d/0c/1 b
b/0a/1a
10
23
111111
010011d
011101
110001b
101110
000010c
001100
100000a
OUTB’A’IBA
n Si usano le mappe di Karnaugh:
11111
0
10110100AB
I
111
110
10110100AB
I
111
110
10110100AB
I
DA
OUT
DB
DA = I DB = A
OUT = !I!B + IB
24
Il circuito sintetizzato è :
DA A
!A
DB B
!B
OUT
I
!I
ESERCIZIO 10 : REALIZZAZIONE DI UN MULTIPLEXER,DI UN DEMULTIPLEXER E DI UNA ROM
n Si consideri la seguente funzione booleana di tre variabili:
F(0,3,5,7)
Si implementi suddetta funzione utilizzando un multiplexer 4-1.
25
SVOLGIMENTO:
n Come primo passo occorre descrivere la funzione booleana con una tabella di verita’
1111
0011
1101
0001
1110
0010
0100
1000
FCBA
Adesso è possibile realizzare il multiplexer:
Multiplexer
0 1
I0
I2I3
I4I5
I6
I7
MUX4X1
I1
A B C
26
n l circuito finale sara’ del tipo indicato come in figura:
Adesso occorre suddividere il MUX 4X1 in un ALBERO DI MUX (ovvero si realizza quella che si chiama una CASCATA DI MULTIPLEXER )
F
A
B
C
Cio che è successivamente riportato è la rappresentazione della suddivisione in due della tavola di verita’, considerando costante A.
0
I0
I1
I2I3
0 1
I0I1
I2
I3
1
I0
I1
PER A=1
PER A=0
Z
A
B C
B C
27
n Adesso considerando la precedente funzione booleana si realizza un DEMULTIPLEXER
B CA
123
5
6
7
4
A seconda del valore dei tre selettori A-B-C, viene abilitata una delle uscite.
n Si realizzi adesso,considerando sempre la precedente funzione booleana una ROM.
n Una ROM ha la possibilita’ di funzionare secondo una logica negativa,a cui corrisponde l’uno logico(e lo “0”volt),oppure secondo una logica positiva a cui corrisponde lo zero logico (e i “5”volt).
n Si è scelto di considerare la logica di funzionamento della ROM negativa,percio’ il pallino in figura sta a rappresentare un CORTOCIRCUITO.
ABC