esercizi per il corso di calcolatori elettronici - ita.ovh · esercizi per il corso di calcolatori...

27
1 Esercizi per il corso di Calcolatori 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 00 0/0 1/1 1/0 0/0 0/0 0/0 1/1 1/0 1 1 d 0 1 c 1 0 b 0 0 a B A Tabella di codifica

Upload: phamlien

Post on 15-Feb-2019

226 views

Category:

Documents


0 download

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