Documente Academic
Documente Profesional
Documente Cultură
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;
111
112
Slice 0
LUT
Carry
PR
D
Q
CE
CL
LUT
Carry
D PR
Q
CE
CL
113
114
115
116
117
IOB
Reg
Intrare
DDR MUX
OCK1
Reg
ICK1
Reg
OCK2
3-state
Reg
ICK2
Reg
DDR MUX
OCK1
PAD
Reg
OCK2
Ieire
118
119
SISTEM
LOGIC
120
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
121
Editor de texte
utilizator
Editor
schematic
Ecuaii
booleene
Fiier netlist
(.XNF)
Fiier netlist
(.XNF)
Unificare
Fiier .XNF
Constrngeri utilizator
Fiierul .LCA
(structura
proiectului)
Fiierul de
configurare a PROM-ului
SIMULARE
Stimuli aplicai intrrilor
fiierului netlist
Simulator
Rezultatele
simulrii
Verificare in-circuit
a proiectului
Proiectul final
122
123
124
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.
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
AN3
E13
AN2
F14
AN1
G14
AN0
D14
127
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
128
SW7
K13
SW6
K14
SW5
J13
SW4
J14
SW3
H13
SW2
H14
SW1
G12
SW0
F12
129
Clk
CLOCK
In (de la
buton)
Intrare (de la
un buton)
Ieire
(generat de
circuitul de
debouncing)
Circuit de
debouncing
Out
Timp
BTN2
L13
BTN1
M14
BTN0
M13
130
LD7
P11
LD6
P12
LD5
N12
LD4
P13
LD3
N14
LD2
L12
LD1
P14
LD0
K12