Detail publikace
Jak propojit Linux s FPGA?
Kořenek Jan, doc. Ing., Ph.D. (UPSY FIT VUT)
Viktorin Jan, Ing. (UPSY FIT VUT)
FPGA, Linux, ovladače, propojení, propustnost, platforma
Dnešní FPGA čipy poskytují stále větší kapacitu a možnosti. Narůstá množství konfigurovatelné logiky, na čipu je možné najít i relativně výkonná procesorová jádra. Vzniká tak možnost konstruovat komplexní systémy na čipu (SoC - System on Chip). Problémem návrhu SoC systémů je relativně dlouhá doba vývoje, což může ohrozit splnění požadavků na uvedení nového produktu na trh. Dnešní vývojové nástroje se snaží zkrátit dobu vývoje syntézou algoritmů popsaných v jazyce C na hardwarové architektury s využitím vysokoúrovňové syntézy (HLS - High Level Synthesis). HLS umožňuje výrazně zkrátit dobu vývoje hardwarových bloků, ale neřeší problematiku rozdělení systému mezi hardware a software a komunikace mezi procesorem a FPGA logikou. V článku se proto zaměříme na možnosti propojení FPGA logiky s procesorem, na kterém běží operační systém Linux. Nejdříve bude věnována pozornost komunikaci Linuxu s PCIe akcelerační kartou. Budou ukázány principy zajišťující vysokou propustnost a flexibilitu. Následně se zaměříme na FPGA Xilinx Zynq a Altera Cyclone V SoC, kde se soustředíme na zprovoznění OS Linux na ARM jádrech a následně i na samotnou komunikaci mezi Linuxem a FPGA logikou. V obou případech ukážeme, na jaké problémy je možné narazit a jakým způsobem je vhodné je řešit.