Isi kandungan:

FPGA Cyclone IV DueProLogic - Butang Tekan & LED: 5 Langkah
FPGA Cyclone IV DueProLogic - Butang Tekan & LED: 5 Langkah

Video: FPGA Cyclone IV DueProLogic - Butang Tekan & LED: 5 Langkah

Video: FPGA Cyclone IV DueProLogic - Butang Tekan & LED: 5 Langkah
Video: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, November
Anonim
FPGA Cyclone IV DueProLogic - Tombol Tekan & LED
FPGA Cyclone IV DueProLogic - Tombol Tekan & LED

Dalam tutorial ini, kita akan menggunakan FPGA untuk mengawal litar LED luaran. Kami akan melaksanakan tugas-tugas berikut

(A) Gunakan butang tekan pada FPGA Cyclone IV DuePrologic untuk mengawal LED.

(B) Lampu kilat menyala & mati berkala

Demo video

Menu makmal:

Langkah 1: Bina Litar Elektronik

Langkah 2: Periksa Pin Perancang dan Edit Kod Verilog

Periksa Pin Perancang dan Edit Kod Verilog
Periksa Pin Perancang dan Edit Kod Verilog

Langkah 3: Edit Kod Verilog

Edit Kod Verilog
Edit Kod Verilog

Apabila anda membeli FPGA DueProLogic, anda seharusnya menerima DVD. Selepas anda membuka "Projects_HDL", anda akan melihat fail kod asal

Tambahkan kod yang diserlahkan. Ia mendaftarkan port I / O dan memberikan nombor ke port.

wayar keluaran [7: 0] XIO_1, // XIO - D2-D9

wayar keluaran [5: 0] XIO_2, // XIO - D10-D12

wayar keluaran [5: 0] XIO_3, // XIO - D22-D29

wayar input [5: 0] XIO_4, // XIO - D30-D37

wayar input [5: 0] XIO_5, // XIO - D38-D45

wayar keluaran [4: 0] XIO_6_OUT, // XIO - D46-D53

wayar input [31: 5] XIO_6, // XIO - D46-D53

wayar keluaran [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

wayar input UBA, // Suis Tombol Tekan

wayar input UBB // Suis Tombol Tekan

tetapkan XIO_1 [3] = start_stop_cntrl;

tetapkan XIO_2 [1] = start_blinky; // LED flash LED hidup dan mati

tetapkan XIO_2 [2] = 1'b1; // output TINGGI

berikan XIO_2 [3] = ~ UBA; // Tekan butang A

berikan XIO_2 [4] = UBB; // Tekan butang B

tetapkan c_enable = XIO_5 [2];

tetapkan LEDExt = XIO_5 [5];

Maka kita harus menetapkan pemasa tunda. Komen kod pemasa asal dan tulis fungsi pemasa baru

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

// Mula LED Blinky

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

/*

sentiasa @ (posedge CLK_66 atau negedge RST)

bermula

sekiranya (! RST)

mula_blinky <= 1'b0;

yang lain

bermula

jika (control_register [7: 4]> 0)

start_blinky <= 1'b1;

yang lain

permulaan_blinky <= 1'b0;

akhir

akhir

*/

reg [31: 0] cth;

permulaan awal

ex <= 32'b0;

mula_blinky <= 1'b0;

akhir

selalu @ (posedge CLK_66)

bermula

ex <= ex + 1'b1;

jika (mis.> 100000000) // hidupkan / matikan denyar ~ 1.6 saat, jam 66MHz

bermula

start_blinky <=! mula_blinky;

ex <= 32'b0;

akhir

akhir

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

// Kaunter Pemasa Kelewatan LED

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

/*

sentiasa @ (posedge CLK_66 atau negedge RST)

bermula

sekiranya (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

yang lain

bermula

jika (nyatakan [SELECT_MODE])

led_delay_counter <= timer_value;

lain jika (nyatakan [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

akhir

akhir * /

Langkah 4: Kumpulkan Kod Verilog

Kumpulkan Kod Verilog
Kumpulkan Kod Verilog
Kumpulkan Kod Verilog
Kumpulkan Kod Verilog

Tekan "Mula Kompilasi" di Quartus, tidak ada mesej ralat yang akan dihasilkan.

Sekiranya anda menerima mesej ralat mengenai beberapa pin. Pergi ke Tugasan -> Peranti -> Pilihan Peranti dan Pin -> Pin Dual-Purpose -> ubah nilai pin yang sesuai menjadi "Gunakan sebagai I / O biasa".

Selepas penyusunan, anda harus mendapatkan fail output pof secara langsung. Sekiranya perisian anda tidak terkini, anda mungkin hanya mendapat fail sof. Apabila ia berlaku, klik "Fail" di Quartus -> "ubah fail pengaturcaraan". Tukar tetapan yang ditandai dengan kotak merah.

Langkah 5: Mari Cuba

Lagipun, ia mesti berfungsi !!! LED kuning sentiasa menyala. LED merah berkelip. LED biru dimatikan jika anda menekan butang B. LED hijau dihidupkan jika anda menekan butang A

Disyorkan: