Programirljiva vezja in razvojna orodja AMD Xilinx

V Laboratoriju za načrtovanje integriranih vezij LNIV imamo dolgo tradicijo načrtovanja sistemov, ki temeljijo na družinah vezij FPGA proizvajalca AMD Xilinx. Prvi prototipni razvojni sistem smo razvili že v letu 1995 in na njem testirali vrsto digitalnih vezij. Razvojne sisteme uporabljamo za prototipno izvedbo in verifikacijo digitalnih vezij v okviru študentskih projektov, diplom, tekmovanj in za industrijske namene. Razvili smo vrsto razvojnih plošč na osnovi manjših CPLD in cenovno dostopnih vezij FPGA iz družine Spartan:

Razvojno orodje za vezja CPLD in FPGA družine Spartan je Xilinx ISE. To orodje je namenjeno za starejše projekte, saj ga proizavajalec ne razvija več, zato priporoča uporabo novejših vezij sedme generacije in orodja Xilinx Vivado. V LNIV imamo razvojne plošče z vezji Artix-7 in sistemi na čipu Zynq:

Razvojno orodje Vivado / Vitis

Vivado osnove | Blokovni diagram | Enostaven IP | AXI IP | SDK

Vivado je razvojno orodje za vezja FPGA in sisteme na čipu SoC proizvajalca AMD (Xilinx). V novejših različah programske opreme je vključeno v programski paket Vitis. Namestitvene datoteke so na povezavi: www.xilinx.com/support/download.html. Za prenos datotek se je potrebno registrirati. Brezplačna različica (WebPACK) ne potrebuje licence in podpira manjša vezja FPGA družin Artix, Kintex, Spartan-7 in SoC Zynq. Programski paket je z vsemi podprtimi vezji in orodji zelo obsežen, zato priporočamo da ob namestitvi izberete le tiste družine vezij in vgrajena orodja, ki jih boste potrebovali za ciljno platformo.

Programsko opremo za procesorje v SoC razvijamo z orodjem SDK (namestitev v Vivadu 2020 ali starejšem) oz. Vitis v novejših različicah. Orodje geneira nabor knjižnic (Board Support Package) v jeziku C, ki so prilagojene za ciljno strojno opremo in periferne enote projekta. Grafični vmesnik temelji na orodju Eclipse in vsebuje prevajalnik za procesorje brez OS ali križni prevajalnik za Linux ter razhroščevalnik.

Vivado oz. Vitis HLS je orodje za visokonivojsko sintezo vezij in generiranje komponent IP. Visokonivojska sinteza (High-Level Synthesis) je proces načrtovanja vezij, ki pretvori algoritem v jeziku C/C++ v model digitalnega vezja. Sintetizator avtomatsko določi časovni potek operacij vhodne funkcije (scheduling), izbere knjižnične gradnike (allocation), jih poveže z operacijami (binding) in naredi ustrezne vmesnike. Izhodni model vezja je v jeziku VHDL ali Verilog.

Vitis HLS | model | simulacija | sinteza

Primeri / Tutorials

Red Pitaya - projekt classic

Navodila za izdelavo projekta classic v orodju Vivado 2019 z FPGA kodo v jeziku System Verilog. Koda vključuje opis logike za osciloskop, signalni generator (ASG) in regulator ter je dobra osnova za lastno nadgradnjo digitalnih instrumentov.

Oscilator na Red Pitayi

Nadgradimo projekt classic z dodatnim modulom v katerem je digitalni generator sinusnega signala. Navodila vključujejo datoteke v jeziku Verilog in primer uporabe odprtokodnega simulatorja Icarus Verilog.

Povprečevalno sito na Red Pitayi

Na merilni kartici Red Pitaya naredimo vezje za skaliranje signalov in filtriranje z majhnim povprečevalnim sitom, ki izračuna povprečje štirih zaporednih vzorcev.

Animacija VGA s prekinitvami

Prikaz slike na izhodu VGA razvojne plošče ZedBoard s komponento, ki bere slikovne točke iz BRAM. Primerjava premikanja (animacije) kvadrata na zaslonu, ki jo izvaja CPU s pisanjem posameznih točk in strojna komponenta za risanje kvadrata. Uporaba prekinitev za tekočo animacijo.

Red Pitaya VGA tutorial (J. Koren)

In this tutorial I will explain how to display a picture on a monitor using Red Pitaya. I used Xilinx Vivado 2016.4 for hardware programming with Xilinx SDK 2016.4 for software application. The picture is just a simple matrix with "1" and "0" that represent black and white pixels. Picture can be scalled, moved and it can display different patterns.

The next tutorial presents a simple VGA game: Ping Pong. The game is using our Red Pitaya VGA extension board with VGA output, controller buttons and rotary encoder.

Časovno-digitalni pretvornik visoke ločljivosti na Red Pitayi - GitHub

video (M. Adamič)

Red Pitaya - ClassicBD (J. Goropečnik)

Navodila za izdelavo projekta classic v orodju Vivado 2020 z blokovnim diagramom.

Red Pitaya - grafični vmesnik osciloskopa (A. Šuligoj)

Navodila za izdelavo projekta z VGA vmesnikom za prikaz slike iz osciloskopa.

Študentski projekti

Seznam nekaj najboljših projektov, ki so jih študenti v zadnjih letih naredili pri vajah predmeta Digitalna integrirana vezja in sistemi.