Circuiti integrati Circuiti integrati Le porte logiche non vengono prodotte isolatamente, ma sono realizzate su circuiti integrati Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati transistor e dunque porte logiche, che complessivamente realizzano uno o più circuiti digitali La piastrina di silicio di un circuito integrato ha solitamente dimensioni comprese tra: 5 5 mm e cm (di rado superiore) La piastrina di silicio integra i transistor, i collegamenti tra i transistor e i collegamenti con i morsetti di ingresso/uscita del chip 2
Famiglie di circuiti integrati I circuiti integrati sono classificati in base alle loro dimensioni, cioè al numero di porte logiche contenute: SSI (Small Scale Integrated): IC a scala di integrazione piccola, da a porte MSI (Medium Scale Integrated): IC a scala di integrazione media, da a porte LSI (Large Scale Integrated): IC a scala di integrazione grande, da a. porte VLSI (Very Large Scale Integrated): IC a scala di integrazione molto grande, >. porte Ogni famiglia ha degli usi caratteristici nei calcolatori e in generale nei dispositivi elettronici, che dipendono dalle sue dimensioni, ovvero dalla quantità di porte presenti sul circuito integrato stesso 3 Metodi di progetto logico Nessuno progetta un circuito integrato contenente milioni di transistor, equivalenti a circa 2 milioni di porte logiche ND a 2 ingressi, trattandolo come un unica rete combinatoria (o sequenziale) di dimensioni enormi! Per progettare circuiti digitali di tali dimensioni, si usano tecniche modulari, per scomporre il problema 4 2
Matrici logiche programmabili Esistono circuiti integrati programmabili, chiamati PL (Programmable Logic rray, matrici logiche programmabili), che permettono di realizzare qualsiasi rete combinatoria Il solo limite della PL è dato da: Il numero di piedini (che è fisso) Il numero massimo di porte logiche disponibili sulla PL Il produttore produce e commercializza PL vergini : esse non hanno a bordo alcun circuito digitale definito Spetta al compratore programmare la PL vergine, installandole a bordo una o più reti combinatorie (o anche sequenziali), secondo le esigenze Per programmare la PL occorre un apposito apparato programmatore 5 Come funziona un PL La PL vergine contiene già un numero fissato di porte logiche ND, OR e NOT (o anche NND, ecc) Nella PL vergine i collegamenti tra queste porte logiche sono però indefiniti La PL vergine contiene delle matrici di microinterruttori a transistor: bruciandoli o lasciandoli intatti si realizzano collegamenti tra le porte L apparato programmatore di PL è in grado di bruciare selettivamente i microinterruttori presenti sulla PL Per farlo, esso applica ad alcuni piedini della PL (piedini di programmazione), speciali valori di tensione elettrica, che agiscono sui microinterruttori L operazione è del tutto automatica e relativamente veloce, e irreversibile 6 3
4 7 C D M I C R O I N T E R R U T T O R I M I C R O I N T E R R U T T O R I C F porta non usata porta non usata D ingresso non usato Funzione maggioranza a tre ingressi Circuiti combinatori elementari
Circuiti combinatori elementari Esiste una ben nota e ormai stabilizzata libreria di blocchi funzionali predefiniti di tipo combinatorio Essa contiene blocchi funzionali per tutte le funzioni combinatorie di base Questi blocchi appartengono alle famiglie MSI e (alcuni di essi) LSI La libreria contiene anche blocchi funzionali di tipo sequenziale 9 Multiplexer Il blocco funzionale multiplexer ha: n ingressi di selezione 2 n 2 ingressi dati un uscita Gli ingressi dati sono numerati a partire da : k =,, 2,, 2 n Se sugli ingressi di selezione è presente il numero binario k, il kesimo ingresso dati viene inviato in uscita 5
Un solo ingresso di controllo Ctrl OUT OUT =!!Ctrl +!Ctrl +!Ctrl + Ctrl Ctrl Possibilità di ingressi di più bit OUT OUT = Ctrl +!Ctrl Multiplexer a 2 ingressi di controllo S S Tabella delle verità # riga S S I I2 I3 I4 U X X X I X X X I 2 U 2 X X X 3 X X X I 3 4 X X X I 4 MUX 5 X X X 6 X X X 7 X X X 2 6
Demultiplexer Circuito logico che effettua l operazione inversa rispetto al MUX (multiplexer) Il blocco funzionale demultiplexer (DEMUX) ha: n ingressi di selezione un ingresso dati 2n 2 uscite I D D Selezione S S 2 O D Uscite O 2 O 3 D O 4 O =!S!S 2 I O2 = S!S 2 I O3 =!S S 2 I O4 = S S 2 I D D D D 3 Demultiplexer O =!S!S 2 I O2 = S!S 2 I O3 =!S S 2 I O4 = S S 2 I S S 2 S S 2 O O () I O 2 I O 2 () O 3 O 3 () O 4 DMUX O 4 () 4 7
Decoder Il blocco funzionale decoder ha: n ingressi 2 n 2 uscite Le uscite sono numerate a partire da : k =,, 2,, 2 n Se sugli ingressi è presente il numero binario k, la kesima uscita assume il valore e le restanti uscite assumono il valore 5 Decoder F F2 F3 F4 F =!! F2 =! F3 =! F4 = F F F 2 F 2 F 3 F 4 DECODER F 3 F 4 6 8
Codificatore (encoder) È il blocco funzionale inverso del decodificatore. Ha: 2n 2 ingressi n uscite Se l ingresso kesimo vale e i rimanenti ingressi valgono, sulle uscite è presente il numero binario k Se due o più ingressi valgono, il funzionamento del blocco non è definito Uso caratteristico: rilevare la posizione di un segnale attivo in un gruppo di segnali 7 Codificatore ENC a 4 ingressi Se due o più ingressi valgono, il comportamento non è definito ingressi I I I2 I3 ENC U U Codificatore a 4 ingressi uscite Tabella delle verità # riga I I I2 I3 U U 2 3 8 9
Confrontatore (comparator) Il blocco funzionale confrontatore ha: due gruppi e di ingressi da n bit ciascuno tre uscite: minoranza <, uguaglianza = e maggioranza > Il blocco confronta i due numeri binari e da n bit presenti sui due gruppi di ingressi, e attiva (a ) l uscita corrispondente all esito del confronto 9 Confrontatore COMP a 2 bit ingressi < = > COMP Confrontatore di numeri a 2 bit uscite Tabella delle verità # riga < = > 2 3 4 5 6 7 8 9 2 3 4 5 2
Controllore di parità (parity checker) Il blocco funzionale controllore di parità ha: n ingressi un uscita Se un numero pari di ingressi vale (cioè, 2, 4, ingressi), l uscita vale Se un numero dispari di ingressi vale (cioè, 3, 5, ingressi), l uscita vale 2 Controllore di parità Tabella delle verità PR a 4 bit ingressi D D D2 P D3 PR uscita Controllore di parità a 4 ingressi # riga D3 D2 D2 D P 2 3 4 5 6 7 8 9 2 3 4 5 22
Usi caratteristici Confrontatore: confronti tra numeri interi (naturali o anche relativi) Controllore di parità: si usa per tecniche di rilevamento (e anche di correzione) degli errori di trasmissione e di memorizzazione: codice di parità per la segnalazione di errori 23 Shifter Effettua lo scorrimento verso sinistra o destra del valore presente agli ingressi Esempio: Sinistra: Destra: S/D OUTn OUTi OUT sinistra INn- INi- Nuovo bit destra Nuovo bit INi+ IN 24 2
Shifter S/D nuovo nuovo I bit 4 I 3 I 2 I I bit MUX MUX MUX MUX MUX O 4 O 3 O 2 O O 25 Sommatore È la generalizzazione del sommatore completo: addizione di numeri interi binari naturali (positivi) a n bit Ha in ingresso due numeri interi binari naturali e da n bit ciascuno In uscita presenta la somma a n bit dei due numeri interi e Può avere un riporto in ingresso e un riporto in uscita, non sempre usati 26 3
Half-adder Somma Carry Carry Somma =! +! = ± Carry = HLF-DDER Somma 27 Full-hadder Carry in Somma Carry out Carry in Somma = ± ± CarryIn CarryOut = + CarryIn + CarryIn + CarryIn( + ) Carry out Somma FULL-DDER 28 4
Sommatore per dati a 3 bit 2 2 F F H R2 R R 2 2 F F F R2 R R 29 Sottrattore intero binario naturale a n bit (n-bit subtractor) È il blocco funzionale inverso del sommatore intero a n bit Ha in ingresso due numeri interi binari naturali e da n bit ciascuno In uscita presenta la differenza a n bit dei due numeri interi e Può avere un prestito in ingresso e un prestito in uscita, non sempre usati 3 5
Sottrattore intero a n bit Sottrattore intero binario naturale a 3 bit minuendo 3 2 2 3 sottraendo sottrattore a 3 bit! 8 prestito in uscita M2 M M S2 S S Pusc D2 D D 7 M = M = = 2, S = = 3, P in = D = M! S! = 3, S = P in = 2! = 2, P =! in = D = M! S! P in = 3! 2! = e = P usc = Pin prestito in ingresso differenza 3 Esempio di progetto in stile funzionale Si chiede di progettare un circuito digitale combinatorio, che abbia: in ingresso due numeri interi binari naturali (positivi) e da n bit ciascuno in ingresso un segnale di comando C in uscita un numero intero binario naturale Z da n bit Su Z deve uscire la somma + se C =, la differenza se C = 32 6
Schema logico della soluzione n X + Y X C + S n Y n I S n X - Y X n MUX U I n Z - D n Y (si usa un multiplatore a 2 gruppi di ingressi dati; ciascun gruppo è da n bit) 33 Unità ritmetico-logica comandi dd Sub R in, P in LU n C LU U n operandi n E risultato esiti = < = > R usc P usc 34 7
Unità ritmetico-logica # riga Comando Operazione R Esito dd somma e + + R in riporto in uscita R usc Sub sottrae da!! P in prestito in uscita P usc 2 3 Pass Pass passa in uscita passa in uscita 4 Zero annulla uscita - 5 Shift Left scorre a SX 2 bit più significativo di 6 Shift Right scorre a DX / 2 bit meno significativo di 7 8 Null Compare Confronta con Confronta con - = - <, =, > 9 Multiply prodotto di e " riporto in uscita Divide divisione / / divisione per? - - 35 Esempio di calcolo comandi Compare Pass Zero dd nd Sub Null Or Rin, Pin 26 5 4 XXX = X n C LU operandi 23 5 XXX = n LU E U n XXX = 59 24 risultato esiti = < = > Rusc Pusc X X X X X X 36 8
9 37 Schema logico di una LU da bit 38 Esercizio LU che effettua ND, OR, NOT e somma algebrica +! or and Operazione F F CarryOut Output F F
39 4 2
4 42 2
43 44 22
Logica istabili e locchi sequenziali 23
47 48 24
49 25
5 52 26
53 54 27
55 56 28
Progettazione funzionale Contatori Modulo Contatori binari che consentono di contare i colpi di clock Utilizzando n bistabili consentono di contare da a 2^n- d ogni colpo di clock il valore del contatore viene incrementato di una unità Modulo significa che si resettano al raggiungimento del valore massimo. 58 29
3 59 Contatore Modulo 8 Quanti bistabili servono per realizzarlo? 3 6 Nc Nb Na C Tabella della verità di un contatore modulo 8 Non viene considerato il segnale di clock che serve solo per attivare la transizione, ma non ha effetto sull OUTPUT
3 6 Nc Nb Na C Usando una tecnica appropriata scrivere la sintesi in I forma normale (SoP) delle 3 uscite 62 Na C \C Na=!C+!+!C Na=(!C+!)+!C
32 63 Nb C \C Nb=!C+!C Nb= C 64 Nc C Nc=!C
Flip-Flop tipo D 66 33
Dalla rete combinatoria al contatore La rete combinatoria implementa la logica che consente di realizzare l incremento isogna aggiungere i bistabili ed il segnale di clock che attivi la transizione. 67 68 34
Progettazione circuito sequenziale Implementare un circuito che memorizza due bit specificati sugli ingressi solo se: Solo uno di essi differisce dai bit memorizzati precedentemente 69 7 35
Progettare in s tile funzionale, cioè combinando dei blocchi logici combinatori e sequenziali predefiniti, un circuito sequenziale che calcola la funzione F(,) che vale - / con! e vale con = dove e sono due numeri binari positivi di 4 bit, dotato dell'interfaccia seguente: 32 4 32 4 LOD RESET CK 4 U3U2UU Il circuito riceve i due dati e nel primo ciclo di clock, il caricamento avviene quando il segnale LOD è attivo. Nel ciclo successivo il circuito calcola la funzione F(,) e ne memorizza il risultato nel registro d uscita. Il circuito riceve in ingresso i seguenti segnali: Il segnale di clock, CK. Un segnale di caricamento, LOD. D u e gruppi di ingressi di 4 bit, (3, 2,, ) e (3, 2,, ) che accettano valori binari di 4 bit (3 e 3 sono i bit più significativi, e quelli meno significativi). Il circuito emette in uscita 4 segnali, U3, U2, U e U, su cui viene codificato un numero binario di 4 bit; (U3 è il bit più significativo, U quello meno significativo). Completare l unità di elaborazione che permette di ottenere questo comportamento, assumendo di avere a disposizione, oltre ai componenti di base, anche un sottrattore ed un divisore di numeri positivi. 7 36