Fondamenti di elettronica digitale

Slides:



Advertisements
Presentazioni simili
Circuiti di memorizzazione elementari: i Flip Flop
Advertisements

© 2015 Giorgio Porcu - Aggiornamennto 01/12/2015 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Rappresentazione dell’ Informazione Sistemi.
2a + 10b abx2 3a + 1 y 2 a + 1 x + 2y a − Espressioni algebriche
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
I Polinomi Prof.ssa A.Comis.
21/09/2016AUTORE: LUCA ORRU'1 Circuiti digitali. 21/09/2016AUTORE: LUCA ORRU'2 Introduzione Nei calcolatori elettronici l’informazione viene elaborata.
Laboratorio di Architettura Degli Elaboratori1 PSPICE – Circuiti sequenziali.
1 Prof.ssa A.Comis. 2 Introduzione Definizione Classificazione Principi di equivalenza Regole per la risoluzione.
Agile Group – DIEE, Università degli studi di Cagliari Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA.
1 Sistemi di numerazione. 2 Sistemi di numerazione posizionali posizionali Sistemi di numerazione posizionali: base La base del sistema di numerazione.
NUMERI RELATIVI I numeri relativi comprendono i numeri positivi, negativi e lo 0 Esempio: +10, -5, +3, 0, -2 I numeri relativi si possono trovare all’interno.
NUMERI E E CARATTERI IN BINARIO
Unità di apprendimento 1
I Numeri.
= 2x – 3 x Definizione e caratteristiche
Unità di apprendimento 1
Unità di apprendimento 1
I Circuiti Sequenziali ed i Flip/Flop
Definizione di logaritmo
Laboratorio II, modulo Elettronica digitale (cfr.
La rappresentazione delle informazioni
x : variabile indipendente
INFORMATICA DI BASE I FONDAMENTI.
Process synchronization
Logica binaria Moreno Marzolla
x : variabile indipendente
Insiemi di punti: altre caratteristiche
La frazione come numero razionale assoluto
Macchine sequenziali Capitolo 4.
FUNZIONI MATEMATICHE DANIELA MAIOLINO.
JAVA usa una rappresentazione in VIRGOLA MOBILE
Informatica A.A. 2016/17 Prof. Italo Epicoco
I MONOMI.
Domanda 1 A cosa corrisponde in notazione decimale il numero binario positivo senza segno ) 32 2) 48 3) 46 4) 3 5) 36 September 18.
ALU (Arithmetic Logic Unit)
L’addizione ESEMPIO Rappresentazione
Circuiti integrati Costruzione di circuiti (logici e non) su un substrato di silicio. Non solo la parte attiva ma anche le connessioni tra le porte. Incredibile.
Algebra di Boole e sue applicazioni
Rappresentazione dei Numeri
Convertitore A/D e circuito S/H
A/D seconda parte.
Generatore di segnali a dente di sega
INFORMATICA DI BASE I FONDAMENTI.
I RADICALI Definizione di radicali Semplificazione di radicali
Circuiti digitali Architettura © Roberto Bisiani, 2000
Codicfiche Interi Complemento alla base.
Il sistema di numerazione decimale
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
Le espressioni algebriche letterali
Elementi di base per lo studio dei circuiti digitali
Generatore di onde quadre e triangolari
Modulo 6 I decibel.
Corso di Informatica Applicata Introduzione
Dalle potenze ai numeri binari
Concetti base 1.1.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Diagrammi Di Bode Prof. Laura Giarré
Algebra di Boole e Funzioni Binarie
Sistemi Digitali.
Circuiti combinatori Laboratorio di Architetture degli Elaboratori I
Le 4 operazioni.
Esercitazione 8 Laboratorio di Architetture degli Elaboratori I
Le 4 operazioni.
Memorie Laboratorio di Architetture degli Elaboratori I
Reti Combinatorie: sintesi
Le Frazioni Prof.ssa A.Comis.
Algoritmi.
Le Equazioni di 1°grado Prof.ssa A.Comis.
Transcript della presentazione:

Fondamenti di elettronica digitale Modulo 3 Fondamenti di elettronica digitale

Segnale analogico E’ un segnale in cui ogni valore assunto nel tempo dalla grandezza fisica che reca l’informazione è significativo; al variare del valore della grandezza cambia quindi il significato dell’informazione ad essa associata. I sistemi elettronici che operano con tale tipo di segnale sono indicati come sistemi analogici.

Segnale digitale o numerico E’ un segnale in cui è definito un certo numero di campi di valori della grandezza fisica, all’interno dei quali l’informazione associata non cambia significato; se i campi significativi sono solo due (indicati, in genere, come High e Low) il segnale digitale è detto binario. Se il segnale subisce delle variazioni (per esempio a causa di disturbi e.m.) il significato ad esso associato non cambia purchè i valori corrispondenti si mantengano all’interno dei campi definiti come L o H. Tali campi si possono distinguere ponendo una soglia di riconoscimento (in genere a metà dell’escursione L-H). I sistemi elettronici che operano con tale tipo di segnale sono indicati come sistemi digitali.

Le ragioni dell’affermazione della tecnologia digitale Negli ultimi decenni si è assistito ad un rapido e progressivo affermarsi della tecnologia digitale, rispetto a quella analogica, per le seguenti ragioni: i circuiti integrati digitali contengono, su un’unica piastrina di silicio, milioni di componenti elettronici (ingombro, costi e consumi notevolmente ridotti); i segnali digitali sono molto meno sensibili ai disturbi e.m. ed alle distorsioni operate dai circuiti elettronici (principalmente dovute alla non linearità); vi è la possibilità di convertire un segnale analogico in digitale e viceversa (rendendo così possibile elaborare, con tecniche digitali, segnali che all’origine sono analogici).

Sistemi di numerazione Nell’ambito dell’elettronica digitale (e dell’informatica) i sistemi di numerazione maggiormente impiegati sono il binario e l’esadecimale. Sappiamo che nel sistema di numerazione decimale, o a base 10, si utilizzano 10 simboli o cifre (0,1,2,3,4,5,6,7,8,9). Tale sistema, inoltre, è detto posizionale in quanto, dato un numero con più cifre, il valore di ogni cifra dipende dalla posizione che essa ha nel numero. Ad esempio: Il valore numerico di una cifra è quindi pari al valore che essa esprime moltiplicato 10n dove n rappresenta l’ordine della cifra.

Sistema di numerazione binario Nel sistema di numerazione binario, o a base 2, si utilizzano 2 simboli o cifre (0,1). Anche tale sistema è detto posizionale in quanto, dato un numero con più cifre, il valore di ogni cifra dipende dalla posizione che essa ha nel numero. Ad esempio: Il valore numerico di una cifra è quindi pari al valore che essa esprime moltiplicato 2n dove n rappresenta l’ordine della cifra. Una singola cifra binaria è detta bit (acronimo di binary digit). Un raggruppamento di 8 cifre binarie è indicato con il termine byte. Un raggruppamento, invece, di 4 cifre binarie è indicato con il termine nibble. Infine, un raggruppamento di 2n cifre binarie viene indicato word di 2n bit.

Sistema di numerazione esadecimale Nel sistema di numerazione esadecimale, o a base 16, si utilizzano 16 simboli o cifre (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Anche tale sistema è detto posizionale in quanto, dato un numero con più cifre, il valore di ogni cifra dipende dalla posizione che essa ha nel numero. Le prime dieci cifre hanno lo stesso significato assunto nel sistema decimale. Le successive sei assumono il valore: Ad esempio:

Conversioni tra sistema decimale ed un altro sistema di numerazione Per convertire un numero decimale in un numero di un sistema di numerazione in base b si opera nel seguente modo: si divide il numero per b ottenendo un quoziente ed un resto; il resto costituisce la cifra meno significativa del numero in base b; si divide il quoziente appena ottenuto per b; il resto costituisce la penultima cifra significativa; si prosegue in questo modo fino a quando il quoziente non diviene zero. Ad esempio, supponiamo di voler convertire il numero 13 in binario: dividiamo 13 per 2 ed otteniamo 6 col resto di 1; poi dividiamo 6 per 2 ed otteniamo 3 col resto di 0; poi dividiamo 3 per 2 ed otteniamo 1 col resto di 1; infine dividiamo 1 per 2 ed otteniamo 0 col resto di 1. Quindi: 1310=11012

Conversioni da un sistema di numerazione in base b al sistema decimale Per convertire un numero espresso in un numero di un sistema di numerazione in base b nel sistema decimale si opera nel seguente modo: si scrive il numero sotto forma di polinomio associando ad ogni cifra la potenza avente base b determinata dalla sua posizione, si determina quindi la cifra decimale corrispondente e se ne fa la somma. Ad esempio, supponiamo di voler convertire il numero 111010102 in decimale: 111010102=1·27+1·26+1·25+0·24+1·23+0·22+1·21+0·20=128+64+32+8+2=23410

Conversioni tra sistema binario e sistema esadecimale Per convertire un numero espresso in binario in un numero espresso in esadecimale si usa la tabella seguente. Da binario a esadecimale: ad ogni gruppo di quattro cifre binarie si associa la corrispondente cifra esadecimale (se il numero di cifre binarie è inferiore a quattro si aggiungono tanti zeri, a sinistra, quanti ne sono necessari per arrivare a quattro). Da esadecimale a binario: ad ogni cifra esadecimale si fa corrispondere un gruppo di quattro cifre binarie.

Le operazioni aritmetiche nel sistema binario Le regole dell’aritmetica binaria sono identiche a quelle del sistema decimale (entrambi sono sistemi posizionali).

Operazioni in binario: addizione e sottrazione

Operazioni in binario: moltiplicazione e divisione

La codifica dei numeri binari relativi Le modalità di rappresentazione dei numeri relativi sono due: segno e modulo; complemento a due. La seconda codifica è più utilizzata perché semplifica le operazioni di sottrazione. Per non creare ambiguità, per entrambe le rappresentazioni, è indispensabile definire a priori il numero di bit che si intendono utilizzare per la codifica.

La codifica dei numeri binari relativi: segno e modulo In questa codifica il bit più a sinistra rappresenta il segno (0 per il “+” e 1 per il “-”) mentre i restanti bit codificano in binario il modulo, cioè il valore assoluto del numero. Vediamo alcuni esempi: 01112=710 10112=-310

La codifica dei numeri binari relativi: complemento a due In questa codifica la rappresentazione dei numeri positivi è identica a quella con segno e modulo. Per quelli negativi occorre calcolare il complemento a due del corrispondente numero positivo. Per calcolare il complemento a due di un numero binario si procede in questo modo: si esegue prima il complemento ad 1 (ovvero, si invertono tutte le cifre 0 -> 1; 1 -> 0); Si somma poi 1 al numero ottenuto.

La codifica dei numeri binari relativi: complemento a due Per esprimere con 4 bit il numero -6 si procede nel seguente modo. Si parte da 6, in binario, e si calcola il complemento a 2: 610=01102 C1(0110)=1001 1001+1=1010 Quindi, in complemento a due : - 610=10102 Osservazione: il complemento a 2 di un qualunque numero ne inverte il segno. Infatti: C1(1010)=0101 0101+1=0110=610 Matematicamente un numero binario in complemento a due è rappresentabile in forma polinomiale nel seguente modo (in sostanza, il bit MSB è negativo): N10=-Cn-12n-1+Cn-22n-2+…+C121+C020 Facciamo un esempio: 10102=-1·23+0·22+1·21+0·20=-8+2=-6

La sottrazione con il complemento a due La sottrazione tra due numeri può essere eseguita sommando al minuendo il complemento alla base del sottraendo: A-B = A+(-B) Questa tecnica, in generale, è detta metodo del complemento alla base. Vediamo un esempio in decimale. La differenza: 12-3=9 la possiamo ottenere eseguendo il complemento a 10 del sottraendo, sommando tale risultato al minuendo e sottraendo 10 dal totale: 12-3=12+(10-3)-10=9 Nel caso di numero decimale a due cifre occorre fare il complemento a 100 (e poi, naturalmente, sottrarre 100). In generale si esegue il complemento a 10n con n pari al numero delle cifre del sottraendo. In tal modo un circuito sommatore può essere utilizzato sia per l’esecuzione dell’addizione che per la sottrazione.

La sottrazione con il complemento a due: procedimento i numeri A e B devono essere espressi con lo stesso numero di bit; si esegue il complemento a due di B; si esegue la somma A+(-B) ignorando l’eventuale n+1-esimo bit del risultato; se il bit di segno (l’n-esimo) è 0 – quindi il risultato è positivo – i restanti n-1 bit rappresentano il modulo; se il bit di segno (l’n-esimo) è 1 – quindi il risultato è negativo – si calcola il complemento a due ottenendo il modulo (oppure si ricorre alla conversione polinomiale). Esempio. Eseguire la sottrazione: 9-15 Si convertono i due numeri in 4 bit più il segno: 910=010012 1510=011112 Si esegue il complemento a due del sottraendo: C2(01111)=10000+1=10001 Si esegue la somma: 01001+10001=11010 Poiché il bit di segno del risultato vale 1 si esegue il complemento a due del risultato: C2(11010)=00101+1=00110=6 Il risultato della sottrazione, quindi, vale -6 (in decimale).

Rappresentazione dei numeri binari non interi in virgola fissa e mobile Per rappresentare un numero binario con parte frazionaria si può usare la tecnica della virgola fissa in cui i bit della locazione sono organizzati come in figura dove, oltre al bit di segno, si impiegano quantità fisse di bit per rappresentare la parte intera e la parte frazionaria. La rappresentazione in virgola mobile, oltre al bit di segno, prevede l’allocazione di una parte dei bit per la mantissa e della restante parte per l’esponente. In tale rappresentazione il numero binario è espresso in forma esponenziale normalizzata (la cifra più significativa è subito a destra della virgola; in decimale: 127,16=0,12716·103). Ad esempio: 10001,001=0,10001001·2101 In questo caso avremo: mantissa: 10001001 esponente: 101 (che equivale al numero di spostamenti della virgola verso sinistra).

Codici numerici e alfanumerici Vi sono molti modi per codificare l’informazione numerica (codici numerici) e quella alfanumerica (codici alfanumerici). Sono codici che risultano molto utili nella pratica in quanto consentono di semplificare notevolmente alcune operazioni.

Codici numerici: il codice BCD Nel codice BCD (Binary Code Decimal) ad ogni cifra decimale viene associata una codifica binaria espressa in 4 bit. I bit BCD vanno letti a gruppi di 4 (la lettura consecutiva non ha senso). Tale codice, ad esempio, è utile per visualizzare su display decimali il risultato dell’elaborazione di circuiti digitali come, per esempio, I valori d’uscita dei contatori. Esempio: Il numero 112,4 è convertito in BCD: 0001 0001 0010 , 0100

Codici alfanumerici: il codice ASCII Il codice ASCII (American Standard Code for Information Interchange) identifica un codice a 7 bit impiegato per rappresentare 128 caratteri. Si tratta dei caratteri alfabetici maiuscoli e minuscoli, dei caratteri numerici, dei simboli di punteggiatura e di alcuni caratteri speciali. Ad esempio, in tale codice: A -> 01000001 B -> 01000010 0 -> 00110000 1 -> 00110001

Le reti logiche combinatorie Le reti logiche combinatorie sono quelle reti digitali che non possiedono memoria, per cui l’uscita in un istante dipende solo dai valori degli ingressi nel medesimo istante; al contrario quelle con memoria sono dette reti logiche sequenziali.

Descrizione di una rete logica combinatoria Per descrivere una RLC (Rete Logica Combinatoria) è necessario esprimere la relazione tra l’uscita e gli ingressi. Tale relazione può assumere le forme: proposizione logica (in sostanza una descrizione a parole) tabella della verità (tdv) funzione di commutazione (ovvero un’espressione algebrica) rete logica (cioè il suo schema elettrico) Progettare (sintesi) una RLC significa passare dalla descrizione a parole allo schema elettrico della medesima. Analizzare una RLC significa fare il percorso inverso.

Variabile logica Una variabile logica, o binaria, può assumere solo due possibili valori. Valori che, generalmente, vengono indicati 0 e 1. Ma anche vero e falso, oppure High e Low. Una variabile binaria può essere utilizzata per rappresentare il funzionamento di dispositivi che possiedono solo due stati possibili di funzionamento. Si pensi ad una lampada, o ad un interruttore.

Le porte logiche fondamentali Le porte logiche sono gli elementi base di una RLC. Le tre porte fondamentali sono NOT, AND e OR. In tabella sono indicati I simboli logici, le tdv e le descrizioni di funzionamento.

Le porte logiche derivate Le porte logiche derivate sono porte logiche che derivano dalla combinazione delle porte fondamentali. Un circoletto sull’ingresso o sull’uscita di una porta equivale alla presenza di una NOT.

Circuiti integrati digitali Le porte logiche sono contenute all’interno di specifici circuiti digitali integrati. La funzione svolta dall’integrato è individuata dal codice stampato sul contenitore.

Controllo del flusso dei segnali con porte logiche Le porte logiche consentono di bloccare o di lasciar passare un segnale impulsivo in base al valore di un altro segnale di abilitazione (enable); da ciò deriva il nome di “porta”. La porta AND di figura, ad esempio, consente il passaggio del segnale impulsivo posto in A quando l’ingresso B=1. Quando B=0 lo blocca e l’uscita, Y, vale sempre 0.

EX-OR come invertitore controllato e comparatore La porta logica EX-OR può essere impiegata come un invertitore controllato (figura A). Dalla tdv, infatti, si può notare che se B=0 allora l’uscita assume il valore di A. Se, invece, B=1 allora l’uscita assume il valore negato di A. Questa porta, inoltre, consente di distinguere l’uguaglianza di due variabili A e B (figura B): se A=B allora Y=0; se A≠B allora Y=1.

Analisi di una rete logica Per analizzare il comportamento di una RLC è necessario esprimere il legame tra ogni uscita e tutti gli ingressi della rete. In sostanza si devono ricavare tante funzioni di commutazione quante sono le uscite della rete. Per far ciò si scrive l’espressione logica all’uscita di ogni porta procedendo dagli ingressi all’uscita (o alle uscite se la RLC ha più uscite).

L’algebra di Boole: simboli, operatori e assiomi Data una proposizione logica, esistono infinite RLC in grado di soddisfarla. E’ quindi importante determinare quale, tra queste reti, è la migliore dal punto di vista del costo, del consumo e della velocità (e/o di altri parametri definiti in sede di specifiche di progetto). Per semplificare una RLC ci si avvale dell’algebra di Boole, sviluppata da George Boole intorno alla metà del 1800. Quest’algebra è definita da: due simboli (0 e 1) tre operatori (+, ·, ¯ : OR, AND e NOT) un insieme di assiomi

L’algebra di Boole: proprietà e teoremi In figura sono indicate le proprietà dell’algebra di Boole per funzioni di 1 e 2 variabili.

L’algebra di Boole: un esempio di semplificazione Il seguente esempio mostra come sia possibile, avvalendosi dell’algebra di Boole, di semplificare una funzione di commutazione ottenendone un’altra dal costo più ridotto.

Analisi di una RLC Analizzare una rete significa partire dallo schema della RLC ed arrivare alla tdv. Per far ciò occorre prima scrivere la funzione di commutazione e compilare poi la tdv. Vediamo un esempio.

Progetto (sintesi) di una RLC E’ il procedimento che dalla proposizione logica (descrizione a parole fornita da un committente) conduce a disegnare lo schema della RLC. Per ricavare la RLC nella forma minima (minimo numero di porte impiegate) si utilizza il metodo delle mappe di Karnaugh.

Le mappe di Karnaugh Per passare dalla tdv alla mappa di Karnaugh (mappa K) si segue il seguente procedimento:

Le mappe di Karnaugh: la compilazione Vediamo come, a partire dalla tdv, si possa ottenere la mappa K.

Le mappe di Karnaugh: la minimizzazione Per ottenere la funzione di commutazione in forma minima da una mappa K si segue il seguente procedimento:

Il progetto di una RLC E’ un procedimento che si sviluppa attraverso i seguenti passi:

Il progetto di una RLC: un esempio Vediamo un esempio di progetto di rete RLC.

Funzioni combinatorie integrate Alcuni circuiti combinatori di media complessità e di uso frequente sono disponibili già in forma integrata. Pertanto, quando in un progetto si presenta l’esigenza di una di queste funzioni, non sarà necessario progettarla da zero; semplicemente si ricorrerà alla sua forma integrata. In questo modo si riesce ad ottimizzare maggiormente la rete complessiva.

Il multiplexer Il multiplexer è un selettore che trasferisce sull’uscita Y il valore logico presente in uno dei 2n ingressi dati (Di) sulla base di un numero binario posto sugli ingressi di selezione. L’ingresso di abilitazione (Enable) abilita il funzionamento dell’integrato: nel caso dell’esempio deve essere posto al livello basso. In caso contrario l’uscita rimane ad un livello fisso. Esempi di Mux integrati: 74151, ad 8 ingressi; 74150, a 16 ingressi.

Il codificatore Il codificatore o encoder, è un circuito con 2n ingressi che riporta sulle uscite il numero binario corrispondente all’unico ingresso su cui è posto un livello attivo. Tale circuito funziona correttamente se solamente uno degli ingressi è posto al livello attivo. Sono anche realizzati, in forma integrata, i codificatori con priorità, o priority encoder. Tali circuiti, in caso di attivazione contemporanea di più ingressi, forniscono in uscita il numero binario relativo all’ingresso con priorità maggiore (quello identificato dal numero decimale più alto). Esempi di encoder integrati: 74147 e 74148.

Il decodificatore ed il demultiplexer Il decodificatore o dencoder ha la funzione inversa dell’encoder: riceve in gresso un numero binario di n bit e attiva l’uscita corrispondente tra le 2n. Il demultiplexer, o Demux, opera nel seguente modo: il dato presente nell’ingresso I viene riprodotto sull’uscita che corrisponde al numero binario posto sugli n ingressi di selezione; svolge la funzione inversa del Mux.

Il sommatore Tra gli integrati dedicati al calcolo vi è il sommatore o Full Adder. E’ un circuito che somma due bit più un riporto (Ci, Carry Input) e genera un bit di somma ed un altro di riporto (Co, Carry Output). Collegando n FA in parallelo si ottiene il sommatore parallelo, in grado di sommare due parole di n bit ciascuna.

Il comparatore Tra gli integrati dedicati al calcolo vi è anche il comparatore. E’ un circuito che confronta due numeri binari e verifica l’uguaglianza o la diseguaglianza tra questi. Il 7485 è un comparatore per numeri binari di 4 bit ciascuno. Gli ingressi a cascata sono impiegati per espandere il numero di ingressi. Le uscite del circuito complessivo sono quelle dell’integrato che riceve i bit più significativi. Quando non sono utilizzati occorre porre A>B e A<B al livello L ed A=B al livello H.

Il diodo LED E’ un componente bipolare a semiconduttore il cui scopo è quello di emettere luce. Se polarizzato direttamente, VAK>0, lascia passare corrente e si illumina. Se polarizzato inversamente, VAK<0, si comporta come un circuito aperto (e non si illumina). Per polarizzarlo direttamente occorre applicargli una d.d.p. di circa 1,8-3,5 volt (in dipendenza del tipo di diodo e di colore: rosso 1,8V, giallo 1,9V, verde 2,0 V, blu 3,5V). In figura sono mostrati due esempi di circuiti pilota per diodo Led.

Il display a 7 segmenti E’ utilizzato per visualizzare le dieci cifre decimali. Può visualizzare anche le lettere da A ad F per la rappresentazione di simboli esadecimali. E’ costituito da 7 led più un ottavo per la rappresentazione del punto decimale. Vi sono display ad anodo comune (FND507, TIL729) e display a catodo comune (FND500, TIL730). Per pilotare questi display vi sono opportuni circuiti integrati denominati decoder-driver.

Le reti digitali sequenziali Sono reti combinatorie i cui valori delle uscite dipendono sia dai valori di ingresso attuali sia da quelli passati; in ogni istante l’informazione sull’evoluzione passata degli ingressi deve essere mantenuta in memoria e costituisce quello che si chiama stato presente della rete. Lo stato presente viene in genere memorizzato sotto forma di una combinazione dei valori di n variabili binarie (variabili di stato) che determinano, insieme agli ingressi presenti, i valori futuri delle uscite e lo stato futuro, cioè i valori che assumeranno le variabili di stato nell’istante successivo.

Il latch Può essere realizzato con porte Nand o con porte Nor. E’ un circuito in grado di memorizzare una variabile binaria. Il valore dell’uscita è modificabile per mezzo di opportuni comandi sugli ingressi: S (Set), che porta Q a 1, e R (Reset) che porta Q a 0. Può essere realizzato con porte Nand o con porte Nor.

Il Flip-Flop (FF) I latch sono circuiti asincroni: l’uscita reagisce istantaneamente al comando di ingresso. Nei FF, invece, l’uscita può commutare solo in corrispondenza di istanti precisi individuati dai fronti di un segnale di sincronizzazione detto clock. Per tale ragione i FF sono circuiti sincroni. I FF possono essere di tipo D, T e JK.

I Flip-Flop D e JK Il FFD ha un funzionamento molto semplice: in corrispondenza del fronte attivo di clock, il valore logico presente sull’ingresso viene portato in uscita e mantenuto fino al successivo fronte attivo del segnale di clock. Il funzionamento del FFJK richiama quello del latch SR. L’uscita, però, può variare solo in corrispondenza dei fronti attivi di clock. Nel caso di questo FF è ammessa anche la combinazione J=1, K=1.

Il diagramma temporale di un FFJK Vediamo un esempio di diagramma temporale.

Gli ingressi asincroni Gli ingressi asincroni di un FF producono un effetto immediato sull’uscita. Sono pertanto indipendenti dal segnale di clock. Generalmente sono due: Clear (CLR): se attivato porta l’uscita Q al valore logico 0; Preset (PR): se attivato porta l’uscita Q al valore logico 1.

I registri Un registro è un gruppo di n latch o n flip-flop il cui scopo è quello di memorizzare una parola di n bit. L’introduzione del dato nel registro è l’operazione di scrittura. L’estrazione del dato dal registro è l’operazione di lettura. Un esempio di registro è il PIPO (Parallel Input Parallel Output) in cui tutti i FF sono comandati dallo stesso segnale di clock. Una parola di n bit, posta sugli n ingressi, viene memorizzata in corrispondenza del successivo fronte attivo di clock. E mantenuta fino all’arrivo del successivo fronte attivo.

Il registro a scorrimento Un registro a scorrimento (shift register), o SISO (Serial Input Serial Output), è costituito da n FFJK o FFD collegati in cascata e sincronizzati per mezzo dello stesso segnale di clock. Ad ogni fronte attivo di clock i bit presenti agli ingressi dei FF passano sulle rispettive uscite, traslando di una posizione verso l’uscita del registro. Per caricare tutto il registro occorreranno n fronti attivi di clock.

I contatori Sono circuiti sequenziali che incrementano o decrementano il numero binario sulle uscite in corrispondenza di ogni impulso applicato sull’ingresso di clock. Il modulo di un contatore è pari al numero dei possibili stati, cioè il numero delle combinazioni delle uscite attraverso le quali si svolge il conteggio. Il conteggio può essere crescente (up) o decrescente (down). Sono asincroni quei contatori per cui la commutazione delle uscite si propaga con un certo ritardo dall’uscita meno significativa a quella più significativa, a causa della struttura del contatore. Sono sincroni, invece, quei contatori in cui la commutazione di tutte le uscite avviene nello stesso istante.

Un esempio di contatore asincrono up La figura mostra un contatore asincrono up, modulo 8, realizzato con tre FFJK. Gli impulsi da contare (quelli del clock) vengono applicati sul primo FFJK di sinistra ed il risultato del conteggio viene letto sulle uscite Q0Q1Q2. Ogni uscita (tranne quella del FF2) è applicata all’ingresso clock del FF successivo. Pertanto la commutazione delle uscite non può avvenire simultaneamente. Tutti gli ingressi CLR sono connessi fra loro per comandare l’azzeramento del contatore. Ogni FF, avendo JK=11, inverte lo stato dell’uscita in corrispondenza del fronte attivo di clock. Si ottiene, così, una progressione ciclica da 000 a 111.