Sunteți pe pagina 1din 58

&II.3.

DIAGRAME LOGICE

FII 1
Alfabetul diagramelor logice
A B AND
• Porţi elementare 0 0 0
– AND A 0 1 0
B AND 1 0 0
– OR 1 1 1
Poarta AND
– NOT
A B OR
0 0 0
A
• Funcţionarea unei B
OR 0 1 1
1 0 1
porţi se poate Poarta OR 1 1 1
descrie printr-un
tabel de adevăr
(funcţia booleană A NOT
ataşată) A NOT
0 1
FII Poarta NOT 1 0 2
Alfabetul diagramelor logice
A B NAND
• Alte porţi utile 0 0 1
– NAND A 0 1 1
B NAND
– NOR 1 0 1
– XOR Poarta NAND 1 1 0
• NAND = NOT ° AND
• NOR = NOT ° OR A B NOR
0 0 1
• XOR implementează A
NOR 0 1 0
funcţia sau-exclusiv B
1 0 0
• Porţile NAND şi NOR Poarta NOR 1 1 0
necesită doar 2
tranzistori A B XOR
– pentru AND şi OR e 0 0 0
nevoie de câte 3 A XOR
B 0 1 1
tranzistori 1 0 1
Poarta XOR
FII 1 1 03
• În diagrame logice apar şi porţi
“elementare” cu mai multe intrări
• Operaţiile binare asociative pot fi extinse
la operaţii cu orice număr finit de operanzi


FII 4
Set minimal de generatori
• Care este numărul minim de tipuri de
porţi ce ar trebui produse pentru a putea
obţine din ele circuite care implementează
orice funcţie booleană?
• 3 – anume, {NOT, OR, AND} – este un
răspuns parţial
• Forme normale (disjunctivă, conjunctivă)
• Şi două ajung: NOT şi una din celelalte
două
• Răspunsul corect este 1, cu două soluţii:
{NAND} şi {NOR}
FII 5
Temă
• Arătaţi că {NAND} şi {NOR} sunt mulţimi de generatori
pentru funcţiile booleene
•Indicaţie: se foloseşte FND sau FNC. În particular:

FII 6
A
A 1
A+B
B  A+B
B
1

FII 7
&II.4. DESCRIEREA
ADUNĂRII ÎN BAZA 2
PRIN FUNCŢII BOOLEENE

FII 8
Definirea funcţiilor booleene
• Funcţiile logice booleene pot fi definite în
mai multe moduri:
• prin tabel de adevăr
• prin expresii conţinând variabile şi operaţii logice
• în formă grafică
• în sigma-notaţie (Σ)
• Exemplu: funcţia “majoritatea dintre k”
• are k variabile şi o valoare
• valoarea funcţiei este 1 numai dacă majoritatea
variabilelor au valoarea 1
• vom studia funcţia pentru k=3.

FII 9
Σ-notaţia

• f=(3,5,6,7)
– Fiecare număr din paranteză reprezintă un
termen
–  denotă disjuncţia termenilor
– Numărul de variabile n este cea mai mică
putere a lui 2 strict mai mare decât cel mai
mare număr ce apare în paranteză
• n = 3: 4 = 22 < 7 < 23 = 8
• f(x1 , x2 , x3)= (3,5,6,7)
FII 10
Σ-notaţia
• Fiecare număr din paranteză se scrie în
baza 2 pe n poziţii
– 3  011
• Termenul corespunzând unui număr
conţine:
– toate variabilele,
– fiecare negată dacă îi corespunde un 0 şi
nenegată pentru 1,
– legate prin conjuncţie
– 3  011  x1  x 2  x3
FII 11
Σ-notaţia

f(A , B, C)  A  B  C  A  B  C 
 A B  C  A B  C
• 11 aplicări ale funcţiilor elementare OR / AND.
• Găsirea unei expresii echivalente (aceeaşi
funcţie booleană) cu mai puţine aplicări de
operatori ar face respectivul circuit
– mai rapid,
– mai ieftin,
– mai fiabil.
FII 12
Funcţia “imparitate” cu 3 intrări
• Implementarea formei normale
disjunctive
A B C IMP
A BC
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
IMP
1 1 0 0
1 1 1 1

FII 13
Implementarea funcţiei
“majoritate din 3”
A B C F • Forma normală disjunctivă: patru
termeni, fiecare conţinând doar
0 0 0 0
conjuncţii
0 0 1 0 – corespund celor 4 linii cu ieşirea 1
0 1 0 0 • În fiecare termen, o variabilă
0 1 1 1 apare negată numai dacă
1 0 0 0 valoarea sa pe acea linie este 0.
F=ABC+ABC+
1 0 1 1
+ABC+ABC
1 1 0 1
• Se poate implementa o expresie
1 1 1 1 echivalentă mai simplă ?

FII 14
Minimizare
• Nu doar set minimal de operatori, ci şi – pentru o
funcţie dată – număr minimal de aplicări ale
acestora (AND / OR)
• FND – un număr de apariţii ale operatorilor
– 11 OR / AND în exemplu
• Proceduri de minimizare – reduc expresia
– Rescriere echivalentă
– Inducţie perfectă
– Metoda Veitch-Karnaugh
– Metoda Quine-McCluskey
• Hibridizare (ex: V-K urmat de distributivitate)
FII 15
Minimizare prin rescriere algebrică
• Funcţia “majoritate din 3”

Idempotenţă
ABC+ABC+ABC+ABC =

ABC+ABC+ABC+ABC+ABC+ABC
• Expresia devine:

BC+AC+AB

•FII Metodă dificilă pentru expresii complexe 16


&II.5. MINIMIZAREA
FUNCŢIILOR
BOOLEENE PRIN
METODA
DIAGRAMELOR
KARNAUGH
FII 17
Structura unei diagrame
Karnaugh pentru n variabile
• Pe structura unui tabel bidimensional
• Zona variabilelor
• 2 clase : etichete de linii / coloane (n par  clase egale)
• se scriu numele variabilelor
• Zona etichetelor
• o etichetă este un şir de n biţi, dacă funcţia are n
variabile
• Pentru n par, n/2 biţi într-o etichetă de linii, n/2 pentru o
etichetă de coloană
• fiecare bit dintr-o etichetă corespunde unei variabile
• Zona celor 2n locaţii din diagramă
• în care se vor trece doar valorile de 1.
FII • unei locaţii îi corespunde o unică etichetă 18
Metoda Karnaugh
Ordinea codului
Grey

BC CD
A AB 00 01 11 10
B
A 0 1 00 01 11 10
00
0 0
01
1 1
11

10
Diagrama Karnaugh Diagrama Karnaugh
pentru două variabile pentru 3 variabile Diagrama Karnaugh
FII pentru 4 variabile 19
Etichete: codul Grey
•Etichetele nu se scriu în ordinea naturală, ci în
ordinea Grey.
•pe 2 poziţii binare: 00, 01, 11, 10.
•pe 3 poziţii binare:
000, 001, 011, 010, 110, 111, 101, 100.
•pe 4 poziţii binare:
0000, 0001, 0011, 0010, 0110, 0111, 0101,0100,
1100, 1101, 1111, 1110, 1010, 1011, 1001,1000.
•Oricare două etichete consecutive – inclusiv
prima şi ultima! - diferă printr-un singur bit.
FII 20
Adiacenţe în diagrame
Karnaugh
• Două poziţii sunt adiacente dacă
etichetele corespunzătoare diferă pe un
singur bit.
• Generalizează “vecinătatea” intuitivă
• 4 variabile: cele patru colţuri sunt
adiacente!
• Pentru o funcţie de n variabile, o locaţie
are n locaţii adiacente
– < 5 variabile – vizual
– 5 sau mai multe: şi alte adiacenţe decât cele
FII
vizibile 21
Paşii minimizării Karnaugh
1. Se trec în locaţiile corespunzătoare (conform
etichetelor) valorile de 1 ale funcţiei;
2. Se caută blocuri conţinând numai valori 1,
astfel încât:
– fiecare valoare 1 să fie inclusă în cel puţin un bloc;
– blocurile să fie cât mai mari şi mai puţine;
– un bloc să conţină un număr de locaţii egal cu o
putere a lui 2
• eventual puterea 0;
– dacă blocul conţine 2k locaţii , atunci pentru
fiecare locaţie blocul să conţină exact k locaţii
adiacente cu ea.
FII 22
Paşii minimizării Karnaugh
3. Se scrie expresia minimizată a funcţiei astfel:
 fiecărui bloc cu 2k locaţii 1 îi corespunde
un termen conţinând n-k variabile legate
prin conjuncţie;
 în termen apar acele variabile ale căror
etichete sunt constante pentru toate
locaţiile din bloc;
 o variabilă apare negată dacă eticheta sa
