Orodha ya maudhui:
- Hatua ya 1: Vivado HLS ni nini?
- Hatua ya 2: Maktaba ya Video ya HLS
- Hatua ya 3: Kuunganisha
- Hatua ya 4: Toleo na Maelezo mengine ya Usafirishaji
- Hatua ya 5: Kuhamisha kwa Maktaba ya IP ya Vivado
- Hatua ya 6: Uchanganuzi wa Usanisi na Usafirishaji
- Hatua ya 7: Kuongeza Maktaba ya IP huko Vivado
- Hatua ya 8: Kufanya Kuboresha
- Hatua ya 9: Maelezo ya ziada na Maelezo
- Hatua ya 10: Pato na Ingizo
- Hatua ya 11: Kujiandikisha kwa AXI
- Hatua ya 12: Pragma ya data
Video: Vivado HLS Video IP Usanganishaji: Hatua 12
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Je! Umewahi kutaka kusindika wakati halisi kwenye video bila kuongeza ucheleweshaji mwingi au kwenye mfumo uliopachikwa? FPGAs (Mpangilio wa Lango linalopangwa kwa Shamba) wakati mwingine hutumiwa kufanya hivi; Walakini, kuandika algorithms za usindikaji wa video katika lugha za vipimo vya vifaa kama VHDL au Verilog inakatisha tamaa kabisa. Ingiza Vivado HLS, zana ya Xilinx inayokuruhusu kupanga programu katika mazingira ya C ++ na utengeneze nambari ya lugha ya uainishaji wa vifaa kutoka kwake.
Vipuli vinavyohitajika:
- Vivado HLS
- Vivado
- (Ikiwa unatumia sajili za AXI) Vivado SDK
(Hiari) Pakua Xilinx ilifanya mifano hapa:
Mifano ya video ya Xilinx HLS
Hatua ya 1: Vivado HLS ni nini?
Vivado HLS ni zana inayotumika kugeuza c ++ kama nambari kuwa muundo wa vifaa ambavyo vinaweza kutekelezwa kwenye FPGA, na ni pamoja na IDE ya kufanya maendeleo haya. kwa matumizi na Vivado.
Pakua faili zilizoambatishwa na uziweke karibu na mahali utakapokuwa unaunda mradi wako. (wape jina tena kwa "top.cpp" na "top.h" ikiwa wana jina lililobadilishwa)
Hatua ya 2: Maktaba ya Video ya HLS
Maktaba ya Video ya HLS ina nyaraka na miundo ya kumbukumbu katika karatasi hii: XAPP1167Rasilimali nyingine nzuri ni ukurasa wa Xilinx Wiki kuhusu hilo.
Anza Vivado HLS.
Unda mradi mpya.
Chukua faili ambazo umepakua katika hatua ya awali na uziongeze kama faili za chanzo. (Kumbuka: faili hazinakiliwi kwenye mradi, lakini badala yake baki hapo zilipo)
Kisha tumia kitufe cha Vinjari kuchagua chaguo za juu.
Kwenye ukurasa unaofuata, chagua sehemu ya Xilinx unayotumia.
Hatua ya 3: Kuunganisha
Suluhisho => Run C synthesis => Solution inayotumika
Baada ya sekunde ~ 227.218, inapaswa kufanywa. (Kumbuka: wakati wako halisi wa usanisi utatofautiana kulingana na sababu nyingi)
Hatua ya 4: Toleo na Maelezo mengine ya Usafirishaji
Nambari za toleo huingiliana na Vivado ili kukufanya uweze kusasisha IP katika muundo. Ikiwa ni mabadiliko madogo ya toleo inaweza kufanywa wakati mabadiliko makubwa ya toleo yanahitaji kuongeza mikono yako kwenye kizuizi kipya na uondoe ya zamani. Ikiwa miunganisho yako haijabadilika na sasisho la toleo ni dogo sasisho linaweza kuwa imefanywa kiatomati kabisa kwa kubonyeza kitufe cha kusasisha IP. Unaweza kukimbia "report_ip_status" katika kontena ya Vivado tcl ili kuona hali ya IP yako.
Weka nambari za toleo na maelezo mengine katika Solution => Mipangilio ya Ufumbuzi …
Vinginevyo, mipangilio hii inaweza kuwekwa wakati wa usafirishaji.
Hatua ya 5: Kuhamisha kwa Maktaba ya IP ya Vivado
Suluhisho => Hamisha RTL
Ikiwa haukuweka maelezo ya maktaba ya IP katika hatua ya awali, unaweza kufanya hivyo sasa.
Hatua ya 6: Uchanganuzi wa Usanisi na Usafirishaji
Kwenye skrini hii tunaweza kuona takwimu kuhusu moduli yetu iliyosafirishwa, ikionyesha kwamba inakidhi kipindi chetu cha saa 10ns (100MHz) na ni kiasi gani cha rasilimali inayotumia.
Pamoja na mchanganyiko wa hii, Ripoti yetu ya Mchanganyiko, na uchanganuzi wetu wa Takwimu, tunaweza kuona kwamba inachukua mizunguko ya saa 317338 * Kipindi cha saa 10ns * hatua 14 za bomba = sekunde 0.04442732. Inamaanisha kuwa jumla ya latency iliyoongezwa na usindikaji wetu wa picha ni chini ya ishirini ya sekunde (wakati imefungwa kwa 100MHz iliyolengwa).
Hatua ya 7: Kuongeza Maktaba ya IP huko Vivado
Kutumia kizuizi chako cha IP kilichojumuishwa utahitaji kuiongeza kwa Vivado.
Katika Vivado ongeza hazina ya IP kwenye mradi wako kwa kwenda kwenye orodha ya IP na bonyeza-kulia ukichagua "Ongeza Hifadhi …"
Nenda kwenye saraka yako ya mradi wa Vivado HLS na uchague saraka yako ya suluhisho.
Inapaswa kuripoti IP ambayo imepata.
Hatua ya 8: Kufanya Kuboresha
Wakati mwingine unahitaji kufanya mabadiliko kwenye kizuizi chako cha HLS baada ya kuijumuisha katika muundo wa Vivado.
Ili kufanya hivyo, unaweza kufanya mabadiliko na kusanikisha tena na kusafirisha IP na nambari ya toleo la juu (angalia maelezo katika hatua ya mapema juu ya mabadiliko makubwa / madogo ya nambari ya toleo).
Baada ya kubadilisha kusafirisha toleo jipya, furahisha hazina zako za IP huko Vivado. Hii inaweza kufanywa wakati Vivado inagundua IP imebadilika kwenye hazina, au imeamilishwa kwa mikono. (Kumbuka, ukiburudisha hazina zako za IP baada ya kuanza, lakini kabla ya usafirishaji kukamilika katika HLS, IP haitakuwapo kwa muda, subiri imalize na iburudishe tena.)
Kwa wakati huu dirisha inapaswa kuonekana na habari kwamba IP imebadilishwa kwenye diski na inakupa fursa ya kuisasisha na kitufe cha "Sasisha Iliyochaguliwa". Ikiwa mabadiliko yalikuwa mabadiliko madogo ya toleo na hakuna kiolesura kilichobadilishwa, kisha kubonyeza kitufe hicho kitabadilisha kiotomatiki IP ya zamani na mpya, vinginevyo kazi zaidi inaweza kuhitajika.
Hatua ya 9: Maelezo ya ziada na Maelezo
Hatua zifuatazo hutoa habari zaidi juu ya jinsi usanifu wa HLS unafanya kazi na nini unaweza kufanya nayo.
Kwa mfano wa mradi unaotumia kizuizi cha IP kilichotengenezwa na HLS, angalia hii inaweza kufundishwa.
Hatua ya 10: Pato na Ingizo
Matokeo na pembejeo kwenye kizuizi cha mwisho cha IP imedhamiriwa kutoka kwa uchambuzi ambayo synthesizer hufanya ya mtiririko wa data ndani na nje ya kazi ya juu.
Sawa na VHDL au verilog, HLS hukuruhusu kutaja maelezo juu ya unganisho kati ya IP. Mistari hii ni mifano ya hii:
picha batili ya picha (AXI_STREAM & video_in, AXI_STREAM & video_out, int & x, int & y) {
#pragma HLS INTERFACE axis port = video_in bundle = INPUT_STREAM #pragma HLS INTERFACE axis port = video_out kifungu = OUTPUT_STREAM #pragma HLS INTERFACE s_axilite port = x kifungu = CONTROL_BUS offset = 0x14 # pragma HLS INTERFACE s_axle set 0
Unaweza kuona jinsi bandari zilizoonyeshwa kwenye kizuizi cha IP zinaathiriwa na maagizo haya.
Hatua ya 11: Kujiandikisha kwa AXI
Ili kupata pembejeo / pato kwenda / kutoka kwa kizuizi chako cha IP hadi PS njia nzuri ya kufanya hivyo ni kupitia kiunga cha AXI.
Unaweza kutaja hii katika nambari yako ya HLS, pamoja na pesa ambazo zitatumiwa kufikia dhamana baadaye kama hii:
picha batili ya picha (AXI_STREAM & video_in, AXI_STREAM & video_out, int & x, int & y) {
#pragma HLS INTERFACE s_axilite port = x kifungu = CONTROL_BUS offset = 0x14
#pragma HLS INTERFACE s_axilite port = y kifungu = CONTROL_BUS offset = 0x1C #pragma HLS dataflow
x = 42;
y = 0xDEADBEEF; }
Mara tu ukiunganishwa vizuri katika Vivado, unaweza kupata maadili ukitumia nambari hii katika Vivado SDK:
# pamoja na "vigezo.h"
#fafanua xregoff 0x14 #fafanua 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);
Hii itakuwa na wewe kuishia na 42 katika x na 0xdeadbeef katika y
Hatua ya 12: Pragma ya data
Ndani ya #pragma DATAFLOW njia ambayo nambari inatekelezwa inabadilika kutoka kwa C ++ ya kawaida. Nambari imewekwa bomba ili maagizo yote yatekelezwe kila wakati katika sehemu tofauti za data (Fikiria kama laini ya kusanyiko katika kiwanda, kila kituo kinafanya kazi kwa kuendelea kufanya kazi moja na kuipeleka kituo cha pili)
kutoka kwa picha unaweza kuona kwamba kila maagizo
Licha ya kuonekana kuwa vigeuzi vya kawaida, vitu vya img vinatekelezwa kama bafa ndogo kati ya amri. Kutumia picha kama pembejeo kwa kazi "hutumia" na kuifanya isitumike tena. (Kwa hivyo hitaji la amri za dufu)
Ilipendekeza:
Moja kwa moja 4G / 5G HD Kutiririka Video Kutoka kwa DJI Drone kwa Ucheleweshaji wa Chini [Hatua 3]: Hatua 3
Moja kwa moja Video ya 4G / 5G ya Utiririshaji wa HD Kutoka kwa DJI Drone kwa Ucheleweshaji wa Chini [Hatua 3]: Mwongozo ufuatao utakusaidia kupata mitiririko ya video yenye ubora wa HD kutoka karibu na drone yoyote ya DJI. Kwa msaada wa Programu ya Simu ya FlytOS na Maombi ya Wavuti ya FlytNow, unaweza kuanza kutiririsha video kutoka kwa drone
Jinsi ya Kutumia Vivado Simluation: 6 Hatua
Jinsi ya Kutumia Vivado Simluation: Nimefanya mradi huu wa kuiga kwa darasa la mkondoni. Mradi huo umeandikwa na Verilog. Tutatumia masimulizi katika Vivado kuibua muundo wa mawimbi katika kuwezesha_sr (wezesha tarakimu) kutoka kwa mradi wa saa ya kutazama uliyoundwa hapo awali. Kwa kuongeza, tutat
Jinsi ya kutengeneza Split Screen Video na Hatua nne: Hatua 4 (na Picha)
Jinsi ya kutengeneza Video ya Kugawanyika na Hatua nne: Mara nyingi tunaona mtu mmoja akionyesha kwenye eneo mara mbili kwenye uchezaji wa Runinga. Kwa kadri tunavyojua, muigizaji hana ndugu mapacha. Tumeangalia pia kuwa video mbili za kuimba zimewekwa kwenye skrini moja kulinganisha ujuzi wao wa kuimba. Hii ni nguvu ya spl
Camara De Video En Carro De Radio Control / Video Camera kwenye R / C Lori: Hatua 5
Camara De Video En Carro De Radio Control / Video Camera on R / C Truck: Este Instruccionable presentado en Espanol e Ingles. Hizi zinafundishwa kwa Kihispania na Kiingereza
Kidogo Video Kijijini kwa Kicheza Video cha PC: Hatua 6
Video ya Kidogo ya Kijijini kwa Kicheza Video cha PC: Ninaunda udhibiti wa kijijini unaounganisha na PC na USB. Udhibiti mkubwa wa kijijini unamruhusu mtoto wangu kuchagua na kucheza video kwenye kompyuta ya zamani. Huu ni mradi rahisi. Sehemu ya msingi inaweza kuwa keypad ya USB au keypad ya USB isiyo na waya. Kisha