Sunteți pe pagina 1din 57

REPREZENTAREA INFORMAŢIEI

La nivel LOGIC (abstract)-soft


"0"-zero logic
"1"-unu logic
La nivel(suport)FIZIC-hard {0volt,5Volt}
-circuite logice combinaţionale(porţi)
-circuite logice secvenţiale(bistabili)
BINARY DIGIT=bit="cifra binară"
1 bit b ia valori in {0,1} si este UNITATEA DE MĂSURĂ A cantitaţii de INFORMAŢIE
card{0,1}=2
COD BINAR =secvenţa (şir) din una sau mai multe cifre binare adică de biţi
b1bo=cod de 2biţi care ia valori În mulţimea variantelor{00,01,10,11} şi deci cod{ }=2x2=4
b 2 b 1 b0--->{000,001,010,011,100,101,110,111} cod de 3biţi la care n=2x2x2=8
b7b6b5b4b3b2b1b0-cod pe 8biţi (are 256 variante de cod)n=2x2x2x2x2x2x2x2
1 octet=8 biţi=1 byte
1 Koctet=2 la puterea 10 octeţi=1024 octeţi
1Moctet=2 " " =1024 Kocteţi
SISTEME DE NUMERAŢIE POZIŢIONALE :

BINAR, ZECIMAL(Decimal),HEXAZECIMAL(Hexa),OCTAL,...
Numerele=CODURI definite pe o mulţime de b--->{2,10,16,8...} simboluri în care b=BAZA
SISTEMULUI:
binarydigit--->{0,1} ; decidigit--->{0,1,2,3,4,5,6,7,8,9} ;
hexa digit-->{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}...

POZIŢIILE ÎN COD A CIFRELOR se numesc RANGURI: cantitatea Nr exprimată


de cifra Cr,de rang r din codul poziţional
Cn-1Cn-2...Cr...C2C1C0 este Nr=b la puterea r =b^r in care,
r--->{n-1,n-2,...,2,1,0}este RANGUL iar b este BAZA--->{B,D,H,Q,...}
Canitatea totală exprimată prin cod în baza b este un NUMĂR Nbaza=Nn-1 + Nn-2 + ...+
Nr +...+ N2 + N1 + N0

1
CORESPONDENŢA DINTRE REPREZENTĂRILE CODURILOR

HEXA BINAR OCTAL DECIMAL

0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 8 8
9 1001 11 9
A 1010 12 10
B 1011 13 11
C 1100 14 12
D 1101 15 13
E 1110 16 14
F 1111 17 15

Se observă ca unei cifre hexa corespund 4 biţi,in binar.Aceasta trebuie avut în


vedere la conversia unor coduri,cand se scriu relaţiile de echivalenţa.UN COD BINAR SE
DESCOMPUNE ÎN GRUPURI DE 4 biţi (de la dreapta la stanga).
Daca ultimul grup are sub 4 biţi se completează cu zerouri.Fiecărui grup i se
asociază o cifră hexa.

EXEMPLE
1110101010(B)=35A(H) ; B2A(H)=101100101010(B)

Reprezentarea numerelor in calculatoare

Definitie: Sistemul de numeratie este format din totalitatea regulilor de reprezentare a numerelor cu
ajutorul unor simboluri numite cifre.
Sisteme de numeratie: - pozitionale (ex.sistemul zecimal, binar etc.)
- nepozitionale ( ex. sistemul roman )
Un sistem de numeratie pozitional este caracterizat prin baza = reprezinta numarul total de
simboluri. Cifrele au o anumita pondere in functie de pozitia lor.
Definitie: Un numar N format din parte intreaga si parte fractionara se poate reprezenta in baza b
astfel:

N = xn-1 xn-2.................x0. x-1 x-2..................x-m


pozitia implicita a virgulei

2
unde o  xj < b  j   n-1, n-2,..........., -m 
iar valoarea lui N = xn-1 bn-1 + xn-2 bn-2 + ..........+ x0 + x-1 b-1 +......+x-m
n-1
N =  xj bj
-m

Reprezentarea numerelor in calculatoare


Sistemul de numeratie utilizat in calculatoarele numerice este sistemul binar (exista
elemente fizice, sigure in functionare care au doua stari stabile). Reprezentarea numerelor in acest
sistem prezinta mai multe forme in functie de solutia aleasa pentru rezolvarea celor doua mari
probleme:
- pozitia virgulei
- reprezentarea numerelor algebrice ( cu semn )
In functie de pozitia virgulei exista doua reprezentari:
- virgula fixa
- virgula mobila

Virgula fixa.

In calculator se lucreaza cu un numar finit de biţi determinat de lungimea cuvintului (


multiplu de lungime de cuvint ). In cazul reprezentarii in virgula fixa , virgula ocupa o pozitie
stabilita initial prin proiectare si nu poate fi schimbata. ( Pozitia virgulei este conventionala si nu
este realizata fizic ).
( Are importanta pentru structura dispozitivului aritmetic ).
Se pot distinge trei cazuri

Primele doua reprezentari sunt cele mai utilizate.Reprezentarea in virgula fixa cu numere
subunitare prezinta avantajul ca: operatia de inmultire nu duce la depasire.

Virgula mobila.

Numerele reprezentate in virgula mobila vor fi compuse din doua parti mantisa si exponent.

-exponentul - indica ordinul de marime al numarului printr-o putere a lui b


(b= baza de reprezentare a numarului ).
-mantisa - descrie marimea numarului in cadrul ordinului respectiv.

3
N = M  b E unde 1/ b  M < 1
M- nr. subunitar reprez. in v.f.
E- nr. intreg reprez. in v.f.
Exemplu: in zecimal; 312,56  0.32156  103
312,56  0.032156  104
Numarul de biţi alocati pentru mantisa sunt limitati ( fixati de structura hard) asa ca este
bine sa incapa cit mai multe cifre semnificative. Pentru aceasta mantisa trebuie normalizata, adica
eliminate zerourile de dupa virgula si ajustat exponentul in mod corespunzator.

Reprezentarea numerelor cu semn.

In calculator nu exista posibilitatea de a introduce direct semnele + si -, atasate numerelor


pozitive si negative. Aceasta a dus la modalitati speciale de reprezentare a numerelor in calculator,
diferite de cele din algebra curenta. Reprezentarea semnului se face cu ajutorul unei cifre binare,
denumita cifra de semn si asezata de obicei in prima pozitie.S-a facut conventia ca:
-cifra 0 sa reprezinte numerle pozitive
-cifra 1 sa reprezinte numerele negative

Exista trei forme de reprezentare a numerelor cu semn:


-cod direct ( marime si semn )
-cod invers ( complement fata de 1 )
-cod complementar ( complement fata de doi )

In cazul numerelor in virgula fixa ( subunitare ):

Fie un numar subunitar x = xs x-1..........x-m . Sa descriem reprezentarea lui in cele trei


coduri:

- cod direct xd = 0. x-1 x-2.............x-m pt. x  0


1. x-1 x-2...........x-m pt. x  0

Are avantajul ca este foarte asemanator cu scrierea naturala, insa din punct de vedere
calculatorul prezinta unele dezavantaje legate in special de prelucrari.

4
- cod invers xi = 0. x-1 x-2..............x-m pt. x  0
  
 1. x-1 x-2.............x-m pt. x  0
x-j = 1- x-j ;  j   -1,.............,-m

- cod complementar x c = 0 x-1 x-2...........x-m pt. x  0


  
1 x-1 x-2 ........x-m pt x < 0
x c = 2 - x

Se observa ca numerele pozitive se reprezinta la fel in toate cele trei coduri.


Pentru numerele negative formele de reprezentare difera, insa exista urmatoarele relatii:
 x  +  x i = x-1 ............x-m +1 x-1 .......... x-m =
= 1. 11 ...........1 = 2 - 2 -m
 x  i = 2 -  x  - 2 -m   x  c =  x  i + 2-m

Exemplu: x = 0.011  x  i = 1.100


 x  +  x  i = 0.011 + 1.100 = 1.111 10000-
1
_________

1.1111

 x  c = 10000 - 0011
0011
1101

Din aceste relaţii rezulta si urmatoarele doua reguli de realizare a complementului faţa de
doi a unui numar :
1. Se realizeaza complementul faţa de 1 si se aduna o unitate la poziţia cea mai puţin
semnificativa.
2. Se examineaza modulul numarului de la dreapta spre stanga. Zerourile si prima unitate
inţalnite raman neschimbate. Toate celelalte cifre se neaga.

Formatul de reprezentare a numerelor in calculator FELIX M18

In virgula fixa calculatorul lucreaza pe 8 biţi,

5
Operaţii aritmetice binare. Adunarea si scaderea
Adunarea in cod direct

Fie doua numere: x = x s x-1...............x-m


y = y s y-1...............y-m
Cazul 1 - x,y au semne diferite:
Regula: Se aduna complementul fata de 1 al modulului celui de-al doilea numar facind adunarea bit
cu bit - cu excepţia bitului de semn:
a) Daca apare un transport de la poziţia c.m.s. se aduna 1 la pozitia c.m.p.s. si se da
rezultatului semnul primului numar al adunarii ( cel care nu a fost complementat)
b) Daca nu apare un transport de la bitul c.m..s. se ia complementul faţa de 1 al
rezultatului si se da acestuia semnul celui de-al doilea termen ( cel care a fost complementat )

Exemplu: a) x = 0.101 101 +


011
y = 1.100 1000
x + y i = (0)101 + (0)011 +1
0.001

6
Exemplu: b) x = 1.010 010 +
010
y = 0.101 100
x + y i = 1.010 + 1.010 = 0.011

Cazul 2 x,y au acelasi semn

Se aduna  x  +  y  ( fara bitul de semn ) si se da rezultat semnul comun .


 x  +  y  < 1 rezultat corect 0.011 + 0.010 = 0.101
 x  +  y  > 1 eroare de depasire 0.100 + 0.101 = 1.101

Scadere - se reduce la operatia de adunare, se neaga bitul de semn al scazatorului si se va


efectua adunarea.

Adunarea si scaderea in cod invers

Adunare - Se aduna bit cu bit incepind cu rangul c.m.p.s. inclusiv bitul de semn. Eventualul
transport care apare de la bitul de semn se aduna la cifra cea mai putin semnificativa.

x = 0.010  x  i = 1101 x i + y i = 11001


y = 0.011  y  i = 1100 _______
______ 0010
1001 x + y = 0101
1010
0101

Scadere - Se complementeaza faţa de 1 scazatorul si se aduna la descazut dupa regula


stabilita anterior.

x = 0101 ; y = 0011 y i = 1100


0101 + 1100 = 10001 = 00010
0101 +
1100
10001

Exemplu 1;
- fie un nr. reprezentat in binar:

x = 1.010 (-2)d [x]i = 0.101 (5)i


y = 1.011 (-3)d [y]i = 0.100 (4)i

[z]i = [x]i + [y]i = 1.001 (1) –› in cod direct 0.110


[z]c = 1.010 ‹– ( 1.001 + 1 )
[z]d = 1.101

7
Exemplu 2;
x = 0.0010 [x]i = 1.1101 [x]c = 1.1110
y = 0.0111 [y]i = 1.1000 [y]i = 1.1001

[x + y]d = 0.1001
[x + y]i = 1.0101 + 1 = 1.0110 (i)
[x + y]d = 0.1001
[x + y]c = 1.0111

Adunarea numerelor in virgula mobila ( v fixa )

AsAEAM BsBEBM CsCECM


op 1 op2 rezultat

SISTEM INFORMATIC.REPREZENTAREA INFORMAŢIEI


INTRODUCERE IN INFORMATICA ,anul I ,Fac.A&C

PRELUCRAREA LOGICĂ A INFORMAŢIEI BINARE


OPERAŢII LOGICE ELEMENTARE:NON,AND,OR

Aceşti operatori se aplică unor variabile logice x1,x2,...în cadrul unor funcţii logice
f(x1,x2,...)
Funcţia f şi variabilele x1,x2... iau valori in {0,1}

—y=NONx=f(x)funcţia NEGAŢIE este unară în sensul că se aplică unei


singure variabile x.

8
în loc de NON se mai foloseşte simbolul "tilda" y=~x sau o bară deasupra
lui x astfel .

—AND si OR necesită cel puţin 2 variabile logice x1 si x2:


y=(x1)AND(x2)=(x1)•(x2)=(x1)&(x2) respectiv
y=(x1)OR(x2)=x1+x2=(x1)|(x2).

Aceste operaţii au fost introduse axiomatic de către John Boolle (sec XVIII)
propunând următoarele reguli pentru cele trei operaţii binare :pt. NON→ ~1=0 ; ~0=1 ;
pt. AND→ 0&0=0 ; 0&1=0 ; 1&0=0 ; 1&1=1 ;
pt. OR--> 0+0=0 ; 0+1=1 ; 1+0=1 ;1+1=1.
Dacă notăm cu B mulţimea { 0,1} observăm că variabilele x , x1 , x2 ,iau valori în
B.Funcţia F(x)=~x este F:B→B, iar F(x1,x2),în cazurile AND şi OR sunt funcţii definite pe
produsul cartezian B*B şi în acest caz F:B*B→B .
Dacă funcţia este de 3 variabile ea este definită pe produsul
B*B*B={000,001,010,011,100,101,110,111} etc care este o mulţime cu un nr.de
(2x2x2)=8 elemente.În cazul a 4 variabile boolleene avem card(B*B*B*B)=16 etc.

EXEMPLE
F1(x1,x2)=~x1+x2 va putea lua valorile: F(00)=~0+0=1;
F(01)=~0+1=1;
F(10)=~1+0=0+0=0;
F(11)=~1+1=1

TABELUL DE ADEVĂR AL FUNCŢIILOR LOGICE BINARE

Acest tabel defineşte funcţia.În cazul a n variabile,(x1,x2,...,xn),tabelul conţine(2 la


puterea n)linii şi (n+1)coloane din care primele (n)coloane conţin produsul ,(B*B*...B*B*B)
şi ultima coloană conţine valorile funcţiei.

EXEMPLE

x y
0 1
1 0

9
X1 X2 Y
0 0 0
0 1 0
1 0 0
1 1 1

DIAGRAMELE KARNAUGH ALE FUNCŢIILOR LOGICE :


F(x1,X2),F(x1,x2,x3),F(x1,x2,x3,x4)

Diagramă K-h constitue o altă reprezentare a valorilor funcţiei din tabelul de adevăr
.Această reprezentare este un dreptunghi în interiorul căruia sunt plasate valorile funcţiei
iar pe câte una din laturile verticale şi orizontale sunt scrise valorile celor "n"variabile ale
funcţiei repective,rezultând tabele diferite în funcţie de numărul de variabile"n"

CAZUL n=2
În acest caz funcţia ia 4 valori: F(00),F(01),F(10) si F(11) care sunt plasate în
dretunghiul împărţit în 4 celule astfel

X2 0 1
X1
0 F(0,0) F(0,1)

1 F(1,0) F(1,1)

CAZUL n=3

Valorile funcţiei în acest caz


sunt:F(000),F(001),F(010),F(011),F(100),F(101),F110),F(111).Ele sunt plasate în
diagrama astfel:

10
X2X3 00 01 11 10
X1
0 F(000) F(001) F(011) F(010)

1 F(100) F(101) F(111) F(110)

Atenţie!!!

DISTRIBUŢIA VALORILOR PE LATURA x2x3 TREBUIE FĂCUTĂ ,CA ÎN FIGURA


ÎN ORDINEA:x2x3→00→01→11→10

CAZUL n=4
În acest caz pe o latură sunt distribuite cele 4 combinaţii pentru perechea x1x2 iar
pe cealaltă latură pentru x3x4 ca în figura următoare.

11
X3X4 00 01 11 10
X1X2
00 00 F(0000) F(0001) F(0011) F(0010)

01 01 F(0100) F(0101) F(0111) F(0110)

11 11 F(1100) F(1101) F(1111) F(1110)

10 10 F(1000) F(1001) F(1011) F(1010)

Se obţin astfel 16 celule în care sunt plasate cele 16 valori ale


funcţiei:F(0000),F(0001),...,F(1111)

AVANTAJUL REPREZENTĂRII K-h constă în faptul că permite aplicarea unei


metode inginereşti de proiectare a structurii schemelor circuitelor logice de implementare
hard a funcţiilor logice date prin tabelul de adevăr.

REPREZENTAREA MATRICEALĂ A TABELELOR DE ADEVĂR ŞI


DIAGRAMELOR KARNAUGH

Reprezentarea matriceală permite transpunerea pe calculator a unor metode de


proiectare logică a circuitelor destinate implementării hard a unor funcţii logice date prin
tabele de adevăr.

PROBLEMA ANALIZEI CLC

Problema analizei este formulată astfel:


- Se dă: fie schema logică a CLC-lui de analizat, fie funcţia logică care-l descrie;
- Se cere: tabelul de adevăr al CLC-lui , folosind schema lui ori funcţia care-l descrie.
Scopul analizei este de a verifica măsura în care CLC-ul de analizat răspunde corect la
diverse combinaţii de valori logice ale variabilelor de intrare.
Dacă, spre exemplu, variabilele (mărimile) de intrare sunt x 1, x2, x3, iar mărimea de ieşire a
CLC-ului este y=f(x1,x2,x3), în care f( ) este cunoscută se poate calcula se poate calcula răspunsul la
diverse combinaţii aplicate la intrare: f(000); f(001); f(010); f(011); f(100); f(101); f(110); f(111).

Exemplul 5.1

12
Se dă un CLC descris de funcţia logică binară numită "funcţie majoritate din 3", cu
expresia:
Denumirea acestei funcţii sugerează comportarea CLC-lui, şi anume: răspunsul y=0 când
majoritatea intrărilor sunt nule, iar când majoritatea intrărilor sunt unu răspunsul este y=1.

y  x1 x2  x1 x3  x2 x3

Introducând în expresia de mai sus cele 8 combinaţii de valori ale intrărilor rezultă
următorul tabel:

x1 x2 x3 y = x1 x2+x1 x3+x2 x3
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

Tabelul obţinut confirmă proprietăţile menţionate şi analiza arată că CLC-ul dat prin funcţia
de mai sus este într-adevăr un CLC care prelucrează logic informaţia de vot primită de la un grup
de 3 persoane şi afişând la ieşire rezultatul sub forma y=1 numai dacă majoritatea au votat cu "1" şi
afişează y=0 în caz contrar.

PROBLEMA SINTEZEI CLC

Scopul sintezei este obţinerea schemei logice de implementare cu porţi elementare(and,


non, or) a unui CLC cu determinarea prealabilă a expresiei funcţiei logice care descrie CLC-ul
dorit. Cerinţele privind CLC-ul dorit sunt exprimate prin intermediul tabelului de adevăr.
În consecinţă, problema sintezei CLC se formulează astfel:
- Se dă: tabelul de adevăr al unui CLC care trebuie implementat hardware (sau software);
- Se cere: expresia funcţiei logice a CLC-lui dorit şi schema logică a acestuia.
Pentru rezolvarea acestei probleme, cele mai uzuale metode sunt: metoda directă (bazată
pe tabelul de adevăr) şi metoda Karnaugh (bazată pe diagrame K-h).

13
Metoda directă de sinteză a unui CLC

Această metodă permite obţinerea unei funcţii logice y = (x1,x2,x2,...,xn) pe baza tabelului de
adevăr dat care conţine N=2n linii şi reflectă comportamentul dorit al CLC-lui care trebuie
construit. Tabelul dat conţine m<N linii în care ieşirea y=1.
Metoda directă se aplică în 2 paşi:

PASUL 1
Fiecărei linii pe care y=1 i se ataşează câte un produs al celor n variabile de intrare. Rezultă
astfel m produse p1(x1...xn), p2(x1...xn),...,pm(x1,...,xn). În aceste produse o variabilă intră negată
dacă pe linia respectivă valoarea ei este nulă.

PASUL 2
O funcţie logică care descrie un CLC al cărui tabel de adevăr va fi cel dat se obţine prin
însumarea celor m produse obţinute la pasul 1:
y=p1(x1....xn)+...+pm(x1...xn)
Trebuie remarcat că funcţia obţinută poate fi simplificată aproape totdeauna pe baza
teoremelor algebrei CLC. Această procedură este prea laborioasă pentru a fi folosită în ingineria
proiectării logice a CLC. O metodă inginerească care furnizează o structură optimală este bazată pe
diagramele Karnaugh ale CLC-lui care trebuie obţinut. Această metodă furnizează o funcţie cu un
număr minim de variabile şi de operaţii, ceea ce conduce la CLC-ul cel mai ieftin.

Exemplul 5.2
Se dă tabelul de adevăr din exemplul 5.1. Se cere funcţia logică aferentă determinată prin
metoda directă.
Rezolvare:
- Se determină produsele aferente liniilor 8, 7, 6 şi 4:
linia 8  x1x2x3
linia 7  x1x2(x3)
linia 6  x1(x2)x3
linia 4  (x1)x2x3
- Se determină funcţia ca fiind suma produselor:
y = x1x2x3 + x1x2(~x3) + x1x2(~x3) + x1(~x2)x3 + (~x1)x2x3

Constatare:
Se constată că funcţia dată în exemplul 5.1, pentru acelaşi tabel de adevăr, este alta mult
mai simplă care conţine doar: 6 litere, 3 operatori AND, 3 operatori OR.
Astfel, costul implementării cu CLC-uri (porţi) este cel puţin dublu în cazul funcţiei din
exemplul 5.2.

14
Metoda Karnaugh

Algoritmul aplicării acestei metode implică parcurgerea următorilor paşi:


PASUL 1
Pe diagrama Karnaugh dată se identifică celulele unitare (care conţin 1) şi se formează din
ele grupuri dreptunghiulare de celule unitare adiacente. Baza L şi înălţimea h ale dreptunghiului
trebuie să fie puteri ale lui 2:
L=2a,
h=2b,
unde a şi b sunt întregi = 0 ,1 ,2,...
Numărul de celule din grup este Lxh şi deci poate fi numai 1 sau 2 sau 4 sau 8 etc.
Spre exemplu, dacă grupul conţine o singură celulă unitară, a=b=0.
ATENŢIE !!
Deoarece în cazul n=3 diagrama Karnaugh este dată pe un cilindru, celulele marginale pe
generatoare (pe marginile din dreapta şi stânga) sunt adiacente, iar în cazul n=4 celulele de pe
laturile opuse ale tabelului (diagramei) sunt adiacente deoarece tabelul este pe tor desenat.

PASUL 2
Fiecărui grup i se ataşează câte un produs de [n-(a+b)] variabile. De aici rezultă că pentru
optimalitate trebuie formate grupuri de dimensiuni cât mai mari posibil.

PASUL3
Se identifică variabilele din fiecare grup cu regula: dacă o variabilă nu-şi schimbă valoarea
în lungul (sau în latul) grupului, atunci intră în produsul aferent grupului. Variabila intră negată
când valoarea neschimbată este 0 şi invers, intră nenegată când este 1.
Funcţia logică care descrie CLC-ul căutat este suma produselor aferente grupurilor.

Exemplul 5.3
Se cere întocmirea diagramei Karnough pentru funcţia "majoritate din 3" şi prin metoda
Karnough descrisă anterior să se găsească structura optimală care implică costul cel mai mic de
implementare cu CLC-uri, ţinând cont că preţul implementării unei porţi logice creşte în funcţie de
numărul de intrări utilizate ale ei.
Pasul 1
Diagrama Karnough este următoarea:

15
x2 x3
x1 00 01 11 10

0 0 0 1 0
grup 3

1 0 1 1 1

grup 1 grup 2

Pe diagramă se pot forma numai 3 grupuri egale caracterizate toate de a+b=1.

Pasul 2
Fiecărui grup i se va asocia câte un produs de câte n-(a+b)=3-1=2 variabile astfel:
x1x2  gr. 2
x1x3  gr. 1
x2x3  gr. 3

Pasul 3
Funcţia logică căutată va fi:
y = x1x2+x1x3+x2x3
Pe baza acestei funcţii se poate întocmi schema circuitului de implementare care va necesita
3 porţi AND cu câte 2 intrări şi o singură poartă OR cu 3 intrări.

SINTEZA UNOR BLOCURI


DE PRELUCRARE A INFORMATIEI
SINTEZA SEMISUMATORULUI DE 1 bit
Semisumatorul (SS) de un bit are ca intrări cei 2 operanzi x, y{0,1}, iar ca ieşiri are tot 2
variabile binare: suma celor 2 intrări x şi y, notată SS şi respectiv transportul în rangul imediat
superior, notat c de la denumirea de "carry", în engleză. El poate fi realizat hardware printr-un
CLC care are următorul tabel de adevăr:

x Y SS c
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

16
Acest tabel reprezintă, de fapt, tabla adunării în binar. Aplicând metoda directă de sinteză,
rezultă cele 2 funcţii logice, SS(x,y) şi c(x,y), care descriu CLC-ul de realizare hard a
semisumatorului:
SS = ~xy + ~yx implementabilă printr-un NOR şi respectiv
c = xy implementabilă printr-un AND .
Lăsăm în sarcina cititorului reprezentarea cu simbolurile cunoscute a schemei logice de
implementare hardware a circuitului.

SINTEZA SUMATORULUI PE 1 bit

Sumatorul pe un bit are 3 intrări: cei 2 operanzi x, y şi respectiv ci transportul din rangul
precedent (indicii folosiţi sunt i de la INPUT şi respectiv o de la OUTPUT). Ieşirile sumatorului
sunt 2: suma S(x,y,ci) şi respectiv transportul în rangul următor co(x,y,ci).

Tabelul de adevăr al sumatorului pe un bit are 8 linii şi 6 coloane:

ci X y S co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Acest CLC poate fi realizat cu 2 semisumatoare: primul cu intrările x, y şi ieşirile SS1 =


(~x)·y + (~y)·x, respectiv c1 = x·y, iar al doilea cu intrările ci respectiv SS1 şi ieşirile SS2 =
(~ci)·(SS1) + (~SS1)·(ci), c2 = ci ·SS1.
Ieşirile sumatorului astfel realizat sunt:
S(x,y,ci) = SS2 = (~ci)·(~x)·y + (~ci)·x·(~y) + ci ·(x+~y)·(~x+y) = (~ci)·(~x)·y + (~ci)·x· (~y) + ci
·(~x)·(~y) + ci ·x·y;
co(x,y,ci) = c1 + c2 = x·y + ci ·(~x·y + ~y·x).
Aplicând metoda directă pe tabelul de mai sus, rezultă aceleaşi relaţii logice după
simplificări.
Minimizarea diaframelor Karnough prin introducerea variabilelor în diagramǎ

Fie funcţia de comutaţie de n variabile fn(x1,…,xj-1,xj,xj+1,…,xn).Se poate demonstra prin inducţie


perfectă următoarea egalitate :
fn(x1,…,xj-1,xj,xj+1,…,xn) = xj fn-1(x1,…,xj-1,1,xj+1,…,xn) + (~xj) fn-1(x1,…,xj-1,0,xj+1,…,xn)
Se observă că cele două funcţii fn-1(x1,…,xj-1,1,xj+1,…,xn) i fn-1(x1,…,xj-1,0,xj+1,…,xn) sunt funcţii
de n – 1 variabile , deci pot fi reprezentate prin două tabele Karnaugh cu n – 1 variabile.
Fie urmǎtoru exemplu de funcţie datǎ prin urmǎtoarea diagramǎ Karnough:

17
Paşii parcuşi pentru minimizarea unei funcţii prin introducerea variabilelor în diagramǎ :

1. Se considerǎ în locul variabilelor introduce “ 0 “ şi se minimizeazǎ.

2. Se considerǎ “1 “ în locul unei variabile, celelalte “0” ,unitaţiile devin indiferente,


Zerourile rǎmîn neschimbate şi se minimizeazǎ.

3. Se continuǎ paşii 1 şi 2 pânǎ se epuizeazǎ toate variabilele introduse.Funcţia sau între


funcţiile obţinute la paşii anterior reprezintǎ funcţia minimǎ rezultatǎ.

1. Să se construiască tabela de adevăr pentru funcţia majoritate de 3 variabile.


f majoritate = 1 pt. min 2 intrǎri au val 1.Vezi cursul.

X y z f
0 0 0 0
0 0 1 0 f x, z, y   xyz  x yz  xy z  xyz  xyz  x yz  xy 
0 1 0 0  
 zx  y   xy   y x  xz  x yz  xy  yx  x yz 
 
0 1 1 1
1 0 0 0  xy  z y  yx  xy  zx  y   xy  xz  yz
1 0 1 1 f x, y, z   xy  xz  yz
1 1 0 1
1 1 1 1

2. Să se minimizeze funcţiile de comutaţie folosind tabelele Karnaugh.

f x, y, z   xy  x yz  x yz  xz pt. 1
xy f x, y, z   x  yz
z 00 01 11 10
0 0 0 1 1 pt. 0
1 1 0 1 1
 
f x, y, z   x  z  x  y  xx  x y  xz  z y 
 x  zy
3.
f x1 , x 2 , x 3 , x 4   x1 x 2 x 3  x1 x 2 x 3  x1 x 3 x 4  x1 x 2 x 3
x1 x2
x3 x4 00 01 11 10
00 0 0 1 1 f x1 , x 2 , x 3 , x 4   x1 x 3  x 3 x 4  x 1 x 2 x 3
01 1 1 1 1
11 0 1 0 0
10 0 1 0 0

4. f x1 , x 2 , x 3 , x 4   x1 x 2 x 3 x 4  x1 x 2 x 3 x 4  x1 x 2 x 4  x 4
x1 x2
x3 x4
18
00 01 11 10
00 1 0 0 1 f x 1 , x 2 , x 3 , x 4   x 2 x 4  x 1 x 2 x 3 x 4
01 0 1 0 0
11 0 0 0 0
10 1 0 0 1
5. Să se minimizeze:
x1 x2
x3 x4 00 01 11 10
00 1 0 0 1 f x 1 , x 2 , x 3 , x 4   x 3 x 4 x 2  x 2 x 4
01 0 - - -
11 0 1 - 0
10 0 0 0 0
6.
x1 x2
x3 x4 00 01 11 10
00 1 - 1 1 f x 1 , x 2 , x 3 , x 4   x 2  x 1 x 3  x 4
01 1 1 1 0
11 0 1 1 1
10 1 1 1 1
7. Se dă tabela Karnaugh. Să se reducă dimensiunea tabelei introducând variabilele x3, x4 în
tabelă şi să se obţină expresiile funcţiilor:
f x1, x 2 , x 3 , x 4   x1x 2  x 2 x 3 x 4  x1 x 3 x 4  x1x 3x 4  x1x 3 x 4

x1 x2 00 01 11 10
x3 x00
4 1 1 1 0 f x1 , x 2 , x 3 , x 4   x1 x 2  x1 x 4  x 1 x 3 x 4
01 0 0 1 0
11 0 0 1 1
10 1 1 1 0

Fie funcţia de comutaţie de n variabile f(x1,x2, … , xn). Se poate demonstra prin inducţie
perfectă următoarea egalitate:
fn(x1,…,xj-1,xj,xj+1,…,xn) = xj fn-1(x1,…,xj-1,1,xj+1,…,xn) + (~xj) fn-1(x1,…,xj-1,0,xj+1,…,xn)

x1 x2
x3 00 01 11 10
f(0,0,0)  x 4 f(0,0,0,1)  x 4 f(0,0,0,0) 
0 x4 x4 1 0
 x 4  0  x 4 1  x 4
f(1,1,0)  x 4 f(1,1,0,1)  x 4 f(1,1,0,0)  x 4  x 4  1
1 x4 x4 1 x4

19
x1
x2 0 1
f 2 0,0  x 3  f 3 0,0,1  x 3  f 0,0,1  x 3  x 4  x 3  x 4 
0 x4 x3x 4 
 x4 x3  x3  x4 
f 2 1,0  x 3  f 3 1,0,1  x 3  f 1,0,0  ...
1 x4 1

1. considerăm toate variabilele egale cu zero şi exprimăm funcţia cu alipiri de 1.

x1 x2
x3 00 01 11 10

0 0 0 1 0
x1x 2
1 0 0 1 0

2.

x1 x2
x3 00 01 11 10

0 1 1 - 0
x1 x 4 x1 x 2  x1 x 4  x1x 3 x 4
1 1 1 - 1

3.x4 = 0
x1 x2
x3 00 01 11 10

0 0 0 - 0
x1x 3 x 4

1 0 0 1 1

20
x1 x1 x1
x2 0 1 x2 0 1 x2 0 1

0 0 0 0 1 0 0 0 1
+ +

1 0 1 1 1 - 1 0 1


x1x 2  x 4 x1  x 3  x 4 x1 

f x1 , x 2 , x 3   x 2 x 3 x 4  x1 x 2 x 3 x 4  x1 x 2 x 4  x1 x 2 x 3 x 4  x1 x 2 x 3 x 4  x 2 x 3 x 4

x1x2
x3x4 00 01 11 10

00 0 1 1 0

f  x 2 x 3 x 4  x1x 2 x 3  x1x 2 x 3  x 2 x 3 x 4 
01 1 0 1 0
 x1 x 2 x 3  x1 x 2 x 4

11 1 0 0 1

10 1 0 1 0

x1 x2
x3 00 01 11 10

0 x4 x4 1 0

1 1 0 x4 x4

21
x1 x2 x1 x2 x1 x2
x3 00 01 11 10 x3 00 01 11 10 x3 00 01 11 10

0 0 0 1 0 + 0 1 0 - 0 + 0

1 1 0 0 0 1 - 0 0 1 1

 
x1 x 2 x 3  x1 x 2 x 3  x 4 x1 x 2  x 2 x 3  x 4 x 2 x 3  x1 x 2 

x1
x2 0 1

0 x3  x4 x3x 4

1 x3 x4 x3  x4

CURS INTRODUCERE ÎN INFORMATICĂ


anul I Facultatea de automatică şi calculatoare

tema 6 MEMORAREA ELECTRONICĂ


A INFORMAŢIEI BINARE

TIMPUL DE ACCES LA MEMORIE

În calculator se folosesc atât suporturi magnetice cât şi electronice pentru stocarea pe o


perioadă scurtă sau pe o perioadă îndelungată a informaţiei binare. Memoriile magnetice (hard
disck-ul, disckette-le, etc.) nu fac parte din calculatorul propriu-zis, ele constituind componente
periferice importante, dar care nu participă direct la procesul de prelucrare a informaţiei prin
execuţia instrucţiunilor din program. În procesul de execuţie, programul se află într-o memorie
electronică unde-i stocat sub formă de coduri binare de tip instrucţiune şi de tip date. În decursul
prelucrării procesorul extrage din memorie câte un cod tip instrucţiune şi-l aduce în procesor unde
îl interpretează şi-l execută după care extrage din memorie următoarea instrucţiune etc.
Durata execuţiei unei instrucţiuni, Ti, are două componente:
Ti = Tprel + Tacces
Timpul de prelucrare Tprel este folosit de procesor pentru decodificare şi execuţia operaţiei
definite în codul respectiv al instrucţiunii. Timpul de acces Tacces este timpul scurs din momentul la
care procesorul solicită de la memorie eliberarea unui anumit cod pe magistrală şi până la prezenţa
lui pe magistrală (extracţia). Acest Tacces trebuie să fie mai mic decât perioada de tact, T a ceasului

22
procesorului. Dacă frecvenţa de ceas a procesorului este f = 100 MHz, atunci timpul de acces la
memorie trebuie să fie sub 0.001 microsecunde. Progresul tehnologiilor de fabricaţie a memoriei a
condus la timpi de acces foarte mici.
Timpul de acces foarte mare al memoriilor pe suport magnetic le-a făcut de neutilizat ca
memorii operative în calculatoarele actuale, la care viteza de prelucrare a informaţiei binare este
esenţială.

LOCAŢII ŞI CELULE DE MEMORIE. MAGISTRALE

Memoria electronică din calculator este structurată pe OCTEŢI. Fiecare octet de memorie
este o LOCAŢIE la ADRESA căreia se poate memora un cod binar de 8 biţi. Adresa fiecărei
locaţii este exprimată printr-un cod binar. Dacă memoria respectivă are o capacitate de 64 Kocteţi
sunt necesare 64x1024=65536 adrese distincte, adică 216 adrese. Pentru obţinerea acestui număr de
coduri binare de adrese sunt necesari 16 biţi, se spune că aceasta este lungimea codului de adresare
a memoriei. Exprimate HEXA aceste adrese vor fi: 0000H; 0001H; 0002H; ... ; FFFEH; FFFFH.
Fiecare locaţie de câte 1 octet este compusă din 8 celule de memorie de un bit realizată pe
baza unui circuit electronic elementar de memorie numit BISTABIL. Denumirea lui vine de la
faptul că acesta poate rămâne în starea cu unu la ieşire sau cu zero la ieşire după înscriere, deci
poate memora.
Comunicaţia procesorului cu memoria externă M se face prin grupuri de linii de legătură
numite magistrale. De exemplu pentru transmisia paralelă (simultană), de la procesor la memorie,
a celor 16 biţi de adresă se foloseşte o magistrală de adrese care are 16 linii, ca în figura următoare.
Aceste linii formează magistrala de adrese (mA) pe care sunt transmise către memorie coduri sau
"cuvinte" cu 16 ranguri: A15, A14, A13, A12, ..., A3, A2, A1, A0.
Magistrala de date este grupul de linii pe care se face schimbul de informaţii ale celor 2
entităţi ale tandemului procesor - memorie. Pentru a transporta în paralel (simultan) toţi cei 8 biţi
dintr-o locaţie, magistrala de date (mD) are opt linii.
Spre deosebire de mA, pe mD transmisia informaţiei se poate face în ambele sensuri:

PROCESOR → MEMORIE când procesorul "CITEŞTE" locaţia adresată

PROCESOR ← MEMORIE când procesorul "SCRIE" în locaţia adresată

Pentru a avertiza memoria despre intenţia de a scrie sau de a citi codul


existent la adresa respectivă procesorul foloseşte o a treia magistrală numită
magistrala de comenzi (mC) formată din cel puţin 2 linii: WR (write) şi RD
(read) ca în următoarea schemă a tandemului procesor-memorie:

mA
locaţia 1
procesor
mC …
…memorie… MEMORIE
CACHE M
mD

m RAM & ROM

locaţia N 23
Notaţiile din figură au următoarele semnificaţii:
ma - magistrala de adrese;
mC - magistrala de comenzi;
mD - magistrala de date;
M - memoria operativă;
RAM - random access memory;
ROM - read only memory;
m - memorie internă directă a procesorului (cache) formată din registre speciale şi registre
de serviciu (PC-ul, SP-ul, etc);

CIRCUITE LOGICE SECVENŢIALE ELEMENTARE. BISTABILI

Fie CLC-ul din figură cu intrările Ut şi Xt care la momentul t iau valori în B={0,1} şi
ieşirea Qt care la momentul t ia valori tot în {0,1}.
Ut
Qt = f(Ut, Xt)
CLC
Xt

În cazul CLC timpul nu intervine în comportarea logică a circuitului, ci numai valorile


logice ale intrărilor. Dacă, de exemplu, perechea X şi U au la momentul t valori care determină
trecerea lui Q din 1 în 0 se va considera că această trecere se face instantaneu. Această presupunere
nu influenţează interpretarea corecta a comportării CLC-lui. În realitate trecerea din 1 în 0 a lui Q
nu are loc instantaneu, ci treptat într-un interval de timp mic, dar totuşi finit. Acest proces de
coborâre începe la un moment anterior lui t pe care îl notăm t-1 şi se termină la t.
Circuitul logic secvenţial (CLS) se obţine dintr-un CLC prevăzut cu cel puţin un circuit de
reacţie. Prin reacţie se înţelege o conexiune (circuit) prin care semnalul de ieşire este aplicat la una
din intrări. În aceste condiţii, ieşirea Qt va depinde nu numai de intrare ci şi de valoarea ieşirii la
momentul precedent, ca în figura următoare în care făcând Xt=Qt-1 rezultă Qt=f(Ut, Qt-1), în care f
este funcţia logică a CLC-ului cu care s-a realizat CLS-ul.

Ut
CLC Qt=f(Xt, Qt-1)

reacţie

CLS

24
Un asemenea circuit, la care ieşirea Q la momentul t (notată Qt) depinde de Qt-1 (care
exprimă valoarea lui Q la momentul t-1 se spune că are proprietate de memorare.

PROPRIETATEA PRINCIPALĂ ŞI DEFINIŢIA BISTABILULUI

Bistabilul este un CLS elementar cu 2 stări stabile (Qt=0 şi Qt=1). Trecerea dintr-o stare în
alta se poate comanda prin intermediul semnalelor de intrare.
Proprietatea principală a bistabilului: Bistabilul are cel puţin o valoare a intrării
(intrărilor) pentru care Qt=Qt-1. Nu este interzisă neunivocitatea ca 2 valori diferite ale aceloraşi
intrări să provoace aceeaşi stare Qt. Regula este: "la intrări diferite ieşiri diferite". Principalele
circuite bistabile au denumiri şi reprezentări acceptate la nivel mondial. Tipurile cele mai uzuale de
bistabili sunt: RS; JK; D; T. Reprezentarea unui bistabil se face prin: Simbol, tabel de stare şi
expresia ecuatiei de stare respectiv a funcţiei logice Qt=f( ) care-i descrie funcţionarea şi care se
deduce din tabelul de stare a bistabilului dat.

BISTABILUL RS

Semnalele de intrare: SET notat cu S şi RESET notat cu R. Operaţia de "setare" a


bistabilului semnifică aducerea în 1 a ieşirii acestuia, iar "resetarea" semnifică aducerea ieşirii lui
în 0.
Tabelul de stare descrie funcţia de ieşire Qt=f a cărui domeniu de definiţie este
{0,1}x{0,1}=BxB şi care ia valori în {0,1,Qt-1}:
intrări ieşire
St Rt Qt
linia 1: memorare → 0 0 Qt-1
linia 2: resetare → 0 1 1
linia 3: setare → 1 0 1
linia 4: interzisă → 1 1 1

Redefinirea funcţiei de
intrări ieşire ieşire şi conversia tabel de stare →
Qt-1 St Rt Qt tabel de adevăr:
0 0 0 0 MEMORARE
1 0 0 1
0 0 1 0 RESETARE
1 0 1 0
0 1 0 1 SETARE
1 1 0 1
0 1 1 1 INTERZISĂ
1 1 1 1

Deoarece Qt-1 ia valori tot în {0,1} se poate scrie Qt : BxBxB→{0,1}. Aceasta conduce la
următorul tabel de adevăr al CLS-ului:

25
Diagrama K-h a bistabilului RS este următoarea:

SR
Qt- 00 01 11 10
1 0 0 0 1 1
1 1 0 1 1

În acest tabel se pot forma 2 grupuri: GR 1 de 4 celule cu a+b=2 căruia i se ataşează 3-2=1
variabile adică numai S; GR 2 de 2 celule cu a+b=1 căruia i se ataşează un produs de 3-1=2
variabie Qt-1(~R). Astfel rezultă ecuaţia de stare a bistabilului RS:
Qt  St  Qt 1 Rt
Aplicând deMorgan se obţine:
Q t  S t  Q t 1 R t
Folosind încă o data deMorgan se obţine funcţia care permite implementarea numai cu AND-uri şi
NON-uri:
Q t  Q t  S t  Q t 1 R t

Simbolul de reprezentare în schemele logice ale circuitelor de calcul mai complexe, în


care RS-ul este un element component, este un pătrat cu 2 intrări (R şi S) şi 2 ieşiri (Q şi ~Q) astfel:

R Q

S ~Q

Observaţie: pentru simplificarea scrierii, în continuare se va omite indicele t la variabilele


R, S, J, K, D, T şi Q.

BISTABILUL JK

Tabelul de stare JK:


J K Q
0 0 Qt-1
0 1 0
1 0 1
1 1 Q t 1
Se observă că intrarea de setare este acum J, iar cea de resetare este K şi se mai observă că
a fost eliminată starea de neunivocitate (pe linia 4 din tabelul de stare a RS-lui). Se poate constata
că substituind în ecuaţia RS-lui pe S şi pe R cu

S=J(~Qt-1)

26
R=KQt-1
se obţine o ecuaţie care satisface tabelul de stare al JK-lui. Deci aceasta este ecuaţia de stare a JK-
lui:
Q=J(~Qt-1)+( ~K)Qt-1
Din cele de mai sus rezultă că CLS-ul care implementează ecuaţia de stare a RS-lui se poate
construi în jurul unui RS la care se adaugă nonAND pentru formarea lui R=KQt-1 respectiv a lui
S=J(~Qt-1) prin introducerea a 2 reacţii suplimentare una după Q şi alta după ~Q, ca în următoarea
schemă logică a JK-lui.

Q
K

J Q

Simbolul JK-lui este similar cu cel al RS-lui cu deosebirea că R şi S sunt înlocuite cu K respectiv J.

BISTABILUL D (delay)

Acest bistabil are doar o intrare D şi o ieşire Q, care repetă intrarea: Q=D.
Tabelul de stare este:
D Q
0 0
1 1
Ecuaţia de stare rezultă din cea a JK-lui prin înlocuirea J=D şi K=~D. După înlocuire
rezultă Q=D(~Qt-1 + Qt-1) în care paranteza este =1. Aceasta demonstrează că CLS-ul care
implementează un bistabil D se poate obţine dintr-un JK prin aplicarea unui semnal D la borna de
intrare J şi a celui negat nonD la borna de intrare K. Semnalul de intrare apare la ieşire cu
întârzierea inerentă oricărui circuit fizic şi deci Qt+1=Dt fapt pentru care se numeşte "delay".

BISTABILUL T (trigger)

27
Acest bistabil are o singură intrare notata T şi următorul tabel de stare:
T Q
0 Qt-1
1 ~Qt-1
Dacă în ecuaţia JK-lui se face J=K=T rezultă ecuaţia care satisface tabelul de stare dat şi
prin urmare aceasta reprezintă ecuaţia de stare a bistabilului T:
Q=T(~Qt-1)+(~T)Qt-1 '
Rezultă astfel că CLS-ul de implementare a bistabilului T conţine un JK cu intrările legate
între ele la care se aplică T.
Simbolul este tot un dreptunghi cu o singură bornă de intrare T şi 2 de ieşire: Q şi ~Q.

CLS pentru CELULA DE MEMORIE DE 1 bit

CLS-ul are o ieşire E prin care se poate citi DATA de 1 bit memorată acolo anterior
momentului primirii prin mC a comenzii de READ de la procesor. Pe intrare celula trebuie să
poată primi 3 semnale binare provenite de pe cele 3 magistrale ale procesorului: un semnal de
adresă A; un semnal de intrare date I; un semnal de validarea scrierii W. Toate aceste semnale sunt
binare şi asigură comunicaţia cu procesorul prin cele 3 magistrale. Nucleul acestei celule poate fi
un RS comandat pe intrare cu S=A&I&W=AIW şi respectiv cu R=A&(~I)&W iar ieşirea celulei
E=Q&A unde Q este ieşirea RS-lui din centrul celulei.

Seminar 1

Calculatoare
(1) Variabile de comutaţie:

1 daca x = 1 sau y = 1,
sau x + y =
0 daca x = 0 si y = 0.

1 daca x = 1 si y = 1,
şi x * y =
0 daca x = 0 sau y = 0.

1 daca x = 1,
sau x =
0 daca x = 0.

28
Proprietăţi

1) x + 0 = x;
2) x + 1 = 1;
3) x * 0 = 0;
4) x * 1 = x;
5) x = x;
6) x + x = 1;
7) x * x = 0;
8) x (y + z)=xy + xz;
9) x + yz = (x + y)(x + z);
10) distributivitatea x(x + y) = xx + xy = x + xy;
11) x + xy = (x + x)(x + y) = x(x + y);
12) x + xy = x * 1 + xy = x(1 + y) = x * 1 = x.

Exemplu

x +xy = x + y

x + x y = (x + x )(x + y) = 1(x + y) = x + y

Să se demonstreze 9

Xyz x+yz (x+y)(x+z)


000 0
001 0
010 0
011 1
100
110
111

x( x + y) = xy
x x + xy = xy

xy + x z + yz = x y+ x z
xy + x z - yz*1 = xy + x z + (x + x )(yz) =
xy + x z + yzx + yz x = xy(1 + z) + x z(1 + y) =

29
xy + x z.

Să se calculeze complementarele funcţiilor:

( x + y)* t
x y=x+y Proprietatea
x  y= x y de Morgan

( x  y) * t  ( x  y)  t 
=( x +y)+ t = x +y+ t .

x  y  z  xy  ( x  y  z) * xy =(x+ y +z)* xy = (x+ y +z)( x + y )=


=x x + x y +z x +x y + y y +z y =
= y z +z x +x y + y +z y = y ( x +x+1+z)+z x = y +z x .

(2)

(x  z)t  x z  (x  z)t * x z
=[ ( x  z)  t ][ x  z ]=(x+z+ t )( x +z)=
x x  xz  t x  zx  zz  tz 
= xz  t x  zx  z  tz  x (z  t )  z( x   t ) 
x (z  t )  z  z( x  I )  xt  z  x t.

(a + c)(a + d)(b + c)(b + d) = ab + cd


(aa + ac + ad + cd)(bb + cb + bd + cd) =
(a(1 + a + cd) + cd)(b(1 + c + d) + cd) = (a * 1 + cd)(b * 1 + cd) =
=(a + cd)(b + cd) = ab + acd + cbd + cd = ab + cd.

Temă
1) (a  b)(a  c)  ab  ac ;
2) (a  b * c)(ac  b)  ab  bc

30
Să se simplifice:

1)
f (x, y)  xy  xy  y(x  x)  y

2)
f (x, y, z)  xz  xzy  z(x  xy)  z[(x  x)(x  y)]  z(x  y)  zx  zy

3)
f ( x, y, z)  xyz  x yz  xyz  xy z  x yz  xy (z  z)  x y(z  z)  xyz  xy  x y  xyz 
y( x  xz)  x y  y( x  z)  x y  xy  yz  x y.

Temă

f ( w , x, y, z)  xy  wy  wx  xyz
f ( w , x, y, z)  ( yz  w )  w  yz  wx

Să se afle complementarele   simplificare:

f ( w, x, y, z)  ( wx * w )(wx * x )  ( wx * w )  ( wx * x ) 
( wx  w )  ( wx  x )  ( wx  w )  ( wx  x )  w  x

Temă

Complementare şi simplificare:

f (w, x, y, z)  (x y  wz)(w x  yz)

Tabela de adevăr şi să se considere formulele Σ mintermeni şi produsul de maxtermeni


pentru funcţii şi pentru complementarele lor.
f (x, y)  (x  y) * xy
xy f
00 0
01 1
10 1
11 0

31
f1 (x, y)  xy  x y sumă de produse
f1 (x, y)  (x  y)(x  y) produs de sume
f1 (x, y)  x y  xy
f1 (x, y)  (x  y)(x  y)  x y  xy.
f (x, y, z)  xy  x y  yz

xyz f
000 0
001 1
010 0
011 0
100 1
101 1
110 1
111 1

Σ mintermeni

f ( x, y, z)  xyz  xyz  xyz  xyz  xyz.


f ( x, y, z)  ( x  y  z)( x  y  z)( x  y  z).
f ( x, y, z)  ( x * y * z)  (zyx)  ( xyz)
f ( x, y, z)  ( x  y  z)( x  y  z)( x  y  z)( x  y  z)( x  y  z)

Pentru acasă:

f3 (w, x, y, z)  w x * y  x yz tabela

1)
(a  b)(a  c)  a a  ac  ab  bc  a  ac  ac  bc 
a (1 + c) + ab  bc  a  ab  bc  a (1 + b) + bc = a + bc [ab + a c]

2)
(a  bc)(ac  b)  ab  bc
a ac  ab  abcc  bbc  ab  bbc  ab  bc.

32
3)
f (w, x, y, z)  xy  wy  wx  xyz
f (w ,x, y, z) =xy(1 + z)  wy  wx  xy  wy  wx  (w  w)xy  wy  wx 
 wxy  wxy  wy  wx  wy (x + 1) + wx (1 + y) = wy  wx.

4)
( yz  w)  w  yz  wx  yz* w  w  yz  wx  yzw  w  yz  w  yz

5)
(wx * w)(wx * x)  (wx * w)  (wx * x)  wx  w  wx  x  wx  w  x

6)
(x y  wz)(w x  yz)  (w y  wz)  (w x  yz)  xyzw  x yz w

7)
f (x, y, z, w)  w xy  x yz

xyzw f
0000 0
0001 0
0010 0
0011 0
0100 0
0101 1
0110 0
0111 1
1000 0
1001 0
1010 1
1011 1
1100 0
1101 0
1110 0
1111 0

f ( x, y, z, w )  xyzw  x yz w  xyzw  x yzw  xyw(z  z)  x yz( w  w ) 


 xyw  x yz
a
x1 a
f b b
x2
g
x3
x4 g
e c

d
33
Valoarea cifrei afişate este dată de x1,…,x4 interpretată ca ……?….. binar. Să se determine
minimizatele corespunzătoare funcţiilor a şi g.

x1 x2 x3 x4 cifra a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 1 0 1 1 0 0 0 0
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9 0 0 0 0 0 1 0

 
a  x1  x 2  x 3  x 4  x1  x 2  x 3  x 4 

x1x2
x3x4 00 01 11 10

00 1 0 - 1

01 0 1 - 1

11 1 1 - 1

10 1 1 - -

pentru a

34
x

y
xy  x y
M
x y  xy

x x
y y
f = xy + wz cu NAND: f f
z z
w w

xy  wz  xy  wz  xy  wz  ...
3xNAND

Cod binar – cod Gray

Proprietate: două numere succesive diferă printr-un singur bit.

cod binar cod Gray


