Appello di Architetture dei Calcolatori I

16 settembre 1998

Esercizio 1 (15 punti)

Progettare il circuito che realizza il complemento a 9 di un numero decimale compreso tra 0 e 9. Specifiche:

Il circuito ha 5 ingressi (A1 A2 A3 A4 Comp) e 5 uscite (F1 F2 F3 F4 E).

A1-A4 : input binari che rappresentano il numero decimale da complementare

Comp: segnale di controllo. Se Comp=0, gli ingressi devono essere riportati in uscita senza modifiche, se Comp=1, le uscite F1-F4 devono rappresentare il complemento a 9 di A1-A4.

E: se il numero da complementare é maggiore di 9, il valore delle uscite Fi non ha interesse, ma il segnale di uscita E deve essere uguale ad 1, segnalando con ciò una situazione di errore. Altrimenti, E=0.

Una volta ottenuta la tabella di verità e le espressioni booleane minime SOP (sum of products) del circuito, progettare lo schema circuitale utilizzando sia un PLA che un Multiplexer (= fornire entrambe le soluzioni!!).

 

 

Soluzione:

Come (dovrebbe essere) noto, il complemento a x di y é k=x-y.

Le uscite del circuito dipendono solo dai valori degli ingressi, dunque si tratta di un circuito combinatorio.

Nonostante il testo non lo specifichi, una buona soluzione é di considerare "don't care" i valori di F1-F4 se A1-A4 rappresentano un numero maggiore di 9 anche nel caso in cui Comp=0, dato che comunque si afferma che il numero da complementare non deve essere maggiore di 9. Una soluzione diversa - in cui comunque le uscite riproducano gli ingressi se1 Comp=0- é accettabile.

Seguendo queste specifiche, la tabella di verità che descrive il comportamento del circuito é

 

 

 

 

 

 

 

 

 

 

 

 

y

Comp A1A2A3A4

9-y

EF1F2F3F4

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

00000

00001

00010

00011

00100

00101

00110

00111

01000

01001

01010

01011

01100

01101

01110

01111

10000

10001

10010

10011

10100

10101

10110

10111

11000

11001

11010

11011

11100

11101

11110

11111

9

8

7

6

5

4

3

2

1

0

Err

Err

Err

Err

Err

Err

9

8

7

6

5

4

3

2

1

0

Err

Err

Err

Err

Err

Err

00000

00001

00010

00011

00100

00101

00110

00111

01000

01001

1XXXX

1XXXX

1XXXX

1XXXX

1XXXX

1XXXX

01001

01000

00111

00110

00101

00100

00011
00010

00001

00000

1XXXX

1XXXX

1XXXX

1XXXX

1XXXX

1XXXX

 

 

Il circuito combinatorio può essere realizzato utilizzando multiplexers direttamente dalla tabella di verità.

Occorre un MPX per ogni uscita del circuito combinatorio (quindi 5). Ogni MPXj (j=1..5) ha 32 ingressi Iij (i=0..31), una uscita Oj (j=1..5), e 5 segnali di controllo Ck. I 5 MPX hanno gli ingressi di controllo collegati ai segnali CompF4F3F2F1. Ogni ingresso Iij sarà fissato al valore binario del bit di cordinate (i,j) della parte destra della tabella di verità.

Ad esempio, il MPX1, associato all'output E, avrà il 32-esimo ingresso I31,1 saldato al valore logico 1. In tal modo quando la quintupla Comp A1A2A3A4 assume il valore 11111, l'input I31,1 verrà trasferito in uscita, e dunque l'uscita E assumerà il valore 1, come specificato nella tabella di verità.

 

La soluzione con PLA richiede invece di ricavare le espressioni booleane SOP di ciascuna delle 5 uscite.

Per ciascuna variabile di uscita, ricaviamo la relativa mappa di Karnaugh. Ad esempio:

A3A4 /

CompA1A2

00

01

11

10

000

       

001

       

011

X

X

X

X

010

1

1

X

X

110

   

X

X

111

X

X

X

X

101

       

100

1

1

   

E' possibile individuare due primi implicanti che coprano gli "1" della tabella. La EB minima SOP é data dalla:

