Reti sequenziali Nord Ovest Est Semaforo a due stati verde/rosso Sud Vogliamo definire un circuito di controllo per produrre due segnali NS ed EO in modo che: Se NS è on allora il semaforo è verde nella direzione Nord-Sud Se NS è off allora il semaforo è rosso nella direzione Nord-Sud Se EO è on allora il semaforo è verde nella direzione Est-Ovest Se EO è off allora il semaforo è rosso nella direzione Est-Ovest Il sistema ha due stati possibili VerdeNS : VerdeEO: NS on e EO off NS off e EO on
Il circuito deve essere fatto in modo che - se si avvicina un veicolo nella direzione Nord-Sud (e non ci sono veicoli nell altra direzione) allora il semaforo diventa verde nella direzione Nord-Sud. - se si avvicina un veicolo nella direzione Est-Ovest (e non ci sono veicoli nell altra direzione) allora il semaforo diventa verde nella direzione Est-Ovest. L arrivo di un veicolo nella direzione Nord-Sud attiva un segnale VeicoloNS. L arrivo di un veicolo nella direzione Est-Ovest attiva un segnale VeicoloEO. Stato presente VeicoloNS VeicoloEO Stato prossimo VerdeNS 0 0 VerdeNS VerdeNS 0 1 Verde EO VerdeNS 1 0 Verde NS Verde EO 0 0 Verde EO Verde EO 0 1 Verde EO Verde EO 1 0 Verde NS Esempio: Stato iniziale: VerdeNS Sequenza eventi: VeicoloNS VeicoloEO VeicoloEO VeicoloNS VeicoloEO Stati: VerdeNS VerdeEO VerdeEO VerdeNS VerdeEO
R cappio RS S Stato presente S R Stato prossimo = 1 0 0 = 1 = 1 0 1 = 0 = 1 1 0 = 1 = 1 1 1 = 0 0 0 = 0 = 0 0 1 = 0 = 0 1 0 = 1 = 0 1 1 = 1 Verde-NS = 0 Verde-EO S = 1 Veicolo-NS R = 1 Veicolo-EO
R S R S y' z y Variabili di anello Rete ombinatoria Flip-Flop
Bistabile sincrono trasparente ( cappio) lock R S Finchè rimane 0 gli ingressi nel cappio rimangono 0 e quindi lo stato attuale viene conservato. uando diventa 1, l ingresso determina la transizione R S ---------------------- 0 1 0 passa nello stato =0 1 0 1 passa nello stato =1 cappio
lock Temporizzazione fronte di salita fronte di discesa Periodo di clock fronte attivo La transizione di stato puo` avvenire solo in corrispondenza di un fronte attivo del clock: commutazione sul fronte. cappio Possibile cambio di stato
cappio cappio flip-flop 1. lock non asserito ( = 0) 1 1 1 2 2 2-in 2-fin 0 1 0 1 0 1 0 x 0 0 0 1 0 1 1 1 1 x 1 1 0 0 0 0 0 1 0 x 0 0 0 0 0 0 1 1 1 x 1 1 se diventa 0, il secondo cappio assume subito lo stato del primo cappio finchè è 0 il primo cappio conserva il proprio stato che viene trasmesso al secondo cappio e quindi in uscita. 1 1 1 2 2 2-in 2-fin 0 x 0 x 0 1 0 x 0 0 0 x 0 x 1 1 1 x 1 1
cappio cappio 1. lock asserito ( = 1) 1 1 1-in 1-fin 2 2 2 1 1 1 1 x 1 0 1 0 0 1 1 1 1 x 1 0 1 1 1 1 0 1 0 x 0 0 0 0 0 1 0 1 0 x 0 0 0 1 1 se è 1 finchè il segnale è 1 il secondo cappio conserva lo stato precedente che continua ad essere trasmesso in uscita, il primo cappio cambia stato ed assume il valore di (che è uguale ad 1). se è 1 finchè il segnale è 0 il secondo cappio conserva lo stato precedente che continua ad essere trasmesso in uscita, il primo cappio cambia stato ed assume il valore di (che è uguale a 0).
tempo di preparazione (set-up time) tempo di mantenimento (hold time) Periodo di clock viene perso viene perso
Sincronizzazione el. di stato rete combinatoria el. di stato el. di stato rete combinatoria Una prima realizzazione (di una parte) dell unità di calcolo (datapath) del processore MIPS verrà sviluppata nell ipotesi che vi sia un unico orologio con un ciclo di clock sufficientemente lungo da permettere il completamento di una qualsiasi delle istruzioni considerate.
Automa Finito VeicoloNS VeicoloNS Verde EO Verde NS VeicoloEO VeicoloEO un insieme finito di stati: un insieme finito di distinti segnali in ingresso: Σ una funzione di transizione di stato: δ: Σ uno stato iniziale Automa finito con output un insieme finito di distinti segnali in uscita: Γ una funzione σ di output Macchina di Moore L' output viene associato allo stato Macchina di Mealy L' output viene associato alla transizione σ: Γ σ: Σ Γ
Riconoscitore di sequenze x i Rete seq. z z =1 se e solo se x i-2 = 1 x i-1 = 1 x i = 1 Tre stati [00] stato iniziale, l ultimo valore in ingresso NON era un 1 [01] x i-2 = 0 x i-1 = 1 (ultimi valori letti 0 e 1) [11] x i-2 = 1 x i-1 = 1 (ultimi valori letti 1 e 1) 1/0 1/0 [00] [01] [11] 1/1 0/0 0/0 0/0 Macchina di Mealy l output dipende dalla transizione (cioe dallo stato e dall input)
x Rete comb. z y 1 y 2 clock variabili di stato Stato iniziale y 1 = 0 y 2 = 0 y 2 = x y 1 = 2 se e solo se x =1; y 1 = x y 2 y 1 = 1 se e solo se x = 1 e y 2 = 1 (il valore del precedente input era 1); z = y 1 y 2 x l output è 1 se-e-solo-se x è il terzo 1 consecutivo. z x y1 y2 lock
ontatore binario (ciclico) per parole di 3 bit Partendo dallo stato 000 ad ogni impulso crea un incremento di 1, operando ciclicamente (111 000). Per la rappresentazione con una macchina a stati finiti (Macchina di Moore - l'output viene associato allo stato) servono 8 stati: [000] [001] [010] [011] [100] [101] [110] [111] [000] [001] [010] [011] [111] [110] [101] [100] Per costruire la rete sequenziale servono tre variabili di stato, che corrispondono ai tre bit della parola, y 1 y 2 y 3. y 1 = y 1 (sommando 1 l ultimo bit si inverte) y 2 = y 1 y 2 + y 2 y 1 (se y 1 = 1 c e riporto e quindi il secondo bit si inverte, altrimenti rimane inalterato) y 3 = y 3 y 1 y 2 + (se y 3 = 0 diventa 1 solo se y 1 =y 2 =1) y 3 y 1 + y 3 y 2 (se y 3 =1 rimane 1 solo se y 1 e y 2 non sono entrambi 1)