FPGA_VIVADO_SI_VHDL_Mihael_Cristian_Ignat

(Cristian I.K_ntXI) #1
59

6. Proiect demo


Pentru a vedea cum se poate realiza un proiect un pic mai complex utilizând unele componente deja
explicate, vom crea un proiect demonstrativ. Componentele ce vor fi folosite sunt următoarele:


1. ROM_extract_pixel.vhd în care se utilizează ROM_character.vhd
2. VGA_pattern.vhd
în care se utilizează și Sync_VGA.vhd
3. ssd_ctrl.vhd
4. shift_reg.vhd
5. UART_TX.vhd


În anexă, componenta proiectului demonstrativ poartă denumirea demo.vhd. Pe lângă fișierele de mai
sus, va fi utilizat și fișierul de constrângeri Basys3.xdc și mai trebuie creat un generator de clock ce va face
conversia de la 100 MHz la 65 MHz, utilizând următorii pași:



  1. Din Flow Navigator - > PROFECT MANAGER se selectează IP Catalog


Fig. 66: IP Catalog


  1. Se deschide IP Catalog. Aici se caută după “Clocking Wizard”, după care se dă dublu click pe
    acesta

  2. Se deschide fereastra de configurare. În tab-ul Clocking Options se verifică dacă input
    frequency este 100.000

  3. Se trece la următorul tab, iar la căsuța de Output Frequency se completează la Requested cu
    65, aceasta reprezentând 65 MHz. Tot în acest tab se dă scroll până jos și se debifează
    opțiunile “reset” și “locked” pentru a nu apărea acești pini la componenta ce va fi generată

  4. Ca acest cod demo să funcționeze fără modificări, va trebui verificat numele componentei
    ca acesta să fie “clk_wiz_0”, iar dacă acesta este diferit, atunci trebuie redenumit cu acest
    nume, după care se apasă pe butonul OK


Utilizând aceste componente, dorim să avem următorul comportament:


  • să afișăm pe VGA tiparul din Fig. 61 împreună cu cifrele 0 și 1

  • să afișăm toate cifrele pe SSD într-un mod incremental

  • să utilizăm registrul de rotire pentru leduri astfel încât să vedem că acestea se rotesc spre
    stânga. Aceste leduri vor fi vizibile doar când switch-urile corespunzătoare vor fi ridicate,
    lucru ce se realizează cu un AND logic, utilizând următorul cod:
    led <= shift_reg_q and sw;

  • să transmitem pe UART mesajul “Hello world”

Free download pdf