Mündəricat:

FPGA Cyclone IV DueProLogic - Düymə və LED: 5 addım
FPGA Cyclone IV DueProLogic - Düymə və LED: 5 addım

Video: FPGA Cyclone IV DueProLogic - Düymə və LED: 5 addım

Video: FPGA Cyclone IV DueProLogic - Düymə və LED: 5 addım
Video: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, Noyabr
Anonim
FPGA Cyclone IV DueProLogic - Push Button və LED
FPGA Cyclone IV DueProLogic - Push Button və LED

Bu təlimatda, xarici LED dövrəsini idarə etmək üçün FPGA -dan istifadə edəcəyik. Aşağıdakı vəzifələri yerinə yetirəcəyik

(A) LED -i idarə etmək üçün FPGA Cyclone IV DuePrologic düymələrindən istifadə edin.

(B) Flaş LED -i vaxtaşırı açılır və sönür

Video demo

Laboratoriya menyusu:

Addım 1: Elektron Dövrə qurun

Addım 2: Pin Plannerini yoxlayın və Verilog Kodunu Düzəldin

Pin Plannerini yoxlayın və Verilog Kodunu Düzəldin
Pin Plannerini yoxlayın və Verilog Kodunu Düzəldin

Addım 3: Verilog Kodunu redaktə edin

Verilog kodunu redaktə edin
Verilog kodunu redaktə edin

FPGA DueProLogic satın aldığınız zaman bir DVD almalısınız. "Projects_HDL" proqramını açdıqdan sonra orijinal kod faylını görməlisiniz

Vurğulanan kodu əlavə edin. G/Ç portlarını qeyd edir və limanlara nömrələr təyin edir.

çıxış teli [7: 0] XIO_1, // XIO-D2-D9

çıxış teli [5: 0] XIO_2, // XIO-D10-D12

çıxış teli [5: 0] XIO_3, // XIO-D22-D29

giriş teli [5: 0] XIO_4, // XIO-D30-D37

giriş teli [5: 0] XIO_5, // XIO-D38-D45

çıxış teli [4: 0] XIO_6_OUT, // XIO-D46-D53

giriş teli [31: 5] XIO_6, // XIO-D46-D53

çıxış teli [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

giriş teli UBA, // Push Button Switch

giriş teli UBB // Push Button Switch

təyin XIO_1 [3] = start_stop_cntrl;

təyin XIO_2 [1] = start_blinky; // LED fənəri LED yandırılır və sönür

təyin XIO_2 [2] = 1'b1; // YÜKSƏK

təyin XIO_2 [3] = ~ UBA; // A düyməsini basın

təyin XIO_2 [4] = UBB; // B düyməsini basın

c_enable = XIO_5 [2] təyin edin;

LEDExt = XIO_5 [5] təyin edin;

Sonra bir gecikmə taymerini təyin etməliyik. Orijinal taymer kodunu şərh edin və yeni bir taymer funksiyası yazın

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

// LED yanıb -sönən başlanğıc

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

/*

həmişə @(pozitge CLK_66 və ya RST işarələndi)

başlamaq

əgər (! RST)

start_blinky <= 1'b0;

başqa

başlamaq

əgər (control_register [7: 4]> 0)

start_blinky <= 1'b1;

başqa

start_blinky <= 1'b0;

bitmək

bitmək

*/

reg [31: 0] ex;

ilkin başlanğıc

ex <= 32'b0;

start_blinky <= 1'b0;

bitmək

həmişə @(poza CLK_66)

başlamaq

ex <= ex + 1'b1;

əgər (məsələn> 100000000) // yanıp sönmə/sönmə ~ 1.6 saniyə, saat 66MHz

başlamaq

start_blinky <=! start_blinky;

ex <= 32'b0;

bitmək

bitmək

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

// LED Gecikmə Taymeri Sayacı

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

/*

həmişə @(pozitge CLK_66 və ya RST işarələndi)

başlamaq

əgər (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

başqa

başlamaq

əgər (dövlət [SELECT_MODE])

led_delay_counter <= timer_value;

başqa halda ([WAIT_FOR_TIMER] vəziyyətini bildirin)

led_delay_counter <= led_delay_counter - 1'd1;

bitmək

son*/

Addım 4: Verilog Kodunu tərtib edin

Verilog Kodunu tərtib edin
Verilog Kodunu tərtib edin
Verilog Kodunu tərtib edin
Verilog Kodunu tərtib edin

Quartus -da "Derlemeye Başla" düyməsini basın, heç bir səhv mesajı yaradılmamalıdır.

Birdən çox pin haqqında bir səhv mesajı alsanız. Tapşırıqlar -> Cihaz -> Cihaz və Pin Seçimləri -> İkiqat Məqalələrə -> uyğun pinin dəyərini "Normal G/Ç olaraq istifadə et" olaraq dəyişdirin.

Tərtib etdikdən sonra birbaşa pof çıxış faylını almalısınız. Proqramınız müasir deyilsə, yalnız sof faylı əldə edə bilərsiniz. Bu baş verdikdə, Quartusdakı "Fayl" -> "proqramlaşdırma fayllarını çevir" düyməsini basın. Qırmızı qutularla işarələnmiş parametrləri dəyişdirin.

Addım 5: Gəlin sınayaq

Axı, işləməlidir !!! Sarı LED həmişə yanır. Qırmızı LED yanıb -sönür. B düyməsini basarsanız mavi LED sönür. A düyməsini basarsanız yaşıl LED yanır

Tövsiyə: