Sunteți pe pagina 1din 167

3

Proiectare logic

CAPITOLUL 1
1.BAZELE ARITMETICE ALE
CALCULATOARELOR
n acest capitol vom prezenta problemele de baz ale
aritmeticii: sisteme de numeraie , baze de numeraie, conversia
numerelor dintr-o baz n alta pentru numere ntregi i
fracionare, operaiile elementare cu numere n aceeai baz,
pentru a trece apoi la reprezentarea numerelor n calculator i la
codurile pentru reprezentarea informaiei.
1. 1. SISTEME DE NUMERAIE
Un sistem de numeraie este totalitatea regulilor de
reprezentare a numerelor cu ajutorul simbolurilor denumite cifre.
Sistemele de numeraie pot fi poziionale (n care valoarea unei
cifre depinde de poziia ei) i nepoziionale (n care valoarea
cifrei este aceeai n oricare poziie). Sistemul zecimal este
poziional. Sistemul roman este nepoziional , n general, avnd
ns i unele elemente poziionale (anumite cifre plasate naintea
unor alte cifre le micoreaz valoarea
1.1.1.Baza sistemului de numeraie
ntr-un sistem de numeraie cifra este un simbol care
reprezint o cantitate ntreag. Numrul de astfel de simboluri
permise pentru a reprezenta un numr se numete baza
sistemului de numeraie.

Proiectare logic

Exemplu
Sistemul binar (dou cifre) : cifrele 0 i 1;
Sistemul zecimal (zece cifre):cifrele 0,1,2,3,4,5,6,7,8,9.
Reprezentarea numerelor
Un numr raional, format din partea ntreag i partea
fracionar, se poate reprezenta n trei forme, ntr-un sistem cu
baza de numeraie b:
1) reprezentarea poziional n care cifrele sunt scrise
fiecare cu valoarea lor poziional:

a n a n1a n2 ...........a1a0 a 1a 2 ........a m


2)reprezentarea algebric care este o sum de produse dintre
fiecare cifr i puterea bazei corespunztoare valorii cifrei :

a n b n an1b n1 ...... a1b1 a0 b 0 a1b 1 ...... am b m )


3)forma restrns a reprezentrii precedente:
n

a b

im

i i

unde:
b=baza sistemului de numeraie
ai cifre
n 1 numrul de cifre n partea ntreag
m numrul de cifre n partea fracionar
a n cifra cea mai semnificativ
a m =cifra cea mai puin semnificativ
Orice cifr ai trebuie s fie mai mic dect baza b care ,
prin definiie trebuie s reprezinte numrul maxim de simboluri .
Exemple
Un numr ntreg exprimat n baza x va fi:
n
n 1
1
0
a
x

a
x

....

a
x

a
x
n 1
1
0
= n

N(x)
Un numr ntreg exprimat n baza 10 va fi:

Proiectare logic

N (10) a n 10 n a n 110 n 1 ....... a1101 10 0


Numrul 1234(10) exprimat n aceast
form,ncepnd cu cifra cea mai puin semnificativ:

1234(10)=4.100+3.101+2.102+1,103
1.1.2.Conversia numerelor ntregi dintr-o baz n alta
Conversia numerelor ntregi din baza 10 n baza b
Fie un numr x Z+.
Dac
x<b atunci
x(10)=x(b)
Dac
xb atunci trecerea din baza 10 n baza b se
face n felul urmtor:
Conform teoremei mpririi cu rest , avem sirul de egaliti,
n care semnificaiile sunt: numtrul x, baza b, resturi r i i cturi
qi
x = bq0+r0
q0 = bq1+r1
q1 = bq2+r2
.
..
..
Qk-1= bqk+rk
oprindu-ne la acel k pentru care qk = 0
( adic atunci cnd ctul a devenit mai mic dect baza b).
x(10)=(rk rk-1r1r0)(b)
Algoritmul de conversie presupune, deci, mprirea
numrului la baza b. Se obine un ct i un rest. Noul ct se
mparte la baz i se continu la fel cu cturile succesive.
Algoritmul continu pn cnd se obine un ct 0. Resturile
obinute, n ordine invers, reprezint cifrele numrului iniial n
baza b.
Exemple
S se treac numrul 27(10) din baza 10 n baza 2.

Proiectare logic

27 = 2.13+1
13 = 2.6 + 1
6 = 2.3 + 0
3 = 2.1 + 1
1 = 2.0 + 1
27(10) = 11011(2)
Algoritmul se poate formula i altfel. Ne oprim atunci cnd
ctul devine mai mic dect baza. n acest caz numrul n noua
baz este format din ultimul ct urmat de resturile succesive, de
la ultima mprire la prima.
S se treac numrul 27(10) n baza 8.
27 =8.3 + 3
3 =8.0 + 3
27(10) = 33(8)
Conversia numerelor subunitare din baza 10 n baza b

Fie numrul subunitar n baza 10:


x (0,1.)
Conversia numrului n baza b se face prin nmuliri
succesive cu baza, separnd partea ntreag rezultat.
x.b = x1 + r-1
x1 (0,1.) 0 r-1 <b
x1b = x2 + r-2
x2 (0,1.) 0 r-2 <b
.
.
xm-1 b = xm + r -m xm (0,1.) 0 r-m <b
Procedeul are un numr infinit de pai. n practic se
alege un anumit numr de pai n funcie de precizia
cerut.
Exemple
S se treac numrul 0,375 din baza 10 n baza 2 i
n baza 8.
0,375.2 = 0,750
0,750.2 = 1,500

11

Proiectare logic

0,500.2 = 1
0,375(10) = 0,011(2)
0,375.8 = 3,000
0,375(10) = 0,3(8)
Conversia numerelor reale din baza 10 n baza b.
Fie z R+ . Numrul z se poate exprima sub forma
z=[ z] + z , partea ntreag i partea fracionar a
numrului z.
Se parcurg urmtoarele etape:
1) Se realizeaz conversia prii ntregi.
2) Se realizeaz conversia prii subunitare.
3) Se concateneaz cele dou rezultate, punnd
virgula ntre ultima cifr rezultat din conversia prii
ntregi i prima cifr rezultat din conversia prii
fracionare.
Exemplu
1)S se treac numrul 27,375 din baza 10 n baza 2.
Din exemplele precedente avem:
27(10)=11011(2)
0,375(10) =0,011(2)
Rezult:
11011,011(2)
Conversia numerelor reale din baza b n baza 10
1)Se trece de la reprezentarea poziional a
numrului la reprezentarea algebric n baza b.
2)Se efectueaz calculele n baza 10 i se obine
tocmai reprezentarea poziional n baza 10.
Exemplu S se fac conversia numrului
10101,0110 din baza 2 n baza 10.
10101,0110=1.20 +0.21 +1.22 +0.23 +1.24 +

13

Proiectare logic

+0.2-1 +1.2-2 +1.2-3 +0.2-4 =


1+4+16+0,25+ 0,125= 21,375
Pentru trecerea unui numr dintr-o baz oarecare x n
baza 10 , dezvoltarea este:
N (10) n0 n1.x1 n2 x 2 n3 x3 .............nn 1 x n 1
Exemplu

N ( 4 ) 123

N (10) 3 2.41 1.42 27 (10)

Invers, un numr N n baza 10 se trece n baza x prin


mprirea lui N la x i apoi prin mprirea cturilor succesive la
x pn ce ctul devine mai mic dect x. Rezultatul este format
din ultimul ct urmat de resturile succesive, ultimul ct fiind pe
poziia cea mai semnificativ.
Exemplu
S se scrie numrul 256(1o ) n baza x=16.
256:16=16
rest =0
16:16 =1
rest = 0
1 este mai mic dect 16. Numrul n noua baz este 100

1.1.3.Operaii aritmetice elementare


Operaiile aritmetice elementare, adunarea, scderea,
nmulirea i mprirea, se fac la fel ca i n baza 10 numai c n
loc de 10 se iau x uniti, adic x uniti dintr-o poziie
formeaz o unitate din poziia cu semnificaie imediat superioar.
Nu se pot face operaii cu numere scrise n baze diferite.
Este necesar ca n prealabil numerele s fie aduse n aceeai baz.
Exemple
N1 123( 4)

N 2 321( 4 )
N1 N 2

123 + 321=1110(4)

N1 N 2 = 1110( 4 )

15

Proiectare logic
N1.N 2

