Obsah:

FPGA Cyclone IV DueProLogic - tlačidlo a LED: 5 krokov
FPGA Cyclone IV DueProLogic - tlačidlo a LED: 5 krokov
Anonim
FPGA Cyclone IV DueProLogic - tlačidlo a LED dióda
FPGA Cyclone IV DueProLogic - tlačidlo a LED dióda

V tomto tutoriále použijeme FPGA na ovládanie externého obvodu LED. Budeme implementovať nasledujúce úlohy

(A) Na ovládanie LED diódy použite tlačidlá na FPGA Cyclone IV DuePrologic.

(B) LED dióda Flash sa pravidelne zapína a vypína

Video ukážka

Laboratórna ponuka:

Krok 1: Vytvorte elektronický obvod

Krok 2: Skontrolujte plánovač pinov a upravte kód Verilog

Skontrolujte plánovač pinov a upravte kód Verilog
Skontrolujte plánovač pinov a upravte kód Verilog

Krok 3: Upravte kód Verilog

Upraviť kód Verilog
Upraviť kód Verilog

Pri kúpe FPGA DueProLogic by ste mali dostať DVD. Po otvorení „Projects_HDL“by ste mali vidieť pôvodný súbor s kódom

Pridajte zvýraznený kód. Zaregistruje I/O porty a priradí portom čísla.

výstupný vodič [7: 0] XIO_1, // XIO-D2-D9

výstupný vodič [5: 0] XIO_2, // XIO-D10-D12

výstupný vodič [5: 0] XIO_3, // XIO-D22-D29

vstupný vodič [5: 0] XIO_4, // XIO-D30-D37

vstupný vodič [5: 0] XIO_5, // XIO-D38-D45

výstupný vodič [4: 0] XIO_6_OUT, // XIO-D46-D53

vstupný vodič [31: 5] XIO_6, // XIO-D46-D53

výstupný vodič [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

vstupný vodič UBA, // tlačidlové prepínače

vstupný vodič UBB // tlačidlové spínače

priradiť XIO_1 [3] = start_stop_cntrl;

priradiť XIO_2 [1] = start_blinky; // LED blesk LED zapína a vypína

priradiť XIO_2 [2] = 1'b1; // výstup VYSOKÝ

priradiť XIO_2 [3] = ~ UBA; // Stlačte tlačidlo A

priradiť XIO_2 [4] = UBB; // Stlačte tlačidlo B

priradiť c_enable = XIO_5 [2];

priradiť LEDExt = XIO_5 [5];

Potom musíme nastaviť časovač oneskorenia. Komentujte pôvodný kód časovača a napíšte novú funkciu časovača

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

// LED Blinky štart

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

/*

vždy @(posedge CLK_66 alebo negedge RST)

začať

ak (! RST)

start_blinky <= 1'b0;

inak

začať

if (control_register [7: 4]> 0)

start_blinky <= 1'b1;

inak

start_blinky <= 1'b0;

koniec

koniec

*/

reg [31: 0] ex;

počiatočný začiatok

ex <= 32'b0;

start_blinky <= 1'b0;

koniec

vždy @(posedge CLK_66)

začať

ex <= ex + 1'b1;

ak (napr.> 100000000) // zapnutie/vypnutie blesku ~ 1,6 sekundy, hodiny 66 MHz

začať

start_blinky <=! start_blinky;

ex <= 32'b0;

koniec

koniec

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

// Počítadlo časovača oneskorenia LED

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

/*

vždy @(posedge CLK_66 alebo negedge RST)

začať

ak (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

inak

začať

if (state [SELECT_MODE])

led_delay_counter <= hodnota_časovača;

else if (state [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

koniec

koniec*/

Krok 4: Zostavte kód Verilog

Zostavte kód Verilog
Zostavte kód Verilog
Zostavte kód Verilog
Zostavte kód Verilog

V programe Quartus kliknite na „Spustiť kompiláciu“, nemalo by sa vytvárať žiadne chybové hlásenie.

Ak sa zobrazí chybové hlásenie o viacerých kolíkoch. Prejdite na Úlohy -> Zariadenie -> Možnosti zariadenia a pinov -> Dvojúčelové piny -> zmeňte hodnotu príslušného kolíka na „Použiť ako pravidelný I/O“.

Po kompilácii by ste mali dostať výstupný súbor pof priamo. Ak váš softvér nie je aktuálny, môžete získať iba súbor sof. Keď sa to stane, kliknite v Quartuse na „Súbor“-> „Previesť programovacie súbory“. Zmeňte nastavenia, ktoré sú označené červenými políčkami.

Krok 5: Skúsme to

Predsa by to malo fungovať !!! Žltá dióda LED stále svieti. Červená LED dióda bliká. Modrá LED dióda zhasne, ak stlačíte tlačidlo B. Zelená LED dióda sa rozsvieti, ak stlačíte tlačidlo A

Odporúča: