🔧 Guide Complet Quartus
VHDL pour FPGA - De l'Installation au Projet Complet
📚 Introduction
Intel Quartus Prime est l'environnement de développement intégré (IDE) pour la conception de circuits numériques sur FPGA (Field-Programmable Gate Array) Intel. Ce guide vous accompagne dans l'installation, la création de projets VHDL et la programmation d'un FPGA avec un exemple pratique de compteur.
- Installer Quartus Prime Lite (gratuit)
- Créer et configurer un projet VHDL
- Concevoir un compteur 4 bits en VHDL
- Compiler et simuler le design
- Programmer le FPGA
💾 Installation de Quartus Prime Lite
Étape 1 : Téléchargement
Rendez-vous sur :
https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/download.html
Sélectionnez Quartus Prime Lite Edition (gratuite) pour votre système d'exploitation (Windows/Linux)
Téléchargez les fichiers suivants :
- Quartus Prime Lite (fichier principal)
- ModelSim-Intel FPGA Starter Edition (simulateur)
- Device support files pour votre famille de FPGA (Cyclone V, MAX 10, etc.)
Étape 2 : Installation
Exécutez le fichier d'installation téléchargé (QuartusLiteSetup-xx.x.x.exe pour Windows)
Lisez et acceptez les termes de la licence Intel
Chemin par défaut :
C:\intelFPGA_lite\xx.x (Windows)
Cochez :
- ✅ Quartus Prime
- ✅ ModelSim - Intel FPGA Starter Edition
- ✅ Devices (sélectionnez votre famille de FPGA)
Cliquez sur "Next" et attendez la fin de l'installation (peut prendre 30-60 minutes)
📁 Création d'un Projet VHDL
Démarrer un nouveau projet
Ouvrez l'application depuis le menu Démarrer ou le bureau
Allez dans :
File → New Project Wizard
Cliquez sur "Next" dans la page d'introduction
- Working directory : Choisissez un dossier pour votre projet (ex:
C:\FPGA_Projects\Compteur) - Project name :
compteur_4bits - Top-level entity :
compteur_4bits(même nom que le projet)
Sélectionnez "Empty project" → "Next"
Laissez vide pour l'instant (nous créerons les fichiers après) → "Next"
Sélectionnez votre FPGA cible :
- Family : Cyclone V (exemple) ou selon votre carte
- Device : Choisissez le modèle exact (ex: 5CSEMA5F31C6)
Pour la simulation, sélectionnez :
- Simulation : ModelSim-Altera
- Format : VHDL
Vérifiez les paramètres et cliquez sur "Finish"
🔢 Exemple : Compteur 4 Bits en VHDL
Spécifications du compteur
- Compteur binaire 4 bits (compte de 0 à 15)
- Signal d'horloge (CLK)
- Signal de reset asynchrone (RESET)
- Signal d'activation (ENABLE)
- Sortie sur 4 bits (COUNT)
┌─────────────────────────────────┐
│ │
CLK ────┤► │
│ │
RESET ────┤► COMPTEUR 4 BITS │
│ │
ENABLE ────┤► │
│ ├────► COUNT[3:0]
│ (0 → 1 → 2 → ... → 15 → 0) │
│ │
└─────────────────────────────────┘
Création du fichier VHDL
File → New → VHDL File
File → Save As → Nommez-le : compteur_4bits.vhd
Explication du code
| Section | Description |
|---|---|
| Libraries | IEEE.STD_LOGIC_1164 : types de données standard IEEE.NUMERIC_STD : opérations arithmétiques sur UNSIGNED |
| Entity | Définit les entrées/sorties du composant CLK, RESET, ENABLE (entrées) et COUNT (sortie) |
| Architecture | count_internal : signal interne de type UNSIGNED pour faciliter l'incrémentation |
| Process | Sensible à CLK et RESET RESET asynchrone (prioritaire) Incrémentation sur front montant de CLK si ENABLE='1' |
| Conversion | UNSIGNED → STD_LOGIC_VECTOR pour la sortie |
🧪 Testbench (Fichier de Simulation)
Un testbench permet de simuler le comportement du compteur sans matériel physique.
File → New → VHDL File
Nommez-le :
compteur_4bits_tb.vhd
⚙️ Compilation et Analyse
Étape 1 : Ajouter les fichiers au projet
Dans la fenêtre "Project Navigator" (gauche), cliquez sur "Files"
Vous devriez voir :
- 📄 compteur_4bits.vhd
- 📄 compteur_4bits_tb.vhd
Étape 2 : Définir le Top-Level Entity
Sélectionnez :
Set as Top-Level Entity
Étape 3 : Analyse et Synthèse
Double-cliquez sur "Analysis & Synthesis" dans "Tasks" ou appuyez sur Ctrl+K
La compilation doit réussir sans erreurs. Vérifiez la fenêtre "Messages" en bas
Étape 4 : Afficher le RTL Viewer
Tools → Netlist Viewers → RTL Viewer
Étape 5 : Compilation complète
Cliquez sur l'icône ▶ Start Compilation ou appuyez sur Ctrl+L
La compilation peut prendre quelques minutes. Les étapes sont :
- ✓ Analysis & Synthesis
- ✓ Fitter (Place & Route)
- ✓ Assembler (Generate programming file)
- ✓ Timing Analyzer
📌 Attribution des Pins (Pin Assignment)
Avant de programmer le FPGA, vous devez associer les signaux VHDL aux broches physiques du FPGA.
Méthode 1 : Pin Planner (Interface graphique)
Assignments → Pin Planner
Dans la fenêtre du bas, vous verrez vos signaux. Exemple d'attribution :
| Signal VHDL | Pin FPGA | Description |
|---|---|---|
| CLK | PIN_AF14 | Clock 50 MHz |
| RESET | PIN_AA14 | Bouton poussoir KEY0 |
| ENABLE | PIN_AA15 | Bouton poussoir KEY1 |
| COUNT[0] | PIN_V16 | LED 0 |
| COUNT[1] | PIN_W16 | LED 1 |
| COUNT[2] | PIN_V17 | LED 2 |
| COUNT[3] | PIN_V18 | LED 3 |
Méthode 2 : Fichier .qsf (Assignment File)
Vous pouvez aussi éditer directement le fichier compteur_4bits.qsf et ajouter :
Après avoir assigné les pins, relancez la compilation complète (Ctrl+L)
🔬 Simulation avec ModelSim
Configuration de la simulation
Assignments → Settings → Simulation
- Tool name : ModelSim-Altera
- Format : VHDL
- Cochez "Compile test bench"
Cliquez sur "Test Benches" → "New" → Ajoutez
compteur_4bits_tb.vhd
Lancer la simulation
Tools → Run Simulation Tool → RTL Simulation
La simulation démarre automatiquement
Dans ModelSim, faites glisser CLK, RESET, ENABLE et COUNT vers la fenêtre "Wave"
Tapez dans la console :
run 500 ns
Vous verrez le compteur s'incrémenter : 0, 1, 2, 3, ..., 15, 0, 1, ...
🚀 Programmer le FPGA
Préparation
- Connectez votre carte FPGA au PC via USB-Blaster
- Allumez la carte de développement
- Installez les drivers USB-Blaster si nécessaire
Étapes de programmation
Tools → Programmer
Cliquez sur "Hardware Setup" → Sélectionnez votre USB-Blaster
Cliquez sur "Auto Detect" pour détecter le FPGA connecté
Cliquez sur "Add File" → Sélectionnez
output_files/compteur_4bits.sof
Cochez la case "Program/Configure" pour votre fichier .sof
Cliquez sur "Start" pour télécharger le design dans le FPGA
Test du compteur
- Appuyez sur le bouton RESET → Les LEDs doivent s'éteindre (COUNT = 0000)
- Maintenez le bouton ENABLE → Les LEDs doivent compter en binaire
- Relâchez ENABLE → Le compteur se fige
- Observez : LED0 clignote rapidement, LED1 2x plus lent, LED2 4x plus lent, LED3 8x plus lent
LED3 LED2 LED1 LED0 Valeur décimale
0 0 0 0 = 0
0 0 0 1 = 1
0 0 1 0 = 2
0 0 1 1 = 3
0 1 0 0 = 4
...
1 1 1 1 = 15
0 0 0 0 = 0 (retour)
🎯 Améliorations Possibles
1. Diviseur d'horloge
L'horloge du FPGA est souvent à 50 MHz, ce qui rend le comptage trop rapide pour être visible. Ajoutez un diviseur d'horloge :
2. Compteur/Décompteur
Ajoutez un signal UP_DOWN pour choisir le sens de comptage :
3. Affichage 7 segments
Convertissez COUNT en affichage hexadécimal sur un afficheur 7 segments
4. Compteur modulo N
Limitez le comptage à une valeur maximale :
📚 Ressources Complémentaires
Documentation Intel
- Quartus Prime User Guide : Manuel complet de Quartus
- VHDL Style Guide : Bonnes pratiques VHDL
- Device Handbook : Documentation spécifique de votre FPGA
Tutoriels en ligne
- Intel FPGA Academy :
https://fpgacademy.org - Terasic Support : Exemples pour cartes DE (DE0, DE1, DE2, etc.)
- VHDL Tutorial :
https://www.nandland.com
Communautés
- Intel FPGA Forum : Forum officiel Intel
- Reddit r/FPGA : Communauté active
- Stack Overflow : Questions/réponses VHDL et FPGA
🔧 Dépannage (Troubleshooting)
Problèmes courants
| Problème | Solution |
|---|---|
| Erreur : "Can't elaborate top-level user hierarchy" | Vérifiez que le nom de l'entité correspond au nom du fichier et au top-level entity défini |
| USB-Blaster non détecté | Installez les drivers depuis C:\intelFPGA_lite\xx.x\quartus\drivers |
| Erreur de compilation "Timing requirements not met" | Ajoutez des contraintes de timing ou réduisez la fréquence d'horloge |
| Les LEDs ne s'allument pas | Vérifiez l'attribution des pins et le standard I/O (3.3V ou 2.5V selon la carte) |
| Simulation ne démarre pas | Vérifiez que ModelSim est bien installé et configuré dans les paramètres |
| Erreur "No valid assignment" | Assurez-vous d'avoir sélectionné le bon device FPGA dans les paramètres du projet |
✅ Conclusion
Félicitations ! Vous avez maintenant parcouru toutes les étapes pour créer un projet VHDL dans Quartus, depuis l'installation jusqu'à la programmation du FPGA.
- ✅ Installer et configurer Quartus Prime
- ✅ Créer un projet VHDL structuré
- ✅ Écrire du code VHDL pour un compteur
- ✅ Compiler et synthétiser un design
- ✅ Simuler avec ModelSim
- ✅ Assigner les pins physiques
- ✅ Programmer le FPGA
- ✅ Tester sur matériel réel
Maintenant que vous maîtrisez les bases, explorez des projets plus complexes :
- Machines à états (FSM)
- Communication série (UART)
- Contrôleur VGA
- Traitement de signal numérique (DSP)
- Interface SPI/I2C
- Processeur soft-core (Nios II)