2. vaja: pulzno-širinski modulator
|
|
Cilj laboratorijske vaje je izdelava PWM komponente v jeziku VHDL in povezava z vgrajenim sistemom iz prve laboratorijske vaje.
|
Izdelava komponente IP
1. Izdelava novega projekta
- v orodju Vivado naredi nov projekt z imenom pwm in izberi razvojno ploščo Zedboard
- klikni Add Sources in ustvari novo VHDL datoteko z imenom pwm ter definiraj priključke:
2. Naloga
Naredi VHDL opis 8-kanalnega pulznoširinskega modulatorja. Vhodni signal data razdeli na osem 4-bitnih vrednosti, ki predstavljajo stopnjo modulacije za posamezen bit izhodnega signala led.
Pulznoširinski modulator je sestavljen iz števca (cnt), ki spreminja vrednosti med 0 in 14. S primerjavo vrednosti števca in stopnje modulacije ugotovi, ali bo v posameznem urnem ciklu na izhodu logična '0' ali logična '1'. Primer kode za en kanal:
if cnt < unsigned(data(3 downto 0)) then
led(0) <= '1';
else
led(0) <= '0';
end if;
Naredi opis modulatorja za vseh 8 kanalov in preizkusi delovanje na simulaciji. Nasvet: vsakokrat ko shranimo spremembe v VHDL kodi, se izvede kratka analiza in v zavihku messages javi sporočila (warnings) v primeru sintaktičnih napak. Simulacijo preprostega vezja bomo delali brez testne strukture.
- zaženi simulacijo (Run Behavioral Simulation) in nastavi vrednosti vhodov clk in data
- klikni z desnim gumbom na signal data, izberi Force Constant ter nastavi vrednost na vodilu data
- klikni še na signal clk in izberi Force Clock ter nastavi parametre ure, nato pa z Run For 10us zaženi simulacijo:
- na simulatorju preveri časovni potek izhodov pri različnih stopnjah modulacije, nato pa izvedi sintezo vezja (Run Synthesis) in ob zaključku izberi View Reports
Ko smo preverili opis vezja s simulacijo in uspešno naredili sintezo, lahko vezje zapakiramo v komponento IP.
- Iz menija Tools izberi Create and Package IP, nato pa pustimo privzeto Package your current project in na koncu kliknemo Finish. Program o naredil XML opis komponente IP, ki se nahaja v podmapi: pwm.srcs \ sources_1 \ new
Uporaba komponente v sistemu
3. Izdelava sistema z novo komponento
- Odpri osnovni projekt (sistem2.zip) in blokovni diagram (Open Block Design)
- Odpri IP Catalog in poišči ikono IP Settings. Odpre se okno v katerem bomo dodali novo komponento v katalog. S klikom na Add Repository izberi projektno mapo pwm in komponenta se bo uvrstila v katalog. Dodaj to komponento na blokovno shemo (Add IP) med AXI GPIO in izhod led[7:0], ter poveži uro s signalom s_axi_clk:
4. Naloga
Prevedi vezje in preizkusi delovanje na razvojni plošči.