Vývoj (téměř) univerzálního hardwarového akcelerátoru náročných výpočtů s více FPGA

Instituce: Vysoké učení technické v Brně
Fakulta/ústav: Fakulta elektrotechniky a komunikačních technologií
Další údaje o pracovišti: Ústav mikroelektroniky
Lektoři: Martin Šťáva

Popis: Cílem práce je vytvoření vývojové soupravy (kitu) pro urychlování výpočetně-náročných softwarových algoritmů – např. šifrování, konvoluce, komprese videa a jiných algoritmů především z oblasti „digital signal processing“ (DSP) – jejich hardwarovým výpočtem v FPGA. Souprava bude obsahovat: a) vývojovou kartu; b) (univerzální) komunikační a výpočetní protokol pro práci s akcelerátorem; c) demo aplikaci. **** Téma spadá do oblastí mikroelektroniky, počítačového inženýrství a programování; nevyžaduje cestování mimo Brno. Práce je určena buď pro jednotlivce, anebo lépe pro skupinu dvou studentů – jeden student pro návrh a vývoj protokolu a softwarové části demo aplikace v jazyku C/C++, popř. Java; druhý student pro návrh a vývoj desky akcelerátoru (popř. též pro vývoj výpočetních jader pro FPGA ve VHDL). Téma je vhodné (nejen) pro studenty, kteří se chystají studovat vysokou školu se zaměřením na mikroelektroniku, informační technologie či počítačové inženýrství. **** Od studentů je požadována schopnost navrhovat a kreslit elektronická schémata a desky plošných spojů (DPS) v některém návrhovém systému (např. OrCAD, EAGLE, Formica aj.), základní znalosti o fungování napájecích pulzních zdrojů a znalost programovacího jazyka C/C++, popř. Java, alespoň pasivní znalost anglického jazyka na úrovni B1 (CEFR); vhodná (nikoliv však nutná) je i základní znalost jazyka VHDL (jazyka pro popis číslicového hardwaru). **** Očekávaným výstupem je: Ad a) Vývojová karta obsahující jedno FPGA (M) s možností implementace hard procesoru nebo soft procesoru, další alespoň tři akcelerační FPGA (A1–A3) připojená k M přes některou ze sériových sběrnic (např. PCI Express, SPI apod.), ethernetové rozhraní připojené k M, podpůrné obvody a napájecí zdroj. Ad b) (Téměř) univerzální komunikační a výpočetní protokol pro přenos a zpracování zadání výpočetních úloh a jejich výsledků mezi M a všemi A (kterékoliv A může obsahovat libovolný typ výpočetního jádra v „libovolném“ počtu. Ad c) Softwarová část demonstrační aplikace běžící přímo v Linuxu, popř. přímo ve Windows, popř. interpretována v Java Runtime Environment (zdrojové kódy v C/C++, popř. Java); hardwarová část demonstrační aplikace (výpočetní jádra ve zdrojovém kódu VHDL či v syntetizované podobě). **** Studenti mohou očekávat uvedení do problematiky, přístup k návrhovému systému Cadence (OrCAD), vývojovému prostředí C/C++, výpomoc s výrobou, osazením a oživením vývojové karty, výpomoc s výpočetními jádry a s implementací hardwarové části jak (téměř) univerzálního komunikačního a výpočetního protokolu, tak demonstrační aplikace.