Você está na página 1de 47

Universitatea Aurel Vlaicudin Arad Facultatea de Inginerie

Conf. dr. ing. Marius M Bla

Electronic digital
- Curs pentru uzul studen ilor -

1. Circuite digitale

1.1. Elemente de algebr boolean


1.1.1. Definirea axiomatic a algebrei booleene
Matematicianul englez George Boole (1815-1864) a pus bazele algebrei logice, care opereaz cu propozi ii despre care se poate afirma c sunt adevrate sau false. Fiind dat o mul ime M compus din cel pu in 2 elemente, se pot defini aplica ii de forma f: M M M , numite legi de compozi ie interne sau opera ii. Avnd 2 opera ii notate cu + i , mul imea M i cele 2 opera ii vor forma o structur algebric numite latice dac oricare ar fi x, y, z elemente ale lui M, vor fi respectate urmtoarele legi: 1o Comutativitatea: 2o Asociativitatea: 3o Idempoten a: 4o Absorb ia: x+y=y+x xy=yx (x + y) + z = x + (y + z) (x y) z = x (y z) x+x=x xx=x

x ( x + y) = x

x + ( x y) = x
Laticea va fi distributiv dac va prezenta i: 5o Distributivitatea: x (y + z) = (x y) + (x y) x + (y z) = (x + y) (x + y) Se remarc faptul c distributivitatea este valabil n ambele sensuri. Pentru fiecare opera ie se poate defini cte un element neutru care las variabilele nemodificate:

x+0=x x 1= x
G. Boole a studiat cazul limit al laticilor distributive alctuite doar din 2 elemente: elementele neutre ale celor dou opera ii: 0 respectiv 1. Rezultatele opera iilor cu 0 i 1 sunt postulate prin:

6o Legile lui 0 i 1:

x+0=x x+1=1 x0=0 x1=x

Definirea opera iilor care ndeplinesc condi iile de mai sus se poate face prin analogie cu reuniunea i intersec ia mul imilor, reprezentabile prin tabele de adevr. a) Disjunc ia (suma logic): x y x+y 0 1 0 0 0 1 0 1 1 1 1 1 sau, echivalent, sub forma y 0 0 x 0 0 1 1 1 1

b) Conjunc ia (produsul logic): x y xy 0 0 0 1 0 0 0 1 0 1 1 1 sau, echivalent, sub forma y 0 1 x 0 0 0 1 0 1

Tot printr-un tabel de adevr se poate defini i opera ia de inversare (complementare) logic: c) Inversarea (prin care laticea devine complementar): x 0 1 1 0

Din cele 6 axiome mai rezult urmtoarele propriet i ale inversrii: 7o Principiul ter ului exclus: 8o Principiul contradic iei: 9o Principiul dublei nega ii: 10o Teoremele lui de Morgan: x + x =1 x x =0 x= x

xy = x + y x + y = xy

Structura algebric ob inut n acest mod se numete algebr boolean. Marea sa importan rezult din posibilitatea aplicrii ei n analize i opera ii logice, dac se vor atribui celor 2 elemente 1 i 0 valorile logice de adevr" i " fals. Propozi iile cu care opereaz algebra logic se definesc prin func ii logice (sau binare, deoarece au doar 2 valori). O func ie logic de n variabile va fi de forma: f : {0, 1} x {0, 1} x x {0, 1} {0, 1} Domeniul de defini ie al unei func ii logice de n variabile va avea m =2n puncte, putndu-se construi N=2m func ii distincte. n continuare vor fi definite cele 24=16 func ii logice elementare (de 2 variabile). Cele mai utilizate sunt func iile care au i mnemonic.

Circuitele care realizeaz oricare dintre cele 16 func ii logice de 2 variabile se numesc por i. Din definirea axiomatic a algebrei booleene care apeleaz la disjunc ie, conjunc ie i nega ie, rezult ca orice func ie logic de 2 variabile poate fi definit cu cele 3 func ii de baz: I, SAU i NU (vezi tabelul precedent). Se poate observa de exemplu c:

x y = x y + x y , expresie ce poate fi verificat prin tabelul de adevr.


Mai mult, se poate demonstra prin tabelul urmtor c orice func ie logic poate fi sintetizat doar cu una din func iile: I-NU (NAND) sau SAU-NU (NOR).

Func iile logice pot fi definite fie analitic, fie prin tabelul de adevr, fie prin schema logic, n func ie de scopul reprezentrii i de natura func iei logice. De exemplu n cazul aplica iilor din electronic este convenabil reprezentarea prin scheme logice, care fac trecerea imediat la circuitele logice.

a) Expresia analitic

b) Schema logic Fig. 1.1 Exemplu de propozi ie logic

Func iile logice de mai multe variabile se construiesc tot cu ajutorul func iilor de baz, exploatnd asociativitatea, ele fiind de fapt propozi ii logice.

Fig. 1.2 Exemplu de func ie logic de 4 variabile

1.1.2. Analiza i sinteza func iilor logice Echipamentele industriale actuale sunt bazate pe circuite electronice care pot efectua opera ii aritmetice i logice. Proiectarea lor presupune dou opera ii esen iale: a) Analiza logic: stabilirea tabelului de adevr sau a expresiei analitice cnd se cunoate schema logic. b) Sinteza logic: stabilirea schemei logice cnd se cunoate func ia logic. Sinteza presupune n primul rnd definirea func iei logice, urmat de implementarea ei cu diferite circuite electronice disponibile. Pentru exemplificare se va considera comanda de pornire-oprire a unui motor electric dintr-o ac ionare tipic pentru mainile-unelte. Pornirea trebuie s se declaneze la ac ionarea butonului P i trebuie condi ionat de existen a ventila iei V pentru rcirea motorului i de func ionarea sistemului de ungere U. Oprirea se ob ine prin ac ionarea butonului O sau la apari ia unei avarii A. Func ia logic necesar este:

START = (P + START) V U A O
Pentru tratarea sistematic a func iilor logice se recurge la forma canonic disjunctiv FCD, care echivaleaz orice func ie logic cu o sum (disjunc ie) de minitermeni. Un minitermen este un produs logic con innd fiecare variabil o singur dat (fie ca atare fie negat). FCD este de fapt prezentarea analitic a tabelului de adevr al unei func ii logice, fiecrui 1 logic din tabelul corespunztor un minitermen. Dei nu este des folosit, este posibil i exprimarea prin forma canonic conjunctiv. De exemplu FCD a func iei logice SAU, care are n tabelul de adevr 3 pozi ii con innd 1, este:

f 9 = x + y = xy + xy + xy

O problem important legat de sintez este minimizarea func iei logice pentru ca schema logic s rezulte ct mai simpl. Analiznd cu pu in aten ie tabelul de adevr al func iei logice P1 din figura 1.1 observm c dei corect, exprimarea func iei nu este cea mai simpl, varianta optim fiind de fapt. P1= (x y ) + x y = x + x y = 1 y = y Necesitatea minimizrii func iilor logice este stringent mai ales n proiectarea circuitelor logice, n care este de dorit s utilizm formele cele mai simple, pentru a nu ncrca inutil schemele.

( ) (

1.1.3. Minimizarea func iilor logice prin metoda diagramelor Veitch-Karnaugh Minimizarea se poate face fie analitic, ca n exemplul de mai sus, fie prin alte metode dintre care cea mai utilizat pentru func iile de 2, 3 sau 4 variabile este metoda diagramelor VeitchKarnaugh. Aceste diagrame sunt forme particulare de tabele de adevr construite astfel nct minitermenii adiacen i s poat fi grupa i n ptrate sau dreptunghiuri de cte 2, 4 sau 8 loca ii. Numrul de loca ii este egal cu 2v (unde v este numrul de variabile). Acoladele marcheaz zonele n care respectiva variabil este adevrat. Este de remarcat c alocarea cmpurilor aferente variabilelor nu este unic, variantele din figura urmtoare putnd fi modificate prin aranjarea n orice mod a variabilelor, notate cu A, B, C i D. Pentru o mai bun n elegere a atribuirii loca iilor vom numerota fiecare loca ie din diagramele figurii urmtoare prin cifra zecimal corespunztoare decodificrii binare a minitermenilor forma i de A, B, C i D, neuitnd c n realitate, n aceste loca ii pot s existe numai valorile 0 sau 1. De exemplu, termenul DCBA va corespunde cifrei binare 1111 = 1510, iar D C B A cifrei binare 0000 = 010. Loca ia 12 corespunde minitermenului D C B A . Dup construirea diagramei, urmeaz gruparea minitermenilor astfel nct forma lor analitic s fie minim. Aa cum am vzut, gruprile pot fi de cte 2, 4 sau 8 loca ii, corespunznd unor minitermeni de 3, 2 sau o singur variabil. Gruprile pot forma ptrate sau dreptunghiuri i pot fi realizate i pentru marginile diagramei (diagrama se poate considera cilindric att pe orizontal ct i pentru vertical). Aceeai loca ie poate fi folosit de mai multe ori, n mai multe grupri. Exemple de grupri posibile n cazul diagramei pentru trei variabile sunt prezentate n figura 1.4.

Fig. 1.3 Diagramele Veitch-Karnaugh pentru 2, 3 i 4 variabile

Fig. 1.4. Gruparea minitermenilor De multe ori se ntlnesc situa ii n care o parte din posibilele combina ii de intrare nu apar niciodat. n acest caz putem considera aceti minitermeni, nota i cu X, fie 0 fie 1, n func ie de modul n care putem ob ine cea mai simpl variant. S considerm tabelul de adevr al unui convertor de cod binar-7 segmente, care are rolul de a face posibil afiarea cifrei zecimale corespunztoare codului binar de la intrare. Tabelul de adevr al celor 7 segmente, notate cu a, b, c, d, e, f i g, este prezentat n figura 1.5. Func ia logica pentru segmentul f de exemplu, este: f = D C B A + D C B A + D C B A + D C B A + D C B A

Fig. 1.5 Decodificator binar - 7 segmente Exist 5 minitermeni a cte 4 variabile. Deoarece la intrare nu apar codurile cifrelor mai mari de 9, loca iile respective vor fi notate cu X. n urma formrii a 3 grupe de cte 4 minitermeni, funcia minimizat va fi: f = A C + B C + A B

Fig. 1.6 Minimizarea schemei segmentului f din convertorul de cod binar-7 segmente

1.2. Circuite logice


1.2.1. Generalit i
Circuitele logice CL sunt circuite electronice lucrnd n regim de comuta ie care pot realiza func ii logice booleene. Se mai folosesc i termenii de circuite numerice sau digitale. Valorilor logice de 0 i 1 li se pot asocia 2 nivele de tensiuni electrice: L (low - cobort) pentru 0 i H (high - ridicat) pentru 1. Se poate folosi i logica negativ: L - 1 i H - 0. Orice propozi ie logic se va putea realiza fizic cu aceste circuite, prin reproducerea n tehnologie electronic a schemei logice aferente. Circuitele analogice studiate pn acum se bazeaz pe amplificri liniare sau neliniare ale semnalelor electrice, pstrnd naturile continue ale varia iei lor n timp i ale domeniului de valori posibile. Spre deosebire de ele, CL discretizeaz att domeniul valorilor semnalelor ct i domeniul timpului. Pe lng marele avantaj al prelucrrii informa iei prin metode digitale (proprii calculatoarelor numerice) CL ofer i avantajul unei imunit i la zgomote net superioare circuitelor analogice. Nivelul L poate fi asociat absen ei tensiunii, iar nivelul H poate fi asociat prezen ei tensiunii, ceea ce nsemneaz c la o alimentare de E vol i, orice tensiune mai mic dect E/2 va fi interpretat drept 0 i orice tensiune mai mare de E/2 va fi interpretat ca 1. Astfel perturba iile mai mici de E/2 nu vor afecta CL. Un exemplu ilustrativ pentru avantajele CL este transmiterea informa iilor la distan e foarte mari sau n condi ii de raport semnal/zgomot att de mic nct transmisia analogic ar fi necat de zgomot, ca de exemplu n cazul navelor cosmice. Semnalul de transmis s(t) va trebui "digitizat" (adus la o form compatibil cu calculatorul numeric). Digitizarea se ob ine prin eantionarea n domeniul timp (prelevarea la intervale de timp regulate a unor eantioane ale s(t)) urmat de conversia analog-digital n urma creia fiecare valoare eantionat este convertit n cte un cuvnt de cod binar - o succesiune de valori 0 sau 1. Precizia conversiei va fi cu att mai ridicat cu ct se vor utiliza cuvinte binare de mai mul i bi i (bit-ul fiind cea mai mic unitate de informa ie). Valorile luate n considerare se vor alege dintre multiplii valorii corespunztoare bitului cel mai pu in semnificativ.

Fig. 1.7 Digitizarea unui semnal i transmisia lui serie Prin transmisia acestor cuvinte binare recep ia la distan va fi mult mai corect. Mai mult dect att, tehnica de calcul face posibil utilizarea de coduri auto-detectoare de erori i chiar autocorectoare de erori. Aceste coduri, care sunt studiate n cadrul disciplinei de Teorie a Transmiterii Informa iei, i au originea n metoda bitului de paritate. Fiecrui cuvnt de cod binar i este ataat un bit suplimentar, calculat astfel nct suma tuturor bi ilor cuvntului final s fie par. Dac unul dintre bi ii cuvntului transmis este afectat de erori (practic fiind complementat), controlul de paritate va releva o sum impar a bi ilor, avertiznd asupra erorii. Detectarea precis a numrului de bi i erona i, pozi ia lor, i implicit corectarea lor prin complementare se pot ob ine cu pre ul introducerii unui numr suplimentar de bi i de control. n general CL sunt sisteme automate care n urma unor comenzi de la intrri realizeaz prin ieiri diferite rspunsuri, toate mrimile avnd un caracter booleean. Putem astfel aprecia c CL sunt n fapt o particularizare a no iunii de automat finit studiat de Automatic.

1.2.2 Tehnologii de realizare a CL CL au fost realizate ini ial cu ajutorul releelor electromagnetice. Acest mod de lucru dei pare nvechit (releul electromagnetic a fost inventat nc din 1821 de ctre G. Schilling) continu s se men in n actualitate, fiind deseori utilizat n software pentru automatele programabile (produse industriale destinate conducerii secven iale a proceselor). n figura urmtoare se arat felul n care se ob in cele trei func ii logice de baz I, SAU i NU, orice alt func ie logic rezultnd din combinarea acestora.

Fig.1.8 Realizarea func iilor logice prin relee Pentru ca bobina releului I s fie ac ionat este necesar ca cele dou contacte n serie, reprezentnd variabilele x i y, s fie atrase (1 logic) simultan. Pentru alimentarea bobinei SAU este suficient ca fie x fie y s fie 1 logic, bobina fiind alimentat de oricare dintre cele 2 contacte conectate n paralel (i cu att mai mult de amndou simultan). Realizarea nega iei NU se rezolv utiliznd un contact normal nchis. O prim abordare electronic a func iilor logice a fost tehnologia DTL (Diode Transistor Logic), realizat cu componente discrete. Func iile logice se ob in prin grupri de diode montate n circuitele de baz ale unor tranzistoare, manifestndu-se prin blocarea sau saturarea acestora. Dei func iile logice pot fi realizate ntr-o diversitate de alte tehnologii (mecanice, hidraulice, pneumatice, etc.) majoritatea echipamentelor de comand actuale se bazeaz pe CL semiconductoare integrate. Productorii ofer zeci de familii de astfel de circuite, cuprinznd zeci sau sute de tipuri de circuite distincte. Aceste tehnologii pot fi grupate dup tipul tranzistoarelor n: CL bipolare, cu tranzistoare bipolare (familia reprezentativ: TTL) CL unipolare, cu tranzistoare MOS (familia reprezentativ: CMOS)

Familia TTL Familia TTL a aprut n anii 60 (TTL = Transistor Transistor Logic) i este caracterizat prin utilizarea tranzistoarelor bipolare. Pornind de la posibilitatea realizrii oricrei func ii logice cu por i I-NU, poarta fundamental a familiei TTL este poarta I-NU, prezentat n figura 1.9. Func ia logic I-NU se ob ine cu ajutorul tranzistorului multiemitor de la intrare i a etajului de ieire. Caracteristic acestei familii este necesitatea alimentrii cu o tensiune continu de 5V, tensiuni doar cu c iva vol i mai mari distrugnd integratele.

x y xy

Fig. 1.9. Poarta TTL standard (I-NU) Valorile rezisten elor depind de orientarea familiei de circuite. Valorile mai mari favorizeaz reducerea consumului de energie iar valorile mai mici viteza. Puterile medii consumate de circuitele TTL sunt n zona 2 ... 30 mV iar timpii de propagare de 35 ... 3 nsec. n func ie de varianta constructiv. Unele circuite TTL au ieirea ntrit fiind numite buffer. Alt categorie de circuite TTL sunt cu colectorul n gol, utilizatorul putnd introduce o rezisten la alegerea sa. Exist i circuite TTL cu trei stri la care a treia stare completeaz accesul la o magistral de date.

Circuitele CMOS Circuitele CMOS (Complementary Symmetry Metal-Oxide-Semiconductor) ofer fa de TTL performan e net superioare la majoritatea parametrilor: putere consumat mult mai mic, grad de mpachetare mult mai mare (datorit ariei mici a tranzistoarelor MOS), gama de temperaturi mult mai extins (tranzistoarele MOS sunt mult mai pu in dependente de temperatur dect cele bipolare), etc. Func ionarea lor se bazeaz pe simetria complementar a dou tranzistoare MOS cu canale n respectiv p. Aceste tranzistoare lucreaz n regim de comuta ie ca nite chei (ntreruptoare) comandate n tensiune. Acest tip de circuite sunt produse n Romnia la Microelectronica Bucureti, prin familia MMC. Tensiunea de alimentare nu este critic, putnd fi cuprins ntre 3 i 18V iar marginea de zgomot (perturba ia maxim care nu afecteaz func ionarea circuitului) este de 45% din ea deci foarte bun. Ilustrativ pentru familia CMOS este inversorul.

Fig. 1.10. Inversorul CMOS O tensiune H de intrare deschide tranzistorul cu canal n i l blocheaz pe cel cu canal p ducnd ieirea la L. O tensiune L de intrare deschide tranzistorul cu canal p i l blocheaz pe cellalt. Intrarea MOS fiind echivalent cu un condensator de mic valoare nu consum curent n regim static. Deoarece ieirea este n contratimp i sarcina sa este construit din alte intrri MOS nici ea nu consum curent n regim static. Doar n comuta ie exist o perioad de ordinul n secunde pentru care tranzistoarele, n regim activ, consum energie de la sursa de alimentare. Puterea medie consumat de circuitele logice se definete ca media puterilor n strile H i L:

Pm =

PH + PL 2

Pm este la CMOS de cca. 10 nW/poart static i de 10 mW/poart la 1MHz. n figura 1.11 sunt prezentate por ile CMOS I-NU i SAU-NU cu men iunea c intrrile MOS sunt de obicei protejate prin diode mpotriva acumulrilor de sarcini electrice. O ieire CMOS poate comanda simultan 50 de intrri CMOS. Dup cum se observ fiecare poart este format din cte dou perechi de tranzistoare complementare, comandate simultan. n cazul por ii I-NU tranzistoarele cu canal p sunt conectate n paralel iar cele cu canal n n serie. Dac ambele intrri sunt pe 1 logic tranzistoarele Q3 i Q4 sunt saturate iar Q1 i Q2 blocate, ieirea fiind n 0 logic. Este suficient ca una dintre intrri s trac n 0 logic, ca unul dintre tranzistoarele Q1 sau Q2 s se deschid, iar unul dintre tranzistoarele Q3 sau Q4 s se blocheze, ieirea trecnd astfel n 1 logic. Cu att mai mult atunci cnd ambele intrri sunt n 0 logic ieirea este 1 logic.

Fig.1.11. Por ile CMOS de tip I-NU i SAU-NU n cazul por ii SAU-NU tranzistoarele cu canal n sunt conectate n paralel iar cele cu canal p n serie. Dac ambele intrri sunt pe 0 logic tranzistoarele Q1 i Q2 sunt saturate iar Q3 i Q4 blocate, ieirea fiind n 1 logic. Este suficient ca una dintre intrri s trac n 1 logic, ca Q3 sau Q4 s se satureze iar unul dintre tranzistoarele Q1 sau Q2 s se blocheze, ieirea trecnd astfel n 0 logic. Cu att mai mult atunci cnd ambele intrri sunt n 1 logic ieirea este 0 logic. Timpii de propagare ai diferitelor variante CMOS sunt cuprini ntre 6 ... 50 n sec. Gama normal de temperaturi n care func ioneaz circuitele CMOS este de -40+850C, dar se construiesc i circuite cu gam extins de temperatur: -55+1250C.

1.3. Circuite logice combina ionale


Circuitele logice combina ionale CLC sunt CL logice la care starea ieirilor depinde doar de starea intrrilor, fiecare ieire fiind o combina ie logic a intrrilor. Aceste circuite nu au memorie, semnalele de ieire existnd doar n prezen a semnalelor de intrare.

1.3.1 Por i logice Por ile sunt CLC care realizeaz func iile booleene de 2 variabile. ntr-o familie de circuite integrate se ofer por i n multe variante constructive. De exemplu familia MMC cuprinde por ile I, SAU, I-NU, SAU-NU n formulele: 4 por i cu cte2 intrri: MMC4001 (NOR), MMC4011 (NAND), MMC4071(OR), MMC4073(AND); 3 por i cu cte3 intrri: MMC4025 (NOR), MMC4023(NAND), MMC4075(OR), MMC4081(AND); 2 por i cu cte 4 intrri: MMC4002 (NOR), MMC4012 (NAND), MMC4072(OR), MMC4082(AND); 1 poart cu 8 intrri: MMC4078 (NOR), MMC4068 (NAND), MMC4078(OR), MMC4068(AND). Pe lng acestea se mai gsesc o serie de alte circuite de tip poart, dintre care putem enumera: 2 por i SAU-NU cu 3 intrri i un inversor: MMC 4000; 4 por i I-NU cu 2 intrri trigger Schmitt: MMC4093. 6 inversoare: MMC4069; 4 por i SAU-NU EXCLUSIV cu cte 2 intrri: MMC4070; 6 separatoare inversoare de putere: MMC4049.

1.3.2 Codificatoare Codificatoarele sunt CLC care n func ie de combina ia de intrare genereaz la ieire cuvinte binare de cod. Avnd n variabile binare sunt posibile 2n combina ii ale lor. Un cod binar de n bi i este alctuit din cele 2n combina ii sau o parte a lor i din interpretarea acestora. Sistemul de numera ie binar poate fi privit ca un cod natural binar, fiecrei combina ii de n bi i corespunzndu-i una din primele 2n cifre zecimale.

Exist mai multe coduri binare dintre care unul dintre cele mai rspndite este codul binar codificat zecimal BCD. Acest cod nlocuiete fiecare cifr zecimal cu codul ei binar natural dar pstreaz organizarea zecimal a cifrelor. Exemplu: 1210 = 0001 0010 110 210 n BCD = 1100 n cod binar natural

n tabelul urmtor se prezint codarea binar a cifrelor zecimale de la 0 la 9 (identic pentru o singur cifr cu BCD), iar n fig. 1.11 schema logic aferent.

Fig. 1.12 Codificator zecimal - BCD

4.3.3 Decodificatoare Decodificatoarele sunt CLC care activeaz una sau mai multe ieiri n func ie de cuvntul de cod aplicat la intrare. Pentru decodificatoarele care ac ioneaz mai multe ieiri simultan se utilizeaz i termenul de convertoare de cod. Decodificatoarele se folosesc frecvent n adresarea memoriilor. n fig. 1.13 se prezint un decodificator de doi bi i pentru 4 adrese.

Fig. 1.13. Decodificator de doi bi i Decodificarea se bazeaz pe proprietatea por ilor I de a fi activate numai cnd toate intrrile sunt simultan 1 logic. Pentru fiecare ieire exist cte o astfel de poart, activat de ctre un singur cuvnt de cod. De exemplu ieirea E0 este 1 logic numai atunci cnd ambele intrri, I0 i I1 sunt n 0 logic, cele dou inversoare de la intrarea por ii E0 avnd rolul de a identifica cuvntul de cod dorit (00 n acest caz).

1.3.4 Multiplexoare Multiplexoarele sunt CLC cu mai multe intrri de date i o singur ieire. Selectarea intrrii care este conectat ntr-un anumit moment la ieire se face printr-un decodificator de adrese, n funcie de cuvntul de cod binar aplicat unor intrri de adres. ntre numrul de bi i ai cuvintelor de adres m i numrul maxim de intrri adresabile n exist rela ia evident n=2m. n figura urmtoare este schi at cel mai simplu multiplexor, avnd doar dou intrri I0 i I1 i un singur bit de adresare A.

Fig. 1.14. Multiplexor ntre numrul de bi i ai cuvintelor de adres m i numrul maxim de intrri adresabile n exist rela ia evident n=2m. n figura urmtoare este schi at cel mai simplu multiplexor, avnd doar dou intrri I0 i I1 i un singur bit de adresare A. Decodificarea canalului de intrare se bazeaz pe capacitatea por ilor I cu dou intrri de a funciona ca i por i de transmisie, una dintre intrri avnd rol de validare. n func ie de valoarea intrrii de adresare, la poarta SAU de la ieire va ajunge fie informa ia I0 (dac A = 0) fie informa ia I1 (dac A = 1), cealalt intrare a por ii SAU fiind 0.

Fig. 1.15. Multiplexor cu 2 intrri

1.3.5 Demultiplexoare Demultiplexoarele sunt CLC avnd o singur intrare i mai multe ieiri. Selectarea ieirii conectate la ieire ntr-un anumit moment se face printr-un decodificator de adrese, n func ie de cuvntul de cod binar aplicat unor intrri de adres.

Fig. 1.16. Demultiplexor Demultiplexarea exploateaz proprietatea por ilor I de a transmite informa ia de la intrare la primirea unor semnale de validare. n func ie de valoarea adresei A, informa ia de la intrare I este transmis fie ieirii E0 (dac A = 0) fie ieirii E1 (dac A = 1). Ieirile neactivate rmn pe 0 logic.

Fig. 1.17. Demultiplexor cu dou intrri Multiplexoarele i demultiplexoarele fac posibil transmisia pe un singur canal a informa iei mai multor canale. Dac se realizeaz o parcurgere ciclic i sincronizat a tuturor adreselor att la emisie ct i la recep ie (printr-un numrtor de adrese), ntr-un ciclu complet de numrare fiecare canal va folosi pe rnd, singura cale disponibil pentru transmiterea datelor.

1.3.6 Circuite aritmetice Circuitele sunt CLC care pot efectua opera ii aritmetice cu operanzi codifica i binar. Utilitatea acestor circuite n calculatoarele numerice este evident. n figur se prezint doar cel mai simplu circuit aritmetic, sumatorul pentru bitul de rang n.

Fig. 1.18 Sumator de rang n O celul sumatoare complet este format din dou semisumatoare (o poart SAU-EXCLUSIV pentru calculul sumei i o poart I pentru calculul transportului.

Fig. 1.19 Sumator pentru cuvinte de 4 bi i

1.4. Circuite logice combina ionale


Circuitele logice secven iale CLS sunt CL logice a cror ieiri depind att de starea momentan a intrrilor ct i de evolu iile lor anterioare.

2. Arii de por i programabile

2.1. Introducere n conceptul FPGA


Un circuit FPGA (field programmable gate array) este un circuit integrat destinat a fi configurat de ctre utilizator. Configura ia FPGA este in general specificat prin limbajul HDL (hardware description language), utilizat i n cazul circuitelor ASIC (application specific integrated circuit). Reprezentarea prin scheme electrice este mai rar. FPGA poate fi utilizat la implementarea oricrei func ii logice pe care un circuit ASIC ar putea-o produce. n multe aplica ii circuitele FPGA sunt avantajoase prin pre ul mai mic dect al circuitelor ASIC i mai ales prin capacitatea de a fi configurate sau modificate chiar de ctre utilizator [1]. Circuitele FPGA con in componente logice programabile, numite blocuri logice i o structur ierarhic de conexiuni reconfigurabile care permite interconectarea blocurilor logice. Ele pot fi asemnate cu plcile de ncercare a prototipurilor de circuite electronice care nu necesit lipituri (breadboards), dar la care interconectarea blocurilor nu se face cablat, cu fire i conectori, ci prin software. Blocurile logice pot fi configurate pentru o multitudine de scopuri, pornind de la realizarea unor por i logice (AND, XOR, etc.) pn la circuite combina ionale complexe. De regul FPGA-urile actuale dispun i de memorii, fie simple circuite basculante bistabile fie blocuri de memorie mai complicate, prin care se pot implementa i circuitele secven iale.

2.1.1. Istoric
Industria FPGA a aprut n mediile implicate n producerea de circuite PROM (programmable read only memory) i a dispozitivelor logice programate PLD (programmable logic devices). PROM-urile i PLD-urile aveau dou op iuni [2]: - op iunea clasic a configurrii de ctre productor, pe loturi mari; - op iunea configurrii de ctre client, chiar la locul aplica iei (field programming); de fapt primele astfel de arii programabile erau configurate fizic, prin diferite metode de cablare. Co-fondatorii companiei Xilinx, Ross Freeman i Bernard Vonderschmitt, au inventat prima arie de por i programabil n 1985 circuitul XC2064. Circuitul XC2064 avea por i programabile i interconexiuni programabile ntre por i, i prin succesul su comercial a deschis calea unei noi tehnologii i unei pie e aferente. Mai precis, circuitul ngloba 64 de blocuri logice configurabile CLB (configurable logic blocks) simple precum i dou tabele de cutare LUT (look-up-tables) cu cte trei intrri. Spre sfritul anilor 80 Marina Militar USA a finan at un experiment propus de Steve Casselman, de realizare a unui computer ce nsuma 600000 de por i reprogramabile.

Pn n perioada mijlocului anilor 90 Xilinx a fost unicul productor de FPGA dup care a aprut i o puternic concuren . De exemplu n 1993 firma Actel de inea deja 18% din pia . ncepnd cu telecomunica iile i cu re elele, noi domenii au fost acoperite: bunuri de larg consum, mijloace de transport i aplica ii industriale. O realizare marcant a aprut n 1997 cnd Adrian Thompson a aplicat calculul evolutiv (algoritmi genetici) n FPGA, realiznd primul circuit capabil s recunoasc sunete. Algoritmul lui Thomson implica o matrice de 64 x 64 celule ntr-un cip Xilinx FPGA, care se puteau reconfigura n vederea opera iei de recunoatere a sunetelor.

2.1.2. Principalii productori


Principalii productori de circuite FPGA sunt Xilinx cu 50% i Altera cu 30% din aceast pia [5]. Xilinx furnizeaz software de proiectare gratuit pentru Windows i Linux [6], iar Altera pentru Windows. Software Solaris i Linux poate fi ob inut i pe calea ofertelor asociate produselor sau nchiriere [7]. Pentru a favoriza dezvoltarea continu a circuitelor FPGA principalii productori au lansat familiile de cost redus Spartan de la Xilinx i Cyclone de la Altera, extrem de populare n mediile academice. Al i competitori sunt Lattice Semiconductor, Actel, Silicon Blue Technologies, Achronix i QuickLogic.

2.1.3. Dezvoltri recente


Tendin ele recente continu dezvoltarea arhitecturilor granulare tradi ionale (formate din ansambluri mari de blocuri logice) cu microprocesoare ncorporate i periferice, n vederea realizrii unor cipuri-sistem programabile. Aceast direc ie a fost ini iat de Ron Perlof i de Hana Potash de la Burroughs Advanced Systems Group, care nc din 1982 au dezvoltat o arhitectur reconfigurabil de CPU pe un singur cip, numit SB24. Astfel de arhitecturi hibride pot fi gsite n dispozitivele Virtex-II PRO i Virtex-4. Atmel FPSLIC este un alt dispozitiv de acest gen, care include un procesor AVR. O alternativ la utilizarea procesoarelor hardware sunt procesoarele soft care pot fi implementate prin logica FPGA. Cele mai multe FPGA-uri moderne dispun de implementri hardware sau software ale func iilor de nivel nalt: sumatoare, multiplicatoare, decodoare, circuite cu calare pe faz PLL(phase-locked loops) sau pe ntrziere DLL (delaylocked loops) sau func ii matematice precum i de diferite tipuri de memorii. Multe FPGA-uri moderne pot fi reprogramate n timpul func ionrii, ceea ce a dus la ideea calculului reconfigurabil sau a sistemelor reconfigurabile unit i centrale capabile de autoconfigurare dinamic. O astfel de aplica ie este Procesorul Virtual Mitrion, care nu realizeaz o reconfigurare dinamic propriu zis n timp real, dar se poate reconfigura prin comenzi directe din program. Sunt posibilele i reconfigurrile par iale, n care unele pr i din circuit continu s lucreze n timp ce altele sunt configurate. Pentru a face posibile reconfigurrile par iale arhitecturile trebuie s permit accesul selectiv la resursele de configurare disponibile. Astfel de arhitecturi

reconfigurabile pot fi realizate i n tehnologii hibride, ca i n cazul microprocesorului Stretch S5000 care ofer microprocesoare i arii FPGA pe acelai cip.

2.1.4. Date referitoare la pia a circuitelor FPGA


Numrul de por i

1987: 9.000 de por i, Xilinx 1992: 600.000 de por i, Naval Surface Warfare Department Anii 2000: zece milioane de por i, cu 1000 de pini I/O, la frecven e de 500MHz.

Dimensiunea pie ei

1985: primul FPGA comercial, Xilinx 1987: 14 milioane $ ~1993: >385 milioane $ 2005: 1.9 miliarde $ 2010 estimare: 2.75 miliarde $

Aplica ii incluznd FPGA


2005: 80.000 2008:90.000 2010 estimare: 110.000 [3]

Fig. 2.1. Circuitul FPGA Stratix IV GX produs de Altera

Fig. 2.2. Placa Xilinx S6-SP601

2.1.5. O compara ie a FPGA cu alte tehnologii


ASIC este conceptul cel mai apropiat de FPGA. Primele FPGA-uri erau mai lente, mai pu in eficiente energetic i n general mai pu in func ionale dect echivalentele lor fixe ASIC. n urma creterii volumului produc iei i aplica iilor, a eforturilor de cercetare-dezvoltare i a perfec ionrilor tehnologice, performan ele FPGA s-au apropiat tot mai mult de cele ASIC. Avantajele include un timp de acces la pia foarte scurt, reprogramarea i depanarea de ctre utilizator i costuri sczute de cercetare, dezvoltare, proiectare i testare (non-recurring engineering costs). O strategie extrem de avantajoas const din dezvoltarea produselor n tehnologie FPGA (rapid prototyping) i realizarea versiunii finale n ASIC. Mai precis, FPGA-urile reprezint modalitatea cea mai sigur de validare a sistemelor complexe, (validri pre-siliciu i post-siliciu) i a dezvoltrilor de tip firmware. n acest fel productorii pot evita costurile asociate testrii directe a prototipurilor, caz n care fiecare greeal de proiectare necesit realizarea unui nou prototip. Un alt concept asemntor este CPLD (complex programmable logic device). Circuitele CPLD au o complexitate mai mic dect a celor FPGA, dar mai mare dect a circuitelor PAL (programmable array logic). Unitatea lor component de baz este macrocelula, care implementeaz funcii logice booleene n forma canonic disjunctiv, precum i alte opera ii logice mai specializate. Fa de FPGA, circuitele CPLD au o capacitate mai redus (zeci de mii de por i fa de sute de mii sau milioane). Pe lng acesta, FPGA sunt mult mai flexibile. Se poate afirma c FPGA continu linia de dezvoltare a PAL CPDL nu att prin creterea numrului de arii ct mai ales prin aten ia acordat circuitelor de reconfigurare, care sunt de mare complexitate i performan .

2.1.6. Arhitecturi FPGA


Cel mai adesea arhitectura FPGA const dintr-o arie de blocuri logice configurabile CLB, paduri intrare-ieire I/O i canale de rutare. n general toate canalele de rutare sunt de aceeai capacitate (au acelai numr de fire). O implementare FPGA trebuie s dispun de resurse adecvate. n timp ce numrul de CLB-uri i de I/O sunt uor de determinat din proiect, numrul de ci de rutare poate varia considerabil, chiar i n cazul unor proiecte foarte asemntoare din punct de vedere logic. De exemplu, o matrice de comutare (matrix switch sau crossbar switch) necesit mult mai multe rutri dect o arie sistolic, o form particular de arhitectur paralel, organizat ca o re ea (pipe network). Cile de rutare neutilizate cresc costul i scad performan ele circuitului, fr a aduce nici un beneficiu, productorii de FPGA ncearc s optimizeze numrul lor, astfel nct majoritatea proiectelor s fie posibile n termeni de LUT i I/O. Aceast optimizare poate fi realizat fie prin experimentarea i analizarea unor proiecte semnificative fie aplicnd regula lui Rent: T = t gp unde T este numrul de terminale, g numrul de componente interne, iar t i p constante.

Canal de rutare

Pad I/O

CLB

Fig. 2.3. Structura generic FPGA Un CLB clasic FPGA const dintr-un tabel de cutare cu 4 intrri (4LUT) i un bistabil D (flipflop), conectate ca n figura urmtoare. n ultimii ani a aprut o tendin de trecere nspre 6LUT, cu scopul creterii performan elor [4].

Fig. 2.4. Un CLB tipic Exist patru intrri i o intrare de sinc i sincronizare Clock. Ieirea este furnizat de LUT, putnd fi nregistrat sau nenregistrat. Semnalele de sincronizare, precum i alte semnale cu fanout ridii ridi cat care sunt specifice fiecrei aplica ii n parte, sunt tratate n mod separat, prin re ele de rutare rei dedicate. Amplasarea terminalelor (pinil CLB-ului este ilustrat n figura urmtoare. (pinilor) urm

Fig. 2.5. Amplasarea terminalelor Fiecare intrare in este accesibil dintr latur (jos, stnga, sus i dreapta) iar ieirea out poate fi dintr-o i ie conectat la cile de rutare att prin canalul din dreapta ct i prin cel de jos. Fiecare pin CLB ile . poate fi conectat la oricare dintre c cile de rutare adiacente. n mod similar, un pad I/O poate fi conectat la fiecare dintre traseele canalelor adiacente. Mai precis, dac sub un pad I/O din partea superioar a cip-ului trece un canal orizontal cu W fire, superioar padul poate fi conectat la oricare dintre cele W fire. n general sistemele de rutare FPGA sunt nesegmentate, adic fiecare segment de cablaj este adic conectabil la un bloc de comuta ie prin cel mult un CLB. C Cile de conectare mai lungi se ob in ctare cu ajutorul blocurilor de comuta ie. Totui, pentru realizarea unor interconexiuni de mare vitez i, vitez unele arhitecturi sunt prevzute i cu c i de rutare care se ntind pe lungimea mai multor blocuri. zute ci

CLB

Bloc de conexiune

Canal de rutare

Fig. 2.6. Principiul de rutare FPGA Blocurile de conexiune (switching boxes) apar oriunde un canal vertical se intersecteaz cu unul switching ) intersecteaz orizontal. Un fir care intr ntr-un bloc de conexiuni poate fi conectat, prin trei conectoare pro un programabile cu alte trei fire din canalele adiacente Topologia (modelul spa ial) al conectoarelor mabile adiacente. programabile este topologia planar bazat pe organizarea traseelor de rutare. Firul numrul 1 planar, num dintr-un canal poate fi conectat numai la firul n un numrul 1 din canalele adiacente, firul numrul 2 rul num poate fi conectat numai la firele num at numrul 2 i aa mai departe. Func ionarea unui bloc de conexicone uni este prezentat n figura urm urmtoare.

Canal de rutare

Conector programabil

Fig. 2.7. Topologia unui bloc de conexiuni

2.2. Resurse hardware i software


Familiile moderne FPGA extind aceast capacitate de conectare prin realizarea cablat a unor func ii de nalt nivel, crescnd astfel performan ele (vitez de lucru crescut, arie de siliciu mai mic, etc.) i scznd efortul de proiectare[8]. Astfel de blocuri pot fi: blocuri generice DSP, multiplicatoare, blocuri PLL i/sau DLL, circuite I/O de mare vitez, memorii, registre de deplasare, numrtoare, etc. Resursele hardware investite n FPGA sunt extrem de diverse, n func ie de productori i de arhitectura aleas. Pe de alt parte, resursele software, de care depind n mare msur i performan ele hardware-ului, sunt extrem de specifice, ntr-o continu dezvoltare i evolu ie [8].

2.2.1. Resurse hardware A. Blocuri func ionale integrate 1) Memorii: memoriile interne permit creterea vitezei de operare i utilizarea mai eficient a pinilor I/O. Pe lng acesta structura sistemului este mult simplificat. Capacit ile de memorie utilizate sunt destul de mari, de exemplu Altera Stratix II con ine pn la 9 Mb. Se pot ntlni diferite configura ii. Pentru RAM se ntlnesc variantele single port, simple dual port, true dual port i bidirectional dual port. Se ntlnesc i memorii ROM i registre de deplasare. Pornind de aici se pot implementa i alte structuri, cum ar fi memoriile FIFO (first-in-first-out) sau memorii asociative. 2) PLL/DLL: circuite PLL i DLLs pot fi utilizate pentru compensarea ntrzierii de propagare a semnalului de sincronizare clock de-a lungul circuitului. Alte aplica ii interesante sunt sintetizarea de frecven e prin multiplicare/divizare i condi ionarea clock-ului (factor de umplere i defazaj). Circuitele DLL sunt ieftine, consum pu in energie i sunt imune la zgomote, n timp ce PLL-urile sunt mai versatile i permit opera ii mai complexe cum ar fi implementarea filtrelor acordabile, pe un domeniu de frecven e mai larg. n figura 2.8 se prezint arhitectura Spartan-3 Xilinx avnd patru circuite DCM (digital clock managers) bazate pe blocuri DLL. 3) Circuite aritmetice: unele FPGA-uri dispun de numr mare de blocuri aritmetice simple. De exemplu familia Virtex-5 LX Xilinx include multiplicatoare, prin care se pot realiza opera ii de pn la 25 18 bi i n complement fa de doi. Blocuri mult mai complexe, DSP-uri, se pot gsi n circuite mai avansate, cum ar fi Stratix II Altera. La acest produs DSP-urile sunt cuprinse ntro structur registru + multiplicator + sumator/scztor (36-bi i)/acumulator (52-bi i). n arhitectura Stratix II Altera sunt vizibile blocurile PLL, RAM (M-RAM, M-512 i M-4 K) i blocuri DSP (vezi figura 2.9). 4) Transceivere: dispozitive de emisie-recep ie (transceiver) pentru diferite standarde (10-Gb Ethernet i10-Gb canal cu fibr optic), ca i protocoale de comunica ie definite de utilizator pot fi uor implementate prin blocuri de codare/decodare i serializare/deserializare a datelor, buffere

de transmisie/recep ie i sincronizare. De exemplu, circuitul ORCA ORT82G5 (Lattice) include transceivere cu opt canale, fiecare opernd n domeniul 600 Mb/s - 3.7 Gb/s, cu o interfa duplex de sincronizare cu clock ncorporat i memorare temporar a datelor.

Fig. 2.8. Arhitectura Spartan 3Xilinx [8]

Fig. 2.9. Arhitectura Stratix II Altera [8]

5) Procesoare integrate: cele mai complexe arhitecturi FPGA ajung s includ i procesoare nso ite de perifericele aferente, n vederea materializrii conceptului System-on-Chip (aa numitele SoC solutions) prin care tot sistemul de calcul este implementat pe un singur cip de Siliciu. De exemplu circuitul Virtex-4 FX (Xilinx) include procesoare RISC (reduced instruction set computer) de tipul IBM PowerPC 405 de 32 de bi i, capabile s func ioneze la 450 MHz, cu controlere de acces la memorii RAM, o unitate aritmetic hardware pentru multiplicare/divizare, trei timere diferite, interfa direct pentru re ea Ethernet, registre de configurare MAC, o unitate de procesare auxiliar pentru interfa area resurselor logice FPGA n vederea conectrii la acceleratoare hardware, a introducerii de instruc iuni definite de utilizator sau unit i de coprocesor n virgul mobil [8]. Familia Excalibur (Altera) include un procesor RISC standard ARM922T de 32 de bi i la frecven a de 200 MHz, 8-kB de memorie cache i de instruc iuni, cu periferice programabile, un transciever asincron UART i dou timere. Magistrala este de tip AMBA (advanced microcontroller bus architecture) cu acces la memoriile interne SRAM (static RAM) cu un port i dou porturi. Familia QuickMIPS (QuickLogic) incorporeaz un procesor RISC de 32 de bi i de 175 MHz iar familia Atmel FPSLIC combin un AT40K FPGA cu un microcontroler RISC de tip AVR de 8 bi i, cu 16 kB 16 SRAM de program i 16 kB 8 SRAM de date. Dintre perifericele AVR se pot men iona interfa a serial industrial de dou fire, dou UART, dou timere/numrtoare de 8 bi i i PWM (pulsewidth modulation). Toate aceste FPGA-uri incorporeaz resurse hardware prin interfa are JTAG (Joint Test Action Group), bazat pe standardul IEEE 1149.1 (Standard Test Access Port and Boundary-Scan Architecture) pentru diagnosticare i depanare. Alte dispozitive adopt strategia invers: combinarea microcontrolerelor standard cu circuite FPGA. De exemplu familia de microcontrolere STMicroelectronics PSD incorporeaz un microcontroler rapid 8051 de 8 bi i cu multe periferice: un convertor analog-digital de 8 bi i cu 4 canale, dou UARTS, 5 ieiri PWM de 8 bi i, 3 timere de 16 bi i la care se adaug un PLD simplu cu 16 macrocelule.