123 .321=123+3120+110100=110003(4)
n `general n sistemele de calcul datele sunt reprezentate
n baza 2. Deoarece att instruciunile ct i datele sunt
reprezentate pe 32 , 64 bii sau chiar mai muli bii, este greu de
manipulat n baza doi i atunci se alege baza 16 (hexazecimal).
Fiind o baz de numeraie mai mare dect 10 , trebuie alese
simboluri pentru 10,11,12,13,14, 15, simboluri care sunt:
10A
12C
14E
11B
13D
15F
Tabel 1.1. Primele caractere n bazele 10,16 i 2.
Baza 10
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Baza 16
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E

Baza 2
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

Pentru a trece un numr din baza 2 n baza 16 , sau invers, nu


este necesar s trecem intermediar prin baza 10 . Se poate aplica
urmtoarea regul:
N(2)N(16)
Se mparte numrul n binar de la dreapta la stnga n
grupuri de 4 bii i apoi, conform tabelului 1, se exprim fiecare
grup de 4 bii ntr-un numr hexa. Exemplu:
Fie un numr n binar N(2) = 1101110000011001

17

Proiectare logic

Se mparte n grupuri de 4 bii 1101 1100 0001 1001


care corespund n tabelul 1 cu:
D
C
1
9
Rezult:
N(16)=DC19
N(16)N(2) Se caut pentru D, C, 1, 9 grupurile
corespunztoare n baza 2: N(2)=1101 1100 0001 1001
Aplicaii
1)-S se scrie o funcie recursiv care s transforme un
numr n baza 10 ntr-un numr n baza b.
S se scrie programul pentru b9.
S se scrie programul n limbaj C.
Soluie:
Program
# include <stdio.h>
# include < conio.h>
/*se transform un numr din baza 10 n baza b*/
void transform (int n,int b)
{int rest=n%b;
if(n>=b) transform(n/b,b);
printf(%d,rest);}
main( )
{int n,b; clrscr ( );
printf(n=); scanf(%d,&n);
printf(%baza=);scanf(%d,&b);
transform(n,b);
2) -S se adune numerele : N1=1234(10) i N2=ABCD(16)
Soluie: Nu se pot face operaii aritmetice cu numere n baze
diferite n mod direct. Trebuiesc aduse la o baz comun.
N1= 1234(10)
1234:16 = 77 rest 2
77:16 = 4 rest 13D
N1=4D2(16)
N1+N2=4D2(16) + ABCD(16) = B09F(16)
3)-S se efectueze ntre numerele
N1=1000(10) i
N1 N 2
N2=5000(10)
urmtoarele operaii logice : N1 N 2

19

Proiectare logic

N1 N 2 , unde operaiile nseamn sau, i, suma modulo 2 (sau

exclusiv), la nivel de bit, dup urmtoarele tabele:

0
0
01 010
10 00
1 1

1
1
011
11
0

Soluie: Numerele
fiind date n baza 10 iar
operaiile fiind la nivel
de bit, este necesar ca
numerele s fie trecute n baza 2. Apoi trebuie executate la nivel
de bit operaiile.
N1 1000:16=62 rest 8
62:16=3
rest 14
N1=3E8(h)=0011 1110 1000(2)
N2 5000:16=312 rest 8
312:16=!9
rest 8
19:16=1
rest 3
N2=1388(h)=0001 0011 1000 1000(2)
N1=0000 0011 1110 1000
N2=0001 0011 1000 1000
N1 N2 = 0001 0011 1110 1000
N1 N2 = 0000 0011 1000 1000
N1 N2 = 0001 0000 0110 0000
4)-Pot fi a,b,c laturile unui triunghi dac avem egalitatea
aaax= bbbx+cccx
oricare ar fi baza de numeraie, cu a,b,c, < x ?
Soluie:
a+ax+ax2 = b+bx+bx2 + c+cx+cx2
x2(b+c-a)+x(b+c-a) + b+c-a = 0
(b+c-a)(x2+x+1) = 0
(b+c-a) =0 b+c=a
Ca s fie laturile unui triunghi trebuie ca a>b+c . Cum a=b+c
nu se poate ca a,b,c, s fie laturile unui triunghi.

21

Proiectare logic

5)-Cte numere ndeplinesc condiia ca aa (h) s aib n


reprezentarea binar numrul de 0 egal cu numrul de 1?
Soluie:
n binar urmtoarele numere pe 4 bii au NR0=NR1 :
0011=3
0101=5 0110=6 1001=9 1010=A 1100=B
1.2. REPREZENTAREA NUMERELOR N CALCULATOR
Numerele reprezentate n calculator pot fi:
-cu semn
-fr semn.
Numerele fr semn sunt reprezentate n binar sau ntr-un
cod binar zecimal.
Pentru numerele cu semn se utilizeaz o cifr semn, 0
pentru plus i 1 pentru minus. Cifra de semn este cea mai
semnificativ. Pentru un numr de n cifre sunt necesare n+1
poziii. n mod formal, ntre cifra de semn i numr exist o
virgul. Dup modul de amplasare a virgulei exist dou forme
de reprezentare a numerelor:
-cu virgula fix
-cu virgula mobil.
n forma cu virgula fix, virgula care separ partea ntreag
de partea fracionar este aezat ntr-o poziie bine definit a
cuvntului binar.
n forma cu virgul mobil fiecare numr este reprezentat de
dou valori:
-mantisa, care indic mrimea exact a numrului ntr-un
anumit domeniu,-exponentul, care indic ordinul de mrime a
numrului, fiind puterea la care se ridic baza mantisei.
Exponentul indic, deci, implicit poziia virgulei binare.
1.2.1. Reprezentarea numerelor n virgul fix
Exist trei forme uzuale de reprezentare a numerelor n
virgul fix:
-Reprezentare n mrime i semn (MS)

23

Proiectare logic

-Reprezentare n complement fa de 1 (C1)


-Reprezentare n complement fa de 2 (C2)
Reprezentare n mrime i semn (MS)

0, N dac N 0
N
1, N dac N 0
Un numr N este
Exemplu:
8=0,1000
-8=1,1000
Dezavantajele acestei reprezentri sunt.
-pentru adunare i scdere se solicit circuite mai complexe;
-exist dou reprezentri pentru valoarea 0
+0 = 0,0000
-0 = 1,0000
Reprezentare n complementul fa de 1

0, N dac N 0
1, N dac N 0

Un numr N este
unde N se obine prin negarea fiecrui bit din N.
Exemplu:
N= 8=0,1000
N = -8=1,0111
Reprezentare n complementul fa de 2

0, N dac N 0
1, C 2 ( N ) dac N 0

Un numr N este:
Unde C2(N), complementul fa de 2 al numruluiN , se obine n
felul urmtor: se exploreaz numrul de la dreapta la stnga pn
la primul 1 i se las aceste cifre neschimbate , apoi se neag
fiecare bit.
Exemplu:
+8 = 0,1000

25

Proiectare logic

-8 1,1000
n calculatoare se utilizeaz de obicei complementul fa de 2
Adunarea n C2
Regula de adunare a dou numere reprezentate n C2 este:
-Se adun numerele bit cu bit, inclusiv bitul de semn, i se ignor
eventualul transport de la bitul de semn.
-Dac apare depire , atunci se semnalaz eroare i rezultatul
este invalidat. n cazul exemplelor urmtoare, cu numere pe patru
bii, depirea apare cnd rezultatul va fi mai mare dect 15(10)
-La adunarea numerelor de acelai semn apare depire dac
i numai dac rezultatul are semn contrar semnului numerelor.
Exemple
Exemplul 1
N1=5
N2=3
Este un caz de adunare a dou numere pozitive a cror sum
este 8<15, deci fr eroare. Reprezentarea lor n binar, cu cifr
de semn i suma lor este:
N1 0,0101+
N2 0,0011
0,1000 = 8(10)
Exemplul 2
N1=10
N2= 9
Este un caz de dou numere pozitive a cror sum este 19 >16,
exist depire, deci eroare.
N1 0,1010
N2
0,1001
1,0011

1depire.
Exemplul 3
N1 = 3
N2 = 9

27

Proiectare logic

Este un caz de adunare a dou numere negative, fr depire, cu


ignorarea bitului de transport la semn i cu rezultat n C2 .
Numerele n binar, cu bit de semn:
N1 1,0011
N2
1,1001
Complementele fa de 2, cu bit de semn:
N1 1,1101 +
N2 1,0111
11,0100 cu bitul de transport la
semn ignorat
Rezultatul n C2 este 1,0100 i dac l complementm din nou
obinem 0,1100, adic 12.
Exemplul 4
N1 = 12
N2 = 14
Este un caz de adunare a dou numere negativa a cror sum
este |26 |>16 , deci cu depire i cu rezultat eronat.
Numerele n binar:
N1 1,0100
N2 1,0010
Complementele fa 2:
N1 1,0100 +
N2 1,0010
10,0110 rezultat eronat
La adunarea a dou numere de acelai semn apare eroare prin
depire numai dac rezultatul are semn contrar semnului
numerelor.
Scderea n C2
Scderea n C2 se face duo urmtoarea regul: se
calculeaz complementul faa de 2 al scztorului i se adun
acesta la desczut.
n cazul numrului de semn contrar, rzultatul este corect
ntotdeauna deoarece nu poate exista depire .

29

Proiectare logic

Exemplu
N1 = 8(10)=1000(2) = 0,1000
N2 = 7(2) = 0111(2) = 0,0111
N1N2 = 0,1000 0,0111= 0,1000+1,1001 = 0,0001= 1(10)
1.2.2.
Reprezentarea numerelor n virgul mobil
Aceast form de reprezentare se utilizeaz pentru unii
vectori foarte mari sau foarte mici sau pentru numerele cu parte
fracionar. Fa de reprezentarea n virgul fix, n virgul
mobil exist avantajul de a nu mai exista depiri.
Un numr N poate fi scris n virgul mobil astfel:
N = M2E
unde:
M = mantisa numrului
E = exponentul numrului
M = SMc1 c2.cn
E = SE e1 e2..em
unde:
SM semnul mantisei
SE semnul exponentului
c1 c2.cn cifrele mantisei
e1 e2..em cifrele exponentului
Numrul de cifre ale mantisei i exponentului difer n funcie de
standardul de reprezentare. n standardul IEEE exist:
-format scurt
E-8 bii
M-23 bii
-format lung
E-11 bii M-52 bii
Semnul mantisei i al exponentului:
0 daca numarul este pozitiv

= 1 daca numarul este negativ

SME
Numrul biilor pentru exponent determin domeniul de mrime
al numerelor reprezentate. Numrul biilor pentru mantis
determin precizia de exprimare a numrului.
n prim faz orice numr N este adus la forma
N = (,f)2e
unde:
N este numrul ce trebuie reprezentat n virgul mobil
f este partea fracionar a lui N

31

Proiectare logic

1,f se numaete mantis


normalizare 1 |1,f| < 2
e este exponentul bazei 2
Exemplul 1
N = 25
25(10) = 11001(2) = 1.100124
e=4
exponentul
Exemplul 2

i trebuie s respecte relaia de

f=1001 mantisa

31
32
31
24 23 22 21 20
N

2 1 2 2 2 3 2 4 2 5
32
25
0,11111 1,1111.21
N

f=1111 mantisa e=1


Exemplul 3

exponentul

1
N 8
1
2 3 (0,001) 2
N= 8
=.-1,0.2-3
e 3 exponentul

f=0

mantisa

Reprezentarea numerelor n virgul mobil are dou forme


standard:
-Reprezentarea n VM simpl precizie
-Reprezentarea n VM dubl precizie
1.2.2.1.Reprezentarea n VM simpl precizie
n reprezentarea simpl precizie, cuvntul are 32 bii i are
urmtoarea form:
32 31
24
1
S C=e+127
f
S - semnul numrului N
0, N 0
S 1, N 0

Pentru cazul N=0 , S este nedeterminat.

33

Proiectare logic

C caracteristica ocup poziiile 31-24 din reprezentare i este


construit n aa fel nct s fie pozitiv.
C=e+127 i dac
C 127 e 0
C < 127 e < 0
Valoarea maxim a caracteristicii este
28 -1 = 255
deci exponentul maxim admis n simpla precizie este
emax = 255 127 =128
f Poziiile 23-1 reprezint mantissa, normalizat de obicei.
Vom lua exemplele anterioare i le vom trece n VM
simpl precizie,
Exemplul 1
25 = 1,1001 24
S=0
f = 1001
C = e + 127 = 4 + 127 = 131 = 10000011
Cuvntul este
32 31
24 23
1
0 10000011 100100
Exemplul 2
31
1,1111 21
32

S=0
f = 1111
C = -1 + 127 = 126 = 01111110
Cuvntul este
32 31
24 23
0 01111110 1111000
Exemplul 3

1
1,0 23
8

S=1
f=0

1
0

35

Proiectare logic

C = -3 + 127 = 124 = 01111100


Cuvntul este:
32 31
24 23
0 01111110 1111000

1
0

1.2.2.3. Reprezentarea n VM dubl precizie


n dubl precizie cuvntul are 64 bii.
C este pe 11 cifre binare i are valoarea maxim:
Cmax = 211 -1 =2047
emax = 2047 1023 = 1024
f ocup 52 poziii binare
Exemplul 1
S se reprezinte n VM dubl precizie N=124,0625
124,0625=11111,0001=1,111100000126
S=1
f = 1111000001
C = e+1023=6+1023=1029=10000000101
Reprezentarea n VM dubl precizie este ,n general:
64 63
53 52
1
S C=e+1023
f
n exemplul curent:
64 63
52 52
1
1 10000000101
111100.
0
Exemplul 2
ncercm un exemplu invers, adic fiind dat un numr n
reprezentarea VM simpl precizie pe 32 bii s se afle numrul
N.
Fie reprezentarea
32 31
24 23
1
1 10000101
100 1111 0000 1111 0010 0001
S=1 numrul este negativ

37

Proiectare logic

C=10000101=133 e=133+127=6
f= 100 1111 0000 1111 0010 0001
N=1,10011110000001000126
=1100111,100001111000010000=103,5296+
1.2.2.3. Operaii n VM
Adunarea i scderea a dou numere n VM se efectueaz astfel:
-Se compar cei doi exponeni pentru a-l determina pe cel mai
mare.
-Se aliniaz mantisa numrului cu exponent mai mic prin
deplasarea virgulei exponentului mai mare.
-Se adun sau se scad mantisele aliniate, pstrnd exponentul
comun.
-Eventual se normalizeaz mantisa, concomitent cu modificarea
rezultatului.
Exemplul 1 (adunare)
3
N1 = 4

N2 =7

S se efectueze N1 +N2

2 2
21 2 2 0,11 1,1.21 0,0011
2
2
N1 =
22
1

N2 = 7=111=1,11.22
N1 +N2 =(0,0011+1,11)=1,111122
Nu este necesar normalizarea.
Exemplul 2 (scdere)
N2 =9 N1 =34
N1 =34=100010=1,0001025
N2 =9=1001=1,00123 =0,0100125
N1 -N2 =(1,00010-0,01001)25 =0,01001.25 =1,1001.24
nmulrea i mprirea n VM se efectueaz astfel:
-Se adun sxau se scad exponenii.
-Se inmulesc sau se mpart mantisele.
-Se normalizeaz rezultatul.
Exemplul 1 (nmulire)
N1 =5
N2 =9

39

Proiectare logic

N1 =5 =101=1,0122
N2 =9=1001=1,00123
N1 N2 =(1,011,001)22+3 =1,0110125=101101=45
Exemplul 2 (mprire)
N1 =5 N2 =10
N1 =101=1,0122
N2 =10=1010=1,01023
N1:N2 = (1,01:1,01)22-3 = 1,02-1 = (0,1)2 = (0,5)10
1.3.

CODURI DE REPREZENTARE A
INFORMAIEI

Deoarece informaiile n calculator sunt n sistemul binar


iar informaiile externe accesibile omului sunt n sistemul
zecimal sau numere ntr-o anumit limb, este necesar a
transforma informaiile externe n informaii interne i invers.
Aceast translatie se realizeaz prin operaia de codificare
codificare
Informaia intern
informaia extern

Fie dou mulimi A i B . A codifica elementele mulimii A


prin mulimea B nseamn a face s corespund fiecrui element
a A o secven de elemente b B.
Exemplu:
Fie A={0,1,2,3,4,5,6,7,8,9}
B={0,1}
Codificarea lui 5 A nseamn asocierea unei secvene de
cifre binare din B:
codificare

5
0101
n mod curent simbolurile mulimii A (alfabet) se numesc
caractere, ele cupriznd litere, cifre, semne de punctuaie etc.
Exist o clasificare a codurilor din punct de vedere al
semnelor utilizate:
-coduri NUMERICE- n care sunt reprezentate doar numere:

41

Proiectare logic

coduri ALFANUMERICE-n care sunt i litere, semne


de punctaie etc.
n calculatoare exist coduri care codific litere, cifre sau
semne prin mulimea B={0,1}.
O problem principal care se pune este urmtoarea: dac
mulmea A are un numr N de caractere, ce lungime trebuie s
aib secvena i I de elemente din B pentru a se putea
pune toate cele N caractere ntr-o ntr-o reprezentare f:AI.
Dac n este lungimea secvenei, atunci combinrile cu repetiii
care se pot face cu dou elemente 0 i 1 luate cte n vor fi 2 n .
Deci condiia este:
N 2n
De exemplu, pentru a codifica cifre zecimale sunt necesare 4
cifre binare.
n=4 N=10 24 =16
24 N
Pentru a putea codifica cifre hexazecimale avem :
n=4
N=16
1.3.1.Coduri numerice
Codurile numerice se mpart i ele n dou categorii:
- coduri ponderate i
- coduri neponderate .
1.3.1.1.Coduri ponderate
n codurile ponderate se asociaz fiecrei cifre zecimale o
tetrad binar n care fiecare rang are o anumit pondere indicat
de configuraia codului. Deci o cifr zecimal ntr-un cod
ponderat se poate scrie conform relaiei:
n

N=

a q

i i

unde
ai = {0,1}
qi = reprezint ponderea poziiei corespunztore a codului.
Cel mai cunoscut cod ponderat este codul binar-zecimal,
cunoscut ca CBZ
i 0

43

Proiectare logic

Codul CBZ
n CBZ ponderile sunt 8421 (q0 =0, q1 = 2, q2 =4, q3 =8) , motiv
pentru care este cunoscut sub denumirea de cod 8421.
De exemplu:
7=0111=1.20 +1.21 +1.22 +0.23.
Codul 8421 este numit codul CBZ natural, ntruct
fiecare cifr zecimal este nlocuit cu un grup de 4 cifre binare
corespunztoare numeraiei naturale n sistemul binar
.
Tabelul 1. 2. Coduri ponderate
Nr
8421
2421
4221
5421
7421
642(-1)
0
0000
0000
00000
0000
0000
0000
1
0001
0001
0001
0001
0001
0011
2
0010
0010
0010
0101
0010
0010
3
0011
0011
0011
0010
0011
0101
4
0100
0100
0110
0100
0100
0100
5
0101
1011
1001
1000
0101
0111
6
0110
1100
1100
1001
0110
1000
7
0111
1101
1101
1010
0111
1011
8
1000
1110
1110
1011
1001
1010
9
1001
1111
1111
1100
1010
1101
n structura unitilor centrale exist uniti aritmetice
logice , denumite UAZ, (uniti aritmetice zecimale) care,
utiliznd decodoare binar-zecimale i zecimal-binare, pot s
implementeze toate operaiile aritmeticologice folosite n
binar. Utilizarea UAZ-urilor
duce la o vitez sporit dar i la
un numr de erori mai mare i, implicit, la un cost mai mare.
In tabelul 2 sunt date alte exemple de coduri ponderate:
2421, 4221, 5421, 7421.n aceste coduri ponderate unele numere
se pot exprima n mai multe variante i din aceast cauz este

45

Proiectare logic

necesar s se aleag doar una din variante n funcie de


necesitile aplicaiei.
1.3.1.2.Coduri neponderate
n tabelul 1.3 se reprezint principalele coduri neponderate
utilizate.
Codul Exces 3 se obine din codul 8421 prin adunarea la
fiecare tetrad a cifrei trei (0011). Rezult astfel un cod de
autocomplementare din care s-a eliminat combinaia 0000 ce ar
putea fi confundat cu lipsa de informaie.
Codul Gray se caracterizeaz prin faptul c trecerea de la o
cifr zecimal la urmtoarea se face prin modificarea unui singur
rang binar din tetrad.Acest cod se utilizeaz la minimizarea
funciilor prin metoda Karnaugh.
Codul 2 din 5 utilizeaz pentru codificarea cifrelor
zecimale, cinci poziii binare, cu urmtoarea restricie: fiecare
combinaie de cod conine doi bii semnificativi.
Tabelul 1.3. Coduri neponderate
Zecima Exces 3 Gray
2din5
l
(74210)
0
0011
0000
00011
1
0100
0101
99101
2
0101
0011
00110
3
0110
0010
01001
4
0111
0110
01010
5
1000
0111
01100
6
1001
9191
10001
7
1010
0100
10010
8
1011
1100
10100
9
1100
1101
11000

47

Proiectare logic

1.3.1.3.

Coduri pentru detectarea erorilor i coduri


pentru corectarea erorilor

n transmisia de date, n urma transmisiei, la


recepie pot aprea diferite erori cauzate de zgomotele din
canalul de transmisie.
transmitor

Canal de transmisie

receptor

Exist dou modaliti de tratare a acestor erori:


-detecia erorilor;
-corecia erorilor.
Detecia unei erori nseamn determinarea apariiiei unei
erori la recepie.
Corecia unei erori nseamn detecia erorii i corecia ei.,
cu alte cuvinte nseamn determinarea rangului bitului din
secvena de transmitere a informaiei care a produs eroare.
Pentru detecia erorilor se utilizeaz coduri ca:
-coduri cu bit de paritate
-codul 2din 5
-codul Check Sum
-codul detector de erori CRC
-suma de control Fletcher
Pentru corectarea erorilor se utilizeaz:
-codul Hamming.
Coduri cu bit de paritate
Mecanismul utilizrii bitului de paritate n detecia unei
erori const n compararea bitului de paritate recepionat cu cel
de la primire calculat.

49

Proiectare logic
canal

Pt Octet transmis

Octet recepionat

Pc
comparare

Pr

Pr

Eroare

Fig.1.1.Mecanismul utilizrii bitului de paritate n detecia unei


erori
De obicei entitatea fundamental de transmisie este octetul.
Unui octet i se ataeaz n unitatea de transmisie un bit de
paritate, Pt . dup urmtooarele reguli: se face suma biilor de
transmisie i rezultatul este Pt . Acasta mpreun cu octetul de
transmis se trimit pe canalul de emisie iar receptorul primete
bitul de paritate Pt pe care il redenumete bit de paritate
recepionat Pr Receptorul, la rndul su, calculeaz din octetul
recepionat paritatea calculat Pc . Apoi se compar Pc cu Pr. .
Dac sunt egale (Pc=Pr =0 sau Pc =Pr =1), atunci nu este detectat
eroare. Dac sunt diferite, adic (P r =0, Pc =1) sau (Pr =1, Pc =0)
atunci se detecteaz eroare.
Detecia erorilor prin bitul de paritate are dezavantajul c
poate detecta numai un numr impar de erori (1,3,5.). La
apariia unui numr par de erori acestea nu se pot detecta prin
bitul de paritate. De remarcat c n urmtoarele exemple am
folosit paritatea impar, adic bitul de paritate este 1, la un numr
impar de 1, deci la detectarea sumei modulo 2 n valoare
adevrat. n unele cazuri se folosete paritatea par, adic bitul
de paritate este 1 la un numr par de 1, deci detectarea sumei
modulo 2 n valoare negat. Se d mai jos un tabel de coduri ale
bitului de paritate pentru o transmisie pe 4 bii.

51

Proiectare logic

Tabelu l. 4. Coduri ale bitului de paritate


pentru o transmisie pe 4 bii.
Reprezentare
zecimal
0
1
2
3
4
5
6
7
8
9

Coduri bit
paritate
00000
00011
00101
00110
00110
01010
01100
01111
10001
10010

Codul 2 din 5
Pentru a putea detecta i un numr par de erori se utilizeaz
codul 2 din 5, deoarece acest cod permite la fiecare numr exact
doar 2 bii de 1. De remarcat c i n cazul acestui cod este
posibil s nu se detecteze eroarea dar rata de apariie a erorilor
este mult mai mic.
Exemplu:
Dac se transmite 7(10001) i dac ultimii doi bii se
recepioneaz eronat, se primete 10010 adic 8. Bitul de
paritate e neschimbat, se primete prin cod un numr valid i
detecia nu apare la dou erori.
Codul CHECK- SUM
Pentru perifericele care stocheaz date la blocuri de mari
dimensiuni, se calculeaz Check-Sum-ul unui bloc prin suma
tuturor cuvintelor fr transport. Check- Sum-ul calculat pentru
blocul de emisie se compar cu cel calculat la recepie i dac
sunt egale nu exist eroare.

53

Proiectare logic

n cuvinte

m bii

BLOC
cu nxm
cuvinte

CSe

emisie

BLOC
Recepionat

CSc
comparare

CSr

eroare

Fig.1.2. Mecanismul detectrii erorilor prin Check-Sum.


Exemplu
Fie un bloc cu n=4 cuvinte pe m=32 bii de urmtoarea
form:
A B 0 1
1 C 3 4
2 3 4 5
6 0 7 0
CS = 3 A E A CStrimis
Codul detector de erori CRC (polinomial)
Ideea algoritmului CRC este de a considera mesajul ca un
singur numr binar care s fie mprit repetat cu o valoare fixat,
suma de control fiind restul mpririi. Mesajul de transmis este
interpretat ca un polinom cu coeficieni 0 i 1. Un cadru de k bii
este vzut ca ca o list de coeficieni pentru un polinom de grad
k-1. Bitul cel mai semnificativ este coeficientul lui xk-1 .
Exemplu
Fie mesajul de transmis: 23(10) = 17(h) =10111(2)
Polinomul ataat este:
P(x) = 1.x4 + 0.x3 +1.x2 + 1.x1 +1.x0 =
= x4 + x2 + x1 +x0
Polinomul de transmis P(x) se mparte la un polinom fix ,
mpritor, G(x), restul fiind R(x). La recepie polinomul
Preceptat(x) se mparte la acelai polinom mpritor G(x) i rezult
un rest R' (x) . Dac R(x) = R' (x) transmisia s-a fcut corect.
Algoritmul pentru CRC este:

55

Proiectare logic

1. Fie r gradul polinomului generator G(x). Se adaog r bii


la captul mai puin semnificativ al mesajului. Mesajul va
avea n+r bii.
2. Se mparte acest polinom la polinomul G(x).
3. Restul este adogat la captul cel mai puin semnificativ al
mesajului, apoi se transmite.
Receptorul poate alege una din urmtoarele metode:
1. Separ mesajul i suma de control. Calculeaz suma de
control pentru mesaj (dup ce adaog r de 0) i compar
cele dou sume de control.
2. Calculeaz suma de control a ntregului mesaj i verific
dac obine ca rezultat zero.
Alegerea unui polinom generator nu este simpl. Sunt utilizate
trei polinoame
- CRC-12 = x12 + x11 + x3 + 2.x1 + 1 (e=6 bii)
- CRC-16 = x16 +x15 + x2 + 1
- CRC CCITT = x16 + x12 +x5 +1 Se detecteaz toate erorile sigulare, duble, cu numr impar de
bii, toate erorile n rafale de lungime 16 sau mai mici.
Exemplu
Fie polinomul generator = 10111
Pentru mprire folosim un registru de 4 bii. mprrirea se face
astfel:
Registru =0
Se adaog 4 bii de zero la sfritul mesajului.
while (mai exist bii n mesaj)
{se ifteaz registrul la stnga cu un bit i se citete
urmtorul bit al mesajului pe poziia 0,
if(bitul 1 a fost eliminat la pasul anterior prin iftare)
registru = registruV polinom
Suma de control Fletcher
La sfritul anilor 70 s-a pus la punct o tehnic de
transmitere a datelor, cu rezultate ca CRC dar necesitnd un timp

57

Proiectare logic

de calcul mai redus, cunoscut sub numele de suma de control


Fletcher.
Cmpul de verificare se compune din 2 variabile de 8 bii
fiecare. Pe msur ce fiecare octet din blocul de date este
procesat, valoarea acestuia este adunat la prima variabil iar
restul mpririi acesteia cu 255 devine noua valoare a variabilei.
A doua variabil este restul mpririi la 255 al sumei dintre
valoarea precedent i valoarea curent a primei variabile.
Se pot aduga 2 noi octei care pui la sfritul blocului
de date s duc la o sum de control 0 la verificarea de ctre
primitor. Primul octet calculat este 255 minus restul mpririi la
255 a sumei celor 2 variabile de control. Al doilea octet este 255
minus restul mpririi la 255 a sumei dintre primul octet i prima
variabil de control.
int i;
byte sum1, sum2,
sum1=0;
sum2=0;
for(i=1; i<=black.length;i++)
{sum1=(sum1+block(i))% 255,
Sum2=(sum1+sum2)%255;}
check1=255-(sum1+sum2)%255,
check2=255-(sum1+check1)%255,
Algoritmul Fletcher permite o detecie a erorilor comparabil cu
cea a algoritmului CRC dar la un nivel cu un ordin mai mic,
fiind recomandat implementrii de procesoare mai lente.
Coduri corectoare de erori
Unul din cele mai cunoscute coduri detectoare i corectoare de
erori singulare este codul Hamming (7,4). Aceast notaie arat
c avem 7 bii dintre care 4 sunt bii de date iar restul de 3 sunt
bii de paritate.
Organizarea biilor n cuvnt este:
P

59

Proiectare logic
1

Unde: P1 ,P2 ,P3 sunt bii de paritate


d1 ,d2 ,d3 d4 sunt bii de date
Biii de paritate sunt calculai astfel:
P1 = d1+d2 +d4
P2 = d1+d3 +d4
P3 = d2+d3 +d4
La codare se determin cuvntul de cod determinat de cei 4 bii
de date i de cei 3 bii de paritate dup formula:
P1 = d1+d2 +d4
P2 = d1+d3 +d4
P3 = d2+d3 +d4
La decodare se calculeaz cu cei trei bii de paritate, dup
formula:
Pc1 =P + d +d +d
1
1
2
4
Pc2 =P +d +d +d
2

3
c

P
1
c

2
c

3
c

1
c

2
c

3
c

-Dac P = P = P =0

=P3 + d2+d3 +d4

nseamn c nu exist eroare.

-Dac P = P = P 0 atunci valoarea n binar dat de aceast


triad este bitul n eroare conform notaiei
P1 P2 d1 P3 d2 d3 d4
b1 b2 b3 b4 b5 b6 b7
3

-Dac Pc Pc Pc = 111 atunci b7 =1 i rezult c eroarea este la


bitul de date d4 .
3
2
1
-Dac Pc Pc Pc = 110 atunci b6 =1 i rezult c er0area este la
bitul de date d3 .
3

-Dac Pc Pc Pc = 001 atunci b1 = 1 i rezult c eroarea este


la bitul de paritate P1 .

61

Proiectare logic

Exemplul 1
Fie de transmis codul 1001 deci:
d1 = 1, d2 =0, d3 = 0. d4 =1
Pc1 =1+0+1 =0
Pc2 =1+0+1=0
Pc3 =0+0+1=1

Deci codul Hamming este la tranmisie 0 0 1 1 0 0 1 (sunt


subliniai biii de paritate)
La decodare (recepie), biii de date recepionai sunt:

d r1 1
d r2 0
d r3 0
d r4 1 Rezult la fel ca la codare, deci fr eroare la bii de date.
Biii de paritate recepionai:

Pr1 0
Pr2 0
Pr3 1 Nici la biii de paritate nu s-au recepionat erori
Biii de paritate calculai sunt:
Pc1 = Pr1 d r1 d r2 d r4 =0+1+0+1=0
Pc2 = Pr2 d r1 d r3 d r4 =0+1+0+1=0
Pc3 = Pr3 d r2 d r2 d r4 =1+0+0+1=0
1
2
3
Deoarece Pc Pc Pc sunt 000, nu este eroare.

Exemplul 2

63

Proiectare logic

Presupunem c cuartetul Hamming recepionat este 0011011l


dac bitul de date 6 (b6 ) care corespunde lui d3 s-a primit eronat.
S vedem cum codul Hamming detecteaz i corecteaz aceast
eroare.
Calculm biii de paritate:
Pc1 = Pr1 d r1 d r2 d r4 =0+1+0+1=0
Pc2 = Pr2 d r1 d r3 d r4 =0+1+1+1=1
Pc3 = Pr3 d r2 d r2 d r4 =1+0+1+1=1
Pc3 Pc2 Pc1 =110 rezult c b este eronat i deci d este eronat.
3
3
3
d

1
La corecie r
i deci d
=0
3 calculat

Exemplul 3
Presupunem c cuartetul Hamming recepionat este 0111001 deci
b2 este eronat respectiv P2 este eronat.
Biii de paritate sunt;
1
1
1
2
4
. Pc = Pr d r d r d r =0+1+0+1=0

Pc2 = Pr2 d r1 d r3 d r4 =1+1+0+1=1


Pc3 = Pr3 d r2 d r3 d r4 =1+0+0+1=0

n acest caz datele s-au recepionat corect dar bitul de paritate 2


este incorect. Coreclia este P2 corectat =0.
1.3.2.Coduri ALFANUMERICE
Codurile alfanumerice reprezint toate caracterele unui
alfabet prin secvene de cifre binare. Alegerea numrului de
poziii binare necesare reprezentrii este o problem dificil,
acestea trebuind s ndeplineasc pe lng condiia N2 N i o
serie de alte condiii legate de asigurarea proteciei la transmisia
informaiei.

65

Proiectare logic

Codul ASCII
Codul ASCII (American Standard Code for Information
Interchange) este un cod standard de reprezentare a caracterelor
prin valori ntregi pe 7 bii. Acest cod a fost introdus pentru a se
obine o compatibilitate ntre diferitele tipuri de echipamente
utilizate la procesarea datelor. Este compus din:
Codul ASCII STANDARD i
Codul ASCII EXTINS.
Codul ASCII STANDARD
Acest cod a aprut n aniii 60-70 i este un cod pe 7 bii
care const n 128 caractere (27 ) atribuite unor caractere, numere,
semne de punctuaie i celor mai uzuale caractere speciale. Cele
34 caractere de control sunt desemnate prin nume abreviate.
Caracterele de control se utilizeaz pentru transmiterea datelor i
aranjarea textului ntr-un anumit format. Exist trei tipuri de
caractere de control: de formatare, de separare a informaiei i
de control al comunicaiei.
Tabelul 1.5 Codul ASCII (7bii)-STANDARD
b6 b5 b3
b3 b2
000
001 010 011 100 101
b1 b0
0000 NUL DLE
0
P
@
L
0001 SOH DC1
!
1
A
Q
0010
STx DC2
"
2
B
R
0011
ETx DC3
#
3
C
S
0100 EOT DC4
$
4
D
T
0101 ENO NAK %
5
E
U
0110 ACK SYN
&
6
F
V
0111 BEL ETB
*
7
G
W
1000
BS
CAN
(
8
H
X
1001
HT
EM
)
9
I
Y
1010
LF
SUB
:
J
Z

110

111

"

a
b
c
d
e
f
g
h
i
j

q
r
s
t
u
v
w
x
y
z

67

Proiectare logic

1011
1100
1101
1110
1111

VT
FF
CR
SO
SI

ESC
FS
GS
RS
US

+
,
/

:
<
=
>
?

K
L
M
N
O

[
\
]
^
]

k
l
m
n
o

{
|
}

DEL

Dintre caracterele de formatare a textului menionm BS


(Back Space), retur de car (RC Carriage Retur), tabulare
orizontal (HT Horizontal Tabulation).
Separatorii de informaie se utilizeaz pemtru separarea
datelor n seciuni, de exemplu n paragrafe i pagini. Acestea
cuprind caractere cum sunt separatorul de nregistrare RS
(Record separator),i separatorul de fiier FS(File separator).
Caracterele de control al comunicaiei se utilizeaz la
transmisia textului. Exemple de asemenea caractere sunt:
STx(Start of text) i ETx(End of text) care se pot utiliza pentru
ncadrarea unui mesaj transmis pe liniile comunicaie
Codul ASCII RESTRNS este pe 8 bii i cuprinde
caractere de e 128 e 255. Acestea reprezint caractere
suplimentare matematice, grafice, caractere speciale sau din
diverse limbi.
Codul UNICODE i ISO/IEC ICE 10646
UNICODE este un set de caractere specificat de un
consoriu de productori importani de calculatoare din SUA. A
fost elaborat cu scopul de a elimina dificultile cauzate de
utilizarea seturilor de caractere codificate diferit n programele
elaborate pentru mai multe limbi. ncepnd cu versiunea 1.1,
UNICODE este compatibil cu standardul ISO 10646, a crui
prim vesiune a fost elaborat n 1993 de organizaiile ISO
(International Standard Organization) i IEC (International
Electrotechnical Commission). Numele standardului UNICODE
provine de la Universal Multiple Octet Codet Character Set,
ntlnit i sub forma acronimului UCS (Universal Character Set).
Versiunea curent a standardului 10646 este 30UCS i a fost

69

Proiectare logic

primul set de caractere standardizat elaborat cu scopul de a


include n final toate caracterele utilizate n toate limbile, ca i
alte simboluri cum sunt cele matematice. UCS este folosit att
pentru reprezentarea intern a datelor n sistemele de calcul ct
i pentru comunicaiile de date. n versiunile uzuale ale UCCS,
codul unui caracter este reprezentat prin 4 cifre hexazecimale,
deci pe 2 octei (versiunea UCS-2). Exist i o form pe patru
octei (UCS-4) pentru a garanta faptul c spaiul de codificare va
fi suficient i n viitor. n UCS-2 exist 65536 coduri ce sunt
mprite pe 256 linii cu cte 256 celule fiecare. Primul octet al
codului unui caracter indic numrul liniei, al doilea octet
numrul celulei. Primele 128 de caractere din linia 0 reprezint
caracterele ASCII. ntreaga linie 0 conine aceleai caractere ca
i cele definite de standardul 8859-1. Octetul unui caracter din
standardul 8859-1 poate fi transformat n reprezentarea UCS
prin adugarea de zerouri n faa acestuia. UCS cuprinde aceleai
caractere ca i ASCII. n forma pe 4 octei pot fi reprezentate
peste dou milioane caractere diferite (232 ). Primul bit al
primului octet trebuie s fie 0, astfel nct se utilizeaz doar 31
de bii din 32. Acest spaiu este mprit n 128 de grupe , fiecare
cu cte 256 de planuri. Primul octet de cod indic numrul
grupei, al doilea numrul planului, al treilea numrul liniei, al
patrulea numrul celulei. Caracterele care pot fi reprezentate n
forma UCS-2 aparin planului 0 din gruppa 0 , numit plan
multilincv de baz BMP (Bazic Multilingual Plan). nc nu au
fost alocate poziiile n afara planului BMP iar n practic se
lucreaz pe 2 octei.
Crearea unui cod
S creem un cod pentru un pachet de cri de joc cu 52 de
cri care s rspund la urmtoarele caracteristici, adic s scrie
paternul binar n urmtoarele cazuri:
Toate crile de pic
Toate crile de rou

71

Proiectare logic

Toate crile de 6 indiferent de culoare


Toate crile mai mari dect 8
Toate crile mai mari dect 4, de culoare roie
Toate crile cu figuri (J,Q,K)
Soluie:Crile de joc sunt de 4 feluri: cup, caro, pic, trefl.
Culorile sunt de dou feluri : roii(cup i caro) i negre (pic i
trefl). Pentru cele patru feluri de cri sunt necesari 2 bii iar
dac se codific ntr-un anumit fel se poate face ca unul din cei 2
bii s codifice culoarea.
Tabelul 1.6.

13
sunt

b1

b2

fel

culoare

cup

rou

caro

rou

pic

negru

trefl

Negru

Pentru a
codifica cele
tipuri de cri
necesari 4 bii.
Exemplu de tip

de codificare:
Tabelul 1.7.
b3

b4

b5

b6

carte

10

As

73

Proiectare logic
1

Cu acest cod putem rspunde la toate paternurile, inclusiv la cel


cu figurile, deoarece am codificat b3 = b4 = 11 toate figurile
(J,Q,K).
1. Toate crile de pic

10xxxx

2 .Toate crile de rou

0xxxxx

3. Toate crile de 6 indiferent de culoare

xx0110

4, Toate crile mai mari dect 8

xx1xxx

5. Toate crile mai mari dect 4, de culoare roie 0xx100


6. Toate crile cu figuri (J,Q,K)

xx11xx

75

Proiectare logic

CAPITOLUL 2
2.BAZELE LOGICE ALE SISTEMELOR DE
CALCUL
2.1.FORMALISMUL MATEMATIC AL PROIECTRII
LOGICE. ALGEBRA BOOLE.
Bazele algebrei Boole au fost puse de matematicianul i
logicianul englez George Boole (1815-1864). A fost conceput ca
o metod simbolic pentru tratarea funciilor logice dar a fost
dezvoltat i aplicat i n alte domenii ale matematicii. In anul
1938 Claude Shanon a utilizat-o pentru prima dat n analiza i
sinteza circuitelor de comutaie.
n anul 1854 apare la New York, n editura Dover
Publication, lucrarea lui Boole An Investigation of the Laws of
Thought . Aceast lucrare conine introducerea unei algebre (o
structur algebric) intenionat s descrie relaiile logice
complexe ale limbajului natural. Focalizarea acestei lucrri
asupra limbajului natural i relaiilor logice complexe ale
acestuia este deosebit de important dac se privete aceast
abordare prin prisma translatrii unei descrieri, n limbaj natural,
a funcionrii unui circuit (bloc funcional) oarecare, ntr-o
descriere riguroas, ne-ambigu i echivalent funcional
acesteia. n linii mari activitatea de proiectare actual n

77

Proiectare logic

domeniul circuitelor digiitale este compus, ntre altele, dintr-o


translatare de acest fel. Termenii au evoluat n complexitate dar
ideea este, n principiu, aceeai.
Exemplul 1.
Se consider urmtoarea descriere verbal a unui bloc simplu
de comand al uii unei sli: - ua este deschis atta timp ct
exist o persoan n imediata sa proximitate ( aproximativ 50 cm
de-o parte i de alta a uii) i rmne deschis pentru un interval
relativ scurt de timp t, chiar i dup plecarea oricrei persoane
din zona de proximitate. Se dorete o scriere concis exact, n
termenii algebrei comutatorilor, a acestei descrieri (fcut n
termenii limbajului natural) a funcionrii uii. Fiecare element
relevant din descrierea n limbaj natural va fi notat printr-o
variabil care poate lua doar dou valori: 0 i 1. Ua este
deschis. Se noteaz prin variabila U. Ct vreme ua este
deschis, U = 1, iar cnd ua este nchis U = 0. nchiderea i
deschiderea uii are loc n urma unei acionri, printr-un motor
electric de exemplu.
Exist o persoan n zona de proximitate. Determinarea
unei persoane n zona de proximitate se poate realiza printr-un
senzor cu traductor inductiv, fotoelectric etc. Prezena unei
persoane n zona de proximitate se noteazprin variabila P. Ori de
cte ori este o persoana n apropierea uii P = 1, altfel P = 0.
Temporizatorul este activ pentru durata prestabilit. Se noteaz
prin T. Atunci cnd temporizatorul este activ T = 1, altfel T = 0.
Temporizatorul este activat de ndat ce este sesizat o persoan
n zona de proximitate. Activarea temporizatorului se mai
numete i startarea acestuia. Prezena unei persoane n zona de
proximitate face ca ua s se deschid, pe de-o parte i activeaz
temporizatorul, pe de alt parte. Apariia unei persoane, n zona
de proximitate, pe durata temporizrii are ca efect numai
reactivarea temporizrii, ua fiind deja deschis. Se poate deduce
uor c translatarea descrierii iniiale poate fi fcut succint
astfel: U = SAU(P,T). Sintetic funcionarea uii poate fi

79

Proiectare logic

exprimat, utiliznd expresia anterioar cu blocul funcional


SAU, astfel: ua este deschis dac este sesizat, n apropiere, o
persoan sau este activ temporizatorul. Limbajul natural are, spre
deosebire de cel matematic, un anumit grad de ambiguitate.
Enumerri de forma Marcajul poate fi alb i rou sau galben,
nu au ntotdeauna o preceden bine stabilit a operatorilor
fundamentali. Operatorii fundamentali au particulariti care pot
depinde de context, n limbajul natural. Astfel, se consider fraza
Colegul meu este mbrcat cu o jachet roie sau cu un sacou
verde, spre exemplu. Aceast fraz are dou dependene n
raport cu care este devrat. Este adevrat atunci cnd colegul
poart o jachet roie sau cnd poart un sacou verde dar,
ambele situaii nu pot fi simultan satisfcute, evident. deosebirile
dintre limbajul natural i cel matematic fac din procesul de
translatare al acestora, n proiectarea sistemelor i circuitelor
digitale, o activitate solicitant.
Modul cel mai uzitat de introducere a algebrei Booleene
face apel la setul de postulate introdus de Huntington n anul
1904. Primul postulat poate fi considerat ca stabilind sistemul
aflat n studiu.
I.Exist o mulime K de obiecte sau elemente, satisfcnd o
relaie de echivalen notat prin =, ndeplinind principiul
substituiei. Prin substituie se nelege c relaia a= b ntre
elementele a i b implic faptul c elementul a poate fi
substituit prin elementul b n orice expresie care conine
elementul a fr s fie afectat validitatea expresiei respective.
IIa. Este definit o lege de compoziie + astfel nct
expresia a + b este n K,( a, bK).
IIb. Este definit o lege de compoziie * astfel nct
expresia a * b( abreviat ab) este n K, (a, bK).
IIIa.Exist un element 0K, astfel nct a + 0= a, a K.
IIIb Exist un element 1K, astfel nct a * 1= a, a K.
IVa. a+ b= b+ a, comutativitatea legii +
IVb. a* b= b* a, comutativitatea legii *.

81

Proiectare logic

Va. a+ (b* c) = (a+ b) * (a+ c), distributivitatea+ fa de *.


Vb. a* (b+ c) = (a* b) + (a* c), distributivitatea* fade+.
VI. aK, aK, astfel nct a = 0, i a + a = 1. x,y
K, astfel nct x y.
Se poate remarca faptul c nu s-a precizat nimic n legtur cu
numrul sau tipul elementelor care alctuiesc mulimea K.
Exist mai multe mulimi care satisfac aceste postulate. Cteva
dintre acestea vor fi exemplificate n continuare. Pentru ca un set
de postulate s fie valid acesta trebuie s fie consistent.
Consistena revine la demonstrarea faptului c nici unul dintre
postulate nu contrazice oricare dintre celelalte postulate din setul
considerat. Verificarea consistenei se poate face prin
examinarea fiecrui postulat, pentru a demonstra c nici un
postulat nu contravine oricrui grup posibil de postulate, dar
abordarea este extrem de laborioas. Exist, ns, o alta cale mult
mai simpl pentru verificarea consistenei. Pentru aceasta este
necesar s se gseasc doar un singur exemplu de algebr
boolean despre care se tie, n mod independent, c este
consistent. Dac o astfel de structur algebric satisface toate
postulatele lui Huntington, atunci postulatele (n sine) sunt
consistente. Cea mai simpl algebr boolean const din numai
dou elemente, notate prin 1 i 0, definite c satisfac:
1 = 0, 0 = 1 1 * 1 = 1 + 1 = 1 + 0 = 0 + 1 = 1, i
0+0=0*0=1*0=0*1=0
Se remarc faptul c postulatele I, II, III i VII sunt satisfcute
prin definiie. Satisfacerea legilor de comutativitate (IVa i IVb)
este evident si verificarea legilor de distributivitate (Va i Vb)
necesit doar alctuirea listelor de valori pe-o parte i de alta a
ecuaiilor, pentru toate combinaiile de valori ale variabilelor a, b
i c. Postulatul VI este imediat verificabil atribuind valori (0 i 1)
variabilei a. O alt cerin important este independena
postulatelor. Aceasta revine la verificarea faptului c nici unul
dintre postulate nu poate fi dedus din celelalte. Postulatele, aa
cum au fost exprimate, sunt independente. Aceast verificare este

83

Proiectare logic

mult mai complex, si nu este esenial pentru scopul cestei


abordri. Pe de alt parte, nu este necesar abordarea algebrelor
Booleene printr-un set independent de axiome. Exist multe
abordri ale subiectului care includ ntre axiome anumite
teoreme, din raiuni de simplificare a modului de prezentare.
Se poate trage o prim concluzie pe marginea aparatului
formal introdus. O algebr Boolean se definete, n general,
peste o mulime KB {0,1}nzestrat cu dou operaii, notate
aditiv + i respectiv multiplicativ *, care satisfac legile de
comutativitate i distributivitate. Mulimea B conine ntotdeauna
cele dou elemente notate 0 i 1. Acestea sunt elementele neutre
ale operatorului aditiv i, respectiv, multiplicativ:
a* 1 = a,
a+ 0 =a,aB.
n fine, oricare element a din B are un complement, notat n cele
ce urmeaz prin a. Relaiile importante dintre un element i
complementul su sunt enunate astfel:
a * a = 0 i
a + a = 1, aB.
Algebra Boole este ,deci, o structur n care
- mulimea {0,1} este mulimea elementelor algebrice;
- operaiile definite sunt:
1. operaia aditiv de tip SAU, notat cu +, care se
desfoar dup urmtorul tabel:
+

2.- operaia multiplicativ de tip I care se desfoar dup


urmtorul tabel:
.

85

Proiectare logic

1 0 1
Este important, de reinut, c ambele elemente ale mulimii B nu
trebuie privite ca fiind numere, sunt doar notate prin dou
numere. La fel de bine se pot utiliza alte dou simboluri distincte,
dar tradiional se utilizeaz 0 i 1. Aceste simboluri corespund,
din punct de vedere tehnologic, unor stri distincte ale unor
dispozitive fizice care implementeaz operatorii acestor algebre.
Se poate remarca cu uurin faptul c algebra Boolean difer,
ca structur algebric, de algebra obinuit prin distributivitatea
ambilor operatori, pe de-o parte, i prin apariia complementului,
pe de-alt parte.
Principiul dual. O privire mai atent asupra postulatelor lui
Huntington relev faptul c anumite postulate sunt grupate n
perechi iar fiecare postulat dintr-o pereche poate fi obinut din
cellalt postulat prin interschimbarea simbolurilor 0 i 1, ca i a
operatorilor + i *. Astfel se poate remarca:
a+ 0 = a, prin interschimbarea amintit devine
a* 1 = a, iar
a+ (b* c)=( a+ b) * (a+ c) se transform n
a* (b+ c) = (a* b) + (a* c).
Oricare teorem care poate fi demonstrat n algebra boolean,
are o teorem dual care este, de asemenea, adevrat. Cu alte
cuvinte, fiecare pas in demonstraia unei teoreme poate fi nlocuit
prin dualul acestuia, producnd astfel demonstraia teoremei
duale.
Teoremele fundamentale ale algebrei Booleene
Enunm principalele teoreme, cele care permit o
manipulare convenabil a algebrei Booleene. Unele dintre
teoreme sunt numite leme deoarece acestea au un rol mai limitat
de aplicabilitate, furniznd relaii utilizate n construcia
demonstraiei unor rezultate cu grad ridicat de generalitate,
teoremele. Att lemele ct i teoremele vor fi enunate dar vor fi

87

Proiectare logic

demonstrate numai o parte (cele mai semnificative)


demonstraiile celorlalte leme i teoreme fiind lsate ca exerciii.
Lema 1 Elementele 0 i 1 sunt unice.
Demonstraie: se presupune c exist douelemente 0, notate prin
01i 02. n baza postulatului IIIa, pentru orice elemente w1i
w2din K au loc relaiile: w1+ 01= w1i w2+ 02= w2. Acum fie
w1= 02i w2= 01: 02+ 01= 02i 01+ 02= 01. Utiliznd
comutativitatea operatorului + i proprietatea de tranzitivitate a
egalitii, rezult: 01= 2. Prin dualitate se poate demonstra i
unicitatea elementului 1.
Lema 2 Pentru orice element wK au loc relaiile:
w+ w = w i w* w = w.
Lema 3 Pentru orice element wK au loc relaiile:
w+ 1 = 1 i w* 0 = 0.
Lema 4 Elementele 0 i 1 sunt distincte iar 1 = 0.
Lema 5 Pentru orice elemente w1i w2 din K au loc relaiile:
w1+ w1w2= w1, i w1(w1+ w2) = w1.
Lema 6 Complementul unui element wK, w, este unic.
Lema 7 Pentru orice element wK, (w) = w.
Lema 8 Oricare ar fi elementele u, v iwK, are loc relaia:
u* ( (u+ v) +w)= ( u+ v) +w) * u.
Teorema 1 Oricare ar fi elementele u, v i wK, au loc relaiile:
u+ (v+ w) = (u+ v) + w, i u* (v* w) = (u* v) * w.
Teorema 2

Pentru orice pereche de elemente u i vK, se verific relaiile:


u+ uv= u+ v i u(u + v) = uv.
Teorema 3 Urmtoarele dou relaii sunt adevrate oricare ar fi
elementele u i vK
(u+ v) = u * v i (u* v) = u + v.
Proprietile algebrelor Booleene

Spre deosebire de postulate, proprietile sunt, n fapt, teoreme i


de aceea sunt demonstrabile. Metoda general de demonstrare a
acestor proprieti se bazeaz pe postulatele algebrelor Booleene
utilizndu-se mult inducia matematic.

89

Proiectare logic

Idempotena :
Comutativitatea:
Asociativitatea:
Elementul neutru:
Distributivitatea:
Complementarea:

x+x=x xx=x
x+y=y+x
xy=yx
(x+y)+z=x+(y+z)=x+y+z
(xy)z = x(y.z)=xyz
pentru adunare este 0 x+0=x
pentru nmulire este 1 x1=x
x(y+z) =xy+xz
x+y.z= (x+y ) (x+z)

x x 1 principiul teriului exclus


xx

=0
principiul contradiciei
(complementul mai poate fi notat x)

x y x. y

Legile lui de Morgan:

Generalizare:

i 1

i 1

xi xi

xy x y
n

Generalizare:

x x
i

i 1

i 1

Involuia (negarea negaiei) : x x


Legea absorbiei: forma aditiv

x+xy = x
x+ x y = x+y
forma multiplicativ x(x+y) = x
x( x +y) = xy

Algebre booleene
O algebr Boolean se identific, tradiional, prin numele
mulimii suport, B. Exist, n acest sens, urmtoarele exemple
clasice:Algebra comutatorilor, Algebra submulimilor unei

91

Proiectare logic

mulimi (numit i algebra claselor), Algebra boolean


aritmetic, Algebra Boolean a funciilor Booleene.

Aplicaii
S se aduc la forma cea mai simpl urmtoarele expresii,
utiliznd postulatele algebrei boleene:
1)

E AB( BC A)

Soluie
comutivitate +
idempoten

distrib.

absorbie

ABBC ABA ABC AB AB


2)

E ( A B C )( A.B C )

Soluie:
contradicie+
complementaritate+
comutativitate

distributivitate

A A.B AC BC AB BCC

3)
Soluie:

AC AC BC

E ( AB BC AC AB BC A.( A B C )

E A( B B) B(C C ) C ( A A ( A B C )
contradicie

= ( A B C )( A B C )

teriu exclus+
contradicie

4) E ( A B )( A C )( B C )( A B)( A C )(C A)
Soluie:

93

Proiectare logic

Se utilizeaz identitatea : ( A B)( A B) A


E [( A B)( A B )][( B C )( B C )][( C A)(C A )] ABC
5) E ABC ABC ABC ABC ABC ABC
Soluie

teriu

E A.B(C C ) A.B(C C ) AB(C C ) A.B AB AB


exclus

B( A A) AB B B A A B
6) E ABC ABC ABC ABC ABC

Soluie:
teriul exclus

E A. C ( B B) AB (C C ) ABC

A.C AB ABC C ( A AC ) AB

teriul exclus
absorbie

C ( A C ) A.B

C. A C A.B C ( A 1) A.B C A.B

7) E ABC A.BC ABC ABC ABC .


Soluie:
teriul exclus

E AC ( B B ) AC ( B B) ABC

absorbie

A.C AC ABC

A) ABC C C A.B C AB

8) S se aplice teorema lui De Morgan urmtoarelor


expresii:

E A B (C D )
Soluie:

E A B C D A B C.D A B C D
E A B C D A B C D

Soluie:

E A B C D A B C D A BC D A B C D

95

Proiectare logic

2.2. FUNCII LOGICE. CIRCUITE LOGICE.


Funcii logice. Fie mulimea Z={0,1}. O funcie logic de n
variabile este o aplicaie definit pe Zn lund valori n Z
F:ZnZ
Realiznd o coresponden biunivoc dintre mrimile
electrice ce caracterizeaz circuitul, pe de o parte , i simbolurile
0 i 1, pe de alt parte, se poate stabili funcia reprezentat de
circuitul logic. Varibila de intrare este semnalul electric de intrare
iar valoarea funciei logice logice rezult la ieirea din circuit
(este rspunsul circuitului).
Aa cum pentru descrierea unor funcii logice mai complexe
sunt folosite expresii logice (construite din litere ce desemneaz
variabile i simbolurile operaiilor logice) pentru implementarea
funciilor logice se vor folosi circuite obinute prin conectarea
unor circuite elementare ( pori logice).
Funciile logice pot fi reprezentate prin prin tabele (tabele
de adevr ) care nscriu valoarea funciei pentru fiecare variabil
i prin expresii logice. Ele descriu funcionarea unui circuit
elctronic logic.
Circuitele electronice se pot clasifica n dou mari
categorii:
-circuite analogice
-circuite logice
Circuitele analogice sunt cele care utilizeaz semnalul
analogic, adic un semnal sub form de unde ntr-o plaj de
tensiuni {-u,+u}
Circuitele logice utilizeaz dou semnale logice, 0 i 1,
fiecruia corespunzndu-i un anumit nivel de tensiune. Pentru
primele circuite logice nivelele de tensiune erau:

97

Proiectare logic

0 logic tensiunea U E {0 V , 0,3 V}


1 logic tensiunea U E {3,5 V , 5V}
Circuitele logice sunt circuite electronice alimentate la o
surs de tensiune, la intrarea crora se aplic semnale electrice
(tensiune sau curent) i la ieirea crora se obin rspunsuri
electrice.
Circuitele logice se mpart n dou categorii:
-circuite logice combinaionale
-circuite logice secveniale
Circuitele combinaionale sunt acele circuite care nu
memoreaz rezultatul la ieire. Din aceast categorie fac parte
porile logice care stau la baza altor circuite combinaionale mai
complexe
ca:
decodoare,
multiplicatoare,
sumatoare,
comparatoare etc.
Circuitele secveniale sunt acele circuite care memoreaz
rezultatul final. Cel mai cunoscut circuit secvenial este
bistabilul care st la baza unor circuite mai complexe ca
numrtoare, registre de memorie, registre de deplasare stnga
dreapta .a.
2.2.1.CIRCUITE LOGICE COMBINAIONALE.
PORI LOGICE
Circuitele combinaionale nu au memorie. Funcionarea lor
poate fi descris prin funcii logice. Funciile logice elementare i
simbolurile circuitelor care le implementeaz se numesc generic
pori logice. Porile logice sunt cele mai cunoscute circuite
combinaionale. .
O poart logic este un dispozitiv electronic numeric
elementar care implementeaz o funcie logic elementar. Ea are
una sau mai multe intrri digitale/binare, reprezentnd 0 logic sau
1 logic, i are ca ieire o funcie simpl de aceste intrri.

99

Proiectare logic

Starea de potenial ridicat are semnificaia de 1. Aceasta


este convenia logic pozitiv. Pentru circuitele integrate se adopt
convenia logic pozitiv. Cele mai utilizate pori logice sunt:
Inversorul NU(NOT)
Funcia NU logic are urmtoarea interpretare:
- ieirea sa este adevrat (1 logic) dac intrarea sa este fals (0
logic)
- ieirea sa este fals (0 logic) dac intrarea sa este adevrat (1
logic).

f x

Poarta I (AND)
Funcia I logic are urmtoarea interpretare:
- dac cel puin una din intrri se afl n 0 logic, atunci ieirea va
fi n 0 logic
- dac ambele intrri sunt n 1 logic atunci ieirea va fi n 1 logic.

x
y

f x y

Poarta SAU (OR)


Funcia SAU logic are urmtoarea interpretare:
- ieirea sa este adevrat (1 logic) dac cel puin una din intrri
este adevrat (1 logic)
- ieirea sa este fals (0 logic) dac ambele intrri sunt false (0
logic).
f x y

101

Proiectare logic

Poarta I-NU (NAND)


Funcia I-NU logic are urmtoarea interpretare:
- ieirea sa este fals (0 logic) dac ambele intrri sunt adevrate
(1 logic)
- ieirea sa este adevrat (1 logic) dac cel puin una din intrri
este fals (0 logic).

f x. y

Poarta SAU-NU (NOR)


Funcia SAU-NU logic are urmtoarea interpretare:
- ieirea sa este fals (0 logic) dac ambele intrri sunt adevrate
(1 logic)
- ieirea sa este adevrat (1 logic) dac cel puin una din intrri
este fals (0 logic).
f x y

Poarta SAU-EXCLUSIV
Funcia SAU-EXCLUSIV are urmtoarea semnificaie:
-semnaleaz coincidena intrrilor prin ieire fals (0 logic);
-realizeaz suma modulo-2 , .

x
y

f=x y

103

Proiectare logic

Exist i pori cu mai multe intrri dar funciile logice se


pot implementa i cu pori cu numai dou intrri
Sistemele logice combinaionale, orict de complicate ar fi,
se realizeaz cu pori logice elementare. O poart logic
elementar implementeaz o funcie logic cu cel mult 2 intrri.
Astfel, funciile elementare sunt I, SAU, NU, SAUExclusiv, sau negrile lor: I-NU, SAU-NU. In practic,
porile logice sunt implementate sub forma de circuite integrate.
Pe un circuit integrat se gsesc 1, 2, 3, 4, 6 pori logice, n
funcie de numrul de intrri.
2.2.2.IMPLEMENTAREA FUNCIILOR LOGICE
O funcie y=f(x1,x2,x3,.xn) este o funcie logic dac
domeniul de definiie este reprezentat de produsul cartezian (0,1)n
, deci:
f : (0,1)n {0,1}
Avnd n vedere aceast definiie se poate spune c o
funcie logic (boolean) pune n coresponden o combinaie
binar asociat produsului cartezian cu una din valorile 0 sau 1.
Domeniul de definiie al unei funcii logice de n variabile este
format din 2n puncte (combinaii) , iar numrul de funcii este de
2 la puterea 2n. De exemplu, cu dou variabile se pot forma 16
funcii .
Funciile logice pot reprezenta un circuit logic format din
circuitele elementare (pori logice). Implementarea unei funcii se
face printr-o schem logic format din pori logice cu dou
intrri i o ieire. Exist i pori cu mai multe intrri dar, n
general, orice expresie logic poate fi implementat cu circuite
SAU, I , cu numai dou intrri i cu inversoare.
Un circuit electronic poate fi redat printr-o schem bloc, o
ecuai de funcionare i o schem logic.

105

Proiectare logic

Exemple de implementri pentru expresii logice.


Exemplul 1:
S se implementeze un NAND cu 7 intrri cu:
a) pori I cu dou intrri i inversoare.
b) pori SAU cu dou intrri i inversoare;
a)Soluie:

y x1 x2 x3 x4 x5 x6 x7
Implementare cu pori I cu dou intrri i cu inversoare:

Soluie: Aplicnd formula lui de Morgan:


7

xi
y x1 x2 x3 x 4 x5 x6 x7 = x1 x2 x3 x4 x5 x6 x7
i 1
b) Implementare cu pori SAU cu dou intrri i cu inversoare:

107

Proiectare logic

Exemplul 2:

y x x x x x x x x x4 x1 x3 x4

1 2 3
2 3 4
1 2
S se reprezinte expresia
a)cu pori I cu dou intrri i cu inversoare;
b)cu pori SAU cu dou intrri i cu inversoare
a)

Conform teoremei lui de Morgan:

y= x1x2x3+x2x3x4+x1x2x4+x1x3x4
b)

109

Proiectare logic

Exemplul 3:
S se implementeze expresia:

y ( x1 x2 x3 )( x2 x3 x4 )( x1 x2 x4 )( x1 x3 x4 )
a)cu pori I cu dou intrri i cu inversoare;

y x1 x2 x3 x2 x3 x4 x1 x2 x4 x1 x3 x4
( x1 x2 x3 )( x2 x3 x4 )( x1 x2 x4 )( x1 x3 4 )

111

Proiectare logic

b)cu pori SAU cu dou intrri i cu inversoare

y x1 x2 x3 x2 x3 x4 x1 x2 x4 x1 x3 x4
( x1 x2 x3 )( x2 x3 x4 )( x1 x2 x4 )( x1 x3 x4 )
(Conform teoremei lui de Morgan.)

113

Proiectare logic

2.3. FUNCII LOGICE. FORMA CANONICA


O funcie logic (boolean) este o funcie f(x 1 ,x2 ..xn)
unde xi ={0,1} , i= 1n . Orice funcie logic poate fi reprzentat
n dou moduri: prin expresii boleene i prin tabele de adevr.
Exist patru forme de reprezentre funciilor logice:
-Forma Canonic Disjunctiv FCD
-Forma Canonic Conjunctiv FCC
-Forma Normal Disjunctiv FND
-Forma Normal Conjunctiv FNC
FCD este o sum de conjuncii. Numrul variabilelor din
fiecare conjuncie este egal cu numrul termenilor funciei.De
exemplu:

f ( x1 , x2 , x3 ) x1 x2 x3 x1 x2 x3 x1 x2 x3

f ( x1 , x2 , x3 , x4 ) x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4

115

Proiectare logic

este un produs de disjuncii. Numrul variabilelor din fiecare


disjuncie este egal cu numrul termenilor funciei.De exemplu:

f ( x1 , x 2 , x3 ) ( x1 x 2 x3 )( x1 x 2 x3 )( x1 x 2 x3 )
f ( x1 , x 2 , x3 , x4 ) ( x1 x2 x3 x 4 )( x1 x2 x3 x4 )( x1 x 2 x3 x4 )
FND este o sum de conjuncii. Numrul variabilelor din fiecare
conjuncie poate fi diferit denumrul termenilor funciei.
FNDeste forma unei funcii la care se ajunge dup minimizare
n forma de minimizare disjunctiv.De exemplu:
f ( x1 , x2 , x3 ) x1 x2 x3

f ( x1 , x2 , x3 , x4 ) x1 x3 x 4
FCD este un produs de disjuncii n care numrul variabilelor
sdin fiecare disjuncie poate diferi .FNC este forma unei funcii
la care se ajunge dup minimizare n forma de minimizare
dijunctiv.
Termenii din FCD se mai numesc i mintermi (m i) iar
termenii din FCC se mai numesc maxtermi (Mi). De exemplu:
Tabelul 2.1
f(x1,x2)

f(x1,x2,x3)

Mintermi

Maxtermi

m0 x1 x2

M 0 x1 x2

m1 x1 x2

M 1 x1 x2

m2 x1 x2

M 2 x1 x2

m3 x1 x2

M 3 x1 x2

m0 x1 x2 x3
m1 x1 x2 x3
m2 x1 x2 x3
m3 x1 x2 x3
m4 x1 x2 x3
m5 x1 x2 x3
m6 x1 x2 x3
m7 x1 x2 x3

m0 x1 x2 x3
m1 x1 x2 x3
m2 x1 x2 x3
m3 x1 x2 x3
m4 x1 x2 x3
m5 x1 x2 x3
m6 x1 x2 x3
m7 x1 x2 x3

117

Proiectare logic

Realizarea fizic a formei FCD se face dup urmtoarea


regul:
Forma Canonic Disjunctiv a unei funcii (FCD) se obine
prin sumarea logic a conjunciilor corespunztoare valorior de 1
ale funciei. Notnd cu Qk conjuncia elementar, avem_
n

Q Q
k

k 1
FCD= k 1
(legea de Morgan)
Realizarea fizic a Formei Canonice Conjunctive (FCC) se
face dup regula:
FCC a unei funcii se obine prin produsul logic al
disjunciilor corespunztoare valorilor 0 ale funciei.
Notnd cu Dk disjuncia elementar, avem:

FCC

k 1

k 1

Dk Dk

(legea de Morgan)

Exemple:
Exemplul 1
1)S se aduc la forma FCD i FCC expresia

y x1 .x 2 x3

119

Proiectare logic

Tabelul 2.2. Tabel de adevr


x1
x2
x3
E
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
Forma canonic disjunctiv:

x .x .x x x x x x x x x x3 x1x2 x3

FCD= 1 2 3 1 2 3 1 2 3 1 2
Forma canonic conjunctiv
FCC=

( x1 x2 x3 )( x1 x 2 x3 )( x1 x 2 x3 )

121

mplul 2: S se
dispozitiv
intrri i o
nct s avem
majoritar de la
2.3.Tabel

de

x1
0
0
0
0
1
1
1
1

Proiectare logic

x2
0
0
1
1
0
0
1
1

x3
0
1
0
1
0
1
0
1

y
0
0
0
1
0
1
1
1

Exe
realizeze
un
numeric cu trei
ieire
astfel
semnalul
intrare
Tabelul
adevr.

Funciile canonicee:

xx x xx x xx x xx x
FCD= 1 2 3 1 2 3 1 2 3 1 2 3
FCC=

( x1 x 2 x3 )( x1 x2 x3 )( x1 x2 x3 )( x1 x2 x3 )

123

Proiectare logic

125

Proiectare logic

Exemplul 3
S se realizeze un dispozitiv numeric care s transforme
codul 8421 n codul Exces 3 pe patru bii.
Soluie:
Dispozitivul numeric va avea 4 intrri i 4 ieiri. Vom scrie
FCD i FCC pentru fiecare coloan n parte, deci de patru ori.
x1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Tabelul 2.4. Tabel de adevr.


x2
x3
x4
y1 y2 y3
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
]
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1

y4
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0

y1FCD x1x2 x3 x4 x1x2 x3 x4 x1x2 x3 x4 x1x2 x3 x4 x1x2 x3 x4 x1x2 x3 x4


x1x2 x3 x4 x1x2 x3 x4
y2FCD x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4
x1 x2 x3 x4 x1 x2 x3 x4

127

Proiectare logic

y3FCD x1 x2 x3 x4 x1x2 x3 x4 x1 x2 x3 x4 x1x2 x3 x4 x1 x2 x3 x4 x1x2 x3 x4

x1x2 x3 x4 x1 x2 x3 x4

y4 FCD x1x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4 x1x2 x3 x4 x1x2 x3 x4 x1x2 x3 x4


x1x2 x3 x4 x1x2 x3 x4
2.4 MINIMIZAREA FUNCIILOR LOGICE
Utilizarea formelor canonice de reprezentare a funciilor
logice presupune un cost foarte mare datorat numrului mare de
intrri n circuit. De aceea este necesar s se minimizeze
funciile. A minimiza o funcie nseamn a-i micora numrul de
variabile de intrare.
Exist mai multe metode de realizare a acestui scop dintre
care cele mai cunoscute sunt:
-metoda KARNAUGH i
-metoda QUINE - MC CLUSKY.
2.4.1.METODA KARNAUGH
Metoda KARNAUGH pentru o funcie de n variabile
const n aranjarea variabilelor ntr-un tabel de 2n csue.
Dispunerea csuelor se face n aa fel nct csuele vecine s
aib coduri care difer printr-un singur bit. Din acest motiv,
codurile csuelor, pe orizontal i pe vertical, sunt n cod Gray.
Codul Gray este:
2 bii
00, 01, 11,10
3 bii
000, 001, 011, 010, 110, 111.101 ,100

129

Proiectare logic

Fiecare csu are un numr de csue vecine egal cu


numrul variabilelor de intrare . Fizic, n tabel csuele vecine
sunt adiacente pe orizontal sau pe vertical dar nu i pe
diagonl. Tabelul trebuie privit ca o sfer unde prima i ultima
linie sunt vecine, la fel i prima i ultima coloan.
Regulele de minimizare sunt urmtoarele:
Pentru forma disjunctiv FND: Se grupeaz celulele din
jurul lui 1 n grupe de puteri ale lui 2, adic 2,4,8,16,32.nti
se ncearc s se fac grupe de 1 ct mai mari, apoi, pe msur ce
naintm, ncercm cu valori ct mai mari; dac o valoare de 1
este nconjurat doar de zerouri (sus, jos, dreapte, stnga) atunci
valoarea respectiv rmne neminimizat.
-Pentru a scrie termenul minimizat din grup se scriu acele
variabile care au valoare comun, pe orizontal i pe vertical, xc
dac valoarea este 1 i xc dac este zero. Astfel, pentru o funcie
de 4 variabile, pot aprea urmtrtoarele situaii:
- dintr-un grup de 8 de 1 , rmne un termen (conjuncie)
de o variabil;
- dintr-un grup de 4 de 1, rmne un termen (conjuncie)
de 2 variabile;
- dintr-un grup de 2 de 1, rmne un termen (conjuncie)
de 3 variabile;
- dintr-o singur valoare de 1 rmne mintermenul de 4
variabile
Regula este c o variabil din tablou poate fi ataat la oricte
grupuri de 1, dar condiia este ca orice variabil s fie luat la
minimizare cel puin odat. Este posibil ca, n afar de valorile de
0 i 1 , s avem i valori indiferente(ori 0, ori 1) acestea notnduse cu x. Aceste valori pot fi ataate grupurilor de 1 dar nu pot fi
luate n considerare singure, adic un grup de x trebuie s conin
i un 1.
Exemple
1) Fie tabelul KARNAUGH:

131

Proiectare logic

Grupm

x1x2
x3x4

00

01

11

10

00
01
11
10

1
1
1
1

1
1
1
1

0
1
0
0

0
1
0
0

pe 1 din

obinem

x1 . Grupm pe 1 din linia doua i obinem

termenul comun
termenul comun

primele dou coloane i

x3.x4 .

Deci funcia va fi:

y x3.x4 x1

2)Fie tabelul KARNAUGH pentru

f ( x1 , x2 , x3 x4 )

x1x2
x3x4

00

01

11

10

0
01
11
10

0
x
x
0

x
1
1
x

x
1
1
x

0
x
x
0

- Din coloanele 2 i 3 avem x2


- Din liniile 2 i 3 avem x4
Deci : y x2 x4

3)Fie tabelul Karnaugh pentru o funcie de 5 variabile


f(x1,x2,x3,x4,x5)

00

00
0
1

00
1
1

01
1
x

01
0
x

11
0
1

11
1
1

10
1
x

10
0
1

133

Proiectare logic

01
11
10

1
1
1

1
1
1

x
x
x

x
x
x

0
0
1

0
0
1

0
0
1

1
x
1

-Din primele 4 coloane rezult x1 .


-Din linia 1 i linia 4 vecine rezult x5
-Din coloanele 1 i 8 rezult x2 .x3

f (x , x , x , x x x x x x

1 2 3 4 5
1
5
2 3
Deci:
Pentru forma conjunctiv FNC
Regulele sunt aceleai doar c aici se grupeaz 0-urile iar

dac valorile comune sunt 0, se ia xi i dac sunt 1 se ia xi .


Vom lua aceleai exemple ca la FND ivom scrie FNC.
1)
x1x2 00 01 11 10
x3x4

00
01
11
10

1
1
1
1

1
1
1
1

0
1
0
0

0
1
0
0

distributi vitate

x1 x3 x4 (ca la FND)

y ( x4 x1 )( x3 x1 )
2)
x1x
2

00 01 11

1
0

x
0

1
x

1
x

x
0

x3x
4

0
0
0
1
11
1

135

Proiectare logic

y x2 x4
3)
x1x2
x3
x4x5

00 00 01 01 11 11 10 10
0 1 1 0 0 1 1 0
1 1 x x 1 1 x 1
1 1 x x 0 0 0 1
1 1 x x 0 0 0 x
1 1 x x 1 x 1 1

y ( x 2 x3 x1 )( x1 x x3 )

distributivitate

( x1 x5 ) x 2 x3

Aplicaii ale minimizrii KARNAUGH


1) S se proiecteze un dispozitiv numeric cu 4 comutatoare
astfel nct cnd se apas simultan dou dintre ele becul s se
aprind.

x1
x2

Y1

x3

Y2

x4

DN

Y3
Y4

Tabelul 2.5. Tabel de adevr.


x1 x3 x3 x4
0 0
0
0
0
0
0
1
0
0
1
0

y
0
0
0

137

Proiectare logic

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

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

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

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

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

x1x2
x3x4

00

01

11

10

00
01
11
10

0
0
1
0

0
1
1
1

1
1
1
1

0
1
1
1

yFCD x3 x4 x1 x2 x4 x2 x3 x2 x1 x4 x1 xe
yFCC ( x2 x3 x4 )( x1 x2 x4 )( x1 x2 x3 )( x1 x3 x4 )
Se calculeaz i yFCD i yFCC i apoi se face costul pentru
fiecare form i se alege costul minim.

yFCD ( x1 x2 )( x1 x3 )( x2 x3 )( x3 x4 )( x1 x4 )( x2 x4 )

yFCC x2 x3 x4 x1x2 x4 x1x3 x4 x1x2 x3


I

SAU

NU

139

Proiectare logic
yFCD

12

18

yFCC

12

16

yFCD

12

22

yFCC

12

20

yFCC are costul minim


2)S se proiecteze un dispozitiv numeric care s scoat la
ieire complementul fa de 2

x1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1

Tabelul 2.6. Tabel de adevr.


x2 x3 x4 T1 T2 T3 T4
0 0 0 0 0 0
0 0 1 1 1 1 1
0 1 0 1 1 1 0
0 1 1 1 1 0 1
1 0 0 1 1 0 0
1 0 1 1 0 1 1
1 1 0 1 0 1 0
1 1 1 1 0 0 1
0 0 0 1 0 0 0
0 0 1 0 1 1 1
0 1 0 1 0 1 0
0 1 1 0 1 0 1
1 0 0 0 1 0 1
1 0 1 0 0 1 1
1 1 0 0 0 1 0

141

Proiectare logic

Tabelele Karnaugh sunt:


T4
x3x4
x1x2

00 01 11 10

00
01
11
10

0
1
1
0

x3x4
x1x2

00 01 11 10

00
01
10
11

0
0
0
0

1
1
1
1

1
1
1
1

0
1
1
0

T4=x1
T3
1
1
1
1

0
0
0
0

1
1
1
1

T3 x1 x2 x1 x2 x1 x2
T2
x3x4
x1x2

00 01 11 10

00
01
11
10

0
1
1
0

1
0
0
1

1
0
0
1

1
0
0
1

143

Proiectare logic

T2 x2 x4 x1 x2 x1 x2 x4 ( x1 x2 ) x4 ( x1 x2 ).x4 ( x1 x2 ) x4T
T1
x3x4
x1x2

00 01 11 10

00
01
11
10

0
1
0
1

1
1
0
0

1
1
0
0

1
1
0
0

T1 x 2 x 4 x1 x3 x3 x 4 x1 x2 x3 x 4 x3 ( x 4 x 2 x1 ) x3 ( x4 x 2 x1 )
x3 ( x1 x2 x 4 )
Dispozitivul numeric este:

145

Proiectare logic

147

Proiectare logic

3)S se proiecteze un dispozitiv numeric cu 4 intrri care s


scoat la ieire votul majoritar.
Vom face direct tabelul Karnaugh.
xx
00 01 11 10
xx
1 2
3 4

00
01
11
10

0
0
x
0

0
x
1
x

x
1
1
1

0
x
1
x

yFCD x1 x2 x3 x4 x2 x4 x2 x3
yFCC ( x3 x4 x1 )( x3 x4 x2 )( x1 x2 x3 )( x1 x2 x4 )
yFCD x1 x2 )( x3 x4 )( x2 x4 )( x2 x3 )

yFCC x1 x3 x4 x2 x3 x4 x1 x2 x3 x1 x2 x4
FCD
FCC
FCD
FCC

I
8
4
4
12

SAU
4
12
8
3

NU
0
O
6
12

cost
12
16
20
24

FCD are costul minim.


2.4.2.METODA QUINE-Mc CLUSKEY
Metoda Quine-Mc Cluskey este o metod algebric de
minimizare a funciilor boolene folosite n cazul unui numr
mare de variabile, pentru care diagramele Karnaugh devin greu
de utilizat. Metoda se preteaz programrii unui calcul automat
de minimizare. Minimizarea are loc n 2 pai:
a) Stabilirea implicanilor primi.
b) Calculul acoperirii minimale pentru funcia respectiv.
1. Implicani primi.

149

Proiectare logic

Un implicant este un produs logic care deriv dintr-un grup


de mintermi care au proprietatea de a avea o parte comun i o
alt parte care asum toate combinaiile posibile. ( mintermii sunt
termenii formei canonice disjunctive FCD- a unei funcii
logice). De exemplu:

w x y z w x y z w y z ( x x)
w y z este un IMPLICANT

Implicanii pot deriva din grupe de 2,4.8.16 mintermi. Cu


ct grupa de mintermi este mai mare cu att mai mare va fi
minimizarea. Grupa de mintermi major este cea care nu este
coninut de nici o alt grup. Un implicant care deriv dintr-o
grup major se numete implicant prim. Un implicant prim
este deci un implicant care nu este coninut n nici un alt
implicant major (de dimensiuni mai mari)

w xyz w x yz wx yz wxy
yz ( w x w x wx wx) yz yz este un
IMPLICANT PRIM

Funcia obinut prin nsumarea tuturor implicanior primi


nu este ns cea mai simpl posibil. Suma minim trebuie s
conin numai implicani primi dar nu toi implicanii primi. Se
aleg numai implicanii eseniali. Un implicant prim esenial este
un implicant prim care are cel puin un miniterm neconinut n alt
implicant prim.
Utiliznd reprezentarea geometric a numerelor binare
ntr-un spaiu n-dimesional prin cuburi n-dimensionale, pentru
un cub
3-dimensional vor fi subcuburi 2-dimensionale,
subcuburi 1-dimensionale i subcuburi 0-dimensionale Sub
aceast form se reprezint,n mod obinuit, numerele binare n
minimizarea funciilor booleene prin metoda Quine-McCluskey.
ngeneral, configuraiile binare sunt reprezentate prin ncuburi n spaiul n-dimensional (hipercub). Construcia unui n-

151

Proiectare logic

cub este o operaie recursiv n care se proiecteaz copia unui


n-cub i se adaug un 0 la toi identificatorii cubului de plecare.
Apoi se permut un 1 la toi identificatorii cubului proiectat.
Se sustituie valorile bitului de intrare (wxyz) cu valorile
de ieire a funciei f. Prin unirea punctelor n care funcia are
valoarea 1 se obin subcuburi care dau mulimea implicanilor.
Din subcubul cu dimensiunea cea mai mare se obin impicanii
primi.
Orice vrf al unui n-cub este legat de n vrfuri. De
exemplu,orice vrf al unui 2-cub este legat de 2 vrfuri, orice
vrf al unui 3.cub este legat de 3 vrfuri .a.m.d. Un r-subcub al
unui n-cub este un ansamblu de 2r puncte, cu n-r bii
corespunztori, n timp ce ali bii asum toate configuraiile
posibile. De exemplu un 2-cub (subcub al unui 3-cub) este un
ansamblu de 22 = 4 puncte i 3-2=1bit corespunztor.

153

Proiectare logic

Forma canonic disjunctiv a funciei f este:

FCD yz w xyz wx yz w x yz wxyz wxyz yz wxy wxz


Funcia obinut nu este cea mai simpl form. Suma
minim trebuie s conin numai imprimani primi dar nu toi
imprimanii primi. Se aleg imprimanii primi eseniali, adic acei
imprimani primi care conin cel puin un miniterm neconinut n
alt imprimant prim. Forma minim va fi :

yz wxy

S substituim n cubul 4-dimensional configuraiile bitului


de intrare (wxzy) cu valoarea funciei f la ieire. Unind vrfurile
n care funcia f la ieire are valoarea 1 i obinem 3 subcuburi
( un 2-subcub i dou 1-subcuburi.

155

Proiectare logic

Din subcuburile n care vrfurile au valoarea 1 deriv grupa


de mintermi din care se obin Implicanii .
Din subcuburile de dimensiuni mai mari se obin
implicanii primi.
2. Acoperire minimal a unei funcii
O acoperire a unei funcii vectoriale este o mulime (list)
de implicani care conin (acoper) minterminii acelei funcii.
Mrimea(cardinalitatea) unei acoperiri este numrul su de
implicani.
O acoperire minim este o acoperire de cardinalitate
minim. Obiectivul minimizrii logice combinaionale exacte
este tocmai determinarea unei acoperiri minime.
O acoperire iredundant este o acoperire care nu este un
superset propriu al niciunei alte acoperiri penntru aceeai
funcie.
O acoperire este minimal n raport cu coninerea
singular dac nici un implicant nu este coninut n orice alt
implicant al acopeririiStabilirea implicanilor primi.
n acest scop se parcurg urmtorii pai:
Pasul 1 Se pornete de la forma canonic disjunctiv.
Fiecare termen canonic este reprezentat sub form de numr

157

Proiectare logic

binar, prin n-uplul de zerouri i uniti, corespunztoare


termenului respectiv.
Pasul 2 Termenii canonici astfel scrii se mpart n grupe, n
funcie de ponderea acestora, adic numrul de 1 din n-uplul
respectiv.
Pasul 3 Grupele de termeni canonici sunt aranjate pe o
coloan, n ordine cresctoare a ponderilor. Acest lucru este util
deoarece doi termeni canonici se pot asocia formnd un cub 1dimensional numai dac fac parte dintr-un grup ale cror ponderi
difer cu o unitate.
Pasul 4 Se compar fiecare termen al unei grupe cu toi
termenii unei grupe de pondere mai mare cu o unitate. Dac
numerele binare respective sunt adiacente, cei doi termeni se pot
asocia formnd un
subcub 1-dimensional, notat printr-un
numr binar care are pe poziia prin care cei doi termeni difer
un x, ceea ce nseamn c variabila corespondent acelei poziii
lipsete.
Cei doi termeni care au format subcubul 1-dimensional se
bifeaz iar iar termenul normal care reprezint subcubul rezultat
se nscrie pe o nou coloan. Toi termenii normali (subcuburile
1-dimensionale) rezultai n urma comparrii a dou grupe din
coloana termenilor canonici formeaz o grup n coloana
subcuburilor 1-dimensionale. Prin urmare aceast coloan va
conine, n cazul general, cu o grup mai puin dect coloana
termenilor canonici (cuburi 0-dimensionale).
Pasul 5 Se ia r=1. Se compar fiecare termen al unei grupe
din coloana subcuburilor r-dimensionale cu toi termenii grupei
cu pondere mai mare cu o unitate. Pentru ca 2 asemenea termeni
s se poat asocia formnd un subcub (r+1)- dimensional, trebuie
ca n ambii termeni simbolul x s fie pe aceleai poziii. Doi
termeni care ndeplinesc aceast condiie i sunt adiaceni se
asociaz i formeaz un subcub (r+1)-dimensional care se
noteaz cu un numr binar. n acest numr apare nc un x pe
poziia prin care cei doi termeni difer. Termenii care formeaz

159

Proiectare logic

acest subcub se bifeaz, iar subcubul (r+1) dimensional se


nscrie pe o nou coloan. n general, aceast c0oloan are cu o
grup mai puin dect coloana subcuburilor r-dimensionale. Dac
se obine de mai multe ori un anumit termen, acesta se consider
o singur dat.
Pasul 6 Se mrete r cu o unitate i se repet pasul 5 pn
cnd subcuburile ultimei coloane nu se mai pot asocia n scopul
formrii unui subcub de dimensiune superioar.n acest monent
prima etap a algoritmului Quine-McCluskey este ncheiat.
Termenii rmai nebifai n coloanele rezultate formeaz grupul
implicanilor primi n funcia considerat.
Exemplul 1.
S se minimizaze funcia de cinci variabile, dat sub forma
canonic disjunctiv

f ( x) x1 , x2 , x3 , x4 , x5 mi
ik

(FCD):

k 0,3,4,7,8,10,12,14,15,18,19,23,26,28,29,30

n tabelul urmtor sunt date operaiunile descrise anterior.

Tabelul 2.7

x1 x2 x3 x4 x5
0 0 0 0 0x

x1 x2 x3 x4 x5
0 0 x 0 0x
0 x 0 0 0x

Indici

Indici
0,4
0,8

Subcuburi
2-dimensiuni
Grupa

Subcuburi
1-dimensiune
Grupa

Indici

Grupa

Subcuburi
0-dimensiuni

0,4
8,12

x1 x2 x3 x4 x5
0 x x 0 0

161
1

4
8
3
10
12
18

Proiectare logic
0 0 1 0 0x
0 1 0 0 0x
0
0
0
1

0
1
1
0

0
0
1
0

1
1
0
1

1x
0x
0x
0x

3 7
11
14
19
26
28

0
0
0
1
1
1

0
1
1
0
1
1

1
0
1
0
0
1

1
1
1
1
1
0

1x
1x
0x
1x
0x
0x

4 15
23
29
30

0
1
1
1

1
0
1
1

1
1
1
1

1
1
0
1

1x
1x
1x
0x

4,12
8,10
8,12

0 x 1 0 0x
0 1 0 x 0x
0 1 x 0 0x

3,7
3,11
3,19
10,11
10,14
10,26
12,14
12,28
18,19
18,26

0
0
0
0
0
x
0
x
1
1

7,15
7,23
11,15
14,15
14,30
19,23
26,30
28,29
28,30

0
x
0
0
x
1
1
1
1

0
x
1
1
1
1
1
1
0
x

x
0
1
1
1
0
1
1
1

x
0
0
0
x
0
1
1
0
0

1
1
x
1
1
x
x
1
1

1
0
1
1
1
1
x
0
1
1

1
1
1
1
1
1
1
0
x

1x
1x
1x
xx
0x
0x
0x
0x
xx
0x

0,8
4,12
8,10
12,14
8,12
10,14
3,7
11,15
3,7
19,23
3,11
7,15
3,19
7,23
10,11
14,15
10,14
26,30
10,26
14,30
12,14
28,30
12,28
14,30

(0 x x 0 0)
0 1

x 0

(0 1

x 0)

0 x

x 0

(0 x

x 1

0)

(x 0

1 1)

0 1

x 1

(x
0)

x 1
(x
0)

x
1

1
x

0
x

1x
1x
1x
xx
0x
1x
0x
xx
0x

Dup aplicarea regulilor de gsire a implicanilor primi ai


funciei, rezult:

f ( x1 , x2 , x3 , x4 , x5 ) x1x2 x3 x4 x1x3 x4 x5 x1x2 x3 x4

x1x2 x3 x1x4 x5 x2 x4 x5 x1x2 x4 x2 x4 x5 x2 x3 x5


Aceast expresie se obine inlocuind n termenii rmai ne bifai
n tabel, zerourile cu variabilele corespunztoare poziiei
respective, unitile cu variabilele poziiei respective negate,
unitile cu variabilele poziiei respective nenegate i omind

163

Proiectare logic

variabilele corespunzzoare poziiilor pe care apare x. Pentru a


gsi forma minim disjunctiv a unei funcii trebuie alei numai
acei implicani primi care includ toi termenii canonici ai
funciei i conduc la la o form a funciei realizat cu cost minim.
Implicanii primi care respect aceast condiie formeaz
acoperirea cu cost minim. Pentru a afla acoperirea cu cost minim
trebuie cutate toate acoperirile pentru funcia dat din care se
alege acoperirea care ndeplinete condiia de cost minim fa de
un anumit criteriu de cost. Costul C n se definete ca fiind suma
costurilor implicanilor primi din acoperirea considerat. Costul
unui implicant prim al unei funcii de n variabile, din care lipsesc
r variabile, adic un subcub r-dimensional, este n-r, deoarece
fiecare variabil necesit un contact.. Atunci costul acoperirii este
dat de relaia:
n 1

Cn g r (n r ),
r 0

Unde gr este numrul grupurilor r-dimensionale din acoperirea


considerat iar nsumarea se face pentru toate subcuburile de
dimensiune 0< r < n . Costul Cn al unei acoperiri este minim atuci
cnd suma costurilor implicanilor primi este minim.
n cazul circuitelor de comutare cu pori, costul circuitelor
este n general cu att mai mic cu ct numrul de pori este mai
mic, iar porile respective au un numr ct mai mic de intrri.
Acesta este costul minim Cn . Din acest motiv, atunci cnd funcia
se realizeaz cu pori, se alege acoperirea cu costul Cp definit de
relaia :
n 1

n 1

n 1

r 0

r 0

r 0

C p CR p g r (n r ) g r gr (n r 1)
care este minim. n relaia de mai sus, p este numrul
implicanilor primi ai acoperirii. De obicei acoperirea cu numr
minim de elemente satisface att condiia de C n minim ct i
condiia de Cp minim. Algoritmul de obinere a acoperirii cu

165

Proiectare logic

cost minim, plecnd de la mulimea implicanilor primi, obinui


n etapa anterioar, este urmtorul :
a)Se construiete un tabel al implicanilor primi, avnd
drept cap de linie implicanii primi ai funciei i cap de coloan
termenii canonici ai funciei. La intersecia dintre o linie i o
coloan se pune un semn, de exemplu un asterisc, dac
implicantul prim de pe linia respectiv include termenul canonic
de pe coloana respectiv.
Tabelul 2.8.

Implican
i primi

Indici

Termeni canonici

O
bs
.

1
x
2
0
1
x
0
0
0
0
0
1
x
1
0
x
x
0
x
0

(18,19)

x 0 1

(18,26)

1 1 0

(28,29)

x x 0

(0,4,8,12)

1 x x

(,8,10,12,14)

x x 1

(3,7,11,15)

0 x 1

(3,7,19,23)

1 x 1

(10,11,14,15)

1 x 1

(10,14,26,30)

1 1 x

(12,14,28,30)

30

*
*
*

29

23

15

28

26

19

14

0 0 1

11

18

1812

10

x1 x2 x3 x4 x5

*
*

*
*

*
*

*
*

*
*

b) Se inspecteaz tabelul construit la punctul a). Dac pe o


anumit coloan exist un singur semn, ceea ce nseamn c
termenul canonic din acea coloan este inclus ntr-un singur
implicant prim, atunci implicantul prim de pe linia insemnat
devine jmplicant prim esenial i intr obligatoriu n forma
minim a funciei. Se construiete un nou tabel, al implicanilor
neeseniali, care rezult eliminnd din tabelul implicanilor primi
implicanii primi eseniali i coloanele cu termenii canonici
inclui n exact
. De asemenea, se elimin liniile pe care nu
au mai rmas semne i coloanele care au semne pe aceleai

167

Proiectare logic

rnduri ca i o alt coloan din tabelul implicanilor primi


neesenialui, adic dac mai muli termeni canonici sunt inclui
n aceiai implicani
primi neeseniali se reine un singur
reprezentant al acestora, deoaece orice implicant care l include
pe acesta va include automat i pe cei omii.
Tabelul 2.9

Nr
.

Implicani
primi
x2 x3 x4 x5
0 0 1 x
x 0 x 0
1 x x 0
x x 1 1
1 x 1 x
1 x 1 0

1
2
3
4
5
6

x1
1
1
0
0
0
x

x 1 1

Indici
10
(18,19)
(18,26)
(8,10,12,14)
(3,7,11,15(
(10,11,14,15)
(10,14,26,30
)
(12,14,28,30
)

Termeni canonici
18
11
14
26
*
*

Obs.
30

*
*

*
*

*
*
*

A
A

c)Se inspecteaz tabelul implicanilor primi neeseniali n


scopul gsirii unei acoperiri cu cost C p minim, pentru toi
termenii canonici rmai n tabel. n unele cazuri se pot gsi mai
multe acoperiri care satisfac aceast condiie,fiecare avnd
acelai cost. n acest caz funcia are mai multe forme minime
disjunctive.
d)Fcnd suma boolean a implicanilor primi eseniali
gsii la punctul b) i a celor neeseniali fcnd parte din
acoperirea obinut la punctul c) se obine forma minim
disjunctiv a funciei date.
Pentru exemplul considerat anterior, funcia dat prin
expresia (2.21), se obine tabelul implicanilor primi din tabelul
2.8. Inspectnd acest tabel se obin implicanii primi eseniali

x1 x2 x3 x4 , x1 x4 x5 , x2 x4 x5
Dup eliminarea termenilor canonici
acoperii de aceti
implicani primi se obine tabelul implicanior primi neeseniali
2.9. Lund implicanii de pe rndurile marcate cu A,

x1x3 x4 x5 , x1x2 x4 , x2 x4 x5

169

Proiectare logic

se obine acoperirea minimal creia i corespunde forma


minimal disjunctiv a funciei:

f ( x1, x2 , x3 , x4 , x5 ) x1x2 x3 x4 x1x4 x5 x2 x4 x5 x1x3 x4 x5 , x1x2 x4 x2 x4 x5

Analiznd tabelul 2.9. rezult c mai exist i alte acoperiri


minimale pentru aceast funcie. Penru gsirea acestora se
folosete urmtorul algoritm:
a)Se mparte mulimea implicanilor primi eseniali n
submulimi Mi stfel nct elementele unei submulimi s conin
toi implicanii primi neeseniali care includ termenul canonic cu
indicele i. Notnd implicanii primi neeseniali din tabelul 2.9 cu
numrul lor de ordine, rezult submulimile:
M 10 3,5,6; M 18 1,2; M 11 4,5 M 14 3,5,6,7;

M 26 2,6 ; M 30 6,7
b)Se alctuiete cu elementele mulimilor Mi expresia
formal n care suma se interpreteaz ca operaie logic SAU iar
produsul ca operaie logic I

E (3 5 6)(1 2)(4 5)(3 5 6 7)(2 6)(6 7)

c)Efectund calculele. innd seamade faptul c i+i=i i c


i(i+j)=1, unde ii j sunt elemente ale mulimilor M i , se obine o
nou form a expresiei E, o sum de produse.Fiecare din aceste
produse de implicani primi reprezint una din acoperirile
mulimii termenilor canonici din tabela implicanilor primi
neeseniali. Expresia devine:
E (3 5 6)(1 2)( 4 5)( 2 6)(6 7) (6 7)(3 5)( 2 1.6)( 4 5)
(6 7.3 7.5)( 2.4 2.5 1.6.4 1.6.5) 6.2.4 6.2.5 1.6.4 1.6.5
7.3.2.5 7.3.1.6.5 7.5.2.4 7.5.2 7.5.2 7.5.1.6.4 7.5.1.6
d) Se ia forma minimal a expresiei precedente n care intr
numai produse cu cost minim.Termenii acestei expresii reprezint
acoperirile cu cost minim. Forma minimal, considernd costul
CR . este:
Emin 6.2.4 6.2.5. 1.6.4 1.6.5 7.5.2

171

Proiectare logic

Aceast expresie conine cele cinci acoperiri cu cost C n


minim ale tabelului 2.9.Costul fiecrei acoperiri este 10.Deoarece
fiecare din cele cinci acoperiri are acelai numr de elemente, ele
au acelai cost Cp .

173

Proiectare logic

CAPITOLUL 3
3. CIRCUITE LOGICE
3.1.CIRCUITE LOGICE COMBINAIONALE
Circuitele combinaionale sunt acele circuite logice
care nu memoreaz rezultatul la ieire. Din categoria lor
fac parte porile logice care stau la baza altor circuite mai
complexe ca: multiplexoarele i demultiplexoarele,
codificatoarele i decodificatoarele, comparatoarele,
circuitele aritmetice combinaionale etc
.
3.1.1. MULTIPLEXOARE
Un circuit multiplexor (MUX) este un circuit care are rolul
de a pune la ieire (E) una dintre cele 2n intrri ( I0 , I1 ,I2n-1)
selectate de cele n intrri de selecie (S 0 , S1 ,.Sn-1). Codul
binar al seleciei S va selecta intrarea ce va fi pus la ieire.

Fig.3.1.Schema bloc
a unui multiplexor.
Selectarea intrrii se face printr-un cuvnt de adres.

175

Proiectare logic

Un multiplexor poate avea 2n intrri i o ieire. Se noteaz cu


MUX(2n : 1). Multiplexoarele , numite pe scurt MUX pot fi
privite drept un mod rapid de a selecta o ieire dintr-un numr de
semnale. Un circuit de tip MUX are un set de intrri de adresare
(n numr de n), un set de intrri de date (n numr de 2 n) i o
ieire. Mai exist uneori i o intrare de validare a funcionrii
(activ pe 0) i o ieire care reprezint semnalul selectat
complementar (valabil pentru circuite digitale)
Exemple:
Multiplexor cu dou intrri (MUX 2 : 1)

E S I S I

0 0
0 1
Ecuaia de funcionare este:
Fig. 3.2.Schema bloc, schema logic i ecuaia
de funcionare a unui MUX(2:1).
Multiplexor cu patru intrri MUX (22 : 1)

Ecuaia de funcionare este:

E S 0 S1 I 0 S1 S 0 I 1 S1 S 0 I 2 S1 S 0 I 3
Fig.3.3. Schema bloc i ecuaia de funcionare a unui
MUX (22 : 1)

177

Proiectare logic

Fig. 3.4..Implementarea unui MUX (22 : 1)


Multiplexor cu 8 intrri MUX (23 : 1)

Ecuaia de funcionare este:

E S 2 S1 S 0 I 0 S 2 S1 S 0 I 1 S 2 S1 S 0 I 2 S 2 S 1 S 0 I 3 S 2 S 1 S 0 I 4 S 2 S1 S 0 I 5
S 2 S1 S 0 I 6 S 2 S 1 S 0 I 7
Fig. 3.5. Schema bloc i ecuaia de funcionare
a unui MUX (23 : 1)

179

Proiectare logic

Fig.3.6.Implementarea unui MUX (23 : 1)


3.1.2.DEMULTIPLEXOARE
Un demultiplexor, DEMUX(2n : 1), este un circuit logic
combinaional care are rolul de a pune n legtur o intrare I cu o
ieire dintre cele 2n (E0,E1,E2,.En-1), selectat de codul
generat de intrrile de selecie (S0,S1,S2.........Sn-1).

Fig.3.7Schema bloc a unui demultiplexor.

181

Proiectare logic

Exemple de demultiplexoare:
Demultiplexor cu dou ieiri DEMUX (1:2)

Ecuaiile de funcionare, pentru fiecare ieire, sunt:


E0 S o I

E1 S 0 I

Fig.3.8.Schema bloc, schema logic i ecuaiile de funcionare


ale unui DEMUX(1:2)
Demultiplexor cu patru ieiri [DEMUX ((1:22)]

Ecuaiile de funcionare ale celor patru ieiri sunt:

E 0 S1 S 0 I

E1 S1 S 0 I

E 2 S1 S 0 I

E 3 S1 S 0 I

183

Proiectare logic

Fig.3.9.Schema bloc; euaiile de funcionare i schema logic ale


unui demultiplexor cu patru ieiri
Demultiplexor cu opt ieiri [DEMUX (1:23)]

Ecuaiile de funcionare ale celor opt ieiri sunt:


E 0 S 2 S1 S 0 I E1 S 2 S1 S 0 I E 2 S 2 S1 S 0 I E3 S 2 S1 S 0 I

E 4 S 2 S1 S 0 E 5 S 2 S1 S 0 I E 6 S 2 S1 S 0 I E 7 S 2 S1 S1 I
Fig.3.10.Schema bloc i ecuaiile de funcionare ale unui
demultiplexor cu opt ieiri

185

Proiectare logic

Fig.3.11. Implementarea unui demultiplexor cu opt ieiri

187

Proiectare logic

3.1.3.APLICAII ALE MULTIPLEXOARELOR I


DEMULTIPLEXOARELOR
Exist mai multe aplicaii ale multiplexoarelor i ale
demultiplexoarelor n sistemele de calcul, cum ar fi:
a)Comutarea mai multor surse de informaii ctre o singur
destinaie.
b)Implementarea funciilor logice.
c)Conversia paralel/serie a datelor, aplicnd datele n
paralel la intrrile de date i modificnd succesiv codul
seleciei.
d)Realizarea magistralelor de transmitere a informaiilor.
a) Comutarea mai multor surse de informaii ctre o
singur destinaie.
Fie numerele pe patru bii:
A=A0A1A2A3 B=B0B1B2B3 C=C0C1C2C3 D=D0D1D2D3
S se realizeze un circuit din MUX-uri care s poat dirija
unul din cele patru numere ctre ieire.
Soluie: Deoarece numerele sunt pe patru bii, vom utiliza 4
MUX-uri (4:1), iar selecia numerelor se va face cu semnalele S 0
i S1 legate n comun pentru cele patru mux-uri. Vom forma
cuvntul cu numrul transmis iar n fiecare mux vor intra cele
patru cifre binare de pondere i (AiBiCiDi) cu i={0,1,2,3}.

189

Proiectare logic

unde:
S0S1 E0

E1

E2

E3

00

A0

A1

A2

A3

01

B0

B1

B2

B3

10

C0

C1

C2

C3

11

D0

D1

D2

D3

Fig. 3.12.Schema bloc i tabelul de funcionare a unui


circuit logic pentru comutarea mai multor surse de
informaie ctre o singur destinaie
b)Implementarea funciilor logige.
La baza metodei de proiectare a funciilor logice doar cu
MUX-uri st teorema de expansiune a lui Shanon. Este dat sub
dou forme:
1)-F(x1, x2, x3xn) = F(0,x2..xn). x1 +F(1,x2.xn).x1

2)-F(x1,x2xn) =F(1,x2..xn)+ x 1 ). (F(0,x2..xn)+x1)


Forma 1) se aplic pentru forma disjunctiv i forma 2) se
aplic pentru forma conjunctiv.
Exemplul 1
S se implementeze funcia de trei variabile:

y f ( x1 , x2 , x3 ) x1 x2 x3
Aplicm teorema lui Shanon:

f ( x1 x2 x3 ) f (0, x2 , x3 ).x1 . f (1, x2 x3 ) x1

191

Proiectare logic

Aplicm din nou teorema lui Shanon fiecreia dintre cele dou
funcii:

y f (0,0, x3 ) x1 x 2 f (0,1, x3 ) x1 .x 2 f (1,0, x3 ) x1 x 2 f (1,1, x3 ) x1 x 2

Rezult:

f (0,0, x3 ) 0 0.x3 0
f (0,1, x3 ) 0 1.x3 x3
f (1,0, x3 ) 1 0.x3 1
Vom implementaf (1funcia
3)1cu ajutorul unui MUX
,1, x3 ) f(x
1 1,1x.x2,x
3
(4:1) n care pe selecii punem primele dou variabile iar pe cele
patru intrri punem cele patru funcii rezultate din teorema lui
Shanon.

Fig.3.13. Schema bloc a unui MUX(4:1) pentru


implementarea unei funcii logice de trei variabile.
Exemplul 2
Fie funcia :

f ( x1 , x2 , x3 , x4 ) x1 x2 x3 x4
Aplicm teorema lui Shanon:
f ( x1 x 2 x3 x 4 ) f (0,0, x3 , x 4 ) x1 x 2 f (0,1, x3 x 4 ) x1 x 2
f (1,0, x3 x 4 ) x1 x 2 f (1,1, x3 x 4 ) x1 x 2

193

Proiectare logic

Aplicm nc odat teorema lui Shanon:


f ( x1 , x 2 , x3, , x 4 ) f (0,0,0, x 4 ) x1 x 2 x3 f (0,0,1, x 4 ) x1 x 2 x3

f (0,1,0, x 4 ) x1 x 2 x3 f (0,1,1, x 4 ) x1 x 2 x3

f (1,0,0, x 4 ) x1 x 2 x3 f (1,0,1, x 4 ) x1 x 2 x3

f (1,1,9, x 4 ) x1 x 2 x3 f (1,1,1, x 4 ) x1 x 2 x3

unde;
f (0,0,0, x 4 ) x 4

f (1,0,0, x 4 ) 1

f (0,0,1, x 4 ) 1

f (1,0,1, x 4 ) 1

f (0,1,0, x 4 ) 1

f (1,1,0, x 4 ) 1

f (0,1,1, x 4 ) 1

f (1,1,1, x 4 ) 1

Alegem pentru implementare un MUX(8:1.

Fig.3.14. Schema bloc a unui MUX (8>10) pentru


implementarea unei funcii logice de patru variabile.

3.1.4.CODIFICATOARE

195

Proiectare logic

Codificatoarele sunt circuite logice combinationale cu n intrri si


m ieiri de adres, folosite pentru a realiza conversia unui numr
zecimal in cod binar sau BCD.
Codificatorul de adres simplu furnizeaza la ieire un cuvnt
binar de m bii atunci cnd numai una din cele n intrri ale sale
este activat. Numrul de cuvinte rezultate la ieire este n=2m-1 si
este egal cu numrul de intrri.

Fig.3.15.Schema bloc a unui codificator.


Exemplu - Codificator de adres cu n=7 =>m=3 biti
Tabel de adevr
Intrri

Ieiri

I1 I2 I3 I4 I5 I6 I7 A2

A1

A0

Iesiri rezultate:
A0 = I1 + I3 + I5 + I7

197

Proiectare logic
A1 = I2 + I3 + I6 + I7
A2 = I4 + I5 + I6 + I7

Fig. 3.16.Implementarea unui codificator de adres cu trei


ieiri
Codificator zecimal-BCD La activarea unei intrri apare la
ieire codul BCD al cifrei corespunztoare intrrii activate. De
exemplu: la activarea intrrii I5 la ieire va apare codul 0101.
Tabel de adevr
I0

I1

I2

I3

I4

I5

I6

I7

I8

I9

199

Proiectare logic

Fig.3.17. Implementarea unui codificator zecimal-BCD


3.1.5.DECODIFICATOARE
Decodificatoarele sunt circuite logice combinaionale cu N intrri
si m ieiri, care activeaza una sau mai multe ieiri in funcie de
cuvntul de cod aplicat la intrare (m=2 N). Un decodificator
(N:2N) are N intrri de date pe care primete codul binar al unui
numr n domeniul 0-2N-1. La un moment dat o singur ieire este
activ i anume cea cu indexul egal cu numrul prezentat la
intrare. Se poate spune c decodificatorul genereaz pe cele 2 N
ieiri toi minitermii de N variabile de la intrare.

Fig. 3.18. Schema bloc a unui decodificator.


Exemplu - decodificator cu 2 intrri si 4 ieiri
Tabel de adevr
A1

A0 Y0 Y1 Y2 Y3

201

Proiectare logic
1

Fig. 3.19..Implementarea unui decodificator cu dou intrri i


patru ieiri.
Cel mai cunoscut decodificator este decodificatorul binarzecimal , BCD-zecimal. Acasta primete la intrare datele n codul
BCD i activeaz o singur linie la ieire, corespunztoare
codului aplicat la intrare. La aplicarea unui cod binar pe intrri,
circuitul va activa o singur linie de ieire. De exemplu, pentru
intrarea 0101 se va activa y5 . Pentru cele patru variabile de
intrare exist 16 combinaii. Doar 10 dintre ele sunt acceptabile i
anume cele ntre 0i 9, celelalte sunt interzise.

203

Proiectare logic

Fig.3.20.Schema bloc a unui decodificator BCD-zecimal.

Tabel de adevr
A

B C D

y0

y1

y2 y3

y4

y5

y6 y7

y8

y9

0 0

0 0

0 0

0 0

0 0

205

Proiectare logic

1 0

1 1

0 0

0 1

1 0

1 1
STRI INTERZISE

Fig.3.21.Schema logic a decodificatorului BCD-zecimal.

207

Proiectare logic

Decodificatorul BCD-7segmente este utilizat la comanda


dispozitiveor de afiare numeric realizate din 7 segmente
luminoase (leduri, cristale lichide, becuri)

Fig.3.22.Schema bloc a unui decodificator BCD-7segmente.


Tabel de adevr
D

cifra

209
1

Proiectare logic
0

S realizm prin minimizare fiecare segment din cele 7.

a D A.B A.C AC

Fig.3.23..a Schema logic a unui decodificator BCD-7


segmente (segmant a).

211

Proiectare logic

b D A.B C.D

Fig.3.23.b Schema logic a unui decodificator BCD-7


segmente (segment b).

c A B C D

213

Proiectare logic

Fig.3.23.c.Schema logic a unui decodificator BCD-7


segmente (segmenc).

d A B C A BC AB C

e A B C A BC

215

Proiectare logic

f ( A B C D)( A B )

g ( B C D )( A B C )

3.1.6.COMPARATOARE
Comparatoarele sunt circuite combinaionale care compar
numere cu un anumit numr de bii, furniznd la ieire trei
semnale: A>B A=B A<B
3.1.6.1.Comparatoare pe un bit(C1)

217

A1
0
0
1
1

Proiectare logic

B1
0
1
0
1

A>B
0
0
1
0

(A>B)=

A=B
0
1
0
0

A<B
1
0
0
1

A1 B

(A<B)= A1 B1
(A=B)= A1 B1

Fig.3.24.Schema bloc, tabelul de funcionare i schema


logic a unui comparator pe 1 bit.

3.1.6.2.Comparatoare pe 2 bii (C2)

219

Proiectare logic

Vom implementa un comparator pe n bii prin metoda


iteraiei, adic utiliznd comparatoare de rang inferior. Vom
implementa un comparator C2 utiliznd un C1 .Fie:
A=A1A2
B=B1B2

Fig.3.25.Implementarea unui comparator pe pe 2 bii.


3.1.6.3. Comparator pe 3 biti ( C3)
Schema rmne ca cea precedent doar c se nlocuiete al
doilea C1 cu C2 format de intrrile A2 A3 i B2 B3 .

221

Proiectare logic

Fig.3.26. Implementarea unui comparator pe 3 bii.


3.1.6.4.Comparator pe n bii (Cn)
Un comparator pe n bii (Cn) se realizeaz dintr-un
comparator pe un bit (C1) pe poziiile cele mai semnificative i
un comparator pe (n-1) bii (Cn-1).
3.1.7. CIRCUITE ARITMETICE COMBINAIONALE
3.1.7. 1.Sumatoare
Sumatorul este un circuit care realizeaz suma aritmetic a
operanzilor aplicai pe intrri.A nu se confunda aceast operaie
cu operaia logic SAU, numit de multe ori i sum logic
(confuzia poate apare datorit aceleiai notaii: simbolul +).
Sumatorul pentru operanzi de un bit are dou intrri la care se
aplic operanzii, notate aici cu A1 A2 i transportul anterior T0 .

223

Proiectare logic

Semnalele scoase de
posterior T1 .
A1 B1 T0 R1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1

sumator sunt R1 (rezultatul) i transportul


T1
0
0
0
1
0
1
1
1

A1 B1 T0

S1


R1 T1

Fig.3.27.. Tabel de adevr i schema bloc a unui sumator pe un


bit
Tabelele Karnaugh i ecuaiile de funcionare sunt:

R1 A1 B1T0 A1 B1T0 A1 B1T1 A1 B1T

T1 A1 B1 R1T0 A1T0

225

Proiectare logic

ig.328.Implementarea unui sumator pe un bit.

227

Proiectare logic

Sumatorul paralel pe n biti


Pornind de la sumatorul pe un bit, putem crea sumatorul
pe n bii dup urmtoarea schem:

Fig.3.29.Schema bloc a unui sumator pe n bii.


Deci, adunnd dou numere:
A An An 1 ........ Ai ............. A2 A1
B Bn Bn 1 .........Bi.......... .......... .... .B 2 B1

se

obine

rezultatul:

R Rn Rn 1 .........Ri .............R2 R1

transportul; Tn
Fig.3.30. Simbolul sumatorului pe n bii.

229

Proiectare logic

3.1.7.2.MULTIPLICATOARE
Multiplicatorul pe un bit (n=1)
Circuitul combinaional care realizeaz nmulirea a dou
cuvite de 1 bit este multiplicatorul elementar. Poarta logic I
realizeaz nmulirea biilor A1 i B1 iar sumatorul complet de 1
bit adun produsul cu cel realizat de de bitul mai puin
semnificativ.
Fie A=A1
B=B1

Multiplicatorul pe 2 bii (n=2)


Fie A=A2A1
B=B2B1
A nmuli, conform regulilor de nmulire, nseamn:
A2A1 .
B2B1
(A2A1)(A1B1)
(B2A2)(B2A1)
Deci trebuiesc 4 multiplicatoare pe un bit pe primul nivel,
iar pe nivelul doi trebuie un sumator cu un rang mai mare dect
doi , deci trei. n acesta al doilea produs trebuie deplasat la

231

Proiectare logic

stnga nainte de a intra n sumator, deci va intra de pe poziia


doi.

Rezultatul este T3R3R2R1


Fig,3.31. Implementarea multiplicatorului pe 2 bii.
Multiplicatorul pe trei bii (n=3)
Fie : A=A3A2A1
B=B3B2B1
A nmuli cele dou numere nseamn:
A3A2A1.(
B3B2B1
(B1A3)(B1A2)(B1A1)
(B2A3)(B2A3)(B2A1)
(B3A3)(B3A2)(B3A1)

233

Proiectare logic

Pe primul nivel trebuiesc 9 multiplicatoare pe un bit ( nou


pori I), pe nivelul doi un sumator pe 4 bii (S 4) n care al doilea
produs este deplasat la stnga cu o poziie la intrarea n sumator,
iar pe nivelul trei un sumator pe 5 bii (S 5) n care al treilea
produs este deplasat la stnga cu dou poziii la intrarea n
sumator.

Rezultatul este: T5 R5 R4 R3 R2 R1
Fig.3.32. Multiplicatorul pe trei bii.

235

Proiectare logic

Multiplicatorul pe n bii (Mn)


Fie dou numere:
A=AnAn-1.A2A1

B=BnBn-1..B2B1

Respectnd iteraiile de construcie de pn acum, rezult c


pentru realizarea multiplicatorului pe n bii trebuie urmtoarele:
-Nivelul 1

Pe acest nivel trebuie 2n multiplicatoare pe 1 bit.

-Nivelul 2 Un sumator Sn+1 pe n+1 bii iar al (n -1) lea produs


deplasat spre stnga cu o poziie i intr ncepnd cu a doua
pondere a sumatorului Sn+1 .
Nivelul 3 Un sumator Sn+2 pe n+2 bii iar cel al (n-2) lea
produs este deplasat spre stnga cu o poziie i intr ncepnd cu
cu a treia pondere a a sumatorului Sn+2
Nivelul 4
Un sumator Sn+3 pe n+3 bii iar al (n-3)lea produs
este deplasat sprestnga cu o poziie i int ncepnd cua 4-a
pondere a sumatorului Sn+3

.
.
..
.
Nivelul n
Un sumator S2n-1 pe 2n-1 bii iar primul produs
este deplasat spre stnga cu o poziie i intr ncepnd cu a n-a
ponere a sumatorului S2n-1 .

237

Proiectare logic

3.1.7.3.Circuite I i SAU la nivel de bit


S se proiecteze circuite pe 4 bii care s realizeze funciile
I i SAU la nivel de bit ntre A=A3A2A0A1 i B=B3B2B1B0

Fig.3.33. Circuit I i SAU la nivel de bit.


3.1,7.4. Unitate aritmetico- logic
O unitate aritmetico-logic (UAL)este un dispozitiv
numeric care furnizeaz att operaii ARITMETICE ct i
LOGICE. Vom prezenta un tip de UAL care utilizeaz doar
circuite combinaionale.
S proiectm o UAL care ,n funcie de cod (dat de biii
S3S2S1S0), va efectua anumite operaii, 8 aritmetice i 8 logice,
innd cont c 4 bii de cod permit 16 operaii.
Lungimea cuvntului este de 4 bii. La operaiile de adunare
i scdere se ia i cifra de semn iar cuvntul este de 3 bii
Vom utiliza dispozitive numerice implementate ca :
multiplexoare (1:2, 1:4), sumatoare (S4 pe 4 bii),

239

Proiectare logic

complementoare fa de 2, circuite de negare, circuite I i SAU


pe 4 bii.
COD

OPERAIE

S3S2S1S0
0000

A B

0001

A B

0010

A B

0011

A B

0100

A
0101

0110

AB

0111

A B

1000

A B

1001

AB

1010

AB

1011

A B
1100

1101

AB

1110

AB

1111

A B

241

Proiectare logic

Fig.3.34.UAL cu circuite combinaionale.

243

Proiectare logic

Fig. 3.35. Intrrile n circuitele din fig.3.34

245

Proiectare logic

3.1.8. ARII LOGICE PROGRAMABILE.


Circuitele logice combinaionale (CLC), care intervin
frecvent n numeroase aplicaii, se fabric sub form integrat,
Aa sunt , de exemplu, decodoarele de adres, decodoarele BCDzecimal, MUX-urile, DEMUX-urile etc.
n situaiile n care o anumit aplicaie necesit un anumit
CLC care nu se fabric sub form integrat, acesta va trebui
realizat ptactic cu circuite integrate existente. O asemenea
soluie, n cazuri mai complicate, cere multe circuite integrate cu
numeroase conexiuni ntre ele, ceea ce duce la ocuparea unui
spaiu mare pe cablaj i la scderea fiabilitii montajului. n
asemenea situaii sunt foarte utile ariile logice programabile
care conin ntr-o singur capsul de circuit integrat numeroase
pori logice interconectabile, astfel nct s se poat realiza prctic
o gam extrem de variat de CLC-uri. Ideea de baz a circuitului
este aceea c n punctele de conexiune interne sunt plasate
fuzibile care n procesul de programare pot fi arse sau nu,
rezultnd n felul acesta schema dorit.
n figura 3.39. este reprezentat schema unei astfel de arii
logice programabile. Pe schem s-au notat prin legturile de tip
fuzibil. Circuitul este livrat cu toate fusibilele intacte i este
astfel coceput nct programatorul s aib posibilitatea s ard
oricare fuzibil.
Semnalul de intrare Ik este aplicat unui buffer ce are rolul
de a asigura curentul necesar bunei funcionri a porilor logice
crora li se aplic semnalul. Porile logice I sunt legate prin
fuzibil la ieirile directe i negate ale tuturor buferelor de intrare
Practic, n urma programrii, un circuit I va fi legat fie la ieirea
direct, fie la cea negat unui bufer de intrare. Rezult c
numrul de intrri ale circuitului I va fi cel mult egal cu

247

Proiectare logic

numrul intrrilor n aria logic programabil. O poart logic I


realizeaz funcia uk (constituent al unitii).
i0
in 1
i1
k
0
1
n 1

u x x ........... x

Fig.3.36

Schema logic a unei arii logice programabile

249

Proiectare logic

Circuitele SAU, conectabile la toate ieirile circuitelor


circuitelor de tip I, permit obinerea formei disjunctive
canonice a unei funcii booleene

yj

u
k 1

Dac m<k, nseamn c mai rmn pori I disponibile cu


care se vor putea modela alte funcii. Numrul maxim de funcii
ce pot fi modelate este dat de numrul circuitelor SAU.
Sumatoarele modulo doi de la ieire permit obinerea funciei sau
a inversei acesteia (au rolul de inversor programabil). La ieire
circuitul este prevzut cu bufere cu trei stri controlate de o born
comun C E (Chip Enable) ceea dce permite conectarea
circuitului la magistrale.
Circuitul este foarte flexibil. Printr-o folosire raional a
intrrilor i ieirilor unui circuit integrat se pot modela chiar mai
multe CLC.
Entru exemplificare, s se realizeze un circuit logic
combinaional (CLC) cu trei intrri i dou ieiri a crui
funcionare s fie descris de funciile:

y1 x1 .x 2 x 2 .x3 x1 .x 2 .x3
y 2 x1 .x 2 x1 .x 2 .x3
Se folosesc trei intrri, cinci circuite I i dou circuite
SAU.
Dezavantajul ariilor programabile este acela c, odat
programat aria, coninutul acesteia nu se mai poate terge i nu
se mai poate reutiliza.

251

Proiectare logic

3.2.CIRCUITE LOGICE SECVENIALE


Circuitele
secveniale,
spre
deosebire
de
cele
combinaionale, au rolul de a memora informaia .Cele mai
utilizate sunt circuitele bistabile care stau la baza majoritii
circuitelor secveniale.
Pentru un circuit combinaional, care nu are memorie, starea
la un moment dat depinde numai de starea intrrilor la acel
moment.
In cazul circuitelor secveniale starea la un moment dat
depinde, n afar de starea intrrilor la acel moment, i de starea
imediat anterioar. Circuitele secveniale au memorie. Ieirile
depind deci nu numai de intrri ci i de valorile anterioare ale
ieirilor. Exist o reacie de la ieri la intrri .
Prin starea sistemului se nelege ansamblul valorilor logice
ale ieirilor.
3.2.1.Circuite bistabile
Un circuit bistabil este un circuit logic secvenial care poate
avea la ieire dou stri stabile 0 logic i 1 logic. Este posibil s
pstreze la ieire oricare dintre cele dou stri logice un timp
nedefinit i numat o comand aplicat pe intrri din exterior
poate declana modificarea strii logice la ieire. Deci, un astfel
de circuit mamoreaz o anumit stare logic dintre dou comenzi
externe.
Ieirile circuitelor logice bistabile nu mai depind numai de
intrri ci i de anumite valori anterioare ale ieirilor, existnd
astfel reacii de la ieiri la intrri. Aceste reacii produc ntrzieri
ale semnalelor la trecerea lor prin porile logice. Timpul cu care
este ntrziat semnalul este nul la porile ideale dar la porile reale
trebuie luat n consideraie.
Exist dou moduri de funcionare:
-modul asincron

253

Proiectare logic

-modul sincron.
Modul asincron este acelai penru toate tipurile de bistabile.
Circuitele au dou intrri: set (S) i reset ( R ).

Fig.3.37.Circuit bistabil.Schema bloc.


Un circuit secvenial este asincron dac modificarea strii
intrrilor determin imediat schimbarea strii ieirilor, fr a mai
fi nevoie de alt semnal de comand.
Dac numai unele intrri au astfel de comportare ele se
numesc ieiri asincrone sau prioritare. Atunci cnd pe intrarea S
apare un nivel de 0 logic, ieirea Q a bistabilului trece n 1 logic,
chiar dup dispariia nivelului de zero. Atunci cnd apare pe
intrarea R un nivel de 0 logic, ieirea Q a bistabilului trece n 0
logic, chiar i dup dispariia nivelului de 0.
Circuit bistabil.Tabel de funcionare
R
S
Q
0
1
0
1
0
1
1
1
Q
0
0
1 Situaie
nepermis
Observaii

255

Proiectare logic

-Modul asincron este prioritar modului sincron n sensul c


atunci cnd pe intrrile S sau R avem un 0, bistabilul trece n 1
sau 0 i anuleaz modul sincron.
-Pe intrrile S i R nu putem avea semnal de 0 deoarece ar
nsemna o imposibilitate logic.
-Atunci cnd intrrile S i R sunt n aer ( nu avem semnal
pe ele) modul asincron nu funcioneaz i funcioneaz numai
modul sincron.

FIg.3.38. Circuit bistabil. Exemplu de funcionare a modului


asincron.
Modul sincron.
Modul sincron presupune existena unui tren de impulsuri
care se aplic pe o intrare de ceas (clock) a bistabilului. Exist de
asemenea i intrri sincrone n funcie de tipul bistabiluui.
Fiecare tip de bistabil are o ecuaie sincron n care ieirea
Q se poate schimba doar la frontul pozitiv al ceasului (din 0 n 1)
sau negativ (din 1 n 0).
Bistabilul D

Fig.3.39. Circuit Bistabil D

257

Proiectare logic

Ecuaia de funcionare este Qn=D i se aplic la frontul


pozitiv al ceasului. Deci, la bistabilul de tip D, la tranziia
ceasului din 0 n 1,intrarea D se va regsi pe ieirea Q.

Fig.3.40.Exemplu de funcionare a unui bistabil numai n


sincron.
In exemplul de mai sus se observ c ieirea Q se poate
modifica doar pe frontul pozitiv al ceasului Ck, indiferent de ce
schimbri au loc penru intrarea D ntre dou tranziii pozitive ale
ceasului.
n fig.3.41 se d funcionarea mixt a modului sincron i
asincron pentru bistabilul de tipul D.

Fig.3.41.Funcionarea mixt, sincron i asincron, pentru


bistabilul D.

259

Proiectare logic

Observaii:
Se vede c modul asincron este prioritar modului sincron, n
sensul c atunci cnd pe S sau R avem un nivel de 0 bistabilul va
trece n 1 respectiv 0.
Bistabilul J-K
Bistabilul J-K acioneaz la front negativ (o tranziie de la 1
la 0) i are n mod sincron o funcionare dat de tabelul de mai
jos.

Fig.3.42.Bistabil J-K
Tabel de funcionare
J

Qn-1

Qn

Qn

La o tranziie din 1n 0 ieirea (notat cu Q n+1) dup


aplicarea frontului va avea valoarea lui J, dac J>K au valori
diferite. Dac J=K=0, atunci Qn+1=Qn , adic se pstreaz starea

261

Proiectare logic

precedent. Dac J=K=1, bistabilul trece n starea opus celei


anterioare, Qn+1 = Qn .

Fig. 3.43. Funcionarea unui bistabil J-K n modul sincron.


Se observ c la fiecare tranziie din 1 n 0 a ceasului
valoarea lui Q se modific conform tabelului de funcionare a
bistabilului J-K

FIg.3.44.Diagrama de fincionare mixt a unui bistabil J-K


(att sincron ct i asincron).

263

Proiectare logic

La fel ca i la bistabilul D , n funcionarea mixt , modul


asincron este prioritar modului sincron, n sensul c atunci cnd
pe intrrile S sau R este un nivel 0 bistabilultrece n mod
automat pe 1 sau 0. Dac pe intrrile S sau R este un nivel de 0
atunci modul sincron nu funcioneaz att timp ct semnalul 0
persist.
3.2.2.Aplicaii ale bistabilelor
3.2.2.1. Circuite numrtoare
Circuitele numrtoare sunt cele care au rolul se a numra
inpulsurile care vin pe adrese de ceas. Exist implementri ale
numrtoarelor att n modul sincron ct i n modul asincron.
Modul sincron de funcionare a numrtoarelor nseamn c
impulsurile ajung n acelai timp pe toate intrrile de clock ale
bistabilelor ce fac parte din numrtor. Modul asiscron nseamn
c impulsurile nu ajung toate la intrrile bistabilelor din
numrtor ci, de obicei numai la un singur bistabil.
Vom studia un singur tip de numrtor asincron, cu bistabile
J-K.La sintetizarea acestui tip de numrtor inem seama de
urmtoarele consideraii:
- Impulsurile de numrat ajung numai ntr-un singur
bistabil, pe celelalte bistabile intrrile de clock sunt
realizate de ieirile bistabilelor anterioare.
- Primul bistabil va avea o perioad de dou ori mai mare
dect a impulsurilor de numrat, al doilea bistabil o
perioad de 4 ori mai mare, al treilea de 8 ori i aa mai
departe. Acest lucru se realizeaz punnd intrrile J-Kde
la fiecare bistabil la 1; n felul acesta la fiecare impuls
fiecare bistabil va trece n starea opus.
- La fiecare impuls de ceas ieirile bistabilelor, cel mai
puin semnificativ fiind cel n care intr intr ceasul, vor
costrui n binar numrul de impulsuri numrate pn n
acel moment.

265

Proiectare logic

Ca exemplu dm un numrtor ce numr pn la 23=8 ,


constituit di trei bistabile J-K.

Fig.3.45.Numrtor cu trei bistabili J-K.

Fig.3.46.Diagrama de impulsuri pentru numrtorul 23


cu trei bistabili J-K
Tabel de adevr
Ck
Q1
Q2
Q3
0
0
0
0
1
1
0
0
2
0
1
0
3
1
1
0
4
0
0
1
5
1
0
1
6
0
1
1
7
1
1
1
8
0
0
0
n
Pentru un numrtor de modulo 2 sunt necesare n
bistabile legate dup modelul de mai sus. Pentru realizarea unui

267

Proiectare logic

numrtor modulo p, un numr care s nu fie o putere a lui 2,


trebuie resetat numrtorul atunci cnd ajunge la valoarea p de
numrat. Practic numrul p, decodificat n binar, va constitui
intrrile ntr-o poart I-NU care va generaun impuls de 0 ce va
intra pe toate intrrile de reset (R ) ale tuturor bistabilelor
componenete din numrtor.
Exemple:
1) S se implementeze un numrtor modulo 33
Pentru reset la 33, n binar 100001, sunt necesare 6 bistabile.

Fig.3.47.Numrtor modulo 33.


2)S se implementeze un numrtor care s numere
descresctor impulsurile (-1) de la valoarea iniial de 1 pentru
toate bistabilele. S se implementeze n dou cazuri:
a)modulo 63 (n binar..
b)modulo 50 (n binar 110010)
Soluie
Pentru a putea numra descresctor impulsurile, legturile,
n loc s se fac dela Q anterior la ceasul urmtor, se fac de la Q

269

Proiectare logic

anterior la ceasul urmtor. Cnd se ajunge la 0 se seteaz, prin


intrrile de set, valoarea de 1 la toate bistabilele.

Fig.3.48.Numrtor descresctor modulo 63.

Fig.3.49. Numrtor descresctor modulo 50.

271

Proiectare logic

3.2.2.2. Registre
Registrele sunt o alt aplicaie important a bistabilelor i
sunt de dou mari categorii:
1) Registre de stocare (memorare a informaiei)
2) Registre de deplasare a informaiei.
1). Registrele de stocare (memorare a informaiei) au rolul
de a pstra informaia. Implementarea acestor registre se face cu
bistabile de tip D care sunt cele mai adecvate acestui mod de
funcionare. Fiecare bistabil va memora un bit, deci nunrul de
bistabile necesare va fi dat de lungimea cuvntului memorat. n
figura 3.50 este dat un registru de memorie pe 4 bii.

Fig.3.50.Registru de memorie
Scrierea n registru se face n mod sincron pe intrrile de
date Di (i=numrul de bistabile D). Memorarea informaiei are
loc n momentul frontului pozitiv al ceasului (Ck,clock). Citirea
din registru se face n mod automat prin ieirile Q ale fiecrui
bistabil n parte
Registre de deplasare

273

Proiectare logic

Registrele de deplasare sunt circuite care, la fiecare impuls


de tact aplicat, i deplaseaz coninutul spre dreapta sau spre
stnga cu cte o celul. Aceste registre se realizeaz cu bistabili
de tipul D .
Exist mai multe tipuri de registre de deplasare:
Dup sensul de deplasare registrele de deplasare pot fi:
-SISO (Serial Input-Serial Output)
Cu deplasare la dreapta (SISO-SH) (Shift Reight)
Cu deplasare la stnga (SISO-SL) )Shift Left)
Bidirecional.
-SIPO(Serial Input-Paralel Output)
-PISO (Paralel imput-Serial Output)
PIPO (Paralel Imput-Paralel Output)
Informaia se deplaseaz bit cu bit (spre dreapta sau spre
stnga)la fiecare impuls de ceas.
Dup modul de deplasare a informaiei registrele pot fi:
-Registre de deplasare seriale
-Registre de deplasare n inel.
n registrele de deplasare seriale exist o intrare serie i o
ieire serie iar informaia care intr pe intrarea serie va fi regsit
pe ieirea serie.
n registrele de deplasare n inel ieirea este conectat la
intrarea serie. In acest mod se recircul informaia n cadrul
registrului.
Implementarea acestor tipuri de registre se face cu bistabile
J-K n care ieirile Q i Q a le unui bistabil se leag cu bistabilul
urmtor la intrrile J respectiv Q (Q anterior j i Q anterior
K). n felul acesta, pe intrrile J i K vom avea totdeauna
valori opuse (J=0, K=1 sau J=1,K=0). Conform ecuaiei de
funcionare a bistabilului J-K, cnd J i K au valori opuse,
valoarea Q a bistabilului va trecen starea lui J. La fiecare impuls
de ceas valoarea unui bistabil va fi dat de valoarea bistabilului
anterior.
Registru de deplasare stnga dreapta

275

Proiectare logic

cea Q1 Q2 Q3 Q4
s
0
0
0
0
0
Ck1 I1
0
0
0
Ck2 I2
I1
0
0
Ck3 I3
I2
I1
0
Ck4 I4
I3
I2
I1
Ck5 I5
I4
I3
I2
Fig.3. 51. Registru de deplasare stnga-dreapta (ST-DR)( schema
bloc i tabelul de funcionare)
Se oserv din tabel c, la fiecare impuls de ceas coninutul
registrului se mut cu cte o poziie spre dreapta. Semnalul de
ieire va fi identic cu del de intrare dar ntrziat cu un numr de
perioade de ceas egal cu numrul de bistabile.
Registru de deplasare n inel
n acest registru ieirea se pune la intrarea serial, astfel
nct informaia se recircul. Un astfel de registru este
caracterizat prin funcia Y=Qintrare ceea ce nseamn c prin
reacie se asigur nscrierea coninutului ultimeimcelule n prima.
Registru combinat (de memorie i deplasare)
ntr-o serie de aplicaii este util ca registrul s aib pe lng
intrarea serie (ca n cazul RD) i intrri paralele (ca n cazul RM).
Un astfel de registru este prezentat n figura 3.52.

277

Proiectare logic

Fig.3.52.Registru combinat de memorie i de deplasare


n funcie de valoarea semnalului CM avem: pentru CM=0
se obine un RD st-dr care funcioneaz cu tactul TS iar pentru
CM=1 schema se transform ntr-un registru de memorie cu
inscriere paralel de date ,cu tactul T p .
Registru universal
Un astfel de registru cumuleaz funciile tuturor registrelor
prezentate anterior. Este prevzut i cu o intrare asincron pentru
tergerea informaiei, CLEAR. Schema se realizeaz cu celule
binare de tipul D sincrone i cu ajutorul unor multiplexoare.
(fig.3.53)

279

Proiectare logic

Fig.3.53.Registru universal.
3.2.2.3.Memorii
Memoria FIFO(First In First Aut)
Caracteristica de baz a unei astfel de memorii este faptul c
primul cuvnt nscris va fi i primul citit. Memoria se poate
realiza cu ajutorul unor registre de deplasare stnga-dreapta.
Numrul registrelor va fi determinat de lungimea cuvntului ce
urmeaz a fi memorat. Capacitatea memoriei(numrul cuvintelor
memorate) va fi dat de lungimea registrului (numrul de celule
binare din care este format registrul). n figura 3.54. este dat
schema unei memorii FIFO pentru cuvinte de patru bii. Dac la

281

Proiectare logic

scjemei folosim registre de deplasare formate din cte patru


celule, capacitatea memoriei va fi de patru cuvinte.

Fig.3.54. Memorie FIFO pentru cuvinte de patru bii.


Memorie LIFO (Last In First Aut)
Memoria LIFO este de fapt o memorie STIVA. Ea se
caracterizeaz prin faptul c ultimul cuvnt nscris va fi primul
citit. O asemenea memorie poate fi realizat cu ajutorul unor
registre universale (RU) cum se indic n figura

Fig.3.55. Memorie LIFO pentru cuvinte pe patru bii.

283

Proiectare logic

3.2.2.4.Convertoare
Convertor paralel serie
n numeroase aplicaii apare necesitate transformrii unor
cuvinte de cod paralel ( cu acces simultan la toate simboluirile
cuvntului) n cuvinte de cod serie (cu acces consecutiv la
simbolurile cuvntului). Un asemenea convertor poate fi realizat
cu un registru combinat aa ca n figura 3.56. Funcionarea se
poate urmri cu ajutorul tabelului i a diagramelor temporale din
figur.
Cuvntul de cod ce urmeaz a fi convertit (x1x2x3x4) se
aplic pe bornele de intrare paralelA iBiCiDi) ale registrului.
Punem CM=1 i la aplicarea unui impuls de tact pe borna T p
cuvntul se va nscrie n registru. Dup aceasta punem CM=0,
ceea ce va nsemna transformarea registrului combinat n registru
de deplasare stnga dreapta , astfel c n ritmul impulsurilor
aplicate de la intrarea Ts va avea loc evacuarea cuvntuluide cod
pe ieirea serie n ordinea x3x2x1x0.

285

Proiectare logic

CM

TS

Tp

1
0
1
0
1
0
1

1
0
0

Q
Q
1

QA QB QC QD
x0 x1 x2 x3
0

x1

x2

x3

x1

x2

x3

1
0

x01

x11

x12

x31

Fig.3.56.Convertor paralel-serie (schema bloc, tabel de


funcionare i diagrama de impulsuri).
Convertor serie-paralel
Acest tip de convertor transform succesiunea serie de
simboluri (cuvnt de cod serie) ntr-un cuvnt de cod paralel. Se
utilizeaz un registru de deplasare i un registru de memorie.
Cuv\ntul de cod aplicat serrie pe intrarea IS se nscrie n registru

287

Proiectare logic

n ritmul impulsurilor aplicate la intrarea Ts . n momentul n care


registrul s-a umplut se d comanda de transfer al cuvntului
recepionat ntr-un registru de memorie pe ieirile cruia va
aprea cuvntul de cod paralel (Fig. 3.56). Momentul
transferului reprezint o informaie suplimentar care trebuie
cunoscut dinainte pentru a putea forma corect comanda L.S.I.

TS

T
0
T
0
T
0
T
0
T
0
T
0

IS Q

x3 x4

x2 x3

x4

x1 x2

x3

x4

x 14

x1

x2

x3

x4

x31

x 14

x1

x2

x3

x4

comand

L.S.I.

289

Proiectare logic

Fig.3.57. Convertor serie-paralel (schema bloc, tabel de


funcionare, diagram de funcionare).
3.2.3.Circuite de memorie de tip PROM (Programable
Read Only Memory)
Circuitele de memorie de tip PROM sunt memorii
nevolatile (nu i pierd informaia odat cu nealimentarea
circuitului de tensiune). Ele sunt nscrise cu o anumit informaie
care apoi este citit n diverse aplicaii.
Din punct de vedere tehnologic circuitele PROM au avut
dou etape de dezvoltare.
n prima etap, nscrierea informaiei se fcea de ctre un
dispozitiv numit arztor de PROM-uri. Acest lucru se facea o
singur dat i apoi PROM-ul cu informaia ars era dat
utilizatorilor. Dac utilizatorii doreau s schimbe informaia,
PROM-ul era trimis din nou n fabric, ters cu ultraviolete i
apoi inscris cu ajutorul arztorului de PROM-uri.
A doua etap este legat de apariia aa numitelor FLASHPROMURI. Aprute ca o necesitate a micilor telefoane mobile,
aceste circuite permiteau nscrierea informaiei n timpul
funcionrii lor, deci ON LINE. Principiul funcionrii circuitului
PROM este acelai cu cel al funcionrii oricrei memorii, adic

291

Proiectare logic

la o adres dat de liniile de adres (Adres 1, Adres 2,


.Adres n) se citete o informaie pe liniile de date
(Date 1, Date 2, Date n). Orice PROM se caracterizeaz prin
dou elemente:
-Numrul de cuvinte care pot s fie nmagazinate n PROM,
notat cu N;
-Lungimea cuvntului, n bii, notat cu L.
Spre exemplu pentru un PROM de tipul 2564 (N=256
cuvinte de lungime L=4) numrul de bii de adres este
n=log2256=log2.28=8

Fig.3.58. Schema bloc a unui PROM.


Modificarea geometriei PROM-urilor
Prin modificarea geometriei unui PROM se nelege
realizarea de circuite de memorie PROM ce au un numr de
cuvinte sau o lungime de cuvnt diferite fa de circuitul iniial.
Modificarea lungimii cuvntului (L). Pentru a se realiza o
configurare cu un numr de bii schimbat (L1)fa de cel iniial L,
se aleg un numr de promuri dat de relaia:

293

Proiectare logic

L1

-Nr. de promuri= L
L1
raportului L .

unde [ ] este partea ntreag a

-Aceste promuri se pun n paralel.


-Intotdeauna modificarea lungimii cuvntului se face cu
L1>L.
Exemplu
S se realizeze dintr-un PROM 128 4 un alt circuit de
memorie 128 8.
L1 8
2
Cum L 4
avem nevoie de 2 PROM-uri 128 4 pentru

a realiza un circuit de memorie PROM 128 X 8.

295

Proiectare logic

Fig.3.59 . Schema bloc a unui PROM 128 8


Modificarea numrului de cuvinte (N).
Pentru modificarea numrului de cuvinte de la N la N 1 se
N1

alege un numr de promuri egal cu N i se selecteaz cu toate

combinaiile posibile semnalele CSC chip Select de la fiecare


PROM n parte.
Exemplul 1
S se extind de la PROM-ul 1284 la un PROM 2364.
N
28

7
N
2
1

N=128=27 , N1 = 256 = 28,


La PROM-ul 256 avem 8 bii de adres, deci cu bitul de
adres AD 8 vom selecta cele 2 PROM-uri 1284, restul
parametrilor rmnnd neschimbat,

297

Proiectare logic

Fig.3.60 .Schema bloc a unui PROM 236 4

Exemplul 2
S se extind PROM-ul de 1284 la un PROM de 512 4.
N
29
2

7 2 4
2
N1

N=128=27 , N1 =512=29
Am considerat c CS este activ pentru valoarea de 1 logic.

299

Proiectare logic

Fig.3. 61 .Schema bloc a unui PROM 512 4

Modificarea mixt (modificarea lungimii L i a numrului


de bii N)
Se aplic cele dou metode combinat.
Exemplu
Utiliznd PROM-uri1284,s se implementeze un PROM
51216.
De la extensia numrului de bii avem 4 PROM-uri, de la
extensia numrului de cuvinte avem 4 PROM-uri. Rezult o
matrice de 44 PROM-uri de 1284, deci 16 PROM-uri.

301

Proiectare logic

Fig.3.62 .Schema bloc a unui PROM 512 16.

303

Proiectare logic

Aplicaii ale PROM-urilor


1)Convertoare de cod
Convertoarele de cod reprezint trecerea de la o mulime a
cuvintelor de cod la alta. Aceste convertoarea se pot implementa
cu circuite combinaionale utiliznd diagramele Karnaugh pentru
minimizarea funciilor.
O alt metod de implementare este utilizarea unui PROM
care va stoca la fiecare adres funcia de cod corespunztoare.
Astfel dac avem un cod care va transforma cuvinte de m bii
(la intrare) n cuvinte de n bii (la ieire), vom utiliza un PROM
de 2mn, cu m adrese i n bii la ieire.
De exemplu pentru un cod GRAY avem m=n=4 i vom
utiliza un PROM de 16 cuvinte de 4 bii, unde fiecare din cele 16
cuvinte va avea stocat un PROM valoarei transformat prin codul
GRAY.
2)Generarea unor secvene de impulsuri
Pentru generarea unor secvene de impulsuri de o perioad T
se utilizeaz un PROM cu un numr de cuvinte egal cu T i cu o
singur ieire (T1). Acest PROM va avea pe liniile de adrese un
numrtor modulo T; la fiecare adres va fi stocat un bit din
secvena de impulsuri. De exemplu, dac vrem s s genereze
secvena de impulsuri 0001 0001 0001 lum un PROM
(41) i un numrtor modulo 4 iar informaiile stocate n PROM
sunt la: la adresa 00 gsim 0, la adresa 01 gsim 0, la adresa 10
gsim 0 i la adresa 11 gsim 1.

305

Proiectare logic

CAPITOLUL 4.
APLICAII ALE PROIECTRII LOGICE
n acest capitol prezentm aplicaii att combinaionale ct
i secveniale, aplicaii care fac obiectul acestui curs. Aplicaiile
secveniale nu sunt rezolvate prin metoda automatelor finite ci
numai prin mijloacele expuse n aceast carte de proiectare
logic.
4.1.Cutarea unei valori n registre
S se proiecteze un dispozitiv numeric care s caute o
valoare ntr-un ir de 8 registre i s semnaleze registrul sau
registrele unde se afl valoarea cutat. Lungimea registrului i a
valorii cutate este de 4 bii.
Soluie
Problema face parte din categoria problemelor de cutare
care trebuie transpuse din soft n hard.
Pentru implementare utilizm 9 registre de 4 bii, 8 n care
exist, n fiecare, valorile de cutat i unu n care sunt valorile de
referin.Se mai folosesc 8 comparatoare pe 4 bii iar fiecare
dintre ieirile egal(=) va ataca o locaie a unui registru de 8 bii.
n final, poziiile pe care se gsesc valori de 1 dau numrul
registrelor n care s-agsit egalitatea.

307

Proiectare logic

Fig.4.1. Schema bloc a unui dispozitiv numeric de cutare.


4.2.Aflarea maximului dintre mai multe numere
S se proiecteze un dispozitiv numeric care s simuleze
operaia de aflare a maximului dintre 4 numere. Numerele sunt
reprezentate pe doi bii i sunt stocate n registre de doi bii.
Numrul registrelor (i deci a numerelor) este de 4.

309

Proiectare logic

Soluie
Avem de aflat maximul dintre 4 numere pe doi bii fiecare.
Algoritmul este de a compara, cu un comparator pe doi bii, 2
numere alturate. Rezultatul din comparatorul a dou numere
este ieirea mai mare (>) care va fi utilizat pe urmtorul nivel
pentru a multiplexa efectiv numrul mai mare.
Mai jos este dat implementarea acestui dispozitiv cu
comparatoare pe doi bii i multiplexoare (2:1) cu seleciile
comandate de ieirile comparatoarelor. Numerele de comparat
sunt:
A=A2A1
B=B2B1
C=C2C1
D=D2D1

Fig.4.2.Dispozitiv numeric pentru aflarea maximului dintre


4 numere.

311

Proiectare logic

4.3.Comanda unui semafor


S se proiecteze un dispozitiv numeric care s comande un
semafor. Pe culorile rou i verde se va sta 20 de secunde iar pe
galben 3 secunde. Semaforul va merge doar n sensul ROUGALBEL-VERDE dup care secvena se va repeta.
Soluie
Deoarece semaforul trebuie s comute dup 20 de secunde
din
ROUGALBEN,
dup
23
secunde
din
GALBENVERDE iar dup 43 secunde din VERDEROU,
utilizm un numrtor modulo 43. Vom utiliza trei bistabile,
fiecare comandnd culorile ROU, GALBEN, VERDE,
bistabilele funcionnd n regim asincron. Deoarece cnd o
culoare se aprinde trebuie stins cea precedent, se va utiliza
urmtoarea schem:
-timp=20 secunde se va seta GALBEN i reseta ROU
-timp=23 secunde se va seta VERDE i reseta GALBEN
-timp=43 secunde se va seta ROU i reseta verde
Pentru implementare trebuie un numrtor modulo 43 care
va sesiza cele trei momente de timp:
20=010100
23=010111
43=101011
Totodat, momentul 43 va reseta numrtorul, secvena
repetndu-se ciclic.
Urmtoarea schem red implementarea acestui dispozitiv
de comand pentru semafor.

313

Proiectare logic

Fig.4.3.Dispozitiv de comad pentru semafor.

315

Proiectare logic

4.4.Afiare numeric
S se creeze un dispozitiv numeric care s afieze, cu
ajutorul a dou sisteme de afiare numeric cu 7 segmente, unul
pus pe cifra unitilor i unul pe cifra zecilor, numerele n ordine
cresctoare de la 00 la 99. Aceast afiare se va va desfura
ciclic, adic dup ce se va ajunge la 99 sistemul va ncepe iar s
afieze de la 00.
Soluie
Un sistem de afiare cu 7 segmente are patru intrri (n binar
de la 0000 la 1001) i 7 ieiri reprezentate de cele 7 segmente
care vor decodifica cele 9 cifre de la intrare, afindu-le. n cazul
nostru utilizm un numrtor modulo 10 pentru fiecare dintre
cele dou sisteme de afiare, unul pe cifra unitilor i unul pe
cifra zecilor. Clockul pentru sistemul de afiare pe cifra unitilor
va fi dat de un generator de impulsuri cu T=1sec. Clockul pentru
sistemul de afiare a zecilor este dat atunci cnd numrtorul de
pe cifra unitilor ajunge la a zecea cifr (9). Amndou
numrtoarele sunt resetate asincron dup ce ajung la cifra 9 i
apoi fiecare continu s numere de la 0.

Fig.4.4.Dispozitiv de afiare numeric.

317

Proiectare logic

4.5. Simularea unui ceas


Ss se creeze un dispozitiv numeric care s simuleze
funcionarea unui ceas, afind timpul n ore, minute i secunde.
Soluie
Pentru a simula un ceas utilizm 6 sisteme de afiare cu 7
segmente , cte dou pentru secunde, minute i ore. Fiecare
sistem de afiare va avea pe cele 4 intrri un numrtor , deci vor
fi 6 numrtoare. Numrtoarele pentru afiarea secundelor vor fi
unul modulo 10 i unul modulo 6. Cele pentru afiarea minutelor
vor fi tot unul modulo 10 i unul modulo 6. Numrtoarele
pentru ore vor fi unul modulo 10 i unul modulo 2
.Reseturile pentru numrtoare se vor face individual pentru
fiecare numrtor, n funcie de modulo de numrare.
Ceasurile pentru numrtoare din acest dispozitiv vor fi n
urmtorul mod:
-Primul numrtor de la secunde va avea ceasul (clockul)
un tren de impulsuri cu perioada de o secund (T=1s).
-Al doilea numrtor de la secunde va avea ceas atunci cnd
primul numrtor va ajunge la 10.
-Primul numrtor de la minute va avea ceas atunci cnd
numrtoarele de la secunde vor ajunge la 60 (primul la 0, al
doilea la 6).
-Al doilea numrtor de la minute va avea clock atunci cnd
primul va ajunge la 10.
-Primul numrtor de la ore va avea clock aunci cnd
numrtoarele de la minute vor ajunge la 60 (promul la 0 al
doilea la 6).
-Al doilea numrtor de la ore va avea clock atunci cnd
primul numrtor va ajunge la 10.
Schema unui astfel de disozitiv numeric este dat n figura
4.5.

319

Proiectare logic

Fig.4.5.Schema unui dispozitiv numeric care simuleaz un


ceas.

321

Proiectare logic

4.6. Afiare alfanumeric


Sistem de afiare alfanumeric pe 35 puncte
Pentru afiarea informaiilor alfanumerice se utilizeaz o
matrice de leduri cu 7 linii i 5 coloane. Afiarea informaiei se
face prin aprinderea unui numr de leduri ntr-o anumit
combinaie specific fiecrui caracter n parte. Aprinderea
ledurilor are loc fie prin baleierea liniilor fie prin baleierea
coloanelor, ntr-un ritm suficient de rapid, astfel nct s se
creeze senzaia unei baleieri continue.
Matricea are 35 puncte, unde 0 nseamn LED stins i 1
nseamn LED aprins. Fiecare caracter alfanumeric este memorat
(pe linii sau cooane) ntr-o memorie de tip PROM, numit
generator de caractere.
n tabelul 4.1. este ilustrat modul de generare al caracterului
F prin baleiere pe linie.
n tabelul 4.2. este ilustrat modul de generare al
caracterului F prin baleiere pe coloan.
Tabelul 4.1. Modul de generare al caracterului F prin baleiere pe
linie.
Codul ASCII
A3A2A1
Q1Q2Q3Q4Q5
b7b6b5b4b3b2b1
A10A9A8A7A6A5A4
000
1 1 1 1 1
001
1 0 0 0 0
1000110
010
1 0 0 0 0
011
1 1 1 1 0
100
1 0 0 0 0
101
1 0 0 0 0
110
1 0 0 0 0

323

Proiectare logic

Tabel 4.2. Modul de generare a caracterului F prin baleiere pe


coloane.
Codul ASCII
A3 0 0 0 0 1
B7 b6 b5 b4 b3 b2 b1
A2 0 0 1 1 0
A10 A9 A8 A7 A6 A5 A4
A1 0 1 0 1 0
Q1
1 1 1 1 1
Q2
1 0 0 0 0
Q3
1 1 1 1 0
1 0
0
0 1 1 0
Q4
1 0 0 0 0
Q5
1 0 0 0 0
Q6
1 0 0 0 0
Q7
1 0 0 0 0
Semnalele de comand se obin din generatorul de caractere
de la adresele specificate prin A7A6A5A4A3A2A1 . Pentru ambele
moduri de afiare semnalele A3A2A1 se schimb asigurnd
baleierea liniilor, respectiv a coloanelor, pentru fiecare caracter n
parte. Semnalele de adres cele mai semnificative
A10A9A8A7A6A5A4
rmn neschimbate formnd codul
caracterului. Cu cele 7 semnale de adres b7 = A10, b6 =A9, b5 =A8,
b4 =A7 , b3=A6, b2=A5, b1=A4 se pot adresa 128 caractere, aceste
adrese respectnd codul ASCII.
O modalitate de realizare a unui afior alfanumeric este
prezentat n figura 4.6. Acest afior este realizat cu baleiere pe
coloane. n cadrul setului standard caracterele sunt unic
determinate prin cei 6 bii mai puin semnificativi ai codului
ASCII i deci bitul 7 poate fi neglijat. Pe cele 6 intrri de adres
mai semnificative ale generatorului de caractere se aplic codul
ASCII al caracterului ce urmeaz a fi afiat. Pe cele 3 intrri de
adrese mai puin semnificative se aplic codul coloanei. Adresele
de coloane se genereaz cu un numrtor modulo 5, ciclic, ntr-

325

Proiectare logic

un ritm suficient de rapid astfel nct s se creeze senzaia de


afiare continu. Coloanele afiorului se acioneaz pe rnd de
ctre un decodificator. Pe cele 7 linii, sincron cu activarea
coloanei, se aplic codul de comand al LED-ului din generatorul
de caractere.

Fig.4.6.Sistem de afiare alfanumeric.

327

Proiectare logic

329

Proiectare logic

BIBLIOGRAFIE
1.
2.
3.
4.
5.
6.
7.
8.

Isvan Sztoianov, De la poarta TTL la


microprocesoare, Editura Tehnic, Bucureti, 1987
Vasile Pop i V.Popovici, Circite de comutare,
aplicaii
n
calculatoarele
electronice,
Ed.Facla,1976.
Dan
Nicula , Electronic
digital.Carte
de
nvtur, Editura Universotii Transilvania,
Braov,2012.
Dan Nicula, Electronic digital.Laboraaator,
Editura Universitii Transilvania, Braov, 2009.
Nicolae Cupcea, Electronic digital, Andrei Club
Cisco, 2013.
I. Bucur , Proiectare logic.Probleme. 2013.
S.D. Ahghel, Electronic digital,
Sabina Buzoi, Proiectare logic, SCRIBD
INC.2014.

331

Proiectare logic

333

Proiectare logic

CUPRINS
Pg.
1

PROIECTARE LOGIC
CAPITOLUL ! BAZELE ARITMETICE ALE CALCULATOARELOR
1.1. SISTEME DE NUMERAIE
1.1.1. BAZA UNUI SISTEM DE NUMERAIE
1.1.2. CONVERSIA NUMERELOR DINTR-O BAZ N ALTA
1.1.3. OPERAII ARITMETICE N BINAR, OCTAL I
HEXAZECIMAL.
1.2. REPREZENTAREA NUMERELOR N CALCULATOR
1.2.1. REPREZENTAREA NUMRELOR N VIRGUL FIX...
1.2.2. REPREZENTAREA NUMERELOR N VIRGUL
MOBIL..
1.2.2.1. REPREZENTAREA N VM SIMPL PRECIZIE
1.2.2.2. REPREZENTAREA N VM DUBL PRECIZIE..
1.2.2.3. OPERAII N VM..
1.3. CODURI DE REPREZENTARE A INFORMAIEI
1.3.1. CODURI NUMERICE
1.3.1.1. CODURI PONDERATE.
1.3.1.2. CODURI NEPONDERATE
1.3.1.3. CODURI PENTRU DETECTAREA I
CORECTAREA ERORILOR..
1.3.2. CODURI ALFANUMERICE..
CAPITOLUL 2. BAZELE LOGICE ALE SISTEMELOR DE CALCUL
2.1. ALGEBRA BOOLE
2.2. FUNCII LOGICE. CIRCUITE LOGICE..
2.2.1. PORI LOGICE..
2.2.2. IMPLEMENTAREA FUNCIILOR LOGICE
2.3. FORMA CANONIC A FUNCIILOR LOGICE
2.4. MINIMIZAREA FUNCIILOR LOGICE---------------------------------2.4.1. METODA KARNAUGH..
2.4.2. METODA QUINE-McKLUSKEI..
CAPITOLUL 3. CIRCUITE LOGICE...
3.1. CIRCUITE LOGICE COMBINAIONALE..
3.1.1.
MULTIPLEXOARE.
3.1.2. DEMULTIPLEXOARE.
3.1.3. APLICAII ALE MULTIPLEXOARELOR I
DEMULTIPLEXOARELOR

3
3
3
5
8
12
12
16
17
19
19
20
22
22
24
25
33
39
39
49
50
53
57
64
64
73
85
85
85
88
92

335

Proiectare logic
3.1.4.
3.1.5.
3.1.6.
3.1.7.

CODIFICATOARE...
DECODIFICATOARE.
COMPARATOARE..
CIRCUITE ARITMETICE COMBINAIONALE.
3.1.7.1. SUMATOARE
3.1.7.2. MULTIPLICATOARE
3.1.7.3. CIRCUITE SAU I I LA NIVEL DE BIT..
3.1.7.4
UNITATE ARITMETICO-LOGIC...
3.1.8. ARII PROGRAMABILE..
3.2. CIRCUITE SECVENIALE..
3.2.1. CIRCUITE BISTABILE..
3.2.2. APLICA II ALE BISTABILELOR.
3.2.2.1. NUMRTOARE.
3.2.2.2. REGISTRE
3.2.2.3. MEMORII
3.2.2.4. CONVERTOARE.
3.2.3. CIRCUITE PROMO
4
CAPITOLUL IV. APLICAII N PROIECTAREA LOGIC.
4.1
CUTAREA UNEI VALORI N REGISTRE
4.2
AFLAREA MAXIMULUI DINTRE MAI MULTE NUMERE
4.3
COMANDA UNUI SEMAFOR..
4.4
AFIARE NUMERIC..
4.5
SIMULAREA UNUI CEAS..
4.6
AFIRE ALFANUMERIC..
BIBLIOGRAFIE

96
99
106
108
108
112
116
117
120
123
123
129
129
132
137
139
143
149
149
150
152
154
155
157
161

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