Taula de continguts:

FPGA Cyclone IV DueProLogic: polsador i LED: 5 passos
FPGA Cyclone IV DueProLogic: polsador i LED: 5 passos

Vídeo: FPGA Cyclone IV DueProLogic: polsador i LED: 5 passos

Vídeo: FPGA Cyclone IV DueProLogic: polsador i LED: 5 passos
Vídeo: FPGA-макетная плата ALTERA Cyclone IV EP4CE6,23 ноября 2022 г. 2024, Desembre
Anonim
FPGA Cyclone IV DueProLogic: polsador i LED
FPGA Cyclone IV DueProLogic: polsador i LED

En aquest tutorial, farem servir l'FPGA per controlar el circuit LED extern. Implementarem les tasques següents

(A) Utilitzeu els botons del FPGA Cyclone IV DuePrologic per controlar el LED.

(B) El LED de flaix s'encén i s'apaga periòdicament

Demostració de vídeo

Menú de laboratori:

Pas 1: Construir un circuit electrònic

Pas 2: comproveu el Pin Planner i Editeu el codi de Verilog

Comproveu el Pin Planner i Editeu el codi de Verilog
Comproveu el Pin Planner i Editeu el codi de Verilog

Pas 3: Editeu el codi de Verilog

Editeu el codi de Verilog
Editeu el codi de Verilog

Quan compreu FPGA DueProLogic, haureu de rebre un DVD. Després d'obrir "Projects_HDL", hauríeu de veure el fitxer de codi original

Afegiu el codi ressaltat. Registra els ports d'E / S i assigna números als ports.

cable de sortida [7: 0] XIO_1, // XIO - D2-D9

cable de sortida [5: 0] XIO_2, // XIO - D10-D12

cable de sortida [5: 0] XIO_3, // XIO - D22-D29

cable d'entrada [5: 0] XIO_4, // XIO - D30-D37

cable d'entrada [5: 0] XIO_5, // XIO - D38-D45

cable de sortida [4: 0] XIO_6_OUT, // XIO - D46-D53

cable d'entrada [31: 5] XIO_6, // XIO - D46-D53

cable de sortida [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

fil d'entrada UBA, // polsadors

fil d’entrada UBB // Polsadors

assigna XIO_1 [3] = start_stop_cntrl;

assigna XIO_2 [1] = start_blinky; // LED de flash LED encès i apagat

assigna XIO_2 [2] = 1'b1; // sortida ALTA

assign XIO_2 [3] = ~ UBA; // Polsador A

assigna XIO_2 [4] = UBB; // Polsador B

assigna c_enable = XIO_5 [2];

assigna LEDExt = XIO_5 [5];

Després hem d’establir un temporitzador de retard. Comenteu el codi del temporitzador original i escriviu una nova funció de temporitzador

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

// Arrencada LED parpellejant

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

/*

always @ (posedge CLK_66 o negedge RST)

començar

si (! RST)

start_blinky <= 1'b0;

en cas contrari

començar

if (control_register [7: 4]> 0)

start_blinky <= 1'b1;

en cas contrari

start_blinky <= 1'b0;

final

final

*/

reg [31: 0] ex;

inicial inicial

ex <= 32'b0;

start_blinky <= 1'b0;

final

always @ (posedge CLK_66)

començar

ex <= ex + 1'b1;

if (ex> 100000000) // activació / desactivació del flaix ~ 1,6 segons, rellotge a 66 MHz

començar

start_blinky <=! start_blinky;

ex <= 32'b0;

final

final

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

// Comptador de temporitzador de retard LED

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

/*

always @ (posedge CLK_66 o negedge RST)

començar

si (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

en cas contrari

començar

if (estat [SELECT_MODE])

led_delay_counter <= timer_value;

else if (estat [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

final

final*/

Pas 4: Compileu el codi de Verilog

Compileu el codi de Verilog
Compileu el codi de Verilog
Compileu el codi de Verilog
Compileu el codi de Verilog

Premeu "Inicia la compilació" a Quartus, no s'hauria de generar cap missatge d'error.

Si rebeu un missatge d'error sobre diversos pins. Aneu a Tasques -> Dispositiu -> Opcions del dispositiu i el pin -> Pins de doble propòsit -> canvieu el valor del pin adequat a "Utilitza com a E / S normals".

Després de la compilació, hauríeu d'obtenir directament el fitxer de sortida pof. Si el vostre programari no està actualitzat, és possible que només obtingueu el fitxer sof. Quan passi, feu clic a "Fitxer" a Quartus -> "Converteix fitxers de programació". Canvieu la configuració marcada per quadres vermells.

Pas 5: ho provem

Al cap i a la fi, hauria de funcionar !!! El LED groc sempre està encès. El LED vermell parpelleja. El LED blau s’apaga si premeu el botó B. El LED verd s’encén si premeu el botó A

Recomanat: