Amaliy mashg’ulot №8. Vlsi fpga uchun matlab yordamida sun'iy neyron tarmoqlarni loyihalash Ishning maqsadi


Resurslarni optimallashtirish va avtomatik kod yaratish


Download 0.92 Mb.
bet10/14
Sana24.12.2022
Hajmi0.92 Mb.
#1058098
1   ...   6   7   8   9   10   11   12   13   14
Bog'liq
8-amaliy ish

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

XC6SLX4

XC6SLX9

XC6SLX16

XC6SLX25

XC6SLX45

XC6SLX75

XC6SLX100

XC6SLX150

Mantiqiy resurslar

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

Xotira resurslar



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

Sinxronizatsiya modullari

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'rnatilgan maxsus apparat modullari

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


Kiritish -chiqish resurslari



Kiritish -chiqish banklari soni

4

4

4

4

4

6

6

6

Qollovchi yaratishi mumkin maksimal oyog’chalar soni

120

200

232

266

358

400

480

570

Diferensial juftlik o’yog’chalar maksimal soni

60


100


116


133


179


200


240


285


Tezkorlik variantlari



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



Konfiguratsiya xotirasi

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



8.16-rasm. Neyron tarmoq modulini CAD tizimiga ulash.
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.
8.8. Ishni bajarish uslubi va tartibi.
NNTool -ni ishga tushirish uchun MATLAB buyruqlar oynasida shu nomdagi buyruqni bajarish kerak:
>> nntool
Shundan so'ng, tarmoq / ma'lumotlar menejeri oynasi deb nomlangan asosiy NNTool oynasi paydo bo'ladi (Network/Data Manager)(8.17 -rasm).
Tarmoqlar va ma'lumotlar (Networks and Data) panelida quyidagi funktsiyalarga ega funktsional tugmalar mavjud:
• Yordam(Help) - bu oynaning boshqaruv elementlarining qisqacha tavsifi.
• Yangi ma'lumotlar(New Data…) - yangi ma'lumotlar to'plamini yaratishga imkon beruvchi oyna ochiladi.
• Yangi tarmoq (New Network…) - yangi tarmoq yaratish oynasini ochish.
• Import… - ma'lumotlarni MATLAB ish maydonidan NNTool o'zgaruvchilar maydoniga import qiladi.
• Eksport qilish ... - ma'lumotlarni NNTool o'zgaruvchan maydonidan MATLAB ish maydoniga eksport qilish.
• Ko'rish (View) - tanlangan tarmoq arxitekturasining grafik ko'rinishi.
• O'chirish (Delete) - tanlangan ob'ektni o'chiradi.

8.17-rasm. NNTool asosiy oynasi
Faqat tarmoqlar panelida faqat tarmoqlar bilan ishlash kalitlari mavjud. Sichqoncha ko'rsatgichi boshqa turdagi ob'ektni tanlasa, bu tugmalar faol bo'lmaydi.
NNTool bilan ishlashda shuni esda tutish kerakki, View, Delete, Initialize, Simulate, Train and Adapt tugmalari (8.17 -rasmda harakatsiz(kulrang) sifatida ko'rsatilgan) hozirda tanlangan ob'ektga nisbatan harakat qiladi. Agar bunday ob'ekt bo'lmasa yoki tanlangan ob'ektda ko'rsatilgan amalni bajarish imkonsiz bo'lsa, mos keladigan kalit faol emas.
Masalan, NNTool yordamida neyron tarmoq yaratishni ko'rib chiqaylik.
Mantiqiy VA(AND) funktsiyasini bajaradigan neyron tarmoqni yaratish talab qilinadi.

Download 0.92 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   14




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling