Table des matières:

FPGA Cyclone IV DueProLogic - Bouton poussoir et LED : 5 étapes
FPGA Cyclone IV DueProLogic - Bouton poussoir et LED : 5 étapes

Vidéo: FPGA Cyclone IV DueProLogic - Bouton poussoir et LED : 5 étapes

Vidéo: FPGA Cyclone IV DueProLogic - Bouton poussoir et LED : 5 étapes
Vidéo: TP3 FPGA - Basys2 - Xilinx - Bouton Poussoir - VHDL 2024, Novembre
Anonim
FPGA Cyclone IV DueProLogic - Bouton poussoir et LED
FPGA Cyclone IV DueProLogic - Bouton poussoir et LED

Dans ce tutoriel, nous allons utiliser le FPGA pour contrôler le circuit LED externe. Nous allons mettre en œuvre les tâches suivantes

(A) Utilisez les boutons-poussoirs du FPGA Cyclone IV DuePrologic pour contrôler la LED.

(B) Flash LED allumé et éteint périodiquement

Démo vidéo

Menu du laboratoire:

Étape 1: Construire un circuit électronique

Étape 2: Vérifiez le Pin Planner et modifiez le code Verilog

Vérifiez le Pin Planner et modifiez le code Verilog
Vérifiez le Pin Planner et modifiez le code Verilog

Étape 3: Modifier le code Verilog

Modifier le code Verilog
Modifier le code Verilog

Lorsque vous achetez FPGA DueProLogic, vous devriez recevoir un DVD. Après avoir ouvert "Projects_HDL", vous devriez voir le fichier de code d'origine

Ajoutez le code en surbrillance. Il enregistre les ports d'E/S et attribue des numéros aux ports.

fil de sortie [7:0] XIO_1, //XIO -- D2-D9

fil de sortie [5:0] XIO_2, //XIO -- D10-D12

fil de sortie [5:0] XIO_3, //XIO -- D22-D29

fil d'entrée [5:0] XIO_4, //XIO -- D30-D37

fil d'entrée [5:0] XIO_5, //XIO -- D38-D45

fil de sortie [4:0] XIO_6_OUT, //XIO -- D46-D53

fil d'entrée [31:5] XIO_6, //XIO -- D46-D53

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

fil d'entrée UBA, //Commutateurs à bouton-poussoir

fil d'entrée UBB //Commutateurs à bouton-poussoir

assigner XIO_1[3] = start_stop_cntrl;

assigner XIO_2[1] = start_blinky; // LED flash LED allumé et éteint

affecter XIO_2[2] = 1'b1; //sortie HAUT

assigner XIO_2[3] = ~UBA; //Appuyez sur le bouton A

affecter XIO_2[4] = UBB; //Appuyez sur le bouton B

assigner c_enable = XIO_5[2];

affecter LEDExt = XIO_5[5];

Ensuite, nous devons définir une minuterie de retard. Commentez le code de minuterie d'origine et écrivez une nouvelle fonction de minuterie

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

// LED clignotant démarrage

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

/*

toujours @(posedge CLK_66 ou negedge RST)

commencer

si(!RST)

start_blinky <= 1'b0;

autre

commencer

if(control_register[7:4] > 0)

start_blinky <= 1'b1;

autre

start_blinky <= 1'b0;

finir

finir

*/

reg [31:0] ex;

début initial

ex <= 32'b0;

start_blinky <= 1'b0;

finir

toujours @(posedge CLK_66)

commencer

ex <= ex + 1'b1;

if(ex> 100000000) //flash on/off ~1.6 secondes, horloge 66MHz

commencer

start_blinky <= !start_blinky;

ex <= 32'b0;

finir

finir

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

// Compteur de temporisation LED

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

/*

toujours @(posedge CLK_66 ou negedge RST)

commencer

si(!RST)

led_delay_counter <= TIMER_LOW_LIMIT;

autre

commencer

if(état[SELECT_MODE])

led_delay_counter <= timer_value;

sinon si (état[WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

finir

finir*/

Étape 4: Compiler le code Verilog

Compiler le code Verilog
Compiler le code Verilog
Compiler le code Verilog
Compiler le code Verilog

Appuyez sur "Démarrer la compilation" dans Quartus, aucun message d'erreur ne devrait être généré.

Si vous recevez un message d'erreur concernant plusieurs broches. Accédez à Affectations -> Périphérique -> Options de périphérique et de broche -> Broches à double usage -> modifiez la valeur de la broche appropriée en "Utiliser comme E/S normales".

Après la compilation, vous devriez obtenir directement le fichier de sortie pof. Si votre logiciel n'est pas à jour, vous pouvez obtenir uniquement le fichier sof. Lorsque cela se produit, cliquez sur "Fichier" dans Quartus -> "convertir les fichiers de programmation". Modifiez les paramètres qui sont marqués par des cases rouges.

Étape 5: Essayons-le

Après tout, ça devrait marcher !!! La LED jaune est toujours allumée. La LED rouge clignote. La LED bleue s'éteint si vous appuyez sur le bouton B. La LED verte s'allume si vous appuyez sur le bouton A

Conseillé: