Antonio D'Amore I CIRCUITI DI COMMUTAZIONE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Antonio D'Amore I CIRCUITI DI COMMUTAZIONE"

Transcript

1 Antonio D'Amore I CIRCUII DI COMMUAZIONE

2 I

3 Prefazione Il presente volume nasce dalla raccolta delle lezioni tenute agli allievi del del corso di Laurea in Ingegneria Elettronica e vuole essere un primo approccio ai circuiti di commutazione e alle metodologie che stanno alla base della loro analisi e della loro sintesi. Pertanto si sono tralasciati volutamente gli eccessivi formalismi, evitando di riportare quelle dimostrazioni, che, pur essendo di un notevolissimo interesse teorico, appaiono troppo astratte ed onerose per chi per la prima volta affronta l'argomento. Il testo non pretende pertanto di essere ne' rigoroso, ne' completo, ma semplicemente di dare una visione panoramica di quelle nozioni che devono entrare a far parte del bagaglio culturale di qualsiasi ingegnere elettronico, anche se non specialista di elettronica digitale. Uno scrupolo ha tuttavia obbligato l'autore a presentare in appendice in maniera formale l'algebra booleana, a differenza di quanto fatto nel secondo capitolo, dove lo stesso argomento e' stato affrontato senza eccessivo rigore e in maniera quasi intuitiva. Si e' ritenuto inoltre opportuno riportare in una seconda appendice qualche nozione sulle logiche a soglia, stante l'interesse che tale argomento riveste. Si e' lasciato tuttavia al lettore il compito di approfondire, se necessario, l'argomento. I

4 Antonio D'Amore I CIRCUII DI COMMUAZIONE

5 INDICE CAPIOLO I - SISEMI DI NUMERAZIONE E CODICI.) Sistema di numerazione decimale..) Sistemi di numerazione a base qualsiasi..) Conversione tra sistemi a base diversa..4) Metodi di conversione da binario a decimale. 5.5) Aritmetica binaria. 6.5.) Addizione binaria. 6.5.) Sottrazione binaria. 6.5.) Complemento a B e a B ) Moltiplicazione binaria..5.5) Divisione binaria..6) I codici..7) Codici efficienti..8) I codici ridondanti..8.) Probabilita' totale di errore non rivelato. 4.8.) Codice a controllo di parita'. 5.8.) Codici a peso costante ) Codici di Hamming. 7.9) Codici riflessi. CAPIOLO II - ALGEBRA BOOLEANA.) Introduzione..) Variabili e funzioni..) Funzioni di una variabile. 4.4) Funzioni di due variabili. 5.4.) Funzione OR o somma logica. 5.4.) Funzione OR esclusivo o somma modulo. 6.4.) Funzione AND o prodotto logico ) Funzione NOR ) Funzione NAND. 9.5) Principio di dualita'..6) ermini minimi e termini massimi. I

6 .7) I teoremi dell'algebra booleana..7.) Primo teorema dell'assorbimento..7.) Secondo teorema dell'assorbimento..7.) erzo teorema dell'assorbimento..7.4) eorema di De Morgan..8) Interpretazione circuitale dell'algebra booleana. 5.9) Semplificazione delle funzioni logiche. 8.) Il metodo di semplificazione mediante le mappe di Karnaugh. 4.) Metodo tabellare di Quine - Mc Cluskey. 45.) Le condizioni non specificate e le funzioni di funzione. 49.) Funzioni simmetriche. 5.4) Il riconoscimento delle funzioni simmetriche. 6.4.) Funzioni totalmente simmetriche. 6.4.) Funzioni parzialmente simmetriche. 7 CAPIOLO III - CIRCUII COMBINAORI.) Introduzione. 76.) Itinerari e livelli. 77.) Analisi dei circuiti AND-OR-NO. 79.4) Analisi dei circuiti NAND. 8.5) Analisi dei circuiti NOR. 8.6) La sintesi dei circuiti combinatori. 84.7) Sintesi di circuiti AND-OR-NO. 86.8) La decomposizione in sconnessione semplice. 9.9) Altre decomposizioni disgiuntive ) Decomposizione iterativa ) Decomposizione multipla..) Sintesi dei circuiti NAND 5..) Sintesi a partire da variabili dirette e negate. 6..) Sintesi a partire dalle sole variabili dirette. 8.) La tecnica del bundling..) Sintesi dei circuiti NOR.) Esempio di sintesi. II

7 .4) I circuiti multiterminali. 4.4.) Semplificazione mediante le mappe di Karnaugh. 5.4.) Semplificazione dei circuiti M con il metodo tabellare. 6.5) Selettori e matrici..5.) Matrici multiple..5.) Matrici incomplete..6) Implementazione delle funzioni simmetriche. 5 CAPIOLO IV - CENNI SULLE MACCHINE SEQUENZIALI 4.) La macchina sequenziale. 9 4.) Alcune definizioni relative alle macchine sequenziali. 5 4.) Minimizzazione degli stati di una macchina sequenziale ) Minimizzazione degli stati con il metodo di Ginsburg. 8 CAPIOLO V - I CIRCUII SEQUENZIALI 5.) Introduzione ai circuiti sequenziali ) I flip-flop ) Motivi che consigliano la scelta dei circuiti sequenziali ) Considerazioni sul grado di serializzazione, costo e velocita' ) Registri a scorrimento e contatori ) Un modello generale per i circuiti sequenziali ) Funzionamento sincrono e a impulsi del modello fondamentale ) Problemi di temporizzazione e flip-flop master-slave ) Funzionamento asincrono del modello fondamentale. 7 CAPIOLO VI - CIRCUII SEQUENZIALI ASINCRONI 6.) Introduzione ) L'analisi ) ransizioni multiple, cicli di instabilita' e corse ) ransizioni multiple 8 6..) Cicli di instabilita' ) Corse ) Sintesi dei circuiti sequenziali asincroni. 88 III

8 6.4.) Determinazione della matrice primitiva delle sequenze ) Matrice delle sequenze della macchina minima ) Codificazione dello stato ) Determinazione della tavola di flusso del modello fondamentale ) Costruzione del circuito reale ) Le alee nei circuiti sequenziali asincroni ) Alee statiche ) Alee dinamiche. 6.5.) Alee essenziali ) Alee multiple ) Esempi di progetto ) Reti iterative. CAPIOLO VII - CIRCUII SEQUENZIALI SINCRONI 7.) Introduzione. 7.) Analisi dei circuiti sequenziali sincroni. 7.) Procedura di progetto. 7.4) Sintesi del diagramma di stato ) Circuiti a memoria finita ) Minimizzazione degli stati ) Codificazione e determinazione delle equazioni di eccitazione ) Partizione degli stati e codificazione ) Conclusioni. 78 CAPIOLO VIII - CIRCUII SEQUENZIALI AD IMPULSI 8.) Introduzione. 8 8.) Circuiti ad impulsi secondo Moore e secondo Mealy. 8 8.) Procedura di progetto ) I contatori. 9 CAPIOLO IX - ARGOMENI COMPLEMENARI 9.) Introduzione ) Il clock skew. 95 IV

9 9.) avola di stato di un flip-flop JK master-slave ) Un nuovo approccio alla realizzazione dei circuiti asincroni. 9.5) Realizzazione del flip-flop JK master-slave standard ) Analisi di corse e alee. 7 CAPIOLO X - SISEMI DIGIALI A LARGA SCALA.) Introduzione. 4.) Ingresso di controllo del clock. 5.) Estensione della tavola di stato. 7.4) Descrizione a programma. 9.5) La sintesi..6) Operazioni vettoriali. 4.7) Funzioni logiche di vettori. 6.8) Applicazioni. 4.9) Conclusioni. 5 CAPIOLO XI - INEGRAZIONE A MEDIA E LARGA SCALA.) Introduzione. 5.) Definizioni. 55.) Il progetto con parti MSI standard. 57.4) Considerazioni economiche sui circuiti integrati. 66.5) La simulazione. 7.6) Generazione delle sequenze di test. 8 CAPIOLO XII - DISPOSIIVI DI COMMUAZIONE.) Introduzione. 85.) Interruttori e rele'. 85.) Caratteristiche basilari dei circuiti a rele'. 86.4) Realizzazione a rele' delle funzioni simmetriche. 89 V

10 .5) I rele' nei circuiti sequenziali. 9.6) I circuiti logici. 9.7) Velocita' e ritardo nei circuiti logici. 96.8) I circuiti logici integrati. 98.) Caratteristiche dei circuiti integrati digitali. 4.) Immunita' al rumore. 46.) Margine di rumore dinamico. 4.) Caratteristiche dei flip-flop e dei registri. 4..) empo di propagazione. 4..) Specifiche di temporizzazione degli ingressi. 4..) Il clock skew. 44.4) Criteri di massima per la scelta della famiglia logica. 46.5) Cenni sulle tecnologie costruttive dei circuiti integrati ) Circuiti integrati bipolari a) I transistori b) I diodi c) Capacita' d) Resistori e) Suddivisione in isole f) Processo di fabbricazione. 4.5.) Circuiti integrati unipolari a) ecnologia di impianto ionico b) Processo di fabbricazione. 47 CAPIOLO XIII - LE FAMIGLIE LOGICHE.) La famiglia RL. 49.) La famiglia DL. 4.) La famiglia HL. 4.4) La famiglia L. 4.4.) La sottofamiglia L standard. 4.4.) Caratteristica di trasferimento ) ensioni e correnti di ingresso e di uscita ) Altri elementi logici L ) La sottofamiglia low power L ) La sottofamiglia high speed L ) La sottofamiglia L Schottky ) La sottofamiglia low power Schottky L ) Conclusioni sulle sottofamiglie L. 45.5) Problemi di impiego degli elementi logici L ) Cause di rumore. 454 VI

11 .5.) Attitudine delle porte L a pilotare linee di trasmissione ) Disaccoppiamento dell'alimentazione e massa ) Ingressi e gate non usati ) Aumento del fan - out ) La famiglia ECL ) Caratteristica di ingresso ) Caratteristica di trasferimento e immunita' al rumore ) Attitudine al pilotaggio di linee ) Comportamento dinamico ) Sottofamiglie ECL ) Conclusioni sulla famiglia ECL. 47.7) I dispositivi MOS. 47.8) Logica MOS statica ) Logica MOS dinamica ) MOS dinamici a rapporto minimo ) MOS dinamici a quattro fasi. 48.) La famiglia CMOS. 48..) Caratteristica di trasferimento ) Comportamento al variare della tensione di alimentazione ) Immunita' al rumore ) Struttura delle porte logiche ) Considerazioni generali sull'uso della famiglia CMOS. 489.) Interfacciamento delle famiglie logiche. 49..) Interfaccia L - DL. 49..) Interfaccia L - ECL. 49..) Interfacciamento della famiglia CMOS con altre logiche ) Pilotaggio di piccoli carichi ) Interconnessione con transitori ) Spostamento dei livelli di tensione ) Interfacce per il pilotaggio di linee ) Forme e modalita' operative dei circuiti di trasmissione dati. 5..9) Effetto delle linee nelle comunicazioni a lunga distanza. 55..) Scelta dei trasmettitori e dei ricevitori di linea. 5 CAPIOLO XIV - LE MEMORIE E I MICROPROCESSORI 4.) Introduzione. 5 4.) Classificazione delle memorie. 5 4.) Struttura base di una memoria ) Struttura delle celle delle memorie RAM ) Struttura di una cella RAM statica ) Struttura di una cella RAM dinamica ) Struttura di una memoria RAM dinamica ) Esempio di utilizzazione di memorie ROM. 58 VII

12 4.6) I microprocessori ) Approccio al progetto di sistemi a microprocessore ) Struttura elementare di un microprocessore ) Unita' di calcolo di un microprocessore ) Unita' di controllo ) Dal microprocessore al microcalcolatore ) Connessione e organizzazione della memoria ) I circuiti di I/O ) I supporti software e hardware. 56 APPENDICE A - CALCOLO DI VERIA' E ALGEBRA BOOLEANA a.) Introduzione. 57 a.) I connettivi binari. 575 a.) Valutazione delle funzioni di verita'. 577 a.4) Proposizioni composte. 579 a.5) Insiemi sufficienti di connettivi. 58 a.6) L'algebra booleana. 58 a.7) Il calcolo di verita' visto come un'algebra booleana. 587 a.8) I teoremi fondamentali dell'algebra booleana. 588 a.9) La teoria degli insiemi come esempio di algebra booleana. 594 APPENDICE B - LOGICHE A SOGLIA b.) Relazioni di ordinamento. 6 b.) Le funzioni "unate". 65 b.) Generalizzazione circuitale di logiche a resistore-transistore. 6 b.4) Separabilita' lineare. 6 b.5) Condizioni per la separabilita' lineare. 6 b.6) Dispositivi logici magnetici a soglia. 6 b.7) La realizzazione delle funzioni simmetriche con l'uso di dispositivi a soglia. 6 VIII

13 Prefazione Il presente volume nasce dalla raccolta delle lezioni tenute agli allievi del terzo anno del corso di Laurea in Ingegneria Elettronica e vuole essere un primo approccio ai circuiti di commutazione e alle metodologie che stanno alla base della loro analisi e della loro sintesi. Pertanto si sono tralasciati volutamente gli eccessivi formalismi, evitando di riportare quelle dimostrazioni, che, pur essendo di un notevolissimo interesse teorico, appaiono troppo astratte ed onerose per chi per la prima volta affronta l'argomento. Il testo non pretende pertanto di essere ne' rigoroso, ne' completo, ma semplicemente di dare una visione panoramica di quelle nozioni che devono entrare a far parte del bagaglio culturale di qualsiasi ingegnere elettronico, anche se non specialista di elettronica digitale. Uno scrupolo ha tuttavia obbligato l'autore a presentare in appendice in maniera formale l'algebra booleana, a differenza di quanto fatto nel secondo capitolo, dove lo stesso argomento e' stato affrontato senza eccessivo rigore in maniera quasi intuitiva. Si e' ritenuto inoltre opportuno riportare in una seconda appendice qualche nozione sulle logiche a soglia, stante l'interesse che tale argomento attualmente riveste. Si e' lasciato tuttavia al lettore il compito di approfondire, se necessario, l'argomento. IX

14 CAPIOLO I SISEMI DI NUMERAZIONE E CODICI.) Sistema di numerazione decimale. E detto sistema di numerazione l insieme di un numero finito di simboli e delle regole che assegnano uno e un solo valore numerico ad ogni stringa formata con i simboli stessi. utti i moderni sistemi di numerazione sono posizionali; i simboli (detti anche cifre) vengono ordinati secondo valori via via crescenti di un'unita', ma il numero rappresentato da una stringa di tali simboli dipende anche dalla loro posizione reciproca. Le cifre del sistema numerico decimale sono i ben conosciuti simboli,,...,9 e il significato di ciascuna stringa e il valore numerico A n A n A n... A n n n n. + An. + An Ao. N = A + Usualmente per indicare numeri con una parte frazionaria, inferiore all'unita', si posiziona nella stringa una virgola per separare i simboli relativi a potenze di di esponente maggiore o uguale a zero da quelli relativi a potenze di di esponente minore di zero..) Sistemi di numerazione a base qualsiasi. Nel sistema di numerazione posizionale decimale il numero prende il nome di base numerica. uttavia quanto detto per il sistema decimale e' facilmente estendibile a sistemi di numerazione posizionale in cui la base non sia, ma un numero B qualsiasi. In tal caso le cifre sono rappresentate da B simboli diversi e vanno da a B-. Indicando con a k la generica cifra in k-esima posizione in una stringa, il significato della stringa stessa e: n n n n N = A.B + A.B A Anche il significato della virgola rimane immutato. Le basi numeriche piu' comuni, oltre B=, sono B=, B=8, B=6. La base e' la piu' piccola teoricamente possibile per un sistema di numerazione posizionale. Le sue cifre sono rappresentate con i simboli e ; ciascuna cifra appartenente ad una stringa prende il nome di bit (binary digit). Il sistema a base e' in sostanza il solo usato nei calcolatori numerici. Infatti, a parte altre considerazioni che comunque ne consiglierebbero l'uso, esistono numerosi dispositivi elettronici in grado di rappresentare mediante due stati di funzionamento le due cifre binarie. I sistemi di numerazione a base 8 e 6 hanno come cifre rispettivamente i simboli,,,,4,5,6,7 e,,,,4,5,6,7,8,9,a,b,c,d,e,f. La loro diffusione e' giustificata dal fatto che la conversione tra essi e il sistema binario e' particolarmente semplice e che permettono di esprimere un valore numerico in maniera molto piu' compatta che non il sistema binario. Onde evitare confusioni, ogni volta che si usano sistemi di numerazione diversi, e' conveniente indicare con opportuni pedici la base numerica. Ad esempio: o o. B o = 55

15 Sistemi di numerazione e codici Capitolo.) Conversione tra sistemi a base diversa. a) CONVERSIONE DI NUMERI INERI. Il metodo di conversione piu' semplice e' quello che fa ricorso alla successiva divisione per la base numerica. Si abbia infatti il numero n n n n N = A.B + A.B A Ad ogni successiva divisione si ottiene un quoziente e un resto e le divisioni vanno iterate fino ad ottenere un quoziente nullo. La stringa dei resti, letta in ordine inverso a quello in cui e' stata ottenuta, rappresenta la numerazione posizionale del numero N nella base B. Infatti dalle divisioni successive si ottiene: n n o. B Quoziente Divisore Resto n n N = A.B + A.B A. B n n N = An.B + An.B A. B B A..... o n. B La notazione posizionale e' quindi: o o o B A o A B A n- B A n An A n A n...a o Da quanto detto risulta evidente che la conversione tra una numerazione posizionale in base e quelle in base 8 o 6, che sono a loro volta potenze di, e' particolarmente semplice. E' sufficiente infatti raggruppare i bit, a partire dalla cifra meno significativa, in gruppi di tre o quattro cifre e convertire ciascun gruppo nella corrispondente cifra ottale o esadecimale. Ad esempio si voglia convertire in base, 8 e 6 il numero decimale 57. Secondo la procedura delle divisioni successive si ottengono i risultati illustrati nella tabella che segue. Base Base 8 Base 6 Quoziente Resto Quoziente Resto Quoziente Resto D

16 Sistemi di numerazione e codici Capitolo 57 = = 57 = D6 Come detto, la conversione a base 8 e a base 6 si puo' ottenere anche raggruppando opportunamente le cifre binarie. 5 9 D Anche la conversione inversa e' immediata e si ottiene utilizzando la stessa tecnica. b) CONVERSIONE DI FRAZIONI. La conversione avviene per successive moltiplicazioni per la base numerica. I valori degli interi ottenuti costituiscono, nell'ordine, le cifre del numero nella base voluta; i soli valori frazionari vengono usati nelle successive moltiplicazioni. Infatti: Parte intera Frazione Moltiplicatore --- n A.B +... A. + n B A n+ A.B A n. B B A n Quale esempio si voglia convertire in binario il numero decimale,675 B Frazione Parte intera,675. =,75,75. =,55,55. =,,. =,,. =,4,4. =,8.8. =,6.6. =, Limitandosi quindi a tale numero di cifre significative si ha:,675 =,

17 Sistemi di numerazione e codici Capitolo.4) Metodi di conversione da binario a decimale. I metodi di conversione esposti al paragrafo precedente sono di applicazione particolarmente semplice solo nel caso in cui si debba convertire un numero decimale in un'altra base numerica. E' infatti molto facile eseguire le operazioni descritte per la notevole familiarita' che si ha di solito con l'aritmetica decimale. Cio' non e' altrettanto vero nel caso di basi numeriche diverse. Particolarmente utile e' allora illustrare alcuni metodi di conversione da sistema di numerazione binario a decimale. Il metodo piu' ovvio e' quello che prevede l'espansione del numero in potenze di, applicabile a qualunque numero binario., = = 6,75 Un metodo piu' rapido, applicabile ai numeri interi e' il seguente: si raddoppia il bit piu' significativo e vi si somma quello immediatamente seguente; si raddoppia tale somma e vi si aggiunge il terzo bit e cosi' via fino ad esaurimento dell'intera stringa ) Aritmetica binaria..5.) Addizione binaria. Le regole dell'addizione di due cifre binarie sono le seguenti:.5.) Sottrazione binaria. Le regole della sottrazione di due cifre binarie sono: + = + = + = + = cioe' con riporto di un'unita' al rango immediatamente superiore. - = - = - = - = con riporto negativo di un'unita' al rango immediatamente superiore. 4

18 Sistemi di numerazione e codici Capitolo La sottrazione binaria, come del resto la sottrazione in qualsiasi sistema di rappresentazione numerico, puo' essere eseguita in modo diverso da quello appena illustrato qualora i numeri negativi vengano rappresentati in notazione complementata..5.) Complemento a B e a B-. In generale il complemento a B di un numero N di n cifre e' dato da: C B = B n - N Si intende invece complemento a B - la quantita' Ne risulta allora che: C B- = B n - N - C B = C B- + Questa semplice proprieta' permette di ottenere il complemento a di un numero binario molto facilmente. E' sufficiente infatti negare ogni bit del numero di partenza e sommare al risultato. Si voglia da esempio complementare a il numero. Si ha: dopo la negazione somma di un'unita' = 4 - Se come rappresentazione dei numeri negativi si adotta la rappresentazione complementata, l'operazione di sottrazione puo' essere eseguita nel modo che segue. Sia N - N la sottrazione da calcolare e siano sia N che N maggiori di zero. Si sostituisca a - N la sua rappresentazione complementata B n - N e si esegua la somma tra N e tale complemento. Si ottiene: R = N + B n N = B n + (N - N ) Si possono verificare due casi: quello in cui N N sia maggiore o uguale a zero e quello in cui N N sia minore di zero. Si ricordi inoltre che ambedue i numeri sono minori di B n. Nel primo caso si avra' R B n e quindi il rango relativo a B n sara' riempito da una cifra diversa dallo zero, mentre gli altri ranghi, meno significativi, conterranno in notazione posizionale il valore N - N. E' sufficiente pertanto ignorare il rango della potenza n-esima di B per ottenere il risultato voluto. Nel secondo caso si ha R < B n e quindi il rango relativo a B n sara' riempito da uno zero, mentre negli altri ranghi, meno significativi, sara' contenuto il valore 5

19 Sistemi di numerazione e codici Capitolo B n + (N N ) = B n - (N N ) che e' proprio il complemento a B del numero (N - N ) assunto come rappresentativo del numero negativo - (N - N ) risultato dell'operazione di sottrazione. Si noti che nella rappresentazione dei numeri negativi mediante complemento a B lo zero si intende appartenente al corpo dei numeri positivi e non e' possibile complementarlo, mentre l'insieme dei numeri negativi comprende un intero in piu' di quello dei numeri positivi rappresentabili con gli stessi bit. Ad esempio il massimo numero positivo rappresentabile con quattro bit e', considerando il quarto bit quello di segno: = 7 mentre il piu' piccolo numero negativo nella rappresentazione complemento a e': = - 8 Esso non e' tuttavia complementabile per ottenerne il valore assoluto in quanto non e' rappresentabile nel campo dei numeri positivi con il numero di bit a disposizione. Il risultato di un'operazione di sottrazione realizzata tramite il complemento e' esatto se non si e' avuto alcun riporto ne' nel bit di segno che al di fuori della parola di memoria oppure se si e' verificato in entrambi; e' errato se si e' avuto un riporto solo. A titolo di esempio si consideri una parola di memoria di 5 bit. Il massimo numero positivo rappresentabile e' quindi nessun riporto E' necessario a questo punto far notare che nei calcolatori elettronici, che pur si avvalgono del complemento per eseguire la sottrazione, le cose vanno in maniera lievemente diversa. Infatti:.) utti i numeri hanno la stessa lunghezza di stringa, essendo questa fissata dalla lunghezza in bit della parola di memoria..) Il bit piu' significativo rappresenta il valore rispetto al quale si complementa e pertanto assume il significato di bit di segno, avendo valore nullo per i numeri positivi e valore per i numeri negativi, rappresentati nella forma complemento a..)il massimo numero rappresentabile su n posizioni non e' dunque n -, ma n- -, ed il risultato di un'operazione e' significativo se e solo se e' rappresentabile entro tale limite. 6

20 Sistemi di numerazione e codici Capitolo un riporto solo. Il risultato verrebbe interpretato come un riporto solo. Il risultato verrebbe interpretato come doppio riporto. Il risultato viene correttamente interpretato come ) Moltiplicazione binaria. Le regole della moltiplicazione binaria sono:. =. =. =. = Nel caso di moltiplicazione di numeri di piu' cifre il modo di procedere e' del tutto simile a quello usato per la numerazione decimale..5.5) Divisione binaria. Ha un interesse puramente teorico in quanto vengono eseguite di solito per sottrazioni successive. Valgono comunque le medesime regole della divisione decimale. 7

21 Sistemi di numerazione e codici Capitolo.6) I codici. Si definisce codice un insieme [C] di parole adottato per rappresentare gli elementi di un insieme [C*]. E' ad esempio un codice l'insieme delle parole di una lingua; simboli di questo codice sono le lettere dell'alfabeto, mentre parole di codice sono le combinazioni di lettere che hanno significato. Quale codificazione si intende l'operazione con la quale ad una parola del codice [C] viene fatto corrispondere un elemento dell'insieme [C*]. Un codice e' non ambiguo se la corrispondenza tra le sue parole e gli elementi di [C*] e' univoca; ambiguo se almeno una parola di [C] rappresenta due o piu' elementi di [C*]. Affinche' un codice a K simboli rappresenti in modo non ambiguo N elementi di [C*], le sue parole devono avere una lunghezza minima. Se la parola e' lunga n, poiche' con K simboli diversi si possono realizzare K n diverse combinazioni, per avere un codice non ambiguo deve essere rispettata la condizione K n > N, cioe' n dev'essere il piu' piccolo intero che verifichi la relazione n log k N Infine un codice si dice efficiente se le sue parole hanno lunghezza l = n, ridondante se l > n, ambiguo se l < n..7) Codici efficienti. Alcuni codici efficienti sono quelli usati per la rappresentazione di cifre decimali, in cui ogni cifra viene codificata indipendentemente dalle altre, mantenendosi tuttavia nell'ambito del sistema di numerazione posizionale decimale. Poiche' per esprimere una cifra decimale sono necessari 4 bit, ma contemporaneamente con 4 bit si possono costruire 6 configurazioni diverse, 6 di esse rimangono inutilizzate e prendono il nome di configurazioni non significative. Fra i vari codici efficienti si possono citare: ) CODICE BCD. (BINARY CODED DECIMAL) Le cifre - 9 decimali sono codificate secondo il sistema di numerazione binario. E' questo un codice ponderato, cioe' uno di quei codici in cui ad ogni bit si puo' associare un valore, positivo o negativo, che permette di ricostruire il valore numerico rappresentato da ciascuna configurazione come somma dei pesi dei bit posti a. Per tale motivo il codice BCD e' detto molto spesso anche codice 84. ) CODICE ECCESSO RE In esso la codificazione della cifra K (compresa tra e 9) si fa esprimendo nel sistema di numerazione binario il numero K +. Non e' un codice ponderato, ma e' autocomplementante. Cio' sta ad indicare che ciascuna cifra puo' essere complementata a 9 semplicemente negando i singoli bit

22 Sistemi di numerazione e codici Capitolo ) CODICE AIKEN O CODICE 4 E' un codice autocomplementante e ponderato con pesi ) I codici ridondanti. Come gia' detto, i codici ridondanti usano per la codificazione degli N elementi dell'insieme [C*] un numero m di bit superiore a quello n strettamente necessario. La ridondanza cosi' ottenuta permette di mettere in evidenza ed eventualmente correggere gli errori di trasmissione di un messaggio. La ridondanza si ottiene aggiungendo, secondo una determinata legge, agli n bit, necessari a codificare senza ambiguita' il messaggio, k bit di controllo. Il messaggio effettivamente trasmesso contiene allora m = n + k bit. Viene chiamato ridondanza il rapporto R = m/n = = + k/n. Delle m configurazioni diverse che si possono realizzare con m bit, solo n sono al piu' significative, cioe' parole di codice. Le rimanenti m - n = n.( k - ) vengono dette configurazioni non significative. Un errore di trasmissione viene rivelato quando trasforma una parola di codice in una configurazione non significativa; la probabilita' di rivelare un errore e' quindi tanto maggiore quanto maggiore e' la ridondanza. E' opportuno a questo punto definire alcune quantita'. ) Si dice peso il numero di bit non nulli presenti in una certa configurazione, sia essa significativa o meno. Ad esempio la configurazione ha peso 5. ) Distanza tra due configurazioni C e C dello stesso codice e' il numero di posizioni in cui i bit di C e C differiscono. Ad esempio le due configurazioni e hanno distanza. ) Molteplicita' di un errore e' la distanza tra una configurazione C t trasmessa e quella C r non significativa ricevuta. Si parla quindi di errori singoli, doppi, tripli, ecc. 4) Distanza minima di Hamming (h) e' la minima distanza fra tutte le possibili coppie di parole di un codice. Ora gli errori sicuramente riconoscibili sono quelli che trasformano una parola P in una configurazione non significativa C p, ma non quelli che la trasformano in una parola P'; sicuramente individuabili saranno pertanto gli errori di molteplicita' inferiore a h. I codici con h> sono detti rivelatori di errori. Se h e' abbastanza grande e se si suppone che C p provenga dalla parola P che si 9

23 Sistemi di numerazione e codici Capitolo trova alla minor distanza, allora puo' venir effettuata la correzione dell'errore. I codici cosi' funzionanti sono detti autocorrettori..8.) Probabilita' totale di errore non rivelato. Sia assegnata la probabilita' p, dipendente dalle caratteristiche fisiche del canale trasmissivo, che in ricezione un bit venga interpretato in modo errato. Supposto che gli errori siano tutti indipendenti tra loro, la probabilita' che r bit di una parola siano ricevuti in maniera errata mentre i rimanenti m - r siano corretti, cioe' la probabilita' che una parola P si trasformi in una configurazione C r a distanza r da P, e': P r m r ( p). r = p. m r L'errore viene riconosciuto solo se C r e' una configurazione non significativa; quindi se a distanza r da P si hanno N r parole del codice, la probabilita' di avere un errore non rivelato di molteplicita' r e': avendo indicato con P sr il rapporto P m r ( ) ( m p ) r tr = Psr.p.. r P sr N = r mr tra le parole che distano r da P e tutte le configurazioni che distano r da P. Ne segue che la probabilita' totale di errore non rivelato e': P ( p) m r m r t = N h rp.. Ora di solito p e' molto minore dell'unita' e quindi la relazione precedente puo' essere approssimata con P h = N h.p h.8.) Codice a controllo di parita'. Il codice a controllo di parita' si ottiene aggiungendo agli n bit di un codice efficiente un bit di controllo che renda pari (o dispari) il peso di ciascuna parola. Evidentemente un codice a controllo di parita' ha una distanza minima di Hamming h= ed e' in grado di rivelare tutti gli errori di molteplicita' dispari. A titolo di esempio si supponga di avere a che fare con un codice di parita' da 7 bit. La ridondanza e': R = 7/6 =,6

24 Sistemi di numerazione e codici Capitolo ed esistono nel codice 64 parole ed altrettante configurazioni non significative. Il numero di configurazioni che distano da ciascuna parola di codice e' dato dalle combinazioni di elementi su 7; tutte queste configurazioni sono evidentemente significative e pertanto parole di codice. Ne segue che N h =. Supponendo che il tasso di errore di bit sia p =,, corrispondente ad una linea notevolmente disturbata, si ottiene: P t = N h.p h =,. =, %.8.) Codici a peso costante. Come dice il loro nome, sono codici a peso costante quelli in cui tutte le parole hanno lo stesso peso e per i quali quindi si ha h=. Indicando con w il peso e con m la lunghezza della parola, il codice avra' m w parole, mentre le rimanenti m - m w configurazioni saranno non significative. Il numero di parole a distanza da ogni parola di codice e': N = w.(m - w) In ogni parola infatti esistono w bit di valore e (m-w) bit di valore. Ci sono pertanto w.(m - w) modi di scambiare un con uno senza alterare il peso. Si ha quindi che: P t = w.(m - w).p Fra i codici di questo tipo particolarmente noti sono due codici decimali; il codice da 5 e il biquinario. Il primo e' un codice a 5 bit con parole di peso La ridondanza e': R = 5/4 =,5 La probabilita' di errore non rivelato, sempre con p =, e': P t =.(5 - ).p =,6 % Il codice biquinario e' invece un codice ad elevata ridondanza con m=7 e w=. Sui 7 bit di ogni parola vengono effettuati due controlli per verificare che le prime due e le ultime cinque posizioni abbiano ambedue peso.

25 La ridondanza e': Sistemi di numerazione e codici Capitolo R = 7/4 =,75 mentre la probabilita' totale di errore non rivelato e', con p =, P t = =,5 % Infatti nel caso del codice biquinario N h = 5 e non, come e' immediato verificare..8.4) Codici di hamming. I codici di Hamming sono codici con h = o h = 4 usati come rivelatori d'errore o come autocorrettori. I codici con h= sono in grado di rivelare errori semplici e doppi, se usati come rivelatori di errore, o di correggere errori singoli, interpretando ogni configurazione non significativa come originata da quella significativa piu' vicina. In tal caso tuttavia il codice non e' in grado di rivelare gli errori doppi. I codici con h = 4 individuano gli errori semplici, doppi e tripli quando usati come rivelatori di errore. Se usati come autocorrettori, correggono gli errori singoli e individuano quelli doppi. In generale, se r e' la molteplicita' massima degli errori rilevabili e c quella dei correggibili, si ha: r = h- h c < c + r < h per i codici rivelatori di errori per i codici autocorrerttori Il codice di Hamming con h= si ottiene aggiungendo agli n bit di un codice efficiente k bit di controllo ognuno dei quali sia destinato al controllo di parita' di un gruppo opportuno degli m = n + k bit risultanti. Piu' esattamente l'i-esimo bit di controllo va situato nella posizione i- della parola e controlla la parita' di gruppi alternati di i- bit a cominciare dalla posizione i-. Il primo bit di controllo va quindi nella prima posizione e controlla la parita' dei bit,,5,7,9,...; il secondo bit di controllo va in posizione e controlla la parita' dei bit (,),(6,7),(,),...; il terzo bit va nella quarta posizione e controlla la parita' dei bit (4,5,6,7), (,,4,5), e cosi' via. In ricezione si verifica la parita' di ciascun gruppo e per ogni verifica esatta si scrive uno, per ogni verifica errata un. La stringa cosi' ottenuta, letta in senso inverso, forma il cosidetto numero di controllo N c, che e' nullo nel caso in cui non vi siano errori. In caso

26 Sistemi di numerazione e codici Capitolo contrario ognuno dei k - possibili valori di N c indica in quale delle m posizioni si e' verificato un errore di molteplicita'. Si supponga infatti di aver codificato con il codice di Hamming h= un codice efficiente da 4 bit. Si avranno pertanto bit di verifica di parita', k, k e k. Le tre verifiche di parita' eseguite in ricezione danno il seguente risultato: k Parita' dei bit k Parita' dei bit 6 7 k Parita' dei bit 5 7 bit errato Per il corretto funzionamento del codice di Hamming dev'essere quindi: m k - Si dicono ottimi quei codici per cui la relazione appena scritta e' verificata con l'uguaglianza. Si supponga di voler codificare 6 simboli. Si ha pertanto: n = 4 k log (m + ) = m = 4 + = 7 La composizione della parola, indicando con k i bit di controllo e con b i bit del codice efficiente di partenza, sara' quindi: k k b k b b b 4 Il messaggio dara' luogo alla parola di codice: Si supponga che la parola ricevuta sia invece: I primi due controlli di parita' (sui bit,,5,7 e (,) e (6,7) rispettivamente) danno risultato errato, mentre il terzo controllo (sui bit 4,5,6,7) e' esatto. Il numero di controllo e' quindi: N c = corrispondente alla posizione del bit errato. La ridondanza del codice e' R = 7/4 =,75

27 Sistemi di numerazione e codici Capitolo Per quanto riguarda la probabilita' di errore non rivelato, anche ammettendo che tutte le configurazioni a distanza da una parola del codice siano esse stesse parole del codice, si ha con p =,: P t 5., =,5 % I codici di Hamming con h=4 si ottengono da quelli con h= aggiungendo in ultima posizione un ulteriore bit di controllo che verifichi la parita' di tutti i bit che lo precedono. La verifica di un messaggio si fa controllando tutti i bit di parita'. Se i primi (k - ) controlli non sono tutti esatti mentre l'ultimo lo e' allora si e' in presenza di un errore doppio non correggibile. Supponendo di aver ottenuto dal codice h= appena illustrato quello h=4, si ha: R = 8/4 = P t 5.p 4 =, ) Codici riflessi. La caratteristica principale dei codici riflessi, detti anche codici ciclici, e' che ogni configurazione significativa differisce dalla precedente e dalla seguente per un solo bit. Sono largamente usati nei convertitori analogico-digitali, mentre non vengono usati in trasmissione, essendo h=, ne' nei calcolatori non essendo ponderati. Un codice ciclico si dice completo in n variabili se contiene in sequenza ciclica tutte le n combinazioni delle variabili, incompleto in caso contrario. Uno dei piu' diffusi codici riflessi e' quello di Gray. Dal codice G n di Gray a n bit si puo' ricavare quello G n+ a n+ bit con il seguente procedimento: ) Al numero decimale n + k si assegna la stessa configurazione di bit del numero n - (k + ) per k =,,,..., n-. n = n = n = n = 4 4

28 Sistemi di numerazione e codici Capitolo ) Si premette a tutti i numeri < n uno e a tutti quelli n un. In pratica basta eseguire un specularita' del codice a n bit, come illustrato nello schema soprastante, e premettere le cifre e alle due immagini cosi' ottenute. Esistono delle semplici regole di conversione di un parola P G del codice Gray alla parola P B corrispondente in numerazione posizionale binaria e viceversa. Nel primo caso: ) Si procede da sinistra verso destra: fino al primo bit di P G, P B = P G. Successivamente:. ) Quando l'i-esimo bit di P G =, l'i-esimo bit di P B e' uguale a quello (i-)-esimo di P B ) Quando l'i-esimo bit di P G =, l'i-esimo bit di P B e' la negazione di quello (i-)- esimo di P B. Le regole per la conversione inversa da binario a codice Gray sono altrettanto semplici: ) Si procede da sinistra verso destra confrontando l'i-esimo bit di P B con l'(i-)- esimo. Se i due bit sono uguali, l'i-esimo bit di P G e' ; se sono diversi e'. ) Il primo bit si confronta con. In fig..9. sono riportati gli esempi sia della conversione da Gray a binario che da binario a Gray. P P G B = = = P G B P figura.9. 5

29 Algebra Booleana Capitolo CAPIOLO II ALGEBRA BOOLEANA.) Introduzione. L'algebra booleana, algoritmo nato nel 847 ad opera del matematico inglese George Boole, e' diventata dal 98, quando Claude Shannon ne adatto' il simbolismo all'analisi dei circuiti di commutazione, uno strumento essenziale nel progetto dei circuiti logici. L'algebra booleana (conosciuta anche con il nome di algebra logica o algebra binaria) contemplava semplicemente due valori atti a rappresentare il vero o il falso in una proposizione e in origine permetteva di studiare formalmente i problemi della logica deduttiva. Successivamente, con Shannon, i due valori dell'algebra booleana servirono a definire lo stato di apertura o di chiusura di un generico contatto; infine i due valori indicarono la presenza o l'assenza di un segnale in un particolare punto di un circuito. Risulta in ogni caso evidente che l'algebra booleana considera unicamente l'esistenza di due elementi distinti, mutuamente escludentisi, indicati di solito con i simboli e. ali due elementi sono chiamati costanti logiche o costanti binarie..) Variabili e funzioni. Si dice variabile logica indipendente una grandezza capace di assumere l'uno o l'altro dei due valori e. Si dice invece che una variabile y e' funzione delle n variabili indipendenti x, x,...,x n, e la si indica con: F(x,x,...,x ) n quando esiste un criterio che fa corrispondere in modo univoco ad ognuna delle n possibili configurazioni diverse delle x un valore della y. Il numero di funzioni di n variabili che si possono definire e' quindi n x x x y figura.. Dalla definizione appena data risulta che una possibile rappresentazione della funzione e' quella che si ottiene scrivendo tutte le possibili n-ple di valori (dette configurazioni) delle 6

30 Algebra Booleana Capitolo variabili indipendenti ed assegnando per ciascuna di esse il valore che la y deve assumere. Un tale tipo di rappresentazione assume il nome di tavola di verita'. A titolo di esempio in fig... e' riportata la tavola di verita' di una delle 56 possibili funzioni di tre variabili. Ovviamente tale tavola avra' otto righe, pari alle otto possibili configurazioni delle variabili indipendenti. Ha interesse prendere in considerazione una alla volta tutte le funzioni di una variabile ed alcune delle funzioni di due variabili..) Funzioni di una variabile. Per quanto detto al paragrafo precedente esistono quattro funzioni di una variabile, di cui si riportano le tavole di verita'. x y x y x y x y 4 Le prime due funzioni y e y sono due funzioni degeneri e coincidono con le costanti logiche; la funzione y e' la funzione identica ed in termini simbolici puo' essere indicata con: y = x Maggiormente interessante e' la funzione y 4 che vale quando x vale e viceversa. ale funzione viene chiamata negazione e simbolicamente indicata con: y 4 = x.4) Funzioni di due variabili. Le possibili funzioni di due variabili sono 6; escluse le funzioni degeneri, in numero di 6, fra le rimanenti presentano notevole interesse le seguenti..4.) Funzione OR o somma logica. La tavola di verita' e' la seguente: x x y La funzione logica OR, indicata simbolicamente con y = x + x vale quando o una o l'altra o ambedue le variabili indipendenti valgono. Per la somma logica sono valide le seguenti proprieta', come e' immediato verificare dalla tavola di verita': 7

31 Algebra Booleana Capitolo x+ = x+ = x x+ x= x x+ x= Si puo' estendere il concetto di somma logica anche alle funzioni di n variabili con n>. La definizione rimane evidentemente la stessa che nel caso di due variabili. Per la somma logica valgono anche: a) Proprieta' commutativa - x + x = x + x b) Proprieta' associativa - x + x + x = x + (x + x ).4.) Funzione OR esclusivo o somma modulo. La tavola di verita' e': x x y La funzione OR esclusivo, indicata simbolicamente con : y= x x vale quando o una o l'altra delle variabili indipendenti vale. Anche per l'or esclusivo valgono le proprieta' commutativa e associativa..4.) Funzione AND o prodotto logico. La tavola di verita' e': x x y La funzione AND, indicata simbolicamente con y= x.x vale se e solamente se ambedue le variabili indipendenti valgono. Dalla tavola di verita' e' immediato verificare che valgono le seguenti proprieta': x. = x. = x x.x = x x.x = 8

32 Algebra Booleana Capitolo Anche la definizione di prodotto logico si puo' estendere alle funzioni di n variabili con n>.per il prodotto logico, come per la somma logica, valgono: a) proprieta' commutativa - x. x = x. x b) proprieta' associativa - x. x. x = x. (x. x ) Per l'insieme delle due funzioni logiche prodotto e somma vale poi la: c) proprietà distributiva - x. x + x. x = x. (x + x ) e (x + x ). (x + x ) = x + x. x.4.4) Funzione NOR. La tavola di verita' e': x x y E' immediato osservare che la funzione logica NOR, indicata simbolicamente con: y = x x si puo' interpretare come la negazione della somma logica, per cui molto spesso viene anche indicata con: y= x+ x L'operazione NOR su piu' variabili e' per definizione la negazione della loro somma, cioe': x + x... x n = x+ x +... x n E' interessante notare che, mentre vale per la funzione NOR la proprieta' commutativa, non vale invece quella associativa. Cioe': x x x = x x x x = (x x ) x (x x ) x Ogni associazione di variabili va cioe' accompagnata dalla loro negazione, come e' immediato verificare dalla tavola di verita'. La funzione NOR e' detta anche funzione universale, per ragioni che si vedranno piu' avanti, assieme alla: 9

33 Algebra Booleana Capitolo.4.5) Funzione NAND. La tavola di verita' e': x x y E' immediato riconoscere che la funzione logica NAND, indicata simbolicamente con: x/x puo' essere interpretata come un prodotto logico negato, per cui molto spesso si trovera' espressa nella forma: x.x L'operazione NAND su piu' di due variabili e', per definizione, la negazione del loro prodotto. x / x /.../ x = x.x...x n n Come per la funzione NOR anche l'operatore NAND gode della proprieta' commutativa, ma non di quella associativa. L'associazione di piu' variabili deve sempre essere accompagnata dalla sua negazione. x /x /x = (x /x )/x (x /x )/x.5) Principio di dualita'. Uno sguardo piu' attento ai postulati fin qui espressi rivela che tali postulati possono essere riuniti a coppie e che in ciascun caso uno dei postulati puo' essere ottenuto dall'altro scambiando la costante logica con la costante logica e l'operatore somma logica con l'operatore prodotto logico. E' questa una proprieta' generale dell' algebra booleana. Ad esempio, le due espressioni date al paragrafo.4. per illustrare la proprieta' distributiva, sono una la duale dell'altra. Di conseguenza ciascun teorema che possa esser dimostrato per l'algebra booleana ammette anche la sua forma duale. Ciascun passo della dimostrazione del primo teorema puo' essere rimpiazzato dal suo duale, ricavando in tal modo la dimostrazione del teorema duale..6) ermini minimi e termini massimi. ra tutte le funzioni di n variabili assumono particolare importanza i termini minimi e i termini massimi. E' detta termine minimo quella particolare funzione di n variabili che vale in corrispondenza ad una ed una sola configurazione delle variabili indipendenti.

34 Algebra Booleana Capitolo Risulta quindi evidente che esistono tanti termini minimi quante sono le configurazioni delle variabili di ingresso. Considerando che, dal punto di vista formale, le configurazioni di n variabili coincidono con i numeri,,..., n - espressi in numerazione binaria posizionale, i termini minimi vengono di solito indicati con m i, dove i e' il numero formalmente associato alla configurazione in corrispondenza alla quale il termine minimo vale. D'altra parte dalla definizione di termine minimo risulta che esso puo' essere espresso nella forma di prodotto logico di variabili dirette e negate, le prime in corrispondenza delle variabili che nella configurazione di ingresso valgono, le seconde in corrispondenza delle variabili che nella stessa configurazione valgono. Ad esempio il termine minimo m di tre variabili e': x x x Mediante i termini minimi e' possibile esprimere una qualsiasi funzione logica di n variabili nella forma di somma di prodotti. Infatti, detti y i i valori che la funzione deve assumere in corrispondenza alla configurazione associata al numero i, si puo' scrivere: n y = y (.6.) i. mi In modo del tutto analogo vengono definiti i termini massimi; essi sono quelle particolari funzioni che valgono in corrispondenza ad una ed una sola configurazione delle variabili di ingresso e vengono di solito indicati con M i. In termini simbolici essi vengono espressi mediante la somma logica delle variabili indipendenti dirette e negate. Si avra' la variabile diretta se nella configurazione di ingresso essa assume il valore, negata in caso contrario. Ad esempio il termine massimo M 5 di tre variabili e': M + 5 = x + x x Anche mediante i termini massimi e' possibile esprimere una qualsiasi funzione logica nella forma di prodotto di somme. n y = (yi + M i ) (.6.) Da quanto detto si puo' quindi affermare che qualsiasi funzione logica e' esprimibile mediante i tre operatori di somma logica, prodotto logico e negazione. Le rappresentazioni di una funzione logica ricavate dalle (.6.) e (.6.) prendono il nome di forme canoniche..7) I teoremi dell'algebra booleana. Dette x, y, z tre generiche grandezze booleane (costanti, variabili o funzioni) per esse valgono i seguenti teoremi.

35 Algebra Booleana Capitolo.7.) Primo teorema dell'assorbimento. Il valore dell'espressione x + x.y dipende esclusivamente da x. Infatti L'espressione duale di tale teorema e': x + x.y = x.(+ y) = x x.(x+ y) = x+ x.y = x.7.) Secondo teorema dell'assorbimento. Il valore dell'espressione x+ x.y e' uguale a quello della somma logica x+ y. Infatti ricorrendo al primo teorema dell'assorbimento si ha: x + x.y = x+ x.y+ x.y = x+ y.(x+ x) = x+ y.7.) erzo teorema dell'assorbimento. x.y+ y.z+ x.z = x.y+ x.z Infatti: x.y+ y.z+ x.z = x.y+ y.z.(x+ x) + x. z = x.y+ x.y.z+ x.y.z+ x.z = x.y.(+ z) + x.z.(+ y) = x.y+ x.z mentre l'espressione duale e': (x+ y).(y+ z).(x + z) = x. y.z+ x.z+ x. y+ x. y.z+ y. z = = x.z+ x.y+ y.z = x.x + x.z+ x.y+ y. z = x.(x+ y) + z.(x+ y) = (x+ y).(x + z).7.4) eorema di De Morgan. La negazione della somma ha lo stesso valore del prodotto dei suoi addendi negati. Cioe': mentre la sua espressione duale e' x + y = x.y x. y = x + y Queste due espressioni costituiscono il teorema di De Morgan che formalmente si puo' esprimere con:

36 Algebra Booleana Capitolo F(x, x,..., x n, +,.) = F(x, x,..., x n,., + ) cioe' la negazione di una funzione si ottiene negando ogni variabile e scambiando tra di loro i due operatori di somma e prodotto logico. A titolo di esempio si consideri la funzione: F = x.y + x.y La sua negazione, applicando il teorema di De Morgan, sara': F' = F = (x + y).(x+ y) = x.y + x.y di cui e' immediata la verifica tramite la tavola di verita'. Sempre mediante De Morgan e' possibile ricavare la rappresentazione canonica di una qualsiasi funzione in forma di prodotto di somme da quella in forma di somma di prodotti e viceversa. La funzione y si puo' infatti concepire come la negazione della funzione y, scritta in forma canonica come somma dei termini minimi che corrispondono agli zeri della funzione y. Si ha cioe': y = i. yi y = m Applicando il teorema di De Morgan si ottiene: (m i + y i ) = (M i + y = y i ) espressione coincidente con la (.6.). Ancora, attraverso l'uso del teorema di De Morgan, e' possibile dimostrare che l'insieme completo degli operatori, necessario e sufficiente ad esprimere una qualsiasi funzione logica non e' l'insieme AND-OR-NO, bensi' o l'insieme AND-NO o quello OR-NO. Infatti: o analogamente x = + x = x+ x x. x x +.x = x.x = x x Allo stesso modo ci si rende conto perche' le funzioni NAND e NOR sono dette anche funzioni universali; con una sola di esse e' infatti possibile esprimere qualsiasi funzione logica. Infatti gia' si sa che qualunque funzione logica e' esprimibile in termini di AND-OR- NO. Infatti:

37 Algebra Booleana Capitolo x + y = x.y = x / y x.y = x.y = x/y x = x.x = x/x oppure x+ y = x+ y = x y x.y = x + y = x y x = x+ x = x x e quindi qualsiasi funzione logica e' esprimibile in termini di solo NAND o di solo NOR..8) Interpretazione circuitale dell'algebra booleana. Come si e' gia' accennato in precedenza, la prima applicazione circuitale dell'algebra booleana si ebbe per la commutazione a contatti. Questo tipo di applicazione e' ancora largamente usato, ad esempio in campo telefonico, malgrado che lo stesso formalismo sia stato con successo applicato allo studio dei circuiti logici, il cui peso e' oggidi' preponderante. Nell'interpretazione di Shannon le costanti logiche e indicano rispettivamente un circuito aperto o uno chiuso, mentre le variabili indicano il contatto di un interruttore o di un rele'. Con i simboli X e X si indicano evidentemente due contatti azionati contemporaneamente, ma sempre tali che quando uno e' aperto, l'altro e' chiuso e viceversa. Si consideri ora un assieme di contatti x, x,..., x n in parallelo tra di loro, come illustrato in fig..8.. x x a b x n figura.8. Il circuito tra A e B sara' continuo quando almeno uno dei contatti e' chiuso. Ne consegue che la somma logica x + + x +... x n descrive, secondo l analogia di Shannon, il comportamento elettrico di n contatti in parallelo tra A e B. Analogamente il comportamento di n contatti in serie tra di loro tra i punti A e B e' descritto dal prodotto logico 4

38 Algebra Booleana Capitolo x.x...x n L'analogia introdotta in tal modo permette di scrivere l'espressione analitica di ogni raggruppamento serie-parallelo di contatti e viceversa di interpretare in questo senso qualsiasi espressione logica. L'espressione logica, che indica sotto quali condizioni un circuito connette elettricamente due punti A e B, e' detta funzione di trasmissione o piu' semplicemente funzione del circuito. Si possono quindi trattare formalmente e facilmente problemi sia di analisi che di sintesi di circuiti a contatti. A titolo di esempio si consideri il seguente problema di sintesi. Si vuol progettare un circuito capace di accendere o di spegnere una lampada mediante uno qualsiasi di tre interruttori indipendenti. Indicando con L= la condizione di lampada accesa, e' evidente che quando i tre interruttori sono aperti L dovra' valere. Chiudendo uno qualsiasi degli interruttori essa dovra' assumere il valore, mentre tornera' al valore azionando un qualsiasi altro interruttore. Infine essa riassumera' nuovamente il valore quando tutti i tre interruttori saranno chiusi. Chiamando A,B,C le variabili logiche associate a ciascun interruttore si ricava da quanto detto la tavola di verita' di fig..8.. A B C L figura.8. Sintetizzando la funzione del circuito sulla base dei termini minimi si ottiene: L = A.B.C + A.B.C + A.B.C + A.B. C = A.(B.C+ B.C) + A.(B.C + B. C) Il corrispondente circuito e' quello riportato in fig..8.. B C A _ B _ C _ A _ B B C _ C LAMPADA figura.8. Sintetizzando invece la funzione sulla base dei termini massimi si ottiene: 5

39 Algebra Booleana Capitolo L = (A+ B+ C).(A+ B + C).(A + B+ C).(A + B + C) = [A + (B+ C).(B + C)].[A + (B+ C).(B + C)] cui corrisponde il circuito di fig B A _ B B _ A _ B C _ C _ C C figura.8.4 E' bene notare che i circuiti ricavati non sono quelli che corrispondono alle due forme canoniche, bensi' quelli ricavati mediante opportune fattorizzazioni delle forme canoniche. In ambedue i casi questa tecnica ha permesso di risparmiare un contatto A e un contatto A. In generale si puo' dire che espressioni che contengono un minor numero di variabili, siano esse dirette o negate, conducono a circuiti meno dispendiosi in quanto usano un minor numero di contatti. E' evidente quindi l'utilita' di manipolare le funzioni assegnate in forma canonica in modo da pervenire ad un'espressione minima che a sua volta corrisponde al circuito con il minimo numero di componenti. Una tale operazione viene detta semplificazione della funzione..9) Semplificazione delle funzioni logiche. Si e' gia' visto dagli esempi che precedono che le forme canoniche non esauriscono le espressioni analitiche di una funzione; anzi, come per qualsiasi relazione algebrica, anche quelle logiche possono essere trasformate in un certo numero di espressioni formalmente diverse, ma sostanzialmente equivalenti. Ad esempio: y = x.x.x + x.x.x + x.x.x + x.x. x = = x +.x.(x + x ) + x.x.(x+ x) = x.x x. x Si diranno equivalenti due funzioni che abbiano la stessa tavola di verita', forma semplificata di una funzione ogni sua espressione non canonica, forma minima quella in cui ogni variabile, diretta o negata che sia, compare il minor numero di volte. Espressioni semplificate si possono ottenere applicando alle espressioni canoniche le relazioni fondamentali dell'algebra booleana, ma questa strada richiede una notevole pratica, si applica facilmente solo a funzioni di un limitato numero di variabili e non da' alcuna garanzia di pervenire effettivamente alla forma minima. Si semplifichi ad esempio la funzione: y = x +.x.x.x 4 + x.x.x.x 4 + x.x.x.x 4 + x.x.x.x 4 x.x.x. x 4 Per la proprieta' distributiva il primo termine si puo' semplificare con il secondo,terzo e quarto, mentre il terzo termine si puo' semplificare con il quinto. Si ottiene: 6

40 Algebra Booleana Capitolo y = x +.x.x + x.x.x 4 + x.x.x 4 x.x. x Uno qualsiasi dei quattro termini risultanti, ad esempio x +.x.x = x.x.x.x 4 x.x.x. x 4 viene detto implicante in quanto implica i termini x.x.x. x 4 e x. x. x. x 4 (vale quando valgono o l'uno o l'altro dei termini minimi implicati). ornando alla funzione y, il primo e l'ultimo termine possono ancora essere semplificati tra di loro, dando origine all'espressione: y = x +.x + x.x.x 4 x.x. x 4 Infine, dal primo teorema dell'assorbimento, si ha e fattorizzando finalmente si ottiene: y = x +.x x.x. x 4 y = x.(x+ x.x 4 ).) Il metodo di semplificazione mediante le mappe di Karnaugh. Il metodo proposto da Karnaugh e' un metodo grafico di semplificazione e permette di ottenere molto semplicemente la forma minima di una funzione come somma di prodotti, facendo ricorso a particolari mappe di rappresentazione. Quale limitazione si ha che, sebbene il metodo sia concettualmente applicabile a funzioni di qualsiasi numero di variabili, esso diviene difficoltoso gia' per 6-7 variabili. Le mappe di Karnaugh, che possono essere considerate un ulteriore metodo di rappresentazione di una funzione logica, consistono in matrici, le cui posizioni sono in numero pari a quante sono le diverse configurazioni di n variabili; hanno cioe' quattro posizioni per le funzioni di due variabili, otto per quelle di tre variabili, sedici per quelle di quattro e cosi' via. Ogni posizione e' identificata da n coordinate e viene messa in corrispondenza con una configurazione delle variabili. In fig.. e' riportata la mappa di Karnaugh per funzioni di variabili. X X X figura.. Per giustificare formalmente il nome di implicante sarebbe stato necessario trattare la funzione booleana implicazione. Per maggiori dettagli si veda l appendice A. 7

41 Algebra Booleana Capitolo L'assegnazione delle coordinate a ciascuna posizione di tabella dev'essere tale che passando da ciascuna casella ad una adiacente, sia in senso orizzontale che verticale, vari il valore di una sola variabile. Si noti che devono essere considerate adiacenti anche le caselle terminali, come se la mappa fosse richiusa su se stessa sia in senso orizzontale che verticale. In definitiva si puo' dire che ciascuna posizione della matrice corrisponde ad un termine minimo di n variabili. La rappresentazione di una qualsiasi funzione di n variabili si ottiene contrassegnando opportunamente le posizioni corrispondenti ai termini minimi da cui la funzione e' composta. Ad esempio la funzione y = x +.x.x.x 4 + x.x.x.x 4 + x.x.x.x 4 x.x.x. x 4 e' rappresentata mediante le mappe di Karnaugh come illustrato in fig... Una funzione riportata sulla mappa di Karnaugh puo' essere semplificata osservando che due caselle adiacenti, sia in senso orizzontale che verticale, differiscono per il valore di una sola variabile, che in una delle due caselle apparira' come variabile affermata, nell'altra come negata. X X X X 4 figura.. Ne consegue che il prodotto delle n- variabili in comune implica ambedue i termini minimi associati alle caselle considerate. Un analogo discorso puo' esser fatto per gruppi di quattro caselle adiacenti, appartenenti alla stessa riga o alla stessa colonna o raccolti attorno allo stesso vertice. Il prodotto delle n- variabili comuni implica evidentemente tutti i quattro termini minimi rappresentati dalle quattro caselle. In definitiva si puo' dire che un raggruppamento di i caselle adiacenti e' implicato dal prodotto delle n-i variabili comuni alle i caselle. In sostanza, per semplificare una funzione y, rappresentata su una mappa di Karnaugh, basta raccogliere le caselle contrassegnate nel minor numero di insiemi di i caselle adiacenti, con i massimo, in modo che ciascuna casella contrassegnata cada in almeno uno di questi insiemi. A titolo di esempio si consideri la seguente funzione: 8

42 Algebra Booleana Capitolo y = x.x.x.x 4 + x.x.x.x 4 + x.x.x.x 4 + x.x.x. x x.x.x.x 4 + x.x.x.x 4 + x.x.x.x 4 + x.x.x. x x +.x.x.x 4 x.x.x. x 4 In fig... e' riportata la mappa di Karnaugh relativa ed e' anche indicato il numero minimo di raggruppamenti di caselle che si possono individuare per ottenere la copertura completa della funzione secondo i criteri appena esposti. XX XX 4 figura.. La funzione minima e' quindi: y = x + x. x 4 e non e' funzione di x. E' abbastanza evidente che, se anziche' considerare ciascuna casella della mappa come rappresentativa di un termine minimo la si considera rappresentativa di un termine massimo, la mappa puo' essere utilizzata anche per sintetizzare una funzione nella forma prodotto di somme. E' sufficiente in tal caso raccogliere gli zeri della funzione nel minimo numero di sottoinsiemi di ampiezza massima che realizzano la copertura completa della funzione stessa. Ciascun sottoinsieme sara' l'impicante dei relativi termini massimi e verra' rappresentato in forma simbolica dalla somma logica delle variabili che rimangono costanti sul sottoinsieme, dirette se le relative coordinate valgono, negate in caso contrario. Il metodo delle mappe di Karnaugh puo' essere applicato, come gia' accennato, anche a funzioni di 5 o 6 variabili. In tal caso tuttavia non si potra' piu' realizzare una mappa piana in cui ogni casella sia adiacente a caselle le cui coordinate differiscano per un'unica variabile. La mappa per cinque variabili pertanto viene realizzata mediante due mappe per quattro variabili, una associata al valore della quinta variabile, l'altra al valore. Le adiacenze vanno quindi ricercate anche tra caselle occupanti posizioni omologhe sulle due mappe. Si voglia da esempio semplificare la seguente funzione: 9

43 Algebra Booleana Capitolo y = x.x.x.x 4.x 5 + x.x.x.x 4.x 5 + x.x.x.x 4. x x.x.x.x 4.x 5 + x.x.x.x 4.x 5 + x.x.x.x 4. x x.x.x.x 4.x 5 + x.x.x.x 4.x 5 + x.x.x.x 4. x x +.x.x.x 4.x 5 + x.x.x.x 4.x 5 x.x.x.x 4. x 5 La relativa mappa e' riportata assieme ai raggruppamenti di caselle adiacenti in fig...4. X X 4 X X X X 4 X X X = X = 5 figura..4 5 La forma minima della funzione quindi e': y = x +.x + x.x 4.x 5 x.x.x.x 4. x 5 X X X X 4 X X = 5 6 X X X X 4 X X X X 4 X X = X X 5 6 X X 4 X X = X X = figura..5 Le mappe di Karnaugh per sei variabili sono formate da quattro mappe per quattro variabili, disposte come illustrato in fig...5. Le adiacenze tra caselle vanno quindi ricercate anche tra mappe a loro volta adiacenti in senso orizzontale e verticale. Nell'esempio di fig...5 la funzione rappresentata e', in forma minima:

44 Algebra Booleana Capitolo y = x +.x.x 4 + x.x.x 4.x 5 x.x.x.x 4. x 6.) Metodo tabellare di Quine - Mc Cluskey. Il metodo di Quine - Mc Kluskey e' un procedimento tabellare che consente di ottenere la forma minima come somma di prodotti o come prodotto di somme per qualsiasi funzione logica. Esso si basa sull'applicazione sistematica a tutti i termini minimi della funzione della relazione: f.x+ f.x = f Il procedimento e' il seguente: ) Si esprimono i termini minimi sostituendo ad ogni variabile diretta un e ad ogni variabile negata uno. Ad esempio il termine minimo x.x.x verra' rappresentato con. ) Si suddividono tutti i termini minimi in gruppi aventi lo stesso numero di ; tali raggruppamenti vengono chiamati livelli. ) Si costruisce una tabella disponendo i livelli in ordine crescente ed associando a ciascun termine minimo il corrispondente numero decimale. Ad esempio i termini minimi: x.x. x x.x. x x.x. x x.x. x x.x. x danno luogo alla seguente tabella: Livello Numero ermine Minimo ν ν ν ν 7 4) Si confrontano tutti i termini minimi del livello k con tutti quelli del livello k+, semplificando tra loro i termini che differiscono per un solo bit. Si costruisce in tal modo una seconda tabella, nella quale le semplificazioni avvenute si indicano con una lineetta, mentre gli implicanti vengono contraddistinti con i numeri dei termini minimi che li hanno generati. Nella prima tabella si contrassegnano tutti i termini minimi che hanno dato luogo ad almeno una semplificazione.

45 Algebra Booleana Capitolo Riferendosi all'esempio riportato poco piu' sopra, si ottiene la seguente tabella: ν ν ν ν A, -, -, -, -, 7 - mentre tutti i termini minimi originari vengono contrassegnati. 5) Nella seconda tabella si confrontano tutti i termini del livello k con tutti quelli del livello k+. Sono ovviamente semplificabili tra loro i termini che differiscono per un solo bit e che siano gia' stati semplificati rispetto alla stessa variabile. Si costruisce in tal modo una terza tabella con le stesse modalita' esposte per la costruzione della seconda tabella. Nell'esempio che si sta trattando si ha: B,,, - - mentre nella seconda tabella il termine,7 non da' luogo a semplificazioni e non viene quindi contrassegnato. 6) Si prosegue in modo analogo, con la costruzione di tabelle successive, finche' non e' piu' possibile eseguire semplificazioni. utti i termini che nelle successive tabelle non sono stati contrassegnati vengono chiamati implicanti primi e la loro somma logica realizza senz'altro la funzione desiderata. L'espressione minima di tale funzione si realizza pero' con un numero di implicanti inferiore a quello degli implicanti primi. Essa infatti si ricava come somma del minimo numero di implicanti primi con cui vengono implicati tutti i termini minimi della funzione. Nell'esempio che si sta esaminando gli implicanti primi sono: A= - B= - - La scelta piu' opportuna degli implicanti primi necessari, che puo' divenire complessa gia' con un numero di variabili relativamente ridotto, avviene mediante l'uso di un reticolo, avente i termini minimi sulle colonne e gli implicanti primi sulle righe. Su ogni riga, in corrispondenza quindi a ciascun implicante, si contrassegnano opportunamente i termini minimi implicati. Nell'esempio trattato si ottiene percio' il seguente reticolo: A B 7 Dall'esame del reticolo si individuano poi i termini minimi che sono implicati da un unico implicante primo.ciascuno di essi diviene evidentemente essenziale nella realizzazione della funzione.

46 Algebra Booleana Capitolo Ogni implicante essenziale cosi' individuato implica d'altra parte altri termini minimi che risultano automaticamente coperti e pertanto non vanno piu' considerati. E' semplice infine trovare, sia pure per tentativi, la copertura minima dei termini rimasti. Nell'esempio che si sta trattando ambedue gli implicanti primi A e B sono essenziali. y = A+ B = x +.x x Piu' significativo, soprattutto per quanto riguarda la realizzazione della copertura minima, e' l'esempio seguente.si voglia semplificare la funzione y = (,,4,6,7,9,,,,,4,5) m La divisione dei termini minimi in livelli e il riordinamento dei livelli da' luogo alla seguente tabella: Le successive tabelle di semplificazione sono riportate in fig.., mentre il reticolo di scelta degli implicanti appare in fig.... ν ν ν ν,, 9 4, 6 4, ,, 9, 4, 6,, A B ν ν ν ν ν ν ν ν ν ν, 7, 6, 7 6, 4 9, 9,,, 4,, , 7,, 5 6, 7, 4, 5 9,,, 5,, 4, 5,, 4, C D E F G ν ν ν ν 7, 5, 5, 5 4, figura.. Dall'esame del reticolo risulta che il termine minimo e' implicato solamente da A, quello 4 solo da B e quello solo da F. Di conseguenza A,B,F sono implicanti primi

47 Algebra Booleana Capitolo essenziali. La loro scelta copre i termini minimi,,4,6,9,,,,4,5. Per coprire i rimanenti termini minimi 7 e si ì puo' scegliere per il primo l'implicante C o quello D,per il secondo quello E o quello G. A B C D E F G figura.. Ci sono pertanto quattro realizzazioni equivalenti della funzione assegnata. y = A+ B+ F+ D+ E = x y = A+ B+ F+ D+ G = x y = A+ B+ F+ C+ E = x y = A+ B+ F+ C+ G = x.x.x.x.x x + x + x + x.x.x.x.x x + x + x + x.x.x.x.x + x + x + x + x.x.x.x.x x + x + x + x.x.x.x.x 4 4.) Le condizioni non specificate e le funzioni di funzione. Nella sintesi di una funzione logica di n variabili si puo' presentare il caso in cui per k configurazioni delle variabili di ingresso sia assegnato il valore alla funzione, per m configurazioni il valore con k+m < n. Le restanti n - (m+k) configurazioni vengono dette condizioni non specificate o d.c.c. (don't care condition). In pratica questa situazione si verifica ogni volta che in un circuito certe configurazioni di ingresso siano fisicamente impossibili o rendano priva di significato l'uscita, o, da un punto di vista strettamente analitico, quando una funzione y sia funzione delle variabili w,w,w,...,w m, ognuna delle quali e' a sua volta funzione delle variabili x,x,...,x n. Cioe' y = F(w, w,..., w m ) con w i = F i (x, x,..., x n ) i =,,..., m Le condizioni non specificate si ricavano dalle tavole di verita' delle w i, e sono tutte e sole le configurazioni delle w i che non compaiono in tali tabelle. Sia ad esempio: dove y = f(w, w, w ) 4

48 w w w Algebra Booleana Capitolo = x = x = x 4.(x.(x.x.x.x.x La tavola di verita' delle w i e' riportata in fig.... Da essa si vede che le terne di possibili valori w,w, w sono,,,,. Ne consegue che la tavola di verita' della y conterra' condizioni non specificate in corrispondenza alle configurazioni di ingresso,,. Sulla tavola di verita' le condizioni non specificate vengono indicate con un trattino, nella forma canonica raccogliendo in parentesi i termini minimi corrispondenti, sulle mappe di Karnaugh contrassegnando con il simbolo φ la casella corrispondente a ciascuna condizione non specificata. + x + x + x.x.x.x ).x ) X X X X W W W 4 figura.. Le condizioni non specificate possono venir sfruttate nelle semplificazioni in modo da pervenire ad espressioni minime piu' semplici. Se si opera con le mappe di Karnaugh, le semplificazioni vanno ancora fatte in modo da coprire tutte le caselle contrassegnate con un, ma ciascun raggruppamento di caselle adiacenti puo' contenere quante si vogliano caselle. Si assegna cioe' alle condizioni non specificate il valore o a seconda che esse tornino o meno utili per eseguire raggruppamenti piu' ampi. Si abbia ad esempio la seguente funzione: X X X X φ φ 4 φ φ φ Senza considerare le condizioni d.c.c. si otterrebbe: 5

49 Algebra Booleana Capitolo y = x +.x.x 4 + x.x.x.x 4 x.x.x. x 4 mentre tenendo conto anche di queste ultime si ha: y = x +.x 4 x. x Qualora si operi invece con il metodo tabellare di Quine-McCluskey la tabella iniziale va costruita a partire sia dai termini minimi, in corrispondenza ai quali la funzione vale, sia dalle condizioni non specificate. Il reticolo per la scelta delle copertura minima va invece realizzato senza tener conto delle d.c.c. In fig... sono riportate le successive tabelle di semplificazione della stessa funzione dell'esempio precedente, mentre in fig... vi e' il reticolo di scelta degli implicanti. ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν ν,4,8 4, 8, 8,,,4,,4,5,5 4, A B C D, 4, 8, - - A 4 5 8,,, B figura..,, 4, 5,, 4, C D figura...) Funzioni simmetriche. La simmetria logica e' una proprieta' che esiste in certe funzioni logiche e che le rende atte ad essere implementate con particolari tecniche. ali funzioni vengono chiamate funzioni simmetriche, hanno una particolare importanza nel progetto logico e formano un'importante classe di funzioni. Poiche' per esse esistono particolari tecniche di progetto e' notevolmente importante riconoscere quando una funzione e' simmetrica. Infatti l'implementazione di una funzione simmetrica che non faccia ricorso a tali tecniche e' di solito difficoltosa, in quanto i normali metodi di semplificazione non conducono usualmente ad alcuna minimizzazione. Una funzione logica di n variabili x,x,...,x n e' detta simmetrica se un qualsiasi scambio tra queste variabili lascia inalterata la funzione stessa. Se questa proprieta' si estende a tutte le variabili la funzione e' detta totalmente simmetrica; se invece si estende solo ad un 6

50 Algebra Booleana Capitolo sottoinsieme delle n variabili essa e' parzialmente simmetrica; infine se la simmetria esiste solo per un sottoinsieme della funzione essa e' detta simmetrica indipendente. L'intercambiabilita' fra le variabili puo' esistere tra i valori nominali (x i e x j ), tra i valori negati (x i e x j ) oppure puo' essere mista (x i e x j oppure x i e x j ). In definitiva una funzione di commutazione: j j j n n f(x,x,...,x ) j j n e' simmetrica rispetto le variabili x,x,...,x se e solamente se rimane inalterata per n qualsiasi permutazione tra queste variabili, potendo j i assumere solamente i valori e ed essendo: x j i i = xi se ji = x i = x i se j Si consideri ad esempio la funzione: j j i f(x, y,z) = x.y.z + x.y.z + x.y.z+ x.y.z (..) Poiche' essa e' funzione di tre variabili sono sufficienti sei permutazioni per verificare se la funzione rimane invariata. La forma che la funzione assume per ciascuna permutazione delle variabili e' riportata in tabella.. ABELLA.. i = PERMUAZIONE x x y y z z x y y z z x x y y x z z x z z y y z x x y z z y x z y y z x FUNZIONE _ x.y.z + _ x.y.z _ + x.y.z + x.y.z y.z.x + _ y.z.x _ + y.z.x + y.z.x y.x.z + _ y.x.z _ + y.x.z + y.x.z z.x.y + _ z.x.y _ + z.x.y + z.x.y x.z.y + _ x.z.y _ + _ x.z.y _ + x.z.y z.y.x + z.y.x + z.y.x + z.y.x Risulta chiaro che la funzione rimane immutata per ciascuna permutazione e quindi essa e', secondo la definizione, una funzione simmetrica. La funzione x.y.z+ x. y.z+ x.y.z (..) e' ancora simmetrica, ma in questo caso le variabili di simmetria sono x, yz,. Cio' e' particolarmente chiaro se si pone: e quindi la funzione diviene q = z 7

51 Algebra Booleana Capitolo x.y.q + x.y.q + x.y.q evidentemente simmetrica nelle variabili x, y, q. E' abbastanza immediato da questo esempio rendersi conto che non e' semplice individuare funzioni simmetriche di variabili dirette e negate. Nelle figure..,.. e.. sono riportati gli esempi dei tre tipi di simmetria definiti piu' sopra. AB CD Funzione totalmente simmetrica Esiste un'intercambiabilita' tra le variabili A, B, C, D fig... CD AB Funzione parzialmente simmetrica L'intercambiabilita' esiste solo tra _ le variabili B, C, D fig... CD AB CD AB E = E = Funzione a simmetria indipendente Nel sottoinsieme E = esiste _ un'intercambiabilita' _ tra le variabili A, B, C, D mentre nel sottoinsieme E = l'intercambiabilita' si ha tra le variabili A, B, C, D fig... Le funzioni simmetriche godono di parecchie proprieta' interessanti, che sono messe in luce nei seguenti teoremi. 8

52 Algebra Booleana Capitolo eorema : Come e' gia' stato implicitamente detto, il valore di una funzione simmetrica dipende solamente dal numero e non da quali variabili di simmetria valgono. Formalmente tale proprieta' e' espressa dal seguente teorema. Condizione necessaria e sufficiente affinche' una funzione di commutazione di n variabili sia simmetrica e' che essa possa essere individuata da un insieme di interi {a k } con < a k < n, in modo che se esattamente a m (m =,,..., k) delle variabili valgono, la funzione valga, mentre valga negli altri casi. La necessita' si dimostra supponendo che la funzione valga quando le prime a j variabili valgono, mentre valga se altre a j variabili valgono. Si supponga ora di permutare ciascuna delle a j variabili del primo insieme con una delle variabili del secondo insieme. Considerando le ipotesi fatte, si ricava un valore differente e quindi una differente funzione. La funzione pertanto non e' simmetrica. La sufficienza si dimostra supponendo che la funzione valga se e solamente se esattamente a m variabili valgono. Poiche' la funzione vale per qualsiasi permutazione delle variabili, purche' a j di esse valgano, qualsiasi sia a m in {a k }, allora essa e' per definizione simmetrica. Si puo' allora esprimere qualunque funzione simmetrica nella forma: j j S n {a } k (x j, x j,..., x n dove x, x,..., x n sono le variabili di simmetria, n e' il numero di variabili e ciascun elemento dell'insieme {a k } e' detto livello di simmetria. In pratica ciascun elemento a k indica il numero di variabili che devono essere poste a affinche' la funzione valga. E' abbastanza evidente che i livelli di simmetria possono essere piu' d'uno. Ad esempio la funzione (..) puo' essere scritta come: j mentre la (..) e' S {,} (x, y,z) S {} (x, y,z) jn n ) eorema : La somma di piu' funzioni simmetriche delle stesse variabili e' ancora una funzione simmetrica avente come livelli di simmetria tutti i livelli delle funzioni simmetriche di partenza. S n {a,...,a j,b,...b m j j (x, x } j,..., x n n j j j ) + S n (x, x,..., x n n ) = {a,...,a,c,...,c } j n Ad esempio: = S n {a,...,a j,b,...,b m j (x,c,...,c } n, x j j,...,x n n ) 9

53 Algebra Booleana Capitolo S (x, y,z, w) S (x, y,z, w) S 4 (x, y,z, w) = S 4 (x, y,z, w) = x.y.z.w + x.y.z.w + x.y.z.w+ x.y.z. w {,,4} + x.y.z.w+ x.y.z. w La dimostrazione del teorema e' intuitiva. eorema : Il prodotto di piu' funzioni simmetriche delle stesse variabili e' ancora una funzione simmetrica i cui livelli di simmetria sono solamente quelli comuni a tutte le funzioni di partenza. S n {a,...,a j,b,...,b m j (x }, x j j,..., x n ).S n n {a,...,a,c j,...,c m j (x }, x j j,..., x n n ) = = S n {a La dimostrazione e' intuitiva. Ad esempio: j j j (x, x,..., x n n ),...,a } j S 4 4 = 4 (x, y,z,w).s (x, y,z, w) S (x, y,z, w) = {,4} x.y.z.w.(x.y.z.w + x.y.z.w) = x.y.z. w eorema 4: La negazione di una funzione simmetrica di n variabili e di livelli {a k } e' ancora una funzione simmetrica di n variabili il cui insieme di livelli di simmetria {a j } e' il complemento dell'insieme {a k }. Ad esempio: S n {a,...,a k j j (x, x } j,..., x n ) S n n = C{a,...,a k j j (x, x } j,..., x n S 6 (x 6, x,..., x 6 ) = S (x, x,..., x 6 ) {,,,6} {,4,5} La funzione S {,4,5} (x,...,x 6 ) vale infatti quando nessuna, quattro o cinque delle sue variabili valgono. Viceversa, nelle stesse condizioni e solamente in queste la S {,,,6} (x,...,x 6 ) vale e quindi la sua negazione coincide con la S {,4,5} (x,...,x 6 ). n ) eorema 5: Negando le variabili di una funzione simmetrica si ottiene ancora una funzione simmetrica i cui livelli di simmetria sono il complemento a n dei livelli originari. 4

54 S n {a j j j (x,x,...,x n,...,a } k Algebra Booleana Capitolo ) = S n {n a j j (x,x,...,n a } k j,...,x n n ) Infatti se a i delle variabili valgono, allora n-a i delle stesse variabili valgono e n-a i delle variabili negate valgono. Ne segue che i due membri dell'espressione precedente sono uguali per qualunque insieme di valori delle variabili. Ad esempio: S 4 (A,B,C, D) = A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D + {,) + A.B.C.D + A.B.C.D + A.B.C.D+ A.B.C.D+ A.B.C.D+ A.B.C.D = = S (A,B,C,D) + S (A,B,C,D) = S (A,B,C, D) {4,4 } eorema 6: Qualsiasi funzione simmetrica n j j jn S (x, x,..., x ) {a,a,...,a } k n puo' essere rappresentata come somma logica di un sottoinsieme delle seguenti funzioni simmetriche elementari. d d d n = x = x j j = x j.x.x.x j j j...x...x...x j n jn n j n n n + x j.x j...x j n n x La generica funzione elementare δ k e' formata da ( n ) termini contenenti ciascuno k k variabili affermate e n-k variabili negate. La dimostrazione del teorema e' immediata ricorrendo ai teoremi e. Il teorema appena enunciato permette di impostare in maniera estremamente semplice tutta una classe di problemi di progetto. Si supponga ad esempio di avere un sistema di comunicazione che utilizzi 6 linee in parallelo per la trasmissione di messaggi formati da quattro caratteri, codificati ciascuno con quattro bit. Su questi caratteri venga eseguito il test di parita' e sia richiesta la ritrasmissione del messaggio quando due o piu' di essi non rispettino la parita'. Si indichino con x, x, x, x 4 ; y, y, y, y 4 ; z, z, z, z 4 ; w, w, w, w 4 i bit dei quattro caratteri. E' evidentemente molto semplice scrivere la funzione di test di parita' per ciascun insieme di quattro bit sotto forma di funzione simmetrica. Riferendosi alla parola X si ha: P S 4 x = {,} ( x, x, x, ) Allo stesso modo, la funzione che richiede la ripetizione del messaggio quando due o piu' test di parita' abbiano dato esito negativo, e' ancora una funzione simmetrica. x 4 j.x j...x jn n 4

55 Algebra Booleana Capitolo F = S 4 (P x,p y,p z,p w ) {,,4} Come si e' gia' detto, un qualsiasi scambio tra le variabili di simmetria lascia inalterata una funzione simmetrica. D'altra parte, sulla base del teorema 5, una funzione simmetrica possiede due set di variabili di simmetria. Ad esempio la funzione illustrata in fig... e' simmetrica rispetto alle variabili A,B,C,D. uttavia anche le variabili A,B,C,D presentano le stesse proprieta', come e' immediato verificare e come discende dal fatto che la stessa funzione puo' essere rappresentata come 4 4 f(a,b,c, D) = S (A,B,C, D) = S (A, B, C, D) (..4) Questi due set di variabili rappresentano quelli che vengono chiamati centri della simmetria e sono rappresentabili con il numero associato al relativo termine minimo (nel caso in questione e ). I centri di simmetria possono essere messi in evidenza riportando la funzione su una qualsiasi mappa logica. Si ricava in tal caso una configurazione simmetrica e tutti gli elementi della simmetria ricavata sono equidistanti dai due centri di simmetria. La funzione riportata sulla mappa di Karnaugh in fig... realizza una configurazione evidentemente simmetrica rispetto ai termini minimi e. Rispetto al centro tutti i quattro elementi hanno distanza unitaria, mentre rispetto al centro la distanza e'. Si noti che il livello di simmetria e' il complemento a n della distanza cosi' determinata..4) Il riconoscimento delle funzioni simmetriche..4.) Funzioni totalmente simmetriche. Esistono diversi metodi atti a mettere in luce se una funzione booleana e' simmetrica. Nel seguito verranno presentati due di questi metodi, senza tuttavia darne una dimostrazione formalmente esatta e completa, che a questo livello appare abbastanza complessa e di scarso interesse. a) PRIMO MEODO. Si supponga in un primo tempo che le variabili di simmetria siano tutte affermate e che si abbia a che fare con una funzione simmetrica elementare. Si sostituisca nei vari termini minimi componenti la funzione un ad ogni variabile affermata e uno ad ogni variabile negata e si costruisca una matrice avente tante colonne quante sono le variabili e tante righe quanti sono i termini minimi. Se la funzione e' una funzione simmetrica elementare, dal teorema 6 si sa che il numero di termini e' pari alle combinazioni di n elementi in classe k. Accanto ad ogni riga si scriva il numero k di variabili affermate, cioe' il livello, mentre sotto ogni colonna si riporti il valore del rapporto r tra il numero di e di nella colonna stessa. Se la funzione considerata e' simmetrica del tipo ipotizzato, k e r sono costanti rispettivamente sulle righe e sulle colonne e deve essere rispettata la relazione n.r = k.(r+ ) (.4.) 4

56 Algebra Booleana Capitolo Se infatti la funzione e',come in ipotesi, una funzione simmetrica elementare, con n variabili di simmetria tutte affermate, la tabella costruita conterra', come detto,( k ) righe in ciascuna delle quali compariranno k simboli e n-k simboli. D'altra parte gli contenuti in ciascuna colonna saranno, indicando il loro numero con C C n = ( ) k E' infatti questo il numero delle righe contenenti k variabili affermate che si possono costruire fissando la posizione di una di esse e distribuendo gli altri k- simboli sulle rimanenti n- posizioni. Il numero di zeri, C, presenti nella colonna, e' per gli stessi motivi C = ( n ) k ed evidentemente C n + C = ( ) k Si ottiene percio' ( n C ) k r = = k = (.4.) C ( n ) n k k E' bene notare che tale rapporto coincide con quello tra il numero di e di zeri presenti in ciascuna riga. Manipolando opportunamente la (.4.) si ottiene finalmente: Si abbia ad esempio la funzione La corrispondente matrice e': n.r = k.(r+ ) F = x.y.z+ x.y.z+ x.y.z con n=, k=, r=. Per tale funzione vale la.4. 4

57 Algebra Booleana Capitolo n.r =. =.( + ) = k.(r +) In generale, se la funzione e' simmetrica a piu' livelli di simmetria, si devono avere ( n ) k righe per ogni livello, per ogni livello devono essere costanti r e k e deve valere la (.4.). Si abbia ad esempio la funzione f = x. y.z.w + x.y.z.w + x. y.z.w + x.y.z.w + x. y.z.w+ x.y.z. w+ + x.y.z.w + x.y.z.w + x.y.z.w+ x. y.z.w La relativa matrice e' 6_ 6_ 6_ 6_ Essendo costante r, ma non k si suddivide la matrice nelle due sottomatrici per ciascuna delle quali k e r sono costanti e vale la (.4.). Si ha pertanto: f = S 4 (x, y,z, w) {,} Se qualcuna delle n variabili di simmetria e' negata, nella matrice evidentemente non sono costanti ne' r ne' k. Ci sono pero' due soli valori di r (r' e r"), uno il reciproco dell'altro. Negando le variabili delle colonne relative ad uno di questi due valori, i rapporti r' e r" tornano uguali, si ha per ogni riga lo stesso livello k e vale la (.4.). Si abbia da esempio: 44

58 Algebra Booleana Capitolo f = x.y.z+ x.y.z+ x.y.z La relativa matrice e': _ Negando le variabili della colonna in cui il rapporto r vale / si ottiene la matrice di fig..4..a, mentre con la negazione delle altre colonne si ottiene la matrice di fig..4..b. _ (a) figura.4. (b) per ciascuna delle quali r e k sono costanti e vale la.4.. Si puo' quindi concludere che F = S (x, y,z) = S (x, y,z) Il criterio esposto, relativamente semplice, cade pero' in difetto quando si abbia contemporaneamente n pari, k=n/ e le variabili di simmetria non siano tutte affermate. In questo caso infatti, pur essendo r costante, non sono rispettate le altre condizioni. Si consideri ad esempio la funzione: che da' origine alla matrice f = x.y.z.w + x. y.z.w + x. y.z.w+ x.y.z.w + x.y.z.w+ x.y.z.w la quale, anche se separata nelle due sottomatrici, relativa ciascuna ad uno dei due possibili livelli, porterebbe a concludere che la funzione non e' simmetrica. Il caso tuttavia e' dubbio in quanto il numero delle variabili e' n = 4 e r e' costante. 45

59 Algebra Booleana Capitolo Si ricorre allora all'artificio di espandere la funzione secondo una variabile qualsiasi, ad esempio la prima, dividendo i termini della funzione in due gruppi, ciascuno relativo ad uno dei valori della variabile di espansione. Si ottiene pertanto: x = x = Complementando la terza colonna si ottiene: Infine ricomponendo la matrice si ha : Si puo' allora concludere che: F = S 4 (x, y,z, w) b) SECONDO MEODO. Il metodo presentato e' stato originariamente sviluppato da E.R.Robbins dell'universita' di stato dell'arizona e successivamente perfezionato da G.K. Kostopoulos delle Honeywell inc. E' un metodo abbastanza semplice, che presenta il vantaggio di richiedere unicamente calcoli in notazione decimale. 46

60 Algebra Booleana Capitolo Il metodo e' il seguente: PASSO : Per identificare i due centri di simmetria si usa la seguente equazione: m m.( n ). k Centro piu' vicino = ( n ) m.e dove n e' il numero di variabili, m il numero di termini minimi della funzione, e il numero di termini minimi pari e k i numeri decimali associabili a ciascun termine minimo. Centro piu' lontano = ( n - ) - centro piu' vicino PASSO : Si convertono tutti i termini e il centro in una somma di potenze di. Si confrontano le potenze di di ciascun termine con quelle del centro, conteggiando il numero di differenti potenze, valutando cioe' la distanza dal centro. Si determina infine il numero di termini che hanno la stessa distanza dal centro. PASSO : Si calcola il numero di termini equidistanti dal centro che la funzione deve avere per essere simmetrica. Essi devono essere in numero pari a: n! (n d)!d! dove n e' il numero di variabili e d la distanza dal centro. Se tale relazione non e' rispettata la funzione non e' simmetrica. PASSO 4: Si calcolano i parametri della simmetria, cioe' le coordinate del centro, le variabili di simmetria ottenute dalle coordinate del centro e i livelli di simmetria ottenuti come complemento a n delle distanze dei vari termini. Si voglia ad esempio verificare se la funzione f(a,b,c, D) = (7,,,4,5) m e' simmetrica. Se cio' e' vero, si determinino centri, variabili di simmetria e distanze. PASSO. Centro piu' vicino = ( ) 5. = 5 47

61 Algebra Booleana Capitolo PASSO. centro 5 = termine minimo 7 = + + termine minimo = + + termine minimo = + + termine minimo 4 = + + termine minimo 5 = PASSO. Dal passo si vede che vi sono quattro termini a distanza dal centro e un termine a distanza. Ora i termini a distanza dal centro devono essere in numero di mentre per i termini a distanza si ha: PASSO 4. n! = 4! ( n d)!d!!! n! = 4! ( n d )!d! 4!! La funzione esaminata e' pertanto una funzione totalmente simmetrica e i parametri della simmetria sono: centro piu' vicino = 5 centro piu' lontano = ( 4 - ) - 5 = variabili di simmetria = A, B,C, D e A,B,C, D livelli di simmetria relativi al primo centro =,4 livelli di simmetria relativi al secondo centro =, In definitiva quindi la funzione assegnata puo' essere rappresentata nel modo seguente: 4 f(a,b,c, D) = S{,} (A,B,C,D) = S 4 {,4} (A,B,C, D).4.) Funzioni parzialmente simmetriche. Quando dalle procedure esposte risulta che una funzione f(x, x,..., x non e' totalmente simmetrica, rimane la possibilita' che per tale funzione esista una simmetria parziale o una simmetria indipendente. Per individuare tale simmetria si puo' usare la seguente procedura. n ) 48

62 Algebra Booleana Capitolo PASSO : si esegua la parte (a) e (b) di questo passo per un numero di volte pari a n, scegliendo di volta in volta una differente variabile x n k. a) Si esegua una partizione della funzione data in: ( x ;i =,n;i k) + x.h( x ;i =,n;i k) x k.g i k b) Si esegua su g e h il test per l'individuazione della simmetria totale. Se le funzioni g e h sono totalmente simmetriche per lo stesso insieme di variabili di simmetria, allora la funzione f(x,...,x n ) e' parzialmente simmetrica. Le variabili di simmetria parziale sono quelle per cui g e h sono totalmente simmetriche. Se viceversa g e h non sono a simmetria totale per il medesimo insieme di variabili, allora la funzione f(x,...,x n ) non e' parzialmente simmetrica nelle variabili: ( ;i =,n;i k) x i Se tutti i test eseguiti nel presente passo indicano che non esiste alcuna simmetria parziale in n- variabili si prosegue con il PASSO : Si esegua la parte (a) e (b) di questo passo un numero di volte pari a n scegliendo di volta in volta una differente coppia di variabili x n l e x k. a) Si esegua la partizione delle funzione data in: x l.x + x l k.x.p k ( x i;i =,n;i l;i k) + x l.x k.q( x i;i =,n;i l;i k) +.r( x ;i =, n;i l;i k) + x.x.s( x ;i =, n;i l;i k) i b) Si esegua su p, q, r, s il test per l'individuazione della simmetria totale. Se tutte le quattro funzioni sono totalmente simmetriche per lo stesso insieme di variabili di simmetria, allora la funzione f(x,...,x n ) e' parzialmente simmetrica. Le variabili di simmetria parziale sono quelle per cui p, q, r, s sono totalmente simmetriche. Se viceversa p, q, r, s non sono totalmente simmetriche per il medesimo insieme di variabili, allora la funzione f(x,...,x n ) non e' parzialmente simmetrica nelle variabili ( ;i =,n;i l;i k) x i Se tutti i test eseguiti nel presente passo indicano che non esiste alcuna simmetria parziale in n- variabili, si aggiunge una terza variabile all'insieme delle variabili di partizione e si prosegue allo stesso modo fino a trovare una simmetria parziale o finche' il numero delle variabili nelle funzioni che si ricavano dalla partizione non si riduce a. Si consideri ad esempio la seguente funzione: l k i 49

63 f Algebra Booleana Capitolo ( x, x, x, x 4 ) = (,,7,8,9,,4) m ha: Come prima cosa e' necessario verificare se tale funzione e' totalmente simmetrica. Si Poiche' esistono due valori di r, uno il reciproco dell'altro, si negano, ad esempio, le variabili della prima e della quarta colonna, ottenendo: 4444 La matrice ottenuta va divisa in tre sottomatrici, ciascuna relativa ad uno dei possibili livelli di simmetria. Si ha: _ e si puo' quindi concludere che la funzione in esame non e' totalmente simmetrica. Si puo' allora indagare se la funzione e' parzialmente simmetrica in n- = variabili. E' necessario quindi eseguire quattro volte il test di cui al punto delle procedura piu' sopra illustrata, escludendo di volta in volta una delle quattro variabili. Si esegue la partizione 5

64 Algebra Booleana Capitolo ( x, x, x, x ) = x.g( x, x, x ) x.h( x, x, ) f x 4 Per quanto riguarda la funzione h(x,x,x 4 ) si ottiene la seguente matrice: _ La presenza in tale matrice di due valori r' e r" che non sono reciproci esclude la simmetria totale di tale funzione rispetto alle variabili x, x, x 4. Si passa allora alla partizione: ( x, x, x, x ) = x.g( x, x, x ) x.h( x, x, ) f x 4 In questo caso si ha per la funzione g una situazione analoga alla precedente. Infatti: _ Pertanto per le medesime considerazioni si esclude la simmetria totale per la funzione g(x,x,x 4 ) rispetto alle variabili x, x, x 4. Considerando la partizione: si ottengono le seguenti due matrici ( x, x, x, x ) = x.g( x, x, x ) x.h( x, x, ) f x 4 _ Invertendo la variabile della seconda colonna in ambedue le matrici si ottiene: 5

65 Algebra Booleana Capitolo Le verifiche successive secondo la.4. portano a concludere che: ( x, x, x 4 ) = S{,} ( x, x, x 4 ) S{,} ( x, x, x 4 ) h ( x, x, x ) = S ( x, x, x ) = S ( x, x, ) g = 4 4 x 4 Pertanto ambedue le funzioni sono totalmente simmetriche rispetto allo stesso insieme di variabili di simmetria. Di conseguenza la funzione assegnata e' parzialmente simmetrica nelle variabili x,x,x 4 o x,x,x 4. Se infine si considera la partizione ( x, x, x, x ) = x.g( x, x, x ) x.h( x, x, ) f + si vede che per la funzione h si ha la matrice: x _ e quindi tale funzione non e' totalmente simmetrica nelle variabili x,x,x. 5

66 Circuiti combinatori Capitolo CAPIOLO III CIRCUII COMBINAORI.) Introduzione. Si chiamano combinatori quei circuiti il cui funzionamento, per quanto riguarda la relazione ingresso uscita, e' descritto da una funzione logica; quelli cioe' per i quali gli ingressi e le uscite possono assumere solo uno di due valori nettamente distinti ed in cui l'uscita, istante per istante, e' funzione unicamente degli ingressi. Circuitalmente una funzione logica si realizza usando componenti capaci di assumere l'uno o l'altro di due stati diversi. Nei circuiti elettronici questi due stati sono realizzati mediante due livelli caratteristici di tensione, detti livello alto (h) e livello basso (b). L'effettiva corrispondenza tra h e b e le costanti logiche e e' convenzionale e va precisata di volta in volta. E' detta logica positiva la convenzione secondo la quale il valore viene associato al livello alto h; logica negativa quello in cui il valore e' associato al livello basso b. Si chiama circuito logico elementare o circuito porta ciascun circuito a n ingressi e un'uscita il cui valore e' in corrispondenza alle configurazioni degli ingressi descritte dalle funzioni logiche OR, AND, NO, NAND, NOR. Indipendentemente dalla loro realizzazione circuitale e dal tipo di logica, i circuiti porta vengono indicati graficamente con i simboli di fig.... OR NAND NO AND NOR figura.. Per i circuiti combinatori, come per ogni altro tipo di circuito, si pongono due problemi opposti: da un lato quello dell'analisi, cioe' quello della descrizione del funzionamento del circuito, una volta che sia nota la sua configurazione; dall'altro quello della sintesi, cioe' del progetto di un circuito che realizzi una certa funzione logica, comunque descritta..) Itinerari e livelli. Ogni circuito di commutazione e' formato da un certo numero di elementi (NAND, NOR, ecc.) tra loro variamente interconnessi, da un certo numero di ingressi, contraddistinti in fig... con i simboli A i, e da un certo numero di uscite, contraddistinte nella medesima figura con i simboli B k. 5

67 Circuiti combinatori Capitolo B B 5 A A 4 6 A B figura.. Si dice itinerario tra due elementi X e Y qualsiasi percorso che colleghi X e Y. Si dice invece livello di un elemento X rispetto all'uscita B e a un determinato itinerario I il numero j di elementi, X compreso, disposti lungo l'itinerario I a partire dall'uscita B j. Livello di una variabile rispetto all'uscita B j e all'itinerario I e' il numero di elementi compresi tra il rispettivo ingresso e l'uscita B j lungo l'itinerario I. In fig... sono riportati due esempi. II livello A A A A A 4 5 G G I livello G 4 B A A 6 7 G (a) III livello A A A III e IV livello G A G 4 II livello A G A 5 6 I livello G 4 B (b) figura.. Si noti che uno stesso elemento puo' avere piu' livelli secondo l itinerario. Ad esempio in fig... (b) il gate G e' di III livello secondo l'itinerario G 4, G, G e di IV livello secondo l'itinerario G 4, G, G, G. 54

68 Circuiti combinatori Capitolo.) Analisi dei circuiti AND-OR-NO. L'analisi di un circuito combinatorio tende ad ottenere una rappresentazione della funzione d'uscita y, analitica o sotto la forma di tavola di verita'. Poiche' la rappresentazione circuitale e' simbolica, l'analisi non e' legata a considerazioni di logica positiva o negativa. Per effettuare l'analisi di circuiti AND-OR-NO e' sufficiente partire dagli elementi su cui entrano le variabili e procedere verso il terminale di uscita secondo tutti i possibili itinerari, usando la funzione di uscita di ciascun elemento come variabile di ingresso dell'elemento successivo. Si abbia da esempio il seguente circuito: X 4 Y B X X X Y A Y A YC Y Y A X 5 figura.. Si ha: B A y = x A.x. x y = x.x.x = x + x + x C B 4 y = x A y = x.y = x A A A 4 4.x.x. x y = y.y = x + C 5 4.( x + x x ) 4 + x 4. ( x + x + x ) x 5 y = y + y + x = x.x.x.x +.4) Analisi dei circuiti NAND. L'analisi dei circuiti realizzati con porte NAND puo' essere condotta nella stessa maniera in cui si analizza un circuito AND-OR-NO. Le espressioni che se ne ricavano sono tuttavia notevolmente complesse a causa della non associativita' dell'operatore NAND. Ad esempio per il circuito di fig..4. si ottiene l'espressione analitica: 55

69 Circuiti combinatori Capitolo x x x 4 x x 5 x 6 y figura.4. y = [( x /x )/x/x4]/( x4/x5) /x6 Applicando ripetutamente il teorema di De Morgan si puo' passare alla forma AND-OR- NO. ( x + x ).x.x.( x + x ). = y = x.x.x.x4.x 4.x5.x6 = x6 = ( x + x ).x.x4 + x4.x5+ x6 E' possibile pero' ricavare la y, nella forma di somma di prodotti, direttamente dall'esame del circuito, quando si tengano presenti le proprieta' dell'operatore NAND. Si esaminino i seguenti semplici circuiti (figura.4.): x y = x + x y x x y=x.x y x x x y = x.x + x _ y x x x x 4 y=x.x+x.x 4 y x x x x 4 _ y=(x+ x ).x + x 4 y figura.4. Dall'esame di questi circuiti e della loro funzione di uscita si deduce che in un circuito NAND, comunque complesso, la funzione di uscita, nella forma di somma di prodotti, e' la somma di tutte le variabili che entrano al primo livello, negate, piu' tanti termini quanti sono 56

70 Circuiti combinatori Capitolo gli itinerari I verso gli elementi del secondo livello; ogni itinerario I da' origine al prodotto di tutte le variabili che entrano al secondo livello e di tanti fattori quanti sono gli itinerari I verso il terzo livello; ogni itinerario I origina la somma di tutte le variabili che entrano al terzo livello, negate, piu' tanti termini quanti sono gli itinerari verso il quarto livello, e cosi' via. In definitiva: ) I livelli dispari originano somme. ) I livelli pari originano prodotti. ) Le variabili che entrano ai livelli dispari vanno negate. A titolo di esempio si analizzi il circuito di fig..4. secondo le regole teste' enunciate. 5 X X 7 4 Y 6 X figura.4. Poiche' esistono due itinerari I,I la funzione di uscita sara' la somma di due termini. Di questi il primo, proveniente dal gate, sara' il prodotto di y 6, y 5 e y 4.Il termine proveniente da y 6 sara' la somma di y 7 e x (in quanto x entra su un livello dispari) e poiche' il gate 7 e' a livello pari esso dara' origine al prodotto delle variabili su esso entranti. Procedendo in modo analogo per tutti gli itinerari si ottiene: y = ( x + x.x )(. x + x.x ). ( x + x.x + x.( x + x ) + x.( x + x ))+ x.( x + x.x + x.x + x. )= + x ( x.x )(. x.x )(. x + x.x + x.x + x. )+ = x.( x + x.x + x.x + x. )= + x x [( x + x )(. x + x ) + x ](. x + x.x + x.x + x. x )= ( x + x.x + x.x )(. x + x + )= = x = x.x.x + x. x.x + x. x + x.x + x. x = = x +.x.x + x.x + x.x x. x 57

71 Circuiti combinatori Capitolo.5) Analisi dei circuiti NOR. Anche per i circuiti NOR l'analisi puo' essere condotta in analogia a quanto si fa per i circuiti AND-OR-NO, oppure la funzione di uscita puo' essere ricavata direttamente dal circuito nella forma di prodotto di somme, sfruttando le proprieta' dell'operatore NOR. Le regole da seguire per l'analisi diretta sono del tutto analoghe a quelle ottenute per l'operatore NAND, e`cioe': ) I livelli dispari danno origine a prodotti. ) I livelli pari danno origine a somme. ) Le variabili che entrano su livelli dispari vanno negate. A titolo di esempio si esamini il circuito di fig..5.. Si ottiene: X 4 X X Y X figura.5. y ( x + x.x.( x + x ). ( x + x.x + x.x.( x + x ))(. x + x. )= = x ( x + x. x )(. x + x + x )(. x + )= = x ( x.x + x.x + x.x )(. x + x + )= = x = x +. x.x + x.x. x x. x. x.6) La sintesi dei circuiti combinatori. Eseguire la sintesi di un circuito combinatorio consiste, come gia' accennato, nel progettare un circuito a n ingressi che soddisfi una determinata funzione di uscita y. La funzione y che il circuito deve soddisfare puo' essere assegnata in diverse forme. Piu' precisamente: ) Con la descrizione a parole del funzionamento del circuito. E' questa la forma di assegnazione piu' comune, ma anche la piu' imprecisa. E' necessario porre un'estrema attenzione per interpretare correttamente eventuali condizioni implicite e l'esistenza di vincoli di qualsiasi natura. Dalla descrizione verbale e' necessario passare alla tavola di verita' assegnando il valore della funzione per ognuna delle n configurazioni degli ingressi. 58

72 Circuiti combinatori Capitolo ) Con una vera e propria tavola di verita', che e' in definitiva l'effettivo punto di partenza della sintesi e a cui tutti gli altri tipi di assegnazione devono essere ricondotti. ) Con un'espressione analitica, che e' il modo piu' conciso, anche se non univoco, di descrivere il funzionamento di un circuito. 4) Con uno schema logico, procedura generalmente usata quando un determinato circuito logico debba venire riprogettato con componenti diversi. In tal caso, con le regole dell'analisi, si ricava un'espressione analitica della funzione y. Qualunque sia il metodo di assegnazione la sintesi procede partendo dalla tavola di verita' o da un'espressione analitica e applicando i metodi di semplificazione delle funzioni logiche fino a giungere alla forma piu' conveniente per gli scopi che ci si propone. Si noti che non sempre la forma piu' conveniente corrisponde alla forma minima della funzione. Ad esempio la forma minima algebrica non sempre si puo' realizzare circuitalmente in quanto vi possono essere dei vincoli sul numero massimo di livelli. Infatti quanto esposto precedentemente e cioe' che nei circuiti combinatori l'uscita e', istante per istante, funzione unicamente degli ingressi, non significa che la variazione degli ingressi sia avvertita immediatamente in uscita; sta piuttosto a significare che ogni configurazione di ingresso da' luogo a una determinata uscita e che eventuali transitori di commutazione possono ritardare, ma non modificare quest'uscita. Ora il tempo di commutazione di qualsiasi elemento fisico, per quanto piccolo, non e' mai nullo; il tempo di risposta di un circuito a n livelli al variare della configurazione di ingresso e' n., avendo indicato con il tempo di commutazione del singolo componente. In definitiva il ritardo totale tra ingresso e uscita e' proporzionale al numero di livelli e potendo la forma minima di una funzione contenere un numero di livelli molto elevato, la sua diretta realizzazione circuitale potrebbe dar luogo a ritardi intollerabili. La forma in cui si ha il minimo ritardo e' quella a due livelli, che d'altra parte e' quella che si ottiene con i metodi di semplificazione che sono stati esposti al capitolo II. La convenienza di eventuali fattorizzazioni va valutata caso per caso. Si puo' concludere percio' che la sintesi di un circuito combinatorio procede attraverso i seguenti passi, di cui quello (5) non puo' venir condotto secondo un procedimento sistematico, ma andra' verificato di volta in volta. ) Descrizione del funzionamento del circuito. ) Determinazione della tavola di verita'. ) Sintesi della funzione di commutazione. 4) Semplificazione della funzione logica relativa. 5) Determinazione della forma minima piu' conveniente. 6) Progetto del circuito. 59

73 Circuiti combinatori Capitolo.7) Sintesi di circuiti AND-OR-NO. Il procedimento e' banale; consiste nel ricavare, a partire dalla tavola di verita', la forma minima a due livelli; passare poi da questa alla forma minima piu' conveniente, eventualmente con tecniche basate sul concetto di decomponibilita', che saranno illustrate piu' avanti. Infine si disegna il circuito. Si voglia ad esempio realizzare un circuito a tre ingressi, sui quali possa presentarsi un numero binario compreso tra e 5. All'uscita di tale circuito debba essere realizzato il prodotto per del numero di ingresso. xxx y y y y figura.7. Poiche' il massimo numero di uscita e' 5, rappresentabile con 4 bit, sara' necessario sintetizzare quattro funzioni logiche. Le relative tavole di verita' sono riportate in fig..7. mentre in fig..7. si hanno le corrispondenti mappe di Karnaugh. x xx φ φ x xx φ φ x xx φ φ xx x φ φ y y y y 4 figura.7. Utilizzando opportunamente le condizioni non specificate si ottiene: y + = x x. x y + = x x. x y + = x.x x. x y 4 = x cui corrisponde il circuito di fig..7., ottenuto mettendo in comune tra le funzioni y e y il terminex.x. 6

74 Circuiti combinatori Capitolo x x x x _ x _ x x y y y y 4 figura.7. Quale altro esempio si voglia sintetizzare un circuito con la stessa funzione di trasmissione di quello illustrato in fig..7.4, ma possibilmente piu' economico. _ x_ x x _ x_ x x x 4 4 y x 4 _ x_ x figura.7.4 L'espressione analitica della funzione di trasmissione e' y = x + x + x 4 + x.x.x 4 + x.x.x 4 + x.x. x 4 = x +.x.x 4 + x.x.x 4 + x.x.x 4 x.x. x 4 = Dalla mappa di Karnaugh di fig..7.5 si ricava l'espressione minima a due livelli e fattorizzando si ottiene: y = x + (.7.).x + x.x.x 4 x.x. x 4 6

75 Circuiti combinatori Capitolo ( x.x x. ) y = x + (.7.).x + x. 4 x 4 X X X X 4 figura.7.5 Per la realizzazione della (.7.) sono sufficienti 4 gate, mentre per la (.7.) ne sono necessari 6. Il circuito realizzato e' allora quello relativo all'espressione (.7.) ed e' riportato in fig..7.6 x x _ x _ x _ x x 4 4 y figura.7.6 Si noti che negli esempi fatti si e' supposto di avere a disposizione all'ingresso del circuito sia le variabili dirette che la loro negazione. Quando questa situazione non si verifica anche il numero di invertitori va minimizzato. Ad esempio la funzione y = x + + x + x x 4 realizzabile con quattro invertitori e un gate OR, puo' essere realizzata molto piu' convenientemente tenendo presente che: y = x = + x + x + x 4 x.x.x. x 4 richiedendo in tal caso solamente un AND e un NO. 6

76 Circuiti combinatori Capitolo A causa della proprieta' associativa di somma e prodotto, quando qualcuno dei gate cui si perviene nel corso del progetto ha un numero di ingressi eccessivamente elevato, lo si puo' spezzare in due o piu' elementi dello stesso tipo, aumentando pero' il numero di livelli..8) La decomposizione in sconnessione semplice. La semplificazione dei circuiti mediante la fattorizzazione e' una tecnica soddisfacente nella maggior parte dei casi, ma e' un processo di tipo empirico largamente dipendente dall'esperienza e dal colpo d'occhio di chi opera. Sarebbe conveniente avere a disposizione qualche metodo piu' sistematico; cio' si puo' ottenere mediante la decomposizione funzionale. Il metodo di semplificazione in sostanza consiste nello spezzare una singola funzione complessa in un certo numero di funzioni semplici ed e' stato proposto da Ashenhurst e Curtis. Sia x, x,..., x n un insieme di variabili di commutazione e siano A e B due sottoinsiemi disgiunti di X, tali che: A B = X A B = Φ Sia assegnata una funzione booleana: f ( x, x,..., ) x n Se e' possibile individuare due funzioni F e ϕ, tali che: f ( X) = F[ ϕ( A ), B] allora si dice che F e ϕ formano una decomposizione in sconnessione semplice della funzione f. L'insieme delle variabili A e' detto insieme delle variabili al contorno, mentre l'insieme B e' quello delle variabili indipendenti. Il significato circuitale della decomposizione in sconnessione semplice e' illustrato in fig..8.. A φ Β F f figura.8. 6

77 Circuiti combinatori Capitolo Circuitalmente una funzione logica si realizza usando componenti capaci di assumere l'uno o l'altro di due stati diversi. Nei circuiti elettronici questi due stati sono realizzati mediante due livelli caratteristici di tensione, detti livello alto (h) e livello basso (b). Si consideri ad esempio la seguente funzione: ( x, x, x, x 4 ) = x.x.x.x 4 + x.x.x.x 4 + x.x.x.x 4 x.x.x. x 4 f + Manipolando opportunamente tale funzione si ottiene: f ( x, x, x, x ) x.x.( x.x + x.x ) + x.x.( x.x + x. )= 4 = x 4 con: ( x, x ) + x.x. ϕ( x, )= = x. x. ϕ 4 x 4 = F ϕ [ ( x, x ), x, ] 4 x ϕ ( x, x 4 ) = x.x 4 + x. x 4 che corrisponde alla partizione x,x / x,x 4. Si noti che nell'esempio fatto si e' semplicemente verificato che e' possibile ottenere una sconnessione semplice nella forma x,x /x,x 4. L'obiettivo che ci si prefigge e' invece individuare un metodo generale che permetta di determinare se esiste o meno una particolare decomposizione. Si consideri ad esempio la seguente funzione f ( x, x, x, x 4 ) = ( 4,5,6,7,8,,4,5) m che e' decomponibile nella forma F[ ϕ ( x, x ), x, ]. 4 x Per prima cosa si raccolgano i termini minimi secondo le quattro combinazioni possibili di x e x in modo da ottenere la forma; f ( x, x, x, x ) x.x. α( x, x ) + x.x. β( x, x ) + x.x. γ( x, )+ 4 = 4 4 x 4 ( x, ) + x δ (.8.).x. x 4 La cosa e' evidentemente possibile per qualsiasi funzione, sia essa decomponibile o meno. Si costruisca poi una speciale mappa della funzione, detta mappa di partizione (figura.8.); essa e' semplicemente una mappa di Karnaugh in cui le variabili indipendenti sono sistemate sulla verticale, mentre le variabili al contorno tarano l asse orizzontale. Confrontando la mappa di partizione con l'equazione (.8.) si vede che la prima riga corrisponde alla funzione α(x,x 4 ), la seconda a β(x,x 4 ),la terza a γ(x,x 4 ) e infine la quarta a δ(x,x 4 ). Anche questa e' evidentemente un'osservazione del tutto generale, che si applica sia alle funzioni decomponibili che a quelle non decomponibili. Si osservi ora che, come affermato in precedenza, per avere la decomposizione in sconnessione semplice la funzione F deve essere funzione di x,x e di una sola funzione 64

78 ϕ ( x, ). Si supponga che la ( x, ) x 4 Circuiti combinatori Capitolo x 4 ϕ sia la α. Allora, affinche' la funzione f sia decomponibile le rimanenti righe devono rappresentare o ϕ o ϕ o la costante logica o la costante logica. In altre parole le righe successive alla prima devono essere o identiche a ϕ o al suo complemento oppure devono essere riempite totalmente con o. x x 4 xx 9 8 α β γ δ figura.8. Questa condizione nell'esempio fatto e' rispettata, in quanto: f ( x, x, x, x ) x.x. ϕ( x, x ) + x.x. ϕ( x, x ) + x. = 4 = 4 4 x = F ϕ ( ( x, x ), x, ) 4 x con: ϕ ( x, x 4 ) = x. x 4 Il criterio descritto permette di discriminare se una funzione e' decomponibile, ma si applica con difficolta' notevolissime in mappe di partizione di dimensioni notevoli. Si definisca allora molteplicita' di colonna il numero di differenti insiemi di e che si possono individuare esaminando le colonne della mappa di partizione. Ad esempio, nella mappa di fig..8. si ha una molteplicita' di colonna, in quanto si possono individuare unicamente i due insiemi: 65

79 Circuiti combinatori Capitolo Il seguente teorema offre allora un semplice metodo per determinare se una mappa di partizione corrisponde ad una decomposizione in sconnessione semplice. EOREMA: Una mappa di partizione corrisponde ad una decomposizione in sconnessione semplice se e solo se la molteplicita' di colonna e' minore o uguale a. Infatti, come gia' e' stato detto, se una funzione e' decomponibile, i valori funzionali di ciascuna riga della mappa di partizione devono essere o o o ϕ o ϕ. Le righe che corrispondono alle costanti e contengono gli stessi valori in ciascuna colonna e quindi non contribuiscono alla molteplicita'. D'altra parte se una colonna ha un in una riga ϕ allora deve contenere uno nelle righe ϕ e un nelle altre righe ϕ. Sono quindi possibili solo due distinti tipi di colonna. In modo simile si puo' dedurre che, se si assume una molteplicita' di colonna, si e' in presenza di una decomposizione in sconnessione semplice. Comunque sia, il lavoro da eseguire rimane notevole, poiche' e' necessario investigare su tutte le possibili partizioni delle variabili in variabili al contorno e variabili indipendenti. Si ricorre allora all'uso della carta di decomposizione, che altro non e' se non l'insieme delle mappe di Karnaugh su cui sono riportate le posizioni dei termini minimi per ciascuna possibile combinazione di variabili indipendenti e al contorno. In fig..8. e' riportata la carta di decomposizione per funzioni di quattro variabili. Per usare la carta si cerchiano i termini minimi delle funzione su tutte le mappe e si individuano quelle in cui la molteplicita' di colonna e' o. Si noti che le carte di decomposizione di dimensione 4x4 vanno utilizzate sia direttamente che trasposte. Ad esempio, la prima delle tre F ϕ x, x, x,, quando mappe di fig..8. e' rappresentativa sia della decomposizione ( ( ) x 4 ) usata in senso diretto, che della decomposizione F( ϕ ( x, x ), x, ) 4 x, quando usata trasposta. Le carte di dimensione x8 vanno invece esaminate solo direttamente poiche' la decomposizione secondo una sola variabile al contorno e' una decomposizione banale. Si esamini ad esempio la funzione: f ( x, x, x, x 4 ) = ( 4,5,6,7,8,,4,5) m Dall'esame della carta di decomposizione si ottengono le seguenti possibili partizioni: f ( x /x,x,x ) = x.( x.x.x ) + x.( x.x.x ) = x f. ϕ ( x,x,x ) + x. ϕ( x,x,x ) ( x, x /x, x ) = x. x + x.x.( x + x ) + x.x.( x + x ) = x f =. x + x 4.x. λ ( x, x ) + x.x. λ( x, x ) 4 ( x, x /x, x 4 ) = x. x + x.x. ( x + x 4 ) + x.x.( x + x 4 ) x. x + x.x. ψ( x, x ) + x. x. ψ( x, x ) = 4 = = 66

80 f Circuiti combinatori Capitolo ( x, x /x, x ) = x.x + x.x.( x + x ) + x.x.( x + x ) = x. x x.x 4. ρ ( x, x ) + x.x. ρ( x, x ) = CARA DI DECOMPOSIZIONE PER QUARO VARIABILI x xx x x xx x x xx x x xx x xx xx xx 4 xx xx 4 xx figura.8. La procedura descritta puo' essere applicata a funzioni di un maggior numero di variabili ed in teoria essere estesa a funzioni di qualsiasi numero di variabili. In pratica per un numero di variabili superiore a 5 la dimensione della carta di decomposizione diventa eccessiva. uttavia la generalita' del metodo permette di pensare ad una computerizzazione del processo quando il numero delle variabili fosse superiore a 5. Qualora esistano condizioni non specificate nella funzione assegnata e' necessario contrassegnare opportunamente sulla carta di decomposizione (ad esempio barrandoli) i relativi termini minimi. Si utilizzano poi le condizioni non specificate in modo da ottenere, se possibile, una molteplicita' di colonna non superiore a. 67

81 Circuiti combinatori Capitolo.9) Altre decomposizioni disgiuntive. E' evidente che esistono altre forme di decomposizione diverse che non quella in sconnessione semplice. In questo paragrafo verranno prese in esame le decomposizioni che si ottengono con la partizione dell'insieme delle variabili indipendenti in tre o piu' sottoinsiemi disgiunti. Sia X = x, x,...,x n un insieme di n variabili di commutazione e siano A, A,...,A m dei sottoinsiemi disgiunti di X, tali che: A A... A m = La decomposizione, ove possibile, in una delle due forme: f ( X) = F[ ψ ( A ), ψ ( A ),..., ψ ( )] X m A m oppure f ( X) = F[ ψ ( A ), ψ ( A ),..., ψ ( A ), ] m m A m prende il nome di decomposizione in sconnessione multipla. La decomposizione nella forma: o, piu' in generale: f f ( X) = F[ λ( ψ[ A ], B ), C] ( X) = F[ λ ( λ [... λ ( λ [ A ], A ),..., A ], A ), A ] m m e' conosciuta come decomposizione in sconnessione iterativa. Infine la combinazione di queste due forme, cioe': f ( X) = F[ γ( ψ[ A ], B ), λ( C ), D] e' detta decomposizione in sconnessione complessa. In ogni caso la decomposizione sara' non banale se gli insiemi delle variabili al contorno ne conterranno almeno due. Esiste un certo numero di teoremi che mettono in relazione le decomposizioni appena illustrate con quella in sconnessione semplice e permettono di estendere l'uso della carta di decomposizione alla loro determinazione. Di questi teoremi, di dimostrazione spesso lunga e noiosa, ci si limitera' a dare l'enunciato ed un esempio di applicazione..9.) Decomposizione iterativa. Sia f(x) una funzione per la quale esistano due diverse decomposizioni in sconnessione semplice: m m m 68

82 f Circuiti combinatori Capitolo ( X) = F[ λ( A, B ), C] = G[ ψ( A ), B, C] Esiste allora la decomposizione in sconnessione iterativa f ( X) = F[ ρ( ψ[ A ], B ), C] con: ρ ( ψ[ A], B) = λ( A, B) Quale esempio di applicazione di questo teorema si consideri la funzione: f ( x, x, x, x, x ) ( 5,,,4,7,,6, ) 4 5 = m In fig..9. sono riportate due mappe di decomposizione della funzione; da esse si deduce che esistono le due seguenti decomposizioni in sconnessione semplice: x x x 5 x x x x x x x figura.9. f f ( X) = F[ ψ( x, x, x ), x, ] 5 x 4 ( X) = G[ λ( x,x ),x,x, ] 4 x5 Le condizioni enunciate sono soddisfatte ponendo: A = ( x, ) B = ( ) C = ( x, ) x Dalla prima mappa di partizione della fig..9. si ottiene: f x 5 x 4 ( X) = x.x. ψ( x, x, x ) + x.x. ψ( x, x, ) x 5 con: 69

83 ψ Circuiti combinatori Capitolo ( x, x, x 5 ) = x.x 5 + x. x 5 Ora, dalle condizioni enunciate all'inizio di questo paragrafo, la funzione ψ( x,x, x5) puo' essere decomposta in accordo con la partizione x,x /x 5. Per ispezione diretta della ψ ( x,x, ) si vede che la decomposizione e' data da: x5 ψ ( x, x, x ) = x.( x + ) 5 5 x Questo esempio e' ovviamente banale, nel senso che non ci sarebbe bisogno di ricorrere alle condizioni enunciate all'inizio per individuare la fattorizzazione eseguita sulla ψ ( x, x, x 5 ). uttavia il teorema stesso puo' essere usato, indipendentemente dal numero di variabili, per individuare, tramite la carta di decomposizione, quelle situazioni in cui le sottofunzioni possono essere di volta in volta ulteriormente decomposte..9.) Decomposizione multipla. Sia f(x) una funzione per la quale esistano due diverse decomposizioni in sconnessione semplice. f ( X) = F[ λ( A ), B] = G[ ψ( B ), A] Esiste allora la decomposizione in sconnessione multipla: f ( X) = H[ λ( A ), ψ( B) ] La condizione teste' espressa sara' soddisfatta quando sulla carta di partizione della f(x) la molteplicita' di colonna sara' non superiore a sia per la carta diretta che per quella trasposta. Si consideri, ad esempio, la funzione di parita' di quattro variabili, la cui mappa di Karnaugh e' riportata in fig..9.. x x 4 x x figura.9. La mappa di decomposizione della stessa funzione e' illustrata in fig..9.. Si puo' notare immediatamente che la molteplicita' e' sia per le colonne che per le righe. 7

84 Dalla carta trasposta si ottiene: f Circuiti combinatori Capitolo ( x, x /x, x ) = ( x.x + x.x ). ψ( x, x ) + ( x.x + x.x ). ψ( x, ) 4 4 x 4 con: ψ ( x, x 4 ) = x.x 4 + x. x 4 x x 4 x x figura.9. con: Dall'esame della carta diretta si ottiene: f ( x, x /x, x ) = ( x.x + x.x ). λ( x, x ) + ( x.x + x.x ). λ( x, ) x λ ( x, x ) = x.x + x. x Il teorema enunciato indica l'esistenza di una decomposizione multipla: f ( X) = H[ ψ( x, x ), λ( x, )] 4 x Per determinare H si costruisca (figura.9.4) la mappa di Karnaugh della F ( ψ, x, x ) valori di ( x, x ) della mappa della funzione H ( ψ, λ).. I λ sono indicati in tale mappa, permettendo quindi l'immediata costruzione ψ x x ψ λ λ= λ= λ= λ = figura.9.4 Si ottiene pertanto: 7

85 Circuiti combinatori Capitolo H ( ψ, λ) = ψ. λ + ψ. λ dove: ψ = x x 4 λ = x x Anche in questo caso l'esempio e' banale, in quanto lo stesso risultato poteva essere ottenuto per ispezione diretta. uttavia esso e' importante in quanto il metodo descritto si estende facilmente a funzioni con qualsiasi numero di variabili. Una decomposizione in sconnessione multipla puo' poi essere individuata anche nel caso seguente. Sia f(x) una funzione per la quale esistano le due seguenti decomposizioni in sconnessione semplice: f ( X) = F[ λ( A ), B, C] = G[ ϕ( B ), A, C] Esiste allora la decomposizione in sconnessione multipla f ( X) = H[ λ( A ), ϕ( B ), C] Quale esempio si consideri la funzione di disparita' di 5 variabili, di cui due mappe di partizione sono riportate in fig x x x 4 5 x x x x x x x figura.9.5 Dall'esame della prima carta trasposta si ottiene la decomposizione: f ( x, x, x /x, x ) ( x.x.x + x.x.x + x.x.x + x.x.x ). λ( x, )+ 4 5 = x + ( x.x.x + x.x.x + x.x.x + x.x.x ). λ( x, ) x con: 7

86 Circuiti combinatori Capitolo λ ( x, x ) = x.x + x. x Dalla seconda carta di decomposizione, sempre trasposta, si puo' individuare la decomposizione: con: f ( x, x, x /x, x ) ( x.x.x + x.x.x + x.x.x + x.x.x ). ϕ( x, )+ 5 4 = x 4 + ( x.x.x + x.x.x + x.x.x + x.x.x ). ϕ( x, ) x 4 ϕ ( x, x 4 ) = x.x 4 + x. x 4 Le condizioni enunciate in precedenza sono soddisfatte con : A = ( x, ) B = ( x, ) C = ( ) x Per determinare la funzione composta H, si costruisca la mappa di Karnaugh della funzione f ( x, x 4, x 5/x, x ) indicando per ciascuna delle sue righe i valori assunti dalla funzione ϕ, come illustrato in fig..9.6 (a). Si puo' allora, a partire da tale mappa, ricostruire la mappa della funzione H, come viene illustrato in fig..9.6 (b). x 4 x 5 λ x 5 xx 4 λx 5 φ= φ φ= φ= φ= H (a) (b) figura.9.6 Da tale mappa si ottiene: ( λ, ϕ, x ) = ( λ.x + λ.x ). ϕ + ( λ.x + λ.x )ϕ. H Questa operazione completa la decomposizione. Si puo' tuttavia notare dalla mappa finale di fig..9.6 (b) che la stessa H e' decomponibile. 7

87 Circuiti combinatori Capitolo Definendo: ρ ( λ, x 5 ) = λ.x 5 + λ. x 5 si ottiene in definitiva: f ( X) = ρ. ϕ + ρ. ϕ E' evidente che le funzioni possono essere decomposte in maniera non disgiuntiva; sono stati sviluppati a tale proposito (ad esempio da Curtis "Design of Switching Circuits" Van Nostrand, Princetown, N.J. 96) dei metodi completamente generali. uttavia tali metodi sono talmente complessi da risultare di dubbia utilita' pratica. C'e' da rilevare che non e' conveniente tentare di decomporre una funzione a meno che non ci sia la possibilita' di realizzare rilevanti economie. Molto spesso pero' funzioni, la cui realizzazione a due livelli e' eccessivamente costosa, vengono decomposte in modo disgiuntivo. Dall'ultimo esempio fatto si puo' facilmente osservare che le due carte di decomposizione di fig..9.5 sono strutturalmente identiche. Infatti la funzione di disparita' presa in esame e' una funzione simmetrica il cui valore dipende unicamente dal numero delle variabili poste a. La stessa proprieta', cioe' il fatto di avere carte di decomposizione strutturalmente identiche, e' valida per tutte le funzioni simmetriche e quindi quanto visto in quest' ultimo paragrafo si estende alla maggior parte, se non a tutte le funzioni simmetriche. Questa osservazione suggerisce a sua volta che i metodi di decomposizione disgiuntiva sono in genere adatti alla semplificazione delle funzioni simmetriche. Quale ultima osservazione e' bene far notare che la decomposizione di funzioni con piu' di sei variabili diviene di solito talmente complessa da rendere di difficile e pesante applicazione i metodi proposti..) Sintesi dei circuiti NAND La sintesi di un circuito NAND va fatta a partire dall'espressione minima a due livelli, intendendo come espressione minima quella che minimizza il numero di gate, e, a parita' di gate, il circuito che usa il minor numero di ingressi. E' evidente che la minimizzazione deve operare anche sugli invertitori, potendo essi venir concepiti come NAND a un ingresso. La sintesi quindi appare come un problema nettamente diverso a seconda che si abbiano o meno a disposizione le variabili negate...) Sintesi a partire da variabili dirette e negate. Nel caso dell'analisi si e' visto che un circuito NAND origina una somma di prodotti, poiche' ogni NAND, a parte la negazione o meno delle variabili che entrano su di esso, si comporta come un AND o un OR a seconda del livello in cui si trova inserito lungo ciascun itinerario. Si puo' allora pensare di realizzare un circuito NAND nello stesso modo in cui si realizza un circuito AND-OR-NO, tenendo pero' presente che e' necessario negare le variabili che entrano ai livelli dispari. Ad esempio si voglia realizzare il circuito NAND per la funzione: 74

88 Circuiti combinatori Capitolo ( x.x.x 4 + x 5 ) + [( x + x + x 4 ).x 5 x 6 ]. 7 y = x +. x Il circuito che se ne ricava sara' evidentemente a 5 livelli, uno per la somma dei due addendi, ed i successivi per la realizzazione dei due addendi stessi. Si ottiene il circuito di fig.... x x x 4 _ x 5 4 x 6 x x x 4 _ x 5 _ x 6 5 x livello 5 livello 4 livello livello livello figura.. Il circuito ottenuto puo' venir semplificato osservando che il blocco formato dai NAND e si ritrova all'ingresso del secondo ramo (NAND e 4). Il blocco stesso puo' quindi essere messo in comune tra i due rami, con un risparmio di due gates. Ricorrendo ad una semplice osservazione si puo' usare la stessa procedura di sintesi circuitale anche per le funzioni espresse in termini di prodotto di somme. Si ha infatti: f [ ] ( X) ϕ ( x,..., x ) = ϕ ( x,..., x ) = i n i n + L'espressione che si ricava in tal modo e' nella forma di somma di prodotti e si puo' allora realizzare il corrispondente circuito NAND. Le variabili che entrano ai livelli dispari vanno ovviamente complementate. Si puo' infine eliminare la costante logica che risulta presente al primo livello in quanto: x/ = x. = x Quale ultima osservazione si puo' notare che, se nel corso della sintesi qualcuno dei NAND, cui si perviene, avesse un numero di ingressi superiore a quello ammissibile, esso non e' semplicemente separabile in due elementi in cascata a causa delle non associativita' dell'operatore NAND. Ricordando che: 75

89 Circuiti combinatori Capitolo x = ( x/x /x) /... k /x /x/.../x k /x il circuito cui si perviene e' quello di fig... x x n x x x x n figura....) Sintesi a partire dalle sole variabili dirette. Quando le variabili di ingresso non sono disponibili nella loro forma negata, non e' conveniente usare dei NAND semplicemente per invertirle, in quanto il costo di ciascuna porta e' approssimativamente uguale, qualunque sia il numero dei suoi ingressi. E' piu' opportuno usare degli artifici, quando possibile, per far entrare le variabili dirette sui livelli pari e quelle negate sui livelli dispari, in modo da eliminare gli invertitori sfruttando le proprieta' delle reti NAND. Questo modo di operare modifica spesso in modo profondo la forma della funzione, aumentando di solito il numero di livelli e di NAND. La scelta del circuito minimo va fatta confrontando tra di loro un certo numero di circuiti ottenuti per via diversa, derivanti dai due procedimenti di: a) Separazione delle variabili dirette da quelle negate su livelli diversi. b) Aggiunta di termini ridondanti, per creare elementi comuni o stabilire itinerari differenti. Si voglia ad esempio realizzare il circuito la cui funzione di trasmissione e': ( x + x + x 4 ) x.x. 4 y = x +. x Utilizzando la procedura di sintesi illustrata al paragrafo precedente si ricava un circuito con quattro gates e due invertitori. E' possibile viceversa manipolare opportunamente la funzione, ottenendo: ( x + x ) + x.x 4 + ( x x ).x. 4 y = x +. x ottenendo il circuito di fig... con cinque NAND e nessun invertitore. 76

90 Circuiti combinatori Capitolo x x x x 4 x y x x 4 figura.. Quale ulteriore esempio si voglia eseguire la sintesi del circuito per la funzione: y = (,,4,6,7,9,,5) m Dalla minimizzazione tramite mappa di Karnaugh si puo' ottenere la forma a due livelli: e fattorizzando y = x +.x.x 4 + x.x.x 4 + x.x.x 4 + x.x.x 4 x.x. x ( x + x ) + x.x.( x ) y = x +.x.x 4 + x.x. 4 4 x ale espressione analitica da' luogo a una realizzazione circuitale che richiede sei NAND e tre invertitori. Partendo da una diversa forma minima a due livelli, ottenuta legando sulla mappa di Karnaugh il termino minimo con quello anziche' con quello 4, si ottiene: e fattorizzando nella forma: y = x +.x.x + x.x.x + x.x.x 4 + x.x.x 4 x.x. x 4 ( x.x + x.x 4 ) + x.( x.x + x.x 4 ) x.x. 4 y = x +. x si puo' trasformare l'espressione nel modo che segue: y = ( x + x)(. x.x + x.x4 + x.x+ x.x4 ) + x.x. x4 = = ( x.x + x )(. x.x + x.x 4 + x.x + x.x 4 ) + x.x 4. ( x + x )= ( x.x + x )(. x.x + x.x 4 + x.x.x + x.x.x 4 ) + x.x 4. ( x + x )= = ( x.x + x )(. x + x )(. x + x.x ) + x.x.( x + ) 4 4 x ottenendo una forma che permette di realizzare il circuito con 7 NAND e un invertitore. 77

91 Circuiti combinatori Capitolo C'e' da osservare che gli artifici da usare non sono intuitivi e che non sempre si riesce a diminuire il numero di gates. Ad esempio, per la funzione: y = x +.x.x x.x. x non c'e' alcun artificio che sia in grado di eliminare gli invertitori di ingresso..) La tecnica del bundling. Nei circuiti realizzati in logica NAND e' possibile eliminare gli invertitori che compaiono nel circuito, ad eccezione di quelli di ingresso, per mezzo di una tecnica chiamata "bundling" (pagando pero' il prezzo di un maggior numero di ingressi per i rimanenti gates). La tecnica qui descritta e' applicabile anche ai circuiti realizzati in logica NOR e si puo' usare quando il segnale in uscita di un gate viene invertito per essere applicato all'ingresso di un altro gate, come illustrato in fig.... A B C D F E G figura.. Le due inversioni in serie possono dunque essere cancellate, raggruppando gli ingressi del gate e riportandoli all'ingresso del gate e contemporaneamente eliminando l'invertitore. Per l'esempio in esame si ottiene il circuito di fig.... C D F A B E G figura.. 78

92 Circuiti combinatori Capitolo.) Sintesi dei circuiti NOR Si e' gia' visto nel caso dell'analisi che un circuito NOR da' origine ad una funzione di trasmissione in termini di prodotto di somme, e che ogni NOR, a parte la negazione o meno delle variabili, si comporta come un AND o un OR secondo il livello occupato dal gate lungo i diversi itinerari. Si puo' quindi eseguire la sintesi di un circuito NOR con gli stessi criteri utilizzati per i circuiti AND-OR-NO negando poi le variabili che entrano ai livelli dispari, purche' la funzione sia espressa in termini di prodotto di somme. Si voglia da esempio realizzare un circuito NOR, la cui funzione di trasmissione sia: ( x + x )(. x x. ) y = + x Si ottiene la configurazione circuitale di fig... x _ x _ x x x y figura.. Con elementi NOR si possono realizzare anche circuiti la cui funzione di trasmissione sia espressa in termini di somma di prodotti. Infatti, tenendo presente che: y = ϕi ( x,..., x n ) = [ ϕi ( x,..., x n )]. dove le ϕ i sono funzioni realizzate tramite prodotti logici, e tenendo altresi' presente che le variabili che entrano ai livelli dispari vanno negate, si puo' realizzare un circuito nel quale al primo livello si avra' un NOR con funzioni unicamente di invertitore. Infatti: x = x+ = x.) Esempio di sintesi. Si voglia realizzare un circuito capace di sommare due bit secondo le regole dell'addizione binaria. Esso dovra' avere due uscite, S e R, di cui la prima rappresenta la somma dei due bit, mentre la seconda e' il riporto al rango immediatamente successivo. La relativa tavola di verita' e' la seguente: 79

93 Circuiti combinatori Capitolo A B S R Le equazioni del circuito saranno quindi: S = A.B+ R = A.B In fig... (a) e (b) sono riportati i circuiti realizzati rispettivamente in logica NAND e in logica AND-OR-NO. A.B _ A _ A B S B S A _ B A _ B A B R A B R (a) (b) figura.. Per la realizzazione mediante elementi NOR e' invece conveniente scrivere la funzione nella forma: ( A + B )(. A B) S = + A partire da tale espressione si ottiene finalmente il circuito di fig.... A B _ A _ B S R figura.. 8

94 Circuiti combinatori Capitolo Si sono in tal modo ottenute tre diverse realizzazioni dello stesso circuito, che e' conosciuto sotto il nome di semisommatore binario, in quanto puo' essere usato solamente per i bit meno significativi dei due numeri da sommare. Se ne deduce che il circuito realizzato non e' direttamente utilizzabile per la somma degli altri ranghi, per i quali e' necessario un circuito sommatore a tre ingressi, i due bit, cifre dei numeri da sommare, ed il riporto dal rango precedente. Il problema puo' essere risolto secondo due vie diverse. La prima prevede la sintesi di un circuito sommatore completo (o full-adder), la seconda un'opportuna interconnessione di due semisommatori come e' illustrato in fig.... a b a b a b n n /Σ /Σ /Σ /Σ / Σ s r, r s ' s r" s n r figura...4) I circuiti multiterminali. E' detto circuito multiterminale (M) un circuito combinatorio a n ingressi e m uscite, su ciascuna delle quali e' realizzata una diversa funzione y delle variabili x, x,...,x n. Circuito M e' ad esempio il semisommatore binario esaminato al paragrafo precedente. Il problema che i circuiti M pongono e' quello dell'individuazione di termini comuni alle diverse funzioni d'uscita, in modo da realizzare circuiti, che, mettendo in comune tra piu' uscite le parti circuitali comuni, risultino piu' semplici e piu' economici. E' evidente che, operando le semplificazioni separatamente sulle singole funzioni, le parti comuni alle diverse uscite potrebbero andare perse. Per funzioni fino a cinque variabili il metodo di semplificazione piu' rapido, anche se non del tutto rigoroso, e' quello delle mappe di Karnaugh, mentre se il numero di variabili e' maggiore o si volesse usare un procedimento assolutamente sistematico e' piu' conveniente rifarsi al metodo analitico di Quine- McCluskey..4.) Semplificazione mediante le mappe di Karnaugh. Il metodo di semplificazione per i circuiti M mediante le mappe di Karnaugh viene condotto secondo i seguenti passi: ) Si riporta ognuna delle y i sulle mappe. 8

95 Circuiti combinatori Capitolo ) Si individuano su ciascuna mappa i sottoinsiemi che danno luogo alla forma minima. ) Si confrontano tutti gli insiemi cosi' individuati mettendo in comune quelli che compaiono in almeno due mappe e spezzando quelli che possono essere ottenuti come somma di piu' insiemi di altre mappe. 4) Per ogni uscita si scrivono le forme fattorizzate ricavate dai sottoinsiemi di cui al passo e e si sceglie la forma piu' economica. Si voglia, ad esempio, realizzare un circuito M a 4 ingressi e tre uscite: y = (,4,6,7,,4,5) m y ( 4,5,6,7,,,,4, 5) ( ) m y =,,4,5,9,,,,4,5 In fig..4. sono riportate le relative mappe di Karnaugh. = m xx xx 4 xx xx 4 xx xx 4 figura.4. Le espressioni minime a due livelli, ricavabili dalle mappe considerate separatamente, sono: y + = x.x.x 4 + x.x x.x. x 4 y = + x x. x. x 4 y + = x.x + x.x 4 x. x e la relativa realizzazione circuitale in termini di AND-OR-NO richiede gates. Spezzando gli insiemi x.x e x.x di y come illustrato in fig..4., si ha: y + = x.x.x 4 + x.x x.x. x 4 y = + x x. x. x 4 y = x. x + x.x.x + x.x.x + x.x.x

96 Circuiti combinatori Capitolo che, sempre in termini di AND-OR-NO, richiedono solamente otto gates per la loro realizzazione..4.) Semplificazione dei circuiti multiterminali con il metodo tabellare. Il metodo e' molto simile a quello illustrato in precedenza per i circuiti ad uscita singola. La sua illustrazione, per esigenze di semplicita' di trattazione, verra' fatta con riferimento ad un particolare esempio. Si voglia realizzare un circuito M a quattro ingressi e tre uscite, secondo la seguente tavola di verita': x x x x y y y 4 a) Costruzione della prima tabella da cui partire con la semplificazione. Vengono prese in considerazione tutte le configurazioni degli ingressi per cui almeno una delle funzioni vale. Ad esse vengono aggiunte, come parte letterale, le configurazioni delle uscite che valgono. Ad esempio, essendo per x x x x 4 = y y y =, si avra' un termine y - y. I termini cosi' ricavati sono ordinati in livelli allo stesso modo gia' illustrato per le funzioni a singola uscita. Si ottiene: y - y 4 - y y 6 y y y y - y y - y y 9 y - y 7 y y - - y y 4 y y y y - y 5 y y y 8

97 Circuiti combinatori Capitolo b) Confronti tra i termini e costruzione delle tabelle successive. I confronti vanno ancora eseguiti tra tutti i termini di un livello e tutti i termini del livello successivo. Sono semplificabili tutti i termini che differiscono per un solo bit, purche' compaiano ambedue in almeno una funzione. Sono ad esempio semplificabili i termini: dando luogo al termine: mentre non sono semplificabili i termini: y - - y y - y - - y y y Si ottengono in tal modo le seguenti tabelle: A...,5,9 4,6 4,5 4, y y - y - y - - y y - y y B... C... 6,7 6,4 5,7 5,,,4,4, 9, 9, y y - y y - - y - - y y - y y - y y - y y - - y - - y y - y D...,5 4,5,5 7, y y y y y y - y y y - 84

98 Circuiti combinatori Capitolo E... F... G... H... I... L...,5,9, 4,5,6,7 4,5,, 4,6,,4 6,7,4,5 5,7,,5,,4,5,,4,5 9,,, y - y - - y y - y - y y - - y - - y y - - y - - y M... 4,5,6,7,,,4, y - Si noti che nel passaggio dalla seconda alla terza tabella il termine,9, pur dando luogo assieme al termine 5, all'implicante,5,9, della terza tabella, deve purtuttavia essere considerato un implicante primo per la y, in quanto la semplificazione citata ha luogo per la sola y. c) Determinazione della copertura minima. La determinazione della copertura minima si fa ancora con l'aiuto di un reticolo, realizzato come se le funzioni di uscita dovessero essere tradotte in circuito in modo indipendente. Il reticolo ha cioe' sulle ascisse i termini minimi delle singole funzioni da realizzare e sulle ordinate gli implicanti primi individuati. Dall'esame del reticolo di fig..4. si riconoscono i seguenti implicanti essenziali: A che copre i termini minimi e 9 in y e y. B che copre i termini minimi e 4 in y e y. F che copre i termini minimi 4, 5, e in y e y. G che copre i termini minimi 6, 7, 4 e 5 in y e y. y y y A B C D E F G H I L M figura.4. 85

99 Circuiti combinatori Capitolo Rimangono scoperti il termine minimo in y e y e quello 5 in y ; l'implicante primo D li copre entrambi. Si ha in tal modo: y + = G+ A+ D = x.x + x.x.x 4 x.x. x 4 y + = G+ F+ B = x.x + x.x x. x. x 4 y + = D+ F+ B+ A = x.x.x 4 + x.x + x.x.x 4 x.x. x 4 La realizzazione circuitale in termini di AND-OR-NO richiede solamente 8 gates, come e' illustrato in fig..4.. x x _ x_ x x 4 x x x 4 x _ x x 4 x _ x y y y figura.4..5) Selettori e matrici. I selettori sono particolari circuiti multiterminali; circuiti cioe' a n ingressi e n uscite, ognuna delle quali assume valore in corrispondenza ad una e una sola delle n configurazioni possibili dell'ingresso. Un selettore puo' ovviamente essere realizzato con n circuiti AND a n ingressi, ciascuno dei quali sintetizza uno dei n termini minimi delle n variabili x, x,..., x n, come illustrato in fig..5.. x x x x x x x x x x figura.5. 86

100 Circuiti combinatori Capitolo I selettori prendono il nome di matrici quando sono realizzati secondo la particolare tecnica circuitale illustrata in fig..5. (a). In fig..5. (b) e' riportata la relativa rappresentazione simbolica. +V x x _ x x _ x x x x x x _ x x _ x x x x _ x x _ x x x x (a) figura.5. (b) Le matrici sono circuiti particolarmente semplici e, malgrado che il loro uso sia sempre meno diffuso, sopravvivono al giorno d'oggi in particolare nei circuiti di indirizzamento, presentando quale inconveniente il fatto che all'aumentare del numero degli ingressi il numero dei diodi necessari, pari a n. n, diviene eccessivo. Montaggi piu' economici possono essere ottenuti utilizzando la tecnica delle matrici multiple. Si tenga presente che quanto verra' esposto nei paragrafi successivi con riferimento al numero di diodi necessari a realizzare un selettore con la tecnica delle matrici rimane pienamente valido anche se la realizzazione non e' a matrice, purche' ci si riferisca al numero di ingressi anziche' al numero di diodi..5.) Matrici multiple. Prendono il nome di matrici multiple i selettori in cui la scelta di una delle n uscite viene fatta attraverso un certo numero di matrici parziali di o variabili, le cui uscite vengono combinate in tutti i modi possibili ad un successivo livello. In fig..5. e' rappresentata una matrice multipla di 4 variabili realizzata con due sottomatrici da due variabili ciascuna. x x x x x x x x figura.5. La ripartizione ottimale delle n variabili (n 5) in un selettore a matrici multiple si ottiene ripartendo le variabili in due gruppi G e G il piu' possibile uguali tra di loro ed 87

101 Circuiti combinatori Capitolo ognuno di tali gruppi in ulteriori altri due il piu' possibile uguali fino ad ottenere gruppi di non piu' di tre variabili. In fig..5.4 e' riportata la ripartizione ottima per una matrice di 7 variabili. Sono in tal caso necessari 8 diodi in luogo degli 896 (7. 7 ) necessari per la realizzazione a matrice semplice. 8 USCIE SOOMARICE DI COMBINAZIONE 56 DIODI SOOMARICE DI COMBINAZIONE DIODI SOOMARICE DI VARIABILI 4 DIODI SOOMARICE DI DUE VARIABILI SOOMARICE DI DUE VARIABILI 8 DIODI 8 DIODI x x x x x x x 4 figura ) Matrici incomplete. In una realizzazione a matrice multipla, se qualcuna delle n uscite non e' necessaria, il numero di diodi da utilizzare diminuisce non solo nella matrice di combinazione dell'ultimo stadio, ma anche in quelle degli stadi precedenti. La diminuzione dipende dalla ripartizione delle variabili effettuata sulle varie matrici di ingresso. A titolo di esempio si voglia realizzare il selettore di 5 variabili fra le cui uscite non compaiano i termini minimi della funzione: ( x.x ) y = x +. 5 x Si supponga di aver ripartito le variabili come illustrato in fig M 5 M 5 _ x x _ x x x 5 _ x x x x 5 M M _ x x M M x x x x x 4 5 figura

102 Circuiti combinatori Capitolo Il termine x.x apporta una riduzione in M e M 5 e per tenerne conto lo scriveremo accanto a M e M 5.; il termine x.x.x 5 da' invece luogo a una riduzione solo su M 5 poiche' x e x appartengono a M e x 5 a M. Lo scriveremo allora solo in corrispondenza a M 5. A parte verra' poi preso in considerazione il prodotto delle variabili comuni x.x.x.x 5. Ora in M uscite contengono il termine x.x e quindi la loro eliminazione fa risparmiare 6 diodi. In M 5 =8 uscite contengono il termine x.x, mentre =4 uscite contengono il termine x.x.x 5 e = uscite il termine x.x.x.x 5.Vengono quindi eliminate = uscite con un risparmio di diodi. In totale pertanto si risparmiano 6 diodi. Con una diversa ripartizione delle variabili, quale ad esempio quella di fig..5.6 si risparmiano ancora diodi in M ' 5, ma solamente in M '. M 5 _ x x _ x x x 5 _ x x x x 5 M M _ x x x x x x x 5 4 figura.5.6 Si vede immediatamente che e' conveniente ripartire le variabili in modo che i termini da eliminare facciano sentire la loro influenza il piu' possibile in prossimita' degli ingressi e compaiano nelle sottomatrici di ingresso a massimo numero di variabili..6) Implementazione delle funzioni simmetriche. Le funzioni simmetriche, in aggiunta alle proprieta' logiche messe in luce al capitolo II, possiedono anche interessanti proprieta' aritmetiche. Quando le variabili di simmetria di una funzione simmetrica vengono usate come ingressi di un sommatore binario, le uscite di quest'ultimo realizzano le funzioni simmetriche corrispondenti a quell'insieme di variabili. Ad esempio, se le variabili di simmetria sono A, B, C, D il relativo sommatore binario corrispondera' alla seguente tavola di verita': 89

103 Circuiti combinatori Capitolo ABCD S S S Si ricava pertanto: S = A.B.C.D = S 4 4 ( A, B,C, D) S = A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D+ A.B.C. D+ + A.B.C.D + A.B.C.D+ A.B.C.D + A.B.C.D+ A.B.C. D = = S 4, A, B,C, D ( )( ) S = A.B.C.D + A.B.C.D + A.B.C.D + A.B.C.D+ A.B.C. D + + A.B.C.D+ A.B.C.D+ A.B.C. D = A, B,C, D S 4, ( )( ) Per ottenere le funzioni simmetriche elementari delle 4 variabili A, B, C, D le uscite del sommatore binario possono essere combinate come illustrato in fig S 4 A B C D Sommatore binario 4 S 4 S 4 S, S 4 S, S S 4,,4 S 4,,4 4 S 4 S 4 S 4 S S 4,,, figura.6. 9

104 Circuiti combinatori Capitolo La disponibilita' di circuiti integrati che realizzano la funzione di sommatore binario fa si' che l'implementazione di funzioni simmetriche diventi particolarmente semplice, operando nel campo dell'aritmetica binaria piuttosto che in quello dell'algebra booleana. ESEMPIO Si voglia progettare il circuito che realizza la seguente funzione simmetrica: f 6 ( A,B,C,D,E,F) = S ( A,B,C,D,E,F) La funzione assegnata puo' essere scritta come: f ( A, B, C, D, E, F) = A.B.C.D.E.F + A.B.C.D.E.F+ A.B.C.D.E. F+ + A.B.C.D.E.F+ A.B.C.D.E.F+ A.B.C.D.E. F = = (A.B.C.D.E+ A.B.C.D.F+ A.B.C.E.F+ A.B.D.E. F+ + A.C.D.E.F+ B.C.D.E.F).( A + B + C + D + E + F)= = [B.C. A.D.E+ A.D.F + B.E. A.C.F+ A.D. F 5 ( ) ( )+.F.( A.C.D B.C.D )].A.B.C.D.E. F + E + L'implementazione di questa funzione, ottenuta con i metodi di progetto tradizionali, richiede, se realizzata con elementi NOR, 9 gates, senza contare gli invertitori necessari La stessa funzione puo' tuttavia essere scritta come: f 6 6 ( A,B,C,D,E,F) = S( )( A,B,C,D,E,F ).S ( ) ( A,B,C,D,E,F) 4,5,6 La realizzazione ottenuta per mezzo di sommatori binari e' riportata in fig..6..,,5 S 6 4,5,6 Sommatore binario c s 6 S,,6 Sommatore binario c s c Sommatore binario s Sommatore binario c s 6 S,,5 A B C D E F figura.6. ESEMPIO Si progetti il circuito che realizza la seguente funzione simmetrica: 9

105 f Circuiti combinatori Capitolo 5 ( A, B,C, D,E) = S ( A,B,C,D, E) Le tecniche di progetto tradizionali conducono, nella migliore delle ipotesi, ad un circuito che impiega gates. La funzione data puo' tuttavia essere anche scritta come : S 5 6 ( A,B,C,D,E) S ( A,B,C,D,E ).S ( A,B,C,D,E) 5 = e la relativa realizzazione ottenuta con i sommatori e' riportata in fig..6..,,,5 Semisommatore binario s 5 S, c c Semisommatore binario c 5 S _ A Sommatore binario s Sommatore binario s 5 S,,5 B C D E figura.6. 9

106 Cenni sulle macchine sequenziali Capitolo 4 CAPIOLO IV CENNI SULLE MACCHINE SEQUENZIALI 4.) La macchina sequenziale. Una macchina sequenziale o macchina a stati finiti M e' un automatismo ideale a n ingressi e m uscite definito da: ) Un insieme finito Q = q, q,..., q s di stati interni. ) Un insieme finito I = i, i,..., i e di valori degli ingressi x, x,...,x n. ) Un insieme finito W = w, w,..., w k di valori delle uscite z, z,..., z m. 4) Un insieme di regole detto mappa di transizione τ che specifica lo stato q' raggiunto dalla macchina a partire dallo stato q per effetto dell'ingresso i. 5) Un insieme di regole detto mappa delle uscite U che specifica il valore w' assunto dalle uscite z,...,z m per effetto dell'ingresso i applicato allo stato q. La macchina sequenziale e' pertanto definita dai cinque insiemi citati. M = ( Q, I, W, τ, U) Si dicono complete, o completamente specificate, le macchine che a partire da ogni stato ammettono qualsiasi valore di ingresso, specificando per ognuno di essi i valori q' e w'; incomplete in caso contrario. Si dice sequenza degli ingressi, delle uscite o degli stati qualsiasi successione ordinata di elementi di I,W o Q. Una macchina sequenziale viene di solito rappresentata con un grafo, detto diagramma degli stati, che puo' essere assegnato in due forme diverse, dette rispettivamente modello di Moore o modello di Mealy. Nel primo le uscite della macchina dipendono unicamente dallo stato. Ogni stato q e' rappresentato da un nodo del grafo; i nodi sono a loro volta collegati da segmenti orientati secondo quanto stabilito dalla mappa di transizione. In fig. 4.. e' riportato il diagramma secondo il modello di Moore di una macchina incompleta a tre stati. i i q / q / i i i q / figura 4.. Nel modello di Mealy le uscite dipendono invece sia dagli stati che dagli ingressi; i segmenti orientati che uniscono i nodi rappresentativi degli stati realizzano quindi sia la mappa di transizione che la mappa delle uscite. In fig. 4.. e' riportato il diagramma degli stati secondo il modello di Mealy della stessa macchina di fig

107 Cenni sulle macchine sequenziali Capitolo 4 i / i / q q i / i / q i / figura 4.. Una terza rappresentazione molto usata e' la tavola di flusso di Huffman, cioe' una rappresentazione tabellare con tante righe quanti sono gli stati e tante colonne quanti sono gli ingressi. La generica casella, di coordinate q e i contiene lo stato q' e l'uscita w' ottenuta applicando l'ingresso i allo stato q. In fig. 4.. e' riportata la tavola di flusso della macchina di fig. 4.. e 4... ingresso Stato i i q q q q q q / / / q q / / - / - figura 4.. Le due rappresentazioni di Moore e Mealy sono perfettamente equivalenti. Per passare dal diagramma degli stati secondo Moore a quello secondo Mealy e' sufficiente eliminare l'uscita da ogni nodo riportandola sui segmenti orientati entranti nel nodo stesso. Un esempio e' illustrato in fig i i q q / / q i / q i / i i i q / q /- 4 i i i / q 4 i / - i / q i / - i / - figura 4..4 Non altrettanto semplice e' il passaggio dal diagramma secondo Mealy a quello secondo Moore essendo in quest'ultimo l'uscita legata allo stato. E' infatti necessario costruire un grafo con tanti nodi quanti sono gli stati raggiunti con diverso valore dell'uscita dai segmenti orientati, realizzandolo in modo che conservi le relazioni τ e U del grafo originario. 94

108 Cenni sulle macchine sequenziali Capitolo 4 Si abbia ad esempio la macchina sequenziale rappresentata con il modello di Mealy di fig Mentre lo stato q viene raggiunto da due segmenti orientati, ciascuno con uscita pari a, lo stato q 4 e' raggiunto da due segmenti orientati ciascuno relativo a un diverso valore dell'uscita. Esso va quindi sdoppiato, nella rappresentazione secondo Moore,in due stati diversi q 4 e q 4 come illustrato in fig Stato i i q q q q 4 q / 4 q / q4 / q / q / - - q / figura 4..5 E' immediato verificare che la stessa sequenza di ingressi applicata alle due macchine produce la stessa sequenza di uscite. Stato i i q/ q4 q q / q - q q / 4 - q4 / q q q 4 / q q figura 4..6 E' da notare che i diagrammi di stato possono essere costruiti a partire da una descrizione verbale del comportamento voluto per la macchina. Si voglia ad esempio costruire il diagramma di stato della macchina avente come ingressi i bit di ordine j di due numeri binari A e B da sommare; la macchina possa esistere solamente in due stati q e q che rappresentano il valore assunto dal riporto della somma al rango j-. \ / / / q q / / figura 4..7 / / Il diagramma secondo Mealy si ricava in modo banale ed e' illustrato in fig mentre il diagramma secondo Moore, notevolmente piu' complesso e' riportato in fig

109 Cenni sulle macchine sequenziali Capitolo 4 q / q / q / q / figura 4..8 Quale ulteriore esempio si voglia determinare il diagramma di stato di una macchina M ad un ingresso e tre uscite Z, Z, Z una sola delle quali ha valore. Se Z j e' l'uscita a, al variare dell'ingresso da a Z j si annulla, mentre passa a Z j+. Si intuisce immediatamente che l'uscita dipende unicamente dallo stato; e' semplice quindi ricavare il diagramma secondo il modello di Moore, come illustrato in fig (a), mentre in fig (b) e' riportato il diagramma degli stati della stessa macchina secondo Mealy. q / q / q / (a) / / q q / / / q / (b) figura

110 Cenni sulle macchine sequenziali Capitolo 4 4.) Alcune definizioni relative alle macchine sequenziali. ) Uno stato q j di una macchina M si dice stabile se ogni ingresso che porta a q j lascia la macchina in q j. In fig. 4.. (a) e' illustrato un esempio di stato stabile. ) Uno stato q j di una macchina M si dice instabile se esiste almeno un ingresso i che porta a q j e successivamente fa evolvere la macchina verso uno stato q k diverso da q j. Un esempio e' riportato in fig. 4.. (b) i i i q j i i q j i i i i i (a) figura 4.. (b) ) Una macchina sequenziale e' detta asincrona se ogni suo stato e' stabile, sincrona se esiste almeno uno stato instabile. Ne deriva che una macchina asincrona puo' cambiare di stato solo in conseguenza di una variazione degli ingressi; in definitiva una sequenza di ingressi i j, i j, i k, i k, i k, i m, i m ha lo stesso effetto della sequenza i j, i k, i m e produce la stessa sequenza d'uscita. 4) Una sequenza di ingresso i, i,..., i p si dice applicabile alla macchina M nello stato q, se per ogni i j su q j ( < j < p-) esiste lo stato q j+ e se e' definita l'uscita finale w(q p,i p ). 5) Una macchina sequenziale M' si dice equivalente a una macchina sequenziale M se tutte le sequenze di ingresso σ i applicabili ad uno stato q di M sono applicabili ad uno stato q' di M' e producono la stessa uscita finale w' = w, qualsiasi sia σ i. In altre parole ogni sequenza di ingresso produce in M' una sequenza di uscite coincidente con la σ w di M almeno in tutti i valori specificati di quest'ultima.si noti che, secondo quanto appena definito, l'equivalenza tra due macchine sequenziali non gode della proprieta' di simmetria. Infatti, se una macchina M' a partire dallo stato generico q' sotto la sequenza i,..., i n produce le uscite w, w, -,..., w n e la macchina M sotto la stessa sequenza produce a partire da q la sequenza w, w, w,..., w n allora la macchina M e' equivalente a M', mentre non e' vero il contrario. / / / / / / ' / ' / figura 4.. In fig. 4.. e' riportata una macchina M' equivalente a una macchina M. Infatti in M' le sequenze di uscita ottenibili a partire dagli stati ' e ' sono uguali a quelle ottenibili applicando le stesse sequenze di ingresso alla coppia di stati - e di M rispettivamente. 97

111 Cenni sulle macchine sequenziali Capitolo 4 6) Si dice macchina minima equivalente a una macchina M quella tra le macchine M' con il minimo numero di stati. Il procedimento di ricerca della macchina minima prende il nome di minimizzazione degli stati di M. 4.) Minimizzazione degli stati di una macchina sequenziale. E' bene notare che una macchina sequenziale e' caratterizzata non tanto dalla forma del suo diagramma di stato o dal numero degli stati, quanto dalla corrispondenza tra l'insieme delle sequenze di ingresso e l'insieme delle sequenze di uscita. Si supponga ora che esistano due stati q j e q k tali che: ) Qualsiasi sequenza di ingresso σ i = i, i,..., i p applicabile a q j sia anche applicabile a q k. ) L'uscita finale w(q pk,i p ) sia sempre uguale a w(q pj,i p ), qualunque sia σ i, avendo indicato con q pj lo stato finale raggiunto a partire da q j per effetto di σ i. Se le condizioni enunciate sono realizzate, allora la macchina M, una volta giunta nello stato q j, generera' per ogni sequenza di ingresso una sequenza di uscita i cui elementi, se specificati, coincidono con quelli generati da σ i a partire da q k. Si dice allora che l'evoluzione di M a partire da q k e' non in contrasto con l'evoluzione a partire da q j. Si tenga ora presente che per le macchine complete ogni sequenza e' applicabile e genera sequenze d'uscita completamente specificate. Per queste macchine quindi, se le condizioni e sussistono per q k in relazione a q j, esse devono sussistere anche per q j nei confronti di q k. Dal punto di vista delle uscite percio' l' evoluzione di M a partire da q j e q k sono indistinguibili e gli stati q j e q k si dicono equivalenti. (q j = q k ) E' possibile allora considerare q j e q k un unico stato q e, fusione dei due stati originali, se si fa in modo che tutti gli ingressi che portavano M in q j e/o q k la portino ora nel nuovo stato q e. In pratica cio' si puo' fare cancellando nella tavola di flusso la riga q k e sostituendo ovunque q j a q k. Il discorso vale ovviamente per qualunque numero di stati. Si puo' dimostrare che il procedimento di fusione degli stati e' univoco e porta ad una partizione degli stati stessi in classi di stati equivalenti. Per le macchine incomplete l'esistenza di condizioni non specificate in qualche sequenza di uscita fa si' che le condizioni e possano essere valide per q j nei confronti di q k, ma non viceversa. Possono infatti esistere sequenze di ingresso applicabili a q k ma non a q j. Si parla allora di stati compatibili (q j σ q k ) e non di stati equivalenti. uttavia, anche se l'evoluzione di M a partire da q j e' diversa da quella che parte da q k, tali stati possono ancora essere fusi allo stesso modo illustrato in precedenza, assegnando alle uscite non specificate della σ w (q j ) i valori specificati della σ w (q k ). Si noti infine che se per una macchina q j = q k e q j = q e allora q k = q e e i tre stati q j, q k, q e possono comunque essere fusi in un unico stato. 98

112 Cenni sulle macchine sequenziali Capitolo 4 Se viceversa q j σ q k e q j σ q e allora non e' detto che sia: q k σ q e Se q k non e' compatibile con q e i tre stati non possono essere fusi in un unico stato, ma q j va fuso con q k e/o q e. La minimizzazione delle macchine incomplete non porta quindi ad un'unica soluzione, ma da' di solito la possibilita' di scelta tra un certo numero di risultati diversi. 4.4) Minimizzazione degli stati con il metodo di Ginsburg. Il procedimento di minimizzazione degli stati proposto da Ginsburg e' uno dei piu' semplici tra i tanti proposti allo scopo e si applica alla tavola di flusso della macchina da minimizzare. E' un procedimento esaustivo e fornisce tutte e sole le coppie di stati compatibili (o eventualmente equivalenti) della macchina M. Prima di applicare il metodo e' comunque conveniente eliminare dalla tavola di flusso gli stati doppi. Sono cosi' definiti quegli stati che hanno ugual valore di prossimo stato e di uscita in corrispondenza a ciascun ingresso. Se esiste quindi uno stato q' doppio di q, esso puo' venir eliminato dalla tavola di flusso cancellando la riga q' e sostituendo ovunque q' con q. Un esempio di eliminazione di uno stato doppio e' riportato in fig stato i i stato i i / / / / / 4/ / / / / / / 4 / / figura 4.4. Una volta che gli stati doppi siano stati eliminati inizia la vera e propria ricerca degli stati compatibili (o equivalenti), che vengono individuati a coppie per esclusione di quelle formate da stati non compatibili. Si inizia infatti escludendo le coppie q m,q p che hanno uscite diverse per almeno un ingresso i. Infatti le coppie di stati equivalenti, se esistono, saranno un sottoinsieme delle coppie q h, q m per cui si ha: w(q h,i) = w(q m,i) qualunque sia i. Le coppie di stati per le quali vale la relazione appena scritta vengono dette compatibili rispetto all'uscita (q h α q m ). Individuate tali coppie si costruisce una tabella con tante righe quante sono le coppie compatibili rispetto all'uscita e tante colonne quanti sono gli ingressi. In ogni casella vengono 99

113 Cenni sulle macchine sequenziali Capitolo 4 riportate le coppie di stati verso cui evolve M per effetto del rispettivo ingresso a partire dalla coppia di stati che identifica la riga. Si esamina successivamente tale tabella. Se in una casella di coordinate generiche q j, q k, i si riscontra la presenza di una coppia di stati non compatibile rispetto all'uscita, allora la coppia q j, q k non e' formata da stati equivalenti poiche' per lo stesso ingresso i essi evolvono verso stati con uscita diversa. la riga q j, q k va allora cancellata dalla tabella assieme a tutte le coppie q l, q m che evolvono verso q j, q k. Si continua in tal modo finche' non e' piu' possibile cancellare alcuna coppia. A questo punto le coppie che rimangono sono formate da stati compatibili (equivalenti). Infatti ognuna di tali coppie, evolvendo verso coppie di stati a loro volta compatibili rispetto all'uscita, realizza sequenze di uscita compatibili per qualsiasi sequenza di ingressi applicata. Quale ultimo passo si cerca di mettere in evidenza relazioni di mutua compatibilita' tra le coppie, formando gruppi di n.(n-)/ coppie da un insieme di n stati, con n massimo, in modo che in ciascuno di tali gruppi ogni stato sia legato in coppia con i rimanenti n-. Cio' fatto si possono distribuire gli stati di M in s sottoinsiemi S, S,...,S s con s minimo, in modo che ) Ogni S i contenga solo stati compatibili. ) Ogni stato q j di M sia contenuto in almeno un sottoinsieme S i. Se M e' una macchina completa q j comparira' in uno solo degli S i. ) Per ogni ingresso i e ogni sottoinsieme S j esista un S k tale che l'ingresso i faccia evolvere tutti gli stati di S j in stati di S k. I sottoinsiemi S definiscono una partizione sull'insieme degli stati di M e ciascuno di essi puo' essere sostituito da un unico stato, giungendo in tal modo alla macchina minima M'. Nel seguito sono riportati alcuni esempi di minimizzazione del numero degli stati. ESEMPIO Sia assegnata la seguente macchina sequenziale: Stato i i i 4/ 4/ 4/ 5/ 4/ / 4/ 5/ 6/ 4 5/ 6/ / 5 6/ 6/ 6/ 6 / 6/ / La macchina e' completa e non esistono stati doppi. Il diagramma di stato di tale macchina e' riportato in fig Le coppie di stati α-compatibili, cioe' compatibili rispetto all'uscita, sono le coppie,5,4,6 e 4,6. La tabella di evoluzione delle coppie e' la seguente:

114 Cenni sulle macchine sequenziali Capitolo 4 Stato i i i,5 4,6 4,6 4,6,4 5,5 4,6,,6 5, 4,6, 4,6 5, 6,6, Nessuna riga della tabella va cancellata in quanto ciascuna coppia per qualsiasi ingresso evolve verso una coppia a sua volta a-compatibile. i / i / i / i / i / i / i / i / i / i / i / i / i / i / i / i / i / i / figura 4.4. utte le coppie della tabella sono quindi coppie di stati equivalenti. Esiste peraltro una relazione di mutua compatibilita' tra le coppie:,4,6 4,6 e quindi i tre stati,4,6 possono essere fusi in un unico stato. Nell'esempio considerato quindi gli stati della macchina M di partenza possono essere distribuiti nei tre sottoinsiemi: S = {,5} S = {,4,6} S = {} Fondendo ora gli stati di ciascun sottoinsieme in un unico stato, si ottiene la macchina minima M', la cui tavola di flusso e': Stati equivalenti Stati di M' i i i,5 ' '/ '/ '/,4,6 ' '/ '/ '/ ' '/ '/ '/

115 Cenni sulle macchine sequenziali Capitolo 4 Il diagramma degli stati di M' e' riportato in fig i / i/ ' ' i / i / i / i / i / i/ i/ ' figura 4.4. ESEMPIO Minimizzare gli stati della macchina completa, la cui tavola di flusso e': Stato i i i i 4 /4 4/ 6/ 6/4 6/ 4/ / 7/4 / 6/ 4/4 8/ 4 6/ 4/ 5/ /4 5 /4 4/ 6/ 6/4 6 / 5/ 6/ / 7 7/ 6/ /4 8/ 8 / 8/ 4/4 6/ Lo stato 5 e' doppio dello stato e pertanto puo' venir eliminato. Le coppie di stati α- compatibili sono:,4,7,8 7,8 La tabella di evoluzione delle coppie di stati e' riportata in fig Coppie di stati i i i i 4,4 6,6 4,4,,7,7,7 6,6 4, 8,8,8, 6,8 4,4 8,6 7,8 7, 6,8,4 8,6 figura 4.4.4

116 Dall'esame di tale tabella si ricava che: Cenni sulle macchine sequenziali Capitolo 4 a) La coppia di stati,8 evolve verso le coppie non α-compatibili, e 6,8 e va pertanto eliminata. b) La coppia 7,8 evolve verso le coppie non α-compatibili 7, e 6,8 e quindi va anch'essa eliminata. Rimangono allora le coppie di stati equivalenti,4 e,7. La partizione eseguibile sull'insieme degli stati della macchina M di partenza e' allora: La macchina equivalente minima M' e' : {} {,4} {,7} {6} {8} Stati di M Stati di M' i i i i 4 ' '/4 '/ 4'/ 4'/4,4 ' 4'/ '/ '/ '/4,7 ' '/ 4'/ '/4 5'/ 6 4' '/ '/ 4'/ '/ 8 5' '/ 5'/ '/4 4'/ ESEMPIO Si minimizzi la seguente macchina incompleta. Stati i i /- / / / / / Non vi e' alcun stato doppio, mentre le coppie α-compatibili sono la, e la,. Si ha: Coppie di stati i i,,,,,, Ambedue le coppie di tabella sono coppie di stati compatibili. L'unico modo per avere una macchina minima M' a due stati e' quello di formare i sottoinsiemi non disgiunti: e la macchina minima e': {,} {,}

117 Cenni sulle macchine sequenziali Capitolo 4 Stati di M Stati di M' i i, ' '/ '/, ' '/ '/ Si noti che, mentre la macchina di partenza e' una macchina incompleta, la macchina minima M' risulta completamente specificata. ESEMPIO 4 Si voglia minimizzare la seguente macchina sequenziale: Stati i i i i 4 -/- 5/ 4/ / /- / 4/- / 6/ 5/ / / 4 -/- 6/ -/- 6/ 5 5/ / -/- / 6 5/ -/- 4/ -/- Non vi e' alcun stato doppio, mentre le coppie compatibili rispetto all'uscita si possono individuare in:,4,5,6,,6,6 4,5 4,6 5,6 La tabella di evoluzione delle coppie di stati e' riportata in fig Coppie di stati i i i i 4,4 -,- 5,6 4,-,6,5 -,5 5, 4,-,,6 -,5 5,- 4,4,-,,6,5 4,,,6,5,- 4,4,-,6 6,5 5,-,4,- 4,5 -,5 6, -/- 6, 4,6 -,5 6,- -,4 6,- 5,6 5,5,- -,4,- figura La coppia, va eliminata in quanto evolve verso le coppie,5 e,, formate da stati non compatibili rispetto all'uscita. La coppia,6 evolve verso la coppia,5 formata da stati non compatibili e va quindi anch'essa eliminata. 4

118 Cenni sulle macchine sequenziali Capitolo 4 ra le coppie:,4,5,6 4,5 4,6 5,6 puo' essere messa in luce una relazione di mutua compatibilita'. Gli stati,4,5,6 possono pertanto essere fusi in un unico stato. La macchina minima che si ricava e' quindi una macchina a tre stati con la seguente tavola di flusso: Stati di M Stati di M' i i i i 4,4,5,6 ' '/ '/ '/ '/ ' '/- '/ '/- '/,6 ' '/ '/ '/ '/ Si noti che in questo caso la macchina minima che si ricava e' ancora una macchina incompleta. 5

119 I circuiti sequenziali Capitolo 5 CAPIOLO V I CIRCUII SEQUENZIALI 5.) Introduzione ai circuiti sequenziali. I circuiti considerati fino a questo punto sono stati i circuiti combinatori. Si consideri ora il modello generale di un circuito di commutazione, illustrato in fig x x (t) (t) REE DI COMMUAZIONE z (t) z (t) x n (t) z m (t) figura 5.. Si hanno n ingressi x(t) e m uscite z(t), funzioni del tempo; se in ogni istante il valore attuale delle uscite z e' determinato unicamente dal valore degli ingressi si dice che il circuito e' di tipo combinatorio. Esso, come si e' gia' visto nei capitoli precedenti, puo' essere totalmente descritto da un set di equazioni booleane del tipo: z j = F j (x, x,..., x n ) dove la dipendenza dal tempo non compare esplicitamente in quanto si sottointende che i valori presi in considerazione per le n variabili di ingresso si riferiscano allo stesso istante. Quando invece il valore delle uscite non dipende solamente dal valore presente delle variabili di ingresso, ma anche dalla storia passata del circuito, si parla di circuito sequenziale. Il sistema telefonico e' un tipico esempio di sistema sequenziale; si supponga infatti di essere in procinto di comporre l'ultima cifra di un numero telefonico. Questa ultima cifra e' l'ingresso attuale del sistema e l'uscita sara' il segnale che effettuera' il collegamento. Ovviamente l'ingresso attuale non e' il solo fattore che determina il collegamento, ma anche le cifre composte precedentemente sono ugualmente importanti. Un altro esempio di sistema sequenziale e' il calcolatore elettronico; di solito in esso vengono usati in maniera sequenziale diversi sottoinsiemi che possono essere di volta in volta sequenziali o combinatori. 5.) I flip-flop. E' abbastanza evidente che nei sistemi sequenziali, introdotti al paragrafo precedente, le informazioni sulla storia passata del circuito devono venir memorizzate. Si possono avere diversi tipi di dispositivi di memorizzazione, ma uno dei piu' comuni e frequentemente usati e' il flip-flop. In fig. 5.. e' illustrato un flip-flop costruito con due porte NOR ed e' riportato anche il diagramma di temporizzazione per una tipica sequenza operativa. 6

120 I circuiti sequenziali Capitolo 5 S s x C y c y x t 7 t t t t t t t figura 5.. All'istante iniziale ambedue gli ingressi siano, l'uscita Y sia, quella X sia ; poiche' le uscite sono riportate agli ingressi delle porte NOR, la condizione ipotizzata e' una condizione stabile. Infatti il NOR ha come ingressi C= e X= e quindi la sua uscita e' Y=, mentre il NOR avendo ambedue gli ingressi nulli ha come uscita X=. All'istante t l'ingresso S vada a. Gli ingressi del NOR passano percio' da a e dopo un ritardo pari a t - t la sua uscita X passa a. Questo fatto fa cambiare gli ingressi del NOR da a in modo che dopo un ritardo pari a t - t l'uscita Y passa a. Non si ha alcun ulteriore effetto, ne' per la commutazione a degli ingressi del NOR, ne' per il passaggio di S a all'istante t 4. La nuova condizione raggiunta e' stabile. Una sequenza analoga, ma inversa, ha luogo quando l'ingresso C passa a, riportando il circuito nella condizione iniziale. Un flip-flop che operi nel modo descritto prende il nome di flip-flop set-reset, viene indicato con il simbolo RS ed e' rappresentato con il simbolo di fig. 5.. (a). S R Q S R Q Q n n+ - - (a) (b) figura 5.. Gli ingressi S e R corrispondono a quelli S e C di fig. 5.., mentre l'uscita Q corrisponde a Y, quella Q a X. Il funzionamento del circuito e' riassunto in modo completo nella tabella di fig. 5.. (b). S, R e Q n indicano il valore degli ingressi e dell'uscita all'arbitrario istante t n, mentre Q n+ indica il valore assunto dall'uscita nell'istante immediatamente successivo per effetto degli ingressi applicati all'istante t n. 7

121 I circuiti sequenziali Capitolo 5 Le condizioni d.c.c delle ultime due righe indicano che nel normale funzionamento non e' permesso che ambedue gli ingressi diventino allo stesso E' immediato verificare che la tabella di fig. 5.. e' retta dall'equazione: Q + = S Q.R (5..) n + ottenuta sfruttando le condizioni d.c.c. e imponendo il vincolo n S.R = (5..) La ragione per cui i due ingressi non possono essere contemporaneamente e' duplice; in primo luogo perche' essi porterebbero ambedue le uscite a violando la condizione base di funzionamento di un flip-flop secondo la quale le due uscite devono essere sempre complementari; in secondo luogo, se ambedue gli ingressi tornassero a al medesimo istante lo stato in cui il flip-flop si porterebbe non sarebbe prevedibile e al limite potrebbe realizzarsi una condizione di oscillazione. Con il vincolo (5..) il flip-flop RS realizza invece un dispositivo di memorizzazione affidabile, in cui lo stato delle uscite indica quale dei due ingressi si e' trovato per ultimo al livello. E' abbastanza evidente da questa analisi qualitativa del funzionamento del flip-flop RS che un impulso di ingresso deve avere una durata minima se si vuole che la commutazione avvenga con sicurezza; si supponga infatti che S ritorni a zero prima dell'istante t ; ambedue gli ingressi del NOR si troverebbero allora, almeno momentaneamente, a e tenderebbero a far tornare X a. Il verificarsi di tale condizione renderebbe evidentemente incerto il funzionamento del circuito. La minima durata dell'impulso di ingresso e' il primo di tre vincoli sulle temporizzazioni dei circuiti sequenziali contenenti flip-flop, che verranno esaminati nel seguito. Come si vedra' nei capitoli successivi, il progetto di un circuito sequenziale puo' essere notevolmente semplificato se le commutazioni possono avvenire solo periodicamente in istanti equintervallati. Questo tipo di funzionamento puo' venir assicurato se tutti i cambiamenti di stato vengono sincronizzati da opportuni impulsi di orologio (clock). E' bene chiarire che per impulso si intende un segnale che normalmente si mantiene a un livello, usualmente, e va all'altro livello solamente per intervalli di tempo estremamente brevi. In contrapposizione viene chiamato a livelli un segnale che puo' rimanere sia a che a per periodi di tempo indefiniti e comunque molto lunghi se paragonati alla durata di un impulso. La dizione estremamente breve va evidentemente rapportata alla velocita' del circuito, ma normalmente indica una durata dello stesso ordine di grandezza del tempo di ritardo del flipflop. Cio' stabilito, si puo' affermare che: Un circuito sequenziale sincronizzato da un impulso di clock puo' cambiare stato solo in corrispondenza a tale impulso e cambiera' stato non piu' di una volta per ciascun impulso di clock. 8

122 I circuiti sequenziali Capitolo 5 Un circuito che operi nel modo descritto viene detto circuito sincrono o circuito clock mode. In fig. 5.. e' illustrata una tipica forma d'onda di clock, lo schema di un flip-flop RS sincrono e il relativo simbolo. L'unico vincolo necessario per il corretto funzionamento del circuito e' che i segnali S e R non cambino durante l'intera durata dell'impulso di clock. S Clock t t t n n+ n+ R S R Q figura 5.. La tavola di verita' e le equazioni che reggono il funzionamento del flip-flop sono le stesse del flip-flop RS non sincronizzato (detto anche asincrono); in questo caso tuttavia S, R e Q n indicano i valori presenti durante l'impulso di clock, mentre Q n+ si riferisce al valore assunto dall'uscita immediatamente dopo tale impulso. Malgrado che il flip-flop RS sincrono sia assolutamente adatto a qualsiasi realizzazione circuitale, esso e' raramente usato in pratica, essendo stato praticamente soppiantato dal tipo JK. In quest'ultimo il vincolo che ambedue gli ingressi non possano essere allo stesso istante viene a cadere. Il relativo simbolo e la tavola di verita' sono riportati in fig J K Q J K Q Q n n+ figura 5..4 Si noti che il flip-flop JK e' identico a quello RS con J corrispondente a S e K a R eccetto quando ambedue gli ingressi valgono, caso in cui il flip-flop comunque cambia stato. 9

123 L'equazione del flip-flop JK e': I circuiti sequenziali Capitolo 5 Q = K.Q + n+ Il flip-flop JK e' sempre sincronizzato. Un ulteriore tipo di flip-flop e' il flip-flop in cui il trigger (clock) e' il solo segnale di ingresso. Ogni volta che un impulso si presenta all'ingresso il flip-flop cambia stato, in modo che l'equazione che lo regge e' semplicemente: n+ n Q = Q In realta, in termini generali, il tipo ha due ingressi separati; l ingresso e l ingresso di clock e la definizione del suo funzionamento dovrebbe essere: all arrivo delll impulso di clock il flip-flop commuta solo se l ingresso vale. Da questo punto di vista e facile verificare che l equazione di funzionamento e Qn+ = Qn. n + Qn.n = Qn n. uttavia molto spesso l ingresso di clock ed quello sono connessi assieme e l equazione di funzionamento si riduce di conseguenza a quella citata piu sopra. Si noti che un flip-flop JK diviene un flip-flop se ambedue gli ingressi J e K vengono mantenuti costantemente assieme e utilizzati come ingresso. Infine un quarto tipo di flip-flop e' quello di tipo D. In esso l'uscita dopo un impulso di clock e' uguale al valore presente all'ingresso D all'istante di clock. L'equazione che lo regge e': Q = D n+ In fig (a) e (b) sono riportati i simboli del flip-flop e D. In fig. 5..5(c) e' invece illustrato in che modo un flip-flop JK possa funzionare come un tipo D. n n J. Q n Q D Q J K Q (a) (b) (c) figura ) Motivi che consigliano la scelta dei circuiti sequenziali. Nei paragrafi precedenti sono stati presi in esame alcuni sistemi sequenziali, ed e' abbastanza evidente che parecchi sistemi fisici si comportano in tal modo; tra l'altro gli stessi flip-flop appena esaminati sono chiaramente sistemi sequenziali.

124 I circuiti sequenziali Capitolo 5 Ora quando un progettista si trova a dover affrontare un problema di natura logica la prima domanda che gli si presenta con riferimento all'implementazione e' se usare un circuito di tipo combinatorio o di tipo sequenziale. A titolo di esempio si consideri il progetto di una macchina per il gioco di quello che comunemente viene chiamato "filetto". ale gioco consiste in nove riquadri che i giocatori riempiono alternativamente con un loro simbolo fino a realizzare una sequenza di tre simboli dello stesso tipo allineati. Ogni riquadro quindi e' vuoto oppure contiene l'uno o l'altro simbolo. Le diverse configurazioni che la tabella puo' assumere sono quindi 9 = 668. Il gioco debba svolgersi tra uomo e macchina; la macchina dovra' evidentemente consistere in un sistema logico in grado di decidere quale mossa debba essere fatta in risposta alla mossa del giocatore umano. E' evidente che la progressione del gioco e' sequenziale, ma non e' affatto necessario che il giocatore macchina sia un dispositivo sequenziale. Essa infatti puo' essere un dispositivo combinatorio che riceve come ingressi la situazione della tabella a un dato istante e decide la mossa da fare solamente sulla base di tale informazione. Le specifiche di tale circuito saranno pertanto: Data qualsiasi tra le 668 possibili combinazioni di ingresso, scegliere l'uscita piu' opportuna tra le 9 possibili. Per soddisfare tali specifiche il circuito dovra' evidentemente essere di tipo combinatorio e di grosse dimensioni. In alternativa si puo' pensare di far si' che il giocatore macchina alteri la sua struttura man mano che il gioco prosegue, tenendo conto del fatto che ad un particolare istante del gioco non si possono piu' presentare tutte le combinazioni. Si supponga infatti che il giocatore uomo muova per primo; poiche' egli ha solamente nove possibili mosse la macchina puo' partire da una configurazione progettata per rispondere a ciascuna di esse nel modo piu' opportuno. Dopo la mossa della macchina all'uomo sono disponibili solo sette risposte e la configurazione della macchina puo' essere modificata in modo da tenerne conto. Una sequenza di tale tipo si ripete poi ad ogni mossa successiva. L'approccio descritto, di natura evidentemente sequenziale, consiste in definitiva nello spezzare un unico grosso problema in un certo numero di problemi piu' piccoli. Da un punto di vista circuitale cio' significa costruire un certo numero di circuiti di ridotte dimensioni, ciascuno capace di gestire un numero limitato di situazioni a ciascun passo del gioco, anziche' costruire un unico grosso circuito che possa interpretare tutte le possibili situazioni che si possono presentare. La macchina usera' in sequenza tali circuiti via via che il gioco progredisce. E' evidente che nell'esempio preso in considerazione il problema e' di per se stesso di natura squisitamente sequenziale. In casi simili un approccio di tipo sequenziale e' di solito piu' economico che non un approccio puramente combinatorio. Quale altro esempio si consideri un dispositivo che esegua il test di parita' su parole di 8 bit. Se gli 8 bit sono disponibili tutti simultaneamente il problema puo' venir risolto con un circuito combinatorio a 6 livelli la cui funzione di commutazione sia:

125 Z = I circuiti sequenziali Capitolo 5 [( x x ) ( x x )] [ ( x x ) ( x )] x8 che in una realizzazione di tipo NAND richiede gates. Se pero' gli 8 bit fanno parte di una parola da trasmettere a grande distanza, l'usare 8 linee, una per bit, e' notevolmente costoso. Si preferisce usare una sola linea su cui inviare in successione gli 8 bit e eventualmente una seconda linea su cui vengono inviati opportuni impulsi di sincronizzazione. Il circuito di controllo di parita' potrebbe allora essere realizzato memorizzando i bit finche' tutti e 8 non fossero presenti. Questo sarebbe tuttavia un modo di affrontare il problema poco efficiente, richiedendo oltre ai gates gia' visti anche 8 flip-flop. Ricordando pero' che l'or esclusivo e' associativo, si puo' scrivere: Z = [([([([ x x ] x ) x ] x ) x ] x ) ] x8 Si possono cioe' testare per la parita' i primi due bit, poi con il risultato il terzo e cosi' via. Queste considerazioni suggeriscono una realizzazione sequenziale. I primi due bit vengono esaminati da una rete che realizza l'or esclusivo e il risultato memorizzato finche' non arriva il bit successivo. A tale istante il risultato precedente viene confrontato con il bit in arrivo sullo stesso OR esclusivo, il risultato viene memorizzato e cosi' via. In fig. 5.. e' riportato un semplice circuito che realizza la sequenza descritta. Il flip-flop deve inizialmente essere posizionato a zero in modo che all'arrivo del primo bit x si abbia: x Z = x = x Dopo l'arrivo dell'ottavo bit l'uscita Z dara' il desiderato test di parita'. Al limite lo stesso circuito permette di verificare la parita' di parole di qualsivoglia lunghezza. I due esempi presi in considerazione illustrano un tipo di situazione in cui l'approccio sequenziale e' nettamente preferibile. In ambedue i casi, e soprattutto nel secondo, risulta evidente che il circuito sequenziale e' piu' semplice e di conseguenza piu' economico che non il corrispondente circuito combinatorio. x S R Q Z Clock figura 5..

126 I circuiti sequenziali Capitolo 5 5.4) Considerazioni sul grado di serializzazione, costo e velocita'. Situazioni quali quelle descritte al paragrafo precedente, in cui le informazioni da elaborare giungono in maniera sequenziale, conducono spontaneamente alla scelta di circuiti sequenziali. Poiche' essi di solito usano le stesse parti circuitali su porzioni successive di informazione e' possibile in genere ottenere una notevole economia per quanto riguarda la realizzazione circuitale. Se invece tutte le informazioni necessarie sono disponibili simultaneamente, e' abbastanza naturale che anche la loro elaborazione sia condotta in parallelo. Anche in questo caso d'altra parte, se la natura del problema e' tale da poterlo spezzare in parti il piu' possibili simili tra loro, puo' essere vantaggioso serializzare deliberatamente il problema per ottenere vantaggi di ordine economico. Il grado di serializzazione dipendera' ovviamente da un compromesso tra costo e velocita' operativa. Vi e' in effetti un gran numero di fattori complessi che determinano il grado di serializzazione piu' opportuno, alcuni dei quali possono essere illustrati dall'esempio che segue. Si supponga di dover leggere una parola di memoria in un registro da bit e di dover eseguire su di essa il controllo di parita'. Poiche' tutti i bit sono presenti al medesimo istante, sembrerebbe logico usare un circuito combinatorio. uttavia il piu' economico circuito realizzabile richiederebbe una struttura a livelli con 9 gates. Il circuito di fig. 5.. puo' invece eseguire il test di parita' su un qualsiasi numero di bit, e quindi anche su, purche' essi siano presentati in forma sequenziale. Un circuito in grado di soddisfare i requisiti richiesti e' quello di fig Gli impulsi di orologio pilotano un contatore binario da 5 bit, la cui uscita viene decodificata con un selettore. Il decodificatore a sua volta produce un impulso, uno per ciascun periodo di clock, che mediante delle porte AND presenta uno alla volta i bit all'ingresso del circuito di verifica della parita'. registro a bit b b b i Clock Contatore a 5 bit decoder i Verifica di parita' figura 5.4. Usando il circuito piu' semplice possibile per contatore e decodificatore il circuito descritto richiede 6 flip-flop e 7 gates. La realizzazione combinatoria e quella sequenziale sono quindi di costo comparabile. uttavia in un calcolatore il contatore e il decodificatore possono essere usati per altri scopi e quindi il loro costo grava solo in parte sul circuito per il test di parita'. Ne discende l'ovvio principio che la valutazione di qualsiasi circuito va fatta in riferimento all'intero sistema. Una valutazione dei costi deve evidentemente tener conto di ogni

127 I circuiti sequenziali Capitolo 5 possibile utilizzo del circuito in rapporto al sistema; allo stesso modo ogni considerazione sulla velocita' operativa deve essere messa in relazione con la velocita' del sistema nel suo complesso. Il circuito combinatorio dell'esempio preso in considerazione e' approssimativamente volte piu' veloce del corrispondente circuito sequenziale, ma poiche' in generale il controllo di parita' viene eseguito contemporaneamente a molte altre operazioni, la velocita' complessiva non viene di molto aumentata anche se si sceglie la soluzione totalmente combinatoria. Si consideri allora in generale un dispositivo o un sistema che fornisca n unita' di informazione allo stesso istante. Queste unita' siano bit, parole, caratteri o qualsiasi altro raggruppamento opportuno. In un sistema completamente parallelo vi e' un circuito (o sottosistema) per ciascuna delle n unita' di informazione e tutte le n unita' vengono applicate agli n circuiti simultaneamente. Si noti che causa delle differenze intrinseche dei vari circuiti o della dipendenza logica uno dall'altro, questi non terminano le loro operazioni contemporaneamente, sebbene le inizino nel medesimo istante. In un sistema completamente seriale le n unita' di informazione vengono applicate sempre allo stesso circuito, ma in tempi successivi. Supponendo che tutti gli elementi circuitali siano della stessa velocita' e dello stesso costo, il sistema completamente parallelo rappresenta la soluzione piu' veloce, ma anche la piu' costosa, mentre quello completamente seriale e' la soluzione piu' economica, ma anche la piu' lenta. Generalmente e' possibile scegliere una soluzione che si piazzi tra questi due estremi. E' possibile, ad esempio, dividere le n unita' di informazione in due gruppi uguali, elaborare il primo gruppo in un primo intervallo di tempo e solo successivamente il secondo gruppo. Si otterra' in tal modo una realizzazione generalmente meno costosa che non quella parallela, ma anche una realizzazione operante a meta' velocita'. Diagrammando il costo in funzione della velocita' si otterra' una curva del tipo di quella illustrata in fig velocita' parallelo seriale costo figura 5.4. A partire da una realizzazione totalmente parallela si avra' una continua diminuzione di costo e di velocita' via via che si procede verso quella totalmente seriale. Molto spesso tuttavia 4

128 I circuiti sequenziali Capitolo 5 la curva raggiunge il suo minimo prima di essere nella condizione di serializzazione totale, in quanto il costo della serializzazione stessa annulla in pratica i benefici ottenuti con la diminuzione del numero di circuiti necessari. 5.5) Registri a scorrimento e contatori. In fig. 5.. e' stato illustrato un circuito sequenziale che impiega un unico flip-flop. Nelle applicazioni pratiche avviene spesso che vi sia la necessita' di memorizzare piu' di un bit di informazione; in generale la quantita' di informazione che un circuito puo' memorizzare e' direttamente legata al numero di flip-flop presenti nel circuito stesso. In particolare i registri a scorrimento e i contatori presentano molto chiaramente una corrispondenza uno a uno tra capacita' di memorizzazione dell'informazione e il numero di flip-flop. Q Y Q Y Q Y Q Y 4 Clock figura 5.5. Sebbene qualsiasi tipo di flip-flop possa essere usato per realizzare un contatore, in pratica sono usati solo contatori costruiti con flip-flop JK o D. In fig e' riportato lo schema di un contatore modulo 6 mentre in fig si ha il relativo diagramma di temporizzazione Clock Y Y Y Y4 figura 5.5. Con la dizione "modulo 6" si intende che il contatore puo' contare da a 5, mentre con l'impulso successivo di clock ritorna a. Il funzionamento del circuito e' intuitivo. Si noti comunque che il contatore, oltre ad effettuare la funzione di conteggio, memorizza il risultato tra due successivi impulsi di clock. 5

129 I circuiti sequenziali Capitolo 5 In generale qualsiasi insieme di flip-flop usato per memorizzare un dato numero di bit di informazione viene chiamato "registro". Un contatore quindi puo' essere chiamato anche registro di conteggio. I registri vengono spesso utilizzati per memorizzare e ricostruire in forma parallela messaggi in arrivo da una sorgente seriale. In fig e' illustrato un registro a scorrimento, di funzionamento intuitivo. X D Q Y D Q Y D Q Y D Q Y 4 Clock figura ) Un modello generale per i circuiti sequenziali. Da quanto visto, anche attraverso gli esempi, nei paragrafi precedenti, un circuito sequenziale funziona correttamente se e' in grado di conservare in qualche organo di memoria le informazioni relative agli ingressi passati. Si definisca pertanto stato di un circuito sequenziale all'istante t la configurazione della sua memoria in quell'istante. Due identiche configurazioni di ingresso potranno dare uscite diverse se coesisteranno con due diversi stati del circuito. Le uscite sono cioe' funzione sia dell'ingresso che dello stato. Si puo' allora realizzare un modello generale di circuito sequenziale secondo quanto illustrato in fig Le informazioni sugli eventi passati sono memorizzate nelle r variabili y, che prendono il nome di variabili di stato o variabili interne.ciascuna delle r combinazioni delle variabili y definisce uno stato della memoria e in generale ciascun stato corrisponde ad una particolare combinazione di eventi passati. La sezione logica combinatoria riceve quali ingressi le r variabili di stato y e gli n ingressi del circuito x. Essa genera m uscite z e p variabili di eccitazione y'. Le variabili di eccitazione sono spesso in numero uguale alle variabili di stato, ma in generale il loro numero dipende dal tipo di memoria usato. x x z z x n y Rete combinatoria y' z m y r y' p Memoria figura 5.6. La rete combinatoria puo' evidentemente essere definita dalle equazioni booleane z = f ( x,x,...,x, y, y,..., y ) i,,...,m i i n r = (5.6.) 6

130 I circuiti sequenziali Capitolo 5 y' = g ( x, x,..., x, y, y,..., y ) i=,,...,p i i n r Le prime vengono chiamate equazioni di uscita, mentre le seconde sono le equazioni di stato o equazioni interne. Esse sono evidentemente indipendenti dal tempo, cioe' valgono per tutto il tempo in cui gli ingressi e le uscite si mantengono stabili. Non e' possibile specificare le equazioni che legano le y' alle y in quanto dipendono dal tipo di memoria usato, che puo' essere qualsiasi, come ad esempio una matrice di elementi di memoria a ferrite, dei flip-flop o ancora semplicemente un insieme di anelli di reazione in cui siano inseriti degli elementi di ritardo. In quest'ultimo caso evidentemente p=r e vale: ( t+ ) y' ( t) y = con pari al tempo di ritardo. Comunque sia, la combinazione delle variabili y che si avra' al tempo t+ per effetto delle y' presenti all'ingresso della memoria all'istante t, prende il nome di stato futuro. 5.7) Funzionamento sincrono e a impulsi del modello fondamentale. Un modello per il funzionamento sincrono di un circuito sequenziale si ottiene quando si assume che la memoria del modello fondamentale permetta il trasferimento dell'informazione dall'ingresso all'uscita solamente in corrispondenza ad un segnale di sincronizzazione. Un circuito di tal tipo viene detto "sincrono" o clock mode. In pratica i circuiti sequenziali sincroni si realizzano utilizzando quali elementi di memoria i flip-flop, di qualunque tipo essi siano, purche' sincronizzati da un clock. Al limite, per quanto riguarda il modello fondamentale di circuito sequenziale sincrono, la realizzazione della rete di memoria non ha importanza. E' sufficiente che lo stato e gli ingressi possano variare solo in istanti equintervallati. utti i segnali e le uscite della rete combinatoria sono segnali a livelli, segnali cioe' che possono assumere uno dei due livelli logici per periodi di tempo arbitrari. Le uscite e le variabili di eccitazione, essendo la rete combinatoria indipendente dal tempo, possono variare in qualsiasi istante in risposta ad una variazione dell'ingresso. Le variabili di stato tuttavia possono variare solamente quando la memoria e' abilitata dal segnale di sincronizzazione. E' evidente che il segnale di sincronizzazione non contiene informazione su come debba variare lo stato, ma semplicemente temporizza il cambiamento. utta l'informazione e' contenuta nelle variabili di eccitazione. Gli istanti di clock vengono indicati con t n (n =,,,...). All'istante generico t n le variabili di eccitazione devono essere stabili e dipendono dai valori correnti delle variabili x i e y i. L'impulso di clock, che arriva all'istante t n, causa la transizione delle variabili di stato da y n a y n+ = f (y' n ) ponendo il circuito in un nuovo stato. Le variabili di uscita e di eccitazione a loro volta commutano, sia per la variazione dello stato che per un'eventuale variazione di ingresso e devono raggiungere dei nuovi livelli stabili prima che pervenga il prossimo impulso di clock. Per chiarire quanto illustrato si esamini il circuito di fig. 5.7., in cui gli elementi di memoria siano sincronizzati da impulsi distanti tra di loro. 7

131 I circuiti sequenziali Capitolo 5 X y' M y y' y M z figura 5.7. Le equazioni di uscita e di stato sono rispettivamente z = y y' y' = y.y = x.y + x.y (5.7.) Ponendo y ( t ) y ( t ) x= si ha: = si ricava dalle (5.7.) che in corrispondenza a o = ( t ) = y' ( t ) y' = che sono i valori che le variabili di stato assumono all'istante t = t +. Se in t x passa da a si ha: ( t ) = y' ( t) = y' Ragionando in maniera analoga si ottengono i risultati raccolti nella tabella, dalla quale e' immediato ricavare l'evoluzione del circuito in corrispondenza di una determinata sequenza di ingresso applicata ad uno stato iniziale prefissato. ABELLA ingresso stato a t stato a t + Uscita Gli stessi risultati possono essere chiaramente visualizzati nel diagramma di stato di fig. 5.7., con tanti nodi quanti sono i possibili stati del circuito. 8

132 I circuiti sequenziali Capitolo 5 / / / / / / / / figura 5.7. E' evidente che il diagramma di stato realizzato e' formalmente identico a quello usato per rappresentare le macchine sequenziali nel modello di Mealy. Estremamente simile al funzionamento dei circuiti sequenziali sincroni e' quello dei circuiti sequenziali ad impulsi. Essi si distinguono dai precedenti per l'assenza di una linea di sincronizzazione separata, ma somigliano ad essi per il fatto che ciascun cambiamento di stato puo' avvenire solamente in corrispondenza ad un impulso di ingresso. Gli impulsi devono essere di sufficiente durata e il circuito deve avere il tempo di stabilizzarsi prima che un secondo impulso possa presentarsi all'ingresso. 5.8) Problemi di temporizzazione e flip-flop master-slave. Al paragrafo 5. e' stato fatto notare a proposito dei flip- flop che il clock deve avere una durata minima per assicurare un corretto funzionamento. Questa tuttavia non e' la sola specifica da rispettare. Una prima ovvia considerazione, che si applica sia ai circuiti logici combinatori che a quelli sequenziali, e' che l'intervallo tra due successive variazioni della stessa variabile deve essere non inferiore al tempo di ritardo del circuito logico. Se, ad esempio, il tempo di ritardo di una porta logica fosse di nsec., essa non potrebbe certamente rispondere a variazioni del segnale che distino 5 nsec. Esiste inoltre tutta una serie di altri problemi che si presenta anche nei flip-flop sincroni. Con riferimento alla fig. 5.. ed ai relativi diagrammi di temporizzazione, si supponga che il segnale S ritorni a prima dell'istante t, in cui commuta l'uscita Y. E' evidente che il flip-flop in questo caso non e' correttamente pilotato. Cio' porta a concludere che l'impulso di comando deve avere una durata minima, di solito specificata dal costruttore del dispositivo, determinata principalmente anche se non unicamente dal ritardo dei gates. Per lo stesso motivo due impulsi non possono succedersi troppo rapidamente imponendo in tal modo un limite superiore alla massima frequenza di clock. A causa di fattori, troppo complessi e di scarso interesse per venir esaminati in questa sede, il minimo intervallo tra due impulsi successivi e' generalmente molto maggiore che non la durata minima del singolo impulso. I vincoli sulla durata dell'impulso e sulla massima frequenza di ripetizione del clock si applicano a tutti i flip-flop senza alcun riferimento a come essi vengano usati. Quando pero' il flip-flop viene usato in un circuito sincrono sorgono altri problemi. Si e' gia' detto che l'arrivo di un impulso di clock fa commutare lo stato in accordo con i valori delle variabili di eccitazione. Si supponga ora che la commutazione delle uscite dei flip-flop 9

133 I circuiti sequenziali Capitolo 5 della memoria si propaghi attraverso la rete combinatoria in modo da causare una nuova variazione delle variabili di eccitazione mentre l'impulso di clock e' ancora presente. I flipflop possono allora commutare nuovamente, portando il circuito in uno stato diverso e la cosa puo' continuare finche' dura l'impulso di clock. Un tal modo di funzionare sarebbe in contrasto con l'ipotesi fatta inizialmente per i circuiti sincroni, cioe' che ciascun impulso di clock dia luogo ad un'unica variazione dello stato. Problema del tutto analogo si ha nei circuiti ad impulsi, quando l'impulso di ingresso e' eccessivamente lungo. A titolo di esempio si consideri il circuito di divisione di frequenza illustrato in fig X d S Clock R Z figura 5.8. L'ingresso x sia un'onda quadra con frequenza pari alla meta' di quella di clock. L'uscita z cambiera' valore ogni volta che l'ingresso e' in corrispondenza all'impulso di clock. Si ottiene in tal modo un'uscita con frequenza pari alla meta' della frequenza di ingresso e a un quarto di quella di clock. Si consideri ora la risposta del circuito al terzo impulso di clock. All'inizio di tale impulso (fig. 5.8.) x e z sono rimasti stabili per un sufficiente periodo di tempo affinche' d si sia stabilizzato a. Clock X Z d S R 5 figura 5.8. L'impulso di clock viene quindi trasferito alla linea S e fa si' che dopo un certo ritardo l'uscita z passi a. In tale istante x sia ancora a e quindi d passa a fintantoche' anche x non va a. Si ha quindi un breve impulso verso il valore logico sulla linea d, ma tale fatto non causa alcun

134 I circuiti sequenziali Capitolo 5 problema in quanto l'impulso di clock e' terminato prima che la variazione di d possa propagarsi. Si consideri ora la situazione in corrispondenza dell'impulso 5, che si suppone essere considerevolmente piu' lungo degli altri. All'inizio di questo impulso d e' ; l'impulso di clock viene trasferito alla linea R e con un certo ritardo z passa a. Poiche' x e' ancora a d commuta a e poiche' in tale istante il clock e' ancora presente, R va a e S a causando un'ulteriore commutazione di z. Si hanno cioe' due commutazioni dell'uscita, di cui la seconda indesiderata. Come in questo esempio, in tutti i circuiti che usino flip-flop sincroni esiste quindi un vincolo non solo sulla durata minima dell'impulso di clock, ma anche su quella massima. Disgraziatamente la tecnologia costruttiva dei circuiti integrati porta ad una notevole dispersione del valore dei ritardi dei singoli elementi e non e' quindi possibile basarsi su un'accurata scelta della durata dell'impulso di clock per assicurare un corretto funzionamento al circuito. Gli inconvenienti esaminati possono essere evitati ricorrendo a dei flip-flop dal circuito piu' raffinato, detti flip-flop master-slave. In fig e' illustrato lo schema di principio di un flip-flop RS master-slave. S S Q y S Q z R R R Clock figura 5.8. In assenza di segnali ai terminali di ingresso, l'uscita del flip-flop e di quello sono uguali. Quando viceversa e' presente un segnale ai terminali di ingresso, durante l'intervallo in cui il clock e' il flip-flop si porta nello stato che gli compete in funzione degli ingressi, mentre il flip-flop non modifica il suo stato essendo i gates chiusi. Successivamente, durante l'intervallo in cui il clock e', il flip-flop viene isolato dagli ingressi, chiudendo le porte, mentre l'apertura delle porte trasferisce l'informazione all'uscita z. Considerando ora un circuito sequenziale sincrono che contenga solo flip-flop masterslave e' evidente che la variazione di stato e quindi l'eventuale modifica delle variabili di eccitazione avviene quando le porte di ingresso del flip-flop sono chiuse. Quindi per ciascun impulso di clock si puo' avere un'unica variazione di stato, indipendentemente dalla durata dell'impulso di clock stesso. I cambiamenti di stato si hanno evidentemente in corrispondenza del fronte di discesa dell'impulso di clock. Un secondo tipo di flip-flop che permette il cambiamento di stato in corrispondenza al fronte di salita dell'impulso di clock, e che permette anch'esso di evitare gli inconvenienti messi in luce in questo paragrafo, e' il flip-flop "edge triggered" che si basa su altri principi di funzionamento. Si noti tuttavia che, anche usando tali tipi di flip-flop, quando il clock di uno o piu' di essi e' spostato rispetto al clock degli altri flip-flop, puo' ugualmente verificarsi una tran-

135 I circuiti sequenziali Capitolo 5 sizione multipla di stato; tale fenomeno e' conosciuto sotto il nome di "clock skew" e puo' verificarsi con una certa facilita' nei sistemi estremamente veloci, in cui i ritardi di trasmissione nelle interconnessioni tra gli elementi circuitali cominciano ad assumere notevole importanza. ale fenomeno verra' preso in considerazione con maggior dettaglio nel seguito. 5.9) Funzionamento asincrono del modello fondamentale. Sia il funzionamento sincrono a livelli che quello ad impulsi, gia' descritti ai paragrafi precedenti, richiedono che la transizione di stato avvenga solo in coincidenza di ben precisi istanti, cioe' tramite un'opportuna temporizzazione. Vengono quindi imposti dei vincoli alla struttura del circuito e alla velocita' cui esso puo' funzionare. Si puo' pero' pensare di far funzionare il modello fondamentale eliminando tali vincoli; il funzionamento cioe' avviene sempre secondo le (5.6.), ma senza alcuna sincronizzazione. La memoria in tal caso e' data da semplici elementi di ritardo sulla catena di reazione. Un circuito di tal tipo viene detto "asincrono" o level mode. Se si impone inoltre che i segnali di ingresso varino uno solo alla volta e che dette variazioni non possano avvenire se non quando i ritardi sono inattivi si hanno notevoli semplificazioni circuitali; si parla in tal caso di funzionamento in modo fondamentale. E' intuitivo che la variazione simultanea di piu' di un ingresso puo' causare problemi, poiche' in realta' gli eventi non possono mai essere contemporanei. L'effettiva risposta del circuito dipende quindi dalla sequenza, generalmente non conosciuta, con cui le variazioni si presentano. Si puo' notare che il circuito asincrono e' il piu' generale tipo di circuito sequenziale, nel senso che puo' rispondere a qualsiasi tipo di segnale, sia esso a impulsi o a livelli. Infatti la distinzione tra impulso e livello e' una pura questione di definizione; fisicamente un impulso puo' essere considerato costituito da due successive variazioni di un segnale a livelli che avvengono a breve distanza di tempo. Differente e' invece l'interpretazione; in un circuito a impulsi l'ingresso impulsivo viene visto come un singolo evento che da' luogo ad un unico cambiamento di stato. In un circuito asincrono un impulso viene considerato come due eventi distinti, ciascuno dei quali puo' causare una variazione di stato. Per illustrare il funzionamento asincrono del modello fondamentale si consideri il circuito di fig x y' y' z y y figura 5.9. Esso corrisponde perfettamente al modello fondamentale, quando in e si considerino concentrati tutti i ritardi della parte combinatoria del circuito.

136 I circuiti sequenziali Capitolo 5 Si supponga che a partire dalla situazione iniziale x= y = y = y' = y' = tutte le variazioni dell'ingresso avvengano a intervalli, con = max ( ) e che x rimanga costante ogni volta che y y'. Si supponga cioe' che il circuito lavori in modo fondamentale. Le equazioni del circuito sono: z = y' y' = x.y, y' = x.y + x.y + x.y L'evoluzione del circuito e' riportata nella tabella. Le righe di tale tabella possono essere divise in due categorie; quelle in cui y i y i ', che corrispondono ai periodi transitori, e quelle segnate con l'asterisco in cui y i = y i ', corrispondenti agli stati in cui il circuito permane finche' non viene cambiato l'ingresso. * * * * ABELLA Ingresso stato a t stato a t + Uscita Anche in questo caso si puo' costruire il diagramma degli stati, ma e' piu' conveniente usare il modello di Moore, compatibile con le ipotesi fatte per il funzionamento in modo fondamentale. utti gli stati devono evidentemente essere stabili e con riferimento al circuito di fig si ha il diagramma degli stati di fig / / / / figura 5.9.

137 I circuiti sequenziali asinconi Capitolo 6 CAPIOLO VI CIRCUII SEQUENZIALI ASINCRONI 6.) Introduzione. Nel capitolo precedente sono stati presi in considerazione gli aspetti essenziali dei circuiti sequenziali ed e' stato introdotto il modello fondamentale, le equazioni di stato e quelle di uscita. Si e' messo inoltre in luce che la formalizzazione proposta permette di affrontare lo studio dei circuiti sequenziali eliminando ogni dipendenza esplicita dal tempo, utilizzando quindi le metodologie e gli strumenti messi a punto per lo studio dei circuiti combinatori. In questo capitolo si trattera' dei problemi legati all'analisi e alla sintesi dei circuiti sequenziali asincroni, ad impulsi e a livelli, senza fare alcuna distinzione tra di essi, ma considerando gli impulsi come il risultato di due successive variazioni di livello. 6.) L'analisi. Un circuito sequenziale asincrono si riconosce in pratica in quanto e' realizzato unicamente da porte logiche elementari, ma contiene almeno una connessione tra l'uscita di un elemento di livello j e l'ingresso di un elemento a livello k con k>j. Esiste cioe' quello che viene chiamato "loop di reazione". Come si e' gia' accennato in precedenza, il circuito reale puo' essere fatto corrispondere al modello fondamentale ricordando che per qualsiasi elemento logico esiste sempre un tempo di ritardo tra l'applicazione di una condizione di ingresso e l'istante in cui si ha la corrispondente variazione dell'uscita. E' evidente che nel caso di circuiti logici combinatori l'esistenza di tale ritardo da' luogo unicamente ad un rallentamento della velocita' operativa, in quanto l'uscita rimane univocamente determinata. Nel caso dei circuiti sequenziali l'esistenza del ritardo riveste invece un'importanza fondamentale ed e' quindi necessario scomporre ciascun elemento logico reale in una porta logica a risposta istantanea, seguita da un elemento di ritardo. Supponendo poi, per ragioni di semplicita', che tutti i ritardi cosi' introdotti siano uguali e che operatori logici e ritardi siano tra loro invertibili, questi ultimi possono essere sostituiti da un unico elemento posto in uscita alla porta logica da cui si diparte un loop di reazione. La procedura descritta e' illustrata in fig X X X X X X 4 Y=Z 4 4 Y = Z X X figura 6.. Ponendo poi = = = = 4, si ha: 4

138 I circuiti sequenziali asinconi Capitolo 6 X X X 4 Y = Z X figura 6.. Con le ipotesi fatte, a partire da un circuito reale si ottiene pertanto una rappresentazione che e' formalmente identica a quella del modello fondamentale. E' necessario tuttavia affermare che le ipotesi fatte valgono solo in prima e grossolana approssimazione e in alcuni casi sara' necessario verificare quanto accade a causa del mancato loro verificarsi. L'analisi viene condotta determinando le equazioni di stato e di uscita del circuito a partire dalle quali si perviene alla tavola di flusso o al diagramma degli stati della macchina sequenziale che rappresenta il funzionamento del circuito. Allo scopo di facilitare l'analisi e' opportuno definire quelle che nel funzionamento sono condizioni stabili e quelle che sono condizioni instabili. Si definisce in corrispondenza ad una condizione di ingresso: I = {x,x,...,x n,y,y,...,y k ) a) Stato stabile quello che per qualsiasi j soddisfa la condizione: y' () t y () t j = b) Stato instabile quello per il quale, in corrispondenza ad almeno un j, si ha: y' j () t y () t Poiche' tra le uscite y' e gli ingressi y e' interposto come memoria semplicemente un elemento di ritardo, il circuito non puo' rimanere in uno stato instabile, ma deve evolvere spontaneamente verso lo stato futuro definito dalle variabili y'. Per chiarire il metodo di analisi e' opportuno rifarsi a qualche esempio. Sia dato il circuito di fig j j R Z S Z figura 6.. Rimanipolando opportunamente lo schema si ottiene il circuito di fig (a) in cui e' immediatamente riconoscibile un circuito sequenziale asincrono in quanto esiste un loop di reazione tra l'uscita z e l'elemento al secondo livello. 5

139 I circuiti sequenziali asinconi Capitolo 6 S R Z S R Z Z Z (a) figura 6..4 (b) Inserendo infine il ritardo, secondo quanto illustrato in precedenza, si ottiene la struttura di fig (b), formalmente identica al modello fondamentale. In essa sono immediatamente individuabili le variabili di stato e quelle di stato futuro. Le equazioni di stato e di uscita che si ricavano sono: = R. ( S+ y) = R.S R. y z = y z = S.y y' + Da tali equazioni si ricavano le due tabelle di fig. 6..5, simili alle mappe di Karnaugh, dette rispettivamente matrice di eccitazione e matrice delle uscite. RS RS y y y' z z figura 6..5 La prima contiene tutte le informazioni relative all'evoluzione dello stato e permette di distinguere immediatamente gli stati instabili da quelli stabili. In ogni casella e' riportato il valore assunto dalla variabile di eccitazione in funzione dello stato e dell'ingresso. Sono stabili quelle condizioni in cui lo stato futuro coincide con lo stato attuale. Instabili sono invece le condizioni in cui cio' non si verifica. Gli stati stabili vengono di solito contraddistinti cerchiandoli per evidenziarli. La tabella va interpretata nel modo seguente: Si supponga di trovarsi in una condizione stabile, ad esempio con RSy =. Variando l'ingresso e portandolo a RSy =, la variabile di eccitazione y' passa da a, determinando una condizione instabile. La variazione dell'ingresso viene pertanto rappresentata sulla matrice di eccitazione da uno spostamento in orizzontale. Poiche' il circuito e' asincrono e funziona in modo fondamentale, gli ingressi devono rimanere costanti finche' non si raggiunge una nuova condizione di stabilita'. Cio' avviene dopo un tempo, quando il valore assunto da y' viene trasferito a y, quando cioe' lo stato futuro diviene stato presente. Cio' corrisponde sulla matrice di eccitazione ad uno spostamento verticale nella colonna RS =. Riassumendo si puo' pertanto dire che sulla matrice di eccitazione gli spostamenti orizzontali sono provocati da una variazione degli ingressi, mentre quelli verticali sono spontanei e sono provocati dall'evoluzione del circuito dalla condizione instabile, in cui viene a trovarsi per la variazione dell'ingresso, verso una nuova condizione stabile. 6

140 I circuiti sequenziali asinconi Capitolo 6 La matrice di uscita contiene invece tutte le informazioni sul comportamento esterno del circuito, cioe' su come variano le uscite in funzione dell'ingresso e dello stato. RS y / / / / / / / / figura 6..6 Si noti che esiste una sostanziale differenza tra matrice di eccitazione e matrice di uscita; mentre l'interpretazione della prima implicitamente fa riferimento al tempo, attraverso l'introduzione del ritardo, e permette di seguire l'evoluzione dello stato in funzione delle variazioni dell'ingresso, la matrice d'uscita ha una natura completamente indipendente dal tempo, in quanto le variabili interessate, che nel caso in esame sono le z, R, S e y, si riferiscono tutte allo stesso istante. Per determinare la sequenza di uscita ottenuta a partire da un determinato stato per una particolare sequenza di ingresso e' necessario percio' ricorrere ad ambedue le tabelle. Si preferisce quindi riunire le due tabelle ottenendo quella che viene chiamata tavola di flusso del circuito e che per l'esempio in esame e' riportata in fig A partire poi dalla tavola di flusso e' immediatamente ricavabile il diagramma degli stati del circuito, sia nella rappresentazione di Mealy che in quella di Moore. In fig (a) e' riportato il diagramma degli stati secondo Mealy del flip-flop RS, mentre in fig (b) e' riportato quello secondo Moore. / / / / / / / / / / / (a) figura 6..7 (b) I diagrammi ottenuti possono a prima vista differire da quanto illustrato in precedenza per il flip-flop RS. In realta', per motivi che verranno illustrati in seguito, si evita che in un circuito sequenziale asincrono due ingressi possano variare contemporaneamente. ale 7

141 I circuiti sequenziali asinconi Capitolo 6 assunzione riporta quindi il funzionamento del circuito analizzato a quello gia' illustrato per il flip-flop RS. 6.) ransizioni multiple, cicli di instabilita' e corse. Nel corso del procedimento di analisi possono presentarsi casi piu' o meno complessi che meritano un'illustrazione particolare. 6..) ransizioni multiple Si ha una transizione multipla quando allo stato stabile si giunge attraverso un certo numero di stati instabili diversi, come illustrato nella tavola di flusso di fig. 6.. (a). Il verificarsi di una condizione di questo genere non comporta alcun inconveniente particolare, al di la' di un prolungamento del tempo di transitorio. Per tale motivo le transizioni multiple vengono spesso utilizzate, come si vedra' nel seguito, a scopo di semplificazione durante il procedimento di sintesi. Ingresso Stato Ingresso Stato (a) figura 6.. (b) 6..) Cicli di instabilita' Il fenomeno e' del tutto analogo a quello delle transizioni multiple, con la differenza che non si raggiunge alcun stato stabile, ma viene percorso con continuita' un ciclo fintantoche' non viene variato l'ingresso (figura 6.. (b)). Una condizione di tal genere e' di solito determinata da un errore di progetto. E' opportuno notare che le transizioni multiple e i cicli di instabilita' derivano dalla struttura logica della tavola di flusso e sono facilmente individuabili per semplice ispezione di quest'ultima. Non altrettanto puo' dirsi per il fenomeno delle corse che prendono origine dal mancato verificarsi di una delle ipotesi fatte introducendo il modello fondamentale, e cioe' che i ritardi nei loop di reazione siano tutti uguali. 6..) Corse Si supponga che, a partire da una condizione di stabilita', la variazione dell'ingresso porti alla variazione di due o piu' variabili di eccitazione. Quando cio' avviene la differente velocita' di risposta, che nella realta' gli elementi logici hanno, determina una disuguaglianza dei tempi di ritardo nei loop di reazione e puo' portare il circuito ad evolvere in maniera errata. Si consideri ad esempio la tavola di flusso di fig

142 I circuiti sequenziali asinconi Capitolo 6 y y y x --- figura 6.. A partire dallo stato stabile la commutazione dell'ingresso x da a fa si' che commutino le variabili y e y. A causa dei differenti tempi di ritardo durante il transitorio di commutazione la situazione delle variabili di eccitazione potrebbe essere oppure anziche'. Se inoltre il periodo transitorio fosse sufficientemente lungo l'evoluzione del circuito porterebbe agli stati stabili o rispettivamente. Un fenomeno di tal genere prende il nome di corsa critica e puo' portare ad un comportamento diverso da esemplare ad esemplare di circuito prodotto. E' opportuno tuttavia rimarcare che per il verificarsi di una corsa critica devono essere soddisfatte due condizioni necessarie: ) La variazione dell'ingresso deve comportare la variazione di due o piu' variabili di eccitazione. ) La colonna relativa al valore finale dell'ingresso deve contenere piu' di uno stato stabile. Si parla invece di corse non critiche quando, pur essendo verificata la prima delle due condizioni appena esposte, lo stato finale raggiunto e' sempre quello desiderato. Un esempio di circuito per il quale sono possibili corse non critiche e' illustrato nella tavola di flusso di fig y y y x --- figura 6.. Nel seguito si riporta un esempio di analisi di un circuito sequenziale asincrono. 9

143 ESEMPIO Sia assegnato il circuito di fig I circuiti sequenziali asinconi Capitolo 6 X X _ X_ X _ X_ X _ X Z X X figura 6..4 Riportando tutti i ritardi di propagazione nei loop di reazione si ottiene la struttura circuitale di fig. 6..5, formalmente identica al modello fondamentale. Le relative equazioni di stato e d'uscita sono: y' = y. ( x + x + y ) y' = x.x.y+ x.y.y + x. + x.x.y = x.y+ x.y+ y.y+ x.x.y ( x.y + y.y ) = x.x.y+ x.y.y + x.x.y + x.y.y = z = y X X_ Y Y _ X_ X Y _ X_ X Y _ X Y_ Y Y Y X _ Y X Y ' Y Y' Y _ Z = Y _ Y figura 6..5 Le matrici di eccitazione e di uscita sono:

144 I circuiti sequenziali asinconi Capitolo 6 yy xx yy xx y' y' z La riunione delle due matrici permette di ottenere la tavola di flusso del circuito e da essa si puo' derivare il diagramma degli stati, come illustrato in fig (nella rappresentazione di Moore) / / / / figura ) Sintesi dei circuiti sequenziali asincroni. Il procedimento di sintesi di un circuito sequenziale asincrono puo' essere suddiviso, in linea di principio, in cinque fasi successive. ) Determinazione, a partire da una descrizione verbale del funzionamento desiderato per il circuito, del diagramma degli stati di una macchina sequenziale asincrona M, da cui derivare la tabella degli stati, detta matrice primitiva delle sequenze. ) Minimizzazione degli stati di M e costruzione della tabella degli stati della macchina equivalente minima M', detta matrice delle sequenze.

145 I circuiti sequenziali asinconi Capitolo 6 ) Determinazione del minimo numero di variabili binarie interne necessarie a codificare gli stati di M' in modo da ottenere un corretto funzionamento del circuito. 4) Costruzione della tavola di flusso del modello fondamentale del circuito da realizzare. 5) Costruzione, sulla base della tavola di flusso determinata al punto 4, del circuito sequenziale asincrono reale. Anche durante la sintesi si accettano le ipotesi semplificative introdotte per l'analisi e cioe': ) L'intera rete logica ha risposta istantanea. ) I segnali di ingresso sono asincroni a livelli. ) Gli ingressi possono variare solo in corrispondenza di uno stato stabile. 4) I valori dei ritardi inseriti nei loop di reazione sono tutti uguali. 6.4.) Determinazione della matrice primitiva delle sequenze. Viene chiamata matrice primitiva delle sequenze la tavola di flusso, secondo il modello di Moore, di una macchina sequenziale asincrona M il cui funzionamento corrisponda completamente con la descrizione assegnata per il circuito da realizzare. Sulla base di quanto gia' visto, essa conterra' tante colonne quanti sono i possibili valori degli ingressi, cui si aggiunge una colonna per l'uscita, e tante righe quanti sono gli stati stabili. A titolo di esempio si voglia determinare la matrice primitiva delle sequenze per il circuito a due ingressi (x e x ) e un'uscita (z) che si porta a solo al termine della sequenza di ingresso Raggiunta tale condizione l'uscita deve ritornare a zero per ogni ulteriore variazione dell'ingresso. Per ragioni che verranno esaminate piu' avanti, si imponga quale ulteriore condizione che i due segnali di ingresso non possano mai variare contemporaneamente. La parte del grafo degli stati che esegue il riconoscimento della sequenza e' illustrato in fig / / 4/ / figura 6.4. La successiva applicazione a ciascuno di questi stati di tutti i possibili ingressi porta poi ad espandere il grafo come illustrato in fig. 6.4.

146 I circuiti sequenziali asinconi Capitolo 6 / / / 4/ 7/ 5/ 6/ figura 6.4. La matrice primitiva delle sequenze e' in definitiva: xx Stato Uscita ) Determinazione della matrice delle sequenze della macchina minima. Dopo aver determinato la matrice primitiva delle sequenze e' opportuno minimizzare il numero degli stati. Infatti, con riferimento al modello fondamentale di circuito sequenziale, ridurre il numero degli stati coincide con il ridurre la complessita' della rete combinatoria multiterminale: e' evidente che ridurre il numero di stati riduce ad un tempo sia il numero di ingressi che il numero di uscite della rete. A tale proposito tuttavia non vi e' nulla di particolare da osservare in quanto il procedimento di minimizzazione coincide perfettamente con quello esposto al capitolo IV.

147 I circuiti sequenziali asinconi Capitolo 6 ESEMPIO Si minimizzi il numero di stati della matrice delle sequenze di fig La tabella di evoluzione delle coppie α - compatibili e' riportata in fig Ingresso Stato / /- -/- /- /- -/- 4/- / /- / 5/- -/- 4 -/- 6/- 4 / /- 5 -/- 7/- 5 / /- 6 /- 6 / 8/- -/- 7 /- 7 / 5/- -/- 8 -/- 6/- 8 / /- figura 6.4. Per esclusione delle coppie che non evolvono verso coppie α - compatibili rimangono individuate le coppie di stati σ - compatibili {,} {,} {,4} {5,6} {5,7} {5,8} {6,7} {6,8} {7,8} Ingresso Coppieα -compatibili,,,- -,4,,8,- -,6 4,8,,,, -,5,-,4,-,6 5,4 -,,4,-,6 -,4,,5,-,7 5,5 -,,5,-,7 -,5,,8,-,6 5,8 -,,6,,6 -,8,- 4,6 -, 6,6 4,8,-,7,,7 -,5,- 4,7 -, 6,7 4,5,-,8,-,6 -,8, 5,6 -, 7,6 5,8,-,, -, 4,5,- 5,7 -, 7,7 5,5,-,4,- -,6 4,4, 5,8 -,- 7,6 5,8,,5,- -,7 4,5, 6,7, 6,7 8,5 -,-,6, -,6 4,8,- 6,8,- 6,6 8,8 -,,7, -,7 4,5,- 7,8,- 7,6 5,8 -, figura Si puo' inoltre individuare una relazione di mutua compatibilita' tra gli stati 5,6,7,8. Pertanto la macchina minima M' e': 4

148 I circuiti sequenziali asinconi Capitolo 6 Stato S i ', ', ',4 4' 5,6,7,8 '/ '/- '/- '/ '/ '/ 4'/- '/- '/- 4'/- '/ '/ '/- 4'/ 4'/ '/- ESEMPIO Si minimizzino gli stati della seguente macchina sequenziale asincrona: Ingresso Stato Uscita La macchina assegnata e' incompleta. La tabella di evoluzione delle coppie α- compatibili e' riportata in fig Ingresso Coppie α -compatibili,,, -,-,,,,- -,5,,,,- -,5,,4,- -,- 5,4,,5,7 -,- 5,5,6,6,7 -, 5,-,6,7,7 -,8 5,-,6,8, -,8 5,4,6 4,6 -,7 -, 4,-,6 4,7 -,7 -,8 4,-,6 5,6 7,7 -, 5,- 6,6 6,7 7,7,8 -,- 6,6 figura

149 I circuiti sequenziali asinconi Capitolo 6 Dall'esame della tabella si individuano le coppie di stati equivalenti e la macchina minima e': {,} {,} {,} {5,6} Ingresso Stato Uscita ) Codificazione dello stato. Il punto piu' delicato nella sintesi di un circuito sequenziale asincrono e' senza dubbio la codifica dello stato. ale codifica consiste in sostanza nel determinare il numero minimo (k) di variabili booleane necessarie a codificare gli n stati della macchina sequenziale minima, in modo tuttavia da evitare errate evoluzioni del circuito a causa di corse critiche. E' possibile in questa fase ricorrere all'introduzione di transizioni multiple o sfruttare corse non critiche per non aumentare eccessivamente il numero di variabili necessarie. Uno studio condotto da Huffmann ha permesso di determinare il limite superiore e inferiore di k in funzione del numero S di stati per matrici che contengano fino a stati. I risultati sono riportati nella tabella che segue. N. massimo e minimo di variabili necessario a codificare S stati k S k min max Per una corretta codifica dello stato si fa riferimento al diagramma delle transizioni e alla tavola delle transizioni. Il diagramma delle transizioni e' un grafo non orientato i cui nodi rappresentano gli stati e i cui archi rappresentano le transizioni tra stati. Accanto a ogni nodo viene scritto lo stato e il relativo valore dell'uscita. In fig e' riportata una matrice delle sequenze ed a lato e' rappresentato il relativo diagramma delle transizioni. La tavola delle transizioni consiste in una mappa di Karnaugh, di cui non vengono assegnate le coordinate. Al fine di evitare le corse critiche e' necessario sistemare gli stati, che sono connessi da un arco sul diagramma delle transizioni, in caselle adiacenti sulla tavola delle transizioni. Riuscendo infatti a soddisfare tale specifica, la transizione tra stati avverra' con la commutazione di un'unica variabile, facendo cosi' mancare una delle condizioni necessarie al verificarsi di una corsa critica. 6

150 I circuiti sequenziali asinconi Capitolo 6 Ingresso Stato z - () 4() () () figura Si inizia pertanto tentando di sistemare gli S stati su una mappa per k min variabili. Qualora non si riescano a rispettare tutte le adiacenze desiderate si tenta di sfruttare corse non critiche oppure si introducono stati ausiliari e si realizzano le transizioni tra stati stabili tramite transizioni multiple. Se nemmeno in tal maniera si riescono a codificare in modo corretto gli stati, si aumenta di un'unita' il numero delle variabili e si conduce un nuovo tentativo sulla relativa tavola delle transizioni. Infine, una volta che gli stati siano stati opportunamente disposti sulla mappa, si tarano gli assi di quest'ultima con opportuni codici ciclici in modo da far coincidere il massimo numero delle variabili di uscita z con altrettante variabili di stato. Dalla codifica degli stati dipende in maniera determinante la struttura del circuito reale che si ricava; e' opportuno pertanto eseguire piu' tentativi di codifica e confrontarne i risultati, scegliendo quello che da' luogo alla massima semplicita' circuitale. Allo scopo di illustrare le tecniche di codifica, nel seguito sono riportati alcuni esempi, via via piu' complessi. ESEMPIO Codificare gli stati della matrice delle sequenze di fig ing. Stato z figura In fig (a) e' riportato il diagramma delle transizioni che evidenzia le relative transizioni tra stati, mentre in fig (b) gli stati sono riportati sulla tavola delle transizioni in modo da realizzare le adiacenze richieste. Infine in fig (c) viene adottata una taratura degli assi che permette di far coincidere l'uscita con la variabile di stato y. 7

151 I circuiti sequenziali asinconi Capitolo 6 () 4() () () y y () () () 4() y y () () () 4() (a) (b) (c) figura ESEMPIO Codificare gli stati della matrice delle sequenze di fig Ingresso Stato Uscita figura Dal diagramma delle transizioni di fig (a) si deduce la necessita' di rendere adiacenti le coppie di stati (,) (,) (,4) (,) (,4) (,4) il che e' evidentemente impossibile su una mappa per due variabili. uttavia la particolare struttura della matrice delle sequenze in corrispondenza agli ingressi, e, per i quali esiste un unico stato stabile nella relativa colonna, e la considerazione che gli stati stabili della colonna sono raggiungibili solo dagli stati stabili che si trovano sulla medesima riga e quindi senza commutazione delle variabili di stato, suggeriscono l'utilizzo di corse non critiche a scopo di semplificazione. () () y y () () y y () () () 4() () 4() 4() (a) () (b) (c) figura 6.4. La codifica degli stati puo' quindi essere fatta come illustrato in fig (b). Non e' tuttavia possibile far coincidere ambedue le variabili di uscita con le variabili di stato. La taratura della mappa che consente di ottenere la massima economia e' riportata in fig (c) e da' luogo alle seguenti equazioni: 8

152 I circuiti sequenziali asinconi Capitolo 6 z z = y = y ESEMPIO Codificare gli stati della matrice delle sequenze di fig (a)..y Ingresso Stato z 4 () () (a) figura () () (b) L'adiacenza degli stati tra cui si ha una transizione, secondo quanto illustrato dal diagramma di fig (b), non puo' essere realizzata su una mappa di due variabili, ne', d'altra parte, possono essere sfruttate corse non critiche o transizioni multiple. E' giocoforza quindi fare ricorso a una tavola delle transizioni per tre variabili. Possono allora essere introdotti degli stati ausiliari e il problema che si sta esaminando puo' venir risolto in due modi diversi: a) Introducendo transizioni multiple. In questo caso i quattro stati della matrice delle sequenze vengono sistemati sulla mappa nella maniera piu' opportuna, in modo da realizzare il massimo numero delle transizioni direttamente e di semplificare al massimo la rete d'uscita. Si soddisfa alle transizioni tra stati che non possono avvenire direttamente introducendo stati ausiliari e realizzando la transizione relativa come transizione doppia. Una possibile codifica che fa coincidere l'uscita con la y e' quella riportata in fig (a), mentre in fig (b) e' illustrata la relativa tabella degli stati e sono poste in evidenza con una freccia le transizioni doppie utilizzate per evitare le corse critiche. Ingresso Stato Uscita y y y () () () 7 5 4() 6 -- (a) figura 6.4. (b) La soluzione individuata e' senz'altro corretta, tuttavia in alcuni casi puo' essere inaccettabile la differenza nel tempo di risposta del circuito per le transizioni dirette e per 9

153 I circuiti sequenziali asinconi Capitolo 6 quelle doppie. L'inconveniente puo' venir superato solamente rendendo tutte le transizioni doppie, ad esempio secondo la tavola di fig. 6.4.; in tal caso l'uscita non puo' venir fatta coincidere con alcuna variabile di stato. y yy figura 6.4. Nel caso illustrato c'e' evidentemente un'ampia scelta su come compiere ciascuna transizione tra stati stabili. Ad esempio la transizione tra gli stati e potrebbe essere realizzata come -5- oppure come -7-. b) Introducendo stati equivalenti. E' opportuno ricordare che, dal punto di vista del funzionamento, il circuito viene caratterizzato dalla corrispondenza tra l'insieme delle possibili sequenze di ingresso e l'insieme delle corrispondenti sequenze di uscita e non da quale stato occupi istante per istante. Ciascun stato quindi puo' essere codificato in piu' modi, purche' l'uscita relativa a ciascuna codifica coincida. In altre parole cio' sta a significare che ogni stato puo' venir separato in piu' stati equivalenti in modo che le transizioni della matrice delle sequenze assegnata possano venir effettuate sempre tra stati adiacenti sulla tavola delle transizioni. Con riferimento alla matrice delle sequenze di fig (a), una codifica possibile, ottenuta con l'introduzione di stati equivalenti, e' riportata in fig utti gli stati equivalenti tra loro sono stati chiamati con lo stesso nome e contraddistinti con un pedice. y yy () () () () () () 4 () 4 () figura Le transizioni tra stati stabili si possono evidentemente realizzare in molti modi diversi.ad esempio, lo stato puo' raggiungere lo stato o con una transizione - o con una transizione doppia - -. Una delle possibili matrici di stato ricavabili e' riportata in fig

154 I circuiti sequenziali asinconi Capitolo 6 Ingresso Stato z figura Con l'approccio del tipo descritto, una volta che sia stata ricavata la matrice degli stati, e' spesso ancora possibile apportare delle semplificazioni. Ingresso Stato z figura Ad esempio, nella riga gli stati stabili non sono raggiungibili ne' per variazione degli ingressi, poiche' nella riga non esiste alcun altro stato stabile, ne' per evoluzione 4

155 I circuiti sequenziali asinconi Capitolo 6 spontanea del circuito in quanto nelle relative colonne non esiste nessuna condizione instabile. Anche la condizione instabile 4 della stessa riga non puo' essere raggiunta, mentre invece quella viene utilizzata nella transizione doppia - -. La colonna relativa all'ingresso puo' essere modificata sostituendo alla transizione la transizione In tal modo, nella riga gli stati e 4 diventano non piu' raggiungibili. Sulla base di queste considerazioni si puo' quindi pervenire alla matrice degli stati di fig ) Determinazione della tavola di flusso del modello fondamentale. Una volta che sia stata stabilita la codifica dello stato e sia stata ricavata la matrice di stato nella sua forma finale, il passaggio alla tavola di flusso del modello fondamentale e' estremamente semplice. E' sufficiente infatti sostituire ad ogni stato che compare nella matrice la sua codifica binaria ed associarvi la relativa uscita. A titolo di esempio la matrice di stato di fig con la codifica di fig da' come risultato la tavola di flusso di fig Ingresso Stato / / / / /- -/- /- -/- / / / / / / / / / / / / -/- -/- -/- / / / / / / / / / figura ) Costruzione del circuito reale. Il passaggio dalla tavola di flusso al circuito reale presuppone la sintesi del circuito M i cui ingressi sono le variabili x i e y i e le cui uscite sono le z i e le y i '. Scelti poi i componenti, si realizza la rete logica combinatoria del modello fondamentale. Infine si chiudono i loop di reazione tra le y i ' e le y i ottenendo in tal modo il circuito sequenziale asincrono reale. Si abbia la seguente tavola di flusso: 4

156 I circuiti sequenziali asinconi Capitolo 6 Ingresso Stato xx yy / / / / / -/ / / / / / / / / / -/ Poiche' z = y e' sufficiente eseguire la sintesi di y ' e di y '. yy xx yy xx Φ Φ Φ Φ Si ottiene: y' = x y' z = y + y = x + x.y.y = x Scegliendo per la realizzazione del circuito elementi logici NAND, si ha infine:.y + x.y.y _ X _ X _ X Z figura ) Le alee nei circuiti sequenziali asincroni. Una delle ipotesi fondamentali formulate a scopo di semplificazione nello studio dei circuiti sequenziali asincroni e' quella dell'uguaglianza dei ritardi in ciascun loop di reazione. Si e' gia' visto in precedenza che il mancato verificarsi di tale ipotesi puo' dar luogo, quando la 4

157 I circuiti sequenziali asinconi Capitolo 6 variazione dell'ingresso provoca la commutazione di due o piu' variabili di stato, a quei malfunzionamenti che vengono chiamati corse. C'e' tuttavia da far notare che ancora prima si era supposto che tutti i ritardi della rete combinatoria potessero essere concentrati in uscita e riportati come unico ritardo in ciascun loop di reazione. Il mancato verificarsi di tale ipotesi puo' portare ad evoluzioni errate del circuito anche quando non commuta alcuna variabile di stato purche' si sia avuta una variazione dell'ingresso. Si parla in tal caso di alea (hazard) del circuito sequenziale. Esistono quattro tipi di alea; le prime tre, dette rispettivamente alee statiche, dinamiche ed essenziali si verificano in corrispondenza alla variazione di un unico segnale di ingresso e possono essere eliminate con accorgimento di natura logica o circuitale. Il quarto tipo, detto alea multipla, si verifica in corrispondenza alla commutazione di piu' segnali di ingresso e si evita in pratica imponendo, quale ulteriore vincolo, che non commuti piu' di una variabile di ingresso alla volta. 6.5.) Alee statiche. Si chiama alea statica il fenomeno per il quale un'uscita, che in seguito alla variazione di una variabile di ingresso dovrebbe rimanere costante, ha invece una variazione transitoria. ale fenomeno e' provocato dalla diversa lunghezza degli itinerari percorsi dai segnali per raggiungere l'uscita citata. E' bene precisare immediatamente che l'alea statica non e' una caratteristica dei circuiti sequenziali, ma si presenta anche nei circuiti combinatori. In questi ultimi tuttavia non ha alcun effetto pericoloso, ma semplicemente prolunga il periodo di transitorio dopo il quale l'uscita si assesta. In un circuito sequenziale invece, quando l'alea interessa una variabile interna y e dura sufficientemente a lungo si puo' avere un'errata evoluzione del circuito stesso: se invece interessa un'uscita puo' determinare un'evoluzione errata di qualche altro circuito sequenziale a valle. Si consideri, per inquadrare correttamente il fenomeno dell'alea statica, il circuito di fig (a), mentre in fig (b) e' riportata la relativa tavola di flusso. X X Z=Y (a) x x y / / / / / / / / (b) y'/z figura 6.5. Le relative equazioni di stato e di uscita sono: 44

158 I circuiti sequenziali asinconi Capitolo 6 y' = x.x + x. y z = y ali equazioni, utilizzate anche per determinare la tavola di flusso, sono state ricavate supponendo la rete logica istantanea e tutto il ritardo concentrato nel loop di reazione. In effetti nella realta' le cose vanno in maniera notevolmente diversa. Si supponga infatti di applicare al circuito la sequenza di ingresso x x = -. Nel caso ideale l'uscita y dovrebbe rimanere costante. Nel caso reale invece ogni elemento della rete ha il suo ritardo, diverso in genere da quello degli altri elementi. Per x = x = l'uscita del gate e' e quella del gate e'. Pertanto y' =. Quando x commuta da a,dopo il tempo di ritardo l'uscita del gate passa da a : viceversa l'uscita del gate commuta a dopo un tempo pari a i +, che di solito, anche se non necessariamente, e' maggiore di. Pertanto per un intervallo di tempo pari a: t = i + - all'ingresso del NAND si presenta la combinazione e la sua uscita commuta a zero. Infine trascorso il tempo t l'uscita riprende il suo valore normale. Se il transitorio - - permane per un tempo t superiore al tempo di ritardo del gate cui e' applicato, il circuito puo' portarsi nella condizione stabile x x y =. L'effetto dell'alea statica puo' essere cancellato sia con accorgimenti puramente circuitali, sia con modifiche alla struttura logica del circuito. Nel primo caso e' sufficiente inserire nel loop di reazione un ritardo di propagazione sufficiente ad evitare che il transitorio si presenti all'ingresso del gate. uttavia tale accorgimento non e' conveniente in quanto rallenta la velocita' con cui il circuito puo' operare. Una soluzione migliore si puo' ottenere operando con mezzi di natura puramente logica, una volta che sia stata individuata la vera causa dell'alea statica. Si esamini a questo scopo la mappa di Karnaugh della funzione di stato, riportata in fig y xx figura 6.5. y' Si vede immediatamente che la funzione y' e' realizzata individuando sulla mappa, al fine della copertura della funzione, due sottoinsiemi disgiunti, di cui uno dipendente dalla variabile x, l'altro da x. Pertanto se x e x non commutano allo stesso istante puo' verificarsi un'alea statica. 45

159 I circuiti sequenziali asinconi Capitolo 6 Si puo' concludere percio' che un'alea statica puo' verificarsi ogni volta che una funzione di stato viene realizzata individuando sulla mappa di Karnaugh sottoinsiemi disgiunti di cui uno dipendente da una variabile, l'altro dalla stessa variabile negata. Per eliminare l'alea statica e' quindi sufficiente prendere in considerazione un terzo sottoinsieme, ridondante, che non dipenda dalla variabile in questione. Nel caso che si sta esaminando e' pertanto sufficiente che la equazione di stato sia realizzata come segue: che porta al circuito di fig y' = x.x + x.y+ x.y X X 4 Z figura 6.5. Il termine aggiunto x.y garantisce che l'uscita si mantenga a anche durante la commutazione della variabile x. I circuiti cosi' realizzati sono detti privi di alee (hazard free). E' opportuno osservare che le alee statiche sono pericolose solo se le transizioni che le determinano si possono effettivamente verificare. ale informazione tuttavia si puo' ricavare solo a partire dalla matrice primitiva delle sequenze, in quanto puo' essere perduta passando alla macchina equivalente minima. 6.5.) Alee dinamiche. L'esempio illustrato al paragrafo precedente si riferisce ad un'uscita che dovrebbe mantenersi a e passa transitoriamente a. E' evidente che lo stesso fenomeno puo' verificarsi anche per uscite che dovrebbero mantenersi al valore logico. Si parla percio' di alee statiche allo stato e di alee statiche allo stato. E' possibile inoltre avere della alee anche in corrispondenza di una commutazione dell'uscita; in tal caso il segnale passa momentaneamente al nuovo valore, ritorna transitoriamente al valore originario ed infine assume il valore di regime. Si hanno cioe' tre successivi cambiamenti di valore per un'uscita che dovrebbe cambiare una volta sola (ad esempio anziche' - ). 46

160 I circuiti sequenziali asinconi Capitolo 6 Una situazione di questo genere viene detta alea dinamica. Anche le alee dinamiche non sono fenomeni tipici dei circuiti sequenziali, ma si presentano anche nei circuiti combinatori. Solo nel primo caso tuttavia sono pericolose. Condizione necessaria e sufficiente al verificarsi di un'alea dinamica e' che esistano nell'espressione della funzione di eccitazione y' due segnali x e x e che nell'espressione di y' compaiano gli stessi segnali x e x di cui almeno uno su un percorso diverso dai primi. In pratica le condizioni sono verificate quando esistono almeno vie che portano il segnale x all'elemento alla cui uscita si realizza una y' e che almeno una delle vie comporti l'inversione della x e almeno una no. Ad esempio il circuito di fig soddisfa tale condizione per quanto riguarda la variabile x. X X X 5 X X 4 X Z figura Le equazioni di stato e di uscita sono: da cui si puo' derivare la tavola di flusso y' = x z = x.x + x + x + x.y y xxx / / / / / / / / / / / / / / / / Le condizioni richieste per l'esistenza di un'alea dinamica sono verificate in quanto il segnale x raggiunge il NAND attraverso gli itinerari -, 5 - -, di cui il secondo comporta l'inversione della variabile. enendo separati i segnali secondo l'itinerario seguito da ciascuno d'essi, ed indicandoli rispettivamente con () ( ) () x, x, si ha: x y'/z 47

161 I circuiti sequenziali asinconi Capitolo 6 () () ( ) () ( x.x + x ) y' = x +.y+ x. x + x. x Si consideri ora la transizione dalla condizione stabile x x x y = alla condizione x x x y =. enendo presente che durante tutto il tempo si ha y =, si ottiene: a) () ( ) () x = x = x = y y' = stato iniziale = b) () x = ( ) ( ) x = x = y y' = = c) () ( ) x = x = () = y y' = x = d) () ( ) () x = x = x y = y'= stato finale = L'individuazione delle possibili alee di un circuito sequenziale e' un compito molto complicato, anche se e' un'argomento che e' stato completamente analizzato. E' tuttavia sufficiente per il progettista conoscere le regole che gli permettano di realizzare circuiti privi di alee. EOREMA Un circuito sequenziale a due livelli privo di alee statiche allo stato e' anche privo di alee statiche allo stato e di alee dinamiche. La dimostrazione di tale teorema e' notevolmente complicata e non viene qui riportata. E' tuttavia opportuno notare che il teorema non esprime una condizione necessaria. In effetti e' possibile realizzare circuiti con un numero di livelli superiore a due e tuttavia privi di alee. Le alee dinamiche possono essere eliminate aggiungendo dei ritardi concentrati nelle vie piu' rapide (nell'esempio fatto poco piu' sopra aggiungendo dei ritardi concentrati per i segnali x () e x () ). uttavia la migliore soluzione si ottiene operando a livello di struttura del circuito. Realizzandolo cioe', come enunciato dal teorema, con una struttura a due livelli priva di alee statiche. 6.5.) Alee essenziali. Nei circuiti sequenziali asincroni esiste un ulteriore tipo di alea che non e' legata alla realizzazione fisica dei circuiti stessi, ma e' inerente alla struttura logica del problema. ali alee sono le piu' pericolose in quanto non sono in alcun modo eliminabili attraverso artifici logici e pertanto portano sempre, quando presenti, ad un'errata evoluzione del circuito; esse vengono chiamate alee essenziali. Un'alea essenziale puo' generarsi ogni volta che la tavola di flusso ha una delle due strutture illustrate in fig quando cioe' nella tavola di flusso esiste uno stato S i e un ingresso x tali che tre variazioni consecutive di x a partire da S i portino il circuito in uno stato S k diverso da quello S j in cui giunge dopo un'unica variazione di x. 48

162 I circuiti sequenziali asinconi Capitolo 6 Ingresso Ingresso Stato Stato figura Per analizzare compiutamente il meccanismo di un'alea essenziale e' opportuno riferirsi ad una tavola di flusso in cui gli stati siano gia' stati codificati, come ad esempio quella di fig A partire dallo stato stabile xy y =, se la commutazione di x da a viene avvertita contemporaneamente dagli elementi G y e G y da cui vengono prelevate le variabili di stato y e y, il sistema passa nello stato instabile ed evolve poi spontaneamente verso lo stato stabile. Stato Ingresso -- figura Si supponga invece che la variazione di x giunga su G y prima che su G y. L'evoluzione del circuito potrebbe allora essere la seguente: ) L'uscita di G y passa a e fa evolvere il sistema verso lo stato stabile. ) Se G y avverte la variazione di y prima che dagli stadi precedenti gli sia giunta notizia che x e' commutato, allora esso si trova nella condizione in cui x e' ancora mentre y = e y =. La sua uscita pertanto commuta a e il sistema evolve verso la condizione xy y =. ) Infine G y avverte la commutazione di x e fa evolvere il sistema verso la condizione stabile xy y = diversa da quella cui era destinato. 49

163 I circuiti sequenziali asinconi Capitolo 6 In definitiva un'alea essenziale si genera quando la variazione di una variabile interna, conseguente ad una variazione di un ingresso, si propaga nel circuito piu' rapidamente del cambiamento dell'ingresso che l'ha generata. Alee essenziali si ritrovano in molti circuiti di considerevole importanza, come ad esempio in quasi tutti i contatori. Poiche' l'effetto delle alee essenziali non puo' essere modificato con provvedimenti di natura puramente logica, esse possono venir eliminate solamente controllando con estrema cura il ritardo totale di tutti i loop di reazione. Il provvedimento piu' sicuro e' quello di inserire nei loop di reazione dei ritardi tali da assicurare che il cambiamento delle variabili di stato y avvenga solo dopo che la relativa variazione di ingresso si sia propagata in tutti i punti della rete combinatoria ) Alee multiple. Si ha un'alea multipla quando i tre tipi di alee che sono state prese in considerazione coinvolgono piu' di una variabile. La loro interazione complica notevolmente il problema della sintesi ed e' possibile eliminare gli inconvenienti, che vengono in tal caso a verificarsi, solo in casi particolari. Per tale motivo si prescrive di solito che gli ingressi dei circuiti asincroni non varino mai contemporaneamente. Pertanto per un corretto funzionamento dei circuiti sequenziali asincroni devono essere soddisfatte le seguenti condizioni: ) La rete logica combinatoria deve essere priva di alee statiche e dinamiche. ) Nessuna variazione di stato deve avvenire prima che la variazione di ingresso che l'ha generata sia giunta in ogni punto della rete combinatoria. ) Le variazioni di stato non devono comportare corse critiche. 4) Gli ingressi devono variare solo quando il circuito ha raggiunto una condizione di stabilita'. 5) Gli ingressi non devono mai variare contemporaneamente. Si fa notare che le ultime due condizioni corrispondono al modo di funzionamento che e' stato introdotto al capitolo V come modo fondamentale per i circuiti asincroni. 6.6) Esempi di progetto. ESEMPIO Si progetti un divisore binario, cioe' un circuito a un ingresso e un'uscita il cui valore cambi ogni volta che l'ingresso passa da a. Il grafo degli stati e la matrice primitiva delle sequenze sono riportati in fig

164 I circuiti sequenziali asinconi Capitolo 6 / / Ingresso Stato z 4 4/ / 4 4 figura 6.6. Si vede immediatamente che non esistono stati equivalenti e pertanto non e' possibile ridurre il numero di stati. Il diagramma delle transizioni e la relativa tavola delle transizioni sono riportati in fig / / y y / 4/ / / 4/ / figura 6.6. Si ottiene pertanto la seguente tavola di flusso del modello fondamentale. x yy / / / / / / / / y' y' Per ricavare le equazioni del circuito e' opportuno rappresentare separatamente le due mappe delle funzioni y ' e y ', in modo da individuare le eventuali alee statiche. Una volta ottenute le equazioni si verifichera' che non ci siano alee dinamiche; infine ci si occupera' 5

165 I circuiti sequenziali asinconi Capitolo 6 delle alee essenziali, che per la natura logica della matrice delle sequenze, sono inevitabilmente presenti. x yy x yy y' Per evitare alee statiche e' necessario prendere in considerazione nella funzione y' il termine y.y e nella y' il termine y.y. Si ottiene pertanto: y' = x.y y' z = y = x.y + x.y + y.y + x.y + y.y = y = y ( x+ y ) ( x+ y ).. + x.y + x.y Il relativo circuito, realizzato con porte NAND, e' riportato in fig y' _ X 6 _ X 4 Z 5 figura 6.6. Si consideri ora l'uscita del NAND 5. Si ha: Sostituendo y con y si ottiene: Ora y5 = y.y6 = y+ y6 y' + 5 = y.y6 = y y6 5

166 I circuiti sequenziali asinconi Capitolo 6 y + = y.y6 = y y6 e quindi y' 5= y+ y6 = y+ y6 + y6 = y.y6+ y6 = y+ y6 = y5 Infine, sostituendo con la tecnica del bundling y all'ingresso del NAND 6 con gli ingressi del NAND si ottiene il circuito finale di fig X Z figura La struttura circuitale di fig e' priva di alee dinamiche poiche' non vi sono tre itinerari che conducano il segnale x agli elementi di uscita. Inoltre e' praticamente insensibile alle alee essenziali in quanto le y agiscono con un ritardo quasi certamente maggiore di quello della x. uttavia se si volesse un'assoluta certezza di corretto funzionamento sarebbe necessario introdurre un elemento di ritardo in uscita al NAND. ESEMPIO Si vuole realizzare un contatore ad anello, cioe' un circuito a ingresso e n uscite in cui l'uscita z j = quando e solo quando si sono avute j + n.k (k =,,...) variazioni dell'ingresso. utte le altre uscite devono essere nulle. Ponendo n= 4, la matrice delle sequenze e la tavola di flusso sono riportate in fig Ingresso x Stato Uscita y y / / / / 4 / / / / figura 6.6.5,, y y / z z z z 4 Dalla tavola di flusso si possono ricavare le seguenti equazioni di stato e di uscita: 5

167 I circuiti sequenziali asinconi Capitolo 6 y' y' = x.y = x.y z z z z 4 + x.y + y + x.y = x.y = x.y = x.y = x.y Realizzare il relativo circuito in modo che sia privo di alee statiche e dinamiche richiede 8 NAND e 6 invertitori. Una soluzione migliore si puo' ottenere codificando lo stato con quattro variabili e facendo coincidere le variabili di stato con quelle d'uscita. E' necessario tuttavia ricorrere in tal caso a transizioni multiple secondo la tavola di flusso di fig e le relative equazioni di stato e di uscita sono: + y.y.y y y y y 4 x /-- / -- /-- / /-- / /-- / -- / y' = x.y4+ y.y y' = x.y+ y.y y' = x.y+ y.y4 y' 4= x.y+ y.y /-- -- / /--,,,, y y y y 4 / z z z z 4 figura Il relativo circuito richiede solo NAND ed e' riportato in fig Un'importante proprieta' di questo circuito risiede nel fatto che esso e' iterativo; e' cioe' estensibile a qualsiasi 54

168 I circuiti sequenziali asinconi Capitolo 6 numero di uscite con la semplice ripetizione dell'elemento base indicato nel riquadro a tratteggio di fig x _ x x z z z z 4 x _ figura ) Reti Iterative. Una rete iterativa e' una forma altamente ripetitiva di rete logica combinatoria. La struttura ripetitiva rende posssibile descrivere reti iterative utilizzando le tecniche gia' sviluppate per i circuiti sequenziali. Ci si limitera' in questo paragrafo a prendere in considerazione reti iterative monodimensionali, quali quella rappresentata come cascata di celle identiche tra loro in fig. 6.7., in cui e' riportata anche la cella tipica, di cui sono evidenziati gli ingressi e le uscite. Ingressi della rete Ingressi al contorno Cella Cella Cella n Uscite al contorno Uscite della rete (a) Rete iterativa Ingressi primari x x x j j rj Ingressi secondari dalla cella j- y j y j y mj Cella j y,j+ y,j+ y m,j+ Uscite secondarie verso la cella j+ z z z j j rj Uscite primarie (b) Cella tipica figura

169 I circuiti sequenziali asinconi Capitolo 6 Si noti che vi sono due distinti tipi di ingresso, gli ingressi primari, che provengono dall'esterno della rete, e gli ingressi secondari, che provengono da celle precedenti. Allo stesso modo esistono uscite primarie verso il mondo esterno e secondarie verso altre celle della rete. All'estrema sinistra della successione di celle vi sono quelli che vengono chiamati ingressi al contorno (o ingressi al confine), mentre all'estrema destra si hanno, in uscita dall'ultima cella, le uscite al contorno. Spesso gli ingressi al contorno sono dei valori costanti e le uscite al contorno sono le sole uscite della rete verso il mondo esterno. Si noti inoltre che gli ingressi e le uscite al contorno, pur trasferendo informazione verso il mondo esterno, usano la stessa notazione degli ingressi e delle uscite secondarie. Gli esempi che seguono verranno utilizzati per illustrare l'analisi e la sintesi di alcune reti iterative di pratico impiego, facendo vedere che tutte le tecniche usate per la sintesi delle reti sequenziali possono essere utilizzate. ESEMPIO Nella normale pratica si sarebbe portati a considerare un contatore come un blocco unico che rappresenta un circuito sequenziale, ma nel caso che ora verra' preso in esame l'approccio sara' affatto diverso. In genere in un calcolatore si ritiene utile che i registri aritmetici di uso generale possiedano anche capacita' di conteggio. Un buon punto di partenza per conseguire tale obiettivo e' rappresentato dal circuito di fig Come illustrato, gli ingressi x,...,x n provengono da un bus di dati e possono rappresentare il contenuto di un particolare registro. Le uscite z,...,z n della rete iterativa saranno il nuovo contenuto dello stesso registro dopo l'incremento. Evidentemente le operazioni devono essere opportunamente temporizzate e il trasferimento del nuovo dato nel registro avverra' sotto icontrollo di un opportuno segnale dal Data Bus x x x x n AND AND AND AND XOR XOR XOR XOR z z z n z verso il registro figura 6.7. La struttura logica appena descritta rende possibile introdurre capacita' di conteggio in qualsiasi registro, senza includere tale meccanismo in ciascun registro. 56

170 I circuiti sequenziali asinconi Capitolo 6 Molte critiche potrebbero essere fatte nei riguardi del circuito proposto, come ad esempio il fatto che x deve propagarsi attraverso n- livelli di gate AND, che la rete formata dall'and e dallo XOR del bit non e' necessaria e che l'and del bit n e' parimenti non necessario. Si assumera' tuttavia la rete proposta come semplice esempio di rete iterativa. Si prenda ora in considerazione la tipica cella j, rappresentata in fig Nella stessa figura sono anche tabulati i valori di y j+ e z j per tutte le combinazioni di valori che gli ingressi x j e y j possono assumere. Si puo' notare che tale tabulazione ha una corrispondenza formale completa con la tabella di stato di un circuito sequenziale. Gli ingressi primari corrispondono a quelli del circuito sequenziale, gli ingressi secondari corrispondono agli stati attuali, le uscite secondarie prendono il posto degli stati futuri, mentre quelle primarie corrispondono infine alle uscite del circuito sequenziale. x j y j AND y j+ y j y z j+ j x = x = x = x = j j j j (b) XOR z j x q j A A, A, B A, B, (a) q j+, z j (c) figura 6.7. Definendo y i = come stato A e y i = come stato B, la tabella puo' essere trasformata nella tavola di stato di fig (c). Come nei circuiti sequenziali, anche nel progetto di una rete iterativa il primo passo consiste nella trasformazione delle specifiche in una tavola di stato e si possono utilmemte impiegare tutte le tecniche gia' viste in precedenza. ESEMPIO Un insieme di bit x,..., x n rappresenti l'informazione ricevuta da un sistema di comunicazione. Un particolare schema di decodifica richieda che venga verificata la parita' (dispari) sul primo bit, sulla coppia formata dai primi due bit, sui primi tre bit e cosi' via. Si vuol progettare una rete iterativa che realizzi quanto previsto. A questo punto ci si deve rendere conto che le uscite desiderate sono le funzioni simmetriche S S 4,, S,, S, e cosi' via. Si puo' costruire direttamente una tavola di stato 57

171 I circuiti sequenziali asinconi Capitolo 6 imponendo che l'ingresso secondario (stato) alla cella j sia A se la parita' sugli ingressi primari x, x,..., x j- e' dispari, mentre sia B se e' pari. L'uscita z j sia viceversa se la parita' dei bit x, x,...,x j e' dispari. Di conseguenza z j = quando x j = e lo stato di ingresso e' A, oppure quando x j = e lo stato di ingresso e' B. Infine l'uscita secondaria (stato futuro) sara' A quando z j = e B quando z j =. Si ottiene in definitiva la seguente tavola di stato. x j A B A/ B/ B/ A/ e codificando B con y j = e A con y j = si ottiene la seguente semplicissima cella elementare. x j y j y j+ Si consideri infine il seguente esempio, lievemente piu' complesso. z j ESEMPIO Si abbiano n richieste di interruzione x,...,x n inviate ad un microcalcolatore da un certo numero di unita' periferiche, che richiedono un servizio. Si supponga che in un determinato istante tale calcolatore non possa comunicare con piu' di due di queste periferiche e che la priorita' delle interruzioni sia decrescente da a n (x e' cioe' la periferica con la piu' alta priorita'). Si vuole sintetizzare una rete in cui le uscite z, z,..., z n siano tali che non piu' di di esse siano allo stesso istante e corrispondano alle due piu' alte priorita' degli ingressi attivi in quell'istante. Se solamente una richiesta di interruzione e' attiva, solo la corrispondente uscita dovra' venir posta a, mentre tutte le altre uscite dovranno essere nulle. Il problema puo' essere risolto definendo tre ingressi secondari (stati) per la cella j. Il primo stato A indichera' che non vi sono richieste di priorita' maggiore di quella corrente j, lo stato B che ve ne e' una sola, lo stato C che sono attive due o piu' richieste di interruzione a priorita' piu' elevata di j. 58

172 I circuiti sequenziali asinconi Capitolo 6 Di conseguenza si avra' z j = solo se x j = e lo stato e' A o B. Se x j = l'uscita secondaria (stato futuro) sara' uguale allo stato di ingresso, mentre se x j = si passera' dallo stato A allo stato B, dallo stato B allo stato C e dallo stato C si permarra' nello stato C. Si ottiene pertanto la seguente tavola di stato. Stato Ingresso x j = x = j A B C A/ B/ B/ C/ C/ C/ Stato/z j Una buona codifica puo' essere A =, B =, C =, da cui si ricava la seguente tavola di flusso. x y y j,j,j / / / / / / --/- --/- Da questa tavola di flusso si ricavano le equazioni: y y z,j+,j+ j = x = y = y j.y,j,j, j y,j+ y,j+ /z j e la cella elementare che ne risulta e' riportata in fig E' opportuno far notare che, sebbene i circuiti iterativi siano nati con l'introduzione dei circuiti di commutazione a rele', essi hanno assunto un'importanza notevolmente maggiore con l'avvento dei dispositivi LSI. La struttura ripetitiva offre infatti notevoli vantaggi in relazione all'ottimizzazione del layout dell'integrato. Reti iterative mono e bidimensionali permettono infatti di organizzare in modo sistematico funzioni complesse su un singolo chip. + x + x j j.y,j 59

173 I circuiti sequenziali asinconi Capitolo 6 E' possibile inoltre, e risulta evidente da quanto detto, interpretare un circuito sequenziale come una rete iterativa. Queste ultime pertanto possono essere considerate come una tecnica di modellizzazione nella generazione delle sequenze di test dei circuiti integrati sequenzali LSI. x j y,j y,j y,j+ y,j+ z j figura

174 Ccircuiti sequenziali sincroni Capitolo 7 CAPIOLO VII CIRCUII SEQUENZIALI SINCRONI 7.) Introduzione. Nel capitolo precedente sono stati presi in considerazione gli aspetti essenziali, sia dal punto di vista teorico che applicativo, dei circuiti sequenziali asincroni, con riferimento al modello fondamentale, esaminando in dettaglio i problemi relativi alla loro sintesi. Nel presente capitolo verra' affrontato il problema dell'analisi e della sintesi dei circuiti sequenziali sincroni. E' bene mettere in evidenza che per tale tipo di circuiti e' difficile individuare degli esempi che siano allo stesso tempo semplici e significativi. Per tale motivo gli esempi che verranno presi in considerazione avranno un carattere chiaramente artificiale e non dovranno essere considerati esempi significativi di sistemi reali. 7.) Analisi dei circuiti sequenziali sincroni. Come nel caso delle reti elettriche, anche nel caso dei circuiti sequenziali l'analisi e' piu' semplice che non la sintesi. Per illustrare il procedimento sara' bene riferirsi ad un esempio; si consideri pertanto il circuito di fig E' interessante notare che la struttura del circuito e' tale da coincidere perfettamente con il modello fondamentale. Si osservi inoltre che il segnale di clock non ha alcun contenuto informativo per quanto riguarda il funzionamento del circuito nella sua evoluzione da uno stato all'altro, ma serve unicamente a temporizzare le operazioni; esso potra' pertanto essere ignorato nel corso dell'analisi. x z y Q J K _ y Q J K clock figura 7.. Le equazioni di ingresso degli elementi di memoria ( o equazioni di eccitazione ) possono essere determinate dall'analisi della rete combinatoria. Si ottiene: 6

175 y Ccircuiti sequenziali sincroni Capitolo 7 Jy = x K y = x = z = ( x y ). y K y = ( x+ y ). y J + A partire da queste equazioni, utilizzando le equazioni di eccitazione del flip-flop JK, si determinano le equazioni di stato degli elementi di memoria y e y. Poiche' per un flip - flop JK si ha: n+ n y = J.y + K si ottiene, tenendo presente che per ciascun elemento di memoria K n n.y n+ n n n n n = x.y + x.y x y = n = J: n n n n n n n n n ( x + y ).y + ( x + y ).y.y = ( x y ). n n+ = y y + Da tali equazioni si puo' ottenere la tavola di transizione del circuito sequenziale che n permette di valutare per ogni combinazione di x,y n n e y i valori di y n+,y n+ e z n. E' semplice seguire sulla tavola di transizione l'evoluzione del circuito, tenendo presente che per ciascun impulso di clock si puo' avere un'unica variazione di stato. n Se ad esempio x = y n = e y n = si ha z n =. All'istante n+, cioe' dopo il successivo impulso di clock, si ha y + =,y + = e nell'ipotesi che x n+ n sia sempre pari a, z + =. n n n y y n x n / / / / / / / / n+ n+ y y /z La tavola di transizione tende a diventare piuttosto voluminosa al crescere del numero di variabili. Si puo' semplificare la notazione codificando con q, q, q e q 4 le quattro combinazioni di y e y ed operando analogamente nel caso di ingressi e uscite multiple, indicando rispettivamente con x i e z i le diverse combinazioni di ingressi e uscite. Combinando, come illustrato in fig. 7.. (a) la parte relativa all'uscita e quella relativa al prossimo stato, si ottiene quella che viene chiamata tabella di stato. La stessa informazione contenuta nella tabella di stato puo' essere visualizzata graficamente con il diagramma di stato, riportato in fig. 7.. (b), il cui significato e' gia' stato n 6

176 Ccircuiti sequenziali sincroni Capitolo 7 illustrato in precedenza. La rappresentazione e' evidentemente perfettamente equivalente a quella di Mealy adottata per le macchine sequenziali. Ingresso x = x = Stato q q, q, q q, q 4, q q, q 4, q q, q, 4 n n / q q q / / / / / / / q 4 (a) figura 7.. (b) 7.) Procedura di progetto. La procedura di analisi illustrata al paragrafo precedente procede attraverso i seguenti passi: Circuito Equazioni di ingresso degli elementi di memoria Equazioni di stato futuro avola delle transizioni abella di stato La sintesi procede in direzione opposta a quella dell'analisi; la principale differenza consiste nel fatto che la sintesi parte ancor prima che esista un diagramma o una tabella di stato. ale diagramma viene infatti di solito ottenuto da una qualsiasi descrizione del problema, che di solito consiste in una rappresentazione non ambigua a parole di cio' che il circuito deve fare. La procedura di sintesi e' illustrata in fig Diagramma di stato Equazioni di eccitazione della memoria Descrizione funzionale abella di stato Minimizzazione avola di transizione Circuito figura 7.. Una notevole attenzione deve essere dedicata ai primi due passi, cioe' nel determinare la tabella di stato e nel ricavare poi la tabella di stato minima. 6

177 Ccircuiti sequenziali sincroni Capitolo 7 A partire da quest'ultima si puo' ottenere un circuito senza grosse difficolta'. Risulta invece notevolmente difficile ottenere il circuito piu' economico in quanto la complessita' delle equazioni di ingresso degli elementi di memoria varia con le diverse codificazioni dello stato. 7.4) Sintesi del diagramma di stato. La determinazione della tavola di stato tramite un algoritmo e' possibile solamente se il comportamento del circuito e' descritto in forma di espressione regolare. Si lascera' tuttavia la discussione delle espressioni regolari a testi di teoria degli automi, assumendo per i nostri scopi che la prima descrizione formale di un circuito sequenziale sia il diagramma di stato. Attraverso l'uso di questo diagramma si puo' ottenere, come illustrato in fig. 7.., la tabella di stato. La determinazione del diagramma di stato si rivela particolarmente semplice per quei circuiti per i quali e' facilmente identificabile uno stato chiamato stato di reset. Quando tale stato esiste, vi deve essere la possibilita' di portare il circuito nella condizione di reset, a partire da un qualsiasi altro stato, con un'unica operazione. Essa puo' essere realizzata con una speciale colonna di ingresso sulla tabella di stato, oppure puo' essere considerata una funzione completamente indipendente da tale tabella. Ad esempio si puo' connettere una linea speciale a tutti i flip-flop per azzerarli al momento opportuno. Per compiere l'operazione di reset la linea puo' essere collegata sia agli ingressi considerati nell'implementazione della tabella di stato, sia, come spesso avviene, ad ingressi separati. ESEMPIO (Reset eseguito con meccanismo separato) In un particolare sistema di comunicazione l'inizio di un messaggio sia identificato dalla presenza di tre consecutivi sulla linea di ingresso x. I dati su questa linea siano sincronizzati da un impulso di clock. Si voglia progettare un circuito sequenziale sincrono la cui uscita diventi solo in corrispondenza al riconoscimento di inizio messaggio. Vi sia inoltre un meccanismo separato di reset che possa riportare il circuito nello stato q che precede l'inizio di un messaggio. Il comportamento tipico del circuito e' illustrato in fig x Clock Rivelatore di inizio messaggio z x clock z figura 7.4. La sintesi prende le mosse fissando lo stato di reset q, come illustrato in fig (a). A partire da questo stato il circuito deve conteggiare il numero di ricevuti consecutivamente; cio' viene realizzato passando ad un nuovo stato ogni volta che viene ricevuto un nuovo. 64

178 Ccircuiti sequenziali sincroni Capitolo 7 / / / q q q q / (a) / / / / q q / q q / / / / / q 4 (b) / figura 7.4. Come e' illustrato in fig il circuito si porta nello stato q quando viene ricevuto il primo e nello stato q quando viene ricevuto il secondo. L'uscita associata a ciascuna di queste transizioni e'. Il terzo consecutivo che perviene in ingresso manda il circuito in q e genera un'uscita. Giunto in q il circuito vi rimane, qualsiasi sia l'ingresso, ed ha uscita nulla finche' non viene riportato in q secondo un meccanismo esterno che non e' illustrato nella tabella di stato di fig Stato Ingresso q q q q q 4 q, q, 4 q, q, 4 q, q, 4 q, q, q, q, 4 figura 7.4. Poiche' uno in ingresso si puo' presentare in qualsiasi periodo di clock, interrompendo una sequenza di, e' stato previsto uno stato q 4. Qualsiasi in ingresso, a meno che il circuito non si trovi gia' nello stato q, genera un'uscita e porta il circuito nello stato q 4 ; tutti gli successivi e consecutivi non fanno altro che lasciare il circuito in q 4, mentre un, che potrebbe iniziare una sequenza di tre consecutivi, riporta il circuito in q. 65

179 Ccircuiti sequenziali sincroni Capitolo 7 utte le possibili sequenze di ingresso sono state in tal modo prese in considerazione. E' immediato verificare che in corrispondenza a ciascun stato compaiono sul grafo le transizioni relative ad ambedue gli ingressi. Si ha cioe' una macchina sequenziale completa. Si puo' notare che lo stato q 4 potrebbe essere eliminato riportando il circuito nello stato q quando si ha in ingresso uno. In generale infatti, quando possibile, si utilizzano stati gia' esistenti come prossimo stato. uttavia essendo la costruzione del diagramma di stato una procedura intuitiva, qualora ci sia il dubbio se sia necessario definire un nuovo stato o utilizzarne uno gia' esistente, e' bene introdurre un nuovo stato per evitare seri errori. ESEMPIO (Reset eseguito con un opportuno ingresso) Numeri compresi tra e 7 vengono trasmessi in forma seriale binaria su una linea x, con i bit ordinati dal piu' al meno significativo. Si vuol progettare un circuito che fornisca un'uscita z = in corrispondenza al terzo bit di uno dei due valori estremi e 7. In caso contrario dovra' essere z =. Esista inoltre un ulteriore ingresso d tale che, se vale ad un determinato istante di clock, allora al successivo impulso di clock si abbia l'arrivo del bit piu' significativo di un messaggio. Si imponga che la condizione d = porti il circuito in uno stato a di reset. La tabella di stato puo' essere costruita considerando d come un meccanismo esterno di reset, e solo successivamente integrando d come ingresso nella tabella di stato. Partendo dallo stato a si puo' costruire un grafo come illustrato in fig I numeri e 7 sono rivelati all'istante del terzo ingresso e precisamente se uno viene applicato allo stato d o un allo stato g. Il terzo ingresso deve inoltre portare il circuito in uno stato tale che ulteriori uscite uguali a siano impossibili. Gli stati e ed f soddisfano queste specifiche e il circuito dopo aver raggiunto uno di tali stati vi permane indefinitamente. / d a / / b c / / / / / e f / / g / / / / Ingresso x Stato a b/ c/ b d/ e/ c f/ g/ d e/ e/ e e/ e/ f f/ f/ g f/ f/ figura Si puo' notare tuttavia che il circuito funziona allo stesso modo una volta che abbia raggiunto lo stato e oppure lo stato f. Quindi, a rigore, solo uno di tali stati e' necessario; ad esempio la riga f della tavola di flusso di fig puo' essere soppressa e nella tavola stessa f puo' essere sostituito ovunque da e senza alterare in alcunche' il funzionamento del circuito. enendo conto anche dell'effetto dell'ingresso d e codificando l'ingresso secondo quanto illustrato in fig (a) si ottiene la tabella di stato di fig (b). 66

180 Ccircuiti sequenziali sincroni Capitolo 7 Le prime due colonne sono la copia della tavola di flusso di fig mentre i rimanenti due ingressi fanno evolvere il sistema verso lo stato a di reset.la tabella di stato di fig (b) realizza quindi quanto esposto nelle specifiche senza la necessita' di alcun meccanismo separato di reset. X Stato 4 d.x X a b/ c/ a/ a/ b d/ e/ a/ a/ c f/ g/ a/ a/ d e/ e/ a/ a/ 4 e e/ e/ a/ a/ f f/ f/ a/ a/ g f/ f/ a/ a/ (a) (b) figura Il metodo di determinazione del diagramma degli stati che e' stato esposto e' del tutto generale. In assenza di uno specifico stato di reset si puo' usare come punto di partenza un qualsiasi stato; tuttavia in assenza di uno stato di partenza ben determinato e distinguibile dagli altri, il grafo che si costruisce puo' raggiungere notevoli dimensioni. Per contenere tali dimensioni e' bene che gli archi del grafo puntino a stati esistenti, a partire dai quali si ha lo stesso comportamento futuro, piuttosto che a nuovi stati appena definiti. 7.5) Circuiti a memoria finita. In fig e' illustrata una versione equivalente del circuito di fig. 7.. in cui i flipflop JK sono stati sostituiti dai flip-flop D. Ricordando che l'uscita di un flip-flop di tipo D al tempo t n e' uguale al valore dell'ingresso al tempo immediatamente precedente t n-, si vede che nel caso in esame l'uscita e' funzione solamente dell'ingresso attuale e dell'ingresso e dell'uscita all'istante immediatamente precedente. Si ha cioe': z n = f n n n ( x, x,z ) E' questo un esempio di circuito a memoria finita, nel senso che esso puo' ricordare solamente un numero finito di ingressi e uscite passate per determinare l'uscita attuale e lo stato futuro. Si noti che la dizione "finito" non ha nulla a che fare con la capacita' di memoria in bit, che e' ovviamente sempre e comunque limitata. 67

181 Ccircuiti sequenziali sincroni Capitolo 7 Una versione generalizzata di circuito a memoria finita e' illustrata in fig (b), in cui vengono memorizzati r ingressi precedenti e s uscite. L'uscita attuale e' funzione di queste informazioni memorizzate e dell'ingresso attuale x. n X D Q X n- Z n (a) Z n- Q D Clock Clock D Q X n- X n- X n- X n-r D Q D Q D Q (b) n X n n n- n-r n- n-s Z = f(x,x,...,x,z,...,z ) Zn Z n-s Q D Z n- Q D Z n- Q D Z n- Q D figura 7.5. Ovviamente x e z possono essere dei vettori rappresentanti rispettivamente parecchie linee di ingresso e di uscita. Allo stesso modo i flip-flop D possono rappresentare anziche' un singolo flip-flop, un insieme monodimensionale di flip-flop, uno per ciascuna linea di input o di output. Non tutti i circuiti sequenziali sono a memoria finita. Negli esempi e del paragrafo precedente il circuito doveva fornire un'uscita in corrispondenza ad alcune particolari sequenze di ingresso, e non vi doveva essere nessuna altra uscita se prima non fosse stato applicato un opportuno segnale di reset. ali circuiti quindi erano in grado di ricordare una particolare sequenza di ingresso o di uscita, presentatasi in precedenza, ad una distanza temporale (o se si vuole per un numero di impulsi di clock) arbitrariamente grande. E' spesso possibile riconoscere un circuito a memoria finita dalle sue specifiche di progetto e tale riconoscimento puo' sovente semplificare la procedura di sintesi. Quando infatti si sappia che il circuito e' a memoria finita, si puo' in genere specificare un limite superiore per la dimensione della memoria; si puo' cioe' fissare il massimo numero di stati interni e ricavare direttamente la tavola delle transizioni o quella di stato, come viene illustrato nel seguente esempio. ESEMPIO Alcuni bit di informazioni siano codificati su una linea x e sincronizzati da un clock. I bit siano codificati in modo che sulla linea x non possano mai apparire o piu' simboli o 4 o piu' simboli consecutivi. 68

182 Ccircuiti sequenziali sincroni Capitolo 7 Si voglia progettare un circuito rivelatore di errore che dia un'uscita pari a in corrispondenza o al quarto o al secondo consecutivo sulla linea x. Se, ad esempio, si dovessero avere tre consecutivi sulla linea x, l'uscita dovrebbe rimanere alta per i due ultimi periodi di clock. E' immediato riconoscere che il circuito da progettare e' un circuito a memoria finita. Anzi il caso che si sta esaminando potrebbe essere definito a memoria finita dell'ingresso, poiche' per un corretto funzionamento e' sufficiente memorizzare un certo numero di valori passati dell'ingresso. Nel caso peggiore il circuito dovra' memorizzare tre ingressi precedenti: se essi fossero stati e l'ingresso attuale fosse ancora l'uscita dovra' commutare a.un circuito che soddisfi quanto enunciato puo' avere la struttura di fig (a). I bit in arrivo vengono memorizzati nella catena di flip-flop in modo che in qualsiasi istante y y y n n n = x = x = x n n n La rete logica combinatoria provvedera' poi a sintetizzare l'uscita sulla base dei dati memorizzati e dell'ingresso attuale. La tavola di transizione del circuito in questione puo' allora essere ricavata direttamente, come illustrato in fig (b). X n D Q Y Y D Q D Q Y X n- n- n- X X Z n = f(x n,x n-,x n-,x n- ) Z n (a) yyy X,, Stato X a a, e,,, b a, e,,, c b, f,,, d b, f,,, e c, g,,, f c, g,,, g d, h,,, h d, h, (b) (c) figura 7.5. Come prima cosa e' necessario listare tutte le otto combinazioni delle variabili di stato. In corrispondenza a ciascuna di esse lo stato futuro resta determinato osservando che per ogni 69

183 Ccircuiti sequenziali sincroni Capitolo 7 impulso di clock le variabili di stato si spostano di una posizione a destra nella catena di flipflop D e il posto che si rende disponibile viene occupato dell'ingresso attuale. Per completare la tavola delle transizioni e' infine necessario assegnare il valore dell'uscita. Nel caso specifico si ottiene: z = x.y + x.y.y. y Sebbene il circuito di fig 7.5. (a) sia perfettamente in grado di funzionare esso non e' certamente il minimo. Infatti in un solo caso e' necessario memorizzare i tre precedenti valori dell'ingresso. Se infatti x n- =, non e' necessario conoscere quanto valevano x n- e x n- ; e' quindi evidente che possono essere sufficienti meno di 8 stati interni. In un circuito con memoria finita dell'ingresso del tipo di quello illustrato in fig la memoria agisce in sostanza come un convertitore serie parallelo. Le informazioni di ingresso, necessarie a determinare l'uscita, arrivano cioe' in una sequenza temporale e il circuito semplicemente le memorizza per utilizzarle poi in un unico istante tramite una rete combinatoria. In conclusione, se si puo' determinare che ad ogni istante l'uscita di un circuito sequenziale dipende da non piu' di un certo numero di ingressi precedenti, allora per la determinazione della tavola delle transizioni si puo' utilizzare l'approccio descritto nell'esempio precedente. Se la piu' lunga sequenza di ingresso da memorizzare e' lunga n, si dira' allora che la memoria finita dell'ingresso e' lunga n e saranno necessari n elementi di memoria per ciascuna linea di ingresso; nel caso in cui il segnale di ingresso sia unico la memoria potra' allora avere n possibili stati, cioe' potranno essere memorizzate n distinte sequenze di ingresso di lunghezza n. Se l'uscita deve essere diversa per ciascuna di queste n sequenze allora il circuito di fig (a) e' il piu' economico e compito del progettista sara' solo quello di determinare la rete di uscita. Se invece l'uscita in corrispondenza a diverse sequenze di ingresso e' sempre la stessa, allora puo' essere sufficiente un numero inferiore di elementi di memoria. Nell'esempio si e' presa in considerazione una memoria di lunghezza e le sequenze memorizzabili sono in numero di 8. Si e' tuttavia messo in evidenza che tutte le sequenze per le quali x n- = producono la stessa uscita; di conseguenza non e' necessario che la memoria distingua le quattro configurazioni con tale caratteristica ed e' quindi possibile ridurre la memoria classificando i messaggi di ingresso all'atto del loro arrivo. Riducendo in tal modo la memoria, la forma del circuito puo' differire da quella di fig nel senso che l'uscita dei flip-flop di memoria non sara' semplicemente uguale ai precedenti ingressi, ma sara' funzione di essi. La sintesi tuttavia puo' essere eseguita anche a partire dalla tavola di stato ricavata dal circuito base, minimizzando poi il numero di stati necessari. Quando la forma del circuito deve essere quella di fig la tavola delle transizioni, una volta che sia stata fissata la lunghezza della memoria, e' unica. In fig e sono riportate le tavole di transizione per memorie di lunghezza 4, e rispettivamente. 7

184 Ccircuiti sequenziali sincroni Capitolo 7 x x n- x n- x n- x n-4 q n a a i n b a i c b l d b l e c m f c m g d n h d n i e p l e p m f q n f q p g r q g r r h s s h s figura 7.5. Unico compito del progettista sara' in questo caso assegnare l'appropriato valore delle uscite. x n x n- x n- x n- q n x n a a e x n- x n- q n b a e a a d c b f b a d d b f d b c e d h c b c f d h g c g h c g figura Sebbene i circuiti con memoria finita dell'ingresso siano i piu' facili da riconoscere e da progettare, sono importanti anche i circuiti a memoria finita la cui struttura generale e' 7

185 Ccircuiti sequenziali sincroni Capitolo 7 riportata in fig (b). Infatti riconoscere il carattere di memoria finita puo' far notevolmente semplificare la procedura di progetto, come e' illustrato nell'esempio che segue. ESEMPIO Si voglia progettare un contatore bidirezionale a bit (modulo 8). Il conteggio debba apparire in forma di numero binario su tre linee di uscita z, z e z con z bit piu' significativo. Il conteggio procedera' con ogni impulso di clock e sara' un conteggio in avanti quando un ingresso x vale mentre sara' all'indietro se x vale. Si riconosce immediatamente che il contatore bidirezionale e' un dispositivo a memoria finita dell'uscita con una lunghezza di memoria pari a. Il valore dell'uscita z e' infatti funzione solo del suo valore immediatamente precedente e del valore attuale dell'ingresso. Poiche' z e' un vettore di tre bit, di componenti z,z e z, saranno necessari tre flip-flop per rappresentare un suo valore precedente. Una possibile configurazione circuitale e la corrispondente tavola delle transizioni sono riportate in fig La tavola delle transizioni e' costruita direttamente notando che il valore attuale desiderato per le uscite corrisponde con il valore futuro delle variabili di stato. E' evidente che per un contatore modulo 8 sono necessari 8 stati e quindi la tavola di fig (b) e' minima. Y Q D z n- x Y Q D Y Q D X z = f (x n, z n- ) Z Z Z z n =(y,y,y ) n+ (a) (b) figura Se la struttura del circuito di fig (a) e' soddisfacente si puo' procedere direttamente al progetto dei circuiti combinatori che realizzano l'uscita desiderata. uttavia, sebbene la tavola delle transizioni sia minima, la forma del circuito di fig (a) non e' la sola possibile. E' possibile infatti usare differenti tipi di flip-flop e in tal caso non e' necessario che le variabili di stato siano uguali alla piu' recente uscita. In fig sono riportati tavola di stato e diagramma degli stati del circuito di fig (a). 7

186 Ccircuiti sequenziali sincroni Capitolo 7 /7 q 6 /6 / q 7 /6 /5 q /4 5 /5 /7 q 4 q / / q / / q / / / q /4 x n qn q q q q q 4 q 5 q 6 q 7 q /7 q / 7 q / q / q / q / q / q /4 4 q / q /5 5 q /4 q /6 4 6 q /5 q /7 5 7 q /6 q / 6 (a) figura (b) Nei due esempi di questo paragrafo e negli esempi dei paragrafi precedenti sono stati descritti due distinti approcci alla sintesi della tavola di stato. alvolta la massima difficolta', specialmente per chi non abbia ancora accumulato una sufficiente esperienza, sta nel decidere quale metodo usare. Se il problema puo' essere riconosciuto senza equivoci come un caso di memoria finita, allora e' preferibile la sintesi diretta della tabella di stato o di quella delle transizioni. Al contrario e' migliore l'approccio attraverso il diagramma di stato se si puo' individuare uno stato di reset o comunque uno stato di partenza. Di solito infatti una macchina sequenziale che possieda uno stato di reset e' una macchina a memoria non finita. Per tali macchine di solito si giunge in uno stato in cui si permane indefinitamente oppure si cicla su un sottoinsieme dei suoi stati dopo aver fornito la risposta desiderata. Per rendere la macchina riutilizzabile e' necessario riportarla con un'opportuna sequenza di ingresso nello stato iniziale. Una sequenza fissa che compia tale operazione e' detta sequenza di sincronizzazione, mentre lo stato su cui si ritorna con tale operazione viene detto stato di reset. Spesso, come si e' visto negli esempi del paragrafo precedente, la sequenza di sincronizzazione viene realizzata con un singolo ingresso o con una speciale linea detta linea di reset. ESEMPIO Si riprogetti lo stesso circuito dell'esempio del paragrafo 7.4 con la differenza che ora la linea d di reset non sia presente. Al suo posto l'inizio di un nuovo carattere sia segnalato da una sequenza di tre, che puo' iniziare in qualsiasi istante dopo che un carattere di bit sia stato esaminato. Il diagramma di stato fino allo stato g e' lo stesso di quello di fig con gli stati e ed f combinati assieme. Si intuisce che lo stato e e' lo stato di tenuta, caratteristico dei circuiti a memoria non finita. L'operazione di reset e' ora realizzata con una sequenza di tre che porta il circuito dallo stato e allo stato a attraverso gli stati h e i. La tavola di stato risultante e' illustrata in fig (b). In alcuni problemi non e' possibile identificare ne' uno stato di reset, ne' una dimensione finita della memoria. In tali casi si puo' scegliere arbitrariamente un qualsiasi stato, la cui storia passata sia ricostruibile al meglio, ed utilizzarlo come stato iniziale. E' tuttavia 7

187 Ccircuiti sequenziali sincroni Capitolo 7 necessario porre in tal caso estrema attenzione nel generare la tavola di stato. Solo occasionalmente puo' avvenire di trovarsi in presenza di una macchina a memoria finita dotata di uno stato di reset: in tal caso l'uno o l'altro approccio sono ugualmente validi. a x q a b, c, / / b d, e, c b / / / /,/,/ g e d / / c d e e, g, e, e, e, h, / / / g e, e, h / i h e, i, i e, a, (a) (b) figura ) Minimizzazione degli stati. Si e' gia' visto al capitolo V che, assegnata una macchina sequenziale M, e' sempre possibile determinare una macchina minima equivalente (o compatibile se la macchina di partenza non e' completa) M'. In campo circuitale ridurre il numero di stati significa ridurre il numero di elementi di memoria necessari, pervenendo quindi a circuiti piu' semplici e piu' economici. x Stato q q q q q q q q q / q / 4 q / q / 4 q / q / 5 q / q / 5 q / q / 6 q / q / 6 q / q / 7 q / q / 7 figura 7.6. E' opportuno tuttavia notare che non sempre la riduzione del numero di stati porta ad una riduzione degli elementi di memoria; in effetti, cio' che conta a tal fine e' che venga ridotto il numero delle variabili necessarie a codificare gli stati. 74

188 Ccircuiti sequenziali sincroni Capitolo 7 Indicando con s il numero degli stati, il numero delle variabili usato per la codifica e' il piu' piccolo intero che approssima per eccesso il log s. Si voglia ad esempio minimizzare la tavola degli stati ricavata per l'esempio del paragrafo 7.5, e riportata in fig La tabella di evoluzione delle coppie di stati compatibili rispetto all'uscita e' riportata in fig Ingresso Coppie α - compatibili q,q q,q q,q 4 5 q,q q,q q,q q,q q,q q,q q,q q,q q,q q,q q,q q,q q,q 4 5 q,q q,q q,q 5 5 q,q q,q q,q q,q q,q q,q q,q q,q figura 7.6. Le coppie q, q e q, q rimangono escluse in quanto non evolvono verso coppie compatibili rispetto all'uscita. ra le coppie di stati compatibili puo' poi essere messa in luce una relazione di mutua compatibilita' tra gli stati q 4, q 5, q 6 e q 7. Le classi di stati equivalenti sono quindi: S ={q } S = {q } S = {q,q } S = {q 4,q 5,q 6,q 7 } Pertanto a partire dalla macchina di fig (a), in cui sono evidenziate le classi di stati equivalenti, si perviene a quella minima di fig (b). 75

189 Ccircuiti sequenziali sincroni Capitolo 7 / q / / q q 4 6 / S / S q / / q 5 7 / / q' / q' / q' / / / S q / q / (a) S q / q' (b) / / figura ) Codificazione e determinazione delle equazioni di eccitazione. Dopo che con il metodo di Ginsburg sia stata ottenuta la tavola di stato minima, rimane da realizzare il circuito il cui funzionamento e' descritto da tale tavola. E' bene dire subito che la ricerca della massima economia non si esaurisce con la minimizzazione del numero degli stati. E' infatti vero che il numero degli elementi di memoria diminuisce con il ridursi del numero di stati, ma e' anche vero che la massima economia si ottiene con uno sviluppo opportuno della rete combinatoria che sintetizza l'uscita e le variabili di eccitazione degli elementi di memoria. Puo' pertanto verificarsi il caso in cui una tavola di stato diversa da quella minima richieda una logica combinatoria meno complessa e quindi nel totale porti a una realizzazione piu' economica. Se la sintesi della tavola di stato e' stata fatta con la tecnica dei sistemi a memoria finita e la riduzione del numero di stati non ha portato all'eliminazione di nessun elemento di memoria, allora la struttura del circuito sara' quella di fig (b). Poiche' secondo tale struttura gli ingressi e le uscite vengono semplicemente memorizzati, non vi e' alcuna necessita' di una rete combinatoria per realizzare lo stato futuro. Altre strutture circuitali potrebbero dare logiche di uscita piu' semplici, ma non e' affatto garantito che il circuito nel suo complesso risulti piu' economico. Se la struttura a memoria finita non risulta appropriata, il problema di scegliere la migliore realizzazione e' sfortunatamente molto difficile da risolvere. Si ricordi infatti che, se r sono le variabili utilizzate per codificare lo stato, allora ogni stato corrisponde a una delle r combinazioni delle variabili. Il primo problema e' quindi quello di decidere quale delle r combinazioni debba esser fatta corrispondere a ciascun stato. Se il numero di stati m e' tale che: r < m allora sono necessarie r variabili di stato e vi sono r 76

190 Ccircuiti sequenziali sincroni Capitolo 7 r! r ( m)! modi di codificare gli m stati. Ad esempio, il problema di assegnare le combinazioni delle variabili di stato a ciascuno di quattro stati puo' essere visualizzato assegnando i quattro stati ai quattro vertici di un quadrato. In fig sono illustrate di queste assegnazioni. Ogni altra possibile assegnazione puo' essere ottenuta come rotazione e/o specularita' di uno dei tre modi fondamentali di fig e corrisponde a variare l'ordine delle variabili e negarle. ali operazioni non hanno effetto per quanto riguarda la complessita' del circuito. d c d b b d a b a c a c (a) (b) (c) figura 7.7. In maniera analoga si puo' ragionare per qualsiasi numero di stati; il numero delle diverse assegnazioni distinte in funzione del numero di stati e' riportato in fig Numero di stati Numero di variabili Assegnazione distinte figura 7.7. Per i circuiti con soli due stati vi e' una sola possibilita' di scelta e non vi e' quindi alcun problema di assegnazione. Per circuiti con tre o quattro stati la via piu' efficace per risolvere il 77

191 Ccircuiti sequenziali sincroni Capitolo 7 problema e' quella di provare tutte le tre possibili assegnazioni e verificare quale di esse produce il circuito piu' economico. Per piu' di quattro stati l'enumerazione completa e' ovviamente impossibile; si rende necessario un qualche metodo di sviluppo che porti ad una buona assegnazione a partire dalla tavola di stato. Si consideri la tavola di stato di fig. 7.7., che e' la tavola minima per il circuito rivelatore di inizio messaggio dell'esempio del paragrafo 7.4, dove con a e' stato indicato l'insieme degli stati {q,q 4 } e con b, c, d gli stati q, q e q rispettivamente. In fig (a),(b),(c) sono riportate le tavole di flusso che si ottengono con le tre possibili assegnazioni di fig Poiche' vi e' una sola uscita, l'assegnazione della codifica non modifica in alcun modo il costo della rete di uscita e pertanto la parte della tavola di flusso relativa a quest'ultima grandezza viene omessa per motivi di chiarezza. Ingresso Stato a b c d a/ a/ a/ d/ c/ d/ b/ d/ figura 7.7. Il passo successivo della sintesi consiste nel tradurre la tavola di flusso nelle mappe di Karnaugh, o meglio nelle mappe di eccitazione, che rappresentano le equazioni di ingresso degli elementi di memoria. stato Ingresso attuale a stato Ingresso attuale a stato Ingresso attuale a b b b c c c d d d (a) (b) (c) figura Al capitolo V sono state sviluppate le mappe che rappresentano lo stato futuro in funzione dello stato presente e degli ingressi per i piu' comuni tipi di flip-flop. Agli scopi che 78

192 Ccircuiti sequenziali sincroni Capitolo 7 ci si propone in questo capitolo e' opportuno modificare leggermente la forma in cui sono presentate queste informazioni. Se, ad esempio, si considera un flip-flop JK la mappa ricavata in precedenza e' riportata in fig (a) mentre in fig (b) si ha quella che viene chiamata lista delle transizioni ed in cui viene assegnata la condizione degli ingressi necessaria ad ottenere una tra le quattro possibili transizioni di stato. Si noti che con i valori soprassegnati si intende la transizione dell'uscita verso il relativo valore, mentre i valori senza soprassegno indicano la permanenza dell'uscita al valore precedente. n Q JK n Q -- n+ Q J K n+ Q (a) figura (b) Le liste di transizione per i flip-flop RS, D e sono riportate in fig n Q -- n+ Q S R n Q -- n+ Q D n Q -- n+ Q - - figura Per sviluppare le mappe di eccitazione per l'assegnazione di fig (a) e' necessario considerare una variabile di stato alla volta e costruire le due mappe di eccitazione per J e K utilizzando la lista di transizione di fig (b). Si ottiene: 79

193 Ccircuiti sequenziali sincroni Capitolo 7 y y x y y x y y x y' J y K y y y x y y x y y x y' figura J y K y Da tali mappe si puo' ottenere la realizzazione minima, facendo notare che il problema va affrontato come problema di minimizzazione di un circuito multiterminale. Le equazioni che si ricavano sono: J y = x y K = y J y = x. y K y = x + y z = x.y. y Procedendo analogamente per le assegnazioni di fig (b) e (c) si ottiene: e rispettivamente J y = x. y y x. y K = J y = x. y K y = x + y z = x.y. J y = x. y y x. y y K = x z = x.y. y J y = K y = y La prima e la terza assegnazione sono approssimativamente equivalenti; la terza assegnazione e' eventualmente preferibile in quanto usa solo dei gate AND mentre la prima usa anche un gate OR. Il relativo circuito e' riportato in fig

194 Ccircuiti sequenziali sincroni Capitolo 7 x x.y x.y x.y.y _ J K J K Q Q y _ y y _ y z Clock figura A scopo di maggior chiarezza si consideri ancora il seguente esempio. Si voglia realizzare il circuito relativo all'esempio del paragrafo 7.5 utilizzando flipflop RS. La tavola di stato minima e' riportata in fig (a) mentre in fig (b) si ha la tavola di flusso relativa all'assegnazione (b). Gli stati a, b, c, d corrispondono rispettivamente agli stati {a}, {c,d}, {e,f,g,h} e {b} della tavola di stato di fig (b). Ingresso Stato Stato Ingresso a a/ c/ a / / b d/ c/ c / / c b/ c/ b / / d a/ c/ d / / (a) figura (b) Le relative mappe di eccitazione dei due flip-flop RS sono: 8

195 Ccircuiti sequenziali sincroni Capitolo 7 Ingresso Ingresso Ingresso Stato Stato Stato S y R y S y figura 7.7. Ingresso Stato - - R y Le equazioni di eccitazione sono: s y = x. y R y x+ y = x z = x.y +.y x.y. y S y = R y = x. y Le assegnazioni (a) e (c) danno luogo rispettivamente alle equazioni: e rispettivamente S + y = x y. y y x. y R = x z = x.y +.y x.y. y S y = R y = x. y S y = x.y. y R y = x+ y. y S y = x+ y. y R y = x. y z = x.y +.y x.y. y L'assegnazione 7.7. (b) da' evidentemente luogo alle equazioni piu' semplici a partire dalle quali e' immediato disegnare il circuito. Avendo a che fare con circuiti a tre o quattro stati la procedura esposta, per quanto complessa e noiosa, e' quella che garantisce il miglior risultato. uttavia, quando gli stati siano cinque o piu', non e' evidentemente possibile provare tutte le assegnazioni che si possono realizzare. E' necessario pertanto individuare alcune regole e mettere a punto dei modi operativi che permettano di ottenere con uno sforzo ragionevolmente limitato un buon risultato. Per individuare tali regole e' opportuno esaminare piu' attentamente gli esempi precedenti allo scopo di vedere se vi sia qualche caratteristica che permetta di prevedere in anticipo quale assegnazione conduce alla realizzazione minima. In fig sono riportate le tavole di stato per le tre assegnazioni possibili in riferimento agli ultimi due esempi visti, con gli stati ordinati secondo il codice ciclico della mappa di Karnaugh. L'assegnazione che da' luogo al risultato migliore e' evidenziata circondandola con una linea tratteggiata. Dall'osservazione delle due mappe racchiuse nel tratteggio si deduce che l'assegnazione scelta tende a riunire gli ingressi relativi a stati futuri uguali. 8

196 Ccircuiti sequenziali sincroni Capitolo 7 Ad esempio per il caso di fig (a) si puo' notare che lo stato futuro in corrispondenza all'ingresso x = per gli stati attuali b e d e' lo stato d. Ne risulta che il valore delle variabili di stato per lo stato futuro sara' identico. Stato a b c d Ingresso a c a d a b d d Stato a c b d Ingresso a c a b a d d d A Stato a c d b Ingresso a c a b d d a d Ingresso Stato a a c Ingresso Stato a a c Ingresso Stato a a c b c d b c c B c b b d c c c d b a c c d a c d a c b d c figura 7.7. Se quindi gli stati b e d vengono codificati con configurazioni che distano, allora il valore presente di una delle variabili di stato sara' identico per ambedue gli stati. Di conseguenza la commutazione per tale variabile di stato sara' la stessa per ambedue i punti di ingresso e anche sulla tavola di eccitazione si avra' la medesima situazione. Le condizioni messe in luce sono importanti in quanto la mappa di eccitazione dara' luogo a equazioni piu' semplici se gli, gli e le condizioni non specificate saranno, per quanto possibile, raggruppati tra loro. Nel caso che si sta esaminando, l'assegnazione prescelta attribuisce valore identico alla variabile y per gli stati b e d, e pertanto le corrispondenti transizioni di y per x= sono identiche. Il risultato si vede chiaramente nelle mappe di eccitazione di fig ; infatti in quella J y si hanno due condizioni non specificate, mentre in quella K y si hanno due zeri adiacenti. Regola base per ottenere un buon risultato sara' pertanto quello di raggruppare, per quanto possibile, gli ingressi relativi a stati futuri uguali. Vi sono tuttavia molti modi per ottenere questi raggruppamenti e la regola base teste' enunciata puo' essere espansa e resa piu' specifica. Si noti che nella tavola di stato di fig (b) gli stati a e d evolvono verso gli stessi stati per ambedue i valori dell'ingresso. ale condizione verosimilmente produce una mappa piu' semplice di quella che si ottiene quando il prossimo stato e' lo stesso in una sola colonna, come nel caso che si e' appena preso in considerazione. Inoltre, se i due stati futuri a e c vengono resi adiacenti, allora una delle due variabili di stato sara' la stessa in ambedue le 8

197 Ccircuiti sequenziali sincroni Capitolo 7 colonne della stessa riga e dara' quindi luogo con elevata probabilita' ad un'ulteriore semplificazione. La situazione descritta puo' essere individuata sulla mappa di eccitazione di fig in cui si hanno quattro zeri adiacenti nella mappa S y e un gruppo di uni e condizioni non specificate nella mappa R y. Si consideri infine la tavola di stato di fig In questa tabella gli stati a e c sono ancora gli stati futuri di a e d, ma non compaiono nella stessa colonna. Nondimeno, se si rendono a e c adiacenti, una variabile di stato sara' la stessa in ambedue le colonne di una data riga. Se inoltre si rendono anche a e d adiacenti, allora queste righe risulteranno accoppiate. Ingresso Stato a c a b c d d b a c a c figura 7.7. Da un esame delle tre possibili assegnazioni si vede che l'assegnazione di fig (b) in cui gli stati a e c e gli stati a e d sono adiacenti, da' luogo al miglior circuito che si possa ottenere per la tavola di stato di fig Dalle osservazioni fin qui fatte si possono estrapolare le seguenti regole, utili ad ottenere una efficiente codifica di stato. REGOLA ) Si individuino sulla tavola di stato gli stati attuali che hanno in ciascuna colonna lo stesso stato futuro. Gli stati che soddisfano questa condizione devono essere resi adiacenti. ) Si individuino sulla tavola di stato quegli stati che evolvono verso gli stessi stati futuri, ma con differente ordine delle colonne. Questi stati devono essere resi adiacenti se anche gli stati futuri verso cui evolvono possono essere resi adiacenti. ) Gli stati relativi a righe che hanno lo stesso stato futuro per alcune, ma non per tutte le colonne, vanno resi adiacenti, dando la precedenza a quelle righe che godono di questa proprieta' per un maggior numero di colonne. REGOLA Gli stati futuri di una determinata riga devono essere resi adiacenti. 84

198 Ccircuiti sequenziali sincroni Capitolo 7 REGOLA L'assegnazione prescelta deve semplificare per quanto possibile la mappa della funzione d'uscita. E' importante notare che le tre regole enunciate sono in ordine di importanza decrescente. La loro applicazione puo' infatti portare a specifiche in conflitto tra di loro; tuttavia un' assegnazione adottata per soddisfare a una regola a priorita' piu' alta non dev'essere modificata per soddisfare una regola a priorita' minore. Un'altra procedura operativa per la determinazione di un'assegnazione possibile e che tiene, almeno in parte, conto delle esigenze che sono state appena messe in luce, e' quella che fa ricorso alla cosidetta tavola inversa di flusso. E' questa una tabella che considera per ogni stato e per ogni ingresso al tempo t n, l'insieme degli stati in cui si trovava il circuito al tempo t n-. Si consideri ad esempio la macchina sequenziale di fig figura 7.7. La relativa tabella inversa di flusso e' riportata in fig Nell'ultima colonna e' conteggiato il numero di stati da cui si perviene allo stato attuale. Lo stato per cui tale conteggio e' massimo e' lo stato con sei termini. Conviene pertanto codificare lo stato con y y y =, in modo che nella tavola di flusso ci sia il massimo numero di zeri. Le adiacenze vanno poi ricercate per righe e per colonne; le adiacenze per righe tengono conto delle transizioni verso lo stesso stato e si riconoscono in quanto formate da stati che stanno nella stessa casella (esclusi quelli della prima riga). Si individua in tal modo la necessita' di adiacenza tra gli stati,6,5 e,. La ricerca per colonne si fa a partire dalle coppie cosi' individuate e considerando la presenza o meno degli stati di tali coppie in ciascuna colonna. In tal modo la coppia,6 determina nella colonna x= l'esigenza di adiacenza per gli stati 6 e 7; la coppia, l'adiacenza degli stati,6 nella colonna x=. In definitiva e' quindi conveniente che siano adiacenti le coppie: (,) (,6) (,5) (,6) (6,7) 85

199 Ccircuiti sequenziali sincroni Capitolo 7 Stato attuale Stato precedente n. termini x= x= ,4,5,7 4, ,6 --, , -- figura Queste condizioni non sono contemporaneamente soddisfacibili con tre variabili di stato. Una buona soluzione e': y yy Nel problema che si e' preso in considerazione non era assegnata l'uscita; pertanto le coordinate della mappa possono essere assegnate in modo qualsiasi, purche' secondo un codice ciclico. Se viceversa l'uscita fosse stata specificata la scelta del codice di taratura doveva essere tale da minimizzare la rete di uscita. Si applichi ora quanto esposto al seguente esempio. ESEMPIO Si voglia progettare un circuito che verifichi la parita' su caratteri binari da quattro bit, ricevuti in modo seriale su una linea x, a partire da uno stato di reset. All'istante in cui viene ricevuto il quarto bit l'uscita deve essere se e solo se il numero totale di nel carattere e' pari. In tutti gli altri istanti l'uscita deve essere e dopo la ricezione del quarto bit il circuito deve ritornare nello stato di reset pronto a ricevere il successivo carattere. 86

200 Ccircuiti sequenziali sincroni Capitolo 7 E' evidente che a ciascun istante le uniche informazioni importanti consistono in quanti bit siano stati ricevuti e se il numero totale di sia pari o dispari. Queste considerazioni conducono direttamente al diagramma di stati di fig , che e' anche il diagramma della macchina minima. a / / b c bit / / / / d e bit / / / / f g bit / / a / / pari dispari numero di La corrispondente tavola degli stati e': figura stato ingresso a b c d e f g b/ c/ d/ e/ e/ d/ f/ g/ g/ f/ a/ a/ a/ a/ Applicando la regola () enunciata in precedenza, gli stati f e g devono essere resi adiacenti. La regola () a sua volta richiede che gli stati d ed e siano resi adiacenti se e' possibile rendere adiacenti f e g, e che b e c siano adiacenti se adiacenti sono d ed e. La codifica dello stato a e' apparentemente arbitraria e, a meno che non vi siano fondati motivi per evitarlo, lo si codifichera' con. ale scelta e' tanto piu' giustificata in quanto lo stato a e' lo stato di reset e con una codifica nulla esso puo' venir raggiunto molto facilmente sem- 87

201 Ccircuiti sequenziali sincroni Capitolo 7 plicemente azzerando tutti i flip-flop della memoria. Una buona codifica e la relativa tavola di flusso sono allora le seguenti: x yyy y yy a f g - b d e c a b d f / / / / / / / / --/- --/- c / / e / / g / / Le equazioni finali che si ricavano sono, nell'ipotesi di utilizzare flip-flop di tipo JK: J + y = x.y x. y K y = x+ y y y J y = y y y J = K y = y K = z = x.y.y + x.y.y. y Il metodo della tabella inversa di stato in questo caso non porta invece a risultati significativi. E' importante osservare a questo punto che le regole e i procedimenti esposti non sono procedimenti algoritmici completi atti ad individuare la migliore tra le possibili codificazioni. Essi tutto al piu' permettono di ridurre il numero di possibili alternative, consentendo di ottenere una buona soluzione in un numero ridotto di tentativi. Si consideri infatti di nuovo la codifica della tavola di stato di fig La regola () impone che gli stati b e d siano resi adiacenti. Ora sia la codifica racchiusa nel tratteggio di fig (A) che quella immediatamente precedente soddisfano tale esigenza. La regola () quindi non individua la codifica migliore, ma permette tuttalpiu' di scartare la prima delle tre codifiche possibili. A maggior conferma di quanto detto si consideri la tavola di stato di fig L'applicazione della regola () porta a scegliere la codifica di fig (B), che produce il circuito migliore quando i flip-flop usati sono di tipo RS. Se viceversa si usassero dei flip-flop JK la codifica migliore sarebbe la prima tra quelle di fig. 7.7., in quanto con i flip-flop JK meta' delle condizioni di ingresso sono condizioni non specificate,indipendentemente da quale sia la codifica dello stato. C'e' tuttavia da osservare che in questo caso la codifica di fig (B) e' peggiore per un solo gate; pertanto la codifica individuata attraverso l'applicazione delle regole enunciate e' comunque accettabile. 7.8) Partizione degli stati e codificazione. Nelle procedure di determinazione di una macchina sequenziale minima e' stato introdotto il concetto di partizione dell'insieme degli stati in classi di equivalenza. Due stati 88

202 Ccircuiti sequenziali sincroni Capitolo 7 appartenevano alla stessa classe (p = q) se per qualsiasi ingresso x erano soddisfatte le condizioni: ( p, x) w( q, x) ( p, x) S( q, x) w = S = Si considerino ora le partizioni in classi di equivalenza che soddisfano solamente la seconda di queste due condizioni. Due stati cioe' appartengono alla stessa classe di equivalenza se, per ciascun ingresso, gli stati verso cui evolvono appartengono ancora ad una stessa classe di equivalenza. Si consideri ad esempio la tavola degli stati di fig : stato ingresso figura 7.8. Le partizioni {,,4,6}, {,,5,7}e {,4}, {,5}, {,6}, {,7} soddisfano la condizione enunciata. Infatti per gli stati {,4} gli stati futuri sono {,7} per l'ingresso x= e {,5} per x=; per la coppia {,5} sono rispettivamente {,4} e {,6} per x= e x= e cosi' via. Per la partizione {,,4,6} gli stati futuri sono {,,5,7} per ambedue gli ingressi e viceversa. Quindi per tutti gli stati di una determinata classe di equivalenza gli stati futuri, per qualsiasi ingresso, si trovano tutti nella medesima classe di equivalenza. Le partizioni che godono di questa proprieta' vengono dette partizioni chiuse. Per illustrare in che modo partizioni di questo tipo vengano usate nella codifica dello stato si assegni una delle variabili di stato ai due blocchi {,,4,6} e {,,5,7}, ad esempio y = al primo e y = al secondo. Poiche' gli stati attuali evolveranno sempre verso stati dell'altro blocco, l'equazione di stato per y sara': n+ n y y = In effetti assegnare le variabili di stato induce sempre delle partizioni degli stati in gruppi che corrispondono alle varie combinazioni di valori delle variabili. Se si possono assegnare le variabili di stato in modo da indurre partizioni chiuse, si ottengono generalmente 89

203 Ccircuiti sequenziali sincroni Capitolo 7 delle equazioni piu' semplici di quelle che si possono ottenere con una codifica completamente casuale. Se una partizione e' chiusa allora il blocco che contiene lo stato futuro e' individuato univocamente dal blocco che contiene lo stato presente ed eventualmente dal valore dell'ingresso. Poiche' vi sono meno blocchi che non stati, essi sono individuati da un sottoinsieme delle variabili di stato. Il risultato e' quello di ridurre il numero di variabili nelle equazioni di stato, dando luogo quindi a equazioni, che in generale sono piu' semplici. Realizzare partizioni chiuse non permette solamente di ottenere delle codifiche vantaggiose, ma influisce anche in modo diretto sulla struttura del circuito sequenziale. Nell'esempio che si e' appena esaminato, la variabile y e' funzione solamente di se stessa e quindi la parte di circuito relativa non richiede altri ingressi. In generale le partizioni chiuse danno luogo ad una separazione del circuito completo in un certo numero di sottocircuiti, ciascuno adibito all'elaborazione di un certo numero di variabili del sistema e dipendente a sua volta da un numero limitato di variabili. la fig mostra in che modo un circuito con quattro variabili di stato possa esser suddiviso in un certo numero di sottocircuiti. X Clock Logica J K Q Y Logica J K Q Y Logica J K J K Q Q Y Y Logica Z figura 7.8. Si noti che ciascun sottocircuito ha come ingressi alcune delle variabili di stato, ma non tutte. Ad esempio il flip-flop del sottocircuito ha come ingressi la sua stessa uscita e l'ingresso effettivo x. In modo analogo il sottocircuito ha come ingressi x, y e la sua stessa uscita. In generale una buona partizione degli stati di un circuito sequenziale corrisponde ad una suddivisione del circuito in un certo numero di sottocircuiti collegati da un numero di interconnessioni molto limitato. Molte ricerche (*) sono state condotte relativamente al problema dell'individuazione delle partizioni piu' vantaggiose, molte delle quali indirizzate a formalizzare procedure di ricerca di partizioni chiuse o di altri tipi di partizione con proprieta' simili. (*) HARMANIS J. - SEARNS R.E. " Algebraic structure theory of sequential Machines " PRENICE-HALL Englewood Cliffs- N.J 966 HARMANIS J. " On the state assignement Problem for sequential machines " IRE trans. on Electronic Computers, EC-:,57-65 (giugno 96) HARMANIS J. - SEARNS R.E. " On the state assignement problem for sequential machines " IRE rans. on Electronic Computers EC-:4,59-6 (dicembre 96) 9

204 Ccircuiti sequenziali sincroni Capitolo 7 Sfortunatamente tali procedure sono molto complesse e noiose da utilizzare. Per tale ragione anziche' cercare metodi formali di partizione degli stati e' piu' opportuno individuare quelle partizioni degli stati che possono essere suggerite dalla formulazione originale del problema. Spesso i sottocircuiti realizzano delle sottofunzioni chiaramente individuabili, come conteggi, funzioni di scorrimento, riconoscimento di parita', ecc. Se queste funzioni vengono riconosciute gia' durante la prima fase di approccio al problema, la codificazione degli stati puo' essere notevolmente semplificata. ESEMPIO Si riprenda l'esempio del paragrafo 7.7, relativo al circuito in grado di controllare la parita' di parola di 4 bit trasmesse serialmente su una linea x. Dimenticando che il diagramma degli stati e' gia' stato determinato in precedenza, si tenti ora di affrontare il problema cercando di determinare eventuali sottofunzioni. Ovviamente una funzione da soddisfare e' la memorizzazione della parita' all'atto dell'arrivo di ciascun bit. Per soddisfare tale esigenza e' sufficiente un unico flip-flop. Poiche' poi all'arrivo del quarto bit il circuito deve comportarsi in maniera diversa da quanto avviene per i tre bit precedenti, e' inoltre necessario memorizzare qual'e' numero di bit giunti e tale funzione puo' essere assolta da un semplice contatore a quattro stati. Le due sottofunzioni messe in luce sono illustrate mediante i relativi diagrammi di stato in fig Il diagramma di fig (b), in cui l'uscita e' sempre, e' valido per i primi tre bit; il quarto bit riporta il circuito allo stato di partenza (corrispondente ad un numero di bit uguali a pari) senza che in tale operazione interessi il valore di questo quarto bit. [fig (c)]. L'uscita passa a se e solamente se la parita' e' verificata su tutti i quattro bit., bit 4,,, yy yy yy yy = bit = bit = bit = y = y = / / pari dispari (a) (b) (c) / / / / / / y y = = figura 7.8. Si noti che i valori di y e y non dipendono da x e da y. uttavia i valori di y n+ e z sono funzione dei valori attuali x, y, y e y. BOOH. " Sequential machines and automata theory " Wiley & Sons - New York

205 Ccircuiti sequenziali sincroni Capitolo 7 Per riunire le due funzioni in un unico circuito sequenziale e' opportuno tabulare la y n+ come illustrato in fig (a). Le due righe contrassegnate con l'asterisco corrispondono alla situazione illustrata in fig (c), valida per l'istante in cui arriva il quarto bit e cioe' quando y = y =. Le rimanenti righe corrispondono alla situazione di fig (b). Nella tabella compaiono due situazioni non specificate in quanto con y = y = deve essere y =. La figura (b) e' la tavola di stato di un contatore binario da bit. Da queste due tabelle si derivano le equazioni di ingresso degli elementi di memoria; se questi sono flip-flop JK si ha: J K y y = = J y K y = y = J y x. ( y + y ) z = y.y.( x.y + x. ) y = K y = x+ y. y xy y y yy x / -- / / / / * / / / -- / / ( y y ) n+ / / * / / y n+, z n (a) (b) figura Queste equazioni sono piu' semplici di quelle ottenute in precedenza. Si noti che il flipflop y funziona come flip-flop, commutando ad ogni impulso di clock. Con la scelta fatta per le variabili di stato il circuito risulta separabile in due distinti sottocircuiti, come illustrato in fig J K x Q Y J K Q Y Logica J K Q Y Logica Z figura Le tabelle di fig (a) e (b) possono essere combinate per ottenere la tavola di flusso di fig (a) e la tabella di stato di fig (b). Poiche' y non e' un ingresso del contatore 9

206 Ccircuiti sequenziali sincroni Capitolo 7 binario a bit, ci si dovrebbe aspettare di trovare una partizione chiusa degli stati in quattro classi, una per ciascuna combinazione di valori di y e y. Questa partizione esiste ed e' la {,4}, {,5}, {,6}, {,7}. Che questa partizione sia chiusa puo' essere verificato dalla tabella di fig (c). x y y y stato ingresso stati presenti ingresso q q q q q 4 q 5 q 6 q 7 q / q / q / q / --/-- q / 6 q / 7 q / q / 5 q / 6 q / 7 q / --/-- q / q / q /,4,5,6,7,5,5,6,6,7,7,4,4 stati futuri ( y y y ) n+ q n+,z n (a) (b) (c) figura Ritornando alle espressioni delle equazioni di eccitazione e di uscita si puo' notare che esse sono nettamente piu' semplici di quelle che si possono ottenere con l'applicazione delle regole, e enunciate al paragrafo precedente. Individuare una partizione chiusa e' quindi molto spesso una via estremamente efficace per ottenere una realizzazione efficiente. uttavia il battere con successo tale strada dipende in maniera determinante dalla struttura del problema da risolvere e dall'abilita' del progettista nel riconoscere questa struttura. Non si suggerisce pertanto di tornare a tecniche di progetto intuitive, quanto ad essere sempre pronti a cogliere quando una struttura e' partizionabile. In alcuni casi la struttura del problema suggerisce solo in modo parziale la codifica da adottare; in questi casi la codifica va completata mediante l'applicazione delle regole esposte al paragrafo precedente. ESEMPIO Si consideri nuovamente il contatore avanti-indietro modulo 8 introdotto all'inizio del presente paragrafo e la cui tavola degli stati e' illustrata in fig Per tale contatore si e' gia' visto che esistono due partizioni chiuse facilmente individuabili. Ci si dimentichera' tuttavia di questo fatto, tentando invece di individuare quelle partizioni che discendono in maniera diretta dalla struttura del circuito. Una partizione naturale di ogni contatore e' quella che suddivide gli stati in due blocchi, uno corrispondente ai conteggi pari e uno ai conteggi dispari. ale partizione sara' chiusa se il numero degli stati e' pari, poiche' ogni conteggio pari e' senz'altro seguito da uno dispari e viceversa. Per il caso in esame la partizione sara' (,,4,6) e (,,5,7), cui si assegnera' la variabile y. In fig e' riportata la tabella degli stati del contatore, la tavola di flusso del circuito che sviluppa y e la relativa realizzazione con flip-flop di tipo D. 9

207 Ccircuiti sequenziali sincroni Capitolo 7 Scopo di tale circuito e' evidentemente quello di identificare se ci si trovi in una situazione di conteggio pari o dispari. La relativa equazione e': n+ n y y = ingresso Stato 7 Clock D Q Y blocco attuale y n+ n y (,,4,6) (,,5,7) (,,5,7) (,,5,7) (,,4,6) (,,4,6) figura Ciascuno degli stati deve poi essere identificato da un'unica combinazione delle relative variabili. Se si usano tre variabili, come nel caso in esame, la seconda variabile dovra' dividere i due blocchi di quattro stati a meta', realizzando quattro blocchi da due stati; la terza variabile eseguira' un'ulteriore suddivisione a meta', fornendo otto blocchi da uno stato solo. Si stabilisca pertanto che la variabile y = identifichi primo e terzo stato di ciascuno dei due blocchi precedenti, mentre il valore y = identifichi il secondo e quarto stato. La variabile y induce cioe' la partizione (,,4,5) e (,,6,7). Allora le variabili y e y considerate assieme inducono la partizione: y y Gruppo (,,4,5) (,,4,6)=(,4) (,,4,5) (,,5,7)=(,5) (,,6,7) (,,5,7)=(,7) (,,6,7) (,,4,6)=(,6) E' immediato verificare che anche questa e' una partizione chiusa e che quindi i valori futuri delle variabili di stato non sono funzioni di tutte le variabili. Si puo' allora sviluppare la tavola di flusso e il sottocircuito di fig

208 Ccircuiti sequenziali sincroni Capitolo 7 Y Clock D Q D Q Y _ X classe presente x yy n n x,4,5,7,6,7,5,4,6,6,4,5,7 classe futura y n+ figura La relativa equazione di stato e': y n n n n n n n n ( y y ) + x. y y = x ( y ) n+ n = x. y Infine la variabile y dovra' dividere questi quattro blocchi in due, inducendo la partizione (,,,) e (4,5,6,7). Poiche' i circuiti per sviluppare y e y sono gia' stati realizzati e' ovvio che il sottocircuito che si sta esaminando dovra' sviluppare solo y. La tavola di flusso per questo sottocircuito e' riportata in fig assieme alla relativa realizzazione circuitale. clock x yyy _ X Y Y Y Y D Q Y n+ y figura Si noti che nello schema si sono indicati con e i blocchi realizzati in precedenza per y e y. 95

209 L'equazione che si ricava per y e': Ccircuiti sequenziali sincroni Capitolo 7 y n n n n ( y.y ) y ) n+ = x Puo' non risultare immediatamente evidente, ma il circuito e' il piu' economico che si puo' realizzare con flip-flop di tipo D. Qualsiasi altra codifica dello stato fa si' che y e y siano funzione di un maggior numero di variabili, portando quindi a circuiti piu' complessi. Le relazioni che esistono tra codifica dello stato, partizioni e struttura del circuito, messe in luce nei precedenti esempi, portano al quesito se la minimizzazione degli stati sia sempre conveniente e desiderabile. Nell'esempio del paragrafo 7.5 si era pervenuti ad una tavola con 8 stati, che richiedeva quindi tre variabili di stato. Se tuttavia si esamina la struttura base si notano due distinte sequenze di conteggio da tre stati. Pertanto una struttura piu' semplice e piu' naturale si puo' ottenere con quattro variabili di stato, due per ciascuna sequenza. La variabile di stato in piu' fa evidentemente si' che sia necessario un ulteriore flip- flop; tuttavia le reti combinatorie di eccitazione e di uscita ne risultano semplificate in modo notevole. Un altro caso tipico e' quello dell'esempio dello stesso paragrafo; considerando il circuito come sistema a memoria finita e realizzandolo nella forma di fig (a) si rendono necessari tre flip-flop D e l'unico costo ulteriore e quello relativo alla realizzazione della logica di uscita. Lo stesso circuito e' stato preso come base per l'esempio di minimizzazione del paragrafo 7.6 che ha portato al diagramma a quattro stati di fig (b). La realizzazione con flip-flop SR porta ad una rete logica di uscita di complessita' paragonabile a quella della realizzazione precedente. Per quanto riguarda invece lo stato, nella realizzazione a otto stati non era necessaria alcuna logica combinatoria, ma era sufficiente un'opportuna interconnessione dei flip-flop. Nella realizzazione a quattro stati invece la rete combinatoria si rende senz'altro indispensabile e le stesse interconnessioni risultano piu' complicate. Pertanto, malgrado che la realizzazione a quattro stati faccia risparmiare un flipflop, essa e' probabilmente piu' costosa che non quella a otto stati. 7.9) Conclusioni. Nel presente capitolo e' stata esposta la procedura di progetto dei circuiti sequenziali sincroni. Si intuisce immediatamente che il risultato che si ottiene e' notevolmente piu' influenzato dall'esperienza del progettista che non nel caso dei circuiti combinatori e al limite dei circuiti sequenziali asincroni. La mancanza di formalismo e rigorosita' puo' far pensare che la procedura proposta sia una specie di progetto basato sulla prova e l'errore; cio' non e' assolutamente vero in quanto la procedura e' organizzata con estrema attenzione per portare il progettista, con un numero di tentativi il piu' possibile limitato, dalle iniziali e imprecise specificazioni al circuito finale. Il primo passo, che consiste nella determinazione del diagramma degli stati, e' il piu' importante. Le specifiche che vengono assegnate sono di solito abbastanza vaghe e incomplete. Le procedure dei paragrafi 7.4 e 7.5 aiutano a chiarire il funzionamento del circuito e a determinarne il comportamento in ogni possibile circostanza. Molto spesso, probabilmente a causa della fatica e delle difficolta' che questo passo comporta, il progettista e' portato a interconnettere in maniera quasi empirica dei sottocircuiti, quali contatori o circuiti di test di parita',ecc., intuiti dalle specifiche complessive, ottenendo 96

210 Ccircuiti sequenziali sincroni Capitolo 7 pero' il piu' delle volte dei comportamenti assolutamente insospettati. Ora non e' che procedure intuitive non possano essere utilizzate, ma il momento in cui si possono applicare e' solo dopo aver analizzato e capito a fondo il comportamento che si desidera per il circuito. Se il circuito e' a memoria finita e la tavola di flusso viene realizzata su questa base, l'unica operazione che il progettista deve compiere e' quella di stabilire l'uscita; se inoltre la struttura a memoria finita e' anche applicabile, essa produce sempre il circuito piu' economico. Se il circuito non e' a memoria finita e' necessario minimizzare il numero degli stati. Questa minimizzazione non da' luogo necessariamente al circuito piu' economico, tuttavia e' sempre bene partire da una tavola con il numero di stati minimo ed aggiungere altri stati ausiliari solo se la struttura del problema rende ovvio che e' conveniente operare con un maggior numero di variabili di stato. Il passo finale e' quello della codifica, difficoltoso e molto spesso frustrante. Secondo quanto e' stato esposto e' conveniente usare alcune regole semiempiriche, unite ad una buona dose di intuizione, per ottenere un risultato soddisfacente. Ancora oggi disgraziatamente non esiste alcuna buona procedura formale di codifica, e quindi una specie di intuizione guidata rimane ancora il miglior metodo di progetto. 97

211 Ccircuiti sequenziali ad impulsi Capitolo 8 CAPIOLO VIII CIRCUII SEQUENZIALI AD IMPULSI 8.) Introduzione. In alcune unita' di sistemi digitali possono venir generati impulsi non periodici in risposta a ciascuna variazione di livello di uno specifico segnale. Vi puo' quindi essere la necessita' di progettare circuiti sequenziali i cui ingressi siano impulsi non periodici anziche' livelli logici usati in unione con opportuni impulsi di clock. Sebbene vi siano importanti differenze, che verranno chiarite in seguito, tra la tavola degli stati di un circuito sequenziale ad impulsi e quella di un circuito sequenziale sincrono, non vi e' tuttavia alcun ostacolo concettuale nel progettare un circuito privo di un segnale periodico di sincronizzazione. Al capitolo V infatti sono stati introdotti importanti vincoli alla durata e all'intervallo temporale di due successivi impulsi di ingresso a un flip-flop, ma non si e' affatto imposto che tali impulsi fossero periodici. Pertanto non vi e' alcuna particolare difficolta' nel progettare circuiti soggetti a impulsi su una o piu' linee, purche' siano soddisfatti i seguenti criteri. ) utti gli impulsi di ingresso devono avere una durata sufficiente a far commutare i flip-flop. Inoltre essi devono anche soddisfare il vincolo di massima durata, a meno che tutti i flip-flop utilizzati non siano del tipo master-slave. ) Due impulsi (indipendentemente dalla linea su cui si presentano) devono essere separati almeno del periodo che corrisponde alla massima frequenza di ripetizione per i flip- flop usati. Il secondo criterio usato significa in sostanza che gli impulsi di ingresso devono comparire uno alla volta; e' per questo motivo che molto spesso si parla di circuiti ad impulsi non contemporanei. La sua giustificazione risiede nel fatto che in pratica e' impossibile che due impulsi siano esattamente contemporanei. Ritardi non prevedibili faranno si' che i due impulsi siano sempre non coincidenti, sia pure di poco, determinando pertanto funzionamenti non desiderati per il circuito (in sostanza, nei casi reali, il secondo impulso perviene quando e' ancora in atto il transitorio di commutazione determinato dal primo impulso). Cio' stabilito, l'arrivo di un impulso su una qualsiasi linea di ingresso determina la transizione del circuito da uno stato all'altro; poiche' si esclude il caso in cui siano contemporaneamente presenti due impulsi, il numero di ingressi distinti, cioe' il numero di colonne della tabella di stato, e' pertanto uguale al numero delle linee di ingresso. Di conseguenza la tipica tavola di stato di un circuito ad impulsi avra' l'aspetto di quella riportata in fig ra un impulso di ingresso e l'altro il circuito rimane in uno degli stati; quando arriva il successivo impulso si genera la transizione verso il prossimo stato, secondo quanto stabilito sulla tabella. 98

212 Ccircuiti sequenziali ad impulsi Capitolo 8 x x x Circuito ad impulsi Stato Ingresso x x x q q q q q q q q q q q q q q q q figura 8.. Alcuni circuiti possono avere sia ingressi impulsivi che ingressi a livelli. Se il numero di ingressi ad impulsi e' n e quello degli ingressi a livelli e' m, il numero delle distinte combinazioni di ingresso e': m N = n. e quindi tale e' il numero delle colonne nella tavola di stato. 8.) Circuiti ad impulsi secondo Moore e secondo Mealy. Nei circuiti sequenziali sincroni le uscite, funzioni degli ingressi e delle variabili di stato, sono segnali a livelli in quanto sia gli ingressi che le variabili di stato sono segnali a livelli. Se poi queste uscite sono a loro volta segnali di ingresso di altri circuiti sincronizzati dallo stesso clock, allora e' appropriato considerare significative tali uscite solo in corrispondenza al clock. La situazione e' notevolmente piu' complessa nel caso di circuiti ad impulsi. Se le uscite sono funzione dell'ingresso oltre che delle variabili di stato, allora esse saranno impulsive e verranno ottenute come prodotto logico di un'opportuna funzione delle variabili di stato e degli impulsi di ingresso. Si possono pertanto definire tante diverse uscite quante sono le diverse possibili combinazioni di stato e di ingresso. Se invece le uscite sono funzione delle sole variabili di stato allora esse sono segnali a livelli e rimangono definite nell'intervallo compreso tra due successivi impulsi di ingresso piuttosto che in corrispondenza a tali impulsi. Di conseguenza il numero di uscite diverse non potra' essere superiore al numero degli stati. In fig. 8.. sono riportati i diagrammi e le tabelle di stato di ambedue i tipi di circuito. Si noti tuttavia che vi e' una marcata somiglianza tra i due circuiti. In effetti essi rappresentano in pratica la soluzione dello stesso problema. Esso consiste nel riconoscere la sequenza x x x che segue immediatamente un ingresso x. Quest'ultimo puo' in pratica essere considerato un impulso di reset e pertanto, per ragioni di semplicita', non e' riportato sui diagrammi di stato. Nel circuito con uscita ad impulsi di fig. 8.. (a) lo stato q viene raggiunto in conseguenza alla sequenza di ingresso x x. Se il successivo impulso e' x si passa allo stato q facendo comparire in uscita un impulso, mentre in caso contrario si evolve verso q o q, senza pero' che venga generata un'uscita. 99

213 Ccircuiti sequenziali ad impulsi Capitolo 8 x / q x / x / x / q q x / x / x / q x /z x / x / x,x / x x x q / x x x x q q / x / x x x q / x x,x q 4 / Ingresso Stato x x x q q q q q/ q / q / q/ q / q / q / q / q / q / q / q / Ingresso Stato x x x q q q q q q q q 4 q q q q q q q q q q q q 4 z (a) figura 8.. (b) Il circuito di fig. 8.. (b) opera in modo molto simile, eccetto per il fatto che una volta giunto in q per un successivo impulso x il circuito evolve verso lo stato q 4, che produce un'uscita a livelli finche' non sopraggiunge un ulteriore impulso di ingresso. In sostanza quindi, il primo circuito produce un impulso nel momento in cui la sequenza viene riconosciuta, mentre il secondo produce un livello dopo il riconoscimento della medesima sequenza. E' opportuno mettere in luce che tra i diagrammi di stato di fig. 8.. e quelli che si sono esaminati fino a questo punto esistono delle notevoli differenze. Poiche' ad ogni istante puo' essere presente un unico impulso, e' inutile mettere in evidenza il valore di tutti gli ingressi in corrispondenza ad ogni transizione; e' piu' opportuno identificare quest'ultima con l'impulso che la causa. Le uscite impulsive, funzione dell'ingresso oltre che dello stato, vanno associate alle transizioni tra stati; le uscite a livelli, funzione del solo stato, vanno evidentemente associate allo stato. Si vede immediatamente che il diagramma di fig. 8.. (a) e' una rappresentazione secondo il modello di Mealy, mentre quello di fig. 8.. (b) e' una rappresentazione secondo il modello di Moore. D'altra parte al capitolo IV si era gia' visto che l'uscita nella rappresentazione di Moore dipende solo dallo stato, mentre in quella di Mealy dipende da stato e ingresso. Si puo' passare dall'una all'altra rappresentazione secondo le regole illustrate in precedenza. In generale tuttavia il modello di Moore richiede un numero di stati superiore a quello di Mealy. D'altra parte il modello di Moore si rende necessario se l'uscita, anziche' essere un impulso, dev'essere disponibile per tutto il tempo che intercorre tra una transizione di stato e l'altra.

214 Ccircuiti sequenziali ad impulsi Capitolo 8 8.) Procedura di progetto. La procedura di progetto e' in pratica la stessa usata per i circuiti sincroni. Infatti, se si considera il clock come un ingresso e lo si usa per sincronizzare le uscite, si vede che il circuito sequenziale sincrono puo' essere considerato un caso particolare di circuito di Mealy. ESEMPIO Il ciclo maggiore di un certo circuito digitale contenga tre sottocicli che debbano essere completati in una determinata sequenza. Per avere segnalazione che l'operazione e' stata completata, un circuito che esegue il test di sequenza riceve un impulso di completamento da ciascun sottociclo e un ulteriore impulso K quando e' stato completato il ciclo maggiore. Quando giunge l'impulso K il circuito di test deve riazzerarsi e fornire un impulso di errore se i tre impulsi A,B,C di segnalazione di sottociclo completato non sono stati ricevuti in questa esatta sequenza. Il circuito debba venir realizzato usando flip-flop di tipo SR ed usando una logica AND- OR-NO. Gli impulsi in gioco non siano mai contemporanei. Soluzione: Vi sono sei possibili sequenze: ABC ACB BAC BCA CBA CAB delle quali solo la prima e' corretta. E' evidente che quando viene identificata una sequenza non corretta il circuito deve portarsi in uno stato di attesa finche' non arriva l'impulso K. Ad esempio se il primo impulso e' B o C l'ordine in cui arrivano i due impulsi seguenti non ha alcuna importanza. Questa considerazione porta a definire il diagramma di stato parziale di fig. 8.. (a). q K/Z q A/ B,C/ A/ B,C/ K/ q C/ q 5 q q 5 (a) A,B,C/ q q B/ 4 C/ (b) A,B,C/ figura 8.. Lo stato q 5 e' quindi quello in cui la macchina staziona dopo aver messo in evidenza un errore finche' non arriva l'impulso K. A partire dallo stato q gli unici ingressi possibili sono B e C. L'ingresso B rappresenta la continuazione della sequenza corretta e conduce allo stato q ; a partire da questo stato l'unico ingresso possibile e' C e conduce allo stato q 4. Poiche' l'impulso K segue sempre la sequenza dei tre impulsi da verificare, esso potra' arrivare solo quando il circuito si trova nello stato q 4 o q 5.

215 Ccircuiti sequenziali ad impulsi Capitolo 8 Si ottiene quindi, sulla base di queste considerazioni, il diagramma completo di fig. 8.. (b). Da tale diagramma si ottiene la tabella di fig. 8.. (a), dalla quale, minimizzando gli stati, si ottiene la tabella di fig. 8.. (b). Stato q q q q 4 q 5 Ingresso A B C K / 5/ 5/ --/-- --/-- / 5/ --/-- --/-- --/-- 4/ --/-- --/-- --/-- --/-- / 5/ 5/ 5/ / Stato q q q q 5 Ingresso A B C K / 5/ 5/ --/-- --/-- / 5/ --/-- --/-- --/-- / / 5/ 5/ 5/ / (a) figura 8.. (b) Per la codifica dello stato di un circuito sequenziale ad impulsi si possono usare le stesse tecniche usate per i circuiti sincroni. La regola (z) suggerisce che gli stati q e q e gli stati q e q 5 siano resi adiacenti. Si ottiene pertanto la tavola di flusso di fig Si noti che tale tavola di flusso non e' una convenzionale mappa di Karnaugh. Poiche' vi sono quattro variabili di ingresso vi dovrebbero infatti essere 6 colonne. uttavia, poiche' gli impulsi di ingresso si escludono mutuamente, tutte le colonne, eccetto quelle rappresentate e quella ABCK =, contengono condizioni non specificate. Le equazioni di eccitazione possono quindi essere ricavate direttamente da questa tavola senza tracciare le quattro mappe di dimensione 4 x 6, assumendo che la colonna A rappresenti le colonne in cui A = e gli altri ingressi B, C, K valgano e cosi' via. Stato Ingresso A B C K / / / --/- --/- / / --/- --/- --/- / / / / / / figura 8.. Si noti tuttavia, a maggior chiarimento, che le semplificazioni vanno fatte solo colonna per colonna. Si ottiene: S = B+ C R = K S = A. y R = K+ C. y E' importante notare che le equazioni realizzate si riferiscono a flip-flop RS asincroni. Gli impulsi corrispondenti vanno applicati direttamente agli ingressi S e R. L'equazione di uscita e':

216 Ccircuiti sequenziali ad impulsi Capitolo 8 z = K.y Il circuito che realizza quanto voluto e' quindi: B C K S R Q _ Y A S R Q _ Y Z Dall'esempio appena svolto si vede che sostanzialmente non vi sono nuovi problemi nel progettare un circuito ad impulsi. Il vincolo che non vi siano impulsi contemporanei riduce il numero delle colonne nelle tavole di flusso, ma in pratica non vi e' alcuna differenza con il progetto dei circuiti sequenziali sincroni. E' opportuno tuttavia ricordare che in ogni prodotto logico delle equazioni di eccitazione e di uscita deve comparire uno degli impulsi di ingresso in modo da generare il desiderato impulso di eccitazione e di uscita. ESEMPIO Si consideri lo stesso esempio precedente, ma lo si formuli ora in termini di modello di Moore. Dopo che il terzo impulso e' stato ricevuto, il circuito deve fornire ancora un'uscita con le stesse modalita' precedenti, ma questa volta il segnale sia del tipo a livelli e permanga finche' non viene ricevuto l'impulso di azzeramento K. L'uscita inoltre non venga esaminata prima dell'arrivo del terzo impulso, in modo che in tutte le situazioni precedenti il valore assegnato all'uscita non ha importanza. Il diagramma di stato che si ottiene e' riportato in fig q /- A B,C K K q /- q / C 5 B q / q 4 C /- A,B,C figura 8..4 La tavola di stato e quella di flusso sono invece riportate in fig

217 Ccircuiti sequenziali ad impulsi Capitolo 8 Stato Ingresso A B C K z Ingresso Stato A B C K z figura 8..5 Le equazioni di eccitazione e di uscita sono pertanto: S y + = B C K R y = y A. y S = C.y K R y = + z = y e il relativo circuito e' uguale a quello ricavato in precedenza, con esclusione del gate di uscita, non piu' necessario. ESEMPIO Una monorotaia sia adibita ad un servizio di trasporto rapido tra un areoporto e un centro urbano. Il sistema preveda due convogli, ma un'unica sede, eccetto per l'esistenza di un binario di attesa a meta' percorso, come illustrato in fig I due convogli partano dalle due stazioni al medesimo istante. quello diretto all'areoporto sia obbligato a fermarsi sul binario di attesa finche' l'altro convoglio non e' passato sul binario principale. Semafori e scambi siano controllati dai sensori x, x e x che emettono un impulso quando una vettura transita su di essi. L Aeroporto x x x X X S S L erminal figura 8..6 Quando i convogli sono in stazione, ambedue i semafori L e L sono rossi, lo scambio S e' posizionato sul binario principale e lo scambio S e' posizionato sul binario di sosta. Il convoglio diretto all'areoporto, per quanto detto in precedenza, si portera' su quest'ultimo e si fermera' al semaforo L. ale semaforo rimarra' rosso finche' l'altro convoglio non sara' 4

218 Ccircuiti sequenziali ad impulsi Capitolo 8 transitato su x e x. In questo momento S si posizionera' sul binario di sosta. Il convoglio diretto in citta' si fermera' a L finche' l'altro non sara' transitato su x, facendo passare L al verde e posizionando lo scambio S sul binario principale. Finalmente, quando il convoglio diretto in citta' sara' transitato su x, il sistema ritornera' nelle condizioni iniziali. Si vuole progettare un circuito dotato di due uscite a livello z e z tali che: z = L = rosso S posizionato sul binario principale z = L = verde S posizionato sul binario di sosta z = L = rosso S posizionato sul binario di sosta z = L = verde S posizionato sul binario principale La disposizione dei sensori e la sequenza delle operazioni sono evidentemente tali da impedire che vi possano essere due impulsi contemporanei. Il diagramma di stato per il sistema e' quindi quello di fig (a), mentre la relativa tavola di stato e' riportata in fig (b). x x q / x q / x x q / q / stato ingresso x x x z z q q -- q q q q -- q -- q q (a) figura 8..7 (b) E' ovvio che l'unica possibile semplificazione e' quella di combinare q e q in un unico stato. Per quanto riguarda la codifica, poiche' sono necessarie due variabili di stato e vi sono due uscite, l'assegnazione piu' naturale e' quella che fa coincidere le variabili di stato con l'uscita. La tavola di stato e' pertanto: ingresso yy x x x z z mentre le matrici di eccitazione per i flip-flop sono: 5

219 Ccircuiti sequenziali ad impulsi Capitolo 8 x x x x x x x x x x x x S R S R Si ricavano quindi le seguenti equazioni: S = x x e il relativo circuito e' riportato in fig R = S = x. y R = x X S Q Y Z X R X S Q Y Z R figura ) I contatori. Nell'esempio del paragrafo 7.8 e' stato progettato un contatore avanti-indietro da tre bit, in cui le uscite coincidevano con lo stato futuro. Piu' comunemente i contatori vengono progettati in modo che lo stato presente coincida con l'uscita, prelevandola dall'uscita dei flipflop. Sulla base di queste considerazioni i contatori diventano, in modo pressocche' naturale, dei circuiti di Moore. La tavola di stato di una decade, cioe' di un contatore modulo, e' riportata a titolo di esempio in fig (a). Si noti che vi e' un unico ingresso impulsivo e che nella relativa colonna sono contenuti gli stati futuri. In effetti il circuito conteggia (modulo ) il numero di impulsi che si presentano sulla linea di ingresso, che puo' quindi essere considerata la linea di clock del sistema. Se tuttavia il circuito venisse interpretato come un circuito sequenziale sincrono, esso dovrebbe venir trattato come un circuito senza segnali di ingresso, cosa certamente possibile, ma altrettanto certamente non molto naturale. Assegnando lo stato in codice BCD si ottiene la tavola di flusso di fig (b). Questa assegnazione da' luogo ad una partizione molto simile a quella del contatore di fig

220 Ccircuiti sequenziali ad impulsi Capitolo 8 stato z yyyy z z z z (a) figura 8.4. (b) La realizzazione con flip-flop, riportata in fig 8.4., si puo' ottenere molto semplicemente osservando in che istante i flip-flop cambiano stato. Q Y Q Y Q Y Q Y Clock figura 8.4. Il flip-flop y cambia stato con ogni impulso di ingresso e quindi (indicando con yi l'ingresso del generico flip-flop i) si ha: y = Il flip-flop y cambia invece stato se e solamente se y =, eccetto per lo stato 9, quando y =. Si ottiene pertanto: =. y Analogamente y cambia stato solo se y e y valgono. Si ha: y y o. y =.y. y Infine y passa da a quando y = y = y = mentre esegue la transizione inversa quando y = y =. Si ottiene pertanto: 7

221 Ccircuiti sequenziali ad impulsi Capitolo 8 ( y.y.y.) ( y.y.) y = + Parecchi tipi di contatore contano secondo moduli diversi a seconda di uno o piu' segnali di ingresso a livelli. Si concludera' pertanto questo capitolo con un esempio di tale tipo di contatore. ESEMPIO Si progetti un contatore che conti modulo 5 quando un segnale di ingresso L e' al livello, mentre conti modulo 8 se lo stesso segnale di ingresso e' a livello. Inoltre il conteggio debba essere in avanti se l'impulso di ingresso si presenta sulla linea P, in indietro se si presenta sulla linea P.La tavola degli stati e' riportata in fig Stato L= L= P P P P z 7 4* * figura A causa del funzionamento modulo 5 le partizioni chiuse introdotte negli esempi precedenti non sono piu' applicabili. uttavia la proprieta' di chiusura della partizione {,,4,6} e {,,5,7} e di quella {,4}, {,5}, {,6} e {,7} sono violate solo per i due stati futuri contrassegnati con l'asterisco. Pertanto l'assegnazione in numerazione binaria BCD produce ancora delle equazioni di ingresso dei flip-flop relativamente semplici e permette nel contempo di fare a meno di una logica combinatoria di uscita. Usando flip-flop di tipo si ottengono le seguenti equazioni: ( y.l) P y.y.y.l) P. y P.( L.y. y) y = P. + y = + y ( y.y + y ) P.( y. y ) = P. + o 8

222 Argomenti complementari Capitolo 9 CAPIOLO IX ARGOMENI COMPLEMENARI 9.) Introduzione. Nel presente capitolo verranno presi in considerazione un certo numero di argomenti complementari, quali il fenomeno del "clock skew", i metodi operazionali per l'analisi delle corse e delle alee e un nuovo tipo di approccio alla sintesi di circuiti sequenziali asincroni. Quest'ultimo argomento verra' introdotto attraverso il progetto del flip-flop JK, visto come un circuito sequenziale asincrono. Puo' sembrare sorprendente considerare un flip-flop un circuito asincrono ed in effetti, una volta che sia stato progettato, esso e' un circuito sincrono cui viene applicato un ben distinguibile segnale di clock e che cambia stato una sola volta per ciascun impulso di sincronizzazione. uttavia, mentre lo si sta progettando, in modo che corrisponda alle specifiche assegnate, esso dovra' venir considerato come un circuito asincrono e il clock dovra' venir trattato come un qualsiasi altro ingresso. 9.) Il clock skew. Spesso la particolare realizzazione fisica di un circuito sequenziale fa si' che le ipotesi fondamentali alla base del funzionamento fisico siano violate, anche se vengono usati flip-flop master-slave oppure sincronizzati sui fronti. Si consideri infatti il circuito sequenziale sincrono di fig. 9.. (a) e si supponga che i flip-flop siano tutti di tipo master-slave, in modo che qualsiasi variazione di stato abbia luogo sul fronte di discesa dell'impulso di clock. Il circuito illustrato e' un semplice registro a scorrimento da bit. Si supponga che, a causa della particolare realizzazione della linea di distribuzione del clock, esista un ritardo tra l'applicazione dell'impulso di sincronizzazione al flip-flop e quella al flip-flop. Questa situazione puo' essere determinata da linee di interconnessione eccessivamente lunghe o da un certo numero di invertitori inseriti sulla linea di clock. X Clock J Q K J K Q (a) X Q Q X Q Q t t (b) figura 9.. (c) Il valore iniziale delle uscite dei flip-flop sia quello illustrato in fig. 9.. (b) con y = y = e x =. 9

223 Argomenti complementari Capitolo 9 Se il circuito operasse correttamente, il primo impulso di clock dovrebbe caricare uno zero nel flip-flop e il secondo impulso propagare lo zero nel secondo flip-flop. Si noti ora che, nelle condizioni ipotizzate, y va a in corrispondenza al fronte di discesa dell'impulso. Questo valore si propaga immediatamente agli ingressi del secondo flip-flop, mentre il clock presente all'ingresso e' ancora a livello alto a causa del ritardo (fig. 9.. (b)). In queste condizioni un flip-flop JK master-slave carica il dato presente all'ingresso nella sezione master. Quando il clock presente su ritorna a zero, il valore memorizzato viene trasferito alla sezione slave e y va a zero a sua volta. In definitiva con un unico impulso di clock le uscite hanno raggiunto la situazione che si sarebbe dovuta avere solo in corrispondenza del fronte di discesa del secondo impulso. E' necessario pertanto porre un'estrema cura per evitare un tal tipo di comportamento, assicurandosi che i segnali di clock siano tutti coincidenti. Si puo' usare anche un approccio diverso, usando dei flip-flop di struttura piu' complicata. Si supponga infatti che i due segnali J e K siano campionati in corrispondenza al fronte di salita dell'impulso di clock e che le loro successive variazioni non abbiano effetto alcuno. In tal caso, come illustrato in fig. 9.. (c), il valore di x viene prelevato all'istante t, quello di y all'istante t e pertanto il circuito funziona correttamente. C'e' tuttavia da osservare che il far si' che il flip-flop riconosca i segnali di ingresso solo in corrispondenza dei fronti di salita ne complica notevolmente il progetto e che anche utilizzando flip-flop master-slave triggerati sui fronti si puo' avere il fenomeno del "clock skew", sia pure con probabilita' molto minore. 9.) avola di stato di un flip-flop JK master-slave. Nella progettazione di un flip-flop JK master-slave e' necessario far rilevare che le due funzioni, quella master e quella slave, non sono separabili in rapporto alla realizzazione finale. Si considereranno pertanto due uscite, quella del master z e quella dello slave z ; evidentemente, una volta che il circuito sia stato realizzato come circuito integrato, sara' disponibile la sola uscita z. A partire da uno stato a, in cui z z =, la tavola di stato puo' essere iniziata come illustrato in fig Stato CJK z z a a a a a a a b b b b b b b figura 9.. Finche' il clock C rimane a zero, il circuito si mantiene nello stato stabile a. Quando il clock passa a, l'uscita z del master deve passare a se J = ; il valore assunto da K non ha importanza, alla luce del tipo di funzionamento del flip-flop JK. Si passa quindi alla condizione instabile b delle due ultime colonne e si evolve poi verso lo stato stabile b della se-

224 Argomenti complementari Capitolo 9 conda riga, cui e' associata l'uscita. Il circuito non deve poi evolvere ulteriormente finche' C non torna a zero, determinando quindi le quattro condizioni stabili della seconda riga. La prima riga va infine completata con le due condizioni stabili relative alle condizioni di ingresso JK = e JK =. Con l'approccio seguito tuttavia l'uscita del master passa a anche se J passa da a mentre il clock e' attivo (C = ). Quando lo stato b e' stato raggiunto, le ulteriori variazioni di J e K, finche' C rimane a, non hanno alcun effetto. Quando C ritorna a zero il circuito evolve verso lo stato c, che e' associato all'uscita z z =, come illustrato in fig. 9.. Stato CJK z z a a a a a a a b b b c c c c b b b b c c c c c figura 9.. La tavola va infine completata considerando il ritorno allo stato a se, quando C ritorna a, anche K si trova a. Si ottiene in definitiva la tavola di stato di fig Stato CJK z z a a a a a a a b b b c c c c b b b b c c c c c c d d c d a a a a d d d d figura 9.. Piu' complesso e' il caso in cui si volesse realizzare un flip-flop JK master-slave sensibile ai fronti del segnale di clock. A partire dalla tavola di stato di fig. 9.. si considerino le caselle di coordinate e. Se il flip-flop dev'essere sensibile ai fronti e' necessario distinguere tra l'evento J = seguito da C = e l'evento C = seguito da J =. In quest'ultimo caso il circuito non deve passare nello stato b, ma in un nuovo stato che memorizzi il verificarsi del relativo evento, come illustrato nella tavola di stato di fig Si ricordi infine che una variazione simultanea degli ingressi a partire dallo stato stabile a porta ad un'evoluzione che non puo'

225 Argomenti complementari Capitolo 9 essere predetta. Pertanto, anche per evitare transizioni di stato multiple, si impone la restrizione che J e K siano stabili quando C passa da a e che il circuito si sia poi stabilizzato prima che J e K possano nuovamente cambiare. In particolare se il valore massimo del clock skew e' conosciuto tale vincolo puo' esser meglio specificato. A partire dalla condizione stabile e, quando C ritorna a zero, si dovra' ritornare alla condizione stabile a. Stato CJK z z a a a a a e e b b e a a a a e e e e b b b b b figura 9..4 Dallo stato stabile b il circuito evolve poi verso lo stato stabile c quando il clock torna a zero, mentre a partire da quest'ultimo considerazioni analoghe a quelle appena fatte portano alla tavola di stato di fig Stato CJK z z a a a a a e e b b e a a a a e e e e b c c c c b b b b c c c c c f d d f f c c c c f f f f d a a a a d d d d figura ) Un nuovo approccio alla realizzazione dei circuiti asincroni. Prima di passare alla realizzazione del flip-flop JK master-slave standard e' opportuno introdurre un nuovo modello su cui puo' basarsi la realizzazione di circuiti asincroni. ale modo di procedere si rivela particolarmente utile quando per eliminare le alee statiche e

226 Argomenti complementari Capitolo 9 dinamiche dei circuiti progettati in modo tradizionale e' richiesto un numero di gate addizionali troppo elevato. Si consideri il modello di fig Lo sviluppo che segue si riferira' ad un'unica variabile di stato Y i, ma tutte le variabili di stato possono essere realizzate nel modo che verra' descritto. Gli ingressi del circuito di fig possono essere sia i veri ingressi del circuito che variabili di stato. _ f _ f S yi _ f k Y i _ g m _ g _ g R yi figura 9.4. La variabile Y i e' l'uscita della coppia di NAND collegati in modo incrociato; tale struttura ricorda molto da vicino quella del flip-flop SR ottenuto incrociando due NOR. Si indichino con f,..., f k e g,..., g m le uscite dei NAND di ingresso. Si noti che k e m non hanno alcuna relazione con il numero di variabili. Si definisca poi: cioe' e cioe' yi S = f.f... f yi S = f + f f R = g.g... g yi yi k m R = g + g g k m Con queste definizioni si vede che l'uscita del gate basso della coppia con collegamento incrociato e': e quindi R yi. Y i Y = S i yi.r yi. Y i cioe'

227 Argomenti complementari Capitolo 9 Y = S + R i yi Si riconosce immediatamente che l'espressione appena ricavata e' l'equazione di stato di un flip-flop RS, riconoscendo altresi' che il membro a destra del segno di uguaglianza si riferisce a un determinato istante di tempo, mentre quello a sinistra si riferisce all'istante di tempo immediatamente successivo. Il modello che si sta perfezionando differisce pertanto dal modello fondamentale usato nella normale sintesi dei circuiti sequenziali asincroni per il fatto che ora la variabile di stato viene memorizzata in un flip-flop non sincronizzato. La struttura ottenuta ricorda quindi quella dei circuiti sequenziali ad impulsi, senza tuttavia che in questo caso impulsi siano presenti. Si consideri ora un circuito sequenziale asincrono con una variabile di stato posta a ed una variazione di ingresso che lasci inalterata tale variabile. Si e' gia' visto in precedenza che in tal caso puo' verificarsi il fenomeno conosciuto come alea statica e che tale fenomeno con la normale sintesi dei circuiti sequenziali asincroni, nel quale le variabili di stato sono reazionate direttamente, puo' dar luogo ad un'evoluzione errata. Nel modello di fig non e' necessario che i segnali controllati dagli ingressi rimangano costantemente a per far si' che la variabile Y i permanga inalterata, poiche' il suo valore e' memorizzato nel flip-flop RS. utto quello che si richiede e' che per tutto il tempo durante il quale Y i deve rimanere a R yi rimanga a. In altre parole non ha alcuna importanza analizzare se esistono alee statiche in S yi, ma per evitare transizioni di Y i da a e' sufficiente che R yi non passi mai a. Esaminando ora la funzione R yi si vede che essa puo' passare a solo se una o piu' delle funzioni g k vale. Poiche' le g k altro non sono che prodotti logici di variabili di ingresso e di stato, un livello potra' essere ottenuto solo per variazione di queste variabili poiche' i prodotti logici sono evidentemente privi di alee. Di conseguenza il modello proposto e' privo di alee statiche a livello. Considerazioni del tutto analoghe portano a concludere che il circuito e' anche privo di alee statiche a livello. Il metodo di progetto proposto non solo elimina la possibilita' di alee statiche, ma puo' anche produrre circuiti piu' semplici. A causa della presenza del flip-flop e' richiesto che R yi e S yi assumano valore solo in corrispondenza di un'effettiva variazione della variabile di stato. Quando tale variabile invece permane inalterata a R yi e S yi possono essere assegnate le condizioni non specificate che si deducono dalla tavola di eccitazione del flip-flop SR. Pertanto se il numero delle transizioni di stato che comportano la commutazione di una variabile e' piccolo, il metodo di progetto proposto puo' dar luogo a strutture circuitali piu' semplici che non il metodo classico. Sfortunatamente il metodo che si sta esaminando non risolve il problema delle corse e delle alee essenziali. Infatti ambedue i fenomeni sono intimamente legati alla struttura della tavola di flusso e non al modo in cui il circuito viene realizzato. 9.5) Realizzazione del flip-flop JK master-slave standard. Un'occhiata anche sommaria alla tavola di stato di fig. 9.. evidenzia che non vi e' alcun problema anche se due variabili di ingresso commutano contemporaneamente. Pertanto yi. Y i 4

228 Argomenti complementari Capitolo 9 l'assegnazione della codifica piu' naturale, che pone z = y e z = y conduce alla matrice delle transizioni di fig. 9.5., esente da corse e da cicli. CJK yy figura 9.5. Rimane da determinare una realizzazione economica che sia priva di alee statiche e dinamiche e nella quale le alee essenziali associate alla commutazione del clock siano state attentamente controllate. Usando la matrice di fig quale mappa di Karnaugh per y e y si ottengono le seguenti equazioni: y + = y.c + y.c y. y y = y.c + y.y+ y.k + y.c.j dove l'ultimo termine della prima equazione e' stato inserito per eliminare un'alea statica. L'implementazione del circuito richiede 8 gates e invertitori con un numero totale di ingressi pari a. La soluzione individuata potrebbe senz'altro essere considerata soddisfacente; e' opportuno tuttavia esaminare la tecnica di progetto proposta al paragrafo precedente. Dalla tavola di fig si possono ricavare direttamente le quattro mappe di eccitazione che seguono. yy CJK Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ S y 5

229 Argomenti complementari Capitolo 9 yy CJK Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ R y yy CJK Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ S y yy CJK Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ Φ R y Da queste si ottengono infine le equazioni: S = C.J. y R y = C.K. y y S y = C. y R y = C. y Si noti che nel caso che si sta esaminando i valori y e y sono direttamente disponibili. Si ottiene quindi il circuito di fig che rispetto al caso precedente impiega due invertitori e quattro ingressi in meno. La struttura circuitale ricavata e' molto simile a quella usata per realizzare il flip-flop JK in logica integrata DL o L. 6

230 Argomenti complementari Capitolo 9 J S Q S Q K R R Clock figura 9.5. Il circuito, come e' stato illustrato al paragrafo precedente, e' privo di alee statiche e dinamiche. uttavia rimane la possibilita' di un'alea essenziale legata alla commutazione del clock. Si supponga ad esempio che l'invertitore di fig sia particolarmente lento. In tal caso la transizione da a del clock puo' far si' che il nuovo valore determinato dall'ingresso si propaghi a y prima che uno sia comparso all'uscita dell'invertitore. Il nuovo valore pertanto si presenta immediatamente all'uscita senza attendere il fronte negativo del clock. Sappiamo gia' che non vi e' modo di eliminare le alee essenziali modificando il progetto logico. E' necessario invece assicurarsi che il tempo di propagazione dell'invertitore sia sempre minore dei due livelli di logica della sezione master. 9.6) Analisi di corse e alee. Al capitolo VI sono stati esaminati i problemi legati alla presenza di alee nei circuiti sequenziali asincroni; sono stati anche dati dei criteri di progetto che permettono di evitare sia quelle statiche che quelle dinamiche e nel presente capitolo e' stato preso in esame un metodo di progetto che ne assicura l'assenza. uttavia non e' possibile garantire l'assenza delle alee essenziali, in quanto esse sono legate alla struttura logica del problema e non a come il circuito viene realizzato; a tutto cio' si aggiunge inoltre che spesso e' necessario far si' che piu' di una variabile di ingresso commuti allo stesso tempo, con la conseguente possibilità di alee multiple. Si ricordi tuttavia che il corretto funzionamento di circuiti che contengano alee multiple o essenziali dipende in larga misura dal ritardo dei vari itinerari percorsi dal segnale. Con riferimento al progetto del flip-flop JK, trattato al paragrafo precedente, e' gia' stato fatto notare che in esso esiste un'alea essenziale. La situazione e' abbastanza tipica; capita spesso infatti che in un progetto si presentino delle corse o delle alee in maniera o non prevedibile a priori o comunque non evitabile. In questi casi il progettista deve assicurarsi che tali fenomeni non siano pericolosi; sarebbe pertanto desiderabile disporre di tecniche computazionali da usare per identificare casi di incerto comportamento in modo da poter valutare la probabilita' che essi causino funzionamenti non corretti. Un possibile approccio, come si accennera' piu' avanti, consiste nel simulare il funzionamento del circuito progettato; la simulazione e' un importante strumento di indagine, che tuttavia coinvolge problematiche notevolmente complesse le quali esulano dagli scopi di questa trattazione. E' stata tuttavia sviluppata una tecnica computazionale che e' di solito in grado di ottenere le desiderate informazioni in modo piu' esplicito e con tempi di calcolo notevolmente EICHELBERG E.B. "Hazard detection in combinational and sequential switching circuits" IBM Journal of Research and developement N. 9 (marzo 965) 7

231 Argomenti complementari Capitolo 9 inferiori di quelli richiesti per una simulazione completa. Il metodo utilizza un calcolo logico a tre valori. In aggiunta alle costanti logiche e si considerera' un terzo elemento, indicato con X, che nel metodo che si sta esaminando potra' essere considerato associato ad un valore indeterminato o sconosciuto. Se ci si riferisce cioe' a un circuito di commutazione, quando l'uscita di un gate fosse X cio' starebbe ad indicare che non si e' in grado di sapere se l'uscita di tale gate sia oppure. Si definisca la negazione di X semplicemente come: X = X violando pertanto i postulati dell'algebra booleana. Ci si assicuri poi che il sistema sia chiuso definendo le operazioni di negazione, somma e prodotto logico come illustrato in fig A _ A B A X B A X X X X X X X X X X X NO A+B A.B figura 9.6. Considerando X un valore incognito le tabelle introdotte acquistano un significato intuitivo. Se A e' sconosciuta allora anche la negazione di A e' sconosciuta; + X e X + X saranno determinate in ogni caso dal valore sconosciuto X, mentre + X sara' sempre indipendentemente da quanto valga X. Considerazioni del tutto analoghe si possono fare per l'operatore AND. ESEMPIO Il valore di Y nel semplice circuito di fig sia sconosciuto, mentre W e U siano sempre noti istante per istante. Si vuole determinare per quali combinazioni di valori di W e U l'uscita Z dipende dal valore sconosciuto di Y. Ponendo Y = X, si ha che : Z = U+ W.X e dalle mappe di fig si vede che Z = X se e solo se W = e U = 8

232 Argomenti complementari Capitolo 9 W Y U Z figura 9.6. In qualsiasi circuito "level mode", compreso quello del paragrafo precedente si possono ottenere le espressioni booleane esprimendo delle funzioni di eccitazione in termini di ingressi e di variabili di stato. Il metodo di Eichelberg utilizza queste espressioni per calcolare il comportamento del circuito, modificando gli ingressi come viene illustrato nella procedura a due passi che segue. La tecnica, che utilizza il calcolo a tre valori, riesce e evidenziare tutte le possibilita' che un circuito sequenziale raggiunga uno stato erroneo a causa di corse o alee. PASSO : Prese in considerazione le variabili di ingresso che devono cambiare si assegni a ciascuna d'esse il valore X, lasciando inalterate le altre variabili di ingresso e quelle di stato. Si calcolino in queste condizioni le funzioni di eccitazione e si verifichi se qualche y' ha cambiato valore. Se cio' e' vero si assegni alla corrispondente variabile di stato il nuovo valore e si ripeta il calcolo finche' non si hanno piu' variazioni delle variabili secondarie. A questo punto alcune delle variabili di stato possono essersi stabilizzate a X. PASSO : Si assegni ora alle variabili di ingresso in commutazione il loro valore finale lasciando per tutte le altre variabili il valore assunto alla fine del passo. Si calcolino nuovamente le funzioni di eccitazione e se una o piu' di esse variano da X a o allora si modifichino le corrispondenti variabili di stato ricalcolando poi le funzioni di eccitazione. Si prosegua in tal modo finche' non vi sono piu' modifiche. Il risultato dei passi e possono essere valutati con il seguente: EOREMA - Se un'eccitazione e' () dopo l'esecuzione dei passi e per una data variazione dell'ingresso e per un dato stato iniziale, allora quest'eccitazione si stabilizzera' a () per lo stesso stato iniziale e per la stessa variazione di ingresso anche nel circuito fisico senza che il ritardo dei vari gates abbia alcuna importanza. Se invece un'eccitazione rimane uguale a X alla fine del passo allora il funzionamento del circuito viene a dipendere dall'entita' dei ritardi. E' bene mettere in luce che il risultato di questa procedura e' piu' pessimistico di quello fornito da una simulazione. Qualora il metodo di Eichelberg identifichi un'alea che il progettista a priori non aveva individuato, allora e' opportuno rivedere il progetto; se poi 9

233 Argomenti complementari Capitolo 9 quest'ultimo non puo' venir modificato, si rende generalmente necessario ricorrere alla simulazione vera e propria. Si prenda ora in considerazione un semplice esempio di applicazione della procedura. ESEMPIO Il circuito di fig rappresenta la struttura elementare di un flip-flop D, implementata senza aver eliminato le alee statiche. D Clock Y y DC _ y' = D.C + y.c (a) (b) figura 9.6. Si applichi la procedura descritta ai passi e a tale circuito e la si applichi poi a quello ottenuto con l'eliminazione dell'alea statica, retto dall'equazione di eccitazione: ' y + = D.C+ y.c y.d (9.6.) Si consideri solo la variazione che si ha quando dalla condizione D = C = y = il segnale C commuta a zero. Dalla tavola di stato di fig (b) si vede che questa commutazione puo' dar luogo a un'alea statica. In fig sono riportate le tabelle di commutazione ottenute con la procedura di Eichelberg sia per il circuito di fig che per quello retto dall'equazione Condizione iniziale Passo Passo D C y, X X X D C y, X senza la correzione dell'alea con la correzione dell'alea figura L'aggiunta del termine y.d elimina l'alea statica; pertanto y rimane a anche se C passa dapprima a X e solo successivamente a. In circuiti piu' complicati di quello preso in esame la procedura identifichera' comunque corse e alee, ma potra' essere molto difficile individuare sulla mappa di Karnaugh la condizione critica che le determina.

234 Argomenti complementari Capitolo 9 ESEMPIO Come secondo esempio si indaghi sull'effetto dell'alea essenziale rimasta nel flip-flop JK master-slave di fig Sebbene non sia immediatamente evidente, vi sono solamente due variabili di stato, y e y che possono venir prelevate dai gates superiori delle coppie a collegamento incrociato che realizzano i flip-flop RS del circuito di fig Aprendo i loop in questi punti si ottiene il circuito combinatorio di fig C (clock) y _ S y K C y y y f B _ f Ry A S R J y C y Y Y figura Le uscite sono le eccitazioni y ' e y ' cui corrispondono le variabili secondarie y e y. Per ragioni di opportunita' due punti del circuito sono stati chiamati f A e f B e corrispondono alle uscite inferiori delle coppie a collegamento incrociato. Per applicare la procedura di Eichelberg si devono determinare le equazioni di eccitazione del circuito. Si determinino per prima cosa le espressioni di f A e f B. f = y + A K.C. y f B = y + C.f A = y + C. y Queste espressioni possono essere usate nello sviluppo di y' e y'. Si ottiene: ( C+ y ) + C. y = y.c+ y.c y. y' + = f B + y.c = y + C.y + C. y = y. y y' + = fa + J.C.fB = y + K.C. y + J.C.y = y.k + y.c + y.y J.C. y Si noti che le relazioni appena trovate coincidono con quelle prive di alee ricavate con i metodi tradizionali al paragrafo 9.5. Questo non significa che i vari metodi di progetto conducano allo stesso circuito, ma semplicemente che i due circuiti hanno la stessa funzione e che con un'analisi corretta e un'opportuna manipolazione possono essere rappresentati dalla stessa espressione booleana. Si verifichi ora con il calcolo a tre valori la transizione del clock da a. Sia inizialmente y = y =, J = e K = C =. Si ottiene:

235 Argomenti complementari Capitolo 9 Cy y y' y' passo X X X + + XX X + X + X + X X + X + X XXX X + X + X + X X X + X + X X passo XX X + + X + X X X + + X X Come si vede sono stati necessari tre passi di calcolo prima che y ' e y ' si stabilizzassero per l'ingresso X. Inoltre ambedue queste variabili rimangono al valore X dopo il passo del calcolo, mettendo in evidenza l'esistenza dell'alea essenziale. Come si e' gia' detto il risultato del test e' pessimistico rispetto alla realta' in quanto il circuito preso in considerazione funzionera' comunque in maniera soddisfacente. Per avere una risposta definitiva tuttavia sarebbe necessario ricorrere alla simulazione. uttavia spesso sulla sola base dei risultati del calcolo secondo Eichelberg si puo' effettuare una modifica al circuito che elimini gli inconvenienti messi in evidenza.

236 Sistemi digitali a larga scala Capitolo CAPIOLO X SISEMI DIGIALI A LARGA SCALA.) Introduzione. Calcolatori digitali e sistemi digitali di grandi dimensioni sono chiari esempi di circuiti digitali, tuttavia differiscono da quelli fin qui esaminati per la loro complessita', notevolmente maggiore. I componenti principali, escludendo le memorie, della maggior parte dei computer e dei sistemi periferici sono registri composti da numerosi flip-flop e il numero di stati puo' raggiungere e superare il centinaio. E' evidente quindi che il grafo e la tabella degli stati non sono un mezzo pratico per la descrizione dei sistemi a larga scala. L'intento del presente capitolo e' quello di sviluppare una tecnica piu' adatta alla rappresentazione dei sistemi a larga scala e poiche' la massima parte d'essi e' del tipo "clock mode" ci si limitera' ad esaminare solo questi ultimi. Un primo passo che puo' essere compiuto in questa direzione consiste nel modificare il modello fondamentale, spezzandolo in due circuiti sequenziali separati, come illustrato in fig.... ingresso dati Logica e registri dati uscita dati Clock informazioni di salto segnali di controllo ingressi di controllo Circuito sequenziale di controllo uscite di controllo figura.. Il blocco superiore consiste in un insieme di registri di dati interconnessi da una logica combinatoria, mentre il blocco inferiore fornisce una sequenza di segnali di controllo, che gestiscono, in unione al clock, l'appropriato trasferimento dei dati tra i registri. Il numero di segnali e di ingressi di controllo e' normalmente piccolo rispetto al numero di linee di ingresso e di uscita dei dati e delle linee di interconnessione interne del blocco superiore.

237 Sistemi digitali a larga scala Capitolo Gli scopi e i vantaggi di questo modello non sono tuttavia a questo punto chiari. Essi verranno resi evidenti nei successivi paragrafi; ci si limitera' per il momento a esaminare in dettaglio il modello proposto, attraverso un certo numero di esempi..) Ingresso di controllo del clock. In tutte le discussioni precedenti i circuiti sequenziali funzionanti secondo la modalita' "clock mode" prevedevano il collegamento diretto del segnale di clock a tutti i flip-flop, come e' illustrato in fig... (a). In certe circostanze tuttavia, in particolare quando si usino flipflop di tipo D, tale approccio puo' risultare restrittivo. D Q Clock Logica D D Q Q X X CS CS Clock D Q (a) figura.. (b) In fig... (b) e' riportato un circuito sequenziale con collegamento diretto del clock. Se il segnale di controllo CS e' pari a, X viene memorizzato nel flip-flop, mentre se al valore logico si trova il segnale CS nel flip-flop viene memorizzato il segnale X. E' necessario che il valore da memorizzare sia presente all'ingresso del flip-flop prima che giunga il segnale di clock. Di conseguenza, per mantenere l'informazione quando ambedue i segnali di controllo sono nulli, il valore corrente memorizzato nel flip-flop deve essere riportato all'ingresso D; tale operazione viene realizzata con un ulteriore gate AND e un NOR. La rete di fig... (b) puo' essere semplificata rinunciando a collegare il clock direttamente al flip-flop. Si supponga infatti di permettere che il segnale di clock raggiunga l'ingresso di sincronizzazione del flip-flop solamente se un nuovo dato deve venir memorizzato. A questo scopo e' sufficiente abilitare il segnale di clock con l'or dei segnali CS e CS, come illustrato in fig... (a). Il risparmio ottenuto consiste unicamente in un invertitore, ma con sistemi piu' complessi, in particolare quando piu' flip-flop sono combinati per realizzare un registro, i risultati possono essere piu' soddisfacenti. Infatti in tal caso lo stesso segnale di controllo viene utilizzato per introdurre i dati nei diversi flip-flop del registro e la rete di clock puo' essere comune a tutti i flip-flop, come illustrato in fig... (b). Con l'approccio di fig... (b) non si puo' invece conseguire alcun risparmio. E' opportuno tuttavia far notare che l'usare segnali di controllo per abilitare il clock non altera il tipo di funzionamento che rimane sempre "clock mode". Infatti, anche se alcuni flipflop sono controllati in modo da essere comandati solo in determinate situazioni, rimane pur sempre il fatto che ciascun flip-flop puo' cambiare stato solo in corrispondenza all'impulso di clock e quindi le modalita' di funzionamento non vengono alterate. 4

238 Sistemi digitali a larga scala Capitolo X X D Q CS CS Clock (a) D Q D Q D Q CS CS Clock (b) figura...) Estensione della tavola di stato. In fig... sono mostrati tre flip-flop, B, B, B interconnessi da una linea di trasferimento dei dati controllata dai segnali C, C, C e C 4 generati a loro volta da un opportuno circuito di controllo sequenziale. La natura del circuito di controllo e' tale che solamente uno dei quattro segnali C i puo' assumere il valore logico a un determinato istante. Un esame piu' accurato del circuito rivela che vi sono quattro modalita' di trasferimento dei dati, che possono aver luogo nel blocco inferiore di fig.... Se C = allora i segnali di ingresso X e X vengono trasferiti nei flip-flop B e B rispettivamente; la notazione normalmente usata per identificare tale trasferimento e': B X X B (..) Se C = l'informazione contenuta nei tre flip-flop viene spostata verso destra di una posizione. Il contenuto del flip- flop all'estrema destra viene ruotato in B. Se C = il trasferimento e': mentre se C 4 = si ha: B B B B B B (..) B (..) B B. B B B (..4) 5

239 Sistemi digitali a larga scala Capitolo D Q a Logica D Q Decoder CCC C4 X X Clock D Q B D Q B D Q B Z figura.. Quanto illustrato descrive i trasferimenti che possono aver luogo, ma la sequenza dei trasferimenti e quindi la sequenza delle uscite dipende dalla sequenza dei segnali di controllo. Poiche' vi sono solo quattro possibili combinazioni di questi segnali, si puo' caratterizzare il circuito sequenziale di controllo come circuito di Moore con quattro stati, indicabili con C, C, C e C 4, in corrispondenza a ciascuno dei quali si ha un logico sulla corrispondente uscita. Si supponga inoltre che la sequenza con cui questi stati si presentano sia comandata da un segnale a di ingresso di controllo della sequenza, come illustrato in fig.... Stato C C C C a 4 C C C C rasferimento C C C 4 4 C B X ;B X B B ; B B ;B B B B.B B B + B figura.. ale assunzione e' coerente con il circuito di fig..., in cui a e' il segnale di ingresso del circuito sequenziale di controllo a quattro stati. 6

240 Sistemi digitali a larga scala Capitolo Si aggiunga a questo punto alla tradizionale tavola di stato un'ulteriore colonna contenente l'indicazione dei trasferimenti che hanno luogo in corrispondenza a ciascun stato. Assieme all'equazione di uscita: z = B questa tabella di stato estesa fornisce una completa descrizione del comportamento desiderato per il circuito sequenziale. Si deduce infatti da tale descrizione che vi sono tre flip-flop di dati e che sono necessari almeno due flip-flop di stato. Al contrario le tradizionali descrizioni viste ai capitoli precedenti richiederebbero una tabella con stati, chiaramente meno conveniente di quella di fig.....4) Descrizione a programma. Sebbene la tabella di fig... sia una conveniente descrizione del corrispondente circuito, l'utilizzarla per circuiti con un gran numero di ingressi e di stati di controllo darebbe comunque luogo ad una rappresentazione poco maneggevole. Scopo del presente paragrafo e' quello di sviluppare una descrizione dei circuiti sequenziali ancora piu' compatta, che abbia un aspetto formale simile a quello di un programma per calcolatore. La lista dei trasferimenti di fig... somiglia infatti alle istruzioni di un programma; i flip-flop corrispondono alla variabili scalari e i nuovi valori di queste variabili sono le espressioni sulla destra di ciascuna freccia di trasferimento. Per convenzione si assumera' che i trasferimenti descritti nella stessa riga avvengano simultaneamente. Nel seguito verra' poi introdotta una notazione vettoriale per descrivere in modo piu' efficiente i trasferimenti simultanei. Le informazioni di salto ovviamente non sono comprese nella lista dei trasferimenti, ma nella tavola di stato. Ad esempio, a partire dallo stato C o dallo stato C 4 viene eseguito un salto condizionato dal valore della variabile a. Se invece si considera lo stato C il salto avviene sempre verso C senza alcuna condizione. Per ottenere il voluto tipo di descrizione e' sufficiente adottare un'opportuna notazione che permetta di trasformare la lista dei trasferimenti in un completo programma di descrizione del circuito. Si puo' pensare, per descrivere i salti, di utilizzare una notazione simile a quella dell'apl, inserendo dopo ciascuna istruzione di trasferimento un'istruzione di salto. Ciascun passo del programma sara' numerato con il numero rappresentativo del relativo stato. L'unico caso in cui l'istruzione di salto potra' essere omessa sara' quando il controllo dovra' portarsi comunque verso il successivo passo numerato. La forma generale di un'istruzione di salto sara': (( f.s ) + ( f.s ) ( f. ) (.4.) n s n dove s i sono i numeri dei passi del programma e f i sono funzioni booleane mutuamente esclusive e di cui almeno una deve assumere istante per istante il valore logico. Esse devono quindi soddisfare alle condizioni: fi.f j = per i j f + f f n = per tutte le combinazioni delle variabili che non sono condizioni d.c.c. 7

241 Sistemi digitali a larga scala Capitolo Di conseguenza una e una sola delle funzioni f i sara' a ciascun istante e il risultato aritmetico della (.4.) individuera' il numero di passo di programma cui saltare. Seguendo le convenzioni descritte, la tavola di flusso.. si trasforma nel programma:. B X ;B X ( a.) + ( a. ). B B;B B;B B (). B B. B 4. B B B a. + a. ( ) ( ) ) In tutto il resto del presente capitolo si usera' il termine "sequenza di controllo" per identificare la descrizione di un circuito nella forma appena introdotta. Nel caso che si sta esaminando si e' ottenuta una descrizione completa del circuito di fig..., contenente tutte le informazioni della tavola di flusso estesa di fig.... uttavia l'efficienza della descrizione a programma non appare chiaramente dall'esempio scelto. Si noti infatti che una sola delle istruzioni di salto, quella al passo., e' stata omessa; nei sistemi di maggiori dimensioni questa situazione e' molto piu' frequente. Inoltre, se anziche' un unico ingresso si ha un gran numero di ingressi di controllo, accade normalmente che le f i di un determinato passo siano funzione solamente di alcuni di questi ingressi..5) La sintesi. Uno dei principali vantaggi della descrizione a programma di un circuito e' che essa puo' venir usata come strumento di sintesi. Anzi, per sistemi a larga scala, e' l'unico approccio che permette di affrontare il discorso del progetto e che va al di la' dei metodi empirici che ricorrono alla manipolazione a tentativi dei blocchi logici. Nel resto del presente capitolo verra' mostrato come la descrizione a programma possa essere utilmente impiegata per descrivere un certo numero di sistemi troppo complessi per essere descritti con una tavola di stato. Si ricordi tuttavia che il nuovo strumento messo a punto e' un linguaggio e solamente un linguaggio e non possiede una struttura algebrica sulla base della quale condurre una minimizzazione degli stati. D'altra parte la struttura stessa del linguaggio guida il progettista ad una buona realizzazione, anche se non minima. C'e' inoltre da osservare che la disponibilita' di circuiti integrati complessi a basso costo rende relativamente poco importante la minimizzazione, anche se quest'ultima osservazione va presa necessariamente con le dovute cautele. ESEMPIO Si voglia ottenere la sequenza di controllo di un circuito seriale di conversione di codice illustrata nella seguente tavola di verita'. 8

242 Sistemi digitali a larga scala Capitolo f f f n n- n- n+ n+ n xx x z z z Come indicato, vi e' una linea di ingresso x e una di uscita z. Alla linea di ingresso si presentano parole di tre bit e ciascun carattere e' seguito immediatamente da un altro. Vi e' poi un ulteriore ingresso r di reset che, quando assume il valore logico, sincronizza le operazioni, dando inizio al ciclo operativo. Il carattere di uscita tradotto sara' ritardato di due impulsi di clock rispetto a quello di ingresso. Soluzione La traduzione non puo' aver luogo finche' tutti i tre bit di ingresso non siano stati ricevuti all'istante n. Di conseguenza i due primi bit di ciascuna parola devono venir accumulati in uno shift register formato dai flip-flop B e B. All'istante n il bit x n- si trovera' in B e il bit x n- in B. Quando giunge x n tutti i tre bit vengono elaborati simultaneamente, dando luogo all'uscita immediata z n. Gli altri due bit z n+ e z n+ verranno accumulati in B e B rispettivamente, poiche l informazione sui valori dell ingresso nei due precedenti periodi di clock non serve piu. All'istante n+ B=z n+ verra' presentato in uscita, B =z n+ sara' trasferito in B e il primo bit dal successivo carattere di ingresso verra' accumulato in B. All'istante n+ infine z n+ verra' trasferito in uscita, il precedente bit di ingresso verra' trasferito da B a B e il nuovo bit verra' caricato in B, in modo che all ingresso ancora successivo la sequenza possa riprendere. Le operazioni del circuito possono venir descritte da una sequenza ripetitiva di tre istruzioni, di cui le prime due comandano la memorizzazione nello shift register e la terza la conversione di codice e il caricamento parallelo del registro con i nuovi valori.., B x,b ; B z = B., B x,b ; ( r.) + ( r. ) B z = B ( r.) + ( r. ). B,B f ( x,b, B ),f ( x,b,b); z = f( x,b, B ) () 9

243 Sistemi digitali a larga scala Capitolo Le tre funzioni di uscita del passo. possono essere ottenute convertendo la tabella di funzionamento assegnata precedentemente nelle tre mappe di Karnaugh di fig..5.. B xb B xb B xb z n+ =f z n+ =f z n =f figura.5. Le funzioni risultanti sono: f = B n n n = x.b + x.b x.b. B f + n n = x.b + B.B x.b. B f + Il meccanismo di reset e' stato incorporato nel programma di tre istruzioni. Quando l'ingresso r = il controllo viene restituito al passo del programma, riinizializzando le operazioni con l'ingresso di un nuovo carattere. Si noti che nel programma di descrizione l'uscita z e' specificata a ciascun passo. Cio' si rende necessario in quanto l'uscita non e' una funzione fissa dei dati e/o dei segnali di ingresso come nel caso del circuito di fig.... Essa e' invece una funzione differente per ciascun passo del programma ed e' quindi funzione anche dei segnali di controllo. L'esempio considerato rende evidenti le differenze tra il metodo a programma di descrizione e il convenzionale metodo a grafo di stato. Costruire il diagramma di stato richiede unicamente la comprensione delle volute sequenze di ingresso e di uscita, mentre non e' necessaria alcuna ipotesi sul numero di variabili di stato o sulla struttura interna del circuito. Al contrario l'approccio attraverso il programma di descrizione prende le mosse proprio dall'aver ipotizzato una struttura base e pertanto richiede una notevole capacita' intuitiva nell'ideare una possibile configurazione per il circuito. Il risultato comunque ben difficilmente sara' minimo nel senso esposto ai capitoli precedenti. Una volta che si sia ottenuta la sequenza di controllo la parte creativa del progetto e' completata. La traduzione della sequenza di controllo in circuito logico richiede unicamente il rigoroso rispetto di alcune semplici regole e l'operazione potrebbe addirittura essere automatizzata e normalmente lo e. E' tuttavia opportuno, anche per maggior chiarezza nei confronti del lettore, seguire passo a passo la realizzazione circuitale. E' conveniente sviluppare separatamente la parte di controllo e la parte di memorizzazione dei dati e di logica. Quest'ultima e' illustrata in fig..5.. Si noti che i passi e del programma di descrizione sono identici e quindi sara' sufficiente un'unica linea di controllo per eseguirli ambedue. Una seconda linea di controllo sara' necessaria per eseguire il terzo passo. Inoltre, poiche' il contenuto dei flip-flop viene

244 Sistemi digitali a larga scala Capitolo modificato ad ogni passo, la linea di clock va connessa senza interposizione di alcun circuito agli ingressi C di ciascun flip-flop. X D Q f B f f D Q B Z Clock C, C figura.5. Normalmente l'uscita z del circuito, se dipende dai segnali di controllo, verra' realizzata con un gate OR. Ad ogni passo, cioe' ad ogni impulso di clock, ad un ingresso dell'or verra' riportato il valore da trasferire in uscita, mentre nel contempo gli altri ingressi dovranno esser posti a zero. Pertanto ciascun segnale di controllo del passo ed il relativo valore di uscita verranno portati all'ingresso di un AND della rete logica a due livelli che realizza z. Reti logiche AND-OR a due livelli, del tutto identiche a quella di uscita, vengono poste in ingresso ai due flip-flop in modo che airispettivi ingressi D vengano riportati i valori corrispondenti al passo in corso. Rimane da realizzare il circuito che sintetizza i segnali di controllo C, e C. Il primo passo e' quello di ottenere il diagramma di stato per il controllore di sequenza; ciascun passo del programma di descrizione corrispondera' ad uno stato, mentre i rami del grafo andranno ricavati dalle istruzioni di salto. Si ottiene in tal modo il diagramma di fig..5..

245 Sistemi digitali a larga scala Capitolo r= r= r= /C, r= r= r= r= /C, r= r=, r= r= /C (a) (b) (c) figura.5. Il circuito di controllo sara' pertanto un circuito di Moore che fornira' un'uscita a livelli per tutta la durata di ciascun passo. Si noti che il circuito ha due uscite di cui solamente una puo' essere diversa da a ciascun istante. Per semplicita' di notazione a ciascun stato e' stata associata solo l'uscita che in corrispondenza a quello stato e' diversa da. Una volta che il diagramma di stato sia stato ottenuto, la sintesi del circuito di controllo puo' essere condotta con gli usuali metodi visti ai capitoli precedenti. Si puo' facilmente verificare che il diagramma di fig..5. e' gia' minimo. La codifica ottenuta applicando le regole e del paragrafo 7.7 e' riportata in fig yy r / / / / / / ---/ /--- stato futuro, C,,C figura.5.4 e da' luogo alle seguenti equazioni: y' = r. y y' = r.y. y C, = y C = y Un'implementazione di queste espressioni e' riportata in fig..5.5.

246 Sistemi digitali a larga scala Capitolo r D Q Clock D Q C C, figura.5.5 L'unione del controllore di sequenza cosi' ottenuto e della sezione di memorizzazione dei dati e di logica di fig..5. e' con elevata probabilita' una realizzazione altamente efficiente. Infatti la realizzazione minima, ottenuta con le tecniche formali dei capitoli precedenti, prevede stati che si accordano perfettamente con stati di controllo x 4 stati per i dati, che sono stati qui ottenuti. Questo non significa ovviamente che i due circuiti siano identici, ma solamente che hanno lo stesso grado di complessita'. Sebbene la tecnica illustrata per ottenere il controllore di sequenza porti alla realizzazione minima dello stesso, in certe circostanze e' preferibile giungere a un'implementazione che utilizza un flip-flop per ciascun stato, usando un'opportuna rete combinatoria per trasferire il controllo al passo appropriato. Una rete logica atta a realizzare l'istruzione di salto del passo : ( r.) + ( r. ) e' illustrata in fig Prima dell'impulso di clock che fa eseguire il passo, l'uscita del flip-flop sia. Questo segnale viene utilizzato come uno degli ingressi dei due AND della sezione di salto. L'altro ingresso di ciascun AND e' il relativo addendo dell'istruzione di salto. In generale vi sara' un AND per ciascun addendo dell'espressione di salto; poiche' uno e solo uno di tali addendi puo' essere a un determinato istante, solamente la corrispondente uscita della rete logica sara'. r al passo Clock D Q al passo figura.5.6 L'uscita Passo sara' se r= e Q=, mentre se r= e Q= allora varra' l'uscita Passo. Questo segnale andra' riportato all'ingresso D del flip-flop che comanda l'esecuzione del

247 Sistemi digitali a larga scala Capitolo passo. Se r= l'impulso di clock che esegue il passo propaghera' il segnale nel flip-flop del passo, trasferendo il controllo al passo stesso. Quando all'ingresso di un flip-flop di controllo si deve riportare piu' di un'uscita di una rete di salto e' evidentemente necessario usare un gate OR come illustrato in fig In tal caso, se uno qualsiasi dei segnali dai passi, o e' a livello logico quando arriva l'impulso di clock, allora il flip-flop del passo viene posizionato a. dal passo dal passo dal passo Clock D Q Uscita del passo figura.5.7 Il circuito completo del controllore di sequenza dell esempio che si sta trattando e' illustrato in fig Si noti che tale circuito puo' essere ottenuto con una traduzione diretta della sequenza di controllo, evitando la costruzione di un diagramma degli stati, che si rende necessaria solo quando si voglia puntare a una realizzazione minima. r D Q D Q D Q Clock C, C figura.5.8 Poiche' il controllore di sequenza ottenuto con la tecnica della minimizzazione formale e' chiaramente piu' economico di quello ottenuto per traduzione diretta della sequenza di controllo, ci si potrebbe chiedere perche' quest'ultima tecnica debba essere preferibile. La cosa e' facilmente intuibile quando si consideri che in molti casi, malgrado la divisione del circuito in sezione dati e in sezione di controllo, il numero di stati del controllore di sequenza e' comunque tanto grande da rendere il metodo formale di minimizzazione impraticabile. Inoltre anche se la minimizzazione conduce a un circuito con il minimo numero di stati, cio' non significa necessariamente che il circuito sia minimo nel suo complesso. Infine, anche se la traduzione diretta della sequenza di controllo e' un approccio inizialmente meno economico, 4

248 Sistemi digitali a larga scala Capitolo lo scegliere un flip-flop per passo rende piu' semplice l'esecuzione dei test, la diagnosi dei guasti e la manutenzione. Prima di passare ad un esempio successivo e' opportuno assegnare alcune regole utili a specificare le uscite del circuito. Con il metodo fin qui visto il circuito risulta diviso nella sezione di memorizzazione e logica e nel controllore di sequenza. Le uscite del circuito possono dipendere da una sola o da ambedue le sezioni e pertanto la notazione usata per specificare l'uscita dovra' variare a seconda del caso. Se ad esempio si prende in considerazione il circuito di fig... l'uscita e' funzione della sola sezione di memorizzazione e logica e la relativa equazione e': z = B In sostanza cio' sta ad indicare che l'uscita varia ogni volta che varia B, ma l'uscita e' prelevata sempre nello stesso punto del circuito; pertanto e' sufficiente specificare l'uscita una volta sola. In tutti i casi simili a questo l'uscita puo' allora venir specificata con una speciale istruzione che precede la sequenza di controllo. OUPU : z = B In altri casi, in cui le uscite siano piu' d'una e dipendano da piu' di un flip-flop, l'istruzione puo' assumere ad esempio la forma: oppure OUPU : z = B, z = A OUPU : z = A.B Nell'esempio di fig..5. l'uscita e' invece funzione sia della sezione di memorizzazione e logica che di quella di controllo. E' necessario pertanto specificare l'uscita per ciascun passo della sequenza di controllo. Il valore attuale dell'uscita dipendera' dal contenuto dei flip-flop a ciascun passo di esecuzione; la specificazione dell'uscita a ciascun passo serve a identificare la funzione logica, variabile di volta in volta, che la sintetizza. Infine, anche se fino a questo momento non se ne e' visto alcun esempio, vi possono essere dei casi in cui l'uscita sia derivata solamente dalla sezione di controllo. Anche in tal caso l'uscita va specificata passo per passo. Per chiarezza, se ci si riferisce all'esempio che verra' presentato al paragrafo.8, l'istruzione: read = sta a indicare che l'uscita di nome read vale al passo ; si assume che in corrispondenza ai passi per i quali l'uscita non sia specificata, essa valga. Quest'ultimo esempio chiarisce inoltre l'importante differenza tra l'istruzione: e read 5

249 Sistemi digitali a larga scala Capitolo read = La prima infatti e' un'istruzione di trasferimento e indica che il valore logico viene caricato nel flip-flop di nome read. In contrapposizione la seconda e' un'istruzione di interconnessione e stabilisce che la linea di nome read viene collegata al valore logico. In modo del tutto simile l'istruzione: OUPU : z = B non specifica il trasferimento di un'informazione a z, bensi' che la linea chiamata z risulta collegata all'uscita del flip-flop B. E' bene osservare che la distinzione tra trasferimento e interconnessione e' sottile; tuttavia essa e' molto importante e nel seguito va sempre tenuta presente. ESEMPIO Si determini il controllore di sequenza per un circuito di verifica della parita' di sequenze di 4 bit che si presentano su una linea di ingresso seriale x. Sia prevista una linea di reset che, quando passa al livello logico, indica che il successivo bit in arrivo e' il primo di una sequenza. L'uscita sia costantemente a tranne dopo l'arrivo del quarto bit se il test ha dato responso pari. Soluzione E' necessario un unico flip-flop per la sezione dati, nel quale memorizzare via via il risultato del test di parita'. La sequenza di controllo, indicando con p tale flip-flop, sara':. p ( p x).r;z = ( r.) + ( r. ). p ( p x).r;z = ( r.) + ( r. ). p ( p x).r;z = (.5.) ( r.) + ( r.4 ) 4. p ;z = p x () Al quarto passo il flip-flop p viene sempre azzerato, mentre l'uscita sara' solo se il controllo di parita' avra' dato risultato pari. Poiche' l'uscita e' funzione sia della sezione di memorizzazione dei dati che della sezione di controllo, essa va specificata a ciascun passo della sequenza di controllo. La situazione di quest'esempio, in cui l'uscita e' costantemente e solo occasionalmente passa ad un altro valore, e' abbastanza comune. Per semplificare la notazione pertanto si adotta la convenzione di specificare l'uscita solo quando assume un valore diverso da zero. 6

250 Sistemi digitali a larga scala Capitolo E' abbastanza semplice realizzare la sezione di memorizzazione dei dati e il controllore di sequenza. Per quest'ultimo l'implementazione minima sara' data da un contatore modulo 4 con linea di reset separata. Esiste una relazione tra la sequenza di controllo e la partizione degli stati introdotta ai capitoli precedenti nella discussione dei circuiti sequenziali sincroni. Si puo' vedere che qualsiasi sequenza di controllo di un circuito sequenziale, che non contenga dati di salto, definisce una partizione chiusa degli stati del circuito sequenziale che fa corrispondere una classe di equivalenza a ciascun passo della sequenza di controllo. Al capitolo VII e' stato messo in luce che una partizione chiusa degli stati permette sempre di raggruppare gli elementi di memoria del circuito in sottoinsiemi in modo che gli ingressi di questi elementi non siano funzione di valori memorizzati al di fuori dell'insieme di flip-flop. Nel presente contesto i flip-flop che formano questo sottoinsieme sono quelli del controllore di sequenza. Vi sono diversi modi di sviluppare la parte circuitale destinata alla memorizzazione dei dati e alla logica prima di realizzare il controllore di sequenza. Non tutte queste realizzazioni ovviamente conterranno un numero minimo di flip- flop; inoltre una realizzazione ottimale del circuito sequenziale non e' unica e a ciascuna di esse corrisponde un diverso controllore di sequenza. E' presumibile che a ciascuna di queste realizzazioni corrisponda una diversa partizione chiusa degli stati. In particolare deve esistere sia la partizione banale in cui tutti gli stati si trovano nella stessa classe di equivalenza che quella in cui ogni stato si trova in una diversa classe. In quest'ultimo caso il controllore di sequenza coincide con il circuito sequenziale completo. Nel primo caso invece vi e' un unico stato (e di conseguenza nessun elemento di memoria) nel controllore di sequenza. Una sequenza di controllo ad un passo e' evidentemente uno strumento poco efficace per descrivere un sistema a larga scala. Per il controllore di parita', relativamente semplice, puo' tuttavia essere conveniente prendere in considerazione una sequenza di controllo a un passo. Essa e':. p ( p x).r.n.n ; N ( N N ).r ; N N.r;z = ( p x).n. N (.5.) Si vede immediatamente che una realizzazione minima richiede 8 stati. Dovranno quindi essere aggiunti alla sezione di memorizzazione dei dati due flip-flop, in quanto la sezione di controllo non ha memoria. Questi due flip-flop N e N funzionano continuamente come un contatore modulo 4 senza segnale di reset. Si noti che ora le espressioni per z e per il prossimo stato di p sono funzioni di N e N. Di conseguenza z e' uguale a tranne quando N = N = e la parita' e' memorizzata in p tranne quando N = N = e il flip flop viene azzerato. Poiche' il controllore di sequenza minimo e' effettivamente un contatore modulo 4, la realizzazione (.5.) e' probabilmente molto simile a quella (.5.)..6) Operazioni vettoriali. Ai paragrafi precedenti e' stata introdotta una notazione che permette di scrivere la sequenza di controllo per qualsiasi circuito sequenziale. Essa tuttavia risulta conveniente solo quando il prossimo stato di ciascun elemento di memoria deve essere specificato separatamente. Nei sistemi di maggiori dimensioni e' piu' conveniente trattare un insieme di flipflop come un registro, evitando in tal modo di scrivere espressioni separate per il prossimo stato di ciascun flip-flop del registro. 7

251 Sistemi digitali a larga scala Capitolo E' necessario pertanto introdurre un'opportuna notazione per rappresentare le operazioni logiche e i trasferimenti tra registri. Si stabilisca pertanto che le grandezze scalari (i singoli flip-flop) siano identificate con lettere minuscole, mentre le grandezze vettoriali, cioe' i registri, siano indicati con lettere maiuscole. Come nei linguaggi di programmazione e' poi necessario specificare il numero di elementi di cui si compone un registro; cio' puo' esser fatto con un'istruzione di DIMENSION, a simulitudine di quanto si fa ad esempio nel FORRAN, posta in testa alla sequenza di controllo di qualsiasi circuito sequenziale che contenga un registro. Ad esempio l'istruzione: DIMENSION A(),B(8) all'inizio di una sequenza di controllo stara' ad indicare che il circuito sequenziale contiene almeno flip-flop, nel registro A e 8 nel registro B. Quando si rendesse necessario trasferire una costante in un registro si puo' usare la notazione: A (,,,) che sta ad indicare che nei quattro flip-flop del registro A vengono caricate rispettivamente le costanti logiche,,,. Un particolare vettore di costanti logiche che e' conveniente definire e' ε(n), cioe' un vettore di n valori logici. In certi casi poi potra' essere necessario prendere in considerazione un singolo flip-flop di un certo registro. A tale fine si puo' adottare una numerazione per ciascun flip-flop da sinistra verso destra e iniziando con lo zero. Si identifichera' in tal modo il singolo flip-flop usando il suo numero come indice da accoppiare alla variabile che identifica l'intero registro. E' inoltre possibile combinare, con l'operatore di concatenazione, piu' registri in un singolo vettore, che per alcune operazioni puo' venir usato come un registro di maggiori dimensioni, scrivendo i simboli dei singoli registri consecutivamente separati da una virgola. Se ad esempio A e' un registro da 4 bit, B uno da bit e p un singolo flip- flop, allora: e' un registro da 8 bit, tale che C = A,p,B C = A C = A C = A C = A C 4 = p C 5 = B C 6 = B C 7 = B E' sempre possibile infine formare un vettore da un sottoinsieme di flip-flop di un registro, attraverso l'uso degli indici e la concatenazione. Se, ad esempio, si vuole trasferire nel registro B (da tre bit) il contenuto dei flip-flop dispari del registro D da sei bit, si puo' scrivere: B D (.6.),D, D5 Una notazione piu' complessa, ma piu' compatta puo' essere la seguente, che definisce l'operazione detta di compressione. 8

252 Sistemi digitali a larga scala Capitolo B R/Y dove R e' un vettore contenente valori e e Y e' un registro con lo stesso numero di elementi di R. Per definizione la compressione R/Y da' origine ad un registro formato dai flip-flop di Y che corrispondono a valori di R. Ad esempio la (.6.) puo' essere scritta, utilizzando l'operatore di compressione, nel modo seguente: B (,,,,,)/D Quando sia necessario isolare i primi o gli ultimi n flip-flop di un registro si possono definire due particolari forme di compressione. A questo scopo si utilizza il prefisso α n o ω n rispettivamente. Con tali definizioni α n /Y indica un vettore composto dai primi n flip-flop del registro Y, mentre con ω n /Y si indica il registro composto dagli ultimi n flip-flop di Y. Ad esempio, se A e' un registro da 5 bit, si ha: e α /A = A,A,A ω /A = A,A 4.7) Funzioni logiche di vettori. Affinche' la notazione vettoriale introdotta al paragrafo precedente sia realmente in grado di semplificare la descrizione a programma di un circuito, dev'essere possibile esprimere in modo compatto le operazioni booleane che coinvolgono registri. Una notazione che e' conveniente introdurre e' l'operazione di riduzione riferita agli operatori AND e OR e simbolicamente rappresentata con./a e +/A rispettivamente. L'operazione./A rappresenta l'and di tutti gli elementi di A, cioe': e in analogia./a = A.A... A ρa- (.7.) +/A = A + A A ρa- (.7.) dove ρ a e' il numero di elementi di A. I tre operatori logici fondamentali AND, OR e NO possono essere applicati anche ai vettori. Ad esempio: A = A (.7.), A,..., A ρa 9

253 Sistemi digitali a larga scala Capitolo o ancora A.B = A (.7.4).B, A.B,..., AρA. BρB Evidentemente l'ultima operazione e' definita unicamente se i due registri A e B hanno lo stesso numero di elementi. Si puo' tuttavia definire un'operazione di AND e OR tra uno scalare e un vettore, intendendo in tal caso che l'operazione viene compiuta tra lo scalare e ciascun elemento del vettore. Ad esempio: a. B = a. B (.7.5), a. B,..., a. B ρ B In alcuni casi potra' essere necessario risistemare gli elementi del vettore. L'operazione n A significhera' ruotare gli elementi di A di n posizioni verso sinistra, mentre n A indichera' sempre una rotazione di n posizioni, ma verso destra. Nel caso dell'operazione n A gli n bit piu' a destra di A saranno rimpiazzati dagli n piu' a sinistra e analogo sara' il comportamento nel caso dell'operazione n A. Ambedue tali operazioni verranno chiamate rotazione. Le operazioni di scorrimento a sinistra n A e di scorrimento a destra n A sono strettamente correlate con quelle di rotazione, tuttavia nel caso di n A gli n bit lasciati liberi sulla destra vengono riempiti con zeri, mentre nel caso dell'operazione n A sono gli n bit a sinistra ad essere riempiti da zeri. ESEMPIO Valutare il contenuto dei registri ad ogni passo del seguente programma (a) (b) A R B R C./R + D R. S (c) ( ) S (d) assumendo che i valori iniziali siano R = (,,,,,,) S = (,,,,,,) Soluzione: (a) R = (,,,,,, ) = (,,,,,,) (b) R = (,,,,,, ) = (,,,,,,) 4

254 Sistemi digitali a larga scala Capitolo (c) (. /R) + S = (./,,,,,,) + S = (...) + S = + S = S (d) R.S = (,,,,,,) = (,,,,,,) Con l'introduzione dei simboli appena descritti si e' venuti in possesso di un linguaggio sufficientemente potente, atto a descrivere in modo efficiente la sequenza di controllo di circuiti sequenziali complessi. C'e' tuttavia da osservare che parecchie delle logiche combinatorie complesse usate nella realizzazione di un sistema digitale sono di frequente uso. E' conveniente quindi provvedere a specifiche abbreviazioni per queste funzioni in modo da rendere ancora piu' compatta la scrittura di una sequenza di controllo. A titolo di esempio si prenda in considerazione un selettore da tre bit b,b e b. Si supponga cioe' che un passo di una sequenza di controllo usi il contenuto di un registro B da tre bit per selezionare un particolare bit di un registro A da 8 bit, ponendolo in un flip-flop r. Si avra', con le notazioni fin qui introdotte: r ( B.B.B ).A ) + ( B.B.B ).A ) + ( B.B.B ).A ) ( B.B.B ). A ( B.B.B ).A ) + ( B.B.B ).A ) + ( B.B.B ).A ) + ( B.B.B ). + ( )+ ( ) + (.7.6) A7 Si supponga ora di assegnare un nome al vettore di 8 bit, uscita del selettore da bit, usando poi tale nome nella scrittura della sequenza di controllo. Si usi cioe' la notazione: DECODE (R) per rappresentare le n uscite di un selettore di n variabili. L'espressione (.7.6) potra' allora essere scritta come: r + / ( DECODE( B ).A ) Usata in tal modo la notazione DECODE (B) somiglia moltissimo ad una subroutine di un programma scritto ad esempio in FORRAN. Per questo motivo essa viene chiamata subroutine logica combinatoria. Un'altra rete per la quale si usa correntemente la notazione in forma di subroutine logica combinatoria e' il sommatore. Per rappresentare l'addizione degli n bit di un registro D e degli n bit di un accumulatore AC, mettendo il risultato nel vettore di n+ bit formato dall'accumulatore stesso e dall'extra flip-flop m, si puo' usare la notazione: m, AC ADD( AC,D) E' poi comune avere l'occasione di usare una terza subroutine logica combinatoria per incrementare il contenuto di un registro, sommando cioe' uno al contenuto del registro stesso (si assuma che il bit sia quello piu' significativo). La rete logica necessaria per incrementare il contenuto di un arbitrario registro R da quattro bit e' illustrata in fig..7.. L'uscita di questa rete e' il vettore da quattro bit INC (R). 4

255 Sistemi digitali a larga scala Capitolo INC(R) R R R R figura.7. L'istruzione di trasferimento: R INC( R) (.7.7) fa si' che il contenuto di R sia aumentato di un'unita' quando il corrispondente passo della sequenza di controllo viene eseguito. Nei capitoli precedenti tuttavia e' gia' stato fatto notare che la realizzazione piu' efficiente di un contatore e' quella che usa flip-flop di tipo. Se quindi un registro e' usato unicamente come contatore, cioe' appare solo in istruzioni del tipo (.7.7), allora si puo' utilizzare tale contatore proprio per realizzare la funzione di incremento. In questo caso l'istruzione: C INC( C) puo' essere usata per rappresentare un segnale di controllo capace di accumulare un impulso di clock nel contatore C, come illustrato in fig..7., e di conseguenza si puo' usare allo scopo che ci si propone un contatore standard costruito in un singolo involucro e scelto tra gli elementi a media scala di integrazione. 4

256 Sistemi digitali a larga scala Capitolo C C C C Contatore modulo 6 C INC(C) Clock figura.7. L'esempio appena fatto mette in luce che una subroutine logica combinatoria descrive in modo univoco l'operazione da eseguire; tuttavia la realizzazione circuitale puo' essere di diverso tipo e variare di volta in volta..8) Applicazioni. In questo paragrafo verranno presi in considerazione due esempi di uso del linguaggio che si e' appena introdotto. In ambedue gli esempi sara' necessario manipolare una notevole quantita' di dati e cio' rende poco pratico l'uso dei metodi classici di progetto per i circuiti sequenziali sincroni. ESEMPIO Si vuole progettare un controller da usare in unione a un registratore digitale a cassette magnetiche per realizzare un sistema di verifica di circuiti combinatori che abbiano fino a otto ingressi e otto uscite. I circuiti da verificare sono realizzati mediante elementi logici integrati e sono disponibili solo i terminali di ingresso e di uscita. Il sistema che si vuol realizzare inoltre deve solo essere in grado di segnalare malfunzionamenti. Se cioe' alcune uscite non assumono il valore corretto in corrispondenza ad un dato vettore di ingresso, allora il circuito sotto esame non deve venir accettato. Sul nastro sono memorizzate coppie di caratteri da 8 bit, rappresentative di un ingresso e del corrispondente valore che l'uscita deve assumere. Il controller deve quindi essere in grado di manipolare fino a 56 coppie. Poiche' il sistema non ha alcuna necessita' di operare a frequenze di clock molto elevate, si puo' supporre per semplicita' che controller e registratore siano pilotati in modo sincrono dello stesso segnale di clock. Nei periodi di clock, durante i quali e' presente sulla relativa linea il segnale di controllo read, deve essere eseguita dal nastro la lettura di un carattere di 8 bit e tale carattere viene caricato nel registro di transito APE. Nei periodi invece in cui e' attiva la linea rewind, il nastro viene riavvolto. Alla fine delle operazioni di riavvolgimento, oppure quando il sistema viene acceso per la prima volta, il lettore di nastro attiva per un periodo di clock il segnale ready. Il controller deve fornire gli appropriati segnali di controllo all'unita' a nastro, piazzare ciascun vettore di ingresso in un registro connesso con gli ingressi del circuito in esame e 4

257 Sistemi digitali a larga scala Capitolo confrontare le uscite con il vettore di uscita desiderato. Quando viene rilevata una discrepanza tra il vettore d'uscita attuale e il vettore di uscita desiderato deve venir commutato un segnale di uscita z, che dovra' rimanere tale finche' il sistema non viene riazzerato con l'applicazione di un segnale generato manualmente e applicato alla linea go, dopo che un nuovo circuito da sottoporre a test sia stato collegato al tester. Soluzione Gli elementi di memoria, siano essi vettori o scalari, richiesti per la sezione dati e logica del tester, sono illustrati in fig..8.. Vi sono tre registri da 8 bit. Il registro V sara' collegato ai terminali di ingresso del circuito sotto esame, quello YD sara' usato per memorizzare il valore desiderato dell'uscita, mentre il terzo registro COUN sara' usato come contatore modulo 56 per contare il numero di vettori di test applicati al circuito. Quando il contatore raggiunge lo zero, un segnale applicato alla linea rewind fara' riavvolgere il registratore e avvisera' l'operatore che il circuito esaminato non presenta inconvenienti e che un nuovo circuito puo' essere inserito. APE(8) V(8) Circuito sotto esame Y Logica di confronto Z go YD(8) COUN(8) figura.8. Le linee connesse alle uscite del circuito sotto test verranno chiamate per ragioni di convenienza Y. Infine il flip- flop z verra' posto a quando verra' rivelato un errore. Le rimanenti linee di segnale dall'unita' di controllo al registratore non vengono illustrate, in quanto in fig..8. e' riportata unicamente la sezione dei dati e logica. La descrizione della sequenza di controllo puo' iniziare con una lista degli ingressi e delle uscite che non dipendono dall'unita' di controllo. INPU : APE(8), go, ready OUPU : z Questa non e' un'operazione strettamente necessaria, tuttavia nei circuiti complessi in cui ci sono parecchi segnali tra interni ed esterni e' opportuno specificare chiaramente quali siano i segnali che comunicano con il mondo esterno, in contrapposizione con quelli che agiscono solo all'interno del circuito. L'effettiva sequenza di controllo inizia appena prima dell'inizio del test di un nuovo circuito. Il solo trasferimento associato ai primi due passi e' l'azzeramento del flip-flop z. 44

258 Sistemi digitali a larga scala Capitolo. ( ready.) + ( ready. ). z ( go.) + ( go. ) Ciascun test individuale, relativo a un ben preciso pattern di ingresso, inizia al passo. Dapprima un segnale read = fa si' che un vettore di ingresso sia caricato nel registro APE. Questo vettore viene poi trasferito in V, eccitando il circuito sotto prova. Successivamente il vettore di uscita desiderato viene trasferito in YD sempre attraverso APE.. read = 4. V APE 5. read = 6. YD APE Al passo 7 COUN viene incrementato e allo stesso tempo l'uscita attuale del circuito in prova viene confrontata con l'uscita desiderata. Il simbolo di OR esclusivo verra' utilizzato come abbreviazione dell'equivalente logico in termini di AND, OR e NO. Se vi e' una differenza tra due qualsiasi bit dell'uscita attuale e dell'uscita desiderata, allora l'espressione: ( + /Y YD) assumera' il valore e il controllo verra' trasferito al passo 8. A questo punto il flip-flop z di errore verra' posto a, verra' iniziato il riavvolgimento della cassetta, il contatore verra' azzerato e il controllo trasferito al passo. 7. COUN INC( COUN) ( + YD ).8 ( /Y ) + ( + /Y YD ).9 ) 8. z,rewind =,COUN ε() 8 () Se il test ha invece successo si passa al passo 9 dove il contenuto di COUN viene esaminato. Se e' pari a si prosegue verso il passo, in caso contrario si ritorna al passo. 9. ( ( + /COUN).) + ( + /COUN).)). rewind = () Il circuito di controllo della sequenza e' illustrato in fig..8.. Come nel caso di circuiti progettati con metodi convenzionali, l'inizio delle operazioni necessita di un segnale di reset, 45

259 Sistemi digitali a larga scala Capitolo che non e' incluso nelle specifiche iniziali. ale segnale deve porre a il flip-flop e azzerare tutti gli altri. Il flip-flop abilita i gate che ricevono il segnale ready. z ready read D Q D Q 4 D Q D Q D 5 Q (C ) go (C ) (C ) (C ) 4 (C ) 5 V APE YD APE (C ) 7 COUN INC(COUN) COUN Z D (C ) 6 Q 6 D +/(Y + YD) Q 7 D D (C 8) Q 8 9 (C ) 9 Q D rewind (C ) Q +/COUN figura.8. Finche' ready rimane a zero, gli impulsi di clock mantengono il flip-flop al valore logico, mentre quando ready passa a, il successivo impulso di clock azzera il flip-flop e setta il flip-flop. Viene in tal modo generato il segnale di controllo C, connesso all'ingresso K del flip-flop z, in modo che al successivo impulso di clock esso venga azzerato. C inoltre abilita i gate cui e' applicato il segnale go, in modo che il flip-flop sia azzerato e il flip-flop sia settato quando go passa da zero a uno. Si noti che le linee di uscita di ciascun flip-flop sono indicate con il trasferimento che ciascuna di esse abilita oppure con il nome del segnale di controllo generato. I passi e 5 sono esempi di casi in cui le uscite del circuito sono generate unicamente dal controllore di sequenza, come e' stato gia' precedentemente accennato, con la linea read posta a durante tali passi. Come illustrato in fig..8. cio' viene ottenuto semplicemente con l'operazione di OR di C e C 5 ; si ha pertanto read = durante i passi e 5 e zero durante tutti gli altri passi. Il segnale rewind e' generato in modo analogo ai passi 8 e. Il presente paragrafo puo' essere concluso con un altro esempio in cui viene richiesta una maggiore quantita' di memoria per immagazzinarvi le informazioni. Si puo' soddisfare questa nuova esigenza introducendo una notazione matriciale per rappresentare un insieme di registri. Si supponga infatti di avere un gran numero di registri, ciascuno con lo stesso numero di bit. Anziche' assegnare un diverso simbolo a ciascuno di questi registri e' piu' conveniente usare lo stesso simbolo per tutti i registri dell'insieme, distinguendo ciascun registro con un indice. Un insieme di registri, organizzato in tal guisa, puo' essere chiamato memoria e ciascun registro puo' essere chiamato parola. In definitiva una memoria M di m parole sara' formata dai registri M,M,...,M m-. Il modo in cui un'informazione puo' venir recuperata da una memoria varia a seconda della realizzazione della memoria stessa. 46

260 Sistemi digitali a larga scala Capitolo Per l'esempio che segue si supporra' di usare una memoria allo stato solido in cui i livelli di uscita di ciascun registro siano continuamente disponibili. Eseguendo l'and dei livelli di uscita di ciascun registro con le linee di uscita di un decodificatore di indirizzo e mettendo in OR i vettori risultanti e' possibile trasferire i livelli d'uscita del registro voluto alle linee di uscita. Indicando con AR il registro degli indirizzi, l'espressione logica combinatoria relativa e', se i bit di indirizzo sono n (indicando con m la quantita' n -): (.DECODE( AR) ) + M.DECODE( AR) m ( ) +... ( M.DECODE( AR) ) M + ale espressione puo' essere usata sul lato destro di un'istruzione di trasferimento in un registro e un'operazione di lettura da una memoria puo' essere considerata terminata quando il vettore di uscita sara' stato trasferito in un registro di dati. Per ragioni di convenienza, l'espressione appena introdotta puo' essere abbreviata introducendo la subroutine logica combinatoria: SELEC ( M, DECODE( AR ) Nell'esempio che segue si introdurra' inoltre la notazione per il trasferimento condizionato che permette di trattare casi in cui in un dato punto di una sequenza di controllo vi siano parecchi possibili trasferimenti in funzione di altri dati. ESEMPIO Si vuole progettare un semplice controllore per una macchina utensile che usi una memoria di sola lettura per la memorizzazione delle sequenza delle posizioni dell'utensile stesso. Vengono usati numeri a 8 bit per specificare la posizione spaziale di quest'ultimo; il modo in cui questa posizione viene specificata non interessa in questa sede. Esistono quattro possibili sequenze di posizioni, ciascuna delle quali puo' venir richiesta dall'operatore a qualsiasi istante e ciascuna sequenza e' lunga 56 parole. Il sistema dovra' quindi comprendere un registro PR da 8 bit per memorizzare la posizione corrente dell'utensile. Il governo elettronico della macchina interroghera' continuamente questo registro per mezzo di tre convertitori digitali/analogici. Le comunicazioni con l'operatore sono realizzate con un flip-flop ss di start-stop e un registro selettore di sequenza SSR da bit in cui le combinazioni di bit,, e corrispondono rispettivamente alle sequenze A, B, C, D. Quando l'operatore mette a ss fa si' che il controllore inizi a leggere la sequenza specificata da SSR. Quando invece ss passa a zero, la sequenza in atto viene interrotta e il registro PR viene azzerato. Se il controllore completa la sequenza, cioe' legge in ordine tutte le 56 parole di quest'ultima, allora vengono azzerati ss e PR. L'operatore puo' agire per modificare il contenuto di ss e SSR in qualsiasi istante, tuttavia vi sia un meccanismo di sincronizzazione che impedisce la modifica durante la fase attiva di un impulso di clock. Si deve notare che nel caso che si sta trattando gli ingressi vengono trattati differentemente che non nei precedenti esempi. In questo caso infatti gli ingressi possono essere modificati in qualsiasi istante e questi cambiamenti vengono immediatamente memorizzati, tuttavia non si ha alcun effetto finche' non si raggiunge un appropriato punto della sequenza. m 47

261 Sistemi digitali a larga scala Capitolo Le linee di ingresso non appariranno pertanto nella sequenza di controllo. La loro esistenza sara' tuttavia implicita, come molto spesso e' implicita l'esistenza di una linea di reset. Soluzione I soli registri in piu' necessari, oltre a quelli gia' descritti, sono un registro a bit per memorizzare l'indirizzo voluto della posizione di memoria da leggere e la memoria stessa. I loro nomi saranno rispettivamente AR e ROM. La completa configurazione dei registri e' illustrato in fig..8.; la memoria ROM contiene 4 parole da 8 bit e la sequenza A e memorizzata nelle prime 56 posizioni, la B nelle 56 successive e cosi' via. La sequenza di controllo e' riportata di seguito. Essa inizia con una specificazione di uscita, che ricorda che il registro PR pilota i convertitori i quali a loro volta posizionano l'utensile. ROM AR ss PR SSR ai convertitori A/D figura.8. Si noti che non vi sono specificazioni di ingresso poiche', come si e' gia' accennato, non vi e' alcun ingresso diretto. Il passo realizza una condizione di attesa finche' ss non passa a ; in tal caso si procede verso il passo che carica il primo indirizzo della sequenza voluta in AR. OUPU : PR. ( ss.) + ( ss. ). AR ( e( ) *( SSR.SSR ) (,, e() 8 )* ( SSR. SSR ) + (,, e() 8 )* ( SSR.SSR ) + (,, e() 8 )* ( SSR. ) + ( )+ SSR. PR SELEC( ROM, DECODE( AR ) 4. AR INC( AR) (( ss.5) + ( ss.7 ) ( ( + / ω /AR).) + ( + / ω /AR).6 ) 6. ss 7. PR e( 8) 48

262 Sistemi digitali a larga scala Capitolo () Il passo e' un esempio di trasferimento condizionale, la cui notazione generale e': ( B*f ) ( C* ) A + f dove f e f sono due funzioni logiche e l'asterisco acquista il significato di "se". In sostanza l'istruzione dice "trasferisci in A il contenuto di B se f = oppure trasferisci in A il contenuto di C se f = ". Si noti che in un'istruzione di questo tipo le funzioni f i devono essere mutuamente esclusive, cioe' una sola di esse puo' valere uno ad un determinato istante. L'espressione del passo pertanto carica nel registro AR il valore, 56, 5 o 768 a seconda del contenuto di SSR. Il passo e' un esempio di istruzione di lettura da una memoria. Il contenuto della locazione della ROM specificata in AR viene trasferito in PR. L'indirizzo contenuto in AR viene poi incrementato al passo 4, in modo da predisporre il sistema a leggere la parola successiva. Il passo 4 tuttavia contiene anche un esame del flipflop ss. Se l'operatore ha azzerato tale flip-flop si passa al passo 7, nel quale viene azzerato AR e si ritorna poi al passo. SSR SSR AR ε () SSR SSR SSR SSR AR AR,, ε (8),, ε (8) SSR SSR AR,, ε (8) D Q D Q figura.8.4 Il passo 5 rimanda al passo finche' non sono state lette 56 parole. Questa condizione e' rivelata dal fatto che alla fine di una sequenza gli ultimi 8 bit di AR sono sempre nulli. Alla fine della sequenza i passi 6 e 7 azzerano ss e PR e rimandano al passo. In fig..8.4 e' riportata la porzione di circuito di controllo che implementa il passo. Si puo' facilmente vedere perche' si e' parlato in questo caso di trasferimento condizionale; infatti la logica ha la stessa struttura di quella introdotta in precedenza per implementare salti condizionali. In questo caso tuttavia l'istruzione non serve per alterare l'ordine con cui viene eseguita la sequenza di controllo, ma semplicemente per eseguire un opportuno trasferimento..9) Conclusioni. La crescente affidabilita' ed economicita' della realizzazione di funzioni complesse in tecnica integrata fa si' che al giorno d'oggi i sistemi da progettare contengano piu' elementi di quanti sia conveniente manipolare con i tradizionali metodi di progetto, che fanno uso della tavola di stato. 49

263 Sistemi digitali a larga scala Capitolo In questo capitolo e' stato presentato un tipo di approccio che puo' essere usato con sistemi di qualsivoglia dimensione. Non vi e' tuttavia alcuna garanzia che la realizzazione ottenuta sia minima, ma il linguaggio introdotto presenta diversi vantaggi rispetto ai metodi intuitivi che in caso contrario il progettista sarebbe costretto ad adottare. Una grande importanza inoltre ha il rigore formale del linguaggio, che permette il trasferimento non equivoco di informazioni. Gli esempi presentati in questo capitolo hanno preso in esame sistemi relativamente semplici in modo da dare semplicemente un'idea della metodologia. Maggior approfondimento si potra' avere riferendosi ad esempio a "Digital System: Hardware Organization and Design" di F.J.Hill e G.R.Peterson edito dalla Wiley e Sons, New York, 97. 5

264 Integrazionme a media e a larga scala Capitolo CAPIOLO XI INEGRAZIONE A MEDIA E LARGA SCALA.) Introduzione. Molto spesso e' stato affermato che l'avvento di tecnologie LSI e MSI ha invalidato i tradizionali metodi di progetto logico e reso necessario il ricorso ad altre metodologie. ale affermazione tuttavia non va intesa in modo esclusivo; e' bensi' vero che aspetti riguardanti costo, uso, costruzione e progetto di sistemi digitali sono stati rivoluzionati dalle tecnologie LSI e MSI. Malgrado cio' solo gli ultimi punti del processo di progetto, come la costruzione delle maschere, la realizzazione del layout e delle interconnessioni e i problemi orientati alla verifica del circuito sono stati profondamente modificati, mentre la parte iniziale del progetto, che e' sotto certi aspetti la piu' creativa, e' rimasta in sostanza inalterata. L'algebra booleana rimane ancora il metodo base per descrivere formalmente il funzionamento di circuiti logici combinatori; pertanto il progetto di logiche combinatorie da implementare con tecnologie LSI non differisce in sostanza dal progetto fatto per un'implementazione a logica sparsa o addirittura a componenti discreti. L'uso di parti MSI puo' tuttalpiu' limitare la liberta' d'azione del progettista. Cio' non significa tuttavia che in certi casi particolari i problemi non possano essere affrontati in maniera inusuale. Ad esempio e' interessante vedere come utilizzando componenti a media scala di integrazione possano essere realizzate funzioni combinatorie di qualsiasi tipo A B C D y y y y y y y y y y y y y y y y y figura.. Si supponga infatti di essere in possesso di un multiplexer con n bit di indirizzo, cioe' di un dispositivo in grado di smistare un ingresso verso una di n linee di uscita in funzione del 5

265 Integrazionme a media e a larga scala Capitolo valore presente sulle n linee di indirizzo. Con l'uso di tale dispositivo e' molto semplice realizzare qualsiasi funzione combinatoria di n+ variabili. Si consideri per semplicita' un multiplexer con tre bit di indirizzo. Con il suo uso e' possibile realizzare qualsiasi funzione combinatoria da quattro variabili. Si ricordi che le 4 6 funzioni di quattro variabili sono in numero di =. La tavola di verita' di una generica funzione di 4 variabili e' riportata in fig..., con la particolarita' che le righe sono stata suddivise in 8 gruppi di due righe ciascuno. Si noti che la variabile D assume in ciascun gruppo il valore e rispettivamente in corrispondenza alla prima e alla seconda riga del gruppo. Si considerino ora i valori che una generica funzione puo' assumere in corrispondenza all'i-esimo gruppo. Poiche' i soli possibili valori sono,, e si deduce che: y i ( i ), y D = D Questa osservazione permette di realizzare la funzione nella forma illustrata in fig..., connettendo semplicemente i vari ingressi alle linee,d,d,, secondo quanto specificato nella tavola di verita'. D_ D ingressi A B C indirizzo Multiplexer uscita y figura.. Si e' ottenuta in tal modo una realizzazione particolarmente semplice, che non ha richiesto alcuna minimizzazione e che inoltre permette con la stessa configurazione circuitale di sintetizzare una qualsiasi tra le 6556 funzioni di quattro variabili. E' evidente che sarebbe estremamente interessante essere in possesso di una sorta di macroalgebra, ma 5

266 Integrazionme a media e a larga scala Capitolo sfortunatamente nessuno a tutt'oggi l'ha inventata. D'altra parte va osservato che molto spesso un progetto utilizza contemporaneamente gate individuali e parti LSI e MSI. Per quanto riguarda i sistemi digitali complessi diventa estremamente importante capire perfettamente il comportamento delle parti sequenziali; infatti i vincoli associati alle temporizzazioni dei circuiti sequenziali sono molto stretti e, poiche' le modifiche apportate a un progetto sono di solito molto costose, diviene quasi indispensabile avere a disposizione uno strumento di indagine per verificare le temporizzazioni di un sistema. Uno degli strumenti piu' efficaci a questo scopo e', come si vedra' in seguito, la simulazione. E' abbastanza probabile che chi si occupa di progettazione di circuiti sequenziali con parti standard MSI abbia poche occasioni di utilizzare i metodi classici; egli si rivolgera' piuttosto a linguaggi del tipo di quello illustrato al capitolo X. Al contrario chi si occupa del progetto di parti MSI sara' costretto ad utilizzare i metodi classici, considerando anche che, in relazione al gran numero di elementi che dovranno poi essere prodotti, il progetto minimo assume grande importanza. La parte finale di questo capitolo sara' poi dedicata a una breve introduzione ai problemi del "testing" dei circuiti. Per evidenziare infatti eventuali malfunzionamenti di un circuito LSI o MSI e' necessario mettere a punto delle configurazioni di ingresso tali che in uscita appaia l'effetto del malfunzionamento stesso. Cio' e' vero in particolare per i circuiti LSI nei quali il numero dei terminali di uscita e' piccolo rispetto al numero delle connessioni interne tra i gate. C'e' da notare tuttavia che, specie per circuiti sequenziali complessi, l'individuazione delle sequenze di test puo' essere un processo molto difficoltoso. Per i circuiti sequenziali infatti non esiste alcuno schema completamente automatico per la generazione dei test; si puo' anzi affermare che oggi la difficolta' di verifica del circuito e' uno dei maggiori, se non il maggior ostacolo, all'aumento della densita' di integrazione e della complessita' del singolo integrato..) Definizioni. Si definisce circuito integrato un circuito, montato in un unico contenitore, nel quale gli elementi attivi e passivi sono fabbricati a partire da un unico substrato di materiale semiconduttore. Piu' difficile e' definire la complessita' di un circuito integrato, cioe' dove termina la categoria dei circuiti integrati ordinari ed inizia quella dei circuiti MSI e LSI. Il diagramma di fig... puo' aiutare ad inquadrare la questione. SSI Gates e flip-flop individuali MSI piccoli Sottosistemi grandi LSI elementi discreti Dispositivi standard Memorie Dispositivi custom figura.. A stretto rigore il termine circuito integrato comprende anche gli elementi LSI e MSI. uttavia nell'uso comune con circuiti integrati (detti anche elementi SSI - small scale 5

267 Integrazionme a media e a larga scala Capitolo integration) si intendono quei dispositivi con un basso numero di gate o di flip-flop in cui tutti gli ingressi e le uscite degli elementi sono disponibili. Piu' difficile e' fissare un confine tra gli elementi MSI (medium scale integration) e quelli LSI (large scale integration); usualmente gli elementi MSI comprendono piccoli sottosistemi montati in un unico involucro, come ad esempio contatori, decodificatori, circuiti per la verifica della parita' ecc. Sistemi piu' complessi, ad esempio parti non trascurabili di un calcolatore, quali sommatori, sezioni di memoria, unita' aritmetiche complete o addirittura unita' centrali di calcolo, montati in un unico involucro sono di solito considerati elementi LSI. Una distinzione piu' importante che non quella tra elementi MSI e LSI e' quella tra elementi integrati standard e elementi integrati "custom". Dalla fig... si vede che gli elementi standard contengono mediamente meno gate che i dispositivi "custom". Qualsiasi circuito che un costruttore consideri potenzialmente redditizio sara' costruito e distribuito come elemento standard, mentre i circuiti che via via perdono la loro redditivita' vengono scartati. Gli elementi che divengono popolari vengono poi copiati dagli altri costruttori. Non bisogna considerare tale fatto negativo o illecito, in quanto qualsiasi produttore di apparecchiature sara' sempre riluttante ad adottare elementi LSI e MSI a meno che non vi sia piu' di una fonte di approvvigionamento. La tendenza attuale e' quindi quella che viaggia verso una standardizzazione sempre piu' larga. Gli elementi standard MSI comprendono decodificatori binari e BCD, contatori binari e decimali, registri a scorrimento, comparatori, generatori di parita', ecc. La maggior parte delle realizzazioni LSI comprendono invece memorie RAM e ROM. Si ricorre all'uso di elementi "custom" solo quando la realizzazione con elementi standard non appare conveniente. E' necessario in tal caso fornire al fabbricante una qualche descrizione del circuito. Alcuni fabbricanti accettano descrizioni in termini di diagramma a blocchi, ma il problema potrebbe essere semplificato sia per il committente che per il fabbricante adottando qualche forma di linguaggio atto alla descrizione di sistemi a larga scala del tipo di quello illustrato al capitolo X..) Il progetto con parti MSI standard. L'uso di parti standard piu' complesse che non i singoli gate tende a semplificare la procedura di progetto anziche' complicarla. In effetti una parte dell'attivita' del progettista si riduce a cercare sul catalogo del venditore quegli elementi che possono essere adattati all'obiettivo che egli si propone. Di conseguenza, quando una consistente porzione della funzione totale del sistema e' stata realizzata con parti standard, le manipolazioni booleane necessarie vengono corrispondentemente ridotte. E' interessante inoltre notare che, anche quando le parti standard sono sequenziali, il problema della loro interconnessione e' molto spesso un problema completamente combinatorio. In tal caso l'approccio da usare non differisce in alcunche' da quello usato nelle realizzazioni a logica sparsa o a componenti discreti. Per convincersi della potenza e della semplicita' del progetto con parti standard MSI e' opportuno prendere in considerazione alcuni esempi. 5

268 Integrazionme a media e a larga scala Capitolo ESEMPIO Si voglia progettare un circuito in grado di confrontare due numeri binari da 8 bit A e B. Le due uscite Z Z devono assumere valore se A > B, se A = B o se A < B. Siano disponibili come parti standard MSI comparatori da 4 bit. Si indichino con A e B i due numeri binari costruiti con i quattro bit piu' significativi di A e B, mentre A e B siano quelli costruiti con i quattro bit meno significativi. Gli 8 bit di A e B possono essere usati come ingressi di un comparatore MSI da 4 bit. Le corrispondenti uscite siano f e f, mentre con g e g verranno indicate le uscite del comparatore cui vengono applicati A e B. Il significato delle uscite dei due comparatori e le tavole necessarie per il progetto del comparatore a 8 bit sono riportati in fig.... f f Significato g g Significato A <B A < B A = B A = B A > B A > B f f gg A <B A =B A >B A <B A =B A >B < < > --- < = > --- < > > figura.. E' evidente che l'unica operazione necessaria e' quella di costruire le uscite Z Z in funzione di f f e g g come illustrato nella mappa di Karnaugh di fig.... f f gg figura.. Z Z In genere per progettare un circuito e' necessario prendere in considerazione i singoli bit; in questo caso tuttavia cio' non e' necessario in quanto, come illustrato in fig..., la relazione tra A e B e' completamente definita dalle relazioni tra i due insiemi separati di 54

269 Integrazionme a media e a larga scala Capitolo quattro bit. Pertanto per ottenere una rappresentazione sotto forma di mappa di Karnaugh delle uscite Z e Z e' sufficiente rimpiazzare nella tabella di fig... le relazioni tra A e B con la loro forma codificata. A partire dalla mappa di Karnaugh cosi' ottenuta, la realizzazione minima e' allora: Z + = f f. g = f f. g Z + e il relativo circuito e' riportato in fig.... Si noti che per progettare il circuito non vi e' stato alcun bisogno di speciali tecniche MSI, tuttavia il risultato e' probabilmente piu' semplice di qualsiasi progetto che si dovesse avvalere unicamente di gate individuali. A B Comparatore da 4 bit f f Z A B Comparatore da 4 bit g g Z figura.. L'esempio che segue si riferisce ad un circuito sequenziale e, come accade di solito in questi casi, non fa uso della tavola degli stati dell'intero circuito. A tutt'oggi, d'altra parte, rimane un problema di notevole interesse quello di individuare la tavola di stato di una parte standard entro la tavola di stato del circuito sequenziale da progettare. ESEMPIO Si debba progettare per un determinato processo produttivo un semplicissimo controllore di sequenza. Su 5 linee, da Z a Z 4, debbono comparire sequenzialmente dei segnali a livelli in modo che una e una sola delle linee vada a a ciascun periodo di clock. La sequenza di controllo deve inoltre essere ripetitiva, di modo che Z vada a immediatamente dopo Z 4. Sono disponibili dei contatori da 4 bit e dei decoder da 4 a 6 linee. Il progetto deve evidentemente venir impostato attorno ai contatori da 4 bit, dotati di un ingresso di clock e di un ingresso di reset. Le quattro uscite siano C 8, C 4, C e C ; il contatore venga azzerato quando l'ingresso di reset viene portato a. Il reset sia sincrono, cioe' l'azzeramento avvenga in coincidenza con il successivo impulso di clock. Una sequenza di lunghezza 6 puo' venir generata molto facilmente connettendo le uscite di un contatore esadecimale agli ingressi di un decoder. Per questi ultimi e' molto frequente che l'uscita eccitata vada a zero mentre le altre rimangono a ; si indicheranno pertanto tali uscite con d,d,...,d5. 55

270 Integrazionme a media e a larga scala Capitolo Per contare fino a 4 e' necessario aggiungere un flip-flop la cui uscita y sara' il bit piu' significativo del conteggio. La tavola di stato di questo flip-flop e' riportata in fig...4. Ogni volta che il conteggio arriva a 5 (d5 = ) con il successivo impulso di clock il flip-flop y passa a, mentre il contatore viene resettato a zero. Il 4-esimo impulso di clock pone evidentemente d 8 = mentre il 5-esimo azzera y, come illustrato in fig...4 nella casella d 8 =y=; contemporaneamente viene azzerato il contatore. y dd figura..4 stato futuro Da tale tavola di stato si ricavano facilmente le equazioni di eccitazione del flip-flop. S y = d 5 R y = d8 mentre il contatore, che si azzera comunque dopo che il conteggio ha raggiunto il 5, verra' resettato semplicemente connettendo il suo ingresso R di reset alla funzione d 8.y. I primi 6 segnali di controllo sono dati da: Z = d.y = d + y Z = d.y = d + y... Z = d5.y = d5 5 + y mentre i restanti 9 sono: Z6 = d.y = d + y... Z = d8.y = d8 4 + y Il progetto completo dell'unita' di controllo e' riportato in fig...5. E' evidente che usando gate individuali i 5 NOR d'uscita non sarebbero necessari, in quanto potrebbero essere combinati nella funzione di decodifica. Nel caso in esame invece il decoder e' una parte standard MSI e non puo' essere modificato. uttavia la configurazione raggiunta e' senz'altro piu' economica di quella che si otterrebbe con gate individuali. Quanto piu' e' complesso un sistema, tanto piu' e' probabile che esso venga realizzato usando parti MSI. Nel capitolo precedente d'altra parte si e' visto che i sistemi piu' complessi possono essere descritti mediante un opportuno linguaggio di progetto. Si puo' pertanto 56

271 Integrazionme a media e a larga scala Capitolo sperare di riuscire a realizzare uno specifico progetto realizzando una sequenza di controllo che descriva elementi a media scala di integrazione. Clock Reset CONAORE C8 C4 C C DECODER _ d_ d _ d8 _ d5 Z Z Z8 S R y _ y Z5 Z6 Z 4 figura..5 C'e' tuttavia da tener presente che il numero di terminali di ciascun elemento MSI e' limitato. Ora, poiche' ogni flip-flop di un registro richiede al minimo e possibilmente 4 collegamenti di input/output, ne consegue che in un contenitore da quattordici piedini potranno trovar posto da a 5 flip-flop. Pertanto registri di una certa dimensione e per estensione subroutine logiche combinatorie di tipo vettoriale non possono essere implementate come parti singole. Da tutto cio' ovviamente non deriva che i sistemi a larga scala non possano essere formulati in termini di sequenza di controllo o che non sia opportuno utilizzare, per quanto possibile, parti MSI. Semplicemente le realizzazioni MSI risultano di solito molto meno eleganti di quanto si sarebbe potuto sperare. In sostanza esse consisteranno in poche parti MSI interconnesse da un gran numero di gate individuali. Nell'esempio che segue si formulera' una sequenza di controllo in modo che la realizzazione finale utilizzi il piu' possibile parti standard MSI. ESEMPIO Si voglia sviluppare un'interfaccia tra un calcolatore e una stampante. Le informazioni sono trasmesse in parallelo su sei linee, individuate dal vettore X. Ogni combinazione rappresenta un carattere da stampare con l'eccezione di ε () 6 il cui apparire fa si' che venga eseguito un ritorno carrello e un avanzamento di riga. 57

272 Integrazionme a media e a larga scala Capitolo Come illustrato in fig...6, l'interfaccia deve generare un segnale sulla linea indicata con ready ogni volta che e' pronta a ricevere un carattere, mentre ogni volta che un carattere e' pronto in X il calcolatore fornira' il segnale read. Nel progetto dovra' essere incluso un sincronizzatore che generi il segnale sread, in concomitanza con il clock e della sua stessa durata, ogni volta che sulla linea read compare un segnale. X ready cr Z Z read sincronizzatore COUN() sread Z 64 clock Z = Ritorno carrello + avanzamento riga figura..6 Le uscite verso la stampante consistono in 64 linee, individuate dal vettore Z; sulla linea Z k comparira' un impulso di durata pari a quello di clock ogni volta che all'ingresso X viene applicato in numerazione binaria il numero k. In particolare poi il segnale della linea Z fara' si' che venga eseguito un ritorno carrello e un avanzamento riga. Dopo l'inizio della stampa di un carattere l'interfaccia dovra' attendere un tempo pari a 6 msec. prima di generare il successivo segnale di ready, mentre nel caso di un ritorno carrello l'attesa dovra' essere di un secondo. Si voglia infine realizzare l'interfaccia con parti standard MSI. Soluzione Si supponga che come parti standard siano disponibili decoders da 4 bit, mentre non siano disponibili quelli da 6 bit. Un efficiente metodo per temporizzare l'attesa prima di generare il segnale ready richiede l'uso di un contatore; se si usa un clock relativamente lento da khz, un contatore da 4 bit terminera' il suo conteggio in 6 msec., mentre uno da bit terminera' il suo ciclo in poco piu' di un secondo, che e' l'intervallo di tempo da far seguire ad un ritorno carrello. Si supponga che un contatore da bit sia disponibile come parte MSI standard. In fig...6 tale parte e' identificata con COUN mentre cr e' un flip-flop che viene posizionato a in presenza di un ritorno carrello. Prima di tentare di costruire un diagramma logico a blocchi per l'unita' di interfaccia, e' necessario darne una formulazione quale sequenza di controllo. Si tenga presente che il vettore di uscita Z deve coincidere con ε ( 64) in ogni istante, eccetto che per un periodo di clock in corrispondenza ad ogni carattere ricevuto. Durante tale periodo una e una sola linea d'uscita deve essere posta a. Il controllore di sequenza quindi 58

273 Integrazionme a media e a larga scala Capitolo presentera' un segnale di nome typ, della durata di un periodo di clock, quando apparira' tale uscita. L'uscita z viene pertanto definita preliminarmente con : 4 4 OUPU: Z = ( typ.x.x.decode( ω /X)), ( typ.x.x.decode( ω /X)), 4 4 ( typ.x.x.decode( /X)), typ.x.x.decode /X ω ( ( ) ω Questa espressione logica combinatoria, che e' la concatenazione di quattro vettori da 6 bit, rappresenta l'uscita istante per istante. Si noti inoltre che tutti i bit di questo vettore saranno a meno che typ non valga ; in quest'ultimo caso solamente un bit varra'. La subroutine logica combinatoria DECODE altro non e' che il decoder MSI da 4 bit. Si osservi che per ricavare un decoder da 6 bit da uno da 4 bit sono necessari 64 gate AND e quattro invertitori. I passi rimanenti della sequenza di controllo sono:. COUN ε( ) ; cr ( sread.) + ( sread. ) 4 =. X.X.DECODE( /X) ;COUN INC( COUN );typ cr ω. INC( COUN ) COUN ( ( + /( cr. α 6 /COUN), ω 4 /COUN ).4) ( + /( cr. α /COUN ), ω /COUN ).)) 4. ready = () Si supponga che il contatore sia progettato in modo da incrementarsi ad ogni impulso di clock a meno che al suo ingresso di reset non sia applicato un. L'ingresso di reset pertanto verra' connesso alla linea di controllo COUN ε( ). Dopo che un carattere sara' stato fornito, il passo. porra' cr a qualora tale carattere fosse il ritorno carrello e porra' typ a per abilitare l'uscita. Si noti che, sebbene non vi sia alcun segnale di controllo che corrisponda a: COUN INC( COUN) il contatore viene incrementato sia al passo. che al passo. finche' gli ultimi 4 bit di COUN non si azzerano oppure, se cr=, finche' tutti i bit non sono contemporaneamente nulli. Solo successivamente, al passo 4., viene generato il segnale ready ed il controllo viene restituito al passo. in attesa del prossimo carattere. Uno schema semplificato sia del controllore di sequenza che della parte di memorizzazione dei dati e logica e' riportata in fig

274 Integrazionme a media e a larga scala Capitolo (DECODE(ω 4 /X)) X5 X4 X X X X Decoder da 4 bit Gates di combinazione con gli ingressi X e X Z Z Z 6 typ = COUN ε () contatore da bit reset X X DECODE( ω 4 / X ) J K Q cr Clock sread D Q D Q D Q ready Q D 4 figura..7 Sebbene l'uso di contatori MSI e di decoder da 4 bit permetta una significativa riduzione del numero di interconnessioni richiesto, puo' destare qualche perplessita' il numero di gate individuali che rimangono nella rete logica. ale situazione e' tuttavia tipica di tutti quei sistemi che hanno un elevato numero di ingressi e di uscite..4) Considerazioni economiche sui circuiti integrati. Sulla scelta della tecnologia con cui implementare un determinato sistema digitale pesa evidentemente in maniera determinante il rapporto costo - velocita'. uttavia per ragioni di semplicita' nel seguito si fara' l'ipotesi che la velocita' non sia un fattore critico. Si consideri pertanto la situazione nella quale un'adeguata realizzazione di un circuito possa essere ottenuta sia utilizzando gate individuali ed elementi di memoria, sia usando gate individuali e parti standard MSI, sia ricorrendo ad una realizzazione LSI specializzata. E' ovvio che la scelta tra i tre possibili approcci e' determinata in questo caso unicamente da considerazioni economiche. E' necessario come primo passo sviluppare un'espressione che permetta di valutare il costo di produzione di n parti MSI o LSI. Un costo considerevole e' certamente quello associato alla produzione del layout, delle maschere, alla simulazione e alla generazione delle sequenze di test. Questi costi, chiamati costi di progetto, sono indipendenti dal numero di dispositivi prodotti e variano con la complessita' della parte progettata. Un'espressione approssimata per il costo di progetto, quando g sia il numero di gate contenuti nel dispositivo, e': 6

275 Integrazionme a media e a larga scala Capitolo costo di progetto = A + B.g A e B sono due costanti che dipendono dalla particolare tecnologia impiegata e che vanno via via diminuendo nel tempo. L'unita' di misura normalmente adottata e' il migliaio di dollari. Il costo totale di produzione di n parti puo' pertanto essere espresso in via approssimata dell'espressione: Costo di n parti = A + B.g + (C + D.g).n (.4.) dove C + D.g e' un costo associato con ciascuna parte prodotta che copre i costi del materiale, del lavoro, di esecuzione dei test e gli imprevisti. Per un circuito LSI specializzato, il cui volume di produzione e' al massimo di alcune migliaia di pezzi, il costo di progetto e' il termine preponderante. Al contrario, per una parte standard MSI, il cui volume di produzione e' di decine e decine di migliaia di pezzi, il costo di progetto diviene una parte trascurabile del costo totale di un singolo esemplare. Il costo di una parte standard e' pertanto: Costo di una parte standard = C + D.g E' forse opportuno a questo punto approfondire quanto esposto attraverso un esempio. ESEMPIO Si supponga che un progettista abbia sviluppato una logica combinatoria composta da 85 gate. Si supponga inoltre che vi siano due possibili approcci per realizzare il progetto. Il primo faccia ricorso ad una parte MSI standard da 9 gate molto simile alla rete logica voluta e che costi K dollari per elemento. Sia inoltre necessaria una rete speciale da gate per realizzare l'interconnessione con la porzione utilizzabile del dispositivo MSI in modo da ottenere quanto desiderato. In tale situazione e' abbastanza logico chiedersi se il dispositivo da costruire non sia realizzabile con maggior economia utilizzando un circuito integrato di tipo "custom". Si supponga infine che il costo dei gate individuali sia di.5 dollari/gate e che si debbano realizzare m esemplari del circuito. Soluzione Il costo dei componenti per n esemplari di una rete ibrida e': Costo dei componenti della rete ibrida = (K +.,5).m = = (K +.5).m (.4.) E' necessario poi tenere in conto un costo addizionale non trascurabile per la realizzazione delle interconnessioni. Assumendo che il costo totale di interconnessione sia di W dollari si ha: 6

276 Integrazionme a media e a larga scala Capitolo Costo della realizzazione ibrida = (K + W +.5).m (.4.) a: Nel caso di una realizzazione totalmente "custom" la (.4.) si riduce per m esemplari Costo della realizzazione "custom" = p + Q.m quando il numero di gate sia fissato (85). Le relazioni ricavate sono riportate in grafico in fig..4. e per facilitare il confronto tra le due possibili soluzioni su tale grafico sono riportate sia la relazione (.4.) che la (.4.) costo Costo ibrido (K+W+.5).m costo di interconnessione costo dei componenti (k+.5).m realizzazione custom p+q.m p K+W+.5-Q p K+.5-Q m figura.4. Risulta evidente che la realizzazione "custom" e' conveniente solo per volumi produttivi molto elevati, mentre la realizzazione ibrida va utilizzata solo per volumi produttivi bassi. Il punto di incrocio e' determinato dal costo di interconnessione, che nel processo totalmente "custom" non ha alcun peso. Si supponga ad esempio che un particolare produttore di semiconduttori quoti la realizzazione "custom" dollari piu' dollari per parte prodotta. Si supponga inoltre che questo stesso produttore possa fornire parti MSI standard a dollari a esemplare (K = dollari). Il costo di interconnessione per la realizzazione ibrida sia poi di.5 dollari ad esemplare. In tali condizioni l'approccio "custom" sara' preferibile per livelli produttivi in cui m soddisfa la diseguaglianza: +.m < 5.m cioe' per m > 667 L'esempio che si e' preso in considerazione si riferisce ovviamente ad una situazione estremamente semplice; d'altra parte puo' servire come base per l'analisi di casi piu' realistici. 6

277 Integrazionme a media e a larga scala Capitolo In genere un sistema complesso puo' essere partizionato in diversi sottosistemi. Di solito vi sono parti MSI standard che sono un'accettabile approssimazione di parecchi, ma non di tutti questi sottosistemi. La stessa partizione in effetti puo' dipendere dal fatto se sia economicamente conveniente o meno una realizzazione di tipo "custom". Infine poiche' in generale vi e' un significativo interesse nei confronti delle memorie ROM, e poiche' le considerazioni economiche ad esse relative si differenziano per qualche aspetto da quelle finora viste, ad esse si fara' riferimento nel seguito del presente paragrafo. ali memorie possono venir utilizzate per immagazzinarvi le sequenze di controllo di unita' microprogrammabili o per rimpiazzare logiche combinatorie. E' opportuno pero' ricordare che il ritardo di una ROM puo' essere dell'ordine della decina di volte il ritardo attraverso due livelli di un circuito realizzato con componenti veloci. Pertanto l'uso di ROM nella realizzazione di logiche combinatorie e' limitato a quelle applicazioni in cui la velocita' non e' determinante. L'uso di ROM infine indirizza verso realizzazioni ibride, con parti combinatorie ed elementi di memoria realizzati con chip separati. Se tutte queste considerazioni non portano a escludere a priori l'uso di ROM, allora l'opportunita' o meno del loro impiego diventa una questione puramente economica. Esistono due tipi di ROM utilizzabili; il primo e' programmabile direttamente dall'utente, solitamente con mezzi elettrici; il secondo tipo invece viene programmato direttamente in fase di costruzione registrando permanentemente i dati durante il processo di fabbricazione. Le ROM programmabili dall'utente possono essere considerate parti LSI standard ed il costo della loro programmazione e' analogo al costo di interconnessione di cui si e' parlato in precedenza. Il costo unitario di queste ROM e' notevolmente maggiore di quelle del secondo tipo; tuttavia non vi e' alcun costo aggiuntivo da prendere in considerazione. Come suggerito dal grafico di fig..4. le ROM programmabili saranno la scelta piu' opportuna quando la produzione e' di pochi esemplari. Per quanto riguarda le ROM del secondo tipo, dette a maschera, vi sono due passi per prepararne la produzione. Il primo passo consiste nel predisporre per la produzione un chip standard completo dei circuiti di indirizzamento. Il secondo passo consiste nell'utilizzare una lista fornita dall'utente, in cui e' descritto il contenuto desiderato della memoria, in modo da sviluppare la maschera necessaria al processo di metallizzazione finale. Il costo della ROM pertanto puo' essere spezzato in tre parti e cioe' nel costo per la preparazione del passo e del passo e nel costo addizionale associato con la produzione di ciascun esemplare. Una parte del costo del passo puo' essere indicata, come gia' e' stato detto, con A. Un'altra parte del costo andra' riferita al decodificatore degli indirizzi e potra' essere considerata approssimativamente proporzionale al numero ( n ) di linee di uscita del decodificatore stesso. La parte rimanente del costo sara' proporzionale al numero totale di bit della ROM, in quanto per ciascuno di essi si rende necessario un transistore. Indicando con b il numero totale di bit per parola, il costo del passo sara': Costo del passo = A + B. n + C.( n.b) dove normalmente B >> C. Il costo di produzione della maschera necessaria alla metallizzazione finale contiene una parte fissa e una parte proporzionale al numero totale di bit. Si ottiene: 6

278 Integrazionme a media e a larga scala Capitolo Costo del passo = D + E.( n.b) Il costo incrementale associato ad ogni ROM prodotta e' funzione essenzialmente del costo dell'involucro e del costo di connessione tra i terminali del circuito e i piedini dell'involucro. Questo costo e' approssimativamente proporzionale al numero totale di piedini e pertanto vale: Costo incrementale = F.(n + b) Non si tentera' in questa sede di dare dei valori alle sei costanti delle espressioni che precedono, in quanto esse sono troppo influenzate dall'evolvere della tecnologia. uttavia queste espressioni possono essere utilmente impiegate dal progettista per decidere quando una ROM e' conveniente per una data applicazione, stimando, quando necessario, dai listini prezzi tali costanti. Le ROM sono normalmente disponibili in un certo numero di configurazioni standard. Alcuni esempi possono essere le dimensioni 6 x 6, 56 x 6, 5 x 8, ma la lista potrebbe essere molto piu' grande ed in pratica una memoria si puo' ottenere come parte standard in qualsiasi configurazione in cui il numero delle parole e il numero di bit per parola (detto anche parallellismo) siano potenze di. Se una ROM standard puo' essere adattata ad una data applicazione, gran parte del costo del passo puo' essere evitato, in quanto tale costo puo' essere distribuito sull'elevatissimo numero di utilizzatori della medesima configurazione circuitale. Il costo del passo e il costo incrementale devono invece essere sostenuti dall'utente individuale. Se sono necessarie p copie identiche di una particolare ROM, il costo unitario C sara' allora: ( n.b) D+ E. C = + F. + p ( n b) E' interessante notare che il costo del decodificatore degli indirizzi, parte non trascurabile del costo del passo, non compare in quest'ultima espressione. Per valori di p molto piccoli il progettista dovra' mettere a confronto il costo di ROM a maschera con quello di realizzazione di una rete di circuiti integrati SSI e con quello di una ROM programmabile. E' evidente che si devono attentamente considerare anche i costi degli zoccoli, talvolta superiori addirittura a quello degli integrati, dei circuiti stampati e i costi di assemblaggio. L'utilizzo di una ROM permette comunque di evitare un gran numero di connessioni. La metallizzazione finale infatti compie tale funzione, in una maniera forse brutale, ma sicuramente sistematica ed efficace. Sfortunatamente quando si abbia a che fare con funzioni a singola uscita il punto di incrocio tra i vari tipi di realizzazione si pone a valori di p molto elevati. L'uso piu' comune di ROM con alti valori di parallellismo si ha in unita' di controllo microprogrammate. In tale applicazione infatti per ogni indirizzo e' necessario un numero di bit sufficiente a specificare l'origine e la destinazione di un trasferimento tra registri e l'indirizzo della successiva istruzione. Un numero di bit particolarmente alto e' richiesto quando si vuol ottenere una notevole flessibilita', utilizzando salti condizionati. In queste 64

279 Integrazionme a media e a larga scala Capitolo particolari condizioni l'uso di una ROM puo' essere conveniente anche quando p sia uguale a..5) La simulazione. utte le volte che l'implementazione di un sistema digitale include una parte MSI o LSI di tipo "custom", il sistema deve operare correttamente fin dalla prima volta. Non e' infatti possibile pensare di apportare una serie di modifiche al progetto del circuito o di costruire un prototipo da sottoporre a test. Ogni modifica al progetto del circuito richiede perlomeno la sostituzione di una costosa maschera di diffusione o di metallizzazione e la fabbricazione di qualsiasi parte nuova puo' comportare ritardi di giorni o addirittura di settimane. Il tradizionale progetto a prova e errore non e' pertanto praticabile e porterebbe di sicuro ad una rapida bancarotta la compagnia che lo praticasse. Poiche' gli errori di progetto sono inevitabili, e' necessario dotarsi di metodi per verificare un sistema prima che questo venga costruito. La risposta sta nel ricorso alla simulazione. Nel presente paragrafo verranno dati dei cenni sui problemi connessi alla simulazione di circuiti sequenziali. E' opportuno rilevare infatti che la necessita' di simulare logiche puramente combinatorie e' molto scarsa e si limita il piu' delle volte al calcolo dei valori funzionali per tutte le possibili combinazioni degli ingressi. Vi sono parecchi modi di affrontare la simulazione dei circuiti sequenziali. Il metodo che si sceglie e' funzione del livello di dettaglio con cui si vuol conoscere il funzionamento del circuito. In termini generali si puo' dire che quanto maggiore e' il livello di dettaglio o la precisione della simulazione, tanto maggiore sara' il tempo di calcolo. ale parametro assume un notevole interesse quando si vogliono simulare reti che contengono un numero di gate superiore al centinaio. Esistono sostanzialmente quattro diversi modi per affrontare la simulazione, ciascuno con il suo livello di dettaglio. A. Analisi della rete. B. Modo asincrono con uscita analogica. C. Modo asincrono con uscita binaria. D. Modo sincrono. In fig..5. e' riportato un grafico qualitativo del contenuto informativo che puo' essere ottenuto in funzione del tempo di calcolo per ciascun tipo di simulazione. contenuto informativo A B C D tempo di calcolo (log.) figura.5. 65

280 Integrazionme a media e a larga scala Capitolo Le simulazioni piu' accurate sono evidentemente basate sui programmi di analisi circuitale (punto A di fig..5.), quali ad esempio lo SCEPRE e lo SPICE. In tal caso per ottenere la massima precisione nel simulare il funzionamento interno dei singoli elementi circuitali e nel ricavare i valori delle uscite non si pongono vincoli al tempo di calcolo. Sfortunatamente per grosse reti logiche il costo della simulazione condotta per tale via diviene proibitivo. All'estremo opposto della curva di fig..5. (punto D) si trova la simulazione sincrona. E' il tipo di simulazione meno costosa e va usato non appena sia in grado di fornire il dettaglio richiesto. C'e' tuttavia da rilevare che non tutti i dispositivi MSI o LSI sono progettati per operare in modo sincrono. Inoltre molto spesso le informazioni che si vogliono ottenere riguardano la possibilita' o meno che un sistema ha di operare ad una determinata frequenza di clock e tale informazione puo' essere ottenuta solo ricorrendo ad una simulazione asincrona in modo fondamentale.per definizione, infatti, una simulazione sincrona implica un'iterazione per ciascun periodo di clock. I valori delle uscite e degli stati futuri vengono cioe' calcolati dalla rete combinatoria e memorizzati in corrispondenza ad ogni istante di clock. Un numero molto maggiore di iterazioni viene richiesto quando la simulazione viene condotta in modo asincrono, anche se il risultato in output dovesse risultare sincrono. Si devono cioe' avere diverse iterazioni tra successive variazioni del clock per permettere ai segnali di propagarsi correttamente e lo stesso clock deve venir considerato come un qualsiasi altro ingresso. Un tal modo di procedere tuttavia permette di ottenere una messe di informazioni notevolmente maggiore che non operando nel modo sincrono. Per ridurre il tempo di calcolo alcune simulazioni di tipo sofisticato usano degli intervalli di tempo variabili tra un'iterazione e l'altra. Un'importante differenza tra la simulazione sincrona e asincrona consiste anche nel fatto che la descrizione della rete nel secondo caso dev'essere notevolmente piu' dettagliata. Nella simulazione sincrona infatti un flip-flop puo' essere considerato un unico elemento, mentre nella simulazione asincrona deve essere trattato come un insieme di 8- gate. Per tutte le ragioni esposte il tempo macchina in una simulazione asincrona e' da a volte superiore di quello di una simulazione sincrona condotta sulla stessa rete logica. Per la simulazione asincrona sono possibili vari approcci; se si ha un accurato modello per i gate, simile a quello illustrato schematicamente in fig..5. (a), si puo' in pratica ottenere l'andamento della tensione di uscita tra i due livelli logici in modo continuo. L'utilizzo di modelli di questa struttura, di natura certamente complicata, si rivela particolarmente utile quando vi e' la possibilita' di corse e di alee. In caso contrario ci si puo' rivolgere a modelli semplificati del tipo di quello illustrato in fig..5. (c). Con riferimento alla fig..5. (b) il blocco indicato come matrice di interconnessione altro non e' se non una rete di connessioni e in un programma di calcolo tale funzione viene realizzata descrivendo in qualche maniera il collegamento tra la matrice che contiene l'uscita dei vari gate e la matrice degli ingressi degli stessi gate. Non si tentera' in questa sede di descrivere come cio' venga effettivamente fatto, in quanto le varie soluzioni fino ad oggi proposte sono molto varie e non riconducibili ad un'unica descrizione. 66

281 Integrazionme a media e a larga scala Capitolo logica Meccanismo di ritardo Modello di gate soglia X X n Matrice di connessione Gate Gate Z Z m (a) (b) Meccanismo di ritardo (c) figura.5. Un possibile modello per il singolo gate, che pur non essendo particolarmente complicato, fornisce tuttavia dei risultati apprezzabili verra' ora descritto a scopo esemplificativo. Esso richiede tre passi di calcolo durante ciascuna iterazione. Durante il primo passo viene calcolata la funzione logica specificata per il gate in corrispondenza al valore attuale degli ingressi. Nel secondo passo viene usato un opportuno modello di ritardo, mentre nel terzo passo viene calcolato il nuovo valore dell'uscita. Si ricordi che il ritardo e il tempo di salita di qualsiasi circuito reale e' influenzato da un certo numero di costanti di tempo. Nel modello che si sta considerando, e che, come si e' detto, e' particolarmente semplice, il tempo di salita viene completamente trascurato. Cio' corrisponde a dire che l'uscita del gate passa da a e viceversa in un'unica iterazione. Si suppone inoltre che il ritardo sia controllato da un'unica costante di tempo, come avviene ad esempio per il modello di fig..5. (c), in cui e' previsto un condensatore connesso tra base del transistore e massa. Una discreta approssimazione di questo modo di funzionamento, che puo' essere considerato un'integrazione non lineare, e' il meccanismo di conteggio avanti-indietro con saturazione illustrato in fig..5.. y n S n+ S S min >S min <S max S max S min - + S max n+ S n+ S < n+ S > z contatore di ritardo soglia di uscita figura.5. 67

282 Integrazionme a media e a larga scala Capitolo S min e S max sono rispettivamente due interi di piccolo valore, l'uno negativo e l'altro positivo. L'effetto combinato del conteggio di ritardo e della soglia sull'uscita puo' essere spiegato come segue. Se la funzione logica y e' all'iterazione n, per gli ingressi correnti, zero il conteggio S viene diminuito, mentre se e' al valore viene incrementato. Come e' specificato nella fig..5. il conteggio S non puo' superare S max o assumere valori inferiori a S min. Per quanto riguarda l'elemento a soglia presente in uscita, esso opera in modo che quest'ultima e' se S e' minore di zero, in caso contrario. Si supponga da esempio che S sia inizialmente saturato a S min e di conseguenza che l uscita z sia. Quando y passa a saranno necessarie ancora S min iterazioni prima che z commuti. Un ragionamento analogo si puo' condurre a partire da S max. S min e S max rappresentano quindi i valori nominali del ritardo a partire dai due livelli logici dell'uscita, espressi in numero di passi di iterazione. Il modello di gate realizzato nel modo appena illustrato possiede parecchie tra le piu' importanti proprieta' di un gate reale. Ad esempio, gli impulsi molto stretti vengono cancellati dal circuito. Il suo principale vantaggio e' la semplicita' e l'efficienza; puo' infatti essere implementato su macchine di piccole dimensioni con aritmetica in virgola fissa operante su parole da byte e non richiede moltiplicazioni e/o divisioni. Ciascuna iterazione operante sull'intera rete si puo' ritenere caratterizzata dal diagramma di flusso di fig E' importante osservare che ciascun passo deve essere terminato per ciascun gate prima che si possa passare al passo successivo. Pertanto tutti gli ingressi di tutti i gate devono rimanere inalterati finche' tutte le uscite non sono state ricalcolate. I gate quindi possono essere presi in considerazione in un ordine qualsiasi senza tenere in alcun conto le interconnessioni della rete stessa. Dopo un certo numero K di iterazioni il programma attiva una routine di supervisione che opera la variazione degli ingressi x... x n ed esegue tutta una serie di operazioni utili ai fini informativi. Si tenga tuttavia presente che la simulazione in modalita' asincrona puo' essere affrontata in molti modi. Quanto e' stato descritto e' solamente un tentativo di illustrare come tale simulazione possa essere condotta anche usando un modello di gate estremamente semplice. SUPERVISORE i = Aggiorna la matrice di connessione Esegue le stampe e gli stop i = i + Calcola i nuovi ingressi dei gates Calcola le uscite di tutti i gates Aggiorna i contatori di ritardo no i = k? Determina le nuove uscite si figura

283 Integrazionme a media e a larga scala Capitolo A titolo di esempio si prenda in considerazione la simulazione asincrona di un gate AND a due ingressi A e B, supponendo che sia S max = e S min = -. Gli ingressi siano quelli illustrati di seguito. A B Si assuma che inizialmente sia S = S min. Il valore di S inizia a cambiare quando A passa a all'iterazione iniziale. L'uscita commutera' invece all'iterazione come illustrato in fig..5.5, mentre S continuera' ad aumentare fino a giungere alla saturazione all'iterazione 5. Si noti che la variazione dell'uscita non avra' alcun effetto su alcun altro gate della rete fino alla quarta iterazione. All'ottava iterazione l'impulso stretto presente all'ingresso B inizia a farsi sentire. E' interessante notare che il corrispondente impulso di uscita e' piu' stretto di quello di ingresso, cosa che nella realta' avviene normalmente per impulsi piu' stretti che non due volte il tempo di ritardo di un gate. iterazione S Z figura.5.5.6) Generazione delle sequenze di test. La fase di test per circuiti a componenti discreti o per circuiti integrati SSI e' di solito considerata un problema collaterale e poco importante nell'ambito del processo di produzione. Il problema si presenta invece notevolmente piu' complesso quando si tratta di verificare circuiti MSI o LSI. Si consideri infatti che in reti anche solo di gate le interconnessioni possono essere diversissime, che il circuito puo' essere puramente combinatorio oppure sequenziale e in quest'ultimo caso puo' essere sincrono o asincrono. Infine che nella maggior parte dei casi il numero degli ingressi e' maggiore del numero di uscite. La rappresentazione a "black box" di fig..6. di un circuito con ingressi e 4 uscite puo' sembrare poco significativa, ma somiglia moltissimo agli involucri dei circuiti integrati cosi' come si presentano alla fase di test. In particolare risulta evidente che le uniche misure che si possono fare sono quelle sui terminali di uscita z... z 4. Pertanto, se vi e' un guasto nella rete, e' necessario far si' che il suo effetto compaia su una di queste linee di uscita. In altre parole si deve far si' che l'uscita di una rete difettosa sia diversa da quella che si ha in corrispondenza agli stessi ingressi su una rete che non presenti 69

284 Integrazionme a media e a larga scala Capitolo guasti. I segnali possono evidentemente essere introdotti nella rete solamente attraverso le linee di ingresso x,...,x. Si supponga per semplicita' che la rete di fig..6. sia puramente combinatoria, rappresentabile cioe' con quattro funzioni booleane da variabili. Il modo piu' completo per verificare la correttezza delle uscite sarebbe quello di applicare alla rete tutte le 4 possibili configurazioni degli ingressi. Definendo come singolo test l'operazione consistente nell'applicare una particolare combinazione all'ingresso e verificare la corrispondente uscita, sarebbero pertanto necessari 4 test. X X X REE LOGICA da gates Z Z Z Z 4 figura.6. Si supponga ora che in un qualche modo sia stato possibile determinare che nella rete di fig..6. non si possano verificare piu' di 5 guasti diversi. Poiche' la rete e' combinatoria, per ogni possibile guasto e' determinabile una configurazione di ingresso che lo mette in evidenza. Non dovrebbero pertanto essere necessari piu' di 5 test per verificare completamente il circuito. C'e' inoltre da dire che una configurazione di ingresso e' di solito in grado di mettere in evidenza non un solo guasto, ma un'intera classe e quindi il numero di test strettamente necessari dovrebbe essere considerevolmente inferiore a 5. Varie metodologie sono state messe a punto per trovare, sia pure in maniera approssimata, l'insieme minimo dei test necessari per la verifica completa di una rete combinatoria (*). Uno dei metodi migliori a tutt'oggi conosciuto e' l'algoritmo D sviluppato da J.P.Roth. Non si ritiene opportuno presentare dettagliatamente il metodo in questa sede. Per maggiori chiarimenti si rimanda il lettore a (**) ESEMPIO Si supponga che il gate AND piu' a sinistra di fig..6. abbia l'ingresso B fissato a a causa di un guasto (Stuck at zero, SA). L'uscita di tale gate sara' quindi in ogni condizione. L'uscita dello stesso gate in una rete priva di guasti sarebbe solamente per A = B =. Pertanto A e B dovranno essere uguali a in ogni test che voglia mettere in luce questo guasto. Assumendo quindi A = B =, si fissi ad un valore indeterminato, rappresentato con X, l'uscita del gate soggetto al guasto, indicando in tal modo che il valore in tale punto differisce nella rete difettosa e in quella priva di guasti. (*) H.Y.Chang - E.G.Manning - G. Metze " Fault diagnosis of digital systems" Wiley - Interscience - N.Y. 97 (**) J.P.Roth - W.G.Bouricius - P.R.Schnieder " Programmed Algorithms to compute test to detect and distinguish between Failures in Logic Circuits" IEEE ransactions on Electronic Computers - EC (ottobre 967) 7

285 Integrazionme a media e a larga scala Capitolo A B C sa z D figura.6. E' necessario ora scegliere per C e D dei valori che permettono la propagazione del valore indeterminato all'uscita. Usando la logica a tre valori introdotta al capitolo IX si vede che l'uscita del gate NOR sara' indeterminata solo se C = e che l'uscita z del circuito sara' indeterminata solo se D =. Si e' in tal modo individuata la configurazione di test per il guasto preso in considerazione. Si noti tuttavia che la stessa configurazione di test puo' mettere in evidenza anche i seguenti guasti: ) SA dell'altro ingresso del gate all'estrema sinistra ) SA dell'ingresso superiore del gate NOR ) SA dell'uscita del gate NOR 4) SA dell'ingresso superiore del gate AND piu' a destra. Nell'esempio considerato sono stati presi in esame solo guasti il cui modello puo' essere realizzato fissando un ingresso o un'uscita a uno dei due livelli logici (stack at...). E' questo che in pratica ancor oggi si fa. In piu' si suppone nello sviluppo di un set di configurazioni di test che non vi sia mai piu' di un guasto al medesimo tempo. Quest'ultima assunzione puo' in parte essere giustificata dalle seguenti considerazioni: ) L'insieme completo dei guasti multipli e' comunque meno probabile di un particolare guasto singolo. ) Massicci guasti multipli derivanti da problemi nel processo di fabbricazione possono venir facilmente rivelati da un qualsiasi insieme di configurazioni di test. uttavia la piu' convincente giustificazione dell'ipotesi di guasto singolo e' che questa e' la piu' semplice e forse l'unica maniera di procedere. Infatti in un circuito che puo' avere 5 guasti singoli vi sono 5 possibilita' di avere un guasto multiplo e quindi l'enumerazione completa non e' praticabile. Ancora piu' complessa e' la situazione quando si prendono in considerazione reti sequenziali. Non e' possibile infatti provare tutte le combinazioni di ingresso realizzabili, in quanto l'uscita non e' solo funzione dell'ingresso, ma anche dello stato e per condurre un circuito sequenziale in un particolare stato puo' essere necessaria una sequenza anche molto lunga di ingressi. Al giorno d'oggi ancora non e' stata determinata una procedura algoritmica per calcolare le sequenze ottime di test per un circuito sequenziale. Il problema e' molto complesso e molto probabilmente il miglior approccio e' quello della simulazione interattiva. Le sequenze di ingresso potrebbero essere suggerite dal progettista sulla base della sua completa conoscenza del funzionamento del circuito. La rete priva di guasti e quelle con 7

286 Integrazionme a media e a larga scala Capitolo guasti singoli vengono simulate sulla base di queste sequenze; molto probabilmente la prima sequenza simulata non riuscira' a riportare in uscita l'effetto di tutti i guasti ipotizzati. Il progettista usera' allora il risultato di questa prima simulazione assieme alla sua conoscenza del funzionamento per suggerire la continuazione della sequenza. A questo punto la simulazione verra' continuata e cosi' via finche' non si sara' ottenuta la copertura di tutti i guasti singoli o di una percentuale di guasti che possa essere ritenuta accettabile. La simulazione puo' evidentemente essere sia sincrona che asincrona. Quella sincrona puo' far uso della logica a tre valori per manipolare livelli indeterminati, quali sono quelli che si possono presentare nella simulazione di elementi di memoria difettosi. E' bene infine osservare che all'inizio di un processo di test lo stato iniziale della rete e' indeterminato. Questa situazione puo' essere simulata assegnando alle uscite degli elementi di memoria il valore indeterminato X. 7

287 Dispositivi di commutazione Capitolo CAPIOLO XII DISPOSIIVI DI COMMUAZIONE.) Introduzione. La validita' di quanto e' stato esposto nei precedenti capitoli non dipende in alcun modo dal tipo dei dispositivi che vengono impiegati nella realizzazione circuitale. uttavia le caratteristiche reali dei componenti che nella pratica vengono usati, impongono vincoli non trascurabili al progettista. E' quindi opportuno prendere in esame i piu' comuni dispositivi, mettendone in evidenza le principali caratteristiche..) Interruttori e rele'. Il piu' semplice dispositivo di commutazione e' l'interruttore, cioe' un dispositivo capace di interrompere o chiudere un circuito. Un rele' e' invece un interruttore azionato da un elettromagnete. La posizione assunta dai suoi contatti, quando nella bobina dell'elettromagnete non circola corrente, viene detta posizione normale. Esistono pertanto rele' con contatti normalmente aperti, detti anche contatti di lavoro, e rele' con contatti normalmente chiusi, detti anche contatti di riposo. Il simbolo con cui vengono rappresentati questi contatti e' riportato rispettivamente in fig... (a) e.. (b). (a) figura.. (b) La velocita' operativa dei rele' e' eccessivamente bassa perche' essi possano essere utilizzati nelle moderne apparecchiature digitali. uttavia essi trovano ancora largo impiego in numerose apparecchiature periferiche. Un'interessante proprieta' dei rele' e' la loro natura bilaterale, che da' luogo ad alcuni particolari problemi, che verranno presi in considerazione nei paragrafi che seguono..) Caratteristiche basilari dei circuiti a rele'. Come si e' gia' accennato in precedenza, la teoria della commutazione e' stata in origine sviluppata per la progettazione dei circuiti di commutazione telefonica che utilizzavano interruttori e rele'. Al giorno d'oggi i rele' sono stati largamente rimpiazzati dai circuiti elettronici nella maggior parte dei circuiti digitali; rimangono tuttavia alcune situazioni in cui i rele' sono i dispositivi piu' pratici per realizzare circuiti logici, come ad esempio nei casi in cui si debbano controllare potenze non indifferenti. Un rele' e' realizzato con un elettromagnete e un pacco di contatti. I contatti operano quando nella bobina del rele' viene fatta circolare corrente. Si e' gia' parlato al paragrafo precedente dei contatti normalmente aperti (NO) e dei contati normalmente chiusi (NC); e' opportuno introdurre un terzo tipo di contatto, detto contatto di scambio, realizzato combinando un contatto NO e uno NC, come illustrato in fig... 7

288 Dispositivi di commutazione Capitolo figura.. Ciascun rele' puo' contenere nel suo pacco di contatti contatti di tutti i tre tipi illustrati. La forma standard di un circuito a rele' e' riportata in fig.... Gli ingressi sono i segnali applicati alle bobine e il valore logico viene associato alla circolazione di corrente nella bobina. Nella particolare realizzazione illustrata, cio' viene ottenuto connettendo un ingresso a terra. La funzione di commutazione viene realizzata interconnettendo opportunamente i contatti del rele'. Le uscite vengono chiamate trasmissioni i, e assumono valore se sono connesse a terra attraverso la rete, altrimenti. X X Xn REE DI CONAI m figura.. Si e' gia' visto in precedenza che nell'analogia di Shannon qualsiasi circuito serieparallelo a contatti puo' essere descritto da una funzione di commutazione e, inversamente, che ad ogni funzione di commutazione puo' esser fatto corrispondere un circuito di commutazione a contatti. Un'interessante proprieta' dei circuiti a rele' rispetto agli altri tipi di circuito di commutazione e' che la loro velocita' operativa e' in pratica indipendente dal numero di livelli della funzione di commutazione; infatti, essendo la connessione tra ingresso e uscita della rete di contatti realizzata in pratica solo con conduttori, il ritardo di propagazione e' trascurabile e la velocita' operativa e' in sostanza determinata solo dai tempi di commutazione dei rele'. La semplificazione dei circuiti a rele' tende a ridurre il numero di contatti; sarebbe evidentemente desiderabile ridurre anche il numero di rele', ma questo numero e' determinato dal numero di variabili richiesto e il piu' delle volte tale parametro non e' controllabile. Una via per ridurre il numero di contatti e' quella di combinare quelli normalmente aperti e quelli normalmente chiusi in contatti di scambio, ove possibile. Una rappresentazione schematica del contatto di scambio e' riportata in fig

289 Dispositivi di commutazione Capitolo _ x x x figura.. Un altro metodo di semplificazione, peculiare dei circuiti a rele', fa uso del carattere bilaterale dei loro contatti. Essi infatti conducono in ambedue le direzioni, mentre i circuiti elettronici normalmente non lo possono fare; talvolta la bilateralita' puo' essere vantaggiosamente sfruttata. Si assuma, ad esempio, di voler realizzare la funzione: ( A,B,C,D,E) = A.B + A.C+ A.B.E A.C. E + La realizzazione diretta da' origine al circuito di fig...4 (a); per semplice ispezione poi il circuito puo' essere portato nella forma di fig...4 (b). Sfruttando poi la bilateralita' del contatto E, ci si puo' ridurre al circuito di fig...4 (c), che prende il nome di circuito a ponte o a traliccio. Il percorso --4 realizza il termine A.C, quello --4 il termine A.B, quello ---4 il termine A.C.E ed infine quello ---4 il termine A.B.E. A _ A _ B C _ A A _ B C E E _ B (a) A _ B A E _ A _ B C E _ A C 4 C (b) (c) figura..4 La domanda che ci si puo' porre a questo punto e' allora come proceda il progetto di un circuito a rele'. Il modo piu' semplice e' quello di utilizzare le normali tecniche di 75

290 Dispositivi di commutazione Capitolo semplificazione per ottenere la forma minima a due livelli. Solo successivamente, con una combinazione intuitiva di ispezione visuale e manipolazione algebrica, i contatti vengono eliminati o trasformati in contatti di scambio, non appena cio' sia possibile. Infine va esaminato se non sia possibile passare ad una struttura a traliccio. Come non esiste alcuna procedura sistematica che permetta di individuare la forma migliore per una funzione di commutazione, cosi' non esiste alcun modo per determinare il circuito minimo in una realizzazione a rele' o per giudicare se un dato circuito sia minimo. Un buon progetto a rele' deriva essenzialmente dal grado di esperienza del progettista..4) Realizzazione a rele' delle funzioni simmetriche. Le funzioni simmetriche possono essere realizzate in maniera notevolmente economica usando reti di contatti. Si noti infatti che le cinque uscite della rete di fig..4. sono le cinque funzioni simmetriche elementari di quattro variabili. D _ D C D C D B C D _ B C D A B C _ D _ A B C D σ (A,B,C,D) 4 σ (A,B,C,D) σ (A,B,C,D) σ (A,B,C,D) σ (A,B,C,D) figura.4. Qualsiasi funzione simmetrica puo' quindi essere realizzata combinando assieme alcune di queste uscite e si deve far osservare che quando alcune uscite vengono connesse tra di loro alcuni contatti diventano ridondanti e possono essere eliminati. E' evidente che tale discorso non risulta limitato alle funzioni simmetriche di quattro variabili, ma puo' essere esteso ad un numero di variabili qualsiasi. L'argomento e' stato affrontato ed esposto in dettaglio (*) da parecchi autori. Un altro speciale tipo di rete che puo' essere facilmente realizzato con rele' e' la struttura ad albero binario di fig..4.. Si noti che la struttura illustrata realizza un selettore di tre variabili; l'estensione ad un qualsiasi numero di variabili e' immediata. (*) Marcus M.P. "Switching Circuits for Engineers" Prentice - Hall, Englewood Cliffs, N.J

291 Dispositivi di commutazione Capitolo _ A A _ B B _ B B _ C C _ C C _ C C _ C C m m m m m 4 m 5 m 6 m 7 figura.4..5) I rele' nei circuiti sequenziali. ra i vari tipi di rele' disponibili esistono i rele' a tenuta (latching relays), cioe' quelli nei quali l'una o l'altra delle due posizioni puo' essere mantenuta anche quando l'eccitazione viene a cessare. Questi dispositivi operano come un flip-flop, in quanto quando uno di essi viene posizionato in uno dei suoi due stati, dando corrente a una delle sue due bobine, vi rimane finche' l'altra sua bobina non viene eccitata. Parimenti due rele' ordinari possono essere collegati in modo incrociato per formare elementi di memoria allo stesso modo in cui si collegano porte NAND e NOR. I sistemi che usano rele' a tenuta possono essere considerati circuiti sequenziali sincroni o a impulsi, tuttavia l'uso di questi componenti non e' molto diffuso presso i progettisti di circuiti a rele'. Piu' frequentemente alla rete combinatoria del rele' viene aggiunta una reazione in modo da formare un circuito sequenziale funzionante in modo fondamentale. In fig..5. e' illustrata una configurazione circuitale che si comporta come un flip-flop SR, con l'ingresso A corrispondente al set e il B al reset. A y _ y A _ y y B z B y B A A y _ B y _ B y y figura.5. Si noti che il ritardo introdotto dalla commutazione di un rele' e' di parecchi ordini di grandezza maggiore del ritardo dei circuiti elettronici ed e' in pratica uguale per tutte le uscite. 77

292 Dispositivi di commutazione Capitolo Di conseguenza la commutazione dei contatti dovuta alla transizione degli ingressi sara' sempre completata prima che un'ulteriore transizione possa avvenire a causa della variazione delle variabili di stato. Pertanto, a causa di questo ritardo, che si puo' immaginare concentrato tutto nei loop di reazione, le alee essenziali non sono un problema nei circuiti a rele'. La tavola di flusso che corrisponde al circuito di fig..5. e' riportata in fig..5.. Le equazioni di eccitazione e di uscita sono: y = + + A. B B. y A. y = A.B + A.y B. y y + z= y.y+ y.y Poiche' le uscite dipendono solo dalla storia delle transizioni di ingresso, la tavola di stato minima rimane una tavola di Moore e si ha un circuito privo di alee senza alcuna particolare precauzione. AB yy z figura.5..6) I circuiti logici. Gli interruttori e i rele' hanno avuto una grande importanza storica, ma al giorno d'oggi la maggior parte dei sistemi digitali e' realizzata con dispositivi elettronici, essenzialmente diodi semiconduttori e transistori. In termini ideali un diodo ha una resistenza nulla in senso diretto ed infinita in senso inverso e la sua caratteristica e' quella riportata in fig..6. (a). Nella realta' le due ipotesi enunciate non sono affatto verificate e l'effettiva caratteristica di un diodo reale e' quella di fig..6. (b). Senza entrare in eccessivo dettaglio si puo' ricordare che per un diodo reale la resistenza diretta non e' nulla, mentre quella inversa non e' infinita. Inoltre per tensioni inverse sufficientemente grandi si ha il fenomeno della scarica zener per effetto del quale la corrente sale rapidamente. 78

293 Dispositivi di commutazione Capitolo I I V V (a) figura.6. (b) I circuiti per le due forme base di gate a diodi sono riportati in fig..6.. Il loro funzionamento e' intuitivo e la funzione realizzata da ciascuno d'essi dipende dalla logica, positiva o negativa, con cui operano. E' facile verificare che in logica positiva il primo circuito realizza la funzione logica AND mentre il secondo realizza quella OR. V h V l e e e e (a) figura.6. (b) E' interessante far notare che se i diodi fossero ideali non ci sarebbe alcun limite al numero di ingressi di ciascun gate ne' alcun limite al numero di altri circuiti analoghi che potrebbero essere connessi all'uscita di un singolo gate. Invece con diodi reali le cadute ai capi dei diodi conduttori e le correnti inverse portano ad una continua degradazione dei livelli dei segnali via via che la complessita' e il numero di stadi in cascata aumentano. Questo inconveniente della logica a diodi puo' essere superato introducendo degli opportuni amplificatori, di solito realizzati a transistori. ali amplificatori lavorano quasi sempre tra saturazione e interdizione, in modo da assicurare una notevole stabilita' dei livelli di tensione associati a ciascun stato logico, rendendo nel contempo disponibile una notevole escursione di tensione in corrispondenza alla commutazione. Alle velocita' di commutazione piu' elevate tuttavia puo' essere necessario ricorrere ad amplificatori non saturati, per motivi che verranno illustrati piu' avanti. Il circuito base dell'invertitore, nel caso di transistori NPN, e' quello di fig..6.. Si tenga presente che utilizzando transistori al silicio spesso R bb viene omessa e V- vale zero. 79

294 Dispositivi di commutazione Capitolo V+ R c e i R b e R bb V V- L figura.6. Per correggere le deficienze di carico di un gate a diodi puo' essere sufficiente collegare alla sua uscita un invertitore, come mostrato in fig VH V+ Rg Rc e Rb e e Rbb figura.6.4 VL V- Il funzionamento e' evidente e realizza in logica positiva la funzione NAND, in logica negativa la funzione NOR. E' bene far osservare che l'aggiunta di un invertitore diminuisce sostanzialmente i problemi di carico di un gate a diodi, ma non li elimina completamente. Si consideri infatti la situazione di fig..6.5, in cui un gate NAND pilota un secondo gate dello stesso tipo. I L figura.6.5 Quando l'uscita del primo gate e' a livello basso, cioe' quando il relativo transistore e' saturato, in esso fluisce, come illustrato in fig..6.5, una corrente di carico I L. Se altri gate 8

295 Dispositivi di commutazione Capitolo vengono connessi in parallelo sull'uscita, essi contribuiscono ad aumentare I L. Se tale corrente supera il limite determinato dalla corrente di base e dal guadagno di corrente del transistore, quest'ultimo esce di saturazione e la tensione di uscita sale, superando facilmente il livello logico basso. Anche il numero massimo di ingressi per ciascun gate risulta aumentato con l'introduzione dell'invertitore; infatti proprio per la presenza del transistore non e' piu' necessario assicurare che il livello alto di tensione in uscita dal gate a diodi non scenda al di sotto di un determinato livello, ma e' sufficiente che alla base del transistore venga fornita una corrente sufficiente a mantenerlo in saturazione. Pertanto la resistenza non infinita dei diodi polarizzati inversamente pesa molto meno che non nel caso in cui non ci sia in uscita l'invertitore. C'e' infine da osservare che l'introduzione di un amplificatore a transistori elimina completamente la degradazione del segnale che si ha, via via che aumenta il numero degli stadi in cascata..7) Velocita' e ritardo nei circuiti logici. La velocita' operativa dei circuiti logici e' generalmente un parametro importante, soprattutto nelle applicazioni di calcolo automatico. Per tale ragione gran parte degli sforzi dedicati al campo della progettazione circuitale tendono a realizzare dispositivi sempre piu' veloci. Malgrado che questo aspetto riguardi piu' i progettisti di circuiti che non i progettisti logici, la conoscenza, sia pure qualitativa, della natura delle transizioni e dei ritardi introdotti dalle strutture circuititali con cui si ha a che fare gioca un ruolo importante nella teoria logica dei circuiti sequenziali. La fig..7. illustra un invertitore nella configurazione a emettitore comune e la sua risposta ad un impulso positivo applicato alla base, tale da portarlo da interdizione a saturazione e viceversa. Per determinare questa risposta e' necessario considerare un certo numero di fenomeni fisici complessi. Vale la pena di richiamare brevemente alcuni di essi. ei V+ Rc t ei Rb e i c Rbb VL V- td ts t tr tf figura.7. A partire dall'istante in cui inizia l'impulso di base, vi e' un tempo di ritardo t d prima che la corrente di collettore inizi a salire. Questo ritardo e' determinato essenzialmente dalla 8

296 Dispositivi di commutazione Capitolo capacita' totale base-emettitore del transistore, che deve venir caricata ad una tensione lievemente positiva prima che il transistore possa iniziare a condurre. Dopo l'inizio della conduzione si ha un tempo di salita finito t r determinato principalmente dalla capacita' di collettore e dalle caratteristiche intrinseche del transistore. Sul fronte di discesa dell'impulso di ingresso si ha un primo tempo t s, detto tempo di restituzione, dovuto sia alla capacita' base-emettitore sia all'accumulo di cariche minoritarie nello spazio di base. Questo tempo e' forse il piu' importante tra i tempi di commutazione ed e' comunque notevolmente piu' grande che non t d. Infine vi e' un tempo di discesa finito t f dovuto anch'esso, come il tempo di salita, alla capacita' di collettore e alle caratteristiche intrinseche del transistore. Allo scopo di specificare il ritardo cui il segnale e' sottoposto nell'attraversare i gate i tempi t r e t f sono significativi solo se i corrispondenti tempi del segnale presente all'ingresso sono trascurabili. E' questo tuttavia un caso abbastanza raro, poiche' i circuiti logici sono normalmente pilotati da circuiti analoghi e di conseguenza i tempi di salita e di discesa sono dello stesso ordine di grandezza sia all'ingresso che all'uscita. Essi tuttavia, pur non essendo completamente significativi, influenzano il valore del tempo di ritardo a seconda di come questo tempo di ritardo viene misurato. E' necessario quindi specificare i punti delle forme d'onda di ingresso e di uscita usati per definire i tempi di ritardo stessi. A questo riguardo e' necessario notare che i transistori usati nei circuiti logici lavorano normalmente in regime di saturazione. Anche se il segnale di ingresso varia sull'intero campo di valori ammissibili, solo un piccolo intervallo di questo campo e' quello che determina la commutazione tra un livello logico e l'altro. Per i principali dispositivi logici tale intervallo si aggira su. volt e quindi i tempi di salita e discesa del segnale di uscita saranno totalmente determinati dai parametri interni del circuito logico a meno che il segnale di ingresso non vari talmente lentamente da permanere in questo intervallo per tempi notevolmente maggiori dei tempi di commutazione nominali. In definitiva i tempi di ritardo di un gate vengono misurati, come e' illustrato in fig..7., pilotando l'ingresso con un impulso che abbia tempo di salita e discesa dello stesso ordine di grandezza di quelli del segnale di uscita ed eseguendo la misura con riferimento a punti ben specificati, quali ad esempio possono essere i tempi all'emivalore. ingresso uscita t pd t pd figura.7. Le due transizioni di solito non danno luogo a due tempi di ritardo uguali, com'e' logico aspettarsi dal momento che i fenomeni fisici interessati dalle due commutazioni sono diversi. 8

297 Dispositivi di commutazione Capitolo Per quanto riguarda la notazione per i tempi di ritardo essa purtroppo non e' standardizzata. La piu' comune indica con t pd o con t pd- il ritardo associato al fronte di discesa dell'uscita, con t pd o t pd+ quello associato al fronte positivo. Il tempo di ritardo medio t pd e' definito come media aritmetica di questi due tempi ed e' quello che piu' comunemente viene fornito dai costruttori tra i dati caratteristici..8) I circuiti logici integrati. utti i circuiti integrati digitali, con l'eccezione di alcune realizzazioni a larga scala, quali ad esempio le memorie o i microprocessori, sono riuniti in un certo numero di famiglie logiche. Ciascuna famiglia e' basata su un particolare tipo di circuito elementare usato in tutti i dispositivi della famiglia per realizzare invertitori, gate di diverso tipo ed elementi di memoria quali i flip-flop. Ciascuna famiglia inoltre include elementi a media e talvolta a larga scala di integrazione. utti i dispositivi di una famiglia logica sono tra di loro compatibili, nel senso che i livelli logici sono gli stessi, possono essere alimentati con la stessa tensione e l'uscita di un elemento e' in grado di pilotare direttamente almeno un ingresso di qualsiasi altro elemento della stessa famiglia. Al contrario, poiche' ogni famiglia logica usa un diverso circuito elementare, esse non sono di solito compatibili tra di loro, anche nel caso in cui alcune delle loro caratteristiche coincidano. Ciascuna famiglia comprende, in aggiunta agli elementi base SSI, MSI e LSI, un certo numero di circuiti ausiliari, quali ad esempio traslatori di livello (per scopi di interfacciamento con altre famiglie), circuiti di condizionamento del segnale (trigger di Schmitt e multivibratori), circuiti di pilotaggio di visualizzatori e vari altri circuiti per applicazioni speciali. Il numero di questi circuiti ausiliari dipende dalla diffusione della famiglia stessa; quella a tutt'oggi piu' numerosa comprende oltre diversi dispositivi, quella piu' povera meno di 5. Le famiglie piu' comuni e piu' diffuse sono: L - logica transitore - transistore DL - logica diodi - transistore HL - logica a elevata soglia RL - logica resistori - transistore ECL - logica ad accoppiamento di emettitore chiamata anche logica a commutazione di corrente. CMOS - logica a transistori MOS complementari. Le prime cinque famiglie usano transistori bipolari, l'ultima transistori unipolari. In aggiunta alle famiglie logiche esiste un'ampia varieta' di dispositivi realizzati in tecnologia MOS, normalmente a canale P e a rinforzo. uttavia tale tecnologia e' usata quasi esclusivamente per la produzione di circuiti LSI specializzati, quali memorie, microprocessori e circuiti "custom". Per tale motivo i circuiti MOS non sono inquadrati in una famiglia logica, ma sono di solito considerati prodotti individuali a larga scala di integrazione. Nel discutere le famiglie logiche e' infine importante porre l'accento sul fatto che il loro sviluppo avviene in un ambiente dallo sviluppo tecnologico estremamente veloce e di intensa competizione. ale fatto ha portato ad un rapido sviluppo dei componenti e, a causa della vitalita' del mercato, al nascere e all'affermarsi di un notevole gruppo di produttori. Al giorno 8

298 Dispositivi di commutazione Capitolo d'oggi, quando uno dei produttori ha successo nell'introdurre e commercializzare una determinata famiglia logica, essa viene immediatamente prodotta su licenza dalle altre compagnie, eventualmente completata con nuovi dispositivi o migliorata nelle sue caratteristiche..9) Caratteristiche dei circuiti integrati digitali. Ogni famiglia logica viene progettata per una differente applicazione ed ha in alcune sue caratteristiche i suoi punti di forza, in altre i suoi inconvenienti. Poiche' il circuito base di ciascuna famiglia e' differente, i relativi dispositivi hanno caratteristiche diverse. Ad esempio i circuiti dei calcolatori di grosse dimensioni devono operare molto velocemente e di conseguenza per la loro realizzazione si useranno componenti di famiglie logiche veloci; se al contrario si prevedesse per il circuiti lunghi periodi di funzionamento con alimentazione fornita da batterie, allora diventa molto piu' importante la caratteristica di un basso consumo. Sebbene una valutazione corretta dei circuiti digitali integrati richieda un attento studio dei dati forniti dal costruttore, si riportano qui di seguito le definizioni di quelle caratteristiche che si ritengono maggiormente interessanti e significative. FAN-IN. E' il numero di ingressi che controllano un operatore logico. Molto spesso sono disponibili degli ingressi di espansione che permettono di aumentare il fan-in. L'eccessivo uso di ingressi di espansione fa tuttavia aumentare la capacita' di ingresso e di conseguenza il tempo di propagazione. FAN-OU.E' la misura del carico che puo' essere connesso all'uscita di un gate o di qualsiasi elemento logico della famiglia. Poiche' il carico e' normalmente dato da uno o piu' ingressi di altri elementi logici della stessa famiglia, il fan-out e' usualmente identificato dal numero di ingressi che possono venir connessi all'uscita dell'elemento logico considerato. Piu' esattamente ciascuna famiglia logica ha "un'unita' di carico" espressa in milliampere che rappresenta la corrente necessaria ad attivare un tipico circuito di quella famiglia logica. Il fan-out viene ottenuto normalizzando tramite l'unita' di carico la massima corrente di uscita. In sostanza quindi, quando ad esempio si parla di fan-out pari a, cio' sta a significare che puo' venir pilotato un numero di ingressi tale da costituire un fattore di carico normalizzato pari a. LIVELLI LOGICI. L'uscita di un circuito digitale puo' assumere normalmente due soli stati, detti rispettivamente alto e basso. I corrispondenti livelli di tensione vengono indicati di solito con V H e V L e variano da famiglia a famiglia logica. E' opportuno tuttavia far notare che alcuni circuiti digitali vengono progettati per lavorare a tre stati e il terzo stato corrisponde a un circuito aperto. 84

299 Dispositivi di commutazione Capitolo RIARDO DI PROPAGAZIONE E VELOCIA'. Il ritardo di propagazione misura quanto rapidamente si propaghi la commutazione di un livello logico di ingresso verso l'uscita. Piu' esattamente si definiscono di solito due ritardi di propagazione che tengono conto della dissimmetria di funzionamento nelle due commutazioni: il ritardo di propagazione per l'uscita che commuta da livello basso a livello alto e' indicata con t plh o t pd+, quello relativo alla commutazione opposta con t phl o t pd-. Ambedue i tempi vengono misurati tra i punti al 5% dei segnali di ingresso e di uscita. La semisomma di tali tempi prende il nome di ritardo medio di propagazione ed e' indicata normalmente con t av o t pd. Il tempo di salita t r e di discesa t f sono invece misurati tra il % e il 9% del fronte di salita e rispettivamente di discesa dell'uscita. I tempi di propagazione variano con la temperatura, la tensione di alimentazione e il carico. Alcuni esempi sono riportati nei grafici di fig..9.. La velocita' e' direttamente correlata con il ritardo di propagazione e misura la massima frequenza cui puo' commutare un flip-flop senza commettere commutazioni errate. V cc =,6 V V cc = 5 V n=7 ritardo di n=5 propagazione (nsec.) n= n= temperatura 5 4 n=7 n=5 n= n= temperatura 5 figura.9. DISSIPAZIONE DI POENZA. Come in qualsiasi altro circuito elettronico la potenza dissipata viene misurata in watt o in milliwatt. Essa rappresenta la potenza che effettivamente si dissipa nel dispositivo e non comprende quindi la potenza che viene eventualmente fornita ad altri dispositivi. Di regola essa indica nei circuiti integrati la potenza che si dissipa in un gate che lavora per meta' del tempo allo stato alto e per l'altra meta' allo stato basso e permette di valutare la potenza totale dissipata dal circuito ai fini del dimensionamento dell'alimentatore. 85

300 Dispositivi di commutazione Capitolo IMMUNIA' AL RUMORE. Misura la quantita' di segnale disturbante che puo' essere sovrapposto a un segnale logico senza causare un'errata commutazione dell'uscita. E' necessario distinguere tra immunita' al rumore statica, relativa a segnali che varino lentamente o ad impulsi sufficientemente lunghi e immunita' al rumore dinamica. E' abbastanza evidente infatti che un impulso di ingresso di durata comparabile con il ritardo di propagazione potra' avere un'ampiezza anche notevole senza dar luogo ad un'errata commutazione dell'uscita. La medesima ampiezza sarebbe invece intollerabile se il segnale di disturbo fosse a bassa frequenza. L'immunita' al rumore e' anch'essa funzione della temperatura, della tensione di alimentazione e dal carico. CAMPO DI EMPERAURE DI UILIZZO. E' il campo di temperatura entro il quale un circuito integrato puo' operare senza che alcuna delle sue caratteristiche nominali sia compromessa. AIUDINE AL PILOAGGIO DI CARICHI CAPACIIVI. L'attitudine a pilotare carichi capacitivi e' un'importante caratteristica dei circuiti digitali integrati, soprattutto quando un'uscita deve pilotare delle interconnessioni realizzate con cavi di una certa lunghezza. nsec. Ritardo di propagazione volt 5 volt 6 volt Capacita' di carico figura.9. Questa attitudine dipende direttamente dall'impedenza d'uscita del circuito e quanto minore e' questa impedenza, tanto meglio un carico capacitivo viene pilotato. Quando infatti ad un circuito viene applicato un carico capacitivo i tempi di salita e di discesa vengono largamente influenzati dal carico stesso. Il tempo di propagazione viene aumentato 86

301 Dispositivi di commutazione Capitolo in maniera proporzionale all'aumento della costante di tempo del circuito causata dal carico capacitivo. In fig..9. e' riportato il tempo di propagazione in funzione della capacita' di carico e della tensione di alimentazione per un tipico circuito appartenente alla famiglia DL. PROEZIONE DAL CORO CIRCUIO. Impedisce che un circuito, la cui uscita sia stata connessa direttamente a terra, venga danneggiato. ale proprieta' puo' essere riconosciuta semplicemente esaminando il circuito e riconoscendo se nel circuito d'uscita vi sia o meno una resistenza connessa tra alimentazione e terminale di uscita, destinata a limitare la corrente nel caso di corto circuito. OLLERANZA SULLE ENSIONI DI ALIMENAZIONE. Definisce il campo di tensioni di alimentazione entro il quale le caratteristiche del dispositivo sono garantite. IPO DI CIRCUIO LOGICO. Dipende dal numero di circuiti elementari integrati su un unico substrato di silicio. Si possono distinguere le tre principali categorie: Circuiti SSI (small scale integration) con un numero di porte logiche elementari che puo' raggiungere le porte per involucro. Circuiti MSI (Medium scale integration) con capacita' comprese tra le e le porte logiche. Circuiti LSI (Large scale integration) con capacita' superiore alle porte logiche. La realizzazione SSI copre il campo dei singoli elementi logici e delle reti logiche piu' semplici, quelle MSI le reti logiche di dimensioni medio - grandi, quali convertitori A/D, multiplexer, ecc. Infine le realizzazioni LSI sono destinate a reti logiche di dimensioni molto ampie, quali memorie, unita' aritmetico-logiche, ecc. IPO DI INVOLUCRO. Esistono numerosi tipi di involucro per i circuiti integrati: I piu' comuni sono il O-5, il flat pack, il dual in line e il SO. Il O-5 e' un involucro metallico, in pratica uguale a quello utilizzato per i transistori, con 8, o piedini. Il flat pack e' un involucro misto metallo ceramica di forma rettangolare appiattita. Il flat pack viene prodotto in due dimensioni con, o 4 piedini; questi a loro volta possono essere terminali piatti flessibili e dorati o collegamenti a sezione circolare in rame. L'involucro dual in 87

302 Dispositivi di commutazione Capitolo line e' forse il piu' diffuso, pur essendo di maggiori dimensioni che non gli altri due. I piedini, di tipo rigido, sono in numero di 4, 6, 4 o piu', ma proprio per la loro rigidita' sono particolarmente adatti ad un montaggio automatico su circuito stampato. Infine il SO e' l'involucro utilizzato nelle tecnologie di montaggio superficiale. Esistono ovviamente numerosi altri involucri e al giorno d'oggi non e' raro trovare contenitori con un numero di piedini di collegamento che supera abbondantemente il centinaio I parametri descritti presentano il difetto di un'eccessiva schematizzazione, con l'aggravante che ciascun costruttore tende ad enfatizzare gli aspetti positivi dei suoi prodotti e a minimizzarne quelli negativi. Vi sono altri parametri oltre quelli descritti che potrebbero determinare la scelta di una famiglia logica, ad esempio la varieta' dei componenti della famiglia o la loro reperibilita' presso diverse fonti, la compatibilita' con i livelli di segnale o con le tensioni di alimentazione di altre famiglie o ancora la loro resistenza ad ambienti particolarmente sfavorevoli e/o aggressivi. Infine come parametro di notevole interesse si puo' citare il prodotto della potenza dissipata per il tempo medio di propagazione. Anche se raramente riportato sulle caratteristiche,tale parametro misura in un certo qual modo la "bonta'" di una famiglia logica, che si puo' ritenere inversamente proporzionale al valore del prodotto stesso..) Immunita' al rumore. La conoscenza del margine di rumore dei dispositivi digitali e' di estrema importanza per il progettista, sia allo scopo di determinare i segnali di ingresso e di uscita del sistema, sia per decidere se l'apparecchiatura realizzata debba o no essere schermata. Cosa significhi effettivamente il margine di rumore in un sistema digitale e' facilmente spiegabile sulla base della caratteristica di trasferimento ingresso-uscita dei dispositivi usati. Si consideri un semplice sistema reazionato costituito da due invertitori identici. Sul grafico di fig... (b) sono riportate sia la caratteristica del dispositivo che quella del dispositivo, con l'avvertenza tuttavia che il segnale di ingresso X e' riportato sull'asse verticale, e il corrispondente segnale di uscita su quello orizzontale, al contrario pertanto di quanto fatto per il dispositivo. ale modo di operare appare tuttavia naturale quando si consideri che il segnale di uscita di un gate coincide con il segnale di ingresso dell'altro gate. Le due caratteristiche si intersecano in tre punti, A, B e C che rappresentano le sole tre condizioni in cui il circuito puo' trovarsi; infatti solo in questi punti X = Y e X = Y Se il dispositivo si trova nel punto A allora l'ingresso e l'uscita del dispositivo sono ancora specificati dal punto A. Il sistema, a rigore, potrebbe trovarsi in uno qualsiasi dei tre punti; tuttavia la condizione di funzionamento nel punto B e' instabile e qualsiasi perturbazione, per quanto piccola, portera' il sistema in A o in C. 88

303 Dispositivi di commutazione Capitolo Nella realta' i due dispositivi non saranno mai identici. La caratteristica di trasferimento non potra' dunque essere rappresentata da un singola curva, ma sara' un inviluppo contenente tutte le possibili caratteristiche. Le dimensioni dell'inviluppo sono determinate dai limiti che vengono fissati per l'uscita, quando viene compiuto l'esame di accettazione in fase di produzione. x y x y x,y A B C (a) figura.. (b) x,y Generalmente viene scelta in modo arbitrario la massima tensione di uscita V OL accettabile come valore logico. A tale tensione viene aggiunta una banda di guardia e la tensione totale (V OL + banda di guardia) viene applicata all'ingresso. La tensione di uscita che se ne ricava e' chiamata V OH, cioe' la piu' bassa tensione possibile accettabile come logico. Questi due parametri V OL e V OH vengono utilizzati per scegliere i dispositivi in sede di produzione e determinano l'inviluppo delle caratteristiche di trasferimento. In fig... sono riportati due di questi inviluppi per il semplice sistema reazionato che e' stato preso in considerazione. Le tensioni rappresentative del punto di lavoro di ciascun dispositivo possono in questo caso cadere nelle tre aree tratteggiate A,B e C, intersezioni tra i due inviluppi. E' evidente che anche in questo caso tutti i punti dell'area B rappresentano situazioni di instabilita'. A V OU * VIL * V IH B * V OH VNL V IN V NH C * V OL figura.. L'ordinata del punto al vertice sinistro alto dell'area C rappresenta la massima tensione allo stato basso che un dispositivo puo' avere quando viene pilotato da un altro dispositivo della stessa famiglia. ale tensione viene indicata con V OL *. 89

304 Dispositivi di commutazione Capitolo Un dispositivo pilotato con V OL * avra' come tensione di uscita V OH * quella rappresentata dall'ordinata del vertice destro basso dell'area A. I due livelli cosi definiti sono le uscite dei due dispositivi interconnessi, nell'ipotesi che durante la loro selezione si siano incontrati due dispositivi al limite estremo del campo di tollerabilità, in modo tale che il sistema reazionato lavori nelle peggiori condizioni possibili. Per un qualsiasi motivo tuttavia, ad esempio per la presenza di un disturbo, il segnale di ingresso puo' spostarsi dalla regione A verso la regione B. Malgrado cio', purche' non si entri nella regione B stessa, il segnale sara' ancora interpretato come segnale logico basso. In corrispondenza la tensione d'uscita tendera' al vertice opposto della regione B, ma non dara' luogo ad un cambio di stato del sistema. Al cessare della causa perturbante il sistema ritornera' nelle condizioni originarie. I vertici opposti della regione B rappresentano pertanto i valori estremi della tensione di ingresso che non danno luogo ad una commutazione del sistema; tali valori vengono indicati con V IL * e V IH * e rappresentano rispettivamente il massimo valore di ingresso sicuramente riconosciuto come uno zero logico e il minimo valore riconosciuto come un uno logico. Il margine di rumore del sistema e' la distanza che intercorre tra le uscite dello stesso sistema supposto privo di rumore e le due tensioni limite di ingresso V IL * e V IH *. Queste differenze, indicate in fig... con V NH e V NL sono dette rispettivamente margine di rumore allo stato alto e margine di rumore allo stato basso e possono ovviamente essere differenti. Si noti che gli inviluppi si ampliano assegnando specifiche di tolleranza meno pesanti; inoltre se la pendenza della zona di transizione diminuisce, la regione B si estende verso A e C, diminuendo i margini di rumore. Sui dati caratteristici forniti dai costruttori sono assegnate le quantita' V OH, V OL, V IH e V IL che non coincidono perfettamente con le quantita' asteriscate fin qui introdotte. Si ricordi che per le quantita' asteriscate valgono le seguenti definizioni: V * OL V * IL Arbitrario V * OL + la banda di guardia V NL V * OH uscita minima allo stato alto quando l'ingresso e' V * IL V * IH V * OH - la banda di guardia V NH Le grandezze fornite dai costruttori sono cautelative rispetto a quelle asteriscate; piu' precisamente si puo' dire che: V IL = V IL * V IH = V IH * mentre V OH si trova sulla curva di trasferimento appena a destra e al di sotto della zona A e V OL appena a sinistra e al di sopra della zona C. I margini di rumore apparenti, calcolati come: V NL = V IL - V OL V NH = V OH - V IH sono pertanto inferiori a quelli reali, sia per i valori piu' pessimistici di V OL e V OH, sia perche' normalmente i dispositivi usati ben difficilmente lavoreranno nelle peggiori condizioni, identificate dai vertici della regione B e da quello inferiore e superiore rispettivamente della regione A e C. 9

305 Dispositivi di commutazione Capitolo.) Margine di rumore dinamico. Nella discussione sul margine di rumore del paragrafo precedente si e' implicitamente assunto che la caratteristica di trasferimento di un gate dipenda unicamente dall'ampiezza del segnale di ingresso e non dalla frequenza o dalla durata dell'impulso di ingresso. Si ricordi tuttavia che, come e' stato illustrato al paragrafo.7, un circuito digitale reale non puo' rispondere immediatamente ad una variazione del segnale di ingresso; inoltre diversi dispositivi hanno una caratteristica di trasferimento dotata di isteresi. A causa di queste caratteristiche il margine di rumore dinamico, detto anche margine di rumore in corrente alternata, e' di solito ben diverso da quello in corrente continua. In un circuito digitale correttamente progettato, che operi con impulsi di durata notevolmente superiore al tempo medio di propagazione dei vari gate e con una bassa frequenza di ripetizione, i margini di rumore in corrente continua e in corrente alternata non differiscono in maniera apprezzabile. Non appena pero' la larghezza dell'impulso diminuisce e si avvicina al tempo di propagazione, il margine di rumore cambia in funzione di come sono realizzati circuitalmente i vari gate. Se l'accoppiamento tra i vari stadi e' di tipo capacitivo, il margine di rumore puo' anche diminuire al diminuire della durata dell'impulso; tuttavia nella maggior parte dei casi il margine di rumore va via via aumentando, poiche' il circuito non e' in grado di rispondere istantaneamente a causa della carica accumulata nello spazio di base e a causa dei carichi esterni. A frequenze molto alte e con larghezze dell'impulso di ingresso molto piccole si puo' poi avere un effetto di polarizzazione del dispositivo, che puo' diminuire nuovamente il margine di rumore. Caratteristica di notevole interesse in relazione al margine di rumore in corrente alternata e' infine la larghezza degli impulsi che il circuito stesso genera, agendo come generatore di rumore. Essi sono causati dai ritardi dei segnali che si propagano lungo diversi itinerari e dalle cadute resistive o reattive dovute alle impedenze distribuite del circuito. Questi disturbi autogenerati sono di solito molto stretti e con elevata frequenza di ripetizione. In fig... e' riportato l'andamento del margine di rumore in funzione della larghezza dell'impulso per dispositivi della famiglia L standard. margine di rumore (volt) low hig larghezza dell'impulso (nsec.) figura...) Caratteristiche dei flip-flop e dei registri. Come si e' gia' accennato al capitolo V, il piu' semplice elemento di memoria puo' essere realizzato con due gate di tipo NAND o NOR connessi con accoppiamento incrociato. Molto spesso esiste poi anche un ingresso di abilitazione (enable) che molto impropriamente viene spesso chiamato clock. 9

306 Dispositivi di commutazione Capitolo Il collegamento incrociato di due gate da' luogo a un flip-flop che viene detto di tipo trasparente, in quanto l'uscita risponde immediatamente alle variazioni degli ingressi. In tal caso, riportando le uscite del dispositivo agli ingressi, si potrebbero addirittura generare condizioni di oscillazione. Elementi non trasparenti sono viceversa i flip-flop master-slave, in cui la memorizzazione dell'informazione si ha durante il periodo di clock, mentre la variazione dell'uscita si ha nell'intervallo tra due successivi impulsi di clock, oppure i flip-flop azionati sui fronti. A causa della non trasparenza l'uscita di questi dispositivi puo' essere riportata all'ingresso senza particolari precauzioni e senza dar luogo a condizioni pericolose. Non sono pertanto richiesti schemi di temporizzazione multifase e il progetto del sistema ne risulta notevolmente semplificato. Per il corretto uso di questi dispositivi il progettista deve conoscere tuttavia l'esatto significato dei parametri di temporizzazione (tempo di ritardo e specifiche di temporizzazione dell'ingresso) e metterli in relazione al fenomeno del "clock skew"...) empo di propagazione. L'uscita di qualsiasi flip-flop o registro cambia unicamente in corrispondenza ad una delle transizioni del segnale di clock; nei circuiti piu' moderni tale transizione e' quella dallo stato basso allo stato alto. Il ritardo tra questo fronte e la variazione corrispondente dell'uscita e' il tempo di ritardo del dispositivo e viene indicato con t pd. Molto spesso tuttavia i tempi sono due, quello tra il fronte attivo del clock e la commutazione positiva dell'uscita, indicato con t pd+ o t plh, e quello tra il fronte attivo del clock e la commutazione negativa dell'uscita, indicato con t pd- o t phl. Sui dati caratteristici sono di solito indicati sia il valore tipico che il valore massimo di tali parametri...) Specifiche di temporizzazione degli ingressi. I flip-flop sensibili ai fronti sono normalmente condizionati dai valori che i segnali di ingresso possiedono immediatamente prima del fronte attivo del clock. Per un corretto funzionamento i dati di ingresso devono quindi essere presentati con un certo anticipo rispetto a questo fronte ed esiste pertanto un intervallo di tempo critico immediatamente precedente il clock, durante il quale essi non devono cambiare. L'istante nel quale il valore degli ingressi assume importanza viene detto tempo di "set-up", e' critico e viene di solito indicato con t s. Poiche' tutti i parametri circuitali variano con la temperatura, le tensioni di alimentazione ed in funzione delle tolleranze di fabbricazione e del carico, anche il tempo di set-up ha una certa dispersione. E' importante assicurarsi che i livelli di ingresso rimangano stabili all'interno della finestra compresa tra il piu' lungo tempo di set-up, che rappresenta il piu' lento dei dispositivi e il piu' breve, che ne rappresenta il piu' veloce. Purtroppo i costruttori hanno usato via via diverse nomenclature, talvolta in contrasto, per indicare i due bordi della finestra di temporizzazione appena definita. Il piu' lungo tempo di set-up viene spesso chiamato t s(max), ma spesso anche t s(min) in quanto rappresenta la durata minima dell'intervallo di tempo durante il quale gli ingressi devono rimanere costanti prima dell'impulso di clock. Il piu' breve tempo di set-up viene detto t s(min ), ma spesso senza alcuna logica t s(max). La Fairchild usa il termine "tempo di disimpegno" (release time t r ), altri fabbricanti lo chiamano - t hold (tempo negativo di tenuta). Quest'ultimo nome prende origine dal fatto che nei circuiti piu' anziani il ritardo di propagazione del clock era superiore a quello degli 9

307 Dispositivi di commutazione Capitolo ingressi e di conseguenza questi ultimi dovevano rimanere stabili anche dopo il fronte attivo del clock (tempo di tenuta positivo). utti i circuiti moderni hanno tuttavia tempi di set-up positivi e di conseguenza tempi di tenuta negativi. A differenza dei flip-flop comandati sui fronti, nei flip-flop master-slave a livelli il master accetta i dati di ingresso durante tutto il semiperiodo attivo del clock, mentre lo slave commuta in funzione del contenuto del master nell'intervallo tra un impulso di clock e l'altro. Pertanto in questi flip-flop per un corretto funzionamento e' indispensabile che gli ingressi rimangano stabili durante l'intero semiperiodo attivo del clock. E' opportuno quindi che la durata dell'impulso di clock sia la minima possibile, compatibilmente con i dati forniti dal costruttore. Qualsiasi sia poi il dispositivo, comandato a fronti o a livelli, e' necessario assicurarsi che i tempi di salita e di discesa non superino determinati valori. Infatti anche se i dispositivi non sono direttamente sensibili all'inclinazione dei fronti, se tali tempi fossero molto lunghi, il segnale di clock si troverebbe in prossimita' dei livelli di soglia per tempi superiori al ritardo di propagazione del flip-flop, e si potrebbero avere, in presenza di disturbi anche piccoli, determinati ad esempio da diafonia, delle commutazioni multiple. E' opportuno pertanto che il segnale di clock abbia dei tempi di commutazione non superiori a 5-6 volte il ritardo di propagazione del dispositivo...) Il clock skew. Il fenomeno del "clock skew", cui si e' gia' accennato in precedenza, e' proprio di sistemi digitali sincroni che utilizzino componenti ad alta velocita'. Poiche' tale fenomeno e' indipendente dalla frequenza di ripetizione del clock, ma e' originato solamente dalla velocita' dei componenti, esso puo' essere causa di spiacevoli sorprese anche in sistemi a bassa velocita' operativa. In teoria in un sistema sincrono tutti gli ingressi di clock dovrebbero essere attivati simultaneamente; in realta', ed in particolare nei sistemi di grande dimensione, cio' e' praticamente impossibile. Esistono sempre delle differenze temporali nella distribuzione del segnale, che determinano malposizionamenti del clock (clock skew); esse possono essere determinate da differenti tempi di propagazione sulle linee e/o da differenze nei tempi di ritardo dei vari gate che pilotano linee di clock diverse. Si consideri, a titolo di esempio, il semplice caso illustrato in fig...,in cui un primo flip-flop FFA pilota un secondo flip-flop FFB attraverso una rete combinatoria. Il tempo di ritardo totale della rete combinatoria sia t c. FFA J K t pda Q t c t sb FFB J Q K clock t figura.. Se l'impulso di clock giunge a FFB ritardato rispetto a FFA, per un funzionamento corretto e' necessario che il ritardo sia inferiore a: 9

308 Dispositivi di commutazione Capitolo t max = t pda + t c + t sb Se esso e' maggiore il flip-flop FFB vede come ingresso la nuova uscita della rete combinatoria, che nel frattempo puo' essere variata, dando luogo ad un malfunzionamento. Si noti che in sede di progetto e' necessario usare per t pd, t c e t s i valori minimi; purtroppo molto spesso questi non vengono specificati tra i dati caratteristici. Vi sono due provvedimenti che si possono prendere per evitare i problemi relativi al clock skew. Il primo e' quello di usare l'accorgimento di pilotare tutti gli ingressi di clock da un'unica sorgente, eventualmente mettendo in parallelo piu' gate per aumentarne il fan-out. Il secondo consiste nel distribuire il clock in maniera opportuna, in modo che i ritardi di propagazione del clock giochino in senso opposto al ritardo di propagazione dei dati. Si fa in modo cioe' che l'ultimo dispositivo della catena riceva il clock per primo. Qualora cio' non fosse possibile, come ad esempio nei registri a circolazione (ring counter), si puo' inserire nel flusso dei dati un flip-flop con polarita' opposta..) Criteri di massima per la scelta della famiglia logica. Nessuna famiglia logica e' ottima in rapporto a tutti i parametri che sono stati presi in considerazione nei paragrafi precedenti. Di solito anzi una famiglia e' ottima solo dal punto di vista di alcune sue caratteristiche, mentre e' carente in altre. Ad esempio l'aumento della velocita' operativa gioca un ruolo negativo nei confronti della dissipazione di potenza ed e' normale per qualsiasi circuito che lo sviluppo e il miglioramento di certe sue caratteristiche vadano a detrimento di altre. In ciascuna famiglia logica pertanto vi e' una caratteristica predominante che tende ad essere utilizzata in quelle applicazioni in cui e' essenziale. La mutua interazione tra le caratteristiche e' tipica di tutti i circuiti; storicamente i progettisti hanno dapprima tentato di ottimizzare le caratteristiche nel loro complesso (famiglie ad uso generale) e solo successivamente hanno sviluppato alcune caratteristiche a spese delle altre (famiglie per applicazioni particolari) oppure hanno sviluppato nuove famiglie basate su un circuito diverso o su una diversa tecnologia costruttiva. La L standard, ad esempio, e' una famiglia ad uso generale, mentre la L low power o la L ad alta velocita' sono sottofamiglie in cui una delle caratteristiche della serie di uso generale e' stata ottimizzata. Nel capitolo che segue verranno discusse le sei famiglie principali, illustrando in ciascun caso il circuito fondamentale della famiglia e descrivendone le principali caratteristiche. Comunque sia, una volta che si sia deciso di utilizzare una determinata famiglia logica, le tendenza e' quella di mantenersi nell'ambito di tale famiglia anche per tutte le realizzazioni successive. Si ottengono in tal modo diversi vantaggi, quali ad esempio maggiori sconti per quantita', un miglior utilizzo delle apparecchiature di sviluppo e il non dover riaddestrare il personale con troppa frequenza. A tutto cio' poi si puo' aggiungere la considerazione che se una linea di prodotti viene largamente accettata, si genera una spinta verso l'espansione e il miglioramento di tale linea. Il costruttore tende cioe' ad offrire una maggior quantita' di servizi, quali letteratura in argomento e bollettini applicativi ed a produrre tutta una serie di sottosistemi standardizzati quali alimentatori e dispositivi ausiliari (display, convertitori A/D e D/A, elementi di memoria, ecc.). 94

309 Dispositivi di commutazione Capitolo In definitiva una famiglia logica di successo tende ad introdursi in modo definitivo sul mercato, autoperpetuando il proprio successo..4) Cenni sulle tecnologie costruttive dei circuiti integrati..4.) Circuiti integrati bipolari..4..a) I transistori. La tecnologia normalmente usata per la costruzione dei circuiti integrati monolitici bipolari e' quella planare epitassiale. ale tecnologia si e' sviluppata negli anni 6 e si basa su due fatti fondamentali. ) Sulla superficie di una fetta di silicio e' facilmente realizzabile uno strato di biossido di silicio, sia con reazioni di tipo "dry" in presenza di O che di tipo "steam" in presenza di H O. L'ossido di silicio presenta ottime caratteristiche dielettriche ed assenza di difetti superficiali, specialmente quando venga realizzato in strati spessi - micron, anche se attualmente e' gia' notevolmente diffusa la tecnologia a,8 micron. ) Il coefficiente di diffusione dei piu' comuni donatori (fosforo, arsenico, antimonio) e del piu' comune accettore (boro) e' di due o tre ordini di grandezza minore nel biossido che non nel silicio. Pertanto l'ossido puo' essere utilizzato come maschera per proteggere determinate zone dalla diffusione, rimuovendo con procedimenti fotolitografici l'ossido dove cio' e' necessario. In fig..4. (a) e' riportata la struttura tipica di un transistore planare epitassiale. Il transistore integrato differisce da quest'ultimo in quanto e' una struttura a quattro strati e tre giunzioni, come illustrato in fig..4. (b). Lo strato in piu', rispetto alla normale struttura di un transistore, deriva dall'esigenza di costruire tutto il circuito su un substrato comune, che non e' presente nelle realizzazioni a componenti discreti. emettitore base emettitore base collettore N P N N P P N+ N collettore RANSISORE NORMALE (a) RANSISORE PLANARE (b) figura.4. Lo strato addizionale fa si' che il transistore integrato differisca da quello tradizionale per quanto riguarda i parametri parassiti. Si ha infatti, quale ulteriore elemento parassita, un transistore PNP, la cui base e il cui emettitore sono rispettivamente collettore e base del transistore integrato e il cui collettore e' il substrato. La struttura di un transistore integrato e' quindi, trascurando gli altri parametri parassiti, quella illustrata in fig

310 Dispositivi di commutazione Capitolo substrato C pnp B npn E figura.4.. Il transistore parassita assume un ruolo diverso a seconda che si abbia a che fare con un circuito integrato lineare o con uno digitale. In un circuito digitale a logica saturata la tensione di collettore del transistore NPN e' minore di quella di base. Pertanto la giunzione baseemettitore del transistore parassita PNP e' polarizzata direttamente, mentre il suo collettore e' connesso al punto piu' negativo del circuito. Il transistore parassita lavora quindi in zona attiva e di conseguenza un'elevata aliquota della corrente di pilotaggio del transistore NPN si perde nel substrato. Allo scopo di minimizzare tale inconveniente il guadagno di corrente del transistore parassita viene portato a valori approssimativamente pari a. con una diffusione addizionale di oro che ha lo scopo di ridurre drasticamente il tempo medio di vita delle cariche minoritarie. Per i circuiti lineari invece il transistore parassita non da' un grande fastidio poiche' il transistore NPN opera normalmente lontano dalla saturazione mantenendo quindi interdetto il transistore PNP. In effetti la struttura illustrata per il transistore integrato non e' la piu' adatta per gli impieghi nel campo della commutazione. Infatti, poiche' il contatto di collettore deve essere ricavato sulla faccia superiore del wafer di silicio anziche' su quella inferiore, la resistenza in serie al collettore e' piuttosto alta e di conseguenza e' alta la V CES, tensione di saturazione collettore-emettitore. Per ovviare a tale inconveniente si usa il cosidetto procedimento dello "strato sepolto", che consiste nel formare nella zona N di collettore una zona a drogaggio piu' elevato e quindi di minor resistivita', come illustrato in fig..4.. emettitore base collettore N P strato sepolto N+ P N+ N figura.4. Si puo' pertanto concludere che a causa della diffusione d'oro e della necessita' di realizzare lo strato sepolto il costo di un transistore per impieghi digitali e' piu' alto che non quello di un transistore per impieghi lineari. 96

311 Dispositivi di commutazione Capitolo.4..b) I diodi. Poiche' un diodo altro non e' se non una giunzione PN, da un transistore integrato si possono ricavare diodi in due modi diversi, utilizzando cioe' la giunzione base-emettitore oppure quella base-collettore. Diodo base emettitore. Con riferimento alla fig..4.4 (a) appare evidente che il circuito equivalente del diodo e' quello di fig..4.4 (b). C'e' la possibilita' di eliminare l'effetto del transistore parassita senza ricorrere alla diffusione d'oro semplicemente cortocircuitando tra di loro base e collettore, come illustrato in fig..4.4 (c). - + S C N P N P (a) B (b) S C E B E B (c) E figura.4.4 S (d) In tal caso la giunzione tra collettore e substrato risulta polarizzata inversamente e puo' essere considerata una semplice capacita' di basso valore. Il relativo circuito equivalente e' riportato in fig..4.4 (d). Diodo base collettore. Qualora si utilizzi il diodo base collettore non vi e' alcun accorgimento circuitale che permetta di trascurare il transistore parassita ed e' giocoforza ricorrere alla diffusione addizionale di oro. Il circuito equivalente e' riportato in fig Questo svantaggio tuttavia e' compensato dal fatto che la tensione di breakdown della giunzione di collettore e' piu' elevata di quella della giunzione di emettitore ( - 4 volt contro 6-7 volt) a causa della diversa concentrazione delle impurita' nelle regioni di emettitore e di collettore. Il diodo base - collettore viene quindi usato, accompagnato da diffusione d'oro, dove sia necessaria una tensione di breakdown relativamente alta. 97

312 Dispositivi di commutazione Capitolo S C B figura c) Capacita'. In tecnica integrata i condensatori possono venir realizzati ricorrendo alle capacita' di transizione delle due giunzioni polarizzate inversamente. ali capacita' sono ovviamente polari e dipendono dalla tensione applicata, che deve necessariamente essere minore della relativa tensione di breakdown. Il circuito equivalente e' analogo in ambedue i casi ed e' riportato in fig E' interessante notare l'esistenza di una capacita C s verso il substrato, in quanto anche il diodo collettore-substrato risulta polarizzato inversamente. E' evidente che non e' possibile realizzare ne' capacita' troppo elevate, per l'eccessivo ingombro che ne deriverebbe, ne' troppo piccole, tali cioe' da essere trascurabili rispetto a C s. Un valore abbastanza comune e' quello di pf/mm con superfici utili di solito non superiori a. -.4 mm. B C C R SC C R C R S CS S figura d) Resistori. I resistori vengono ricavati sfruttando la resistivita' propria dei materiali semiconduttori e le loro dimensioni dipendono dalla purezza del materiale e dalla precisione di lavorazione. Quale materiale resistivo si usa di solito la regione di base, cioe' la regione P. In fig..4.7 e' riportata la struttura di un resistore integrato; si vede immediatamente dal circuito equivalente che oltre al resistore si hanno anche due capacita' e un transistore parassita. 98

313 Dispositivi di commutazione Capitolo R P N P S figura.4.7 In particolare a causa di quest'ultimo vi puo' essere una dispersione di corrente verso il substrato; per ridurre a valori trascurabili tale dispersione si connette normalmente la regione N al punto piu' positivo del circuito. Il circuito equivalente in tal caso si riduce unicamente a un resistore e ad una capacita' di valore molto modesto (circa.5 picofarad) verso lo strato N..4..e) Suddivisione in isole. Un circuito integrato completo e' realizzato in regioni, dette isole, di dimensioni relativamente grandi, che contengono uno o piu' componenti. Queste isole sono separate tra di loro da diffusioni profonde P ad alta concentrazione che vengono ad interrompere le regioni sottostanti N, come illustrato in fig N P+ N N P+ P figura.4.8 In sostanza tali diffusioni P profonde sono necessarie ad isolare tra di loro quelle porzioni della regione N che non si trovano alla stessa tensione..4..f) Processo di fabbricazione. Il circuito integrato viene ricavato da una lastrina di silicio di tipo P, il cui spessore e' mediamente micron, levigata con mezzi chimici. Da una lastrina si ricava un certo numero di circuiti completi con i seguenti passi di lavorazione: ) Con processi termici viene formato sulla lastrina uno strato di biossido di silicio SiO. ) Sullo strato di biossido di silicio viene depositata una pellicola di materiale fotosensibile e dopo aver disposto sulla lastrina una prima 99

314 Dispositivi di commutazione Capitolo maschera si impressiona il materiale fotosensibile a luce ultravioletta. Con il successivo sviluppo le parti non impressionate vengono asportate. ) Mediante azione chimica lo strato di SiO rimasto scoperto viene asportato. 4) Rimossa la pellicola fotosensibile, dopo aver ripulito tutta la superficie, si diffonde arsenico nelle zone non protette dal biossido, formando in tal modo gli strati sepolti. 5) Dopo aver eliminato tutto lo strato di biossido, si fa crescere con procedimento epitassiale, uno strato superficiale di semiconduttore N, allo stesso grado di purezza del substrato. I passi successivi del processo sono molto simili e consistono in: 6) Pulitura ed ossidazione superficiale. 7) Deposizione di materiale fotosensibile. 8) Suddivisione, mediante mascheratura, esposizione ad ultravioletti, sviluppo e attacco chimico, della superficie in isole. 9) Diffusione profonda di boro per ottenere la suddivisione in isole. ) Pulitura ed ossidazione superficiale. ) Incisione, come ai punti 7 e 8, delle aperture necessarie alla formazione delle basi e delle resistenze. ) Diffusione di boro per le basi e le resistenze. ) Pulitura ed ossidazione superficiale. 4) Incisione, come ai punti 7 e 8, delle aperture necessarie alla formazione degli emettitori e dei collettori. 5)Diffusione degli emettitori e delle zone N+ dei collettori. 6)Deposizione di uno strato uniforme di alluminio sulla lastrina. 7)Fotoincisione dell'alluminio in modo da formare i collegamenti tra le isole ed i punti di connessione con i reofori. 8) aglio della lastrina per ricavarne i singoli circuiti..4.) Circuiti integrati unipolari. I transistori MOS vengono chiamati dispositivi unipolari poiche' la corrente che durante il loro funzionamento attraversa la regione di canale e' costituita da un unico tipo di portatori, a differenza di quanto accade nel funzionamento dei transistori a giunzione. Nel caso di transistori MOS a canale N i portatori sono elettroni, mentre nei MOS a canale P sono lacune. I circuiti integrati unipolari possono contenere sia transistori di un solo tipo, sia di ambedue i tipi. In quest'ultimo caso vengono chiamati circuiti MOS complementari o CMOS. E' interessante notare che le tecnologie che usano un solo tipo di transistore unipolare (NMOS,PMOS) sono competitive solo se usate a larga scala di integrazione. Infatti i circuiti

315 Dispositivi di commutazione Capitolo MOS a singolo canale, quando utilizzati per la realizzazione di gate individuali, offrono scarsi vantaggi rispetto ai circuiti bipolari; sono infatti notevolmente piu' lenti di questi ultimi e soprattutto lavorano a tensioni e con valori di impedenza notevolmente diversi. E' necessario pertanto interfacciare sia i segnali di ingresso che i segnali di uscita per renderli compatibili con i circuiti bipolari; il costo dei circuiti di interfaccia diviene accettabile solo per circuiti a larga scala. Di conseguenza dei tre tipi di circuito, NMOS,PMOS e CMOS solo gli ultimi vengono in pratica utilizzati per realizzare gate e flip - flop. Esistono diverse modalita' realizzative dei MOS utilizzati. Per quanto riguarda i gate essi possono venir realizzati con strato metallico o con silicio policristallino. Poi le tecniche di diffusione possono essere diverse. Una delle piu' affermate, soprattutto per le precisioni raggiungibili nei parametri degli elementi prodotti, e' quella di impianto ionico. Infine anche il substrato, normalmente silicio, puo' essere realizzato in zaffiro in modo da ridurre le scabrosita' superficiali, aumentando la precisione di lavorazione..4..a) ecnologia di impianto ionico. L'impianto ionico consiste nel drogare le fette di silicio bombardandole con ioni accelerati ad alta velocita' in modo che essi penetrino in profondita'. ale metodo si distacca completamente dai sistemi di diffusione a caldo e permette un'estrema controllabilita' del processo fino a livelli di drogaggio molto bassi, in modo da ottenere un'alta uniformita'. In realta' la tecnologia di impianto ionico non e' sostitutiva dei metodi classici di drogaggio, ma un sistema "a freddo" completamente diverso, che consente di ottenere prestazioni non raggiungibili con i sistemi a caldo. L'apparecchiatura utilizzata consiste in cinque parti principali. Vi e' la sorgente di ioni costituita da una regione in cui si forma il gas da cui devono essere tratte le particelle di drogante; gli ioni sono ottenuti per impatto di elettroni sul gas da ionizzare e la probabilita' di collisione elettrone-gas viene aumentata ricorrendo a campi magnetici. In prossimita' della sorgente vi e' poi un acceleratore a potenziale variabile tra i e i o piu' kilovolt. All'uscita dell'acceleratore vi e' uno spettrometro di massa che permette di selezionare solamente quegli atomi che si vogliono utilizzare come droganti. Ad esempio, volendo utilizzare come drogante il boro, si partira' dal trifluoruro di boro e mediante lo spettrometro di massa si selezionera' il solo boro di peso atomico, scartando gli altri isotopi di boro e gli ioni di fluoro. Gli ioni che si ottengono, riuniti in un fascio ben focalizzato e dotati di velocita' dell'ordine di 5 m/sec, sono in grado di penetrare abbastanza profondamente, qualche diecina di micron, nella fetta di silicio da drogare. Per ottenere un drogaggio uniforme, esiste infine un sistema di deflessione del fascio secondo due assi perpendicolari. Il vantaggio fondamentale dell'impianto ionico risiede nel fatto che si possono regolare in modo indipendente lo spessore dello strato drogato, modulando tramite la tensione di accelerazione la velocita' del fascio, e la concentrazione, sia controllando la durata del processo di impianto, sia modulando l'intensita' del fascio. C'e' poi da aggiungere che si puo' ottenere il drogaggio desiderato non solo in superficie, ma ad ogni profondita', e che il livello stesso del drogaggio puo' essere bassissimo. Infine e' importante far rilevare che la fetta di silicio puo' essere drogata anche attraverso uno strato di ossido, lasciando tuttavia la superficie nelle migliori condizioni.

316 Dispositivi di commutazione Capitolo.4..b) Processo di fabbricazione. Il materiale di partenza e' di solito una fetta di silicio orientata secondo gli assi cristallografici, di resistivita' compresa tra e ohm.cm. Su questo substrato possono essere realizzati direttamente transistori MOS di tipo P, mentre per quelli di tipo N e' necessario ottenere localmente un cambiamento della conduttivita' del materiale di base, ottenuta mediante la formazione di sacche P (P - well) nel substrato N. Nelle tecnologie tradizionali, con drogaggio per diffusione, l'agente drogante, generalmente boro, raggiunge il silicio attraverso gli spazi aperti nello strato superficiale di ossido e viene diffuso ad una profondita' di qualche micron, in modo da portare la concentrazione superficiale al valore voluto, come illustrato in fig P N figura.4.9 Successivamente vengono aperte le fessure per la diffusione P+, con cui vengono formate le regioni di source e di drain dei transistori a canale P, le resistenze integrate e i cosidetti "channel stoppers" dei transistori a canale N (fig..4.). P+ P P+ P+ P+ N figura.4.

317 Le famiglie logiche Capitolo CAPIOLO XIII LE FAMIGLIE LOGICHE.) La famiglia RL. I circuiti logici RL sono stati storicamente i primi ad esser stati fabbricati ed usano solo transistori e resistenze per realizzare il circuito base della famiglia. Un tipico circuito RL e' riportato in fig... e realizza in logica positiva la funzione NOR. R C A R R B A B C figura.. Nelle prime realizzazioni la tensione di alimentazione era compresa tra. e.6 volt e i valori circuitali erano: R = 45 ohm R = 64 ohm I tempi di propagazione erano abbastanza buoni, aggirandosi sui nsec; la dissipazione non eccessiva, essendo di circa mw per gate. Quali aspetti negativi possono esere citati la bassa escursione del segnale, la non eccezionale immunita' al rumore, il basso fan-out (max. 5) e il basso fan-in (max. 4). In verita' da questo circuito base sono state sviluppate molte versioni modificate, di cui le piu' importanti sono la DCL (direct coupled transistor logic), logica ad accoppiamento diretto, senza resistenza di base, e la RCL, in cui l'accoppiamento e' di tipo RC, tale da accelerare la commutazione, come illustrato a tratteggio in fig.... I ritardi di propagazione sono comunque sempre rimasti compresi tra i e i nsec per i gate e tra e 5 nsec per i flip - flop, le dissipazioni tra i e i 5 mw..) La famiglia DL. La logica a diodi e transistori e' una delle piu' anziane, ma a differenza di quanto e' accaduto con altre famiglie, quali ad esempio la RL, l'introduzione di componenti piu' moderni non l'ha fatta scomparire del tutto. Parecchie generazioni DL si sono succedute e per un certo periodo questa e' stata la famiglia piu' popolare. Da essa e' derivata tuttavia la famiglia L e, alla luce delle migliori prestazioni di quest'ultima, la logica DL non e' piu' stata usata nei nuovi progetti. D'altra parte, a causa della compatibilita' dei livelli logici e della tensione di alimentazione, si trovano ancora circuiti in cui coesistono le due famiglie. Il circuito base e' illustrato in fig... e realizza in logica positiva la funzione logica NAND.

318 Le famiglie logiche Capitolo.6 K. K A B D D D 5 K C A B C figura.. Se ambedue gli ingressi A e B sono al livello alto, i diodi D e D sono interdetti. Il diodo D e' invece polarizzato direttamente e fa si' che si porti in saturazione. Se invece almeno uno dei due ingressi si porta a livello basso, il corrispondente diodo passa in conduzione e drena verso massa la corrente che circola sul resistore da.6 Kohm, facendo interdire. Il diodo D ha lo scopo di compensare le cadute su D e D quando sono in conduzione, in modo da assicurare buone condizioni di funzionamento all'interdizione. La tensione di alimentazione nominale per la logica DL e' 5 V e i livelli logici sono: V OL =.6 V V IL =. V V OH =.6 V V IH =.8 V Pertanto i margini di rumore apparente sono: N H =.8 V N L =.7 V e possono essere considerati discreti. Il fan-out medio della famiglia e' 8, anche se di essa fanno parte particolari gate ad alto fan-out (). La dissipazione si aggira sui 5 mw per gate nel caso normale, e sui mw nel caso di gate ad alto fan-out. Il ritardo di propagazione e' mediamente 5 - nsec. Infine, data la struttura degli stadi di uscita, e' ammesso il wired-or..) La famiglia HL. La famiglia logica ad alta immunita'(high thresold logic) e' una famiglia sviluppata per impieghi particolari. La sua principale caratteristica e' un'elevata immunita' al rumore e per tale motivo viene impiegata in ambienti industriali dove dispositivi elettromeccanici possono dar luogo a transienti di tensione di ampiezza elevata. Il circuito fondamentale di un elemento HL e' illustrato in fig... e ricorda molto da vicino la struttura degli elementi DL. Ci sono tuttavia da notare i valori relativamente elevati di R, R, R e il valore nominale della tensione di alimentazione che e' di 5 V. 4

319 Le famiglie logiche Capitolo Il diodo zener fa salire la soglia di commutazione a circa 7 volt. Piu' esattamente i livelli garantiti di ingresso e di uscita sono: V OL =.5 V V IL = 6 V V OH =.5 V V IH = 8 V Il margine di rumore, sia allo stato alto che allo stato basso, e' quindi di 4.5 volt. Il fanout tipico della famiglia e', la dissipazione si aggira sui mw per gate. R R 5 K.5 K A B D R R 4 K K D D R 6 K D 4 C R 5 5 K A B C figura.. I tempi di propagazione non sono ovviamente dei migliori; sono anzi in assoluto i maggiori tra tutti quelli delle famiglie logiche, potendo giungere fino a 5 nsec. ale fatto d'altra parte non puo' essere considerato un dato del tutto negativo in quanto migliora le caratteristiche di immunita' al rumore in corrente alternata..4) La famiglia L. La famiglia L e', assieme alla CMOS, quella piu' largamente usata al giorno d'oggi. utti i principali fabbricanti hanno oggi una linea di produzione L, che comprende, oltre alla famiglia L standard, tutta una serie di sottofamiglie, ciascuna delle quali ottimizza una particolare caratteristica..4.) La sottofamiglia L standard. In fig..4. e' riportato il circuito dell'elemento fondamentale L, che in logica positiva realizza la funzione logica NAND. Esso opera con una singola alimentazione di 5 volt. L'elemento standard e' compatibile con qualsiasi altro elemento appartenente alle sottofamiglie e con gli elementi della logica DL. 5

320 Le famiglie logiche Capitolo A B ingresso invertitore uscita R R R 4 Ω 4 kω.6 kω 4 D R k Ω V cc (+ 5 volt) figura.4. Il ritardo di propagazione e' compreso tra 5 e nanosecondi, la dissipazione e' di mw per gate, mentre la massima frequenza operativa si aggira sui 5 MHz. Il circuito puo' essere funzionalmente suddiviso in tre parti: uno stadio di ingresso associato ad un transistore multiemettitore, un invertitore di fase e uno stadio di uscita atto ad ottenere i livelli di tensione e di impedenza stabiliti in sede di progetto. Spesso tra gli ingressi e la massa sono connessi dei diodi di protezione con la funzione di tosare eventuali segnali negativi applicati all'ingresso. Quando l'uno o l'altro dei due ingressi e' al livello basso il transistore diviene conduttore e di conseguenza nessuna corrente circola nella base di. pertanto e' interdetto; la sua tensione di collettore coincide in pratica con la tensione di alimentazione, mentre la sua tensione di emettitore e' in pratica nulla. In tale situazione 4 passa in conduzione, si interdice e l'uscita si porta a livello alto. Nella pratica lo stadio di uscita puo' assumere diverse configurazioni, ciascuna delle quali offre vantaggi e svantaggi. Le principali tra queste configurazioni sono: ) USCIA DARLINGON V cc Uscita Quali vantaggi si possono citare l'attitudine a pilotare carichi capacitivi, le piccole dimensioni e l'alto valore di V OH = V CC - V BE. Un grosso svantaggio risiede nel fatto che in uscita non possono essere applicate tensioni superiori a V CC pena gravi danni al circuito. 6

321 Le famiglie logiche Capitolo ) USCIA A EMIER FOLLOWER A SADI V cc Uscita Vantaggi: Alti pilotaggi in a.c., V OH = V CC - V BE a I uscita =. Svantaggi: Dimensioni maggiori che non nel caso precedente. Impossibilita' di applicare in uscita tensioni superiori a V cc. ) DARLINGON CON RESISORE RIFERIO A MASSA Vcc Uscita Vantaggi:Possibilita' di alti pilotaggi in a.c. Maggior velocita' che non nei casi precedenti. Possibilita' di spingere l'uscita piu' in alto di V CC. Svantaggi:V OH minore. Dissipazione piu' elevata. Minore immunita' al rumore allo stato alto. 4) USCIA A RANSISORE - DIODO Vcc Uscita Vantaggi:Minore dissipazione. Piccole dimensioni. L'uscita puo' essere spinta piu' in alto di V CC. Svantaggi: Scarsa possibilità di pilotaggio in corrente alternata. 7

322 5) COLLEORE APERO Le famiglie logiche Capitolo Uscita Vantaggi:Possibilità di eseguire il wired-or e il collegamento a bus. Svantaggi: Impedenza di uscita allo stato alto elevata. Bassa velocita', in particolare con carichi capacitivi. Necessita' di una resistenza esterna. A qualsiasi tipo di uscita puo' essere aggiunta una resistenza esterna di "pull-up", connessa tra uscita e V CC in modo da far avvicinare la tensione di uscita allo stato alto a quella di alimentazione. uttavia solo i circuiti,4,5 possono essere spinti piu' in alto della tensione di alimentazione. Le configurazioni e infatti tosano il segnale ad una tensione appena superiore a V CC, in quanto, come detto in precedenza, alla resistenza connessa all'uscita e' sempre associato un diodo parassita verso il substrato. Questo fatto diviene notevolmente importante nei sistemi di grandi dimensioni, in cui varie sezione sono alimentate separatamente, con la possibilita' che mentre certe parti del circuito si trovano ad una tensione V CC = altre siano alimentate normalmente. In queste condizioni le uscite dei circuiti e costituiscono una via ad impedenza molto bassa anche per tensioni inferiori al volt, mentre quelle dei circuiti,4,5 sono ad alta impedenza, consentendo l'isolamento dal resto del sistema. Nei dispositivi piu' moderni esistono strutture di uscita piu' sofisticate che permettono di migliorare le caratteristiche di trasferimento aumentando nel contempo l'immunita' al rumore e la velocita' operativa..4.) Caratteristica di trasferimento. In fig..4. e' riportato il grafico della tensione di uscita in funzione della tensione di ingresso, cioe' la caratteristica di trasferimento, in condizioni statiche. "" 4. H. J. "". L figura.4. E' importante notare che la curva di trasferimento varia in modo non trascurabile con la temperatura, la tensione di alimentazione e il carico. La curva illustrata si riferisce ad una temperatura di 5 gradi, ad una tensione d alimentazione di 5 volt e ad un fan-out pari a. 8

323 Le famiglie logiche Capitolo Con riferimento alla fig..4., l'analisi puo' essere condotta pensando di riunire i due ingressi A e B. Man mano che la tensione applicata cresce, a partire da volt, la corrente di base di viene gradualmente deviata dagli emettitori al collettore; di conseguenza inizia a condurre. La tensione di ingresso alla quale esce dall'interdizione e' compresa tra.7 e.8 volt (punto H della caratteristica). Dal punto H al punto J il transistore opera in regime lineare, con un guadagno di tensione determinato dal rapporto tra il resistore di collettore e quello di emettitore. La tensione di base di 4 gradualmente diminuisce portando il transistore verso l'interdizione. In definitiva nel tratto H-J l'uscita ripete l'andamento della tensione di collettore di, in quanto 4 funziona da inseguitore. Arrivati al punto J comincia a condurre il transistore, aprendo una via a bassa impedenza verso massa per la corrente di emettitore di ; come risultato aumentano il guadagno di tensione di 4 e la pendenza della caratteristica. ra i punti J e L i transistori, e 4 conducono contemporaneamente; solo al punto L 4 si interdice. A tale istante la tensione di uscita e' approssimativamente pari a. volt e la transizione dallo stato alto a quello basso e' completata. Da quanto esposto si possono trarre due importanti considerazioni. La prima e' che nel tratto J-L vi e' un percorso a bassa impedenza tra V CC e massa, formato da R 4, 4, D,, sede di una corrente non trascurabile. E' questo uno degli svantaggi della famiglia L, in quanto durante il funzionamento si hanno degli impulsi di corrente, che, oltre ad aumentare la potenza dissipata al crescere della frequenza, sono una sorgente di rumore che puo' interferire con il normale funzionamento del circuito. La seconda considerazione e' che durante il funzionamento tutti i transistori, con l'eccezione di 4, passano dall'interdizione alla saturazione e viceversa, limitando pertanto, come avviene in ogni logica saturata, la velocita' operativa..4.) ensioni e correnti di ingresso e di uscita. La caratteristica di trasferimento esaminata al paragrafo precedente fornisce alcune interessanti informazioni sul valore delle tensioni di ingresso e di uscita nei due stati. Dalla curva di fig..4. si puo' vedere che se gli ingressi sono pilotati ad una tensione superiore a.8 volt il circuito inizia a commutare verso l'uscita logica. In modo del tutto simile, se uno qualsiasi degli ingressi scende ad una tensione inferiore a.4 volt l'uscita inizia a commutare verso il valore logico. In prima approssimazione si potrebbe quindi affermare che se l'ingresso e' mantenuto al di fuori della zona compresa tra.8 e.4 volt, l'uscita del gate definisce senza ambiguita' i valori logici e. La precisa definizione dei valori limite e' tuttavia complicata dal fatto che la curva varia con la temperatura,la tensione di alimentazione e il fan - out. Per tale ragione e' prassi comune che i costruttori di circuiti integrati garantiscano i valori massimi e minimi delle tensioni di ingresso e di uscita nelle peggiori condizioni di funzionamento. E' stato gia' chiarito in precedenza il significato di tali tensioni, che per la famiglia L standard valgono: V IH = volt V OH =.4 volt V IL =.8 volt V OL =.4 volt Ugualmente importanti sono le correnti che entrano o escono da un elemento logico nei due stati. 9

324 Le famiglie logiche Capitolo La fig..4. mostra il flusso di corrente attraverso gli ingressi e l'uscita di due porte NAND nelle due possibili condizioni di lavoro. Quando l'uscita della porta e' allo stato alto la corrente circola dal transistore 4 della porta verso l'emettitore di della porta. Quando la porta e' nello stato basso la corrente circola dall'emettitore di della porta all'emettitore di della porta. La corrente di ingresso allo stato alto e' garantita inferiore a 4 microampere, valore trascurabile nel determinare il fan-out, mentre la corrente erogata dall'ingresso allo stato basso e' garantita inferiore a.6 milliampere e deve richiudersi a massa attraverso. Pertanto, affinche' sia assicurato un fan-out pari a, deve poter assorbire una corrente di 6 milliampere senza che la sua tensione di saturazione V CES salga a valori al di sopra di V OL =.4 volt. 4 D I OH Flusso di corrente I IH R R I OL I IL figura.4. In definitiva si ha: I IH < 4 ma intendendo con I IH la corrente che fluisce in un ingresso quando ad esso e' applicata una tensione V i volt. I IL <.6 ma I IL e' la corrente che esce da un ingresso quando ad esso e' applicato un livello logico, cioe' una tensione di ingresso inferiore a.8 volt. I OH.4 ma dove I OH e' la corrente che puo' essere fornita dall'uscita a livello logico alto senza che la sua tensione scenda al di sotto di V OH =.4 volt. Il valore relativo all'uguaglianza e' il minimo necessario a garantire un fan-out pari a. Sempre per garantire un fan - out pari a e' necessario che : I OL 6 ma

325 Le famiglie logiche Capitolo intendendo ovviamente, come gia' e' stato detto,che I OL sia la corrente che puo' essere iniettata nell'uscita allo stato basso senza che la tensione di uscita salga al di sopra di.4 volt. ma diodo di protezione regione operativa normale volt figura.4.4 Per quanto riguarda l'impedenza di ingresso di una porta L si possono fare le seguenti considerazioni. Per tensioni di ingresso superiori a volt essa e' molto alta; vale circa 4 kohm tra + e -.5 volt, mentre per tensioni inferiori e' molto bassa a causa del diodo di protezione connesso tra ingresso e massa. La caratteristica di ingresso e' riportata in fig La caratteristica di uscita e' riportata invece in fig Si puo' vedere che l'impedenza d'uscita e' di basso valore in ambedue gli stati. Nello stato basso l'impedenza e' determinata dalla resistenza offerta dal transistore in condizioni di saturazione, pari a circa 8 ohm. A correnti elevate, iniettate dall'esterno nel terminale di uscita, in particolare se si opera a basse temperature, il transistore puo' uscire di saturazione facendo salire l'impedenza di uscita. Allo stato alto viceversa l'impedenza d'uscita e' determinata in pratica dal valore di R 4. ma R sat = ~ 8 Ω Stato basso non saturato -4 stato alto -5 ~ = R4-6 volt figura.4.5 E' interessante notare che, commutando dallo stato basso a quello alto, la struttura a totem-pole dello stadio di uscita consente, a causa della sua bassa impedenza d'uscita, un ra-

326 Le famiglie logiche Capitolo pido raggiungimento delle condizioni di regime anche in presenza di carichi capacitivi. In questo caso tuttavia, le correnti, relativamente rilevanti, circolano anche sulla rete di distribuzione dell'alimentazione, che deve quindi essere corta ed adeguatamente disaccoppiata. Inoltre, se durante la transizione dallo stato basso allo stato alto 4 passa in conduzione prima che sia interdetto, come normalmente avviene, si ha un assorbimento di corrente impulsivo di breve durata, i cui effetti si propagano comunque attraverso la rete di alimentazione..4.4) Altri elementi logici L. Oltre alla porta fondamentale NAND la famiglia L offre altri elementi, quali AND, OR, NOR, XOR, realizzati modificando lo schema fondamentale della famiglia e mantenendo le medesime caratteristiche elettriche. In fig..4.6 e' riportata la porta AND, ottenuta a partire dalla porta NAND con l'aggiunta di un ulteriore stadio invertitore. 4 k Ω k Ω.6 kω Ω INGRESSI Ω 6 k Ω figura.4.6 Il transistore 6 viene utilizzato per creare una via a bassa impedenza per la rimozione della carica accumulata nello spazio di base di 5. In fig..4.7 e' invece riportata la porta NOR, che utilizza lo stesso stadio di uscita a totem-pole della porta NAND, mentre profondamente modificato e' lo stadio di ingresso, che utilizza due transistori separati al posto del transistore multiemettitore, e l'invertitore di fase realizzato con una coppia differenziale. La porta OR e' molto simile a quella NOR con l'aggiunta di due transistori che esplicano le stesse funzioni di 5 e 6 della porta AND. Ω V 4 KΩ.6 KΩ 4 KΩ 4 A B D INGRESSI A B Uscita KΩ figura.4.7 Esistono infine le cosiddette porte a collettore aperto, illustrate in fig..4.8.

327 Le famiglie logiche Capitolo Manca in questa configurazione circuitale il transistore superiore del totem-pole, mentre il collettore del transistore inferiore e' reso accessibile dall'esterno. V cc INGRESSI USCIA figura.4.8 Il loro principale utilizzo si ritrova nel collegamento a "bus", in connessione "wired-or", come illustrato in fig V nodo di interconnessione R L V IL al carico V IL V OH V IL V IL figura.4.9 ale collegamento non risulta evidentemente possibile quando lo stadio di uscita sia a totem-pole, in quanto durante il funzionamento potrebbe stabilirsi una via a bassa impedenza tra l'alimentazione e la massa con possibile danneggiamento dei dispositivi interessati. E' infine il caso di citare le porte con uscite "-state", usate per i medesimi scopi delle porte a collettore aperto, cioe' quando le uscite di piu' porte accedono alla medesima linea e sono quindi collegate galvanicamente assieme. Le porte con uscite "-state" permettono di superare alcuni degli inconvenienti di cui soffrono le porte a collettore aperto, primo tra i quali le scadenti caratteristiche di velocita', specialmente in presenza di carichi capacitivi.

328 Le famiglie logiche Capitolo In queste porte l'uscita puo' assumere, oltre ai normali stati "" e "", anche un terzo stato in cui ambedue i transistori dello stadio di uscita sono interdetti, rendendo pertanto l'uscita isolata. ingresso 4 Uscita Disabilitazione Schema funzionale figura.4. Uno schema funzionale e' riportato in fig..4., mentre in fig..4. appare lo schema dell'effettiva realizzazione pratica e il simbolo logico relativo. 4 ingresso Schema elettrico Uscita Simbolo logico abilitazione figura ) La sottofamiglia low power L. In un rilevante numero di applicazioni i circuiti L standard sono notevolmente piu' veloci del necessario; si e' ritenuto pertanto opportuno rinunciare al sovrappiu' di velocita' in favore di una riduzione della potenza dissipata. E' stata pertanto introdotta dai costruttori, quasi contemporaneamente alle porte L standard, la sottofamiglia low power L (LPL). Il circuito e' identico a quello della L standard, con l'unica eccezione che i valori dei resistori risultano moltiplicati per un fattore, che a seconda del fabbricante e' compreso tra 4 e 4

329 Le famiglie logiche Capitolo. Di conseguenza la potenza dissipata diminuisce dal 75% al 9% mentre il tempo di propagazione aumenta di -4 volte. Valori tipici sono mw per gate per quanto riguarda la potenza dissipata, nsec per il tempo di propagazione e MHz per la velocita' massima. E' bene rilevare che una riduzione del consumo non si riflette solamente sulla dimensione e sul costo dell'alimentatore, ma porta anche ad una semplificazione del progetto termico del sistema per la minor quantita' di calore sviluppato. Inoltre, poiche' i dispositivi LPL utilizzano i medesimi involucri degli elementi standard, le temperature alle giunzioni sono inferiori a tutto favore di una maggior affidabilita'. Dal punto di vista del rumore vi sono due distinti vantaggi; la riduzione delle correnti in gioco fa si' che l'autogenerazione di rumore risulti notevolmente diminuita, permettendo di usare un minor numero di condensatori di disaccoppiamento e semplificando il progetto del circuito stampato. Oltre a cio' la minor velocita' di commutazione fa si' che l'immunita' al rumore in corrente alternata sia superiore. Il fan-out nell'ambito della sottofamiglia e' ; tuttavia e' bene far notare che la LPL e' perfettamente compatibile con qualsiasi altro elemento L. Per un elemento LPL che pilota un L standard il fan-out sara' compreso tra e 4, mentre nel caso di un L standard che pilota un LPL il fan-out sara' compreso tra 5 e 6. A causa del ridotto valore della correnti di ingresso degli elementi LPL, essi costituiscono una buona interfaccia verso i circuiti MOS le cui impedenze di uscita sono generalmente abbastanza alte. In conclusione la LPL e' la piu' facile da impiegare tra tutte le sottofamiglie L e andrebbe utilizzata in tutte quelle occasioni in cui non risulti penalizzata dalla sua ridotta velocita'..4.6) La sottofamiglia high speed L. Dopo l'introduzione della famiglia L la domanda dei produttori di calcolatori, di strumentazione e di apparecchi di comunicazione ha spinto tale famiglia a evolversi verso l'alta velocita', facendo nascere dapprima la high speed L (HL) e successivamente la Schottky L (SL), di caratteristiche ancora migliori. Vcc.8 k Ω 76 Ω 56 Ω Ingresso 4 Uscita D D 47 Ω 4 kω 5 figura.4. Il circuito base HL, riportato in fig..4., nasce da quello della L standard con l'aggiunta di una coppia Darlington in sostituzione del transistore superiore del totem-pole di uscita e con la diminuzione del valore di tutte le resistenze. 5

330 Le famiglie logiche Capitolo La coppia Darlington aumenta la velocita' con cui la corrente di 4 puo' essere commutata; in aggiunta la diminuzione dei valori resistivi minimizza l'effetto delle capacita' parassite, aumentando pertanto la velocita' con cui il circuito puo' cambiare stato. Valori tipici per tale sottofamiglia sono 6 nanosecondi per il tempo di propagazione, 5 MHz come velocita' massima e mw per gate come potenza dissipata. Al giorno d'oggi i dispositivi HL sono usati quasi esclusivamente per ridurre i ritardi in alcuni itinerari critici in sistemi realizzati con elementi L standard; presentano l'inconveniente di una maggior potenza dissipata, di una maggior autogenerazione di rumore e rendono piu' critica la disposizione dei componenti sulla scheda a circuito stampato, per motivi che verranno illustrati brevemente piu' avanti..4.7) La sottofamiglia L Schottky. Le varie famiglie e sottofamiglie fin qui prese in esame sono tutte relative a logiche saturate; i transistori cioe' sono portati in conduzione con una corrente di base sufficiente a condurli al limite della saturazione anche con il guadagno di corrente minimo e nelle peggiori condizioni di temperatura e di carico. Di conseguenza un transistore riceve in media una corrente di base di gran lunga superiore a quella necessaria e si addentra percio' profondamente nella zona di saturazione. Si forma un accumulo di portatori di minoranza nella zona di base e per portare poi nuovamente il transistore in interdizione e' necessario rimuovere tale carica, con una considerevole perdita di tempo. Per migliorare la situazione si potrebbe pensare di accelerare la ricombinazione, drogando con oro. Sfortunatamente tale accorgimento riduce in modo sensibile il guadagno del transistore. Il transistore Schottky supera tali limitazioni facendo uso di un diodo a barriera superficiale, detto appunto diodo Schottky, con una tensione di conduzione molto bassa (circa. volt) e senza accumulo di carica dovuta ai portatori minoritari. ale diodo viene connesso tra base e collettore di un transistore convenzionale, come illustrato in fig..4.. Nella stessa figura e' riportato anche il simbolo con cui viene indicato un transistore cosi' modificato. transistore schottky simbolo elettrico figura.4. In fig..4.4 (a) e' riportata la situazione in cui un transistore e' in prossimita' della saturazione, ma in cui il diodo Schottky e' ancora interdetto; in fig..4.4 (b), essendo la tensione di collettore ulteriormente discesa, si ha un drenaggio di parte della corrente di base verso il collettore per effetto del diodo Schottky. In pratica aumenti di I al di la' della corrente necessaria a portare il transistore al limite di saturazione si traducono in aumenti della sola I D, mentre I B rimane in sostanza costante. 6

331 Le famiglie logiche Capitolo Anche gli aumenti della I C, provocati da iniezioni di corrente dall'esterno, non modificano la situazione; infatti in tal caso sale la V CE e di conseguenza diminuisce I D e aumenta I B, riportando il circuito nelle condizioni di fig..4.4 (b). (a) (b) <. V I = Ib. V Ic I d = Ic I = I b + I d I Id Ib >.4 V I Id Ib I c + I d.4 V.7 V.7 V figura.4.4 In conclusione il transistore Schottky non entra mai in saturazione e si interdice quindi rapidamente quando viene annullata la corrente di base. Inoltre, non essendo richiesto il drogaggio in oro, il guadagno di corrente rimane elevato..8 k Ω 9 Ω 5 Ω V ingresso 5 kω 6 Uscita D D 5 Ω 5 Ω 4 figura.4.5 La porta L Schottky, il cui circuito e' riportato in fig..4.5, impiega solo transistori Schottky, con l'eccezione di 6, che lavorando da inseguitore di emettitore non puo' saturarsi. Prestazioni tipiche sono nsec. quale tempo di ritardo di propagazione, 9 mw/gate per la dissipazione e 5 MHz per la massima velocita'. La sottofamiglia SL presenta diversi vantaggi: ) Il ritardo e' dell'ordine della meta' della HL e del terzo della L standard. E' possibile pertanto realizzare sistemi logici molto veloci senza perdere la compatibilita' con altri dispositivi L. ) La potenza dissipata cresce molto piu' lentamente con la frequenza che non per le altre sottofamiglie. Pertanto, malgrado che la potenza dissipata in condizioni statiche non si possa a rigore definire piccola, ad alte frequenze la potenza dissipata e' addirittura inferiore a quella della L standard. 7

332 Le famiglie logiche Capitolo ) Poiche' anche i diodi di tosatura presenti all'ingresso sono di tipo Schottky, si ha una maggior efficacia nella soppressione di eventuali oscillazioni, sia a causa della minor tensione di soglia di tali diodi, sia per la loro maggior velocita' di commutazione. 4) I dispositivi SL sono elettricamente, meccanicamente e logicamente equivalenti ai L standard e quindi il miglioramento di sistemi logici gia' esistenti puo' essere ottenuto semplicemente con la sostituzione degli elementi standard con elementi SL. Per contro la maggior ripidita' dei fronti di commutazione, realizzata sempre nell'intento di migliorare le caratteristiche di velocita' della sottofamiglia, rende piu' problematico l'uso dei dispositivi SL. La velocita' di salita (slew rate) e' tipicamente maggiore di volt/nsec e puo' dar luogo ad oscillazioni e riflessioni sulle linee di collegamento anche con connessioni di lunghezza moderata ( - cm). D'altra parte non e' semplice terminare le linee con un carico adeguato senza peggiorare in modo sensibile il fan-out. Infine, poiche' i transistori Schottky non saturano, la V OL sale a.5 volt e quindi l'immunita' al rumore allo stato basso e' di millivolt anziche' 4 millivolt. Si raccomanda pertanto, quando si usano elementi SL, di mantenere le connessioni il piu' corte possibile, di usare linee di massa di generose dimensioni e a bassa induttanza, di disaccoppiare con condensatori di buone caratteristiche a radiofrequenza le alimentazioni ed infine di applicare terminazioni di adattamento alle connessioni che superano la lunghezza di cm, facendo tuttavia attenzione alla riduzione del fan-out..4.8) La sottofamiglia low power Schottky L. La sottofamiglia low power Schottky (LSL) e' quella introdotta piu' di recente e circuitalmente coincide con quella low power; i transistori tuttavia sono di tipo Schottky. Come risultato si ottengono ritardi di propagazione dell'ordine dei nsec. con dissipazioni di mw/gate, avendo cioe' in pratica la velocita' della L standard con la dissipazione della low power. Un sistema realizzato con la sottofamiglia LSL avra' quindi una minor dissipazione di calore e un minor rumore autogenerato. ABELLA 4 Confronto velocita' - dissipazione Denominazione Sottofamiglia empo di ritardo Dissipazione L Standard 5 - nsec. mw HL Alta Velocita' 6 nsec. mw LPL Low power - nsec. mw SL Schottky nsec. 9 mw LSL Low power Schottky 5 - nsec. mw Infine la LSL si presta particolarmente bene a fungere da interfaccia verso i dispositivi MOS e CMOS. In tabella 4, 5, 6 sono riportate le principali caratteristiche delle sottofamiglie L. 8

333 Le famiglie logiche Capitolo ABELLA 5 Sottofamiglia Serie militare (-55/5 o C) Serie industriale (/75 o C) V V V V V V V V IL IH OL OH IL IH OL OH Standard High speed Low power Schottky Low power Schottky da L a ABELLA 6 Margini di rumore apparenti L HL LPL SL LSL HL LPL SL LSL ) Conclusioni sulle sottofamiglie L. L'area di applicazione dei dispositivi L e' talmente vasta che conviene piuttosto elencare le applicazioni in cui essi non sono raccomandabili che non fare il viceversa. Non e' opportuno usare tali dispositivi: ) Nelle applicazioni in cui e' richiesta una bassissima dissipazione di potenza. Per tali usi e' preferibile usare elementi CMOS. ) Nella realizzazione di sistemi che debbano operare in ambienti ad alto rumore, dove sono preferibili i dispositivi HL e CMOS. ) Nelle applicazioni ad altissima velocita', dove si usano gli ECL. 4) Nelle realizzazioni LSI, dominio quasi incontrastato della tecnologia MOS. Riassuntivamente comunque i vantaggi della tecnologia L sono: ) Elevata disponibilita' di elementi logici, anche di notevole complessita'. ) Compatibilita' totale con la DL. ) Bassa impedenza di uscita in ambedue gli stati logici e quindi una notevole capacita' di pilotaggio in c.a. 9

334 Le famiglie logiche Capitolo 4) Notevole reiezione del rumore proveniente dall'esterno a causa della bassa impedenza di uscita, senz'altro superiore a quanto ci si potrebbe aspettare dal margine di rumore di 4 mvolt. 5) Elevata velocita'. 6) Ottimo prodotto velocita'-potenza dissipata. 7) Costo moderato e notevole reperibilita' presso diversi fornitori. 8) Compatibilita' tra le diverse sottofamiglie, caratteristica questa che permette di ottimizzare il progetto. In contrapposizione si possono tuttavia citare i seguenti svantaggi: ) I cambiamenti estremamente rapidi delle tensioni e delle correnti in gioco rendono critica la progettazione degli stampati che devono essere realizzati in modo da evitare per quanto possibile cadute reattive ed accoppiamenti tra linee. ) Autogenerazione di rumore durante la commutazione, che rende indispensabile l'uso di condensatori di disaccoppiamento. ) Impossibilita' di realizzare la connessione "wired - or" a causa della struttura a totem-pole degli stadi di uscita..5) Problemi di impiego degli elementi logici L. Le caratteristiche elettriche degli elementi logici, presentate nei paragrafi precedenti, impongono l'uso di determinate precauzioni sia in sede di progetto che in quella di realizzazione di un sistema logico. Sebbene le considerazioni che seguono si riferiscano in modo particolare a sistemi che impiegano elementi L, esse possono tuttavia essere facilmente estese anche alle altre famiglie logiche..5.) Cause di rumore. Un sistema logico, come qualsiasi altro sistema fisico, e' comunque affetto da rumore di varia natura. ale rumore puo' provenire da una sorgente esterna, come ad esempio nel caso in cui in prossimita' vi siano delle apparecchiature elettromeccaniche in funzione, dall'accoppiamento (crosstalk) tra le linee di segnale del circuito, puo' essere autogenerato, come gia' e' stato messo in luce per gli elementi L, o infine pervenire al sistema attraverso i collegamenti di ingresso e di uscita o di alimentazione. a) Rumore irradiato In fig..5. e' riportato un modello estremamente semplificato per l'accoppiamento tra una sorgente di rumore (rele', motore elettrico, ecc.) e la connessione tra due porte. In tale modello si suppone che la sorgente di rumore sia accoppiata alla connessione tra le due porte tramite una capacita' parassita C, mentre R rappresenta l'impedenza tra la linea di connessione stessa e la massa. In tali ipotesi la tensione di rumore e' data da Vin = R.i e pertanto, essendo i= C. dv, si dt ottiene: V R.C. dv in = dt

335 Le famiglie logiche Capitolo Sorgente C dv/dt C i R V in figura.5. L'ampiezza della tensione di disturbo e' quindi proporzionale all'impedenza R, alla capacita' C s e soprattutto alla rapidita' di variazione della tensione di disturbo in ingresso. Ponendo ad esempio R = 5 ohm, C s = pf e supponendo che il margine di rumore sia, come per la famiglia L, pari a 4 mv, si trova che dev'essere realizzata la condizione: dv dt 8 volt nsec. perche' il disturbo dia luogo ad un effettivo malfunzionamento del sistema. b) Rumore d'accoppiamento Come accennato, si ha rumore di accoppiamento quando un segnale propagato tra due porte da' origine alla perturbazione del livello logico tra altre due porte. L'ampiezza della perturbazione dipende dal valore dell'impedenza vista dal punto di unione tra le due porte disturbate. Se il ritardo di propagazione tra le due porte e' inferiore alla meta' del tempo medio di ritardo dei gate, le due porte possono essere considerate vicine e l'impedenza citata puo' essere supposta uguale all'impedenza di uscita della porta pilotante. In tal caso il fenomeno puo' essere studiato con un modello formalmente identico a quello usato per il rumore irradiato. Se invece le porte non possono essere considerate vicine, i collegamenti vanno visti come linee di trasmissione e il modello da utilizzare e' quello riportato in fig..5.. dove Z e' l'impedenza della linea di trasmissione e Z m e' l'impedenza mutua tra le due linee.

336 Le famiglie logiche Capitolo Z Z Z 4 m figura.5. Se con V s si indica l'ampiezza del segnale disturbante e con Z i l'impedenza d'uscita della porta, la tensione di rumore indotta nel collegamento tra le porte e puo' essere calcolata con la: V in Vs = Z m Z + + i.5. Z Z.5.) Attitudine delle porte L a pilotare linee di trasmissione. Le linee di trasmissione che nella pratica vengono usate quando si realizzano sistemi digitali e cioe' i cavi e i collegamenti stampati, hanno impedenze caratteristiche comprese tra 5 e 5 ohm. Di conseguenza nessun elemento L e' in pratica adatto a pilotare tali linee. Queste considerazioni tuttavia, che sono valide quando il ritardo di propagazione della linea e' maggiore del tempo di salita o di discesa del segnale di ingresso, non si applicano alle brevi interconnessioni tra elementi dello stesso circuito. In tal caso infatti esse non si comportano come una linea di trasmissione resistiva, ma piuttosto come un carico capacitivo. Poiche' i tempi di commutazione degli elementi L sono noti, e' facile calcolare la massima lunghezza di interconnessione tollerata, tale cioe' da non dar luogo a pericolose riflessioni e oscillazioni. Assumendo per la velocita' di propagazione il valore di cm/nsec, tipica per circuiti stampati in fibra di vetro e resina epossidica di costante dielettrica ε r = 4.7, si va da lunghezze minime di - 5 cm per tempi di commutazione di nsec a 6-8 cm per tempi di commutazione dell'ordine di - 8 nsec. I migliori risultati si ottengono in ogni caso con linee di impedenza caratteristica aggirantesi sui ohm. Usando una delle facce del circuito stampato come piano di massa, tracce di.65 mm di spessore con dielettrico fibra di vetro e resina epossidica realizzano proprio linee da ohm. Dello stesso ordine di grandezza e' l'impedenza di linee realizzate con fili da.5 -. mm di diametro attorcigliati assieme. Quando la lunghezza delle interconnessioni supera i limiti entro cui esse non devono essere considerate delle linee di trasmissione, si possono verificare fastidiosi fenomeni di oscillazione (ringing) tanto piu' marcati quanto piu' la linea e' lunga. Il modello a parametri concentrati non e' in grado in questo caso di rappresentare in maniera adeguata tutti i fenomeni coinvolti nella trasmissione dei segnali. In primo luogo esso trascura completamente la presenza dell'induttanza distribuita della linea. Pertanto un modello piu' appropriato sarebbe quello di figura.5..

337 Le famiglie logiche Capitolo L R C. figura.5. Da un altro punto di vista si dovrebbe poi tenere conto delle perdite della linea, inevitabilmente presenti, introducendo una resistenza di perdita in parallelo alla capacita' C. Il limite principale che tuttavia i modelli a parametri concentrati presentano risiede nel fatto che nella realta' resistenza, capacita' e induttanza sono distribuite uniformemente lungo la linea e non concentrate in un unico punto. Si puo' pertanto pensare di suddividere la linea in tanti spezzoni, per ciascuno dei quali si puo' costruire un modello a parametri concentrati, come illustrato in figura.5.4. L R L R L R C C C... figura.5.4 Andando al limite, considerando cioe' un numero infinito di celle di lunghezza infinitesima, si ottiene il modello a parametri distribuiti che prende il nome di modello delle linee di trasmissione. Le caratteristiche principali di una linea di trasmissione sono: La velocita' U di propagazione del segnale lungo la linea. La velocita', infatti, non e' infinita, ma e' limitata superiormente dalla velocita C della luce. A seconda delle caratteristiche della linea la velocita U puo' essere anche considerevolmente inferiore a C e tale fatto assume una notevole importanza in presenza di linee lunghe. L'impedenza caratteristica Z o della linea, cioe' il rapporto v () t /i() t costante lungo tutta la linea., che risulta

338 Le famiglie logiche Capitolo Il tempo di propagazione lungo una linea di lunghezza L e' evidentemente pari a: L t p = U E' opportuno far notare che il tempo di propagazione dipende unicamente dalle caratteristiche della linea ed e quello necessario per spostare un'onda elettrica da un punto ad un altro di una linea di trasmissione. Dalla teoria delle linee di trasmissione si ricava che: Z o = L'/ C' dove L' e C' sono rispettivamente induttanza e capacita' per unita' di lunghezza della linea stessa. Analogamente la stessa teoria afferma che: U = L'.C' Le relazioni appena introdotte sono valide per linee senza perdite, condizione abbastanza ben approssimata nella maggior parte dei casi reali. In questo caso l'impedenza caratteristica e' puramente ohmica, come e' facile verificare. Essa inoltre e' indipendente dalla frequenza. Aumentando la capacita' diminuiscono sia l'impedenza caratteristica che la velocita' di propagazione, mentre aumentando L' aumenta l'impedenza caratteristica e diminuisce ancora la velocita' di propagazione. Se si fa riferimento a piste di circuito stampato aumentare C' corrisponde a realizzare piste piu' larghe, diminuire la loro distanza dai conduttori di massa, connettere un maggior numero di ingressi sulla linea ecc., mentre aumentare L' coincide sostanzialmente con il realizzare piste piu' sottili. Le linee tuttavia possono essere di diverso tipo: cavi coassiali, piste su stampato (generalmente con una delle facce dello stampato utilizzata come piano di massa, in modo da garantire una costanza delle caratteristiche della linea), doppini ritorti, cavi piatti, ecc. Ciascuna di loro presenta una ben precisa impedenza caratteristica e una velocita' di propagazione ben definita. L'impedenza caratteristica Z o tuttavia e' compresa di solito tra i 5 e i Ω per i cavi e tra e Ω per le piste, mentre il doppino ritorto ha normalmente un'impedenza di 6 Ω. La velocita' di propagazione e' normalmente compresa tra,6 C e,8 C. L'utilizzo del modello a parametri distribuiti, come si e gia accennato, si rende necessario quando il tempo di propagazione diventa paragonabile con i tempi di salita e di discesa del segnale. In sostanza, quando la lunghezza della linea di interconnessione supera i 6 cm per gli elementi L standard, i 5 cm per gli elementi ALS, la decina di cm per quelli L Schottky e i 5 6 cm per gli elementi ECL. Con linee piu' corte, infatti, tutti i punti della linea possono essere considerati equipotenziali, mentre in caso contrario questa ipotesi non e' piu' accettabile. In tale situazione il cambiamento di stato potrebbe essere gia' stato completato in un punto della linea, ma in punti piu' distanti potrebbe non essere stato ancora avvertito a causa dalla velocita' finita di propagazione. Quanto piu' veloce e' la commutazione e tanto 4

339 Le famiglie logiche Capitolo minore e' la lunghezza di linea entro la quale e' utilizzabile il modello a parametri concentrati; ad esempio, all'interno di un circuito integrato, dove spesso le commutazioni sono estremamente rapide, accade spesso che anche connessioni dell'ordine del millimetro debbano essere considerate linee di trasmissione. Si prenda ora in considerazione il modello di una connessione in cui il mezzo trasmissivo debba essere considerato una linea (figura.5.5). VA Ro B VB Zo t p C VC R VA t figura.5.5 La linea sia chiusa su una resistenza di terminazione R e il segnale di ingresso V A sia un segnale a gradino. Nell'istante di applicazione dell'ingresso il generatore V A vede come carico un oggetto per il quale V/I = Z o. Di conseguenza la tensione disponibile al punto B nell'istante t = sara' data da: V B Zo = VA. R + Z Pertanto all estremita trasmittente della linea sara' disponibile solamente una frazione della tensione V A, dipendente dai valori di R o e Z o. o o Famiglia L Serie 74 Serie 74H Serie 74S Serie 74L Resistenza di collettore ABELLA A Impedenza della linea Caso peggiore R + % Nominale Caso migliore R - % V cc serie industriale serie militare Nel caso di elementi L R e' evidentemente un dato caratteristico della sottofamiglia utilizzata, mentre Z puo' venir modificato variando lo spessore del collegamento e la sua distanza dalla linea di terra. 5

340 Le famiglie logiche Capitolo Per evitare riduzioni eccessive della velocita' operativa del sistema e' opportuno rendere il gradino iniziale superiore a volt. Nella tabella A e' riportata la piu' bassa impedenza di linea che puo' essere pilotata dai vari dispositivi L in modo che questa condizione sia soddisfatta. Il gradino di tensione di ampiezza V B si propaga poi lungo la linea e dopo il tempo t p giunge all'estremita' opposta dove e' connessa la resistenza di terminazione R. Per questo bipolo tuttavia esiste il vincolo che il rapporto tra tensione applicata e corrente che vi circola sia pari a R, mentre il segnale applicato proviene da un bipolo per il quale V/I = R. Senza utilizzare considerazioni piu' accurate, patrimonio della teoria delle linee, si puo' pensare che i vincoli vengano rispettati se si suppone che in C si generi quella che viene chiamata onda riflessa, che si somma a quella gia' presente. Quest'onda si propaga a sua volta lungo la linea verso l'estremita' B. La discontinuita' presente in C genera quindi un'onda, che si propaga in direzione opposta a quella dell'onda diretta e che arriva in B dopo un tempo pari a t p. Anche all'estremo B tuttavia puo' esistere una discontinuita' in quanto non e' affatto garantito che R o sia uguale a Z o. Per i medesimi motivi, che sono appena stati presi in considerazione, si genera una nuova onda, che si somma a quella presente in B e si propaga nuovamente lungo la linea e giunge in C al tempo t p. Ragionando in tal modo si puo' quindi affermare che all'estremo B si avra' tutta una serie di variazioni di tensione negli istanti nt p con n =,,4, cioe' in multipli pari del tempo di propagazione, mentre all'estremo C le variazioni di tensione si avranno ai multipli dispari di t p. L'andamento complessivo della tensione agli estremi della linea assume una caratteristica forma a gradinata e a ciascun estremo le variazioni risulteranno intervallate di t p, come illustrato in figura.5.6. VB Caso ideale VA VC t VA (volt) t t t 4t p p p p t 5 Caso reale 4 livello logico indefinito 5 5 figura.5.6 t (nsec.) L'ampiezza V r dell'onda riflessa e' legata a quella V i dell'onda incidente da un coefficiente K detto coefficiente di riflessione. In altre parole 6

341 Le famiglie logiche Capitolo con V r = K. V i R K = R Z + Z o o Conviene prendere in considerazione tre situazioni particolari: R = Z o linea adattata, cioe' chiusa su una K= V R = resistenza di valore pari all'impedenza caratteristica R = linea aperta K= V R = V i R = linea cortocircuitata K=- V R = -V i Nel caso della linea adattata il rapporto V/I e' identico sia sulla linea che sulla resistenza di terminazione e di conseguenza non c'e' alcuna onda riflessa. L'onda diretta giunge alla fine della linea e quindi dopo un tempo t p si raggiungono le condizioni di regime. Con la linea aperta invece il coefficiente di riflessione vale e quindi l'onda riflessa ha lo stesso segno e la stessa ampiezza di quella incidente, mentre con la linea cortocircuitata l'onda riflessa deve valere -Vi, in quanto ai capi di un cortocircuito la tensione deve essere nulla. Il coefficiente di riflessione pertanto vale -. La determinazione del coefficiente di riflessione e' relativamente semplice. Si consideri infatti una linea connessa alla sua resistenza di terminazione R, come mostrato in figura.5.7. Zo,, v, i v i, i i i v r, i r v R figura.5.7 Indicando con v la tensione di terminazione all'estremita' della linea, nella resistenza R circolera' una corrente pari a i e per la legge di ohm si avra' che: v R = i In qualsiasi sezione della linea invece dovra essere soddisfatta la: 7

342 Le famiglie logiche Capitolo, v, = i dove con v' e i' si sono indicate rispettivamente tensione e corrente nella sezione. Normalmente R e Z o sono diverse tra loro e vi e' quindi un'evidente discontinuita' quando si giunge alla terminazione. Per superare questa, che a prima vista puo' sembrare un'incongruenza, e' sufficiente pensare che sulla linea sia presente un segnale, che si propaga verso la terminazione (onda incidente), caratterizzato dai valori i i e v i, e una seconda onda (segnale riflesso), che viaggia in direzione opposta ed e' caratterizzata dai valori i r e v r. Per ambedue queste onde il rapporto tra tensione e corrente e' pari a Z o. Z o v i i i v Z r = = o (.) ir Il sistema preso in considerazione tuttavia e' lineare e quindi vale il principio di sovrapposizione degli effetti. Pertanto al morsetto di uscita si ha: v = v + v i r i = i i i r Si ottiene di conseguenza che: v i i i + v i r r = R che: Sostituendo in questa relazione i valori che di i i e i r che si ottengono dalle (.) si ha Si ricava pertanto v.z i o vi vi Z r o + v.z + vr v Z o r o = R = v.r i v. R r Esprimendo v r in funzione di v i si ottiene finalmente v r R = vi. R Il rapporto tra onda incidente e onda riflessa, cioe' quello che in precedenza e' stato definito come coefficiente di riflessione K vale pertanto: R K = R E' interessante notare che, se la resistenza di terminazione R e' maggiore di Z o, l'onda riflessa e' in fase con quella incidente (K > ), mentre, se R e' minore di Z o, l'onda riflessa e' in opposizione di fase con quella incidente. + Z Z Z + Z o o o o 8

343 Le famiglie logiche Capitolo VB VA VC t VA t p t p t p 4t p t figura.5.8 Si consideri ora il caso in cui l'impedenza del generatore che alimenta la linea sia pari a Zo. Con riferimento alla figura.5.5, all'istante t = la tensione disponibile al punto B sara' pari a V a /. Dopo un tempo t p l'onda giunge al punto C e se la linea e' aperta l'onda riflessa sara' in fase con quella incidente facendo si' che: V V a a V c = + = L'onda riflessa d'altra parte si propaga verso l'estremita' trasmittente (punto B) e pertanto al tempo t = t p anche la tensione V B diventa uguale a V A. Poiche' l'impedenza del generatore e' pari a Zo, la linea vede un carico adattato, non si ha nessuna ulteriore riflessione e le condizioni di regime sono a questo punto raggiunte. L'andamento della tensione alle due estremita' della linea e' riportato in figura.5.8. Una situazione analoga si verifica quando la linea e' cortocircuitata. Unica differenza risiede nel fatto che l'onda riflessa e' in questo caso in opposizione di fase con quella incidente. Le relative forme d'onda (evidentemente in forma idealizzata, come in tutti i casi precedenti) sono riportate in figura.5.9. V a VB VA VC t VA t p t p t p 4t p t figura.5.9 Quando il generatore non e' adattato la situazione si complica a causa delle riflessioni multiple e del valore del coefficiente di riflessione, compreso tra + e -. Ci si rende quindi conto che in una situazione generale, in cui ne' il generatore, ne' il carico sono adattati e in cui e' necessario tener conto che la linea reale non e' priva di perdite e di conseguenza introduce un'attenuazione del segnale, l'analisi del comportamento diventa estremamente difficoltosa. A 9

344 Le famiglie logiche Capitolo queste considerazioni si aggiunge poi il fatto che l'impedenza interna del generatore e il carico di terminazione non sono affatto costanti, dato che il generatore e' l'uscita di una porta logica e pertanto presenta impedenze diverse nello stato ON e in quello OFF, mentre il carico di terminazione altro non e' se non l'ingresso di un atra logica, che molto spesso presenta caratteristiche non lineari. In fig..5. e' riportato un procedimento grafico utilizzabile per ricavare la tensione V out immediatamente disponibile dopo la commutazione per diverse impedenze caratteristiche della linea di trasmissione. caratteristica di ingresso ma caratteristica di uscita allo stato basso caratteristica di uscita allo stato alto Z = Ω volt - - Z = Ω -4-5 Z = 5 Ω Z = 5 Ω figura.5. Anche nella commutazione dallo stato alto allo stato basso si hanno fenomeni analoghi.se l'impedenza della linea di trasmissione e' bassa puo' accadere che il transistore d'uscita dell'elemento che pilota la linea non sia in grado di saturarsi immediatamente. In definitiva, quando la porta all'ingresso della linea cambia stato, viene trasmesso un fronte d'onda fino alla porta ricevente, che viene raggiunta dopo un certo tempo di transito. Se, come avviene normalmente, l'impedenza di ingresso della porta non coincide con quella caratteristica della linea, si avra' una riflessione del segnale, che verra' poi ulteriormente riflesso al lato trasmittente qualora anche in tale punto vi fosse disadattamento di impedenza. 5 (a) (b) (c) (d) (e) figura.5. A causa delle riflessioni multiple il fronte del segnale logico verra' pertanto degradato e le variazioni del segnale si avranno in istanti spaziati di, come illustrato in fig..5., in cui sono riportate alcune possibili forme d'onda (transizione alto basso).

345 Le famiglie logiche Capitolo In particolare per il ricevitore, che vede il nuovo livello logico dopo un numero dispari di intervalli, nel transitorio il segnale puo' permanere in una fascia di incertezza (caso b, con riferimento ai livelli L) o addirittura dar luogo a una sottoelongazione che potrebbe danneggiare lo stadio di ingresso della porta ricevente se questo non fosse adeguatamente protetto. volt 4. B.. livello alto A ingressi -. ingresso livello basso ma -. figura.5. Un metodo grafico approssimato che permette di ricavare le forme d'onda prodotte da circuiti digitali veloci che pilotano linee di trasmissione e' quello che utilizza il cosiddetto diagramma di Bergeron. E' questo un grafico tensione - corrente su cui sono riportate contemporaneamente le caratteristiche di ingresso e di uscita delle porte, con la convenzione che la corrente fornita dall'ingresso ha lo stesso segno di quella assorbita dall'uscita. In fig..5. e' riportato un esempio di diagramma di Bergeron. I punti A e B in cui le curve di ingresso e di uscita si intersecano sono evidentemente rappresentativi delle due condizioni in cui puo' operare una porta che ne pilota un'altra. Normalmente le forme d'onda di interesse sono quelle che si verificano ai due estremi della linea, cioe' all'uscita della porta pilota e all'ingresso di quella ricevente e, come si e gia detto, consistono in una serie di gradini di varia ampiezza la cui durata e' due volte il tempo di ritardo di propagazione della linea. ali forme d'onda si ricavano tracciando una successione di rette di carico sul diagramma di Bergeron, con una pendenza determinata dall'impedenza della linea di trasmissione e facendo partire ciascuna linea dal precedente punto di lavoro, come illustrato nella fig..5.. A lato del diagramma sono riportate le forme d'onda al lato trasmettitore (tratto continuo) e al lato ricevitore (a tratteggio). E' abbastanza evidente che le forme d'onda che cosi' si ricavano sono solo una grossolana approssimazione della realta', comunque sufficiente a fornire le informazioni di interesse. Le forme d'onda che si hanno in corrispondenza al ricevitore sono di solito accettabili purche' si prendano provvedimenti adeguati in presenza di "undershoot" (ad esempio con diodi di tosatura) per evitare il danneggiamento delle porte. Possono viceversa sorgere dei problemi quando l'uscita del trasmettitore viene usata anche localmente oltre che per pilotare la linea. Il segnale potrebbe infatti permanere per tempi non trascurabili in zona di incertezza, rallentando notevolmente il circuito o addirittura portando ad un'errata evoluzione nel caso di circuiti sequenziali.

346 Le famiglie logiche Capitolo 4 5 Ω A A B Ω E D B E D 8 6 C C - 4 figura.5. ale inconveniente puo' essere evitato o prelevando il segnale a monte del trasmettitore o terminando la linea con un opportuno valore resistivo in modo da realizzare l'adattamento di impedenza. In definitiva si puo' affermare che: ) Collegamenti effettuati con singolo filo non debbono superare la sessantina di centimetri. ) Per distanze di collegamento superiori e' indispensabile usare la coppia ritorta o il cavo coassiale. Per la miglior protezione contro la diafonia e' opportuno che il cavo abbia impedenza caratteristica dell'ordine dei ohm. Per aumentare il margine di rumore si possono usare resistenze di "pull-up" al lato ricevitore; inoltre per evitare eccessive riflessioni e' bene che la linea sia terminata sulla sua impedenza caratteristica. Vcc Vcc R A=R B= Z R =Z R RA RB figura.5.4 In fig..5.4 sono riportati due possibili arrangiamenti circuitali, di cui il secondo permette di diminuire la corrente assorbita dallo stadio pilota allo stato basso.

347 Le famiglie logiche Capitolo.5.) Disaccoppiamento dell'alimentazione e massa. In presenza di fronti rapidi e soprattutto quando la famiglia da' luogo ad un rumore autogenerato, come nel caso della L, e' necessario disaccoppiare attentamente le alimentazioni. Per inquadrare il problema nelle sue dimensioni si tenga presente che durante la commutazione una porta L standard assorbe impulsivamente dall'alimentazione una corrente di ma per 5 nsec., mentre una L Schottky assorbe ma per 5 nsec. Nella pratica un buon disaccoppiamento si ottiene inserendo un condensatore da. microfarad, di buone caratteristiche a radiofrequenza, ogni 5- chips. E' bene inoltre includere su ogni scheda un condensatore elettrolitico al tantalio da - microfarad. Le tracce stampate devono poi essere il piu' possibile larghe ed eventualmente anche multiple allo scopo di diminuirne l'impedenza. Un buon sistema di massa e' poi essenziale per un corretto funzionamento. Esso puo' essere costituito da una pista di elevata larghezza sul circuito stampato o meglio ancora destinando a piano di massa un'intera faccia dello stampato. Operando in tal modo si realizza poi l'ulteriore vantaggio che i collegamenti possono essere effettuati con linee di impedenza costante e ben conosciuta. In fig..5.5 e' riportato un diagramma dell'impedenza di "strip lines" in funzione della larghezza della pista e dello spessore e della costante dielettrica del supporto, quando una delle facce sia esclusivamente destinata a piano di terra. Z ohm Impedenza caratteristica di strip lines ε r w h ε r 6 ε r == 4 ε r=,5. w/h figura ) Ingressi e gate non usati. Sebbene si possa affermare che un ingresso non connesso di un elemento L si comporti come se fosse collegato al livello logico alto, in pratica esso si trova in uno stato incerto in quanto e' suscettibile di cambiare stato con solo mv di rumore, nei confronti del quale si comporta da antenna. ale osservazione e' evidentemente valida anche per tutte le

348 Le famiglie logiche Capitolo altre famiglie logiche e la situazione si rivela tanto piu' critica quanto maggiore e' l'impedenza di ingresso dell'elemento che si considera. Pertanto un ingresso, in particolare quando il relativo dispositivo viene impiegato in circuiti sequenziali, non va mai lasciato scollegato; per minimizzare le conseguenze del rumore si puo' intraprendere una delle seguenti azioni: ) Collegare l'ingresso in questione ad un altro ingresso usato della stessa porta. Per quanto riguarda la logica L c'e' da osservare che e' necessario non superare il fan-out del circuito pilotante allo stato alto, mentre non si hanno conseguenze per il fan-out allo stato basso in quanto tutti gli ingressi di una porta ricevono corrente dallo stesso resistore. ) Collegare l'ingresso a massa in tutti i casi in cui cio' sia possibile da un punto di vista logico, come ad esempio nei casi di porte logiche NOR o OR. ) Collegare l'ingresso alla tensione di alimentazione. Per i L tuttavia la tensione di ingresso non deve superare mai i 5.5 volt; in caso contrario si potrebbe avere il breakdown dell'ingresso e non essendo la corrente limitata da alcun elemento circuitale, l'integrato potrebbe danneggiarsi permanentemente. 4) Collegare l'ingresso alla tensione di alimentazione tramite una resistenza di circa kohm che ha lo scopo di limitare l'eventuale corrente di breakdown a valori di sicurezza. La stessa resistenza puo' essere utilizzata per fissare al livello alto fino a 5 ingressi. 5) Collegare l'ingresso all'uscita di un gate non usato i cui ingressi siano stati connessi a massa. 6) Utilizzare una sorgente di tensione separata, di valore compreso, per i dispositivi L, tra.4 e 5.5 volt. Anche per quanto riguarda i gate non usati e' bene non lasciare i loro ingressi volanti. In particolare per quanto riguarda i dispositivi L e' opportuno che la loro uscita sia portata al livello logico alto in modo da minimizzare la dissipazione di potenza..5.5) Aumento del fan - out. Per aumentare il fan - out si possono collegare assieme gli ingressi e le uscite dei gate dello stesso involucro. E' tuttavia opportuno limitare il numero di elementi in parallelo in modo da evitare forti transitori di corrente dovuti ai differenti tempi di commutazione dei singoli gate, che, pur non essendo nocivi per i dispositivi, danno origine ad un certo numero di problemi indotti..6) La famiglia ECL. La logica ECL, chiamata talvolta anche CML (current mode logic - logica a commutazione di corrente) differisce strutturalmente in modo abbastanza profondo dalle logiche saturate ed e' piu' vicina per configurazione circuitale e funzionamento ad un circuito lineare; i transistori operano solo in regione attiva e l'escursione tra i due livelli logici e' molto ridotta. In fig..6. e' riportato lo schema tipico di una porta ECL OR/NOR a quattro ingressi. Quando tutti gli ingressi della porta sono a livello basso (minore di -.6 volt), tutti i transistori di ingresso sono interdetti poiche' gli emettitori, tutti connessi tra di loro, si trovano ad una tensione di circa.7 volt inferiore a quella di riferimento V bb e quindi a circa -.8 / -.9 volt. 4

349 Le famiglie logiche Capitolo La base del transistore di uscita NOR e' quindi a potenziale di massa e l'uscita a circa -.75 volt. Vcc 9.5 k OR NOR Vbb -.75V.5 k A B C D R.8 k k. k Vee figura.6. Se invece uno o piu' ingressi della porta sono portati a livello alto (-.75 volt) sul resistore di carico di 9 ohm si ha una caduta di circa.9 volt e l'uscita passa a -.65 volt. L'uscita pertanto e' alta se e solo se tutti gli ingressi sono a livello basso; la funzione logica realizzata e' quindi la NOR. Poiche' lo stadio di ingresso e' in pratica un amplificatore differenziale, dal collettore del secondo transistore puo' essere prelevata una tensione in opposizione di fase, realizzando pertanto anche la funzione logica OR. La tensione di riferimento V bb determina il livello della commutazione. Essa viene scelta pari a -.75 volt in modo da ottenere un'immunita' al rumore simmetrica nei due stati. I due diodi inseriti nel circuito di base hanno lo scopo di compensare le variazioni della V BE con la temperatura. Le uscite ad inseguitore di emettitore, oltre a fornire una bassa impedenza di uscita, hanno il compito di traslare le cadute di tensione ai capi dei due resistori di collettore in livelli ECL standard. E' bene rilevare ancora una volta che la logica ECL e' una logica non saturata. Si noti che in prima approssimazione la corrente circolante su R E e' data da: I E = Vee.5 R E Per evitare che i transistori saturino, valutando in circa. -. volt la tensione V CES di saturazione, dovra' essere, in prima approssimazione: R C.I E <.5 -. =. dove con R C si e' indicata la resistenza di collettore della coppia differenziale e si e' valutata in -.5 volt la tensione media di emettitore. ali condizioni sono senza dubbio rispettate nel circuito ECL illustrato in fig

350 Le famiglie logiche Capitolo.6.) Caratteristica di ingresso. Poiche' lo stadio di ingresso di una porta ECL e' in pratica un amplificatore differenziale, ne presenta gli stessi vantaggi. L'impedenza di ingresso e' di circa kohm ed e' pertanto molto piu' elevata di quella di qualsiasi altra logica bipolare. La caratteristica di ingresso e' riportata in fig..6.. Da tale caratteristica si vede che quando la tensione di ingresso sale al di sopra del livello massimo dello stato alto la corrente di ingresso comincia a crescere. E' questo l'inizio di una lieve saturazione, che tuttavia gioca un ruolo positivo tendendo a smorzare eventuali oscillazioni del segnale. Infine poiche' il segnale di ingresso e' applicato ad uno stadio differenziale, si ha una discreta reiezione di modo comune, in particolare per quanto riguarda le variazioni della tensione di alimentazione. ma. fan - out = V OH max figura.6. V ee = 5.5 V a = 5 o C volt.6.) Caratteristica di trasferimento e immunita' al rumore. Dalla caratteristica di ingresso riportata in fig..6. risulta che l'immunita' al rumore e' di circa mv. Il circuito di compensazione della temperature mantiene tale immunita' costante al variare della temperatura e della tensione di alimentazione. V i volt V IL max V IH min -.5 OR V u -. V OH min -.85 V bb -.5 V OL max volt figura.6. NOR E' inoltre necessario far notare che il circuito puo' funzionare su una vasta gamma di tensioni poiche' V bb e la tensione di uscita a livello basso si adeguano automaticamente alle stesse variazioni. 6

351 Le famiglie logiche Capitolo.6.) Attitudine al pilotaggio di linee. La porta ECL si presta particolarmente bene ad essere terminata con un resistore di valore pari all'impedenza caratteristica di un cavo coassiale (5 ohm). In alcuni casi tale resistenza dev'essere connessa tra uscita e un'apposita "tensione di terminazione" di - volt, in altri casi puo' essere collegata direttamente a massa. Inoltre gli elementi ECL, a causa della loro struttura differenziale, si prestano a pilotare linee di trasmissione bilanciate. Si ottengono in tal modo un'immunita' al rumore superiore al volt e la possibilita' di pilotare linee molto lunghe. La trasmissione puo' venir fatta con qualsiasi porta, anche se, nelle applicazioni piu' critiche, e' conveniente far ricorso ad appositi "line drivers". Per la ricezione sono invece disponibili delle particolari porte ECL in cui sono accessibili ambedue gli ingressi dell'amplificatore differenziale (fig..6.4). V cc R. k.5 k V ee figura ) Comportamento dinamico. I ritardi degli elementi ECL sono i piu' piccoli tra quelli di qualsiasi altra famiglia logica, mentre il prodotto velocita' potenza e' uno dei migliori. Essi non autogenerano rumore in quanto l'assorbimento di corrente dall'alimentazione e' praticamente costante e non varia con la frequenza. I tempi di salita e di discesa sono invece relativamente lunghi e, considerata la modesta escursione del segnale, lo "slew rate" e' addirittura minore di quello della famiglia L. enendo poi presente che gli ingressi richiedono correnti molto modeste, si puo' affermare che per questa famiglia il rumore di accoppiamento e' minimo..6.5) Sottofamiglie ECL. Esistono diverse sottofamiglie di elementi ECL, che grosso modo possono essere classificate come segue: ) 8 nsec. ECL (t pd = 8 nsec, max MHz) ) 4 nsec. ECL (t pd = 4 nsec, max 75 MHz) ) nsec. ECL (t pd = nsec, max 5 MHz) 4) nsec. ECL (t pd = nsec, max 4 MHz) 7

352 Le famiglie logiche Capitolo Di queste sottofamiglie quella da nsec. e' la piu' diffusa in quanto presente un ottimo compromesso tra velocita', dissipazione di potenza e facilita' d'uso. Gli schemi base delle due sottofamiglie piu' veloci sono simili tra loro e sono riportati in fig A B C D Vcc Vcc C A B D 5 k 5 k k 4.9 k figura.6.5 Per la famiglia da nsec. i valori resistivi sono dimezzati, eccetto che per le resistenze di "pull down", connesse tra ingresso e massa, del valore di 5 kohm. ali resistenze permettono di lasciar sconnessi gli ingressi non usati, senza avere in pratica problemi di captazione di rumore. Rispetto alle due sottofamiglie piu' lente i transistori di uscita sono privi di resistenza di emettitore e sono alimentati separatamente dal resto del circuito. ale arrangiamento circuitale permette di adattare facilmente le linee di collegamento, e ogni uscita puo' fornire fino a 5 ma. La separazione dei terminali di alimentazione evita che gli impulsi presenti nella corrente di uscita diano luogo a cadute induttive che interessino il circuito della porta. Per le porte ECL veloci il cablaggio unifilare dev'essere limitato a linee inferiori ai.5 cm; in caso contrario le connessioni vanno eseguite con linee terminate in parallelo su 5 ohm. Si raccomanda inoltre l'uso di condensatori ceramici di disaccoppiamento ogni 5- chips..6.6) Conclusioni sulla famiglia ECL. L'alta velocita' degli elementi ECL e la struttura differenziale permettono la costruzione di dispositivi estremamente veloci, quali, ad esempio, convertitori A/D ad alta velocita'. La tecnologia impiegata si presta inoltre alla realizzazione di elementi LSI. Quali inconvenienti e' necessario citare la ridotta immunita' al rumore e la difficile interfacciabilita' con le altre famiglie logiche. Riassuntivamente i vantaggi della famiglia ECL sono: ) Elevata velocita'. ) Bassa impedenza di uscita. ) Notevole fan - out. 4) Bassissima generazione di rumore. 5) Esistenza di due uscite complementari. 8

353 Le famiglie logiche Capitolo 6) Basso accoppiamento tra le linee di segnale. 7) Possibilita' di wired-or. 8) Elevata reiezione di modo comune. 9) Stabilita' delle caratteristiche al variare della temperatura. ) Facile pilotaggio di linee. ) ecnologia impiegabile in realizzazioni MSI e LSI. Quali svantaggi si possono citare: ) Dissipazione di potenza non trascurabile. ) Bassa immunita' al rumore. ) Difficile interfacciamento con le altre famiglie logiche. 4) Aumento notevole dei tempi di propagazione in presenza di carichi capacitivi. Gli elementi ECL sono correntemente impiegati nella realizzazione di strumentazione, quali contatori ad alta velocita', sistemi a sintesi di frequenza, ecc, nel campo del calcolo automatico, per la realizzazione di unita' logico-aritmetiche, memorie ultraveloci, ecc., nei sistemi di comunicazione e nella conversione A/D veloce..7) I dispositivi MOS. Praticamente assenti agli inizi della produzione dei circuiti integrati, i dispositivi MOS (Metal Oxide Semiconductor) sono diventati via via una larga frazione della produzione totale ed attualmente dominano nel campo dell'integrazione a larga scala, in particolare per quanto riguarda memorie, microprocessori e circuiti "custom". E' opportuno ricordare che, a differenza di un transistore a giunzione, che sfrutta le correnti sia dei portatori maggioritari che minoritari, il MOS utilizza solo i portatori maggioritari e per tale motivo viene spesso chiamato transistore unipolare. Esso ha una resistenza di ingresso elevatissima, e' piu' semplice da fabbricare e richiede sulla superficie del "chip" di silicio un'area notevolmente minore che non il transistore bipolare. Allo stesso modo in cui esistono due tipi di transistore a giunzione, PNP e NPN, cosi' esistono i MOS a canale N o NMOS e i MOS a canale P o PMOS. Inoltre esistono per ciascun tipo due modi di funzionamento: il primo, detto "enhancement mode" o "modo a rinforzo" presenta la caratteristica di mantenere il transistore interdetto fino a che non viene applicata una sufficiente tensione tra gate e source, mentre il secondo detto "depletion mode" o "modo a svuotamento" richiede un'opportuna polarizzazione non nulla per inibire la conduzione. Inizialmente la maggior parte dei dispositivi MOS e stata realizzata in tecnologia PMOS enhancement mode, malgrado che gli NMOS siano piu' veloci e di area minore, in quanto la tecnologia NMOS era piu' difficile e costosa. Solo in tempi relativamente recenti, con l'introduzione della tecnologia di impianto ionico, i dispositivi NMOS ed in particolare quelli depletion mode sono diventati abbastanza comuni. In fig..7. sono illustrate le forme idealizzate e i simboli usati per i MOS a canale N e per quelli a canale P rispettivamente. 9

354 Le famiglie logiche Capitolo source gate drain source gate drain p n p metallo isolamento silicio (SiO ) n p n metallo isolamento silicio (SiO ) substrato drain d drain d gate substrato g source s gate substrato source g s figura.7..8) Logica MOS statica. La forma piu' semplice di circuito logico MOS e' l'invertitore illustrato in fig..8. (a). Il circuito base e', come si vede, sostanzialmente simile a quello della logica RL; nella pratica tuttavia il resistore R L e' rimpiazzato da un secondo transistore opportunamente polarizzato, che opera come un generatore di corrente. Il relativo circuito, in forma idealizzata e' riportato in fig..8. (b) e la motivazione per cui si ricorre a tale arrangiamento circuitale risiede nel fatto che un MOS occupa sul chip molto meno spazio che non un resistore ed e' piu' facile da realizzare. In fig..8. (c) e' riportata poi la tabella delle condizioni operative. Vx g d s RL - VDD + Vz Vx g d r s l - - VGG VDD + + Vz (a) Vx Vz (b) V x < Vt V x > Vt V (c) figura.8. Per un corretto funzionamento, cioe' per far si' che quando r e' in conduzione la tensione di uscita sia sufficientemente bassa, in modo da non far passare in conduzione i transistori di altre porte collegate, i due transistori r e L hanno in conduzione un rapporto di 4

355 Le famiglie logiche Capitolo resistenza pari a :. Di conseguenza r occupa sul chip un'area notevolmente maggiore che non L. Molto spesso V DD e V GG sono connessi allo stesso terminale; in tal caso tuttavia l'impedenza di uscita diventa molto elevata, la tensione di uscita a transistore interdetto e' minore di V DD e le costanti di tempo dovute alle capacita' parassite diminuiscono di molto la velocita' operativa. Vx Vy - - VGG VDD Vz + + Vx Vy Vz X Y Z VL VL VH VL VH VL VH VL VL VH VH VL V H =V V L =V DD Z = (X+Y) = X. Y figura.8. E' facile, a partire dalla struttura dell'invertitore, ottenere porte logiche NAND e NOR, connettendo in serie o in parallelo altri transistori MOS. In fig..8. e' riportato il circuito della porta logica che in logica positiva realizza la funzione NOR, mentre in fig..8. vi e' il circuito della porta logica NAND. V z Vx Vy VGG VDD Vx Vy Vz X Y Z VL VL VH VL VH VH VH VL VH VH VH VL V = V V = V H L DD Z= X.Y= X+ Y figura.8. E' opportuno far rilevare che la struttura di tali porte e' molto simile a quella della tecnologia RL; non si hanno tuttavia problemi di fan-out, in quanto l'impedenza di ingresso 4

356 Le famiglie logiche Capitolo di un transistore MOS e' talmente elevata da poter essere considerata, almeno in prima approssimazione, infinita..9) Logica MOS dinamica. Malgrado che la dissipazione di potenza dei dispositivi MOS sia notevolmente inferiore a quella dei dispositivi bipolari, vi e' una notevole varieta' di applicazioni in cui una dissipazione ancora minore sarebbe auspicabile. Per ottenere tale obiettivo sono percorribili due strade; la prima conduce alla realizzazione di logiche CMOS, in cui sono usati contemporaneamente transistori PMOS e NMOS e di cui si parlera' in seguito; l'altra via riduce la potenza dissipata applicando l'alimentazione al circuito solo a intervalli di tempo, in modo che potenza venga dissipata solo quando e' strettamente necessario. Un tal modo di procedere e' possibile in quanto si puo' memorizzare l'informazione nella capacita' parassita gate-source durante gli intervalli in cui l'alimentazione viene a mancare. Operando tuttavia in questa maniera l'informazione e' disponibile in uscita solo quando e' presente l'alimentazione; il dato logico e' cioe' sincronizzato con l'alimentazione. Circuiti del tipo appena descritto prendono il nome di circuiti MOS dinamici, in contrapposizione a quelli descritti al paragrafo precedente, detti statici e nei quali l'informazione di uscita e' sempre disponibile. VDD VDD φ φ φ V x A C φ t t figura.9. Lo schema di principio della piu' semplice logica MOS dinamica, detta a due fasi, e' riportato in fig..9.. In essa sono rappresentati due invertitori connessi in cascata, che tuttavia devono venir considerati come un unico stadio della logica MOS dinamica. Si noti che rispetto alla logica MOS statica si possono rilevare le seguenti differenze: ) I gates dei transistori di carico e 5 non sono connessi direttamente a V GG, ma a φ e φ e pertanto conducono solo quando tali segnali vengono posti uguali a V GG. ) L'uscita di ogni invertitore non e' connessa direttamente all'ingresso dell'invertitore successivo, ma attraverso un transistore di 4

357 Le famiglie logiche Capitolo accoppiamento ( e 6 ). Anche i transistori di accoppiamento sono connessi a φ e φ e conducono pertanto solo quando la tensione sul loro gate e' pari a V GG. V DD V DD Vx 4 Vx 4 (a) (b) figura.9. Quando φ e φ sono entrambi a valore nullo nel circuito non circola corrente. Non si ha quindi dissipazione e la situazione illustrata e' quella di fig..9. (a). Quando il valore di φ passa a V GG i transistori e passano in conduzione; il segnale al drain di assumera' allora il valore determinato dallo stato logico dell'ingresso e tale valore verra' trasferito attraverso alla capacita C 4 associata all'ingresso di 4, dove verra' memorizzato e si manterra' anche dopo il ritorno di φ a zero. Infine quando φ diventa uguale a V GG l'informazione viene trasferita in uscita. Il principale vantaggio di un tal modo di operare consiste nel fatto che si ha dissipazione solo durante gli intervalli di tempo durante i quali φ e φ sono diversi da zero e solo durante tali intervalli i transistori e 4 sono in conduzione. I due segnali di clock possono esser distanziati anche notevolmente tra di loro e pertanto la dissipazione diventa una frazione abbastanza piccola di quella che si avrebbe per lo stesso circuito realizzato in logica MOS statica. Per il tempo rimanente l'informazione e' immagazzinata come carica nelle capacita' di ingresso e a causa delle resistenze parassite decade via via che passa il tempo. La costante di tempo di scarica determina evidentemente il massimo intervallo tra gli impulsi di clock. La massima frequenza di clock e' invece determinata dal tempo necessario a caricare la capacita' ad un determinato livello, in quanto, una volta che sia assegnato il valore delle tensioni φ e φ, il semiperiodo attivo di tali segnali non puo' essere inferiore al tempo di carica necessario. Per quanto riguarda l'ingresso esso deve assumere il valore logico voluto solo durante l'intervallo, mentre per il resto del tempo il suo valore non ha alcuna importanza. Analogamente l'uscita e' valida solo dopo ed e' pertanto ritardata di un tempo pari a un ciclo di clock. Da questo punto di vista il circuito preso in esame puo' anche essere considerato un registro a scorrimento in quanto trasferisce l'informazione di ingresso da stadio a stadio per ogni impulso di clock..9.) MOS dinamici a rapporto minimo. Nei circuiti fino a questo momento considerati esiste un'esigenza comune da rispettare; quella cioe' che la resistenza di conduzione dei MOS attivi sia notevolmente inferiore di quella dei MOS di carico, in modo da avere una tensione di uscita sufficientemente prossima 4

358 Le famiglie logiche Capitolo allo zero nello stato basso. ale esigenza obbliga a costruire sullo stesso chip transistori di dimensioni notevolmente diverse tra di loro. Esiste tuttavia una variante della logica MOS dinamica a due fasi che permette di realizzare tutti i transistori con la stessa area, aumentando pertanto la densita' di integrazione e permettendo di ottenere velocita' di funzionamento piu' elevate. Lo schema di principio di questa realizzazione circuitale e' riportato in fig..9.. φ φ φ VDD 5 9 C C C5 φ φ φ 6 Ingresso 4 C 8 7 C4 C6 figura.9. Quando e' applicato φ, conduce e la capacita' C si carica. Immediatamente dopo φ viene tolto e viene applicato φ. In tal caso passano in conduzione e che fanno si' che su C venga trasferito il valore determinato dallo stato di 4. E' evidente che in questo caso non vi e' alcuna esigenza di mantenere bassa la resistenza di conduzione di 4, in quanto il suo compito e' unicamente quello di scaricare o meno a massa la capacita' C. Nasce invece l'esigenza di rendere C notevolmente maggiore di C in quanto durante l'intervallo φ queste due capacita' si suddividono la carica. Sempre durante l'intervallo φ la capacita' C si carica alla tensione V DD. Successivamente viene azzerato φ e si ripresenta φ rendendo possibile il trasferimento dell'informazione allo stadio successivo e cosi' via. Questo tipo di circuito permette di eliminare completamente la linea V DD sostituendola con i segnali di clock, come illustrato in fig φ φ φ 5 9 C C C5 φ φ φ 6 Ingresso 4 C 8 7 C4 C6 figura

359 Le famiglie logiche Capitolo.9.) MOS dinamici a quattro fasi. Esistono circuiti MOS dinamici a quattro fasi, sviluppo di quelli a due fasi, che permettono di ottenere dimensioni minime, maggior velocita' operativa e minore dissipazione. La sola corrente necessaria al funzionamento e' quella che serve a caricare e scaricare le capacita' nodali e viene prelevata direttamente dai segnali di clock. φ φ φ φ φ φ φ φ φ φ φ φ N N N N N 4 5 Ingresso C 6 C C C C φ φ φ φ φ φ bit bit bit figura.9.5 Per illustrarne il funzionamento si fara' riferimento al registro a scorrimento di fig..9.5, mentre in fig..9.6 sono riportate le relative forme d'onda. φ φ φ φ 4 ingresso Ν Ν Ν Ν 4 Ν 5 figura.9.6 Negli intervalli φ e φ i transistori e passano in conduzione, mentre conduce o meno in funzione della tensione di ingresso. Comunque sia, considerate le resistenze di conduzione offerete dai vari MOS, la capacita' C si carica a una tensione negativa. Alla fine di φ rimane in conduzione per effetto di φ e se e' conduttore la capacita' C si scarica a massa. Se invece la tensione di ingresso e' nulla, rimane interdetto e C mantiene la sua carica negativa. Con un breve ritardo rispetto alla fine di φ vengono applicati gli impulsi φ e φ 4, il cui effetto e' quello di accumulare su C una carica 45

360 Le famiglie logiche Capitolo negativa. Alla fine di φ l'informazione presente su C viene trasferita invertita su C. Dopo un ciclo completo di clock pertanto l'informazione e' stata trasferita dall'ingresso all'uscita del primo stadio. Ad ogni ulteriore ciclo di clock l'informazione viene spostata attraverso gli stadi e compare all'uscita con un ritardo in periodi di clock pari al numero degli stadi del registro. L'informazione di ingresso viene letta durante il periodo φ, quella di uscita e' disponibile dalla fine di φ all'inizio dell' impulso φ successivo..) La famiglia CMOS. La famiglia CMOS (Complementary Metal Oxide Silicon), presente sul mercato gia' da molti anni, ha rispetto ad altre famiglie logiche alcune proprieta' del tutto insolite. Anzitutto i suoi ingressi sono ad elevatissima impedenza, tali che dal punto di vista puramente ohmico possono essere considerati dei circuiti aperti. In condizioni statiche poi il loro consumo e' praticamente nullo, non essendoci alcuna circolazione di corrente. Inoltre la tensione di alimentazione puo' essere liberamente scelta in un campo che va da a 5 volt e non richiede affatto di essere stabilizzata e ben filtrata. In fig... e' riportato lo schema base della famiglia, rappresentante un circuito invertitore. Esso consiste in due transistori MOS, ambedue a rinforzo, di cui il superiore e' a canale P, l'inferiore a canale N. VDD s Vx g g d d s Vz V x V z X Z V DD V DD figura.. Per non ingenerare confusione non viene usata la terminologia usuale per i circuiti MOS, ma si indica di solito con il simbolo di massa il "source" del transistore inferiore e con V CC il "source" del transistore superiore. Il funzionamento del circuito e' riassunto nella tabella di fig... ed e' evidente. Quando la tensione di ingresso V x e' nulla, il MOS a canale N e' interdetto mentre quello a canale P e' conduttore, essendo la sua tensione "gate-source" pari a V CC. La tensione di uscita e' quindi pari a quella di alimentazione. Quando invece la V x diviene pari a V CC, il transistore a canale P si interdice, mentre passa in conduzione quello a canale N.; la tensione di uscita e' quindi pari a zero. Si vede che in ambedue gli stati uno dei due MOS e' interdetto; non vi e' pertanto circolazione di corrente se si trascura la debolissima corrente di perdita dei MOS. Pertanto i livelli logici sono V CC e (corrispondenti alle costanti logiche e in logica positiva) poiche' in un MOS conduttore, in cui pero' non scorra corrente, non si ha caduta di tensione. enendo poi presente che l'impedenza di ingresso di un MOS e' elevatissima (> ohm + 5 picofarad) e che il carico di ciascun gate e' formato dagli ingressi dei gates a valle, i livelli logici si possono ritenere a buona ragione uguali alla tensione di alimentazione e a zero. 46

361 Le famiglie logiche Capitolo Durante la commutazione invece vi e' un brevissimo istante in cui ambedue i transistori possono risultare conduttori. La durata di questo intervallo dipende dai tempi di salita e di discesa dei dispositivi e dalla tensione di alimentazione. Considerando che il carico di ciascun MOS e' prevalentemente capacitivo e' allora opportuno esaminare come il tempo di salita e di discesa siano influenzati dalla tensione di alimentazione e dalla capacita' di carico. In fig... e' riportata una tipica caratteristica di un transistore MOS. E' interessante notare che per ciascuna curva caratteristica e' possibile individuare due zone; una prima in cui il transistore si comporta come una resistenza e una seconda in cui il comportamento e' simile ad un generatore di corrente e nella quale la I DS e' indipendente da V DS. Pilotando quindi con questi dispositivi un carico capacitivo, fino a che la V DS sara' tale da mantenere il MOS nella zona "generatore", la tensione di uscita avra' un andamento a rampa; passando poi alla zona "resistore" si avra' un andamento esponenziale. I (ma) DS V = 5 V GS 45 I DS 5 V = V GS V = 5V GS VGS g d s VDS 5 5 V (V) DS figura.. Aumentando la tensione di alimentazione aumenta l'escursione di tensione del carico, e, almeno per quanto riguarda la zona di carica a rampa, questo fatto tende a rallentare la logica. uttavia l'aumento della tensione di alimentazione aumenta con legge quadratica la corrente erogata nella zona "generatore" e la conduttanza nella zona "resistore". In conclusione quindi si puo' affermare che al crescere della tensione di alimentazione diminuiscono i tempi di salita e di discesa. E' questa una caratteristica esclusiva della logica CMOS...) Caratteristica di trasferimento. Per tutti i transistori MOS esiste un valore di tensione V GS, detto tensione di soglia e di solito indicato con V, al di sotto del quale il transistore non conduce (si ricordi che si sta parlando di transistori a rinforzo). ale soglia di conduzione e' indipendente dalle tensioni di alimentazione ed e' influenzata in pratica unicamente dalla tecnologia usata per la fabbricazione del MOS stesso. Da valori elevati, superiori addirittura a 4 volt, tale soglia si e' andata via via abbassando e con le tecnologie piu' moderne si situa oggi nell'intorno del volt. Si assuma allora, per ragioni di semplicita' nell'esaminare la caratteristica di trasferimento dell'invertitore, che i due MOS complementari abbiano caratteristiche perfettamente complementari e che la tensione di soglia sia pari a volt. Se la tensione di alimentazione e' inferiore alla tensione di soglia evidentemente nessuno dei due transistori MOS puo' entrare in conduzione e il circuito non puo' funzionare. 47

362 Le famiglie logiche Capitolo Se V CC uguaglia la tensione di soglia, l'andamento della caratteristica di trasferimento e' quello riportato in fig... (a). Si noti tuttavia che la caratteristica e' valida solo nel caso di un carico capacitivo, in quanto i due transistori conducono solo per V i = e V i = volt. I tratti orizzontali sono giustificati dal fatto che quando i transistori sono interdetti la tensione di uscita della porta viene memorizzata nella capacita' di carico. Vo 4 (a) Vo 4 (b) V cc =V V < V < cc V 4 Vi 4 Vi Vo Vo 4 (c) 4 (d) V cc = V V cc > V 4 Vi 4 Vi figura.. Se V CC rimane compresa tra una e due volte il valore della tensione di soglia (fig... (b)), si ha via via una diminuzione del tratto in cui ambedue i transistori sono bloccati, fino a che, in corrispondenza a V CC = V, il ciclo di isteresi scompare (fig... (c)). In tutti questi casi comunque non circola corrente durante la commutazione nei due transistori. Quando invece V CC supera il valore V si crea una zona in cui ambedue i transistori sono conduttori. Ogni volta in cui V i passa in tale zona, si ha un impulso di corrente assorbita dall'alimentazione, una caduta di tensione nei transistori e la caratteristica di funzionamento si arrotonda come e' illustrato in fig....(d). In tale figura con il tratto continuo sono riportate le caratteristiche idealizzate di commutazione dei singoli MOS, mentre l'effettiva caratteristica di trasferimento e' a tratteggio...) Comportamento al variare dell alimentazione. Si e' gia' visto che per un dato ammontare del carico capacitivo l'aumento della tensione di alimentazione fa aumentare la velocita' operativa; aumenta tuttavia anche la potenza dissipata a causa della corrente che attraversa ambedue i transistori nel periodo in cui conducono contemporaneamente. In fig...5 sono riportate le caratteristiche tipiche di una porta CMOS. E' bene notare anzitutto la grandissima dinamica del parametro potenza dissipata che va da -8 W in condizioni statiche a oltre mw a MHz. Notevole influenza sul consumo hanno sia la capacita' di carico che la tensione di alimentazione. E' pertanto azzardato affermare che la logica CMOS sia quella a consumo minimo, poiche' se tale affermazione e' senz'altro vera a bassa frequenza, a frequenze superiori al MHz il consumo diventa paragonabile o addirittura superiore a quello della logica L. 48

363 Le famiglie logiche Capitolo 5 P tot (µ W ) t phl t phl (nsec.) 6 4 a =5 o C V DD = 5 V V 4 5 V 5 V DD (V) C L = 5 pf t plh t phl (nsec) VDD=5V 5 V DD=V VDD=5V f (Hz) 4 6 C L (pf) figura..5..) Immunita' al rumore. I circuiti CMOS hanno un'elevata immunita' al rumore, il cui valore tipico e'.45 volte la tensione di alimentazione V CC. Se invece di fare riferimento al margine di rumore reale si esamina il margine di rumore apparente, calcolato sulla base dei valori minimi e massimi garantiti, si ottiene comunque un margine di rumore di volt, superiore senza dubbio a quello di qualsiasi altra famiglia logica, eccezion fatta per la HL. In fig...6 sono riportati i livelli garantiti di ingresso e di uscita in funzione della tensione di alimentazione e sono evidenziati i margini di rumore a livello alto e a livello basso. 5 V.5 margine di rumore allo stato alto.5 V OH min V IH min margine di rumore allo stato basso V IL max V OL max.5.5 figura..6 49

364 Le famiglie logiche Capitolo..4) Struttura delle porte logiche. In fig...7 sono riportati gli schemi circuitali delle porte CMOS NOR e NAND, assieme alle loro tavole di funzionamento, che peraltro e' evidente. E' opportuno far notare che per ciascun ingresso e' richiesto un invertitore, cioe' due transistori MOS. E' questo un punto a sfavore della tecnologia CMOS che ne limita l'impiego nel settore dell'integrazione a larga scala. V x V y n Vcc p p n Vz V V V x y z Vcc Vcc Vcc Vcc Vcc X Y Z Z = X + Y Vcc p p V V V x y z X Y Z Vx Vy n n V z Vcc Vcc V cc Vcc V cc Vcc Vcc Z = X.Y figura..7..5) Considerazioni generali sull'uso della famiglia CMOS. A differenza delle famiglie bipolari, in cui gli ingressi non usati possono al limite anche essere lasciati aperti, nella famiglia CMOS condizione essenziale per il funzionamento del circuito e' non lasciare alcun ingresso volante. Gli ingressi infatti, a causa della loro elevatissima impedenza, captano il rumore ambientale facendo commutare in modo incontrollabile la porta. Gli ingressi non usati vanno pertanto connessi di volta in volta a massa, alla tensione di alimentazione o a un altro ingresso usato. La scelta non e' del tutto arbitraria, poiche' influenza la capacita' della porta di pilotare carichi, soprattutto capacitivi. Ad esempio nella porta NAND di fig...7 un ingresso non usato collegato alla tensione di alimentazione mantiene interdetto in permanenza uno dei due MOS in parallelo, mentre quando lo stesso ingresso viene connesso in parallelo ad un altro ingresso usato, raddoppia la capacita' di pilotaggio della porta allo stato alto. Analogamente nella porta NOR il collegamento in parallelo degli ingressi aumenta la possibilita' di pilotaggio allo stato basso. Quando si voglia aumentare la capacita' di pilotaggio in ambedue gli stati anziche' in uno solo, gli ingressi e le uscite di un certo numero di porte possono essere posti in parallelo. 5

365 Le famiglie logiche Capitolo Infine e' bene far notare che, poiche' la famiglia puo' funzionare su un ampio campo di tensioni di alimentazione ed e' dotata di un'ottima immunita' al rumore, l'alimentazione stessa non richiede ne' di essere stabilizzata, ne' eccessivamente filtrata. Utilizzando la famiglia CMOS si semplifica quindi il progetto dell'alimentatore e se ne riduce il costo..) Interfacciamento delle famiglie logiche. Al giorno d'oggi le famiglie logiche piu' diffuse sono senza dubbio la L e la CMOS; si verifica tuttavia di frequente il caso in cui un sistema utilizzi contemporaneamente diverse tecnologie, anche diverse dalla due citate. E' necessario in tal caso adattare le une alle altre con opportuni circuiti di interfaccia. Nel seguito verranno presi in esame alcuni casi tipici, con esclusione dei circuiti MOS, per i quali i problemi di interfacciamento risultano condizionati dalla particolare tecnologia in gioco (a bassa o a alta soglia, a gate metallico o no, a canale N o P, ecc.)..) Interfaccia L - DL. Come e' stato in precedenza accennato, le famiglie L e DL sono perfettamente compatibili tra di loro essendo alimentate con la stessa tensione nominale ed essendo ambedue famiglie che erogano corrente dall'ingresso quando quest'ultimo si trova allo stato basso. uttavia, se nel pilotaggio da L a DL non vi e' alcun problema, quando invece un elemento DL pilota un L il fan-out massimo e' 8 per le porte con resistenza di carico di kohm, 4 per quelle la cui resistenza di carico e' 6 kohm...) Interfaccia L - ECL. L'uso contemporaneo di elementi L e ECL nello stesso circuito offre al progettista un notevole grado di liberta' ed apre l'intero spettro delle frequenze VHF ai vantaggi delle misure digitali e dell'elaborazione del segnale con tecniche di commutazione % volt - L 8 ECL 75 figura.. Il metodo piu' diretto per interfacciare tali elementi, utilizzabile tuttavia solo per piccoli sistemi, utilizza un'unica alimentazione di 5 o 5. volt, come illustrato in fig.... E' necessario in tal caso disaccoppiare molto accuratamente l'alimentazione, considerato che la L e' una famiglia che autogenera rumore e che la ECL ha un margine di rumore piuttosto piccolo. ale disaccoppiamento puo' essere ottenuto utilizzando un condensatore da nanofarad per ogni contenitore ECL. Nel caso tuttavia in cui il sistema comprenda piu' di una diecina di chip e' opportuno mantenere separate le alimentazioni per i L e per gli ECL, come mostrato in fig.... 5

366 Le famiglie logiche Capitolo + 5 V L figura.. ECL - 5. V In entrambi i casi il resistore posto in serie all'uscita L limita l'escursione logica, sposta il livello del segnale ed assicura un'impedenza sufficientemente bassa per garantire una corretta trasmissione del segnale ed una buona immunita' rispetto al rumore ambiente. Nel caso in cui la porta ECL sia gia' terminata a massa tramite una resistenza da kohm, come talvolta avviene, il resistore da 75 ohm va aumentato a ohm V ECL L k figura.. Piu' complesso e' invece l'adattamento da segnale ECL a L. E' necessario in tal caso usare un amplificatore di tensione in modo da portare l'escursione logica delle porte ECL (tipicamente di.8 volt) ad almeno.5 volt. In fig... e' illustrato un circuito di interfaccia a singola alimentazione, mentre in fig...4 si ha un circuito che usa alimentazioni separate per la parte ECL e per quella L. L 5 V ECL k - 5. V figura..4 5

367 Le famiglie logiche Capitolo..) Interfacciamento della famiglia CMOS con altre logiche. Nella pratica molto frequentemente si rende necessario interfacciare elementi CMOS con altri elementi logici. I problemi da affrontare sono in tal caso, molto sinteticamente, i seguenti: ) L'uscita di un elemento CMOS deve soddisfare le richieste di tensione e di corrente di ingresso dell'elemento pilotato. ) ) Nel caso in cui la connessione da realizzare proceda da un qualsiasi elemento logico verso un elemento CMOS, l'uscita dell'elemento da interfacciare deve avere un'escursione del segnale logico la piu' vicina possibile ai due estremi della tensione di alimentazione degli elementi CMOS. Le specifiche pertanto sono relativamente semplici e non pongono di solito grossi problemi circuitali. Il caso piu' comune e' l'interfacciamento L-CMOS e CMOS-L. Nel primo caso non vi e' alcun particolare accorgimento da prendere, salvo l'aggiunta di un eventuale resistore di "pull - up" in uscita dell'elemento L. Nel secondo caso invece non e' in pratica possibile pilotare direttamente una porta L standard in quanto un'uscita CMOS, anche se L compatibile, e' bene che non assorba o eroghi correnti superiori al milliampere. Il problema puo' venir risolto o ricorrendo ad un apposito buffer (49, 4, 74C9 ecc.) o utilizzando come elemento di interfaccia una porta L low power, che ha correnti notevolmente inferiori alla standard, pur essendo con essa compatibile, oppure usando una porta CMOS NOR con due o meglio ancora quattro ingressi connessi in parallelo...4) Pilotaggio di piccoli carichi. Per collegare ad una porta componenti diversi di quelli della famiglia e' necessario tener conto dei limiti di tensione e corrente che le varie porte hanno sia per quanto riguarda l'ingresso che per quanto riguarda l'uscita. La fig...5 illustra le due possibilità che si hanno per alimentare un carico direttamente dalla porta. Nel primo caso (a) il carico riceve potenza quando l'uscita della porta e' bassa e la massima corrente che puo' essere controllata e' specificata dal costruttore, allo stesso modo in cui e' specificata la massima tensione applicabile all'uscita della porta. R L I sink Vo I load R L Vo (a) figura..5 (b) Nel secondo caso (b) il carico viene alimentato quando la porta si trova nello stato alto. Il tipo di connessione assume particolare importanza quando, come nel caso delle porte L, l'impedenza di uscita e' notevolmente diversa nei due stati. Nel caso (a) infatti, purche' 5

368 Le famiglie logiche Capitolo I sink non superi i 6 ma, la porta lavora in condizioni nominali, mentre nel caso (b) ci si trova in condizioni, che nell'ambito di una rete formata solo da elementi logici della famiglia, non si verificano mai. Poiche' l'impedenza di uscita nello stato alto (5 ohm) e' considerevolmente maggiore di quella allo stato basso ( ohm), la capacita' di pilotaggio risulta ridotta. In pratica il valore minimo della resistenza di carico si aggira sui 8 ohm e con tale valore di carico l'uscita allo stato alto risulta di poco piu' di volt. Un tipico carico che puo' essere pilotato direttamente dalla porta L e' il LED, secondo lo schema della fig...6. I L V cc= 5 V R c V = volt L I < 6 ma L VL R = ( V )/I c L L figura..6 Lo stesso carico evidentemente non puo' essere pilotato da una porta LPL o CMOS se non con l'interposizione di un transistore...5) Interconnessione con transistori. Spesso e' necessario controllare tensioni o correnti piu' elevate di quelle sopportabili da un circuito integrato; in queste condizioni si puo' usare un transistore di caratteristiche adeguate. Con l'impiego di un transistore inoltre e' possibile ottenere livelli logici per i quali non sia disponibile un'interfaccia standard. Nel seguito saranno illustrati i problemi di interfacciamento di porte L con transistori; tuttavia i concetti esposti valgono qualsiasi sia il tipo di interfacciamento che si vuole realizzare. Il circuito di fig...7 e' il piu' efficiente, ma ha lo svantaggio di richiedere una porta con uscita a collettore aperto. V cc 6 I b I b > ma figura..7 Gli altri due, riportati in fig...8, che si usano con stadi di uscita a "totem - pole", limitano la corrente di uscita della porta con un resistore in serie alla base. 54

369 Le famiglie logiche Capitolo V cc 56 6 k I > ma b I > 5 ma b figura..8 Il circuito della fig...8 (b) aumenta la capacita' di pilotaggio della porta pilota allo stato alto con un resistore esterno di "pull-up". La corrente che scorre su tale resistore pilota la base del transistore quando la porta si trova allo stato alto, mentre e' assorbita dal transistore inferiore del "totem-pole" nello stato basso; in tal modo si sfrutta la caratteristica della porta L di essere in grado di assorbire una corrente maggiore di quella che e' in grado di erogare. Il resistore connesso poi tra base e massa rende piu' veloce l'interdizione del transistore e migliora la stabilita' termica del circuito. In tutti i tre circuiti appena presentati il carico e' connesso tra collettore del transistore e un' opportuna tensione di alimentazione V L il cui valore, assolutamente indipendente dalla tensione V CC di alimentazione della logica, e' determinato dal carico pilotato; il transistore poi andra' scelto sulla base della tensione V L e della corrente richiesta. E' bene che il transistore lavori in condizioni di saturazione abbastanza spinta per garantire una buona stabilita' dei punti di lavoro e una bassa dissipazione di potenza. Qualora con un unico stadio non si riuscisse a soddisfare le specifiche di progetto sara' necessario ricorrere a circuiti con piu' stadi. Infine in fig...9 e' presentato un circuito per il pilotaggio di carichi senza l'inversione di fase introdotta dai circuiti precedenti. E' opportuno far notare che la realizzazione circuitale illustrata e' utile per pilotare carichi a bassa corrente, come ad esempio displays a scarica nei gas, poiche' la corrente che scorre nel carico e' assorbita totalmente dalla porta e non puo' quindi superare i 6 ma. V L Vcc = 5 V R L figura..9 Quando si debba invece pilotare un ingresso L con sorgenti esterne, rispettando la bassa impedenza e le specifiche di tensione dell'ingresso stesso, non sempre il problema e' di 55

370 Le famiglie logiche Capitolo facile soluzione. In fig... sono presentati due circuiti che permettono di interfacciare una sorgente esterna con un ingresso L. k k Vcc L k 5.6 k 5.6 k k L (a) figura.. (b) Ambedue i circuiti possono sopportare segnali di ingresso nel campo compreso tra e - volt, mentre cambiano di stato con segnali dell'ordine del volt. Il diodo posto tra base e massa protegge la giunzione base emettitore da tensioni negative che potrebbero provocarne il breakdown. Il circuito di fig... (b) possiede inoltre un filtro RC di ingresso che sopprime il rumore ad alta frequenza e una reazione positiva che impedisce alla porta di rimanere nella fascia di incertezza in presenza di segnali di ingresso lentamente variabili...6) Spostamento dei livelli di tensione. In fig... e' presentato un circuito che permette di spostare il livello di tensione del segnale da L a valori negativi. Vcc R R = R L R R V o - V figura.. Il partitore R, R fissa a V CC / volt il potenziale dell'emettitore del transistore. Pertanto tale transistore e' interdetto quando la porta si trova allo stato alto, su R non circola corrente e la tensione di uscita si porta a -V. 56

371 Le famiglie logiche Capitolo Quando invece l'uscita della porta va allo stato basso il transistore passa in conduzione e, tenendo presente che R e' uguale a R, la tensione di uscita assume il valore: V Vcc.R = R +.R V.R R +.R quando si trascuri la caduta ai capi del transistore...7) Interfacce per il pilotaggio di linee. I circuiti per il pilotaggio di linee sono circuiti di interfaccia che convertono i segnali di uscita di una porta, spesso di tipo L, in segnali adatti a linee di trasmissione (line drivers) oppure riconvertono questi ultimi nuovamente in segnali adatti alla logica (line receivers). L'esigenza di disporre di tali circuiti nasce dal fatto che, come si e' visto in precedenza, i dispositivi logici appartenenti alle varie famiglie non sono di solito adatti a pilotare direttamente le linee. E' opportuno forse richiamare alcune delle conclusioni raggiunte. Le connessioni tra gli elementi circuitali devono essere quanto piu' possibile corte e non devono procedere affiancate o addirittura attorcigliate assieme; le connessioni devono venir eseguite preferibilmente da punto a punto e su un piano di massa che riduce gli accoppiamenti tra i conduttori. Le connessioni unifilari non devono superare una certa lunghezza massima, che va da pochi centimetri per gli elementi ECL alla sessantina di centimetri per quelli L standard. Lunghezze superiori richiedono l'uso di coppia ritorta o di cavo coassiale. Il cavo coassiale da' maggiori garanzie contro l'accoppiamento tra segnali, ma presenta l'inconveniente di avere un'impedenza caratteristica (normalmente 5 ohm) troppo bassa per essere adeguatamente pilotato da un elemento logico. Resistori di "pull-up" al lato ricevitore migliorano la situazione per quanto riguarda gli effetti nocivi delle riflessioni, se il loro valore e' pari all'impedenza caratteristica della linea. Disgraziatamente un resistore di valore pari all'impedenza caratteristica costituisce in molti casi un carico eccessivo per una porta standard, che deve poter erogare o assorbire nei due stati la corrente che vi circola. In particolare per le porte L la soluzione non e' praticabile e il pensare di connettere una resistenza di terminazione tra uscita e massa anziche' tra uscita e alimentazione peggiora ulteriormente la situazione. In tal caso la porta dovrebbe fornire una corrente relativamente elevata allo stato alto, anziche' assorbirla allo stato basso. I line drivers e i line receivers permettono di superare tali difficolta', sia per l'elevato fan-out posseduto, sia perche' spesso possiedono uscite bilanciate e ingressi differenziali. In tal caso si possono ottenere elevate reiezioni di modo comune pilotando linee simmetriche e adattando perfettamente la linea con carichi pari alla sua impedenza caratteristica...8) Forme e modalita' operative dei circuiti di trasmissione dati. I circuiti di trasmissione dati si presentano in due forme principali; circuiti con trasmissione su linea sbilanciata e circuiti che utilizzano la trasmissione differenziale su linea bilanciata. La trasmissione su linea sbilanciata utilizza una linea di segnale e una linea comune di terra per il ritorno del segnale stesso (fig...). Il suo piu' evidente vantaggio risiede nella semplicita' in quanto e' necessario un unico filo per circuito. Gli svantaggi sono determinati dalla sensibilita' al rumore V N e agli spostamenti del potenziale di terra V GS. I rumori indotti sono causati da accoppiamenti magnetici o capacitivi con linee di segnale adiacenti o con altri 57

372 Le famiglie logiche Capitolo generatori di rumore. Gli spostamenti del potenziale di massa sono dovuti alle cadute nel circuito di massa per effetto della circolazione di corrente, essendo tale circuito dotato di resistenza e induttanza finite anziche' nulle. rasmettitore Ricevitore Ingresso V RS linea di segnale V N RIN Uscita Vo ritorno comune di terra V GS V R figura.. I due disturbi V N e V GS si sommano al segnale prodotto dal trasmettitore e il ricevitore non e' in alcun modo in grado di discriminare tra segnale e disturbo. L'immunita' al rumore di un circuito sbilanciato puo' tuttavia essere aumentata adottando le seguenti precauzioni: ) Aumentare la tensione di uscita del trasmettitore. ale accorgimento ha tuttavia lo svantaggio di far salire la dissipazione di potenza. ) Usare cavi schermati e ridurre la resistenza del circuito di massa. ale precauzione tuttavia, pur riducendo il livello del disturbo, fa lievitare i costi. ) Aggiungere un'isteresi al lato ricevitore. Si ottiene in tal modo un aumento del margine di rumore in continua, ma si introduce una distorsione temporale sul segnale. trasmettitore differenziale ricevitore differenziale ingresso V V N N V diff uscita V GS figura.. Un circuito differenziale bilanciato, illustrato in fig..., usa per ogni circuito una coppia di fili intrecciati, un ricevitore e un trasmettitore differenziali. La linea bifilare ritorta e' in grado di eliminare le correnti indotte per accoppiamento magnetico. I disturbi che invece si generano per accoppiamento capacitivo hanno lo stesso effetto per ambedue i conduttori e costituiscono quindi per il ricevitore un segnale di modo comune. Anche lo spostamento del potenziale di terra puo' essere considerato un segnale di modo comune. Se il ricevitore, come normalmente avviene, ha un'elevata reiezione di modo comune, esso e' in grado di separare il 58

373 Le famiglie logiche Capitolo segnale dal disturbo, permettendo una corretta trasmissione delle informazioni anche in ambienti che non consentono l'utilizzo di linee sbilanciate. uscita d trasmettitore R R trasmettitore R o uscita c R R ricevitore half duplex ricevitore uscita a b c d uscita a uscita b bus di distribuzione R R ingresso a b c d abilitazione bus dati figura..4 Vi sono poi due modalita' operative per i circuiti di trasmissione dati, simplex e multiplex. Il circuito di tipo simplex permette il flusso dei dati in una sola direzione. Un circuito di tipo multiplex permette un flusso non contemporaneo di dati nelle due direzioni (halfduplex), contemporaneo (full-duplex) o multidirezionale (bus o party line). In generale un circuito multiplex ha due o piu' coppie di trasmettitori e ricevitori sulla stessa linea, con il vincolo che solo un trasmettitore puo' essere attivo a un determinato istante. Alcune soluzioni possibili per la trasmissione multiplex sono riportate in fig...4. I sistemi simplex sono piu' semplici da realizzare e minimizzano i problemi di temporizzazione, mentre quelli multiplex sfruttano meglio il mezzo trasmissivo, ma sono piu' difficili da progettare. Quando si opera in modo multiplex e' necessario tener presenti i seguenti problemi, in particolare quando si abbia a che fare con una struttura a bus. ) E' necessario progettare un protocollo o comunque una metodologia che consenta di stabilire il collegamento tra le unita' che devono colloquiare e risolvere i conflitti di accesso al canale trasmissivo. La sequenza di protocollo coinvolge normalmente i seguenti passi: - La porta trasmittente deve segnalare la sua intenzione di utilizzare il bus (normalmente tale segnalazione viene effettuata con una richiesta di interruzione). - Il controllore del bus deve servire l'interruzione segnalando l'avvenuta accettazione della richiesta e dando l'autorizzazione a procedere. - La porta assume a questo punto il controllo del bus, inviando i dati, preceduti da un codice che specifica a chi tali dati siano diretti. - La porta o le porte riceventi devono accettare i dati, dando segnalazione all'indietro dell'avvenuta ricezione. 59

374 Le famiglie logiche Capitolo - La porta trasmittente deve a questo punto prendere atto dell'avvenuta ricezione rilasciando il controllo del bus in modo che altre porte possano accedervi. La modalita' di gestione del bus puo' essere ad interrogazione o asincrona. Nel primo caso un controllore centrale del bus interroga in sequenza le varie porte. Se non vi e' alcun dato da trasmettere la porta interrogata lo segnala e il controllore passa alla porta successiva. In caso contrario il controllo viene ceduto alla porta e alla fine della trasmissione viene riassunto dal controllore. In modalita' asincrona ciascuna porta che voglia trasmettere dei dati segnala tale fatto al controllore e la sua richiesta viene soddisfatta secondo un'opportuno criterio di priorita', ottenuto con mezzi hardware o software. Un criterio, certamente non il piu' efficiente, potrebbe essere quello di dare priorita' piu' elevata alle porte che si trovano piu' vicine al controllore, come avviene in molti minicomputer. ) E' necessario considerare gli effetti che si generano quando viene tolta l'alimentazione a qualche unita' collegata. I trasmettitori e i ricevitori integrati contengono, come ogni altro circuito integrato, diodi parassiti, che nelle normali operazioni sono polarizzati inversamente. A meno che non siano state utilizzate particolari tecniche di progetto, quando viene a mancare l'alimentazione questi diodi si polarizzano direttamente e possono essere causa di malfunzionamento o di danni al circuito. ) Le temporizzazioni del protocollo devono tenere in considerazione i diversi tempi di propagazione tra le porte del sistema. 4) Ambedue gli estremi della linea devono essere opportunamente terminati per evitare pericolose riflessioni. 5) Le connessioni sulla linea devono essere di lunghezza minima. Per avere le minime perturbazioni e' opportuno che lo spezzone di collegamento abbia un tempo di propagazione inferiore a /8 del tempo di salita e di discesa del segnale presente al punto di connessione. 6) Se vengono usati trasmettitori con uscita "-state" e' necessario poter distinguere tra un dispositivo che e' in trasmissione e un dispositivo che e' in condizioni di disattivazione. Nei sistemi a due stati il problema non si pone in quanto uno logico (codificato normalmente con un livello di tensione alto) indica sia l'effettiva trasmissione di uno zero logico che lo stato di disattivazione della porta, mentre un logico (livello di tensione basso) indica la trasmissione di un valore e null'altro. 7) E' necessario tenere in considerazione anche il formato dei dati. Le operazioni in parallelo sono certamente piu' rapide, ma senza dubbio piu' costose, in quanto richiedono una linea di trasmissione e la relativa interfaccia per ciascun bit del dato. D'altra parte la trasmissione seriale puo' essere complicata dalla necessita' di predisporre ai due estremi del collegamento convertitori parallelo/seriali e seriali/paralleli. E' infine opportuno prendere in considerazione alcuni problemi collegati al modo operativo a interrogazione. E' indispensabile valutare il tempo necessario per accedere e ricevere la conferma da una porta in relazione con il volume dei dati normalmente trasmessi dalle porte stesse e in relazione al numero delle porte. Se queste ultime sono in gran numero, 6

375 Le famiglie logiche Capitolo una cospicua aliquota del tempo sara' dedicata alle operazioni di interrogazione e solo una piccola frazione rimarra' disponibile allo scambio di informazioni. Se in piu' vi e' anche un traffico relativamente alto per ciascuna porta, tale fatto puo' dar luogo ad un eccessivo tempo di attesa tra l'istante in cui il dato e' pronto a essere trasmesso e l'istante di effettiva trasmissione e questa condizione e' assolutamente inaccettabile in sistemi in tempo reale. Il problema puo' venir risolto spezzando un bus di grandi dimensioni in diversi bus "satelliti" ciascuno con il proprio controllore a interrogazione e istituendo un protocollo in relazione allo scambio di informazioni con il bus centrale...9) Effetto delle linee nelle comunicazioni a lunga distanza. Sotto diversi punti di vista le linee di trasmissione si comportano nei confronti del segnale come un filtro passa basso con perdite. Un fronte ripido del segnale applicato all'ingresso della linea si arrotonda e assume un andamento esponenziale via via che si propaga lungo la linea stessa; in aggiunta le perdite che si hanno lungo la linea danno luogo a una riduzione dell'ampiezza del segnale. Questi due effetti pongono un limite alla velocita' con cui i dati possono essere trasmessi, in funzione del tipo e della lunghezza della linea. uttavia l'effetto maggiormente limitante e' la deformazione del segnale; se infatti un nuovo dato viene inviato in linea prima che il transitorio relativo al bit immediatamente precedente sia esaurito, possono verificarsi spiacevoli inconvenienti, quali uscite dipendenti dal pattern ricevuto, "jitter" o addirittura perdita di qualche impulso. Questo fenomeno viene chiamato interferenza intersimbolo ed e' dovuto al fatto che, quando il ricevitore e' un dispositivo a soglia, come normalmente avviene, il precedente bit di dati causa uno spostamento temporale del bit di dati attuale. L'interferenza intersimbolo si genera ogni volta che la durata di un bit e' inferiore al tempo di salita o discesa all'estremita' ricevente. La fig...5 illustra tale effetto. ingresso del trasmettitore tensione alla fine della linea soglia uscita del ricevitore figura..5 Un segnale di clock non soffre di interferenza intersimbolo essendo un pattern altamente simmetrico e quindi predicibile. Un pattern di dati casuale invece ne puo' soffrire. La durata minima di bit si ha quando un singolo bit e' preceduto e seguito da una lunga stringa di bit di polarita' opposta. Per misurare l'ammontare dell'interferenza intersimbolo e l'entita' del "jitter" si devono usare delle lunghe sequenze casuali o pseudocasuali. Un circuito utile a visualizzare l'interferenza intersimbolo e' riportato in fig

376 Le famiglie logiche Capitolo PE P P P P J 4 bit CP shift register Q 9 K MR Q Q Q Q / 964 line driver clock D D D 5 CP / 98 8 bit Q 7 5 all'oscilloscopio shift register MR linea sotto test V cc k D D D 5 Q / 98 7 CP 8 bit shift register MR inizializzazione figura..6 Poiche' l'oscilloscopio con cui viene osservata la forma d'onda all'estremita' della linea viene triggerato ogni volta che un nuovo dato viene generato dal circuito pseudocasuale, sullo schermo si vedra' la sovrapposizione di lunghe sequenze di uni e zeri e cioe' la transizione uno/zero o zero/uno seguite da diversi pattern di dati. Il circuito illustrato e' in grado di generare sequenze pseudocasuali con ripetizione pari a -; una sequenza di tale tipo e' sufficientemente lunga per permettere la visualizzazione dell'interferenza intersimbolo causata dai pattern precedenti fino a una profondita' di bit. In fig...7 e' mostrato come la sovrapposizione delle forma d'onda misurate all'estremita' ricevente della linea origini una visualizzazione stabile sullo schermo. "" isolato ""» ""» "" "" isolato ""» ""» "" ""» "" sovrapposizione di segnali ""» "" bit bit figura..7 La figura prodotta prende il nome di "pattern binario a occhio" per la sua somiglianza con la sagoma stilizzata di un occhio. 6

377 Le famiglie logiche Capitolo ale pattern e' un mezzo molto semplice per misurare la qualita' dei segnali. La dispersione del pattern in corrispondenza al livello di soglia del ricevitore permette di misurare il "time jitter" percentuale dovuto all'interferenza intersimbolo. Con riferimento alla fig...8 il jitter sara' dato percentualmente da: Jitter percentuale = t UI dove con UI si e' indicato l'intervallo unitario di bit. Se poi il livello di soglia e' spostato rispetto al suo valore ottimo, situato a meta' dell'escursione di tensione prodotta dal trasmettitore, allora il dato sara' affetto oltre che dalla distorsione intersimbolo, anche da un'ulteriore distorsione di tempo. ui Livello di soglia t figura..8 Lo spostamento del livello di soglia verso il livello fara' si' che gli uni ricevuti saranno relativamente piu' brevi degli zeri. Analogamente uno spostamento verso lo zero accorcera' gli zeri ricevuti. ale effetto e' chiamato distorsione di polarizzazione. L'apertura del pattern binario a occhio fornisce direttamente il margine di rumore del sistema. Quando l'occhio e' completamente chiuso allora per quella lunghezza di linea e alla velocita' di trasmissione di prova non risulta possibile una trasmissione priva di errori senza ricorrere a tecniche di equalizzazione. Usando il pattern ad occhio per indicare la qualita' del segnale, si puo' costruire per ciascuna particolare linea un grafico, da cui si puo' ricavare il jitter percentuale in funzione della lunghezza della linea e della velocita' di trasmissione, una volta che sia stata assegnata la codifica impulsiva utilizzata (NRZ, RZ polare, modulazione digitale binaria di fase, ecc.). In fig...9 e' riportato un esempio per la codifica NRZ, rappresentativo delle prestazioni ottenibili con la coppia ritorta. Il grafico mostra il "caso peggiore" cioe' il massimo jitter che ci si puo' aspettare con una data lunghezza di linea e un'assegnata velocita' di trasmissione, ma si puo' ritenere valido solo quando siano soddisfatte le seguenti condizioni: ) I livelli dell'uno e dello zero del trasmettitore sono stabili. ) La soglia del ricevitore e' equidistante da tali livelli. 6

Antonio D'Amore I CIRCUITI DI COMMUTAZIONE

Antonio D'Amore I CIRCUITI DI COMMUTAZIONE Antonio D'Amore I CIRCUITI DI COMMUTAZIONE INDICE CAPITOLO I - SISTEMI DI NUMERAZIONE E CODICI 1.1) Sistema di numerazione decimale. 1 1.2) Sistemi di numerazione a base qualsiasi. 1 1.3) Conversione tra

Dettagli

Sistemi di numerazione e codici. Capitolo 1

Sistemi di numerazione e codici. Capitolo 1 Sistemi di numerazione e codici Capitolo 1 Generalità Sistema di numerazione n Insieme di simboli (cifre) e regole stringa di cifre valore numerico codici posizionali (il valore dipende dalla posizione

Dettagli

Codifica binaria. Rappresentazioni medianti basi diverse

Codifica binaria. Rappresentazioni medianti basi diverse Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla

Dettagli

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1. PORTE LOGICHE Premessa Le principali parti elettroniche dei computer sono costituite da circuiti digitali che, come è noto, elaborano segnali logici basati sullo 0 e sull 1. I mattoni fondamentali dei

Dettagli

Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche

Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche Ing. Gestionale e delle Telecomunicazioni A.A. 27/8 Gabriele Cecchetti Algebra delle reti logiche Sommario: Segnali digitali vs. segnali analogici

Dettagli

I Indice. Prefazione. Capitolo 1 Introduzione 1

I Indice. Prefazione. Capitolo 1 Introduzione 1 I Indice Prefazione xi Capitolo 1 Introduzione 1 Capitolo 2 Algebra di Boole e di commutazione 7 2.1 Algebra di Boole.......................... 7 2.1.1 Proprietà dell algebra.................... 9 2.2

Dettagli

Il livello logico digitale

Il livello logico digitale Il livello logico digitale prima parte Introduzione Circuiti combinatori (o reti combinatorie) Il valore dell uscita in un determinato istante dipende unicamente dal valore degli ingressi in quello stesso

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole e Circuiti Logici Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 Algebra di Boole e Circuiti Logici L Algebra

Dettagli

1-Rappresentazione dell informazione

1-Rappresentazione dell informazione 1-Rappresentazione dell informazione Informazioni: testi, numeri, immagini, suoni, etc.; Come viene rappresentata l informazione in un calcolatore? Uso di tecnologia digitale: tutto ciò che viene rappresentato

Dettagli

Insiemi numerici. Teoria in sintesi NUMERI NATURALI

Insiemi numerici. Teoria in sintesi NUMERI NATURALI Insiemi numerici Teoria in sintesi NUMERI NATURALI Una delle prime attività matematiche che viene esercitata è il contare gli elementi di un dato insieme. I numeri con cui si conta 0,,,. sono i numeri

Dettagli

La Rappresentazione dell Informazione

La Rappresentazione dell Informazione La Rappresentazione dell Informazione Maurizio Palesi Sommario In questo documento sarà trattato il modo in cui, in un calcolatore, vengono rappresentati i vari generi di informazione (testi, numeri interi,

Dettagli

Richiami di Algebra di Commutazione

Richiami di Algebra di Commutazione LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 6-7 Richiami di Algebra di Commutazione In questa

Dettagli

Reti logiche: introduzione

Reti logiche: introduzione Corso di Calcolatori Elettronici I Reti logiche: introduzione ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Circuiti e porte logiche Esempio di rete di commutazione: Circuiti e porte

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

Lezione 2. La conoscenza del mondo

Lezione 2. La conoscenza del mondo Lezione 2 Analogico/Digitale Il sistema binario L aritmetica binaria La conoscenza del mondo Per poter parlare (ed elaborare) degli oggetti (nella visione scientifica) si deve poter assegnare a questi

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore Corso di Calcolatori Elettronici I A.A. 2012-2013 Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Aritmetica dei Calcolatori Elettronici

Aritmetica dei Calcolatori Elettronici Aritmetica dei Calcolatori Elettronici Prof. Orazio Mirabella L informazione Analogica Segnale analogico: variabile continua assume un numero infinito di valori entro l intervallo di variazione intervallo

Dettagli

I circuiti digitali: dalle funzioni logiche ai circuiti

I circuiti digitali: dalle funzioni logiche ai circuiti Architettura dei calcolatori e delle Reti Lezione 4 I circuiti digitali: dalle funzioni logiche ai circuiti Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

associate ai corrispondenti valori assunti dall uscita.

associate ai corrispondenti valori assunti dall uscita. 1. Definizione di variabile logica. Una Variabile Logica è una variabile che può assumere solo due valori: 1 True (vero, identificato con 1) False (falso, identificato con 0) Le variabili logiche si prestano

Dettagli

Indice. Prefazione. sommario.pdf 1 05/12/

Indice. Prefazione. sommario.pdf 1 05/12/ Prefazione xi 1 Introduzione 1 1.1 Evoluzione della progettazione dei sistemi digitali 1 1.2 Flusso di progettazione dei sistemi digitali 2 1.3 Obiettivi del libro 6 1.4 Struttura ragionata del libro 7

Dettagli

Moltiplicazione. Divisione. Multipli e divisori

Moltiplicazione. Divisione. Multipli e divisori Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini

Dettagli

Funzioni booleane. Vitoantonio Bevilacqua.

Funzioni booleane. Vitoantonio Bevilacqua. Funzioni booleane Vitoantonio Bevilacqua bevilacqua@poliba.it Sommario. Il presente paragrafo si riferisce alle lezioni del corso di Fondamenti di Informatica e Laboratorio di Informatica dei giorni 9

Dettagli

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA Introduzione George Boole (1815-1864) nel 1854 elaborò una algebra basata su predicati logici. Valori

Dettagli

Architetture degli Elaboratori I II Compito di Esonero (A) - 16/1/1997

Architetture degli Elaboratori I II Compito di Esonero (A) - 16/1/1997 1 II Compito di Esonero (A) - 16/1/1997 Non è ammessa la consultazione di nessun testo, nè l utilizzo di nessun tipo di calcolatrice. Ogni esercizio riporta, fra parentesi, il suo valore in trentesimi

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Rappresentazione dell Informazione Barbara Masucci Cosa studiamo oggi Ø Un moderno elaboratore è un sistema elettronico digitale programmabile Ø Il suo comportamento è flessibile

Dettagli

Algebra di Boole X Y Z V. Algebra di Boole

Algebra di Boole X Y Z V. Algebra di Boole L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole che

Dettagli

Algebra di Commutazione

Algebra di Commutazione Algebra di Commutazione Maurizio Palesi Maurizio Palesi 1 Algebra Booleana - Introduzione Per descrivere i dispositivi digitali è necessario avere: Un modello che permette di rappresentare insiemi di numeri

Dettagli

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:

Dettagli

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Sistemi di Numerazione Binaria Lo stesso numero è rappresentato da

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi di Numerazione Francesco Fontanella I sistemi di numerazione Sono stati inventati i SISTEMI DI NUMERAZIONE: Forme di rappresentazione dei numeri

Dettagli

Reti logiche: analisi, sintesi e minimizzazione Esercitazione. Venerdì 9 ottobre 2015

Reti logiche: analisi, sintesi e minimizzazione Esercitazione. Venerdì 9 ottobre 2015 Reti logiche: analisi, sintesi e minimizzazione Esercitazione Venerdì 9 ottobre 05 Punto della situazione Stiamo studiando le reti logiche costruite a partire dalle porte logiche AND, OR, NOT per progettare

Dettagli

Introduzione e Nozioni di Base. Prof. Thomas Casali

Introduzione e Nozioni di Base. Prof. Thomas Casali Università degli studi di Bologna Facoltà di Economia Sede di Forlì Introduzione e Nozioni di Base Corso di Laurea in Economia di Internet Prof. Thomas Casali thomas@casali.biz La rappresentazione digitale

Dettagli

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi

Dettagli

Rappresentazione di numeri interi

Rappresentazione di numeri interi Corso di Calcolatori Elettronici I Esercizi Rappresentazione di numeri interi ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Interi senza segno Qual è l intervallo di rappresentazione

Dettagli

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

La codifica. dell informazione

La codifica. dell informazione La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

Algebra di Boole e porte logiche

Algebra di Boole e porte logiche Algebra di Boole e porte logiche Dott.ssa Isabella D'Alba Corso PENTEST MIND PROJECT 2016 Algebra di Boole e porte logiche (I parte) Algebra di Boole I Sistemi di Numerazione (Posizionali, Non posizionali)

Dettagli

Rappresentazione e Codifica dell Informazione

Rappresentazione e Codifica dell Informazione Rappresentazione e Codifica dell Informazione Capitolo 1 Chianese, Moscato, Picariello, Alla scoperta dei fondamenti dell informatica un viaggio nel mondo dei BIT, Liguori editore. Sistema di numerazione

Dettagli

Rappresentazione dei dati in memoria

Rappresentazione dei dati in memoria Rappresentazione dei dati in memoria La memoria Una memoria deve essere un insieme di oggetti a più stati. Questi oggetti devono essere tali che: le dimensioni siano limitate il tempo necessario per registrare

Dettagli

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer

Dettagli

Corso di Calcolatori Elettronici I A.A Algebra di Boole Lezione 4

Corso di Calcolatori Elettronici I A.A Algebra di Boole Lezione 4 Corso di Calcolatori Elettronici I A.A. 2010-2011 Algebra di Boole Lezione 4 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Segnali in circuiti elettronici digitali da: G. Bucci. Calcolatori

Dettagli

Abilità Informatiche e Telematiche

Abilità Informatiche e Telematiche Abilità Informatiche e Telematiche (Laurea Triennale + Laurea Magistrale) Marco Pedicini mailto:marco.pedicini@uniroma3.it Corso di Laurea Magistrale in Informazione, Editoria e Giornalismo, Università

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche

Dettagli

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I Corso di Calcolatori Elettronici I Rappresentazione dei numeri naturali Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2016-2017 Roberto Canonico Corso di Calcolatori Elettronici I

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Problema che coinvolge aspetti filosofici Interessa soprattutto distinguere informazioni diverse Con un solo simbolo è impossibile Pertanto l insieme minimo è costituito

Dettagli

Matematica per le scienze sociali Elementi di base. Francesco Lagona

Matematica per le scienze sociali Elementi di base. Francesco Lagona Matematica per le scienze sociali Elementi di base Francesco Lagona University of Roma Tre F. Lagona (francesco.lagona@uniroma3.it) 1 / 24 Outline 1 Struttura del corso 2 Algebra booleana 3 Algebra degli

Dettagli

SISTEMI DI NUMERAZIONE

SISTEMI DI NUMERAZIONE Rev.20/10/2014 Pag.n. 1 Indice SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI POSIZIONALI NUMERAZIONE BINARIA CONVERSIONE BINARIO-DECIMALE (Metodo del polinomio) CONVERSIONE DECIMALE-BINARIO (Metodo

Dettagli

senza stato una ed una sola

senza stato una ed una sola Reti Combinatorie Un calcolatore è costituito da circuiti digitali (hardware) che provvedono a realizzare fisicamente il calcolo. Tali circuiti digitali possono essere classificati in due classi dette

Dettagli

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale -

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale - Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale - Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin ... Algoritmi,

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica

Dettagli

Calcolatori: Sistemi di Numerazione

Calcolatori: Sistemi di Numerazione Calcolatori: Sistemi di Numerazione Sistemi di Numerazione: introduzione In un Calcolatore, i Dati e le Istruzioni di un Programma sono codificate in forma inaria, ossia in una sequenza finita di e. Un

Dettagli

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

Unità aritmetica e logica

Unità aritmetica e logica Aritmetica del calcolatore Capitolo 9 Unità aritmetica e logica n Esegue le operazioni aritmetiche e logiche n Ogni altra componente nel calcolatore serve questa unità n Gestisce gli interi n Può gestire

Dettagli

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

Dettagli

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b

Dettagli

Lezione 3. I numeri relativi

Lezione 3. I numeri relativi Lezione 3 L artimetcia binaria: i numeri relativi i numeri frazionari I numeri relativi Si possono rappresentare i numeri negativi in due modi con modulo e segno in complemento a 2 1 Modulo e segno Si

Dettagli

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

Per affrontare in modo sistematico lo studio dei sistemi di calcolo, abbiamo bisogno di un formalismo matematico definito su grandezze binarie

Per affrontare in modo sistematico lo studio dei sistemi di calcolo, abbiamo bisogno di un formalismo matematico definito su grandezze binarie Algebra di Boole Algebra di Boole Per affrontare in modo sistematico lo studio dei sistemi di calcolo, abbiamo bisogno di un formalismo matematico definito su grandezze binarie Algebra di Boole Introdotta

Dettagli

Sistemi di numerazione

Sistemi di numerazione Sistemi di numerazione Introduzione Un sistema di numerazione è un sistema utilizzato per esprimere i numeri e possibilmente alcune operazioni che si possono effettuare su di essi. Storicamente i sistemi

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Sistemi di Numerazione Corso Università Numeri e Numerali Il numero cinque 5 V _ Π Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi Posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2 10 0 Sistemi Posizionali

Dettagli

04 Aritmetica del calcolatore

04 Aritmetica del calcolatore Aritmetica del calcolatore Numeri a precisione finita - con un numero finito di cifre - non godono della proprietà di chiusura - le violazioni creano due situazioni distinte: - overflow - underflow Pagina

Dettagli

APPUNTI DI INFORMATICA

APPUNTI DI INFORMATICA APPUNTI DI INFORMATICA Per il biennio di liceo scientifico scienze applicate Sommario Il calcolo binario... 2 Numerazione Decimale... 2 Numerazione Binaria... 2 Conversione Binario -> Decimale... 2 Conversione

Dettagli

Esercitazioni di Reti Logiche

Esercitazioni di Reti Logiche Esercitazioni di Reti Logiche Sintesi di Reti Combinatorie & Complementi sulle Reti Combinatorie Zeynep KIZILTAN Dipartimento di Scienze dell Informazione Universita degli Studi di Bologna Anno Academico

Dettagli

Algebra di Boole Esercizi risolti

Algebra di Boole Esercizi risolti Esercizi risolti 1 Esercizio Verificare mediante i teoremi fondamentali dell algebra di Boole o mediante induzione completa se per l operatore XOR vale la proprietà distributiva: a (b + c) = (a b)+(a c)

Dettagli

Calcolo numerico e programmazione Elementi di logica

Calcolo numerico e programmazione Elementi di logica Calcolo numerico e programmazione Elementi di logica Tullio Facchinetti 23 marzo 2012 10:50 http://robot.unipv.it/toolleeo Algebra booleana (George Boole (1815-1864)) è definita

Dettagli

Sistemi di Numerazione Binaria

Sistemi di Numerazione Binaria Sistemi di Numerazione Binaria BIN.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

Algebra di Boole Algebra di Boole

Algebra di Boole Algebra di Boole 1 L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole

Dettagli

MATEMATICA DI BASE 1

MATEMATICA DI BASE 1 MATEMATICA DI BASE 1 Francesco Oliveri Dipartimento di Matematica, Università di Messina 30 Agosto 2010 MATEMATICA DI BASE MODULO 1 Insiemi Logica Numeri Insiemi Intuitivamente, con il termine insieme

Dettagli

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense. Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Dettagli

1 ELEMENTI DI ALGEBRA BOOLEANA I postulati dell'algebra di Boole Alcuni teoremi I teoremi di De Morgan

1 ELEMENTI DI ALGEBRA BOOLEANA I postulati dell'algebra di Boole Alcuni teoremi I teoremi di De Morgan 1 ELEMENTI DI LGER OOLEN... 1 1.1 I postulati dell'lgebra di oole... 1 1.2 lcuni teoremi... 5 1.3 I teoremi di De Morgan... 6 1.4 Esercizi... 8 1.1 1 ELEMENTI DI LGER OOLEN 1.1 I postulati dell'lgebra

Dettagli

Esercizio 1 (12 punti) Minimizzare il numero di stati dell automa qui rappresentato. Disegnare l automa minimo.

Esercizio 1 (12 punti) Minimizzare il numero di stati dell automa qui rappresentato. Disegnare l automa minimo. Compito A Esercizio (2 punti) Minimizzare il numero di stati dell automa qui rappresentato. Disegnare l automa minimo. S / S 2 / S 3 / S 4 / S 5 / Esercizio 2 (5 punti) Progettare un circuito il cui output

Dettagli

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri

Dettagli

Elettronica Digitale. 1. Sistema binario 2. Rappresentazione di numeri 3. Algebra Booleana 4. Assiomi A. Booleana 5. Porte Logiche OR AND NOT

Elettronica Digitale. 1. Sistema binario 2. Rappresentazione di numeri 3. Algebra Booleana 4. Assiomi A. Booleana 5. Porte Logiche OR AND NOT Elettronica Digitale. Sistema binario 2. Rappresentazione di numeri 3. Algebra Booleana 4. Assiomi A. Booleana 5. Porte Logiche OR AND NOT Paragrafi del Millman Cap. 6 6.- 6.4 M. De Vincenzi AA 9- Sistema

Dettagli

Rapida Nota sulla Rappresentazione dei Caratteri

Rapida Nota sulla Rappresentazione dei Caratteri TECNOLOGIA DIGITALE TECNOLOGIA DIGITALE (segue) CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale Dati ed operazioni vengono codificati tramite sequenze di bit 8 bit

Dettagli

Interi positivi e negativi

Interi positivi e negativi Definizioni: numerali e numeri Un numerale è solo una stringa di cifre Un numerale rappresenta un numero solo se si specifica un sistema di numerazione Lo stesso numerale rappresenta diversi numeri in

Dettagli

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria Anno Accademico 2001/2002 Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria Prof. Riccardo Torlone Università di Roma Tre Numeri e numerali! Numero: entità astratta! Numerale: stringa di

Dettagli

Sistemi di numerazione

Sistemi di numerazione Sistemi di numerazione Sistema di numerazione decimale Sapete già che il problema fondamentale della numerazione consiste nel rappresentare con un limitato numero di segni particolari, detti cifre, tutti

Dettagli

Reti Logiche Combinatorie

Reti Logiche Combinatorie Testo di riferimento: [Congiu] - 2.4 (pagg. 37 57) Reti Logiche Combinatorie 00.b Analisi Minimizzazione booleana Sintesi Rete logica combinatoria: definizione 2 Una rete logica combinatoria èuna rete

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione Aritmetica dei calcolatori Rappresentazione dei numeri naturali e relativi Addizione a propagazione di riporto Addizione

Dettagli

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori

Dettagli

1 ELEMENTI DI ALGEBRA BOOLEANA

1 ELEMENTI DI ALGEBRA BOOLEANA 1.1 1 ELEMENTI DI ALGEBRA BOOLEANA 1.1 I postulati dell'algebra di Boole I circuiti digitali, chiamati anche circuiti logici, trattano segnali di forma quantizzata (assenza o presenza del segnale) in contrapposizione

Dettagli

Fondamenti di Programmazione. Sistemi di rappresentazione

Fondamenti di Programmazione. Sistemi di rappresentazione Fondamenti di Programmazione Sistemi di rappresentazione Numeri e numerali Il numero cinque 5 V _ Π 五 Arabo Romano Maya Greco Cinese Il sistema decimale Sistemi posizionali 1 10 3 + 4 10 2 + 9 10 1 + 2

Dettagli

COMPITI VACANZE ESTIVE 2017 MATEMATICA Scuola Media Montessori Cardano al Campo (VA)

COMPITI VACANZE ESTIVE 2017 MATEMATICA Scuola Media Montessori Cardano al Campo (VA) COMPITI VACANZE ESTIVE 2017 MATEMATICA Scuola Media Montessori Cardano al Campo (VA) Nel presente documento sono elencati gli esercizi da svolgere nel corso delle vacanze estive 2017 da parte degli studenti

Dettagli

Corso di Architettura degli Elaboratori

Corso di Architettura degli Elaboratori Corso di Architettura degli Elaboratori Codifica dell'informazione: Numeri Binari (lucidi originali della Prof.ssa Zacchi e del Prof. Balossino, rivisti dal Prof. Baldoni) 1 Codifica dell'informazione?

Dettagli

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base Cambiamenti di base Tecniche Informatiche di Base TIB 1 Il sistema posizionale decimale L idea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = 100 + 30 + 2 = 1 10 2 + 3 10 1 + 2 10 0 Un numero

Dettagli

I circuiti digitali: dalle funzioni logiche ai circuiti

I circuiti digitali: dalle funzioni logiche ai circuiti rchitettura dei calcolatori e delle Reti Lezione 4 I circuiti digitali: dalle funzioni logiche ai circuiti Proff.. orghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Algebra di Boole Algebra di Boole I circuiti logici sono componenti hardware che manipolano informazione binaria. I circuiti di base sono detti PORTE LOGICHE (logical gate). Allo

Dettagli

ELEMENTI di TEORIA degli INSIEMI

ELEMENTI di TEORIA degli INSIEMI ELEMENTI di TEORI degli INSIEMI & 1. Nozioni fondamentali. ssumeremo come primitivi il concetto di insieme e di elementi di un insieme. Nel seguito gli insiemi saranno indicati con lettere maiuscole (,,C,...)

Dettagli

Decimale, binaria,esadecimale

Decimale, binaria,esadecimale Decimale, binaria,esadecimale Introduzione Tutti i sistemi di numerazione sono posizionali nel senso che le cifre assumono un determinato valore a seconda della posizione occupata all interno del numero

Dettagli

4 STRUTTURE CMOS. 4.1 I componenti CMOS

4 STRUTTURE CMOS. 4.1 I componenti CMOS 4.1 4 STRUTTURE CMOS 4.1 I componenti CMOS Un componente MOS (Metal-Oxide-Silicon) transistor è realizzato sovrapponendo vari strati di materiale conduttore, isolante, semiconduttore su un cristallo di

Dettagli

Sistemi Combinatori & Mappe di Karnaugh

Sistemi Combinatori & Mappe di Karnaugh Sistemi Combinatori & Mappe di Karnaugh AB E=0 F=0 E=1 F=0 00 01 11 10 AB 00 01 11 10 00 1 0 0 0 00 0 0 0 0 01 0 0 0 0 01 0 0 0 0 11 0 0 1 0 11 0 0 1 0 10 0 0 0 1 10 0 0 0 1 AB 00 01 11 10 AB 00 01 11

Dettagli

PROGRAMMA DI ELETTRONICA classe 3B a.s. 2014/15

PROGRAMMA DI ELETTRONICA classe 3B a.s. 2014/15 PROGRAMMA DI ELETTRONICA classe 3B a.s. 2014/15 Caratteristiche elettriche dei materiali Leggi di Ohm Generatori di tensione e di corrente Resistori in serie e in parallelo Partitori di tensione e di corrente

Dettagli

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I Corso di Calcolatori Elettronici I Algebra di Boole: definizione e proprietà Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2016-2017 Roberto Canonico Corso di Calcolatori Elettronici

Dettagli

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Tipi di dati Informatica Facoltà di Medicina Veterinaria La Rappresentazione e la Codifica delle

Dettagli