Escolar Documentos
Profissional Documentos
Cultura Documentos
Electronic digital
- Curs pentru uzul studen ilor -
1. Circuite digitale
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:
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
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:
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
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.
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.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
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.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.
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.
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.
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.
reconfigurabile pot fi realizate i n tehnologii hibride, ca i n cazul microprocesorului Stretch S5000 care ofer microprocesoare i arii FPGA pe acelai cip.
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 $
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
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.
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
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.
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.
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.
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
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.