x3 x2 x1 x0 y3 y2 y1 y0
0 - 0 0 0 0 - 0 0 0 0
1 - 0 0 0 1 - 0 0 0 1 binar Gray
2 - 0 0 1 0 - 0 0 1 1
3 - 0 0 1 1 - 0 0 1 0
4 - 0 1 0 0 - 0 1 1 0
5 - 0 1 0 1 - 0 1 1 1
6 - 0 1 1 0 - 0 1 0 1 Gray binar
7 - 0 1 1 1 - 0 1 0 0
8 - 1 0 0 0 - 1 1 0 0
9 - 1 0 0 1 - 1 1 0 1
10 - 1 0 1 0 - 1 1 1 1
11 - 1 0 1 1 - 1 1 1 0
12 - 1 1 0 0 - 1 0 1 0
13 - 1 1 0 1 - 1 0 1 1
14 - 1 1 1 0 - 1 0 0 1
15 - 1 1 1 1 - 1 0 0 0

35
Calculatoare

y  Ai  Bi  suma
T  Ai * Bi  transport

Ai Bi Ti 1 Si Ti
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

AiBi

Ti-1 00 01 11 10

0 0 1 0 1 pt. Si

1 1 0 1 0

AiBi

Ti-1 00 01 11 10

0 0 0 1 0 pt. Ti

1 0 1 1 1

S i  Ai Bi Ti 1  Ai Bi Ti 1  Ai Bi Ti 1  Ai Bi Ti 1
Ti  Ti 1 Bi  Ai Bi  Ai Ti 1
S i  ( Ai Bi  Ai Bi )Ti 1  ( Ai Bi  A1 Bi )Ti 1  ( Ai  Bi )Ti 1  ( Ai  Bi )T i 1
S i  STi 1  STi 1

Introduceti valorile Ti in tabela:

36
Ai Ai
Bi 0 1 Bi 0 1

0 Ti 1 Ti 1 Ti 1
0 0

1 Ti 1 Ti 1 Ti 1
1 1

Si Ti

S i  Ti 1 ( Ai B i  Ai Bi )  T i 1 ( Ai B i  Bi Ai )  ( Ai  Bi )Ti 1  ( Ai  Bi )T i 1
Ti  Ti 1 ( Ai  Bi )  Ai Bi

Se implementeaza sumatorul complet in functie de schema sumatorului

37
Circuite MSI

- Sumatorul de 4 biti paraleli( 7483);


- Decodificator 74154( 4:16);
- Multiplexorul 74150, 1, 3, 5, 7.

Sumator in zecimal codificat binary( ZVB)


pp. reprezentarea fiecarui rang al unei cifre zecimale in binary. Rangul se reprezinta pe o
tetrada( 4 biti).

  0001
0110unitati
16 ZCB

  0110
0001zeci

16 binar
  00010000

16

ZCB 
 Binar  valoarea _ unitatilor

reprezentarea nr. In ZCB este necesara cand avem iesiri din circuit pe tuburi

Sumator complet paralel de 4 biti( 7483)

Pentru numere mai mari de 9 este necesara corectie; pentru nr.<=9 nu este
necesara.

0000-----------------------------------------0
-
-
1001-----------------------------------------9
1010(B)  0001 0000 ZCB
1 0
1010

0110
10000

38
Sumele corectate
Sumele necorectate
Tc T
S C3 S C 2 S C 1 S C 0 S3 S2 S1 S0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 1
0 0 0 1 0 0 0 0 1 0
0 0 0 1 1 0 0 0 1 1
0 0 1 0 0 0 0 1 0 0
0 0 1 0 1 0 0 1 0 1
0 0 1 1 0 0 0 1 1 0
0 0 1 1 1 0 0 1 1 1
0 1 0 0 0 0 1 0 0 0
0 1 0 0 1 0 1 0 0 1
A 0 1 0 1 0 0 1 0 1 0
B 0 1 0 1 1 0 1 0 1 1
C 0 1 1 0 0 0 1 1 0 0
D 0 1 1 0 1 0 1 1 0 1
E 0 1 1 1 0 0 1 1 1 0
F 0 1 1 1 1 0 1 1 1 1

T  TC  S C3 S C2  S C3 S C1
S  S C 6

C4 7483

C0

S C3 SC 2
S C1 S C0

C4 7483

C0

S 3 S 2 S1
S0

39
T  0
 0000
T  1
 0110

celula elementara de adunare 2 unitati zecimale reprezentate in ZCB devine

Decodificatorul 4:16

2 4 combinatii pentru marimi de intrare prestabilite


16 pentru functiile de iesire

IA IB IC ID CE O0 O1 O2 -------------------------- OF

0 0 0 0 0 0 1 1 1
0 0 0 1 0 1 0 1 1
0 0 1 0 0 1 1 0 1
0 0 1 1 . 1 1 1 1
0 1 0 0 . 1 1 1 1
0 1 0 1 . 1 1 1 0

40
0
1
2
.
IA .
IB .
IC .
ID F

Strobe= 0 Enable
1Deseable

Tema : Sa se implementeze functia :

y  x yz

f x, y, z   xy  x y  x yz  y  x yz

Utilizand decodificatorul 3:8. Indicatie: in cazul codificatoarelor implementarea cu acest tip


de … este utila cand avem un numar mare de functii de iesire si un numar relative mare
de mintermeni.

Calculatoare

Să se indice succesiunea de stări în f(CLK)

41
DA  QB Q C  QC Q B
DB  Q A
DC  QB

s. curentă s. următoare
D Q(t+1)
Q A QB QC Q A QB QC 0 0
111 011 1 1
011 001
001 100
100 …
… …

J A  QB
K A  QB
J B  QA
KB  Q A

Q A QB Q A QB
00 10
10 01
01 00

42
A B C

J A  QC J B  QA J C  QB

K A  QC KB  Q A KC  Q A

Q A QB QC Q A QB QC
000 100
100 111

TC  I1  I 2
TB  I1QC  I 2 Q C
TA  I1QC  I 2 Q C 
 ERROR

I 1  1; Q A QB QC Q A QB QC
Se consideră
I 2  0. 000 001
001 …
… …

T Q(t+1)
0 Q(t)
1 Q(t)

43
Să se realizeze… unul de tip D şi unul de tip T.

JK Q(t+1)
00 Q(t)
01 0
10 1
11 Q(t)

D (K)
D (J)
Q 0 0
Q 0 0
0 * *
0 0 1
0 1 0
0 * *

f (J )  D
f (K )  D

T (J)

T (K) Q 0 1
Q 0 1 0 0 *
0 0 1
1 0 1
1 * *

J=T
K=T

T Q(t+1)

0 Q(t) J K Q(t+1)
1 Q(t ) 0 0 Q(t)

44
0 1 0

1 0 1
1 1 Q(t )

Să se proiecteze un circuit monoimpuls folosind ASM

Q0 Q0
Q1 0 1 Q1 0 1

0 IA 0 A B

1 1 C -

Q0
Q1 0 1

0 0 1

1 IA -

45
Q0
Q1 0 1

0 IA 0

1 0 -

Q1 (t  1) Q0 (t  1)

Q0 (t  1)  Q 0 IAQ1
Q1 (t  1)  Q0  IAQ1

Q0
Q1 0 1

0 0 1

1 0 *

MI= Q0

D1  Q0  I A Q1
D0  IAQ 0 Q1

Q0 Q0

Q1 0 1 Q1 0 1

0 0 1 0 * 1

1 * * 1 IA *
J1 K1

J 1  Q0
K 1  0.

Q0

Q1 0 1

46
Q0

Q1 0 1

0 IA 0 0 * 1

1 * * 1 1 *
J0 K1

J 0  IAQ 0
K0  1

Calculatoare

Numarător sincron cu succesiunea stărilor.

000
100
110
111
011
000

Q0 Q1
Q2 00 01 11 10

0 A - C B

1 - E D -

47
QC QB
QA 00 01 11 10

0 0 - 1 0

1 - 0 1 -

QC QB
QA QC QB
00 01 11 10
QA 00 01 11 10
0 0 - 1 1
0 1 - 1 1
1 - 0 1 -
1 - 0 0 -

DC  Q A

tranziţia j k
0
 0 0 *
0
1 1 *
1
 0 * 1
1
1 * 0

QC QB JA QC QB JB
QA QO

0 - 1 0 0 - * 1

- * * - - * * -

48
1 - * *
- * * -

QC QB KA KB
QA
* - * * * - 0 *
- 1 0 - - 1 0 -

* - 1 0
- * 1 -

J A  QB J B  QC JC  QB
K A  QC K B  QC K C  QA

Numarător sincron reversibil cu JK, 4 stări: - I 1 comandă descrescătoare;


- I 2 comandă creascătoare.

49
QB
QA 0 1

0 A C

1 B D

b JA
a 0 1

0 I1  I 2 *

1 * *
Ja

b KA
a 0 1

0 * I1  I 2

1 I1  I 2 I1  I 2
KB

I 2  I 2 I1  I 2  I1
I 2  I 2 I1  I 2  I1

J A  I1  I 2
K A  I1  I 2

b b KB
a 0 1 a 0 1

0 I 2 I1 * I 2 I1
0 *

1 I2 * I2
1 *

50
J B  I 2 I1 a  I 2 a
K B  I 2 I1 a  I 2 a

2. CSS cu y1, y2 sinc. Şi Q1 si Q2. Pt. Y1Y2….

51
Realizarea circuitelor de comutatie combinationale cu circuite integrate de tip
LSI

O memorie ROM (memorie permanenta) este un dispozitiv care contine atat


decodificatorul cat si portile SAU necesare pentru realizarea unor functii de comutatie.
Fixarea conexiunilor intre iesirile decodificatorului si intrarile portilor SAU deci fixarea
functiilor de comutatie realizate de un astfel de dispozitiv se face prin “programarea”
memoriei. Inregistrarea informatiei intr-o memorie ROM (programarea memoriei) se face
prin fabricatie sau in cazul memoriilor PROM cu ajutorul unui dispozitiv special numit
“programator de PROM-uri”.Schema bloc a unei memorii ROM este:

2n  m
n intrari ROM m iesiri

Memoria are n intari. Fiecare combinatie de valori a semnalelor de intrare se numeste adresa.
Fiecare combinatie de valori a semnalelor de iesire se numeste cuvint. Numarul de biti intr-un
cuvant este n fiind egal cu numarul de iesiri. Fiecare adresa reprezinta de fapt un mintermen
realizat cu cele n semnale de intrare. Un cuvant este selectat de o adresa unica si este format din
valorile functiilor de comutatie implementate pentru combinatia de valori reprezentata de adresa
respective. Deci vor exista 2n cuvinte memorate in ROM. Valorile obtinute la un moment dat la
iesirile memoriei reprezinta cuvintul selectat de adresa aplicata la intrarile circuitului. Sa
consideram de exemplu o memorie de 2 2  2 ROM. Structura interna echivalenta a unei astfel de
memorii este:

Decodificator00
A0 2 la 4 01
A1 10
11

F1 F2

52
Prin stabilirea legaturilor intre iesirile decodificatorului si intrarile portilor SAU se
stabilesc funtiile realizate de catre acest circuit combinational. Sa consideram de exemplu
implementarea functiilor: f1 ( x, y)  xy  x y si f 2 ( x, y)  x y  x y . Se observa ca structura
interna echivalenta a memoriei ROM trebuie sa devina

Decodificator00
A0 2 la 4 01
A1 10
11

F1 F2

In general implementarea unor functii de comutatie cu ajutorul unei memorii PROM


parcurge urmatoarele etape:
- in functie de numarul de functii care se realizeaza se stabileste lungimea
minima a cuvantului de memorie;
- in functie de numarul de variabile pentru functiile de comutatie
implementate se stabileste numarul minim de intrari;
- pe baza lungimii minime a cuvantului si a numarului de intrari se allege un
anumit tip de circuit ROM;
Se observa ca B0  A0 si B1  0 si deci este necesar sa se realizeze numai un
circuit combinational care sa utilizeze functiile B5 , B4, B3 , B2 . Rezulta ca se poate
utiliza o memorie PROM cu urmatoarea tabela da adevar.

A2 A1 A0 F1 F2 F3 F4
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 1
0 1 1 0 0 1 0
1 0 0 0 1 0 0
1 0 1 0 1 1 0
1 1 0 1 0 0 1
1 1 1 1 1 0 0

53
Utilizarea memoriilor ROM (PROM) pentru implementarea functiilor de comutatie
este avantajoasa atunci cand se realizaeza un numar relativa mare de functii de
comutatie cu un numar mare de variabile de intrare.

Sa incercam sa utilizam insa 6 memorii de tip ROM pentru realizarea conversiei de


la codul utilizat pentru reprezentarea caracterelor pe cartele perforate la un cod de tipul
celor pentru reprezentarea numerelor in calculatoarele numerice (ASCII). Codul utilizat
pentru reprezentarea caracterelor pe cartelele perforate utilizeaza 12 valori binare (biti),
fiecare valoare fiind asociata unei linii de pe cartela. Codurile utilizate pentru
reprezentarea caracterelor in calculatoarele numerice sunt coduri care utilizeaza 8 biti.
Rezulta ca o memorie ROM utilizata pentru o astfel de aplicatie ar trebui sa fie de tipul
4096 x 8 ( 212  4096 ). Dintre cele 4096 de cuvinte din memorie sunt utile numai 47 (26
litere, 10 cifre, 11 semne speciale), celelalte cuvinte sunt associate unor adrese
(combinatii de valori ale semnalelor de intrare) care nu vor fi aplicate niciodata la intrarea
circuitului, cu alte cuvinte sunt combinatii de valori pentru care functiile de comutatie
realizate de circuit sunt nespecificate. Rezulta deci o utilizare foarte ineficienta a
memoriei. Intr-o astfel de situatie se poate utiliza pentru implementarea functiilor de
comutatie. Un alt tip de circuit integrat de tip LS si anume circuite integrate de tip PLA. Un
circuit PLA este foarte asemenator ca structura echivalenta cu o memorie ROM. Diferenta
consta din faptul ca in locul decodificatorului apar o serie de porti si, fiecare putind sa
produca un produs de variatie in forma directa sau complementata. Fixarea termenilor
produsi de portile SI ( …. Intrarilor aplicate portilor SI) si a conexiunilor de comutatie
realizate de catre PLA. Schema bloc echivalenta a uni PLA cu n intrari si M iesiri este:

Se observa ca cele n intrari se vor aplica in forma directa sau complementata la


intrarile portilor SI in functie de conexiunile fixate la intrarile portilor SI, iar pentru fiecare
poarta SAU se utilizeaza toate cele x iesiri de porti SI sau numai o parte din ele. La iesirile
circuitului se obtine fiecare functie implementate in forma directa daca se utilizeaza iesire
directa de la poarta SAU corespunzatoare sau in forma complementata daca se utilizeaza
iesirea unei porti NU legata la iesirea portii SAU corespunzatoare.
Tipul circuitului PLA este dat de numarul de intrari, numarul de porti SI si numarul de iesri.
Un exemplu tipic de circuit PLA are 16 intrari, 48 de porti SI, 8 iesiri.
Ca si in cazul memoriilor ROM fixarea functiilor realizate se obtine in fabricatie sau
prin "programare" cu ajutorul unor dispozitive speciale (in acest caz circuitele PLA sunt de
tip FPLA).
Utilizaera circuitelor PLA este avantajoasa in cazul implemantarii unui numar mare
de functii de comutatie cu un numar mare de intrari, daca numarul de combinatii de valori
pentru care toate functiile sunt nespecificate este suficient de mare.
Peantru a ilustra tehnicile utilizate pentru implementarea cu ajutorul circuitelor de tip PLA
vom prezenta din considerente didactice un exemplu mai simplu care nu respecta conditia
precizata anterior. Fie functiile de comutatie de 3 variabila f1 si f2 reprezentate
de urmatoarele tabele Karnaugh.

54
xy
z 00 01 11 10

0 0 0 1 0

1 0 1 1 0

Xy
Z 00 01 11 10

0 0 0 0 0

1 1 1 1 0

f1 ( x, y, z )  xz  yz f 2 ( x, y, z )  xy  yz

Cele doua functii se pot realiza prin utilizarea unui PLA cu 3 intrari, 3 porti SI si
doua iesiri, configurat in modul urmator:
x

Specificarea modului de implemantare pentru un PLA nu se face bineinteles


desenand structura echivalenta. Se construieste o tabela speciala pentru programarea
circuitului PLA. Aceasta tabela este formata din doua tipuri de intrari:
intrari care descriu produsele realizate de catre fiecare poarta SI
si intrari care descriu sumele realizate de catre fiecare poarta SAU.
Se observa ca pentru fiecare poarta SI exista n intrari (corespunzatoare fiecarui
semnal de intrare), fiecare intrare poate avea valorile 1,0,-.

55
Daca o variabila se conecteaza direct (complementat) valoarea intrarii este 1(0), daca o
variabila m se conecteaza la poarta respectiva valoarea este "-". Se observa ca pentru
fiecare poarta SAU exista x intrari (corespunzatoare fiecarei porti SI), fiecare intrare poate
avea valoarea 1 sau -. Daca iesirea portii SI se conecteaza la intrarea portii SAU, cu alte
cuvinte produsul respectiv participa la formarea sumei atunci valoarea intrarii este 1, altfel
este ****. Pentru fiecare iesire de poarta SAU se precizeaza daca preluarea se face in
forma directa sau complementara.

Se considera si urmatorul exemplu. Sa se cinstruiasca o realizare cu PLA pentru


functiile de comutatie definite de urmatoarele tabele Karnough:

xy
z 00 01 11 10

0 1 0 0 1

1 1 0 1 0

Xy
Z 00 01 11 10

0 0 0 1 0

1 0 1 1 1

f1 ( x, y, z )  xy  yz  xz f 2 ( x, y, z )  x y  y z  xyz
F1 ( x, y, z )  x y  x z  y z F2 ( x, y, z )  y z  x y  x yz

Se observa ca numarul minim de produse diferite pentru cele doua functii se obtine
daca se
alege pentru f1 forma complementata, iar pentru f2 forma directa. Implementarea necesita
un PLA cu 3 intrari, 4 porti SI si 2 iesiri. Tabela pentru programarea PLA-ului este:

56
porti SI Porti SAU
intrari intrari
produs x y z f1 f 2
xy 1 0 0 - 1 1
xz 2 0 - 0 1 -
yz 3 - 0 0 1 1
xyz 4 1 1 1 - 1

57