• Non ci sono risultati.

1.15 L’AFFIDABILITÀ DI UNA RETE LOGICA

Nel documento Fondamenti di elettronica digitale (pagine 40-44)

Una rete logica è affidabile se lo stato dell’uscita è in ogni istante quello previsto dalla sua tavola della verità.

La non affidabilità è imputabile alla differenza nei tempi di propagazione dei segnali di entrata attraverso diversi percorsi nella rete per giungere alla stessa uscita. Questo può far sì che l’uscita assuma un valore logico errato, temporaneamente (nel caso di reti combinatorie) o anche definitivamente (nel caso di reti sequenziali, delle quali si parla nel Capitolo III). Questo fenomeno viene chiamato alea.

Consideriamo per ora le reti combinatorie e limitiamoci per semplicità all’alea associata al cambiamento di stato di una sola variabile di entrata: nel caso di cambiamento contempo- raneo di più variabili, è più difficile prevedere e correggere l’alea.

Si distinguono due tipi di alea.

Una rete presenta alea statica quando l’uscita, pur dovendo restare nello stesso stato logico in seguito al cambiamento di una variabile di entrata, transita per breve tempo nell’altro stato.

Una rete presenta alea dinamica quando l’uscita, pur dovendo cambiare stato in seguito al cambiamento di una variabile di entrata, “rimbalza” una o più volte tra i due stati prima di fermarsi definitivamente nello stato corretto.

Il fenomeno è illustrato in Fig. 1.28: come si osserva, in entrambi i casi la rete assume, sia pure temporaneamente, un valore logico errato.

Cominciamo a considerare l’alea statica.

Condizione necessaria affinché il cambiamento di stato di una varia-

bile di entrata provochi alea statica è che tale cambiamento influenzi la stessa uscita attraverso due percorsi diversi differenti per una inversione.

In Fig. 1.29 è disegnata la rete relativa alla funzione

Y = AB + BC

mentre in Fig. 1.30 è disegnato il diagramma temporale relativo alla transizione 1->0 di B (mentre A=C=1), tenendo conto del ritardo di propagazione attraverso le porte, assumendolo eguale a δt per

ciascuna porta (per semplicità di disegno, si considera 0 il ritardo dell’OR). Come si può osservare, a causa della presenza dell’inverter le due entrate all’OR non cambiano stato contemporaneamente, e questo fa sì che l’uscita, che dovrebbe restare a 1 anche dopo la transizione di B, assuma transitoriamente il valore 0, errato. Si può anche verificare che la transizione 0-1 di B non dà problemi.

La condizione su esposta non è tuttavia sufficiente, come si può facilmente comprendere: infatti il ritardo di propagazione non è costante per tutte le porte, anche nell’ambito della stessa famiglia logica (a causa delle tolleranze di costruzione), ed è fortemente variabile da famiglia a famiglia. Per- tanto, può accadere che la distribuzione dei ritardi lungo i due percorsi sia, casualmente, tale da neutralizzare l’alea.

La possibilità che si instauri un’alea statica nella rete in esame è prevedibile già osservando l’espressione algebrica della funzione: questa richiede che Y resti nello stato 1 quando, per effetto del cambiamento di stato di B, entrambi i termini prodotto devono cambiare valore logico. A causa della inevitabile presenza di un inverter, è presumibile che il cambiamento non avvenga contemporaneamente.

La possibilità che si presenti alea statica si traduce nella seguente topologia della mappa di Karnaugh della funzione, Fig. 1.31: il cambiamento di stato di B che genera l’alea statica corrisponde ad un salto fra due caselle adiacenti, appartenenti a due raggruppamenti diversi.

È facile convincersi che non possono esserci alee per transizioni all’interno dello stesso raggruppamento: queste transizioni, infatti, non comportano alcun cambiamento di valore logico del termine generato da quel raggruppamento.

Ci si può anche convincere, osservando l'esempio precedente, che una rete sintetizzata come somma di prodotti non può presentare alea se l’uscita è 0 e, dopo il cambiamento di una variabile di entrata (diciamo B) essa deve restare nello stato 0: questo perché ogni termine prodotto che contiene B non può essere eguale a 0 a causa di B, ma deve necessariamente includere qualche altra variabile (in forma vera o in forma complementata) che è 0: poiché per ipotesi solo B cambia stato, l’uscita resta a 0.

Naturalmente, può esserci alea anche se la funzione viene sintetizzata come prodotto di somme: in questo caso, si potrà avere alea statica se la funzione deve restare a 0 quando, per il cambiamento di stato di una variabile, i due termini somma devono cambiare stato contemporaneamente. La mappa di Karnaugh può ancora essere usata per evidenziare l’alea.

L’alea statica può essere eliminata aggiungendo alla funzione un termine che, senza alterare la tavola della verità, “costringa” la rete a restare nello stato corretto quando la variabile incriminata cambia stato. Nell’esempio considerato, tale termine è AC: nella mappa di Karnaugh esso serve a congiungere i due raggruppamenti iniziali, facendo ora sì che la transizione di B avvenga nell’ambito di uno stesso raggruppamento, appositamente creato. È possibile dimostrare che se l’alea viene eliminata considerando la forma S.d.P. della funzione, anche la forma P.d.S. della stessa funzione non presenta alea.

ridondante, cioè ha come contropartita la rinuncia alla forma minima della funzione. Consideriamo ora l’alea dinamica.

Condizione necessaria affinché il cambiamento di stato di una variabile di entrata provochi alea dinamica è che tale cambiamento influenzi la stessa uscita attraverso almeno tre percorsi diversi, differenti per una inversione.

Questa situazione si può presentare, tipicamente, quando nella espressione algebrica della funzione compaiono termini raccolti a fattore comune, come accade quando si vuole diminuire il costo di una rete applicando la proprietà associativa.

Si consideri (come esempio costruito appositamente) la rete di Fig. 1.32, relativa alla funzione

Y = BC + AB(AB + C)

La variabile B soddisfa la condizione necessaria per il verificarsi dell’alea dinamica. In Fig. 1.33 è considerata la transizione 1->0 di B, mentre A=C=1, nell’ipotesi che tutte le porte abbiano lo stesso ritardo (si considera 0 il ritardo dell’OR di uscita).

Naturalmente, anche per l’alea dinamica non è possibile dare condizioni sufficienti per il suo verificarsi: i ritardi reali delle porte usate possono essere tali da neutralizzarla.

L’eliminazione dell’alea dinamica avviene modificando l’espressione algebrica, rifattorizzandola o, meglio, eliminando la fattorizzazione (con conseguente aumento del costo).

Conviene infine osservare che il problema dell’alea nelle reti combinatorie può essere irrilevante in alcune applicazioni, data la transitorietà del fenomeno: è il caso, per esempio, se l’uscita della rete è utilizzata per pilotare un display a LED. Se invece la stessa rete dovesse pilotare un contatore di impulsi, l’alea darebbe luogo a un conteggio errato: in questo caso è imperativo eliminarla.

Nel documento Fondamenti di elettronica digitale (pagine 40-44)

Documenti correlati