FPGA ciklon IV DueProLogic - gumb i LED: 5 koraka
FPGA ciklon IV DueProLogic - gumb i LED: 5 koraka
Anonim
FPGA ciklon IV DueProLogic - gumb i LED
FPGA ciklon IV DueProLogic - gumb i LED

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

(A) Za upravljanje LED diodama koristite gumbe na FPGA Cyclone IV DuePrologic.

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

Video demo

Izbornik laboratorija:

Korak 1: Izgradite elektronički krug

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

Uređivanje Verilog koda
Uređivanje Verilog koda

Kada kupujete FPGA DueProLogic, trebali biste dobiti DVD. Nakon što otvorite "Projects_HDL", trebali biste vidjeti izvornu 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 pritiskom na gumb

ulazna žica UBB // Prekidači pritiskom na gumb

dodijeli XIO_1 [3] = start_stop_cntrl;

dodijeliti XIO_2 [1] = start_blinky; // LED bljeskalica LED uključena i isključena

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

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

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

dodijeli c_enable = XIO_5 [2];

dodijeli LEDExt = XIO_5 [5];

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

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

// LED Treperenje treperi

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

/*

uvijek @(postavljeni CLK_66 ili negedge RST)

početi

ako (! RST)

start_blinky <= 1'b0;

drugo

početi

if (control_register [7: 4]> 0)

start_blinky <= 1'b1;

drugo

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) // bljeskalica uključena/isključena ~ 1,6 sekundi, radni takt 66MHz

početi

start_blinky <=! start_blinky;

ex <= 32'b0;

kraj

kraj

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

// Brojač LED odgode

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

/*

uvijek @(postavljeni CLK_66 ili negedge RST)

početi

ako (! RST)

brojač zaostajanja_odlaganja <= TIMER_LOW_LIMIT;

drugo

početi

ako (navedite [SELECT_MODE])

brojač_odgode_odgoda <= vrijednost_vremena;

inače ako (navedite [WAIT_FOR_TIMER])

brojač_odluke_odgoda <= brojač_odgode_kašnjenja - 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, ne bi se trebala generirati poruka o pogrešci.

Ako primite poruku o pogreš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žete dobiti samo sof datoteku. Kada se to dogodi, kliknite "Datoteka" u Quartusu -> "pretvori programske datoteke". Promijenite postavke koje su označene crvenim okvirima.

Korak 5: Pokušajmo

Uostalom, trebalo bi raditi !!! Žuta LED dioda uvijek svijetli. Crvena LED dioda treperi. Plava LED dioda isključuje se ako pritisnete gumb B. Zelena LED lampica uključuje se ako pritisnete tipku A