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:
- Din Flow Navigator - > PROFECT MANAGER se selectează IP Catalog
Fig. 66: IP Catalog
- Se deschide IP Catalog. Aici se caută după “Clocking Wizard”, după care se dă dublu click pe
acesta - Se deschide fereastra de configurare. În tab-ul Clocking Options se verifică dacă input
frequency este 100.000 - 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ă - 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”