Ridondanza logica

Da testwiki.
Versione del 27 mar 2023 alle 23:16 di imported>Botcrux (Bot: codifica, sostituzione o rimozione di caratteri unicode per spazi tipografici particolari)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Template:F La ridondanza logica si verifica in una rete di porte digitali contenente circuiti che non influiscono sulla funzione logica statica. Ci sono diversi motivi per cui può esistere la ridondanza logica. Uno dei motivi è che potrebbe essere stato aggiunto deliberatamente per sopprimere glitch transitori (i quali causano così una race condition) nei segnali di uscita facendo sovrapporre due o più termini di prodotto con un terzo.

Si consideri per esempio la seguente equazione:

Y=AB+AC+BC.

Il terzo termine di prodotto BC è un termine di consenso ridondante. Se A passa da 1 a 0 mentre B=1 e C=1, Y rimane 1. Durante la transizione del segnale A nelle porte logiche, sia il primo che il secondo termine possono essere momentaneamente 0. Il terzo termine impedisce un glitch poiché il suo valore di 1 in questo caso non è influenzato dalla transizione del segnale A.

Un altro motivo per la ridondanza logica sono le pratiche di progettazione scadenti che si traducono involontariamente in termini logicamente ridondanti. Ciò provoca un aumento non necessario della complessità della rete e può ostacolare la capacità di testare i progetti fabbricati utilizzando i metodi di test tradizionali (modelli di guasto singolo bloccato). Il test potrebbe essere possibile utilizzando i modelli IDDQ.

Rimozione della ridondanza logica

La ridondanza logica, in generale, non è desiderata. La ridondanza, per definizione, richiede parti extra (in questo caso: termini logici) che aumentano i costi di implementazione (costo effettivo delle parti fisiche o tempo di elaborazione della CPU). La ridondanza logica può essere rimossa da diverse tecniche ben note, come le mappe di Karnaugh, l'algoritmo Quine-McCluskey e il metodo euristico del computer.

Aggiunta di ridondanza logica

Template:Vedi anche

K-map per ottenere il minore numero di operatori per la funzione f
La stessa k-map con l'aggiunta del termine AD per evitare il rischio di corse critiche

In alcuni casi può essere desiderabile aggiungere ridondanza logica. Uno di questi casi consiste nell'evitare corse critiche, cioè quando un'uscita può fluttuare perché termini diversi stanno "correndo" per spegnersi e riaccendersi. Per spiegare questo in termini più concreti, la mappa di Karnaugh a destra mostra i mintermini per la seguente funzione:

f(A,B,C,D)=E(6,8,9,10,11,12,13,14). 

Le caselle rappresentano i termini AND/OR minimi necessari per implementare questa funzione:

f=AC+AB+BCD.

La k-map mostra visivamente dove si verificano le situazioni di corsa nell'espressione minima avendo degli spazi tra i termini minimi, ad esempio lo spazio tra i rettangoli blu e verde. Se l'input dovesse cambiare da 1110[1] a 1010 si verificherà una corsa tra lo spegnimento di BCD e l'accensione di AB. Se il termine blu si spegne prima che il verde si accenda, l'uscita fluttuerà e potrebbe registrarsi come 0. Un'altra condizione di gara è tra le blu e le rosse per il passaggio da 1110 a 1100.

La condizione di corsa viene rimossa aggiungendo ridondanza logica. Entrambe le corse critiche sui mintermini sono coperte dall'aggiunta del termine giallo AD.

In questo caso, l'aggiunta della ridondanza logica ha stabilizzato l'uscita per evitare che fluttuazioni dell'uscita portino i termini a gareggiare a vicenda per cambiare lo stato.

Note

  1. Questa è la notazione breve utilizzata di solito per indicare A=1, B=1, C=1 e D=0

Template:Portale