constantă este 0 şi nenegată altfel;
 termenii astfel obţinuţi (după considerarea
tuturor blocurilor) sunt legaţi prin
disjuncţie.
FII 23
Exemple: “majoritatea din 3”; imparitate

BC
ĀBC ĀBC
BC
BC A
A
00 01 11 10 00 01 11 10
AB
0 0 0 1 0 0 0 1 0 1

1 0 1 1 1 1 1 0 1 0

AC ABC ABC

Funcţia majoritate din 3 Funcţia imparitate

FII 24
Adiacenţa liniilor/coloanelor extreme
f(A,B,C)=Σ(0,2,3,4,5,6)
_
AB

BC
A
00 01 11 10

0 1 0 1 1

1 1 1 0 1

_ _
AB C

FII 25
Expresia depinde de grupare

CD CD
AB 00 01 11 10 AB 00 01 11 10

00 1 0 0 1 00 1 0 0 1

01 0 0 0 0 01 0 0 0 0

11 0 1 1 0 11 0 1 1 0

10 1 1 0 1 10 1 1 0 1

__ _ __ __
BD ACD ABD BD ABC ABD

FII 26
Evitarea redundanţelor

CD CD
AB 00 01 11 10 AB 00 01 11 10

00 0 0 1 0 00 0 0 1 0

01 1 1 1 0 01 1 1 1 0

11 0 1 1 1 11 0 1 1 1

10 0 1 0 0 10 0 1 0 0

Simplificare Karnaugh Simplificare Karnaugh


neminimală minimală
FII 27
Combinaţii imposibile
de valori
• Variabilele nu vor avea niciodată acele
combinaţii de valori
• Se poate deci considera restricţia funcţiei
booleene doar la subdomeniul de definiţie al
combinaţiilor permise
– doar aceasta va fi “vizibilă” în funcţionarea
circuitului
• se consideră cea mai convenabilă – din
punctul de vedere al minimizării – extensie la
combinaţiile imposibile
– se consideră valoarea 0 sau 1, după cum convine
FII 28
Exemplu – afişarea cifrelor zecimale

• Afişaj cu 7
segmente
• Selectarea
segmentelor
pentru fiecare
cifră
• 0 – stins
• 1 – aprins
FII 29
Funcţia booleană ataşată
segmentului d
Nr A B C D d Nr A B C D d
0 0 0 0 0 1 8 1 0 0 0 1
1 0 0 0 1 0 9 1 0 0 1 1
2 0 0 1 0 1 10 1 0 1 0 *
3 0 0 1 1 1 11 1 0 1 1 *
4 0 1 0 0 0 12 1 1 0 0 *
5 0 1 0 1 1 13 1 1 0 1 *
6 0 1 1 0 1 14 1 1 1 0 *
7 0 1 1 1 0 15 1 1 1 1 *

FII 30
Combinaţiile imposibile pot
simplifica expresia
CD CD
AB 00 01 11 10 AB 00 01 11 10

00 1 0 1 1 00 1 0 1 1

01 0 1 0 1 01 0 1 0 1

11 0 0 0 0 11 * * * *

10 1 1 0 0 10 1 1 * *

Simplificare “funcţionare de Simplificare exploatând combinaţiile


siguranţă” imposibile
FII 31
Temă: comparator pe 2 biţi
A B C D LT EQ GT
0 0 0 0 0 1 0
0 1 1 0 0
1 0 1 0 0
N1 A LT AB<CD 1 1 1 0 0
B 0 1 0 0 0 0 1
EQ AB=CD
C 0 1 0 1 0
N2 GT AB>CD 1 0 1 0 0
D
1 1 1 0 0
1 0 0 0 0 0 1
0 1 0 0 1
1 0 0 1 0
1 1 1 0 0
Diagrama bloc 1 1 0 0 0 0 1
0 1 0 0 1
1 0 0 0 1
şi tabelul de adevăr 1 1 0 1 0

E nevoie de câte o reducere Karnaugh


pentru fiecare dintre cele 3 funcţii

FII 32
Temă: multiplicator pe 2 biţi
A2 A1 B2 B1 P8 P4 P2 P1
0 0 0 0 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
1 1 0 0 0 0
A1 P1 0 1 0 0 0 0 0 0
A2 P2 0 1 0 0 0 1
1 0 0 0 1 0
B1 P4 1 1 0 0 1 1
B2 P8 1 0 0 0 0 0 0 0
0 1 0 0 1 0
1 0 0 1 0 0
1 1 0 1 1 0
1 1 0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 1 0
1 1 1 0 0 1