B. Condi ionarea semnalelor intrare/ieire Resurse specifice trebuiesc alocate pinilor I/O pentru ca FPGA-urile s poat fi conectate cu uurin cu alte dispozitive, la tensiuni diferite, fr a fi nevoie de interfe e suplimentare. Pinii I/O sunt de obicei grupa i n func ie de diferitele standarde: conectare ntre cipuri (chip-to-chip semnale diferen iale de joas tensiune sau circuite cuplate prin emitor de tensiune pozitiv), conectare de tip backplane n care mai mul i pini se conecteaz n paralel sau interfe e pentru memorii. Un exemplu, corespunztor familiei Virtex, este prezentat n fig. 2.10.

Fig. 2.10. Tensiunile de referin intern i extern n cazul blocurilor I/O Virtex

C. Dispozitive speciale 1) Dispozitive programabile o singur dat OTP (One-time-programmable): dispozitivele nevolatile sunt uneori preferate celor volatile, care utilizeaz celule SRAM.
Comand confugurare Citire/scriere Date

Fig. 2.11. Celul SRAM pentru configurare Celulele SRAM sunt cel mai des utilizate (Xilinx, Altera, Atmel) pentru c ofer o mare flexibilitate n vederea reconfigurrii. Dispozitivele OTP nevolatile sunt totui aplicate n anumite situa ii n care primeaz avantajele lor: nu au nevoie de resurse externe pentru configurarea la alimentare (pornesc foarte repede), consum foarte redus de putere, rezisten e i capacit i de contact foarte mici, imunitate foarte bun la zgomote. n tehnologiile Actel i Quicklogic configurarea se realizeaz prin arderea selectiv a unor micro trasee fuzibile (antifuse devices) realizate fie din oxid-nitrit-oxid ONO fie metalice (tungsten). 2) Dispozitive de putere mic: scderea puterii consumate de ctre circuite este un imperativ puternic, att pentru a mbunt i performan ele func ionale ale produselor prin creterea eficien ei utilizrii energiei (mai ales a bateriilor) ct i prin scderea temperaturilor de func ionare. FPGA sunt de obicei mai pu in eficiente la acest capitol din cauza resurselor alocate programrii. Din acest punct de vedere solu iile bazate pe OTP sunt cele mai avantajoase. Ele reuesc s treac din modul de ateptare (idle) n care se consum foarte pu in energie (10 A de exemplu) n modul de lucru foarte rapid (sec) i ofer i rezisten e mici de comutare.

i circuitele SRAM pot fi eficientizate din punctul de vedere al consumului prin unele msuri constructive cum ar fi: - distribuirea de tranzistoare de diferite mrimi pe suprafa a de siliciu, astfel ca ele s poat fi utilizate n subcircuite de mare sau mic vitez, optimiznd consumul dinamic; - suplimentarea izolrii componentelor, de exemplu straturi sub iri suplimentare de oxid; 3) Dispozitive tolerante la radia ie: aplica iile aerospa iale n care FPGA au fost incluse, Sta ia Spa ial Interna ional, Telescopul Spa ial Hubble, Mars Pathfinder i altele, ridic probleme speciale de lucru n mediu radioactiv.

Bloc defect

Fig. 2.12. Exemplu de configura ie tolerant la defecte

Pentru a rspunde acestor solicitri au fost dezvoltate familii de FPGA de tip antifuse cu rezisten sporit la radia ie cum ar fi RTSX/RTAX sau Aeroflex Eclipse. Exist i versiuni protejate mpotriva perturba iilor radio: familiile Atmel AT40KEL040 sau Xilinx QPRO-R Virtex-II. Un alt demers face apel la capacitatea FPGA-urilor SRAM de reconfigurare, prin dezvoltarea de solu ii tolerante la defec iuni. Prin opera iuni de diagnosticare a zonelor defecte i nlocuire a lor cu ajutorul reconfigurrii se pot ob ine circuite de mare fiabilitate (vezi fig. 2.12). 4) Circuite securizate: aplica iile n care FPGA sunt conectate n re ele ridic problema securizrii IP-urilor. Pe de o parte n aplica iile mai simple pot fi utiliza i bi i de securizare care previne citirea de ctre utilizator a configura iilor. n cazul aplica iilor foarte complexe (multiprocesor, interfe e de comunica ie, codecuri, etc.) se adaug un FPGA nonvolatil care s gestioneze accesul la componentele interne.

2.2.2. Resurse software Complexele structuri hardware ale FPGA-urilor nu ar putea fi utilizate fr un ntreg arsenal de instrumente software specifice. Acest domeniu este n plin dezvoltare dar exist deja o ofert bogat de resurse software. A. Nuclee IP Pentru simplificarea proiectrii sistemelor FPGA complexe exist biblioteci de func ii predefinite complexe, n multe cazuri parametrizabile, precum i de circuite care au fost deja testate i optimizate. Aceste elemente sunt de regul protejate ca nuclee de proprietate intelectual (IP cores), fiind vndute fie direct de productorul circuitului fie de firme ter e specializate cum ar fi Modelware sau QuickFlex. Pe de alt parte alte circuite predefinite sunt oferite pe gratis de comunit ile free and open source, ca produse deschise (open cores) de tipul GPL (general public license) sau BSD (Berkeley software distribution). Astfel de biblioteci acoper largi domenii de aplica ii: comunica ii (de exemplu High-level Data Link Control, PCI-X, Viterbi decoder), multimedia (video codecuri), procesoare de semnal (transformarea fast Fourier, filtre FIR, transporturi (Controller Area Network Bus), etc. B. Procesoare Soft Procesoarele soft au fost aplicate In acest domeniu de Xilinx (PicoBlaze i MicroBlaze) i de Altera (Nios iNios II). PicoBlaze este un microcontroler de 8 bi i de capacitate mic dar implementat cu un numr redus de blocuri logice. MicroBlaze corespunde unei arhitecturi RISC de 32 bi i cu un set standard de periferice. Procesorul Nios are o func ionare mai complex, cuprinznd chiar i posibilitatea adugrii de instruc iuni noi de ctre client (custom logic).

Rezultat

Fig. 2.13. Instruc iuni client n cazul procesorului Nios II C. Instrumente software Vnztorii de FPGA au dezvoltat n timp multe instrumente soft originale adresate tuturor activit ilor cerute de aplicarea FPGA-urilor. n general aceste produse includ nuclee IP periferice, instrumente pentru configurarea procesoarelor soft, instrumente pentru dezvoltarea de software (editoare, compilatoare, asambloare, editoare de legturi i depanatoare), depanatoare i testoare hardware/software i instrumente software i hardware pentru plcile de dezvoltare. Cteva astfel de produse sunt Embedded Development Kit (EDK) Xilinx, SOPC Builder i Nios II IDE (integrated development environment) Altera, System Designer Atmel i QuickWorks de la Quick Logic. De exemplu Xilinx EDK uureaz integrarea nucleelor IP hard utiliznd tehnologia onchip IBM CoreConnetBus i permite accelerarea algoritmilor prin Fast Simplex Link. Permite de asemenea depanri combinnd dou instrumente specifice: Sw Debugger i ChipScope Pro. Altera IDE include instrumente de dezvoltare (editare, construc ie i depanare) pentru Nios II iar SOPC Builder este orientat spre integrarea automat a componentelor sistem IP. O politic de succes n domeniu este adaptarea instrumentelor tradi ionale din domeniul ASIC. implementations have been adapted for FPGA. Aceste instrumente sunt focalizate n special pe RTOS (Real Time Operating Systems), depanatoare Hw/Sw i proiectare n C. n ceea ce privete RTOS, unele produse de succes sunt MontaVistaLinux, Mentor Graphics Nucleus i Wind River VxWorks, care sunt compatibile cu procesoarele Xilinx i Altera. Pe lng sistemul de operare n sine toate aceste instrumente includ software de modelare i de dezvoltare, cel mai adesea scris n limbajele VHDL, Verilog, C sau C++. Astfel de produse sunt Seamless FPGA i Catapult C Synthesis de la Mentor Graphics i Active-HDL de la Aldec.

2.3. Proiectarea i programarea FPGA


Definirea comportrii FPGA de ctre utilizator se face fie prin limbaje de tip HDL (hardware description language) fie, ca i n cazul majorit ii circuitelor electronice, prin scheme. Avantajul HDL apare n cazul structurilor foarte mari, deoarece ele pot fi definite doar prin specificarea numeric, fr a fi nevoie de desenarea manual a elementelor. Pe de alt parte reprezentarea schematic ofer o vizualizare mult mai bun a proiectului. n continuare, utiliznd un software din categoria EDA (electronic design automation), cum ar fi de exemplu Sistem Generator elaborat de Xilinx, se genereaz o list de conexiuni tehnologic (netlist). Lista de conexiuni este convertit n arhitectura circuitului printr-un proces numit placeand-route prin care se definesc pozi iile componentelor i legturile electrice dintre ele. Etapa place-and-route este realizat de obicei cu ajutorul unui software furnizat de ctre compania productoare a FPGA. Utilizatorul valideaz rezultatul ob inut prin analiza rspunsurilor n timp, simulri i alte metode de verificare. Odat ce fazele de proiectare i de validare sunt terminate, se genereaz fiierul binar surs de (re)configurare a FPGA, tot cu software-ul productorului. n continuare fiierul surs este prelucrat de software-ul productorului, fiierul rezultat fiind transferat circuitului FPGA prin interfa a serial JTAG. n cursul tuturor acestor faze rezultatele sunt verificate prin simulare. De fapt nsui Xilinx System Generator admite Simulink Matlab ca surs a descrierii func ionrii circuitului proiectat. Cele mai des utilizate HDL-uri sunt VHDL i Verilog, dei n ncercarea de a reduce complexitatea proiectelor, care este mai mult sau mai pu in echivalent cu proiectarea n limbaje de asamblare, exist actualmente o tendin de abstractizare, prin introducerea unor limbaje alternative.

2.4. Aplica ii FPGA


Aplica iile FPGA includ unele domenii esen iale pentru electronica modern: - DSP (digital signal processing) o categorie vast de aplica ii de procesare digital a semnalelor, dintre care cele mai cunoscute sunt: procesarea semnalelor audio i radio, recunoaterea vorbirii, a vocilor i a sunetelor, radar i sonar, procesarea ariilor de senzori, analiz spectral, analiza statistic a semnalelor, telecomunica ii, procesarea semnalelor biomedicale, seismice, etc. - Aplica ii n aviatic, aparatur militar, criptografie i radioastronomie; - Realizarea rapid a prototipurilor ASIC; - Imagistic, etc.; FPGA se utilizeaz cu bune rezultate n cazul aplica iilor de calcul de nalt performan , cum ar fi n cazul procesrilor FFT (Fast Fourier Transform), a calculului convolu ional i procesrilor paralele, avnd performan e superioare microprocesoarelor conven ionale. n general circuitele FPGA sunt recomandabile aplica iilor de tip vertical, care nu sunt obiectul produc iei de mas. n cazul produselor de mas este preferabil apelarea la ASIC, FPGA fiind utile doar n faza de realizare i testare a prototipurilor. Se poate afirma c aplica iile FPGA pot nlocui cu succes orice aplica ie de tip microprocesor sau DSP care nu necesit prelucrri n virgul mobil [8]. Avantajele lor strategice sunt calculul hardware paralel, reconfigurarea i capacitatea de a ngloba cu uurin produse hardware i software eterogene. Uurin a de adaptare la orice tip de periferice confer circuitelor FPGA statutul de principal platform de dezvoltare a aplica iilor SoC (system on chip). n continuare se propune o clasificare a aplica iilor FPGA.

A. Calculul configurabil Calculul configurabil face apel la conceptul de calculator configurat de utilizator FCCM (full custom computing machine), a crui hardware poate fi reorganizat pentru a fi adaptat la algoritmii i la fluxurile de date prelucrate ntr-un anumit moment. FCCM sunt utiliza i pentru algoritmi cu multe calcule aritmetice, cu multe procesri n paralel sau care presupun multiple secven e de operare. Astfel de aplica ii pot fi exemplificate printr-un sistem fuzzy cu implementare FPGA pentru conducerea automat a unui robot mobil [9] sau printr-un un sistem de conducere microprogamabil a proceselor, n care predomin circuitele bistabile, multiplexoarele, numrtoarele i blocurile de memorie [10]. Un astfel de sistem realizeaz n fapt un automat programabil pe un singur cip, cu avantajele care decurg din aceast tehnologie: miniaturizare extrem, fiabilitate, consum energetic redus, etc.

Un coprocesor de achizi ii i generare de date reconfigurabil, care poate fi conectat la PC prin USB este descris n referin a [11]. El poate fi configurat pentru a implementa o serie de instrumente de msur cum ar fi osciloscopul sau analizorul de stri logice. Procesele rapide sunt procesate de FPGA n timp ce vizualizarea i panoul de comand sunt rezidente n PC. National Instruments ofer platforme FPGA care pot fi integrate n mediul LabView pentru aplica ii cum ar fi generatoare de semnal, variatoare de tura ie, etc. care depesc n mod clar performan ele altor tehnologii.

B. Sisteme reconfigurabile dinamic Reconfigurarea FPGA poate fi ob inut prin dou procedee principale: 1) Reconfigurarea prin compilare, care poate fi fcut n afara func ionrii normale, cu scopul de a aduga sau terge componente noi sau pentru depanare. 2) Reconfigurarea dinamic RTR (run-time-reconfiguration), executat n timpul rulrii. Ea poate fi lansat din interiorul aplica iilor sau prin stimuli externi. La rndul ei RTR poate fi global sau local. RTR se aplic de obicei n cazul folosirii mai multor variante de periferice (mobile/wireless) pentru optimizarea conectrii sau cu scopul reducerii consumului de energie, prin deconectarea circuitelor care nu sunt necesare la un moment dat. Reconfigurri dinamice n timp real cum ar fi de exemplu cele necesare autoadaptrilor sistemelor de conducere sunt de asemenea posibile, dar ele necesit o mare aten ie, pentru a evita pericolul unor rspunsuri tranzitorii necontrolate.

