Programarea FPGA-ului în Vivado

Pentru acest tutorial vom presupune că ați parcurs deja tutorialele: Creare proiect Vivado și Simulare modul Vivado fără nicio eroare în timpul simulării la tabul Messages (ignorați warning-urile momentan)

Pentru a programa FPGA-ul în Vivado trebuie să adăugăm un Constraint File:

  1. Click fie la "Add Sources", fie click dreapta în ferestra Sources sau folosim Alt+A
  2. Selectăm "Add or create constraints", apoi Next
  3. Click pe “Create File”, alegem un nume, de exemplu "nexys_a7", Ok, apoi Finish
  4. Ar trebui să vedem acum un fișier gol cu numele nexys_a7.xdc la Sources. (exemplu)
  5. Vom scrie în acest fișier gol tot conținutul acestui fișier de pe github: Nexys-A7-100T-Master.xdc. Cu ajutorul acestuia vom lega fiecare port al top modulului nostru (task01.v) la locații fizice de pe FPGA. Având la dispoziție următorul modul Verilog:
module task01(
    input in,
    output out
    );
 
    assign out = in;
 
endmodule

Ne propunem să legăm intrarea in la push-button-ul N17 (cel din centru), iar ieșirea out la ledul H17 (cel mai din dreapta). Pentru acest lucru vom analiza fișierul Nexys-A7-100T-Master.xdc: toate liniile sunt comentate. Există grupuri de linii comentate pentru semnalul de ceas, switches, LEDs, RGB LEDs,push-buttons, 7 segments, CPU Reset Button, Buttons etc. Ne vom concentra acum doar pe LEDs și Buttons. Vom decomenta linia 30:

set_property -dict { PACKAGE_PIN H17   IOSTANDARD LVCMOS33 } [get_ports { LED[0] }]; #IO_L18P_T2_A24_15 Sch=led[0]

și linia 77:

set_property -dict { PACKAGE_PIN N17   IOSTANDARD LVCMOS33 } [get_ports { BTNC }]; #IO_L9P_T1_DQS_14 Sch=btnc

apoi vom schimba parametrul primit de “get_ports” din LED[0] în out și din BTNC în in.

Cele două linii vor deveni astfel:

set_property -dict { PACKAGE_PIN H17   IOSTANDARD LVCMOS33 } [get_ports { out }]; #IO_L18P_T2_A24_15 Sch=led[0]

respectiv,

set_property -dict { PACKAGE_PIN N17   IOSTANDARD LVCMOS33 } [get_ports { in }]; #IO_L9P_T1_DQS_14 Sch=btnc

Putem lăsa celelalte linii comentate așa cum sunt le vom folosi în viitor pentru alte module. Salvați fișierul .xdc.

Următorul pas în programarea FPGA-ului este generarea bitstream-ului:

  1. În fereastra Flow Manager, în partea de jos apăsați pe ”Generate bitstream
  2. În colțul din dreapta sus putem verifica progresul. (exemplu 1, exemplu 2, iar în final ar trebui să vedem "write_bitstream Complete").
  3. Fisierul .bit a fost scris cu succes, dar se află încă în memoria calculatorului, acesta trebuie transferat pe FPGA.
  4. Conectați plăcuța la computer prin cablul USB-microUSB din cutie, porniți plăcuța folosind switch-ul lângă care scrie POWER.
  5. Apăsați “Open Target” și apoi “Auto Connect” (exemplu)
  6. Procesul de auto conectare nu ar trebui să dureze mult și ar trebui să vedem opțiunea "Program device" sub Hardware Manager
  7. și apoi să apăsăm Program dacă avem deja locația fișierului .bit la Bitstream file.
  8. În final ar trebui să avem un mesaj similar în Consolă și ledul “Done” aprins pe plăcuță.
  9. Dacă toți pașii au fost parcurși în mod corespunzător ledul H17 ar trebui să se aprindă cât timp butonul N17 este apăsat.

Dacă aveți sugestii de îmbunătățire a acestei pagini vă rog să trimiteți sugestiile pe mail la dosarudaniel@gmail.com. Sugestiile bune vor fi recomensate cu puncte bonus.

apm/tutoriale/load-bitstream-on-fpga-vivado.txt · Last modified: 2024/02/29 15:06 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0