Cuprins:

FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași
FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași

Video: FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași

Video: FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași
Video: DE0-Nano — Краткое руководство по началу работы с Altera Cyclone IV FPGA | Шаг за шагом 2024, Noiembrie
Anonim
FPGA Cyclone IV DueProLogic - Buton și LED
FPGA Cyclone IV DueProLogic - Buton și LED

În acest tutorial, vom folosi FPGA pentru a controla circuitul LED extern. Vom implementa următoarele sarcini

(A) Utilizați butoanele de pe FPGA Cyclone IV DuePrologic pentru a controla LED-ul.

(B) LED-ul blițului este pornit și oprit periodic

Demo video

Meniul laboratorului:

Pasul 1: Construiți un circuit electronic

Pasul 2: Verificați Pin Planner și Editați codul Verilog

Verificați Pin Planner și Editați codul Verilog
Verificați Pin Planner și Editați codul Verilog

Pasul 3: Editați codul Verilog

Editați codul Verilog
Editați codul Verilog

Când cumpărați FPGA DueProLogic, ar trebui să primiți un DVD. După ce deschideți „Projects_HDL”, ar trebui să vedeți fișierul de cod original

Adăugați codul evidențiat. Înregistrează porturile I / O și atribuie numere porturilor.

fir de ieșire [7: 0] XIO_1, // XIO - D2-D9

fir de ieșire [5: 0] XIO_2, // XIO - D10-D12

fir de ieșire [5: 0] XIO_3, // XIO - D22-D29

fir de intrare [5: 0] XIO_4, // XIO - D30-D37

fir de intrare [5: 0] XIO_5, // XIO - D38-D45

fir de ieșire [4: 0] XIO_6_OUT, // XIO - D46-D53

fir de intrare [31: 5] XIO_6, // XIO - D46-D53

fir de ieșire [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

cablu de intrare UBA, // Comutatoare cu buton

cablu de intrare UBB // Comutatoare cu buton

atribui XIO_1 [3] = start_stop_cntrl;

assign XIO_2 [1] = start_blinky; // LED-ul LED-ului flash și aprins

atribui XIO_2 [2] = 1'b1; // ieșire HIGH

atribui XIO_2 [3] = ~ UBA; // Apăsați butonul A

atribui XIO_2 [4] = UBB; // Apăsați butonul B

assign c_enable = XIO_5 [2];

atribui LEDExt = XIO_5 [5];

Apoi trebuie să setăm un temporizator de întârziere. Comentează codul temporizator original și scrie o nouă funcție de temporizator

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

// Start LED intermitent

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

/*

întotdeauna @ (posedge CLK_66 sau negedge RST)

începe

dacă (! RST)

start_blinky <= 1'b0;

altceva

începe

if (control_register [7: 4]> 0)

start_blinky <= 1'b1;

altceva

start_blinky <= 1'b0;

Sfârșit

Sfârșit

*/

reg [31: 0] ex;

început inițial

ex <= 32'b0;

start_blinky <= 1'b0;

Sfârșit

mereu @ (posedge CLK_66)

începe

ex <= ex + 1'b1;

dacă (ex> 100000000) // bliț pornit / oprit ~ 1,6 secunde, ceas 66MHz

începe

start_blinky <=! start_blinky;

ex <= 32'b0;

Sfârșit

Sfârșit

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

// Contor cu temporizator LED

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

/*

întotdeauna @ (posedge CLK_66 sau negedge RST)

începe

dacă (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

altceva

începe

if (stare [SELECT_MODE])

led_delay_counter <= timer_value;

else if (state [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

Sfârșit

Sfârșit*/

Pasul 4: Compilați codul Verilog

Compilați codul Verilog
Compilați codul Verilog
Compilați codul Verilog
Compilați codul Verilog

Apăsați „Start Compilation” în Quartus, nu ar trebui să apară niciun mesaj de eroare.

Dacă primiți un mesaj de eroare despre mai mulți pini. Accesați Teme -> Dispozitiv -> Opțiuni dispozitiv și pin -> Pinuri cu dublu scop -> modificați valoarea pinului corespunzător în „Utilizați ca I / O obișnuite”.

După compilare, ar trebui să obțineți direct fișierul de ieșire pof. Dacă software-ul dvs. nu este actualizat, este posibil să obțineți numai fișier sof. Când se întâmplă, faceți clic pe „Fișier” în Quartus -> „convertiți fișiere de programare”. Schimbați setările marcate cu casete roșii.

Pasul 5: Să încercăm

La urma urmei, ar trebui să funcționeze !!! LED-ul galben este întotdeauna aprins. LED-ul roșu clipește. LED-ul albastru se stinge dacă apăsați butonul B. LED-ul verde este aprins dacă apăsați butonul A

Recomandat: