Spisu treści:

FPGA Cyclone IV DueProLogic - przycisk i dioda LED: 5 kroków
FPGA Cyclone IV DueProLogic - przycisk i dioda LED: 5 kroków

Wideo: FPGA Cyclone IV DueProLogic - przycisk i dioda LED: 5 kroków

Wideo: FPGA Cyclone IV DueProLogic - przycisk i dioda LED: 5 kroków
Wideo: DE0-Nano — Краткое руководство по началу работы с Altera Cyclone IV FPGA | Шаг за шагом 2024, Listopad
Anonim
FPGA Cyclone IV DueProLogic - przycisk i dioda LED
FPGA Cyclone IV DueProLogic - przycisk i dioda LED

W tym samouczku użyjemy FPGA do sterowania zewnętrznym obwodem LED. Zrealizujemy następujące zadania

(A) Użyj przycisków na FPGA Cyclone IV DuePrologic do sterowania diodą LED.

(B) Okresowe włączanie i wyłączanie lampy błyskowej LED

Demo wideo

Menu laboratorium:

Krok 1: Zbuduj obwód elektroniczny

Krok 2: Sprawdź Pin Planner i edytuj kod Verilog

Sprawdź Pin Planner i edytuj kod Verilog
Sprawdź Pin Planner i edytuj kod Verilog

Krok 3: Edytuj kod Verilog

Edytuj kod Verilog
Edytuj kod Verilog

Kupując FPGA DueProLogic, powinieneś otrzymać płytę DVD. Po otwarciu „Projects_HDL” powinieneś zobaczyć oryginalny plik kodu

Dodaj podświetlony kod. Rejestruje porty I/O i przypisuje numery do portów.

przewód wyjściowy [7:0] XIO_1, //XIO -- D2-D9

przewód wyjściowy [5:0] XIO_2, //XIO -- D10-D12

przewód wyjściowy [5:0] XIO_3, //XIO -- D22-D29

przewód wejściowy [5:0] XIO_4, //XIO -- D30-D37

przewód wejściowy [5:0] XIO_5, //XIO -- D38-D45

przewód wyjściowy [4:0] XIO_6_OUT, //XIO -- D46-D53

przewód wejściowy [31:5] XIO_6, //XIO -- D46-D53

przewód wyjściowy [2:0] XIO_7, //XIO -- D69, D70, D71, D74, D75, D76

przewód wejściowy UBA, //Przełączniki przyciskowe

przewód wejściowy UBB//przełączniki przyciskowe

przypisz XIO_1[3] = start_stop_cntrl;

przypisz XIO_2[1] = start_blinky; //LED lampa błyskowa LED włączanie i wyłączanie

przypisz XIO_2[2] = 1'b1; //wyjście WYSOKA

przypisz XIO_2 [3] = ~UBA; //Przycisk A

przypisz XIO_2 [4] = UBB; //Przycisk B

przypisz c_enable = XIO_5[2];

przypisz LEDExt = XIO_5[5];

Następnie musimy ustawić timer opóźnienia. Skomentuj oryginalny kod timera i napisz nową funkcję timera

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

// LED migający start

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

/*

zawsze @(posge CLK_66 lub negege RST)

rozpocząć

jeśli(!RST)

start_blinky <= 1'b0;

w przeciwnym razie

rozpocząć

if(control_register[7:4] > 0)

start_blinky <= 1'b1;

w przeciwnym razie

start_blinky <= 1'b0;

kończyć się

kończyć się

*/

reg [31:0] ex;

początkowy początek

ex <= 32'b0;

start_blinky <= 1'b0;

kończyć się

zawsze @(posge CLK_66)

rozpocząć

ex <= ex + 1'b1;

if(ex > 100000000) //flash on/off ~1.6 sekundy, taktowanie 66MHz

rozpocząć

start_blinky <= !start_blinky;

ex <= 32'b0;

kończyć się

kończyć się

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

// Licznik czasu opóźnienia LED

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

/*

zawsze @(posge CLK_66 lub negege RST)

rozpocząć

jeśli(!RST)

led_delay_counter <= TIMER_LOW_LIMIT;

w przeciwnym razie

rozpocząć

if(stan[SELECT_MODE])

led_delay_counter <= timer_value;

else if(stan[WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

kończyć się

kończyć się*/

Krok 4: Skompiluj kod Verilog

Skompiluj kod Veriloga
Skompiluj kod Veriloga
Skompiluj kod Veriloga
Skompiluj kod Veriloga

Naciśnij „Rozpocznij kompilację” w Quartus, nie powinien zostać wygenerowany żaden komunikat o błędzie.

Jeśli pojawi się komunikat o błędzie dotyczący wielu pinów. Przejdź do Przypisania -> Urządzenie -> Opcje urządzenia i pinów -> Piny o podwójnym przeznaczeniu -> zmień wartość odpowiedniego pinu na "Użyj jako zwykłego wejścia/wyjścia".

Po kompilacji powinieneś bezpośrednio pobrać plik wyjściowy pof. Jeśli twoje oprogramowanie nie jest aktualne, możesz otrzymać tylko plik soft. Kiedy to się stanie, kliknij "Plik" w Quartus -> "konwertuj pliki programowania". Zmień ustawienia, które są oznaczone czerwonymi polami.

Krok 5: Spróbujmy

W końcu powinno działać!!! Żółta dioda LED jest zawsze włączona. Czerwona dioda LED miga. Niebieska dioda LED zgaśnie po naciśnięciu przycisku B. Zielona dioda LED zostanie włączona po naciśnięciu przycisku A

Zalecana: