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 |
E F1F2F3F4 |
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 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 I
31,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 /Comp A1A2 |
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.
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, ajD.
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.