Sommario:

FPGA Cyclone IV DueProLogic - Pulsante e LED: 5 passaggi
FPGA Cyclone IV DueProLogic - Pulsante e LED: 5 passaggi

Video: FPGA Cyclone IV DueProLogic - Pulsante e LED: 5 passaggi

Video: FPGA Cyclone IV DueProLogic - Pulsante e LED: 5 passaggi
Video: FPGA-макетная плата ALTERA Cyclone IV EP4CE6,23 ноября 2022 г. 2024, Novembre
Anonim
FPGA Cyclone IV DueProLogic - Pulsante e LED
FPGA Cyclone IV DueProLogic - Pulsante e LED

In questo tutorial, utilizzeremo l'FPGA per controllare il circuito LED esterno. Stiamo per implementare le seguenti attività

(A) Utilizzare i pulsanti sull'FPGA Cyclone IV DuePrologic per controllare il LED.

(B) LED flash acceso e spento periodicamente

Video dimostrativo

Menù laboratorio:

Passaggio 1: costruire il circuito elettronico

Passaggio 2: controlla il Pin Planner e modifica il codice Verilog

Controlla il Pin Planner e modifica il codice Verilog
Controlla il Pin Planner e modifica il codice Verilog

Passaggio 3: modifica il codice Verilog

Modifica codice Verilog
Modifica codice Verilog

Quando acquisti FPGA DueProLogic, dovresti ricevere un DVD. Dopo aver aperto "Projects_HDL", dovresti vedere il file di codice originale

Aggiungi il codice evidenziato. Registra le porte I/O e assegna numeri alle porte.

cavo di uscita [7:0] XIO_1, //XIO -- D2-D9

cavo di uscita [5:0] XIO_2, //XIO -- D10-D12

cavo di uscita [5:0] XIO_3, //XIO -- D22-D29

cavo di ingresso [5:0] XIO_4, //XIO -- D30-D37

cavo di ingresso [5:0] XIO_5, //XIO -- D38-D45

cavo di uscita [4:0] XIO_6_OUT, //XIO -- D46-D53

cavo di ingresso [31:5] XIO_6, //XIO -- D46-D53

cavo di uscita [2:0] XIO_7, //XIO -- D69, D70, D71, D74, D75, D76

cavo di ingresso UBA, //Interruttori a pulsante

cavo di ingresso UBB // Interruttori a pulsante

assegna XIO_1[3] = start_stop_cntrl;

assegna XIO_2[1] = start_blinky; //LED flash LED acceso e spento

assegnare XIO_2[2] = 1'b1; //uscita ALTA

assegna XIO_2[3] = ~UBA; //Premere il pulsante A

assegnare XIO_2[4] = UBB; //Premere il pulsante B

assegnare c_enable = XIO_5[2];

assegnare LEDExt = XIO_5[5];

Quindi dobbiamo impostare un timer di ritardo. Commenta il codice timer originale e scrivi una nuova funzione timer

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

// LED lampeggiante di avvio

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

/*

sempre @(posedge CLK_66 o negedge RST)

inizio

se(!RST)

start_blinky <= 1'b0;

altro

inizio

if(control_register[7:4] > 0)

start_blinky <= 1'b1;

altro

start_blinky <= 1'b0;

fine

fine

*/

reg [31:0] es;

inizio iniziale

es <= 32'b0;

start_blinky <= 1'b0;

fine

sempre @(posedge CLK_66)

inizio

es <= es + 1'b1;

if(ex > 100000000) //flash acceso/spento ~1.6 secondi, clock 66MHz

inizio

start_blinky <= !start_blinky;

es <= 32'b0;

fine

fine

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

// Contatore del timer di ritardo del LED

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

/*

sempre @(posedge CLK_66 o negedge RST)

inizio

se(!RST)

led_delay_counter <= TIMER_LOW_LIMIT;

altro

inizio

if(state[SELECT_MODE])

led_delay_counter <= timer_value;

else if(state[WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

fine

fine*/

Passaggio 4: compila il codice Verilog

Compila il codice Verilog
Compila il codice Verilog
Compila il codice Verilog
Compila il codice Verilog

Premi "Avvia compilazione" in Quartus, non dovrebbe essere generato alcun messaggio di errore.

Se ricevi un messaggio di errore su più pin. Vai su Assegnazioni -> Dispositivo -> Opzioni dispositivo e pin -> Pin a doppio scopo -> cambia il valore del pin appropriato in "Utilizza come I/O normale".

Dopo la compilazione, dovresti ottenere direttamente il file di output pof. Se il tuo software non è aggiornato, potresti ricevere solo file soft. Quando succede, fai clic su "File" in Quartus -> "converti file di programmazione". Modificare le impostazioni contrassegnate da caselle rosse.

Passaggio 5: proviamolo

Dopotutto dovrebbe funzionare!!! Il LED giallo è sempre acceso. Il LED rosso lampeggia. Il LED blu si spegne se si preme il pulsante B. Il LED verde si accende se si preme il pulsante A

Consigliato: