Sunteți pe pagina 1din 21

LUCRAREA NR.

12
FAMILIA DE CIRCUITE FPGA XILINX
1. Scopul lucrrii Se prezint familia de dispozitive programabile FPGA a firmei XILINX, productorul cel mai important pe plan mondial. Se studiaz celula logic fundamental, logica de interconectare i celula de intrare-ieire. Se studiaz metodologiile i fluxul de proiectare folosind instrumentele software specifice din pachetul ISE Foundation: utilitarele FPGA Editor, Timing Analyser, Floorplanner, Hardware Debugger.

2. Consideraii teoretice Structura de celule logice programabile la familia de dispozitive FPGA a firmei XILINX se numete LCA (Logic Cell Array). Tehnologia de realizare fizic a acestor dispozitive este CMOS. Funciile interne ale tuturor celulelor din FPGA sunt identice i pot fi configurate prin intermediul unor celule SRAM (Static RAM) care comand att configuraia intern a CLB-urilor (Configurable Logic Block) ct i interconectarea celulelor (rutarea semnalelor n interiorul LCA). Astfel, ntr-un dispozitiv FPGA se pot configura dou aspecte: logica activ funcia logic realizat de ctre fiecare celul logic (slice); reeaua de interconectare se poate alege care celule logice s fie conectate i pe care canal de rutare (pot exista mai multe variante). Avantajele stocrii configuraiei dispozitivelor FPGA cu ajutorul unor memorii SRAM sunt urmtoarele: dispozitivul FPGA este astfel re-programabil acelai dispozitiv fizic poate realiza o alt funcie logic dup o anumit perioad de timp, atunci cnd se decide schimbarea rolului su n cadrul aplicaiei n care este integrat. Numrul de re-configurri este nelimitat;

FAMILIA DE CIRCUITE FPGA XILINX

111

dispozitivul FPGA este reconfigurabil dinamic acest concept se refer att la faptul c se poate schimba configuraia sa n timpul rulrii (run-time reconfiguration) ct i la existena unor dispozitive care permit stocarea mai multor contexte de configurare n acelai integrat; pentru configurarea dispozitivului FPGA se folosesc procese (protocoale) standard de scriere n memorii SRAM. Printre dezavantajele acestei tehnologii putem enumera: memoriile SRAM au un consum de energie relativ ridicat; exist posibilitatea de a se citi (de ctre un intrus) coninutul memoriilor SRAM, fapt pentru care este mai dificil asigurarea proprietii intelectuale aferente. 2.1 Logica activ a dispozitivelor FPGA Firma XILINX a creat de-a lungul timpului mai multe familii de dispozitive FPGA: seriile XC2000, 3000, 4000, 6200, Spartan, Spartan 2, Spartan 3, Spartan 6, Virtex, Virtex 2, Virtex 4, Virtex 5, Virtex 6, Virtex 7. Structura intern a acestora a evoluat, susinut fiind i de progresele tehnologice nregistrate n domeniul microelectronicii. Totui, conceptele fundamentale au rmas aceleai, aprnd detalii noi legate de implementare, capacitate, organizare arhitectural etc. n cele ce urmeaz se vor prezenta principalele elemente constitutive ale dispozitivelor FPGA XILINX n general i ale familiei Spartan3E n particular. Celula logic fundamental se numete slice. Mai multe slice-uri sunt grupate ntr-un CLB; CLB-urile constituie matricea LCA. Fiecare slice este constituit din urmtoarele elemente: Un bloc logic combinaional principal, format din memorii cu 4 pn la 6 linii de adres (n funcie de tipul de dispozitiv FPGA) i coninutul pe un singur bit aceste memorii se numesc lookup tables (LUTs); Mai multe bistabile (2 pn la 8, n funcie de familie). Aceste bistabile pot fi configurate fie ca bistabile de tip zvor (Latch), fie ca bistabile de tip Flip-Flop cu comutare pe frontul ascendent sau descendent (se poate opta pentru una din cele dou variante); Un bloc logic combinaional secundar, alctuit din pori logice, multiplexoare i mai multe ci de semnal locale pentru multiplexare i interconectare (n special logica dedicat de carry, pentru transportul semnalelor din blocurile aritmetice). De

112

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

menionat c n dispozitivele FPGA XILINX, liniile de carry sunt dispuse doar pe vertical. Schema arhitectural de principiu a unui slice este prezentat n figura 12.1. Aceast schem a fost introdus o dat cu apariia familiei XC4000 i este schema unui CLB. Ulterior, o dat cu apariia de noi familii de dispozitive FPGA, pe msur ce un CLB a nceput s conin mai multe slice-uri, aceasta devine schema unui slice (celula logic atomic). n figur se observ cele 3 elemente constitutive principale: LUT-urile, bistabilele i logica de carry, precum i elementele de conectare (buffer-e tri-state, repetoare) la magistralele de rutare din cip.

Slice 0 LUT Carry


PR D Q CE CL

LUT

Carry

D PR Q CE CL

Figura 12.1 Schema de principiu a unui slice din familia de circuite FPGA Xilinx Numrul slice-urilor dintr-un CLB variaz n funcie de familia de dispozitive FPGA: de exemplu, la familia XC4000 exist un singur slice n fiecare CLB, iar la Spartan3E exist 4 slice-uri ntr-un CLB. Dup cum s-a menionat anterior, elementul combinaional principal al slice-ului este de fapt o memorie RAM static, realizat n tehnologie CMOS. Ea realizeaz un tabel de adevr al oricrei funcii Booleene de variabilele de intrare. Variabilele de intrare sunt aplicate pe liniile de adres ale RAM-ului, iar liniile de ieire constituie ieirile funciilor Booleene. Slice-ul este deci o structur logic universal (realizeaz orice funcie de n variabile, unde n este numrul variabilelor de intrare). n dispozitivele din familia Spartan3E exist 2 slice-uri ntr-un CLB. Structura intern a unui astfel de slice este prezentat n figura 12.2.

FAMILIA DE CIRCUITE FPGA XILINX

113

Figura 12.2 Structura simplificat a unui slice din seria Spartan3E O dat cu apariia familiei Virtex, performanele dispozitivelor FPGA XILINX au crescut considerabil. Capacitatea logic a dispozitivelor Virtex este mult mai mare dect cea a familiilor precedente, fapt posibil datorit avansului tehnologic nregistrat n intervalul de timp dintre apariia familiilor. Frecvena de lucru poate fi de 400 MHz, de exemplu n cazul familiei Virtex6 (aceast valoare poate crete prin folosirea judicioas a anumitor componente interne cum ar fi memoriile dual-port pn la valori de 1600 MHz). Dispozitivele Virtex sunt perfect compatibile cu standardul PCI, iar interfeele pot funciona la frecvene de 33 MHz sau 66 MHz.

114

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

n plus fa de familia anterioar, dispozitivele Virtex au fost dotate cu urmtoarele elemente constructive speciale: Blocuri de memorie dedicate, numite BlockRAM (capacitatea acestor blocuri a crescut de la o familie la alta, ajungnd de la 4 Kbits de bii la familia Virtex la 36 Kbits la familia Virtex6); Buffere tri-state, numite BUFT, asociate fiecrui CLB, care controleaz resurse segmentabile, dedicate, de rutare; DCM Digital Clock Manager (blocuri dedicate pentru controlul distribuiei semnalului de tact n cip). Acestea conin DLL-uri (Delay Locked Loops) blocuri cu ajutorul crora se poate elimina fenomenul de clock skew; Multiplicatoare combinaionale cu operanzii pe 18 bii (rezultatul pe 36 de bii). La familia Virtex6 au aprut blocurile DSP48E1, care conin un multiplicator dedicat pe 2518 bii, n complementul lui 2, precum i un acumulator pe 48 de bii, ambele capabile s funcioneze la o frecven de 600 MHz. Familia Virtex-II PRO a produs o nou revoluie n domeniu, fiind numit Platform FPGA. Aceste dispozitive ofer utilizatorului, pe lng toate caracteristicile familiei Virtex-II, procesoare PowerPC programabile, nglobate n cip. Dispozitivele Virtex-II PRO sunt compatibile cu cele mai multe standarde de intrare-ieire dintre cele mai rspndite la ora actual n domeniul transmisiei datelor. Familia Spartan constituie o versiune simplificat a familiei Virtex corespunztoare, aici renunndu-se la anumite blocuri constructive, cum ar fi blocurile de memorie separate (BlockRAM) pentru a se crea astfel cipuri mai ieftine (nu toi utilizatorii au nevoie de toate blocurile constructive, unele foarte evoluate, din familia VIRTEX). La familia Spartan3E, frecvena operaional maxim este de 200 MHz. Principalele caracteristici constructive ale dispozitivelor Spartan3E sunt urmtoarele (valorile din paranteze indic variaia n funcie de tipul de dispozitiv FPGA din familie): Blocuri BlockRAM cu capacitatea de 18 Kbits de bii (ntre 72 Kbits i 648 Kbits); DCM-uri Digital Clock Managers (ntre 2 i 8); Multiplicatoare combinaionale cu operanzii pe 18 bii, cu rezultatul pe 36 de bii (ntre 4 i 36); Intrri / ieiri disponibile utilizatorului (ntre 108 i 376); acestea sunt grupate n bancuri i suport mai multe standarde de Intrare / Ieire (PCI, DDR333, RSDS, mini-LVDS); Numr mare de slice-uri disponibile (ntre 960 i 14.752).

FAMILIA DE CIRCUITE FPGA XILINX

115

La toate dispozitivele FPGA XILINX, RAM-urile (att cele din slice-uri ct i cele care configureaz reeaua de interconectare) sunt volatile i trebuie ncrcate nainte de utilizare. ncrcarea se face la resetarea sistemului, n unul din urmtoarele moduri: Automat, de la un PROM serial; Dintr-un microprocesor; De la un PROM paralel. RAM-ul poate fi reconfigurat ulterior pentru a modifica funcionalitatea. Astfel, LCA poate s-i transforme configuraia din mers, permind aplicaii de sisteme hardware reconfigurabile. O limitare a slice-urilor (comun de altfel tuturor productorilor de dispozitive FPGA) o constituie limea (dimensiunea) funciilor combinaionale formate cu variabilele de intrare ale RAM-ului. Aceast problem se poate rezolva folosind mai multe slice-uri (de exemplu, prin cascadare) sau folosind buffer-e tri-state exterioare CLB-urilor. Buffer-ele sunt asociate unor ci de interconectare lungi, folosite pentru propagarea unor semnale globale importante. n general, slice-urile sunt foarte potrivite pentru implementarea unor funcii care necesit puine variabile de comutare / bistabil (de exemplu unele numrtoare mici, generatoare de secven etc.). De asemenea, sunt adecvate pentru implementarea unor sisteme care necesit interconectare local (de exemplu registre de deplasare, generatoare de numere pseudo-aleatoare, codificatoare, decodificatoare etc.) i pentru matrice sistolice simple. CLB-urile sunt blocuri logice de granularitate mare. n consecin, la programarea lor se irosete o parte din logica disponibil n celul. Este sarcina uneltelor software de a optimiza utilizarea CLB-urilor. 2.2 Interconectarea n LCA exist un RAM care constituie memoria de interconectare, n care fiecare bit este dedicat controlului unui punct de conectare intern (PIP Programmable Interconnection Point). O parte din celulele acestui RAM controleaz multiplexoarele de interconectare din interiorul fiecrui CLB, n timp ce celelalte gestioneaz rutarea semnalelor ntre CLB-uri, fcnd conexiuni prin PIP-uri. Cea mai eficient conectare este cea direct, la CLB-urile vecine de la Nord, Vest, Sud i Est. Pentru aceasta ns, trebuie ca celulele adiacente s aib funcii adecvate, care s se preteze acestei interconectri. Exist mai multe tipuri de interconectri posibile:

116

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

1. General purpose interconnect interconectarea se face printr-un caroiaj de linii metalice situate ntre CLB-uri. Lungimea lor este mic. Liniile sunt att verticale ct i orizontale i se intersecteaz n matrice de comutare. Cu matricele de comutare sunt permise ramificri multiple. De exemplu, la seria XC4000, aceste matrice arat ca n figura 12.3:

Figura 12.3 Matrice de interconectare la FPGA-urile Xilinx XC4000 Fiecare tranzistor din aceast matrice este comandat de cte un bit din RAM-ul care controleaz interconexiunile. 2. Long line interconnect sunt justificate de congestia care apare deseori la liniile de tipul general purpose interconnect. Aceste linii se ntind pe ntreaga lungime sau lime a cipului i nu intr prin matricele de comutare. Sunt ideale pentru a furniza semnalul de ceas CLB-urilor, evitnd n mare msur defectele de tipul clock skew (alunecarea ceasului sosirea acestuia cu ntrziere la componentele logice la care ar trebui s ajung simultan). Alunecarea (skewing) se reduce folosind buffer-e globale care acceseaz direct liniile lungi. 3. Dedicated carry lines sunt resurse de rutare dedicate distribuiei semnalului de transport mai ales n cadrul circuitelor aritmetice, la care propagarea acestui semnal este foarte important pentru corectitudinea rezultatului final i pentru vitez. 4. Dedicated clock lines sunt resurse de rutare dedicate distribuiei semnalului de tact (clock) n interiorul cipului, pe linii complet separate de magistralele pe care se propag semnalele logice comune. Acestea sunt linii de mare vitez de-a lungul crora exist plasate repetoare i amplificatoare de semnal, precum i blocuri DCM. Fiecare CLB are alturi buffer-e tri-state care acceseaz liniile lungi i formeaz semnalele de magistral (bussed signals) pentru a multiplexa ieirile CLB-urilor.

FAMILIA DE CIRCUITE FPGA XILINX

117

2.3 Intrri i ieiri Cipul FPGA conine, pe lng logica activ intern i reeaua de interconectare, un anumit numr de blocuri de intrare / ieire numite IOBs (Input / Output Blocks). IOB-urile suport i ele anumite configurri, n special cele legate de slew rate, direcia fluxului de informaie i standardele electrice. La nceput, configuraiile minimizau numrul de ci de ieire din cipul FPGA, deoarece acestea ocupau mult spaiu fizic. Totui, determinarea numrului exact de ieiri necesare pentru a satisface toi proiectanii era imposibil. La LCA-urile XILINX, strategia const n a face cei mai muli pini s fie bidirecionali. n figura 12.4 este prezentat structura principial a celulei fundamentale de intrare / ieire la circuitele din seria Spartan 3E. Se disting urmtoarele elemente: Pe calea de intrare exist dou registre DDR (Double Data Rate) registre cu ajutorul crora se efectueaz transferul datelor att pe frontul ascendent ct i pe frontul descendent al semnalului de tact; Pe calea de ieire exist: o dou registre DDR; o dou registre DDR pentru validarea ieirilor tri-state. Semnale separate de tact (clock) i clock enable pentru intrri i ieiri; Semnale de Set i de Reset partajate.

IOB
Reg
OCK1

Intrare
DDR MUX Reg
ICK1

Reg
OCK2

3-state

Reg
ICK2

Reg
OCK1

DDR MUX

PAD
Ieire

Reg
OCK2

Figura 12.4 Structura principial a celulei de intrare-ieire a dispozitivelor FPGA XILINX Spartan3E

118

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Intrrile i ieirile pot fi directe sau secveniale (buffered, adic trecute printr-un registru). n plus, la ieire se poate controla aa-numita slew-rate (viteza de trecere de la starea Low la starea High i invers, n momentul cnd un semnal i schimb valoarea). n modul de lucru (setarea) low output slewing rate, semnalul este forat s creasc mult mai ncet dect n modul de lucru (setarea) high output slewing rate. Figura 12.5 prezint structura detaliat a celulei fundamentale de intrare / ieire la circuitele din seria Spartan 3E.

Figura 12.5 Structura celulei de intrare-ieire a dispozitivelor FPGA Xilinx Spartan3E

FAMILIA DE CIRCUITE FPGA XILINX

119

n celula de intrare-ieire exist n plus un circuit numit boundary scan care este invizibil pentru proiectant n regimul de lucru normal. n regimul de lucru de test, el permite celulelor de intrare-ieire s fie configurate ca un registru de deplasare mare. Registrul de deplasare formeaz un inel care izoleaz cipul, fiind capabil s capteze datele direct la pini. Dac un pin este de intrare pentru cip, bistabilele capteaz datele din lumea exterioar. Dac pinul este o ieire, bistabilul capteaz date din interiorul cipului. Aplicarea de stimuli cipului se poate face prin ncrcarea serial a registrului de deplasare astfel nct pinii de intrare s primeasc stimulii coreci. Reaciile la aceti stimuli sunt generate pe urmtorul tact i sunt captate la pinii care sunt configurai ca pini de ieire. Boundary scan mbuntete testabilitatea circuitului imprimat PCB (Printed Circuit Board) care l folosete, deoarece se poate testa placa cu un minimum de pini i circuite adiionale (figura 12.6).

SISTEM LOGIC

Figura 12.6 Circuitul de test boundary scan 2.4 Instrumente software Etapele de proiectare a sistemelor numerice cu circuite FPGA sunt cele prezentate n figura 12.7. Parcurgerea lor ar fi extrem de dificil n lipsa asistenei oferite de ctre un pachet software specializat. Fiecare productor de dispozitive FPGA ofer un mediu de dezvoltare software integrat menit s faciliteze proiectarea. Unele module din fluxul generic de proiectare pot fi create i de tere companii (de exemplu, editorul i simulatorul aferent unui limbaj de descriere hardware HDL), dar de regul etapele din faza de Implementare sunt proprietatea companiei productoare a dispozitivelor FPGA respective.

120

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Planificare i estimare costuri

Specificare proiect (cod HDL, editor schematic etc.)

Simularea codului HDL la nivel RTL

IMPLEMENTARE Translatare Simulare funcional

Sintez (creare fiier netlist)

Mapare tehnologic Plasare i rutare

ndeplinirea constrngerilor temporale

Simulare temporal

Creare fiier .BIT

Figura 12.7 Etapele de proiectare a sistemelor numerice cu circuite FPGA Pachetul de programe de baz pentru proiectare cu circuite FPGA XILINX se numete ISE Foundation. Fluxul de proiectare este descris n figura 12.8. n acest pachet de programe sunt cuprinse trei mari categorii de operaii: introducerea proiectului (design entry); implementarea proiectului (design implementation); verificarea proiectului (design verification). Introducerea proiectului se poate realiza prin: editor schematic; limbaj de descriere hardware HDL - se pot utiliza limbajele de descriere hardware VHDL sau Verilog, care sunt incluse n pachetul ISE Foundation; instanierea unor module elementare pre-definite (numite primitive) se poate realiza att n editorul schematic ct i n editorul oricrui limbaj de descriere hardware; parametrizarea, urmat de generarea unor module complexe, n cadrul aplicaiei CORE GENERATOR; orice combinaie a metodelor de mai sus. Introducerea proiectului va fi ntotdeauna urmat, imediat, de ctre etapa de Sintez, n cadrul creia specificaia elaborat de ctre proiectant este optimizat, curat de logica redundant, verificat din punct de vedere sintactic etc. n mod normal, dup etapa de sintez proiectantul va dori s-i simuleze proiectul, fapt posibil att la nivel funcional ct i la nivel

FAMILIA DE CIRCUITE FPGA XILINX

121

comportamental. Exist att simulatoare integrate n mediul ISE Foundation (Simulator), ct i alte simulatoare produse de ctre tere companii, care pot fi cumprate i apoi integrate n acest mediu. Un astfel de exemplu este simulatorul ModelSIM, care este disponibil gratuit ntr-o versiune redus (cu limitri ModelSIM Starter). Implementarea proiectului se realizeaz prin rularea aplicaiilor de sintez, translatare, mapare tehnologic, plasare i rutare (n aceast ordine). Pentru verificarea proiectului exist disponibile mai multe instrumente: FPGA Editor (pentru plasare i rutare manual, sau doar pentru inspecia vizual a rezultatelor produse de instrumentele software), Floorplanner (pentru configurare manual a cipului), Timing Analyzer (pentru analiz temporal), XPower Analyser (pentru analiza consumului de energie al cipului) etc. Etapa final de ncrcare a proiectului n cipul FPGA se realizeaz cu ajutorul utilitarului IMPACT, care permite ncrcarea proiectului att direct n cipul FPGA, ct i ntr-o memorie de tip ROM, de unde configuraia poate fi preluat n cipul FPGA la prima sa punere sub tensiune sau ulterior.
Bibliotec de simboluri Editor de texte utilizator

Editor schematic Fiier netlist (.XNF)

Ecuaii booleene

Fiier netlist (.XNF)

Unificare SIMULARE Stimuli aplicai intrrilor fiierului netlist

Fiier .XNF

Constrngeri utilizator

Fiierul .LCA (structura proiectului)

Simulator

Fiierul hart de bii de configurare a dispozitivului FPGA (.BIT)

Rezultatele simulrii

Fiierul de configurare a PROM-ului

Verificare in-circuit a proiectului

Proiectul final

Figura 12.8 Fluxul de proiectare cu instrumentele software XILINX

122

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Aadar, mediul ISE Foundation conine toate aceste instrumente i le pune la dispoziia proiectantului n succesiunea lor fireasc. Totodat, diferitele module software pot fi rulate i independent (figura 12.9).

Figura 12.9 Mediul de proiectare XILINX ISE Foundation n paralel cu instrumentele prezentate pn acum, n ISE Foundation mai exist un pachet de utilitare software dedicat specificrii de constrngeri utilizator. Aceste constrngeri se pot specifica fie de la bun nceput, fie pe parcursul testrii proiectului. Se pot specifica att constrngeri temporale (de pild referitoare la frecvena operaional minim sau la ntrzierea maxim admisibil pe o anumit cale de semnal) ct i constrngeri spaiale (de pild, proiectantul poate dori ca un anumit bloc de mari dimensiuni s fie plasat ntr-o anumit regiune a matricei de CLB-uri).

FAMILIA DE CIRCUITE FPGA XILINX

123

Figura 12.10 prezint fereastra de procese a mediului ISE Foundation, n care se pot vedea o serie de utilitare disponibile n cadrul acestui pachet.

Figura 12.10 Procese n mediul de proiectare XILINX ISE Foundation

124

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

3. Desfurarea lucrrii 1. Se va implementa n placa Spartan3 Starter Kit Board un multiplexor 4:1, specificat n editorul schematic. Se va testa n continuare multiplexorul din punct de vedere funcional. 2. Dup simulare, se vor parcurge toii paii din fluxul de proiectare cu pachetul de programe ISE Foundation (specificare constrngeri, optimizare, mapare tehnologic, plasare, rutare). 3. Se va edita proiectul obinut cu ajutorul utilitarului Floorplanner. Ce remarcai? Realizai plasarea manual a proiectului. Cum este cel mai bine s se realizeze aceast plasare? 4. Se va edita proiectul obinut folosind utilitarul FPGA Editor. Ce remarcai? Cum a fost realizat plasarea i rutarea automat? Este convenabil aceast plasare i rutare? 5. Se va lansa utilitarul Timing Analyser. Cum se calculeaz ntrzierile de propagare n interiorul cipului? Cum putem interveni asupra acestor ntrzieri? Se va edita un fiier de constrngeri utilizator i se vor parcurge din nou etapele din fluxul de proiectare, de data aceasta innd cont i de constrngerile impuse. Cum se modific rezultatul final? 6. Lansai utilitarul IMPACT i ncrcai proiectul n cipul FPGA. Cum se pot testa ntrzierile de propagare din interiorul circuitului? 7. Verificai practic funcionarea multiplexorului 4:1 implementat n cipul FPGA. 8. Se va relua tot procesul parcurs pentru multiplexorul 4:1 pentru un numrtor binar sincron, bidirecional, pe 4 bii, cu Clock Enable, Reset sincron i Parallel Load asincron.

FAMILIA DE CIRCUITE FPGA XILINX

125

Anex
Ghidul utilizatorului plcii Spartan3 Starter Kit Board elemente de baz
Placa Spartan3 Starter Kit produs de compania american Digilent Inc. are ca element central un dispozitiv FPGA de tipul Spartan3-200 FT256. Pe lng cipul FPGA pe plac exist numeroase alte componente i module destinate realizrii experimentelor de laborator (prima destinaie a plcii este didactic). A.1 Cele patru afiaje cu LED-uri cu 7 segmente Placa Spartan-3 Starter Kit are patru afiaje cu LED-uri cu 7 segmente care sunt controlate de ctre pinii de intrare / ieire ai cipului FPGA, aa cum se arat n figura 12.11. Cele patru cifre afiate au n comun opt semnale de control, care comand fiecare segmentele LED individuale. Fiecare caracter individual are o intrare separat de control al anodului. Numrul pinului este nscris pe plac, ntre paranteze, pentru fiecare pin al cipului FPGA conectat la afiajul cu LED-uri. Pentru a face ca un LED s se aprind, trebuie ca att semnalul care controleaz segmentul individual respectiv, ct i semnalul de control al anodului, s fie n starea Low (0). n figura 12.11, de exemplu, afiajul din stnga prezint valoarea 2. Valorile numerice care corespund acestei cifre sunt marcate n stnga figurii. Semnalul AN3 de control al anodului este n starea Low, validnd astfel intrrile de control pentru afiajul din extremitatea stng. Intrrile de control ale segmentelor, de la A la G i DP (Decimal Point, punctul sau virgula zecimal), comand segmentele individuale care alctuiesc cifra afiat. Dup cum s-a menionat anterior, Valoarea Low face ca segmentul individual s fie aprins, iar valoarea High face ca segmentul s fie stins. Valoarea Low prezent pe semnalul de intrare A face s se aprind segmentul a al afiajului. Intrrile de control al anodului aferente celorlalte afiaje, AN[2:0] sunt toate n starea High, prin urmare aceste afiaje ignor valorile prezente pe intrrile de la A la G i DP.

126

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Figura 12.11 Semnalele de control ale afiajelor cu 7 segmente n tabelul 12.1 sunt redate conexiunile cipului FPGA care comand LEDurile individuale din componena afiajelor cu 7 segmente. Tabelul 12.2 prezint conexiunile care trebuie realizate pentru a valida funcionarea fiecrui afiaj. Tabelul 12.3 conine abloanele necesare afirii caracterelor hexazecimale. Tabelul 12.1 Conexiunile dintre dispozitivul FPGA i afiajul cu 7 segmente (active pe 0) Segmentul Pinul dispozitivului FPGA A E14 B G13 C N15 D P15 E R16 F F13 G N16 DP P16 Tabelul 12.2 Semnalele de control al anodului (active pe 0) Anode Control FPGA Pin AN3 E13 AN2 F14 AN1 G14 AN0 D14

FAMILIA DE CIRCUITE FPGA XILINX

127

Tabelul 12.3 Caracterele afiabile i valorile corespunztoare ale segmentelor de tip LED Caracter 0 1 2 3 4 5 6 7 8 9 A b C d E F a 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 b 0 0 0 0 0 1 1 0 0 0 0 1 1 0 1 1 c 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 d 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 e 0 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 f 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 g 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0

Semnalele de control al LED-urilor sunt multiplexate n timp, pentru a afia datele pe toate cele patru afiaje, dup cum se prezint n figura 12. 12. Utilizatorul trebuie s plaseze valoarea pe care dorete s o afieze pe intrrile de control ale segmentelor i s selecteze afiajul specificat trecnd semnalul de control al anodului asociat n starea Low. Datorit persistenei privirii, creierul uman percepe toate cele patru simboluri ca aprnd simultan, ntr-un mod similar celui n care creierul percepe imaginile de pe un televizor.

Figura 12.12 Semnalele de control al anodului folosite pentru afiarea unui simbol individual

128

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Aceast tehnic de scanare reduce numrul de pini de intrare / ieire necesari afirii celor patru simboluri. Dac s-ar fi rezervat cte un pin FPGA pentru fiecare segment individual, atunci ar fi fost necesari 32 de pini pentru a comanda toate LED-urile celor patru afiaje cu 7 segmente. Tehnica de scanare reduce numrul de pini de intrare / ieire necesari la 12. Dezavantajul acestei abordri este acela c logica dispozitivului FPGA trebuie s scaneze n mod continuu datele de afiat i s le trimit la afiaje preul pltit pentru a economisi 20 de pini de intrare / ieire este totui mic. A.2 Cele opt comutatoare cu 2 stri Placa Spartan-3 Starter Kit are opt comutatoare accesibile utilizatorului pentru a furniza intrri. Comutatoarele sunt localizate n partea de jos a plcii i sunt notate de la SW7 la SW0. Comutatorul SW7 este plasat n extremitatea stng, iar SW0 este plasat n extremitatea dreapt. Comutatoarele sunt conectate la cte un pin al dispozitivului FPGA asociat lor, dup cum se prezint n tabelul 12.4. Tabelul 12.4 Conexiunile comutatoarelor la pinii dispozitivului FPGA Comutator Pin FPGA SW7 K13 SW6 K14 SW5 J13 SW4 J14 SW3 H13 SW2 H14 SW1 G12 SW0 F12