C. Prototipare rapid Prototiparea FPGA const din emularea schemelor circuitelor digitale complexe prin dispozitive programabile, n vederea testrii lor. Avantajele acestei abordri sunt evidente: - cost redus i posibilitatea modificrilor/mbunt irilor rapide; - scurtarea ciclului de proiectare datorit utilizrii simulrilor; - posibilitatea migrrii imediate nspre ASIC. Exist i unele inconveniente relativ minore: - viteza de func ionare a prototipurilor FPGA este mai mic dect a circuitelor ASIC. - n aplica iile complexe sunt necesare mai multe platforme FPGA; conectarea la instrumente de nivel nalt, de exemplu Simulink/Matlab, necesit conversii preten ioase [12]. - unele structuri hardware sunt greu de emulat, de exemplu memoriile de mare capacitate. - compatibilitatea codurilor HDL ntre ASIC i FPGA nu este garantat.

D. Comunicare i interfa are Aplica iile din domeniul comunica iilor necesit vitez, consum redus, calitate i adaptabilitate la noi standarde i la protocoale care evolueaz rapid. FPGA-urile aduc n acest domeniu reducerea timpului de acces la pia a produselor i adaptabilitatea rapid fr modificri hardware.

E. Prelucrarea digital a semnalelor Circuitele specializate n prelucrarea digital a semnalelor DSP au unele dezavantaje: memorie i format pentru date fixe, magistrale pu ine i neperformante, numr redus de unit i aritmetice cum ar fi cele de tip MAC (multiply accumulate), resurse limitate intrare/ieire, etc. n aceast privin FPGA ridic unele probleme de programare, dar ofer n schimb configura ii flexibile, procesri paralele i interfe e de calitate. n figura urmtoare este ilustrat deosebirea dintre tehnologia DSP cu un singur MAC i FPGA n domeniul filtrrii numerice.

Fig. 2.14. Implementarea unui filtru FIR (finite impulse response) cu 256 coeficien i printr-un DSP cu o unitate MAC a) respectiv cu un FPGA cu MAC-uri multiple [8]

O alt variant de abordare este nglobarea blocurilor DSP n sisteme complexe FPGA. Dintre aplica iile de prelucrare digital a semnalelor care sunt men ionate n literatur [8] putem enumera: - variatoare de tura ie de mare precizie pentru motoare asincron de mare tura ie; - generatoare PWM trifazate; - filtre active adaptive; - viziune artificial, etc.

3. Limbajul VHDL

3.1. Istoric
VHDL (Very high speed integrated circuits Hardware Description Language) este un limbaj utilizat pentru descrierea sistemelor electronice hardware pornind de la structura lor de blocuri i interconexiunile dintre ele sau de la modul de func ionare. El a devenit cel mai important instrument software din domeniul proiectrii circuitelor electronice digitale pentru c permite descrierea executabil i portabil a proiectelor. Istoria VHDL este legat de Departamentul Aprrii din SUA care a decis n 1980 s lanseze un limbaj unificator n domeniul descrierii circuitelor electronice. n 1985apare prima versiune numit VHDL 7.2, produs de un consor iu Intermetrics, IBM i Texas Instruments. ncepnd din 1986 toate drepturile asupra VHDL au fost transferate ctre IEEE (the Institute of Electrical and Electronics Engineers), care l standardizeaz n 1987 (VHDL IEEE 1076-1987). VHDL permite descrierea unui sistem electronic de la nivelul structural/arhitectural pn la nivelul por ilor logice. El permite simularea func ionrii sistemelor precum i specificarea tehnologiilor i detaliilor de fabrica ie. Dintre avantajele acestui limbaj se pot enumera [13]: Disponibilitatea public. VHDL a extins n domeniul public un concept provenit din tehnica militar, producnd un efect profund asupra electronicii, declannd o etap de progrese semnificative. Suport pentru toate metodologiile de proiectare (top-down sau bottom-up cu variantele lor) i toate tehnologiile de proiectare (asincrone, sincrone, PLA sau random logic). Independen fa de procesul i tehnologia de implementare fizic.

3.2. Proiectarea top-down a sistemelor digitale


Metodologia top-down este proprie sistemelor cu grad crescut de complexitate. Descrierea unui sistem electronic poate fi fcut la diverse nivele ierarhice. Nivelul inferior corespunde descrierii circuitelor integrate, dup care urmeaz nivelele plcii (pe care sunt mai multe circuite integrate), a modulului (compus din mai multe plci) i a sistemului n ntregul su. n mod tradi ional dezvoltarea unui sistem electronic se face de jos in sus (bottom-up), fiecare nou nivel fiind validat prin testare, conform specifica iilor.

Fig. 3.1. Sinteza sistemelor electronice No iunile de baz din domeniul sintezei sistemelor electronice sunt: - Specificarea: descrierea neambigu i determinist a intrrilor, ieirilor i rela iilor dintre ele; - Implementarea: modul n care se realizeaz fizic legturile dintre intrri i ieiri; - Sinteza: procesul automat prin care se realizeaz o implementare plecnd de la specifica ii; - Verificarea: procesul prin care proiectantul se asigur c implementarea este conform cu specifica iile; Prin recurgerea la conceptul de descriere a hardware-ului devine posibil i abordarea de sus n jos (top-down). n cadrul acestei metodologii este posibil dezvoltarea sistemelor chiar dac nu se dispune de implementri ale componentelor sale, opernd n schimb cu descrierile lor func ionale. Aceasta permite proiectan ilor o flexibilitate maxim n parti ionarea proiectelor i studierea lor prin simulri chiar nainte de fazele de implementare. Se reduce astfel la maximum numrul de cicluri de depanare-mbunt ire a prototipurilor. De asemenea se faciliteaz reutilizarea unor pr i din proiecte anterioare, care sunt deja validate func ional. Metodologia top-down presupune ca toate nivelele de implementare s fie documentate att structural (netlist) ct i func ional. Limbajul VHDL a fost conceput tocmai n acest sens. n plus, fiecare entitate VHDL trebuie s aib asociat un set de metode de testare (test bench) pe baza cruia s se poat asigura simularea corect a proiectului. Desigur, metodologia top-down nu este folosit exclusiv, abordrile uzuale fiind de fapt mixte, echilibrul dintre dezvoltrile bazate pe descrierile prin specifica ii de nivel nalt i cele de la nivel de component standardizat fiind dinamic.

3.3. Cum arat o descriere VHDL


n VHDL o component hardware (ncepnd de la o poart pn la un microprocesor) este reprezentat prin conceptul de entitate, creia i se asociaz o arhitectur. Entitatea are n primul rnd scopul de a defini conexiunile exterioare, denumite porturi. Pe lng definirea numelor porturilor se definesc direc ia datelor (IN, AUT, INOUT) i tipul lor (INTEGER, BIT, etc.) Descrierea arhitecturii poate fi func ional (se descrie comportamentul entit ii) sau structural. Caracteristic VHDL-ului este posibilitatea ca cele dou descrieri s fie utilizate simultan, sub aceeai interfa . n cele ce urmeaz se exemplific modul de descriere a unui circuit logic simplu. n prima seciune se definete entitatea exemplu. ENTITY exemplu IS -- declaraia porturilor PORT(a, b, c : IN Bit; f : OUT Bit) ; END exemplu; n continuare se definete comportamentul entit ii (descriere func ional). ARCHITECTURE ex_func OF exemplu IS BEGIN F <= (a OR b) AND c AFTER 5 ns ; END ex_func ; Entitatea exemplu con ine 4 conexiuni externe, toate de tip binar (bit). Pe lng func ia logic F propriu zis se mai specific i valoarea ntrzierii introdus de circuit, de 5 sec. Reprezentarea grafic a descrierii apare n Fig. 3.1.

a b c Fig. 3.1. Descrierea func ion f <= (a OR b) AND c f

Varianta structural a aceluiai circuit este urmtoarea. ARCHITECTURE ex_struct OF exemplu IS -- declaraia de componente COMPONENT and_gate PORT (a1, a2 : IN Bit ; a3 : OUT Bit) ; END COMPONENT ; COMPONENT or_gate PORT (o1, o2 : IN Bit ; o3 : OUT Bit) ; END COMPONENT ; -- declaraia de semnal local SIGNAL d : Bit ; BEGIN -- descriere structural g1 : or_gate PORT MAP (a, b, d) ; g2 : and_gate PORT MAP (c, d, f) ; END ex_struct ; Dup cum se observ arhitectura ex_struct const dintr-o list de componente definite la rndul lor prin binomul entitate arhitectur. Definirea por ii I este prezentat n continuare, cea a por ii SAU fiind asemntoare. ENTITY and_gate IS PORT(a1, a2 : IN Bit; a3 : OUT Bit) ; END and_gate; ARCHITECTURE and_gate OF and_gate IS BEGIN a3 <= a1 AND a2 AFTER 2 ns ; END and_gate ;

a b c

g1

d g2 f

Fig. 3.1. Descrierea structural

Bibliografie
[1]. [2]. [3]. [4]. [5]. [6]. [7]. http://en.wikipedia.org/wiki/FPGA http://www.eecg.toronto.edu/~vaughn/challenge/fpga_arch.html http://www.eetimes.com/conf/dac/showArticle.jhtml?articleID=164302400 http://www.xilinx.com/bvdocs/whitepapers/wp245.pdf http://seekingalpha.com/article/85478-altera-and-xilinx-report-the-battle-continues Xilinx ISE WebPACK, http://www.xilinx.com/ise/logic_design_prod/webpack.htm Quartus II Web edition software, https://www.altera.com/support/software/download/altera_ design/ quartus_we/dnl-quartus_we.jsp. [8]. J.J. Rodriguez-Andina, M.J. Moure, M.D. Valdes. Features, Design Tools, and Application Domains of FPGAs, IEEE Transactions on Industrial Electronics, vol. 54, nr. 4, august 2007, pag. 1810-1823. [9]. T.H.S. Li, S.J. Chang, Y.X. Chen. Implementation of human-like driving skills by autonomous fuzzy behavior control on an FPGA-based car-like mobile robot, IEEE Trans. Ind. Electron., vol. 50, nr. 5, oct. 2003, pag. 867880. [10]. B.W. Bomar. Implementation of microprogrammed control in FPGAs, IEEE Trans. Ind. Electron., vol. 49, nr. 2, aprilie 2002, pag. 415422. [11]. C. Quintns, M.J. Moure, M.D. Valds, E. Mandado. A virtual instrumentation laboratory based on a reconfigurable coprocessor, IEEE Trans. Instrum. Meas., vol. 55, nr. 2, apr. 2006, pag. 635645. [12]. C. Dufour, S. Abourida, J. Blanger. Real-time simulation of permanent magnet motor drive on FPGA chip for high-bandwidth controller tests and validation, Proc. IEEE ISIE, iul. 2006, pag. 25912596.\ [13]. Gh. Toace, D. Nicula. Circuite integrate digitale. Limbajul de descriere hard VHDL, Teora, Bucureti, 1996.

Você também pode gostar