[LNIV Xilinx](index.html)
# Projekt ClassicBD
Projekt ClassicBD opisuje načrt digitalnega vezja, ki je namenjen digitalni obdelavi signalov na razvojnih ploščah STEMlab podjetja [Red Pitaya](https://redpitaya.com/). Projekt je ustvarjen v programskem okolju Vivado v2020.1, kjer je v celoti opisan v blokovnem diagramu. Gradnike projekta predstavljajo komponente intelektualne lastnine (IP), kjer so v strojno-opisnih jezikih Verilog in SystemVerilog opisane strojne komponente, ter vhodni in izhodni priključki, ki so namenjeni povezovanju programirljive logike s perifernimi enotam naprave STEMlab. Večina komponent IP temelji na modulih odprtokodnega projekta [Classic](https://github.com/RedPitaya/RedPitaya-FPGA), ClassicBD pa je v celoti združljiv s [programskim delom](https://github.com/RedPitaya/RedPitaya) namenjenim projektu Classic.
Projekt ClassicBD je združljiv z operacijskim sistemom [STEMlab_125-xx_OS_1.04-18_stable.img](https://downloads.redpitaya.com/downloads/STEMlab-125-1x/STEMlab_125-xx_OS_1.04-18_stable.img.zip), ki je dostopen v repozitoriju [downloads.redpitaya.com](https://downloads.redpitaya.com/downloads/STEMlab-125-1x/).
### Zgradba
V blokovnem diagramu projekta so vse komponente IP združene v dve hierarhiji imenovani ps in classic:
Hierarhija [ps](./img/hierarchy_ps.png) vsebuje hierarhijo [system](./img/hierarchy_system.png) in štiri komponente IP, ki so namenjene povezovanju procesnega sistema s programirljivo logiko, svetlečimi diodami in z razširitvenima priključkoma razvojne plošče STEMlab.
Hierarhija [classic](./img/hierarchy_classic.png) združuje komponente IP, ki so namenjene zajemu in obdelavi signalov iz obeh vhodnih kanalov razvojne plošče, komponente za krmiljenje obeh izhodnih kanalov in analognih izhodov razširitvenega priključka ter komponento sys_bus_interconnect. Slednja razdeli sistemsko vodilo na več delov in s tem omogoča dostop procesnega sistema do registrov komponent IP, ki so z njo povezane.
### Možnosti nadgradnje
V blokovni diagram projekta je možno enostavno dodati lastne komponente IP ali module in jih povezati s preostalimi gradniki. Povezavo gradnikov z vhodnima kanaloma razvojne plošče omogoča komponenta adc_io, povezavo z izhodnima kanaloma pa komponenta dac_io. Povezavo s procesnim sistemom omogoča komponenta sys_bus_interconnect, ki lahko preko vmesnikov sys_bus hkrati povezuje do osem komponent IP ali modulov. Vsakemu izmed osmih vmesnikov je dodeljen naslovni prostor, ki omogoča dostop procesnega sistema do registrov komponente IP, ki je z vmesnikom povezana.
## Arhiv za izdelavo projekta
Za izdelavo projekta ClassicBD v programskem okolju Vivado v2020.1 je pripravljen arhiv: [Project_ClassicBD_V1.zip](ClassicBD/Project_ClassicBD_V1.zip)
####Postopek izdelave projekta:
- Razširite arhiv
- Odprite program Vivado v2020.1 in se v ukazni vrstici programa postavite v projektno mapo ***Project_ClassicBD_V1***
```
cd "/Project_ClassicBD_V1"
```
- V ukazni vrstici izvedite skripto ***make_project.tcl***
```
source make_project.tcl
```
####Prerazporeditev gradnikov:
- Odprite blokovni diagram in vse hierarhije projekta
- V ukazni vrstici izvedite skripto ***ClassicBD_layout.tcl***
```
source presets/ClassicBD_layout.tcl
```
## Prenos na razvojno ploščo in preizkus delovanja
- Preko protokola SSH se povežite z razvojno ploščo STEMlab (ime: root, geslo: root)
- Nastavitveno datoteko (bitstream) ***ClassicBD_wrapper.bit*** prenesite v lokalno mapo ***root*** na napravi STEMlab
- Spremenite nastavitve spletne aplikacije tako, da se ob njenem zagonu v vezje FPGA naloži nastavitvena datoteka ClassicBD_wrapper.bit
- Nastavitve so opisane v: /opt/redpitaya/www/apps/<ime_aplikacije>/fpga.conf
- V ***fpga.conf*** spremenite ***/opt/redpitaya/fpga/fpga_0.94.bit*** v ***/root/ClassicBD_wrapper.bit***
- V spletni brskalnik vpišite lokalni naslov IP naprave STEMlab in zaženite spletno aplikacijo s pomočjo katere želite opraviti preizkus delovanja projekta
- Za preizkus delovanja brez fizične povezave obeh izhodnih kanalov razvojne plošče z vhodnima kanaloma, vključite digitalno povratno vezavo. To, s pomočjo terminala operacijskega sistema, ki teče na napravi STEMlab, storite z ukazom:
```
monitor 0x4000000c 1
```
## Uporabne povezave
- Brezplačen in odprtokodni program za povezavo preko protokola SSH z napravo STEMlab: [PuTTY](https://www.putty.org/)
- Brezplačen in odprtokodni program za prenos datotek med napravo STEMlab in napravo Windows: [WinSCP](https://winscp.net/eng/download.php)
- Več o projektu ClassicBD v diplomskem delu: [Blokovni diagram za digitalno obdelavo signalov na razvojni plošči STEMlab](https://repozitorij.uni-lj.si/Dokument.php?id=174491&lang=slv#page=43)