FII 33
Temă: “incrementare cu 1 BCD”
I8 I4 I2 I1 O8 O4 O2 O1
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0
I1 O1 0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
I2 O2 0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
I4 O4 1 0 0 0 1 0 0 1
I8 O8 1 0 0 1 0 0 0 0
1 0 1 0 X X X X
1 0 1 1 X X X X
1 1 0 0 X X X X
1 1 0 1 X X X X
1 1 1 0 X X X X
1 1 1 1 X X X X

FII 34
CIRCUITE COMBINAŢIONALE

FII 35
Circuite combinaţionale
I 1 O1 IEŞIRI
INTRĂRI
I n
Om

Diagrama bloc a unui circuit combinaţional

• Valorile de la ieşire depind doar de valorile de la


intrare din momentul respectiv

FII 36
&II.6. MULTIPLEXORUL

FII 37
Multiplexorul
• 2n intrări
MUX 4  1
• n intrări de selecţie
(variabile de diagrama bloc şi tabelul de adevăr
control)
• biţi de control (de
adresă) S1 S0 O
• o singură ieşire S1 S0
I0 0 0 I0
• Fiecare intrare
corespunde unui I
M 0 1 I1
U
termen FND cu 1
variabile de control. O
I
2 1 0 I2
• Controlul
selectează o I X
3 1 1 I3
valoare de la
intrare (bit) care
devine valoare de
FII ieşire 38
Multiplexorul 41: diagrama logică
S1 S0

I0

I1 O

I2

I3
FII 39
• Prima poartă AND poate avea la
ieşire valorile 0 sau I0 , a doua 0 sau I1
etc.
• Poarta OR poate avea la ieşire
valorile I0 , I1 , I2 , I3

• De unde ideea de a folosi variabile de intrare ca


valori de ieşire nu conectându-le direct la ieşirea
circuitului, ci lăsându-le ca intrări şi selectându-
le prin multiplexor.
FII 40
Funcţii booleene pot fi
implementate prin multiplexoare
A B C A B C

0 I0 S2 S1 S0 0 I0 S2 S1 S0
0
0
I1
I2
M 1
1
I1
I2
M
1
0
1
I3
I4 U O MAJ
0
1
0
I3
I4 U O IMP

1
1
I5
I6
I7
X 0
1
I5
I6
I7
X
Funcţia majoritate Funcţia imparitate
din 3
FII 41
“Majoritatea din 3”: implementare
eficientă prin multiplexor
Eficient: folding
A B
A B C MAJ A B MAJ
0 0 0 0 0 0 0
0 0 1 0 S1 S0
0
0
1
1
0
1
0
1
0 1 C 0
C
I0
I
M
1
1
1
0
0
1
0
1
0
0
1
1
1

1
0

1
C

1
C
1

I
2
U O MAJ

I X
1 1 1 1
1
Tabela de adevăr Tabela de adevăr 3
originară pentru multiplexor

FII 42
“Imparitate”: implementare
eficientă prin multiplexor
folding
A B
A B C IMP A B IMP
0 0 0 0 0 0 C
S1 S0
0
0
0
0
1
1
1
0
1
1
1
0
0 1
_
C
_
C
_
C
I0
I
M
1
1
1
0
0
1
0
1
0
1
0
0
1

1
0

1
C

C
_
C
1

I
2
U O IMP

I X
1 1 1 1
Tabela de adevăr
C
Tabela de adevăr 3
pentru multiplexor
originară

FII 43
&II.7. DECODORUL,
COMPARATORUL

FII 44
Decodorul
• Decodorul are k intrări şi 2k ieşiri
– identificarea unei locaţii de memorie după adresă
• Circuitul activează în fiecare moment una din 2k
ieşiri
– Intrările au rolul controalelor de la multiplexor
(selectează adrese)
– Fiecare ieşire corespunde unui termen FND scris cu
variabilele de intrare

FII 45
Decodorul : k=2
I1 I0 O3 O2 O 1 O0
0 0 0 0 0 1 I1 I0

0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0

O0
DO
E 0 O1
CO
I1 O 1
Date de Date
O2 decodificate
intrare
I0 D O O2
codificate O 3
R
O3
FII 46
Implementarea adunării prin
decodoare
A B Cin Sum Cout
0 0 0 0 0 DO 0

0
0
0 1 1 0 EOO 1