Cnd este poziionat pe UP sau ON, comutatorul conecteaz pinul dispozitivului FPGA la VCC (starea High, deci 1 logic). Cnd este poziionat pe DOWN sau OFF, comutatorul conecteaz pinul dispozitivului FPGA la mas (starea Low, deci 0 logic). n mod normal, comutatoarele prezint o inerie mecanic de aproximativ 2 ms i nu exist nici un circuit activ de debouncing, dei acest circuit poate fi cu uurin adugat n interiorul circuitului implementat n dispozitivul FPGA de pe plac. Fenomenul de bouncing reprezint tendina oricror dou metale aflate n contact ntr-un dispozitiv electronic de a genera semnale multiple atunci cnd contactul tocmai se deschide sau tocmai se nchide. Circuitul sau schema de debouncing este deci orice fel de dispozitiv hardware sau software care garanteaz faptul c doar un singur semnal va fi acionat ca urmare a unei deschideri sau nchideri singulare a contactului respectiv.

FAMILIA DE CIRCUITE FPGA XILINX

129

CLOCK Intrare (de la un buton) Ieire (generat de circuitul de debouncing) Timp

Clk In (de la buton) Circuit de debouncing Out

Figura 12.13 Fenomenul de bouncing i circuitul de debouncing Cnd apsm o tast la calculator, ne ateptm ca acesta s nregistreze un singur contact. n realitate, se produce un contact iniial, un uor impuls sau o activare a contactului, apoi un alt contact cnd impulsul se termin, dup care apare un alt impuls, i aa mai departe (apar ca nite piuri sau spike-uri de tensiune). Un efect similar se produce atunci cnd un comutator fcut din contactul a dou metale este deschis (exist un regim tranzitoriu). Soluia uzual const n folosirea unui dispozitiv sau a unui program de debouncing care s asigure faptul c doar un singur semnal digital poate fi nregistrat n decursul unui interval de timp dat (de regul de ordinul milisecundelor). Circuitul de debouncing se poate realiza relativ uor cu ajutorul unui circuit asemntor unui registru de deplasare, care va filtra impulsurile nedorite. Circuitul primete la intrare mai multe mostre de valori ale butonului i modific ieirea numai dup ce, de-a lungul unui interval de timp dat, mai multe mostre consecutive au avut aceeai valoare. A.3 Cele patru comutatoare de tip push button Placa Spartan-3 Starter Kit are patru comutatoare de tip push button. Aceste butoane sunt plasate tot n partea inferioar a plcii, spre dreapta. Comutatoarele sunt notate cu BTN3 pn la BTN0, unde BTN3 este butonul situat n extremitatea stng, iar BTN0 este butonul situat n extremitatea dreapt. Comutatoarele de tip push button sunt conectate la cte un pin al dispozitivului FPGA, dup cum se prezint n tabelul 12.5. Tabelul 12.5 Conexiunile comutatoarelor de tip push button la pinii dispozitivului FPGA Push Button Pin FPGA BTN3 (Reset utilizator) L14 BTN2 L13 BTN1 M14 BTN0 M13

130

ANALIZA I SINTEZA DISPOZITIVELOR NUMERICE

Apsarea unui astfel de comutator genereaz un 1 logic pe pinul asociat lui la dispozitivul FPGA. Din nou precizm c nu exist nici un circuit activ de debouncing asociat butonului. Butonul din extremitatea stng, BTN3, este de asemenea pinul implicit de Reset utilizator. BTN3 se comport din punct de vedere electric n mod identic cu celelalte butoane din aceast categorie (BTN2, BTN1 i BTN0). Cu toate acestea, atunci cnd este cazul, BTN3 reseteaz proiectele demonstrative care au fost oferite de productor o dat cu placa FPGA. A.4 LED-urile Placa Spartan-3 Starter Kit are opt LED-uri individuale situate deasupra comutatoarelor de tip push button. LED-urile sunt notate cu LED7 pn la LED0. LED7 este LED-ul situat n extremitatea stng, iar LED0 este LED-ul situat n extremitatea dreapt. Tabelul 12.6 prezint legturile dintre pinii dispozitivului FPGA i LED-uri. Tabelul 12.6 Conexiunile LED-urilor la pinii dispozitivului FPGA Spartan3 LED Pin FPGA LD7 P11 LD6 P12 LD5 N12 LD4 P13 LD3 N14 LD2 L12 LD1 P14 LD0 K12

Catodul fiecrui LED este legat la mas printr-un rezistor de 270 . Pentru a aprinde un LED individual, semnalul de control asociat lui n dispozitivul FPGA trebuie s fie n starea High, adic polaritatea opus LED-urilor de tip segment din afiajele plcii.

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