# Povprečevalno sito na Red Pitayi Na razvojni plošči Red Pitaya naredimo vezje za skaliranje signalov in filtriranje z majhnim povprečevalnim sitom, ki izračuna povprečje štirih zaporednih vzorcev. Sistem je narejen podlagi odprte kode za FPGA [RedPitaya na GitHub] (https://github.com/RedPitaya/RedPitaya), uporabili smo prvotno različico (classic). Izvorne datoteke predelanega projekta so v [RedPitaya2017.zip](http://lniv.fe.uni-lj.si/courses/div/RedPitaya2017.zip). Podmapa redpitaya vsebuje definicijo razvojne plošče za program Vivado in jo prenesemo v inštalacijsko mapo: ```C:\Xilinx\Vivado\2016.4\data\boards\board_files\``` ## Projekt V Vivadu naredimo nov projekt za razvojno ploščo Red Pitaya in v mapo projekta vključimo podmape rtl, sdc in tcl. Podmapa tcl vsebuje skripte za izdelavo blokovnega diagrama in vključitev izvornih datotek. Skripte so napisane za Vivado 2017.2, izvedemo jih v zavihku Tcl Console: - premakni se v trenutno mapo, npr: ```cd c:/proj/divs/redpitaya``` - naredi blokovni diagram: ```source tcl/system.tcl``` - in vključi ostale datoteke: ```source tcl/files.tcl``` Priloženi projekt vsebuje vse izvorne komponente v jeziku [Verilog](../verilog/index.htm) in eno v jeziku VHDL, ki je namenjena opisu povprečevalnega sita. ![](./img/RP_proc.png) Komponenta red_pitaya_proc.vhd je povezana na sistemsko vodilo (naslovni prostor: 0x405xxxxx) in na en vhodni podatkovni kanal, ki pride iz A/D ali pa iz notranjega generatorja signalov (loopback). Signalni izhod je povezan na logiko osciloskopa, da bomo lahko opazovali delovanje. Pomen signalov: - clk_i, rstn_i: ura in reset signal (aktivna 0) - sys_addr: 32-bitni naslovni vhod - sys_wdata: 32-bitni vhodni podatek - sys_wen, sys_ren: vhodna signala za branje in pisanje na vodilo - adc_i: 14-bitni vhodni signal (1. kanal iz A/D) - sys_rdata: 32-bitni izhodni podatek - sys_err, sys_ack: izhoda za javljanje napake in potrditev prenosa - adc_o: 14-bitni izhod, povezan na 1. kanal osciloskopa Opis logike komponente, ki izvaja operacijo skaliranja z našičenjem je v 7. vaji predmeta [Digitalna integrirana vezja in sistemi](http://lniv.fe.uni-lj.si/div.html). Testna struktura za simulacijo skaliranja: [TestProc.vhd](http://lniv.fe.uni-lj.si/courses/div/TestProc.vhd). Če naredimo poleg skaliranja še preprosto povprečevalno sito, ki računa povprečje štirih zaporednih vzorcev, dobimo rezultat simulacije s pravokotnim vhodnim signalom: ![](./img/TestProc-kvadrat.png) Prvi del simulacije predstavlja le skaliran izhod, v drugem delu pa vidimo delovanje sita. Rezultat prevajanja je datoteka red_pitaya_top.bit v podmapi ```<ime_projekta>.runs\impl_1```, ki jo prenesemo na razvojno ploščo. ## Razvojna plošča Red Pitaya V laboratoriju LRNV bomo Red Pitayo priklopili kar neposredno na računalnikovo drugo omrežno kartico, ki jo nastavimo na lokalni naslov: 192.168.1.101. Red Pitaya bo dostopna na naslovu 192.168.1.15 v konzoli SSH programa PuTTY (ime: root, geslo: root). S programom [WinSCP](https://winscp.net/eng/download.php) prenesemo datoteko red_pitaya_top.bit v lokalno mapo na Red Pitayo (npr. root), nato pa jo v konzoli kopiramo v ustrezno mapo. V konzoli izvedemo: - ```rw``` za omogočanje pisanja - ```cp red_pitaya_top.bit /opt/redpitaya/fpga``` V spletni brskalnik napišemo naslov: 192.168.1.15 in poženemo aplikacijo Oscilloscope. Strežnik je nastavljen tako, da bo v FPGA naložil datoteko red_pitaya_top.bit. Testni signal za preizkus delovanja lahko dobimo kar iz generatorja signalov, ki ga nastavimo v aplikaciji. Če vključimo loopback, bomo povezali izhod generatorja na vhod našega vezja kar znotraj FPGA: v konzoli nastavimo dva registra: ``` monitor 0x4000000c 1 monitor 0x40500000 2 ``` Prvi register nastavi loopback, drugi pa faktor skaliranja komponente red_pitaya_proc. Pri nastavljeni frekvenci 6 MHz vidimo delovanje vhodnega sita osciloskopa - na sliki je pravokoten nastavljen (idealni) signal in realni signal rumene barve, ki je skaliran s faktorjem 2. Če vključimo še povprečevalno sito dobimo signal z bolj položnim prehodom med logičnima stanjema (modri signal): ![](./img/RP_kvad_int.png) Rezultat obdelave zunanjega signala lahko opazujemo, če s kablom povežemo izhod D/A in vhod A/D prvega kanala. Na sliki smo združili tri meritve: - rumene barve je skaliran vhodni signal, ki ima nekaj prehodnih pojavov zaradi D/A in A/D pretvorbe, - roza barve je vhodni signal, ki je povezan na izhod D/A brez zaključitve 50 Ohm in ima zato veliko oscilacij, - modre barve pa je skaliran in filtriran vhod. ![](./img/RP_kvad_ext.png)