Kazalo:
- 1. korak: Kaj je Vivado HLS?
- Korak: Videoteka HLS
- 3. korak: sintetiziranje
- 4. korak: Različice in druge informacije za izvoz
- 5. korak: Izvoz v knjižnico IP Vivado
- Korak 6: Sinteza in izvozna analiza
- 7. korak: Dodajanje knjižnice IP v Vivado
- 8. korak: Nadgradnja
- 9. korak: Dodatne podrobnosti in informacije
- 10. korak: Izhod in vnos
- Korak: Vmesnik registra AXI
- Korak: Pragma pretoka podatkov
Video: Sinteza video bloka Vivado HLS Video IP: 12 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
Ste si kdaj želeli obdelavo videa v realnem času, ne da bi dodali veliko zamud ali v vgrajenem sistemu? Za to se včasih uporabljajo FPGA -ji (Field Programmable Gate Arrays). pisanje algoritmov za obdelavo videa v jezikih specifikacij strojne opreme, kot sta VHDL ali Verilog, pa je v najboljšem primeru frustrirajoče. Vnesite Vivado HLS, orodje Xilinx, ki vam omogoča programiranje v okolju C ++ in ustvarjanje kode jezika specifikacije strojne opreme iz njega.
Potrebna programska oprema:
- Vivado HLS
- Vivado
- (Če uporabljate registre AXI) Vivado SDK
(Izbirno) Prenesite primere Xilinxa tukaj:
Primeri videoposnetkov Xilinx HLS
1. korak: Kaj je Vivado HLS?
Vivado HLS je orodje za pretvorbo kode, podobne c ++, v strukture strojne opreme, ki jih je mogoče implementirati na FPGA. Vključuje IDE za ta razvoj. Ko končate razvoj kode za HLS, lahko izvozite ustvarjeni IP v obliki za uporabo z Vivadom.
Prenesite priložene datoteke in jih postavite blizu mesta, kjer boste ustvarjali svoj projekt. (preimenujte jih nazaj v "top.cpp" in "top.h", če imajo naključno ime)
Korak: Videoteka HLS
Video knjižnica HLS ima v tem dokumentu dokumentacijo z referenčnimi oblikami: XAPP1167 Drug dober vir je stran Xilinx Wiki o tem.
Zaženite Vivado HLS.
Ustvarite nov projekt.
Vzemite datoteke, ki ste jih prenesli v prejšnjem koraku, in jih dodajte kot izvorne datoteke. (Opomba: datoteke se ne kopirajo v projekt, ampak ostanejo tam, kjer so)
Nato z gumbom za brskanje izberite zgornjo funkcijo.
Na naslednji strani izberite del Xilinx, ki ga uporabljate.
3. korak: sintetiziranje
Rešitev => Zaženi sintezo C => Aktivna rešitev
Po ~ 227,218 sekundah je to treba storiti. (Opomba: vaš dejanski čas sinteze se bo razlikoval glede na številne dejavnike)
4. korak: Različice in druge informacije za izvoz
Številke različic delujejo z Vivadom, da lahko posodobite IP v zasnovi. Če gre za manjšo spremembo različice, je to mogoče storiti, medtem ko velike spremembe različice zahtevajo, da ročno dodate nov blok in odstranite starega. Če se vaši vmesniki niso spremenili in je posodobitev različice manjša, lahko posodobitev se izvede popolnoma samodejno s pritiskom na gumb za posodobitev IP -ja. Za prikaz stanja svojega IP -ja lahko zaženete "report_ip_status" v konzoli Vivado tcl.
Številke različice in druge podatke nastavite v Rešitvi => Nastavitve rešitve …
Druga možnost je, da te nastavitve nastavite med izvozom.
5. korak: Izvoz v knjižnico IP Vivado
Rešitev => Izvozi RTL
Če v prejšnjem koraku niste nastavili podrobnosti knjižnice IP, lahko to storite zdaj.
Korak 6: Sinteza in izvozna analiza
Na tem zaslonu lahko vidimo statistične podatke o izvoženem modulu, ki kažejo, da izpolnjuje naše časovno obdobje 10ns (100MHz) in koliko vsakega vira uporablja.
S kombinacijo tega, našega sinteznega poročila in naše analize pretoka podatkov lahko vidimo, da traja 317338 ur ciklov * 10ns urno obdobje * 14 faz cevovoda = 0,04442732 sekund. To pomeni, da je skupna zakasnitev, ki jo doda naša obdelava slik, manjša od ene dvajsete sekunde (če deluje pri ciljnih 100 MHz).
7. korak: Dodajanje knjižnice IP v Vivado
Če želite uporabiti sintetiziran blok IP, ga boste morali dodati v Vivado.
V Vivadu dodajte skladišče IP v svoj projekt, tako da odprete katalog IP in z desno tipko miške kliknete »Dodaj skladišče…«
Pomaknite se do imenika projekta Vivado HLS in izberite imenik rešitev.
Poročati mora IP, ki ga je našel.
8. korak: Nadgradnja
Včasih morate spremeniti svoj blok HLS, potem ko ga vključite v zasnovo Vivado.
Če želite to narediti, lahko naredite spremembe ter znova sintetizirate in izvozite IP z višjo številko različice (glejte podrobnosti v prejšnjem koraku o večjih/manjših spremembah številk različice).
Ko spremenite izvoz nove različice, osvežite skladišča IP v Vivadu. To lahko storite, če Vivado opazi, da se je IP spremenil v skladišču, ali pa ročno aktivirajte. (Opomba: če po zagonu osvežite svoja skladišča IP, vendar preden se izvoz konča v HLS, IP začasno ne bo tam, počakajte, da se konča, in znova osvežite.)
Na tem mestu bi se moralo prikazati okno z informacijami, da je bil IP spremenjen na disku, in vam omogočilo, da ga posodobite z gumbom »Nadgradi izbrano«. Če je bila sprememba manjša različica in se noben vmesnik ni spremenil, potem pritisk na ta gumb samodejno nadomesti stari IP z novim, sicer bo morda potrebno več dela.
9. korak: Dodatne podrobnosti in informacije
Naslednji koraki ponujajo več informacij o tem, kako deluje sinteza HLS in kaj lahko storite z njo.
Za primer projekta, ki uporablja blok IP, sintetiziran s HLS, glejte ta navodila.
10. korak: Izhod in vnos
Izhodi in vhodi v zadnji blok IP so določeni z analizo pretoka podatkov, ki jih sintetizator izvede v in iz zgornje funkcije.
Podobno kot v VHDL ali verilogu vam HLS omogoča, da določite podrobnosti o povezavah med IP. Te vrstice so primeri tega:
void image_filter (AXI_STREAM & video_in, AXI_STREAM & video_out, int & x, int & y) {
#pragma HLS INTERFACE osna vrata = video_in sveženj = INPUT_STREAM #pragma HLS INTERFACE osna vrata = video_out sveženj = OUTPUT_STREAM #pragma HLS INTERFACE s_axilite vrata = x sveženj = CONTROL_BUS odmik = 0x14 #pragma CONTROLB_SLxx xLxx xLxx HLS x HLS x HEX
Vidite lahko, kako te direktive vplivajo na vrata, prikazana v bloku IP.
Korak: Vmesnik registra AXI
Za vhod/izhod v/iz vašega bloka IP do PS je to dober način prek vmesnika AXI.
To lahko določite v kodi HLS, vključno z odmiki, ki bodo uporabljeni za poznejši dostop do vrednosti, na naslednji način:
void image_filter (AXI_STREAM & video_in, AXI_STREAM & video_out, int & x, int & y) {
#pragma HLS INTERFACE s_axilite port = x sveženj = CONTROL_BUS offset = 0x14
#pragma HLS INTERFACE s_axilite port = y sveženj = CONTROL_BUS offset = 0x1C #pragma HLS podatkovni tok
x = 42;
y = 0xDEADBEEF; }
Ko ste pravilno povezani v Vivadu, lahko dostopate do vrednosti s to kodo v Vivado SDK:
#include "parametri.h"
#define xregoff 0x14 #define yregoff 0x1c x = Xil_In32 (XPAR_IMAGE_FILTER_0_S_AXI_CONTROL_BUS_BASEADDR+xregoff); y = Xil_In32 (XPAR_IMAGE_FILTER_0_S_AXI_CONTROL_BUS_BASEADDR+yregoff);
Tako boste imeli 42 v x in 0xdeadbeef v y
Korak: Pragma pretoka podatkov
Znotraj #pragma DATAFLOW se način izvajanja kode spreminja od običajnega C ++. Koda je načrtovana tako, da se vsa navodila izvajajo ves čas v različnih delih podatkov (pomislite na to kot na tovarniško montažno linijo, vsaka postaja deluje neprekinjeno in opravlja eno funkcijo ter jo posreduje naslednji postaji)
iz slike lahko vidite, da je vsaka od direktiv
Kljub temu, da se zdijo normalne spremenljivke, so predmeti img dejansko izvedeni kot majhni medpomnilniki med ukazi. Če uporabite sliko kot vhod za funkcijo, jo "porabi" in postane več neuporabna. (Zato so potrebni podvojeni ukazi)
Priporočena:
Retro sinteza govora. Del: 12 IoT, Domača avtomatizacija: 12 korakov (s slikami)
Retro sinteza govora. Del: 12 IoT, Domača avtomatizacija: Ta članek je 12. v nizu o navodilih za avtomatizacijo doma, ki dokumentirajo, kako ustvariti in vključiti napravo za sintezo govora IoT Retro Speech Synthesis v obstoječi sistem avtomatizacije doma, vključno z vso potrebno programsko opremo, ki omogoča
Kako uporabljati Vivado Simluation: 6 korakov
Kako uporabljati Vivado Simluation: Ta simulacijski projekt sem naredil za spletni pouk. Projekt je napisal Verilog. V Vivadu bomo uporabili simulacijo za vizualizacijo valovne oblike v enable_sr (številka za omogočanje) iz predhodno ustvarjenega projekta štoparice. Poleg tega bomo
Camara De Video En Carro De Radio Control / Video kamera na tovornjaku R / C: 5 korakov
Camara De Video En Carro De Radio Control / Video kamera na tovornjaku R / C: Este Instrucckable presentado en Espanol e Ingles. Ta navodila so predstavljena v španščini in angleščini
Sinteza analognega zvoka v računalniku: 10 korakov (s slikami)
Sinteza analognega zvoka na vašem računalniku: Kot zvok tistih starih analognih sintetizatorjev? Se želite igrati z njim ob svojem času, na svojem mestu, kolikor želite, BREZPLAČNO? Tu se uresničijo vaše najbolj divje sanje o Moogu. Lahko postanete elektronski snemalnik ali jus
Razstavite transformator E-bloka: 6 korakov
Razstavite transformator E-bloka: nameraval sem narediti kitaro, vendar mi je manjkala emajlirana žica. Nekaj časa sem razmišljal, da bi to poskušal narediti, ne da bi karkoli kupil