Sadržaj:

FPGA Cyclone IV DueProLogic - dugme i LED: 5 koraka
FPGA Cyclone IV DueProLogic - dugme i LED: 5 koraka

Video: FPGA Cyclone IV DueProLogic - dugme i LED: 5 koraka

Video: FPGA Cyclone IV DueProLogic - dugme i LED: 5 koraka
Video: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, Novembar
Anonim
FPGA Cyclone IV DueProLogic - dugme i LED
FPGA Cyclone IV DueProLogic - dugme i LED

U ovom vodiču ćemo koristiti FPGA za upravljanje vanjskim LED krugom. Implementirat ćemo sljedeće zadatke

(A) Koristite tipke na FPGA Cyclone IV DuePrologic za upravljanje LED diodama.

(B) LED dioda blica povremeno se uključuje i isključuje

Video demo

Laboratorijski meni:

Korak 1: Izgradite elektroničko kolo

Korak 2: Provjerite Pin Planner i uredite Verilog kod

Provjerite Pin Planner i uredite Verilog kod
Provjerite Pin Planner i uredite Verilog kod

Korak 3: Uredite Verilog kôd

Uredite Verilog kod
Uredite Verilog kod

Kada kupujete FPGA DueProLogic, trebali biste dobiti DVD. Nakon što otvorite "Projects_HDL", trebali biste vidjeti originalnu datoteku koda

Dodajte označeni kôd. Registrira I/O portove i dodjeljuje brojeve portovima.

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

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

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

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

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

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

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

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

ulazna žica UBA, // Prekidači tipkama

ulazna žica UBB // Prekidači na dugme

dodijeli XIO_1 [3] = start_stop_cntrl;

dodijeli XIO_2 [1] = start_blinky; // LED blic LED uključen i isključen

dodijeli XIO_2 [2] = 1'b1; // izlaz HIGH

dodijeli XIO_2 [3] = ~ UBA; // Pritisnite dugme A

dodijeliti XIO_2 [4] = UBB; // Pritisnuti dugme B

dodijeli c_enable = XIO_5 [2];

dodijeli LEDExt = XIO_5 [5];

Zatim moramo postaviti tajmer odgode. Komentirajte izvorni kod mjerača vremena i napišite novu funkciju tajmera

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

// LED Treperenje treperi

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

/*

uvijek @(postavljen CLK_66 ili negedge RST)

početi

ako (! RST)

start_blinky <= 1'b0;

else

početi

if (control_register [7: 4]> 0)

start_blinky <= 1'b1;

else

start_blinky <= 1'b0;

kraj

kraj

*/

reg [31: 0] ex;

početni početak

ex <= 32'b0;

start_blinky <= 1'b0;

kraj

uvijek @(postavljeno CLK_66)

početi

ex <= ex + 1'b1;

if (ex> 100000000) // blic uključen/isključen ~ 1,6 sekundi, takt 66MHz

početi

start_blinky <=! start_blinky;

ex <= 32'b0;

kraj

kraj

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

// Brojač odgode LED kašnjenja

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

/*

uvijek @(postavljeni CLK_66 ili negedge RST)

početi

ako (! RST)

vodioc_zakasnelog_kašnjenja <= TIMER_LOW_LIMIT;

else

početi

ako (navedite [SELECT_MODE])

led_delay_counter <= timer_value;

inače ako (navedite [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

kraj

kraj*/

Korak 4: Sastavite Verilog kod

Sastavite Verilog kod
Sastavite Verilog kod
Sastavite Verilog kod
Sastavite Verilog kod

Pritisnite "Pokreni kompilaciju" u Quartusu, poruka o grešci ne bi trebala biti generirana.

Ako primite poruku o grešci o više pinova. Idite na Zadaci -> Uređaj -> Opcije uređaja i pinova -> Dvonamjenske pinove -> promijenite vrijednost odgovarajućeg pina u "Koristi kao običan I/O".

Nakon kompilacije, trebali biste izravno dobiti pof izlaznu datoteku. Ako vaš softver nije ažuriran, možda ćete dobiti samo sof datoteku. Kada se to dogodi, kliknite "Datoteka" u Quartusu -> "pretvori programske datoteke". Promijenite postavke označene crvenim okvirima.

Korak 5: Pokušajmo

Na kraju krajeva, trebalo bi raditi !!! Žuta LED lampica je uvek uključena. Crvena LED lampica treperi. Plava LED dioda se isključuje ako pritisnete dugme B. Zelena LED lampica se uključuje ako pritisnete dugme A

Preporučuje se: