Sunteți pe pagina 1din 21

2. NOTIUNI INTRODUCTIVE

In prezentarea sistemelor cu microprocesoare, anumite elemente de baza sunt folosite cu precadere, si este necesara cunoasterea lor, ca un punct de pornire, ca un bagaj minim de cunostinte, pentru intelegerea aspectelor legate de aceste sisteme (structura, functionalitate, principii de proiectare si realizare). In acest sens, doua categorii de notiuni de baza trebuiesc cunoscute, ai anume elemente de aritmetica calculatoarelor, si elemente de logica, corelate cu tipurile uzuale de circuite logice TTL (circuite integrate SSI 1 - porti, bistabile, etc., cat si circuite integrate MSI 2 - registre, multiplexoare, decodificatoare, circuite PLD 3 , etc.).

Prezentul paragraf va face o trecere in revista a celor mai importante aspecte relativ la aceste elemente.

2.1 ARITMETICA NUMERELOR INTREGI

Un sistem de calcul cu microprocesor trebuie sa aiba anumite capacitati de calcul, putand sa implementeze cele patru operatii aritmetice fundamentale, de adunare, scadere, inmultire si impartire. Daca fiinta omeneasca efectueaza aceste operatii in sistemul zecimal de numarare, un microprocesor este prin structura sa o masina binara, toate informatiile sunt memorate in cod binar, iar operatiile ce se desfasoara in ea se efectueaza deasemenea in sistemul binar de numarare. Deasemenea, sistemele hexazecimal si (uneori) octal, sunt utilizate la listarea programelor, astfel incat inginerul ce doreste proiectarea si/sau utilizarea unei asemenea masini trebuie sa fie familiarizat cu o varietate de sisteme de numarare. Totodata, interfatarea cu utilizatorul uman presupune adeseori preluarea de date in format zecimal, (tastaturi, console) si, dupa prelucrare, prezentarea rezultatelor deasemenea zecimal (afisaje, listinguri, etc.). Astfel, sunt necesare uneori operatii in cod BCD in interiorul microprocesorului, si deci sunt necesare tehnici de conversie binar-BCD si reciproc.

Sub o forma generala, reamintim ca un numar reprezentat in baza b de numarare, avand n

cifre supraunitare (a n-1 , a n-2 , valoarea in baza 10 data de relatia

, a -m ), va avea

, a 0 ), si m cifre subunitare (a -1 , a -2 ,

(N) 10 = a n-1 ×b n-1 + a n-2 ×b n-2 +

+ a 1 ×b 1 + a 0 ×b 0 + a -1 ×b -1 +

+ a -m ×b -m

1 SSI - Simple Scale Integrated = integrate pe scara simpla

2 MSI - Medium Scale Integrated = integrate pe scara medie

3 PLD - Programable Logic Device = circuit logic programabil

BAZELE MICROPROCESOARELOR

Astfel, de exemplu, numarul binar (1011.11) 2 va avea in baza 10 valoarea

(N) 10 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 + 1 2 -1 + 1 2 -2

= 8 + 0 + 2 + 0.5 + 0.25 =

11.75 10

Deoarece toate masinile de calcul existente opereaza cu elemente de circuit cu doua stari (de tipul tranzistor in stare saturat sau blocat, avand la iesire doua nivele de tensiune continua distincte - tipic 0V, respectiv 5V), sistemul binar de reprezentare a informatiei este unicul prezent in toate aceste sisteme de calcul). Starea de saturare a tranzistorului (0 0.4) V, este asociata valorii binare 0, iar starea de blocare (2.4 5) V, este asociata valorii binare 1.

Metodologia practica a conversiei numerelor dintr-o baza de numarare in alta este presupusa cunoscuta, si nu se mai prezinta aici. Trebuie totusi mentionate ca fiind deosebit de importante cazurile, uzual utilizate in cadrul sistemelor numerice, dupa cum s-a mentionat, de conversie directa intre sistemele binar si octal, respectiv binar - hexazecimal. Aceste conversii sunt prezentate tabelat in figurile 2.1, si respectiv 2.2.

Octal

Binar

 

0 000

1 001

2 010

3 011

4 100

5 101

6 110

7 111

Hexa

Binar

Hexa

Binar

0

0000

8

1000

1

0001

9

1001

2

0010

A

1010

3

0011

B

1011

4

0100

C

1100

5

0101

D

1101

6

0110

E

1110

7

0111

F

1111

Fig.2.1. Conversia octal - binar

Fig. 2.2. Conversia hexazecimal - binar

Conversia dintr-o baza intr-alta in acest mod se va face utilizand direct reprezentarile din cele doua tabele. Astfel, de exemplu:

Conversia binar ® octal se efectueaza prin gruparea a cate trei cifre binare, incepand din dreapta numarului, si inlocuire cu echivalentul octal corespunzator.

(

110 001 011 100 ) 2

 

Ø

Ø

Ø

Ø

(

6

1

3

4

) 8

(

4

3

2

7

) 8

 

Ø

Ø

Ø

Ø

(

100

011

010

111

) 2

Reciproc, pentru conversia octal ® binar, se procedeaza in mod similar:

Se inlocuieste fiecare cifra octala cu cei trei biti din codul binar corespunzator.

La fel se procedeaza si pentru conversiile hexazecimal « binar:

(

1011 1010 0011 0010 ) 2

 

(

4

F

C

2

) 16

 

Ø

Ø

Ø

Ø

respectiv

Ø

Ø

Ø

Ø

(

B

A

3

2

) 16

( 0100

1111

1100 0010 ) 2

NOTIUNI INTRODUCTIVE

In interiorul masinilor numerice, numerele sunt reprezentate prin grupe de cifre binare. Aceste grupe de cifre binare sunt numite cuvinte. Lungimea cuvintelor pe care le poate prelucra un microprocesor constituie o caracteristica importanta a acestuia, reprezentand, dupa cum s-a mai precizat, un indiciu pretios in aprecierea capacitatii de calcul a sistemului. Sunt tipice cuvinte cu o lungime de 4, 8, 16 sau 32 de biti. Un cuvant de 8 biti se mai numeste si octet sau, in terminologia tehnica consacrata, byte. Cuvintele microprocesoarelor sunt memorate in registre. Un registru poate fi implementat cu un sir de circuite bistabile, fiecare dintre acestea putand fi considerat ca un bit de memorie. Din punct de vedere functional, o masina numerica poate fi privita ca un sistem format din registre, iar datele sunt transferate dintr-un registru in

altul in cursul efectuarii operatiilor aritmetice si logice. Acesta este evident un mod simplificat

de

a prezenta lucrurile, dar poate da o imagine de baza asupra a ceea ce se intampla.

In

ceea ce priveste operatiile aritmetice de baza, acestea se bazeaza pe regulile specifice,

caracteristice operatiilor respective. Regulile depind de tipul numerelor: intregi fara semn; intregi cu semn; numere in reprezentare BCD; numere fractionare.

Nu este locul si nici cazul de a prezenta algoritmii specifici de implementare a acestor operatii, pentru fiecare caz in parte. Se vor face doar unele consideratii si remarci, legate de specificul implementarii acestor operatii in sistemele numerice.

2.1.1 Aritmetica numerelor intregi, pozitive (fara semn).

In cazul adunarii (sau scaderii, echivalenta in cazul reprezentarii numerelor in complement

fata de 2), trebuie remarcata problema aparitiei depasirilor (overflow), sau a imprumuturilor (borrow), daca suma sau diferenta nu este reprezentabila intr-un cuvant de date (de exemplu, suma a doua numere reprezentate pe 8 biti, care adunate dau un rezultat peste 256, va necesita 9 biti pentru reprezentare corecta). Data fiind lungimea finita a cuvintelor de date in microprocesor, operatia de adunare sau de scadere va trebui sa semnalizeze suplimentar efectuarii calculului, aparitia acestui bit de depasire; altfel, daca rezultatul este considerat pe 8 biti, se pierde chiar bitul cel mai semnificativ, alterandu-se rezultatele si obtinandu-se cu totul alte valori decat cele corecte. De exemplu, o asemenea situatie apare in cazul urmator:

 

2

7

2 6

2 5

2 4

2 3

2 2

2 1

2 0

1

1

0

1

1

0

1

1

+

0

1

0

0

0

1

1

0

1

0

0

1

0

0

0

0

1

Depasire

O situatie similara poate aparea in cazul scaderii, daca descazutul este mai mare decat

scazatorul (apare un bit de imprumut).

In ceea ce priveste inmultirea, trebuie remarcat ca rezultatul inmultirii a doua numere

reprezentate pe cate un cuvant de date se va reprezenta pe doua cuvinte de date. In general,

BAZELE MICROPROCESOARELOR

inmultirea unui numar reprezentat pe m biti cu un numar reprezentat pe n biti (intregi, fara bit de semn), conduce la obtinerea unui rezultat reprezentat pe (m+n) biti. O situatie aparte va aparea la impartirea a doua numere, cand trebuie sesizata si semnalizata incercarea de impartire la zero, al carei rezultat nedeterminat poate conduce la efecte imprevizibile asupra comportarii sistemului.

Trebuie remarcat ca practic toate microprocesoarele au implementate in setul de instructiuni operatiile de adunare si de scadere. Doar unele microprocesoare au in setul de instructiuni operatiile de inmultire (si eventual, de impartire). In cazul absentei acestora din setul de instructiuni al microprocesorului respectiv, implementarea lor se face prin program, pe baza operatiilor elementare de adunare si a celor logice.

Ca o remarca generala, cuvintele de date de 8 biti vor putea contine valori numerice pozitive intre 0 si 255 (2 8 - 1). Cuvintele de date pe 16 biti vor putea contine valori intre 0 si 65535 (2 16 - 1).

2.1.2 Aritmetica numerelor intregi, cu semn

O posibilitate de distingere a numerelor pozitive de cele negative intr-un calculator, este de a folosi un bit suplimentar, pentru codificarea semnului. Prin conventie, bitul cel mai semnificativ (din stanga), este asociat semnului numarului: daca acest bit este 0, numarul este considerat pozitiv; daca este 1, numarul este negativ. Evident, in aceste cazuri, pentru cuvinte de date cu lungime data, plaja de valori numerice ce pot fi reprezentate difera de cazul numerelor intregi fara bit de semn. Astfel, intr-un octet se vor putea reprezenta numere intregi intre -128 si +127.

Cea mai simpla posibilitate de reprezentare a numerelor cu semn, care este insa practic nefolosita, deoarece ingreuneaza implementarea operatiilor de calcul aritmetice, este cea care utilizeaza bitul de semn si modulul numarului. Astfel, de exemplu in aceasta reprezentare:

- 23 10 = 1 , 0010111 2 iar + 23 10 = 0 , 0010111 2

Practic in totalitatea cazurilor se utilizeaza reprezentarea numerelor cu semn in forma complementara, ceea ce favorizeaza in mod decisiv implementarea hardware a operatiilor aritmetice cu aceste numere. Exista doua tipuri de reprezentare:

(1) complement fata de 2 (2's complement); (2) complement fata de 1 (1's complement).

Deoarece reprezentarea in complement fata de 1 ridica anumite probleme, procesarile cu

numere

Calculul

complementului fata de doi, pentru un anumit numar X, reprezentat pe n biti, va fi:

cu

semn

se

fac

cu

numere

reprezentate

in

complement

fata

de

2.

NOTIUNI INTRODUCTIVE

[X] 2 = 2 n - X

Astfel, prin reprezentarea complementului fata de doi al unui numar, se obtine reprezentarea binara a opusului acestui numar (deci [X] 2 = - X). De exemplu, fie X = 6 10 = 0110 2 , n=4. Calculand complementul fata de doi al acestui numar, se obtine reprezentarea pentru -X = -

6 10 , data de

[X] 2 = 2 4 - 0110 = 10000 - 0110 = 1010

Practic, se utilizeaza urmatoarele metode, pentru obtinerea complementului fata de 2 al unui numar:

(a)

se inverseaza toti bitii numarului, si se aduna 1 la cel mai putin semnificativ bit.

 

De exemplu, fie:

X = 0110

X

inversat va fi

1001

se

aduna 1

1

Rezultat:

[X] 2 = 1010

(b)

se lasa neschimbate cifrele din numar pana la primul 1, inclusiv (de la dreapta la stanga),

inversandu-se celelalte cifre.

 

De exemplu, fie

X = 0 1 1 0 æ ˆ ı se inverseaza Ô raman nemodificate

æ

[X] 2 = 1 0 1 0

In aceste conditii, un numar reprezentat pe un cuvant de lungime data in complement fata de 2, va avea implicit 1 bit de semn (bitul cel mai semnificativ - bitul din stanga), si reprezentarea propriu-zisa pe ceilalti biti. Astfel,

+ 19 = 0 , 0010011

ˆ

æææ

bit de semn

ı valoarea X > 0

¯ ˜ 2's complement al valorii X < 0

- 19 = 1 , 1101101

De remarcat ca plaja valorilor astfel reprezentabile (pe un octet de la -128 la +127) este nesimetrica.

Adunarea si scaderea in aceasta reprezentare vor da intotdeauna rezultate corecte, cu conditia evidenta de a nu aparea depasiri ale limitelor de reprezentare (overflow = depasire superioara, sau borrow = imprumut). In ceea ce priveste inmultirea, se prefera convertirea numerelor la valoarea pozitiva (modul), inmultirea intre numerele pozitive, si corectia finala in functie de semnul rezultatului, dedus separat din analiza semnelor celor doi termeni.

BAZELE MICROPROCESOARELOR

Daca se utilizeaza frecvent numerele in reprezentare zecimala - si corespunzator BCD, la citirea/scrierea numerelor dinspre / spre exteriorul sistemului, implementarea operatiilor aritmetice cu numere in reprezentare BCD nu este usor de realizat. Complicatiile pe care le presupune implementarea acestor operatii conduc de obicei la preferarea urmatoarei scheme

de lucru: reprezentare BCD ® reprezentare binara propriu-zisa ® calcule ® conversie in

reprezentarea BCD a rezultatului.

2.1.4 Aritmetica numerelor fractionare

O valoare fractionara subunitara poate fi reprezentata in cuvantul de calculator prin simpla

mutare a virgulei la extremitatea din stanga a cuvantului de date. Aceasta este echivalent, de exemplu pentru un cuvant de 8 biti, cu impartirea numarului intreg reprezentat pe cuvantul de

8 biti, prin 256. Astfel, numarul continut de reprezentarea respectiva, va fi X = 0 . x

+ x 0 2 -8 . Daca numarul

x 0 . Valoarea zecimala a numarului este [X] 10 = x 7 2 -1 + x 6 2 -2 +

contine doar cifre de 0, valoarea corespunzatoare este N = 0.00000000 = 0/256 = 0. Daca toti bitii x 7 la x 0 sunt 1, valoarea corespunzatoare este N = 0.11111111 = 255/256 = 0.99609375.

7

x 6

Consideratii similare cazului numerelor pozitive se vor face pentru reprezentarea numerelor

cu

semn, utilizand reprezentarea in cod complementar fata de doi.

O

remarca speciala trebuie facuta in ceea ce priveste precizia reprezentarii numerelor

fractionare. Cu exceptia cazurilor cand valoarea fractionara poate fi reprezentata exact pe cuvantul de date, uzual nu se poate reprezenta o marime fractionara exact pe un numar dat de biti (exista, de exemplu, doar 256 de valori numerice intre 0.0 si 1.0, reprezentabile exact pe 8 biti). In rest, reprezentarea valorilor fractionare se va face prin introducerea unei erori, care poate fi de trunchiere (se neglijeaza bitii suplimentari din reprezentarea cu precizie peste lungimea cuvantului de date), sau de rotunjire (se ajusteaza numarul, in functie de valoarea partii eliminate, la valoarea cea mai apropiata de reprezentarea exacta).

Evident, operatiile aritmetice cu numere fractionare vor implica erori suplimentare, de calcul.

In cazul inmultirilor, trebuie remarcat ca rezultatul va fi intotdeauna subunitar; reprezentarea

rezultatului pe un cuvant de date va conduce insa intotdeauna la o eroare de trunchiere sau de rotunjire a rezultatului.

2.2 ELEMENTE DE LOGICA CIRCUITELOR NUMERICE

In afara capacitatii de a efectua operatii aritmetice, un microprocesor poate fi programat sa

implementeze operatii logice ca AND, OR, XOR, NOT, etc. Totodata, elemente logice (porti), sunt utilizate ca parti componente ale sistemului microcalculator. Vom prezenta in cele ce urmeaza o trecere in revista a principiilor logicii booleene ce sta la baza regulilor de functionare a acestor circuite, cat si comportarea celor mai utilizate elemente logice intalnite uzual intr-un sistem microcalculator.

NOTIUNI INTRODUCTIVE

2.2.1 Logica booleana

Iata in primul rand rememorate relatiile de echivalenta ale algebrei booleene, care stau la baza analizei / proiectarii functionarii acestor circuite si / sau operatii logice:

 

(a)

Postulate

 

x

=

0 daca

 

x

1

;

x

=

1 daca

x

0

0

=

1

;

1 = 0

 

0

0

=

0

;

1

+

1

= 1

1

1

=

1

;

0

+

0

=

0

1

0

= 0

;

0

+

1

=

1

+

0

=

1

(b) Teoreme cu o singura variabila

x

+

1

=

1

;

x

0

=

0

(element nul)

x

+

0

=

x

;

x

1

=

x

(identitate)

x

+

x

=

x

;

x

x

=

x

(idempotenta)

x

+

x

=

1

;

x x

=

0

(complement)

x

=

x

(involutie)

 

(c)

Teoreme cu 2 sau 3 variabile

 

x

x

 

+

+

y

=

(x y)

y

 

+

=

x ;

x ;

x

x

y

=

y

x (comutativitate)

(x y) = x (absorbtie)

(x

 

+

y)

y

=

x y

 

;

(x

y)

+

y

=

x

+

y

x

x + y + z

y

z

=

=

(x

x + (y + z)

y)

z

=

x

=

(y

(x + y) + z ;

z)

(asociativitate)

(x y)

+

(x z)

=

x (y +

z)

 

(x + y) (x + z) (y + z)

 

=

(x + y) (x + z) ;

 

(x

+ y) (x + z)

=

x

+ (y z)

 

(distributivitate)

 

(x

+ y) (x + z)

=

(x z)

+

(x y)

 

;

(x

y)

+

(x z)

+

(y z)

 

=

(x y)

+

(x z)

 

(consens)

 

(d)

Teoreme cu n variabile

 

(x

y

z

)

=

x + y + z +

;

(Teoremele De Morgan)

 

_

f (

x 1

,

x 2

,

,

x n

)

=

[

x 1

f(1,

x 2

, ,

x n

)]

+

[

x 1

f (0, x

2

, ,

x n

)]

;

 

_

f ( x

1

,

x 2

,

,

x n

)

= [

x 1

+

f (0,

x 2

, ,

x n

)] [

x 1

+ f(1, x

2

, ,

x n

)]

(teoremele expansiunii)

(x + y + z+

)

=

x

y

z

BAZELE MICROPROCESOARELOR

2.2.2 Porti logice

Figura 2.3 prezinta structura unei porti TTL (Tranzistor Tranzistor Logic) ce implementeaza o functie NAND cu 2 intrari.

+5V 160 4.7k 1k Intrare A Iesire B C 470
+5V
160
4.7k
1k
Intrare
A
Iesire
B
C
470

Fig.2.3. Structura si tabela logica a unei porti TTL de tip NAND cu doua intrari

logic 1: (2.4 ¸¸5) V logic 0: (0 ¸¸0.4) V

Intrare

Iesire

A

B

C

1

1

0

1

0

1

0

1

1

0

0

1

Tabela logica a portii TTL

Similar se vor implementa si alte functii logice elementare. Cele mai utilizate porti TTL sunt:

AND, OR, NAND, NOR, XOR, si Ex NOR. Figura 2.4 prezinta tabelele de adevar ale celor 6 tipuri de porti (se considera cazul a cate 2 intrari pe poarta) (fig.2.4.a), si simbolurile asociate (fig.2.4.b). Cercurile mici, ce apar la iesirea portilor NAND, NOR, si NOR exclusiv reprezinta negatii, indicand de exemplu, ca o poarta NAND poate fi considerata ca o poarta AND, a carei iesire este negata (inversata).

A

B

AND

OR

NAND

NOR

XOR

Ex-

         

NOR

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

1

0

0

1

1

0

1

0

1

1

1

1

0

0

0

1

1 0 1 0 1 1 1 1 0 0 0 1 B A f=AB AND

B A f=AB

AND

1 0 1 1 1 1 0 0 0 1 B A f=AB AND B A

B A f=AB

NAND

1 1 1 0 0 0 1 B A f=AB AND B A f=AB NAND B

B A f=A+B

OR

0 0 0 1 B A f=AB AND B A f=AB NAND B A f=A+B OR

A B f=A+B

NOR

A

B

1 B A f=AB AND B A f=AB NAND B A f=A+B OR A B f=A+B

XOR

A B
A B

Ex-NOR

f=A

+
+

B

f=A

.
.

B

Fig.2.4. Porti logice simple uzuale: (a) tabele de adevar (b) simboluri

NOTIUNI INTRODUCTIVE

A

NOTIUNI INTRODUCTIVE A f=A "1" (a) A f 0 1 1 0 A f = A

f=A

"1"

(a)

A f 0 1 1 0
A
f
0
1
1
0
A f = A 1 = A
A f = A 1 = A
A f=A "1" (a) A f 0 1 1 0 A f = A 1 =

A f = A+0 = A

(a) A f 0 1 1 0 A f = A 1 = A A f

(b)

Fig.2.5. Poarta inversoare

Sunt circuite cu schema si diagrama de functionare prezentate in figura 2.5.a.

Este posibila obtinerea unui inversor si prin utilizarea unor porti de tip NAND sau NOR, ca in figura 2.5.b. Trebuie remarcat ca legarea pinilor portii NAND la "1", respectiv pentru poarta NOR la "0", este obligatorie, fiind interzisa lasarea neconectata a acestor terminale (caz in care pot aparea fenomene de functionare aleatoare a portilor). O alta posibila solutie este si aceea de a conecta semnalul de intrare la ambii pini de intrare ai uneia dintre cele doua porti (NAND sau NOR), ceea ce conduce insa la cresterea (dublarea) incarcarii pe semnalul de intrare.

2.2.4 Reprezentari logice alternative

A

B

A

B

A

B

f=AB (a)
f=AB
(a)

f=A+B2.2.4 Reprezentari logice alternative A B A B A B f=AB (a) (b) f=AB (c) A

Reprezentari logice alternative A B A B A B f=AB (a) f=A+B (b) f=AB (c) A

(b)

f=ABlogice alternative A B A B A B f=AB (a) f=A+B (b) (c) A B A

logice alternative A B A B A B f=AB (a) f=A+B (b) f=AB (c) A B

(c)

A

B

A

B

A

B

Se pot obtine reprezentari alternative

echivalente ale portilor logice, prin

aplicarea teoremelor De Morgan functiilor implementate de catre aceste De Morgan functiilor implementate de catre aceste

f=A+B

NAND va fi va fi

f=A B

circuite. Astfel, ecuatia unui circuit

f=A + BNAND va fi f=A B circuite. Astfel, ecuatia unui circuit A deci poarta NAND se poate

va fi f=A B circuite. Astfel, ecuatia unui circuit f=A + B A deci poarta NAND

A

deci poarta NAND se poate echivala cu o

poarta OR, avand intrarile negate

(v.fig.2.6.a). Similar, pentru o functie NOR se va scrie

f

=

A B

=

+

B

,

A

B

f=A+Bpentru o functie NOR se va scrie f = A B = + B , A

o functie NOR se va scrie f = A B = + B , A B

(d)

A

B

f=A BNOR se va scrie f = A B = + B , A B f=A+B (d)

NOR se va scrie f = A B = + B , A B f=A+B (d)

Fig 2.6. Reprezentari logice alternative pentru portile logice

f

=

A + B =

A B ,

deci ca o functie AND cu intrarile negate (v.fig. 2.6.b). Relatii similare se pot obtine si pentru portile AND, OR, etc.

Se poate utiliza oricare dintre reprezentarile uneia dintre porti, in schema unui circuit. Totusi, cele doua reprezentari ale unei porti au interpretari diferite. Astfel, pentru poarta NAND de exemplu (fig. 2.6.a), in prima reprezentare, se poate spune ca iesirea devine de nivel logic 0, cand toate intrarile sunt la nivel logic 1; cea de-a doua reprezentare sugereaza ca iesirea devine 1, daca oricare dintre intrari este la nivel logic 0. Prima reprezentare se va utiliza cand iesirea este uzual la nivel 1, dar devine activa pe nivel logic 0. Se spune ca iesirea este activa pe nivel logic 0 (active low). Reprezentarea alternata va fi utilizata cand starea de activare a portii este 1 logic la iesire (active high). Similar se vor interpreta si celelalte porti si reprezentarile lor echivalente.

BAZELE MICROPROCESOARELOR

2.2.5 Poarta tri-state

Poarta tri-state (cu trei stari) reprezinta o componenta importanta in sistemele microprocesor. Exista atat tipuri de circuite tri-state inversoare, cat si neinversoare. Figura 2.7 prezinta tabela de adevar si reprezentarea simbolica a circuitului tri-state (neinversor in fig. 2.7.a, inversor in fig. 2.7.b).

E

A Out A E Out x 0 High z 0 1 0 1 1 1
A
Out
A
E
Out
x
0
High z
0
1
0
1
1
1

(a)

E

A Out A E Out x 0 High z 0 1 1 1 1 0
A
Out
A
E
Out
x
0
High z
0
1
1
1
1
0

(b)

Fig.2.7. Poarta tri-state neinversoare (a) si inversoare (b).

Utilizarea multor elemente de circuit cu iesiri tri-state este datorata posibilitatii de a avea starea de mare impedanta la iesirea circuitului. Aceasta permite

decuplarea semnalului de iesire de intrarea circuitului.

Astfel, iesirile mai multor circuite tri-state pot fi

conectate impreuna, nivelul logic pe iesirea comuna

fiind dictat de circuitul activat (cu semnalul de selectie E=1) la un moment-dat. Detalii suplimentare referitor la functionarea circuitelor tri-state si utilizarea acestora in sistemele cu microprocesoare se vor prezenta in capitolul urmator.

2.2.6 Bistabilul de tip D

Bistabilul D este cel mai utilizat in sistemele cu microprocesoare ca element de memorie de 1

bit (mai rar se utilizeaza si bistabile de tip T, SR, sau JK). Circuitul are doua stari stabile, avand reprezentarea conventionala si tabela de

D Clk
D
Clk

Q

Q

D

t

Q

t

Q

t+ddt

0

0

0

0

1

 

0

1

0

 

1

1

1

 

1

adevar din figura 2.8. Se remarca faptul ca

Q t+

d t

=

(D Q

+

D

Q)

t

=

D

t

,

ceea ce reprezinta ecuatia caracteristica a

bistabilului D, indicand faptul ca iesirea de la momentul t+dt urmareste valoarea intrarii D la momentul t. Transferul este controlat de catre

semnalul Clk. Exista doua categorii de bistabile D, din punctul de vedere al controlului transferului datei prin intermediul semnalului Clk.

Fig. 2.8. Bistabilul D

Un prim tip este bistabilul D activ pe front. In acest caz, valoarea semnalului de la intrarea D este transmisa la iesirea Q, la trecerea semnalului Clk din starea 1 in starea 0 (ca in figura 2.9.a), deci pentru front descrescator, sau la trecerea semnalului Clk din starea 0 in starea 1 (ca in figura 2.9.b), deci pentru front crescator (se remarca din figura 2.9 si simbolurile utilizate in aceste cazuri pentru circuitul respectiv).

NOTIUNI INTRODUCTIVE

D Q Q Clk 1 Clk 0 1 D 0 1 Q 0
D
Q
Q
Clk
1
Clk 0
1
D
0
1
Q
0

(a)

D Q Q Clk 1 Clk 0 1 D 0 1 Q 0
D
Q
Q
Clk
1
Clk 0
1
D
0
1
Q
0

(b)

Fig.2.9. Bistabilul D cu inscriere pe front.

Un alt tip este bistabilul D D Q D Q activ pe nivel. In acest
Un alt tip este bistabilul D
D
Q
D
Q activ pe nivel. In acest caz, pe
Q
Q
Clk
Clk
perioada nivelului activ al
semnalului Clk (1 in cazul din
figura 2.10.a, respectiv 0 in
1
1
Clk 0
Clk 0
1
cazul din figura 2.10.b),
iesirea Q urmareste variatiile
intrarii D. La dezactivarea
1
D
0
D
0
semnalului Clk, iesirea Q
1
1
Q
0
Q
0
(a)
(b)
Fig.2.10. Bistabilul D cu inscriere pe nivel.
ramane in ultima stare in care
a fost (vezi figura 2.10). A se
remarca din nou simbolurile
utilizate pentru circuite in
aceste cazuri.

Mai trebuie remarcata prezenta uzuala a inca 2 semnale de comanda ale bistabilului D, asincrone, servind la setarea sau resetarea circuitului. Sunt semnale asincrone, uzual active pe nivel 0. Figura 2.11 prezinta simbolul bistabilului si tabela de adevar in acest caz. De remarcat ca este interzisa valoarea 0, simultana, a celor doua semnale

S (set - inscriere) si R (reset - stergere) .

S D Q Clk Q
S
D
Q
Clk
Q

R

Clk

S

R

Q

*

1

1

* (operare normala)

X

0

1

1

X

1

0

0

X

0

0

- (interzis)

Fig. 2.11.Utilizarea semnalelor asincrone de Set si Reset.

BAZELE MICROPROCESOARELOR

D D Bistabilele de alte tipuri se pot converti J Q S Q usor la
D
D
Bistabilele de alte tipuri se pot converti
J
Q
S
Q usor la o comportare similara
Clk
Clk
K
Q
R
Q
Fig.2.12. Conversia bistabilelor JK sau RS in bistabile D
bistabilului D. Figura 2.12 prezinta
modul de conversie al bistabilelor de tip
JK, respectiv RS, in bistabile de tip D.

In

ceea ce priveste functionarea bistabilului, trebuiesc respectate anumite restrictii la evolutia

in

timp a semnalelor D si Clk. Astfel, datele trebuiesc sa fie stabile cu cel putin un interval de

timp t su (v.figura 2.13), inainte de tranzitia semnalului de ceas. t su se numeste timp de stabilire (setup time), si uzual are valori cuprinse intre 5 si 50 de nanosecunde.

De asemenea, datele trebuie sa fie stabile cel putin o perioada t h (timp de mentinere -hold time), dupa tranzitia semnalului de ceas (uzual intre 0 si 10 ns), v.fig.2.13. De multe ori, se

specifica in catalogul produsului, si latimea minima a semnalului de ceas (t w - pulse width), si

frecventa maxima a ceasului, f m . De remarcat in figura 2.13, ca intervalele de timp se masoara de la 0.5 din amplitudinea semnalelor. Bineinteles, exista intotdeauna o intarziere intre tranzitia

semnalului de ceas, si modificarea nivelului iesirii, numita intarziere de

propagare (propagation delay), a bistabilului. Intarzierile respective (la tranzitii ale Q de la 0 la 1, respectiv de la 1 la 0), sunt date de catalog ale circuitului, la fel ca si cele referitoare la semnalele de setare si resetare.

o

1 Clk t 0 w 1 D 0 t su t h Fig. 2.13. Caracteristici
1
Clk
t
0
w
1
D
0
t su
t h
Fig. 2.13. Caracteristici temporale ale semnalelor
de intrare ale bistabilului

2.2.7 Registre.

Registrele reprezinta o componenta fundamentala in orice microcalculator. Insusi microprocesorul contine un numar de registre. Deasemenea, circuitele de memorie pot fi privite ca niste matrici de registre, iar unele dintre porturile de I/E ca registre.

Un registru consta dintr-un sir de bistabile si este utilizat pentru a memora informatie binara (temporar sau permanent). Figura 2.14 prezinta o schema bloc a unui registru. Datele pot fi inscrise in registru prin semnalul de control WRITE, si raman inscrise pana la o inscriere ulterioara. Citirea datelor se va face oricand, prin activarea semnalului de citire (READ).

O operatie frecventa intr-un microprocesor este transferul paralel al datelor intre doua

registre. Figura 2.15 prezinta schema de principiu a acestei operatii. Incarcate initial in registrul A, datele sunt transferate in registrul B la aparitia semnalului TRANSFER pe linia de ceas a registrului B. De remarcat ca continutul registrului A este neschimbat, pana la o modificare ulterioara (stergere, incarcare cu alte date). Simbolic, vom reprezenta transferul continutului registrului A in registrul B prin relatia: T:(B) ¬¬(A). "La primirea semnalului de

NOTIUNI INTRODUCTIVE

control T, se transfera continutul registrului A in registrul B". Acest tip de registru este de tip PIPO 1 .

A7 A6 A0 D D 7A D 6A 0A Reg.A Clk
A7
A6
A0
D
D
7A
D 6A
0A
Reg.A
Clk
B7 B6 B0 D D D 7B 6B 0B Reg.B
B7
B6
B0
D
D
D
7B
6B
0B
Reg.B

Transfer

Fig. 2.14 . Schema bloc a unui registru

date iesire

Transfer Fig. 2.14 . Schema bloc a unui registru date iesire READ WRITE date intrare Fig.2.15.
Transfer Fig. 2.14 . Schema bloc a unui registru date iesire READ WRITE date intrare Fig.2.15.

READ

Fig. 2.14 . Schema bloc a unui registru date iesire READ WRITE date intrare Fig.2.15. Transferul
Fig. 2.14 . Schema bloc a unui registru date iesire READ WRITE date intrare Fig.2.15. Transferul

WRITE

2.14 . Schema bloc a unui registru date iesire READ WRITE date intrare Fig.2.15. Transferul de

date intrare

Fig.2.15. Transferul de date intre 2 registre

sistemele

al

Q datelor intre registre. De exemplu, figura 2.16 contine un asemenea registru cu transfer serial al datelor (realizat cu bistabile JK). Transferul unui bit de la

intrarea D pana la iesirea P a registrului va necesita in acest caz 8 semnale de ceas. Acest tip de registru se numeste SISO 1 . Figura 2.17 prezinta schema de realizare a transferului serial intre doua registre de cate 8 biti fiecare. De remarcat ca registrul A isi pastreaza continutul, prin recilcularea informatiei intre iesire si intrare. Durata transferului va fi evident de 8 pulsuri de ceas.

D J7 J6 K7 K6 Clk
D
J7
J6
K7
K6
Clk
J0 K0
J0
K0

P

O

alta

operatie

frecventa

in

microprocesor

este

transferul

serial

Fig. 2.16. Schema unui registru serial.

1 PIPO - Paralel Input Paralel Output = intrare paralela, iesire paralela

1 SISO - Serial Input Serial Output = intrare seriala, iesire seriala

BAZELE MICROPROCESOARELOR

S S Clk Reg. A Reg. B Clk 0 1 1 0 1 1 0
S
S
Clk
Reg. A
Reg. B
Clk
0
1
1
0
1 1
0
0
0
0
0 0
0
0
0
0
inainte de transfer
S
S
Clk
Reg. A
Reg. B
Clk
1
0
1
0
1 1
0
0
1
0
1 0
0
1
1
0

dupa transfer

Clk S S Clk
Clk
S
S Clk

Fig. 2.17 Transferul serial al datelor intre doua registre

Un tip uzual de registru utilizat in microcalculatoare este registrul de 8 biti de tip latch 1 , care utilizeaza bistabile D active pe front pozitiv, ca in figura 2.18. Datele de la intrare sunt transferate la iesirea registrului pe durata nivelului "1" al semnalului Clk, ramanand la valorile avute in momentul frontului cazator al semnalului de ceas. Semnalul asincron de stergere va trece la valoarea "0" toate iesirile registrului, simultan.

Q D Clk R
Q
D
Clk
R

Date intrare

iesirile registrului, simultan. Q D Clk R Date intrare D7 D0 Q0 Reg.Latch Q7 E D

D7

iesirile registrului, simultan. Q D Clk R Date intrare D7 D0 Q0 Reg.Latch Q7 E D

D0

Q0

Reg.Latch

Q7

simultan. Q D Clk R Date intrare D7 D0 Q0 Reg.Latch Q7 E D Q O
simultan. Q D Clk R Date intrare D7 D0 Q0 Reg.Latch Q7 E D Q O
E D Q O
E
D Q O
Date intrare E D7 D0 Clk Reg.Tri-State R Q7 Q0 R
Date intrare
E
D7
D0
Clk
Reg.Tri-State
R Q7
Q0
R

R

ClkO Date intrare E D7 D0 Clk Reg.Tri-State R Q7 Q0 R R Clk Date iesire

Clkintrare E D7 D0 Clk Reg.Tri-State R Q7 Q0 R R Clk Date iesire Date iesire

E D7 D0 Clk Reg.Tri-State R Q7 Q0 R R Clk Clk Date iesire Date iesire

Date iesire

Date iesire

Fig. 2.18. Registru de tip latch.

Fig. 2.19. Registru cu iesiri tri-state

Figura 2.19 prezinta un registru cu iesirile tri-state. Inscrierea datelor se face normal, dar iesirile O0¸¸O7 vor contine datele inscrise in registru doar la aplicarea semnalului de activare a circuitelor tri-state de la iesirea acestuia, prin semnalul de activare E.

2.2.8 Multiplexoare

Un multiplexor selecteaza o iesire din n intrari (n fiind uzual 4, 8, sau 16). Selectia liniei de iesire se face cu semnale de control. Figura 2.20 prezinta un asemenea multiplexor cu patru intrari (D0, D1, D2 si D3), si iesirea f (si negata sa). Liniile de control A si B si semnalul de activare E complecteaza circuitul. Din punct de vedere functional, multiplexorul poate fi privit ca un comutator cu mai multe pozitii, selectand una dintre ele la un moment dat (f, in figura

1 latch = agata

NOTIUNI INTRODUCTIVE

2.20,b). Implementarea schematica a circuitului este data in figura 2.20.c, obtinut prin sinteza functiei f conform expresiei

f

=

E

(A

B

D

0

+

A

B

D

1

+

A

B

D

2

+

A

B

D

3

Cand A=0, B=0 A B = 1, si se selecteza linia D0; cand A=0, B=1 A selecteaza D1, etc. Daca E=1, se inhiba operatia intregului circuit.

B

=

1, si se

Exista si circuite cu doua sau mai multe multiplexoare. Un circuit multiplexor poate fi privit ca un circuit care converteste informatia paralela de la intrare, intr-o forma seriala.

E D3 D3 Mux f D2 D1 4 la 1 f D2 D0 (a) A
E
D3
D3
Mux
f
D2
D1
4 la 1
f
D2
D0
(a)
A
B
D1
D3
D2
D0
f
D1
D0

(b)

f f (c) A E B
f
f
(c)
A
E
B

Fig. 2.20. Simbolul, schema functionala si schema logica a unui multiplexor 4 la 1.

2.2.9 Demultiplexoare si decodificatoare

O0 D DeMux O1 E O2 1 la 4 O3 A B
O0
D
DeMux
O1
E
O2
1 la 4
O3
A
B

Fig. 2.21. Demultiplexor 1 la 4

Un demultiplexor indeplineste functia opusa unui multiplexor. El poate fi utilizat la convertirea unui sir de

semnale numerice transmise serial, intr-o forma paralela. Diagrama bloc a acestui circuit este prezentata in figura 2.21. Linia de intrare D poate fi conectata la oricare dintre cele patru linii de iesire, prin semnalele de control A si B. Fiind posibile 4 combinatii distincte ale celor doua semnale de control A si B, circuitul va avea in acest caz patru linii de iesire. Astfel, pentru A=0, B=0, semnalul D este transferat la iesirea O0 (la activarea circuitului, prin semnalul E=0), etc.

Un decodificator este, in esenta, un demultiplexor fara intrari de date. El converteste un cod pe n biti in maxim 2 n iesiri individuale. Figura 2.22 prezinta diagrama bloc si tabela de adevar a unui decodificator 3 la 8. Iesirile decodificatorului sunt active pe 0.

BAZELE MICROPROCESOARELOR

Decodificatoarele sunt utilizate in sistemele microprocesor, servind la selectia cipurilor de memorie, a porturilor sistemului, etc. De exemplu, decodificatorul din figura 2.22 poate fi utilizat la selectia unuia din 8 cipuri de memorie, in functie de codul de selectie al liniilor de intrare, furnizat de catre microprocesor. Decodificatorul are o linie de activare. De multe ori, decodificatoarele sunt dotate cu mai multe linii de activare, (unele active pe nivel logic "0", altele pe nivel logic "1"), ceea ce mareste flexibilitatea acestor circuite.

O0 O1 O2 E Decod O3 O4 3 la 8 O5 O6 O7 A B
O0
O1
O2
E Decod
O3
O4
3 la 8
O5
O6
O7
A B
C

cod intrare

intrari iesiri E A B C O O O O O O O O 0
intrari
iesiri
E
A
B
C
O
O
O
O
O
O
O
O
0
1
2
3
4
5
6
7
1
X
X
X
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0

Fig.2.22. Schema si tabela de adevar a unui decodificator 3 la 8

Dintre circuitele MSI intalnite deasemenea in sistemele microprocesor mai mentionam encoderele (circuite complementare decodificatoarelor).

Probleme specifice sistemelor microprocesor sunt si cele legate de circuite de generare a semnalelor de paritate, comparatoare logice, circuite aritmetice, etc. Nu vom mai intra in detalii, care vor fi date, in masura necesitatii, la aparitia respectivelor circuite in sistemele ce vor fi prezentate, dupa caz.

2.2.10 Circuite logice programabile (PLD)

O categorie aparte de circuite logice, utilizate tot mai mult la sinteza unor parti componente de

logica combinationala si / sau secventiala, din cadrul sistemelor digitale, o reprezinta circuitele logice programabile (PLD - programable logic devices). In esenta, aceste circuite contin combinatii de porti logice "SI" (AND) si "SAU" (OR), inversoare (NOT), circuite tri-

state, si bistabile. Ele pot fi programate pentru a implementa functii logice specificate. Uzual, circuitele PLD sunt circuite cu o singura utilizare (se pot programa o singura data); exista mai nou si circuite PLD reprogramabile, utile in fazele de proiectare si testare a schemelor implementate. Gama de tipuri de asemenea circuite este destul de larga; uzual, sunt fabricate

in tehnologie CMOS bipolar.

NOTIUNI INTRODUCTIVE

In esenta, circuitele PLD implementeaza expresii booleene utilizand matrici (retele) de porti AND pe linii, conectate la porti OR pe coloane, iesirile PLD-ului fiind iesirile portilor OR.

Vom prezenta in continuare principalele tipuri de circuite PLD si caracteristicile lor de baza.

A A B B A B C C C Observatie (a) (b)
A
A
B
B
A B C
C
C
Observatie
(a)
(b)

Din motive de simplitate a schemelor, se utilizeaza

simbolic reprezentarea din figura 2.23.a, echivalenta cu schema din figura 2.23.b, pentru a indica conectarea unor semnale la intrarile unei porti (AND sau OR). Semnele (x), de la intersectia unei linii cu o coloana, indica prezenta unui fuzibil intact, care conecteaza semnalul de intrare la poarta logica AND (sau OR) de pe coloana respectiva. Initial, toate semnalele de intrare sunt conectate la toate portile circuitului (matricea are toate fuzibilele intacte). Prin programarea circuitului, se determina de fapt distrugerea unora dintre fuzibile, astfel incat in final, prin conexiunile care raman intacte, sa se sintetizeze functia logica dorita intre semnalul de intrare si cel de iesire. Fiecare combinatie a semnalelor de intrare care se aplica la intrarea unei porti AND (sau OR) a circuitului PLD, poarta numele de "product-term", sau "P-term" (v.fig. 2.23, coloana conectand semnalele A,

Fig. 2.23 Simboluri utilizate pentru descrierea circuitelor PLD.

B, C la intrarea portii AND).

2.2.10.1 Circuite PAL - Programable Logic Array

Sunt circuite care contin o matrice programabila de porti AND, conectate la o structura fixa cu porti OR (v.fig.2.24). Intre semnalele de intrare (A, B, C, D, E si F in exemplul din figura 2.24), se implementeaza pe baza matricii de conexiuni, combinatiile necesare pentru a

sintetiza functia logica dorita si a obtine semnalul de iesire (X in exemplul din figura 2.24). Dupa cum se remarca din figura 2.24, uzual sunt selectabile in matrice semnalele de intrare sau negatele lor. Deasemenea, un "P-term" poate fi tri-statat si se poate aplica sub forma de semnal de intrare in circuit. In figura 2.24 functia booleana implementata are expresia (dedusa usor din analiza schemei de conexiuni a semnalelor circuitului):

X

=

p + q + r + s

= ABCD + ABCD + EF

Circuitele PAL pot fi prevazute la iesire si cu registre, utilizabile pentru a sintetiza circuite secventiale.

BAZELE MICROPROCESOARELOR

linii P-term A B Fuzibil intreg C D E F X X s r p
linii P-term
A
B
Fuzibil intreg
C
D
E
F
X
X
s
r
p
q

Fig.2.24. Structura de principiu a unui circuit PAL

2.2.10.2 Circuite PROM - Programable Read Only Memory

Uzual circuitele PROM sunt incadrate si utilizate functional ca memorii cu continut nealterabil (fix), stocand coduri de program, seturi de tabele de date constante, etc. Totusi, este posibila si uneori convenabila utilizarea lor si in proiectarea circuitelor logice. Astfel, structura interna a unui circuit PROM este o retea fixa de porti AND si o retea programabila de porti OR. Figura 2.25 prezinta structura unui PROM cu trei semnale de intrare (adrese) - A, B, C, si trei semnale de iesire (practic, este un circuit de memorie cu 8 celule de cate 3 biti fiecare). Pentru fiecare combinatie a semnalelor de intrare (adresa), se selecteaza in mod unic o combinatie a semnalelor P0 la P7 (reprezentand 8 P-term ficsi). Corespunzator acestuia, prin programarea retelei OR, se genereaza semnalele O/P0, O/P1 si O/P2. (De remarcat ca fiecare semnal de iesire poate reprezenta o combinatie a mai multor P-term, ceea ce nu se intampla la circuitele PAL). Pentru exemplul din figura 2.25, semnalele de iesire au expresiile:

O

/

P0

= P0 + P2

= CBA + CBA

O

/ P1

=

P2 + P4

= CBA + CBA

O

/ P2 = P3 + P4 + P5 = CBA + CBA + CBA

NOTIUNI INTRODUCTIVE

A
A

B

C

NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    
NOTIUNI INTRODUCTIVE A B C P0   P1 P2 P3 P4 P5 P6 P7    

P0

 

P1

P2

P3

P4

P5

P6

P7

 
 
     
   
     
   
         
     
   
       
       
   
       
       
   
   
   
   
   

O/P0

O/P1

O/P2

linii P-term fixe

Fig.2.25. Schema de principiu a unui circuit PROM utilizat pentru sinteza functiilor logice

2.2.10.3 Circuitele FPLA - Field Programable Logic Array.

Circuitele FPLA reprezinta primele tipuri de circuite PLD. Contin retele programabile atat pentru portile AND cat si pentru cele OR. La fel ca si circuitele PAL, pot contine si circuite tri- state pentru conectarea iesirilor la intrari, cat si registre pentru implementarea circuitelor secventiale. Circuitele FPLA sunt mai flexibile decat circuitele PAL sau PROM, dar mai lente decat acestea. Mai mult, deoarece se prefera uzual proiectarea cu retele AND sau cu retele OR (deci utilizand doar unul dintre cele doua tipuri), ele nu sunt neaparat utilizate la capacitatea lor maxima. Figura 2.26 prezinta structura unui circuit FPLA, sintetizand semnalele:

linii P-term

A B C D P0 P1 P2 P3 O/P0 O/P1 O/P2
A
B
C
D
P0
P1
P2
P3
O/P0
O/P1
O/P2

Fig.2.26. Schema de principiu a unui circuit FPLA

BAZELE MICROPROCESOARELOR

P0 = A B, O/P0 = P2,

P1 = B C D,

O/P1 = P0+P1+P3,

P2 = A B D ,

P3 = C D O/P2 = P2+P3

2.2.10.4 Circuitele EPLD - Erasable PLD.

Circuitele PLD din prima generatie au utilizat tehnologia bipolara, cu fuzibilele din reteaua programabila care odata distruse nu mai puteau fi refacute. Acum, exista circuite PLD realizate in tehnologia circuitelor EPROM, deci reprogramabile. Astfel, ele pot fi programate, testate si, daca este necesar, reinitializate (prin expunere la radiatii ultraviolete), si reprogramate. Aceste circuite sunt foarte utile in etapa de dezvoltare a unui produs nou, cand este uzuala modificarea, iterativa, a structurii circuitului, pana la implementarea solutiei finale. Evident, pretul acestor circuite este sensibil mai ridicat decat la circuitele cu o singura utilizare (sunt realizate in capsula ceramica, nu de plastic, sunt prevazute cu o fereastra de cuart, pentru stergerea informatiei, prin radiatii ultraviolete).

Mai trebuie specificat ca unele circuite PLD evoluate sunt prevazute la iesire cu structuri complexe, numite "macrocelule" (v.fig.2.27), care inlocuiesc circuitele OR si bistabilele, cu structuri flexibile, ce pot fi programate in diverse configuratii. Astfel, iesirile pot fi programate sa fie active high sau low, se pot utiliza semnalele de iesire direct sau ca semnale de intrare, intrarile asincrone ale registrelor pot fi programate, si chiar tipul registrului poate fi setat (D, SR, T sau JK).

I/O set multiplexor Q selectie D iesiri clk Q reset MUX control multiplexor reactie iesiri
I/O
set
multiplexor
Q
selectie
D
iesiri
clk
Q
reset
MUX control
multiplexor
reactie iesiri
MUX control

de la reteaua AND

multiplexor reactie iesiri MUX control de la reteaua AND catre reteaua AND Fig.2.27. Structura de principiu

catre reteaua

AND

iesiri MUX control de la reteaua AND catre reteaua AND Fig.2.27. Structura de principiu a unei

Fig.2.27. Structura de principiu a unei "macrocelule" a unui circuit PLD evoluat

2.2.10.5 Circuite PLS - Programable Logic Sequencer

Acestea reprezinta circuite PLD optimizate pentru utilizarea in sinteza circuitelor secventiale complexe (masini de stare - state machines). Au o structura de baza similara cu cea a circuitelor FPLA (deci retele programabile AND si OR), si bistabile incorporate pentru memorarea variabilelor de stare. Ca un exemplu, circuitul PLS167 are 6 bistabile SR, 48 P- term, si o retea OR programabila.

Pentru sinteza functiilor logice si programarea circuitelor PLD, se utilizeaza diverse programe si limbaje specializate, uzual specifice pentru anumite familii de circuite PLD. Acestea

NOTIUNI INTRODUCTIVE

faciliteaza munca proiectantului de circuite, transpunand proiectarea de la sinteza schemelor logice propriu-zise, la elaborarea functiilor (expresiilor) logice ce se vor implementa. Pe baza descrierii facute de catre utilizator, programul genereaza comenzile de programare a circuitului PLD, ce implementeaza structura descrisa functional de catre utilizator. Tehnici speciale si programele aferente sunt deasemenea disponibile pentru a se converti scheme existente, la care este uneori dificila sinteza functiei logice aferente, in scheme cu functionalitate similara, implementate cu circuite PLD.

In concluzie, reprezentand instrumente moderne de lucru, circuitele PLD capata o tot mai mare raspandire in proiectarea si implementarea sistemelor digitale. Proiectarea la nivel logic, posibilitatile de simulare, testare, flexibilitatea (la circuitele reprogramabile), compactitatea solutiei finale, sunt caracteristici deosebit de atractive pentru proiectantul acestor sisteme. In plus si din punct de vedere economic, aceste circuite se dovedesc de cele mai multe ori o alternativa viabila la structurile logice sintetizate cu componente logice discrete "clasice". Daca strategia abordata initial in proiectarea circuitelor logice era de a se minimiza la maximum schemele implementate, se poate arata ca la ora actuala, la preturile curente ale componentelor existente, este mai importanta minimizarea numarului global de circuite integrate folosite. Se poate ajunge ca, de exemplu, o solutie continand doar cateva circuite MSI complexe, chiar daca in final foloseste un procent relativ scazut din capacitatea circuitelor respective, sa fie mult mai ieftina decat o solutie optimizata la maximum, dar implementata cu circuite logice conventionale (porti, bistabile, etc.)