Una volta ricavate le 5 espression SOP, possiamo disegnare il PLA, ricordando lo schema generale, che, per il caso semplice di un circuito combinatorio a 2 ingressi e 4 uscite é riportato in figura :

Nel caso in esame, va prevista una colonna per ogni termine prodotto diverso, 10 righe nella matrice AND, una per ogni variabile di ingresso diretta e negata, e 5 righe nella matrice OR, una per ognu uscita del circuito combinatorio.

 

 

Esercizio 2 (15 punti)

1.Fornire una definizione formale di automa di Moore.

2.Analizzare l'automa di Moore in figura e derivare il corrispondente circuito sequenziale minimizzato. In figura, gli stati q0-q5 producono un output=0, mentre lo stato q6 (che é uno stato finale) produce un output 1.

Soluzione.

DEF Una macchina di Moore é una sestupla (Q,S,D,d,l,q0) dove Q e' un insieme finito di stati, S e' un alfabeto finito di simboli di ingresso, D é un alfabeto di output, d e' la funzione di transizione QxS --> Q e l é una funzione di transizione da Q in D, che associa un simbolo di output ad ogni stato. Per ogni stato, l(qi)=aj, ajŒD.

Come spiegato dettagliatamente sugli appunti (parte III), la sintesi di un circuito sequenziale a partire da un automa che ne descrive il comportamento richiede:

1. La minimizzazione dell'automa

2. La selezione di un numero di FF pari a n= Èlog 2N˜ (dove N é il numero minimo di stati)

3. La scelta del tipo di FF (D, JK, ecc)

4. L'assegnazione di un codice in modo tale che ad ogni n-upla binaria di valori Qi memorizzati sui FF corrisponda uno stato dell'automa.

5.La compilazione della tabella degli stati futuri

6. L'assegnazione di valori opportuni agli ingressi dei FF, tali da consentire la transizione desiderata

7. La progettazione della parte combinatoria del circuito sequenziale (mappe di Karnaugh ecc) in base alla tabella degli stati futuri compilata ai passi pecedenti.

Punto 1

Compilando la tabella triangolare così come indicato negli appunti, si ottiene che le coppie di stati (q1,q3) e (q4,q5) risultano indistinguibili. L'automa minimizzato é dunque:

Punti 2,3,4

Occorrono dunque 3 FF, ad esempio di tipo D.

Possiamo adottare la seguente codifica (Q2Q1Q0):

000 q'0 (=q0)

001 q'1 (= q2)

010 q'2 (=q1,q3)

011 q'3 (=q4,q5)

1XX q'4 (=q6)

(Dove le denominazioni degli stati q' si riferiscono all'automa minimizzato, e tra parentesi compare la denominazione corrispondente degli stati q nell'automa non minimizzato)

 

 

 

 

 

 

 

 

 

 

 

 

 

Punti 6 e 7

A

input e stato in t

B:

stimoli da applicare ai FF per ottenere la transizione dsiderata

C:

stato di arrivo in t+1

D:

output nello stato di arrivo

XQ2Q1Q0

D2D1D0

Q2Q1Q0

Out

0000 (q'0)

0001 (q'1)

0010 (q'2)

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

000

010

010

 

 

ecc.

000 (q'0)

010 (q'2)

010 (q'2)

 

 

ecc.

0

0

0

 

 

ecc.

 

La parte combinatoria del circuito si progetta utilizzando la tabella sopra: la parte A della tabella rappresenta la parte sinistra della tabella di verità, ovvero le possibili combinazioni delle variabili booleane in ingresso al circuito combinatorio; le parti B e D rappresentano la parte sinistra della tabella di verità, ovvero i valori che le uscite del circuito combinatorio devono assumere.

Si ricavano (col metodo di Karnaugh) le EB minime per D2 D1 D0 e Out, e si progetta il circuito.

NOTA: quando un esercizio, come nel caso in esame, richiede la compilazione massiccia di tabelle di verità, o il disegno di schemi circuitali laboriosi, lo studente deve tener presente che, nella valutazione, non ha tanta importanza il fatto che ciascun passo venga completato nei minimi dettagli. Esempi significativi -come in questa soluzione- sono sufficienti. Ciò che conta é dimostrare di aver capito il problema, saperlo decomporre nei suoi aspetti, e fornire esempi che dimostrino la padronanza dei vari aspetti del problema.