Post on 15-Dec-2018
transcript
1
Circuiti integrati
2
Circuiti integrati
Le porte logiche non vengono prodotte isolatamente, ma sonorealizzate su circuiti integrati
Un circuito integrato è una piastrina di silicio (o chip), quadrata orettangolare, sulla cui superficie vengono realizzati e collegatitransistor e dunque porte logiche, che complessivamenterealizzano uno o più circuiti digitali
La piastrina di silicio di un circuito integrato ha solitamentedimensioni comprese tra: 5 × 5 mm e 1 × 1 cm (di rado superiore)
La piastrina di silicio integra i transistor, i collegamenti tra itransistor e i collegamenti con i morsetti di ingresso/uscita delchip
2
3
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 1
a 10 porte MSI (Medium Scale Integrated): IC a scala di integrazione media, da
10 a 100 porte LSI (Large Scale Integrated): IC a scala di integrazione grande, da
100 a 100.000 porte VLSI (Very Large Scale Integrated): IC a scala di integrazione molto
grande, > 100.000 porte Ogni famiglia ha degli usi caratteristici nei calcolatori e in
generale nei dispositivi elettronici, che dipendono dalle suedimensioni, ovvero dalla quantità di porte presenti sul circuitointegrato stesso
4
Metodi di progetto logico
Nessuno progetta un circuito integrato contenente 10 milioni ditransistor, equivalenti a circa 2 milioni di porte logiche AND a 2ingressi, trattandolo come un’unica rete combinatoria (osequenziale) di dimensioni enormi!
Per progettare circuiti digitali di tali dimensioni, si usano tecnichemodulari, per scomporre il problema
3
5
Matrici logiche programmabili
Esistono circuiti integrati programmabili, chiamati PLA(Programmable Logic Array, matrici logiche programmabili), chepermettono di realizzare qualsiasi rete combinatoria
Il solo limite della PLA è dato da: Il numero di piedini (che è fisso) Il numero massimo di porte logiche disponibili sulla PLA
Il produttore produce e commercializza PLA “vergini”: esse nonhanno a bordo alcun circuito digitale definito
Spetta al compratore programmare la PLA “vergine”, installandolea bordo una o più reti combinatorie (o anche sequenziali), secondole esigenze
Per programmare la PLA occorre un apposito apparatoprogrammatore
6
Come funziona un PLA
La PLA “vergine” contiene già un numero fissato di porte logicheAND, OR e NOT (o anche NAND, ecc)
Nella PLA “vergine” i collegamenti tra queste porte logiche sonoperò indefiniti
La PLA “vergine” contiene delle matrici di microinterruttori atransistor: bruciandoli o lasciandoli intatti si realizzanocollegamenti tra le porte
L’apparato programmatore di PLA è in grado di bruciareselettivamente i microinterruttori presenti sulla PLA
Per farlo, esso applica ad alcuni piedini della PLA (piedini diprogrammazione), speciali valori di tensione elettrica, che agisconosui microinterruttori
L’operazione è del tutto automatica e relativamente veloce, eirreversibile
4
7
A
B
C
D
MICROINTERRUTTORI
MICROINTERRUTTORI
A
B
C
F
porta nonusata
porta nonusata
D
ingressonon usato
Funzione maggioranza a tre ingressi
Circuiti combinatori elementari
5
9
Circuiti combinatori elementari
Esiste una ben nota e ormai stabilizzata libreria di blocchifunzionali predefiniti di tipo combinatorio
Essa contiene blocchi funzionali per tutte le funzioni combinatoriedi base
Questi blocchi appartengono alle famiglie MSI e (alcuni di essi)LSI
La libreria contiene anche blocchi funzionali di tipo sequenziale
10
Multiplexer
Il blocco funzionale multiplexer ha: n ≥ 1 ingressi di selezione 2n ≥ 2 ingressi dati un’uscita
Gli ingressi dati sono numerati a partire da 0: k = 0, 1, 2, …, 2n−1 Se sugli ingressi di selezione è presente il numero binario k, il
kesimo ingresso dati viene inviato in uscita
6
11
Un solo ingresso di controllo
1111
1011
1101
0001
0110
1010
0100
0000
OUTCtrlBA
OUT = !AB!Ctrl + A!BCtrl +AB!Ctrl + ABCtrl
11001
01100
10110100
OUT = ACtrl + B!Ctrl
Ctrl
OUT
A
B
Possibilità di ingressidi più bit
12
Tabella delle verità# riga S1 S0 I1 I2 I3 I4 U
0 0 0 0 X X X 0
1 0 0 1 X X X 1
2 0 1 X 0 X X 0
3 0 1 X 1 X X 1
4 1 0 X X 0 X 0
5 1 0 X X 1 X 1
6 1 1 X X X 0 0
7 1 1 X X X 1 1
S0
U
S1
MUX
I1
I2
I3
I4
Multiplexer a 2 ingressi di controllo
7
13
D00011D
0D0010D
00D001D
000D00D
O4O3O2O1S2S1I
UsciteSelezione O1 = !S1!S2IO2 = S1!S2IO3 = !S1S2IO4 = S1S2I
Demultiplexer
Circuito logico che effettua l’operazione inversa rispetto al MUX(multiplexer)
Il blocco funzionale demultiplexer (DEMUX) ha: n ≥ 1 ingressi di selezione un ingresso dati 2n ≥ 2 uscite
14
Demultiplexer
S1
O1
IO2
O3
O4
S2 S1
O1 (00)
IO2 (10)
O3 (01)
O4 (11)
S2
DMUX
O1 = !S1!S2IO2 = S1!S2IO3 = !S1S2IO4 = S1S2I
8
15
Decoder
Il blocco funzionale decoder ha: n ≥ 1 ingressi 2n ≥ 2 uscite
Le uscite sono numerate a partire da 0: k = 0, 1, 2, …, 2n − 1 Se sugli ingressi è presente il numero binario k, la kesima uscita
assume il valore 1 e le restanti uscite assumono il valore 0
16
Decoder
100011
010001
001010
000100
F4F3F2F1BAF1 = !A!BF2 = !ABF3 = A!BF4 = AB
F1A
F2
F3
F4DECODER
B
F1
F2
F3
F4
A
B
9
17
Codificatore (encoder)
È il blocco funzionale inverso del decodificatore. Ha: 2n ≥ 2 ingressi n ≥ 1 uscite
Se l’ingresso kesimo vale 1 e i rimanenti ingressi valgono 0, sulleuscite è presente il numero binario k
Se due o più ingressi valgono 1, il funzionamento del blocco non èdefinito
Uso caratteristico: rilevare la posizione di un segnale attivo in ungruppo di segnali
18
Codificatore
I0
I1
I2
I3
ENC a 4ingressi
U1
U0
ingressi uscite
ENC# riga I0 I1 I2 I3 U1 U0
0 1 0 0 0 0 0
1 0 1 0 0 0 1
2 0 0 1 0 1 0
3 0 0 0 1 1 1
Tabella delle verità
Codificatorea 4 ingressi
Se due o più ingressi valgono 1,il comportamento non è definito
1
0
0
0
0
0
10
19
Confrontatore (comparator)
Il blocco funzionale confrontatore ha: due gruppi A e B di ingressi da n ≥ 1 bit ciascuno tre uscite: minoranza A < B, uguaglianza A = B e maggioranza A > B
Il blocco confronta i due numeri binari A e B da n bit presenti suidue gruppi di ingressi, e attiva (a 1) l’uscita corrispondenteall’esito del confronto
20
Confrontatore
A0
A1
B0
B1
COMP a 2 bit
A<B
A=B
A>B
ingressi uscite
COMP
# riga A1 A0 B1 B0 A<B A=B A>B
0 0 0 0 0 0 1 0
1 0 0 0 1 1 0 0
2 0 0 1 0 1 0 0
3 0 0 1 1 1 0 0
4 0 1 0 0 0 0 1
5 0 1 0 1 0 1 0
6 0 1 1 0 1 0 0
7 0 1 1 1 1 0 0
8 1 0 0 0 0 0 1
9 1 0 0 1 0 0 1
10 1 0 1 0 0 1 0
11 1 0 1 1 1 0 0
12 1 1 0 0 0 0 1
13 1 1 0 1 0 0 1
14 1 1 1 0 0 0 1
15 1 1 1 1 0 1 0
Tabella delle verità
Confrontatore dinumeri a 2 bit
0
0
0
0
0
0
1
11
21
Controllore di parità(parity checker)
Il blocco funzionale controllore di parità ha: n ≥ 1 ingressi un’uscita
Se un numero pari di ingressi vale 1 (cioè 0, 2, 4, … ingressi),l’uscita vale 0
Se un numero dispari di ingressi vale 1 (cioè 1, 3, 5, … ingressi),l’uscita vale 1
22
Controllore di parità
D0
D1
D2
D3
PAR a 4 bit
P
ingressiuscita
PAR
# riga D3 D2 D2 D0 P
0 0 0 0 0 0
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 0
4 0 1 0 0 1
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 1
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 0
Tabella delle verità
Controllore di paritàa 4 ingressi
0
1
0
01
12
23
Usi caratteristici
Confrontatore: confronti tra numeri interi (naturali o ancherelativi)
Controllore di parità: si usa per tecniche di rilevamento (e anchedi correzione) degli errori di trasmissione e di memorizzazione: codice di parità per la segnalazione di errori
24
Shifter
Effettua lo scorrimento verso sinistra o destra del valorepresente agli ingressi
Esempio: 010010011 Sinistra: 100100110 Destra: 001001001
IN1Nuovo bitOUT0INi+1INi-1OUTi
Nuovo bitINn-1OUTn01S/D
destrasinistra
13
25
Shifter
MUX0 1
MUX0 1
MUX0 1
MUX0 1
MUX0 1
O4 O3 O2 O1 O0
S/D nuovobit I4 I3 I2 I1
nuovobitI0
26
Sommatore
È la generalizzazione del sommatore completo: addizione di numeriinteri binari naturali (positivi) a n bit
Ha in ingresso due numeri interi binari naturali A e B da n ≥ 1 bitciascuno
In uscita presenta la somma a n bit dei due numeri interi A e B Può avere un riporto in ingresso e un riporto in uscita, non sempre
usati
14
27
Half-adder
1011
0101
0110
0000
CarrySommaBA
Somma = !AB + A!B = A ± BCarry = AB
A B
Carry
Somma
HALF-ADDER
28
Full-hadder
11111
10011
10101
01001
10110
01010
01100
00000
Carry outSommaCarry inBA
Somma = A ± B ± CarryInCarryOut = AB + ACarryIn + BCarryIn AB + CarryIn(A + B)
FULL-ADDER
Carry out
A B
Somma
Carry in
15
29
Sommatore per dati a 3 bit
A2
R2
A1
R1
A0
R0
FA HAFA
R2 R1 R0
FA FAFA0
B2 B1 B0
A2 A1 A0B2 B1 B0
30
Sottrattore intero binarionaturale a n bit (n-bit subtractor)
È il blocco funzionale inverso del sommatore intero a n bit Ha in ingresso due numeri interi binari naturali A e B da n ≥ 1 bit
ciascuno In uscita presenta la differenza A − B a n bit dei due numeri
interi A e B Può avere un prestito in ingresso e un prestito in uscita, non
sempre usati
16
31
110010
01
111
M = 010 = 2, S = 011 = 3, Pin = 0
D = M ! S ! Pin = 2 ! 3 ! 0 = !1 e Pusc = 1
0
32
7
! 8
M0M1 S0S1
sottrattorea 3 bit
minuendo
differenza
M2 S2
D2 D1 D0
Pusc Pin
prestito iningresso
sottraendo
prestito inuscita
Sottrattore intero binario naturale a 3 bit
010110
00
100
M = 011 = 3, S = 010 = 2, Pin = 0
D = M ! S ! Pin = 3 ! 2 ! 0 = 1 = 011
0
23
1
0
Sottrattore intero a n bit
32
Esempio di progetto in stile funzionale
Si chiede di progettare un circuito digitale combinatorio, cheabbia: in ingresso due numeri interi binari naturali (positivi) A e B da n ≥ 1
bit ciascuno in ingresso un segnale di comando C in uscita un numero intero binario naturale Z da n ≥ 1 bit
Su Z deve uscire la somma A + B se C = 0, la differenza A − B seC = 1
17
33
X
Y
S
n
nn
X + Y
X
Y
D
n
n
n
X - Y
A
B
C
nZU
I0
I1
MUX
S
-
+
(si usa un multiplatore a 2 gruppidi ingressi dati; ciascun gruppo è da n bit)
Schema logico della soluzione
34
A
B
U
C
E
comandi
esiti
operandirisultato
ALU
n
n
n
A<B A=B A>B Rusc Pusc
AddSubノ
ノノ
ALU
Rin, Pin
A=0
Unità Aritmetico-Logica
18
35
# riga Comando Operazione R Esito
0 Add somma A e B A + B + Rin riporto in uscita Rusc
1 Sub sottrae B da A A ! B ! Pin prestito in uscita Pusc
2 Pass A A passain uscita
A -
3 Pass B B passain uscita
B -
4 Zero annulla uscita 0 -
5 Shift Left A A scorre a SX 2A bit più significativo di A
6 Shift Right A A scorre a DX A / 2 bit meno significativo di A
7 Null ConfrontaA con 0
- A = 0
8 Compare ConfrontaA con B
- A < B, A = B, A > B
9 Multiply prodotto di A e B A " B riporto in uscita
10 Divide divisione A / B A / B divisione per 0 ?
… … … … …
Unità Aritmetico-Logica
36
A
B
U
C
E
comandi
esiti
operandi
risultato
ALU
n
n
nALU
Rin, Pin
A<B A
=B A
>B Rusc Pusc
……
A=0
Add
2 = 010
3 = 011
101 = 5
0 XXXX X
0
Add
6 = 110
2 = 010
001 = 9
1 XXXX X
1
Sub
5 = 101
3 = 011
010 = 2
X 0XXX X
0
And
101
100
100
X XXXX X
X
Or
101
100
101
X XXXX X
X
Esempio di calcoloCompare
4 = 100
5 = 101
XXX
X X01X 0
X
Pass A
4 = 100
XXX
100 = 4
X XXXX X
X
Zero
XXX
XXX
000 = 0
X XXXX X
X
Null
000
XXX
XXX
X XXX1 X
X
19
37
Schema logico di una ALU da 1 bit
38
Esercizio
ALU che effettua AND, OR,NOT e somma algebrica
A + B11
!B01
A or B10
A and B00
OperazioneF1F0
101111
000111
011011
010011
011101
010101
011001
000001
011110
000110
011010
000010
001100
010100
001000
000000
CarryOutOutputF1F0BA
20
39
40
21
41
42
22
43
44
23
Logica
Bistabili e Blocchi sequenziali
24
47
48
25
49
26
51
52
27
53
54
28
55
56
29
Progettazione funzionale
58
Contatori Modulo
Contatori binari che consentono di contare i colpi di clockUtilizzando n bistabili consentono di contare da 0 a 2^n-1Ad ogni colpo di clock il valore del contatore vieneincrementato di una unitàModulo significa che si resettano al raggiungimento del valoremassimo.
30
59
Contatore Modulo 8
Quanti bistabili servono per realizzarlo? 3
60
000111
111011
011101
101001
001110
110010
010100
100000
NcNbNaCBA
Tabella della verità di un contatore modulo 8Non viene considerato il segnale di clock che serve solo per attivare la transizione, ma non ha effetto sull’OUTPUT
31
61
000111
111011
011101
101001
001110
110010
010100
100000
NcNbNaCBA
Usando una tecnica appropriata scrivere lasintesi in I forma normale (SoP) delle 3 uscite
62
0111
1011
1101
1001
1110
0010
0100
0000
NaCBA
1011
0100
10110100A\BC
Na=A!C+A!B+!ABC
01
Na=A(!C+!B)+!ABC
32
63
0111
1011
1101
0001
0110
1010
1100
0000
NbCBA
1010
1010
10110100A\BC
Nb=!BC+B!C
01
Nb=B⊕C
64
0111
1011
0101
1001
0110
1010
0100
1000
NcCBA
Nc=!C
33
66
Flip-Flop tipo D
34
67
Dalla rete combinatoria al contatore
La rete combinatoria implementa la logica che consente direalizzare l’incremento
Bisogna aggiungere i bistabili ed il segnale di clock che attivi latransizione.
68
35
69
Progettazione circuito sequenziale
Implementare un circuito che memorizza due bit specificati sugliingressi solo se: Solo uno di essi differisce dai bit memorizzati precedentemente
70
36
71
Progettare in s tile funzionale, cioè combinando dei blocchi logici combinatori e sequenziali predefiniti, un circuito sequenziale che calcola la funzione F(A,B) che vale | A-B| / A con A!0 e vale B con A=0 dove A e B sono due numeri binari positivi di 4 bit, dotato dell'interfaccia seguente:
LOAD
RESET
CK
4
4
U3U2U1U0
A3A2A1A0
4
B3B2B1B0
Il circuito riceve i due dati A e B nel primo ciclo di clock, il caricamento avviene quando il segnale LOAD è attivo. Nel ciclo successivo il circuito calcola la funzione F(A,B) 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, LOAD.
• D u e gruppi di ingressi di 4 bit, (A3, A2, A1, A0) e (B3, B2, B1, B0) che accettano valori binari di 4 bit
(A3 e B3 sono i bit più significativi, A0 e B0 quelli meno significativi).
Il circuito emette in uscita 4 segnali, U3, U2, U1 e U0, su cui viene codificato un numero binario di 4 bit;
(U3 è il bit più significativo, U0 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.