8.6. Resurslarni optimallashtirish va avtomatik kod yaratish.
Neyron tarmoqni boshqarish uchun apparat platformasi sifatida Xilinx
kompaniyasining SPARTAN 6 SoC (XC6SLX9) FPGA sozlash bosma elektr
platasi tanlangan. FPGA uchun eng muhim apparat resurslari quyidagilardir:
mantiqiy yacheykalar soni, ko‘paytuvchilar soni va o‘rnatilgan xotira miqdori. Bu
FPGA uchun asosiy parametrlar 8.1 -jadvalda keltirilgan.
8.1 -jadval.
Spartan-6 LX oilasi FPGA-larining asosiy parametrlari
FPGA resurs turi
kristall turi
XC6S
LX4
XC6S
LX9
XC6SL
X16
XC6SL
X25
XC6SL
X45
XC6SL
X75
XC6SL
X100
XC6SL
X150
M
an
ti
qi
y r
es
ur
sl
ar
Slices bo‘limlari
soni
600 1430 2278
3750
6822
11 662 15 822
23 038
CLB
triggerlarning
umumiy soni
4800 11 440 18 224 30 064 54 576
93 296 126 576 184 304
Logic Cells
mantiqiy
yacheykalar soni
3840 9152 14 579 24 051 43 661
74 637 101 261 147 443
X
ot
ir
a
r
es
urs
la
r
Tarqoq xotira
hajmi (1К = 1024
bit)
75 K 90 K
136 K
229 K
401 K
692 K
976 K
1355 K
18 kbit sigimli
Block RAM blokli
xotira modullari
soni
12
32
32
52
116
172
268
268
Umumiy blokli
xotira hajmi (1К =
1024 bit) Block
RAM
216 K 576 K 576 K
936 K
2088 K
3096 K 4824 K 4824 K
143
S
inxr
oniza
ts
iya
modul
lar
i
Sinxronizatsiyani
boshqaruvchi
bloklar soni
Clock
Management Tiles
(CMT)
2
2
2
2
4
6
6
6
Raqamli vaqtni
boshqarish
modullari soni
Digital Clock
Manager (DCM)
4
4
4
4
8
12
12
12
Analog fazali
chastota
avtosozlagich
modullar soni -
Phase-Locked-
Loop (PLL)
2
2
2
2
4
6
6
6
O‘
rn
at
il
g
an
m
ax
su
s
ap
p
ar
at
m
o
d
u
ll
ar
i
DSP48A1
qurilmasi
bo‘limalari soni
8
16
32
38
58
132
180
180
xotira interfeysi
boshqaruvchilari
soni Memory
Controller Blocks
(MCB)
0
2
2
2
2
4
4
4
Kir
it
is
h
-c
hi
qis
h
re
sur
slar
i
Kiritish -chiqish
banklari soni
4
4
4
4
4
6
6
6
Qollovchi
yaratishi mumkin
maksimal
120 200
232
266
358
400
480
570
144
oyog‘chalar soni
Diferensial juftlik
o‘yog‘chalar
maksimal soni
60
100
116
133
179
200
240
285
T
ez
kor
lik
va
riantla
ri
Tijorat ijrosi
uchun tezkorlik
variantlari
–2, –3
–2, –3
–2, –3
–2, –3
–2, –3
–2, –3
–2, –3
–2, –3
Sanoat ilovalari
uchun tezkorlik
variantlari
–L1, –
2
–L1, –2
–L1, –2
–L1, –2
–L1, –2
–L1, –2
–L1, –2
–L1, –2
K
o
n
fi
g
u
ra
ts
iy
a
x
ot
ir
as
i
Konfiguratsiya
xotira hajmi, Mbit
2,7
2,7
3,7
6,4
11,8
19,6
26,5
33,7
Boshlang‘ich sozlashlarni qo‘llab HDL-Coder vositasi yordamida NT
algoritmining Simulink modelidan olingan Verilog kodi asosida 8.15-rasmning
chap tomonida ko‘rsatilgan FPGA resurslari ishlatilgan.
Rasm shuni ko‘rsatadiki, jalb qilingan ko‘paytiruvchilar soni bo‘yicha (600),
algoritm tanlangan FPGA (faqat 112 ko‘paytirgich yaratish mumkin) ga to‘g‘ri
kelmaydi. Hisobotdan, har bir blok foydalanadigan resurslarni batafsil o‘rganib
chiqqandan so‘ng, eng ko‘p ko‘paytiruvchilar tarmoqning ikkinchi qavatida
("Convolution_layer"), - 500 ko‘paytirgichdan foydalanilganligi aniglandi.
Modulda ishlatilgan ko‘paytirgichlarni kamaytirish uchun optimallashtirish
oborilib, bitta blokda 20 xil ko‘paytmani bajarish uchun ishlatiladigan bitta
ko‘paytirgich qo‘lanildi. Bu albatta ko‘paytirgichni 20 marta NT ishchi
chastotasidan tezroq ishlashiga va multipleksorlarni sonini oshishiga olib keladi.
Shunday qilib, FPGA ichidagi resurslarni almashishdan foydalanib,
ishlatilgan ko‘paytiruvchilar sonini sezilarli darajada 600 dan 125 gacha
kamaytirish mumkin bo‘ladi. Optimallashtirilgan kodni xosil qilgan hisoboti 8.15 -
rasmning o‘ng tomonida keltirilgan. Hisobot shuni ko‘rsatadiki, ishlatilgan
registrlar sonini 29 mingdan 4 minggacha, bir bitli registrlar sonini 480 mingdan
145
77 minggacha kamaytirishga erishilgan, ammo faqat uncha sezilarsiz darajada
multipleksorlarning soni 1107 dan 1210 gacha oshgan. Hozircha, NT algoritmi
FPGA
-dagi
mavjud
ko‘paytirgichga
(112
dona)
qaraganda
ko‘proq
ko‘paytirgichlarni (125 dona) talab qiladi. Biroq, FPGA kod sintezatorlari asosiy
mantiq elementlaridan ko‘paytirgichlar yaratishga qodir va shu imkonyatdan
foydalanish kerak.
8.7. Algoritmni sinovchi-moslashtirgich taxtasida(bosma platasida) tekshirish.
Neyron tarmoq algoritmini sinab ko‘rish uchun FPGA Xilinx Spartan-6
XC6SLX9 sinash paneli ishlatilgan. Sinash taxtasida algoritmni sinovdan
o‘tkazishdan oldin, NT algoritmi "FPGA in loop" rejimida raqamli ekvivalentligi
tekshiriladi. "FPGA in loop" sinovdan o‘tkazilayotganda, algoritmdan HDL-kod
tuziladi va u kod panelidagi FPGA- chipga yoziladi. Shundan so‘ng, FPGA
algoritmi Simulink modeli bilan birgalikda ishga tushiriladi, kirish ma’lumotlari
Simulink modelida ishlab chiqariladi, chiqish signallari Simulink -ga qaytariladi,
bu erda natijalar "mos yozuvlar" Simulink modeli natijalari bilan raqamli ravishda
taqqoslanadi. Keyingi bosqichda NT algoritmidan hosil qilingan HDL kodi
algoritmi qayta CAD loyihalash tizimaga ulanadi (8.16 -rasm).
Simulink modelida kodni sinab ko‘rish uchun tasvirning joriy boshi, oxiri va
manzilining sinxronlash pulslarini hosil qilish uchun qo‘shimcha modul qo‘shildi.
Shuningdek, algoritmni sinab ko‘rish uchun 8192x8 bitli xotira moduli loyihaga 8
ta raqamli test tasvirini saqlash uchun qo‘shilgan. Tashqi xotira manzillari SW0-
SW2 kalitlari bilan o‘rnatiladi, bu raqamlarni tasvirini tanib olish uchun qo‘lda
almashtirish imkonini beradi; xotira MATLAB -dan yaratilgan mat fayli bilan
ishga tushiriladi. Neyron tarmoq moduli 50 MHz chastotada ishlaydi. Raqam
tasvirini neyron tarmoq orqali tanib olish natijasi 10 ta LED chiroglardada
ko‘rsatiladi.
146
8.16-rasm. Neyron tarmoq modulini CAD tizimiga ulash.
Dostları ilə paylaş: |