Logica combinatoriale:
● Porte elementari
● Algebra booleana
● Encoders, decoders
● XOR, Circuti di parità, comparatori
● Sommatore
● Look ahead logic
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 2
Logica Sequenziale
● Latch.
● Flip-Flop
● Sincronizzazione di segnali asincroni
● Contatori e shift registers
● Macchine a stati finiti
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 3
VHDL
• Verilog Description Language
● Sintassi:
● Macchine sincrone
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 4
Esperienza di Laboratorio
• E' previsto l'uso intensivo del CAD Quartus distribuito dallacompagnia ALTERA.
● Gruppi di 2
● Un pomeriggio a settimana dedicato
● Una relazione finale riguardante un progetto realizzato e portato a termine durante il corso.
● La relazione è obbligatoria e dà accesso al colloquio finale.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 5
Considerazioni
• Siete incoraggiati a prendere appunti a lezione.
• Quantomeno tenete traccia degli argomenti svolti a lezione.
• L'esame finale, orale, verterà sia sulla parte in aula che sullaesperienza di laboratorio
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 6
Elettronica generale IProf. raffaello d’alessandro
Prof. Sergio ricciarini
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 7
Perché digitale ?
• I circuiti digitali lavorano in binario.• Due stati logici possibili, i.e. 1, 0.• Valgono le regole dell’algebra Booleana.• I circuiti usano porte logiche (AND, OR, NOT).• Un circuito analogico agisce su segnali che variano con continuità• Un circuito digitale agisce su segnali discreti (discontinui).
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 8
Logica digitale
• Variabili con due soli valori possibili.
• 1,0 ; true, false ;
• Questi stati hanno varie rappresentazioni elettriche a seconda del tipo di implementazione hardware:
• TTL, ECL, CMOS
• L’algebra che descrive le operazioni sulle variabili logiche si chiama algebra booleana.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 9
Porte logiche
• Porte che realizzano funzioni dell’algebra booleana
• AND x.y
• OR x + y
• NOT x’
• L’inversione si denota anche con un cerchietto (bubble) o.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 10
Tabella della verità (truth table)
• Truth table,
• Mostra, per tutti i possibili stati d’ingresso, i valori delle uscite.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 11
X Y OUT
0 0 0
1 0 0
0 1 0
1 1 1
AND
Vantaggi dell’elettronica digitale
• Immunità dal rumore
• Progettazione in alta frequenza (si lavora in condizioni ON/OFF)
• Flessibilità grazie ai dispositivi programmabili (FPGA, CPU, DSP)
• Relativamente facili da disegnare
• Trasmissione dati a distanza più robusta
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 12
Possibili svantaggi dell’elettronica digitale
• Consumo di Potenza
• Interfacciarsi con il mondo realerichiede la conversione da Analogico a Digitale (ADC) e viceversa (DAC)
• Errori di quantizzazzione dovuti al passaggio dal continuo al discreto
• Costi elevati (cum grano salis) di progettazione
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 13
Immunità dal rumore• Analogico v digitale
• RumoreTutti i segnali diventano più deboli percorrendo lunghe distanze e inoltre possono essere soggetti a disturbi elettrici di vario tipo. (i.e. I crepitii e sibili nei programmi radiofonici).
• Segnali analogiciIl rumore aggiunge informazioni/variazioni casuali ai segnali analogici. Ogni volta che il segnale viene amplificato, anche il rumore viene amplificato. A poco a poco, il segnale diventa sempre meno simile al segnale originale e domina il rumore di fondo.
• Segnali digitaliIl rumore si sovrappone anche ai segnali digitali. Tuttavia, questo rumore è solitamente inferiore in ampiezza rispetto all'ampiezza degli stati ON/OFF. Di conseguenza, il rumore non viene trasmesso/amplificato. Ciò significa che viene mantenuta la qualità del segnale.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 14
Come nasce l’immunità dal rumore
Nasce dalla grande differenza che c`è tra tensione in uscita min/max per rappresentare uno stato logico (1/0) e tensione in ingresso max/min per riconsocere quello stesso stato logico.
Facciamo un esempio con VDD=5V VOLmax= 0.1 V (0)
VILmax = 1.5 V (0)
VIHmin = 3.5 V (1)
VOHmin= 4.9 V (1)
DC Noise Margin High State Noise margin: 1.4 Volt = (VOHmin-VIHmin)
Low State Noise margin : 1.4 Volt = (VILmax – VOLmax)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 15
(HIGH)
(LOW)
Undefined
0 V
0.3VDD
0.7VDD
VDD
VIHmin
VOHmin
VOLmax
VILmax
Specifiche famiglie 74xx00
• Famiglia HC HCT AC ACT
• Inp. Leak. Curr. (uA) 1 1 1 1
• InputCap. (pF) 6.5 6.5 4.5 4.5
• VILmax(V) 1.0 0.8 1.5 0.8
• VIHmin(V) 3.5 2.0 3.5 2.0
• VOLmax(V) 0.1 0.1 0.1 0.1
• VOHmin(V) 4.9 4.9 4.9 4.9
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 16
CMOS SWITCH ON/OFF• Mentre prima si usavano anche i transistor a giunzione (BJT), oramai tutte le
logiche binarie utilizzano i CMOS.
• l CMOS (acronimo di complementary metal-oxide semiconductor), è un tipo di tecnologia utilizzata in elettronica digitale per la progettazione di circuiti integrati, alla cui base sta il transistor MOSFET. La porta più semplice è il NOT, costituita da due MOS in serie uno canale P e uno canale N.
• Nel ramo tra Vdd e Vss, non scorre mai corrente (....) perché quando un MOS è acceso l’altro è spento (schema complementare).
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 17
Tempi di transizione ON/OFF
• Si passa da uno stato di interdizione a uno di saturazione (e viceversa)
• Molto importanti le capacità dei gate. E’ il tempo necessario affinchè l’uscita cambi stato :
Rise time ( tr ) : LOW-to-HIGH transition Fall time ( tf ) : HIGH-to-LOW transition
Il tempo di transizione dipende da : La resistenza ON dei transistor usati. Capacità del carico (Anche dalle capacità parassite)
Circuito di output Capacità delle piste sul circuito stampato o dei fili di collegamento Capacità d’input del carico
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 18
Dissipazione di potenza
Static Power Dissipation: ( Static ) = VDD2/( Rn+Rp) ......Valore estremamente piccolo (CMOS)
Dynamic Power Dissipation: La corrente che scorre durante le transizioni quando i due transistor sono
parzialmente ON. PT= CPD*VDD2 * f
CPD : Power Dissipation Constant, f : transizioni per secondo
Carica e scarica di CL
PL= CL * VDD2 * f
Totale:P ( Dynamic ) = (CPD+CL) . VDD2 . f
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 19
Prestazioni sempre delle serie 74xx00
Famiglia HC HCT AC ACT
Propagation Delay(ns) 36 36 9.25 10.5
Static Power Dissipation(mW) 0.04 0.04 0.04 0.04
Dynamic(mW/MHZ) 2.1 2.1 1.5 1.5
Total (mW)@100kHZ 0.25 0.25 0.19 0.19
Total (mW)@10 MHZ 21.0 21.0 15.0 15.0
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 20
Come eravamo:
Medium scale integration: TTL 74xx, ECL 10000, CMOS 4000
Bassa complessità: Porte base AND, OR.
contatori ecc. ecc.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 21
circuiti integrati digitali Un insieme di porte logiche costruite su di un singolo chip al silicio Famiglie di ICs
- Small-Scale Integration ( SSI ) : Contengono 1-20 gates( Esempio :7400- series SSI IC’s )
- Medium-Scale Integration ( MSI ) : Contengono 20-200 gates ( Esempio : contatori, decoders, multiplexers )
- Large-Scale Integration ( LSI ) : Contengono 200 to 200000 gates ( Esempio : Microprocessori, memorie, PLDs )
- Very Large Scale Integration ( VLSI ) Contengono più di 500,000 transistors( Esempio : Microprocessore Pentium (1a generazione)
ASICs : ICs progettati per applicazioni particolari (schede grafiche).
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 22
Evoluzione
La produzione di dispositivi LSI o VLSI richiede più cicli di disegno, fabbricazione, collaudo: tempi “lunghi”
costi elevati
uso di fonderie
Giustificato solo per un numero molto elevato di “pezzi”.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 23
I gate array
I gate array programmabili, le PLD ecc. offrono una soluzioneintermedia: densità di gate elevata
prestazioni leggermente inferiori
IN HOUSE design and debug
tempi molto rapidi
costi molto ridotti
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 24
Gate array/dispositive programmabili
PAL (Programmable Array Logic) o PLD Simple programmable And/Or array Può includere input/output flip-flops
CPLD (Complex Programmable Logic Device) Array of multiple PAL-like blocks Programmable interconnects between blocks
FPGA (Field Programmable Gate Array) Array of simple logic cells Interconnected via wires within routing channels
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 25
Guardiamo dentro ad una CPLD (3)
One macrocell is equivalent to one flip-flop.
Macrocells are arranged in local arrays.
Local arrays are connected to fast interconnects for rows and columns.
Input Output Cells connect the device to the outside world.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 28
Come vengono connessi I vari gates ?
Le connessioni sono fatte con dei MOS usati come interruttoricontrollati da memory bits di qualche tipo: EPROM - charged floating gate, UV erasable
EEPROM - charged floating gate, electrically erasable
Flash Memory - charged floating gate, electrically erasable
SRAM - Volatile memory
Antifuse - permanent connections made electrically
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 29
FPGA software (tutti più o meno rispecchianoquesto schema)• Design Entry
• Compiler
• Waveform Editor
• Simulation
• Programmer
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 30
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 31
• Compiler• Test Vector• Simulator• Programmer
Use advanced functions
• Usate HELP
• A parte le usualifunzioni TTL, usatele LPM o Mega Functions.
• Scalabili e ottimizzate.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 32
Standard di documentazione• La documentazione di un sistema digitale deve dare l’informazione
necessaria per costruire, provare, operare e mantenere il sistema.
• Generalmente, la documentazione include:• 1) Un block diagram che mostra gli inputs, outputs, i blocchi principali del
sistema e come sono connessi.
• 2) Una Circuit description che spiega le operazioni logiche del circuito.
• 3) Un schematic diagram che mostra tutti i componenti, la loro tipologia, e tutte le interconnessioni.
• 4) Una structured logic description che spiega le funzioni delle structures complesse. Ad esempio, la tabella funzionale di un multiplexer, o il programma di una PLD ( Programmable Logic Device).
• 5) Un timing diagram che mostra i segnali logici in funzione del tempo.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 34
Block diagram• Un diagramma a blocchi deve mostrare tutti gli inputs e outputs, i
blocchi base e il nome della loro funzione, e i percorsi dei dati (segnali logici).
- I dettagli interni dei blocchi NON interessano.- Segnali logici comuni vengono disegnati con una linea spessa (BUS).
• Esempio: Min/Max Circuit
15/10/2018
Elettronica Generale I_a , Raffaello D'Alessandro
35
Comparator
Mux
Mux
Mux
X
Y
Z
MIN/MAX
X>Y
max(X,Y)
min(X,Y)
• Simboli delle porte logiche (Gates)
• OR
• NOR
• AND
• NAND
• INVERTER
• BUFFER
Schematic diagram
• Gates
• Nomi segnali e livelli attivi
• Layouts
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 36
Etichette segnale e livelli attivi
• Inputs e outputs devono avere etichette, o uguali al nome delle variabili (X,Y, A,...) ,o che riflettano azioni o condizioni particolari (ENABLE, REQUEST, /READY, ERROR, PAUSE).
• Active level: active high o active low.
• Il segnale viene asserito quando il suo livello e’ attivo e viveversa.
• Active low prefisso / al nome (anche ___ , oppure _n , ecc. ecc.)
• Esempio :- ERROR è active high = l’errore è presente quando il segnale è HIGH ( logic 1).- /READY è active low = i dati sono pronti quando il segnale è LOW ( logic 0 ).
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 37
Active Levels per i Pins
• Nei gates logici e strutture logiche la inversion bubble indical’active level del segnale
• Esempio:- 2-to- 4 Decoder
- /EN e’ active low
- A e B sono active high
- /Y0, /Y1, /Y2,/Y3 sono active low
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 38
EN
A
B
Y0
Y1
Y2
Y3
/ EN
A
B
/ Y0
/ Y1
/ Y2
/ Y3
Layout di disegno
• Inputs a sinistra, outputs a destra.
• I segnali fluiscono da sinistra a destra.
• Linee incrociate/Linee Connesse (T-type)
• Etichette Bus : DATA[0-7], CONTROL
• Un segnale estratto da un bus deve essere etichettato
• Bus Flags : - Unidirezionale - Bidirezionale
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 39
DATA[0-7]
DATA5
DATA6
Diagrammi di temporizzazione
• Ad esempio, qui si evidenziano dei «delay» che dipendono da: - Struttura interna del circuito- Famiglia dei dispositivi usati- Voltaggio- Temperatura
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 40
IN
/ENABLE
OUTLogic
CircuitIN
/ENABLE
OUT
tOUT
IN
/ENABLE
OUT
tOUTmin
tOUTmax
Timing Diagram per i segnali dei Dati (Bus)
• Varie temporizzazioni da rispettare e da specificare!
• t1 : tsetup
• t2 : toutmin
• t3 : toutmax
• t4 : thold
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 41
IN
/WRITE
Logic
Circuit
(Memory)
OUT
IN
/WRITE
OUT
t1
t2
t3
t4
old data
new data
new data
Logica combinatorialeL’uscita dipende unicamente dagli ingressi
Non si hanno elementi di memoria (flip-flop)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 42
Porte elementari
• AND Gate OR Gate NOT gate
0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 01 0 0 1 0 1 1 1 1 1 1 1
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 43
X
Y
Z X
Y
Z
X Y Z X Y Z
X X’
X X’
Con diagramma temporale
• NAND a 3 ingressi
• 0 0 0 1 0 0 1 10 1 0 10 1 1 11 0 0 11 0 1 11 1 0 11 1 1 0
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 44
X Y Z W
X
Y
Z
W
XYZ
w
time
Rappresentazione di funzioni logiche
• Come sintetizzare la logica a partire dalla tabella della verità.
• Tabella della verità con 2n righe, n: numero delle variabili
• Definizioni:-Literal: una variabile o il suo complementoEsempio: X , Y’
-n-variabili minterm : prodotto con n literalsEsempio: X’.Y.Z
-n-variabili maxterm : somma con n literalsEsempio: X+Y’+Z
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 45
maxterm
• Un Minterm è costruito con l’AND di tutte le variabili d’ingresso, (o il loro complemento)• di conseguenza la sua truth table avrà un solo 1 e 2n-1 zeri
• si denota con la lettera m (minuscola) e un subscript numerico
• eg. m4 identifica il minterm che ha 1 alla riga 4 e zero nelle altre
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 46
• Un Maxterm è costruito con l’OR di tutte le variabili d’ingresso, (o il loro
complemento)
• di conseguenza la sua truth table avrà un solo 0 e 2n-1 uni
• si denota con la lettera M (maiuscola) e un subscript numerico
• eg. M4 identifica il maxterm che ha 0 alla riga 4 e uno nelle altre
MINTERM
Esempio : F( X, Y , Z )
• Riga X Y Z F Minterms Maxterms
0 0 0 0 0 X’.Y’.Z’ X +Y +Z1 0 0 1 1 X’.Y’.Z X +Y +Z’2 0 1 0 0 X’.Y .Z’ X +Y’+Z3 0 1 1 1 X’.Y .Z X +Y’+Z’4 1 0 0 0 X .Y’.Z’ X’+Y+Z5 1 0 1 0 X .Y’.Z X’+Y+Z’ 6 1 1 0 1 X .Y .Z’ X’+Y’+Z7 1 1 1 0 X .Y. Z X’+Y’+Z’
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 47
Sintesi logica con I minterm
• Con i Minterm possiamo scrivere la funzione logica di qualsiasi truth table
• La funzione logica sarà l’OR dei Minterm corrispondenti alle righe della truth table che hanno 1 come risultato finale
• Ricordatevi che (x + 1) = 1; quindi se un MINTERM è 1 anche la funzione che abbiamo costruita darà 1
• Ricordatevi che un Minterm è uguale ad 1 SOLO per la sua riga corrispondente
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 48
Esempio : F( X, Y , Z ) con I minterm
• Riga X Y Z F Minterms Maxterms
0 0 0 0 0 X’.Y’.Z’ X +Y +Z1 0 0 1 1 X’.Y’.Z X +Y +Z’2 0 1 0 0 X’.Y .Z’ X +Y’+Z3 0 1 1 1 X’.Y .Z X +Y’+Z’4 1 0 0 0 X .Y’.Z’ X’+Y+Z5 1 0 1 0 X .Y’.Z X’+Y+Z’ 6 1 1 0 1 X .Y .Z’ X’+Y’+Z7 1 1 1 0 X .Y. Z X’+Y’+Z’
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 49
• Selezioniamo solamente i
MINTERM con F = 1
• Costruiamo la funzione F
facendo l’OR dei 3 MINTERM
scelti
• F = m1 + m3 + m6
Sintesi logica con i Maxterm
• Anche con i Maxterm possiamo scrivere la funzione logica di qualsiasi truth table
• La funzione logica sarà l’AND dei Maxterm corrispondenti alle righe della truth table uguali ad 0.
• Ricordatevi che (x.0) = 0
• Ricordatevi che un Maxterm è uguale ad 0 SOLO per la sua riga corrispondente.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 50
Esempio : F( X, Y , Z ) con i Maxterm
• Riga X Y Z F Minterms Maxterms
0 0 0 0 0 X’.Y’.Z’ X +Y +Z1 0 0 1 1 X’.Y’.Z X +Y +Z’2 0 1 0 0 X’.Y .Z’ X +Y’+Z3 0 1 1 1 X’.Y .Z X +Y’+Z’4 1 0 0 0 X .Y’.Z’ X’+Y+Z5 1 0 1 0 X .Y’.Z X’+Y+Z’ 6 1 1 0 1 X .Y .Z’ X’+Y’+Z7 1 1 1 0 X .Y. Z X’+Y’+Z’
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 51
• Selezioniamo solamente i
MAXTERM con F = 1
• Costruiamo la funzione F
facendo l’AND dei 5 MAXTERM
scelti
• F = M0 . M2 . M4 . M5 . M7
Forma Canonica e rappresentazione compatta
• La forma canonica è quella già vista:
• Esempio con i MINTERM: F = m1 + m3 + m6 = x’y’z + x’yz + xyz’
• Una forma compatta (lista) è data da:
• F = m(1,3,6)
• F = M(0,2,4,5,7)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 52
Sintesi circuiti combinatoriali
• Tab. ver. Funz. logica Circuito logico
• 1- Funzione logica:- Espressione somma canonica.- Espressione prodotto canonico.
2- Implementazioni canoniche :- AND-OR ( NAND-NAND)- OR-AND ( NOR-NOR)
• Minimizz. funzione logica : Semplificare per ridurre il numero di gates.
• Metodi di minimizzazione:1- Leggi Demorgan 2- Mappa Karnuagh
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 53
1 2
Proprietà fondamentali e leggi di De Morgan• OR: A + 0 = A; A + 1 = 1 ; A + A = A; A + A’ = 1
• AND: A • 0 = 0; A • 1 = A ; A • A = A; A • A’ = 0
• Associativa: (A + B) + C = A + (B + C) ; (A • B) • C = A • (B • C)
• Commutativa: A + B = B + A ; A • B = B • A
• Distributiva: A • (B + C) = A • B + A • C
Leggi di De Morgan • A • B • C •....... = (A’ + B’ + C’ + ....... )’
• A + B + C + ...... = (A’ • B’ • C’ • .......)’
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 54
Esempio con Booleana
• F = (A+C).(A.B+C)
A B C (A.B) (A.B)+C (A+C) F 0 0 0 0 0 0 00 0 1 0 1 1 10 1 0 0 0 0 0 0 1 1 0 1 1 11 0 0 0 0 1 01 0 1 0 1 1 11 1 0 1 1 1 11 1 1 1 1 1 1
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 55
FB
C
(A.B) (A.B)+C
(A+C)
A
Semplificazione
• F = (A+C).((A.B)+C) = A.(A.B+C)+C.(A.B+C)= A.A.B+A.C+C.A.B+C.C = A.B+A.C+A.B.C+C = (A.B+A.B.C)+(A.C+C) = (A.B.(1+C)+((A+1).C)= A.B+C
• Implementazione equivalente della funzione logica F :
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 56
A
B
C
F = A.B+C(A.B)
A
B
C
(A+B)
’
(B.C’)
’
A
B
C
(B.C’)
Rimpiazzato da:
(A+B)
F = A+B+B.C’
Esempio con De morgan• F= [ (A+B)’. (B.C’)’]’
= (A+B)’’ + (B.C’)’’ De Morgan
• = A+B +B.C’= A+B.(1+C’)= A+B.1= A+B
• Implementazione equivalente!! :
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 57
A
BF
Mappa di Karnaugh
• È una rappresentazione grafica dei minterms (Maxterms) che mette accostati termini che differiscono per un solo literal.
• In questo modo si trovano ad “occhio” le semplificazioni
• Ad esempio, una rappresentazione per una funzione con tre variabili:
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 58
00 01 11 10
0
1
00 00 00 00
00 00 00 00
ab
c
Riempiamo con I minterm la mappa per f
• Mettere un “1” nei quadrati corrispondente ai minterm della funzione:
• La mappa è continua, il bordo a destra è adiacente a quello di sinistra:
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro
59
abc f
000 0
001 1
010 1
011 1
100 0
101 0
110 1
111 0
00 01 11 10
0
1
m0 m2 m6 m4
m1 m3 m7 m5
ab
c
00 01 11 10
0
1
1 1
1 1
c
ab
b=0 b=0
00 01 11 10
0
1
1 1
1 1
ab
c
a=0 a=1
b=1
Esplicitiamo i gruppi
• Due minterm adiacenti differiscono per solo una variabile (literal) che viene eliminata.
• In questo caso la variabile “b” assume entrambi i valori 0 ed 1
• Il gruppo cerchiato corrisponde ad a=0 e c=1, con b che può assumere entrambi i valori, l’espressione minima è quindi a’c.
• Con l’algebra Booleana, a’b’c + a’bc = a’c
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 60
b=0 b=0
00 01 11 10
0
1
1 1
1 1
ab
c
a=0 a=1
b=1
Altri gruppi di due
• Il gruppo rosso da a’c.
• {a’b’c + a’bc = a’c}
• Il gruppo in verticale da a’b.
• {a’bc’ + abc = a’b}
• Il gruppo verde da bc’.
• {a’bc’ + abc’ = bc’}
• Questi tre gruppi sono ridondanti, il gruppo verticale non porta a nessuna uscita che non sia già coperta dala gruppo rosso e dal gruppo verde
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 61
b=0 b=0
00 01 11 10
0
1
1 1
1 1
ab
c
a=0 a=1
b=1
Espressione minima finale
• Selezionate il numero minimo di gruppi necessari per “coprire” gli “1” della mappa.
• f = bc’ + a’c
• Il termine eliminato è ridondante
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 62
b=1
b=0 b=0
a=0 a=1
00 01 11 10
0
1
1 1
1 1
ab
c
Comparatori e codici di parità• La porta XOR (Exclusive OR) ; XNOR (Exclusive NOR)
• XOR : XOR
• XNOR :
• Tabella Verità:
X Y XOR XNOR XNOR0 0 0 10 1 1 01 0 1 01 1 0 1
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 63
X
Y
F
X
Y
F
Applicazione XOR : Circuito di Parità• Odd Parity Circuit : output è 1 se un numero dispari di inputs sono 1
• Even Parity Circuit : output è 1 se un numero pari di inputs sono 1
• Esempio : Circuito di paritá a 4 bit:
Struttura concatenata Struttura ad albero
Input : 1101 Odd Parity output : 1Even Parity output : 0
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 64
I0
I1
I2
I3
ODD
EVEN I0
I1
I2
I3
ODD
EVEN
Parità• Ci sono varie implementazioni di codici di parità• La più semplice è proprio il conteggio di quanti bit nella parola (byte o
multipli) sono uguali tra loro• Diventa vitale nella trasmissione dati:
• La parità del dato viene calcolata in partenza (i.e. 10111001 (1) ODD PARITY)• Vengono quind trasmessi 9 bi; 8 di dati e uno di parità• Chi riceve ricalcola a sua volta la parità del dato (8 bit) e la confront con il 9 bit
trasmesso• Se non coincidono vuol dire che uno dei 9 bit ha subito un’ inversione e il dato deve
essere ritrasmesso• Molto improbabile che si abbiano 2 inversioni contemporaneamente
• Ipotesi: bit flip scorrelati tra loro !!! ; se la probabilità di un bit flip è 10-7 , quella di due sarà 10-14
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 65
Comparatori
• Comparano due parole binarie, output=1 se le due parole sono uguali
• Comparatori avanzati :
• 1-bit Comparator : XOR gate , Output = 1 if A<>B
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 66
AComparator OUTPUT
B
A
Comparator
A=B
BA>B
A<B
A
B
F
Comparatori multibit
• Comparatore parallelo Comparatore Seriale
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 67
A0
B0
A1
B1
A2
B2
A3
B3
A¹B
X Y
EQI
EQO
EQI X Y EQO0 x x 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1
X Y
EQI EQO
X0 Y0
EQ1X Y
EQI EQO
X1 Y1
EQ1X Y
EQI EQO
X(N-1) Y(N-1)
EQNEQ1(N-1)
Somma e sottrazione con i numeri binari
• Rappresentazioni binarie
• Circuiti sommatori
• Circuiti sottrattori
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 68
• Tabella somma binaria :
0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 1 1 1 1 1 1
• Esempio : 1 0 0 0 1 0 1 1 0 0 0
x 1 7 3 1 0 1 0 1 1 0 1 Numeri positivi che sommati danno altri numeri positiviy + 4 4 0 0 1 0 1 1 0 0 La rappresentazione del numero riguarda solo il cambio della base
_____ ____________ da decimale a binario.2 1 7 1 1 0 1 1 0 0 1
Regola della somma
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 69
carry(in) x y x+y carry(out)
Esempi somme
• 1 0 1 0 0 1 0 0 1 0
1 1 0 1 0 1 0 1 0 1 + 0 1 1 1 1 + 1 1 0 0 1
_________ _________
• 1 0 1 0 0 1 1 0 1 1 1 026+15 = 41 21+25=46
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 70
• Tabella sottrazionebinaria :
0 0 0 0 00 0 1 1 10 1 0 1 00 1 1 0 01 0 0 1 11 0 1 0 11 1 0 0 0 1 1 1 1 1
• Esempio : 0 1 0 0 1 1 0 1 1 1 1 0
x 2 1 0 1 1 0 1 0 0 1 0 Numeri positivi che sottratti danno altri numeri positivi (X>Y)y - 1 0 7 0 1 1 0 1 0 1 1 La rappresentazione del numero riguarda solo il cambio della base
_____ ____________ da decimale a binario.1 0 3 0 1 1 0 0 1 1 1
Regola della sottrazione
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 71
borrow(in) x y x-y borrow(out)
Esempi sottrazione (X>Y)
• 1 1 1 1 0 0 1 1 0 0
1 1 0 1 0 1 1 1 0 1 - 0 1 1 1 1 - 1 0 1 1 1
________ _________
• 0 1 0 1 1 0 0 1 1 026 - 15 = 11 29 - 23 = 6
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 72
Numeri negativi
• Cosa usiamo come segno “ - “ ?• Usiamo il MSB (Most Significant Bit) 1 = - ; 0 = +
• -6 = (1)110 (Nbit = 4)
• Dobbiamo specificare a priori quanti bit uso per la rappresentazionebinaria
• Dobbiamo fare attenzione agli “Overflow”
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 73
Rappresentazione dei numeri negativi
• Signed magnitude
• One’s complement
• Two’s complement
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 74
Rappresentazione signed magnitude
• Il MSB rappresenta il segno ( 0 = + , 1 = - )
• Con n-bit si spazia da : -(2 n-1 – 1) a +(2 n-1 - 1)
• Es. n=5* Range : da -15 a 15* 10011= -3 , 01100 = +12* 00000= 0 , 10000 = - 0
• Svantaggi :1- Due possibili rappresentazioni dello zero2- Si complicano notevolmente gli addizionatori digitali
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 75
One’s complement• Il MSB rappresenta il segno ( 0 = + , 1 = - )
• Il numero negativo è il complemento dei bits del numero positivo• Il valore decimale di un numero binario a n-bit è =
• Con n-bit si spazia da -(2 n-1 - 1) a +(2 n-1 - 1)
• Vantaggi : 1- Simmetria2- Facilità di implementazione
• Svantaggi:1- Due rappresentazioni dello zero2- Sommatori digitali complicati
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 76
esempio
• n= 8range da -127( 10000000) a 127 ( 01111111)
• +123(dec) = 01111011
-123(dec) = 10000100
• 0(dec) = 00000000
-0(dec) = 11111111
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 77
Two’s complement• Il MSB rappresenta il segno (0 = + , 1 = -)
• Il numero negativo si ricava con :1- Si fa il complemento di tutti i bits del numero positivo (complemento
a uno)2- Si somma 1
• Il valore decimale di un numero a n-bits é =
• Con n-bit si spazia da -(2 n-1 ) a +(2 n-1 - 1)
• Vantaggi :1- Unico zero2- Somma e sottrazione si fanno direttamente
• Svantaggio : Un extra numero negativo (asimmetrico)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 78
Esempio• n= 8
- range da -128( 10000000) a 127 ( 01111111)
• +115(dec) = 01110011
passo da + a - 10001100 Compl. a 11 +
_________10001101 = -115(dec) Rapp. Compl. a due
• 0(dec) = 0000000 ; 111111111 +
_________1 00000000 = 0(dec)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 79
Raffronto (N=4)• -8 - 1000
• -7 1111 1000 1001
• -6 1110 1001 1010
• -5 1101 1010 1011
• -4 1100 1011 1100
• -3 1011 1100 1101
• -2 1010 1101 1110
• -1 1001 1110 1111
• 0 0000 or 1000 0000 or 1111 0000
• 1 0001 0001 0001
• 2 0010 0010 0010
• 3 0011 0011 0011
• 4 0100 0100 0100
• 5 0101 0101 0101
• 6 0110 0110 0110
• 7 0111 0111 011115/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 80
Decimale Signed Magnitude One’s Complement Two’s Complement
Somma con la rappresentazione complemento a due
• Regole della somma ( A+B ): 1- Si usano le normali regole di somma binaria.2- Si ignora il carry dopo il bit di segno
• Se non si eccede il “range” massimo il risultato sara’ corretto incluso il bit di segno.
• Esempi (Nbit = 4, Two’s complement):1 0 0 0 1 1 1 0 0 1 1 0
(-2) 1 1 1 0 (-3) 1 1 0 1 (-3) 1 0 1 1+ (-4) 1 1 0 0 (+3) 0 0 1 1 + (3) 0 0 1 1
______ ______ ______(-6)1 1 0 1 0 (0) 1 0 0 0 0 -6 1 1 1 0
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 81
Signed Magnitude !!!
Sottrazione con la rappresentazione complemento a due
• Metodo 1 : [ A - B ]1- Usando le regole della sottrazione binaria2- Viene ignorato il borrow dopo il bit di segno
•
• Esempio :
1 1 0 0 0 (2) 0 0 1 0
-(4) 0 1 0 0______
(-2) 1 1 1 0
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 82
• Metodo 2 : [ A + (-B) ]Si somma A al complemento a due di B :1- Si prende il complemento a 1 di B2- Si somma ad A con Carry In iniziale =1
• Esempio ( 2 - 4)0 1 0 (1!!)0 0 1 0 (2)
+ 1 0 1 1 (Rappr. Compl. a 1 del numero -4 )___________________1 1 1 0 (-2)
Overflow
• Regole per scoprire un overflow (“range” ecceduto) :- Il bit di segno della somma è diverso dai bit di segno dei due addendi- Il carry in( Cin) e il carry out (Cout) del bit di segno sono differenti
• Esempio (n=4, complemento a due, range tra –8 e +7):0 1 0 0 0 1 0 0 0 0
(4) 0 1 0 0 (-4) 1 1 0 0+(5) 0 1 0 1 + (-5) 1 0 1 1
______ ______0 1 0 0 1 1 0 1 1 1 (Cin è diverso da Cout, e i bit di
segno sono diversi)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 83
Addizionatore/sottrattore
Half Adder
Full Adder
Ripple Adder
Full Subtractor
Ripple Subtractor
Adder/Subtractor Circuit
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 84
Half adder
• Tabella verità :X Y S=(X+Y) CO0 0 0 00 1 1 01 0 1 01 1 0 1
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 85
Y
XS
CO
Full adder
• Tabella veritá:
0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 1 1 1 1 1 1
• S = X’Y’CIN+ X’YCIN’+XY’CIN’+XYCIN
• S = X+Y+CIN
• COUT=XY+XCIN+YCIN
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 86
X Y CIN SUM COUT
Y
X
S
CIN
COUT
X Y
COUT CINS
Y
XS’
CO’
CIN
S’SUM
CO’’
COUTCO’’
1a VERSIONE 2a VERSIONE
Sommatore
• COUT=X’YCIN+XY’CIN+XYCIN’+XYCIN
• COUT=(X’+X)YCIN+(Y’+Y)XCIN+(CIN’+CIN)XY = XY+X CIN+Y CIN
• XOR=X’Y+XY’
• S=(X++Y)++CIN =(X’Y+XY’)++CIN=(X’Y+XY’)’CIN+X’YCIN’+XY’CIN’
• S=(X’Y)’(XY’)’CIN+X’YCIN’+XY’CIN’=(X+Y’)(X’+Y)CIN+X’YCIN’+XY’CIN’
• S=XX’CIN+XYCIN+Y’X’CIN+YY’CIN+X’YCIN’+XY’CIN’
• S=XYCIN+Y’X’CIN+X’YCIN’+XY’CIN’
• S = X’Y’CIN+ X’YCIN’+XY’CIN’+XYCIN
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 87
Sommatore con Ripple
• Configurazione a cascata di n Full Adders : Nbit RIPPLE ADDER
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 88
X Y
COUT CINS
X Y
COUT CINS
X Y
COUT CINS
X0 Y0X1 Y1XN YN
S0S1SN
COUT CIN
SottrattoreTabella veritá:
0 0 0 0 00 0 1 1 10 1 0 1 00 1 1 0 01 0 0 1 11 0 1 0 11 1 0 0 0 1 1 1 1 1
• D = X’Y’BIN + X’YBIN’ + XY’BIN’ + XYBIN
• D= X++Y++BIN
• BOUT=X’Y+X’BIN+Y BIN
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 89
X Y
BOUT BIND
Y
X
D
BIN
BIN X Y D=X-Y BOUT
Sommatore usato come sottrattore
• X,Y sononumeri binari unsigned a n-bit
• Addizione : S = X + Y
• Sottrazione : D = X - Y = X + (-Y) = = X+ (Complemento a due di Y)= X+ (Complemento a uno di Y) + 1= X+ Y’+ 1
• Un Sommatore Ripple Adder puo’ essere usato come sottrattore invertendo Y e impostando il carry iniziale ( CIN ) a 1
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 90
Sommatore/sottrattore• M=0 : Sommatore a ripple
• M=1 : Sottrattore a ripple
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 91
X Y
COUT CINS
X Y
COUT CINS
X Y
COUT CINS
X0 Y0X1 Y1XN YN
S0/B0SN / BN
COUT/
BOUT
S1/B1
COME ELIMINARE IL RIPPLE ?
Non possiamo più usare il Cout !
• CLL: Logica di Carry Lookahead
• I0 = C0
• Ik = ??
• Ik è funzione combinatoriale di tutti gli ingressi X e Y fino all’ordine k-1.
15/10/2018
Elettronica Generale I_a , Raffaello D'Alessandro
92
X Y
CLL
S
X Y
CLL
S
X Y
CLL
S
X0 Y0X1 Y1Xk Yk
S0S1Sk
I0Ik I1
Logiche di Carry Lookahead
X Y
CLL
S
Xn Yn
Sn
In
COUT
Yi
Xi
S
Ci
Xi-1
X0
Yi-1
Y0
C0
Carry
Lookahead
LogicIk
hs
Sommatorecon Look Ahead
Look Ahead logic
• Dobbiamo dare un’espressione per Ci generato dal circuito di Carry Lookahead.
• Il sommatore, quando produce Ci = 1 ?1) Xi-1 = 1 e Yi-1 = 1 ( il carry viene generato) Oppure quando,2) Ci-1 = 1 e (Xi-1 = 1 o Yi-1 = 1) ( il carry viene propagato )
• Algebra Booleana:Ci = (Xi-1.Yi-1) + (Xi-1+Yi-1).Ci-1 { Ricordatevi : COUT=XY+XCIN+YCIN}
• Definendo gi= Xi.Yi , pi= Xi+Yi
• Si ha : Ci = gi-1+pi-1.Ci-1 ; (C0 = 0 / 1 (Somma/Sottrazione) )
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 93
Eliminare la ricorsività
Ci = gi-1+pi-1.Ci-1 ; gi=Xi.Yi pi=Xi+Yi
- C1=g0+p0.C0
- C2=g1+p1.C1 = g1+p1.(g0+p0.C0) = g1+p1.g0+p1.p0.C0
- C3= g2+p2.C2 = g2+p2.(g1+p1g0+p1.p0.C0) = g2+p2.g1+p2.p1.g0+p2.p1.p0.C0
- C4= .................
C1, C2, C3, ..... vengono tutti generati CONTEMPORANEAMENTE con quasilo stesso ritardo, quindi il ripple viene eliminato
La logica combinatoriale si complica notevolemente già dopo i primi bit.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 94
Lookahead e riporto seriale a blocchi
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 95
74x2834bit carrylookahead
Altre rappresentazioni• Gray Code (da Frank Gray)
• Solo un bit cambia stato tra due parole di codice sequenziali
• Binary Code e Gray Code ( n = 3 ) :
0 000 0001 001 0012 010 011 3 011 0104 100 1105 101 1116 110 1017 111 100
• Applicazioni :- Elettromeccaniche (Encoding disks) –Riduzione dei disturbi dovuti alle commutazioni di un contatore
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 96
• Si ottiene il bit iesimo del Gray Code dal confronto
dei bits i e i+1 del Binary Code :
- Si aggiunge uno 0 extra alla sinistra del Binary code
- Se i bits i e i+1 del Binary code sono uguali allora il
bit i del Gray code è = 0 , altrimenti è =1.
• Esempio:
• Binario 10011
010011
• Gray Code : 11010
Rappresentazioni numeri decimali
• Per rappresentare una cifra decimale abbiamo bisogno di 4 bit.
• Eg. :- BCD (8421)- Binary Coded Decimal
• 2421Excess-3
- Altri codici decimali:
• Biquinario ( 7 bits )1 su 10 ( 10 bits )
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 97
Raffronto
• 0 0000 0000 0011 0100001 1000000000
• 1 0001 0001 0100 0100010 0100000000
• 2 0010 0010 0101 0100100 0010000000
• 3 0011 0011 0110 0101000 0001000000
• 4 0100 0100 0111 0110000 0000100000
• 5 0101 1011 1000 1000001 0000010000
• 6 0110 1100 1001 1000010 0000001000
• 7 0111 1101 1010 1000100 0000000100
• 8 1000 1110 1011 1001000 0000000010
• 9 1001 1111 1100 1010000 0000000001
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 98
Decimal BCD(8421) 2421 Excess-3 Biquinary 1-out-of-10
Codifica caratteri
• Tabella ASCII
• Ogni carattere è rappresentato da una stringa di bit
• ASCII - the American Standard Code for Information Interchange.
• I caratteri sono codificati in stringhe di 7 bits.
• Nei 128 caratteri sono inclusi:
• - lettere minuscole e maiuscole
• - numeri
• - punteggiatura
• - caratteri di controllo
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 99
Timing Hazards
• La tabella della verità determina il comportamento stazionario del circuito combinatoriale (statica)
• Comportamento nel Transiente : - Glitches in uscita quando cambiano gli ingressi.- Glitches dovuti ai diversi ritardi per i percorsi dei segnali.- Timing Hazards si riferiscono alla possibilità di avere glitches durante le transizioni dei segnali in ingresso.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 100
Definizioni• Hazard statico:* Static-1 Hazard : Due combinazioni di input che:
- differiscono per una sola variabile.- entrambe danno come risultato 1.- possono produrre un glitch di 0 durante la transizione dell’ingresso
* Static-0 Hazard : Due combinazioni di input che:- differiscono per una sola variabile.- entrambe danno come risultato 0.- possono produrre un glitch di 1 durante la transizione dell’ingresso
• Hazard dinamico: - L’uscita puo’ cambiare piu’ volte durante la transizione dell’ingresso.- Di solita e’causata dalla presenza di piu’ percorsi con ritardi differenti tra ingressi ed uscita
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 101
1
0
1
0
Esempio• F= YZ+XZ’
• Delay per ogni gate = T .
• Input cambia da XYZ=111 to 110 (Output = 1 per entrambe le configurazioni)
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 102
X
Y
Z FX
Y
Z
YZ
Z’
XZ’
F
Tglitch
1
0
1
1
1
1
1
1
0
0
0
0
0
Eliminazione dei timing hazard
• Si possono usare le mappe di Karnaugh
• In generale si cerca SEMPRE di lavorare con segnali sincroni (vedimodulo I_b sulle logiche sequenziali), ovvero con segnali che vengono“agganciati” ad un unico clock di sistema
• Un segnale asincrono può essere reso sincrono grazie all’uso dei flip-flop
• Con segnali sincroni e logiche che lavorano in sincronia si riescono a contenere I problem legati agli hazard temporali.
15/10/2018 Elettronica Generale I_a , Raffaello D'Alessandro 103