4 1 3 4 4 3 2 3 3 2 1 2 2 1 4 1 y . y y . x y` y . y y . x y` y . y y . x y` y . y y
by user
Comments
Transcript
4 1 3 4 4 3 2 3 3 2 1 2 2 1 4 1 y . y y . x y` y . y y . x y` y . y y . x y` y . y y
Esempi di progetto di circuiti seq. asincroni Capitolo 5 Esempio 1 Si progetti un divisore binario, cioe' un circuito a un ingresso e un'uscita il cui valore cambi ogni volta che l'ingresso passa da 0 a 1. 0 1 1 Ingresso Stato 1/0 2/1 0 0 3/1 4/0 0 1 z 1 1 2 0 2 3 2 1 3 3 4 1 4 1 4 0 1 1 0 figura 6.6.1 Grafo degli stati e matrice primitiva delle sequenze Esempio 1 1/0 y1 2/1 y 0 1 0 1/0 4/0 1 2/1 3/1 2 4/0 Diagramma delle transizioni e tavola delle transizioni 3/1 Per evitare alee statiche figura 6.6.2 x y y 1 2 00 01 0 00 x 1 /0 11/1 00 0 01/0 01 y1 y2 1 /1 01 11 1 1 10 11 10 00/0 /1 y1 y2 00 0 1 1 y'1 11 x 1 1 01 11 1 1 10 1 y'2 10/1 10 y'1 x. y 2 x . y1 y1 . y 2 y1 .x y 2 x. y 2 /0 y' y' 1 2 Tavola di flusso y' 2 x. y 2 x .y1 y1 . y 2 y1 .x y 2 x. y 2 z y2 Esempio 1 3 Soluzione 1 _ X 6 _ X 1 4 2 Z 5 figura 6.6.3 Per semplificare il circuito: Notare che G5 e G3 hanno gli stessi ingressi (a meno di un invertitore) y3 y6 y1 y1 y6 y5 y6 y1 y1 y6 y6 y3 y1 Inoltre con la tecnica del ‘bounding” si puo’ eliminare anche l’invertitore all’ingresso di G6 Esempio 1 3 _ X 6 Soluzione 1 1 _ X 4 2 Z 5 figura 6.6.3 X 3 1 Soluzione 2 6 4 2 5 figura 6.6.4 Z Esempio 2 Realizzare un contatore ad anello un circuito a 1 ingresso e n uscite in cui l'uscita zj = 1 quando e solo quando si sono avute j + n.k (k = 0,1,....) variazioni dell'ingresso. Tutte le altre uscite devono essere nulle. Ingresso Stato x 0 1 Uscita y1 y2 0 1 1 1 2 1000 00 00 / 1000 01/ ------ 2 3 2 0100 01 11/ ------ 01 / 0100 3 3 4 0010 11 11 / 0010 10/------ 4 1 4 0001 10 00/ ------ 10 / 0001 , , 1 2 y y /z z z z figura 6.6.5 1 2 3 4 Esempio 2 x y'1 x. y 2 x . y1 y1 . y 2 y' 2 x. y 2 x .y1 y1 . y 2 (identico all’esempio 1) z 1 x .y 2 z 2 x .y 1 z 3 x. y 2 z 4 x . y1 y1 y 2 0 1 00 00 / 1000 01/ ------ 01 11/ ------ 01 / 0100 11 11 / 0010 10/------ 10 00/ ------ 10 / 0001 , , 1 2 y y /z z z z Questa soluzione richiederebbe al minimo 8 Nand e 6 invertitori 1 2 3 4 Esempio 2 Altra soluzione : Si codifichi lo stato con 4 variabili (le uscite coincidano con le variabili di stato x y y y y 1 2 3 4 0000 4 0001 0011 3 2 1 0 1 -1001/-- 0001/-- 0010 0010/0010 0110 0010/-- -- 0111 -- -- 0101 -- -- 0100 0110/-- 0100/0100 1100 -- 0100/-- 1101 -- -- 1111 -- -- 1110 -- -- 1010 -- -- 1011 -- -- 1000/-- 1000 1000/1000 Codifica delle variabili secondo il codice di Gray 2. Identificazione degli stati 1 2 3 4 stabili di cui 1 e 3 per x=0 e 2 e 4 per x=1 3. Definizione delle uscite 4. Utilizzo di transizioni Multiple Es: 0010 0011 0001 5. (Mappe di Karnaught per la semplificazione) 6. Descrizione delle relative equazioni 0001/0001 -- 1001 1. -- 0011/-- y'1 = x. y 4+ y1.y 2 y'2 = x. y1+ y 2 .y 3 -1100/-, y1, y2 y3, y4, / z z z z 1 2 3 4 figura 6.6.6 y'3 = x. y 2+ y 3.y 4 y'4 = x. y 3+ y1. y 4 Esempio 2 y' 1 = x . y 4 + y 1 . y 2 Notare che il circuito puo’ essere realizzato in forma iterativa y' 2 = x . y 1 + y 2 . y 3 y' 3 = x . y 2 + y 3 . y 4 y' 4 = x . y 3 + y 1. y 4 x _ x _ x x z1 z2 figura 6.6.7 z3 z4 Reti iterative Si tenga conto di strutture 1D Si possono trattare come circuiti sequenziali Ingressi primari = ingressi prorpi Ingressi secondari = stato attuale Uscite secondarie = stato futuro Uscite Primarie = uscite proprie Ingressi della rete Ingressi al contorno Cella 1 Cella 2 (a)Rete iterativa Ingressi al Contorno (solitamente costanti) Uscite al contorno Uscite al contorno Uscite della rete x Cella n Ingressi secondari dalla cella j-1 Ingressi primari x x 1j 2j y 1j y y 1,j+1 y Uscite secondarie verso la cella y m ,j+1 j+1 Cella 2j y rj 2,j+1 j mj (solitamente uscite prorpie) z 1j z 2j z rj Uscite primarie (b) Cella tipica figura 6.7.1 Esempio 1 Incremento (out = in +1) y z j+1 xj dal Data Bus xj = 0 y xj = 1 j xj = 0 xj = 1 j x1 x2 x3 xn y j 1 AND AND AND AND XOR XOR z2 z3 0 0 1 1 0 1 1 0 (b) q XOR z z1 0 AND XOR XOR y j+1 0 j xj 0 1 A A,0 A,1 B A,1 B,0 zn qj+1 , z j (a) (c) verso il registro figura 6.7.2 figura 6.7.3 010010011010111+ 000000000000001= 010010011011000 Stato A : y=0 Stato B : y=1 Esempio 2 Controllore continuo di parita’ su tutti i bit che via via si presentano su di una linea seriale In teoria si dovrebbero realizzare rispettivamente: S11, S12 , S13,3 , S14,3 , S15,3,5 , S16,3,5 ,... Soluzione iterativa L’ingresso secondario (stato) sia A se la parita’ sugli ingressi primari precedenti e’ dispari, altrimenti sia B L’uscita primaria sia 1 se la parita’ di tutti i bit che precedono piu’ la’ttuale e’ dispari L’uscita secondaria rappresenta la parita’ sui bit precedenti piu’ lattuale x A: Dispari B: Pari xj j 0 1 A A/1 B/0 B B/0 A/1 Codifica: A y=1 B y=0 (cosi’ z=y) yj+1 yj zj Esempio 3 Dato un Bus su quale si possono avere n chiamate si vogliano identificare le 2 a piu’ alta priorita’ Es: 01000100110110 01000100000000 (identifica 2 su 6) 00000001000000 00000001000000 (identifica 1 su 1) Soluzione: Stato A: non vi sono richieste a maggior priorita’ Stato B: vi e’ una sola richiesta a maggior priorita’ Stato C: vi sono 2 o piu’ richieste a priorita’ maggiore Ingresso Stato xj =0 x y xj =1 A A/0 B/1 B B/0 C/1 C C/0 C/0 Codifica: A=00 B=01 C=11 y j 0 2,j 1,j 1 00 00/0 01/1 y 2, j1 y 2, j x j . y1, j 01 01/0 11/1 y1, j1 y1, j x j 11 11/0 11/0 10 --/- --/- z j x j .y 2, j Stato/z j y y 2,j+1 1,j+1 /z j Esempio 3 x y y j 0 2,j 1,j 1 00 00/0 01/1 01 01/0 11/1 11 11/0 11/0 10 --/- --/y x y2,j y y /z y 2, j1 y 2, j x j . y1, j z j x j .y 2, j y2,j+1 1,j y 2,j+1 1,j+1 y1, j1 y1, j x j j j z j figura 6.7.4 1,j+1