Kazalo:

FPGA Cyclone IV DueProLogic - potisni gumb in LED: 5 korakov
FPGA Cyclone IV DueProLogic - potisni gumb in LED: 5 korakov

Video: FPGA Cyclone IV DueProLogic - potisni gumb in LED: 5 korakov

Video: FPGA Cyclone IV DueProLogic - potisni gumb in LED: 5 korakov
Video: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, November
Anonim
FPGA Cyclone IV DueProLogic - potisni gumb in LED
FPGA Cyclone IV DueProLogic - potisni gumb in LED

V tej vadnici bomo uporabili FPGA za nadzor zunanjega LED vezja. Izvajali bomo naslednje naloge

(A) Za upravljanje LED uporabite tipke na FPGA Cyclone IV DuePrologic.

(B) LED dioda bliskavice se občasno vklopi in izklopi

Video demo

Laboratorijski meni:

Korak: Zgradite elektronsko vezje

2. korak: Preverite načrtovalec zatičev in uredite verilog kodo

Preverite načrtovalec pin in uredite verilog kodo
Preverite načrtovalec pin in uredite verilog kodo

3. korak: Uredite verilog kodo

Uredi verilog kodo
Uredi verilog kodo

Ko kupite FPGA DueProLogic, morate prejeti DVD. Ko odprete »Projects_HDL«, bi morali videti izvirno kodno datoteko

Dodajte označeno kodo. Registrira V/I vrata in dodeljuje številke vhodom.

izhodna žica [7: 0] XIO_1, // XIO-D2-D9

izhodna žica [5: 0] XIO_2, // XIO-D10-D12

izhodna žica [5: 0] XIO_3, // XIO-D22-D29

vhodna žica [5: 0] XIO_4, // XIO-D30-D37

vhodna žica [5: 0] XIO_5, // XIO-D38-D45

izhodna žica [4: 0] XIO_6_OUT, // XIO-D46-D53

vhodna žica [31: 5] XIO_6, // XIO-D46-D53

izhodna žica [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

vhodna žica UBA, // Stikala s pritiskom na gumb

vhodna žica UBB // Stikala za stikala

dodeli XIO_1 [3] = start_stop_cntrl;

dodeli XIO_2 [1] = start_blinky; // LED bliskavica LED vklopljena in izklopljena

dodeli XIO_2 [2] = 1'b1; // izhod HIGH

dodeli XIO_2 [3] = ~ UBA; // Pritisnite gumb A

dodelite XIO_2 [4] = UBB; // Pritisnite gumb B

dodeli c_enable = XIO_5 [2];

dodeli LEDExt = XIO_5 [5];

Nato moramo nastaviti časovni zamik. Komentirajte prvotno kodo časovnika in napišite novo funkcijo časovnika

//-----------------------------------------------

// LED utripajoč zagon

//-----------------------------------------------

/*

vedno @(postavljeno CLK_66 ali negedge RST)

začeti

če (! RST)

start_blinky <= 1'b0;

drugače

začeti

če (control_register [7: 4]> 0)

start_blinky <= 1'b1;

drugače

start_blinky <= 1'b0;

konec

konec

*/

reg [31: 0] ex;

začetni začetek

ex <= 32'b0;

start_blinky <= 1'b0;

konec

vedno @(postavljeno CLK_66)

začeti

ex <= ex + 1'b1;

if (ex> 100000000) // vklop/izklop bliskavice ~ 1,6 sekunde, ura 66MHz

začeti

start_blinky <=! start_blinky;

ex <= 32'b0;

konec

konec

//-----------------------------------------------

// Števec merilnika zakasnitve LED

//-----------------------------------------------

/*

vedno @(postavljeno CLK_66 ali negedge RST)

začeti

če (! RST)

števec led_delay_ = <TIMER_LOW_LIMIT;

drugače

začeti

če (navedite [SELECT_MODE])

števec led_delay_counter <= timer_value;

drugače če (navedite [WAIT_FOR_TIMER])

števec led_delay_counter <= led_delay_counter - 1'd1;

konec

konec*/

4. korak: Sestavite Verilog kodo

Sestavite Verilog kodo
Sestavite Verilog kodo
Sestavite Verilog kodo
Sestavite Verilog kodo

Pritisnite "Začni kompilacijo" v Quartusu, sporočilo o napaki ne sme biti ustvarjeno.

Če prejmete sporočilo o napaki o več zatičih. Pojdite na Naloge -> Naprava -> Možnosti naprave in zatičev -> Dvonamenski zatiči -> spremenite vrednost ustreznega zatiča na "Uporabi kot običajen V/I".

Po kompilaciji bi morali dobiti pof izhodno datoteko neposredno. Če vaša programska oprema ni posodobljena, lahko dobite samo sof datoteko. Ko se to zgodi, kliknite "Datoteka" v Quartusu -> "pretvori programske datoteke". Spremenite nastavitve, označene z rdečimi polji.

5. korak: Poskusimo

Konec koncev bi moralo delovati !!! Rumena LED sveti vedno. Rdeča LED utripa. Modra LED se izklopi, če pritisnete gumb B. Zelena LED se vklopi, če pritisnete gumb A

Priporočena: