[Home](index.html) | [Vivado](vivado.htm) | Blokovni diagram | [Enostaven IP](vivado-ip.htm) | [AXI IP](vivado-axi.htm) [SDK](sdk.htm) # Izdelava blokovnega diagrama Povzetek korakov izdelave in prevajanja projekta z blokovnim diagramom v programu Vivado: * Create Project, definiraj Board * Create Block Design * ADD IP, povezovanje * Generate Block Design * Create HDL Wrapper * Run Implementation, Generate Bitstream ## Projekt V programu Vivado 2017 izberi **Create Project**, določi ime, npr. `blok1` in lokacijo `D:/designs/moja_mapa`. Pri izbiri imena in lokacije ne uporabljaj šumnikov in presledkov! Nato 4-krat klikni Next, da ostanejo privzete opcije, na koncu pa določi **Default Part** s klikom na gumb Boards in izbiro `ZedBoard Zynq Evaluation and Development Kit`. ![](./img/Vivado_board.png) ## Blokovni diagram V meniju na levi klikni **Create Block Design**, da se odpre novo okno za risanje blokovnega diagrama. Klikni na Add IP (ikona + ali ctrl+i), v polje Search zapiši `Zynq` in izberi `ZYNQ7 Processing System`. To je osnovna komponenta, ki predstavlja procesorski del vezij Zynq. Ko je komponenta postavljena na diagram, jo po potrebi z dvoklikom nastavimo (Customize Block) in povežemo. Nekatere komponente zna program sam povezati in ponudi pomoč na zelenem traku na vrhu diagrama (Designer Assistance available). ![](./img/Vivado_Zynq.png) Če kliknemo na **Run Block Automation** in bo program avtomatsko naredil zunanje povezave procesorja (DDR in FIXED IO). Procesorska komponenta ima priključke z vmesnikom AXI za povezavo z drugimi komponentami v vezju FPGA. Dodaj v vezje vhodno-izhodni vmesnik AXI GPIO: Add IP in v Search vnesi `gpio`. Postavi komponento na diagrami in z dvoklikom odpri okno za nastavitev parametrov. Vmesnik AXI GPIO ima en ali dva GPIO priključka, ki jima lahko v zavihku *IP Configuration* nastavimo število bitov (1-32) in smer (All Inputs, All Outputs ali privzeto dvosmerni). V zavihku *Board* imamo možnost izbire specifične nastavitve za izbrano razvojno ploščo. Izberi povezavo na LED in stikala: ![](./img/Vivado_GPIO.png) Na vrhu diagrama se ponovno pojavi zelen trak. Klikni na **Run Connection Automation** in izberi All Automation. Program bo avtomatsko naredil zunanje povezave in dodal nekaj komponent za povezavo s procesorskim delom: komponenta AXI Interconnect je vmesnik s pretvornikom protokola za vodilo AXI, komponenta Processor System Reset pa pripravi ustrezno zaporedje resetirnih signalov za periferne enote. Celotna shema sedaj izgleda tako: ![](./img/Vivado_blok1.png) ## Prevajanje Blokovni diagram preveri z **Validate Design** (F6), nato klikni v levem meniju na **Generate Block Design** in gumb Generate. Program bo iz repozitorija prenesel vse izvorne datoteke komponent IP in pognal sintezo. Trenutni potek in rezultati so v spodnjem zavihku *Design Runs* pod Out-of-Context Module Runs: ![](./img/Vivado_runs.png) V poročilu vidimo, da največ tabel (LUT) in flip-flopov (FF) zasede vmesnik s pretvornikom protokola AXI (design_1_auto_pc_0). Pred prevajanjem sistema je potrebno iz blokovnega diagrama narediti jezikovni opis (HDL Wrapper). Izberi zavihek *Hierarchy* in v *Design Sources* z desnim gumbom klikni na datoteko diagrama design_1, izberi **Create HDL Wrapper** ter potrdi privzeto izbiro (Let Vivado manage...). ![](./img/Vivado_wrap.png) Program bo glede na privzeti jezik projekta naredil novo VHDL ali Verilog datoteko, ki opisuje diagram. Če je potrebno, pred prevajanjem dodamo v projekt še datoteke z omejitvami (Design Constraints), nato pa prevedemo sistem: **Run Synthesis** in **Run Implementation**. Po implementaciji izberemo Generate Bitstream, ki naredi nastavitveno datoteko za programirljivo vezje.