I CO
1 0 1 0 2
0 1 1 0 1 A
2
1 0 0 1 0 B
I
O 3
Sum
1
1
0 1
1 0
0
0
1
1
Cin
1

I
D O 4

1 1 1 1 1
0
OOO 5
Cout
R 6

O7

FII 47
Circuit de comparare (Comparatorul)
• Implementează operatorii de comparare (= , > , < ,  , )
• Exemplu: egalitate pe 4 biţi
• Temă: comparator complet (<, =, >)

A3
B3

A2
B2

A1
B1

A0
B0
FII 48
&II.8. SUMATOARE

FII 49
Semi-sumatorul şi
sumatorul complet
• Semi-sumatorul (half-adder)
– Adună cei doi biţi de intrare
• Furnizează la ieşire un bit sumă şi un bit transport
– Neajuns: nu poate fi extins pentru adunarea de
numere mai lungi
• Sumatorul complet (full adder)
– Adună cei trei biţi de intrare
• Furnizează la ieşire tot un bit sumă şi un bit transport
– Poate fi folosit pentru a construi sumatoare pe N biţi
• conectând Cout de la un sumator la Cin al următorului.
• Acesta va fi sumatorul serial (ripple-carry adder).
FII 50
Semi-sumator şi sumator: diagrame logice

A B Sum Cout Sum


0 0 0 0 A
0 1 1 0 B
1 0 1 0
1 1 0 1 Cout

Tabela de adevăr şi diagrama logică a semi-sumatorului

A B Cin Sum Cout Cin


0 0 0 0 0 A Sum
0 0 1 1 0 B
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1 Cout
1 1 0 0 1
1 1 1 1 1
FII Tabela de adevăr şi diagrama logică a sumatorului complet 51
Sumatorul serial pe 16 biţi (+)
A15 B15 A1 B1 A0 B0

A B A B A B

C14 C1 C0
C15 Cout Cin Cout Cin Cout Cin 0
Transport
general

S S
S

S15 S1 S0
FII 52
Sumatoare seriale
• Cu propagarea transportului
– de la un rang la următoarele
• Şi primul sumator este complet
– C0 = 0 pentru adunare
– C0 = 1 pentru scădere
• Avantaj: circuite relativ simple, repetate
identic la fiecare rang
• Dezavantaj: sumatoarele seriale pot fi
lente
• Întârzierea este proporţională cu numărul
de biţi
• Cazul cel mai relevant:
FII 11111111 + 00000001 53
Accelerarea adunării
• Sumatoare cu anticiparea transportului
• Carry lookahead adders
– Elimină întârzierea datorată propagării transportului
– Transportul-intrare (carry-in) se generează independent pentru
fiecare rang
• C0 = A0 B0
• C1 = A0 B0 A1 + A0 B0 B1 + A1 B1
• ...
• Ci = Gi + Pi ·Ci-1 = Ai ·Bi + (Ai + Bi ) · Ci-1 = …
• …
– Necesită circuite complexe
– De obicei, se utilizează o combinaţie de tehnici de
anticipare şi propagare
• Sumatoare cu selecţia transportului
• Exemplu: pentru 32 de biţi, fiecare octet e “adunat” de două
sumatoare - C0 = 0 şi C0 = 1 -, apoi se selectează Si corect
FII 54
&II.9. O UNITATE ARITMETICĂ ŞI
LOGICĂ
ELEMENTARĂ

FII 55
Unitate Aritmetică şi Logică (1 bit):
AND, OR, +, -
Proiectare iniţială
B A Cin F1 F0

F1 F0 F

I0 S1 S0 0 0 A and B

I1
M 0 1 A or B

I2 UO F 1 0 A+B
A Sum
BSumator I3 X 1 1 A-B

Cin Cout
Semnal de
A Sum control: F0 F1
BSumator
Cin Cout
FII 56
Unitate Aritmetică şi Logică (1 bit):
AND, OR, +, -
Proiectare îmbunătăţită
B A Cin F1 F0

I0 S1 S0
I1
M
I2 U O F

I3 X
A Sum
B Sumator
F0
Cin Cout Cout

FII 57
Unitate Aritmetică şi Logică
(16 biţi): AND, OR, +, -

A15 B15 A1 B1 A0 B0 F1 F0

A B F1 F0 A B F1 F0
A B F1 F0
C14 C1 C0
C15 Cout Cin Cout Cin Cout Cin
Transport
general

F F F

FII R15 R1 R0 58

S-ar putea să vă placă și