Estratto del documento

Reti logiche sequenziali

Iniziamo a vedere qualcosa che apparentemente va contro il principio dei circuiti combinatori andando ad analizzare il seguente circuito: questo circuito presenta solo due porte logiche, elementari perché sono invertenti, che in questo caso sono due NOR. Questi due NOR sono collegati in retroazione, cioè l’uscita dell’uno diventa l’ingresso dell’altro e viceversa. Quindi non è più una rete che si può percorrere dagli ingressi alle uscite in modo lineare senza mai tornare indietro, qui si può tornare indietro tante volte e si può anche entrare in loop.

Andiamo a vedere come si comporta questo circuito cercando di studiare la relazione ingresso-uscita. Allora in questo caso costruiamo una tabella della verità. Iniziamo a studiarla dall’ultima configurazione, cioè 11, perché siccome utilizziamo delle porte logiche NOR, la tabella della verità del NOR ci dice che la funzione vale 1 solo in corrispondenza della configurazione 00. Essendo il NOR formato da un OR e un NOT, allora l’1 è l’elemento forzante e se c’è un ingresso a 1 allora l’uscita è 0. Mi conviene iniziare a studiare la tabella della verità di questo circuito da 11 perché in questo caso le uscite varranno entrambe 0.

Vediamo cosa succede quando s = 1 e r = 0: non siamo in grado di dire cosa determina in uscita il NOR in basso perché r = 0 è l’elemento neutro e allora dovremmo guardare l’altro segnale, ma questo è un’uscita di qualcosa. Quindi conviene cominciare la cosa da dove c’è l’elemento forzante, cioè dal NOR dove sappiamo che s = 1. Allora sappiamo che per certo, siccome un segnale di ingresso vale 1, il segnale di uscita del NOR in alto vale 0. Allora avremo come segnali di ingresso del NOR in basso 00 e quindi il segnale di uscita vale 1. Allora nella configurazione 10 le uscite saranno y = 1 e y’ = 0.

Adesso guardiamo il caso opposto, cioè quando s = 0 e r = 1: questa volta partiamo dal NOR in basso che ha r = 1 e siccome 1 è l’elemento forzante allora il segnale di uscita di questo NOR sarà 0. Allora i segnali di ingresso del NOR in alto saranno s = 0 e 0 quindi l’uscita varrà 0. Allora nella configurazione 01 le uscite saranno y = 0 e y’ = 1.

Nella configurazione 00 non abbiamo elementi forzanti per cui se abbiamo s = 0 e r = 0 i NOR non riescono a determinare i valori di uscita. Che s = 0 e r = 0 siano due elementi neutri significa che il circuito originario con due zeri fissi in ingresso è come se fosse un circuito che al posto dei due NOR ha due NOT perché gli elementi neutri fissi sono ingressi che posso rimuovere, se io li collegassi a massa, il NOR diventerebbe un NOT. Questa rappresentazione vale solo se s = 0 e r = 0. Per ipotesi, se le uscite di questo nuovo circuito fossero 0 e 1 cosa succederebbe? Lo 0 verrebbe negato e quindi rafforzerebbe l’1 e l’1 verrebbe negato e rafforzerebbe lo 0, viceversa se per ipotesi le uscite fossero 1 e 0. Quindi questa è una situazione plausibile, stabile, e troverei una tabella della verità:

  • y y’
  • 0 1
  • 1 0

Se invece le uscite fossero 0 e 0 questi valori devono venire negati e quindi avremo 1 e 1, ma analogamente, se le uscite fossero 1 e 1 questi valori devono venire negati e quindi avremo di nuovo 0 e 0, e così via. Quindi questa configurazione non sarebbe stabile, cioè se il circuito avesse una simmetria perfetta e si trovasse ad avere in un certo momento 00 in uscita si entrerebbe in un loop infinito in cui si alternano 00 e 11. Questo nella realtà non accadrà mai perché non esiste un circuito perfettamente simmetrico. Quindi il circuito non andrà mai in loop ma entrerà in una delle due condizioni stabili descritte dalla tabella della verità però noi non sapremo determinare quale sia lo stato, cioè non sappiamo più pilotare o precedere il circuito, per cui la configurazione del circuito originale 00 è una condizione in cui non vogliamo finire perché perderemo il controllo sull’uscita del circuito che dipenderebbe da fenomeni involontari (imprecisioni, imperfezioni, ritardi, ...) e quindi non possiamo condizionare il funzionamento di un circuito logico che vorremo far funzionare in modo deterministico a qualcosa che invece sfugge al nostro controllo. In corrispondenza della configurazione 00 non sappiamo cosa dire perché abbiamo trovato tre situazioni (una instabile che continuamente oscilla il segnale e due stabili) diverse.

Quindi questo circuito non può essere un circuito combinatorio. Se volessimo costruire una tabella della verità esaustiva che ci consenta di completare tutte le righe, dovremmo tener conto del fatto che anche le uscite si comportano anche come degli ingressi e quindi dovremmo mettere y e y’ sia a sinistra che a destra della linea verticale che separa le variabili indipendenti da quelle dipendenti.

Circuito sequenziale

Il circuito trattato finora si chiama circuito sequenziale, o meglio una macchina a stati finiti. Le macchine a stati finiti sono delle sestuple (hanno sei elementi) dove gli elementi sono (S, I, O, f, g, s ). Vediamo cosa sono:

  • S è l’insieme degli stati in cui questa macchina si può trovare. Si chiama macchina a stati finiti perché l’insieme degli stati S è finito. Lo stato iniziale s appartiene a S.
  • I è l’insieme delle possibili configurazioni di ingresso (es: se le variabili sono 2, l’insieme I contiene 4 possibili comandi: 00, 01, 10, 11).
  • O è l’insieme delle possibili configurazioni di uscita.
  • f è una funzione booleana, detta funzione di uscita (output function). Determina il valore dell’uscita in funzione dell’ingresso e dello stato presente della macchina, f (s, i) = o.
  • g è una funzione booleana, detta funzione di stato futuro (next-state function). Ci dice come evolve lo stato della macchina. Determina il valore del prossimo stato che la macchina assumerà in funzione dell’ingresso e dallo stato presente della macchina, g (s, i) = snext.
  • s è lo stato iniziale. Immaginiamo di accendere una macchina, se l’evoluzione della macchina e le uscite dipendono dallo stato e dagli ingressi, se noi non conoscessimo lo stato iniziale rischieremmo di non saper descrivere il comportamento della macchina. Se lo stato iniziale non sarà controllabile rischieremo di non poter controllare il comportamento della macchina. Per questo è importante stabilire quale sia lo stato iniziale per fare in modo che la macchina all’accensione si trovi in uno stato noto.

Lo stato della macchina rappresenta la sua memoria di quello che le è accaduto fino a quel momento. Queste macchine si dicono sequenziali perché l’uscita viene determinata dalla configurazione presente degli ingressi e dalla storia pregressa della macchina e quindi una sequenza di eventi in ingresso che la macchina ha subito. Per rappresentare una macchina a stati finiti è possibile costruire un diagramma degli stati che avrà tanti nodi quanti sono gli stati, e quindi sono sempre di numero finito.

Le macchine a stati finiti possono anche essere classificate in tre diversi tipi di macchine:

  • Macchina di Mealy. Entrambe le funzioni vanno dal prodotto cartesiano dell’insieme degli stati e dell’insieme degli ingressi all’insieme delle uscite per f o all’insieme degli stati per g. Ad ogni stato e ingresso, f fa corrispondere un’uscita e g fa corrispondere lo stato futuro.
  • Macchina di Moore. Anche in questo caso, la funzione g fa corrispondere ad ogni stato e ingresso lo stato futuro, mentre la funzione f per determinare l’uscita considera solo lo stato. Cioè f è una funzione che va dall’insieme degli stati all’insieme delle uscite.
  • Circuiti combinatori. Pur non essendo macchine sequenziali, rientrano in questa classifica perché anche questi sono dei casi estremi in cui l’uscita dipende solo dall’ingresso, non anche dallo stato. Il fatto che dipenda solo dall’ingresso rende lo stato inutile e quindi è inutile considerare degli stati nella macchina e pensare che lo stato evolva. Quindi i circuiti combinatori hanno una funzione f che va dall’insieme degli ingressi all’insieme delle uscite.

Le macchine a stati finiti possono essere sincrone o asincrone. Questo vuol dire che esiste un segnale di sincronismo, cioè qualcosa (come il clock nei sistemi a microprocessore) che scandisce il tempo e non fa cambiare lo stato della macchina in modo arbitrario in qualunque istante possibile, ma lo fa cambiare soltanto in modo sincronizzato al segnale di clock. Quindi in un ciclo lo stato viene calcolato come stato futuro che diventa attuale solo quando scatta il clock. Le macchine sincrone hanno questo segnale di sincronismo.

Esempio con la macchina di Moore

In questo esempio introduco una macchina di Moore rappresentata attraverso il diagramma degli stati.

Schema generale macchina di Moore: questo diagramma rappresenta un sistema di alimentazione che è controllato da un pulsante che può essere ON o OFF e viene monitorato da un LED. Questa è una macchina a stati finiti. La possiamo descrivere dicendo che il suo stato iniziale è OFF e il LED quindi si spento, Dark. Gli stati sono ON e OFF, gli ingressi sono i comandi on e off e le uscite sono Light e Dark:

Questo esempio ci serve a chiarire che il concetto di macchina a stati finiti non è legato necessariamente alle funzioni booleane. Noi qui stiamo parlando di funzioni in generale che possono dirci che lo stato futuro di questa macchina è legato allo stato presente e all’ingresso dove questi non necessariamente sono dei bit, non sono necessariamente codificati in codice binario, ma sono dei nomi che abbiamo dato e possiamo continuare a lavorare con il diagramma degli stati utilizzando solo dei nomi, che possiamo dare agli stati, agli ingressi e alle uscite. Quindi abbiamo uno stato OFF nel quale il LED è spento. Il fatto che il LED sia spento dipende solo dal...

Anteprima
Vedrai una selezione di 4 pagine su 14
Reti logiche sequenziali Pag. 1 Reti logiche sequenziali Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Reti logiche sequenziali Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Reti logiche sequenziali Pag. 11
1 su 14
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher tommasop01 di informazioni apprese con la frequenza delle lezioni di Reti logiche e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi "Carlo Bo" di Urbino o del prof Bogliolo Alessandro.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community