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

Intrare
DDR MUX

OCK1

Reg
ICK1

Reg
OCK2

3-state

Reg
ICK2

Reg

DDR MUX

OCK1

PAD

Reg
OCK2

Ieire

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.)

IMPLEMENTARE
Translatare

Simulare
funcional

Simularea
codului HDL la
nivel RTL

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

Ecuaii
booleene

Fiier netlist
(.XNF)

Fiier netlist
(.XNF)

Unificare

Fiier .XNF

Constrngeri utilizator

Fiierul .LCA
(structura
proiectului)

Fiierul hart de bii


de configurare a
dispozitivului FPGA
(.BIT)

Fiierul de
configurare a PROM-ului

SIMULARE
Stimuli aplicai intrrilor
fiierului netlist

Simulator

Rezultatele
simulrii

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.

129

FAMILIA DE CIRCUITE FPGA XILINX

Clk

CLOCK

In (de la
buton)

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

Circuit de
debouncing

Out

Timp

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