Politecnico di Milano Dipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi prof.ssa Cristiana Bolchini Esercizio n. 1 Si consideri la macchina sequenziale sincrona a 3 ingressi a, b, c e 1 uscita Y così definita: (a) la funzione di uscita λ è descritta tramite la rete multilivello sotto riportata V1 = ab +!Q1Q2 +!(!a +!b +!Q2) +!abc +!Q1!Q2 Reti Logiche Appello del 1 marzo 2011 V2 =!V1a!Q2 + c!q2!v1 + Q1V1 Y = V2 + c!q2 + Q3 Matricola FIRMA Cognome Nome Istruzioni Ogni foglio consegnato deve riportare Matricola, Cognome, Nome e Firma dell allievo È vietato portare all esame libri, eserciziari, appunti e calcolatrici. Chiunque venga trovato in possesso di documentazione relativa al corso anche se non strettamente attinente alle domande proposte vedrà annullata la propria prova Non è possibile lasciare l aula conservando il tema della prova in corso Tempo a disposizione: 2:15h Esercizio 1 (7 punti) Esercizio 2 (6 punti) Esercizio 3 (7 punti) Esercizio 4 (7 punti) Esercizio 5 (5 punti) I punteggi sono indicativi. Dove Q1, Q2 e Q3 rappresentano le variabili stato presente del contatore che specifica la funzione δ (vedi sotto), e V1, V2 e V3 sono nodi intermedi. (b) la funzione stato prossimo δ è invece descritta tramite il ciclo di conteggio sotto riportato Q3 Q2 Q1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 0 Per realizzare la macchina sequenziale descritta si svolgano i seguenti punti: 1. Applicare in sequenza alla rete multilivello le trasformazioni sotto indicate. NB: per ogni trasformazione è obbligatorio riportare il risultato della trasformazione e mostrare chiaramente tutti i passaggi effettuati per ottenere il risultato stesso. a) COST( ): Calcolo del numero di letterali. La funzione COST() calcola il costo in letterali indipendentemente dalla forma (SOP o Multilivello) delle espressioni algebriche dei nodi. b) SIMPLIFY(V1): Minimizzazione a due livelli di V1 c) FTOR(V2): Fattorizzazione del nodo V2 d) FTOR(V1): Fattorizzazione del nodo V1 e) SUBSTITUTE(V3): Inserimento del nodo V3 ove possibile f) COST( ): Calcolo del numero di letterali 2. Sintetizzare in modo ottimo il contatore secondo il metodo visto a lezione utilizzando flip flop D, e riportare le equazioni algebriche delle funzioni stato prossimo D3, D2 e D1. 3. Disegnare lo schema del circuito della macchina sequenziale data così come risulta dalle sintesi parziali effettuate ai punti 1 e 2. Con Soluzioni Reti Logiche Appello del 1 marzo 2011 pagina 2 di 11
ESERCIZIO_1: Traccia di soluzione 1) trasformazioni rete multilivello COST( ): 26 SIMPLIFY(V1): V1 = ab +!Q1Q2 +!(!a +!b +!Q2) +!abc +!Q1!Q2 = ab +!Q1Q2 + abq2 +!abc +!Q1!Q2 = ab (1 + Q2) +!Q1(Q2 +!Q2) +!abc = ab +!Q1 +!abc = b (a +!ac) +!Q1 = b (a + c) +!Q1 = ab + bc +!Q1 FTOR(V 2): V2 =!V1a!Q2 + c!q2!v1 + Q1V1 =!V1!Q2 (a + c) + Q1V1!V1 a!q2 c Q1 V1!V1a!Q2 1 1 1 c!q2!v1 1 1 1 Q1V1 1 1 2 1 2 1 1 1 FTOR(V 1): V1 = ab + bc +!Q1 = b(a + c) +!Q1 SUBSTITUTE(V 3): a b c!q1 ab 1 1 1 bc 1!Q1 1 1 2 1 1 V1 = b V3+!Q1 V2 =!V1!Q2 V3 + Q1V1 COST( ): 14 Equazioni della rete multilivello che rappresenta la funzione di uscita λ dopo le trasformazioni V1 = b V3+!Q1 V2 =!V1!Q2 V3 + Q1V1 Y = V2 + c!q2 + Q3 2) sintesi contatore con FF D Mappe di Karnaugh corrispondenti e sintesi ottima Q2Q1 00 01 11 10 Q3 0 - - 1 1 1 0 0-1 D3 = Q2 Q2Q1 00 01 11 10 Q3 0 - - 0 1 1 1 1-0 D2 =!Q2 +!Q3!Q1 Q2Q1 00 01 11 10 Q3 0 - - 0 0 1 0 1-1 D1= Q1Q2 + Q3Q2 Q3 Q2 Q1 Q3* =D3 Q2* =D2 Q1* =D1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 3) Schema circuito FSM: è costituito da 3 FF D e da una rete combinatoria che realizza le equazioni ottenute ai punti precedenti, e cioè V1 = b V3+!Q1 V2 =!V1!Q2 V3 + Q1V1 Y = V2 + c!q2 + Q3 D3 = Q2 D2 =!Q2 +!Q3!Q1 D1= Q1Q2 + Q3Q2 Dove Q1, Q2, Q3 e D1, D2, D3 rappresentano le uscite e gli ingressi dei tre flip flop. Reti Logiche Appello del 1 marzo 2011 pagina 3 di 11 Reti Logiche Appello del 1 marzo 2011 pagina 4 di 11
Esercizio n. 2 Si derivi la specifica del circuito VOTER riportato in figura, che riceve in ingresso un segnale di abilitazione enable, e tre segnali di dati, in1 in2 e in3, di un bit ciascuno e genera in uscita il segnale outv a un bit e il segnale diagnosis a tre bit. Quando enable = 1, il circuito effettua una votazione di maggioranza sui tre valori di ingresso dati ricevuti ed emette sull uscita outv il valore di maggioranza. Sull uscita di diagnosi, il circuito indica se tutti i segnali di ingresso hanno ugual valore (diagnosis = 111) oppure quale dei tre segnali differisce (ingresso in minoranza). In figura è sinteticamente riportato il comportamento del circuito. Si effettui la sintesi ottima del circuito adottando uno dei metodi visti (Karnaugh, Quine McCluskey, ), riportando con cura tutti i passaggi. Esercizio n. 3 Data la tabella degli stati di una FSM sincrona, sotto riportata: a) minimizzare il numero degli stati e riportare la tabella degli stati della macchina minima b) definire una possibile codifica degli stati della macchina minima individuata ai punti precedenti nell ipotesi di sintesi tramite flip-flop T e derivare la tabella delle eccitazioni della macchina IN=0 IN=1 OUT A G E 1 B H D 1 C H E 1 D H B 0 E G B 0 F C G 0 G A I 0 H C I 0 I E F 1 ESERCIZIO_2: Traccia di soluzione Tabella della verità del circuito a 4 ingressi e 4 uscite Enable In3 In2 In1 outv Diag3 Diag2 Diag1 0 0 - - - - - - -.... - - - - - - - 7 0 - - - - - - - 8 1 0 0 0 0 1 1 1 9 1 0 0 1 0 0 0 1 10 1 0 1 0 0 0 1 0 11 1 0 1 1 1 1 0 0 12 1 1 0 0 0 1 0 0 13 1 1 0 1 1 0 1 0 14 1 1 1 0 1 0 0 1 15 1 1 1 1 1 1 1 1 Sintetizzando con 4 mappe di Karnaugh (sfruttando le condizioni di indifferenza) si ottiene: outv = in1in2 + in3in1 + in3in2 diag3 =!in2!in1 + in2in1 diag2 = in3in1 +!in3!in1 diag1 = in3in2 +!in3!in2 ESERCIZIO_3: Traccia di soluzione. La macchina è completamente specificata: si deve effettuare l analisi di indistinguibilità. GH B DE C GH DE D E HG F G H I B ~ HC BG HA HC GC BG GC GE EH EH DF A B C D E F G H C ~ ~ D E ~ F G H I A B C D E F G H CA GI GI CA ~ Reti Logiche Appello del 1 marzo 2011 pagina 5 di 11 Reti Logiche Appello del 1 marzo 2011 pagina 6 di 11
Partizioni di equivalenza = α={abc},β={de},γ={gh},f,i Tabella degli stati minima: IN=0 IN=1 OUT α γ β 1 β γ α 0 F α γ 0 γ α I 0 I β F 1 Assegnamento casuale α=000, β=001, γ=010,f=011,i=1 Esercizio n. 4 Data la tabella degli stati di una FSM sincrona di seguito riportata, utilizzando i criteri visti a lezione IN=00 IN=01 IN=11 IN=10 A A/- C/- -/- F/1 B E/0 F/1 A/- B/- C E/- F/1 A/- -/- D E/1 C/0 D/- B/1 E B/- F/0 -/- F/- F F/0 C/- C/1 F/0 Tabella transizioni della macchina: 1) Calcolare le classi di massima compatibilità, 2) Calcolare la tabella degli stati della macchina ridotta. Tabella eccitazioni bistabile T Q Q* C T 0 0 0-1 1 0-0 0 1 0 0 1 1 1 1 0 1 1 Q2Q1Q0 IN=0 IN=1 OUT 000 010 001 1 001 010 000 0 011 000 010 0 010 000 100 0 100 001 011 1 Q2* Q1* Q0* ESERCIZIO_4: Traccia di soluzione. La macchina NON è completamente specificata: si deve effettuare un analisi di compatibilità B C D E F AB V BE A B C D E 1 1 1 0 Tabella eccitazioni della macchina: B Q2Q1Q0 IN=0 IN=1 OUT 000 010 001 1 001 011 001 0 011 011 001 0 010 010 110 0 100 101 111 1 T2 T1 T0 C D E F AB V A B C D E Reti Logiche Appello del 1 marzo 2011 pagina 7 di 11 Reti Logiche Appello del 1 marzo 2011 pagina 8 di 11
Classi di massima compatibilità Copertura della macchina tramite le classi di compatibilità prime: ABCD A B C D E ABC ABCDE DE AD ADE B B BCD CD D D Classe prima vincoli Beneficio_1 Beneficio_2 Beneficio_3 Beneficio_4 Beneficio_5 ABC,, 0-2 -3-3 -3 B AF, 1-1 -1-1 -1 AD, 0 0-1 -2-2 AB, 0 0-1 -1-2, 0 0 0 0-1, 0-1 -2-2 -2 BC 0 2 (SCELTA) A 0 1 1 (SCELTA) D 0 1 1 1 (SCELTA) E 0 1 1 1 1 (SCELTA) F 0 1 1 1 1 1 (SCELTA) Copertura individuata: BC (= b), A, D, E, F Tabella degli stati della macchina ridotta IN=00 IN=01 IN=11 IN=10 A A/- b/- -/- F/1 b E/0 F/1 A/- b/- D E/1 b/0 D/- b/1 E b/- F/0 -/- F/- F F/0 b/- b/1 F/0 F Le classi di massima compatibilità sono: ABC, B, AD,,. Reti Logiche Appello del 1 marzo 2011 pagina 9 di 11 Reti Logiche Appello del 1 marzo 2011 pagina 10 di 11
Esercizio n. 5 Data la seguente descrizione di circuito in VHDL entity exam is port( clk, reset : in std_logic; in1,in2,in3 : in std_logic_vector(2 downto 0); out1, out2: out std_logic_vector(2 downto 0) ); end exam; architecture mixed of exam is signal c : std_logic; signal a, b : std_logic_vector(2 downto 0); begin c <= '0' when ((in1 = in2) and (in2 = in3)) else '1'; PROC1: process (clk) begin if( clk'event and clk = '1') then if( reset = '1' ) then a <= "001"; else a <= b; end if; end if; end process PROC1; PROC2: process(a) begin if (a = "001") then out2 <= "111"; else out2 <= a*b; end if; end process PROC2; out1 <= in1 when (a = "001") in2 when (a= "010") else in3; b(2) <= a(0) xor c; b(1) <= a(1) and b(0); b(0) <= a(2) or not c; end mixed; Disegnare un circuito composto da componenti elementari (porte logiche, multiplexer, bistabili, sommatori, moltiplicatori, ecc.) che implementi il modello VHDL proposto. Reti Logiche Appello del 1 marzo 2011 pagina 11 di 11