Sommario:
- Passaggio 1: costruire il circuito elettronico
- Passaggio 2: controlla il Pin Planner e modifica il codice Verilog
- Passaggio 3: modifica il codice Verilog
- Passaggio 4: compila il codice Verilog
- Passaggio 5: proviamolo
Video: FPGA Cyclone IV DueProLogic - Pulsante e LED: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
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
Passaggio 3: modifica il 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
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:
FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi: 5 passaggi
FPGA Cyclone IV DueProLogic controlla la fotocamera Raspberry Pi: nonostante l'FPGA DueProLogic sia ufficialmente progettato per Arduino, renderemo comunicabili l'FPGA e il Raspberry Pi 4B. In questo tutorial sono implementate tre attività: (A) Premi contemporaneamente i due pulsanti su FPGA per capovolgere l'angolo di
FPGA Cyclone IV DueProLogic controlla il servomotore: 4 passaggi
FPGA Cyclone IV DueProLogic controlla il servomotore: in questo tutorial, scriveremo il codice Verilog per controllare il servomotore. Il servo SG-90 è prodotto da Waveshare. Quando si acquista il servomotore, è possibile ricevere una scheda tecnica che elenca la tensione di esercizio, la coppia massima e la Pu
Arduino Cyclone Game: 5 passaggi (con immagini)
Arduino Cyclone Game: non ho mai giocato al vero gioco arcade cyclone ma mi piace l'idea di giocare con il nostro tempo di reazione. Ho progettato un gioco miniaturizzato. Consiste in 32 LED che formano un cerchio, i LED si illuminano uno ad uno come un led chaser. L'obiettivo è premere un pulsante
Cyclone (Gioco LED Arduino): 6 passaggi (con immagini)
Cyclone (Arduino LED Game): In questo tutorial, ti insegnerò come creare un gioco LED con pochissimo codice o esperienza! Ho avuto questa idea per un po' e finalmente sono riuscito a crearla. È un gioco divertente che ci ricorda tutti i giochi arcade. Ci sono altri tutorial per
Cyclone LED Arcade Game: 4 passaggi
Cyclone LED Arcade Game: L'intento di questo progetto era creare un gioco semplice utilizzando un Arduino che fosse interattivo e divertente per i bambini. Ricordo che il gioco arcade Cyclone era uno dei miei giochi arcade preferiti quando ero più giovane, quindi ho deciso di replicarlo. T