Table des matières:
- Étape 1: Construire un circuit électronique
- Étape 2: Vérifiez le Pin Planner et modifiez le code Verilog
- Étape 3: Modifier le code Verilog
- Étape 4: Compiler le code Verilog
- Étape 5: Essayons-le
Vidéo: FPGA Cyclone IV DueProLogic - Bouton poussoir et LED : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
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
Étape 3: 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
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é:
FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : 5 étapes
Le FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : Bien que le FPGA DueProLogic soit officiellement conçu pour Arduino, nous allons rendre le FPGA et le Raspberry Pi 4B communicables. Trois tâches sont implémentées dans ce tutoriel : (A) Appuyez simultanément sur les deux boutons poussoirs de FPGA pour inverser l'angle de
Servomoteur de contrôle FPGA Cyclone IV DueProLogic : 4 étapes
Le FPGA Cyclone IV DueProLogic contrôle le servomoteur : Dans ce tutoriel, nous allons écrire du code Verilog pour contrôler le servomoteur. Le servo SG-90 est fabriqué par Waveshare. Lorsque vous achetez le servomoteur, vous pouvez recevoir une fiche technique qui liste la tension de fonctionnement, le couple maximum et le Pu proposé
Jeu Arduino Cyclone : 5 étapes (avec photos)
Arduino Cyclone Game : Je n'ai jamais joué au vrai jeu d'arcade Cyclone mais j'aime l'idée de jouer avec notre temps de réaction. J'ai conçu un jeu miniaturisé. Il se compose de 32 LED formant un cercle, les LED s'allument une à une comme un chenillard à LED. Le but est d'appuyer sur un bouton
Cyclone (jeu Arduino LED): 6 étapes (avec photos)
Cyclone (Arduino LED Game) : Dans ce tutoriel, je vais vous apprendre à créer un jeu LED avec très peu de code ou d'expérience ! J'ai eu cette idée pendant un moment et j'ai finalement eu le temps de la créer. C'est un jeu amusant qui nous rappelle tous les jeux d'arcade. Il y a d'autres tutoriels t
Jeu d'arcade Cyclone LED : 4 étapes
Jeu d'arcade Cyclone LED : L'intention de ce projet était de créer un jeu simple utilisant un Arduino qui serait interactif et divertissant pour les enfants. Je me souviens que le jeu d'arcade Cyclone était l'un de mes jeux d'arcade préférés quand j'étais plus jeune, alors j'ai décidé de le reproduire. T